@c8y/ngx-components 1017.0.121 → 1017.0.123
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/core/select-modal/select-modal.component.d.ts +2 -1
- package/esm2020/core/select-modal/select-modal.component.mjs +5 -3
- package/esm2020/device-profile/select-configuration-modal.component.mjs +1 -1
- package/esm2020/repository/shared/select-modal/repository-select-modal.component.mjs +3 -3
- package/esm2020/repository/software/device-tab/installed-software.component.mjs +7 -5
- package/fesm2015/c8y-ngx-components-device-profile.mjs +1 -1
- package/fesm2015/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-shared.mjs +2 -2
- package/fesm2015/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-software.mjs +7 -3
- package/fesm2015/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +4 -2
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-profile.mjs +1 -1
- package/fesm2020/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-shared.mjs +2 -2
- package/fesm2020/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-software.mjs +6 -4
- package/fesm2020/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +4 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +6 -0
- package/package.json +2 -2
- package/repository/shared/select-modal/repository-select-modal.component.d.ts +5 -0
- package/repository/software/device-tab/installed-software.component.d.ts +1 -1
|
@@ -19,6 +19,7 @@ export declare class SelectModalComponent {
|
|
|
19
19
|
areMoreEntries: boolean;
|
|
20
20
|
set labels(labels: ModalLabels);
|
|
21
21
|
get labels(): ModalLabels;
|
|
22
|
+
noItemsMessage: string;
|
|
22
23
|
result: EventEmitter<IIdentified[]>;
|
|
23
24
|
search: EventEmitter<string>;
|
|
24
25
|
onChoiceUpdated: EventEmitter<IIdentified>;
|
|
@@ -39,6 +40,6 @@ export declare class SelectModalComponent {
|
|
|
39
40
|
ngOnDestroy(): void;
|
|
40
41
|
private getOutput;
|
|
41
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectModalComponent, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectModalComponent, "c8y-select-modal", never, { "icon": "icon"; "title": "title"; "subTitle": "subTitle"; "items": "items"; "mode": "mode"; "disableSelected": "disableSelected"; "showFilter": "showFilter"; "additionalFilterTemplate": "additionalFilterTemplate"; "areMoreEntries": "areMoreEntries"; "labels": "labels"; }, { "result": "result"; "search": "search"; "onChoiceUpdated": "onChoiceUpdated"; }, never, never, false>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectModalComponent, "c8y-select-modal", never, { "icon": "icon"; "title": "title"; "subTitle": "subTitle"; "items": "items"; "mode": "mode"; "disableSelected": "disableSelected"; "showFilter": "showFilter"; "additionalFilterTemplate": "additionalFilterTemplate"; "areMoreEntries": "areMoreEntries"; "labels": "labels"; "noItemsMessage": "noItemsMessage"; }, { "result": "result"; "search": "search"; "onChoiceUpdated": "onChoiceUpdated"; }, never, never, false>;
|
|
43
44
|
}
|
|
44
45
|
export {};
|
|
@@ -96,10 +96,10 @@ export class SelectModalComponent {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
SelectModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, deps: [{ token: i1.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
-
SelectModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectModalComponent, selector: "c8y-select-modal", inputs: { icon: "icon", title: "title", subTitle: "subTitle", items: "items", mode: "mode", disableSelected: "disableSelected", showFilter: "showFilter", additionalFilterTemplate: "additionalFilterTemplate", areMoreEntries: "areMoreEntries", labels: "labels" }, outputs: { result: "result", search: "search", onChoiceUpdated: "onChoiceUpdated" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p translate
|
|
99
|
+
SelectModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectModalComponent, selector: "c8y-select-modal", inputs: { icon: "icon", title: "title", subTitle: "subTitle", items: "items", mode: "mode", disableSelected: "disableSelected", showFilter: "showFilter", additionalFilterTemplate: "additionalFilterTemplate", areMoreEntries: "areMoreEntries", labels: "labels", noItemsMessage: "noItemsMessage" }, outputs: { result: "result", search: "search", onChoiceUpdated: "onChoiceUpdated" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p>{{ (noItemsMessage | translate) ?? 'No items to display.' | translate }}</p>\n </div>\n </div>\n </div>\n <c8y-list-group>\n <c8y-li *ngFor=\"let item of listItems | selectModalFilterPipe: filterTerm\">\n <c8y-li-icon>\n <i c8yIcon=\"{{ icon }}\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-30\">\n <div class=\"col-9\">\n <div *ngFor=\"let bodyPart of item.body\" [ngClass]=\"bodyPart.class\">\n <c8y-highlight\n [title]=\"bodyPart.value\"\n [pattern]=\"filterTerm\"\n [text]=\"bodyPart.value\"\n ></c8y-highlight>\n </div>\n </div>\n\n <div class=\"col-3 text-right\" *ngIf=\"item.additionalInformation\">\n <div [ngClass]=\"item.additionalInformation.class\">\n {{ item.additionalInformation.value }}\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *ngFor=\"let option of item.options\">\n <c8y-li-radio\n [name]=\"mode === 'single' ? 'single' : item.groupId\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\n [selected]=\"option.selected\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-20\">\n <div\n *ngFor=\"let optionPart of option.body; let i = index\"\n [ngClass]=\"optionPart.class\"\n >\n <c8y-highlight [pattern]=\"filterTerm\" [text]=\"optionPart.value\"></c8y-highlight>\n </div>\n <ng-container\n *ngIf=\"option.template\"\n [ngTemplateOutlet]=\"option.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item, option: option }\"\n ></ng-container>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n <div *ngIf=\"areMoreEntries\">\n <div class=\"alert alert-info m-t-16 m-r-8 m-l-8\" translate>\n Some entries might not be shown. Try narrowing search criteria.\n </div>\n </div>\n </c8y-list-group>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i6.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i7.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i8.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i9.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i10.ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "component", type: i11.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i12.FilterInputComponent, selector: "c8y-filter", inputs: ["icon"], outputs: ["onSearch"] }, { kind: "pipe", type: i13.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i14.SelectModalFilterPipe, name: "selectModalFilterPipe" }] });
|
|
100
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
|
-
args: [{ selector: 'c8y-select-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p translate
|
|
102
|
+
args: [{ selector: 'c8y-select-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p>{{ (noItemsMessage | translate) ?? 'No items to display.' | translate }}</p>\n </div>\n </div>\n </div>\n <c8y-list-group>\n <c8y-li *ngFor=\"let item of listItems | selectModalFilterPipe: filterTerm\">\n <c8y-li-icon>\n <i c8yIcon=\"{{ icon }}\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-30\">\n <div class=\"col-9\">\n <div *ngFor=\"let bodyPart of item.body\" [ngClass]=\"bodyPart.class\">\n <c8y-highlight\n [title]=\"bodyPart.value\"\n [pattern]=\"filterTerm\"\n [text]=\"bodyPart.value\"\n ></c8y-highlight>\n </div>\n </div>\n\n <div class=\"col-3 text-right\" *ngIf=\"item.additionalInformation\">\n <div [ngClass]=\"item.additionalInformation.class\">\n {{ item.additionalInformation.value }}\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *ngFor=\"let option of item.options\">\n <c8y-li-radio\n [name]=\"mode === 'single' ? 'single' : item.groupId\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\n [selected]=\"option.selected\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-20\">\n <div\n *ngFor=\"let optionPart of option.body; let i = index\"\n [ngClass]=\"optionPart.class\"\n >\n <c8y-highlight [pattern]=\"filterTerm\" [text]=\"optionPart.value\"></c8y-highlight>\n </div>\n <ng-container\n *ngIf=\"option.template\"\n [ngTemplateOutlet]=\"option.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item, option: option }\"\n ></ng-container>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n <div *ngIf=\"areMoreEntries\">\n <div class=\"alert alert-info m-t-16 m-r-8 m-l-8\" translate>\n Some entries might not be shown. Try narrowing search criteria.\n </div>\n </div>\n </c8y-list-group>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
103
103
|
}], ctorParameters: function () { return [{ type: i1.BsModalRef }]; }, propDecorators: { icon: [{
|
|
104
104
|
type: Input
|
|
105
105
|
}], title: [{
|
|
@@ -120,6 +120,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
120
120
|
type: Input
|
|
121
121
|
}], labels: [{
|
|
122
122
|
type: Input
|
|
123
|
+
}], noItemsMessage: [{
|
|
124
|
+
type: Input
|
|
123
125
|
}], result: [{
|
|
124
126
|
type: Output
|
|
125
127
|
}], search: [{
|
|
@@ -127,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
127
129
|
}], onChoiceUpdated: [{
|
|
128
130
|
type: Output
|
|
129
131
|
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VsZWN0LW1vZGFsL3NlbGVjdC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3NlbGVjdC1tb2RhbC9zZWxlY3QtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQW1DLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVM0YsTUFBTSxPQUFPLG9CQUFvQjtJQTBCL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXZCakMsYUFBUSxHQUFXLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBRXJGLFNBQUksR0FBdUIsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3BELG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFM0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFRL0IsV0FBTSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUN4RSxXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUQsb0JBQWUsR0FBOEIsSUFBSSxZ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ZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNPLE1BQU07c0JBQWxCLEtBQUs7Z0JBT0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSWRlbnRpZmllZCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGFzc2lnbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IElTZWxlY3RNb2RhbE9iamVjdCwgTW9kYWxMYWJlbHMsIE1vZGFsU2VsZWN0aW9uTW9kZSB9IGZyb20gJy4vc2VsZWN0LW1vZGFsLm1vZGVsJztcblxuaW50ZXJmYWNlIElTZWxlY3RNb2RhbEludGVybmFsT2JqZWN0IGV4dGVuZHMgSVNlbGVjdE1vZGFsT2JqZWN0IHtcbiAgc2VsZWN0ZWRJZDogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc2VsZWN0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0TW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1YlRpdGxlOiBzdHJpbmcgPSBnZXR0ZXh0KCdTZWxlY3QgZnJvbSB0aGUgbGlzdCBvZiBpdGVtcyBtYXRjaGluZyB0aGUgZGV2aWNlIHR5cGUnKTtcbiAgQElucHV0KCkgaXRlbXM6IElTZWxlY3RNb2RhbEludGVybmFsT2JqZWN0W107XG4gIEBJbnB1dCgpIG1vZGU6IE1vZGFsU2VsZWN0aW9uTW9kZSA9IE1vZGFsU2VsZWN0aW9uTW9kZS5NVUxUSTtcbiAgQElucHV0KCkgZGlzYWJsZVNlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxGaWx0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgYXJlTW9yZUVudHJpZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IGxhYmVscyhsYWJlbHM6IE1vZGFsTGFiZWxzKSB7XG4gICAgY29uc3QgeyBvayA9IHRoaXMubGFiZWxzLm9rLCBjYW5jZWwgPSB0aGlzLmxhYmVscy5jYW5jZWwgfSA9IGxhYmVscyB8fCB7fTtcbiAgICB0aGlzLl9sYWJlbHMgPSB7IG9rLCBjYW5jZWwgfTtcbiAgfVxuICBnZXQgbGFiZWxzKCk6IE1vZGFsTGFiZWxzIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxzO1xuICB9XG4gIEBPdXRwdXQoKSByZXN1bHQ6IEV2ZW50RW1pdHRlcjxJSWRlbnRpZmllZFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkZW50aWZpZWRbXT4oKTtcbiAgQE91dHB1dCgpIHNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQ2hvaWNlVXBkYXRlZDogRXZlbnRFbWl0dGVyPElJZGVudGlmaWVkPiA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkZW50aWZpZWQ+KCk7XG4gIHNlbGVjdGVkID0gZmFsc2U7XG4gIGZpbHRlclRlcm06IHN0cmluZyA9ICcnO1xuICBsaXN0SXRlbXMgPSBbXTtcbiAgcHJpdmF0ZSBkZWJvdW5jZXI6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBfbGFiZWxzOiBNb2RhbExhYmVscyA9IHsgb2s6IGdldHRleHQoJ0NvbmZpcm0nKSwgY2FuY2VsOiBnZXR0ZXh0KCdDYW5jZWwnKSB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikge1xuICAgIHRoaXMuZGVib3VuY2VyLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaC5lbWl0KHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5pdGVtcyAmJiBjaGFuZ2VzLml0ZW1zLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgY29uc3QgaXRlbXNQcm9taXNlID0gY2hhbmdlcy5pdGVtcy5jdXJyZW50VmFsdWUubWFwKGFzeW5jIGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLm9wdGlvbnMgPSBhd2FpdCBpdGVtLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXRlbS5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5zZWxlY3RlZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgIGl0ZW0uc2VsZWN0ZWRJZCA9IHNlbGVjdGVkLm9iai5pZDtcbiAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGl0ZW0ub3B0aW9ucy5tYXAob3B0aW9uID0+IGFzc2lnbihvcHRpb24sIHsgZGlzYWJsZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5saXN0SXRlbXMgPSBhd2FpdCBQcm9taXNlLmFsbChpdGVtc1Byb21pc2UpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBpcGUoZmlsdGVyVGVybTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWJvdW5jZXIubmV4dChmaWx0ZXJUZXJtKTtcbiAgICB0aGlzLmZpbHRlclRlcm0gPSBmaWx0ZXJUZXJtO1xuICB9XG5cbiAgdXBkYXRlQ2hvaWNlKHsgaXRlbSwgaWQgfSkge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLmxpc3RJdGVtcy5tYXAodmFsdWUgPT4gKHZhbHVlLnNlbGVjdGVkSWQgPSB1bmRlZmluZWQpKTtcbiAgICB9XG4gICAgaXRlbS5zZWxlY3RlZElkID0gaWQ7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5vbkNob2ljZVVwZGF0ZWQuZW1pdChpdGVtKTtcbiAgfVxuXG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIHNlbGVjdCgpIHtcbiAgICB0aGlzLnJlc3VsdC5lbWl0KHRoaXMuZ2V0T3V0cHV0KCkpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlYm91bmNlci5jb21wbGV0ZSgpO1xuICAgIHRoaXMucmVzdWx0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zZWFyY2guY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0KCk6IElJZGVudGlmaWVkW10ge1xuICAgIHJldHVybiB0aGlzLmxpc3RJdGVtc1xuICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uc2VsZWN0ZWRJZClcbiAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLm9wdGlvbnMuZmluZChvcHRpb24gPT4gaXRlbS5zZWxlY3RlZElkID09PSBvcHRpb24ub2JqLmlkKSlcbiAgICAgIC5maWx0ZXIob3B0aW9uID0+ICFvcHRpb24uc2VsZWN0ZWQpXG4gICAgICAubWFwKHNlbGVjdGVkT3B0aW9uID0+IHNlbGVjdGVkT3B0aW9uLm9iaik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1tb2RhbFwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGRpYWxvZy1oZWFkZXJcIj5cbiAgICA8aSBbYzh5SWNvbl09XCJpY29uXCI+PC9pPlxuICAgIDxoMSBpZD1cIm1vZGFsLXRpdGxlXCIgY2xhc3M9XCJoM1wiPlxuICAgICAge3sgdGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2gxPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInAtMTYgdGV4dC1jZW50ZXIgc2VwYXJhdG9yLWJvdHRvbSBtaW4taGVpZ2h0LWZpdFwiPlxuICAgIDxwIGNsYXNzPVwibS1iLThcIj57eyBzdWJUaXRsZSB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2hvd0ZpbHRlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnY29sLXhzLTYnOiBzaG93RmlsdGVyICYmIGFkZGl0aW9uYWxGaWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgICAnY29sLXhzLTEyJzogIXNob3dGaWx0ZXIgfHwgIWFkZGl0aW9uYWxGaWx0ZXJUZW1wbGF0ZVxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGM4eS1maWx0ZXIgW2ljb25dPVwiJ3NlYXJjaCdcIiAob25TZWFyY2gpPVwidXBkYXRlUGlwZSgkZXZlbnQpXCI+PC9jOHktZmlsdGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdjb2wteHMtNic6IHNob3dGaWx0ZXIgJiYgYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlLFxuICAgICAgICAgICdjb2wteHMtMTInOiAhc2hvd0ZpbHRlciB8fCAhYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1pbm5lci1zY3JvbGxcIiBpZD1cIm1vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicC1sLTE2IHAtci0xNlwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIG0tdC04IG0tYi04XCIgKm5nSWY9XCIhaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjOHktZW1wdHktc3RhdGUgdGV4dC1sZWZ0XCI+XG4gICAgICAgICAgPGgxIGM4eUljb249XCJ7eyBpY29uIH19IFwiIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3JcIj48L2gxPlxuICAgICAgICAgIDxwIHRyYW5zbGF0ZT5ObyBpdGVtcyB0byBkaXNwbGF5LjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Yzh5LWxpc3QtZ3JvdXA+XG4gICAgICA8Yzh5LWxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RJdGVtcyB8IHNlbGVjdE1vZGFsRmlsdGVyUGlwZTogZmlsdGVyVGVybVwiPlxuICAgICAgICA8Yzh5LWxpLWljb24+XG4gICAgICAgICAgPGkgYzh5SWNvbj1cInt7IGljb24gfX1cIj48L2k+XG4gICAgICAgIDwvYzh5LWxpLWljb24+XG5cbiAgICAgICAgPGM4eS1saS1ib2R5IGNsYXNzPVwiY29udGVudC1mbGV4LTMwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBib2R5UGFydCBvZiBpdGVtLmJvZHlcIiBbbmdDbGFzc109XCJib2R5UGFydC5jbGFzc1wiPlxuICAgICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJib2R5UGFydC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiZmlsdGVyVGVybVwiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiYm9keVBhcnQudmFsdWVcIlxuICAgICAgICAgICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgdGV4dC1yaWdodFwiICpuZ0lmPVwiaXRlbS5hZGRpdGlvbmFsSW5mb3JtYXRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5hZGRpdGlvbmFsSW5mb3JtYXRpb24uY2xhc3NcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5hZGRpdGlvbmFsSW5mb3JtYXRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2M4eS1saS1ib2R5PlxuXG4gICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgPGM4eS1saXN0LWdyb3VwPlxuICAgICAgICAgICAgPGM4eS1saSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW0ub3B0aW9uc1wiPlxuICAgICAgICAgICAgICA8Yzh5LWxpLXJhZGlvXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibW9kZSA9PT0gJ3NpbmdsZScgPyAnc2luZ2xlJyA6IGl0ZW0uZ3JvdXBJZFwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInVwZGF0ZUNob2ljZSh7IGl0ZW06IGl0ZW0sIGlkOiBvcHRpb24ub2JqLmlkIH0pXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgPjwvYzh5LWxpLXJhZGlvPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWJvZHkgY2xhc3M9XCJjb250ZW50LWZsZXgtMjBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uUGFydCBvZiBvcHRpb24uYm9keTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJvcHRpb25QYXJ0LmNsYXNzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodCBbcGF0dGVybl09XCJmaWx0ZXJUZXJtXCIgW3RleHRdPVwib3B0aW9uUGFydC52YWx1ZVwiPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb24udGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBvcHRpb246IG9wdGlvbiB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvYzh5LWxpLWJvZHk+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgICAgICA8L2M4eS1saS1jb2xsYXBzZT5cbiAgICAgIDwvYzh5LWxpPlxuICAgICAgPGRpdiAqbmdJZj1cImFyZU1vcmVFbnRyaWVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvIG0tdC0xNiBtLXItOCBtLWwtOFwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBTb21lIGVudHJpZXMgbWlnaHQgbm90IGJlIHNob3duLiBUcnkgbmFycm93aW5nIHNlYXJjaCBjcml0ZXJpYS5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2M4eS1saXN0LWdyb3VwPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyBsYWJlbHMuY2FuY2VsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCJsYWJlbHMuY2FuY2VsXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIChjbGljayk9XCJkaXNtaXNzKClcIlxuICAgID5cbiAgICAgIHt7IGxhYmVscy5jYW5jZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7IGxhYmVscy5vayB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJzZWxlY3QoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkXCJcbiAgICA+XG4gICAgICB7eyBsYWJlbHMub2sgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VsZWN0LW1vZGFsL3NlbGVjdC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3NlbGVjdC1tb2RhbC9zZWxlY3QtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQW1DLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVM0YsTUFBTSxPQUFPLG9CQUFvQjtJQTJCL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXhCakMsYUFBUSxHQUFXLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBRXJGLFNBQUksR0FBdUIsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3BELG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFM0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFTL0IsV0FBTSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUN4RSxXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUQsb0JBQWUsR0FBOEIsSUFBSSxZ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ZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNPLE1BQU07c0JBQWxCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElJZGVudGlmaWVkIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgSVNlbGVjdE1vZGFsT2JqZWN0LCBNb2RhbExhYmVscywgTW9kYWxTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnLi9zZWxlY3QtbW9kYWwubW9kZWwnO1xuXG5pbnRlcmZhY2UgSVNlbGVjdE1vZGFsSW50ZXJuYWxPYmplY3QgZXh0ZW5kcyBJU2VsZWN0TW9kYWxPYmplY3Qge1xuICBzZWxlY3RlZElkOiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zZWxlY3QtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3ViVGl0bGU6IHN0cmluZyA9IGdldHRleHQoJ1NlbGVjdCBmcm9tIHRoZSBsaXN0IG9mIGl0ZW1zIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpO1xuICBASW5wdXQoKSBpdGVtczogSVNlbGVjdE1vZGFsSW50ZXJuYWxPYmplY3RbXTtcbiAgQElucHV0KCkgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlID0gTW9kYWxTZWxlY3Rpb25Nb2RlLk1VTFRJO1xuICBASW5wdXQoKSBkaXNhYmxlU2VsZWN0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBhcmVNb3JlRW50cmllczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgbGFiZWxzKGxhYmVsczogTW9kYWxMYWJlbHMpIHtcbiAgICBjb25zdCB7IG9rID0gdGhpcy5sYWJlbHMub2ssIGNhbmNlbCA9IHRoaXMubGFiZWxzLmNhbmNlbCB9ID0gbGFiZWxzIHx8IHt9O1xuICAgIHRoaXMuX2xhYmVscyA9IHsgb2ssIGNhbmNlbCB9O1xuICB9XG4gIGdldCBsYWJlbHMoKTogTW9kYWxMYWJlbHMge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbHM7XG4gIH1cbiAgQElucHV0KCkgbm9JdGVtc01lc3NhZ2U6IHN0cmluZztcbiAgQE91dHB1dCgpIHJlc3VsdDogRXZlbnRFbWl0dGVyPElJZGVudGlmaWVkW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxJSWRlbnRpZmllZFtdPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaG9pY2VVcGRhdGVkOiBFdmVudEVtaXR0ZXI8SUlkZW50aWZpZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJSWRlbnRpZmllZD4oKTtcbiAgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgZmlsdGVyVGVybTogc3RyaW5nID0gJyc7XG4gIGxpc3RJdGVtcyA9IFtdO1xuICBwcml2YXRlIGRlYm91bmNlcjogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIF9sYWJlbHM6IE1vZGFsTGFiZWxzID0geyBvazogZ2V0dGV4dCgnQ29uZmlybScpLCBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBic01vZGFsUmVmOiBCc01vZGFsUmVmKSB7XG4gICAgdGhpcy5kZWJvdW5jZXIucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoLmVtaXQodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLml0ZW1zICYmIGNoYW5nZXMuaXRlbXMuY3VycmVudFZhbHVlKSB7XG4gICAgICBjb25zdCBpdGVtc1Byb21pc2UgPSBjaGFuZ2VzLml0ZW1zLmN1cnJlbnRWYWx1ZS5tYXAoYXN5bmMgaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0ub3B0aW9ucyA9IGF3YWl0IGl0ZW0ub3B0aW9ucztcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpdGVtLm9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnNlbGVjdGVkKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgaXRlbS5zZWxlY3RlZElkID0gc2VsZWN0ZWQub2JqLmlkO1xuICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVTZWxlY3RlZCkge1xuICAgICAgICAgICAgaXRlbS5vcHRpb25zLm1hcChvcHRpb24gPT4gYXNzaWduKG9wdGlvbiwgeyBkaXNhYmxlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxpc3RJdGVtcyA9IGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zUHJvbWlzZSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUGlwZShmaWx0ZXJUZXJtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRlYm91bmNlci5uZXh0KGZpbHRlclRlcm0pO1xuICAgIHRoaXMuZmlsdGVyVGVybSA9IGZpbHRlclRlcm07XG4gIH1cblxuICB1cGRhdGVDaG9pY2UoeyBpdGVtLCBpZCB9KSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMubGlzdEl0ZW1zLm1hcCh2YWx1ZSA9PiAodmFsdWUuc2VsZWN0ZWRJZCA9IHVuZGVmaW5lZCkpO1xuICAgIH1cbiAgICBpdGVtLnNlbGVjdGVkSWQgPSBpZDtcbiAgICB0aGlzLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICB0aGlzLm9uQ2hvaWNlVXBkYXRlZC5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgZGlzbWlzcygpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgc2VsZWN0KCkge1xuICAgIHRoaXMucmVzdWx0LmVtaXQodGhpcy5nZXRPdXRwdXQoKSk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVib3VuY2VyLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5yZXN1bHQuY29tcGxldGUoKTtcbiAgICB0aGlzLnNlYXJjaC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXQoKTogSUlkZW50aWZpZWRbXSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdEl0ZW1zXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZElkKVxuICAgICAgLm1hcChpdGVtID0+IGl0ZW0ub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBpdGVtLnNlbGVjdGVkSWQgPT09IG9wdGlvbi5vYmouaWQpKVxuICAgICAgLmZpbHRlcihvcHRpb24gPT4gIW9wdGlvbi5zZWxlY3RlZClcbiAgICAgIC5tYXAoc2VsZWN0ZWRPcHRpb24gPT4gc2VsZWN0ZWRPcHRpb24ub2JqKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInZpZXdwb3J0LW1vZGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgZGlhbG9nLWhlYWRlclwiPlxuICAgIDxpIFtjOHlJY29uXT1cImljb25cIj48L2k+XG4gICAgPGgxIGlkPVwibW9kYWwtdGl0bGVcIiBjbGFzcz1cImgzXCI+XG4gICAgICB7eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvaDE+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicC0xNiB0ZXh0LWNlbnRlciBzZXBhcmF0b3ItYm90dG9tIG1pbi1oZWlnaHQtZml0XCI+XG4gICAgPHAgY2xhc3M9XCJtLWItOFwiPnt7IHN1YlRpdGxlIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzaG93RmlsdGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdjb2wteHMtNic6IHNob3dGaWx0ZXIgJiYgYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlLFxuICAgICAgICAgICdjb2wteHMtMTInOiAhc2hvd0ZpbHRlciB8fCAhYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8Yzh5LWZpbHRlciBbaWNvbl09XCInc2VhcmNoJ1wiIChvblNlYXJjaCk9XCJ1cGRhdGVQaXBlKCRldmVudClcIj48L2M4eS1maWx0ZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2NvbC14cy02Jzogc2hvd0ZpbHRlciAmJiBhZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGUsXG4gICAgICAgICAgJ2NvbC14cy0xMic6ICFzaG93RmlsdGVyIHx8ICFhZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGVcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWlubmVyLXNjcm9sbFwiIGlkPVwibW9kYWwtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLWwtMTYgcC1yLTE2XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgbS10LTggbS1iLThcIiAqbmdJZj1cIiFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1lbXB0eS1zdGF0ZSB0ZXh0LWxlZnRcIj5cbiAgICAgICAgICA8aDEgYzh5SWNvbj1cInt7IGljb24gfX0gXCIgY2xhc3M9XCJjOHktaWNvbi1kdW9jb2xvclwiPjwvaDE+XG4gICAgICAgICAgPHA+e3sgKG5vSXRlbXNNZXNzYWdlIHwgdHJhbnNsYXRlKSA/PyAnTm8gaXRlbXMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxjOHktbGlzdC1ncm91cD5cbiAgICAgIDxjOHktbGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdEl0ZW1zIHwgc2VsZWN0TW9kYWxGaWx0ZXJQaXBlOiBmaWx0ZXJUZXJtXCI+XG4gICAgICAgIDxjOHktbGktaWNvbj5cbiAgICAgICAgICA8aSBjOHlJY29uPVwie3sgaWNvbiB9fVwiPjwvaT5cbiAgICAgICAgPC9jOHktbGktaWNvbj5cblxuICAgICAgICA8Yzh5LWxpLWJvZHkgY2xhc3M9XCJjb250ZW50LWZsZXgtMzBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJvZHlQYXJ0IG9mIGl0ZW0uYm9keVwiIFtuZ0NsYXNzXT1cImJvZHlQYXJ0LmNsYXNzXCI+XG4gICAgICAgICAgICAgIDxjOHktaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImJvZHlQYXJ0LnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJmaWx0ZXJUZXJtXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJib2R5UGFydC52YWx1ZVwiXG4gICAgICAgICAgICAgID48L2M4eS1oaWdobGlnaHQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyB0ZXh0LXJpZ2h0XCIgKm5nSWY9XCJpdGVtLmFkZGl0aW9uYWxJbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmFkZGl0aW9uYWxJbmZvcm1hdGlvbi5jbGFzc1wiPlxuICAgICAgICAgICAgICB7eyBpdGVtLmFkZGl0aW9uYWxJbmZvcm1hdGlvbi52YWx1ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYzh5LWxpLWJvZHk+XG5cbiAgICAgICAgPGM4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICA8Yzh5LWxpc3QtZ3JvdXA+XG4gICAgICAgICAgICA8Yzh5LWxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbS5vcHRpb25zXCI+XG4gICAgICAgICAgICAgIDxjOHktbGktcmFkaW9cbiAgICAgICAgICAgICAgICBbbmFtZV09XCJtb2RlID09PSAnc2luZ2xlJyA/ICdzaW5nbGUnIDogaXRlbS5ncm91cElkXCJcbiAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwidXBkYXRlQ2hvaWNlKHsgaXRlbTogaXRlbSwgaWQ6IG9wdGlvbi5vYmouaWQgfSlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJvcHRpb24uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICA+PC9jOHktbGktcmFkaW8+XG4gICAgICAgICAgICAgIDxjOHktbGktYm9keSBjbGFzcz1cImNvbnRlbnQtZmxleC0yMFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb25QYXJ0IG9mIG9wdGlvbi5ib2R5OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9wdGlvblBhcnQuY2xhc3NcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxjOHktaGlnaGxpZ2h0IFtwYXR0ZXJuXT1cImZpbHRlclRlcm1cIiBbdGV4dF09XCJvcHRpb25QYXJ0LnZhbHVlXCI+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbi50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0sIG9wdGlvbjogb3B0aW9uIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9jOHktbGktYm9keT5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgIDwvYzh5LWxpc3QtZ3JvdXA+XG4gICAgICAgIDwvYzh5LWxpLWNvbGxhcHNlPlxuICAgICAgPC9jOHktbGk+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXJlTW9yZUVudHJpZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm8gbS10LTE2IG0tci04IG0tbC04XCIgdHJhbnNsYXRlPlxuICAgICAgICAgIFNvbWUgZW50cmllcyBtaWdodCBub3QgYmUgc2hvd24uIFRyeSBuYXJyb3dpbmcgc2VhcmNoIGNyaXRlcmlhLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYzh5LWxpc3QtZ3JvdXA+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7IGxhYmVscy5jYW5jZWwgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdJZj1cImxhYmVscy5jYW5jZWxcIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgKGNsaWNrKT1cImRpc21pc3MoKVwiXG4gICAgPlxuICAgICAge3sgbGFiZWxzLmNhbmNlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHRpdGxlPVwie3sgbGFiZWxzLm9rIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdCgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRcIlxuICAgID5cbiAgICAgIHt7IGxhYmVscy5vayB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -65,7 +65,7 @@ export class SelectConfigurationModalComponent {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
SelectConfigurationModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectConfigurationModalComponent, deps: [{ token: i1.RepositoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
SelectConfigurationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectConfigurationModalComponent, selector: "c8y-select-configuration-modal", ngImport: i0, template: "<c8y-select-modal\n [icon]=\"'gears'\"\n [title]=\"title\"\n [items]=\"configurations | async\"\n [mode]=\"'multi'\"\n (result)=\"result($event)\"\n (search)=\"search($event)\"\n [disableSelected]=\"true\"\n [labels]=\"labels\"\n>\n</c8y-select-modal>\n", dependencies: [{ kind: "component", type: i2.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
68
|
+
SelectConfigurationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectConfigurationModalComponent, selector: "c8y-select-configuration-modal", ngImport: i0, template: "<c8y-select-modal\n [icon]=\"'gears'\"\n [title]=\"title\"\n [items]=\"configurations | async\"\n [mode]=\"'multi'\"\n (result)=\"result($event)\"\n (search)=\"search($event)\"\n [disableSelected]=\"true\"\n [labels]=\"labels\"\n>\n</c8y-select-modal>\n", dependencies: [{ kind: "component", type: i2.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels", "noItemsMessage"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectConfigurationModalComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'c8y-select-configuration-modal', template: "<c8y-select-modal\n [icon]=\"'gears'\"\n [title]=\"title\"\n [items]=\"configurations | async\"\n [mode]=\"'multi'\"\n (result)=\"result($event)\"\n (search)=\"search($event)\"\n [disableSelected]=\"true\"\n [labels]=\"labels\"\n>\n</c8y-select-modal>\n" }]
|
|
@@ -262,9 +262,9 @@ export class RepositorySelectModalComponent {
|
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
RepositorySelectModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RepositorySelectModalComponent, deps: [{ token: i1.RepositoryService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
265
|
-
RepositorySelectModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RepositorySelectModalComponent, selector: "c8y-repository-select-modal", ngImport: i0, template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n>\n</c8y-select-modal>\n", dependencies: [{ kind: "component", type: i3.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
265
|
+
RepositorySelectModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RepositorySelectModalComponent, selector: "c8y-repository-select-modal", ngImport: i0, template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n [noItemsMessage]=\"noItemsMessage\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n>\n</c8y-select-modal>\n", dependencies: [{ kind: "component", type: i3.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels", "noItemsMessage"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
266
266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RepositorySelectModalComponent, decorators: [{
|
|
267
267
|
type: Component,
|
|
268
|
-
args: [{ selector: 'c8y-repository-select-modal', template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n>\n</c8y-select-modal>\n" }]
|
|
268
|
+
args: [{ selector: 'c8y-repository-select-modal', template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n [noItemsMessage]=\"noItemsMessage\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n>\n</c8y-select-modal>\n" }]
|
|
269
269
|
}], ctorParameters: function () { return [{ type: i1.RepositoryService }, { type: i2.TranslateService }]; } });
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zaGFyZWQvc2VsZWN0LW1vZGFsL3JlcG9zaXRvcnktc2VsZWN0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL3NlbGVjdC1tb2RhbC9yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsT0FBTyxFQUtQLGtCQUFrQixFQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUS9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFFMUQsa0JBQWtCO0FBQ2xCLGdHQUFnRztBQUNoRyxxSEFBcUg7QUFDckgsNkJBQTZCO0FBQzdCLHlCQUF5QjtBQUV6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyw4QkFBOEI7SUFxS3pDLFlBQ1UsaUJBQW9DLEVBQ3BD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LENBQUMsTUFBTSxLQUFLLENBQUM7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckYsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUYsTUFBTSxpQkFBaUIsR0FBdUI7WUFDNUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxFQUFFO1lBQzNCLElBQUksRUFBRTtnQkFDSixFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBQ3ZELEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFO2FBQzFFO1lBQ0QscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtZQUNsRSxPQUFPO1NBQ1IsQ0FBQztRQUVGLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQzs7MkhBclVVLDhCQUE4QjsrR0FBOUIsOEJBQThCLG1FQy9EM0Msc2VBZ0JBOzJGRCtDYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgUXVlcmllc1V0aWwgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBnZXR0ZXh0LFxuICBJU2VsZWN0TW9kYWxPYmplY3QsXG4gIElTZWxlY3RNb2RhbE9wdGlvbixcbiAgSVVwZGF0ZUl0ZW1FdmVudCxcbiAgTW9kYWxMYWJlbHMsXG4gIE1vZGFsU2VsZWN0aW9uTW9kZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldCwgaGFzLCBpc0VtcHR5LCBpc0VxdWFsLCBvbWl0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgRmlsdGVyQ3JpdGVyaWEsXG4gIFJlcG9zaXRvcnlCaW5hcnksXG4gIFJlcG9zaXRvcnlDYXRlZ29yeSxcbiAgUmVwb3NpdG9yeVR5cGUsXG4gIFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeVxufSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcblxuLy8gTU9EQUwgU1RSVUNUVVJFXG4vLyAtIHNlbGVjdE1vZGFsT2JqZWN0IChyZXBvc2l0b3J5IGVudHJ5IChyZXBvc2l0b3J5Q2F0ZWdvcnkpIC0+IHR5cGUgYzh5X0Zpcm13YXJlL2M4eV9Tb2Z0d2FyZSlcbi8vICAgLS0gSVNlbGVjdE1vZGFsT3B0aW9uIChyZXBvc2l0b3J5IGJpbmFyeSBlbnRyeSAocmVwb3NpdG9yeUJpbmFyeSkgPT4gdHlwZSBjOHlfRmlybXdhcmVCaW5hcnkvYzh5X1NvZnR3YXJlQmluYXJ5KVxuLy8gICAtLSBJU2VsZWN0TW9kYWxPcHRpb24uLi5cbi8vIC0gc2VsZWN0TW9kYWxPYmplY3QuLi5cblxuLyoqXG4gKiBSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQgZGlzcGxheXMgcmVwb3NpdG9yeSBlbnRyaWVzIG9wdGlvbnMgYW5kIGFsbG93cyB0byBzZWxlY3QgdGhlbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgXG4gKiBpbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuICogaW1wb3J0IHsgUmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50LCBNb2RhbFNlbGVjdGlvbk1vZGUsIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5L3NoYXJlZCc7XG4gKlxuICogY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICogICByZXBvc2l0b3J5VHlwZTogUmVwb3NpdG9yeVR5cGUuRklSTVdBUkUsXG4gKiAgIHRpdGxlOiBnZXR0ZXh0KCdJbnN0YWxsIGZpcm13YXJlJyksXG4gKiAgIHN1YlRpdGxlOiBnZXR0ZXh0KCdBdmFpbGFibGUgZmlybXdhcmVzIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpLFxuICogICBpY29uOiAnYzh5LWZpcm13YXJlJyxcbiAqICAgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlLlNJTkdMRSxcbiAqICAgbGFiZWxzOiB7IG9rOiBnZXR0ZXh0KCdJbnN0YWxsJykgfSxcbiAqICAgZGlzYWJsZVNlbGVjdGVkOiBmYWxzZVxuICogfTtcbiAqXG4gKiBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCwge1xuICogICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICogICBpbml0aWFsU3RhdGVcbiAqIH0pO1xuICpcbiAqIG1vZGFsLmNvbnRlbnQubG9hZC5uZXh0KCk7XG4gKiBtb2RhbC5jb250ZW50LnJlc3VsdEVtaXR0ZXIucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGZpcm13YXJlKSA9PiB7XG4gKiAgIC4uLlxuICogfSlcbiAqIGBgYFxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwcm92aWRlIGN1c3RvbSBkYXRhLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuICAgKlxuICAgKiBjb25zdCByZXBvc2l0b3J5RW50cnkgPSB7IG5hbWU6ICdFeGFtcGxlRW50cnknLCB0eXBlOiAnYzh5X0Zpcm13YXJlJyB9O1xuICAgKiBjb25zdCB2ZXJzaW9ucyA9IFt7IGM4eV9GaXJtd2FyZTogeyB2ZXJzaW9uOiAnMS4wLjAnLCB1cmw6ICdodHRwOi8vZXhhbXBsZS5jb20nIH0gfV07XG4gICAqXG4gICAqIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtyZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQ6IGZyb20oeyAuLi5yZXBvc2l0b3J5RW50cnksIHZlcnNpb25zIH0pfTtcbiAgICogYGBgXG4gICAqL1xuICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQ6IE9ic2VydmFibGU8SU1hbmFnZWRPYmplY3RbXT4gPSB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBSZXBvc2l0b3J5IGVudHJ5IHR5cGUuXG4gICAqL1xuICByZXBvc2l0b3J5VHlwZTogUmVwb3NpdG9yeVR5cGUuRklSTVdBUkUgfCBSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byB1c2UgY3VzdG9tIGJhZGdlcyB0ZW1wbGF0ZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBpbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG4gICAqXG4gICAqIGNvbnN0IGJhZGdlVGVtcGxhdGVzID0geyAnPTEnOiBnZXR0ZXh0KCd7e2NvdW50fX0gdmVyc2lvbicpLCBvdGhlcjogZ2V0dGV4dCgne3tjb3VudH19IHZlcnNpb25zJykgfTtcbiAgICogY29uc3QgaW5pdGlhbFN0YXRlID0geyBiYWRnZVRlbXBsYXRlcyB9O1xuICAgKiBgYGBcbiAgICovXG4gIGJhZGdlVGVtcGxhdGVzID0geyAnPTEnOiBnZXR0ZXh0KCd7e2NvdW50fX0gdmVyc2lvbicpLCBvdGhlcjogZ2V0dGV4dCgne3tjb3VudH19IHZlcnNpb25zJykgfTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwcm92aWRlIGN1c3RvbSBtb2RhbCB0aXRsZS5cbiAgICovXG4gIHRpdGxlOiBzdHJpbmcgPSBnZXR0ZXh0KCdTZWxlY3QgcmVwb3NpdG9yeSBlbnRyeScpO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGFsIHN1YnRpdGxlLlxuICAgKi9cbiAgc3ViVGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb250ZW50IG9mIHRoZSBtb2RhbC5cbiAgICogTXVzdCBiZSBpbnZva2VkIGJ5IHRoZSBtb2RhbCdzIGNhbGxlci5cbiAgICovXG4gIGxvYWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAvKipcbiAgICogVHJpZ2dlcnMgYW4gdXBkYXRlIG9mIHRoZSBpdGVtIGxpc3QgZW1pdHRlZC5cbiAgICovXG4gIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQ6IFN1YmplY3Q8SVVwZGF0ZUl0ZW1FdmVudDxhbnk+PiA9IG5ldyBTdWJqZWN0KCk7XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBFbWl0cyBhIGZpbHRlciBjcml0ZXJpYSBvYmplY3QgY3VycmVudGx5IGVudGVyZWQgaW4gdGhlIGZpbHRlciBpbnB1dC5cbiAgICogVXNlIGl0IHRvIGZpbHRlciB0aGUgaXRlbXMgaWYgeW91IHVzZSBjdXN0b20gcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkLlxuICAgKi9cbiAgc2VhcmNoVGVybTogQmVoYXZpb3JTdWJqZWN0PEZpbHRlckNyaXRlcmlhPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHByb3ZpZGUgZGV2aWNlIHR5cGUgcXVlcnkgdG8gcmVzdHJpY3Qgc2VhcmNoIGNyaXRlcmlhLlxuICAgKiBPbmx5IHRha2VzIGVmZmVjdCB3aGVuIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCBpcyBub3QgcHJvdmlkZWQsXG4gICAqIG90aGVyd2lzZSBtb2RhbCdzIGNhbGxlciBoYXZlIHRvIHByb3ZpZGUgYWxyZWFkeSBmaWx0ZXJlZCBkYXRhIGluIHRoZSByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQuXG4gICAqL1xuICBkZXZpY2VUeXBlUXVlcnk6IGFueSA9IHt9O1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHByb3ZpZGUgcXVlcnkgdG8gcmVzdHJpY3Qgc2VhcmNoIGNyaXRlcmlhLlxuICAgKiBPbmx5IHRha2VzIGVmZmVjdCB3aGVuIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCBpcyBub3QgcHJvdmlkZWQsXG4gICAqIG90aGVyd2lzZSBtb2RhbCdzIGNhbGxlciBoYXZlIHRvIHByb3ZpZGUgYWxyZWFkeSBmaWx0ZXJlZCBkYXRhIGluIHRoZSByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQuXG4gICAqL1xuICBzZWFyY2hRdWVyeTogYW55ID0ge307XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gcHJvdmlkZSBjdXN0b20gbGFiZWxzIGZvciB0aGUgYnV0dG9ucyByZXNwb25zaWJsZSBmb3IgY29uZmlybS9kaXNtaXNzIG1vZGFsIGFjdGlvbnMuXG4gICAqL1xuICBsYWJlbHM6IE1vZGFsTGFiZWxzID0geyBvazogZ2V0dGV4dCgnU2F2ZScpIH07XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gaGlkZSB0aGUgbmFtZSBmaWx0ZXIgaW5wdXQgZmllbGQuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBmaWx0ZXIgaW5wdXQgZmllbGQgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gc2hvdyBhIHdhcm5pbmcgdGhhdCB0aGUgc2VhcmNoIGNyaXRlcmlhIHNob3VsZCBiZSBuYXJyb3dlZCBkb3duLlxuICAgKiBCeSBkZWZhdWx0LCB0aGlzIHdhcm5pbmcgaXMgaGlkZGVuLlxuICAgKi9cbiAgYXJlTW9yZUVudHJpZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwYXNzIHRoZSBhcnJheSBvZiBpdGVtcy4gRWFjaCBpdGVtIGZyb20gdGhpcyBhcnJheSB3aWxsIGJlIG1hcmtlZCBhcyBzZWxlY3RlZCBpbiB0aGUgbW9kYWwuXG4gICAqL1xuICBzZWxlY3RlZDogU2VsZWN0ZWRSZXBvc2l0b3J5QmluYXJ5W107XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciBhIG5ldyByZXBvc2l0b3J5IGJpbmFyeSBoYXZlIGJlZW4gc2VsZWN0ZWQgaW4gdGhlIG1vZGFsLlxuICAgKi9cbiAgb25DaG9pY2VVcGRhdGVkOiBFdmVudEVtaXR0ZXI8SVNlbGVjdE1vZGFsT2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE1vZGFsT2JqZWN0PigpO1xuICAvKipcbiAgICogRW1pdHMgdGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgb3B0aW9ucy5cbiAgICovXG4gIHJlc3VsdEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxTZWxlY3RlZFJlcG9zaXRvcnlCaW5hcnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeVtdXG4gID4oKTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBjaGFuZ2Ugc2VsZWN0aW9uIG1vZGUuXG4gICAqIFN1cHBvcnRlZCBvcHRpb25zOlxuICAgKiAgICogc2luZ2xlOiBvbmx5IHNpbmdsZSBvcHRpb24gY2FuIGJlIHNlbGVjdGVkLlxuICAgKiAgICogbXVsdGlwbGU6IG11bHRpcGxlIG9wdGlvbnMgY2FuIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlID0gTW9kYWxTZWxlY3Rpb25Nb2RlLlNJTkdMRTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byB1c2UgY3VzdG9tIGljb24gaW4gdGhlIG1vZGFsIGhlYWRlci5cbiAgICovXG4gIGljb246IHN0cmluZztcbiAgLyoqXG4gICAqIEFsbG93cyB0byBibG9jayBzZWxlY3Rpb24gb2YgdGhlIG90aGVyIHZlcnNpb25zIGZyb20gdGhlIHNhbWUgcmVwb3NpdG9yeSBlbnRyeS5cbiAgICovXG4gIGRpc2FibGVTZWxlY3RlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgZmlsdGVyQ3JpdGVyaWE6IEZpbHRlckNyaXRlcmlhID0ge307XG5cbiAgcmVwb3NpdG9yeUVudHJpZXMkOiBPYnNlcnZhYmxlPElTZWxlY3RNb2RhbE9iamVjdFtdPiA9IHRoaXMubG9hZC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCksXG4gICAgbWVyZ2VNYXAobW9zID0+IHRoaXMuYWdncmVnYXRlKG1vcykpLFxuICAgIHRhcChpdGVtcyA9PiB7XG4gICAgICB0aGlzLmFyZU1vcmVFbnRyaWVzID0gaXRlbXMubGVuZ3RoID49IHRoaXMuUEFHRV9TSVpFID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0pLFxuICAgIHRhcChpdGVtcyA9PiAodGhpcy5yZXBvc2l0b3J5RW50cmllcyA9IGl0ZW1zKSlcbiAgKTtcblxuICBtb2RhbEVudHJpZXM6IE9ic2VydmFibGU8SVNlbGVjdE1vZGFsT2JqZWN0W10+ID0gbWVyZ2UoXG4gICAgdGhpcy5yZXBvc2l0b3J5RW50cmllcyQsXG4gICAgdGhpcy51cGRhdGVJbnN0YWxsYWJsZUxpc3QkLnBpcGUoXG4gICAgICBtYXAoKHVwZGF0ZUl0ZW1FdmVudDogSVVwZGF0ZUl0ZW1FdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub1VwZGF0ZTogSVNlbGVjdE1vZGFsT2JqZWN0ID0gKHRoaXMucmVwb3NpdG9yeUVudHJpZXMgfHwgW10pLmZpbmQoXG4gICAgICAgICAgaXRlbSA9PiBpdGVtLmdyb3VwSWQgPT09IHVwZGF0ZUl0ZW1FdmVudC5vYmplY3QuZ3JvdXBJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoaXRlbVRvVXBkYXRlKSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9uVG9VcGRhdGU6IElTZWxlY3RNb2RhbE9wdGlvbiA9IChpdGVtVG9VcGRhdGUub3B0aW9ucyB8fCBbXSkuZmluZChcbiAgICAgICAgICAgIG9wdGlvbiA9PiBvcHRpb24ub2JqLmlkID09PSAodXBkYXRlSXRlbUV2ZW50Lm9iamVjdCBhcyBhbnkpLnNlbGVjdGVkSWRcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChvcHRpb25Ub1VwZGF0ZSkge1xuICAgICAgICAgICAgb3B0aW9uVG9VcGRhdGUudGVtcGxhdGUgPSB1cGRhdGVJdGVtRXZlbnQudGVtcGxhdGU7XG4gICAgICAgICAgICBpZiAodXBkYXRlSXRlbUV2ZW50Lm1hcHBlcikge1xuICAgICAgICAgICAgICBvcHRpb25Ub1VwZGF0ZS5vYmogPSB1cGRhdGVJdGVtRXZlbnQubWFwcGVyKG9wdGlvblRvVXBkYXRlLm9iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnlFbnRyaWVzO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwcm92aWRlIGFkZGl0aW9uYWwgdGVtcGxhdGUgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZVxuICAgKiBmaWx0ZXJzIGJsb2NrIG9uIHRvcCBvZiB0aGUgcmVzdWx0cyBsaXN0IGluIHRoZSBzZWxlY3QgbW9kYWwuXG4gICAqL1xuICBhZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBQQUdFX1NJWkUgPSAxMDA7XG4gIHByaXZhdGUgcXVlcmllc1V0aWw6IFF1ZXJpZXNVdGlsO1xuICBwcml2YXRlIHJlcG9zaXRvcnlFbnRyaWVzOiBJU2VsZWN0TW9kYWxPYmplY3RbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlcG9zaXRvcnlTZXJ2aWNlOiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnJlcG9zaXRvcnlUeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcG9zaXRvcnkgdHlwZSBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkKSB7XG4gICAgICB0aGlzLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCA9IG9mKDEpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5saXN0UmVwb3NpdG9yeUVudHJpZXModGhpcy5yZXBvc2l0b3J5VHlwZSwge1xuICAgICAgICAgICAgcXVlcnk6IHRoaXMucXVlcmllc1V0aWwuYWRkQW5kRmlsdGVyKFxuICAgICAgICAgICAgICB0aGlzLmRldmljZVR5cGVRdWVyeSxcbiAgICAgICAgICAgICAgaGFzKHRoaXMuc2VhcmNoUXVlcnksICduYW1lJylcbiAgICAgICAgICAgICAgICA/IHsgLi4udGhpcy5zZWFyY2hRdWVyeSwgbmFtZTogYCoke3RoaXMuc2VhcmNoUXVlcnkubmFtZX0qYCB9XG4gICAgICAgICAgICAgICAgOiB0aGlzLnNlYXJjaFF1ZXJ5XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICAgIG1hcChtb3MgPT4gdGhpcy5nZXRBbmRBc3NpZ25SZXBvc2l0b3J5QmluYXJpZXMobW9zKSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QW5kQXNzaWduUmVwb3NpdG9yeUJpbmFyaWVzKG1vczogSU1hbmFnZWRPYmplY3RbXSkge1xuICAgIG1vcy5mb3JFYWNoKG1vID0+IHtcbiAgICAgIG1vLnZlcnNpb25zID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZS5saXN0QWxsVmVyc2lvbnMobW8pO1xuICAgIH0pO1xuICAgIHJldHVybiBtb3M7XG4gIH1cblxuICBzZWFyY2goZmlsdGVyQ3JpdGVyaWE6IEZpbHRlckNyaXRlcmlhKSB7XG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IG9taXRCeShcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5maWx0ZXJDcml0ZXJpYSxcbiAgICAgICAgLi4uZmlsdGVyQ3JpdGVyaWFcbiAgICAgIH0sXG4gICAgICBpc0VtcHR5XG4gICAgKTtcblxuICAgIGlmICghaXNFcXVhbCh0aGlzLmZpbHRlckNyaXRlcmlhLCB0aGlzLnNlYXJjaFF1ZXJ5KSkge1xuICAgICAgdGhpcy5zZWFyY2hUZXJtLm5leHQodGhpcy5maWx0ZXJDcml0ZXJpYSk7XG4gICAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gdGhpcy5maWx0ZXJDcml0ZXJpYTtcbiAgICAgIHRoaXMubG9hZC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVzdWx0KHNlbGVjdGVkSXRlbXM6IFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeVtdKSB7XG4gICAgdGhpcy5yZXN1bHRFbWl0dGVyLmVtaXQoc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBhc3luYyBhZ2dyZWdhdGUobW9zOiBJTWFuYWdlZE9iamVjdFtdKTogUHJvbWlzZTxJU2VsZWN0TW9kYWxPYmplY3RbXT4ge1xuICAgIGNvbnN0IHJlcG9zaXRvcnlUeXBlID0gdGhpcy5yZXBvc2l0b3J5VHlwZTtcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zOiBTZWxlY3RlZFJlcG9zaXRvcnlCaW5hcnlbXSA9IHRoaXMuc2VsZWN0ZWQ7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBtb3MubWFwKGFzeW5jIHJlcG9zaXRvcnlFbnRyeSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IElTZWxlY3RNb2RhbE9wdGlvbltdID0gdGhpcy5nZXRTZWxlY3RNb2RhbE9wdGlvbnMoXG4gICAgICAgICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5mZXRjaEFsbEl0ZW1zRnJvbUxpc3QocmVwb3NpdG9yeUVudHJ5LnZlcnNpb25zKSxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIHJlcG9zaXRvcnlFbnRyeSBhcyBSZXBvc2l0b3J5Q2F0ZWdvcnksXG4gICAgICAgICAgcmVwb3NpdG9yeVR5cGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0TW9kYWxPYmplY3QgPSB0aGlzLmdldFNlbGVjdE1vZGFsT2JqZWN0KFxuICAgICAgICAgIHJlcG9zaXRvcnlFbnRyeSBhcyBSZXBvc2l0b3J5Q2F0ZWdvcnksXG4gICAgICAgICAgb3B0aW9uc1xuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBzZWxlY3RNb2RhbE9iamVjdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFNlbGVjdE1vZGFsT3B0aW9ucyhcbiAgICB2ZXJzaW9uczogUmVwb3NpdG9yeUJpbmFyeVtdLFxuICAgIHNlbGVjdGVkSXRlbXM6IFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeVtdLFxuICAgIHJlcG9zaXRvcnlFbnRyeTogUmVwb3NpdG9yeUNhdGVnb3J5LFxuICAgIHJlcG9zaXRvcnlUeXBlOiBSZXBvc2l0b3J5VHlwZVxuICApOiBJU2VsZWN0TW9kYWxPcHRpb25bXSB7XG4gICAgY29uc3Qgc2VsZWN0TW9kYWxPcHRpb25zOiBJU2VsZWN0TW9kYWxPcHRpb25bXSA9IFtdO1xuICAgIHZlcnNpb25zLmZvckVhY2gocmVwb3NpdG9yeUJpbmFyeSA9PiB7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gdGhpcy5pc0JpbmFyeVJlcG9zaXRvcnlTZWxlY3RlZChcbiAgICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgcmVwb3NpdG9yeUVudHJ5LFxuICAgICAgICByZXBvc2l0b3J5QmluYXJ5LFxuICAgICAgICByZXBvc2l0b3J5VHlwZVxuICAgICAgKTtcblxuICAgICAgY29uc3QgeyB2ZXJzaW9uIH0gPSByZXBvc2l0b3J5QmluYXJ5W2Ake3JlcG9zaXRvcnlUeXBlfWBdO1xuICAgICAgY29uc3QgYm9keVZhbHVlID1cbiAgICAgICAgdmVyc2lvbiB8fCBgKCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnbm90IHNwZWNpZmllZGB2ZXJzaW9uYCcpKX0pYDtcbiAgICAgIGNvbnN0IGJvZHlDbGFzcyA9IHZlcnNpb24gPyAnJyA6ICd0ZXh0LW11dGVkJztcbiAgICAgIHNlbGVjdE1vZGFsT3B0aW9ucy5wdXNoKHtcbiAgICAgICAgYm9keTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiBib2R5VmFsdWUsXG4gICAgICAgICAgICBjbGFzczogYm9keUNsYXNzXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBvYmo6IHtcbiAgICAgICAgICBpZDogcmVwb3NpdG9yeUJpbmFyeS5pZCxcbiAgICAgICAgICBuYW1lOiByZXBvc2l0b3J5RW50cnkubmFtZSxcbiAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgIC4uLihnZXQocmVwb3NpdG9yeUJpbmFyeSwgJ2M4eV9QYXRjaC5kZXBlbmRlbmN5JykgJiYge1xuICAgICAgICAgICAgZGVwZW5kZW5jeTogZ2V0KHJlcG9zaXRvcnlCaW5hcnksICdjOHlfUGF0Y2guZGVwZW5kZW5jeScpXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLi4uKGdldChyZXBvc2l0b3J5QmluYXJ5LCAnYzh5X1BhdGNoJykgJiYgeyBpc1BhdGNoOiB0cnVlIH0pLFxuICAgICAgICAgIHVybDogcmVwb3NpdG9yeUJpbmFyeVtgJHtyZXBvc2l0b3J5VHlwZX1gXS51cmwsXG4gICAgICAgICAgc29mdHdhcmVUeXBlOiByZXBvc2l0b3J5RW50cnkuc29mdHdhcmVUeXBlXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2VsZWN0TW9kYWxPcHRpb25zO1xuICB9XG5cbiAgaXNCaW5hcnlSZXBvc2l0b3J5U2VsZWN0ZWQoXG4gICAgc2VsZWN0ZWRJdGVtczogU2VsZWN0ZWRSZXBvc2l0b3J5QmluYXJ5W10sXG4gICAgcmVwb3NpdG9yeUVudHJ5OiBSZXBvc2l0b3J5Q2F0ZWdvcnksXG4gICAgcmVwb3NpdG9yeUJpbmFyeTogUmVwb3NpdG9yeUJpbmFyeSxcbiAgICByZXBvc2l0b3J5VHlwZTogUmVwb3NpdG9yeVR5cGVcbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkSXRlbXNcbiAgICAgID8gc2VsZWN0ZWRJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgcmVwb3NpdG9yeUZyYWdtZW50ID0+XG4gICAgICAgICAgICByZXBvc2l0b3J5RnJhZ21lbnQubmFtZSA9PT0gcmVwb3NpdG9yeUVudHJ5Lm5hbWUgJiZcbiAgICAgICAgICAgIHJlcG9zaXRvcnlGcmFnbWVudC52ZXJzaW9uID09PSByZXBvc2l0b3J5QmluYXJ5W2Ake3JlcG9zaXRvcnlUeXBlfWBdLnZlcnNpb25cbiAgICAgICAgKS5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuXG4gICAgcmV0dXJuIGlzU2VsZWN0ZWQ7XG4gIH1cblxuICBnZXRTZWxlY3RNb2RhbE9iamVjdChcbiAgICByZXBvc2l0b3J5RW50cnk6IFJlcG9zaXRvcnlDYXRlZ29yeSxcbiAgICBvcHRpb25zOiBJU2VsZWN0TW9kYWxPcHRpb25bXVxuICApOiBJU2VsZWN0TW9kYWxPYmplY3Qge1xuICAgIGNvbnN0IGxhYmVsID1cbiAgICAgIG9wdGlvbnMubGVuZ3RoID09PSAxXG4gICAgICAgID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5iYWRnZVRlbXBsYXRlc1snPTEnXSwgeyBjb3VudDogb3B0aW9ucy5sZW5ndGggfSlcbiAgICAgICAgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmJhZGdlVGVtcGxhdGVzLm90aGVyLCB7IGNvdW50OiBvcHRpb25zLmxlbmd0aCB9KTtcblxuICAgIGNvbnN0IHNlbGVjdE1vZGFsT2JqZWN0OiBJU2VsZWN0TW9kYWxPYmplY3QgPSB7XG4gICAgICBncm91cElkOiByZXBvc2l0b3J5RW50cnkuaWQsXG4gICAgICBib2R5OiBbXG4gICAgICAgIHsgdmFsdWU6IHJlcG9zaXRvcnlFbnRyeS5uYW1lLCBjbGFzczogJ3RleHQtdHJ1bmNhdGUnIH0sXG4gICAgICAgIHsgdmFsdWU6IHJlcG9zaXRvcnlFbnRyeS5kZXNjcmlwdGlvbiwgY2xhc3M6ICd0ZXh0LXRydW5jYXRlIHRleHQtbXV0ZWQnIH1cbiAgICAgIF0sXG4gICAgICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IHsgdmFsdWU6IGxhYmVsLCBjbGFzczogJ2xhYmVsIGxhYmVsLWluZm8nIH0sXG4gICAgICBvcHRpb25zXG4gICAgfTtcblxuICAgIHJldHVybiBzZWxlY3RNb2RhbE9iamVjdDtcbiAgfVxufVxuIiwiPGM4eS1zZWxlY3QtbW9kYWxcbiAgW2ljb25dPVwiaWNvblwiXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4gIFtzdWJUaXRsZV09XCJzdWJUaXRsZVwiXG4gIFtpdGVtc109XCJtb2RhbEVudHJpZXMgfCBhc3luY1wiXG4gIFttb2RlXT1cIm1vZGVcIlxuICBbZGlzYWJsZVNlbGVjdGVkXT1cImRpc2FibGVTZWxlY3RlZFwiXG4gIFtsYWJlbHNdPVwibGFiZWxzXCJcbiAgW3Nob3dGaWx0ZXJdPVwic2hvd0ZpbHRlclwiXG4gIFthZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGVdPVwiYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlXCJcbiAgW2FyZU1vcmVFbnRyaWVzXT1cImFyZU1vcmVFbnRyaWVzXCJcbiAgKHNlYXJjaCk9XCJzZWFyY2goeyBuYW1lOiAkZXZlbnQgfSlcIlxuICAob25DaG9pY2VVcGRhdGVkKT1cIm9uQ2hvaWNlVXBkYXRlZC5lbWl0KCRldmVudClcIlxuICAocmVzdWx0KT1cInJlc3VsdCgkZXZlbnQpXCJcbj5cbjwvYzh5LXNlbGVjdC1tb2RhbD5cbiJdfQ==
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zaGFyZWQvc2VsZWN0LW1vZGFsL3JlcG9zaXRvcnktc2VsZWN0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL3NlbGVjdC1tb2RhbC9yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsT0FBTyxFQUtQLGtCQUFrQixFQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUS9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFFMUQsa0JBQWtCO0FBQ2xCLGdHQUFnRztBQUNoRyxxSEFBcUg7QUFDckgsNkJBQTZCO0FBQzdCLHlCQUF5QjtBQUV6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyw4QkFBOEI7SUEwS3pDLFlBQ1UsaUJBQW9DLEVBQ3BD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LENBQUMsTUFBTSxLQUFLLENBQUM7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckYsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUYsTUFBTSxpQkFBaUIsR0FBdUI7WUFDNUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxFQUFFO1lBQzNCLElBQUksRUFBRTtnQkFDSixFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBQ3ZELEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFO2FBQzFFO1lBQ0QscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtZQUNsRSxPQUFPO1NBQ1IsQ0FBQztRQUVGLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQzs7MkhBMVVVLDhCQUE4QjsrR0FBOUIsOEJBQThCLG1FQy9EM0MsNmdCQWlCQTsyRkQ4Q2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIFF1ZXJpZXNVdGlsIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgZ2V0dGV4dCxcbiAgSVNlbGVjdE1vZGFsT2JqZWN0LFxuICBJU2VsZWN0TW9kYWxPcHRpb24sXG4gIElVcGRhdGVJdGVtRXZlbnQsXG4gIE1vZGFsTGFiZWxzLFxuICBNb2RhbFNlbGVjdGlvbk1vZGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXQsIGhhcywgaXNFbXB0eSwgaXNFcXVhbCwgb21pdEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEZpbHRlckNyaXRlcmlhLFxuICBSZXBvc2l0b3J5QmluYXJ5LFxuICBSZXBvc2l0b3J5Q2F0ZWdvcnksXG4gIFJlcG9zaXRvcnlUeXBlLFxuICBTZWxlY3RlZFJlcG9zaXRvcnlCaW5hcnlcbn0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5cbi8vIE1PREFMIFNUUlVDVFVSRVxuLy8gLSBzZWxlY3RNb2RhbE9iamVjdCAocmVwb3NpdG9yeSBlbnRyeSAocmVwb3NpdG9yeUNhdGVnb3J5KSAtPiB0eXBlIGM4eV9GaXJtd2FyZS9jOHlfU29mdHdhcmUpXG4vLyAgIC0tIElTZWxlY3RNb2RhbE9wdGlvbiAocmVwb3NpdG9yeSBiaW5hcnkgZW50cnkgKHJlcG9zaXRvcnlCaW5hcnkpID0+IHR5cGUgYzh5X0Zpcm13YXJlQmluYXJ5L2M4eV9Tb2Z0d2FyZUJpbmFyeSlcbi8vICAgLS0gSVNlbGVjdE1vZGFsT3B0aW9uLi4uXG4vLyAtIHNlbGVjdE1vZGFsT2JqZWN0Li4uXG5cbi8qKlxuICogUmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50IGRpc3BsYXlzIHJlcG9zaXRvcnkgZW50cmllcyBvcHRpb25zIGFuZCBhbGxvd3MgdG8gc2VsZWN0IHRoZW0uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbiAqIGltcG9ydCB7IFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCwgTW9kYWxTZWxlY3Rpb25Nb2RlLCBSZXBvc2l0b3J5VHlwZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS9zaGFyZWQnO1xuICpcbiAqIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAqICAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLFxuICogICB0aXRsZTogZ2V0dGV4dCgnSW5zdGFsbCBmaXJtd2FyZScpLFxuICogICBzdWJUaXRsZTogZ2V0dGV4dCgnQXZhaWxhYmxlIGZpcm13YXJlcyBtYXRjaGluZyB0aGUgZGV2aWNlIHR5cGUnKSxcbiAqICAgaWNvbjogJ2M4eS1maXJtd2FyZScsXG4gKiAgIG1vZGU6IE1vZGFsU2VsZWN0aW9uTW9kZS5TSU5HTEUsXG4gKiAgIGxhYmVsczogeyBvazogZ2V0dGV4dCgnSW5zdGFsbCcpIH0sXG4gKiAgIGRpc2FibGVTZWxlY3RlZDogZmFsc2VcbiAqIH07XG4gKlxuICogY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQsIHtcbiAqICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAqICAgaW5pdGlhbFN0YXRlXG4gKiB9KTtcbiAqXG4gKiBtb2RhbC5jb250ZW50LmxvYWQubmV4dCgpO1xuICogbW9kYWwuY29udGVudC5yZXN1bHRFbWl0dGVyLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChmaXJtd2FyZSkgPT4ge1xuICogICAuLi5cbiAqIH0pXG4gKiBgYGBcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gcHJvdmlkZSBjdXN0b20gZGF0YS5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbiAgICpcbiAgICogY29uc3QgcmVwb3NpdG9yeUVudHJ5ID0geyBuYW1lOiAnRXhhbXBsZUVudHJ5JywgdHlwZTogJ2M4eV9GaXJtd2FyZScgfTtcbiAgICogY29uc3QgdmVyc2lvbnMgPSBbeyBjOHlfRmlybXdhcmU6IHsgdmVyc2lvbjogJzEuMC4wJywgdXJsOiAnaHR0cDovL2V4YW1wbGUuY29tJyB9IH1dO1xuICAgKlxuICAgKiBjb25zdCBpbml0aWFsU3RhdGUgPSB7cmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiBmcm9tKHsgLi4ucmVwb3NpdG9yeUVudHJ5LCB2ZXJzaW9ucyB9KX07XG4gICAqIGBgYFxuICAgKi9cbiAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiBPYnNlcnZhYmxlPElNYW5hZ2VkT2JqZWN0W10+ID0gdW5kZWZpbmVkO1xuICAvKipcbiAgICogUmVwb3NpdG9yeSBlbnRyeSB0eXBlLlxuICAgKi9cbiAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFIHwgUmVwb3NpdG9yeVR5cGUuU09GVFdBUkU7XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gdXNlIGN1c3RvbSBiYWRnZXMgdGVtcGxhdGVzLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuICAgKlxuICAgKiBjb25zdCBiYWRnZVRlbXBsYXRlcyA9IHsgJz0xJzogZ2V0dGV4dCgne3tjb3VudH19IHZlcnNpb24nKSwgb3RoZXI6IGdldHRleHQoJ3t7Y291bnR9fSB2ZXJzaW9ucycpIH07XG4gICAqIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHsgYmFkZ2VUZW1wbGF0ZXMgfTtcbiAgICogYGBgXG4gICAqL1xuICBiYWRnZVRlbXBsYXRlcyA9IHsgJz0xJzogZ2V0dGV4dCgne3tjb3VudH19IHZlcnNpb24nKSwgb3RoZXI6IGdldHRleHQoJ3t7Y291bnR9fSB2ZXJzaW9ucycpIH07XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gcHJvdmlkZSBjdXN0b20gbW9kYWwgdGl0bGUuXG4gICAqL1xuICB0aXRsZTogc3RyaW5nID0gZ2V0dGV4dCgnU2VsZWN0IHJlcG9zaXRvcnkgZW50cnknKTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwcm92aWRlIGN1c3RvbSBtb2RhbCBzdWJ0aXRsZS5cbiAgICovXG4gIHN1YlRpdGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgY29udGVudCBvZiB0aGUgbW9kYWwuXG4gICAqIE11c3QgYmUgaW52b2tlZCBieSB0aGUgbW9kYWwncyBjYWxsZXIuXG4gICAqL1xuICBsb2FkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIGFuIHVwZGF0ZSBvZiB0aGUgaXRlbSBsaXN0IGVtaXR0ZWQuXG4gICAqL1xuICB1cGRhdGVJbnN0YWxsYWJsZUxpc3QkOiBTdWJqZWN0PElVcGRhdGVJdGVtRXZlbnQ8YW55Pj4gPSBuZXcgU3ViamVjdCgpO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogRW1pdHMgYSBmaWx0ZXIgY3JpdGVyaWEgb2JqZWN0IGN1cnJlbnRseSBlbnRlcmVkIGluIHRoZSBmaWx0ZXIgaW5wdXQuXG4gICAqIFVzZSBpdCB0byBmaWx0ZXIgdGhlIGl0ZW1zIGlmIHlvdSB1c2UgY3VzdG9tIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJC5cbiAgICovXG4gIHNlYXJjaFRlcm06IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDcml0ZXJpYT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwcm92aWRlIGRldmljZSB0eXBlIHF1ZXJ5IHRvIHJlc3RyaWN0IHNlYXJjaCBjcml0ZXJpYS5cbiAgICogT25seSB0YWtlcyBlZmZlY3Qgd2hlbiByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQgaXMgbm90IHByb3ZpZGVkLFxuICAgKiBvdGhlcndpc2UgbW9kYWwncyBjYWxsZXIgaGF2ZSB0byBwcm92aWRlIGFscmVhZHkgZmlsdGVyZWQgZGF0YSBpbiB0aGUgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkLlxuICAgKi9cbiAgZGV2aWNlVHlwZVF1ZXJ5OiBhbnkgPSB7fTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsXG4gICAqIEFsbG93cyB0byBwcm92aWRlIHF1ZXJ5IHRvIHJlc3RyaWN0IHNlYXJjaCBjcml0ZXJpYS5cbiAgICogT25seSB0YWtlcyBlZmZlY3Qgd2hlbiByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQgaXMgbm90IHByb3ZpZGVkLFxuICAgKiBvdGhlcndpc2UgbW9kYWwncyBjYWxsZXIgaGF2ZSB0byBwcm92aWRlIGFscmVhZHkgZmlsdGVyZWQgZGF0YSBpbiB0aGUgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkLlxuICAgKi9cbiAgc2VhcmNoUXVlcnk6IGFueSA9IHt9O1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHByb3ZpZGUgY3VzdG9tIGxhYmVscyBmb3IgdGhlIGJ1dHRvbnMgcmVzcG9uc2libGUgZm9yIGNvbmZpcm0vZGlzbWlzcyBtb2RhbCBhY3Rpb25zLlxuICAgKi9cbiAgbGFiZWxzOiBNb2RhbExhYmVscyA9IHsgb2s6IGdldHRleHQoJ1NhdmUnKSB9O1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIGhpZGUgdGhlIG5hbWUgZmlsdGVyIGlucHV0IGZpZWxkLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgZmlsdGVyIGlucHV0IGZpZWxkIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHNob3cgYSB3YXJuaW5nIHRoYXQgdGhlIHNlYXJjaCBjcml0ZXJpYSBzaG91bGQgYmUgbmFycm93ZWQgZG93bi5cbiAgICogQnkgZGVmYXVsdCwgdGhpcyB3YXJuaW5nIGlzIGhpZGRlbi5cbiAgICovXG4gIGFyZU1vcmVFbnRyaWVzOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBPcHRpb25hbFxuICAgKiBBbGxvd3MgdG8gZGlzcGxheSBhIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgZGVmYXVsdCBtZXNzYWdlIGluIGNhc2UgdGhlcmUgYXJlIG5vIGl0ZW1zIHRvIGRpc3BsYXkuXG4gICAqL1xuICBub0l0ZW1zTWVzc2FnZTogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHBhc3MgdGhlIGFycmF5IG9mIGl0ZW1zLiBFYWNoIGl0ZW0gZnJvbSB0aGlzIGFycmF5IHdpbGwgYmUgbWFya2VkIGFzIHNlbGVjdGVkIGluIHRoZSBtb2RhbC5cbiAgICovXG4gIHNlbGVjdGVkOiBTZWxlY3RlZFJlcG9zaXRvcnlCaW5hcnlbXTtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW5ldmVyIGEgbmV3IHJlcG9zaXRvcnkgYmluYXJ5IGhhdmUgYmVlbiBzZWxlY3RlZCBpbiB0aGUgbW9kYWwuXG4gICAqL1xuICBvbkNob2ljZVVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjxJU2VsZWN0TW9kYWxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxJU2VsZWN0TW9kYWxPYmplY3Q+KCk7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgbGlzdCBvZiBzZWxlY3RlZCBvcHRpb25zLlxuICAgKi9cbiAgcmVzdWx0RW1pdHRlcjogRXZlbnRFbWl0dGVyPFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2VsZWN0ZWRSZXBvc2l0b3J5QmluYXJ5W11cbiAgPigpO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIGNoYW5nZSBzZWxlY3Rpb24gbW9kZS5cbiAgICogU3VwcG9ydGVkIG9wdGlvbnM6XG4gICAqICAgKiBzaW5nbGU6IG9ubHkgc2luZ2xlIG9wdGlvbiBjYW4gYmUgc2VsZWN0ZWQuXG4gICAqICAgKiBtdWx0aXBsZTogbXVsdGlwbGUgb3B0aW9ucyBjYW4gYmUgc2VsZWN0ZWQuXG4gICAqL1xuICBtb2RlOiBNb2RhbFNlbGVjdGlvbk1vZGUgPSBNb2RhbFNlbGVjdGlvbk1vZGUuU0lOR0xFO1xuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHVzZSBjdXN0b20gaWNvbiBpbiB0aGUgbW9kYWwgaGVhZGVyLlxuICAgKi9cbiAgaWNvbjogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGJsb2NrIHNlbGVjdGlvbiBvZiB0aGUgb3RoZXIgdmVyc2lvbnMgZnJvbSB0aGUgc2FtZSByZXBvc2l0b3J5IGVudHJ5LlxuICAgKi9cbiAgZGlzYWJsZVNlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBmaWx0ZXJDcml0ZXJpYTogRmlsdGVyQ3JpdGVyaWEgPSB7fTtcblxuICByZXBvc2l0b3J5RW50cmllcyQ6IE9ic2VydmFibGU8SVNlbGVjdE1vZGFsT2JqZWN0W10+ID0gdGhpcy5sb2FkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkKSxcbiAgICBtZXJnZU1hcChtb3MgPT4gdGhpcy5hZ2dyZWdhdGUobW9zKSksXG4gICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgIHRoaXMuYXJlTW9yZUVudHJpZXMgPSBpdGVtcy5sZW5ndGggPj0gdGhpcy5QQUdFX1NJWkUgPyB0cnVlIDogZmFsc2U7XG4gICAgfSksXG4gICAgdGFwKGl0ZW1zID0+ICh0aGlzLnJlcG9zaXRvcnlFbnRyaWVzID0gaXRlbXMpKVxuICApO1xuXG4gIG1vZGFsRW50cmllczogT2JzZXJ2YWJsZTxJU2VsZWN0TW9kYWxPYmplY3RbXT4gPSBtZXJnZShcbiAgICB0aGlzLnJlcG9zaXRvcnlFbnRyaWVzJCxcbiAgICB0aGlzLnVwZGF0ZUluc3RhbGxhYmxlTGlzdCQucGlwZShcbiAgICAgIG1hcCgodXBkYXRlSXRlbUV2ZW50OiBJVXBkYXRlSXRlbUV2ZW50PGFueT4pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbVRvVXBkYXRlOiBJU2VsZWN0TW9kYWxPYmplY3QgPSAodGhpcy5yZXBvc2l0b3J5RW50cmllcyB8fCBbXSkuZmluZChcbiAgICAgICAgICBpdGVtID0+IGl0ZW0uZ3JvdXBJZCA9PT0gdXBkYXRlSXRlbUV2ZW50Lm9iamVjdC5ncm91cElkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpdGVtVG9VcGRhdGUpIHtcbiAgICAgICAgICBjb25zdCBvcHRpb25Ub1VwZGF0ZTogSVNlbGVjdE1vZGFsT3B0aW9uID0gKGl0ZW1Ub1VwZGF0ZS5vcHRpb25zIHx8IFtdKS5maW5kKFxuICAgICAgICAgICAgb3B0aW9uID0+IG9wdGlvbi5vYmouaWQgPT09ICh1cGRhdGVJdGVtRXZlbnQub2JqZWN0IGFzIGFueSkuc2VsZWN0ZWRJZFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG9wdGlvblRvVXBkYXRlKSB7XG4gICAgICAgICAgICBvcHRpb25Ub1VwZGF0ZS50ZW1wbGF0ZSA9IHVwZGF0ZUl0ZW1FdmVudC50ZW1wbGF0ZTtcbiAgICAgICAgICAgIGlmICh1cGRhdGVJdGVtRXZlbnQubWFwcGVyKSB7XG4gICAgICAgICAgICAgIG9wdGlvblRvVXBkYXRlLm9iaiA9IHVwZGF0ZUl0ZW1FdmVudC5tYXBwZXIob3B0aW9uVG9VcGRhdGUub2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeUVudHJpZXM7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICAvKipcbiAgICogT3B0aW9uYWxcbiAgICogQWxsb3dzIHRvIHByb3ZpZGUgYWRkaXRpb25hbCB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlXG4gICAqIGZpbHRlcnMgYmxvY2sgb24gdG9wIG9mIHRoZSByZXN1bHRzIGxpc3QgaW4gdGhlIHNlbGVjdCBtb2RhbC5cbiAgICovXG4gIGFkZGl0aW9uYWxGaWx0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIFBBR0VfU0laRSA9IDEwMDtcbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWw7XG4gIHByaXZhdGUgcmVwb3NpdG9yeUVudHJpZXM6IElTZWxlY3RNb2RhbE9iamVjdFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3NpdG9yeVNlcnZpY2U6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnF1ZXJpZXNVdGlsID0gbmV3IFF1ZXJpZXNVdGlsKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMucmVwb3NpdG9yeVR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVwb3NpdG9yeSB0eXBlIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5yZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQpIHtcbiAgICAgIHRoaXMucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkID0gb2YoMSkucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmxpc3RSZXBvc2l0b3J5RW50cmllcyh0aGlzLnJlcG9zaXRvcnlUeXBlLCB7XG4gICAgICAgICAgICBxdWVyeTogdGhpcy5xdWVyaWVzVXRpbC5hZGRBbmRGaWx0ZXIoXG4gICAgICAgICAgICAgIHRoaXMuZGV2aWNlVHlwZVF1ZXJ5LFxuICAgICAgICAgICAgICBoYXModGhpcy5zZWFyY2hRdWVyeSwgJ25hbWUnKVxuICAgICAgICAgICAgICAgID8geyAuLi50aGlzLnNlYXJjaFF1ZXJ5LCBuYW1lOiBgKiR7dGhpcy5zZWFyY2hRdWVyeS5uYW1lfSpgIH1cbiAgICAgICAgICAgICAgICA6IHRoaXMuc2VhcmNoUXVlcnlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBwYXJhbXM6IHsgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFIH1cbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcbiAgICAgICAgbWFwKG1vcyA9PiB0aGlzLmdldEFuZEFzc2lnblJlcG9zaXRvcnlCaW5hcmllcyhtb3MpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRBbmRBc3NpZ25SZXBvc2l0b3J5QmluYXJpZXMobW9zOiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgbW9zLmZvckVhY2gobW8gPT4ge1xuICAgICAgbW8udmVyc2lvbnMgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmxpc3RBbGxWZXJzaW9ucyhtbyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG1vcztcbiAgfVxuXG4gIHNlYXJjaChmaWx0ZXJDcml0ZXJpYTogRmlsdGVyQ3JpdGVyaWEpIHtcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhID0gb21pdEJ5KFxuICAgICAge1xuICAgICAgICAuLi50aGlzLmZpbHRlckNyaXRlcmlhLFxuICAgICAgICAuLi5maWx0ZXJDcml0ZXJpYVxuICAgICAgfSxcbiAgICAgIGlzRW1wdHlcbiAgICApO1xuXG4gICAgaWYgKCFpc0VxdWFsKHRoaXMuZmlsdGVyQ3JpdGVyaWEsIHRoaXMuc2VhcmNoUXVlcnkpKSB7XG4gICAgICB0aGlzLnNlYXJjaFRlcm0ubmV4dCh0aGlzLmZpbHRlckNyaXRlcmlhKTtcbiAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSB0aGlzLmZpbHRlckNyaXRlcmlhO1xuICAgICAgdGhpcy5sb2FkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICByZXN1bHQoc2VsZWN0ZWRJdGVtczogU2VsZWN0ZWRSZXBvc2l0b3J5QmluYXJ5W10pIHtcbiAgICB0aGlzLnJlc3VsdEVtaXR0ZXIuZW1pdChzZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIGFzeW5jIGFnZ3JlZ2F0ZShtb3M6IElNYW5hZ2VkT2JqZWN0W10pOiBQcm9taXNlPElTZWxlY3RNb2RhbE9iamVjdFtdPiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeVR5cGUgPSB0aGlzLnJlcG9zaXRvcnlUeXBlO1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeVtdID0gdGhpcy5zZWxlY3RlZDtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIG1vcy5tYXAoYXN5bmMgcmVwb3NpdG9yeUVudHJ5ID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogSVNlbGVjdE1vZGFsT3B0aW9uW10gPSB0aGlzLmdldFNlbGVjdE1vZGFsT3B0aW9ucyhcbiAgICAgICAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmZldGNoQWxsSXRlbXNGcm9tTGlzdChyZXBvc2l0b3J5RW50cnkudmVyc2lvbnMpLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgcmVwb3NpdG9yeUVudHJ5IGFzIFJlcG9zaXRvcnlDYXRlZ29yeSxcbiAgICAgICAgICByZXBvc2l0b3J5VHlwZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZWxlY3RNb2RhbE9iamVjdCA9IHRoaXMuZ2V0U2VsZWN0TW9kYWxPYmplY3QoXG4gICAgICAgICAgcmVwb3NpdG9yeUVudHJ5IGFzIFJlcG9zaXRvcnlDYXRlZ29yeSxcbiAgICAgICAgICBvcHRpb25zXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdE1vZGFsT2JqZWN0O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0U2VsZWN0TW9kYWxPcHRpb25zKFxuICAgIHZlcnNpb25zOiBSZXBvc2l0b3J5QmluYXJ5W10sXG4gICAgc2VsZWN0ZWRJdGVtczogU2VsZWN0ZWRSZXBvc2l0b3J5QmluYXJ5W10sXG4gICAgcmVwb3NpdG9yeUVudHJ5OiBSZXBvc2l0b3J5Q2F0ZWdvcnksXG4gICAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlXG4gICk6IElTZWxlY3RNb2RhbE9wdGlvbltdIHtcbiAgICBjb25zdCBzZWxlY3RNb2RhbE9wdGlvbnM6IElTZWxlY3RNb2RhbE9wdGlvbltdID0gW107XG4gICAgdmVyc2lvbnMuZm9yRWFjaChyZXBvc2l0b3J5QmluYXJ5ID0+IHtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQ6IGJvb2xlYW4gPSB0aGlzLmlzQmluYXJ5UmVwb3NpdG9yeVNlbGVjdGVkKFxuICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICByZXBvc2l0b3J5RW50cnksXG4gICAgICAgIHJlcG9zaXRvcnlCaW5hcnksXG4gICAgICAgIHJlcG9zaXRvcnlUeXBlXG4gICAgICApO1xuXG4gICAgICBjb25zdCB7IHZlcnNpb24gfSA9IHJlcG9zaXRvcnlCaW5hcnlbYCR7cmVwb3NpdG9yeVR5cGV9YF07XG4gICAgICBjb25zdCBib2R5VmFsdWUgPVxuICAgICAgICB2ZXJzaW9uIHx8IGAoJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdub3Qgc3BlY2lmaWVkYHZlcnNpb25gJykpfSlgO1xuICAgICAgY29uc3QgYm9keUNsYXNzID0gdmVyc2lvbiA/ICcnIDogJ3RleHQtbXV0ZWQnO1xuICAgICAgc2VsZWN0TW9kYWxPcHRpb25zLnB1c2goe1xuICAgICAgICBib2R5OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IGJvZHlWYWx1ZSxcbiAgICAgICAgICAgIGNsYXNzOiBib2R5Q2xhc3NcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIG9iajoge1xuICAgICAgICAgIGlkOiByZXBvc2l0b3J5QmluYXJ5LmlkLFxuICAgICAgICAgIG5hbWU6IHJlcG9zaXRvcnlFbnRyeS5uYW1lLFxuICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgLi4uKGdldChyZXBvc2l0b3J5QmluYXJ5LCAnYzh5X1BhdGNoLmRlcGVuZGVuY3knKSAmJiB7XG4gICAgICAgICAgICBkZXBlbmRlbmN5OiBnZXQocmVwb3NpdG9yeUJpbmFyeSwgJ2M4eV9QYXRjaC5kZXBlbmRlbmN5JylcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAuLi4oZ2V0KHJlcG9zaXRvcnlCaW5hcnksICdjOHlfUGF0Y2gnKSAmJiB7IGlzUGF0Y2g6IHRydWUgfSksXG4gICAgICAgICAgdXJsOiByZXBvc2l0b3J5QmluYXJ5W2Ake3JlcG9zaXRvcnlUeXBlfWBdLnVybCxcbiAgICAgICAgICBzb2Z0d2FyZVR5cGU6IHJlcG9zaXRvcnlFbnRyeS5zb2Z0d2FyZVR5cGVcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWRcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBzZWxlY3RNb2RhbE9wdGlvbnM7XG4gIH1cblxuICBpc0JpbmFyeVJlcG9zaXRvcnlTZWxlY3RlZChcbiAgICBzZWxlY3RlZEl0ZW1zOiBTZWxlY3RlZFJlcG9zaXRvcnlCaW5hcnlbXSxcbiAgICByZXBvc2l0b3J5RW50cnk6IFJlcG9zaXRvcnlDYXRlZ29yeSxcbiAgICByZXBvc2l0b3J5QmluYXJ5OiBSZXBvc2l0b3J5QmluYXJ5LFxuICAgIHJlcG9zaXRvcnlUeXBlOiBSZXBvc2l0b3J5VHlwZVxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRJdGVtc1xuICAgICAgPyBzZWxlY3RlZEl0ZW1zLmZpbHRlcihcbiAgICAgICAgICByZXBvc2l0b3J5RnJhZ21lbnQgPT5cbiAgICAgICAgICAgIHJlcG9zaXRvcnlGcmFnbWVudC5uYW1lID09PSByZXBvc2l0b3J5RW50cnkubmFtZSAmJlxuICAgICAgICAgICAgcmVwb3NpdG9yeUZyYWdtZW50LnZlcnNpb24gPT09IHJlcG9zaXRvcnlCaW5hcnlbYCR7cmVwb3NpdG9yeVR5cGV9YF0udmVyc2lvblxuICAgICAgICApLmxlbmd0aCA+IDBcbiAgICAgIDogZmFsc2U7XG5cbiAgICByZXR1cm4gaXNTZWxlY3RlZDtcbiAgfVxuXG4gIGdldFNlbGVjdE1vZGFsT2JqZWN0KFxuICAgIHJlcG9zaXRvcnlFbnRyeTogUmVwb3NpdG9yeUNhdGVnb3J5LFxuICAgIG9wdGlvbnM6IElTZWxlY3RNb2RhbE9wdGlvbltdXG4gICk6IElTZWxlY3RNb2RhbE9iamVjdCB7XG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAgb3B0aW9ucy5sZW5ndGggPT09IDFcbiAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmJhZGdlVGVtcGxhdGVzWyc9MSddLCB7IGNvdW50OiBvcHRpb25zLmxlbmd0aCB9KVxuICAgICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuYmFkZ2VUZW1wbGF0ZXMub3RoZXIsIHsgY291bnQ6IG9wdGlvbnMubGVuZ3RoIH0pO1xuXG4gICAgY29uc3Qgc2VsZWN0TW9kYWxPYmplY3Q6IElTZWxlY3RNb2RhbE9iamVjdCA9IHtcbiAgICAgIGdyb3VwSWQ6IHJlcG9zaXRvcnlFbnRyeS5pZCxcbiAgICAgIGJvZHk6IFtcbiAgICAgICAgeyB2YWx1ZTogcmVwb3NpdG9yeUVudHJ5Lm5hbWUsIGNsYXNzOiAndGV4dC10cnVuY2F0ZScgfSxcbiAgICAgICAgeyB2YWx1ZTogcmVwb3NpdG9yeUVudHJ5LmRlc2NyaXB0aW9uLCBjbGFzczogJ3RleHQtdHJ1bmNhdGUgdGV4dC1tdXRlZCcgfVxuICAgICAgXSxcbiAgICAgIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogeyB2YWx1ZTogbGFiZWwsIGNsYXNzOiAnbGFiZWwgbGFiZWwtaW5mbycgfSxcbiAgICAgIG9wdGlvbnNcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlbGVjdE1vZGFsT2JqZWN0O1xuICB9XG59XG4iLCI8Yzh5LXNlbGVjdC1tb2RhbFxuICBbaWNvbl09XCJpY29uXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW3N1YlRpdGxlXT1cInN1YlRpdGxlXCJcbiAgW2l0ZW1zXT1cIm1vZGFsRW50cmllcyB8IGFzeW5jXCJcbiAgW21vZGVdPVwibW9kZVwiXG4gIFtkaXNhYmxlU2VsZWN0ZWRdPVwiZGlzYWJsZVNlbGVjdGVkXCJcbiAgW2xhYmVsc109XCJsYWJlbHNcIlxuICBbc2hvd0ZpbHRlcl09XCJzaG93RmlsdGVyXCJcbiAgW2FkZGl0aW9uYWxGaWx0ZXJUZW1wbGF0ZV09XCJhZGRpdGlvbmFsRmlsdGVyVGVtcGxhdGVcIlxuICBbYXJlTW9yZUVudHJpZXNdPVwiYXJlTW9yZUVudHJpZXNcIlxuICBbbm9JdGVtc01lc3NhZ2VdPVwibm9JdGVtc01lc3NhZ2VcIlxuICAoc2VhcmNoKT1cInNlYXJjaCh7IG5hbWU6ICRldmVudCB9KVwiXG4gIChvbkNob2ljZVVwZGF0ZWQpPVwib25DaG9pY2VVcGRhdGVkLmVtaXQoJGV2ZW50KVwiXG4gIChyZXN1bHQpPVwicmVzdWx0KCRldmVudClcIlxuPlxuPC9jOHktc2VsZWN0LW1vZGFsPlxuIl19
|
|
@@ -42,8 +42,10 @@ export class InstalledSoftwareComponent {
|
|
|
42
42
|
installSoftware() {
|
|
43
43
|
const { resultEmitter, choiceEmitter, updateInstallableList$ } = this.displaySoftwareSelectModal({
|
|
44
44
|
title: gettext('Install software'),
|
|
45
|
+
subTitle: gettext('Available softwares matching the device type'),
|
|
45
46
|
labels: { ok: gettext('Install') },
|
|
46
47
|
showAdditionalFilter: true,
|
|
48
|
+
additionalFilterTemplate: this.softwareTypeTemplate,
|
|
47
49
|
repositoryEntriesWithVersions$: of([]),
|
|
48
50
|
repositoryEntriesWithVersionsFn$: modal => this.getInstallableSoftwareListWithVersions$(modal.content.searchTerm)
|
|
49
51
|
});
|
|
@@ -62,12 +64,14 @@ export class InstalledSoftwareComponent {
|
|
|
62
64
|
}
|
|
63
65
|
}));
|
|
64
66
|
}
|
|
65
|
-
updateSoftware(
|
|
67
|
+
updateSoftware(softwareToUpdate) {
|
|
66
68
|
const { resultEmitter, choiceEmitter, updateInstallableList$ } = this.displaySoftwareSelectModal({
|
|
67
69
|
title: gettext('Update software'),
|
|
70
|
+
subTitle: gettext('Select one of the available software versions'),
|
|
68
71
|
labels: { ok: gettext('Update') },
|
|
72
|
+
noItemsMessage: gettext('No other software versions available.'),
|
|
69
73
|
showFilter: false,
|
|
70
|
-
repositoryEntriesWithVersions$: this.getSingleSoftwareWithVersions$(
|
|
74
|
+
repositoryEntriesWithVersions$: this.getSingleSoftwareWithVersions$(softwareToUpdate)
|
|
71
75
|
});
|
|
72
76
|
resultEmitter.pipe(takeUntil(this.destroyed$)).subscribe(softwareToInstall => {
|
|
73
77
|
this.emitSoftwareInstall(softwareToInstall);
|
|
@@ -117,12 +121,10 @@ export class InstalledSoftwareComponent {
|
|
|
117
121
|
displaySoftwareSelectModal(initialStateOverrides) {
|
|
118
122
|
const initialState = {
|
|
119
123
|
repositoryType: RepositoryType.SOFTWARE,
|
|
120
|
-
subTitle: gettext('Available softwares matching the device type'),
|
|
121
124
|
mode: ModalSelectionMode.MULTI,
|
|
122
125
|
icon: 'c8y-tools',
|
|
123
126
|
disableSelected: false,
|
|
124
127
|
selected: this.softwareList,
|
|
125
|
-
additionalFilterTemplate: this.softwareTypeTemplate,
|
|
126
128
|
...initialStateOverrides
|
|
127
129
|
};
|
|
128
130
|
const modal = this.bsModal.show(RepositorySelectModalComponent, {
|
|
@@ -201,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
201
203
|
type: ViewChild,
|
|
202
204
|
args: ['softwareType', { static: true }]
|
|
203
205
|
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVkLXNvZnR3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUvZGV2aWNlLXRhYi9pbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zb2Z0d2FyZS9kZXZpY2UtdGFiL2luc3RhbGxlZC1zb2Z0d2FyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE4QixXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUNMLE9BQU8sRUFHUCxrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBSUwsa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUM5QixpQkFBaUIsRUFDakIsY0FBYyxFQUNmLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFNeEIsTUFBTSxPQUFPLDBCQUEwQjtJQWtDckMsWUFBb0IsVUFBNkIsRUFBVSxPQUF1QjtRQUE5RCxlQUFV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cHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIElPcGVyYXRpb24sIFF1ZXJpZXNVdGlsIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgZ2V0dGV4dCxcbiAgSVNlbGVjdE1vZGFsT2JqZWN0LFxuICBJVXBkYXRlSXRlbUV2ZW50LFxuICBNb2RhbFNlbGVjdGlvbk1vZGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBEZXZpY2VTb2Z0d2FyZSxcbiAgRGV2aWNlU29mdHdhcmVDaGFuZ2UsXG4gIEZpbHRlckNyaXRlcmlhLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0UsXG4gIFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCxcbiAgUmVwb3NpdG9yeVNlcnZpY2UsXG4gIFJlcG9zaXRvcnlUeXBlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS9zaGFyZWQnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUsIG9mLCBwaXBlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG1lcmdlTWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1pbnN0YWxsZWQtc29mdHdhcmUnLFxuICB0ZW1wbGF0ZVVybDogJ2luc3RhbGxlZC1zb2Z0d2FyZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSW5zdGFsbGVkU29mdHdhcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIFBST0RVQ1RfRVhQRVJJRU5DRSA9IFBST0RVQ1RfRVhQRVJJRU5DRTtcbiAgQElucHV0KCkgZGV2aWNlOiBJTWFuYWdlZE9iamVjdDtcbiAgQElucHV0KCkgc29mdHdhcmVMaXN0OiBEZXZpY2VTb2Z0d2FyZVtdO1xuICBASW5wdXQoKSBkZXZpY2VTb2Z0d2FyZUNoYW5nZXM6IERldmljZVNvZnR3YXJlQ2hhbmdlW107XG4gIEBJbnB1dCgpIGRldmljZVNvZnR3YXJlQ2hhbmdlc09wZXJhdGlvbjogSU9wZXJhdGlvbjtcbiAgQElucHV0KCkgZGV2aWNlU29mdHdhcmVDaGFuZ2VzSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgQElucHV0KCkgdHlwZXNRdWVyeTogb2JqZWN0O1xuICBAT3V0cHV0KCkgY2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8RGV2aWNlU29mdHdhcmVDaGFuZ2VbXT4oKTtcbiAgQE91dHB1dCgpIHNob3dTb2Z0d2FyZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYWxyZWFkeUluc3RhbGxlZFdhcm5pbmcnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBhbHJlYWR5SW5zdGFsbGVkV2FybmluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBhbHJlYWR5SW5zdGFsbGVkTWVzc2FnZSA9IGdldHRleHQoXG4gICAgJ3t7IG5hbWUgfX0gKHYuIHt7IHZlcnNpb24gfX0pIGlzIGFscmVhZHkgaW5zdGFsbGVkIG9uIHRoaXMgZGV2aWNlJ1xuICApO1xuICBAVmlld0NoaWxkKCdsb2FkaW5nJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NvZnR3YXJlVHlwZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHNvZnR3YXJlVHlwZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VwcG9ydHNTb2Z0d2FyZU9wZXJhdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGV4dEZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHNvZnR3YXJlVHlwZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGZpbHRlckNyaXRlcmlhJDogT2JzZXJ2YWJsZTxGaWx0ZXJDcml0ZXJpYT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcGVyYXRpb25UeXBlcyA9IFsnYzh5X1NvZnR3YXJlVXBkYXRlJywgJ2M4eV9Tb2Z0d2FyZUxpc3QnLCAnYzh5X1NvZnR3YXJlJ107XG5cbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWw7XG4gIHByaXZhdGUgbW9kYWxTZWFyY2g6IChmaWx0ZXJDcml0ZXJpYTogRmlsdGVyQ3JpdGVyaWEpID0+IHZvaWQ7XG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5U2VydmljZSwgcHJpdmF0ZSBic01vZGFsOiBCc01vZGFsU2VydmljZSkge1xuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWEkID0gY29tYmluZUxhdGVzdChbdGhpcy50ZXh0RmlsdGVyJCwgdGhpcy5zb2Z0d2FyZVR5cGVGaWx0ZXIkXSkucGlwZShcbiAgICAgIG1hcCgoW3RleHRGaWx0ZXIsIHNvZnR3YXJlVHlwZUZpbHRlcl0pID0+ICh7XG4gICAgICAgIG5hbWU6IHRleHRGaWx0ZXIsXG4gICAgICAgIHNvZnR3YXJlVHlwZTogc29mdHdhcmVUeXBlRmlsdGVyXG4gICAgICB9KSksXG4gICAgICBtYXAoZmlsdGVyQ3JpdGVyaWEgPT5cbiAgICAgICAgIWZpbHRlckNyaXRlcmlhLm5hbWUgJiYgIWZpbHRlckNyaXRlcmlhLnNvZnR3YXJlVHlwZSA/IG51bGwgOiBmaWx0ZXJDcml0ZXJpYVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3VwcG9ydGVkT3BlcmF0aW9ucyA9IGdldCh0aGlzLmRldmljZSwgJ2M4eV9TdXBwb3J0ZWRPcGVyYXRpb25zJywgW10pO1xuICAgIHRoaXMuc3VwcG9ydHNTb2Z0d2FyZU9wZXJhdGlvbnMgPSB0aGlzLm9wZXJhdGlvblR5cGVzLnNvbWUoXG4gICAgICBvcGVyYXRpb25UeXBlID0+IHN1cHBvcnRlZE9wZXJhdGlvbnMuaW5kZXhPZihvcGVyYXRpb25UeXBlKSA+IC0xXG4gICAgKTtcbiAgfVxuXG4gIGluc3RhbGxTb2Z0d2FyZSgpIHtcbiAgICBjb25zdCB7IHJlc3VsdEVtaXR0ZXIsIGNob2ljZUVtaXR0ZXIsIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQgfSA9XG4gICAgICB0aGlzLmRpc3BsYXlTb2Z0d2FyZVNlbGVjdE1vZGFsKHtcbiAgICAgICAgdGl0bGU6IGdldHRleHQoJ0luc3RhbGwgc29mdHdhcmUnKSxcbiAgICAgICAgbGFiZWxzOiB7IG9rOiBnZXR0ZXh0KCdJbnN0YWxsJykgfSxcbiAgICAgICAgc2hvd0FkZGl0aW9uYWxGaWx0ZXI6IHRydWUsXG4gICAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJDogb2YoW10pLFxuICAgICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJDogbW9kYWwgPT5cbiAgICAgICAgICB0aGlzLmdldEluc3RhbGxhYmxlU29mdHdhcmVMaXN0V2l0aFZlcnNpb25zJChtb2RhbC5jb250ZW50LnNlYXJjaFRlcm0pXG4gICAgICB9KTtcblxuICAgIHJlc3VsdEVtaXR0ZXIucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHNvZnR3YXJlVG9JbnN0YWxsID0+IHtcbiAgICAgIHRoaXMuZW1pdFNvZnR3YXJlSW5zdGFsbChzb2Z0d2FyZVRvSW5zdGFsbCk7XG4gICAgICB0aGlzLnNob3dTb2Z0d2FyZUNoYW5nZXMuZW1pdCgpO1xuICAgIH0pO1xuXG4gICAgY2hvaWNlRW1pdHRlclxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMuaXNTb2Z0d2FyZUluc3RhbGxlZE9uRGV2aWNlUGlwZSh1cGRhdGVJbnN0YWxsYWJsZUxpc3QkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHsgaXRlbSB9KSA9PlxuICAgICAgICB1cGRhdGVJbnN0YWxsYWJsZUxpc3QkLm5leHQoe1xuICAgICAgICAgIG9iamVjdDogaXRlbSxcbiAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5hbHJlYWR5SW5zdGFsbGVkV2FybmluZ1RlbXBsYXRlLFxuICAgICAgICAgIG1hcHBlcjogb2JqZWN0ID0+IHtcbiAgICAgICAgICAgIG9iamVjdC5pbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU29mdHdhcmUoc29mdHdhcmVUb1JlbW92ZSkge1xuICAgIGNvbnN0IHsgcmVzdWx0RW1pdHRlciwgY2hvaWNlRW1pdHRlciwgdXBkYXRlSW5zdGFsbGFibGVMaXN0JCB9ID1cbiAgICAgIHRoaXMuZGlzcGxheVNvZnR3YXJlU2VsZWN0TW9kYWwoe1xuICAgICAgICB0aXRsZTogZ2V0dGV4dCgnVXBkYXRlIHNvZnR3YXJlJyksXG4gICAgICAgIGxhYmVsczogeyBvazogZ2V0dGV4dCgnVXBkYXRlJykgfSxcbiAgICAgICAgc2hvd0ZpbHRlcjogZmFsc2UsXG4gICAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJDogdGhpcy5nZXRTaW5nbGVTb2Z0d2FyZVdpdGhWZXJzaW9ucyQoc29mdHdhcmVUb1JlbW92ZSlcbiAgICAgIH0pO1xuXG4gICAgcmVzdWx0RW1pdHRlci5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoc29mdHdhcmVUb0luc3RhbGwgPT4ge1xuICAgICAgdGhpcy5lbWl0U29mdHdhcmVJbnN0YWxsKHNvZnR3YXJlVG9JbnN0YWxsKTtcbiAgICAgIHRoaXMuc2hvd1NvZnR3YXJlQ2hhbmdlcy5lbWl0KCk7XG4gICAgfSk7XG5cbiAgICBjaG9pY2VFbWl0dGVyXG4gICAgICAucGlwZShcbiAgICAgICAgdGhpcy5pc1NvZnR3YXJlSW5zdGFsbGVkT25EZXZpY2VQaXBlKHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBpdGVtIH0pID0+XG4gICAgICAgIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQubmV4dCh7XG4gICAgICAgICAgb2JqZWN0OiBpdGVtLFxuICAgICAgICAgIHRlbXBsYXRlOiB0aGlzLmFscmVhZHlJbnN0YWxsZWRXYXJuaW5nVGVtcGxhdGUsXG4gICAgICAgICAgbWFwcGVyOiBvYmplY3QgPT4ge1xuICAgICAgICAgICAgb2JqZWN0Lmluc3RhbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICByZW1vdmVTb2Z0d2FyZShzb2Z0d2FyZVRvUmVtb3ZlKSB7XG4gICAgdGhpcy5lbWl0U29mdHdhcmVSZW1vdmFsKFtzb2Z0d2FyZVRvUmVtb3ZlXSk7XG4gIH1cblxuICBnZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQoc2VhcmNoVGVybSQ6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDcml0ZXJpYT4pIHtcbiAgICBjb25zdCBpbnN0YWxsZWRTb2Z0d2FyZU5hbWVzID0gKHRoaXMuc29mdHdhcmVMaXN0IHx8IFtdKS5tYXAocyA9PiBzLm5hbWUpO1xuICAgIHJldHVybiBzZWFyY2hUZXJtJC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzZWFyY2hUZXJtID0+XG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgICBxdWVyeTogc2VhcmNoVGVybS5zb2Z0d2FyZVR5cGVcbiAgICAgICAgICAgID8gdGhpcy5xdWVyaWVzVXRpbC5hZGRBbmRGaWx0ZXIodGhpcy50eXBlc1F1ZXJ5LCB7XG4gICAgICAgICAgICAgICAgc29mdHdhcmVUeXBlOiBzZWFyY2hUZXJtLnNvZnR3YXJlVHlwZVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB0aGlzLnR5cGVzUXVlcnksXG4gICAgICAgICAgcGFydGlhbE5hbWU6IHNlYXJjaFRlcm0/Lm5hbWUsXG4gICAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiAxMDAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpLFxuICAgICAgbWFwKHNvZnR3YXJlTGlzdCA9PiB7XG4gICAgICAgIHJldHVybiBzb2Z0d2FyZUxpc3QuZmlsdGVyKHNvZnR3YXJlID0+IHtcbiAgICAgICAgICByZXR1cm4gIWluc3RhbGxlZFNvZnR3YXJlTmFtZXMuaW5jbHVkZXMoc29mdHdhcmUubmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoc29mdHdhcmVMaXN0ID0+IHRoaXMuYXR0YWNoVmVyc2lvbnMoc29mdHdhcmVMaXN0KSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXRTaW5nbGVTb2Z0d2FyZVdpdGhWZXJzaW9ucyQoc29mdHdhcmU6IERldmljZVNvZnR3YXJlKSB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLnJlcG9zaXRvcnkubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHF1ZXJ5OiB7IG5hbWU6IHNvZnR3YXJlLm5hbWUgfVxuICAgICAgfSlcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcbiAgICAgIG1hcChzb2Z0d2FyZUxpc3QgPT4gdGhpcy5hdHRhY2hWZXJzaW9ucyhzb2Z0d2FyZUxpc3QpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGF0dGFjaFZlcnNpb25zKHNvZnR3YXJlTGlzdDogSU1hbmFnZWRPYmplY3RbXSkge1xuICAgIHNvZnR3YXJlTGlzdC5mb3JFYWNoKHNvZnR3YXJlID0+IHtcbiAgICAgIHNvZnR3YXJlLnZlcnNpb25zID0gdGhpcy5yZXBvc2l0b3J5Lmxpc3RCYXNlVmVyc2lvbnMoc29mdHdhcmUpO1xuICAgIH0pO1xuICAgIHJldHVybiBzb2Z0d2FyZUxpc3Q7XG4gIH1cblxuICBkaXNwbGF5U29mdHdhcmVTZWxlY3RNb2RhbChpbml0aWFsU3RhdGVPdmVycmlkZXMpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICByZXBvc2l0b3J5VHlwZTogUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsXG4gICAgICBzdWJUaXRsZTogZ2V0dGV4dCgnQXZhaWxhYmxlIHNvZnR3YXJlcyBtYXRjaGluZyB0aGUgZGV2aWNlIHR5cGUnKSxcbiAgICAgIG1vZGU6IE1vZGFsU2VsZWN0aW9uTW9kZS5NVUxUSSxcbiAgICAgIGljb246ICdjOHktdG9vbHMnLFxuICAgICAgZGlzYWJsZVNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNvZnR3YXJlTGlzdCxcbiAgICAgIGFkZGl0aW9uYWxGaWx0ZXJUZW1wbGF0ZTogdGhpcy5zb2Z0d2FyZVR5cGVUZW1wbGF0ZSxcbiAgICAgIC4uLmluaXRpYWxTdGF0ZU92ZXJyaWRlc1xuICAgIH07XG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQsIHtcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBjbGFzczogJ21vZGFsLXNtJyxcbiAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICBpbml0aWFsU3RhdGVcbiAgICB9KTtcblxuICAgIGlmIChpbml0aWFsU3RhdGVPdmVycmlkZXMucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnNGbiQpIHtcbiAgICAgIG1vZGFsLmNvbnRlbnQucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkID1cbiAgICAgICAgaW5pdGlhbFN0YXRlT3ZlcnJpZGVzLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kKG1vZGFsKTtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGFsU2VhcmNoID0gbW9kYWwuY29udGVudC5zZWFyY2guYmluZChtb2RhbC5jb250ZW50KTtcblxuICAgIG1vZGFsLmNvbnRlbnQubG9hZC5uZXh0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3VsdEVtaXR0ZXI6IG1vZGFsLmNvbnRlbnQucmVzdWx0RW1pdHRlcixcbiAgICAgIGNob2ljZUVtaXR0ZXI6IG1vZGFsLmNvbnRlbnQub25DaG9pY2VVcGRhdGVkLFxuICAgICAgdXBkYXRlSW5zdGFsbGFibGVMaXN0JDogbW9kYWwuY29udGVudC51cGRhdGVJbnN0YWxsYWJsZUxpc3QkXG4gICAgfTtcbiAgfVxuXG4gIHNlYXJjaChmaWx0ZXJDcml0ZXJpYTogRmlsdGVyQ3JpdGVyaWEpIHtcbiAgICBpZiAodGhpcy5tb2RhbFNlYXJjaCkge1xuICAgICAgdGhpcy5tb2RhbFNlYXJjaChmaWx0ZXJDcml0ZXJpYSk7XG4gICAgfVxuICB9XG5cbiAgZW1pdFNvZnR3YXJlSW5zdGFsbChpdGVtczogRGV2aWNlU29mdHdhcmVbXSkge1xuICAgIHRoaXMuY2hhbmdlcy5lbWl0KFxuICAgICAgaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBhY3Rpb246ICdpbnN0YWxsJyB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZW1pdFNvZnR3YXJlUmVtb3ZhbChpdGVtczogRGV2aWNlU29mdHdhcmVbXSkge1xuICAgIHRoaXMuY2hhbmdlcy5lbWl0KFxuICAgICAgaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBhY3Rpb246ICdkZWxldGUnIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NvZnR3YXJlSW5zdGFsbGVkT25EZXZpY2VQaXBlKHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQ6IFN1YmplY3Q8SVVwZGF0ZUl0ZW1FdmVudDxhbnk+Pikge1xuICAgIHJldHVybiBwaXBlKFxuICAgICAgdGFwKChpdGVtOiBJU2VsZWN0TW9kYWxPYmplY3QpID0+XG4gICAgICAgIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQubmV4dCh7IG9iamVjdDogaXRlbSwgdGVtcGxhdGU6IHRoaXMubG9hZGluZ1RlbXBsYXRlIH0pXG4gICAgICApLFxuICAgICAgbWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgaXRlbSxcbiAgICAgICAgc29mdHdhcmU6IChcbiAgICAgICAgICAoaXRlbS5vcHRpb25zIHx8IFtdKS5maW5kKG9wdGlvbiA9PiBvcHRpb24ub2JqLmlkID09PSAoaXRlbSBhcyBhbnkpLnNlbGVjdGVkSWQpIHx8IHt9XG4gICAgICAgICkub2JqXG4gICAgICB9KSksXG4gICAgICBtZXJnZU1hcCgoeyBpdGVtLCBzb2Z0d2FyZSB9KSA9PlxuICAgICAgICBmcm9tKFxuICAgICAgICAgIHRoaXMucmVwb3NpdG9yeS5pc1NvZnR3YXJlSW5zdGFsbGVkT25EZXZpY2UodGhpcy5kZXZpY2UuaWQsIHNvZnR3YXJlIGFzIERldmljZVNvZnR3YXJlKVxuICAgICAgICApLnBpcGUobWFwKGluc3RhbGxlZCA9PiAoeyBpdGVtLCBpbnN0YWxsZWQgfSkpKVxuICAgICAgKSxcbiAgICAgIHRhcCgoeyBpdGVtIH0pID0+IHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQubmV4dCh7IG9iamVjdDogaXRlbSB9KSksXG4gICAgICBmaWx0ZXIoKHsgaW5zdGFsbGVkIH0pID0+ICEhaW5zdGFsbGVkKVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZC1jb2wgZmxleC1ncm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBsYXJnZS1wYWRkaW5nIHNlcGFyYXRvciBzdGlja3ktdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIiB0cmFuc2xhdGU+SW5zdGFsbGVkIHNvZnR3YXJlPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93XCI+XG4gICAgPGZpZWxkc2V0XG4gICAgICBpZD1cIm9wZXJhdGlvbi1ibG9ja1wiXG4gICAgICAqbmdJZj1cImRldmljZVNvZnR3YXJlQ2hhbmdlc09wZXJhdGlvblwiXG4gICAgICBjbGFzcz1cImNhcmQtYmxvY2sgbGFyZ2UtcGFkZGluZyBiZy1sZXZlbC0yIHAtMFwiXG4gICAgPlxuICAgICAgPGM4eS1vcGVyYXRpb24tZGV0YWlscyBbb3BlcmF0aW9uXT1cImRldmljZVNvZnR3YXJlQ2hhbmdlc09wZXJhdGlvblwiPjwvYzh5LW9wZXJhdGlvbi1kZXRhaWxzPlxuICAgIDwvZmllbGRzZXQ+XG4gICAgPGZpZWxkc2V0IGNsYXNzPVwiY2FyZC1ibG9jayBsYXJnZS1wYWRkaW5nIG92ZXJmbG93LXZpc2libGUgc2VwYXJhdG9yLWJvdHRvbVwiICpuZ0lmPVwic2hvd0ZpbHRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTZcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgaW5wdXQtZ3JvdXAtc2VhcmNoXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyXCIgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAgICAgIHt7ICdGaWx0ZXIgaW5zdGFsbGVkIHNvZnR3YXJl4oCmJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdGaWx0ZXIgaW5zdGFsbGVkIHNvZnR3YXJl4oCmJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIGlkPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnRmlsdGVyIGluc3RhbGxlZCBzb2Z0d2FyZeKApicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ0ZXh0RmlsdGVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGV4dEZpbHRlciQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uXCI+XG4gICAgICAgICAgICAgIDxpIGM4eUljb249XCJzZWFyY2hcIiAqbmdJZj1cIih0ZXh0RmlsdGVyJCB8IGFzeW5jKS5sZW5ndGggPT09IDBcIj48L2k+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwidGltZXNcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKHRleHRGaWx0ZXIkIHwgYXN5bmMpLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0ZXh0RmlsdGVyJC5uZXh0KCcnKVwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBmb3I9XCJmaWx0ZXJcIiBjbGFzcz1cInNyLW9ubHlcIiB0cmFuc2xhdGU+RmlsdGVyIGluc3RhbGxlZCBzb2Z0d2FyZeKApjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtNlwiPlxuICAgICAgICAgIDxjOHktc29mdHdhcmUtdHlwZVxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtlbWl0UmVzdWx0c09ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd0J0bkluTm90Rm91bmRNZXNzYWdlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd0ZyZWVFbnRyaWVzXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRmlsdGVyIGJ5IHNvZnR3YXJlIHR5cGXigKYnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJTZWxlY3Rpb25PcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25TZWxlY3RTb2Z0d2FyZSk9XCJzb2Z0d2FyZVR5cGVGaWx0ZXIkLm5leHQoJGV2ZW50Py5zb2Z0d2FyZVR5cGUpXCJcbiAgICAgICAgICA+PC9jOHktc29mdHdhcmUtdHlwZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuXG4gICAgPGZpZWxkc2V0XG4gICAgICBpZD1cInNvZnR3YXJlLWxpc3RcIlxuICAgICAgY2xhc3M9XCJmbGV4LWdyb3cgaW5uZXItc2Nyb2xsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkZXZpY2VTb2Z0d2FyZUNoYW5nZXNJblByb2dyZXNzXCJcbiAgICA+XG4gICAgICA8IS0tIE5PVCBFTVBUWSBTVEFURSAtLT5cbiAgICAgIDxjOHktZGV2aWNlLXNvZnR3YXJlLWxpc3RcbiAgICAgICAgW2RldmljZV09XCJkZXZpY2VcIlxuICAgICAgICBbZmlsdGVyQ3JpdGVyaWEkXT1cImZpbHRlckNyaXRlcmlhJFwiXG4gICAgICAgIFtzb2Z0d2FyZUxpc3RdPVwic29mdHdhcmVMaXN0XCJcbiAgICAgICAgW2RldmljZVNvZnR3YXJlQ2hhbmdlc109XCJkZXZpY2VTb2Z0d2FyZUNoYW5nZXNcIlxuICAgICAgICAodXBkYXRlKT1cInVwZGF0ZVNvZnR3YXJlKCRldmVudClcIlxuICAgICAgICAocmVtb3ZlKT1cInJlbW92ZVNvZnR3YXJlKCRldmVudClcIlxuICAgICAgICAob25MaXN0RW1wdHkpPVwic2hvd0ZpbHRlciA9ICEkZXZlbnRcIlxuICAgICAgICBjbGFzcz1cImQtYmxvY2sgcC1sLTE2IHAtci0xNlwiXG4gICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgPlxuICAgICAgICA8IS0tIEVNUFRZIFNUQVRFIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWVtcHR5LXN0YXRlIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImgxIGM4eS1pY29uIGM4eS1pY29uLXRvb2xzIGM4eS1pY29uLWR1b2NvbG9yXCI+PC9kaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8c3Ryb25nIHRyYW5zbGF0ZT5ObyBzb2Z0d2FyZSBpbnN0YWxsZWQuPC9zdHJvbmc+XG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+Q2xpY2sgYmVsb3cgdG8gaW5zdGFsbCBzb2Z0d2FyZSBpbnRvIHRoaXMgZGV2aWNlLjwvc21hbGw+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBOTyBTRUFSQ0ggUkVTVUxUUyBTVEFURSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1lbXB0eS1zdGF0ZSBjOHktbm8tcmVzdWx0cy1zdGF0ZSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoMSBjOHktaWNvbiBjOHktaWNvbi10b29scyBjOHktaWNvbi1kdW9jb2xvclwiPjwvZGl2PlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+Tm8gc29mdHdhcmUgbWF0Y2hlcyB5b3VyIGZpbHRlciBjcml0ZXJpYS48L3N0cm9uZz5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5UcnkgY2hhbmdpbmcgeW91ciBzZWFyY2ggY3JpdGVyaWEuPC9zbWFsbD5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktZGV2aWNlLXNvZnR3YXJlLWxpc3Q+XG4gICAgPC9maWVsZHNldD5cbiAgPC9kaXY+XG4gIDwhLS0gSU5TVEFMTCBTT0ZUV0FSRS0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLWZvb3RlciBsYXJnZS1wYWRkaW5nIHNlcGFyYXRvciBzdGlja3ktYm90dG9tIGQtZmxleCBqLWMtYmV0d2VlbiBiZy1sZXZlbC0wXCJcbiAgICBbbmdDbGFzc109XCJ7ICd2aXNpYmxlLXNtIHZpc2libGUteHMnOiAhc3VwcG9ydHNTb2Z0d2FyZU9wZXJhdGlvbnMgfVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInN1cHBvcnRzU29mdHdhcmVPcGVyYXRpb25zXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIHRpdGxlPVwie3sgJ0luc3RhbGwgc29mdHdhcmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIChjbGljayk9XCJpbnN0YWxsU29mdHdhcmUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGV2aWNlU29mdHdhcmVDaGFuZ2VzSW5Qcm9ncmVzc1wiXG4gICAgICBjOHlQcm9kdWN0RXhwZXJpZW5jZVxuICAgICAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLlNPRlRXQVJFLkVWRU5UUy5ERVZJQ0VfVEFCXCJcbiAgICAgIFthY3Rpb25EYXRhXT1cIntcbiAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuU09GVFdBUkUuQ09NUE9ORU5UUy5ERVZJQ0VfU09GVFdBUkVfTElTVCxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuU09GVFdBUkUuQUNUSU9OUy5PUEVOX0lOU1RBTExfU09GVFdBUkVcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgIHt7ICdJbnN0YWxsIHNvZnR3YXJlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJzaG93U29mdHdhcmVDaGFuZ2VzLmVtaXQoKVwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tY2xlYW4gdGV4dC1wcmltYXJ5IHZpc2libGUtc20gdmlzaWJsZS14c1wiXG4gICAgICBbdGl0bGVdPVwiJ1Nob3cgJnF1b3Q7U29mdHdhcmUgY2hhbmdlcyZxdW90OycgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5TaG93IFwiU29mdHdhcmUgY2hhbmdlc1wiPC9zcGFuPlxuICAgICAgPGkgYzh5SWNvbj1cImNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYWxyZWFkeUluc3RhbGxlZFdhcm5pbmcgbGV0LWl0ZW0gbGV0LW9wdGlvbj1cIm9wdGlvblwiPlxuICA8aVxuICAgIGM4eUljb249XCJ3YXJuaW5nXCJcbiAgICBjbGFzcz1cInRleHQtd2FybmluZyBhLXMtY2VudGVyXCJcbiAgICBbdG9vbHRpcF09XCJcbiAgICAgIGFscmVhZHlJbnN0YWxsZWRNZXNzYWdlXG4gICAgICAgIHwgdHJhbnNsYXRlOiB7IG5hbWU6IGl0ZW0uYm9keVswXS52YWx1ZSwgdmVyc2lvbjogb3B0aW9uLmJvZHlbMF0udmFsdWUgfVxuICAgIFwiXG4gID48L2k+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJwLXJlbGF0aXZlIGQtZmxleCBtLWwtYXV0b1wiPlxuICAgIDxpIGNsYXNzPVwiaWNvbi1zcGluXCIgYzh5SWNvbj1cImNpcmNsZS1vLW5vdGNoXCI+PC9pPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc29mdHdhcmVUeXBlPlxuICA8Yzh5LXNvZnR3YXJlLXR5cGVcbiAgICBhZGRpdGlvbmFsRmlsdGVyXG4gICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ0ZpbHRlciBieSBzb2Z0d2FyZSB0eXBl4oCmJyB8IHRyYW5zbGF0ZVwiXG4gICAgKG9uU2VsZWN0U29mdHdhcmUpPVwic2VhcmNoKHsgc29mdHdhcmVUeXBlOiAkZXZlbnQ/LnNvZnR3YXJlVHlwZSB9KVwiXG4gICAgW2VtaXRSZXN1bHRzT25seV09XCJ0cnVlXCJcbiAgICBbc2hvd0J0bkluTm90Rm91bmRNZXNzYWdlXT1cImZhbHNlXCJcbiAgICBbYWxsb3dGcmVlRW50cmllc109XCJmYWxzZVwiXG4gICAgW3Nob3dDbGVhclNlbGVjdGlvbk9wdGlvbl09XCJ0cnVlXCJcbiAgPjwvYzh5LXNvZnR3YXJlLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVkLXNvZnR3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUvZGV2aWNlLXRhYi9pbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zb2Z0d2FyZS9kZXZpY2UtdGFiL2luc3RhbGxlZC1zb2Z0d2FyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE4QixXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUNMLE9BQU8sRUFHUCxrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBSUwsa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUM5QixpQkFBaUIsRUFDakIsY0FBYyxFQUNmLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFNeEIsTUFBTSxPQUFPLDBCQUEwQjtJQWtDckMsWUFBb0IsVUFBNkIsRUFBVSxPQUF1QjtRQUE5RCxlQUFV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LElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJT3BlcmF0aW9uLCBRdWVyaWVzVXRpbCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIGdldHRleHQsXG4gIElTZWxlY3RNb2RhbE9iamVjdCxcbiAgSVVwZGF0ZUl0ZW1FdmVudCxcbiAgTW9kYWxTZWxlY3Rpb25Nb2RlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRGV2aWNlU29mdHdhcmUsXG4gIERldmljZVNvZnR3YXJlQ2hhbmdlLFxuICBGaWx0ZXJDcml0ZXJpYSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFLFxuICBSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQsXG4gIFJlcG9zaXRvcnlTZXJ2aWNlLFxuICBSZXBvc2l0b3J5VHlwZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3JlcG9zaXRvcnkvc2hhcmVkJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgcGlwZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktaW5zdGFsbGVkLXNvZnR3YXJlJyxcbiAgdGVtcGxhdGVVcmw6ICdpbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEluc3RhbGxlZFNvZnR3YXJlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBQUk9EVUNUX0VYUEVSSUVOQ0UgPSBQUk9EVUNUX0VYUEVSSUVOQ0U7XG4gIEBJbnB1dCgpIGRldmljZTogSU1hbmFnZWRPYmplY3Q7XG4gIEBJbnB1dCgpIHNvZnR3YXJlTGlzdDogRGV2aWNlU29mdHdhcmVbXTtcbiAgQElucHV0KCkgZGV2aWNlU29mdHdhcmVDaGFuZ2VzOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZVtdO1xuICBASW5wdXQoKSBkZXZpY2VTb2Z0d2FyZUNoYW5nZXNPcGVyYXRpb246IElPcGVyYXRpb247XG4gIEBJbnB1dCgpIGRldmljZVNvZnR3YXJlQ2hhbmdlc0luUHJvZ3Jlc3M6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHR5cGVzUXVlcnk6IG9iamVjdDtcbiAgQE91dHB1dCgpIGNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPERldmljZVNvZnR3YXJlQ2hhbmdlW10+KCk7XG4gIEBPdXRwdXQoKSBzaG93U29mdHdhcmVDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2FscmVhZHlJbnN0YWxsZWRXYXJuaW5nJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgYWxyZWFkeUluc3RhbGxlZFdhcm5pbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgYWxyZWFkeUluc3RhbGxlZE1lc3NhZ2UgPSBnZXR0ZXh0KFxuICAgICd7eyBuYW1lIH19ICh2LiB7eyB2ZXJzaW9uIH19KSBpcyBhbHJlYWR5IGluc3RhbGxlZCBvbiB0aGlzIGRldmljZSdcbiAgKTtcbiAgQFZpZXdDaGlsZCgnbG9hZGluZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdzb2Z0d2FyZVR5cGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzb2Z0d2FyZVR5cGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHN1cHBvcnRzU29mdHdhcmVPcGVyYXRpb25zOiBib29sZWFuID0gZmFsc2U7XG4gIHRleHRGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBzb2Z0d2FyZVR5cGVGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBmaWx0ZXJDcml0ZXJpYSQ6IE9ic2VydmFibGU8RmlsdGVyQ3JpdGVyaWE+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3BlcmF0aW9uVHlwZXMgPSBbJ2M4eV9Tb2Z0d2FyZVVwZGF0ZScsICdjOHlfU29mdHdhcmVMaXN0JywgJ2M4eV9Tb2Z0d2FyZSddO1xuXG4gIHByaXZhdGUgcXVlcmllc1V0aWw6IFF1ZXJpZXNVdGlsO1xuICBwcml2YXRlIG1vZGFsU2VhcmNoOiAoZmlsdGVyQ3JpdGVyaWE6IEZpbHRlckNyaXRlcmlhKSA9PiB2b2lkO1xuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVwb3NpdG9yeTogUmVwb3NpdG9yeVNlcnZpY2UsIHByaXZhdGUgYnNNb2RhbDogQnNNb2RhbFNlcnZpY2UpIHtcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudGV4dEZpbHRlciQsIHRoaXMuc29mdHdhcmVUeXBlRmlsdGVyJF0pLnBpcGUoXG4gICAgICBtYXAoKFt0ZXh0RmlsdGVyLCBzb2Z0d2FyZVR5cGVGaWx0ZXJdKSA9PiAoe1xuICAgICAgICBuYW1lOiB0ZXh0RmlsdGVyLFxuICAgICAgICBzb2Z0d2FyZVR5cGU6IHNvZnR3YXJlVHlwZUZpbHRlclxuICAgICAgfSkpLFxuICAgICAgbWFwKGZpbHRlckNyaXRlcmlhID0+XG4gICAgICAgICFmaWx0ZXJDcml0ZXJpYS5uYW1lICYmICFmaWx0ZXJDcml0ZXJpYS5zb2Z0d2FyZVR5cGUgPyBudWxsIDogZmlsdGVyQ3JpdGVyaWFcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMucXVlcmllc1V0aWwgPSBuZXcgUXVlcmllc1V0aWwoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN1cHBvcnRlZE9wZXJhdGlvbnMgPSBnZXQodGhpcy5kZXZpY2UsICdjOHlfU3VwcG9ydGVkT3BlcmF0aW9ucycsIFtdKTtcbiAgICB0aGlzLnN1cHBvcnRzU29mdHdhcmVPcGVyYXRpb25zID0gdGhpcy5vcGVyYXRpb25UeXBlcy5zb21lKFxuICAgICAgb3BlcmF0aW9uVHlwZSA9PiBzdXBwb3J0ZWRPcGVyYXRpb25zLmluZGV4T2Yob3BlcmF0aW9uVHlwZSkgPiAtMVxuICAgICk7XG4gIH1cblxuICBpbnN0YWxsU29mdHdhcmUoKSB7XG4gICAgY29uc3QgeyByZXN1bHRFbWl0dGVyLCBjaG9pY2VFbWl0dGVyLCB1cGRhdGVJbnN0YWxsYWJsZUxpc3QkIH0gPVxuICAgICAgdGhpcy5kaXNwbGF5U29mdHdhcmVTZWxlY3RNb2RhbCh7XG4gICAgICAgIHRpdGxlOiBnZXR0ZXh0KCdJbnN0YWxsIHNvZnR3YXJlJyksXG4gICAgICAgIHN1YlRpdGxlOiBnZXR0ZXh0KCdBdmFpbGFibGUgc29mdHdhcmVzIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpLFxuICAgICAgICBsYWJlbHM6IHsgb2s6IGdldHRleHQoJ0luc3RhbGwnKSB9LFxuICAgICAgICBzaG93QWRkaXRpb25hbEZpbHRlcjogdHJ1ZSxcbiAgICAgICAgYWRkaXRpb25hbEZpbHRlclRlbXBsYXRlOiB0aGlzLnNvZnR3YXJlVHlwZVRlbXBsYXRlLFxuICAgICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQ6IG9mKFtdKSxcbiAgICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnNGbiQ6IG1vZGFsID0+XG4gICAgICAgICAgdGhpcy5nZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQobW9kYWwuY29udGVudC5zZWFyY2hUZXJtKVxuICAgICAgfSk7XG5cbiAgICByZXN1bHRFbWl0dGVyLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShzb2Z0d2FyZVRvSW5zdGFsbCA9PiB7XG4gICAgICB0aGlzLmVtaXRTb2Z0d2FyZUluc3RhbGwoc29mdHdhcmVUb0luc3RhbGwpO1xuICAgICAgdGhpcy5zaG93U29mdHdhcmVDaGFuZ2VzLmVtaXQoKTtcbiAgICB9KTtcblxuICAgIGNob2ljZUVtaXR0ZXJcbiAgICAgIC5waXBlKFxuICAgICAgICB0aGlzLmlzU29mdHdhcmVJbnN0YWxsZWRPbkRldmljZVBpcGUodXBkYXRlSW5zdGFsbGFibGVMaXN0JCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IGl0ZW0gfSkgPT5cbiAgICAgICAgdXBkYXRlSW5zdGFsbGFibGVMaXN0JC5uZXh0KHtcbiAgICAgICAgICBvYmplY3Q6IGl0ZW0sXG4gICAgICAgICAgdGVtcGxhdGU6IHRoaXMuYWxyZWFkeUluc3RhbGxlZFdhcm5pbmdUZW1wbGF0ZSxcbiAgICAgICAgICBtYXBwZXI6IG9iamVjdCA9PiB7XG4gICAgICAgICAgICBvYmplY3QuaW5zdGFsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVNvZnR3YXJlKHNvZnR3YXJlVG9VcGRhdGUpIHtcbiAgICBjb25zdCB7IHJlc3VsdEVtaXR0ZXIsIGNob2ljZUVtaXR0ZXIsIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQgfSA9XG4gICAgICB0aGlzLmRpc3BsYXlTb2Z0d2FyZVNlbGVjdE1vZGFsKHtcbiAgICAgICAgdGl0bGU6IGdldHRleHQoJ1VwZGF0ZSBzb2Z0d2FyZScpLFxuICAgICAgICBzdWJUaXRsZTogZ2V0dGV4dCgnU2VsZWN0IG9uZSBvZiB0aGUgYXZhaWxhYmxlIHNvZnR3YXJlIHZlcnNpb25zJyksXG4gICAgICAgIGxhYmVsczogeyBvazogZ2V0dGV4dCgnVXBkYXRlJykgfSxcbiAgICAgICAgbm9JdGVtc01lc3NhZ2U6IGdldHRleHQoJ05vIG90aGVyIHNvZnR3YXJlIHZlcnNpb25zIGF2YWlsYWJsZS4nKSxcbiAgICAgICAgc2hvd0ZpbHRlcjogZmFsc2UsXG4gICAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJDogdGhpcy5nZXRTaW5nbGVTb2Z0d2FyZVdpdGhWZXJzaW9ucyQoc29mdHdhcmVUb1VwZGF0ZSlcbiAgICAgIH0pO1xuXG4gICAgcmVzdWx0RW1pdHRlci5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoc29mdHdhcmVUb0luc3RhbGwgPT4ge1xuICAgICAgdGhpcy5lbWl0U29mdHdhcmVJbnN0YWxsKHNvZnR3YXJlVG9JbnN0YWxsKTtcbiAgICAgIHRoaXMuc2hvd1NvZnR3YXJlQ2hhbmdlcy5lbWl0KCk7XG4gICAgfSk7XG5cbiAgICBjaG9pY2VFbWl0dGVyXG4gICAgICAucGlwZShcbiAgICAgICAgdGhpcy5pc1NvZnR3YXJlSW5zdGFsbGVkT25EZXZpY2VQaXBlKHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBpdGVtIH0pID0+XG4gICAgICAgIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQubmV4dCh7XG4gICAgICAgICAgb2JqZWN0OiBpdGVtLFxuICAgICAgICAgIHRlbXBsYXRlOiB0aGlzLmFscmVhZHlJbnN0YWxsZWRXYXJuaW5nVGVtcGxhdGUsXG4gICAgICAgICAgbWFwcGVyOiBvYmplY3QgPT4ge1xuICAgICAgICAgICAgb2JqZWN0Lmluc3RhbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICByZW1vdmVTb2Z0d2FyZShzb2Z0d2FyZVRvUmVtb3ZlKSB7XG4gICAgdGhpcy5lbWl0U29mdHdhcmVSZW1vdmFsKFtzb2Z0d2FyZVRvUmVtb3ZlXSk7XG4gIH1cblxuICBnZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQoc2VhcmNoVGVybSQ6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDcml0ZXJpYT4pIHtcbiAgICBjb25zdCBpbnN0YWxsZWRTb2Z0d2FyZU5hbWVzID0gKHRoaXMuc29mdHdhcmVMaXN0IHx8IFtdKS5tYXAocyA9PiBzLm5hbWUpO1xuICAgIHJldHVybiBzZWFyY2hUZXJtJC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzZWFyY2hUZXJtID0+XG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgICBxdWVyeTogc2VhcmNoVGVybS5zb2Z0d2FyZVR5cGVcbiAgICAgICAgICAgID8gdGhpcy5xdWVyaWVzVXRpbC5hZGRBbmRGaWx0ZXIodGhpcy50eXBlc1F1ZXJ5LCB7XG4gICAgICAgICAgICAgICAgc29mdHdhcmVUeXBlOiBzZWFyY2hUZXJtLnNvZnR3YXJlVHlwZVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB0aGlzLnR5cGVzUXVlcnksXG4gICAgICAgICAgcGFydGlhbE5hbWU6IHNlYXJjaFRlcm0/Lm5hbWUsXG4gICAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiAxMDAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpLFxuICAgICAgbWFwKHNvZnR3YXJlTGlzdCA9PiB7XG4gICAgICAgIHJldHVybiBzb2Z0d2FyZUxpc3QuZmlsdGVyKHNvZnR3YXJlID0+IHtcbiAgICAgICAgICByZXR1cm4gIWluc3RhbGxlZFNvZnR3YXJlTmFtZXMuaW5jbHVkZXMoc29mdHdhcmUubmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoc29mdHdhcmVMaXN0ID0+IHRoaXMuYXR0YWNoVmVyc2lvbnMoc29mdHdhcmVMaXN0KSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXRTaW5nbGVTb2Z0d2FyZVdpdGhWZXJzaW9ucyQoc29mdHdhcmU6IERldmljZVNvZnR3YXJlKSB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLnJlcG9zaXRvcnkubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHF1ZXJ5OiB7IG5hbWU6IHNvZnR3YXJlLm5hbWUgfVxuICAgICAgfSlcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcbiAgICAgIG1hcChzb2Z0d2FyZUxpc3QgPT4gdGhpcy5hdHRhY2hWZXJzaW9ucyhzb2Z0d2FyZUxpc3QpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGF0dGFjaFZlcnNpb25zKHNvZnR3YXJlTGlzdDogSU1hbmFnZWRPYmplY3RbXSkge1xuICAgIHNvZnR3YXJlTGlzdC5mb3JFYWNoKHNvZnR3YXJlID0+IHtcbiAgICAgIHNvZnR3YXJlLnZlcnNpb25zID0gdGhpcy5yZXBvc2l0b3J5Lmxpc3RCYXNlVmVyc2lvbnMoc29mdHdhcmUpO1xuICAgIH0pO1xuICAgIHJldHVybiBzb2Z0d2FyZUxpc3Q7XG4gIH1cblxuICBkaXNwbGF5U29mdHdhcmVTZWxlY3RNb2RhbChpbml0aWFsU3RhdGVPdmVycmlkZXMpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICByZXBvc2l0b3J5VHlwZTogUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsXG4gICAgICBtb2RlOiBNb2RhbFNlbGVjdGlvbk1vZGUuTVVMVEksXG4gICAgICBpY29uOiAnYzh5LXRvb2xzJyxcbiAgICAgIGRpc2FibGVTZWxlY3RlZDogZmFsc2UsXG4gICAgICBzZWxlY3RlZDogdGhpcy5zb2Z0d2FyZUxpc3QsXG4gICAgICAuLi5pbml0aWFsU3RhdGVPdmVycmlkZXNcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5ic01vZGFsLnNob3coUmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAgY2xhc3M6ICdtb2RhbC1zbScsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgaW5pdGlhbFN0YXRlXG4gICAgfSk7XG5cbiAgICBpZiAoaW5pdGlhbFN0YXRlT3ZlcnJpZGVzLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kKSB7XG4gICAgICBtb2RhbC5jb250ZW50LnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCA9XG4gICAgICAgIGluaXRpYWxTdGF0ZU92ZXJyaWRlcy5yZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJChtb2RhbCk7XG4gICAgfVxuXG4gICAgdGhpcy5tb2RhbFNlYXJjaCA9IG1vZGFsLmNvbnRlbnQuc2VhcmNoLmJpbmQobW9kYWwuY29udGVudCk7XG5cbiAgICBtb2RhbC5jb250ZW50LmxvYWQubmV4dCgpO1xuICAgIHJldHVybiB7XG4gICAgICByZXN1bHRFbWl0dGVyOiBtb2RhbC5jb250ZW50LnJlc3VsdEVtaXR0ZXIsXG4gICAgICBjaG9pY2VFbWl0dGVyOiBtb2RhbC5jb250ZW50Lm9uQ2hvaWNlVXBkYXRlZCxcbiAgICAgIHVwZGF0ZUluc3RhbGxhYmxlTGlzdCQ6IG1vZGFsLmNvbnRlbnQudXBkYXRlSW5zdGFsbGFibGVMaXN0JFxuICAgIH07XG4gIH1cblxuICBzZWFyY2goZmlsdGVyQ3JpdGVyaWE6IEZpbHRlckNyaXRlcmlhKSB7XG4gICAgaWYgKHRoaXMubW9kYWxTZWFyY2gpIHtcbiAgICAgIHRoaXMubW9kYWxTZWFyY2goZmlsdGVyQ3JpdGVyaWEpO1xuICAgIH1cbiAgfVxuXG4gIGVtaXRTb2Z0d2FyZUluc3RhbGwoaXRlbXM6IERldmljZVNvZnR3YXJlW10pIHtcbiAgICB0aGlzLmNoYW5nZXMuZW1pdChcbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgYWN0aW9uOiAnaW5zdGFsbCcgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGVtaXRTb2Z0d2FyZVJlbW92YWwoaXRlbXM6IERldmljZVNvZnR3YXJlW10pIHtcbiAgICB0aGlzLmNoYW5nZXMuZW1pdChcbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgYWN0aW9uOiAnZGVsZXRlJyB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTb2Z0d2FyZUluc3RhbGxlZE9uRGV2aWNlUGlwZSh1cGRhdGVJbnN0YWxsYWJsZUxpc3QkOiBTdWJqZWN0PElVcGRhdGVJdGVtRXZlbnQ8YW55Pj4pIHtcbiAgICByZXR1cm4gcGlwZShcbiAgICAgIHRhcCgoaXRlbTogSVNlbGVjdE1vZGFsT2JqZWN0KSA9PlxuICAgICAgICB1cGRhdGVJbnN0YWxsYWJsZUxpc3QkLm5leHQoeyBvYmplY3Q6IGl0ZW0sIHRlbXBsYXRlOiB0aGlzLmxvYWRpbmdUZW1wbGF0ZSB9KVxuICAgICAgKSxcbiAgICAgIG1hcChpdGVtID0+ICh7XG4gICAgICAgIGl0ZW0sXG4gICAgICAgIHNvZnR3YXJlOiAoXG4gICAgICAgICAgKGl0ZW0ub3B0aW9ucyB8fCBbXSkuZmluZChvcHRpb24gPT4gb3B0aW9uLm9iai5pZCA9PT0gKGl0ZW0gYXMgYW55KS5zZWxlY3RlZElkKSB8fCB7fVxuICAgICAgICApLm9ialxuICAgICAgfSkpLFxuICAgICAgbWVyZ2VNYXAoKHsgaXRlbSwgc29mdHdhcmUgfSkgPT5cbiAgICAgICAgZnJvbShcbiAgICAgICAgICB0aGlzLnJlcG9zaXRvcnkuaXNTb2Z0d2FyZUluc3RhbGxlZE9uRGV2aWNlKHRoaXMuZGV2aWNlLmlkLCBzb2Z0d2FyZSBhcyBEZXZpY2VTb2Z0d2FyZSlcbiAgICAgICAgKS5waXBlKG1hcChpbnN0YWxsZWQgPT4gKHsgaXRlbSwgaW5zdGFsbGVkIH0pKSlcbiAgICAgICksXG4gICAgICB0YXAoKHsgaXRlbSB9KSA9PiB1cGRhdGVJbnN0YWxsYWJsZUxpc3QkLm5leHQoeyBvYmplY3Q6IGl0ZW0gfSkpLFxuICAgICAgZmlsdGVyKCh7IGluc3RhbGxlZCB9KSA9PiAhIWluc3RhbGxlZClcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGQtY29sIGZsZXgtZ3Jvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbGFyZ2UtcGFkZGluZyBzZXBhcmF0b3Igc3RpY2t5LXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCIgdHJhbnNsYXRlPkluc3RhbGxlZCBzb2Z0d2FyZTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvd1wiPlxuICAgIDxmaWVsZHNldFxuICAgICAgaWQ9XCJvcGVyYXRpb24tYmxvY2tcIlxuICAgICAgKm5nSWY9XCJkZXZpY2VTb2Z0d2FyZUNoYW5nZXNPcGVyYXRpb25cIlxuICAgICAgY2xhc3M9XCJjYXJkLWJsb2NrIGxhcmdlLXBhZGRpbmcgYmctbGV2ZWwtMiBwLTBcIlxuICAgID5cbiAgICAgIDxjOHktb3BlcmF0aW9uLWRldGFpbHMgW29wZXJhdGlvbl09XCJkZXZpY2VTb2Z0d2FyZUNoYW5nZXNPcGVyYXRpb25cIj48L2M4eS1vcGVyYXRpb24tZGV0YWlscz5cbiAgICA8L2ZpZWxkc2V0PlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImNhcmQtYmxvY2sgbGFyZ2UtcGFkZGluZyBvdmVyZmxvdy12aXNpYmxlIHNlcGFyYXRvci1ib3R0b21cIiAqbmdJZj1cInNob3dGaWx0ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy02XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNlYXJjaFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlclwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgICB7eyAnRmlsdGVyIGluc3RhbGxlZCBzb2Z0d2FyZeKApicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRmlsdGVyIGluc3RhbGxlZCBzb2Z0d2FyZeKApicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBpZD1cImZpbHRlclwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0ZpbHRlciBpbnN0YWxsZWQgc29mdHdhcmXigKYnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwidGV4dEZpbHRlciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRleHRGaWx0ZXIkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvblwiPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwic2VhcmNoXCIgKm5nSWY9XCIodGV4dEZpbHRlciQgfCBhc3luYykubGVuZ3RoID09PSAwXCI+PC9pPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgYzh5SWNvbj1cInRpbWVzXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIih0ZXh0RmlsdGVyJCB8IGFzeW5jKS5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidGV4dEZpbHRlciQubmV4dCgnJylcIlxuICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZm9yPVwiZmlsdGVyXCIgY2xhc3M9XCJzci1vbmx5XCIgdHJhbnNsYXRlPkZpbHRlciBpbnN0YWxsZWQgc29mdHdhcmXigKY8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTZcIj5cbiAgICAgICAgICA8Yzh5LXNvZnR3YXJlLXR5cGVcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbZW1pdFJlc3VsdHNPbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dCdG5Jbk5vdEZvdW5kTWVzc2FnZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbYWxsb3dGcmVlRW50cmllc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0ZpbHRlciBieSBzb2Z0d2FyZSB0eXBl4oCmJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc2hvd0NsZWFyU2VsZWN0aW9uT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgKG9uU2VsZWN0U29mdHdhcmUpPVwic29mdHdhcmVUeXBlRmlsdGVyJC5uZXh0KCRldmVudD8uc29mdHdhcmVUeXBlKVwiXG4gICAgICAgICAgPjwvYzh5LXNvZnR3YXJlLXR5cGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cblxuICAgIDxmaWVsZHNldFxuICAgICAgaWQ9XCJzb2Z0d2FyZS1saXN0XCJcbiAgICAgIGNsYXNzPVwiZmxleC1ncm93IGlubmVyLXNjcm9sbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGV2aWNlU29mdHdhcmVDaGFuZ2VzSW5Qcm9ncmVzc1wiXG4gICAgPlxuICAgICAgPCEtLSBOT1QgRU1QVFkgU1RBVEUgLS0+XG4gICAgICA8Yzh5LWRldmljZS1zb2Z0d2FyZS1saXN0XG4gICAgICAgIFtkZXZpY2VdPVwiZGV2aWNlXCJcbiAgICAgICAgW2ZpbHRlckNyaXRlcmlhJF09XCJmaWx0ZXJDcml0ZXJpYSRcIlxuICAgICAgICBbc29mdHdhcmVMaXN0XT1cInNvZnR3YXJlTGlzdFwiXG4gICAgICAgIFtkZXZpY2VTb2Z0d2FyZUNoYW5nZXNdPVwiZGV2aWNlU29mdHdhcmVDaGFuZ2VzXCJcbiAgICAgICAgKHVwZGF0ZSk9XCJ1cGRhdGVTb2Z0d2FyZSgkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVTb2Z0d2FyZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uTGlzdEVtcHR5KT1cInNob3dGaWx0ZXIgPSAhJGV2ZW50XCJcbiAgICAgICAgY2xhc3M9XCJkLWJsb2NrIHAtbC0xNiBwLXItMTZcIlxuICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgID5cbiAgICAgICAgPCEtLSBFTVBUWSBTVEFURSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1lbXB0eS1zdGF0ZSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoMSBjOHktaWNvbiBjOHktaWNvbi10b29scyBjOHktaWNvbi1kdW9jb2xvclwiPjwvZGl2PlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+Tm8gc29mdHdhcmUgaW5zdGFsbGVkLjwvc3Ryb25nPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPkNsaWNrIGJlbG93IHRvIGluc3RhbGwgc29mdHdhcmUgaW50byB0aGlzIGRldmljZS48L3NtYWxsPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gTk8gU0VBUkNIIFJFU1VMVFMgU1RBVEUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjOHktZW1wdHktc3RhdGUgYzh5LW5vLXJlc3VsdHMtc3RhdGUgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaDEgYzh5LWljb24gYzh5LWljb24tdG9vbHMgYzh5LWljb24tZHVvY29sb3JcIj48L2Rpdj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzdHJvbmcgdHJhbnNsYXRlPk5vIHNvZnR3YXJlIG1hdGNoZXMgeW91ciBmaWx0ZXIgY3JpdGVyaWEuPC9zdHJvbmc+XG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+VHJ5IGNoYW5naW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLjwvc21hbGw+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYzh5LWRldmljZS1zb2Z0d2FyZS1saXN0PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuICA8IS0tIElOU1RBTEwgU09GVFdBUkUtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2FyZC1mb290ZXIgbGFyZ2UtcGFkZGluZyBzZXBhcmF0b3Igc3RpY2t5LWJvdHRvbSBkLWZsZXggai1jLWJldHdlZW4gYmctbGV2ZWwtMFwiXG4gICAgW25nQ2xhc3NdPVwieyAndmlzaWJsZS1zbSB2aXNpYmxlLXhzJzogIXN1cHBvcnRzU29mdHdhcmVPcGVyYXRpb25zIH1cIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzdXBwb3J0c1NvZnR3YXJlT3BlcmF0aW9uc1wiXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICB0aXRsZT1cInt7ICdJbnN0YWxsIHNvZnR3YXJlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAoY2xpY2spPVwiaW5zdGFsbFNvZnR3YXJlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRldmljZVNvZnR3YXJlQ2hhbmdlc0luUHJvZ3Jlc3NcIlxuICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgIFthY3Rpb25OYW1lXT1cIlBST0RVQ1RfRVhQRVJJRU5DRS5TT0ZUV0FSRS5FVkVOVFMuREVWSUNFX1RBQlwiXG4gICAgICBbYWN0aW9uRGF0YV09XCJ7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLlNPRlRXQVJFLkNPTVBPTkVOVFMuREVWSUNFX1NPRlRXQVJFX0xJU1QsXG4gICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLlNPRlRXQVJFLkFDVElPTlMuT1BFTl9JTlNUQUxMX1NPRlRXQVJFXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICB7eyAnSW5zdGFsbCBzb2Z0d2FyZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2hvd1NvZnR3YXJlQ2hhbmdlcy5lbWl0KClcIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLWNsZWFuIHRleHQtcHJpbWFyeSB2aXNpYmxlLXNtIHZpc2libGUteHNcIlxuICAgICAgW3RpdGxlXT1cIidTaG93ICZxdW90O1NvZnR3YXJlIGNoYW5nZXMmcXVvdDsnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+U2hvdyBcIlNvZnR3YXJlIGNoYW5nZXNcIjwvc3Bhbj5cbiAgICAgIDxpIGM4eUljb249XCJjaGV2cm9uLXJpZ2h0XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2FscmVhZHlJbnN0YWxsZWRXYXJuaW5nIGxldC1pdGVtIGxldC1vcHRpb249XCJvcHRpb25cIj5cbiAgPGlcbiAgICBjOHlJY29uPVwid2FybmluZ1wiXG4gICAgY2xhc3M9XCJ0ZXh0LXdhcm5pbmcgYS1zLWNlbnRlclwiXG4gICAgW3Rvb2x0aXBdPVwiXG4gICAgICBhbHJlYWR5SW5zdGFsbGVkTWVzc2FnZVxuICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiBpdGVtLmJvZHlbMF0udmFsdWUsIHZlcnNpb246IG9wdGlvbi5ib2R5WzBdLnZhbHVlIH1cbiAgICBcIlxuICA+PC9pPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICA8ZGl2IGNsYXNzPVwicC1yZWxhdGl2ZSBkLWZsZXggbS1sLWF1dG9cIj5cbiAgICA8aSBjbGFzcz1cImljb24tc3BpblwiIGM4eUljb249XCJjaXJjbGUtby1ub3RjaFwiPjwvaT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NvZnR3YXJlVHlwZT5cbiAgPGM4eS1zb2Z0d2FyZS10eXBlXG4gICAgYWRkaXRpb25hbEZpbHRlclxuICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidGaWx0ZXIgYnkgc29mdHdhcmUgdHlwZeKApicgfCB0cmFuc2xhdGVcIlxuICAgIChvblNlbGVjdFNvZnR3YXJlKT1cInNlYXJjaCh7IHNvZnR3YXJlVHlwZTogJGV2ZW50Py5zb2Z0d2FyZVR5cGUgfSlcIlxuICAgIFtlbWl0UmVzdWx0c09ubHldPVwidHJ1ZVwiXG4gICAgW3Nob3dCdG5Jbk5vdEZvdW5kTWVzc2FnZV09XCJmYWxzZVwiXG4gICAgW2FsbG93RnJlZUVudHJpZXNdPVwiZmFsc2VcIlxuICAgIFtzaG93Q2xlYXJTZWxlY3Rpb25PcHRpb25dPVwidHJ1ZVwiXG4gID48L2M4eS1zb2Z0d2FyZS10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -274,7 +274,7 @@ class SelectConfigurationModalComponent {
|
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
SelectConfigurationModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectConfigurationModalComponent, deps: [{ token: i1$1.RepositoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
277
|
-
SelectConfigurationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectConfigurationModalComponent, selector: "c8y-select-configuration-modal", ngImport: i0, template: "<c8y-select-modal\n [icon]=\"'gears'\"\n [title]=\"title\"\n [items]=\"configurations | async\"\n [mode]=\"'multi'\"\n (result)=\"result($event)\"\n (search)=\"search($event)\"\n [disableSelected]=\"true\"\n [labels]=\"labels\"\n>\n</c8y-select-modal>\n", dependencies: [{ kind: "component", type: i3.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
277
|
+
SelectConfigurationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectConfigurationModalComponent, selector: "c8y-select-configuration-modal", ngImport: i0, template: "<c8y-select-modal\n [icon]=\"'gears'\"\n [title]=\"title\"\n [items]=\"configurations | async\"\n [mode]=\"'multi'\"\n (result)=\"result($event)\"\n (search)=\"search($event)\"\n [disableSelected]=\"true\"\n [labels]=\"labels\"\n>\n</c8y-select-modal>\n", dependencies: [{ kind: "component", type: i3.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels", "noItemsMessage"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
278
278
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectConfigurationModalComponent, decorators: [{
|
|
279
279
|
type: Component,
|
|
280
280
|
args: [{ selector: 'c8y-select-configuration-modal', template: "<c8y-select-modal\n [icon]=\"'gears'\"\n [title]=\"title\"\n [items]=\"configurations | async\"\n [mode]=\"'multi'\"\n (result)=\"result($event)\"\n (search)=\"search($event)\"\n [disableSelected]=\"true\"\n [labels]=\"labels\"\n>\n</c8y-select-modal>\n" }]
|