@unifylib/ui-lib 1.2.16 → 1.2.17
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/cli/client-app-component-guide.md +166 -166
- package/cli/generators/dashboard.js +147 -147
- package/cli/generators/form-screen.js +95 -95
- package/cli/generators/line-editor.js +110 -110
- package/cli/generators/permission-matrix.js +115 -115
- package/cli/generators/section-form.js +103 -103
- package/cli/generators/table-screen.js +181 -181
- package/cli/index.js +185 -185
- package/cli/utils.js +228 -228
- package/esm2022/iq-ui-lib.mjs +5 -0
- package/esm2022/lib/base-model/SearchStrConfig.mjs +1 -1
- package/esm2022/lib/base-model/api-response.mjs +1 -1
- package/esm2022/lib/base-model/audit-log-entry.mjs +1 -1
- package/esm2022/lib/base-model/button-action-settings.mjs +1 -1
- package/esm2022/lib/base-model/column-def.model.mjs +1 -1
- package/esm2022/lib/base-model/do-action-request.mjs +1 -1
- package/esm2022/lib/base-model/field-action.mjs +1 -1
- package/esm2022/lib/base-model/field-filter.model.mjs +1 -1
- package/esm2022/lib/base-model/field-info.mjs +1 -1
- package/esm2022/lib/base-model/field-predicate.model.mjs +1 -1
- package/esm2022/lib/base-model/filter-request.mjs +1 -1
- package/esm2022/lib/base-model/filter.model.mjs +1 -1
- package/esm2022/lib/base-model/get-items-list.mjs +1 -1
- package/esm2022/lib/base-model/index.mjs +1 -1
- package/esm2022/lib/base-model/items-total.model.mjs +1 -1
- package/esm2022/lib/base-model/line-item.model.mjs +1 -1
- package/esm2022/lib/base-model/lookupItem.mjs +1 -1
- package/esm2022/lib/base-model/page-info.mjs +1 -1
- package/esm2022/lib/base-model/permission-matrix.model.mjs +1 -1
- package/esm2022/lib/base-model/report-request.model.mjs +1 -1
- package/esm2022/lib/base-model/response-envelop.model.mjs +1 -1
- package/esm2022/lib/base-model/snack-message.model.mjs +1 -1
- package/esm2022/lib/base-model/table-column.interface.mjs +1 -1
- package/esm2022/lib/base-model/table-page-user-action.interface.mjs +1 -1
- package/esm2022/lib/base-model/workflow/workflow-steps.model.mjs +1 -1
- package/esm2022/lib/base-model/workflow/workflow.model.mjs +1 -1
- package/esm2022/lib/components/action-comment/action-comment.component.mjs +3 -3
- package/esm2022/lib/components/action-confirmation/action-confirmation.component.mjs +3 -3
- package/esm2022/lib/components/activity-report-form/activity-report-form.component.mjs +3 -3
- package/esm2022/lib/components/advanced-filter/field-filter/field-filter.component.mjs +3 -3
- package/esm2022/lib/components/advanced-filter/filter-builder/filter-builder.component.mjs +3 -3
- package/esm2022/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.mjs +3 -3
- package/esm2022/lib/components/auto-complete/auto-complete.component.mjs +3 -3
- package/esm2022/lib/components/base-form/base-form.component.mjs +3 -3
- package/esm2022/lib/components/base-form-canvas/MaxDigitsDirective.mjs +1 -1
- package/esm2022/lib/components/base-form-canvas/NumbersOnlyDirective.mjs +1 -1
- package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +3 -3
- package/esm2022/lib/components/base-input-dialog/base-input-dialog.component.mjs +3 -3
- package/esm2022/lib/components/base-table/base-table.component.mjs +3 -3
- package/esm2022/lib/components/button-actions/button-actions.component.mjs +3 -3
- package/esm2022/lib/components/editable-base-table/editable-base-table.component.mjs +3 -3
- package/esm2022/lib/components/equation-builder/equation-builder.component.mjs +3 -3
- package/esm2022/lib/components/item-line-editor/item-line-editor.component.mjs +3 -3
- package/esm2022/lib/components/multi-auto-complete/multi-auto-complete.component.mjs +3 -3
- package/esm2022/lib/components/paginator/paginator.component.mjs +3 -3
- package/esm2022/lib/components/permission-matrix/permission-matrix.component.mjs +3 -3
- package/esm2022/lib/components/report-details-dialog/report-details-dialog.component.mjs +3 -3
- package/esm2022/lib/components/report-form/report-form.component.mjs +3 -3
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/components/section-form-canvas/section-form-canvas.component.mjs +3 -3
- package/esm2022/lib/components/shared/action-button/action-button.component.mjs +3 -3
- package/esm2022/lib/components/shared/action-card/action-card.component.mjs +3 -3
- package/esm2022/lib/components/shared/attachment-uploader/attachment-uploader.component.mjs +3 -3
- package/esm2022/lib/components/shared-list/shared-list.component.mjs +3 -3
- package/esm2022/lib/components/snackbar-static/snackbar-static.component.mjs +3 -3
- package/esm2022/lib/components/title-bar/title-bar.component.mjs +3 -3
- package/esm2022/lib/directives/phone-number-only.directive.mjs +1 -1
- package/esm2022/lib/services/backend-service.mjs +1 -1
- package/esm2022/lib/services/index.mjs +1 -1
- package/esm2022/lib/services/top-panel.mjs +1 -1
- package/esm2022/lib/services/trigger-form.service.mjs +1 -1
- package/esm2022/lib/utils/base-utils.mjs +1 -1
- package/esm2022/lib/validators/date-range-validator.mjs +1 -1
- package/esm2022/lib/validators/index.mjs +1 -1
- package/esm2022/lib/validators/match-list.validator.mjs +1 -1
- package/esm2022/lib/validators/multi-email-validator.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/iq-ui-lib.mjs +7059 -0
- package/fesm2022/iq-ui-lib.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/package.json +14 -6
- package/esm2022/unifylib-ui-lib.mjs +0 -5
- package/fesm2022/unifylib-ui-lib.mjs +0 -7059
- package/fesm2022/unifylib-ui-lib.mjs.map +0 -1
|
@@ -70,7 +70,7 @@ export class ButtonActionsComponent {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonActionsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ButtonActionsComponent, isStandalone: true, selector: "app-button-actions", inputs: { actions: "actions", disabled: "disabled", buttonsAction: "buttonsAction", listAction: "listAction", row: "row" }, outputs: { clickedButton: "clickedButton" }, ngImport: i0, template: "<ng-container *ngIf=\"buttonsAction; else list_Action\">\
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ButtonActionsComponent, isStandalone: true, selector: "app-button-actions", inputs: { actions: "actions", disabled: "disabled", buttonsAction: "buttonsAction", listAction: "listAction", row: "row" }, outputs: { clickedButton: "clickedButton" }, ngImport: i0, template: "<ng-container *ngIf=\"buttonsAction; else list_Action\">\n <div class=\"action-buttons-container\" *ngIf=\"(actions?.length ? actions : listAction)?.length > 0\">\n <ng-container *ngFor=\"let action of (actions?.length ? actions : listAction); let i = index\">\n <a\n *ngIf=\"resolveActionHref(action) as href\"\n class=\"action-button\"\n [href]=\"href\"\n (click)=\"getClickedAction(action, $event)\"\n [attr.id]=\"action.id || ('actions-btn-' + action.label)\"\n [title]=\"action.label | translate\"\n >\n <mat-icon *ngIf=\"action.icon?.length\" class=\"action-icon\">{{ action.icon }}</mat-icon>\n </a>\n <button\n *ngIf=\"!resolveActionHref(action)\"\n type=\"button\"\n class=\"action-button\"\n (click)=\"getClickedAction(action)\"\n [disabled]=\"disabled\"\n [attr.id]=\"action.id || ('actions-btn-' + action.label)\"\n [title]=\"action.label | translate\"\n >\n <mat-icon *ngIf=\"action.icon?.length\" class=\"action-icon\">{{ action.icon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #list_Action>\n <div *ngIf=\"listAction?.length > 0\">\n <button\n type=\"button\"\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"$event.stopPropagation()\"\n style=\"justify-content: center; color: grey\"\n id=\"actions-menu-trigger\"\n [attr.aria-label]=\"'BASE_TABLE.moreActions' | translate\"\n [attr.aria-haspopup]=\"true\">\n <mat-icon aria-hidden=\"true\">more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngFor=\"let list_Action of listAction\">\n <a\n *ngIf=\"resolveActionHref(list_Action) as href\"\n mat-menu-item\n [href]=\"href\"\n (click)=\"getClickedAction(list_Action, $event)\"\n [attr.id]=\"list_Action.id || ('actions-menu-item-' + list_Action.label)\"\n >\n <span>{{ list_Action.label | translate }}</span>\n </a>\n <button\n *ngIf=\"!resolveActionHref(list_Action)\"\n type=\"button\"\n mat-menu-item\n (click)=\"getClickedAction(list_Action)\"\n [attr.id]=\"list_Action.id || ('actions-menu-item-' + list_Action.label)\"\n >\n <span>{{ list_Action.label | translate }}</span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n</ng-template>\n", styles: [".svgColor{fill:transparent!important;stroke:var(--accent-color)!important}.action-buttons-container{display:flex;flex-direction:row;gap:16px;align-items:center;padding:0}.action-button{display:flex;align-items:center;justify-content:center;height:28px;min-width:24px;background:#fff;border:1px solid #a5c4d2;border-radius:9999px;cursor:pointer;padding:0 16px;transition:all .2s ease;box-sizing:border-box;text-decoration:none;color:inherit;outline:none}.action-button:hover:not(:disabled){border-color:#8ba8b8;background:#f8fafb}.action-button:active:not(:disabled){transform:scale(.98);background:#f0f4f6}.action-button:disabled{opacity:.5;cursor:not-allowed}.action-icon{width:18px;height:18px;font-size:18px;color:#1a365d;display:flex;align-items:center;justify-content:center}.action-icon ::ng-deep svg{fill:#1a365d;stroke:#1a365d;width:18px;height:18px}.flex-row{display:flex;flex-direction:row}.flex-column{display:flex;flex-direction:column}.align-start{justify-content:flex-start;align-items:flex-start}.align-center{justify-content:center;align-items:center}.align-end{justify-content:flex-end;align-items:flex-end}.gap-0{gap:0}.gap-5{gap:5px}.gap-10{gap:10px}.padding-horizontal-10{padding-left:10px;padding-right:10px}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
74
74
|
}
|
|
75
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonActionsComponent, decorators: [{
|
|
76
76
|
type: Component,
|
|
@@ -84,7 +84,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
84
84
|
NgClass,
|
|
85
85
|
NgForOf,
|
|
86
86
|
TranslateModule
|
|
87
|
-
], template: "<ng-container *ngIf=\"buttonsAction; else list_Action\">\
|
|
87
|
+
], template: "<ng-container *ngIf=\"buttonsAction; else list_Action\">\n <div class=\"action-buttons-container\" *ngIf=\"(actions?.length ? actions : listAction)?.length > 0\">\n <ng-container *ngFor=\"let action of (actions?.length ? actions : listAction); let i = index\">\n <a\n *ngIf=\"resolveActionHref(action) as href\"\n class=\"action-button\"\n [href]=\"href\"\n (click)=\"getClickedAction(action, $event)\"\n [attr.id]=\"action.id || ('actions-btn-' + action.label)\"\n [title]=\"action.label | translate\"\n >\n <mat-icon *ngIf=\"action.icon?.length\" class=\"action-icon\">{{ action.icon }}</mat-icon>\n </a>\n <button\n *ngIf=\"!resolveActionHref(action)\"\n type=\"button\"\n class=\"action-button\"\n (click)=\"getClickedAction(action)\"\n [disabled]=\"disabled\"\n [attr.id]=\"action.id || ('actions-btn-' + action.label)\"\n [title]=\"action.label | translate\"\n >\n <mat-icon *ngIf=\"action.icon?.length\" class=\"action-icon\">{{ action.icon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #list_Action>\n <div *ngIf=\"listAction?.length > 0\">\n <button\n type=\"button\"\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"$event.stopPropagation()\"\n style=\"justify-content: center; color: grey\"\n id=\"actions-menu-trigger\"\n [attr.aria-label]=\"'BASE_TABLE.moreActions' | translate\"\n [attr.aria-haspopup]=\"true\">\n <mat-icon aria-hidden=\"true\">more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngFor=\"let list_Action of listAction\">\n <a\n *ngIf=\"resolveActionHref(list_Action) as href\"\n mat-menu-item\n [href]=\"href\"\n (click)=\"getClickedAction(list_Action, $event)\"\n [attr.id]=\"list_Action.id || ('actions-menu-item-' + list_Action.label)\"\n >\n <span>{{ list_Action.label | translate }}</span>\n </a>\n <button\n *ngIf=\"!resolveActionHref(list_Action)\"\n type=\"button\"\n mat-menu-item\n (click)=\"getClickedAction(list_Action)\"\n [attr.id]=\"list_Action.id || ('actions-menu-item-' + list_Action.label)\"\n >\n <span>{{ list_Action.label | translate }}</span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n</ng-template>\n", styles: [".svgColor{fill:transparent!important;stroke:var(--accent-color)!important}.action-buttons-container{display:flex;flex-direction:row;gap:16px;align-items:center;padding:0}.action-button{display:flex;align-items:center;justify-content:center;height:28px;min-width:24px;background:#fff;border:1px solid #a5c4d2;border-radius:9999px;cursor:pointer;padding:0 16px;transition:all .2s ease;box-sizing:border-box;text-decoration:none;color:inherit;outline:none}.action-button:hover:not(:disabled){border-color:#8ba8b8;background:#f8fafb}.action-button:active:not(:disabled){transform:scale(.98);background:#f0f4f6}.action-button:disabled{opacity:.5;cursor:not-allowed}.action-icon{width:18px;height:18px;font-size:18px;color:#1a365d;display:flex;align-items:center;justify-content:center}.action-icon ::ng-deep svg{fill:#1a365d;stroke:#1a365d;width:18px;height:18px}.flex-row{display:flex;flex-direction:row}.flex-column{display:flex;flex-direction:column}.align-start{justify-content:flex-start;align-items:flex-start}.align-center{justify-content:center;align-items:center}.align-end{justify-content:flex-end;align-items:flex-end}.gap-0{gap:0}.gap-5{gap:5px}.gap-10{gap:10px}.padding-horizontal-10{padding-left:10px;padding-right:10px}\n"] }]
|
|
88
88
|
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { actions: [{
|
|
89
89
|
type: Input
|
|
90
90
|
}], disabled: [{
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
98
98
|
}], row: [{
|
|
99
99
|
type: Input
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24tYWN0aW9ucy9idXR0b24tYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi1hY3Rpb25zL2J1dHRvbi1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFtQnBELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBbUIsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUdwQyxZQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRzNCLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFHL0IsZUFBVSxHQUEyQixF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LE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOytHQXpFVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1UEMzQm5DLGtsRkFpRUEseXdDRG5ESSxPQUFPLDJJQUNQLGNBQWMscVNBQ2QsYUFBYSw2RkFDYixPQUFPLDJRQUNQLFdBQVcsc0lBQ1gsSUFBSSw2RkFFSixPQUFPLGtIQUNQLGVBQWU7OzRGQUtOLHNCQUFzQjtrQkFqQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsSUFBSTt3QkFDSixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsZUFBZTtxQkFDaEI7OEVBUUQsT0FBTztzQkFETixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCdXR0b25BY3Rpb25TZXR0aW5nc30gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvYnV0dG9uLWFjdGlvbi1zZXR0aW5nc1wiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0FjdGlvbkNvbW1lbnRDb21wb25lbnR9IGZyb20gXCIuLi9hY3Rpb24tY29tbWVudC9hY3Rpb24tY29tbWVudC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQge01hdE1lbnUsIE1hdE1lbnVJdGVtLCBNYXRNZW51VHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHtNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdGb3JPZiwgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJ1dHRvbi1hY3Rpb25zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXRNZW51VHJpZ2dlcixcclxuICAgIE1hdEljb25CdXR0b24sXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nRm9yT2YsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2J1dHRvbi1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnV0dG9uQWN0aW9uc0NvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cclxuXHJcbiAgQElucHV0KClcclxuICBhY3Rpb25zOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID1bXTtcclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjbGlja2VkQnV0dG9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBidXR0b25zQWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGlzdEFjdGlvbjogQnV0dG9uQWN0aW9uU2V0dGluZ3NbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJvdz86IHVua25vd247XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZUFjdGlvbkhyZWYoYWN0aW9uOiBCdXR0b25BY3Rpb25TZXR0aW5ncyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoYWN0aW9uLnNob3dDb21tZW50RGlhbG9nKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbGlua0hyZWYgPSBhY3Rpb24ubGlua0hyZWY7XHJcbiAgICBpZiAobGlua0hyZWYgPT0gbnVsbCB8fCBsaW5rSHJlZiA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGxpbmtIcmVmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGlmICh0aGlzLnJvdyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucm93ID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBsaW5rSHJlZih0aGlzLnJvdyk7XHJcbiAgICAgIGNvbnN0IHMgPSByZXNvbHZlZCAhPSBudWxsID8gU3RyaW5nKHJlc29sdmVkKS50cmltKCkgOiAnJztcclxuICAgICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcyA9IFN0cmluZyhsaW5rSHJlZikudHJpbSgpO1xyXG4gICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpY2tlZEFjdGlvbihhY3Rpb246IEJ1dHRvbkFjdGlvblNldHRpbmdzLCBldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IGhyZWYgPSB0aGlzLnJlc29sdmVBY3Rpb25IcmVmKGFjdGlvbik7XHJcbiAgICBpZiAoaHJlZiAmJiBldmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmJ1dHRvbiA9PT0gMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGFjdGlvbi5zaG93Q29tbWVudERpYWxvZyA9PT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvbkNvbW1lbnRDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7bGFiZWw6IGFjdGlvbi5sYWJlbCwgaXNUZXJtaW5hdGlvbjogYWN0aW9uLmNvbW1lbnRSZXF1aXJlZCwgZXh0ZXJuYWw6IGZhbHNlLFxyXG4gICAgICAgICAgd2FybmluZ01zZzogZmFsc2V9LFxyXG4gICAgICAgIHdpZHRoOiAnNjAwcHgnLFxyXG4gICAgICAgIGhlaWdodDogJ2F1dG8nLFxyXG4gICAgICAgIGRpcmVjdGlvbjogICdsdHInIC8vIHRoaXMuYXV0aFNlcnZpY2UuZGlyID09PSAncnRsJyA/ICdydGwnOiAnbHRyJ1xyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgYWN0aW9uLmNvbW1lbnQgPSByZXN1bHQuY29tbWVudDtcclxuICAgICAgICAgIGFjdGlvbi5zaGFyZUV4dGVybmFsID0gcmVzdWx0LnNoYXJlRXh0ZXJuYWw7XHJcbiAgICAgICAgICB0aGlzLmNsaWNrZWRCdXR0b24uZW1pdChhY3Rpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGlja2VkQnV0dG9uLmVtaXQoYWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25zQWN0aW9uOyBlbHNlIGxpc3RfQWN0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zLWNvbnRhaW5lclwiICpuZ0lmPVwiKGFjdGlvbnM/Lmxlbmd0aCA/IGFjdGlvbnMgOiBsaXN0QWN0aW9uKT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIChhY3Rpb25zPy5sZW5ndGggPyBhY3Rpb25zIDogbGlzdEFjdGlvbik7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPGFcclxuICAgICAgICAqbmdJZj1cInJlc29sdmVBY3Rpb25IcmVmKGFjdGlvbikgYXMgaHJlZlwiXHJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCJcclxuICAgICAgICBbaHJlZl09XCJocmVmXCJcclxuICAgICAgICAoY2xpY2spPVwiZ2V0Q2xpY2tlZEFjdGlvbihhY3Rpb24sICRldmVudClcIlxyXG4gICAgICAgIFthdHRyLmlkXT1cImFjdGlvbi5pZCB8fCAoJ2FjdGlvbnMtYnRuLScgKyBhY3Rpb24ubGFiZWwpXCJcclxuICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImFjdGlvbi5pY29uPy5sZW5ndGhcIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+e3sgYWN0aW9uLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cIiFyZXNvbHZlQWN0aW9uSHJlZihhY3Rpb24pXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGFjdGlvbilcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW2F0dHIuaWRdPVwiYWN0aW9uLmlkIHx8ICgnYWN0aW9ucy1idG4tJyArIGFjdGlvbi5sYWJlbClcIlxyXG4gICAgICAgIFt0aXRsZV09XCJhY3Rpb24ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb24/Lmxlbmd0aFwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj57eyBhY3Rpb24uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNsaXN0X0FjdGlvbj5cclxuICA8ZGl2ICpuZ0lmPVwibGlzdEFjdGlvbj8ubGVuZ3RoID4gMFwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGNvbG9yOiBncmV5XCJcclxuICAgICAgaWQ9XCJhY3Rpb25zLW1lbnUtdHJpZ2dlclwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0JBU0VfVEFCTEUubW9yZUFjdGlvbnMnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cInRydWVcIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpc3RfQWN0aW9uIG9mIGxpc3RBY3Rpb25cIj5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgKm5nSWY9XCJyZXNvbHZlQWN0aW9uSHJlZihsaXN0X0FjdGlvbikgYXMgaHJlZlwiXHJcbiAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICBbaHJlZl09XCJocmVmXCJcclxuICAgICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGxpc3RfQWN0aW9uLCAkZXZlbnQpXCJcclxuICAgICAgICAgIFthdHRyLmlkXT1cImxpc3RfQWN0aW9uLmlkIHx8ICgnYWN0aW9ucy1tZW51LWl0ZW0tJyArIGxpc3RfQWN0aW9uLmxhYmVsKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4+e3sgbGlzdF9BY3Rpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwiIXJlc29sdmVBY3Rpb25IcmVmKGxpc3RfQWN0aW9uKVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGxpc3RfQWN0aW9uKVwiXHJcbiAgICAgICAgICBbYXR0ci5pZF09XCJsaXN0X0FjdGlvbi5pZCB8fCAoJ2FjdGlvbnMtbWVudS1pdGVtLScgKyBsaXN0X0FjdGlvbi5sYWJlbClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuPnt7IGxpc3RfQWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24tYWN0aW9ucy9idXR0b24tYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi1hY3Rpb25zL2J1dHRvbi1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFtQnBELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBbUIsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUdwQyxZQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRzNCLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFHL0IsZUFBVSxHQUEyQixF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LE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOytHQXpFVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1UEMzQm5DLGc5RUFpRUEseXdDRG5ESSxPQUFPLDJJQUNQLGNBQWMscVNBQ2QsYUFBYSw2RkFDYixPQUFPLDJRQUNQLFdBQVcsc0lBQ1gsSUFBSSw2RkFFSixPQUFPLGtIQUNQLGVBQWU7OzRGQUtOLHNCQUFzQjtrQkFqQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsSUFBSTt3QkFDSixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsZUFBZTtxQkFDaEI7OEVBUUQsT0FBTztzQkFETixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnV0dG9uQWN0aW9uU2V0dGluZ3N9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL2J1dHRvbi1hY3Rpb24tc2V0dGluZ3NcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge0FjdGlvbkNvbW1lbnRDb21wb25lbnR9IGZyb20gXCIuLi9hY3Rpb24tY29tbWVudC9hY3Rpb24tY29tbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHtNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5pbXBvcnQge05nQ2xhc3MsIE5nRm9yT2YsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYnV0dG9uLWFjdGlvbnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbixcbiAgICBNYXRNZW51VHJpZ2dlcixcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIE1hdE1lbnUsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgTmdJZixcbiAgICBOZ0NsYXNzLFxuICAgIE5nRm9yT2YsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9idXR0b24tYWN0aW9ucy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQWN0aW9uc0NvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cbiAgQElucHV0KClcbiAgYWN0aW9uczogQnV0dG9uQWN0aW9uU2V0dGluZ3NbXSA9W107XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBjbGlja2VkQnV0dG9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICBidXR0b25zQWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgbGlzdEFjdGlvbjogQnV0dG9uQWN0aW9uU2V0dGluZ3NbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHJvdz86IHVua25vd247XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICByZXNvbHZlQWN0aW9uSHJlZihhY3Rpb246IEJ1dHRvbkFjdGlvblNldHRpbmdzKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoYWN0aW9uLnNob3dDb21tZW50RGlhbG9nKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbGlua0hyZWYgPSBhY3Rpb24ubGlua0hyZWY7XG4gICAgaWYgKGxpbmtIcmVmID09IG51bGwgfHwgbGlua0hyZWYgPT09ICcnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBsaW5rSHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHRoaXMucm93ID09PSB1bmRlZmluZWQgfHwgdGhpcy5yb3cgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNvbHZlZCA9IGxpbmtIcmVmKHRoaXMucm93KTtcbiAgICAgIGNvbnN0IHMgPSByZXNvbHZlZCAhPSBudWxsID8gU3RyaW5nKHJlc29sdmVkKS50cmltKCkgOiAnJztcbiAgICAgIHJldHVybiBzLmxlbmd0aCA+IDAgPyBzIDogbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcyA9IFN0cmluZyhsaW5rSHJlZikudHJpbSgpO1xuICAgIHJldHVybiBzLmxlbmd0aCA+IDAgPyBzIDogbnVsbDtcbiAgfVxuXG4gIGdldENsaWNrZWRBY3Rpb24oYWN0aW9uOiBCdXR0b25BY3Rpb25TZXR0aW5ncywgZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgaHJlZiA9IHRoaXMucmVzb2x2ZUFjdGlvbkhyZWYoYWN0aW9uKTtcbiAgICBpZiAoaHJlZiAmJiBldmVudCkge1xuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5idXR0b24gPT09IDEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGFjdGlvbi5zaG93Q29tbWVudERpYWxvZyA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Db21tZW50Q29tcG9uZW50LCB7XG4gICAgICAgIGRhdGE6IHtsYWJlbDogYWN0aW9uLmxhYmVsLCBpc1Rlcm1pbmF0aW9uOiBhY3Rpb24uY29tbWVudFJlcXVpcmVkLCBleHRlcm5hbDogZmFsc2UsXG4gICAgICAgICAgd2FybmluZ01zZzogZmFsc2V9LFxuICAgICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgIGRpcmVjdGlvbjogICdsdHInIC8vIHRoaXMuYXV0aFNlcnZpY2UuZGlyID09PSAncnRsJyA/ICdydGwnOiAnbHRyJ1xuICAgICAgfSk7XG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIGFjdGlvbi5jb21tZW50ID0gcmVzdWx0LmNvbW1lbnQ7XG4gICAgICAgICAgYWN0aW9uLnNoYXJlRXh0ZXJuYWwgPSByZXN1bHQuc2hhcmVFeHRlcm5hbDtcbiAgICAgICAgICB0aGlzLmNsaWNrZWRCdXR0b24uZW1pdChhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsaWNrZWRCdXR0b24uZW1pdChhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiYnV0dG9uc0FjdGlvbjsgZWxzZSBsaXN0X0FjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyXCIgKm5nSWY9XCIoYWN0aW9ucz8ubGVuZ3RoID8gYWN0aW9ucyA6IGxpc3RBY3Rpb24pPy5sZW5ndGggPiAwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIChhY3Rpb25zPy5sZW5ndGggPyBhY3Rpb25zIDogbGlzdEFjdGlvbik7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwicmVzb2x2ZUFjdGlvbkhyZWYoYWN0aW9uKSBhcyBocmVmXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgW2hyZWZdPVwiaHJlZlwiXG4gICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGFjdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmlkXT1cImFjdGlvbi5pZCB8fCAoJ2FjdGlvbnMtYnRuLScgKyBhY3Rpb24ubGFiZWwpXCJcbiAgICAgICAgW3RpdGxlXT1cImFjdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImFjdGlvbi5pY29uPy5sZW5ndGhcIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+e3sgYWN0aW9uLmljb24gfX08L21hdC1pY29uPlxuICAgICAgPC9hPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFyZXNvbHZlQWN0aW9uSHJlZihhY3Rpb24pXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGFjdGlvbilcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5pZF09XCJhY3Rpb24uaWQgfHwgKCdhY3Rpb25zLWJ0bi0nICsgYWN0aW9uLmxhYmVsKVwiXG4gICAgICAgIFt0aXRsZV09XCJhY3Rpb24ubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJhY3Rpb24uaWNvbj8ubGVuZ3RoXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPnt7IGFjdGlvbi5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xpc3RfQWN0aW9uPlxuICA8ZGl2ICpuZ0lmPVwibGlzdEFjdGlvbj8ubGVuZ3RoID4gMFwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGNvbG9yOiBncmV5XCJcbiAgICAgIGlkPVwiYWN0aW9ucy1tZW51LXRyaWdnZXJcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQkFTRV9UQUJMRS5tb3JlQWN0aW9ucycgfCB0cmFuc2xhdGVcIlxuICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCI+XG4gICAgICA8bWF0LWljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCI+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaXN0X0FjdGlvbiBvZiBsaXN0QWN0aW9uXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJyZXNvbHZlQWN0aW9uSHJlZihsaXN0X0FjdGlvbikgYXMgaHJlZlwiXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgIFtocmVmXT1cImhyZWZcIlxuICAgICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGxpc3RfQWN0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgICBbYXR0ci5pZF09XCJsaXN0X0FjdGlvbi5pZCB8fCAoJ2FjdGlvbnMtbWVudS1pdGVtLScgKyBsaXN0X0FjdGlvbi5sYWJlbClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgbGlzdF9BY3Rpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIXJlc29sdmVBY3Rpb25IcmVmKGxpc3RfQWN0aW9uKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgIChjbGljayk9XCJnZXRDbGlja2VkQWN0aW9uKGxpc3RfQWN0aW9uKVwiXG4gICAgICAgICAgW2F0dHIuaWRdPVwibGlzdF9BY3Rpb24uaWQgfHwgKCdhY3Rpb25zLW1lbnUtaXRlbS0nICsgbGlzdF9BY3Rpb24ubGFiZWwpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPnt7IGxpc3RfQWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|