@sunbird-cb/tree-hierarchy 0.0.2-cbrelease-4.8.29 → 0.0.3-cbrelease-4.8.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/action-bar/action-bar.component.mjs +3 -2
- package/esm2022/lib/components/approval/approval.component.mjs +3 -2
- package/esm2022/lib/components/approve-view/approve-view.component.mjs +3 -2
- package/esm2022/lib/components/categories-preview/categories-preview.component.mjs +3 -2
- package/esm2022/lib/components/category-edit/category-edit-module/category-edit-module.component.mjs +3 -2
- package/esm2022/lib/components/conforamtion-popup/conforamtion-popup.component.mjs +3 -2
- package/esm2022/lib/components/connector/connector.component.mjs +3 -2
- package/esm2022/lib/components/create-categories/create-categories.component.mjs +3 -2
- package/esm2022/lib/components/create-term/create-term.component.mjs +3 -2
- package/esm2022/lib/components/create-term-from-framework/create-term-from-framework.component.mjs +3 -2
- package/esm2022/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.mjs +5 -4
- package/esm2022/lib/components/pending-approval/pending-approval.component.mjs +3 -2
- package/esm2022/lib/components/term-card/term-card.component.mjs +3 -2
- package/esm2022/lib/components/tree-column-view/tree-column-view.component.mjs +3 -2
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +3 -2
- package/esm2022/lib/containers/config-framework/config-framework.component.mjs +3 -2
- package/esm2022/lib/containers/dashboard/dashboard.component.mjs +3 -2
- package/esm2022/lib/pipes/order-by.pipe.mjs +3 -2
- package/esm2022/lib/services/approval.service.mjs +3 -2
- package/esm2022/lib/services/connector.service.mjs +3 -2
- package/esm2022/lib/services/framework.service.mjs +3 -2
- package/esm2022/lib/services/local-connection.service.mjs +3 -2
- package/esm2022/lib/services/odcs.service.mjs +3 -2
- package/esm2022/lib/tree-hierarchy-routing.module.mjs +3 -2
- package/esm2022/lib/tree-hierarchy.component.mjs +3 -2
- package/esm2022/lib/tree-hierarchy.module.mjs +3 -2
- package/esm2022/lib/tree-hierarchy.service.mjs +3 -2
- package/esm2022/material.module.mjs +3 -2
- package/fesm2022/sunbird-cb-tree-hierarchy.mjs +2 -2
- package/fesm2022/sunbird-cb-tree-hierarchy.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import * as i1 from "../../services/framework.service";
|
|
|
4
4
|
import * as i2 from "@angular/common";
|
|
5
5
|
import * as i3 from "../../components/create-categories/create-categories.component";
|
|
6
6
|
import * as i4 from "../../components/categories-preview/categories-preview.component";
|
|
7
|
-
|
|
7
|
+
class ConfigFrameworkComponent {
|
|
8
8
|
constructor(frameworkService) {
|
|
9
9
|
this.frameworkService = frameworkService;
|
|
10
10
|
this.categoriesRepresentations = [];
|
|
@@ -85,8 +85,9 @@ export class ConfigFrameworkComponent {
|
|
|
85
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigFrameworkComponent, deps: [{ token: i1.FrameworkService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
86
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfigFrameworkComponent, selector: "lib-config-framework", ngImport: i0, template: "<div class=\"config__wrap\">\n <lib-create-categories class=\"config__form-wrap\" [taxonomyInfo]=\"''\" (updateCategory)=\"updateCategory($event)\" \n (removeCategories)=\"removeCategory($event)\" (changePosition)=\"changePosition($event)\"></lib-create-categories>\n <ng-container *ngIf=\"categoriesRepresentations\">\n <lib-categories-preview class=\"config__preview\" [data]=\"categoriesRepresentations\"></lib-categories-preview>\n </ng-container>\n </div>\n", styles: [".config__wrap{display:flex;flex-direction:row;align-items:start;height:100vh}.config__form-wrap{flex-grow:1}.config__preview{flex-grow:9}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CreateCategoriesComponent, selector: "lib-create-categories", inputs: ["taxonomyInfo"], outputs: ["updateCategory", "removeCategories", "changePosition"] }, { kind: "component", type: i4.CategoriesPreviewComponent, selector: "lib-categories-preview", inputs: ["data"] }] }); }
|
|
87
87
|
}
|
|
88
|
+
export { ConfigFrameworkComponent };
|
|
88
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigFrameworkComponent, decorators: [{
|
|
89
90
|
type: Component,
|
|
90
91
|
args: [{ selector: 'lib-config-framework', template: "<div class=\"config__wrap\">\n <lib-create-categories class=\"config__form-wrap\" [taxonomyInfo]=\"''\" (updateCategory)=\"updateCategory($event)\" \n (removeCategories)=\"removeCategory($event)\" (changePosition)=\"changePosition($event)\"></lib-create-categories>\n <ng-container *ngIf=\"categoriesRepresentations\">\n <lib-categories-preview class=\"config__preview\" [data]=\"categoriesRepresentations\"></lib-categories-preview>\n </ng-container>\n </div>\n", styles: [".config__wrap{display:flex;flex-direction:row;align-items:start;height:100vh}.config__form-wrap{flex-grow:1}.config__preview{flex-grow:9}\n"] }]
|
|
91
92
|
}], ctorParameters: function () { return [{ type: i1.FrameworkService }]; } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb250YWluZXJzL2NvbmZpZy1mcmFtZXdvcmsvY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb250YWluZXJzL2NvbmZpZy1mcmFtZXdvcmsvY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTbEQsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUh0RCw4QkFBeUIsR0FBVSxFQUFFLENBQUM7UUFDdEMsK0JBQTBCLEdBQVUsRUFBRSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ2tDLENBQUM7SUFFM0QsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFBO1FBQzVELENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQztJQXVERCxjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FDOUI7WUFDRSxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDO1NBQ2xKLENBQ04sQ0FBQTtRQUNELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVDLGNBQWMsQ0FBQyxPQUFlLEVBQUUsTUFBVyxFQUFFLEtBQWE7UUFDeEQsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2IsSUFBRyxLQUFLLEdBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQixJQUFJLEdBQUc7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFDLEdBQUcsT0FBTyxJQUFJO29CQUNuQixLQUFLLEVBQUMsR0FBRyxPQUFPLEdBQUc7aUJBQ3BCO2dCQUNEO29CQUNFLElBQUksRUFBRSxHQUFHLE9BQU8sSUFBSTtvQkFDcEIsUUFBUSxFQUFDLElBQUk7b0JBQ2IsU0FBUyxFQUFDLElBQUk7b0JBQ2QsS0FBSyxFQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHO29CQUNqQyxNQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQyxDQUFBLEVBQUU7aUJBQzlDO2FBQ0YsQ0FBQTtTQUNGO2FBQU07WUFDTCxJQUFJLEdBQUc7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFDLEdBQUcsT0FBTyxJQUFJO29CQUNuQixRQUFRLEVBQUMsSUFBSTtvQkFDYixTQUFTLEVBQUMsSUFBSTtvQkFDZCxLQUFLLEVBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUc7b0JBQ2pDLE1BQU0sRUFBQyxNQUFNLENBQUEsQ0FBQyxDQUFBLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFDLENBQUEsRUFBRTtpQkFDNUM7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLEdBQUcsT0FBTyxJQUFJO29CQUNwQixLQUFLLEVBQUMsR0FBRyxPQUFPLEdBQUc7aUJBQ3BCO2FBQ0YsQ0FBQTtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdFLElBQUcsSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFDOUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1FBQ2hELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUE7UUFDbkMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQTtRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUE7UUFDbkMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQTtRQUNwQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0F6SVUsd0JBQXdCO21HQUF4Qix3QkFBd0IsNERDVHJDLG9lQU9BOzs0RkRFYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyYW1ld29ya1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mcmFtZXdvcmsuc2VydmljZSc7XG5kZWNsYXJlIHZhciBMZWFkZXJMaW5lOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb25maWctZnJhbWV3b3JrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZy1mcmFtZXdvcmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25maWctZnJhbWV3b3JrLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlnRnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZnJhbWV3b3JrQ2F0ZWdvcmllczogYW55O1xuICBjYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zOiBhbnlbXSA9IFtdO1xuICB0ZW1wQ2F0ZWdvcnlSZXByZXNlbnRhaW9uczogYW55W10gPSBbXTtcbiAgb2xkRWxlbWVudHM6IGFueVtdID0gW107XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJhbWV3b3JrU2VydmljZTogRnJhbWV3b3JrU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmdldEZyYW1ld29ya0luZm8oKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuZnJhbWV3b3JrQ2F0ZWdvcmllcyA9IHJlcy5yZXN1bHQuZnJhbWV3b3JrLmNhdGVnb3JpZXNcbiAgICB9KVxuICAgIC8vIHRoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9ucyA9IGNhdGVnb3J5UmVwcmVzZW50YXRpb25zVjFcbiAgfVxuXG4vLyAgIHVwZGF0ZUNhdGVnb3J5KGRhdGEpe1xuLy8gICAgIGZvcihsZXQgaT0wO2k8ZGF0YS5sZW5ndGg7aSsrKSB7XG4vLyAgICAgICAgIHRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnMucHVzaChcbi8vICAgICAgICAgICB7XG4vLyAgICAgICAgICAgICBuYW1lOiBkYXRhW2ldLm5hbWUsXG4gICAgICAgICAgICAgXG4vLyAgICAgICAgICAgICB0ZXJtczp0aGlzLnVwZGF0ZVRlcm1BcnJ5KGRhdGFbaV0ubmFtZSwgZGF0YVtpKzFdP2RhdGFbaSsxXS5uYW1lOicnLCBpKVxuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgKVxuLy8gICAgIH1cbi8vICAgICB0aGlzLmNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnMgPSB0aGlzLnRlbXBDYXRlZ29yeVJlcHJlc2VudGFpb25zO1xuLy8gICB9XG5cblxuXG4vLyAgIHVwZGF0ZVRlcm1BcnJ5KGN1cnJlbnQsbmV4dCwgaW5kZXgpe1xuLy8gICAgIGxldCB0ZXJtID0gW11cbi8vICAgICBpZihpbmRleCUyID09PSAwKXtcbi8vICAgICAgIHRlcm0gPSBbXG4vLyAgICAgICAgIHtcbi8vICAgICAgICAgICBuYW1lOmAke2N1cnJlbnR9IDFgLFxuLy8gICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnR9MWBcbi8vICAgICAgICAgfSxcbi8vICAgICAgICAge1xuLy8gICAgICAgICAgIG5hbWU6IGAke2N1cnJlbnR9IDJgLFxuLy8gICAgICAgICAgIHNlbGVjdGVkOnRydWUsXG4vLyAgICAgICAgICAgY29ubmVjdGVkOnRydWUsXG4vLyAgICAgICAgICAgZG9tSWQ6YCR7Y3VycmVudC50b0xvd2VyQ2FzZSgpfTJgLFxuLy8gICAgICAgICAgIGNvbm5lY3RlZERvbUlkOm5leHQ/YCR7bmV4dC50b0xvd2VyQ2FzZSgpfTFgOicnXG4vLyAgICAgICAgIH1cbi8vICAgICAgIF1cbi8vICAgICB9IGVsc2Uge1xuLy8gICAgICAgdGVybSA9IFtcbi8vICAgICAgICAge1xuLy8gICAgICAgICAgIG5hbWU6YCR7Y3VycmVudH0gMWAsXG4vLyAgICAgICAgICAgc2VsZWN0ZWQ6dHJ1ZSxcbi8vICAgICAgICAgICBjb25uZWN0ZWQ6dHJ1ZSxcbi8vICAgICAgICAgICBkb21JZDpgJHtjdXJyZW50LnRvTG93ZXJDYXNlKCl9MWAsXG4vLyAgICAgICAgICAgY29ubmVjdGVkRG9tSWQ6bmV4dD9gJHtuZXh0LnRvTG93ZXJDYXNlKCl9MmA6Jydcbi8vICAgICAgICAgfSxcbi8vICAgICAgICAge1xuLy8gICAgICAgICAgIG5hbWU6IGAke2N1cnJlbnR9IDJgLFxuLy8gICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnR9MmBcbi8vICAgICAgICAgfVxuLy8gICAgICAgXVxuLy8gICAgIH1cbi8vICAgICByZXR1cm4gdGVybVxuLy8gICB9XG4vLyB9XG5cblxuXG5cbiAgdXBkYXRlQ2F0ZWdvcnkobmFtZTogc3RyaW5nKXtcbiAgICB0aGlzLnJlbW92ZU9sZExpbmUoKVxuICAgIHRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnMucHVzaChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgdGVybXM6dGhpcy51cGRhdGVUZXJtQXJyeShuYW1lLCAgdGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zW3RoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9ucy5sZW5ndGggLTFdLCB0aGlzLmNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnMubGVuZ3RoKVxuICAgICAgICAgIH1cbiAgICApXG4gICAgdGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zID0gWy4uLnRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnNdICAgIFxufVxuXG4gIHVwZGF0ZVRlcm1BcnJ5KGN1cnJlbnQ6IHN0cmluZywgcGFyZW50OiBhbnksIGluZGV4OiBudW1iZXIpe1xuICAgIGxldCB0ZXJtID0gW11cbiAgICBpZihpbmRleCUyID09PSAwKSB7XG4gICAgICB0ZXJtID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTpgJHtjdXJyZW50fSAxYCxcbiAgICAgICAgICBkb21JZDpgJHtjdXJyZW50fTFgXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBgJHtjdXJyZW50fSAyYCxcbiAgICAgICAgICBzZWxlY3RlZDp0cnVlLFxuICAgICAgICAgIGNvbm5lY3RlZDp0cnVlLFxuICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnQudG9Mb3dlckNhc2UoKX0yYCxcbiAgICAgICAgICBwYXJlbnQ6cGFyZW50ID8gYCR7cGFyZW50LnRlcm1zWzBdLmRvbUlkfWA6JydcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0gZWxzZSB7XG4gICAgICB0ZXJtID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTpgJHtjdXJyZW50fSAxYCxcbiAgICAgICAgICBzZWxlY3RlZDp0cnVlLFxuICAgICAgICAgIGNvbm5lY3RlZDp0cnVlLFxuICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnQudG9Mb3dlckNhc2UoKX0xYCxcbiAgICAgICAgICBwYXJlbnQ6cGFyZW50P2Ake3BhcmVudC50ZXJtc1sxXS5kb21JZH1gOicnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBgJHtjdXJyZW50fSAyYCxcbiAgICAgICAgICBkb21JZDpgJHtjdXJyZW50fTJgXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gICAgcmV0dXJuIHRlcm1cbiAgfVxuXG4gIHJlbW92ZU9sZExpbmUoKSB7XG4gICAgY29uc3QgZWxlcyA9IEFycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbGVhZGVyLWxpbmUnKSB8fCBbXSlcbiAgICBpZihlbGVzLmxlbmd0aD4wKXtcbiAgICAgICAgZWxlcy5mb3JFYWNoKGVsZSA9PiBlbGUucmVtb3ZlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUNhdGVnb3J5KGluZGV4OiBudW1iZXIpe1xuICAgIHRoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9ucy5zcGxpY2UoaW5kZXgsMSlcbiAgICBjb25zdCB0ZW1wID0gWy4uLnRoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9uc11cbiAgICB0aGlzLmNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnMgPSBbXVxuICAgIHRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnMgPSBbXVxuICAgIHRlbXAuZm9yRWFjaChjYXQgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeShjYXQubmFtZSlcbiAgICB9KVxuICB9XG5cbiAgY2hhbmdlUG9zaXRpb24oZXZlbnQ6IGFueSkge1xuICAgIGxldCBteUFycmF5ID0gWy4uLnRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnNdO1xuICAgIG15QXJyYXlbZXZlbnQuY3VyXSA9IG15QXJyYXkuc3BsaWNlKGV2ZW50LnByZXYsIDEsIG15QXJyYXlbZXZlbnQuY3VyXSlbMF07XG4gICAgdGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zID0gW11cbiAgICB0aGlzLnRlbXBDYXRlZ29yeVJlcHJlc2VudGFpb25zID0gW11cbiAgICBteUFycmF5LmZvckVhY2goY2F0ID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ2F0ZWdvcnkoY2F0Lm5hbWUpXG4gICAgfSlcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29uZmlnX193cmFwXCI+XG4gICAgPGxpYi1jcmVhdGUtY2F0ZWdvcmllcyBjbGFzcz1cImNvbmZpZ19fZm9ybS13cmFwXCIgW3RheG9ub215SW5mb109XCInJ1wiICh1cGRhdGVDYXRlZ29yeSk9XCJ1cGRhdGVDYXRlZ29yeSgkZXZlbnQpXCIgXG4gICAgKHJlbW92ZUNhdGVnb3JpZXMpPVwicmVtb3ZlQ2F0ZWdvcnkoJGV2ZW50KVwiIChjaGFuZ2VQb3NpdGlvbik9XCJjaGFuZ2VQb3NpdGlvbigkZXZlbnQpXCI+PC9saWItY3JlYXRlLWNhdGVnb3JpZXM+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnNcIj5cbiAgICAgICAgPGxpYi1jYXRlZ29yaWVzLXByZXZpZXcgIGNsYXNzPVwiY29uZmlnX19wcmV2aWV3XCIgW2RhdGFdPVwiY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9uc1wiPjwvbGliLWNhdGVnb3JpZXMtcHJldmlldz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiA8L2Rpdj5cbiJdfQ==
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb250YWluZXJzL2NvbmZpZy1mcmFtZXdvcmsvY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb250YWluZXJzL2NvbmZpZy1mcmFtZXdvcmsvY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFJbEQsTUFLYSx3QkFBd0I7SUFLbkMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFIdEQsOEJBQXlCLEdBQVUsRUFBRSxDQUFDO1FBQ3RDLCtCQUEwQixHQUFVLEVBQUUsQ0FBQztRQUN2QyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztJQUNrQyxDQUFDO0lBRTNELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQTtRQUM1RCxDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7SUF1REQsY0FBYyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3BCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQzlCO1lBQ0UsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUcsSUFBSSxD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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFBO1FBQ25DLElBQUksQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUE7UUFDcEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7K0dBeklVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDREQ1RyQyxvZUFPQTs7U0RFYSx3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnJhbWV3b3JrU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZyYW1ld29yay5zZXJ2aWNlJztcbmRlY2xhcmUgdmFyIExlYWRlckxpbmU6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNvbmZpZy1mcmFtZXdvcmsnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlnLWZyYW1ld29yay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZy1mcmFtZXdvcmsuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maWdGcmFtZXdvcmtDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmcmFtZXdvcmtDYXRlZ29yaWVzOiBhbnk7XG4gIGNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnM6IGFueVtdID0gW107XG4gIHRlbXBDYXRlZ29yeVJlcHJlc2VudGFpb25zOiBhbnlbXSA9IFtdO1xuICBvbGRFbGVtZW50czogYW55W10gPSBbXTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmFtZXdvcmtTZXJ2aWNlOiBGcmFtZXdvcmtTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0RnJhbWV3b3JrSW5mbygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5mcmFtZXdvcmtDYXRlZ29yaWVzID0gcmVzLnJlc3VsdC5mcmFtZXdvcmsuY2F0ZWdvcmllc1xuICAgIH0pXG4gICAgLy8gdGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zID0gY2F0ZWdvcnlSZXByZXNlbnRhdGlvbnNWMVxuICB9XG5cbi8vICAgdXBkYXRlQ2F0ZWdvcnkoZGF0YSl7XG4vLyAgICAgZm9yKGxldCBpPTA7aTxkYXRhLmxlbmd0aDtpKyspIHtcbi8vICAgICAgICAgdGhpcy50ZW1wQ2F0ZWdvcnlSZXByZXNlbnRhaW9ucy5wdXNoKFxuLy8gICAgICAgICAgIHtcbi8vICAgICAgICAgICAgIG5hbWU6IGRhdGFbaV0ubmFtZSxcbiAgICAgICAgICAgICBcbi8vICAgICAgICAgICAgIHRlcm1zOnRoaXMudXBkYXRlVGVybUFycnkoZGF0YVtpXS5uYW1lLCBkYXRhW2krMV0/ZGF0YVtpKzFdLm5hbWU6JycsIGkpXG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICApXG4vLyAgICAgfVxuLy8gICAgIHRoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9ucyA9IHRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnM7XG4vLyAgIH1cblxuXG5cbi8vICAgdXBkYXRlVGVybUFycnkoY3VycmVudCxuZXh0LCBpbmRleCl7XG4vLyAgICAgbGV0IHRlcm0gPSBbXVxuLy8gICAgIGlmKGluZGV4JTIgPT09IDApe1xuLy8gICAgICAgdGVybSA9IFtcbi8vICAgICAgICAge1xuLy8gICAgICAgICAgIG5hbWU6YCR7Y3VycmVudH0gMWAsXG4vLyAgICAgICAgICAgZG9tSWQ6YCR7Y3VycmVudH0xYFxuLy8gICAgICAgICB9LFxuLy8gICAgICAgICB7XG4vLyAgICAgICAgICAgbmFtZTogYCR7Y3VycmVudH0gMmAsXG4vLyAgICAgICAgICAgc2VsZWN0ZWQ6dHJ1ZSxcbi8vICAgICAgICAgICBjb25uZWN0ZWQ6dHJ1ZSxcbi8vICAgICAgICAgICBkb21JZDpgJHtjdXJyZW50LnRvTG93ZXJDYXNlKCl9MmAsXG4vLyAgICAgICAgICAgY29ubmVjdGVkRG9tSWQ6bmV4dD9gJHtuZXh0LnRvTG93ZXJDYXNlKCl9MWA6Jydcbi8vICAgICAgICAgfVxuLy8gICAgICAgXVxuLy8gICAgIH0gZWxzZSB7XG4vLyAgICAgICB0ZXJtID0gW1xuLy8gICAgICAgICB7XG4vLyAgICAgICAgICAgbmFtZTpgJHtjdXJyZW50fSAxYCxcbi8vICAgICAgICAgICBzZWxlY3RlZDp0cnVlLFxuLy8gICAgICAgICAgIGNvbm5lY3RlZDp0cnVlLFxuLy8gICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnQudG9Mb3dlckNhc2UoKX0xYCxcbi8vICAgICAgICAgICBjb25uZWN0ZWREb21JZDpuZXh0P2Ake25leHQudG9Mb3dlckNhc2UoKX0yYDonJ1xuLy8gICAgICAgICB9LFxuLy8gICAgICAgICB7XG4vLyAgICAgICAgICAgbmFtZTogYCR7Y3VycmVudH0gMmAsXG4vLyAgICAgICAgICAgZG9tSWQ6YCR7Y3VycmVudH0yYFxuLy8gICAgICAgICB9XG4vLyAgICAgICBdXG4vLyAgICAgfVxuLy8gICAgIHJldHVybiB0ZXJtXG4vLyAgIH1cbi8vIH1cblxuXG5cblxuICB1cGRhdGVDYXRlZ29yeShuYW1lOiBzdHJpbmcpe1xuICAgIHRoaXMucmVtb3ZlT2xkTGluZSgpXG4gICAgdGhpcy50ZW1wQ2F0ZWdvcnlSZXByZXNlbnRhaW9ucy5wdXNoKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICB0ZXJtczp0aGlzLnVwZGF0ZVRlcm1BcnJ5KG5hbWUsICB0aGlzLmNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnNbdGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zLmxlbmd0aCAtMV0sIHRoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9ucy5sZW5ndGgpXG4gICAgICAgICAgfVxuICAgIClcbiAgICB0aGlzLmNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnMgPSBbLi4udGhpcy50ZW1wQ2F0ZWdvcnlSZXByZXNlbnRhaW9uc10gICAgXG59XG5cbiAgdXBkYXRlVGVybUFycnkoY3VycmVudDogc3RyaW5nLCBwYXJlbnQ6IGFueSwgaW5kZXg6IG51bWJlcil7XG4gICAgbGV0IHRlcm0gPSBbXVxuICAgIGlmKGluZGV4JTIgPT09IDApIHtcbiAgICAgIHRlcm0gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOmAke2N1cnJlbnR9IDFgLFxuICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnR9MWBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke2N1cnJlbnR9IDJgLFxuICAgICAgICAgIHNlbGVjdGVkOnRydWUsXG4gICAgICAgICAgY29ubmVjdGVkOnRydWUsXG4gICAgICAgICAgZG9tSWQ6YCR7Y3VycmVudC50b0xvd2VyQ2FzZSgpfTJgLFxuICAgICAgICAgIHBhcmVudDpwYXJlbnQgPyBgJHtwYXJlbnQudGVybXNbMF0uZG9tSWR9YDonJ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRlcm0gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOmAke2N1cnJlbnR9IDFgLFxuICAgICAgICAgIHNlbGVjdGVkOnRydWUsXG4gICAgICAgICAgY29ubmVjdGVkOnRydWUsXG4gICAgICAgICAgZG9tSWQ6YCR7Y3VycmVudC50b0xvd2VyQ2FzZSgpfTFgLFxuICAgICAgICAgIHBhcmVudDpwYXJlbnQ/YCR7cGFyZW50LnRlcm1zWzFdLmRvbUlkfWA6JydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke2N1cnJlbnR9IDJgLFxuICAgICAgICAgIGRvbUlkOmAke2N1cnJlbnR9MmBcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgICByZXR1cm4gdGVybVxuICB9XG5cbiAgcmVtb3ZlT2xkTGluZSgpIHtcbiAgICBjb25zdCBlbGVzID0gQXJyYXkuZnJvbShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsZWFkZXItbGluZScpIHx8IFtdKVxuICAgIGlmKGVsZXMubGVuZ3RoPjApe1xuICAgICAgICBlbGVzLmZvckVhY2goZWxlID0+IGVsZS5yZW1vdmUoKSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlQ2F0ZWdvcnkoaW5kZXg6IG51bWJlcil7XG4gICAgdGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zLnNwbGljZShpbmRleCwxKVxuICAgIGNvbnN0IHRlbXAgPSBbLi4udGhpcy5jYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zXVxuICAgIHRoaXMuY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9ucyA9IFtdXG4gICAgdGhpcy50ZW1wQ2F0ZWdvcnlSZXByZXNlbnRhaW9ucyA9IFtdXG4gICAgdGVtcC5mb3JFYWNoKGNhdCA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNhdGVnb3J5KGNhdC5uYW1lKVxuICAgIH0pXG4gIH1cblxuICBjaGFuZ2VQb3NpdGlvbihldmVudDogYW55KSB7XG4gICAgbGV0IG15QXJyYXkgPSBbLi4udGhpcy50ZW1wQ2F0ZWdvcnlSZXByZXNlbnRhaW9uc107XG4gICAgbXlBcnJheVtldmVudC5jdXJdID0gbXlBcnJheS5zcGxpY2UoZXZlbnQucHJldiwgMSwgbXlBcnJheVtldmVudC5jdXJdKVswXTtcbiAgICB0aGlzLmNhdGVnb3JpZXNSZXByZXNlbnRhdGlvbnMgPSBbXVxuICAgIHRoaXMudGVtcENhdGVnb3J5UmVwcmVzZW50YWlvbnMgPSBbXVxuICAgIG15QXJyYXkuZm9yRWFjaChjYXQgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeShjYXQubmFtZSlcbiAgICB9KVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb25maWdfX3dyYXBcIj5cbiAgICA8bGliLWNyZWF0ZS1jYXRlZ29yaWVzIGNsYXNzPVwiY29uZmlnX19mb3JtLXdyYXBcIiBbdGF4b25vbXlJbmZvXT1cIicnXCIgKHVwZGF0ZUNhdGVnb3J5KT1cInVwZGF0ZUNhdGVnb3J5KCRldmVudClcIiBcbiAgICAocmVtb3ZlQ2F0ZWdvcmllcyk9XCJyZW1vdmVDYXRlZ29yeSgkZXZlbnQpXCIgKGNoYW5nZVBvc2l0aW9uKT1cImNoYW5nZVBvc2l0aW9uKCRldmVudClcIj48L2xpYi1jcmVhdGUtY2F0ZWdvcmllcz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2F0ZWdvcmllc1JlcHJlc2VudGF0aW9uc1wiPlxuICAgICAgICA8bGliLWNhdGVnb3JpZXMtcHJldmlldyAgY2xhc3M9XCJjb25maWdfX3ByZXZpZXdcIiBbZGF0YV09XCJjYXRlZ29yaWVzUmVwcmVzZW50YXRpb25zXCI+PC9saWItY2F0ZWdvcmllcy1wcmV2aWV3PlxuICAgIDwvbmctY29udGFpbmVyPlxuIDwvZGl2PlxuIl19
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
|
|
3
|
+
class DashboardComponent {
|
|
4
4
|
constructor() { }
|
|
5
5
|
ngOnInit() {
|
|
6
6
|
}
|
|
7
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
8
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, selector: "lib-dashboard", ngImport: i0, template: "<p>dashboard works!</p>\n", styles: [""] }); }
|
|
9
9
|
}
|
|
10
|
+
export { DashboardComponent };
|
|
10
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
11
12
|
type: Component,
|
|
12
13
|
args: [{ selector: 'lib-dashboard', template: "<p>dashboard works!</p>\n" }]
|
|
13
14
|
}], ctorParameters: function () { return []; } });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90cmVlLWhpZXJhcmNoeS9zcmMvbGliL2NvbnRhaW5lcnMvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb250YWluZXJzL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFFbEQsTUFLYSxrQkFBa0I7SUFFN0IsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7K0dBTFUsa0JBQWtCO21HQUFsQixrQkFBa0IscURDUC9CLDJCQUNBOztTRE1hLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iLCI8cD5kYXNoYm9hcmQgd29ya3MhPC9wPlxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
|
|
3
|
+
class OrderByPipe {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.approvalTerms = [];
|
|
6
6
|
}
|
|
@@ -26,10 +26,11 @@ export class OrderByPipe {
|
|
|
26
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
27
27
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: OrderByPipe, name: "orderBy" }); }
|
|
28
28
|
}
|
|
29
|
+
export { OrderByPipe };
|
|
29
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrderByPipe, decorators: [{
|
|
30
31
|
type: Pipe,
|
|
31
32
|
args: [{
|
|
32
33
|
name: 'orderBy'
|
|
33
34
|
}]
|
|
34
35
|
}], ctorParameters: function () { return []; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90cmVlLWhpZXJhcmNoeS9zcmMvbGliL3BpcGVzL29yZGVyLWJ5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BR2EsV0FBVztJQUV0QjtRQURBLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ0wsQ0FBQztJQUVmLFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBZTtRQUVuQyxJQUFHLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBRyxLQUFLLEVBQUU7Z0JBQ1IsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUE7YUFDWjtTQUNGO2FBQU07WUFDTCxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDMUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNqSixNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsb0JBQW9CLElBQUksQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRWpKLE9BQVEsVUFBVSxHQUFHLFVBQVUsQ0FBQztnQkFFaEMsQ0FBQyxDQUFDLENBQUM7YUFFUjtTQUNGO0lBRUgsQ0FBQzsrR0F6QlUsV0FBVzs2R0FBWCxXQUFXOztTQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFIdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ29yZGVyQnknXG59KVxuZXhwb3J0IGNsYXNzIE9yZGVyQnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGFwcHJvdmFsVGVybXMgPSBbXTtcbiAgY29uc3RydWN0b3IoKXt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIHNvcnRCeT86IHN0cmluZyk6IGFueXtcbiAgICAvLyByZXR1cm4gbnVsbDtcbiAgICBpZighc29ydEJ5KSB7XG4gICAgICBpZih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUuc2xpY2UoKS5yZXZlcnNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZihBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiAgdmFsdWUuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wQSA9IGEuYWRkaXRpb25hbFByb3BlcnRpZXMgJiYgYS5hZGRpdGlvbmFsUHJvcGVydGllcy50aW1lU3RhbXAgPyBuZXcgRGF0ZShOdW1iZXIoYS5hZGRpdGlvbmFsUHJvcGVydGllcy50aW1lU3RhbXApKS5nZXRUaW1lKCkgOiAwO1xuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wQiA9IGIuYWRkaXRpb25hbFByb3BlcnRpZXMgJiYgYi5hZGRpdGlvbmFsUHJvcGVydGllcy50aW1lU3RhbXAgPyBuZXcgRGF0ZShOdW1iZXIoYi5hZGRpdGlvbmFsUHJvcGVydGllcy50aW1lU3RhbXApKS5nZXRUaW1lKCkgOiAwO1xuICAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuICB0aW1lc3RhbXBCIC0gdGltZXN0YW1wQTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgfSk7XG4gICAgIFxuICAgICAgfVxuICAgIH1cbiAgICAgXG4gIH1cblxufVxuIl19
|
|
@@ -4,7 +4,7 @@ import { BehaviorSubject, } from 'rxjs';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../services/framework.service";
|
|
6
6
|
import * as i2 from "@angular/common/http";
|
|
7
|
-
|
|
7
|
+
class ApprovalService {
|
|
8
8
|
constructor(frameworkService, http) {
|
|
9
9
|
this.frameworkService = frameworkService;
|
|
10
10
|
this.http = http;
|
|
@@ -38,10 +38,11 @@ export class ApprovalService {
|
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApprovalService, deps: [{ token: i1.FrameworkService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
39
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApprovalService, providedIn: 'root' }); }
|
|
40
40
|
}
|
|
41
|
+
export { ApprovalService };
|
|
41
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApprovalService, decorators: [{
|
|
42
43
|
type: Injectable,
|
|
43
44
|
args: [{
|
|
44
45
|
providedIn: 'root'
|
|
45
46
|
}]
|
|
46
47
|
}], ctorParameters: function () { return [{ type: i1.FrameworkService }, { type: i2.HttpClient }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90cmVlLWhpZXJhcmNoeS9zcmMvbGliL3NlcnZpY2VzL2FwcHJvdmFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssR0FBRyxNQUFNLDJCQUEyQixDQUFBO0FBRWhELE9BQU8sRUFBRSxlQUFlLEdBQUcsTUFBTSxNQUFNLENBQUM7Ozs7QUFFeEMsTUFHYSxlQUFlO0lBSTFCLFlBQW9CLGdCQUFrQyxFQUFVLElBQWdCO1FBQTVELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRmhGLHdCQUFtQixHQUF5QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUdsRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQU87UUFDcEIsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQTtRQUNqQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFBO1FBQ2hDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUE7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFPO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFNO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFPO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFZO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFRO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUNELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNoRCxDQUFDOytHQXBDVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOztTQUVQLGVBQWU7NEZBQWYsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmFtZXdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZnJhbWV3b3JrLnNlcnZpY2UnXG5pbXBvcnQgKiBhcyBBUEkgZnJvbSAnLi4vY29uc3RhbnRzL2FwcC1jb25zdGFudCdcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsU2VydmljZSB7XG4gIGVudmlyb25tZW50XG4gIGFwcHJvdmFsTGlzdFN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmFtZXdvcmtTZXJ2aWNlOiBGcmFtZXdvcmtTZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuZnJhbWV3b3JrU2VydmljZS5nZXRFbnZpcm9tZW50KClcbiAgfVxuXG4gIGNyZWF0ZUFwcHJvdmFsKHJlcTphbnkpe1xuICAgIHJlcS5zdGF0ZSA9IEFQSS5BUFBST1ZBTC5JTklUSUFURVxuICAgIHJlcS5hY3Rpb24gPSBBUEkuQVBQUk9WQUwuQUNUSU9OXG4gICAgcmVxLnNlcnZpY2VOYW1lID0gQVBJLkFQUFJPVkFMLlNFUlZJQ0VfTkFNRVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtBUEkuQVBQUk9WQUwuQ1JFQVRFfWAscmVxKVxuICB9XG5cbiAgZ2V0QXBwcm92YWxMaXN0KHJlcTphbnkpe1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtBUEkuQVBQUk9WQUwuU0VBUkNIfWAscmVxKVxuICB9XG5cbiAgZ2V0V29ya2Zsb3dEZXRhaWxzKGlkOmFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke0FQSS5BUFBST1ZBTC5SRUFEfS8ke2lkfWApXG4gIH1cblxuICB1cGRhdGVXb3JrRmxvd0FwcHJvdmFsKHJlcTphbnkpe1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2goYCR7QVBJLkFQUFJPVkFMLlVQREFURX1gLCByZXEpXG4gIH1cblxuICByZW1vdmVEdXBsaWNhdGVzKGFycjpzdHJpbmdbXSk6c3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4ubmV3IFNldChhcnIpXTtcbiAgfVxuXG4gIHNldEFwcHJvdmFsTGlzdChsaXN0OmFueSl7XG4gICAgdGhpcy5hcHByb3ZhbExpc3RTdWJqZWN0Lm5leHQobGlzdClcbiAgfVxuICBnZXRVcGRhdGVMaXN0KCl7XG4gICAgcmV0dXJuIHRoaXMuYXBwcm92YWxMaXN0U3ViamVjdC5hc09ic2VydmFibGUoKVxuICB9XG59XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { defaultConfig } from '../constants/app-constant';
|
|
3
3
|
import * as d3 from 'd3';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
|
|
5
|
+
class ConnectorService {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.connectorMap = {};
|
|
8
8
|
this.containerSelector = '#treeViewContainer';
|
|
@@ -280,7 +280,8 @@ export class ConnectorService {
|
|
|
280
280
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
281
281
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectorService }); }
|
|
282
282
|
}
|
|
283
|
+
export { ConnectorService };
|
|
283
284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectorService, decorators: [{
|
|
284
285
|
type: Injectable
|
|
285
286
|
}], ctorParameters: function () { return []; } });
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9zZXJ2aWNlcy9jb25uZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQzs7QUFrQnpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0I7UUFKQSxpQkFBWSxHQUF5QixFQUFFLENBQUM7UUFFeEMsc0JBQWlCLEdBQUcsb0JBQW9CLENBQUM7SUFHekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFXLEVBQUUsTUFBVyxFQUFFLFVBQWUsYUFBYSxFQUFFLG9CQUF5QixTQUFTLEVBQUUsb0JBQXlCLFNBQVM7UUFDdEksTUFBTSxRQUFRLEdBQVEsRUFBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFDO1FBQ3JELFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUE7UUFDekIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLElBQUksYUFBYSxHQUFtQixFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzVELGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLE1BQU0sRUFBRSxPQUFPO29CQUNmLElBQUksRUFBRSxRQUFRO2lCQUNmLENBQUMsQ0FBQztnQkFFSCxJQUFHLGlCQUFpQixFQUFFO29CQUNw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OlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmF1bHRDb25maWcgfSBmcm9tICcuLi9jb25zdGFudHMvYXBwLWNvbnN0YW50JztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcblxuaW50ZXJmYWNlIENvbm5lY3RlZERvdCB7XG4gIHRhcmdldDogYW55O1xuICBsaW5lOiBhbnk7XG59XG5cbmludGVyZmFjZSBEM0xpbmUge1xuICBzb3VyY2U6IGFueTtcbiAgdGFyZ2V0OiBhbnk7XG4gIHBhdGg6IGFueTtcbiAgc3ZnOiBhbnk7XG4gIHBvc2l0aW9uOiAoKSA9PiB2b2lkO1xuICBzaG93OiAoYW5pbWF0aW9uPzogc3RyaW5nKSA9PiB2b2lkO1xuICByZW1vdmU6ICgpID0+IHZvaWQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25uZWN0b3JTZXJ2aWNlIHtcbiAgY29ubmVjdG9yTWFwOiB7W2tleTogc3RyaW5nXTogYW55fSA9IHt9O1xuICBlbG1XcmFwcGVyOiBhbnk7XG4gIGNvbnRhaW5lclNlbGVjdG9yID0gJyN0cmVlVmlld0NvbnRhaW5lcic7IC8vIFlvdSBtaWdodCBuZWVkIHRvIGFkanVzdCB0aGlzIHNlbGVjdG9yXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBfZHJhd0xpbmUoc291cmNlOiBhbnksIHRhcmdldDogYW55LCBvcHRpb25zOiBhbnkgPSBkZWZhdWx0Q29uZmlnLCBzb3VyY2VDb250YWluZXJJZDogYW55ID0gdW5kZWZpbmVkLCB0YXJnZXRDb250YWluZXJJZDogYW55ID0gdW5kZWZpbmVkKTogYW55IHtcbiAgICBjb25zdCBfb3B0aW9ucyA9IDxhbnk+ey4uLmRlZmF1bHRDb25maWcsIC4uLm9wdGlvbnN9O1xuICAgIF9vcHRpb25zWydkYXNoZWQnXSA9IHRydWVcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgICBsZXQgY29ubmVjdGVkRG90czogQ29ubmVjdGVkRG90W10gPSBbXTtcbiAgICAgIHRhcmdldC5mb3JFYWNoKChfdGFyZ2V0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBMaW5lID0gdGhpcy5yZW5kZXJMaW5lKHNvdXJjZSwgX3RhcmdldCwgX29wdGlvbnMpO1xuICAgICAgICBjb25uZWN0ZWREb3RzLnB1c2goe1xuICAgICAgICAgIHRhcmdldDogX3RhcmdldCxcbiAgICAgICAgICBsaW5lOiB0ZW1wTGluZVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIGlmKHNvdXJjZUNvbnRhaW5lcklkKSB7XG4gICAgICAgICAgY29uc3Qgc291cmNlQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihzb3VyY2VDb250YWluZXJJZCk7XG4gICAgICAgICAgaWYgKHNvdXJjZUNvbnRhaW5lcikge1xuICAgICAgICAgICAgc291cmNlQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0ZW1wTGluZSAmJiB0ZW1wTGluZS5wb3NpdGlvbigpO1xuICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBFcnJvciBoYW5kbGluZ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmICh0YXJnZXRDb250YWluZXJJZCkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0Q29udGFpbmVySWQpO1xuICAgICAgICAgIGlmICh0YXJnZXRDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRhcmdldENvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGVtcExpbmUgJiYgdGVtcExpbmUucG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgLy8gRXJyb3IgaGFuZGxpbmdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb25uZWN0ZWREb3RzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJMaW5lKHNvdXJjZSwgdGFyZ2V0LCBfb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJMaW5lKHNvdXJjZTogYW55LCB0YXJnZXQ6IGFueSwgb3B0aW9uczogYW55KTogRDNMaW5lIHtcbiAgICAvLyBGaW5kIG9yIGNyZWF0ZSB0aGUgY29udGFpbmVyIGVsZW1lbnRcbiAgICBjb25zdCB0cmVlVmlld0NvbXBvbmVudDogYW55ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lclNlbGVjdG9yKTtcbiAgICBpZiAoIXRyZWVWaWV3Q29tcG9uZW50KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzb3VyY2U6IG51bGwsXG4gICAgICAgIHRhcmdldDogbnVsbCxcbiAgICAgICAgcGF0aDogbnVsbCxcbiAgICAgICAgc3ZnOiBudWxsLFxuICAgICAgICBwb3NpdGlvbjogKCkgPT4ge30sXG4gICAgICAgIHNob3c6ICgpID0+IHt9LFxuICAgICAgICByZW1vdmU6ICgpID0+IHt9XG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICAvLyBDcmVhdGUgb3IgZ2V0IGNvbnRhaW5lciBmb3IgdGhlIFNWR1xuICAgIGxldCBjb250YWluZXI6IGFueSA9IHRyZWVWaWV3Q29tcG9uZW50LnF1ZXJ5U2VsZWN0b3IoJyNsZWFkZXItbGluZS1jb250YWluZXInKTtcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgLy8gQ3JlYXRlIGEgd3JhcHBlciBjb250YWluZXIgdG8gY29udHJvbCB0aGUgb3ZlcmZsb3cgYXQgdGhlIHRvcFxuICAgICAgbGV0IG92ZXJmbG93V3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgb3ZlcmZsb3dXcmFwcGVyLmlkID0gJ2xlYWRlci1saW5lLW92ZXJmbG93LXdyYXBwZXInO1xuICAgICAgb3ZlcmZsb3dXcmFwcGVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIG92ZXJmbG93V3JhcHBlci5zdHlsZS50b3AgPSAnODBweCc7IC8vIFNhbWUgdG9wIHBvc2l0aW9uXG4gICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgb3ZlcmZsb3dXcmFwcGVyLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsgLy8gSGlkZSBhbnl0aGluZyBhYm92ZSB0aGlzIGNvbnRhaW5lclxuICAgICAgb3ZlcmZsb3dXcmFwcGVyLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7IC8vIEFsbG93IGNsaWNrcyB0byBwYXNzIHRocm91Z2hcbiAgICAgIFxuICAgICAgLy8gT3JpZ2luYWwgY29udGFpbmVyIHJlbWFpbnMgdGhlIHNhbWUgYnV0IHBvc2l0aW9uZWQgYXQgdG9wOjAgd2l0aGluIHRoZSB3cmFwcGVyXG4gICAgICBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGNvbnRhaW5lci5pZCA9ICdsZWFkZXItbGluZS1jb250YWluZXInO1xuICAgICAgY29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIGNvbnRhaW5lci5zdHlsZS50b3AgPSAnMCc7IC8vIENoYW5nZWQgdG8gMCBhcyBpdCdzIG5vdyByZWxhdGl2ZSB0byB3cmFwcGVyXG4gICAgICBjb250YWluZXIuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgY29udGFpbmVyLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICBjb250YWluZXIuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICBjb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgXG4gICAgICAvLyBBZGQgcmVzaXplIG9ic2VydmVyIHRvIGR5bmFtaWNhbGx5IGFkanVzdCBjb250YWluZXIgd2lkdGhcbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXMgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICBpZiAoZW50cnkudGFyZ2V0ID09PSB0cmVlVmlld0NvbXBvbmVudCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLndpZHRoID0gYCR7ZW50cnkuY29udGVudFJlY3Qud2lkdGh9cHhgO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBSZXBvc2l0aW9uIGFsbCBsaW5lcyB3aGVuIGNvbnRhaW5lciByZXNpemVzXG4gICAgICAgICAgICBpZiAodGhpcy5jb25uZWN0b3JNYXApIHtcbiAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmNvbm5lY3Rvck1hcCkuZm9yRWFjaCgoY29ubmVjdG9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29ubmVjdG9yICYmIGNvbm5lY3Rvci5saW5lcykge1xuICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmxpbmVzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5saW5lICYmIHR5cGVvZiBpdGVtLmxpbmUucG9zaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmxpbmUucG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBTdGFydCBvYnNlcnZpbmcgdGhlIHRyZWVWaWV3Q29tcG9uZW50XG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRyZWVWaWV3Q29tcG9uZW50KTtcbiAgICAgIFxuICAgICAgLy8gQWxzbyBsaXN0ZW4gZm9yIHNjcm9sbCBldmVudHMgdG8gcmVwb3NpdGlvbiBsaW5lc1xuICAgICAgdHJlZVZpZXdDb21wb25lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAvLyBVcGRhdGUgY29udGFpbmVyIGRpbWVuc2lvbnMgYmFzZWQgb24gdmlzaWJsZSBhcmVhXG4gICAgICAgIG92ZXJmbG93V3JhcHBlci5zdHlsZS53aWR0aCA9IGAke3RyZWVWaWV3Q29tcG9uZW50LnNjcm9sbFdpZHRofXB4YDtcbiAgICAgICAgb3ZlcmZsb3dXcmFwcGVyLnN0eWxlLmhlaWdodCA9IGAke3RyZWVWaWV3Q29tcG9uZW50LnNjcm9sbEhlaWdodH1weGA7XG4gICAgICAgIFxuICAgICAgICAvLyBSZXBvc2l0aW9uIGFsbCBhY3RpdmUgbGluZXNcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uQWxsTGluZXMoKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBvdmVyZmxvd1dyYXBwZXIuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcbiAgICAgIHRyZWVWaWV3Q29tcG9uZW50LmFwcGVuZENoaWxkKG92ZXJmbG93V3JhcHBlcik7XG4gICAgfVxuICAgIFxuICAgIC8vIFN0b3JlIGNvbnRhaW5lciByZWZlcmVuY2UgZm9yIGFjY2VzcyBpbiBvdGhlciBtZXRob2RzXG4gICAgdGhpcy5lbG1XcmFwcGVyID0gY29udGFpbmVyO1xuICAgIFxuICAgIC8vIEdldCB0aGUgc291cmNlIGFuZCB0YXJnZXQgZWxlbWVudHNcbiAgICBsZXQgc291cmNlRWxlbWVudCA9IHNvdXJjZTtcbiAgICBsZXQgdGFyZ2V0RWxlbWVudDogYW55O1xuICAgIFxuICAgIGlmICh0YXJnZXQudGFyZ2V0VHlwZSA9PT0gJ2lkJykge1xuICAgICAgdGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhcmdldC50YXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRFbGVtZW50ID0gdGFyZ2V0LnRhcmdldDtcbiAgICB9XG4gICAgXG4gICAgLy8gRW5zdXJlIGJvdGggZWxlbWVudHMgZXhpc3RcbiAgICBpZiAoIXNvdXJjZUVsZW1lbnQgfHwgIXRhcmdldEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogbnVsbCxcbiAgICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgICBwYXRoOiBudWxsLFxuICAgICAgICBzdmc6IG51bGwsXG4gICAgICAgIHBvc2l0aW9uOiAoKSA9PiB7fSxcbiAgICAgICAgc2hvdzogKCkgPT4ge30sXG4gICAgICAgIHJlbW92ZTogKCkgPT4ge31cbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBJRCBmb3IgdGhlIFNWR1xuICAgIGNvbnN0IHN2Z0lkID0gJ2QzLWxpbmUtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KTtcbiAgICBcbiAgICAvLyBDcmVhdGUgU1ZHIGVsZW1lbnRcbiAgICBjb25zdCBzdmcgPSBkMy5zZWxlY3QoY29udGFpbmVyKVxuICAgICAgLmFwcGVuZCgnc3ZnJylcbiAgICAgIC5hdHRyKCdpZCcsIHN2Z0lkKVxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ2xlYWRlci1saW5lJylcbiAgICAgIC5zdHlsZSgncG9zaXRpb24nLCAnYWJzb2x1dGUnKVxuICAgICAgLnN0eWxlKCd0b3AnLCAnMCcpXG4gICAgICAuc3R5bGUoJ2xlZnQnLCAnMCcpXG4gICAgICAuc3R5bGUoJ3dpZHRoJywgJzEwMCUnKVxuICAgICAgLnN0eWxlKCdoZWlnaHQnLCAnMTAwJScpXG4gICAgICAuc3R5bGUoJ3BvaW50ZXItZXZlbnRzJywgJ25vbmUnKVxuICAgICAgLnN0eWxlKCdvdmVyZmxvdycsICd2aXNpYmxlJyk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHBvc2l0aW9uc1xuICAgIGNvbnN0IHNvdXJjZVJlY3QgPSBzb3VyY2VFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgXG4gICAgLy8gRGV0ZXJtaW5lIGVkZ2UgY29ubmVjdGlvbiBwb2ludHMgLSBhbHdheXMgcmlnaHQgdG8gbGVmdFxuICAgIGxldCBzb3VyY2VYLCBzb3VyY2VZLCB0YXJnZXRYLCB0YXJnZXRZO1xuXG4gICAgLy8gU291cmNlIC0gYWx3YXlzIGNvbm5lY3QgZnJvbSB0aGUgcmlnaHQgZWRnZVxuICAgIHNvdXJjZVggPSBzb3VyY2VSZWN0LnJpZ2h0IC0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICAgIHNvdXJjZVkgPSBzb3VyY2VSZWN0LnRvcCArIChzb3VyY2VSZWN0LmhlaWdodCAvIDIpIC0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgICAvLyBUYXJnZXQgLSBhbHdheXMgY29ubmVjdCB0byB0aGUgbGVmdCBlZGdlXG4gICAgdGFyZ2V0WCA9IHRhcmdldFJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdDtcbiAgICB0YXJnZXRZID0gdGFyZ2V0UmVjdC50b3AgKyAodGFyZ2V0UmVjdC5oZWlnaHQgLyAyKSAtIGNvbnRhaW5lclJlY3QudG9wO1xuICAgIFxuICAgIC8vIENyZWF0ZSBsaW5lIHdpdGggaW5pdGlhbCBvcGFjaXR5IDEgKHZpc2libGUgaW1tZWRpYXRlbHkpXG4gICAgLy8gSW5zdGVhZCBvZiBhIHN0cmFpZ2h0IGxpbmUsIGNyZWF0ZSBhIGdyaWQgbGluZSB3aXRoIHJpZ2h0IGFuZ2xlc1xuICAgIGNvbnN0IHBhdGg6IGFueSA9IHN2Zy5hcHBlbmQoJ3BhdGgnKVxuICAgICAgLmF0dHIoJ2QnLCBjcmVhdGVHcmlkUGF0aChzb3VyY2VYLCBzb3VyY2VZLCB0YXJnZXRYLCB0YXJnZXRZKSlcbiAgICAgIC5zdHlsZSgnc3Ryb2tlJywgJyMwMDAnKSAvLyBEYXJrZXIgY29sb3IgZm9yIGJldHRlciB2aXNpYmlsaXR5XG4gICAgICAuc3R5bGUoJ3N0cm9rZS13aWR0aCcsIG9wdGlvbnMuc2l6ZSB8fCAyKVxuICAgICAgLnN0eWxlKCdmaWxsJywgJ25vbmUnKVxuICAgICAgLnN0eWxlKCdvcGFjaXR5JywgMSkgLy8gU3RhcnQgdmlzaWJsZVxuICAgICAgLnN0eWxlKCdzdHJva2UtbGluZWpvaW4nLCAncm91bmQnKSAvLyBSb3VuZCBjb3JuZXJzIGZvciBhIHNtb290aGVyIGxvb2tcbiAgICAgIC5zdHlsZSgnc3Ryb2tlLWRhc2hhcnJheScsIG9wdGlvbnMuZGFzaGVkID8gJzUsNScgOiAnbm9uZScpOyAvLyBBZGQgZGFzaGVkIHN0eWxlIGlmIHNwZWNpZmllZFxuICAgIFxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBncmlkIHBhdGhcbiAgICBmdW5jdGlvbiBjcmVhdGVHcmlkUGF0aCh4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyKSB7XG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIG1pZHBvaW50IG9uIHRoZSB4LWF4aXNcbiAgICAgIGNvbnN0IG1pZFggPSB4MSArICh4MiAtIHgxKSAvIDI7XG4gICAgICBcbiAgICAgIC8vIENyZWF0ZSBhIHBhdGggd2l0aCAzIHNlZ21lbnRzIChob3Jpem9udGFsLCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbClcbiAgICAgIHJldHVybiBgTSAke3gxfSAke3kxfSBMICR7bWlkWH0gJHt5MX0gTCAke21pZFh9ICR7eTJ9IEwgJHt4Mn0gJHt5Mn1gO1xuICAgIH1cbiAgXG4gICAgLy8gRGVmaW5lIG1hcmtlcnMgKGRpc2sgYXQgc3RhcnQgYW5kIGFycm93IGF0IGVuZClcbiAgICBjb25zdCBkZWZzID0gc3ZnLmFwcGVuZCgnZGVmcycpO1xuICAgIFxuICAgIC8vIEFkZCBzdGFydCBtYXJrZXIgKGRpc2svY2lyY2xlKVxuICAgIGlmIChvcHRpb25zLnN0YXJ0UGx1ZyA9PT0gJ2Rpc2MnIHx8IG9wdGlvbnMuc3RhcnRQbHVnICE9PSBmYWxzZSkge1xuICAgICAgZGVmcy5hcHBlbmQoJ21hcmtlcicpXG4gICAgICAgIC5hdHRyKCdpZCcsIGBzdGFydC1jaXJjbGUtJHtzdmdJZH1gKVxuICAgICAgICAuYXR0cigndmlld0JveCcsICcwIDAgMTAgMTAnKVxuICAgICAgICAuYXR0cigncmVmWCcsIDUpXG4gICAgICAgIC5hdHRyKCdyZWZZJywgNSlcbiAgICAgICAgLmF0dHIoJ21hcmtlcldpZHRoJywgOClcbiAgICAgICAgLmF0dHIoJ21hcmtlckhlaWdodCcsIDgpXG4gICAgICAgIC5hdHRyKCdvcmllbnQnLCAnYXV0bycpXG4gICAgICAgIC5hcHBlbmQoJ2NpcmNsZScpXG4gICAgICAgIC5hdHRyKCdjeCcsIDUpXG4gICAgICAgIC5hdHRyKCdjeScsIDUpXG4gICAgICAgIC5hdHRyKCdyJywgNC41KVxuICAgICAgICAuc3R5bGUoJ2ZpbGwnLCBvcHRpb25zLmNvbG9yIHx8ICcjMzMzJyk7XG4gICAgICBcbiAgICAgIHBhdGguYXR0cignbWFya2VyLXN0YXJ0JywgYHVybCgjc3RhcnQtY2lyY2xlLSR7c3ZnSWR9KWApO1xuICAgIH1cbiAgICBcbiAgICAvLyBBZGQgZW5kIG1hcmtlciAoYXJyb3cpXG4gICAgaWYgKG9wdGlvbnMuZW5kUGx1ZyA9PT0gJ2Fycm93JyB8fCBvcHRpb25zLmVuZFBsdWcgIT09IGZhbHNlKSB7XG4gICAgICBkZWZzLmFwcGVuZCgnbWFya2VyJylcbiAgICAgICAgLmF0dHIoJ2lkJywgYGFycm93aGVhZC0ke3N2Z0lkfWApXG4gICAgICAgIC5hdHRyKCd2aWV3Qm94JywgJzAgMCAxMCAxMCcpXG4gICAgICAgIC5hdHRyKCdyZWZYJywgOCkgIFxuICAgICAgICAuYXR0cigncmVmWScsIDUpXG4gICAgICAgIC5hdHRyKCdtYXJrZXJXaWR0aCcsIDkpXG4gICAgICAgIC5hdHRyKCdtYXJrZXJIZWlnaHQnLCA5KVxuICAgICAgICAuYXR0cignb3JpZW50JywgJ2F1dG8nKVxuICAgICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgICAgLmF0dHIoJ2QnLCAnTSAwIDAgTCAxMCA1IEwgMCAxMCB6JylcbiAgICAgICAgLnN0eWxlKCdmaWxsJywgb3B0aW9ucy5jb2xvciB8fCAnIzMzMycpO1xuICAgICAgXG4gICAgICBwYXRoLmF0dHIoJ21hcmtlci1lbmQnLCBgdXJsKCNhcnJvd2hlYWQtJHtzdmdJZH0pYCk7XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSB0aGUgRDNMaW5lIG9iamVjdCB3aXRoIEFQSSBzaW1pbGFyIHRvIExlYWRlckxpbmVcbiAgICBjb25zdCBkM0xpbmU6IEQzTGluZSA9IHtcbiAgICAgIHNvdXJjZTogc291cmNlRWxlbWVudCxcbiAgICAgIHRhcmdldDogdGFyZ2V0RWxlbWVudCxcbiAgICAgIHBhdGg6IHBhdGgsXG4gICAgICBzdmc6IHN2ZyxcbiAgICAgIFxuICAgICAgLy8gUG9zaXRpb24gbWV0aG9kIHRvIHVwZGF0ZSBsaW5lIGNvb3JkaW5hdGVzXG4gICAgICBwb3NpdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vIEdldCB1cGRhdGVkIHBvc2l0aW9uc1xuICAgICAgICBjb25zdCB1cGRhdGVkU291cmNlUmVjdCA9IHNvdXJjZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRUYXJnZXRSZWN0ID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIFxuICAgICAgICAvLyBTb3VyY2UgLSBhbHdheXMgY29ubmVjdCBmcm9tIHRoZSByaWdodCBlZGdlXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTb3VyY2VYID0gdXBkYXRlZFNvdXJjZVJlY3QucmlnaHQgLSB1cGRhdGVkQ29udGFpbmVyUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB1cGRhdGVkU291cmNlWSA9IHVwZGF0ZWRTb3VyY2VSZWN0LnRvcCArICh1cGRhdGVkU291cmNlUmVjdC5oZWlnaHQgLyAyKSAtIHVwZGF0ZWRDb250YWluZXJSZWN0LnRvcDtcbiAgICAgICAgXG4gICAgICAgIC8vIFRhcmdldCAtIGFsd2F5cyBjb25uZWN0IHRvIHRoZSBsZWZ0IGVkZ2VcbiAgICAgICAgY29uc3QgdXBkYXRlZFRhcmdldFggPSB1cGRhdGVkVGFyZ2V0UmVjdC5sZWZ0IC0gdXBkYXRlZENvbnRhaW5lclJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgdXBkYXRlZFRhcmdldFkgPSB1cGRhdGVkVGFyZ2V0UmVjdC50b3AgKyAodXBkYXRlZFRhcmdldFJlY3QuaGVpZ2h0IC8gMikgLSB1cGRhdGVkQ29udGFpbmVyUmVjdC50b3A7XG4gICAgICAgIFxuICAgICAgICAvLyBVcGRhdGUgcGF0aCB3aXRoIGdyaWQgcGF0aFxuICAgICAgICBjb25zdCBtaWRYID0gdXBkYXRlZFNvdXJjZVggKyAodXBkYXRlZFRhcmdldFggLSB1cGRhdGVkU291cmNlWCkgLyAyO1xuICAgICAgICBwYXRoLmF0dHIoJ2QnLCBgTSAke3VwZGF0ZWRTb3VyY2VYfSAke3VwZGF0ZWRTb3VyY2VZfSBMICR7bWlkWH0gJHt1cGRhdGVkU291cmNlWX0gTCAke21pZFh9ICR7dXBkYXRlZFRhcmdldFl9IEwgJHt1cGRhdGVkVGFyZ2V0WH0gJHt1cGRhdGVkVGFyZ2V0WX1gKVxuICAgICAgICAgICAgLnN0eWxlKCdzdHJva2UtZGFzaGFycmF5Jywgb3B0aW9ucy5kYXNoZWQgPyAnNSw1JyA6ICdub25lJylcbiAgICAgICAgICAgIC8vIEVuc3VyZSBtYXJrZXJzIGFyZSBwcmVzZXJ2ZWQgZHVyaW5nIHJlcG9zaXRpb25pbmdcbiAgICAgICAgICAgIC5hdHRyKCdtYXJrZXItc3RhcnQnLCBvcHRpb25zLnN0YXJ0UGx1ZyAhPT0gZmFsc2UgPyBgdXJsKCNzdGFydC1jaXJjbGUtJHtzdmdJZH0pYCA6IG51bGwpXG4gICAgICAgICAgICAuYXR0cignbWFya2VyLWVuZCcsIG9wdGlvbnMuZW5kUGx1ZyAhPT0gZmFsc2UgPyBgdXJsKCNhcnJvd2hlYWQtJHtzdmdJZH0pYCA6IG51bGwpO1xuICAgICAgfSxcbiAgICAgIFxuICAgICAgLy8gU2hvdyBtZXRob2Qgd2l0aCBhbmltYXRpb24gb3B0aW9uXG4gICAgICBzaG93OiBmdW5jdGlvbihhbmltYXRpb24gPSAnJykge1xuICAgICAgICBpZiAoYW5pbWF0aW9uID09PSAnZHJhdycpIHtcbiAgICAgICAgICAvLyBFbnN1cmUgdGhlIHBhdGggaGFzIGEgbm9kZSBiZWZvcmUgY2FsY3VsYXRpbmcgdG90YWwgbGVuZ3RoXG4gICAgICAgICAgY29uc3QgcGF0aE5vZGUgPSBwYXRoLm5vZGUoKTtcbiAgICAgICAgICBpZiAoIXBhdGhOb2RlKSByZXR1cm47XG4gICAgICAgICAgXG4gICAgICAgICAgY29uc3QgdG90YWxMZW5ndGggPSBwYXRoTm9kZS5nZXRUb3RhbExlbmd0aCgpO1xuICAgICAgICAgIFxuICAgICAgICAgIHBhdGguc3R5bGUoJ29wYWNpdHknLCAxKVxuICAgICAgICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNoYXJyYXknLCB0b3RhbExlbmd0aClcbiAgICAgICAgICAgIC5hdHRyKCdzdHJva2UtZGFzaG9mZnNldCcsIHRvdGFsTGVuZ3RoKVxuICAgICAgICAgICAgLnRyYW5zaXRpb24oKVxuICAgICAgICAgICAgLmR1cmF0aW9uKG9wdGlvbnMuYW5pbU9wdGlvbnM/LmR1cmF0aW9uIHx8IDIwMDApXG4gICAgICAgICAgICAuZWFzZShkMy5lYXNlTGluZWFyKVxuICAgICAgICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNob2Zmc2V0JywgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0aC5zdHlsZSgnb3BhY2l0eScsIDEpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXG4gICAgICAvLyBSZW1vdmUgbWV0aG9kXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICBzdmcucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICAvLyBJbW1lZGlhdGVseSBjYWxsIHNob3cgdG8gbWFrZSB0aGUgbGluZSB2aXNpYmxlXG4gICAgZDNMaW5lLnNob3cob3B0aW9ucy5hbmltYXRpb24pO1xuICAgIFxuICAgIHJldHVybiBkM0xpbmU7XG4gIH1cblxuICB1cGRhdGVDb25uZWN0b3JzTWFwKG1hcDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0b3JNYXAgPSBtYXA7XG4gIH1cblxuICBwb3NpdGlvbihsaW5lOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWxpbmUgfHwgIWxpbmUucG9zaXRpb24pIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmVsbVdyYXBwZXIuc3R5bGUudHJhbnNmb3JtID0gJ25vbmUnO1xuICAgIHZhciByZWN0V3JhcHBlciA9IHRoaXMuZWxtV3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAvLyBNb3ZlIHRvIHRoZSBvcmlnaW4gb2YgY29vcmRpbmF0ZXMgYXMgdGhlIGRvY3VtZW50XG4gICAgdGhpcy5lbG1XcmFwcGVyLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoJyArXG4gICAgICAoKHJlY3RXcmFwcGVyLmxlZnQgKyB3aW5kb3cucGFnZVhPZmZzZXQpICogLTEpICsgJ3B4LCAnICtcbiAgICAgICgocmVjdFdyYXBwZXIudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0KSAqIC0xKSArICdweCknO1xuICAgIFxuICAgIGxpbmUucG9zaXRpb24oKTtcbiAgfVxuXG4gIHJlbW92ZUFsbExpbmVzKCk6IHZvaWQge1xuICAgIGlmKHRoaXMuY29ubmVjdG9yTWFwKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNvbm5lY3Rvck1hcCkge1xuICAgICAgICAvLyBSZW1vdmUgYWxsIG4tMSBsaW5lcyBhbmQga2VlcCBvbmx5IGN1cnJlbnQgc2VsZWN0aW9uLCBhbHNvIGNsZWFyIG4rMSBsaW5lc1xuICAgICAgICBpZih0aGlzLmNvbm5lY3Rvck1hcFtrZXldICYmIHRoaXMuY29ubmVjdG9yTWFwW2tleV0ubGluZXMgJiYgdGhpcy5jb25uZWN0b3JNYXBba2V5XS5saW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLmNvbm5lY3Rvck1hcFtrZXldLmxpbmVzO1xuICAgICAgICAgIGxpbmVzLmZvckVhY2goYXN5bmMgKGVsZW1lbnQ6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBhd2FpdCBlbGVtZW50LmxpbmUgJiYgZWxlbWVudC5saW5lLnJlbW92ZSgpO1xuICAgICAgICAgICAgICBsaW5lcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY29ubmVjdG9yTWFwW2tleV0ubGluZXMgPSBsaW5lcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB0byByZXNldCBjb25uZWN0b3IgbWFwIGFmdGVyIGNsZWFyaW5nIGFsbCB0aGUgbGluZXNcbiAgICB0aGlzLnVwZGF0ZUNvbm5lY3RvcnNNYXAoe30pO1xuICB9XG5cbiAgcmVwb3NpdGlvbkFsbExpbmVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rvck1hcCkge1xuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmNvbm5lY3Rvck1hcCkuZm9yRWFjaCgoY29ubmVjdG9yOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGNvbm5lY3RvciAmJiBjb25uZWN0b3IubGluZXMpIHtcbiAgICAgICAgICBjb25uZWN0b3IubGluZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5saW5lICYmIHR5cGVvZiBpdGVtLmxpbmUucG9zaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgaXRlbS5saW5lLnBvc2l0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9zZXJ2aWNlcy9jb25uZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQzs7QUFpQnpCLE1BQ2EsZ0JBQWdCO0lBSzNCO1FBSkEsaUJBQVksR0FBeUIsRUFBRSxDQUFDO1FBRXhDLHNCQUFpQixHQUFHLG9CQUFvQixDQUFDO0lBR3pDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxVQUFlLGFBQWEsRUFBRSxvQkFBeUIsU0FBUyxFQUFFLG9CQUF5QixTQUFTO1FBQ3RJLE1BQU0sUUFBUSxHQUFRLEVBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxPQUFPLEVBQUMsQ0FBQztRQUNyRCxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixJQUFJLGFBQWEsR0FBbUIsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1RCxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUNqQixNQUFNLEVBQUUsT0FBTztvQkFDZixJQUFJLEVBQUUsUUFBUTtpQkFDZixDQUFDLENBQUM7Z0JBRUgsSUFBRyxpQkFBaUIsRUFBRTtvQkFDcEIsTUFB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Q29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmYXVsdENvbmZpZyB9IGZyb20gJy4uL2NvbnN0YW50cy9hcHAtY29uc3RhbnQnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuXG5pbnRlcmZhY2UgQ29ubmVjdGVkRG90IHtcbiAgdGFyZ2V0OiBhbnk7XG4gIGxpbmU6IGFueTtcbn1cblxuaW50ZXJmYWNlIEQzTGluZSB7XG4gIHNvdXJjZTogYW55O1xuICB0YXJnZXQ6IGFueTtcbiAgcGF0aDogYW55O1xuICBzdmc6IGFueTtcbiAgcG9zaXRpb246ICgpID0+IHZvaWQ7XG4gIHNob3c6IChhbmltYXRpb24/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHJlbW92ZTogKCkgPT4gdm9pZDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbm5lY3RvclNlcnZpY2Uge1xuICBjb25uZWN0b3JNYXA6IHtba2V5OiBzdHJpbmddOiBhbnl9ID0ge307XG4gIGVsbVdyYXBwZXI6IGFueTtcbiAgY29udGFpbmVyU2VsZWN0b3IgPSAnI3RyZWVWaWV3Q29udGFpbmVyJzsgLy8gWW91IG1pZ2h0IG5lZWQgdG8gYWRqdXN0IHRoaXMgc2VsZWN0b3JcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIF9kcmF3TGluZShzb3VyY2U6IGFueSwgdGFyZ2V0OiBhbnksIG9wdGlvbnM6IGFueSA9IGRlZmF1bHRDb25maWcsIHNvdXJjZUNvbnRhaW5lcklkOiBhbnkgPSB1bmRlZmluZWQsIHRhcmdldENvbnRhaW5lcklkOiBhbnkgPSB1bmRlZmluZWQpOiBhbnkge1xuICAgIGNvbnN0IF9vcHRpb25zID0gPGFueT57Li4uZGVmYXVsdENvbmZpZywgLi4ub3B0aW9uc307XG4gICAgX29wdGlvbnNbJ2Rhc2hlZCddID0gdHJ1ZVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICAgIGxldCBjb25uZWN0ZWREb3RzOiBDb25uZWN0ZWREb3RbXSA9IFtdO1xuICAgICAgdGFyZ2V0LmZvckVhY2goKF90YXJnZXQpID0+IHtcbiAgICAgICAgY29uc3QgdGVtcExpbmUgPSB0aGlzLnJlbmRlckxpbmUoc291cmNlLCBfdGFyZ2V0LCBfb3B0aW9ucyk7XG4gICAgICAgIGNvbm5lY3RlZERvdHMucHVzaCh7XG4gICAgICAgICAgdGFyZ2V0OiBfdGFyZ2V0LFxuICAgICAgICAgIGxpbmU6IHRlbXBMaW5lXG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgaWYoc291cmNlQ29udGFpbmVySWQpIHtcbiAgICAgICAgICBjb25zdCBzb3VyY2VDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNvdXJjZUNvbnRhaW5lcklkKTtcbiAgICAgICAgICBpZiAoc291cmNlQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBzb3VyY2VDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRlbXBMaW5lICYmIHRlbXBMaW5lLnBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgICAgIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHRhcmdldENvbnRhaW5lcklkKSB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0Q29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXRDb250YWluZXJJZCk7XG4gICAgICAgICAgaWYgKHRhcmdldENvbnRhaW5lcikge1xuICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0ZW1wTGluZSAmJiB0ZW1wTGluZS5wb3NpdGlvbigpO1xuICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBFcnJvciBoYW5kbGluZ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvbm5lY3RlZERvdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckxpbmUoc291cmNlLCB0YXJnZXQsIF9vcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckxpbmUoc291cmNlOiBhbnksIHRhcmdldDogYW55LCBvcHRpb25zOiBhbnkpOiBEM0xpbmUge1xuICAgIC8vIEZpbmQgb3IgY3JlYXRlIHRoZSBjb250YWluZXIgZWxlbWVudFxuICAgIGNvbnN0IHRyZWVWaWV3Q29tcG9uZW50OiBhbnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuY29udGFpbmVyU2VsZWN0b3IpO1xuICAgIGlmICghdHJlZVZpZXdDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogbnVsbCxcbiAgICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgICBwYXRoOiBudWxsLFxuICAgICAgICBzdmc6IG51bGwsXG4gICAgICAgIHBvc2l0aW9uOiAoKSA9PiB7fSxcbiAgICAgICAgc2hvdzogKCkgPT4ge30sXG4gICAgICAgIHJlbW92ZTogKCkgPT4ge31cbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSBvciBnZXQgY29udGFpbmVyIGZvciB0aGUgU1ZHXG4gICAgbGV0IGNvbnRhaW5lcjogYW55ID0gdHJlZVZpZXdDb21wb25lbnQucXVlcnlTZWxlY3RvcignI2xlYWRlci1saW5lLWNvbnRhaW5lcicpO1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICAvLyBDcmVhdGUgYSB3cmFwcGVyIGNvbnRhaW5lciB0byBjb250cm9sIHRoZSBvdmVyZmxvdyBhdCB0aGUgdG9wXG4gICAgICBsZXQgb3ZlcmZsb3dXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBvdmVyZmxvd1dyYXBwZXIuaWQgPSAnbGVhZGVyLWxpbmUtb3ZlcmZsb3ctd3JhcHBlcic7XG4gICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgb3ZlcmZsb3dXcmFwcGVyLnN0eWxlLnRvcCA9ICc4MHB4JzsgLy8gU2FtZSB0b3AgcG9zaXRpb25cbiAgICAgIG92ZXJmbG93V3JhcHBlci5zdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgIG92ZXJmbG93V3JhcHBlci5zdHlsZS5yaWdodCA9ICcwJztcbiAgICAgIG92ZXJmbG93V3JhcHBlci5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOyAvLyBIaWRlIGFueXRoaW5nIGFib3ZlIHRoaXMgY29udGFpbmVyXG4gICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJzsgLy8gQWxsb3cgY2xpY2tzIHRvIHBhc3MgdGhyb3VnaFxuICAgICAgXG4gICAgICAvLyBPcmlnaW5hbCBjb250YWluZXIgcmVtYWlucyB0aGUgc2FtZSBidXQgcG9zaXRpb25lZCBhdCB0b3A6MCB3aXRoaW4gdGhlIHdyYXBwZXJcbiAgICAgIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY29udGFpbmVyLmlkID0gJ2xlYWRlci1saW5lLWNvbnRhaW5lcic7XG4gICAgICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgY29udGFpbmVyLnN0eWxlLnRvcCA9ICcwJzsgLy8gQ2hhbmdlZCB0byAwIGFzIGl0J3Mgbm93IHJlbGF0aXZlIHRvIHdyYXBwZXJcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICBjb250YWluZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5yaWdodCA9ICcwJztcbiAgICAgIGNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICBcbiAgICAgIC8vIEFkZCByZXNpemUgb2JzZXJ2ZXIgdG8gZHluYW1pY2FsbHkgYWRqdXN0IGNvbnRhaW5lciB3aWR0aFxuICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZW50cmllcyA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgIGlmIChlbnRyeS50YXJnZXQgPT09IHRyZWVWaWV3Q29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSBgJHtlbnRyeS5jb250ZW50UmVjdC53aWR0aH1weGA7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIFJlcG9zaXRpb24gYWxsIGxpbmVzIHdoZW4gY29udGFpbmVyIHJlc2l6ZXNcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbm5lY3Rvck1hcCkge1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKHRoaXMuY29ubmVjdG9yTWFwKS5mb3JFYWNoKChjb25uZWN0b3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb25uZWN0b3IgJiYgY29ubmVjdG9yLmxpbmVzKSB7XG4gICAgICAgICAgICAgICAgICBjb25uZWN0b3IubGluZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmxpbmUgJiYgdHlwZW9mIGl0ZW0ubGluZS5wb3NpdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubGluZS5wb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyB0aGUgdHJlZVZpZXdDb21wb25lbnRcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodHJlZVZpZXdDb21wb25lbnQpO1xuICAgICAgXG4gICAgICAvLyBBbHNvIGxpc3RlbiBmb3Igc2Nyb2xsIGV2ZW50cyB0byByZXBvc2l0aW9uIGxpbmVzXG4gICAgICB0cmVlVmlld0NvbXBvbmVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSBjb250YWluZXIgZGltZW5zaW9ucyBiYXNlZCBvbiB2aXNpYmxlIGFyZWFcbiAgICAgICAgb3ZlcmZsb3dXcmFwcGVyLnN0eWxlLndpZHRoID0gYCR7dHJlZVZpZXdDb21wb25lbnQuc2Nyb2xsV2lkdGh9cHhgO1xuICAgICAgICBvdmVyZmxvd1dyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gYCR7dHJlZVZpZXdDb21wb25lbnQuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlcG9zaXRpb24gYWxsIGFjdGl2ZSBsaW5lc1xuICAgICAgICB0aGlzLnJlcG9zaXRpb25BbGxMaW5lcygpO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAgIG92ZXJmbG93V3JhcHBlci5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgICAgdHJlZVZpZXdDb21wb25lbnQuYXBwZW5kQ2hpbGQob3ZlcmZsb3dXcmFwcGVyKTtcbiAgICB9XG4gICAgXG4gICAgLy8gU3RvcmUgY29udGFpbmVyIHJlZmVyZW5jZSBmb3IgYWNjZXNzIGluIG90aGVyIG1ldGhvZHNcbiAgICB0aGlzLmVsbVdyYXBwZXIgPSBjb250YWluZXI7XG4gICAgXG4gICAgLy8gR2V0IHRoZSBzb3VyY2UgYW5kIHRhcmdldCBlbGVtZW50c1xuICAgIGxldCBzb3VyY2VFbGVtZW50ID0gc291cmNlO1xuICAgIGxldCB0YXJnZXRFbGVtZW50OiBhbnk7XG4gICAgXG4gICAgaWYgKHRhcmdldC50YXJnZXRUeXBlID09PSAnaWQnKSB7XG4gICAgICB0YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0LnRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldEVsZW1lbnQgPSB0YXJnZXQudGFyZ2V0O1xuICAgIH1cbiAgICBcbiAgICAvLyBFbnN1cmUgYm90aCBlbGVtZW50cyBleGlzdFxuICAgIGlmICghc291cmNlRWxlbWVudCB8fCAhdGFyZ2V0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc291cmNlOiBudWxsLFxuICAgICAgICB0YXJnZXQ6IG51bGwsXG4gICAgICAgIHBhdGg6IG51bGwsXG4gICAgICAgIHN2ZzogbnVsbCxcbiAgICAgICAgcG9zaXRpb246ICgpID0+IHt9LFxuICAgICAgICBzaG93OiAoKSA9PiB7fSxcbiAgICAgICAgcmVtb3ZlOiAoKSA9PiB7fVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ3JlYXRlIGEgdW5pcXVlIElEIGZvciB0aGUgU1ZHXG4gICAgY29uc3Qgc3ZnSWQgPSAnZDMtbGluZS0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBTVkcgZWxlbWVudFxuICAgIGNvbnN0IHN2ZyA9IGQzLnNlbGVjdChjb250YWluZXIpXG4gICAgICAuYXBwZW5kKCdzdmcnKVxuICAgICAgLmF0dHIoJ2lkJywgc3ZnSWQpXG4gICAgICAuYXR0cignY2xhc3MnLCAnbGVhZGVyLWxpbmUnKVxuICAgICAgLnN0eWxlKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpXG4gICAgICAuc3R5bGUoJ3RvcCcsICcwJylcbiAgICAgIC5zdHlsZSgnbGVmdCcsICcwJylcbiAgICAgIC5zdHlsZSgnd2lkdGgnLCAnMTAwJScpXG4gICAgICAuc3R5bGUoJ2hlaWdodCcsICcxMDAlJylcbiAgICAgIC5zdHlsZSgncG9pbnRlci1ldmVudHMnLCAnbm9uZScpXG4gICAgICAuc3R5bGUoJ292ZXJmbG93JywgJ3Zpc2libGUnKTtcbiAgICBcbiAgICAvLyBDYWxjdWxhdGUgcG9zaXRpb25zXG4gICAgY29uc3Qgc291cmNlUmVjdCA9IHNvdXJjZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdGFyZ2V0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBcbiAgICAvLyBEZXRlcm1pbmUgZWRnZSBjb25uZWN0aW9uIHBvaW50cyAtIGFsd2F5cyByaWdodCB0byBsZWZ0XG4gICAgbGV0IHNvdXJjZVgsIHNvdXJjZVksIHRhcmdldFgsIHRhcmdldFk7XG5cbiAgICAvLyBTb3VyY2UgLSBhbHdheXMgY29ubmVjdCBmcm9tIHRoZSByaWdodCBlZGdlXG4gICAgc291cmNlWCA9IHNvdXJjZVJlY3QucmlnaHQgLSBjb250YWluZXJSZWN0LmxlZnQ7XG4gICAgc291cmNlWSA9IHNvdXJjZVJlY3QudG9wICsgKHNvdXJjZVJlY3QuaGVpZ2h0IC8gMikgLSBjb250YWluZXJSZWN0LnRvcDtcblxuICAgIC8vIFRhcmdldCAtIGFsd2F5cyBjb25uZWN0IHRvIHRoZSBsZWZ0IGVkZ2VcbiAgICB0YXJnZXRYID0gdGFyZ2V0UmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICAgIHRhcmdldFkgPSB0YXJnZXRSZWN0LnRvcCArICh0YXJnZXRSZWN0LmhlaWdodCAvIDIpIC0gY29udGFpbmVyUmVjdC50b3A7XG4gICAgXG4gICAgLy8gQ3JlYXRlIGxpbmUgd2l0aCBpbml0aWFsIG9wYWNpdHkgMSAodmlzaWJsZSBpbW1lZGlhdGVseSlcbiAgICAvLyBJbnN0ZWFkIG9mIGEgc3RyYWlnaHQgbGluZSwgY3JlYXRlIGEgZ3JpZCBsaW5lIHdpdGggcmlnaHQgYW5nbGVzXG4gICAgY29uc3QgcGF0aDogYW55ID0gc3ZnLmFwcGVuZCgncGF0aCcpXG4gICAgICAuYXR0cignZCcsIGNyZWF0ZUdyaWRQYXRoKHNvdXJjZVgsIHNvdXJjZVksIHRhcmdldFgsIHRhcmdldFkpKVxuICAgICAgLnN0eWxlKCdzdHJva2UnLCAnIzAwMCcpIC8vIERhcmtlciBjb2xvciBmb3IgYmV0dGVyIHZpc2liaWxpdHlcbiAgICAgIC5zdHlsZSgnc3Ryb2tlLXdpZHRoJywgb3B0aW9ucy5zaXplIHx8IDIpXG4gICAgICAuc3R5bGUoJ2ZpbGwnLCAnbm9uZScpXG4gICAgICAuc3R5bGUoJ29wYWNpdHknLCAxKSAvLyBTdGFydCB2aXNpYmxlXG4gICAgICAuc3R5bGUoJ3N0cm9rZS1saW5lam9pbicsICdyb3VuZCcpIC8vIFJvdW5kIGNvcm5lcnMgZm9yIGEgc21vb3RoZXIgbG9va1xuICAgICAgLnN0eWxlKCdzdHJva2UtZGFzaGFycmF5Jywgb3B0aW9ucy5kYXNoZWQgPyAnNSw1JyA6ICdub25lJyk7IC8vIEFkZCBkYXNoZWQgc3R5bGUgaWYgc3BlY2lmaWVkXG4gICAgXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGdyaWQgcGF0aFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUdyaWRQYXRoKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWlkcG9pbnQgb24gdGhlIHgtYXhpc1xuICAgICAgY29uc3QgbWlkWCA9IHgxICsgKHgyIC0geDEpIC8gMjtcbiAgICAgIFxuICAgICAgLy8gQ3JlYXRlIGEgcGF0aCB3aXRoIDMgc2VnbWVudHMgKGhvcml6b250YWwsIHZlcnRpY2FsLCBob3Jpem9udGFsKVxuICAgICAgcmV0dXJuIGBNICR7eDF9ICR7eTF9IEwgJHttaWRYfSAke3kxfSBMICR7bWlkWH0gJHt5Mn0gTCAke3gyfSAke3kyfWA7XG4gICAgfVxuICBcbiAgICAvLyBEZWZpbmUgbWFya2VycyAoZGlzayBhdCBzdGFydCBhbmQgYXJyb3cgYXQgZW5kKVxuICAgIGNvbnN0IGRlZnMgPSBzdmcuYXBwZW5kKCdkZWZzJyk7XG4gICAgXG4gICAgLy8gQWRkIHN0YXJ0IG1hcmtlciAoZGlzay9jaXJjbGUpXG4gICAgaWYgKG9wdGlvbnMuc3RhcnRQbHVnID09PSAnZGlzYycgfHwgb3B0aW9ucy5zdGFydFBsdWcgIT09IGZhbHNlKSB7XG4gICAgICBkZWZzLmFwcGVuZCgnbWFya2VyJylcbiAgICAgICAgLmF0dHIoJ2lkJywgYHN0YXJ0LWNpcmNsZS0ke3N2Z0lkfWApXG4gICAgICAgIC5hdHRyKCd2aWV3Qm94JywgJzAgMCAxMCAxMCcpXG4gICAgICAgIC5hdHRyKCdyZWZYJywgNSlcbiAgICAgICAgLmF0dHIoJ3JlZlknLCA1KVxuICAgICAgICAuYXR0cignbWFya2VyV2lkdGgnLCA4KVxuICAgICAgICAuYXR0cignbWFya2VySGVpZ2h0JywgOClcbiAgICAgICAgLmF0dHIoJ29yaWVudCcsICdhdXRvJylcbiAgICAgICAgLmFwcGVuZCgnY2lyY2xlJylcbiAgICAgICAgLmF0dHIoJ2N4JywgNSlcbiAgICAgICAgLmF0dHIoJ2N5JywgNSlcbiAgICAgICAgLmF0dHIoJ3InLCA0LjUpXG4gICAgICAgIC5zdHlsZSgnZmlsbCcsIG9wdGlvbnMuY29sb3IgfHwgJyMzMzMnKTtcbiAgICAgIFxuICAgICAgcGF0aC5hdHRyKCdtYXJrZXItc3RhcnQnLCBgdXJsKCNzdGFydC1jaXJjbGUtJHtzdmdJZH0pYCk7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkZCBlbmQgbWFya2VyIChhcnJvdylcbiAgICBpZiAob3B0aW9ucy5lbmRQbHVnID09PSAnYXJyb3cnIHx8IG9wdGlvbnMuZW5kUGx1ZyAhPT0gZmFsc2UpIHtcbiAgICAgIGRlZnMuYXBwZW5kKCdtYXJrZXInKVxuICAgICAgICAuYXR0cignaWQnLCBgYXJyb3doZWFkLSR7c3ZnSWR9YClcbiAgICAgICAgLmF0dHIoJ3ZpZXdCb3gnLCAnMCAwIDEwIDEwJylcbiAgICAgICAgLmF0dHIoJ3JlZlgnLCA4KSAgXG4gICAgICAgIC5hdHRyKCdyZWZZJywgNSlcbiAgICAgICAgLmF0dHIoJ21hcmtlcldpZHRoJywgOSlcbiAgICAgICAgLmF0dHIoJ21hcmtlckhlaWdodCcsIDkpXG4gICAgICAgIC5hdHRyKCdvcmllbnQnLCAnYXV0bycpXG4gICAgICAgIC5hcHBlbmQoJ3BhdGgnKVxuICAgICAgICAuYXR0cignZCcsICdNIDAgMCBMIDEwIDUgTCAwIDEwIHonKVxuICAgICAgICAuc3R5bGUoJ2ZpbGwnLCBvcHRpb25zLmNvbG9yIHx8ICcjMzMzJyk7XG4gICAgICBcbiAgICAgIHBhdGguYXR0cignbWFya2VyLWVuZCcsIGB1cmwoI2Fycm93aGVhZC0ke3N2Z0lkfSlgKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ3JlYXRlIHRoZSBEM0xpbmUgb2JqZWN0IHdpdGggQVBJIHNpbWlsYXIgdG8gTGVhZGVyTGluZVxuICAgIGNvbnN0IGQzTGluZTogRDNMaW5lID0ge1xuICAgICAgc291cmNlOiBzb3VyY2VFbGVtZW50LFxuICAgICAgdGFyZ2V0OiB0YXJnZXRFbGVtZW50LFxuICAgICAgcGF0aDogcGF0aCxcbiAgICAgIHN2Zzogc3ZnLFxuICAgICAgXG4gICAgICAvLyBQb3NpdGlvbiBtZXRob2QgdG8gdXBkYXRlIGxpbmUgY29vcmRpbmF0ZXNcbiAgICAgIHBvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gR2V0IHVwZGF0ZWQgcG9zaXRpb25zXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTb3VyY2VSZWN0ID0gc291cmNlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZFRhcmdldFJlY3QgPSB0YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB1cGRhdGVkQ29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFNvdXJjZSAtIGFsd2F5cyBjb25uZWN0IGZyb20gdGhlIHJpZ2h0IGVkZ2VcbiAgICAgICAgY29uc3QgdXBkYXRlZFNvdXJjZVggPSB1cGRhdGVkU291cmNlUmVjdC5yaWdodCAtIHVwZGF0ZWRDb250YWluZXJSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTb3VyY2VZID0gdXBkYXRlZFNvdXJjZVJlY3QudG9wICsgKHVwZGF0ZWRTb3VyY2VSZWN0LmhlaWdodCAvIDIpIC0gdXBkYXRlZENvbnRhaW5lclJlY3QudG9wO1xuICAgICAgICBcbiAgICAgICAgLy8gVGFyZ2V0IC0gYWx3YXlzIGNvbm5lY3QgdG8gdGhlIGxlZnQgZWRnZVxuICAgICAgICBjb25zdCB1cGRhdGVkVGFyZ2V0WCA9IHVwZGF0ZWRUYXJnZXRSZWN0LmxlZnQgLSB1cGRhdGVkQ29udGFpbmVyUmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCB1cGRhdGVkVGFyZ2V0WSA9IHVwZGF0ZWRUYXJnZXRSZWN0LnRvcCArICh1cGRhdGVkVGFyZ2V0UmVjdC5oZWlnaHQgLyAyKSAtIHVwZGF0ZWRDb250YWluZXJSZWN0LnRvcDtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwZGF0ZSBwYXRoIHdpdGggZ3JpZCBwYXRoXG4gICAgICAgIGNvbnN0IG1pZFggPSB1cGRhdGVkU291cmNlWCArICh1cGRhdGVkVGFyZ2V0WCAtIHVwZGF0ZWRTb3VyY2VYKSAvIDI7XG4gICAgICAgIHBhdGguYXR0cignZCcsIGBNICR7dXBkYXRlZFNvdXJjZVh9ICR7dXBkYXRlZFNvdXJjZVl9IEwgJHttaWRYfSAke3VwZGF0ZWRTb3VyY2VZfSBMICR7bWlkWH0gJHt1cGRhdGVkVGFyZ2V0WX0gTCAke3VwZGF0ZWRUYXJnZXRYfSAke3VwZGF0ZWRUYXJnZXRZfWApXG4gICAgICAgICAgICAuc3R5bGUoJ3N0cm9rZS1kYXNoYXJyYXknLCBvcHRpb25zLmRhc2hlZCA/ICc1LDUnIDogJ25vbmUnKVxuICAgICAgICAgICAgLy8gRW5zdXJlIG1hcmtlcnMgYXJlIHByZXNlcnZlZCBkdXJpbmcgcmVwb3NpdGlvbmluZ1xuICAgICAgICAgICAgLmF0dHIoJ21hcmtlci1zdGFydCcsIG9wdGlvbnMuc3RhcnRQbHVnICE9PSBmYWxzZSA/IGB1cmwoI3N0YXJ0LWNpcmNsZS0ke3N2Z0lkfSlgIDogbnVsbClcbiAgICAgICAgICAgIC5hdHRyKCdtYXJrZXItZW5kJywgb3B0aW9ucy5lbmRQbHVnICE9PSBmYWxzZSA/IGB1cmwoI2Fycm93aGVhZC0ke3N2Z0lkfSlgIDogbnVsbCk7XG4gICAgICB9LFxuICAgICAgXG4gICAgICAvLyBTaG93IG1ldGhvZCB3aXRoIGFuaW1hdGlvbiBvcHRpb25cbiAgICAgIHNob3c6IGZ1bmN0aW9uKGFuaW1hdGlvbiA9ICcnKSB7XG4gICAgICAgIGlmIChhbmltYXRpb24gPT09ICdkcmF3Jykge1xuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgcGF0aCBoYXMgYSBub2RlIGJlZm9yZSBjYWxjdWxhdGluZyB0b3RhbCBsZW5ndGhcbiAgICAgICAgICBjb25zdCBwYXRoTm9kZSA9IHBhdGgubm9kZSgpO1xuICAgICAgICAgIGlmICghcGF0aE5vZGUpIHJldHVybjtcbiAgICAgICAgICBcbiAgICAgICAgICBjb25zdCB0b3RhbExlbmd0aCA9IHBhdGhOb2RlLmdldFRvdGFsTGVuZ3RoKCk7XG4gICAgICAgICAgXG4gICAgICAgICAgcGF0aC5zdHlsZSgnb3BhY2l0eScsIDEpXG4gICAgICAgICAgICAuYXR0cignc3Ryb2tlLWRhc2hhcnJheScsIHRvdGFsTGVuZ3RoKVxuICAgICAgICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNob2Zmc2V0JywgdG90YWxMZW5ndGgpXG4gICAgICAgICAgICAudHJhbnNpdGlvbigpXG4gICAgICAgICAgICAuZHVyYXRpb24ob3B0aW9ucy5hbmltT3B0aW9ucz8uZHVyYXRpb24gfHwgMjAwMClcbiAgICAgICAgICAgIC5lYXNlKGQzLmVhc2VMaW5lYXIpXG4gICAgICAgICAgICAuYXR0cignc3Ryb2tlLWRhc2hvZmZzZXQnLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXRoLnN0eWxlKCdvcGFjaXR5JywgMSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcbiAgICAgIC8vIFJlbW92ZSBtZXRob2RcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHN2Zy5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFxuICAgIC8vIEltbWVkaWF0ZWx5IGNhbGwgc2hvdyB0byBtYWtlIHRoZSBsaW5lIHZpc2libGVcbiAgICBkM0xpbmUuc2hvdyhvcHRpb25zLmFuaW1hdGlvbik7XG4gICAgXG4gICAgcmV0dXJuIGQzTGluZTtcbiAgfVxuXG4gIHVwZGF0ZUNvbm5lY3RvcnNNYXAobWFwOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3Rvck1hcCA9IG1hcDtcbiAgfVxuXG4gIHBvc2l0aW9uKGxpbmU6IGFueSk6IHZvaWQge1xuICAgIGlmICghbGluZSB8fCAhbGluZS5wb3NpdGlvbikgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuZWxtV3JhcHBlci5zdHlsZS50cmFuc2Zvcm0gPSAnbm9uZSc7XG4gICAgdmFyIHJlY3RXcmFwcGVyID0gdGhpcy5lbG1XcmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIC8vIE1vdmUgdG8gdGhlIG9yaWdpbiBvZiBjb29yZGluYXRlcyBhcyB0aGUgZG9jdW1lbnRcbiAgICB0aGlzLmVsbVdyYXBwZXIuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgnICtcbiAgICAgICgocmVjdFdyYXBwZXIubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCkgKiAtMSkgKyAncHgsICcgK1xuICAgICAgKChyZWN0V3JhcHBlci50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQpICogLTEpICsgJ3B4KSc7XG4gICAgXG4gICAgbGluZS5wb3NpdGlvbigpO1xuICB9XG5cbiAgcmVtb3ZlQWxsTGluZXMoKTogdm9pZCB7XG4gICAgaWYodGhpcy5jb25uZWN0b3JNYXApIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29ubmVjdG9yTWFwKSB7XG4gICAgICAgIC8vIFJlbW92ZSBhbGwgbi0xIGxpbmVzIGFuZCBrZWVwIG9ubHkgY3VycmVudCBzZWxlY3Rpb24sIGFsc28gY2xlYXIgbisxIGxpbmVzXG4gICAgICAgIGlmKHRoaXMuY29ubmVjdG9yTWFwW2tleV0gJiYgdGhpcy5jb25uZWN0b3JNYXBba2V5XS5saW5lcyAmJiB0aGlzLmNvbm5lY3Rvck1hcFtrZXldLmxpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IHRoaXMuY29ubmVjdG9yTWFwW2tleV0ubGluZXM7XG4gICAgICAgICAgbGluZXMuZm9yRWFjaChhc3luYyAoZWxlbWVudDogYW55LCBpbmRleDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGF3YWl0IGVsZW1lbnQubGluZSAmJiBlbGVtZW50LmxpbmUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgIGxpbmVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jb25uZWN0b3JNYXBba2V5XS5saW5lcyA9IGxpbmVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHRvIHJlc2V0IGNvbm5lY3RvciBtYXAgYWZ0ZXIgY2xlYXJpbmcgYWxsIHRoZSBsaW5lc1xuICAgIHRoaXMudXBkYXRlQ29ubmVjdG9yc01hcCh7fSk7XG4gIH1cblxuICByZXBvc2l0aW9uQWxsTGluZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29ubmVjdG9yTWFwKSB7XG4gICAgICBPYmplY3QudmFsdWVzKHRoaXMuY29ubmVjdG9yTWFwKS5mb3JFYWNoKChjb25uZWN0b3I6IGFueSkgPT4ge1xuICAgICAgICBpZiAoY29ubmVjdG9yICYmIGNvbm5lY3Rvci5saW5lcykge1xuICAgICAgICAgIGNvbm5lY3Rvci5saW5lcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmxpbmUgJiYgdHlwZW9mIGl0ZW0ubGluZS5wb3NpdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBpdGVtLmxpbmUucG9zaXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59Il19
|