@eo-sdk/client 8.0.0-rc.2 → 8.0.0-rc.3
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/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +5 -0
- package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +10 -2
- package/app/eo-framework/media/media.component.d.ts +6 -0
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +1 -0
- package/app/eo-framework/ui/loading-spinner/loading-spinner.component.d.ts +1 -0
- package/assets/_default/api/pdf/web/viewer.js +1 -1
- package/assets/_default/config/main.json +1 -1
- package/assets/_default/i18n/de.json +8 -4
- package/assets/_default/i18n/en.json +13 -9
- package/assets/_default/img/yuuvis-agent.png +0 -0
- package/assets/_default/svg/ic_book.svg +1 -0
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +1 -1
- 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 +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +104 -28
- 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.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-bar.component.js +45 -1
- package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +3 -3
- package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +20 -6
- package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +2 -2
- package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +2 -2
- package/esm2015/app/eo-framework/grid/grid.component.js +1 -1
- package/esm2015/app/eo-framework/media/media.component.js +6 -3
- package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +4 -1
- package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +2 -2
- package/esm2015/app/eo-framework/object-state-details/object-state-details.component.js +9 -5
- package/esm2015/app/eo-framework/process/history/process-history.component.js +2 -2
- package/esm2015/app/eo-framework/process/process-file/process-file.component.js +3 -3
- package/esm2015/app/eo-framework/result-list/result-list.component.js +7 -3
- package/esm2015/app/eo-framework/ui/loading-spinner/loading-spinner.component.js +5 -4
- package/esm2015/app/eo-framework/upload-overlay/upload-overlay.component.js +2 -2
- package/esm2015/projects/eo-sdk/core/lib/service/bpm/bpm.service.js +2 -2
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +1 -1
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +100 -27
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/package.json +1 -1
|
@@ -19,6 +19,7 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
|
|
|
19
19
|
this.storageService = storageService;
|
|
20
20
|
this.csvLoadingSpinnerVisibility = false;
|
|
21
21
|
this.visibleConfig = false;
|
|
22
|
+
this.showLoader = false;
|
|
22
23
|
this.limitedList = false;
|
|
23
24
|
this.resultGridOptions = {};
|
|
24
25
|
this.settings = {};
|
|
@@ -51,12 +52,15 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
|
|
|
51
52
|
const config = this.searchService.getResultFieldDefinitionConfig(this.query);
|
|
52
53
|
this.configType = config.type;
|
|
53
54
|
this.configContext = config.contextType;
|
|
55
|
+
this.showLoader = true;
|
|
54
56
|
this.searchService
|
|
55
57
|
.getChunkedResult(this._query, 0, this.VIRTUAL_LIST_CHUNK_SIZE)
|
|
56
58
|
.subscribe(result => {
|
|
59
|
+
this.showLoader = false;
|
|
57
60
|
this.clearQuery(this.clearAfterExecute);
|
|
58
61
|
this.searchResult = result;
|
|
59
62
|
}, Utils.throw(() => {
|
|
63
|
+
this.showLoader = false;
|
|
60
64
|
this.clearQuery(true);
|
|
61
65
|
this.invalidQuery();
|
|
62
66
|
}));
|
|
@@ -223,8 +227,8 @@ ResultListComponent.COLUMNS_DEFINITION = 'eo.framework.cache.columns.definition'
|
|
|
223
227
|
ResultListComponent.decorators = [
|
|
224
228
|
{ type: Component, args: [{
|
|
225
229
|
selector: 'eo-result-list',
|
|
226
|
-
template: "<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\r\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\r\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\r\n\r\n<eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\r\n <div class=\"eo-header\">\r\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\r\n <div class=\"eo-header-info\">\r\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\r\n <div class=\"eo-header-subtitle\">\r\n <span class=\"eo-header-subtitle__label\" *ngIf=\"query?.types.length === 1\">{{query.types[0].label}}</span>\r\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\r\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\r\n <span class=\"term\" *ngIf=\"query?.term && !clearAfterExecute\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\r\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"eo-header-actions\">\r\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\r\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\r\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\r\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\r\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\r\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\r\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\r\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\r\n </div>\r\n </div>\r\n <div class=\"eo-body\">\r\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\r\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\r\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\r\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\r\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\r\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\r\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\r\n\r\n <div class=\"footer\">\r\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\r\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\r\n </div>\r\n\r\n <div class=\"empty\">\r\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\r\n </div>\r\n </eo-grid>\r\n </div>\r\n <ng-template #error>\r\n\r\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\r\n </eo-error-message>\r\n\r\n </ng-template>\r\n</eo-list-container>\r\n",
|
|
227
|
-
styles: [":host{background:var(--panel-background);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0}:host .spinner{padding:calc(var(--app-pane-padding)/4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{-moz-user-select:none;-webkit-user-select:none;font-size:20px;padding-bottom:calc(var(--app-pane-padding)/4);user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}"]
|
|
230
|
+
template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\r\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\r\n</div>\r\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\r\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\r\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\r\n\r\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\r\n <div class=\"eo-header\">\r\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\r\n <div class=\"eo-header-info\">\r\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\r\n <div class=\"eo-header-subtitle\">\r\n <span class=\"eo-header-subtitle__label\" *ngIf=\"query?.types.length === 1\">{{query.types[0].label}}</span>\r\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\r\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\r\n <span class=\"term\" *ngIf=\"query?.term && !clearAfterExecute\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\r\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"eo-header-actions\">\r\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\r\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\r\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\r\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\r\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\r\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\r\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\r\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\r\n </div>\r\n </div>\r\n <div class=\"eo-body\">\r\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\r\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\r\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\r\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\r\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\r\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\r\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\r\n\r\n <div class=\"footer\">\r\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\r\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\r\n </div>\r\n\r\n <div class=\"empty\">\r\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\r\n </div>\r\n </eo-grid>\r\n </div>\r\n <ng-template #error>\r\n\r\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\r\n </eo-error-message>\r\n\r\n </ng-template>\r\n</eo-list-container>\r\n",
|
|
231
|
+
styles: [":host{background:var(--panel-background);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0}:host .spinner{padding:calc(var(--app-pane-padding)/4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{-moz-user-select:none;-webkit-user-select:none;font-size:20px;padding-bottom:calc(var(--app-pane-padding)/4);user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .result-list__loader{margin:auto}"]
|
|
228
232
|
},] }
|
|
229
233
|
];
|
|
230
234
|
ResultListComponent.ctorParameters = () => [
|
|
@@ -259,4 +263,4 @@ ResultListComponent.propDecorators = {
|
|
|
259
263
|
query: [{ type: Input }],
|
|
260
264
|
searchResult: [{ type: Input }]
|
|
261
265
|
};
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUMxRSxNQUFNLGNBQWMsQ0FBQztBQU90QixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsb0JBQW9CO0lBK0YzRCxZQUFvQixNQUFjLEVBQVMsU0FBMkIsRUFBUyxPQUFvQixFQUFVLE9BQXVCLEVBQ2hILGdCQUFrQyxFQUFVLGFBQTRCLEVBQVUsWUFBMEIsRUFDNUcsY0FBbUM7UUFDckQsS0FBSyxFQUFFLENBQUM7UUFIVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFBUyxZQUFPLEdBQVAsT0FB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QUVELElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7O0FBOVBNLHNDQUFrQixHQUFHLHVDQUF1QyxDQUFDOztZQVhyRSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsbWhJQUEyQzs7YUFFNUM7OztZQVJ3QyxNQUFNO1lBQ0ssZ0JBQWdCO1lBTjVELFdBQVc7WUFLMkQsY0FBYztZQUpwRixnQkFBZ0I7WUFJeUIsYUFBYTtZQUFFLFlBQVk7WUFDOUQsbUJBQW1COzs7bUJBVTlCLFNBQVMsU0FBQyxRQUFRO29CQWtCbEIsS0FBSzt5QkFDTCxLQUFLOzRCQUNMLEtBQUs7Z0NBSUwsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO3dCQUNMLEtBQUs7aUNBQ0wsTUFBTTs2QkFDTixNQUFNOzRCQUNOLE1BQU07NEJBQ04sTUFBTTs2QkFDTixNQUFNO3dCQUNOLE1BQU07dUJBQ04sTUFBTTs2QkFDTixNQUFNO29CQUVOLEtBQUs7MkJBbUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtHcmlkT3B0aW9ucywgU2ltcGxlRmlsdGVyfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XHJcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7R3JpZFNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlYXJjaC9hcHAtc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7R3JpZEZpbHRlcn0gZnJvbSAnLi4vZ3JpZC9ncmlkLWZpbHRlci5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCwgU29ydE9wdGlvbiwgQ29uZmlnLCBTZWFyY2hTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLFxyXG4gIEVuYWlvRXZlbnQsIExvY2FsU3RvcmFnZVNlcnZpY2UsIEZpZWxkRGVmaW5pdGlvbiwgVHJhbnNsYXRlU2VydmljZSwgVXRpbHMsIE9iamVjdFR5cGVcclxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1yZXN1bHQtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHQtbGlzdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXN1bHRMaXN0Q29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBncmlkOiBHcmlkQ29tcG9uZW50O1xyXG5cclxuICAvLyBmb3IgbGlzdHMgdGhhdCBleGNlZWQgdGhlIGNvbmZpZ3VyZWQgbWF4IHJlc3VsdCBzaXplLCBkYXRhIHdpbGwgYmUgZmV0Y2hlZCBpbiBjaHVua3NcclxuICBwcml2YXRlIFZJUlRVQUxfTElTVF9DSFVOS19TSVpFOiBudW1iZXI7XHJcbiAgc3RhdGljIENPTFVNTlNfREVGSU5JVElPTiA9ICdlby5mcmFtZXdvcmsuY2FjaGUuY29sdW1ucy5kZWZpbml0aW9uJztcclxuXHJcbiAgcHJpdmF0ZSBfcmVzdWx0OiBTZWFyY2hSZXN1bHQ7XHJcbiAgcHJpdmF0ZSBfcXVlcnk6IFNlYXJjaFF1ZXJ5O1xyXG4gIHByaXZhdGUgX2NhY2hlZENvbHVtbnM6IGFueVtdO1xyXG4gIHByaXZhdGUgZGVmYXVsdFF1ZXJ5OiBTZWFyY2hRdWVyeTtcclxuICBjc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSBmYWxzZTtcclxuXHJcbiAgdmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcclxuICBwdWJsaWMgbGltaXRlZExpc3QgPSBmYWxzZTtcclxuICBwdWJsaWMgcmVzdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge307XHJcbiAgc2V0dGluZ3MgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcclxuICBASW5wdXQoKSBjb25maWdUeXBlOiBPYmplY3RUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcclxuXHJcbiAgLy8gSWYgc2V0IHRvIHRydWUgcXVlcnkgd2lsbCBiZSB0cmVhdGVkIGxpa2UgYSB0ZW1wb3Jhcnkgc2VhcmNoLlxyXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcclxuICBASW5wdXQoKSBjbGVhckFmdGVyRXhlY3V0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnJztcclxuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XHJcbiAgQElucHV0KCkgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGhhc0ljb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkZvY3VzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Db250ZXh0TWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Db3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25SZXN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUXVlcnlJbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBxdWVyeShxdWVyeTogYW55KSB7XHJcblxyXG4gICAgaWYgKCFxdWVyeSkge1xyXG4gICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShxdWVyeSk7XHJcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFF1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKCkpO1xyXG4gICAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLmRlZmF1bHRRdWVyeSk7XHJcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0UmVzdWx0RmllbGREZWZpbml0aW9uQ29uZmlnKHRoaXMucXVlcnkpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnQ29udGV4dCA9IGNvbmZpZy5jb250ZXh0VHlwZTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0Q2h1bmtlZFJlc3VsdCh0aGlzLl9xdWVyeSwgMCwgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRoaXMuY2xlYXJBZnRlckV4ZWN1dGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdCA9IHJlc3VsdDtcclxuICAgICAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBxdWVyeSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9xdWVyeTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgLy8gdG9kbzogYmFja2VuZCBzaG91bGQgcmVzb2x2ZSBxdWVyeS5maWVsZHMgYW5kIHJldHVybiBjb25maWcgaW4gc3BlY2lmaWMgb3JkZXJcclxuICAgIGNvbnN0IF9maWVsZHMgPSByZXN1bHQuZmllbGRzID8gb2JzZXJ2YWJsZU9mKHJlc3VsdC5maWVsZHMpIDpcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XHJcbiAgICBfZmllbGRzLnN1YnNjcmliZShmaWVsZHMgPT4ge1xyXG4gICAgICBpZiAoZmllbGRzICYmIHRoaXMucXVlcnkgJiYgdGhpcy5xdWVyeS5maWVsZHMgJiYgdGhpcy5xdWVyeS5maWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcclxuICAgICAgfVxyXG4gICAgICByZXN1bHQuZmllbGRzID0gZmllbGRzIHx8IG5ldyBGaWVsZERlZmluaXRpb24oKTtcclxuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgICB0aGlzLnByb2Nlc3NSZXN1bHRzKHRoaXMuX3Jlc3VsdCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBzZWFyY2hSZXN1bHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFID0gdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gubGltaXQnKSBhcyBudW1iZXI7XHJcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcclxuICAgIGlmIChjbGVhckFmdGVyRXhlY3V0ZSkge1xyXG4gICAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2UuY2xlYXJRdWVyeSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW52YWxpZFF1ZXJ5KCkge1xyXG4gICAgdGhpcy5vblF1ZXJ5SW52YWxpZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXHJcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgICAgICB0aGlzLmdyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7aWQ6IHJlcy5kYXRhLmlkfV0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXHJcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmdyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7aWQ6IHJlcy5kYXRhLmlkLCBpdGVtOiByZXMuZGF0YS5kYXRhfV0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlZnJlc2hHcmlkKCkge1xyXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcclxuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblJlZnJlc2guZW1pdCh0aGlzLnF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIG9uQ29sdW1uUmVzaXplZChjb2x1bW46IGFueSkge1xyXG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XHJcbiAgICBpZiAoY29sKSB7XHJcbiAgICAgIGNvbC53aWR0aCA9IGNvbHVtbi5hY3R1YWxXaWR0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2NhY2hlZENvbHVtbnMucHVzaCh7cW5hbWU6IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSwgd2lkdGg6IGNvbHVtbi5hY3R1YWxXaWR0aH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGdyaWQgY29uZmlndXJhdGlvblxyXG4gICAqIEBwYXJhbSAkZXZlbnRcclxuICAgKi9cclxuICBvbkNvbmZpZ0NoYW5nZWQocmVmcmVzaCkge1xyXG4gICAgaWYgKHJlZnJlc2gpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvY2VzcyBTZWFyY2ggcmVzdWx0ICYgZ2VuZXJhdGUgY29sdW1uIGRlZmluaXRpb25zXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcclxuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vblJlc3VsdC5lbWl0KHJlc3VsdCk7XHJcbiAgICB0aGlzLnRvdGFsSGl0cyA9IHJlc3VsdC5jb3VudC52YWx1ZTtcclxuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcclxuICAgIGxldCBncmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7Y29udGV4dDoge30sIG9uU29ydENoYW5nZWQ6ICgpID0+IHRoaXMub25QYWdlQ2hhbmdlZCgpLCBvbkZpbHRlckNoYW5nZWQ6ICgpID0+IHRoaXMub25QYWdlQ2hhbmdlZCgpfTtcclxuICAgIGNvbnN0IHNlYXJjaE1vZGUgPSByZXN1bHQuZmllbGRzLm1vZGUgPyByZXN1bHQuZmllbGRzLm1vZGUgOiBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0dGluZ3MgPSB0aGlzLmxpbWl0ZWRMaXN0ICYmIHRoaXMucXVlcnkgPyB7dG90YWw6IHRoaXMudG90YWxIaXRzLCBzaXplOiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFLCByZWxhdGlvbjogcmVzdWx0LmNvdW50LnJlbGF0aW9ufSA6IG51bGw7XHJcbiAgICBncmlkT3B0aW9ucy5yb3dEYXRhID0gcmVzdWx0LmhpdHM7XHJcblxyXG4gICAgY29uc3Qge2VsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZH0gPSByZXN1bHQuZmllbGRzO1xyXG5cclxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XHJcbiAgICBncmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gdGhpcy5ncmlkQXBpLmdldENvbHVtbkRlZnMoZWxlbWVudHMsIHNvcnRvcmRlciwgZ3JvdXBvcmRlciwgcGlubmVkLCBmYWxzZSwgdGhpcy5fY2FjaGVkQ29sdW1ucywgc2VhcmNoTW9kZSk7XHJcblxyXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyk7XHJcblxyXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XHJcbiAgICAgIC8vIHJlbG9hZCBncmlkIGNvbXBvbmVudFxyXG4gICAgICB0aGlzLnJlc3VsdEdyaWRPcHRpb25zID0ge307XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwb3N0Zml4U29ydChpZCkge1xyXG4gICAgLy8gdG9kbzogcmVtb3ZlIHdoZW4gaXQncyBmaXhlZCBvbiBiYWNrZW5kXHJcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XHJcbiAgICBpZiAodGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5KSB7XHJcbiAgICAgIHRoaXMuZmV0Y2hSb3dEYXRhKHtcclxuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXHJcbiAgICAgICAgc29ydE1vZGVsOiB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpLFxyXG4gICAgICAgIGZpbHRlck1vZGVsOiB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCksXHJcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzID0ge3RvdGFsLCByZWxhdGlvbiwgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcGFnZX07XHJcbiAgICAgICAgICB0aGlzLmdyaWQuYXBpLnNldFJvd0RhdGEocm93cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSByb3cgbW9kZWwgcGFyYW1zIChpbmNsLiBzdGFydFJvdywgZW5kUm93LCBzb3J0TW9kZWwgYW5kIGZpbHRlck1vZGVsKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtczogYW55KSB7XHJcblxyXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlUXVlcnkocGFyYW1zKTtcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxyXG4gICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMucXVlcnksIHBhcmFtcy5zdGFydFJvdywgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsSGl0cyA9IHRoaXMuZ3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0NvdW50ID0gcmVzdWx0LmNvdW50LnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5ncmlkLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XHJcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUXVlcnkocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxyXG4gICAgICAgIC5tYXAobW9kZWwgPT4gbmV3IFNvcnRPcHRpb24oR3JpZFNlcnZpY2UucW5hbWVGb3JtYXR0ZXIobW9kZWwuY29sSWQgKyB0aGlzLnBvc3RmaXhTb3J0KG1vZGVsLmNvbElkKSksIG1vZGVsLnNvcnQpKTtcclxuXHJcbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXHJcbiAgICAgIC5jb25jYXQoKE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCkpIHx8IFtdKVxyXG4gICAgICAgIC5tYXAoa2V5ID0+IEdyaWRGaWx0ZXIub3BlcmF0b3IoR3JpZFNlcnZpY2UucW5hbWVGb3JtYXR0ZXIoa2V5KSwgKHBhcmFtcy5maWx0ZXJNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCkpW2tleV0pKSk7XHJcblxyXG4gICAgdGhpcy5xdWVyeS5zZWFyY2hNb2RlID0gU2VhcmNoUXVlcnkuREVGQVVMVF9TRUFSQ0hfTU9ERTtcclxuICB9XHJcblxyXG4gIGV4ZWN1dGVTdWdnZXN0U2VhcmNoKCkge1xyXG4gICAgLy8gdG9kbzogaW1wbGVtZW50XHJcbiAgfVxyXG5cclxuICBleHBvcnRDU1YoKSB7XHJcbiAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5KHt9KTtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5kb3dubG9hZENzdkZyb21RdWVyeSh0aGlzLnF1ZXJ5LmdldFF1ZXJ5SnNvbigpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwYXJzZURtc1BhcmFtcyhkYXRhKSB7XHJcbiAgICByZXR1cm4ge2lkOiBkYXRhICYmIGRhdGEuaWQgPyBkYXRhLmlkIDogbnVsbCwgdHlwZTogZGF0YSAmJiBkYXRhLnR5cGUgPyBkYXRhLnR5cGUgOiBudWxsfTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNHcmlkT3B0aW9ucygpIHtcclxuICAgIHJldHVybiAhISh0aGlzLnJlc3VsdEdyaWRPcHRpb25zLmRhdGFzb3VyY2UgfHwgdGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5yb3dEYXRhKTtcclxuICB9XHJcbn1cclxuIl19
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUMxRSxNQUFNLGNBQWMsQ0FBQztBQU90QixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsb0JBQW9CO0lBa0czRCxZQUFvQixNQUFjLEVBQVMsU0FBMkIsRUFBUyxPQUFvQixFQUFVLE9BQXVCLEVBQ2hILGdCQUFrQyxFQUFVLGFBQTRCLEVBQVUsWUFBMEIsRUFDNUcsY0FBbUM7UUFDckQsS0FBSyxFQUFFLENBQUM7UUFIVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFBUyxZQUFPLEdBQVAsT0FB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RUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQzs7QUFqUU0sc0NBQWtCLEdBQUcsdUNBQXVDLENBQUM7O1lBWHJFLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQiwrc0lBQTJDOzthQUU1Qzs7O1lBUndDLE1BQU07WUFDSyxnQkFBZ0I7WUFONUQsV0FBVztZQUsyRCxjQUFjO1lBSnBGLGdCQUFnQjtZQUl5QixhQUFhO1lBQUUsWUFBWTtZQUM5RCxtQkFBbUI7OzttQkFVOUIsU0FBUyxTQUFDLFFBQVE7b0JBbUJsQixLQUFLO3lCQUNMLEtBQUs7NEJBQ0wsS0FBSztnQ0FJTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSztpQ0FDTCxNQUFNOzZCQUNOLE1BQU07NEJBQ04sTUFBTTs0QkFDTixNQUFNOzZCQUNOLE1BQU07d0JBQ04sTUFBTTt1QkFDTixNQUFNOzZCQUNOLE1BQU07b0JBRU4sS0FBSzsyQkFxQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0dyaWRPcHRpb25zLCBTaW1wbGVGaWx0ZXJ9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcclxuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XHJcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uL3V0aWwvdW5zdWJzY3JpYmUvdW5zdWJzY3JpYmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtHcmlkRmlsdGVyfSBmcm9tICcuLi9ncmlkL2dyaWQtZmlsdGVyLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBTZWFyY2hRdWVyeSwgU2VhcmNoUmVzdWx0LCBTb3J0T3B0aW9uLCBDb25maWcsIFNlYXJjaFNlcnZpY2UsIEV2ZW50U2VydmljZSwgQmFja2VuZFNlcnZpY2UsXHJcbiAgRW5haW9FdmVudCwgTG9jYWxTdG9yYWdlU2VydmljZSwgRmllbGREZWZpbml0aW9uLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscywgT2JqZWN0VHlwZVxyXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLXJlc3VsdC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3VsdExpc3RDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGdyaWQ6IEdyaWRDb21wb25lbnQ7XHJcblxyXG4gIC8vIGZvciBsaXN0cyB0aGF0IGV4Y2VlZCB0aGUgY29uZmlndXJlZCBtYXggcmVzdWx0IHNpemUsIGRhdGEgd2lsbCBiZSBmZXRjaGVkIGluIGNodW5rc1xyXG4gIHByaXZhdGUgVklSVFVBTF9MSVNUX0NIVU5LX1NJWkU6IG51bWJlcjtcclxuICBzdGF0aWMgQ09MVU1OU19ERUZJTklUSU9OID0gJ2VvLmZyYW1ld29yay5jYWNoZS5jb2x1bW5zLmRlZmluaXRpb24nO1xyXG5cclxuICBwcml2YXRlIF9yZXN1bHQ6IFNlYXJjaFJlc3VsdDtcclxuICBwcml2YXRlIF9xdWVyeTogU2VhcmNoUXVlcnk7XHJcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uczogYW55W107XHJcbiAgcHJpdmF0ZSBkZWZhdWx0UXVlcnk6IFNlYXJjaFF1ZXJ5O1xyXG4gIGNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xyXG5cclxuICB2aXNpYmxlQ29uZmlnID0gZmFsc2U7XHJcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcclxuICBwdWJsaWMgbGltaXRlZExpc3QgPSBmYWxzZTtcclxuICBwdWJsaWMgcmVzdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge307XHJcbiAgc2V0dGluZ3MgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcclxuICBASW5wdXQoKSBjb25maWdUeXBlOiBPYmplY3RUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcclxuXHJcbiAgLy8gSWYgc2V0IHRvIHRydWUgcXVlcnkgd2lsbCBiZSB0cmVhdGVkIGxpa2UgYSB0ZW1wb3Jhcnkgc2VhcmNoLlxyXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcclxuICBASW5wdXQoKSBjbGVhckFmdGVyRXhlY3V0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnJztcclxuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XHJcbiAgQElucHV0KCkgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGhhc0ljb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkZvY3VzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Db250ZXh0TWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Db3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25SZXN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUXVlcnlJbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBxdWVyeShxdWVyeTogYW55KSB7XHJcblxyXG4gICAgaWYgKCFxdWVyeSkge1xyXG4gICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShxdWVyeSk7XHJcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFF1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKCkpO1xyXG4gICAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLmRlZmF1bHRRdWVyeSk7XHJcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0UmVzdWx0RmllbGREZWZpbml0aW9uQ29uZmlnKHRoaXMucXVlcnkpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnQ29udGV4dCA9IGNvbmZpZy5jb250ZXh0VHlwZTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxyXG4gICAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5fcXVlcnksIDAsIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodGhpcy5jbGVhckFmdGVyRXhlY3V0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBxdWVyeSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9xdWVyeTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgLy8gdG9kbzogYmFja2VuZCBzaG91bGQgcmVzb2x2ZSBxdWVyeS5maWVsZHMgYW5kIHJldHVybiBjb25maWcgaW4gc3BlY2lmaWMgb3JkZXJcclxuICAgIGNvbnN0IF9maWVsZHMgPSByZXN1bHQuZmllbGRzID8gb2JzZXJ2YWJsZU9mKHJlc3VsdC5maWVsZHMpIDpcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XHJcbiAgICBfZmllbGRzLnN1YnNjcmliZShmaWVsZHMgPT4ge1xyXG4gICAgICBpZiAoZmllbGRzICYmIHRoaXMucXVlcnkgJiYgdGhpcy5xdWVyeS5maWVsZHMgJiYgdGhpcy5xdWVyeS5maWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcclxuICAgICAgfVxyXG4gICAgICByZXN1bHQuZmllbGRzID0gZmllbGRzIHx8IG5ldyBGaWVsZERlZmluaXRpb24oKTtcclxuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgICB0aGlzLnByb2Nlc3NSZXN1bHRzKHRoaXMuX3Jlc3VsdCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBzZWFyY2hSZXN1bHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFID0gdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gubGltaXQnKSBhcyBudW1iZXI7XHJcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcclxuICAgIGlmIChjbGVhckFmdGVyRXhlY3V0ZSkge1xyXG4gICAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2UuY2xlYXJRdWVyeSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW52YWxpZFF1ZXJ5KCkge1xyXG4gICAgdGhpcy5vblF1ZXJ5SW52YWxpZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXHJcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgICAgICB0aGlzLmdyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7aWQ6IHJlcy5kYXRhLmlkfV0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXHJcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmdyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7aWQ6IHJlcy5kYXRhLmlkLCBpdGVtOiByZXMuZGF0YS5kYXRhfV0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlZnJlc2hHcmlkKCkge1xyXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcclxuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblJlZnJlc2guZW1pdCh0aGlzLnF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIG9uQ29sdW1uUmVzaXplZChjb2x1bW46IGFueSkge1xyXG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XHJcbiAgICBpZiAoY29sKSB7XHJcbiAgICAgIGNvbC53aWR0aCA9IGNvbHVtbi5hY3R1YWxXaWR0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2NhY2hlZENvbHVtbnMucHVzaCh7cW5hbWU6IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSwgd2lkdGg6IGNvbHVtbi5hY3R1YWxXaWR0aH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGdyaWQgY29uZmlndXJhdGlvblxyXG4gICAqIEBwYXJhbSAkZXZlbnRcclxuICAgKi9cclxuICBvbkNvbmZpZ0NoYW5nZWQocmVmcmVzaCkge1xyXG4gICAgaWYgKHJlZnJlc2gpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvY2VzcyBTZWFyY2ggcmVzdWx0ICYgZ2VuZXJhdGUgY29sdW1uIGRlZmluaXRpb25zXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcclxuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vblJlc3VsdC5lbWl0KHJlc3VsdCk7XHJcbiAgICB0aGlzLnRvdGFsSGl0cyA9IHJlc3VsdC5jb3VudC52YWx1ZTtcclxuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcclxuICAgIGxldCBncmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7Y29udGV4dDoge30sIG9uU29ydENoYW5nZWQ6ICgpID0+IHRoaXMub25QYWdlQ2hhbmdlZCgpLCBvbkZpbHRlckNoYW5nZWQ6ICgpID0+IHRoaXMub25QYWdlQ2hhbmdlZCgpfTtcclxuICAgIGNvbnN0IHNlYXJjaE1vZGUgPSByZXN1bHQuZmllbGRzLm1vZGUgPyByZXN1bHQuZmllbGRzLm1vZGUgOiBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0dGluZ3MgPSB0aGlzLmxpbWl0ZWRMaXN0ICYmIHRoaXMucXVlcnkgPyB7dG90YWw6IHRoaXMudG90YWxIaXRzLCBzaXplOiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFLCByZWxhdGlvbjogcmVzdWx0LmNvdW50LnJlbGF0aW9ufSA6IG51bGw7XHJcbiAgICBncmlkT3B0aW9ucy5yb3dEYXRhID0gcmVzdWx0LmhpdHM7XHJcblxyXG4gICAgY29uc3Qge2VsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZH0gPSByZXN1bHQuZmllbGRzO1xyXG5cclxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XHJcbiAgICBncmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gdGhpcy5ncmlkQXBpLmdldENvbHVtbkRlZnMoZWxlbWVudHMsIHNvcnRvcmRlciwgZ3JvdXBvcmRlciwgcGlubmVkLCBmYWxzZSwgdGhpcy5fY2FjaGVkQ29sdW1ucywgc2VhcmNoTW9kZSk7XHJcblxyXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyk7XHJcblxyXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XHJcbiAgICAgIC8vIHJlbG9hZCBncmlkIGNvbXBvbmVudFxyXG4gICAgICB0aGlzLnJlc3VsdEdyaWRPcHRpb25zID0ge307XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwb3N0Zml4U29ydChpZCkge1xyXG4gICAgLy8gdG9kbzogcmVtb3ZlIHdoZW4gaXQncyBmaXhlZCBvbiBiYWNrZW5kXHJcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XHJcbiAgICBpZiAodGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5KSB7XHJcbiAgICAgIHRoaXMuZmV0Y2hSb3dEYXRhKHtcclxuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXHJcbiAgICAgICAgc29ydE1vZGVsOiB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpLFxyXG4gICAgICAgIGZpbHRlck1vZGVsOiB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCksXHJcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzID0ge3RvdGFsLCByZWxhdGlvbiwgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcGFnZX07XHJcbiAgICAgICAgICB0aGlzLmdyaWQuYXBpLnNldFJvd0RhdGEocm93cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSByb3cgbW9kZWwgcGFyYW1zIChpbmNsLiBzdGFydFJvdywgZW5kUm93LCBzb3J0TW9kZWwgYW5kIGZpbHRlck1vZGVsKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtczogYW55KSB7XHJcblxyXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlUXVlcnkocGFyYW1zKTtcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxyXG4gICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMucXVlcnksIHBhcmFtcy5zdGFydFJvdywgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsSGl0cyA9IHRoaXMuZ3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0NvdW50ID0gcmVzdWx0LmNvdW50LnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5ncmlkLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XHJcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUXVlcnkocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxyXG4gICAgICAgIC5tYXAobW9kZWwgPT4gbmV3IFNvcnRPcHRpb24oR3JpZFNlcnZpY2UucW5hbWVGb3JtYXR0ZXIobW9kZWwuY29sSWQgKyB0aGlzLnBvc3RmaXhTb3J0KG1vZGVsLmNvbElkKSksIG1vZGVsLnNvcnQpKTtcclxuXHJcbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXHJcbiAgICAgIC5jb25jYXQoKE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCkpIHx8IFtdKVxyXG4gICAgICAgIC5tYXAoa2V5ID0+IEdyaWRGaWx0ZXIub3BlcmF0b3IoR3JpZFNlcnZpY2UucW5hbWVGb3JtYXR0ZXIoa2V5KSwgKHBhcmFtcy5maWx0ZXJNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCkpW2tleV0pKSk7XHJcblxyXG4gICAgdGhpcy5xdWVyeS5zZWFyY2hNb2RlID0gU2VhcmNoUXVlcnkuREVGQVVMVF9TRUFSQ0hfTU9ERTtcclxuICB9XHJcblxyXG4gIGV4ZWN1dGVTdWdnZXN0U2VhcmNoKCkge1xyXG4gICAgLy8gdG9kbzogaW1wbGVtZW50XHJcbiAgfVxyXG5cclxuICBleHBvcnRDU1YoKSB7XHJcbiAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5KHt9KTtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5kb3dubG9hZENzdkZyb21RdWVyeSh0aGlzLnF1ZXJ5LmdldFF1ZXJ5SnNvbigpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwYXJzZURtc1BhcmFtcyhkYXRhKSB7XHJcbiAgICByZXR1cm4ge2lkOiBkYXRhICYmIGRhdGEuaWQgPyBkYXRhLmlkIDogbnVsbCwgdHlwZTogZGF0YSAmJiBkYXRhLnR5cGUgPyBkYXRhLnR5cGUgOiBudWxsfTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNHcmlkT3B0aW9ucygpIHtcclxuICAgIHJldHVybiAhISh0aGlzLnJlc3VsdEdyaWRPcHRpb25zLmRhdGFzb3VyY2UgfHwgdGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5yb3dEYXRhKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -10,13 +10,14 @@ LoadingSpinnerComponent.decorators = [
|
|
|
10
10
|
selector: 'eo-loading-spinner',
|
|
11
11
|
template: `
|
|
12
12
|
<div class="eo-loading">
|
|
13
|
-
<div class="eo-loader" [ngClass]="{small: size === 'small', large: size === 'large'}"></div>
|
|
13
|
+
<div class="eo-loader" [ngClass]="{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}"></div>
|
|
14
14
|
</div>`,
|
|
15
|
-
styles: [":host{--loader-background-color:rgba(var(--color-black-rgb),0.1);--loader-background-color-light:rgba(var(--color-white-rgb),0.2);--loader-border-width:3px;--loader-color:var(--color-accent);--loader-color-light:rgba(var(--color-white-rgb),1)}:host .eo-loader{-webkit-animation:load8 1.1s linear infinite;animation:load8 1.1s linear infinite;border:var(--loader-border-width) solid var(--loader-background-color);border-left-color:var(--loader-color);font-size:10px;position:relative;text-indent:-9999em;transform:translateZ(0)}:host .eo-loader,:host .eo-loader:after{border-radius:50%;border-width:4px;height:5em;width:5em}:host .eo-loader.large{border-width:8px;height:10em;width:10em}:host .eo-loader.small{border-width:2px;height:2em;width:2em}:host-context(.dark) .eo-loader{border-color:var(--loader-background-color-light) var(--loader-background-color-light) var(--loader-background-color-light) var(--loader-color-light);border-left-color:var(--loader-background-color-light)}@-webkit-keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}"]
|
|
15
|
+
styles: [":host{--loader-background-color:rgba(var(--color-black-rgb),0.1);--loader-background-color-light:rgba(var(--color-white-rgb),0.2);--loader-border-width:3px;--loader-color:var(--color-accent);--loader-color-light:rgba(var(--color-white-rgb),1)}:host .eo-loader{-webkit-animation:load8 1.1s linear infinite;animation:load8 1.1s linear infinite;border:var(--loader-border-width) solid var(--loader-background-color);border-left-color:var(--loader-color);font-size:10px;position:relative;text-indent:-9999em;transform:translateZ(0)}:host .eo-loader,:host .eo-loader:after{border-radius:50%;border-width:4px;height:5em;width:5em}:host .eo-loader.large{border-width:8px;height:10em;width:10em}:host .eo-loader.medium{border-width:4px;height:6em;width:6em}:host .eo-loader.small{border-width:2px;height:2em;width:2em}:host .eo-loader.dark{border-color:var(--loader-background-color-light) var(--loader-background-color-light) var(--loader-background-color-light) var(--loader-color);border-left-color:var(--loader-background-color-light)}:host-context(.dark) .eo-loader{border-color:var(--loader-background-color-light) var(--loader-background-color-light) var(--loader-background-color-light) var(--loader-color-light);border-left-color:var(--loader-background-color-light)}@-webkit-keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}"]
|
|
16
16
|
},] }
|
|
17
17
|
];
|
|
18
18
|
LoadingSpinnerComponent.ctorParameters = () => [];
|
|
19
19
|
LoadingSpinnerComponent.propDecorators = {
|
|
20
|
-
size: [{ type: Input }]
|
|
20
|
+
size: [{ type: Input }],
|
|
21
|
+
mode: [{ type: Input }]
|
|
21
22
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zcGlubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLXNwaW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVXZELE1BQU0sT0FBTyx1QkFBdUI7SUFLbEM7SUFDQSxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7OztZQWpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFOzs7V0FHRDs7YUFFVjs7OzttQkFHRSxLQUFLO21CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWxvYWRpbmctc3Bpbm5lcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJlby1sb2FkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlby1sb2FkZXJcIiBbbmdDbGFzc109XCJ7c21hbGw6IHNpemUgPT09ICdzbWFsbCcsIG1lZGl1bTogc2l6ZSA9PT0gJ21lZGl1bScsIGxhcmdlOiBzaXplID09PSAnbGFyZ2UnLCBkYXJrOiBtb2RlID09PSAnZGFyayd9XCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5gLFxyXG4gIHN0eWxlVXJsczogWycuL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZztcclxuICBASW5wdXQoKSBtb2RlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -316,7 +316,7 @@ export class UploadOverlayComponent {
|
|
|
316
316
|
* @returns number of files
|
|
317
317
|
*/
|
|
318
318
|
dragContainsFiles(event) {
|
|
319
|
-
return Array.from(event.dataTransfer.items || []).filter(i => i.kind === 'file'
|
|
319
|
+
return Array.from(event.dataTransfer.items || []).filter(i => i.kind === 'file').length;
|
|
320
320
|
}
|
|
321
321
|
// ngFor tracking function for upload targets
|
|
322
322
|
targetTrackByFn(index, item) {
|
|
@@ -354,4 +354,4 @@ UploadOverlayComponent.ctorParameters = () => [
|
|
|
354
354
|
UploadOverlayComponent.propDecorators = {
|
|
355
355
|
overlayEl: [{ type: ViewChild, args: ['overlay',] }]
|
|
356
356
|
};
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFFLFFBQVEsSUFBSSxrQkFBa0IsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFDLFNBQVMsRUFBVSxTQUFTLEVBQUUsU0FBUyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUVMLFlBQVksRUFDWixVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQUUsYUFBYSxFQUNoQyxNQUFNLGNBQWMsQ0FBQztBQVF0QixNQUFNLE9BQU8sc0JBQXNCO0lBcUJqQyxZQUFvQixNQUFjLEVBQ2QsUUFBbUIsRUFDbkIsY0FBOEIsRUFDOUIsU0FBMkIsRUFDM0IsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsY0FBcUM7UUFOckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQXZCekQsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFNN0IsdUJBQWtCLEdBQW1CLEVBQUUsQ0FBQztRQUdoQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7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eUM7SUFDekMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBOVlGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixtcEtBQThDOzthQUUvQzs7O1lBbkJPLE1BQU07WUFEYSxTQUFTO1lBU2xDLGNBQWM7WUFFZCxnQkFBZ0I7WUFDRSxhQUFhO1lBUi9CLFlBQVk7WUFFWixxQkFBcUI7Ozt3QkFpQnBCLFNBQVMsU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2YsIGZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1xyXG4gIE9iamVjdFR5cGUsXHJcbiAgRXZlbnRTZXJ2aWNlLFxyXG4gIEVuYWlvRXZlbnQsXHJcbiAgVXBsb2FkUmVnaXN0cnlTZXJ2aWNlLFxyXG4gIFVwbG9hZFRhcmdldCxcclxuICBVcGxvYWRGaWxlSXRlbSxcclxuICBQcmVwYXJlU2VydmljZSxcclxuICBVdGlscyxcclxuICBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gIEVudmlyb25tZW50RW5haW8sIFN5c3RlbVNlcnZpY2VcclxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2UgYXMgVXRpbGl0aWVzfSBmcm9tICcuLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZW8tdXBsb2FkLW92ZXJsYXknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheScpIG92ZXJsYXlFbDogRWxlbWVudFJlZjtcclxuXHJcbiAgcXVldWU6IFVwbG9hZEZpbGVJdGVtW10gPSBbXTtcclxuICBmaWxlT3ZlcjogYm9vbGVhbjtcclxuICBpc1VwbG9hZGluZzogYm9vbGVhbjtcclxuICBoYXNWYWxpZFVwbG9hZFRhcmdldHM6IGJvb2xlYW47XHJcbiAgaW52YWxpZElucHV0OiBib29sZWFuO1xyXG4gIHF1ZXVlU2l6ZTogbnVtYmVyO1xyXG4gIHZhbGlkVXBsb2FkVGFyZ2V0czogVXBsb2FkVGFyZ2V0W10gPSBbXTtcclxuICBzZWxlY3RlZFVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0O1xyXG5cclxuICBwcml2YXRlIHVwbG9hZFRhcmdldHM6IFVwbG9hZFRhcmdldFtdID0gW107XHJcbiAgcHJpdmF0ZSBkcmFnTGVhdmVMaXN0ZW5lcjogRnVuY3Rpb247XHJcbiAgcHJpdmF0ZSBkcm9wTGlzdGVuZXI6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgZHJhZ092ZXJMaXN0ZW5lcjogRnVuY3Rpb247XHJcbiAgcHJpdmF0ZSBlc2NLZXlMaXN0ZW5lcjogRnVuY3Rpb247XHJcbiAgcHJpdmF0ZSBkcmFnRW50ZXJMaXN0ZW5lcjogRnVuY3Rpb247XHJcbiAgcHJpdmF0ZSBkcmFnRXZlbnRDb3VudCA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcHJlcGFyZVNlcnZpY2U6IFByZXBhcmVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXBsb2FkUmVnaXN0cnk6IFVwbG9hZFJlZ2lzdHJ5U2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0KCkge1xyXG5cclxuICAgIC8vIGdsb2JhbCBkcmFnJmRyb3AgdXBsb2FkIHdpbGwgb25seSBiZSBhdmFpbGFibGUgb24gZGVza3RvcCAod2ViIG9yIGVsZWN0cm9uKVxyXG4gICAgaWYgKEVudmlyb25tZW50RW5haW8uaXNNb2JpbGVFbnZpcm9ubWVudCgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdWJzY3JpYmUgZm9yIHRoZSBsaXN0IG9mIHJlZ2lzdGVyZWQgdXBsb2FkIHRhcmdldHNcclxuICAgIHRoaXMudXBsb2FkUmVnaXN0cnkudXBsb2FkVGFyZ2V0cyQuc3Vic2NyaWJlKCh1cGxvYWRUYXJnZXRzOiBVcGxvYWRUYXJnZXRbXSkgPT4ge1xyXG4gICAgICB0aGlzLnVwbG9hZFRhcmdldHMgPSB1cGxvYWRUYXJnZXRzO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdkcmFnZW50ZXInLCAoZTogRHJhZ0V2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMub25EcmFnRW50ZXIoZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25EcmFnRW50ZXIoZTogRHJhZ0V2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pc1VwbG9hZGluZykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuZmlsZU92ZXIgJiYgdGhpcy5kcmFnQ29udGFpbnNGaWxlcyhlKSkge1xyXG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50ID0gMDtcclxuICAgICAgdGhpcy5zZXRGaWxlT3Zlcih0cnVlKTtcclxuXHJcblxyXG4gICAgICAvLyB1c2UgdGltZW91dCBoZXJlIHRvIGZvcmNlIGFuZ3VsYXIgZGlnZXN0IGN5Y2xlIGJlZm9yZSBjb250aW51aW5nLCBiZWNhdXNlIHdlIGFyZSBhY2Nlc3NpbmcgZG9tIGVsZW1lbnRzXHJcbiAgICAgIC8vIHRoYXQgYXJlIG5vdCB0aGVyZSAoKm5nSWYpIHVudGlsIGZpbGVPdmVyIGlzIHNldCB0byB0cnVlLlxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyB0b2RvOiByZXBsYWNlIGJ5IHJlbmRlcmVyIHNvbHV0aW9uIHdoZW4gYXZhaWxhYmxlIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNTY3NClcclxuICAgICAgICB0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgLy8gYmluZCBsYXRlIChvbmx5LCB3aGVuIG5lZWRlZCkgdG8gZHJhZ2xlYXZlIGV2ZW50IHRvIGF2b2lkIGhlYXZ5IHByb2Nlc3Npbmcgb24gZXZlcnkgZHJhZyBldmVudFxyXG4gICAgICAgIHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LCAnZHJhZ2xlYXZlJywgKGV2dCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kcmFnRXZlbnRDb3VudC0tO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZHJhZ0V2ZW50Q291bnQgPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmRyb3BMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcm9wJywgKGV2dCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHRyYW5zZmVyID0gdGhpcy5fZ2V0VHJhbnNmZXIoZXZ0KTtcclxuICAgICAgICAgIGlmICghdHJhbnNmZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZXZ0KTtcclxuXHJcbiAgICAgICAgICAvLyBjaGVjayBmb3IgZGlyZWN0b3JpZXNcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNmZXIuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgZmUgPSB0cmFuc2Zlci5pdGVtc1tpXS53ZWJraXRHZXRBc0VudHJ5KCk7XHJcbiAgICAgICAgICAgIGlmIChmZS5pc0RpcmVjdG9yeSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW52YWxpZElucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCF0aGlzLmludmFsaWRJbnB1dCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uRmlsZXNEcm9wcGVkKHRyYW5zZmVyLmZpbGVzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2RyYWdvdmVyJywgKGV2dCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHRyYW5zZmVyID0gdGhpcy5fZ2V0VHJhbnNmZXIoZXZ0KTtcclxuICAgICAgICAgIGlmICghdHJhbnNmZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcclxuICAgICAgICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2dCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kcmFnRXZlbnRDb3VudCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0VHJhbnNmZXIoZXZlbnQ6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyIDogZXZlbnQub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXI7IC8vIGpRdWVyeSBmaXg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmV2ZW50QW5kU3RvcChldmVudDogYW55KTogYW55IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25GaWxlc0Ryb3BwZWQoZmlsZUl0ZW1zOiBGaWxlW10pIHtcclxuICAgIC8vIGNsZWFyIHF1ZXVlIHdoZW4gbmV3IGZpbGVzIGFyZSBhZGRlZFxyXG4gICAgLy8gdG9kbzogcmVtb3ZlIGluIGZ1dHVyZSByZWxlYXNlcyB0byBzdXBwb3J0IGNvbGxlY3RpdmUgZmlsZSBhZGRpbmdcclxuICAgIHRoaXMucXVldWUgPSBbXTtcclxuICAgIGZvciAobGV0IGZpbGUgb2YgZmlsZUl0ZW1zKSB7XHJcbiAgICAgIHRoaXMucXVldWUucHVzaChuZXcgVXBsb2FkRmlsZUl0ZW0oZmlsZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGJpbmQgRVNDIGtleSBsaXN0ZW5lciBmb3IgY2xvc2luZyB0aGUgZGlhbG9nIGFzIGxhdGUgYXMgcG9zc2libGVcclxuICAgIGlmICghdGhpcy5lc2NLZXlMaXN0ZW5lcikge1xyXG4gICAgICB0aGlzLmVzY0tleUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2tleXVwJywgKGUpID0+IHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIGNhbGN1bGF0ZSB0b3RhbCBzaXplIG9mIHF1ZXVlXHJcbiAgICB0aGlzLnNldFF1ZXVlU2l6ZSgpO1xyXG4gICAgLy8gZmlsdGVyIGF2YWlsYWJsZSB0YXJnZXRzXHJcbiAgICB0aGlzLnZhbGlkYXRlVXBsb2FkVGFyZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1cGxvYWQgdGFyZ2V0cywgc28gb25seSB2YWxpZCB0YXJnZXRzIHdpbGwgYmUgc2hvd24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVVwbG9hZFRhcmdldHMoKSB7XHJcbiAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRydWU7XHJcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4odGhpcy51cGxvYWRUYXJnZXRzLm1hcCh0ID0+IHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXQodCkpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IHsgdGFyZ2V0OiBVcGxvYWRUYXJnZXQsIHZhbGlkOiBib29sZWFuIH1bXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52YWxpZFVwbG9hZFRhcmdldHMgPSByZXMuZmlsdGVyKHIgPT4gci52YWxpZCkubWFwKGZpbHRlcmVkID0+IGZpbHRlcmVkLnRhcmdldCkucmV2ZXJzZSgpLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGEudHlwZSA9PT0gJ2NvbnRleHQnID8gLTEgOiBiLnR5cGUgPT09ICdjb250ZXh0JyA/IDEgOiAwOyAvLyBDb250ZXh0IHNob3VsZCBiZSBvbiB0b3BcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVXBsb2FkVGFyZ2V0cyA9IFtdO1xyXG4gICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFzVmFsaWRVcGxvYWRUYXJnZXRzID0gdGhpcy52YWxpZFVwbG9hZFRhcmdldHMubGVuZ3RoID4gMDtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXRlVXBsb2FkVGFyZ2V0KHRhcmdldDogVXBsb2FkVGFyZ2V0KTogT2JzZXJ2YWJsZTx7IHRhcmdldDogVXBsb2FkVGFyZ2V0LCB2YWxpZDogYm9vbGVhbiB9PiB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnF1ZXVlKSB7XHJcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlT2Yoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUobyA9PiB7XHJcbiAgICAgIGxldCB2YWxpZCA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuUk9PVCkge1xyXG5cclxuICAgICAgICAvLyB0b2RvOiBhcmUgdGhlcmUgb3RoZXIgcmVzdHJpY3Rpb25zIG9uIHJvb3QgdGFyZ2V0P1xyXG4gICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UuZ2V0UHJlcGFyZUNoaWxkVHlwZXMobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXM6IHsgcGFyZW50OiBzdHJpbmcsIHR5cGVzOiBPYmplY3RUeXBlW10gfSkgPT4ge1xyXG4gICAgICAgICAgICAgIHZhbGlkID0gdGhpcy5xdWV1ZS5sZW5ndGggPiAwICYmIHJlcy50eXBlcy5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xyXG4gICAgICAgICAgICAgIG8uY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcclxuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5PQkpFQ1QpIHtcclxuXHJcbiAgICAgICAgLy8gdG9kbzogY2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBvYmplY3Qgc3VwcG9ydHMgdGhlIGdpdmVuIGZpbGUgdHlwZVxyXG4gICAgICAgIHZhbGlkID0gdGFyZ2V0LnJlZmVyZW5jZU9iamVjdCAmJlxyXG4gICAgICAgICAgdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC50eXBlLm1heEZpbGVzID4gMCAmJlxyXG4gICAgICAgICAgIXRhcmdldC5yZWZlcmVuY2VPYmplY3QubG9jayAmJlxyXG4gICAgICAgICAgIXRhcmdldC5yZWZlcmVuY2VPYmplY3QuaXNGaW5hbGl6ZWQgJiZcclxuICAgICAgICAgICh0YXJnZXQucmVmZXJlbmNlT2JqZWN0LnJpZ2h0cyAmJiB0YXJnZXQucmVmZXJlbmNlT2JqZWN0LnJpZ2h0cy5lZGl0KSAmJlxyXG4gICAgICAgICAgdGhpcy5xdWV1ZS5sZW5ndGggPT09IDE7XHJcbiAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IHZhbGlkfSk7XHJcbiAgICAgICAgby5jb21wbGV0ZSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xyXG5cclxuICAgICAgICAvLyB0b2RvOiBhZGQgY2hlY2tzIHJlbGF0ZWQgdG8gdGhlIHJlZmVyZW5jZSBvYmplY3QgKGUuZy4gYWxsb3dlZCBmaWxlIHR5cGVzKVxyXG4gICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UuZ2V0UHJlcGFyZUNoaWxkVHlwZXModGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCwgdHJ1ZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXM6IHsgcGFyZW50OiBzdHJpbmcsIHR5cGVzOiBPYmplY3RUeXBlW10gfSkgPT4ge1xyXG4gICAgICAgICAgICAgIHZhbGlkID0gdGFyZ2V0LnJlZmVyZW5jZU9iamVjdCAmJiB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XHJcblxyXG4gICAgICAgICAgICAgIC8vIGZvciBDT05URVhUX1RSRUUgdGFyZ2V0cyBhbHNvIGNoZWNrIGlmIHRoZSBkZXNpcmVkIG5vZGVcclxuICAgICAgICAgICAgICAvLyB0eXBlIGlzIHBhcnQgb2YgdGhlIHByZXBhcmUgY2hpbGQgdHlwZXNcclxuICAgICAgICAgICAgICBpZiAodGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5DT05URVhUX1RSRUUgJiYgdGFyZ2V0LnN1YkZvbGRlcikge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViRm9sZGVyOiBhbnkgPSB0YXJnZXQuc3ViRm9sZGVyO1xyXG4gICAgICAgICAgICAgICAgdmFsaWQgPSAhIXJlcy50eXBlcy5maW5kKHQgPT4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmltcGxlbWVudHNUeXBlKHQsIHN1YkZvbGRlci5kYXRhLnR5cGUpKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xyXG4gICAgICAgICAgICAgIG8uY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcclxuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XHJcbiAgICAgICAgby5jb21wbGV0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBmaWxlIGZyb20gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gYmUgdXBsb2FkZWQuXHJcbiAgICogQHBhcmFtIGZpbGVJdGVtIC0gdGhlIGZpbGUgaXRlbSB0byBiZSByZW1vdmVkXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUZpbGVJdGVtKGZpbGVJdGVtOiBVcGxvYWRGaWxlSXRlbSkge1xyXG5cclxuICAgIHRoaXMucXVldWUgPSB0aGlzLnF1ZXVlLmZpbHRlcigoZikgPT4gZi5pZCAhPT0gZmlsZUl0ZW0uaWQpO1xyXG4gICAgaWYgKCF0aGlzLnF1ZXVlLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyB1cGRhdGUgYXZhaWxhYmxlIHVwbG9hZCB0YXJnZXRzIGJlY2F1c2UgdGhlaXIgdmFsaWRpdHlcclxuICAgICAgLy8gbWF5IGJlIGJhc2VkIG9uIHRoZSBxdWV1ZSBzaXplXHJcbiAgICAgIHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXRzKCk7XHJcbiAgICAgIHRoaXMuc2V0UXVldWVTaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9jZWVkIHVwbG9hZCB3aXRoIGEgc2VsZWN0ZWQgdXBsb2FkIHRhcmdldC5cclxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IC0gdGhlIHRhcmdldCB0byB1cGxvYWQgZmlsZXMgdG9cclxuICAgKi9cclxuICBwdWJsaWMgcHJvY2VlZFdpdGhVcGxvYWQodXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQpIHtcclxuXHJcbiAgICBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgIT09IFVwbG9hZFRhcmdldC5DVVNUT00gJiYgdGhpcy5xdWV1ZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIC8vIEZvciBtb3JlIHRoYW4gb25lIGZpbGUgdG8gYmUgdXBsb2FkZWQgdG8gYSBub25lIGN1c3RvbSB0YXJnZXQsIHdlIGxldCB0aGUgdXNlciBkZWNpZGUgaWZcclxuICAgICAgLy8gYmF0Y2ggdXBsb2FkIHNob3VsZCBiZSB1c2VkIG9yIG5vdCAuLi5cclxuXHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGVkVXBsb2FkVGFyZ2V0ID0gdXBsb2FkVGFyZ2V0O1xyXG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0Lk9CSkVDVCkge1xyXG4gICAgICAvLyAuLi4gb3RoZXJ3aXNlIHVwbG9hZCBpcyBzdGFydGVkIGltbWVkaWF0ZWx5XHJcbiAgICAgIHRoaXMuc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0LCBbbnVsbCwgdGhpcy5nZXRTdGF0ZVJvdXRlKCldKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0LCBbbnVsbCwgJy9wcmVwYXJlJ10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvY2VlZCB1cGxvYWQgdXNpbmcgdGhlIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXHJcbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIC0gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBiYXRjaCB1cGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgcHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldCh1c2VCYXRjaFVwbG9hZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zdGFydFVwbG9hZCh0aGlzLnNlbGVjdGVkVXBsb2FkVGFyZ2V0LCBbdXNlQmF0Y2hVcGxvYWQsICcvcHJlcGFyZSddKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0cyB0aGUgc2VsZWN0ZWQgdXBsb2FkIHRhcmdldC5cclxuICAgKi9cclxuICBwdWJsaWMgcmVzZXRTZWxlY3RlZFVwbG9hZFRhcmdldCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdGVSb3V0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci51cmw7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBzdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSB7XHJcbiAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVELCB1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0KTtcclxuICAgIHVwbG9hZFRhcmdldC5vblVwbG9hZFN1Y2Nlc3ModGFyZ2V0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHRoZSBhY3R1YWwgdXBsb2FkLlxyXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgLSB0YXJnZXQgdG8gdXBsb2FkIHRoZSBmaWxlcyB0b1xyXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCAtIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgYmF0Y2ggdXBsb2FkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgWy4uLmFyZ3NdKSB7XHJcblxyXG4gICAgY29uc3QgW3VzZUJhdGNoVXBsb2FkLCB0YXJnZXRdID0gYXJncztcclxuXHJcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudW5iaW5kTGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXHJcbiAgICAgIC51cGxvYWRUb1RhcmdldCh1cGxvYWRUYXJnZXQsIHRoaXMucXVldWUsIHVzZUJhdGNoVXBsb2FkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh1cGxvYWRUYXJnZXQuc3ViRm9sZGVyICYmIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKSB7XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcclxuICAgICAgICAgICAgICBsZXQgb2JzID0gW107XHJcbiAgICAgICAgICAgICAgcmVzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgICAgICAgICBvYnMucHVzaCh0aGlzLnByZXBhcmVTZXJ2aWNlLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyLmlkLCB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIG9ic2VydmFibGVGb3JrSm9pbihvYnMpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAudXBkYXRlUHJlcGFyZWRJdGVtSW5kZXhEYXRhKHJlcy5pZCwgdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLmRhdGEpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3VjY2Vzc2Z1bFVwbG9hZCh0YXJnZXQsIHVwbG9hZFRhcmdldCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHVwbG9hZFRhcmdldC5vblVwbG9hZEZhaWwoKTtcclxuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IudGl0bGUnKSxcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLmRlc2NyaXB0aW9uJykpXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLnJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVldWVTaXplKCkge1xyXG4gICAgbGV0IHMgPSAwO1xyXG4gICAgZm9yIChsZXQgZiBvZiB0aGlzLnF1ZXVlKSB7XHJcbiAgICAgIHMgKz0gZi5zaXplO1xyXG4gICAgfVxyXG4gICAgdGhpcy5xdWV1ZVNpemUgPSBzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2UgdGhlIHVwbG9hZCBvdmVybGF5IGFuZCByZWxlYXNlIGFsbCBib3VuZCByZXNvdXJjZXMuXHJcbiAgICovXHJcbiAgY2xvc2UoKSB7XHJcbiAgICAvLyB1bmJpbmQgYm91bmQgZXZlbnQgbGlzdGVuZXIsIHdoZW4gdGhleSBhcmUgbm90IG5lZWRlZCBhbnltb3JlXHJcbiAgICB0aGlzLnVuYmluZExpc3RlbmVycygpO1xyXG4gICAgLy8gY2xlYXIgdXBsb2FkIHF1ZXVlXHJcbiAgICB0aGlzLnF1ZXVlID0gW107XHJcbiAgICAvLyBoaWRlIHRoZSBvdmVybGF5XHJcbiAgICB0aGlzLnNldEZpbGVPdmVyKGZhbHNlKTtcclxuICAgIHRoaXMuaW52YWxpZElucHV0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZpbGVPdmVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmZpbGVPdmVyID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnNldE92ZXJsYXlBY3RpdmUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bmJpbmRMaXN0ZW5lcnMoKSB7XHJcbiAgICBpZiAodGhpcy5kcmFnTGVhdmVMaXN0ZW5lcikge1xyXG4gICAgICB0aGlzLmRyYWdMZWF2ZUxpc3RlbmVyKCk7XHJcbiAgICAgIHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZHJhZ092ZXJMaXN0ZW5lcikge1xyXG4gICAgICB0aGlzLmRyYWdPdmVyTGlzdGVuZXIoKTtcclxuICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3BMaXN0ZW5lcikge1xyXG4gICAgICB0aGlzLmRyb3BMaXN0ZW5lcigpO1xyXG4gICAgICB0aGlzLmRyb3BMaXN0ZW5lciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lc2NLZXlMaXN0ZW5lcikge1xyXG4gICAgICB0aGlzLmVzY0tleUxpc3RlbmVyKCk7XHJcbiAgICAgIHRoaXMuZXNjS2V5TGlzdGVuZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IGRyYWcgZXZlbnQgY29udGFpbnMgb25lIG9yIG1vcmUgZmlsZXMuXHJcbiAgICogQHBhcmFtIGV2ZW50IC0gdGhlIGRyYWcgZXZlbnQgdG8gYmUgY2hlY2tlZFxyXG4gICAqIEByZXR1cm5zIG51bWJlciBvZiBmaWxlc1xyXG4gICAqL1xyXG4gICBwcml2YXRlIGRyYWdDb250YWluc0ZpbGVzKGV2ZW50OiBEcmFnRXZlbnQpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zIHx8IFtdKS5maWx0ZXIoaSA9PiBpLmtpbmQgPT09ICdmaWxlJyAmJiBpLnR5cGUpLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8vIG5nRm9yIHRyYWNraW5nIGZ1bmN0aW9uIGZvciB1cGxvYWQgdGFyZ2V0c1xyXG4gIHRhcmdldFRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICAvLyBuZ0ZvciB0cmFja2luZyBmdW5jdGlvbiBmb3IgZmlsZSBpdGVtc1xyXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFFLFFBQVEsSUFBSSxrQkFBa0IsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFDLFNBQVMsRUFBVSxTQUFTLEVBQUUsU0FBUyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUVMLFlBQVksRUFDWixVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQUUsYUFBYSxFQUNoQyxNQUFNLGNBQWMsQ0FBQztBQVF0QixNQUFNLE9BQU8sc0JBQXNCO0lBcUJqQyxZQUFvQixNQUFjLEVBQ2QsUUFBbUIsRUFDbkIsY0FBOEIsRUFDOUIsU0FBMkIsRUFDM0IsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsY0FBcUM7UUFOckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQXZCekQsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFNN0IsdUJBQWtCLEdBQW1CLEVBQUUsQ0FBQztRQUdoQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFNbkMsbUJBQWMsR0FBRyxDQUFDLENBQUM7SUFTM0IsQ0FBQztJQUVPLElBQUk7UUFFViw4RUFBOEU7UUFDOUUsSUFBSSxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFO1lBQzdFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxDQUFZO1FBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUd2QiwwR0FBMEc7WUFDMUcsNERBQTREO1lBQzVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2Qsc0dBQXNHO2dCQUN0RyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckMsaUdBQWlHO2dCQUNqRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQy9GLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTt3QkFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3FCQUNkO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3JGLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ2IsT0FBTztxQkFDUjtvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUUxQix3QkFBd0I7b0JBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDOUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO3dCQUNoRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7NEJBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO3lCQUMxQjtxQkFDRjtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTt3QkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3JDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDN0YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDYixPQUFPO3FCQUNSO29CQUNELFFBQVEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO29CQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQVU7UUFDN0IsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLGNBQWM7SUFDbkcsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFVO1FBQ2hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxTQUFpQjtRQUN0Qyx1Q0FBdUM7UUFDdkMsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFFRCxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELGdDQUFnQztRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNLLHFCQUFxQjtRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUUsU0FBUyxDQUNSLENBQUMsR0FBK0MsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFHLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBMkI7WUFDOUYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQy9CLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQUMsTUFBb0I7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixPQUFPLFlBQVksQ0FBQyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBRWxCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxFQUFFO2dCQUVyQyxxREFBcUQ7Z0JBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztxQkFDakQsU0FBUyxDQUNSLENBQUMsR0FBNEMsRUFBRSxFQUFFO29CQUMvQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7b0JBQ3ZDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7b0JBQ3ZDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZixDQUFDLENBQ0YsQ0FBQzthQUNMO2lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUU5QyxtRUFBbUU7Z0JBQ25FLEtBQUssR0FBRyxNQUFNLENBQUMsZUFBZTtvQkFDNUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUM7b0JBQ3hDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJO29CQUM1QixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsV0FBVztvQkFDbkMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNkO2lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFlBQVksRUFBRTtnQkFFNUYsNkVBQTZFO2dCQUM3RSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQztxQkFDdEUsU0FBUyxDQUNSLENBQUMsR0FBNEMsRUFBRSxFQUFFO29CQUMvQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUVoRiwwREFBMEQ7b0JBQzFELDBDQUEwQztvQkFDMUMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTt3QkFDakUsTUFBTSxTQUFTLEdBQVEsTUFBTSxDQUFDLFNBQVMsQ0FBQzt3QkFDeEMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQzFGO29CQUVELENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO29CQUN2QyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO29CQUN2QyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQyxDQUNGLENBQUM7YUFDTDtpQkFBTTtnQkFDTCxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ2Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjLENBQUMsUUFBd0I7UUFFNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO2FBQU07WUFDTCx5REFBeUQ7WUFDekQsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxpQkFBaUIsQ0FBQyxZQUEwQjtRQUVqRCxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEUsMkZBQTJGO1lBQzNGLHlDQUF5QztZQUd6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsWUFBWSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDcEQsOENBQThDO1lBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0kseUJBQXlCLENBQUMsY0FBdUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSx5QkFBeUI7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUdPLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkYsWUFBWSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVcsQ0FBQyxZQUEwQixFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFdkQsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjO2FBQ2hCLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7YUFDeEQsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLFlBQVksQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUM5RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RCLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDYixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNkLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ3BHLENBQUMsQ0FBQyxDQUFDO29CQUNILGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQ3RGO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjO3lCQUNoQiwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt5QkFDckUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztpQkFDakU7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQzdDO1lBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDLEVBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsRUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1FBQ0osSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3hCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztTQUMvQjtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDOUI7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ00saUJBQWlCLENBQUMsS0FBZ0I7UUFDekMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFGLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7OztZQTlZRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsbXBLQUE4Qzs7YUFFL0M7OztZQW5CTyxNQUFNO1lBRGEsU0FBUztZQVNsQyxjQUFjO1lBRWQsZ0JBQWdCO1lBQ0UsYUFBYTtZQVIvQixZQUFZO1lBRVoscUJBQXFCOzs7d0JBaUJwQixTQUFTLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mLCBmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBIb3N0TGlzdGVuZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBPYmplY3RUeXBlLFxyXG4gIEV2ZW50U2VydmljZSxcclxuICBFbmFpb0V2ZW50LFxyXG4gIFVwbG9hZFJlZ2lzdHJ5U2VydmljZSxcclxuICBVcGxvYWRUYXJnZXQsXHJcbiAgVXBsb2FkRmlsZUl0ZW0sXHJcbiAgUHJlcGFyZVNlcnZpY2UsXHJcbiAgVXRpbHMsXHJcbiAgVHJhbnNsYXRlU2VydmljZSxcclxuICBFbnZpcm9ubWVudEVuYWlvLCBTeXN0ZW1TZXJ2aWNlXHJcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtVdGlsaXRpZXNTZXJ2aWNlIGFzIFV0aWxpdGllc30gZnJvbSAnLi4vdXRpbC9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLXVwbG9hZC1vdmVybGF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXknKSBvdmVybGF5RWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHF1ZXVlOiBVcGxvYWRGaWxlSXRlbVtdID0gW107XHJcbiAgZmlsZU92ZXI6IGJvb2xlYW47XHJcbiAgaXNVcGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgaGFzVmFsaWRVcGxvYWRUYXJnZXRzOiBib29sZWFuO1xyXG4gIGludmFsaWRJbnB1dDogYm9vbGVhbjtcclxuICBxdWV1ZVNpemU6IG51bWJlcjtcclxuICB2YWxpZFVwbG9hZFRhcmdldHM6IFVwbG9hZFRhcmdldFtdID0gW107XHJcbiAgc2VsZWN0ZWRVcGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldDtcclxuXHJcbiAgcHJpdmF0ZSB1cGxvYWRUYXJnZXRzOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xyXG4gIHByaXZhdGUgZHJhZ0xlYXZlTGlzdGVuZXI6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgZHJvcExpc3RlbmVyOiBGdW5jdGlvbjtcclxuICBwcml2YXRlIGRyYWdPdmVyTGlzdGVuZXI6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgZXNjS2V5TGlzdGVuZXI6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgZHJhZ0VudGVyTGlzdGVuZXI6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgZHJhZ0V2ZW50Q291bnQgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgICBwcml2YXRlIHByZXBhcmVTZXJ2aWNlOiBQcmVwYXJlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHVwbG9hZFJlZ2lzdHJ5OiBVcGxvYWRSZWdpc3RyeVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCgpIHtcclxuXHJcbiAgICAvLyBnbG9iYWwgZHJhZyZkcm9wIHVwbG9hZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIG9uIGRlc2t0b3AgKHdlYiBvciBlbGVjdHJvbilcclxuICAgIGlmIChFbnZpcm9ubWVudEVuYWlvLmlzTW9iaWxlRW52aXJvbm1lbnQoKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3Vic2NyaWJlIGZvciB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIHVwbG9hZCB0YXJnZXRzXHJcbiAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnVwbG9hZFRhcmdldHMkLnN1YnNjcmliZSgodXBsb2FkVGFyZ2V0czogVXBsb2FkVGFyZ2V0W10pID0+IHtcclxuICAgICAgdGhpcy51cGxvYWRUYXJnZXRzID0gdXBsb2FkVGFyZ2V0cztcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnZHJhZ2VudGVyJywgKGU6IERyYWdFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLm9uRHJhZ0VudGVyKGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRHJhZ0VudGVyKGU6IERyYWdFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLmZpbGVPdmVyICYmIHRoaXMuZHJhZ0NvbnRhaW5zRmlsZXMoZSkpIHtcclxuICAgICAgdGhpcy5kcmFnRXZlbnRDb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XHJcblxyXG5cclxuICAgICAgLy8gdXNlIHRpbWVvdXQgaGVyZSB0byBmb3JjZSBhbmd1bGFyIGRpZ2VzdCBjeWNsZSBiZWZvcmUgY29udGludWluZywgYmVjYXVzZSB3ZSBhcmUgYWNjZXNzaW5nIGRvbSBlbGVtZW50c1xyXG4gICAgICAvLyB0aGF0IGFyZSBub3QgdGhlcmUgKCpuZ0lmKSB1bnRpbCBmaWxlT3ZlciBpcyBzZXQgdG8gdHJ1ZS5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gdG9kbzogcmVwbGFjZSBieSByZW5kZXJlciBzb2x1dGlvbiB3aGVuIGF2YWlsYWJsZSAoaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU2NzQpXHJcbiAgICAgICAgdGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIC8vIGJpbmQgbGF0ZSAob25seSwgd2hlbiBuZWVkZWQpIHRvIGRyYWdsZWF2ZSBldmVudCB0byBhdm9pZCBoZWF2eSBwcm9jZXNzaW5nIG9uIGV2ZXJ5IGRyYWcgZXZlbnRcclxuICAgICAgICB0aGlzLmRyYWdMZWF2ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2RyYWdsZWF2ZScsIChldnQpID0+IHtcclxuICAgICAgICAgIHRoaXMuZHJhZ0V2ZW50Q291bnQtLTtcclxuICAgICAgICAgIGlmICh0aGlzLmRyYWdFdmVudENvdW50ID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kcm9wTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LCAnZHJvcCcsIChldnQpID0+IHtcclxuICAgICAgICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2dCk7XHJcbiAgICAgICAgICBpZiAoIXRyYW5zZmVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2dCk7XHJcblxyXG4gICAgICAgICAgLy8gY2hlY2sgZm9yIGRpcmVjdG9yaWVzXHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZmVyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZlID0gdHJhbnNmZXIuaXRlbXNbaV0ud2Via2l0R2V0QXNFbnRyeSgpO1xyXG4gICAgICAgICAgICBpZiAoZmUuaXNEaXJlY3RvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmludmFsaWRJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkZpbGVzRHJvcHBlZCh0cmFuc2Zlci5maWxlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcmFnb3ZlcicsIChldnQpID0+IHtcclxuICAgICAgICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2dCk7XHJcbiAgICAgICAgICBpZiAoIXRyYW5zZmVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XHJcbiAgICAgICAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHJhZ0V2ZW50Q291bnQrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFRyYW5zZmVyKGV2ZW50OiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IGV2ZW50Lm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyOyAvLyBqUXVlcnkgZml4O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJldmVudEFuZFN0b3AoZXZlbnQ6IGFueSk6IGFueSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRmlsZXNEcm9wcGVkKGZpbGVJdGVtczogRmlsZVtdKSB7XHJcbiAgICAvLyBjbGVhciBxdWV1ZSB3aGVuIG5ldyBmaWxlcyBhcmUgYWRkZWRcclxuICAgIC8vIHRvZG86IHJlbW92ZSBpbiBmdXR1cmUgcmVsZWFzZXMgdG8gc3VwcG9ydCBjb2xsZWN0aXZlIGZpbGUgYWRkaW5nXHJcbiAgICB0aGlzLnF1ZXVlID0gW107XHJcbiAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVJdGVtcykge1xyXG4gICAgICB0aGlzLnF1ZXVlLnB1c2gobmV3IFVwbG9hZEZpbGVJdGVtKGZpbGUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBiaW5kIEVTQyBrZXkgbGlzdGVuZXIgZm9yIGNsb3NpbmcgdGhlIGRpYWxvZyBhcyBsYXRlIGFzIHBvc3NpYmxlXHJcbiAgICBpZiAoIXRoaXMuZXNjS2V5TGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdrZXl1cCcsIChlKSA9PiB7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykge1xyXG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyBjYWxjdWxhdGUgdG90YWwgc2l6ZSBvZiBxdWV1ZVxyXG4gICAgdGhpcy5zZXRRdWV1ZVNpemUoKTtcclxuICAgIC8vIGZpbHRlciBhdmFpbGFibGUgdGFyZ2V0c1xyXG4gICAgdGhpcy52YWxpZGF0ZVVwbG9hZFRhcmdldHMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciBsaXN0IG9mIHJlZ2lzdGVyZWQgdXBsb2FkIHRhcmdldHMsIHNvIG9ubHkgdmFsaWQgdGFyZ2V0cyB3aWxsIGJlIHNob3duLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRUYXJnZXRzKCkge1xyXG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xyXG4gICAgb2JzZXJ2YWJsZUZvcmtKb2luKHRoaXMudXBsb2FkVGFyZ2V0cy5tYXAodCA9PiB0aGlzLnZhbGlkYXRlVXBsb2FkVGFyZ2V0KHQpKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiB7IHRhcmdldDogVXBsb2FkVGFyZ2V0LCB2YWxpZDogYm9vbGVhbiB9W10pID0+IHtcclxuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gcmVzLmZpbHRlcihyID0+IHIudmFsaWQpLm1hcChmaWx0ZXJlZCA9PiBmaWx0ZXJlZC50YXJnZXQpLnJldmVyc2UoKS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBhLnR5cGUgPT09ICdjb250ZXh0JyA/IC0xIDogYi50eXBlID09PSAnY29udGV4dCcgPyAxIDogMDsgLy8gQ29udGV4dCBzaG91bGQgYmUgb24gdG9wXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy52YWxpZFVwbG9hZFRhcmdldHMgPSBbXTtcclxuICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVVwbG9hZFRhcmdldCh0YXJnZXQ6IFVwbG9hZFRhcmdldCk6IE9ic2VydmFibGU8eyB0YXJnZXQ6IFVwbG9hZFRhcmdldCwgdmFsaWQ6IGJvb2xlYW4gfT4ge1xyXG5cclxuICAgIGlmICghdGhpcy5xdWV1ZSkge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xyXG4gICAgICBsZXQgdmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgICAgIGlmICh0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LlJPT1QpIHtcclxuXHJcbiAgICAgICAgLy8gdG9kbzogYXJlIHRoZXJlIG90aGVyIHJlc3RyaWN0aW9ucyBvbiByb290IHRhcmdldD9cclxuICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLmdldFByZXBhcmVDaGlsZFR5cGVzKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzOiB7IHBhcmVudDogc3RyaW5nLCB0eXBlczogT2JqZWN0VHlwZVtdIH0pID0+IHtcclxuICAgICAgICAgICAgICB2YWxpZCA9IHRoaXMucXVldWUubGVuZ3RoID4gMCAmJiByZXMudHlwZXMubGVuZ3RoID4gMDtcclxuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogdmFsaWR9KTtcclxuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgby5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuT0JKRUNUKSB7XHJcblxyXG4gICAgICAgIC8vIHRvZG86IGNoZWNrIGlmIHRoZSByZWZlcmVuY2Ugb2JqZWN0IHN1cHBvcnRzIHRoZSBnaXZlbiBmaWxlIHR5cGVcclxuICAgICAgICB2YWxpZCA9IHRhcmdldC5yZWZlcmVuY2VPYmplY3QgJiZcclxuICAgICAgICAgIHRhcmdldC5yZWZlcmVuY2VPYmplY3QudHlwZS5tYXhGaWxlcyA+IDAgJiZcclxuICAgICAgICAgICF0YXJnZXQucmVmZXJlbmNlT2JqZWN0LmxvY2sgJiZcclxuICAgICAgICAgICF0YXJnZXQucmVmZXJlbmNlT2JqZWN0LmlzRmluYWxpemVkICYmXHJcbiAgICAgICAgICAodGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5yaWdodHMgJiYgdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5yaWdodHMuZWRpdCkgJiZcclxuICAgICAgICAgIHRoaXMucXVldWUubGVuZ3RoID09PSAxO1xyXG4gICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xyXG4gICAgICAgIG8uY29tcGxldGUoKTtcclxuICAgICAgfSBlbHNlIGlmICh0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFQgfHwgdGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5DT05URVhUX1RSRUUpIHtcclxuXHJcbiAgICAgICAgLy8gdG9kbzogYWRkIGNoZWNrcyByZWxhdGVkIHRvIHRoZSByZWZlcmVuY2Ugb2JqZWN0IChlLmcuIGFsbG93ZWQgZmlsZSB0eXBlcylcclxuICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLmdldFByZXBhcmVDaGlsZFR5cGVzKHRhcmdldC5yZWZlcmVuY2VPYmplY3QuaWQsIHRydWUpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzOiB7IHBhcmVudDogc3RyaW5nLCB0eXBlczogT2JqZWN0VHlwZVtdIH0pID0+IHtcclxuICAgICAgICAgICAgICB2YWxpZCA9IHRhcmdldC5yZWZlcmVuY2VPYmplY3QgJiYgdGhpcy5xdWV1ZS5sZW5ndGggPiAwICYmIHJlcy50eXBlcy5sZW5ndGggPiAwO1xyXG5cclxuICAgICAgICAgICAgICAvLyBmb3IgQ09OVEVYVF9UUkVFIHRhcmdldHMgYWxzbyBjaGVjayBpZiB0aGUgZGVzaXJlZCBub2RlXHJcbiAgICAgICAgICAgICAgLy8gdHlwZSBpcyBwYXJ0IG9mIHRoZSBwcmVwYXJlIGNoaWxkIHR5cGVzXHJcbiAgICAgICAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVF9UUkVFICYmIHRhcmdldC5zdWJGb2xkZXIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1YkZvbGRlcjogYW55ID0gdGFyZ2V0LnN1YkZvbGRlcjtcclxuICAgICAgICAgICAgICAgIHZhbGlkID0gISFyZXMudHlwZXMuZmluZCh0ID0+IHRoaXMuc3lzdGVtU2VydmljZS5pbXBsZW1lbnRzVHlwZSh0LCBzdWJGb2xkZXIuZGF0YS50eXBlKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogdmFsaWR9KTtcclxuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgby5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiBmYWxzZX0pO1xyXG4gICAgICAgIG8uY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgZmlsZSBmcm9tIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGJlIHVwbG9hZGVkLlxyXG4gICAqIEBwYXJhbSBmaWxlSXRlbSAtIHRoZSBmaWxlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVGaWxlSXRlbShmaWxlSXRlbTogVXBsb2FkRmlsZUl0ZW0pIHtcclxuXHJcbiAgICB0aGlzLnF1ZXVlID0gdGhpcy5xdWV1ZS5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbGVJdGVtLmlkKTtcclxuICAgIGlmICghdGhpcy5xdWV1ZS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdXBkYXRlIGF2YWlsYWJsZSB1cGxvYWQgdGFyZ2V0cyBiZWNhdXNlIHRoZWlyIHZhbGlkaXR5XHJcbiAgICAgIC8vIG1heSBiZSBiYXNlZCBvbiB0aGUgcXVldWUgc2l6ZVxyXG4gICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkVGFyZ2V0cygpO1xyXG4gICAgICB0aGlzLnNldFF1ZXVlU2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvY2VlZCB1cGxvYWQgd2l0aCBhIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXHJcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldCAtIHRoZSB0YXJnZXQgdG8gdXBsb2FkIGZpbGVzIHRvXHJcbiAgICovXHJcbiAgcHVibGljIHByb2NlZWRXaXRoVXBsb2FkKHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0KSB7XHJcblxyXG4gICAgaWYgKHVwbG9hZFRhcmdldC50eXBlICE9PSBVcGxvYWRUYXJnZXQuQ1VTVE9NICYmIHRoaXMucXVldWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAvLyBGb3IgbW9yZSB0aGFuIG9uZSBmaWxlIHRvIGJlIHVwbG9hZGVkIHRvIGEgbm9uZSBjdXN0b20gdGFyZ2V0LCB3ZSBsZXQgdGhlIHVzZXIgZGVjaWRlIGlmXHJcbiAgICAgIC8vIGJhdGNoIHVwbG9hZCBzaG91bGQgYmUgdXNlZCBvciBub3QgLi4uXHJcblxyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZFVwbG9hZFRhcmdldCA9IHVwbG9hZFRhcmdldDtcclxuICAgIH0gZWxzZSBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5PQkpFQ1QpIHtcclxuICAgICAgLy8gLi4uIG90aGVyd2lzZSB1cGxvYWQgaXMgc3RhcnRlZCBpbW1lZGlhdGVseVxyXG4gICAgICB0aGlzLnN0YXJ0VXBsb2FkKHVwbG9hZFRhcmdldCwgW251bGwsIHRoaXMuZ2V0U3RhdGVSb3V0ZSgpXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXJ0VXBsb2FkKHVwbG9hZFRhcmdldCwgW251bGwsICcvcHJlcGFyZSddKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb2NlZWQgdXBsb2FkIHVzaW5nIHRoZSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxyXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCAtIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgYmF0Y2ggdXBsb2FkXHJcbiAgICovXHJcbiAgcHVibGljIHByb2NlZWRXaXRoU2VsZWN0ZWRUYXJnZXQodXNlQmF0Y2hVcGxvYWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RhcnRVcGxvYWQodGhpcy5zZWxlY3RlZFVwbG9hZFRhcmdldCwgW3VzZUJhdGNoVXBsb2FkLCAnL3ByZXBhcmUnXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldHMgdGhlIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXHJcbiAgICovXHJcbiAgcHVibGljIHJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXBsb2FkVGFyZ2V0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldFN0YXRlUm91dGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgc3VjY2Vzc2Z1bFVwbG9hZCh0YXJnZXQsIHVwbG9hZFRhcmdldCkge1xyXG4gICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRCwgdXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdCk7XHJcbiAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRTdWNjZXNzKHRhcmdldCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCB0aGUgYWN0dWFsIHVwbG9hZC5cclxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IC0gdGFyZ2V0IHRvIHVwbG9hZCB0aGUgZmlsZXMgdG9cclxuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgLSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHVwbG9hZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQsIFsuLi5hcmdzXSkge1xyXG5cclxuICAgIGNvbnN0IFt1c2VCYXRjaFVwbG9hZCwgdGFyZ2V0XSA9IGFyZ3M7XHJcblxyXG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnVuYmluZExpc3RlbmVycygpO1xyXG4gICAgdGhpcy5wcmVwYXJlU2VydmljZVxyXG4gICAgICAudXBsb2FkVG9UYXJnZXQodXBsb2FkVGFyZ2V0LCB0aGlzLnF1ZXVlLCB1c2VCYXRjaFVwbG9hZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodXBsb2FkVGFyZ2V0LnN1YkZvbGRlciAmJiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkge1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKSB7XHJcbiAgICAgICAgICAgICAgbGV0IG9icyA9IFtdO1xyXG4gICAgICAgICAgICAgIHJlcy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgb2JzLnB1c2godGhpcy5wcmVwYXJlU2VydmljZS51cGRhdGVQcmVwYXJlZEl0ZW1JbmRleERhdGEoci5pZCwgdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLmRhdGEpKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBvYnNlcnZhYmxlRm9ya0pvaW4ob2JzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyZXMuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRGYWlsKCk7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLnRpdGxlJyksXHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXBsb2FkLmdsb2JhbC5lcnJvci5kZXNjcmlwdGlvbicpKVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5yZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1ZXVlU2l6ZSgpIHtcclxuICAgIGxldCBzID0gMDtcclxuICAgIGZvciAobGV0IGYgb2YgdGhpcy5xdWV1ZSkge1xyXG4gICAgICBzICs9IGYuc2l6ZTtcclxuICAgIH1cclxuICAgIHRoaXMucXVldWVTaXplID0gcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlIHRoZSB1cGxvYWQgb3ZlcmxheSBhbmQgcmVsZWFzZSBhbGwgYm91bmQgcmVzb3VyY2VzLlxyXG4gICAqL1xyXG4gIGNsb3NlKCkge1xyXG4gICAgLy8gdW5iaW5kIGJvdW5kIGV2ZW50IGxpc3RlbmVyLCB3aGVuIHRoZXkgYXJlIG5vdCBuZWVkZWQgYW55bW9yZVxyXG4gICAgdGhpcy51bmJpbmRMaXN0ZW5lcnMoKTtcclxuICAgIC8vIGNsZWFyIHVwbG9hZCBxdWV1ZVxyXG4gICAgdGhpcy5xdWV1ZSA9IFtdO1xyXG4gICAgLy8gaGlkZSB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5zZXRGaWxlT3ZlcihmYWxzZSk7XHJcbiAgICB0aGlzLmludmFsaWRJbnB1dCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGaWxlT3Zlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5maWxlT3ZlciA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGxvYWRSZWdpc3RyeS5zZXRPdmVybGF5QWN0aXZlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5iaW5kTGlzdGVuZXJzKCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lcigpO1xyXG4gICAgICB0aGlzLmRyYWdMZWF2ZUxpc3RlbmVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyYWdPdmVyTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyKCk7XHJcbiAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5kcm9wTGlzdGVuZXIoKTtcclxuICAgICAgdGhpcy5kcm9wTGlzdGVuZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZXNjS2V5TGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lcigpO1xyXG4gICAgICB0aGlzLmVzY0tleUxpc3RlbmVyID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgY3VycmVudCBkcmFnIGV2ZW50IGNvbnRhaW5zIG9uZSBvciBtb3JlIGZpbGVzLlxyXG4gICAqIEBwYXJhbSBldmVudCAtIHRoZSBkcmFnIGV2ZW50IHRvIGJlIGNoZWNrZWRcclxuICAgKiBAcmV0dXJucyBudW1iZXIgb2YgZmlsZXNcclxuICAgKi9cclxuICAgcHJpdmF0ZSBkcmFnQ29udGFpbnNGaWxlcyhldmVudDogRHJhZ0V2ZW50KTogbnVtYmVyIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcyB8fCBbXSkuZmlsdGVyKGkgPT4gaS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8vIG5nRm9yIHRyYWNraW5nIGZ1bmN0aW9uIGZvciB1cGxvYWQgdGFyZ2V0c1xyXG4gIHRhcmdldFRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICAvLyBuZ0ZvciB0cmFja2luZyBmdW5jdGlvbiBmb3IgZmlsZSBpdGVtc1xyXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -90,7 +90,7 @@ export class BpmService {
|
|
|
90
90
|
.getJson(`/process/${processId}/file`, this.backend.getBpmBase()).pipe(map(res => res.content.map(i => {
|
|
91
91
|
return {
|
|
92
92
|
id: i.elementid,
|
|
93
|
-
title: i.title
|
|
93
|
+
title: i.title,
|
|
94
94
|
description: i.description ? i.description : '',
|
|
95
95
|
iconid: i.iconid,
|
|
96
96
|
creator: i.creator,
|
|
@@ -247,4 +247,4 @@ BpmService.ctorParameters = () => [
|
|
|
247
247
|
{ type: EventService },
|
|
248
248
|
{ type: InboxService }
|
|
249
249
|
];
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBYyxhQUFhLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBK0IsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkU7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFTckIsWUFBb0IsWUFBaUMsRUFDakMsT0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIMUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlC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QUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRTtpQkFBTTtnQkFDTCxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUMvQjtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNMLE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUE3UEYsVUFBVTs7O1lBZkgsbUJBQW1CO1lBTG5CLGNBQWM7WUFJZCxZQUFZO1lBRFosWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBvZiBhcyBvYnNlcnZhYmxlT2YsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge21lcmdlTWFwLCB0YXAsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcclxuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xyXG5pbXBvcnQge1dvcmtJdGVtSGlzdG9yeUVudHJ5fSBmcm9tICcuLi8uLi9tb2RlbC93b3JrLWl0ZW0taGlzdG9yeS5tb2RlbCc7XHJcbmltcG9ydCB7RG1zT2JqZWN0fSBmcm9tICcuLi8uLi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcclxuaW1wb3J0IHtJbmJveFNlcnZpY2V9IGZyb20gJy4uL2luYm94L2luYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0NhcGFiaWxpdGllc1NlcnZpY2V9IGZyb20gJy4uL2NhcGFiaWxpdGllcy9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7RXhlY3V0YWJsZVByb2Nlc3MsIEZpbGVFbnRyeSwgUHJvY2VzcywgV29ya0l0ZW0sIFdvcmtJdGVtQWN0aW9ufSBmcm9tICcuLi8uLi9tb2RlbC9icG0ubW9kZWwnO1xyXG5pbXBvcnQge0NsaXBib2FyZH0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0NsaXBib2FyZEFjdGlvbn0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC1hY3Rpb24uZW51bSc7XHJcblxyXG4vKipcclxuICogYEJwbVNlcnZpY2VgIGhhbmRsZXMgaW50ZXJhY3Rpb24gcmVsYXRlZCB0byBCUE0gdGFza3MuXHJcbiAqXHJcbiAqIFRoZSBtYWluIHBhcnRzIHByb3ZpZGVkIGFuZCB1c2VkIGJ5IHRoaXMgc2VydmljZSBhcmUgUHJvY2Vzc2VzIGFuZCBXb3JrSXRlbXMuXHJcbiAqIFByb2Nlc3NlcyBhcmUgZGVmaW5lZCBvbiB0aGUgYmFja2VuZCBzaWRlLiBUaGV5IGRlc2NyaWJlIGEgc2V0IG9mIHRhc2tzIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBieSB0aGUgcHJvY2Vzcy5cclxuICogVGFza3MgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24gYXJlIHJlZmVycmVkIHRvIGFzIFdvcmtJdGVtcy5cclxuICpcclxuICogUHJvY2Vzc2VzIGNhbiBiZSByZWxhdGVkIHRvIGEgc3BlY2lhbCBvYmplY3QgdHlwZSwgYnV0IHRoZXkgZG9uJ3QgaGF2ZSB0by4gSW4gYWRkaXRpb24gdG8gdGhhdCB0aGV5IGNhbiByZWZlclxyXG4gKiB0byBkbXMgb2JqZWN0cy5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJwbVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHByb2Nlc3NJdGVtczogUHJvY2Vzc1tdO1xyXG4gIHByaXZhdGUgcHJvY2Vzc0l0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJvY2Vzc1tdPigxKTtcclxuICAvKipcclxuICAgKiBMb25nIHRlcm0gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCBwcm9jZXNzZXNcclxuICAgKi9cclxuICBwcm9jZXNzSXRlbXMkOiBPYnNlcnZhYmxlPFByb2Nlc3NbXT4gPSB0aGlzLnByb2Nlc3NJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGFsbCBwcm9jZXNzZXMgb2YgdGhlIGN1cnJlbnQgdXNlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBzaXplIE1heGltdW0gbnVtYmVyIG9mIHByb2Nlc3NlcyB0byBiZSBmZXRjaGVkXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBQcm9jZXNzZXNcclxuICAgKi9cclxuICBnZXRQcm9jZXNzZXMoc2l6ZTogbnVtYmVyID0gMTAwMCk6IE9ic2VydmFibGU8UHJvY2Vzc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvcHJvY2Vzcy91c2VyP3NpemU9JHtzaXplfWAsIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5jb250ZW50Lm1hcChpdGVtID0+IG5ldyBQcm9jZXNzKGl0ZW0pKSksXHJcbiAgICAgICAgdGFwKChwcm9jZXNzZXM6IFByb2Nlc3NbXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wcm9jZXNzSXRlbXMgPSBwcm9jZXNzZXM7XHJcbiAgICAgICAgICB0aGlzLnByb2Nlc3NJdGVtc1NvdXJjZS5uZXh0KHRoaXMucHJvY2Vzc0l0ZW1zKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZm9yIHRoZSBleGVjdXRhYmxlIFByb2Nlc3Nlcy4gSWYgdHlwZXMgYXJlIHByb3ZpZGVkLCB5b3UnbGwgZ2V0XHJcbiAgICogb25seSB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGV4ZWN1dGFibGUgZm9yIGFsbCBvZiB0aGVtXHJcbiAgICogQHBhcmFtIHR5cGVzIExpc3Qgb2YgZG1zIG9iamVjdCB0eXBlcyB0byBmZXRjaCBleGVjdXRhYmxlIHByb2Nlc3NlcyBmb3JcclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIGV4ZWN1dGFibGUgcHJvY2Vzc2VzXHJcbiAgICovXHJcbiAgZ2V0RXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XHJcbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaGFzQ2FwYWJpbGl0eSgnYnBtJykpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hFeGVjdXRhYmxlUHJvY2Vzc2VzKHR5cGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlT2YoW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBleGVjdXRhYmxlIFByb2Nlc3NlcyBmb3IgYSBnaXZlbiBzZXQgb2YgZG1zIG9iamVjdC5Zb3UnbGwgZ2V0XHJcbiAgICogb25seSB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGV4ZWN1dGFibGUgZm9yIGFsbCBvZiB0aGVtLlxyXG4gICAqIEBwYXJhbSBkbXNPYmplY3RzIExpc3Qgb2YgZG1zIG9iamVjdHMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBleGVjdXRhYmxlIHByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIGdldEV4ZWN1dGFibGVQcm9jZXNzZXNGb3JEbXNPYmplY3RzKGRtc09iamVjdHM6IERtc09iamVjdFtdKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKGRtc09iamVjdHMubWFwKG8gPT4gby50eXBlTmFtZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBleGVjdXRhYmxlIFByb2Nlc3NlcyBmcm9tIHRoZSBiYWNrZW5kLlxyXG4gICAqIEBwYXJhbSB0eXBlcyBMaXN0IG9mIGRtcyBvYmplY3QgdHlwZXMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBleGVjdXRhYmxlIHByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hFeGVjdXRhYmxlUHJvY2Vzc2VzKHR5cGVzPzogc3RyaW5nW10pOiBPYnNlcnZhYmxlPEV4ZWN1dGFibGVQcm9jZXNzW10+IHtcclxuICAgIGxldCB1cmkgPSAnL2JwbS9wcm9jZXNzL2V4ZWN1dGFibGU/Zm9ybT10cnVlJmZpZWxkcz10cnVlJztcclxuICAgIGlmICh0eXBlcykge1xyXG4gICAgICB1cmkgKz0gYCZ0eXBlPSR7dHlwZXMuam9pbignLCcpfWBcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHVyaSkucGlwZShtYXAocmVzID0+IHJlcyBhcyBFeGVjdXRhYmxlUHJvY2Vzc1tdKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZm9yIGEgcHJvY2Vzc2VzIGZpbGUuIFRoZSBmaWxlIG9mIGEgcHJvY2VzcyBjb250YWluc1xyXG4gICAqIGRtcyBvYmplY3RzIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzLlxyXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgSUQgb2YgdGhlIHByb2Nlc3MgdG8gZmV0Y2ggYXR0YWNoZWQgb2JqZWN0cyBmb3JcclxuICAgKi9cclxuICBnZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmlsZUVudHJ5W10+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldEpzb24oYC9wcm9jZXNzLyR7cHJvY2Vzc0lkfS9maWxlYCwgdGhpcy5iYWNrZW5kLmdldEJwbUJhc2UoKSkucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IHJlcy5jb250ZW50Lm1hcChpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiBpLmVsZW1lbnRpZCxcclxuICAgICAgICAgICAgdGl0bGU6IGkudGl0bGUgPyBpLnRpdGxlIDogJz8/PycsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpLmRlc2NyaXB0aW9uID8gaS5kZXNjcmlwdGlvbiA6ICcnLFxyXG4gICAgICAgICAgICBpY29uaWQ6IGkuaWNvbmlkLFxyXG4gICAgICAgICAgICBjcmVhdG9yOiBpLmNyZWF0b3IsXHJcbiAgICAgICAgICAgIGFkZHRpbWU6IGkuYWRkdGltZSxcclxuICAgICAgICAgICAgdHlwZTogaS50eXBlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSB3b3JrIGl0ZW0uXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBJRCBvZiB0aGUgcGFyZW50IHByb2Nlc3NcclxuICAgKiBAcGFyYW0gaXRlbUlkIElEIG9mIHRoZSB3b3JrIGl0ZW0gaXRzZWxmXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyB0byBiZSBhZGRlZCB0byB0aGUgYmFja2VuZCBjYWxsXHJcbiAgICogQHJldHVybnMgYSBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIGdldFdvcmtJdGVtKHByb2Nlc3NJZDogc3RyaW5nLCBpdGVtSWQ6IHN0cmluZywgb3B0aW9ucyA/OiBhbnkpOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBvcHRpb25zID8gb3B0aW9ucyA6IHtmb3JtOiB0cnVlLCBmaWVsZHM6IHRydWV9O1xyXG4gICAgY29uc3QgdGFza3MgPSBbXHJcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aXRlbUlkfWAsIHBhcmFtcykpLFxyXG4gICAgICB0aGlzLmdldFByb2Nlc3NGaWxlKHByb2Nlc3NJZClcclxuICAgIF07XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKHRhc2tzKS5waXBlKFxyXG4gICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICBjb25zdCB3aSA9IG5ldyBXb3JrSXRlbShyZXNbMF0pO1xyXG4gICAgICAgIHdpLnNldEZpbGUocmVzWzFdKTtcclxuICAgICAgICByZXR1cm4gd2k7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgd29yayBpdGVtLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSB3b3JrIGl0ZW0gdG8gYmUgc2F2ZWRcclxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIHNhdmVXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIGNvbnN0IHtpZCwgcHJvY2Vzc0lkLCBmaWxlLCBkYXRhfSA9IGl0ZW07XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge2NvbnRlbnRzOiBmaWxlLCBkYXRhfTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtrZWVwbG9jazogdHJ1ZSwgaXNhdXRvbG9jazogZmFsc2V9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnBvc3QoVXRpbHMuYnVpbGRVcmkoYC9icG0vcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vJHtpZH0vc2F2ZWAsIHBhcmFtcyksIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCBpZCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3J3YXJkcyBhIHdvcmsgaXRlbS4gSWYgYSBXb3JrSXRlbSBwcm92aWRlcyBkaWZmZXJlbnQgYWN0aW9ucyAoQGxpbmsgV29ya0l0ZW1BY3Rpb24pXHJcbiAgICogeW91IGNhbiBwcm92aWRlIHRoZSBzZWxlY3RlZCBhY3Rpb24gdG9vLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSB3b3JrIGl0ZW0gdG8gYmUgZm9yd2FyZGVkXHJcbiAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gdXNlZCBmb3IgZm9yd2FyZGluZ1xyXG4gICAqL1xyXG4gIGZvcndhcmRXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSwgYWN0aW9uPzogV29ya0l0ZW1BY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge2tlZXBsb2NrOiBmYWxzZSwgaXNhdXRvbG9jazogZmFsc2V9O1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgIGNvbnRlbnRzOiBpdGVtLmZpbGUsXHJcbiAgICAgIGRhdGE6IGl0ZW0uZGF0YVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnBvc3QoVXRpbHMuYnVpbGRVcmkoYC9icG0vcHJvY2Vzcy8ke2l0ZW0ucHJvY2Vzc0lkfS8ke2l0ZW0uaWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pbmJveFNlcnZpY2UudXBkYXRlSW5ib3hJdGVtcyhpdGVtLmlkKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvY2tzIGEgV29ya0l0ZW0gZm9yIHRoZSBjdXJyZW50IHVzZXIgKHBlcnNvbmFsaXphdGlvbiksIG1lYW5pbmcgdGhhdCB0aGVcclxuICAgKiBjdXJyZW50IHVzZXIgaXMgbm93IGluIGNoYXJnZSBvZiBmdWxmaWxsaW5nIHRoZSBXb3JrSXRlbSB0YXNrLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBXb3JrSXRlbSB0byBiZSBsb2NrZWRcclxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIGxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvYnBtL3Byb2Nlc3MvJHtpdGVtLnByb2Nlc3NJZH0vJHtpdGVtLmlkfS9sb2NrYClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShpdGVtLnByb2Nlc3NJZCwgaXRlbS5pZCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWxlYXNlcyB0aGUgbG9jayBmb3IgYSBXb3JrSXRlbS5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHVubG9ja2VkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICB1bmxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvYnBtL3Byb2Nlc3MvJHtpdGVtLnByb2Nlc3NJZH0vJHtpdGVtLmlkfS9sb2NrYCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShpdGVtLnByb2Nlc3NJZCwgaXRlbS5pZCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnRzIGFuIGV4ZWN1dGFibGUgcHJvY2Vzcy5cclxuICAgKiBAcGFyYW0gZXhlY3V0YWJsZVByb2Nlc3NJZCBJRCBvZiB0aGUgZXhlY3V0YWJsZSBQcm9jZXNzIHRvIGJlIHN0YXJ0ZWRcclxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgcHJvY2VzcyAoc2ltcGxlIG9iamVjdCBvZiBrZXkvdmFsdWUgcGFpcnMpXHJcbiAgICogQHBhcmFtIGNvbnRlbnRzIE9iamVjdHMgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIHByb2Nlc3MgKHByb2Nlc3MuZmlsZSkuXHJcbiAgICovXHJcbiAgc3RhcnRQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzSWQ6IHN0cmluZywgZGF0YTogYW55LCBjb250ZW50czogeyBpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcgfVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdChgL2JwbS9wcm9jZXNzLz9tb2RlbGlkPSR7ZXhlY3V0YWJsZVByb2Nlc3NJZH1gLCB7XHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIGNvbnRlbnRzOiBjb250ZW50c1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBoaXN0b3J5IGZvciBhIHByb2Nlc3MuIFdoaWNoIGVudHJpZXMgYXJlIHJldHVybmVkIGRlcGVuZHMgb24gdGhlXHJcbiAgICogcGVybWlzc2lvbnMgb2YgdGhlIGN1cnJlbnQgdXNlci5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIFRoZSBJRCBvZiB0aGUgcHJvY2VzcyB0byBmZXRjaCBoaXN0b3J5IGZvclxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8V29ya0l0ZW1IaXN0b3J5RW50cnlbXT5cclxuICAgKi9cclxuICBnZXRQcm9jZXNzSGlzdG9yeShwcm9jZXNzSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8V29ya0l0ZW1IaXN0b3J5RW50cnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbihgL2JwbS9wcm9jZXNzLyR7cHJvY2Vzc0lkfS9oaXN0b3J5YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmxlbmd0aCA/IHJlcy5tYXAoaXRlbSA9PiBuZXcgV29ya0l0ZW1IaXN0b3J5RW50cnkoaXRlbSkpIDogW10pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgY29udGVudCBmcm9tIHRoZSB3b3JrIGl0ZW1zIGZpbGUuXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBUaGUgSUQgb2YgdGhlIHByb2Nlc3MgdG8gcmVtb3ZlIHRoZSBpdGVtIGZyb21cclxuICAgKiBAcGFyYW0gd29ya0l0ZW1JZCBUaGUgSUQgb2YgdGhlIHdvcmsgaXRlbSBjb250YWluaW5nIHRoZSBmaWxlIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZFxyXG4gICAqIEBwYXJhbSB3b3JrSXRlbUNvbnRlbnRJZCBUaGUgdGhlIElEIG9mIHRoZSBmaWxlIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZFxyXG4gICAqL1xyXG4gIHJlbW92ZUZpbGVFbGVtZW50KHByb2Nlc3NJZDogc3RyaW5nLCB3b3JrSXRlbUlkOiBzdHJpbmcsIHdvcmtJdGVtQ29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZGVsKGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZS8ke3dvcmtJdGVtQ29udGVudElkfT9hY3Rpdml0eWlkPSR7d29ya0l0ZW1JZH1gLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBjb250ZW50cyB0byBhIHdvcmsgaXRlbXMgZmlsZS5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIFRoZSBJRCBvZiB0aGUgcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSB3b3JrSXRlbUlkIFRoZSBJRCBvZiB0aGUgYWN0aXZpdHlcclxuICAgKiBAcGFyYW0gZWxlbWVudHMgVGhlIEVsZW1lbnRzIHRvIGJlIGFkZGVkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICBhZGRGaWxlRWxlbWVudHMocHJvY2Vzc0lkOiBzdHJpbmcsIHdvcmtJdGVtSWQ6IHN0cmluZywgZWxlbWVudHM6IERtc09iamVjdFtdKTogT2JzZXJ2YWJsZTxXb3JrSXRlbT4ge1xyXG4gICAgY29uc3QgdGFza3MgPSBbXTtcclxuICAgIGVsZW1lbnRzLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgdGFza3MucHVzaCh0aGlzLmJhY2tlbmQucG9zdChcclxuICAgICAgICBgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGUvJHtlLmlkfT90eXBlPSR7ZS50eXBlLm5hbWV9JmFjdGl2aXR5aWQ9JHt3b3JrSXRlbUlkfWAsXHJcbiAgICAgICAge30sIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0YXNrcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShwcm9jZXNzSWQsIHdvcmtJdGVtSWQpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgb2JqZWN0cyBmcm9tIHRoZSBjbGlwYm9hcmQgdG8gYSBXb3JrSXRlbS5cclxuICAgKiBAcGFyYW0gd29ya0l0ZW0gVGhlIHdvcmtJdGVtIHRvIGFkZCB0aGUgb2JqZWN0cyB0b1xyXG4gICAqIEBwYXJhbSBjbGlwYm9hcmQgQ2xpcGJvYXJkIG9iamVjdCBob2xkaW5nIHVzZXIgc2VsZWN0ZWQgb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgYWRkRmlsZUVsZW1lbnRzRnJvbUNsaXBib2FyZCh3b3JrSXRlbTogV29ya0l0ZW0sIGNsaXBib2FyZDogQ2xpcGJvYXJkKTogT2JzZXJ2YWJsZTxXb3JrSXRlbT4ge1xyXG4gICAgaWYgKCh3b3JrSXRlbSAmJiB3b3JrSXRlbS5maWxlRW50cnlQZXJtaXNzaW9ucy5hZGQpICYmIGNsaXBib2FyZCAmJiBjbGlwYm9hcmQuZWxlbWVudHMubGVuZ3RoICYmIGNsaXBib2FyZC5hY3Rpb24gPT09IENsaXBib2FyZEFjdGlvbi5DT1BZKSB7XHJcbiAgICAgIGxldCBjb250ZW50czogRG1zT2JqZWN0W107XHJcbiAgICAgIGlmICh3b3JrSXRlbS5maWxlLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIG9ubHkgYWRkIGl0ZW1zIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHBhcnQgb2YgdGhlIGF0dGFjaG1lbnRzXHJcbiAgICAgICAgY29uc3QgYXR0YWNobWVudElkcyA9IHdvcmtJdGVtLmZpbGUubWFwKGUgPT4gZS5pZCk7XHJcbiAgICAgICAgY29udGVudHMgPSBjbGlwYm9hcmQuZWxlbWVudHMuZmlsdGVyKGUgPT4gYXR0YWNobWVudElkcy5pbmRleE9mKGUuaWQpID09PSAtMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGVudHMgPSBjbGlwYm9hcmQuZWxlbWVudHM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuYWRkRmlsZUVsZW1lbnRzKHdvcmtJdGVtLnByb2Nlc3NJZCwgd29ya0l0ZW0uaWQsIGNvbnRlbnRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcignZXJyb3InKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBYyxhQUFhLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBK0IsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkU7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFTckIsWUFBb0IsWUFBaUMsRUFDakMsT0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIMUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlC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QUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRTtpQkFBTTtnQkFDTCxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUMvQjtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNMLE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUE3UEYsVUFBVTs7O1lBZkgsbUJBQW1CO1lBTG5CLGNBQWM7WUFJZCxZQUFZO1lBRFosWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBvZiBhcyBvYnNlcnZhYmxlT2YsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge21lcmdlTWFwLCB0YXAsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcclxuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xyXG5pbXBvcnQge1dvcmtJdGVtSGlzdG9yeUVudHJ5fSBmcm9tICcuLi8uLi9tb2RlbC93b3JrLWl0ZW0taGlzdG9yeS5tb2RlbCc7XHJcbmltcG9ydCB7RG1zT2JqZWN0fSBmcm9tICcuLi8uLi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcclxuaW1wb3J0IHtJbmJveFNlcnZpY2V9IGZyb20gJy4uL2luYm94L2luYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0NhcGFiaWxpdGllc1NlcnZpY2V9IGZyb20gJy4uL2NhcGFiaWxpdGllcy9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7RXhlY3V0YWJsZVByb2Nlc3MsIEZpbGVFbnRyeSwgUHJvY2VzcywgV29ya0l0ZW0sIFdvcmtJdGVtQWN0aW9ufSBmcm9tICcuLi8uLi9tb2RlbC9icG0ubW9kZWwnO1xyXG5pbXBvcnQge0NsaXBib2FyZH0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0NsaXBib2FyZEFjdGlvbn0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC1hY3Rpb24uZW51bSc7XHJcblxyXG4vKipcclxuICogYEJwbVNlcnZpY2VgIGhhbmRsZXMgaW50ZXJhY3Rpb24gcmVsYXRlZCB0byBCUE0gdGFza3MuXHJcbiAqXHJcbiAqIFRoZSBtYWluIHBhcnRzIHByb3ZpZGVkIGFuZCB1c2VkIGJ5IHRoaXMgc2VydmljZSBhcmUgUHJvY2Vzc2VzIGFuZCBXb3JrSXRlbXMuXHJcbiAqIFByb2Nlc3NlcyBhcmUgZGVmaW5lZCBvbiB0aGUgYmFja2VuZCBzaWRlLiBUaGV5IGRlc2NyaWJlIGEgc2V0IG9mIHRhc2tzIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBieSB0aGUgcHJvY2Vzcy5cclxuICogVGFza3MgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24gYXJlIHJlZmVycmVkIHRvIGFzIFdvcmtJdGVtcy5cclxuICpcclxuICogUHJvY2Vzc2VzIGNhbiBiZSByZWxhdGVkIHRvIGEgc3BlY2lhbCBvYmplY3QgdHlwZSwgYnV0IHRoZXkgZG9uJ3QgaGF2ZSB0by4gSW4gYWRkaXRpb24gdG8gdGhhdCB0aGV5IGNhbiByZWZlclxyXG4gKiB0byBkbXMgb2JqZWN0cy5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJwbVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHByb2Nlc3NJdGVtczogUHJvY2Vzc1tdO1xyXG4gIHByaXZhdGUgcHJvY2Vzc0l0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJvY2Vzc1tdPigxKTtcclxuICAvKipcclxuICAgKiBMb25nIHRlcm0gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCBwcm9jZXNzZXNcclxuICAgKi9cclxuICBwcm9jZXNzSXRlbXMkOiBPYnNlcnZhYmxlPFByb2Nlc3NbXT4gPSB0aGlzLnByb2Nlc3NJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGFsbCBwcm9jZXNzZXMgb2YgdGhlIGN1cnJlbnQgdXNlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBzaXplIE1heGltdW0gbnVtYmVyIG9mIHByb2Nlc3NlcyB0byBiZSBmZXRjaGVkXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBQcm9jZXNzZXNcclxuICAgKi9cclxuICBnZXRQcm9jZXNzZXMoc2l6ZTogbnVtYmVyID0gMTAwMCk6IE9ic2VydmFibGU8UHJvY2Vzc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvcHJvY2Vzcy91c2VyP3NpemU9JHtzaXplfWAsIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5jb250ZW50Lm1hcChpdGVtID0+IG5ldyBQcm9jZXNzKGl0ZW0pKSksXHJcbiAgICAgICAgdGFwKChwcm9jZXNzZXM6IFByb2Nlc3NbXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wcm9jZXNzSXRlbXMgPSBwcm9jZXNzZXM7XHJcbiAgICAgICAgICB0aGlzLnByb2Nlc3NJdGVtc1NvdXJjZS5uZXh0KHRoaXMucHJvY2Vzc0l0ZW1zKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGZvciB0aGUgZXhlY3V0YWJsZSBQcm9jZXNzZXMuIElmIHR5cGVzIGFyZSBwcm92aWRlZCwgeW91J2xsIGdldFxyXG4gICAqIG9ubHkgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGZvciBhbGwgb2YgdGhlbVxyXG4gICAqIEBwYXJhbSB0eXBlcyBMaXN0IG9mIGRtcyBvYmplY3QgdHlwZXMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBleGVjdXRhYmxlIHByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIGdldEV4ZWN1dGFibGVQcm9jZXNzZXModHlwZXM/OiBzdHJpbmdbXSk6IE9ic2VydmFibGU8RXhlY3V0YWJsZVByb2Nlc3NbXT4ge1xyXG4gICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzLmhhc0NhcGFiaWxpdHkoJ2JwbScpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZldGNoRXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKFtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZm9yIGEgZ2l2ZW4gc2V0IG9mIGRtcyBvYmplY3QuWW91J2xsIGdldFxyXG4gICAqIG9ubHkgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGZvciBhbGwgb2YgdGhlbS5cclxuICAgKiBAcGFyYW0gZG1zT2JqZWN0cyBMaXN0IG9mIGRtcyBvYmplY3RzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxyXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgZXhlY3V0YWJsZSBwcm9jZXNzZXNcclxuICAgKi9cclxuICBnZXRFeGVjdXRhYmxlUHJvY2Vzc2VzRm9yRG1zT2JqZWN0cyhkbXNPYmplY3RzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8RXhlY3V0YWJsZVByb2Nlc3NbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0YWJsZVByb2Nlc3NlcyhkbXNPYmplY3RzLm1hcChvID0+IG8udHlwZU5hbWUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBkbXMgb2JqZWN0IHR5cGVzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxyXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgZXhlY3V0YWJsZSBwcm9jZXNzZXNcclxuICAgKi9cclxuICBwcml2YXRlIGZldGNoRXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XHJcbiAgICBsZXQgdXJpID0gJy9icG0vcHJvY2Vzcy9leGVjdXRhYmxlP2Zvcm09dHJ1ZSZmaWVsZHM9dHJ1ZSc7XHJcbiAgICBpZiAodHlwZXMpIHtcclxuICAgICAgdXJpICs9IGAmdHlwZT0ke3R5cGVzLmpvaW4oJywnKX1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQodXJpKS5waXBlKG1hcChyZXMgPT4gcmVzIGFzIEV4ZWN1dGFibGVQcm9jZXNzW10pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmb3IgYSBwcm9jZXNzZXMgZmlsZS4gVGhlIGZpbGUgb2YgYSBwcm9jZXNzIGNvbnRhaW5zXHJcbiAgICogZG1zIG9iamVjdHMgYXR0YWNoZWQgdG8gdGhlIHByb2Nlc3MuXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBJRCBvZiB0aGUgcHJvY2VzcyB0byBmZXRjaCBhdHRhY2hlZCBvYmplY3RzIGZvclxyXG4gICAqL1xyXG4gIGdldFByb2Nlc3NGaWxlKHByb2Nlc3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGaWxlRW50cnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbihgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGVgLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKS5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLmNvbnRlbnQubWFwKGkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IGkuZWxlbWVudGlkLFxyXG4gICAgICAgICAgICB0aXRsZTogaS50aXRsZSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGkuZGVzY3JpcHRpb24gPyBpLmRlc2NyaXB0aW9uIDogJycsXHJcbiAgICAgICAgICAgIGljb25pZDogaS5pY29uaWQsXHJcbiAgICAgICAgICAgIGNyZWF0b3I6IGkuY3JlYXRvcixcclxuICAgICAgICAgICAgYWRkdGltZTogaS5hZGR0aW1lLFxyXG4gICAgICAgICAgICB0eXBlOiBpLnR5cGVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSB3b3JrIGl0ZW0uXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBJRCBvZiB0aGUgcGFyZW50IHByb2Nlc3NcclxuICAgKiBAcGFyYW0gaXRlbUlkIElEIG9mIHRoZSB3b3JrIGl0ZW0gaXRzZWxmXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyB0byBiZSBhZGRlZCB0byB0aGUgYmFja2VuZCBjYWxsXHJcbiAgICogQHJldHVybnMgYSBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIGdldFdvcmtJdGVtKHByb2Nlc3NJZDogc3RyaW5nLCBpdGVtSWQ6IHN0cmluZywgb3B0aW9ucyA/OiBhbnkpOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBvcHRpb25zID8gb3B0aW9ucyA6IHtmb3JtOiB0cnVlLCBmaWVsZHM6IHRydWV9O1xyXG4gICAgY29uc3QgdGFza3MgPSBbXHJcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aXRlbUlkfWAsIHBhcmFtcykpLFxyXG4gICAgICB0aGlzLmdldFByb2Nlc3NGaWxlKHByb2Nlc3NJZClcclxuICAgIF07XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKHRhc2tzKS5waXBlKFxyXG4gICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICBjb25zdCB3aSA9IG5ldyBXb3JrSXRlbShyZXNbMF0pO1xyXG4gICAgICAgIHdpLnNldEZpbGUocmVzWzFdKTtcclxuICAgICAgICByZXR1cm4gd2k7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgd29yayBpdGVtLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSB3b3JrIGl0ZW0gdG8gYmUgc2F2ZWRcclxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIHNhdmVXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIGNvbnN0IHtpZCwgcHJvY2Vzc0lkLCBmaWxlLCBkYXRhfSA9IGl0ZW07XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge2NvbnRlbnRzOiBmaWxlLCBkYXRhfTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtrZWVwbG9jazogdHJ1ZSwgaXNhdXRvbG9jazogZmFsc2V9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnBvc3QoVXRpbHMuYnVpbGRVcmkoYC9icG0vcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vJHtpZH0vc2F2ZWAsIHBhcmFtcyksIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCBpZCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3J3YXJkcyBhIHdvcmsgaXRlbS4gSWYgYSBXb3JrSXRlbSBwcm92aWRlcyBkaWZmZXJlbnQgYWN0aW9ucyAoQGxpbmsgV29ya0l0ZW1BY3Rpb24pXHJcbiAgICogeW91IGNhbiBwcm92aWRlIHRoZSBzZWxlY3RlZCBhY3Rpb24gdG9vLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSB3b3JrIGl0ZW0gdG8gYmUgZm9yd2FyZGVkXHJcbiAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gdXNlZCBmb3IgZm9yd2FyZGluZ1xyXG4gICAqL1xyXG4gIGZvcndhcmRXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSwgYWN0aW9uPzogV29ya0l0ZW1BY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge2tlZXBsb2NrOiBmYWxzZSwgaXNhdXRvbG9jazogZmFsc2V9O1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgIGNvbnRlbnRzOiBpdGVtLmZpbGUsXHJcbiAgICAgIGRhdGE6IGl0ZW0uZGF0YVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnBvc3QoVXRpbHMuYnVpbGRVcmkoYC9icG0vcHJvY2Vzcy8ke2l0ZW0ucHJvY2Vzc0lkfS8ke2l0ZW0uaWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pbmJveFNlcnZpY2UudXBkYXRlSW5ib3hJdGVtcyhpdGVtLmlkKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvY2tzIGEgV29ya0l0ZW0gZm9yIHRoZSBjdXJyZW50IHVzZXIgKHBlcnNvbmFsaXphdGlvbiksIG1lYW5pbmcgdGhhdCB0aGVcclxuICAgKiBjdXJyZW50IHVzZXIgaXMgbm93IGluIGNoYXJnZSBvZiBmdWxmaWxsaW5nIHRoZSBXb3JrSXRlbSB0YXNrLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBXb3JrSXRlbSB0byBiZSBsb2NrZWRcclxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIGxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvYnBtL3Byb2Nlc3MvJHtpdGVtLnByb2Nlc3NJZH0vJHtpdGVtLmlkfS9sb2NrYClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShpdGVtLnByb2Nlc3NJZCwgaXRlbS5pZCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWxlYXNlcyB0aGUgbG9jayBmb3IgYSBXb3JrSXRlbS5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHVubG9ja2VkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICB1bmxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvYnBtL3Byb2Nlc3MvJHtpdGVtLnByb2Nlc3NJZH0vJHtpdGVtLmlkfS9sb2NrYCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShpdGVtLnByb2Nlc3NJZCwgaXRlbS5pZCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnRzIGFuIGV4ZWN1dGFibGUgcHJvY2Vzcy5cclxuICAgKiBAcGFyYW0gZXhlY3V0YWJsZVByb2Nlc3NJZCBJRCBvZiB0aGUgZXhlY3V0YWJsZSBQcm9jZXNzIHRvIGJlIHN0YXJ0ZWRcclxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgcHJvY2VzcyAoc2ltcGxlIG9iamVjdCBvZiBrZXkvdmFsdWUgcGFpcnMpXHJcbiAgICogQHBhcmFtIGNvbnRlbnRzIE9iamVjdHMgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIHByb2Nlc3MgKHByb2Nlc3MuZmlsZSkuXHJcbiAgICovXHJcbiAgc3RhcnRQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzSWQ6IHN0cmluZywgZGF0YTogYW55LCBjb250ZW50czogeyBpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcgfVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdChgL2JwbS9wcm9jZXNzLz9tb2RlbGlkPSR7ZXhlY3V0YWJsZVByb2Nlc3NJZH1gLCB7XHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIGNvbnRlbnRzOiBjb250ZW50c1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBoaXN0b3J5IGZvciBhIHByb2Nlc3MuIFdoaWNoIGVudHJpZXMgYXJlIHJldHVybmVkIGRlcGVuZHMgb24gdGhlXHJcbiAgICogcGVybWlzc2lvbnMgb2YgdGhlIGN1cnJlbnQgdXNlci5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIFRoZSBJRCBvZiB0aGUgcHJvY2VzcyB0byBmZXRjaCBoaXN0b3J5IGZvclxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8V29ya0l0ZW1IaXN0b3J5RW50cnlbXT5cclxuICAgKi9cclxuICBnZXRQcm9jZXNzSGlzdG9yeShwcm9jZXNzSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8V29ya0l0ZW1IaXN0b3J5RW50cnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbihgL2JwbS9wcm9jZXNzLyR7cHJvY2Vzc0lkfS9oaXN0b3J5YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmxlbmd0aCA/IHJlcy5tYXAoaXRlbSA9PiBuZXcgV29ya0l0ZW1IaXN0b3J5RW50cnkoaXRlbSkpIDogW10pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgY29udGVudCBmcm9tIHRoZSB3b3JrIGl0ZW1zIGZpbGUuXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBUaGUgSUQgb2YgdGhlIHByb2Nlc3MgdG8gcmVtb3ZlIHRoZSBpdGVtIGZyb21cclxuICAgKiBAcGFyYW0gd29ya0l0ZW1JZCBUaGUgSUQgb2YgdGhlIHdvcmsgaXRlbSBjb250YWluaW5nIHRoZSBmaWxlIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZFxyXG4gICAqIEBwYXJhbSB3b3JrSXRlbUNvbnRlbnRJZCBUaGUgdGhlIElEIG9mIHRoZSBmaWxlIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZFxyXG4gICAqL1xyXG4gIHJlbW92ZUZpbGVFbGVtZW50KHByb2Nlc3NJZDogc3RyaW5nLCB3b3JrSXRlbUlkOiBzdHJpbmcsIHdvcmtJdGVtQ29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZGVsKGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZS8ke3dvcmtJdGVtQ29udGVudElkfT9hY3Rpdml0eWlkPSR7d29ya0l0ZW1JZH1gLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBjb250ZW50cyB0byBhIHdvcmsgaXRlbXMgZmlsZS5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIFRoZSBJRCBvZiB0aGUgcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSB3b3JrSXRlbUlkIFRoZSBJRCBvZiB0aGUgYWN0aXZpdHlcclxuICAgKiBAcGFyYW0gZWxlbWVudHMgVGhlIEVsZW1lbnRzIHRvIGJlIGFkZGVkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICBhZGRGaWxlRWxlbWVudHMocHJvY2Vzc0lkOiBzdHJpbmcsIHdvcmtJdGVtSWQ6IHN0cmluZywgZWxlbWVudHM6IERtc09iamVjdFtdKTogT2JzZXJ2YWJsZTxXb3JrSXRlbT4ge1xyXG4gICAgY29uc3QgdGFza3MgPSBbXTtcclxuICAgIGVsZW1lbnRzLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgdGFza3MucHVzaCh0aGlzLmJhY2tlbmQucG9zdChcclxuICAgICAgICBgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGUvJHtlLmlkfT90eXBlPSR7ZS50eXBlLm5hbWV9JmFjdGl2aXR5aWQ9JHt3b3JrSXRlbUlkfWAsXHJcbiAgICAgICAge30sIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0YXNrcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShwcm9jZXNzSWQsIHdvcmtJdGVtSWQpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgb2JqZWN0cyBmcm9tIHRoZSBjbGlwYm9hcmQgdG8gYSBXb3JrSXRlbS5cclxuICAgKiBAcGFyYW0gd29ya0l0ZW0gVGhlIHdvcmtJdGVtIHRvIGFkZCB0aGUgb2JqZWN0cyB0b1xyXG4gICAqIEBwYXJhbSBjbGlwYm9hcmQgQ2xpcGJvYXJkIG9iamVjdCBob2xkaW5nIHVzZXIgc2VsZWN0ZWQgb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgYWRkRmlsZUVsZW1lbnRzRnJvbUNsaXBib2FyZCh3b3JrSXRlbTogV29ya0l0ZW0sIGNsaXBib2FyZDogQ2xpcGJvYXJkKTogT2JzZXJ2YWJsZTxXb3JrSXRlbT4ge1xyXG4gICAgaWYgKCh3b3JrSXRlbSAmJiB3b3JrSXRlbS5maWxlRW50cnlQZXJtaXNzaW9ucy5hZGQpICYmIGNsaXBib2FyZCAmJiBjbGlwYm9hcmQuZWxlbWVudHMubGVuZ3RoICYmIGNsaXBib2FyZC5hY3Rpb24gPT09IENsaXBib2FyZEFjdGlvbi5DT1BZKSB7XHJcbiAgICAgIGxldCBjb250ZW50czogRG1zT2JqZWN0W107XHJcbiAgICAgIGlmICh3b3JrSXRlbS5maWxlLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIG9ubHkgYWRkIGl0ZW1zIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHBhcnQgb2YgdGhlIGF0dGFjaG1lbnRzXHJcbiAgICAgICAgY29uc3QgYXR0YWNobWVudElkcyA9IHdvcmtJdGVtLmZpbGUubWFwKGUgPT4gZS5pZCk7XHJcbiAgICAgICAgY29udGVudHMgPSBjbGlwYm9hcmQuZWxlbWVudHMuZmlsdGVyKGUgPT4gYXR0YWNobWVudElkcy5pbmRleE9mKGUuaWQpID09PSAtMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGVudHMgPSBjbGlwYm9hcmQuZWxlbWVudHM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuYWRkRmlsZUVsZW1lbnRzKHdvcmtJdGVtLnByb2Nlc3NJZCwgd29ya0l0ZW0uaWQsIGNvbnRlbnRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcignZXJyb3InKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -2731,7 +2731,7 @@ class BpmService {
|
|
|
2731
2731
|
.getJson(`/process/${processId}/file`, this.backend.getBpmBase()).pipe(map(res => res.content.map(i => {
|
|
2732
2732
|
return {
|
|
2733
2733
|
id: i.elementid,
|
|
2734
|
-
title: i.title
|
|
2734
|
+
title: i.title,
|
|
2735
2735
|
description: i.description ? i.description : '',
|
|
2736
2736
|
iconid: i.iconid,
|
|
2737
2737
|
creator: i.creator,
|