@alfresco/adf-process-services-cloud 8.1.0-15902121227 → 8.1.0-15928551305
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/app/components/app-details-cloud/app-details-cloud.component.mjs +4 -4
- package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +8 -9
- package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +9 -10
- package/esm2022/lib/form/components/form-cloud.component.mjs +9 -10
- package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +7 -8
- package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +5 -6
- package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +6 -7
- package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +9 -10
- package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +4 -5
- package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +8 -9
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +7 -8
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +4 -5
- package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +4 -5
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +4 -5
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +4 -5
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +4 -5
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +5 -6
- package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +8 -9
- package/esm2022/lib/group/components/group-cloud.component.mjs +13 -14
- package/esm2022/lib/people/components/people-cloud.component.mjs +13 -14
- package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +11 -12
- package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +10 -11
- package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +6 -7
- package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +4 -5
- package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +13 -14
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +15 -16
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +15 -16
- package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +6 -7
- package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +8 -9
- package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +8 -9
- package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +5 -6
- package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +7 -8
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +5 -6
- package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +5 -6
- package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +5 -6
- package/fesm2022/adf-process-services-cloud.mjs +105 -106
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -20,7 +20,7 @@ import { Component, DestroyRef, inject, ViewEncapsulation } from '@angular/core'
|
|
|
20
20
|
import { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
21
21
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
22
22
|
import { MatSelectModule } from '@angular/material/select';
|
|
23
|
-
import {
|
|
23
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
24
24
|
import { BehaviorSubject } from 'rxjs';
|
|
25
25
|
import { filter, map } from 'rxjs/operators';
|
|
26
26
|
import { FormCloudService } from '../../../services/form-cloud.service';
|
|
@@ -32,7 +32,6 @@ import * as i1 from "@angular/forms";
|
|
|
32
32
|
import * as i2 from "@angular/material/form-field";
|
|
33
33
|
import * as i3 from "@angular/material/select";
|
|
34
34
|
import * as i4 from "@angular/material/core";
|
|
35
|
-
import * as i5 from "@ngx-translate/core";
|
|
36
35
|
export const DEFAULT_OPTION = {
|
|
37
36
|
id: 'empty',
|
|
38
37
|
name: 'Choose one...'
|
|
@@ -445,7 +444,7 @@ export class DropdownCloudWidgetComponent extends WidgetComponent {
|
|
|
445
444
|
}
|
|
446
445
|
}
|
|
447
446
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownCloudWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
448
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DropdownCloudWidgetComponent, isStandalone: true, selector: "dropdown-cloud-widget", usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field class=\"adf-form-field-input\">\n @if ( (field.name || this.field?.required) && !field.leftLabels) { <mat-label class=\"adf-label\" [attr.for]=\"field.id\">{{ field.name | translate }}</mat-label> }\n <mat-select\n class=\"adf-select\"\n [formControl]=\"dropdownControl\"\n [id]=\"field.id\"\n [compareWith]=\"compareDropdownValues\"\n [title]=\"field.tooltip\"\n panelClass=\"adf-select-filter\"\n [multiple]=\"field.hasMultipleValues\"\n [disabled]=\"field.readOnly\"\n [required]=\"field.required \"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"filter$.next($event)\" />\n\n <mat-option *ngFor=\"let opt of list$ | async\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"isReadOnlyType\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"adf-error-messages-container\" *ngIf=\"!previewState && !field.readOnly\">\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"showRequiredMessage\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"isRestApiFailed\"\n required=\"{{ 'FORM.FIELD.REST_API_FAILED' | translate: { hostname: restApiHostName } }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"variableOptionsFailed\"\n required=\"{{ 'FORM.FIELD.VARIABLE_DROPDOWN_OPTIONS_FAILED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget .adf-select-filter{font-size:var(--theme-body-1-font-size)}.adf-dropdown-widget-select{width:100%}.adf-dropdown-widget-dropdown-required-message .adf-error-container,.adf-dropdown-widget-dropdown-failed-message .adf-error-container{margin-top:1px}.adf-dropdown-widget .mat-mdc-select-arrow-wrapper{height:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "
|
|
447
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DropdownCloudWidgetComponent, isStandalone: true, selector: "dropdown-cloud-widget", usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field class=\"adf-form-field-input\">\n @if ( (field.name || this.field?.required) && !field.leftLabels) { <mat-label class=\"adf-label\" [attr.for]=\"field.id\">{{ field.name | translate }}</mat-label> }\n <mat-select\n class=\"adf-select\"\n [formControl]=\"dropdownControl\"\n [id]=\"field.id\"\n [compareWith]=\"compareDropdownValues\"\n [title]=\"field.tooltip\"\n panelClass=\"adf-select-filter\"\n [multiple]=\"field.hasMultipleValues\"\n [disabled]=\"field.readOnly\"\n [required]=\"field.required \"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"filter$.next($event)\" />\n\n <mat-option *ngFor=\"let opt of list$ | async\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"isReadOnlyType\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"adf-error-messages-container\" *ngIf=\"!previewState && !field.readOnly\">\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"showRequiredMessage\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"isRestApiFailed\"\n required=\"{{ 'FORM.FIELD.REST_API_FAILED' | translate: { hostname: restApiHostName } }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"variableOptionsFailed\"\n required=\"{{ 'FORM.FIELD.VARIABLE_DROPDOWN_OPTIONS_FAILED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget .adf-select-filter{font-size:var(--theme-body-1-font-size)}.adf-dropdown-widget-select{width:100%}.adf-dropdown-widget-dropdown-required-message .adf-error-container,.adf-dropdown-widget-dropdown-failed-message .adf-error-container{margin-top:1px}.adf-dropdown-widget .mat-mdc-select-arrow-wrapper{height:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: SelectFilterInputComponent, selector: "adf-select-filter-input", outputs: ["change"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
449
448
|
}
|
|
450
449
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownCloudWidgetComponent, decorators: [{
|
|
451
450
|
type: Component,
|
|
@@ -457,8 +456,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
457
456
|
MatFormFieldModule,
|
|
458
457
|
MatSelectModule,
|
|
459
458
|
ErrorWidgetComponent,
|
|
460
|
-
|
|
459
|
+
TranslatePipe,
|
|
461
460
|
SelectFilterInputComponent
|
|
462
461
|
], template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field class=\"adf-form-field-input\">\n @if ( (field.name || this.field?.required) && !field.leftLabels) { <mat-label class=\"adf-label\" [attr.for]=\"field.id\">{{ field.name | translate }}</mat-label> }\n <mat-select\n class=\"adf-select\"\n [formControl]=\"dropdownControl\"\n [id]=\"field.id\"\n [compareWith]=\"compareDropdownValues\"\n [title]=\"field.tooltip\"\n panelClass=\"adf-select-filter\"\n [multiple]=\"field.hasMultipleValues\"\n [disabled]=\"field.readOnly\"\n [required]=\"field.required \"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"filter$.next($event)\" />\n\n <mat-option *ngFor=\"let opt of list$ | async\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"isReadOnlyType\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"adf-error-messages-container\" *ngIf=\"!previewState && !field.readOnly\">\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"showRequiredMessage\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"isRestApiFailed\"\n required=\"{{ 'FORM.FIELD.REST_API_FAILED' | translate: { hostname: restApiHostName } }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"variableOptionsFailed\"\n required=\"{{ 'FORM.FIELD.VARIABLE_DROPDOWN_OPTIONS_FAILED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget .adf-select-filter{font-size:var(--theme-body-1-font-size)}.adf-dropdown-widget-select{width:100%}.adf-dropdown-widget-dropdown-required-message .adf-error-container,.adf-dropdown-widget-dropdown-failed-message .adf-error-container{margin-top:1px}.adf-dropdown-widget .mat-mdc-select-arrow-wrapper{height:auto}\n"] }]
|
|
463
462
|
}] });
|
|
464
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY2xvdWQud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWNsb3VkLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEVBR2QsY0FBYyxFQUNkLFdBQVcsRUFHWCwwQkFBMEIsRUFDMUIsZUFBZSxFQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFB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MFNBQ2xCLGVBQWUsb3JCQUNmLG9CQUFvQix1RkFDcEIsZUFBZSw0RkFDZiwwQkFBMEI7OzRGQUdyQiw0QkFBNEI7a0JBbEJ4QyxTQUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDBCQUEwQjtxQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBFcnJvck1lc3NhZ2VNb2RlbCxcbiAgICBFcnJvcldpZGdldENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRFdmVudCxcbiAgICBGb3JtRmllbGRNb2RlbCxcbiAgICBGb3JtRmllbGRPcHRpb24sXG4gICAgRm9ybUZpZWxkVHlwZXMsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgUmVhY3RpdmVGb3JtV2lkZ2V0LFxuICAgIFJ1bGVFbnRyeSxcbiAgICBTZWxlY3RGaWx0ZXJJbnB1dENvbXBvbmVudCxcbiAgICBXaWRnZXRDb21wb25lbnRcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1VdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVmYXVsdFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BUSU9OID0ge1xuICAgIGlkOiAnZW1wdHknLFxuICAgIG5hbWU6ICdDaG9vc2Ugb25lLi4uJ1xufTtcbmV4cG9ydCBjb25zdCBISURFX0ZJTFRFUl9MSU1JVCA9IDU7XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkcm9wZG93bi1jbG91ZC13aWRnZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1jbG91ZC53aWRnZXQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tY2xvdWQud2lkZ2V0LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgU2VsZWN0RmlsdGVySW5wdXRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFJlYWN0aXZlRm9ybVdpZGdldCB7XG4gICAgcHVibGljIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1DbG91ZFNlcnZpY2UgPSBpbmplY3QoRm9ybUNsb3VkU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWcgPSBpbmplY3QoQXBwQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtVXRpbHNTZXJ2aWNlID0gaW5qZWN0KEZvcm1VdGlsc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHR5cGVJZCA9ICdEcm9wZG93bkNsb3VkV2lkZ2V0Q29tcG9uZW50JztcbiAgICBzaG93SW5wdXRGaWx0ZXIgPSBmYWxzZTtcbiAgICBpc1Jlc3RBcGlGYWlsZWQgPSBmYWxzZTtcbiAgICB2YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSBmYWxzZTtcbiAgICBwcmV2aWV3U3RhdGUgPSBmYWxzZTtcbiAgICByZXN0QXBpSG9zdE5hbWU6IHN0cmluZztcbiAgICBkcm9wZG93bkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8Rm9ybUZpZWxkT3B0aW9uIHwgRm9ybUZpZWxkT3B0aW9uW10+KHVuZGVmaW5lZCk7XG5cbiAgICBsaXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkT3B0aW9uW10+KFtdKTtcbiAgICBmaWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uSWQgPSAnaWQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uTGFiZWwgPSAnbmFtZSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VmFyaWFibGVPcHRpb25QYXRoID0gJ2RhdGEnO1xuXG4gICAgZ2V0IHNob3dSZXF1aXJlZE1lc3NhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3Bkb3duQ29udHJvbC50b3VjaGVkICYmIHRoaXMuZHJvcGRvd25Db250cm9sLmVycm9ycz8ucmVxdWlyZWQgJiYgIXRoaXMuaXNSZXN0QXBpRmFpbGVkICYmICF0aGlzLnZhcmlhYmxlT3B0aW9uc0ZhaWxlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNSZWFkT25seVR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnR5cGUgPT09ICdyZWFkb25seSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNMaW5rZWRXaWRnZXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGlua2VkV2lkZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/LnJ1bGU/LnJ1bGVPbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1JlYWRPbmx5Rm9ybSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZD8uZm9ybT8ucmVhZE9ubHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzUmVzdFVybCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZD8ucmVzdFVybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1ZhbGlkUmVzdENvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZXN0T3B0aW9uVHlwZSAmJiB0aGlzLmhhc1Jlc3RVcmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNSZXN0T3B0aW9uVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/Lm9wdGlvblR5cGUgPT09ICdyZXN0JztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1ZhcmlhYmxlT3B0aW9uVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/Lm9wdGlvblR5cGUgPT09ICd2YXJpYWJsZSc7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0dXBEcm9wZG93bigpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uub25Gb3JtVmFyaWFibGVDaGFuZ2VkLnN1YnNjcmliZSgoeyBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaWQgPT09IHRoaXMuZmllbGQuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVhY3RpdmVGb3JtQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgfVxuXG4gICAgY29tcGFyZURyb3Bkb3duVmFsdWVzKG9wdDE6IEZvcm1GaWVsZE9wdGlvbiB8IHN0cmluZywgb3B0MjogRm9ybUZpZWxkT3B0aW9uIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0MSB8fCAhb3B0Mikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHQxID09PSAnc3RyaW5nJyAmJiB0eXBlb2Ygb3B0MiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHQxID09PSBvcHQyLmlkIHx8IG9wdDEgPT09IG9wdDIubmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0MSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9wdDIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0MS5pZCA9PT0gb3B0MiB8fCBvcHQxLm5hbWUgPT09IG9wdDI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG9wdDEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcHQyID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdDEuaWQgPT09IG9wdDIuaWQgfHwgb3B0MS5uYW1lID09PSBvcHQyLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0MSA9PT0gb3B0MjtcbiAgICB9XG5cbiAgICBzZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1GaWVsZFZhbHVlQ2hhbmdlZEV2ZW50ID0gbmV3IEZvcm1GaWVsZEV2ZW50KGZpZWxkLmZvcm0sIGZpZWxkKTtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtRmllbGRWYWx1ZUNoYW5nZWQubmV4dChmb3JtRmllbGRWYWx1ZUNoYW5nZWRFdmVudCk7XG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQoZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQcmV2aWV3U3RhdGUoKTtcblxuICAgICAgICB0aGlzLmNoZWNrRmllbGRPcHRpb25zU291cmNlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0lucHV0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuZmllbGQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uVmFsdWUodmFsdWUsIHRoaXMuZmllbGQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQodGhpcy5maWVsZCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvcm1Db250cm9sVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpZWxkPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGQ/LnZhbHVlICYmIHR5cGVvZiB0aGlzLmZpZWxkPy52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLnNldFZhbHVlKHsgaWQ6IHRoaXMuZmllbGQ/LnZhbHVlLmlkLCBuYW1lOiB0aGlzLmZpZWxkPy52YWx1ZS5uYW1lIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpZWxkPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuc2V0VmFsdWUoeyBpZDogdGhpcy5maWVsZD8udmFsdWUsIG5hbWU6ICcnIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVEcm9wZG93blZhbGlkYXRpb25SdWxlcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZURyb3Bkb3duUmVhZG9ubHlSdWxlcygpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duVmFsaWRhdGlvblJ1bGVzKCkge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtdKTtcblxuICAgICAgICBpZiAoIXRoaXMuZmllbGQ/LmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5oYXNFbXB0eVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuYWRkVmFsaWRhdG9ycyhbZGVmYXVsdFZhbHVlVmFsaWRhdG9yKHRoaXMuZmllbGQpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duUmVhZG9ubHlSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnJlYWRPbmx5IHx8IHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsaWRhdGlvblN1bW1hcnkgPSBuZXcgRXJyb3JNZXNzYWdlTW9kZWwoJycpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNWYWxpZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db250cm9sLmludmFsaWQgJiYgdGhpcy5kcm9wZG93bkNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKHsgbWVzc2FnZTogJ0ZPUk0uRklFTEQuUkVRVUlSRUQnIH0pO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWFyY2gpID0+IHNlYXJjaCAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICBtYXAoKHNlYXJjaCkgPT5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoID8gdGhpcy5maWVsZC5vcHRpb25zLmZpbHRlcigoeyBuYW1lIH0pID0+IG5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpIDogdGhpcy5maWVsZC5vcHRpb25zXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB0aGlzLmxpc3QkLm5leHQocmVzdWx0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0ZpZWxkT3B0aW9uc1NvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNSZWFkT25seUZvcm06XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNWYWxpZFJlc3RDb25maWcgJiYgIXRoaXMuaXNMaW5rZWRXaWRnZXQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVJlc3RBcGkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSB0aGlzLmlzTGlua2VkV2lkZ2V0OlxuICAgICAgICAgICAgICAgIHRoaXMubG9hZEZpZWxkT3B0aW9uc0ZvckxpbmtlZFdpZGdldCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNWYXJpYWJsZU9wdGlvblR5cGU6XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVZhcmlhYmxlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tVmFyaWFibGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNQYXRoID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/Lm9wdGlvbnNQYXRoID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uUGF0aDtcbiAgICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/LnZhcmlhYmxlTmFtZTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1ZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnByb2Nlc3NWYXJpYWJsZXM7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZXMgPSB0aGlzLmZpZWxkPy5mb3JtPy52YXJpYWJsZXM7XG5cbiAgICAgICAgY29uc3QgZHJvcGRvd25PcHRpb25zID0gdGhpcy5nZXRPcHRpb25zRnJvbVZhcmlhYmxlKHByb2Nlc3NWYXJpYWJsZXMsIGZvcm1WYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgaWYgKGRyb3Bkb3duT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlT3B0aW9uczogRm9ybUZpZWxkT3B0aW9uW10gPSB0aGlzLmdldE9wdGlvbnNGcm9tUGF0aChkcm9wZG93bk9wdGlvbnMsIG9wdGlvbnNQYXRoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhmb3JtVmFyaWFibGVPcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudXBkYXRlRm9ybSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJHt2YXJpYWJsZU5hbWV9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVPcHRpb25zRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0Zyb21QYXRoKGRhdGE6IGFueSwgcGF0aDogc3RyaW5nKTogRm9ybUZpZWxkT3B0aW9uW10ge1xuICAgICAgICBjb25zdCBvcHRpb25zSWQgPSB0aGlzLmZpZWxkPy52YXJpYWJsZUNvbmZpZz8ub3B0aW9uc0lkID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uSWQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNMYWJlbCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zTGFiZWwgPz8gdGhpcy5kZWZhdWx0VmFyaWFibGVPcHRpb25MYWJlbDtcblxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvcGVydHkgPSBwcm9wZXJ0aWVzLnNoaWZ0KCk7XG5cbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgY3VycmVudFByb3BlcnR5KSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJHtjdXJyZW50UHJvcGVydHl9IG5vdCBmb3VuZCBpbiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IGRhdGFbY3VycmVudFByb3BlcnR5XTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWREYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9uc0Zyb21BcnJheShuZXN0ZWREYXRhLCBvcHRpb25zSWQsIG9wdGlvbnNMYWJlbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25zRnJvbVBhdGgobmVzdGVkRGF0YSwgcHJvcGVydGllcy5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0Zyb21BcnJheShuZXN0ZWREYXRhOiBhbnlbXSwgaWQ6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IG5lc3RlZERhdGEubWFwKChpdGVtKSA9PiB0aGlzLmNyZWF0ZU9wdGlvbihpdGVtLCBpZCwgbGFiZWwpKTtcbiAgICAgICAgY29uc3QgaGFzSW52YWxpZE9wdGlvbiA9IG9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiAhb3B0aW9uKTtcblxuICAgICAgICBpZiAoaGFzSW52YWxpZE9wdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPcHRpb24oaXRlbTogYW55LCBpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogRm9ybUZpZWxkT3B0aW9uIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uOiBGb3JtRmllbGRPcHRpb24gPSB7XG4gICAgICAgICAgICBpZDogaXRlbVtpZF0sXG4gICAgICAgICAgICBuYW1lOiBpdGVtW2xhYmVsXVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghb3B0aW9uLmlkIHx8ICFvcHRpb24ubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJ2lkJyBvciAnbGFiZWwnIGlzIG5vdCBwcm9wZXJseSBkZWZpbmVkYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbnNGcm9tVmFyaWFibGUoXG4gICAgICAgIHByb2Nlc3NWYXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sXG4gICAgICAgIGZvcm1WYXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sXG4gICAgICAgIHZhcmlhYmxlTmFtZTogc3RyaW5nXG4gICAgKTogVGFza1ZhcmlhYmxlQ2xvdWQge1xuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVEcm9wZG93bk9wdGlvbnM6IFRhc2tWYXJpYWJsZUNsb3VkID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHByb2Nlc3NWYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9uczogVGFza1ZhcmlhYmxlQ2xvdWQgPSB0aGlzLmdldFZhcmlhYmxlVmFsdWVCeU5hbWUoZm9ybVZhcmlhYmxlcywgdmFyaWFibGVOYW1lKTtcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc1ZhcmlhYmxlRHJvcGRvd25PcHRpb25zID8/IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhcmlhYmxlVmFsdWVCeU5hbWUodmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZXM/LmZpbmQoKHZhcmlhYmxlOiBUYXNrVmFyaWFibGVDbG91ZCkgPT4gdmFyaWFibGU/Lm5hbWUgPT09IGB2YXJpYWJsZXMuJHt2YXJpYWJsZU5hbWV9YCB8fCB2YXJpYWJsZT8ubmFtZSA9PT0gdmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgPy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tUmVzdEFwaSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZFJlc3RDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICBjb25zdCBib2R5UGFyYW0gPSB0aGlzLmJ1aWxkQm9keVBhcmFtKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1DbG91ZFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0UmVzdFdpZGdldERhdGEodGhpcy5maWVsZC5mb3JtLmlkLCB0aGlzLmZpZWxkLmlkLCBib2R5UGFyYW0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IEZvcm1GaWVsZE9wdGlvbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UmVzdEFwaUVycm9yTWVzc2FnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkQm9keVBhcmFtKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGJvZHlQYXJhbSA9IE9iamVjdC5hc3NpZ24oe30pO1xuICAgICAgICBpZiAodGhpcy5pc0xpbmtlZFdpZGdldCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0VmFsdWUgPSB0aGlzLmdldFBhcmVudFdpZGdldFZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRJZCA9IHRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgICAgICAgICBib2R5UGFyYW1bcGFyZW50V2lkZ2V0SWRdID0gcGFyZW50V2lkZ2V0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVXRpbHNTZXJ2aWNlLmdldFJlc3RVcmxWYXJpYWJsZXNNYXAodGhpcy5maWVsZC5mb3JtLCB0aGlzLmZpZWxkLnJlc3RVcmwsIGJvZHlQYXJhbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRmllbGRPcHRpb25zRm9yTGlua2VkV2lkZ2V0KCkge1xuICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRWYWx1ZSA9IHRoaXMuZ2V0UGFyZW50V2lkZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZUNoYW5nZWQocGFyZW50V2lkZ2V0VmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUZpZWxkVmFsdWVDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBGb3JtRmllbGRFdmVudCkgPT4gdGhpcy5pc0Zvcm1GaWVsZEV2ZW50T2ZUeXBlRHJvcGRvd24oZXZlbnQpICYmIHRoaXMuaXNQYXJlbnRGb3JtRmllbGRFdmVudChldmVudCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRm9ybUZpZWxkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZU9mUGFyZW50V2lkZ2V0ID0gZXZlbnQuZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZUNoYW5nZWQodmFsdWVPZlBhcmVudFdpZGdldCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFdpZGdldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZGdldElkID0gdGhpcy5saW5rZWRXaWRnZXRJZDtcbiAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0ID0gdGhpcy5nZXRGb3JtRmllbGRCeUlkKHBhcmVudFdpZGdldElkKTtcbiAgICAgICAgcmV0dXJuIHBhcmVudFdpZGdldD8udmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJlbnRWYWx1ZUNoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgJiYgIXRoaXMuaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZFJlc3RDb25maWcgPyB0aGlzLnBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tUmVzdEFwaSgpIDogdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbU1hbnVhbExpc3QodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5yZXNldEludmFsaWRWYWx1ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUZpZWxkQnlJZChmaWVsZElkKTogRm9ybUZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZC5mb3JtLmdldEZvcm1GaWVsZHMoKS5maWx0ZXIoKGZpZWxkOiBGb3JtRmllbGRNb2RlbCkgPT4gZmllbGQuaWQgPT09IGZpZWxkSWQpWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGVyc2lzdEZpZWxkT3B0aW9uc0Zyb21NYW51YWxMaXN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUnVsZUVudHJpZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcnVsZXNFbnRyaWVzID0gdGhpcy5maWVsZC5ydWxlLmVudHJpZXM7XG4gICAgICAgICAgICBydWxlc0VudHJpZXMuZm9yRWFjaCgocnVsZUVudHJ5OiBSdWxlRW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocnVsZUVudHJ5LmtleSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHJ1bGVFbnRyeS5vcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldEludmFsaWRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRJbnZhbGlkVmFsdWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkVmFsdWUoKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0VmFsdWUoKSB7XG4gICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQodGhpcy5maWVsZCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQudmFsdWUgJiYgdGhpcy5pc1NlbGVjdGVkVmFsdWVJbk9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2VsZWN0ZWRWYWx1ZUluT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWVsZC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbklkTGlzdCA9IFsuLi50aGlzLmZpZWxkLm9wdGlvbnNdLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uaWQpO1xuICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZUlkcyA9IHRoaXMuZmllbGQudmFsdWUubWFwKCh2YWx1ZU9wdGlvbikgPT4gdmFsdWVPcHRpb24uaWQpO1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWVJZHMuZXZlcnkoKHZhbHVlT3B0aW9uSWQpID0+IG9wdGlvbklkTGlzdC5pbmNsdWRlcyh2YWx1ZU9wdGlvbklkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZD8udmFsdWUgJiYgdHlwZW9mIHRoaXMuZmllbGQ/LnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4udGhpcy5maWVsZC5vcHRpb25zXS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmlkKS5pbmNsdWRlcyh0aGlzLmZpZWxkLnZhbHVlLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmZpZWxkLm9wdGlvbnNdLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uaWQpLmluY2x1ZGVzKHRoaXMuZmllbGQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNSdWxlRW50cmllcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZC5ydWxlLmVudHJpZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRPcHRpb25zKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQYXJlbnRGb3JtRmllbGRFdmVudChldmVudDogRm9ybUZpZWxkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmZpZWxkLmlkID09PSB0aGlzLmxpbmtlZFdpZGdldElkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtRmllbGRFdmVudE9mVHlwZURyb3Bkb3duKGV2ZW50OiBGb3JtRmllbGRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZXZlbnQuZmllbGQudHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuRFJPUERPV047XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPcHRpb25WYWx1ZShvcHRpb246IEZvcm1GaWVsZE9wdGlvbiB8IEZvcm1GaWVsZE9wdGlvbltdLCBmaWVsZDogRm9ybUZpZWxkTW9kZWwpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uKSB8fCBmaWVsZC5oYXNNdWx0aXBsZVZhbHVlcykge1xuICAgICAgICAgICAgZmllbGQudmFsdWUgPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9uVmFsdWU6IHN0cmluZyA9ICcnO1xuICAgICAgICBpZiAob3B0aW9uLmlkID09PSBERUZBVUxUX09QVElPTi5pZCkge1xuICAgICAgICAgICAgb3B0aW9uVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLm5hbWUgIT09IGZpZWxkLnZhbHVlKSB7XG4gICAgICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvbi5pZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlID0gb3B0aW9uLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC52YWx1ZSA9IG9wdGlvblZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UHJldmlld1N0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdTdGF0ZSA9IHRoaXMuZm9ybUNsb3VkU2VydmljZS5nZXRQcmV2aWV3U3RhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRFcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlT3B0aW9ucyhvcHRpb25zPzogRm9ybUZpZWxkT3B0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5maWVsZC5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdCQubmV4dCh0aGlzLmZpZWxkLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNob3dJbnB1dEZpbHRlciA9IHRoaXMuZmllbGQub3B0aW9ucy5sZW5ndGggPiB0aGlzLmFwcENvbmZpZy5nZXQ8bnVtYmVyPignZm9ybS5kcm9wRG93bkZpbHRlckxpbWl0JywgSElERV9GSUxURVJfTElNSVQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUmVzdEFwaUZhaWxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc3RBcGlIb3N0TmFtZSA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRSZXN0QXBpT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuaXNSZXN0QXBpRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXN0QXBpSG9zdE5hbWUgPSB0aGlzLmdldFJlc3RVcmxIb3N0TmFtZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVzdFVybEhvc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVSTCh0aGlzLmZpZWxkPy5yZXN0VXJsKS5ob3N0bmFtZTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZD8ucmVzdFVybDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImFkZi1kcm9wZG93bi13aWRnZXQge3tmaWVsZC5jbGFzc05hbWV9fVwiXG4gICAgW2NsYXNzLmFkZi1pbnZhbGlkXT1cImRyb3Bkb3duQ29udHJvbC5pbnZhbGlkICYmIGRyb3Bkb3duQ29udHJvbC50b3VjaGVkXCJcbiAgICBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAge3sgZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mb3JtLWZpZWxkLWlucHV0XCI+XG4gICAgICAgICAgICBAaWYgKCAoZmllbGQubmFtZSB8fCB0aGlzLmZpZWxkPy5yZXF1aXJlZCkgJiYgIWZpZWxkLmxlZnRMYWJlbHMpIHsgIDxtYXQtbGFiZWwgY2xhc3M9XCJhZGYtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj57eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+IH1cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZHJvcGRvd25Db250cm9sXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRHJvcGRvd25WYWx1ZXNcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzPVwiYWRmLXNlbGVjdC1maWx0ZXJcIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmaWVsZC5oYXNNdWx0aXBsZVZhbHVlc1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWQgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YWRmLXNlbGVjdC1maWx0ZXItaW5wdXQgKm5nSWY9XCJzaG93SW5wdXRGaWx0ZXJcIiAoY2hhbmdlKT1cImZpbHRlciQubmV4dCgkZXZlbnQpXCIgLz5cblxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHQgb2YgbGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRcIiBbaWRdPVwib3B0LmlkXCI+e3tvcHQubmFtZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGlkPVwicmVhZG9ubHlPcHRpb25cIiAqbmdJZj1cImlzUmVhZE9ubHlUeXBlXCIgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCI+e3tmaWVsZC52YWx1ZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLW1lc3NhZ2VzLWNvbnRhaW5lclwiICpuZ0lmPVwiIXByZXZpZXdTdGF0ZSAmJiAhZmllbGQucmVhZE9ubHlcIj5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1kcm9wZG93bi1yZXF1aXJlZC1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSZXF1aXJlZE1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwie3sgJ0ZPUk0uRklFTEQuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZXJyb3Itd2lkZ2V0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tZmFpbGVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNSZXN0QXBpRmFpbGVkXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFU1RfQVBJX0ZBSUxFRCcgfCB0cmFuc2xhdGU6IHsgaG9zdG5hbWU6IHJlc3RBcGlIb3N0TmFtZSB9IH19XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZXJyb3Itd2lkZ2V0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tZmFpbGVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmFyaWFibGVPcHRpb25zRmFpbGVkXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlZBUklBQkxFX0RST1BET1dOX09QVElPTlNfRkFJTEVEJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
463
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY2xvdWQud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWNsb3VkLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEVBR2QsY0FBYyxFQUNkLFdBQVcsRUFHWCwwQkFBMEIsRUFDMUIsZUFBZSxFQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFB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U0FDbEIsZUFBZSxvckJBQ2Ysb0JBQW9CLG1GQUNwQixhQUFhLGtEQUNiLDBCQUEwQjs7NEZBR3JCLDRCQUE0QjtrQkFsQnhDLFNBQVM7K0JBQ0ksdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsMEJBQTBCO3FCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBBcHBDb25maWdTZXJ2aWNlLFxuICAgIEVycm9yTWVzc2FnZU1vZGVsLFxuICAgIEVycm9yV2lkZ2V0Q29tcG9uZW50LFxuICAgIEZvcm1GaWVsZEV2ZW50LFxuICAgIEZvcm1GaWVsZE1vZGVsLFxuICAgIEZvcm1GaWVsZE9wdGlvbixcbiAgICBGb3JtRmllbGRUeXBlcyxcbiAgICBGb3JtU2VydmljZSxcbiAgICBSZWFjdGl2ZUZvcm1XaWRnZXQsXG4gICAgUnVsZUVudHJ5LFxuICAgIFNlbGVjdEZpbHRlcklucHV0Q29tcG9uZW50LFxuICAgIFdpZGdldENvbXBvbmVudFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1VdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVmYXVsdFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BUSU9OID0ge1xuICAgIGlkOiAnZW1wdHknLFxuICAgIG5hbWU6ICdDaG9vc2Ugb25lLi4uJ1xufTtcbmV4cG9ydCBjb25zdCBISURFX0ZJTFRFUl9MSU1JVCA9IDU7XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkcm9wZG93bi1jbG91ZC13aWRnZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1jbG91ZC53aWRnZXQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tY2xvdWQud2lkZ2V0LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIFNlbGVjdEZpbHRlcklucHV0Q29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNsb3VkV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBSZWFjdGl2ZUZvcm1XaWRnZXQge1xuICAgIHB1YmxpYyBmb3JtU2VydmljZSA9IGluamVjdChGb3JtU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQ2xvdWRTZXJ2aWNlID0gaW5qZWN0KEZvcm1DbG91ZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnID0gaW5qZWN0KEFwcENvbmZpZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVV0aWxzU2VydmljZSA9IGluamVjdChGb3JtVXRpbHNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICB0eXBlSWQgPSAnRHJvcGRvd25DbG91ZFdpZGdldENvbXBvbmVudCc7XG4gICAgc2hvd0lucHV0RmlsdGVyID0gZmFsc2U7XG4gICAgaXNSZXN0QXBpRmFpbGVkID0gZmFsc2U7XG4gICAgdmFyaWFibGVPcHRpb25zRmFpbGVkID0gZmFsc2U7XG4gICAgcHJldmlld1N0YXRlID0gZmFsc2U7XG4gICAgcmVzdEFwaUhvc3ROYW1lOiBzdHJpbmc7XG4gICAgZHJvcGRvd25Db250cm9sID0gbmV3IEZvcm1Db250cm9sPEZvcm1GaWVsZE9wdGlvbiB8IEZvcm1GaWVsZE9wdGlvbltdPih1bmRlZmluZWQpO1xuXG4gICAgbGlzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1GaWVsZE9wdGlvbltdPihbXSk7XG4gICAgZmlsdGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRWYXJpYWJsZU9wdGlvbklkID0gJ2lkJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRWYXJpYWJsZU9wdGlvbkxhYmVsID0gJ25hbWUnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uUGF0aCA9ICdkYXRhJztcblxuICAgIGdldCBzaG93UmVxdWlyZWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kcm9wZG93bkNvbnRyb2wudG91Y2hlZCAmJiB0aGlzLmRyb3Bkb3duQ29udHJvbC5lcnJvcnM/LnJlcXVpcmVkICYmICF0aGlzLmlzUmVzdEFwaUZhaWxlZCAmJiAhdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzUmVhZE9ubHlUeXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZC50eXBlID09PSAncmVhZG9ubHknO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzTGlua2VkV2lkZ2V0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmxpbmtlZFdpZGdldElkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGxpbmtlZFdpZGdldElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkPy5ydWxlPy5ydWxlT247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNSZWFkT25seUZvcm0oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmllbGQ/LmZvcm0/LnJlYWRPbmx5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGhhc1Jlc3RVcmwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmllbGQ/LnJlc3RVcmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNWYWxpZFJlc3RDb25maWcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVzdE9wdGlvblR5cGUgJiYgdGhpcy5oYXNSZXN0VXJsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzUmVzdE9wdGlvblR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkPy5vcHRpb25UeXBlID09PSAncmVzdCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNWYXJpYWJsZU9wdGlvblR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkPy5vcHRpb25UeXBlID09PSAndmFyaWFibGUnO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldHVwRHJvcGRvd24oKTtcblxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLm9uRm9ybVZhcmlhYmxlQ2hhbmdlZC5zdWJzY3JpYmUoKHsgZmllbGQgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpZWxkLmlkID09PSB0aGlzLmZpZWxkLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cERyb3Bkb3duKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xTdGF0ZSgpO1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9ycygpO1xuICAgIH1cblxuICAgIGNvbXBhcmVEcm9wZG93blZhbHVlcyhvcHQxOiBGb3JtRmllbGRPcHRpb24gfCBzdHJpbmcsIG9wdDI6IEZvcm1GaWVsZE9wdGlvbiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW9wdDEgfHwgIW9wdDIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0MSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG9wdDIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0MSA9PT0gb3B0Mi5pZCB8fCBvcHQxID09PSBvcHQyLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG9wdDEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcHQyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdDEuaWQgPT09IG9wdDIgfHwgb3B0MS5uYW1lID09PSBvcHQyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHQxID09PSAnb2JqZWN0JyAmJiB0eXBlb2Ygb3B0MiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHQxLmlkID09PSBvcHQyLmlkIHx8IG9wdDEubmFtZSA9PT0gb3B0Mi5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdDEgPT09IG9wdDI7XG4gICAgfVxuXG4gICAgc2VsZWN0aW9uQ2hhbmdlZEZvckZpZWxkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3JtRmllbGRWYWx1ZUNoYW5nZWRFdmVudCA9IG5ldyBGb3JtRmllbGRFdmVudChmaWVsZC5mb3JtLCBmaWVsZCk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUZpZWxkVmFsdWVDaGFuZ2VkLm5leHQoZm9ybUZpZWxkVmFsdWVDaGFuZ2VkRXZlbnQpO1xuICAgICAgICB0aGlzLm9uRmllbGRDaGFuZ2VkKGZpZWxkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UHJldmlld1N0YXRlKCk7XG5cbiAgICAgICAgdGhpcy5jaGVja0ZpZWxkT3B0aW9uc1NvdXJjZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9JbnB1dENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0lucHV0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLmZpZWxkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE9wdGlvblZhbHVlKHZhbHVlLCB0aGlzLmZpZWxkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZEZvckZpZWxkKHRoaXMuZmllbGQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmZpZWxkLnZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuc2V0VmFsdWUodGhpcy5maWVsZD8udmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkPy52YWx1ZSAmJiB0eXBlb2YgdGhpcy5maWVsZD8udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh7IGlkOiB0aGlzLmZpZWxkPy52YWx1ZS5pZCwgbmFtZTogdGhpcy5maWVsZD8udmFsdWUubmFtZSB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuc2V0VmFsdWUodGhpcy5maWVsZD8udmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLnNldFZhbHVlKHsgaWQ6IHRoaXMuZmllbGQ/LnZhbHVlLCBuYW1lOiAnJyB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUZvcm1Db250cm9sU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRHJvcGRvd25WYWxpZGF0aW9uUnVsZXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVEcm9wZG93blJlYWRvbmx5UnVsZXMoKTtcbiAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEcm9wZG93blZhbGlkYXRpb25SdWxlcygpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbXSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkPy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzUmVxdWlyZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQuaGFzRW1wdHlWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLmFkZFZhbGlkYXRvcnMoW2RlZmF1bHRWYWx1ZVZhbGlkYXRvcih0aGlzLmZpZWxkKV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEcm9wZG93blJlYWRvbmx5UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkPy5yZWFkT25seSB8fCB0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db250cm9sLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKCcnKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQubWFya0FzVmFsaWQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZHJvcGRvd25Db250cm9sLmVycm9ycy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWxpZGF0aW9uU3VtbWFyeSA9IG5ldyBFcnJvck1lc3NhZ2VNb2RlbCh7IG1lc3NhZ2U6ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB9KTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQubWFya0FzSW52YWxpZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RmlsdGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlciRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoc2VhcmNoKSA9PiBzZWFyY2ggIT09IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgbWFwKChzZWFyY2gpID0+XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaCA/IHRoaXMuZmllbGQub3B0aW9ucy5maWx0ZXIoKHsgbmFtZSB9KSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpKSA6IHRoaXMuZmllbGQub3B0aW9uc1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4gdGhpcy5saXN0JC5uZXh0KHJlc3VsdCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGaWVsZE9wdGlvbnNTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLmlzUmVhZE9ubHlGb3JtOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmlzVmFsaWRSZXN0Q29uZmlnICYmICF0aGlzLmlzTGlua2VkV2lkZ2V0OlxuICAgICAgICAgICAgICAgIHRoaXMucGVyc2lzdEZpZWxkT3B0aW9uc0Zyb21SZXN0QXBpKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgdGhpcy5pc0xpbmtlZFdpZGdldDpcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRGaWVsZE9wdGlvbnNGb3JMaW5rZWRXaWRnZXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSB0aGlzLmlzVmFyaWFibGVPcHRpb25UeXBlOlxuICAgICAgICAgICAgICAgIHRoaXMucGVyc2lzdEZpZWxkT3B0aW9uc0Zyb21WYXJpYWJsZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwZXJzaXN0RmllbGRPcHRpb25zRnJvbVZhcmlhYmxlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcHRpb25zUGF0aCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zUGF0aCA/PyB0aGlzLmRlZmF1bHRWYXJpYWJsZU9wdGlvblBhdGg7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy52YXJpYWJsZU5hbWU7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NWYXJpYWJsZXMgPSB0aGlzLmZpZWxkPy5mb3JtPy5wcm9jZXNzVmFyaWFibGVzO1xuICAgICAgICBjb25zdCBmb3JtVmFyaWFibGVzID0gdGhpcy5maWVsZD8uZm9ybT8udmFyaWFibGVzO1xuXG4gICAgICAgIGNvbnN0IGRyb3Bkb3duT3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9uc0Zyb21WYXJpYWJsZShwcm9jZXNzVmFyaWFibGVzLCBmb3JtVmFyaWFibGVzLCB2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmIChkcm9wZG93bk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZU9wdGlvbnM6IEZvcm1GaWVsZE9wdGlvbltdID0gdGhpcy5nZXRPcHRpb25zRnJvbVBhdGgoZHJvcGRvd25PcHRpb25zLCBvcHRpb25zUGF0aCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoZm9ybVZhcmlhYmxlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0SW52YWxpZFZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoYCR7dmFyaWFibGVOYW1lfSBub3QgZm91bmRgKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRPcHRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlT3B0aW9uc0ZhaWxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbnNGcm9tUGF0aChkYXRhOiBhbnksIHBhdGg6IHN0cmluZyk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uc0lkID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/Lm9wdGlvbnNJZCA/PyB0aGlzLmRlZmF1bHRWYXJpYWJsZU9wdGlvbklkO1xuICAgICAgICBjb25zdCBvcHRpb25zTGFiZWwgPSB0aGlzLmZpZWxkPy52YXJpYWJsZUNvbmZpZz8ub3B0aW9uc0xhYmVsID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uTGFiZWw7XG5cbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgY3VycmVudFByb3BlcnR5ID0gcHJvcGVydGllcy5zaGlmdCgpO1xuXG4gICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGN1cnJlbnRQcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoYCR7Y3VycmVudFByb3BlcnR5fSBub3QgZm91bmQgaW4gJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVPcHRpb25zRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5lc3RlZERhdGEgPSBkYXRhW2N1cnJlbnRQcm9wZXJ0eV07XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmVzdGVkRGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE9wdGlvbnNGcm9tQXJyYXkobmVzdGVkRGF0YSwgb3B0aW9uc0lkLCBvcHRpb25zTGFiZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9uc0Zyb21QYXRoKG5lc3RlZERhdGEsIHByb3BlcnRpZXMuam9pbignLicpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbnNGcm9tQXJyYXkobmVzdGVkRGF0YTogYW55W10sIGlkOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBGb3JtRmllbGRPcHRpb25bXSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBuZXN0ZWREYXRhLm1hcCgoaXRlbSkgPT4gdGhpcy5jcmVhdGVPcHRpb24oaXRlbSwgaWQsIGxhYmVsKSk7XG4gICAgICAgIGNvbnN0IGhhc0ludmFsaWRPcHRpb24gPSBvcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gIW9wdGlvbik7XG5cbiAgICAgICAgaWYgKGhhc0ludmFsaWRPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVPcHRpb25zRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFyaWFibGVPcHRpb25zRmFpbGVkID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uKGl0ZW06IGFueSwgaWQ6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IEZvcm1GaWVsZE9wdGlvbiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbjogRm9ybUZpZWxkT3B0aW9uID0ge1xuICAgICAgICAgICAgaWQ6IGl0ZW1baWRdLFxuICAgICAgICAgICAgbmFtZTogaXRlbVtsYWJlbF1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIW9wdGlvbi5pZCB8fCAhb3B0aW9uLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoYCdpZCcgb3IgJ2xhYmVsJyBpcyBub3QgcHJvcGVybHkgZGVmaW5lZGApO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25zRnJvbVZhcmlhYmxlKFxuICAgICAgICBwcm9jZXNzVmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLFxuICAgICAgICBmb3JtVmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLFxuICAgICAgICB2YXJpYWJsZU5hbWU6IHN0cmluZ1xuICAgICk6IFRhc2tWYXJpYWJsZUNsb3VkIHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1ZhcmlhYmxlRHJvcGRvd25PcHRpb25zOiBUYXNrVmFyaWFibGVDbG91ZCA9IHRoaXMuZ2V0VmFyaWFibGVWYWx1ZUJ5TmFtZShwcm9jZXNzVmFyaWFibGVzLCB2YXJpYWJsZU5hbWUpO1xuICAgICAgICBjb25zdCBmb3JtVmFyaWFibGVEcm9wZG93bk9wdGlvbnM6IFRhc2tWYXJpYWJsZUNsb3VkID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKGZvcm1WYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHByb2Nlc3NWYXJpYWJsZURyb3Bkb3duT3B0aW9ucyA/PyBmb3JtVmFyaWFibGVEcm9wZG93bk9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHZhcmlhYmxlczogVGFza1ZhcmlhYmxlQ2xvdWRbXSwgdmFyaWFibGVOYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGVzPy5maW5kKCh2YXJpYWJsZTogVGFza1ZhcmlhYmxlQ2xvdWQpID0+IHZhcmlhYmxlPy5uYW1lID09PSBgdmFyaWFibGVzLiR7dmFyaWFibGVOYW1lfWAgfHwgdmFyaWFibGU/Lm5hbWUgPT09IHZhcmlhYmxlTmFtZSlcbiAgICAgICAgICAgID8udmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwZXJzaXN0RmllbGRPcHRpb25zRnJvbVJlc3RBcGkoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWRSZXN0Q29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UmVzdEFwaUVycm9yTWVzc2FnZSgpO1xuICAgICAgICAgICAgY29uc3QgYm9keVBhcmFtID0gdGhpcy5idWlsZEJvZHlQYXJhbSgpO1xuICAgICAgICAgICAgdGhpcy5mb3JtQ2xvdWRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldFJlc3RXaWRnZXREYXRhKHRoaXMuZmllbGQuZm9ybS5pZCwgdGhpcy5maWVsZC5pZCwgYm9keVBhcmFtKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiAocmVzdWx0OiBGb3JtRmllbGRPcHRpb25bXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldFJlc3RBcGlFcnJvck1lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC51cGRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0SW52YWxpZFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UmVzdEFwaU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEJvZHlQYXJhbSgpOiBhbnkge1xuICAgICAgICBjb25zdCBib2R5UGFyYW0gPSBPYmplY3QuYXNzaWduKHt9KTtcbiAgICAgICAgaWYgKHRoaXMuaXNMaW5rZWRXaWRnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudFdpZGdldFZhbHVlID0gdGhpcy5nZXRQYXJlbnRXaWRnZXRWYWx1ZSgpO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0SWQgPSB0aGlzLmxpbmtlZFdpZGdldElkO1xuICAgICAgICAgICAgYm9keVBhcmFtW3BhcmVudFdpZGdldElkXSA9IHBhcmVudFdpZGdldFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVV0aWxzU2VydmljZS5nZXRSZXN0VXJsVmFyaWFibGVzTWFwKHRoaXMuZmllbGQuZm9ybSwgdGhpcy5maWVsZC5yZXN0VXJsLCBib2R5UGFyYW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEZpZWxkT3B0aW9uc0ZvckxpbmtlZFdpZGdldCgpIHtcbiAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0VmFsdWUgPSB0aGlzLmdldFBhcmVudFdpZGdldFZhbHVlKCk7XG4gICAgICAgIHRoaXMucGFyZW50VmFsdWVDaGFuZ2VkKHBhcmVudFdpZGdldFZhbHVlKTtcblxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmZvcm1GaWVsZFZhbHVlQ2hhbmdlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudDogRm9ybUZpZWxkRXZlbnQpID0+IHRoaXMuaXNGb3JtRmllbGRFdmVudE9mVHlwZURyb3Bkb3duKGV2ZW50KSAmJiB0aGlzLmlzUGFyZW50Rm9ybUZpZWxkRXZlbnQoZXZlbnQpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEZvcm1GaWVsZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVPZlBhcmVudFdpZGdldCA9IGV2ZW50LmZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50VmFsdWVDaGFuZ2VkKHZhbHVlT2ZQYXJlbnRXaWRnZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJlbnRXaWRnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRJZCA9IHRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZGdldCA9IHRoaXMuZ2V0Rm9ybUZpZWxkQnlJZChwYXJlbnRXaWRnZXRJZCk7XG4gICAgICAgIHJldHVybiBwYXJlbnRXaWRnZXQ/LnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyZW50VmFsdWVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlICYmICF0aGlzLmlzTm9uZVZhbHVlU2VsZWN0ZWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWRSZXN0Q29uZmlnID8gdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVJlc3RBcGkoKSA6IHRoaXMucGVyc2lzdEZpZWxkT3B0aW9uc0Zyb21NYW51YWxMaXN0KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTm9uZVZhbHVlU2VsZWN0ZWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UmVzdEFwaUVycm9yTWVzc2FnZSgpO1xuICAgICAgICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhbXSk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0SW52YWxpZFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTm9uZVZhbHVlU2VsZWN0ZWQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1GaWVsZEJ5SWQoZmllbGRJZCk6IEZvcm1GaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQuZm9ybS5nZXRGb3JtRmllbGRzKCkuZmlsdGVyKChmaWVsZDogRm9ybUZpZWxkTW9kZWwpID0+IGZpZWxkLmlkID09PSBmaWVsZElkKVswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tTWFudWFsTGlzdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc1J1bGVFbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVzRW50cmllcyA9IHRoaXMuZmllbGQucnVsZS5lbnRyaWVzO1xuICAgICAgICAgICAgcnVsZXNFbnRyaWVzLmZvckVhY2goKHJ1bGVFbnRyeTogUnVsZUVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVFbnRyeS5rZXkgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhydWxlRW50cnkub3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC51cGRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0SW52YWxpZFZhbHVlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFZhbHVlKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFZhbHVlKCkge1xuICAgICAgICB0aGlzLmZpZWxkLnZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZEZvckZpZWxkKHRoaXMuZmllbGQpO1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy5maWVsZC51cGRhdGVGb3JtKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnZhbHVlICYmIHRoaXMuaXNTZWxlY3RlZFZhbHVlSW5PcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkVmFsdWVJbk9wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25JZExpc3QgPSBbLi4udGhpcy5maWVsZC5vcHRpb25zXS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkVmFsdWVJZHMgPSB0aGlzLmZpZWxkLnZhbHVlLm1hcCgodmFsdWVPcHRpb24pID0+IHZhbHVlT3B0aW9uLmlkKTtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZFZhbHVlSWRzLmV2ZXJ5KCh2YWx1ZU9wdGlvbklkKSA9PiBvcHRpb25JZExpc3QuaW5jbHVkZXModmFsdWVPcHRpb25JZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnZhbHVlICYmIHR5cGVvZiB0aGlzLmZpZWxkPy52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLnRoaXMuZmllbGQub3B0aW9uc10ubWFwKChvcHRpb24pID0+IG9wdGlvbi5pZCkuaW5jbHVkZXModGhpcy5maWVsZC52YWx1ZS5pZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4udGhpcy5maWVsZC5vcHRpb25zXS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmlkKS5pbmNsdWRlcyh0aGlzLmZpZWxkLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFzUnVsZUVudHJpZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmllbGQucnVsZS5lbnRyaWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3B0aW9ucygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGFyZW50Rm9ybUZpZWxkRXZlbnQoZXZlbnQ6IEZvcm1GaWVsZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBldmVudC5maWVsZC5pZCA9PT0gdGhpcy5saW5rZWRXaWRnZXRJZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRm9ybUZpZWxkRXZlbnRPZlR5cGVEcm9wZG93bihldmVudDogRm9ybUZpZWxkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmZpZWxkLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRST1BET1dOO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0T3B0aW9uVmFsdWUob3B0aW9uOiBGb3JtRmllbGRPcHRpb24gfCBGb3JtRmllbGRPcHRpb25bXSwgZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbikgfHwgZmllbGQuaGFzTXVsdGlwbGVWYWx1ZXMpIHtcbiAgICAgICAgICAgIGZpZWxkLnZhbHVlID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG9wdGlvblZhbHVlOiBzdHJpbmcgPSAnJztcbiAgICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gREVGQVVMVF9PUFRJT04uaWQpIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5uYW1lICE9PSBmaWVsZC52YWx1ZSkge1xuICAgICAgICAgICAgb3B0aW9uVmFsdWUgPSBvcHRpb24uaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvbi5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQudmFsdWUgPSBvcHRpb25WYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFByZXZpZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3U3RhdGUgPSB0aGlzLmZvcm1DbG91ZFNlcnZpY2UuZ2V0UHJldmlld1N0YXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5wcmV2aWV3U3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0RXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU9wdGlvbnMob3B0aW9ucz86IEZvcm1GaWVsZE9wdGlvbltdKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5maWVsZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3QkLm5leHQodGhpcy5maWVsZC5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5zaG93SW5wdXRGaWx0ZXIgPSB0aGlzLmZpZWxkLm9wdGlvbnMubGVuZ3RoID4gdGhpcy5hcHBDb25maWcuZ2V0PG51bWJlcj4oJ2Zvcm0uZHJvcERvd25GaWx0ZXJMaW1pdCcsIEhJREVfRklMVEVSX0xJTUlUKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0UmVzdEFwaUVycm9yTWVzc2FnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Jlc3RBcGlGYWlsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXN0QXBpSG9zdE5hbWUgPSAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0UmVzdEFwaU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhbXSk7XG4gICAgICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLmlzUmVzdEFwaUZhaWxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucmVzdEFwaUhvc3ROYW1lID0gdGhpcy5nZXRSZXN0VXJsSG9zdE5hbWUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlc3RVcmxIb3N0TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBVUkwodGhpcy5maWVsZD8ucmVzdFVybCkuaG9zdG5hbWU7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/LnJlc3RVcmw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJhZGYtZHJvcGRvd24td2lkZ2V0IHt7ZmllbGQuY2xhc3NOYW1lfX1cIlxuICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCJkcm9wZG93bkNvbnRyb2wuaW52YWxpZCAmJiBkcm9wZG93bkNvbnRyb2wudG91Y2hlZFwiXG4gICAgW2NsYXNzLmFkZi1yZWFkb25seV09XCJmaWVsZC5yZWFkT25seVwiXG4gICAgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsLWlucHV0LWNvbnRhaW5lcl09XCJmaWVsZC5sZWZ0TGFiZWxzXCJcbj5cbiAgICA8ZGl2ICpuZ0lmPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZGYtbGFiZWwgYWRmLWxlZnQtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj5cbiAgICAgICAgICAgIHt7IGZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX08c3BhbiBjbGFzcz1cImFkZi1hc3Rlcmlza1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cImlzUmVxdWlyZWQoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtZm9ybS1maWVsZC1pbnB1dFwiPlxuICAgICAgICAgICAgQGlmICggKGZpZWxkLm5hbWUgfHwgdGhpcy5maWVsZD8ucmVxdWlyZWQpICYmICFmaWVsZC5sZWZ0TGFiZWxzKSB7ICA8bWF0LWxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+e3sgZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPiB9XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImRyb3Bkb3duQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZURyb3Bkb3duVmFsdWVzXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzcz1cImFkZi1zZWxlY3QtZmlsdGVyXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmllbGQuaGFzTXVsdGlwbGVWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5yZWFkT25seVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFkZi1zZWxlY3QtZmlsdGVyLWlucHV0ICpuZ0lmPVwic2hvd0lucHV0RmlsdGVyXCIgKGNoYW5nZSk9XCJmaWx0ZXIkLm5leHQoJGV2ZW50KVwiIC8+XG5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIGxpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0XCIgW2lkXT1cIm9wdC5pZFwiPnt7b3B0Lm5hbWV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBpZD1cInJlYWRvbmx5T3B0aW9uXCIgKm5nSWY9XCJpc1JlYWRPbmx5VHlwZVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiPnt7ZmllbGQudmFsdWV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci1tZXNzYWdlcy1jb250YWluZXJcIiAqbmdJZj1cIiFwcmV2aWV3U3RhdGUgJiYgIWZpZWxkLnJlYWRPbmx5XCI+XG4gICAgICAgICAgICA8ZXJyb3Itd2lkZ2V0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tcmVxdWlyZWQtbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UmVxdWlyZWRNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGVycm9yLXdpZGdldFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWRyb3Bkb3duLWZhaWxlZC1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzUmVzdEFwaUZhaWxlZFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVNUX0FQSV9GQUlMRUQnIHwgdHJhbnNsYXRlOiB7IGhvc3RuYW1lOiByZXN0QXBpSG9zdE5hbWUgfSB9fVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGVycm9yLXdpZGdldFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWRyb3Bkb3duLWZhaWxlZC1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInZhcmlhYmxlT3B0aW9uc0ZhaWxlZFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5WQVJJQUJMRV9EUk9QRE9XTl9PUFRJT05TX0ZBSUxFRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -17,22 +17,21 @@
|
|
|
17
17
|
import { Component, ViewEncapsulation } from '@angular/core';
|
|
18
18
|
import { FormService, BaseViewerWidgetComponent, ErrorWidgetComponent } from '@alfresco/adf-core';
|
|
19
19
|
import { AlfrescoViewerComponent } from '@alfresco/adf-content-services';
|
|
20
|
-
import {
|
|
20
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
21
21
|
import { NgIf } from '@angular/common';
|
|
22
22
|
import * as i0 from "@angular/core";
|
|
23
23
|
import * as i1 from "@alfresco/adf-core";
|
|
24
|
-
import * as i2 from "@ngx-translate/core";
|
|
25
24
|
/* eslint-disable @angular-eslint/component-selector */
|
|
26
25
|
export class FileViewerWidgetComponent extends BaseViewerWidgetComponent {
|
|
27
26
|
constructor(formService) {
|
|
28
27
|
super(formService);
|
|
29
28
|
}
|
|
30
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileViewerWidgetComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileViewerWidgetComponent, isStandalone: true, selector: "file-viewer-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-file-viewer-widget {{field.className}}\" [class.adf-invalid]=\"!field.isValid\"\n [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\">{{field.name | translate }}<span class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label>\n <adf-alfresco-viewer [overlayMode]=\"false\" [nodeId]=\"field.value\" [showViewer]=\"field.value\" [allowGoBack]=\"false\" />\n <error-widget [error]=\"field.validationSummary\" />\n</div>\n", styles: ["file-viewer-widget{height:100%;width:100%}file-viewer-widget .adf-file-viewer-widget{height:100%;width:100%}file-viewer-widget .adf-file-viewer-widget adf-viewer.adf-viewer{position:relative}file-viewer-widget .adf-file-viewer-widget adf-viewer.adf-viewer .adf-viewer-container .adf-viewer-content>div{height:90vh}\n"], dependencies: [{ kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: AlfrescoViewerComponent, selector: "adf-alfresco-viewer", inputs: ["nodeId", "versionId", "sharedLinkId", "showViewer", "maxRetries", "allowGoBack", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "allowDownload", "allowPrint", "allowFullScreen", "hideInfoButton", "closeButtonPosition", "sidebarRightTemplate", "sidebarLeftTemplate", "readOnly", "showToolbarDividers"], outputs: ["invalidSharedLink", "navigateBefore", "navigateNext", "showViewerChange"] }, { kind: "
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileViewerWidgetComponent, isStandalone: true, selector: "file-viewer-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-file-viewer-widget {{field.className}}\" [class.adf-invalid]=\"!field.isValid\"\n [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\">{{field.name | translate }}<span class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label>\n <adf-alfresco-viewer [overlayMode]=\"false\" [nodeId]=\"field.value\" [showViewer]=\"field.value\" [allowGoBack]=\"false\" />\n <error-widget [error]=\"field.validationSummary\" />\n</div>\n", styles: ["file-viewer-widget{height:100%;width:100%}file-viewer-widget .adf-file-viewer-widget{height:100%;width:100%}file-viewer-widget .adf-file-viewer-widget adf-viewer.adf-viewer{position:relative}file-viewer-widget .adf-file-viewer-widget adf-viewer.adf-viewer .adf-viewer-container .adf-viewer-content>div{height:90vh}\n"], dependencies: [{ kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: AlfrescoViewerComponent, selector: "adf-alfresco-viewer", inputs: ["nodeId", "versionId", "sharedLinkId", "showViewer", "maxRetries", "allowGoBack", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "allowDownload", "allowPrint", "allowFullScreen", "hideInfoButton", "closeButtonPosition", "sidebarRightTemplate", "sidebarLeftTemplate", "readOnly", "showToolbarDividers"], outputs: ["invalidSharedLink", "navigateBefore", "navigateNext", "showViewerChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
32
31
|
}
|
|
33
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileViewerWidgetComponent, decorators: [{
|
|
34
33
|
type: Component,
|
|
35
|
-
args: [{ selector: 'file-viewer-widget', standalone: true, imports: [NgIf, ErrorWidgetComponent, AlfrescoViewerComponent,
|
|
34
|
+
args: [{ selector: 'file-viewer-widget', standalone: true, imports: [NgIf, ErrorWidgetComponent, AlfrescoViewerComponent, TranslatePipe], host: {
|
|
36
35
|
'(click)': 'event($event)',
|
|
37
36
|
'(blur)': 'event($event)',
|
|
38
37
|
'(change)': 'event($event)',
|
|
@@ -44,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44
43
|
'(select)': 'event($event)'
|
|
45
44
|
}, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-file-viewer-widget {{field.className}}\" [class.adf-invalid]=\"!field.isValid\"\n [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\">{{field.name | translate }}<span class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label>\n <adf-alfresco-viewer [overlayMode]=\"false\" [nodeId]=\"field.value\" [showViewer]=\"field.value\" [allowGoBack]=\"false\" />\n <error-widget [error]=\"field.validationSummary\" />\n</div>\n", styles: ["file-viewer-widget{height:100%;width:100%}file-viewer-widget .adf-file-viewer-widget{height:100%;width:100%}file-viewer-widget .adf-file-viewer-widget adf-viewer.adf-viewer{position:relative}file-viewer-widget .adf-file-viewer-widget adf-viewer.adf-viewer .adf-viewer-container .adf-viewer-content>div{height:90vh}\n"] }]
|
|
46
45
|
}], ctorParameters: () => [{ type: i1.FormService }] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9maWxlLXZpZXdlci9maWxlLXZpZXdlci53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2ZpbGUtdmlld2VyL2ZpbGUtdmlld2VyLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV2Qyx1REFBdUQ7QUFxQnZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx5QkFBeUI7SUFDcEUsWUFBWSxXQUF3QjtRQUNoQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkIsQ0FBQzsrR0FIUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixnWEM1Q3RDLHdtQkFPQSxzWERxQm9CLG9CQUFvQix3RkFBRSx1QkFBdUIsaWtCQUFFLGFBQWE7OzRGQWdCbkUseUJBQXlCO2tCQW5CckMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxRQUd2RTt3QkFDRixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsUUFBUSxFQUFFLGVBQWU7d0JBQ3pCLFVBQVUsRUFBRSxlQUFlO3dCQUMzQixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSwgQmFzZVZpZXdlcldpZGdldENvbXBvbmVudCwgRXJyb3JXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQWxmcmVzY29WaWV3ZXJDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmaWxlLXZpZXdlci13aWRnZXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIEVycm9yV2lkZ2V0Q29tcG9uZW50LCBBbGZyZXNjb1ZpZXdlckNvbXBvbmVudCwgVHJhbnNsYXRlUGlwZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdmlld2VyLndpZGdldC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLXZpZXdlci53aWRnZXQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoYmx1ciknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1cyknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGlucHV0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnZhbGlkKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhzZWxlY3QpJzogJ2V2ZW50KCRldmVudCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVWaWV3ZXJXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld2VyV2lkZ2V0Q29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihmb3JtU2VydmljZTogRm9ybVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtZmlsZS12aWV3ZXItd2lkZ2V0IHt7ZmllbGQuY2xhc3NOYW1lfX1cIiBbY2xhc3MuYWRmLWludmFsaWRdPVwiIWZpZWxkLmlzVmFsaWRcIlxuICAgIFtjbGFzcy5hZGYtcmVhZG9ubHldPVwiZmllbGQucmVhZE9ubHlcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhZGYtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj57e2ZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX08c3BhbiBjbGFzcz1cImFkZi1hc3Rlcmlza1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+PC9sYWJlbD5cbiAgICA8YWRmLWFsZnJlc2NvLXZpZXdlciBbb3ZlcmxheU1vZGVdPVwiZmFsc2VcIiBbbm9kZUlkXT1cImZpZWxkLnZhbHVlXCIgW3Nob3dWaWV3ZXJdPVwiZmllbGQudmFsdWVcIiBbYWxsb3dHb0JhY2tdPVwiZmFsc2VcIiAvPlxuICAgIDxlcnJvci13aWRnZXQgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCIgLz5cbjwvZGl2PlxuIl19
|
|
@@ -20,12 +20,11 @@ import { UntypedFormControl } from '@angular/forms';
|
|
|
20
20
|
import { filter } from 'rxjs/operators';
|
|
21
21
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
22
22
|
import { CommonModule } from '@angular/common';
|
|
23
|
-
import {
|
|
23
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
24
24
|
import { GroupCloudComponent } from '../../../../group/components/group-cloud.component';
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
26
|
import * as i1 from "@alfresco/adf-core";
|
|
27
27
|
import * as i2 from "@angular/common";
|
|
28
|
-
import * as i3 from "@ngx-translate/core";
|
|
29
28
|
/* eslint-disable @angular-eslint/component-selector */
|
|
30
29
|
export class GroupCloudWidgetComponent extends WidgetComponent {
|
|
31
30
|
constructor(formService) {
|
|
@@ -64,11 +63,11 @@ export class GroupCloudWidgetComponent extends WidgetComponent {
|
|
|
64
63
|
return this.mode === 'multiple';
|
|
65
64
|
}
|
|
66
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GroupCloudWidgetComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GroupCloudWidgetComponent, isStandalone: true, selector: "group-cloud-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n </div>\n <div>\n <adf-cloud-group\n [mode]=\"mode\"\n [title]=\"title\"\n [readOnly]=\"field.readOnly\"\n [validate]=\"validate\"\n [roles]=\"roles\"\n [searchGroupsControl]=\"search\"\n [required]=\"field.required\"\n (changedGroups)=\"onChangedGroup($event)\"\n [preSelectGroups]=\"preSelectGroup\"\n (blur)=\"markAsTouched()\"\n [attr.title]=\"field.tooltip\"\n [label] = \"field.name | translate\"\n />\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GroupCloudWidgetComponent, isStandalone: true, selector: "group-cloud-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n </div>\n <div>\n <adf-cloud-group\n [mode]=\"mode\"\n [title]=\"title\"\n [readOnly]=\"field.readOnly\"\n [validate]=\"validate\"\n [roles]=\"roles\"\n [searchGroupsControl]=\"search\"\n [required]=\"field.required\"\n (changedGroups)=\"onChangedGroup($event)\"\n [preSelectGroups]=\"preSelectGroup\"\n (blur)=\"markAsTouched()\"\n [attr.title]=\"field.tooltip\"\n [label] = \"field.name | translate\"\n />\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: GroupCloudComponent, selector: "adf-cloud-group", inputs: ["label", "appName", "title", "mode", "preSelectGroups", "validate", "readOnly", "required", "groupChipsCtrl", "searchGroupsControl", "roles"], outputs: ["selectGroup", "removeGroup", "changedGroups", "warning"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
68
67
|
}
|
|
69
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GroupCloudWidgetComponent, decorators: [{
|
|
70
69
|
type: Component,
|
|
71
|
-
args: [{ selector: 'group-cloud-widget', standalone: true, imports: [CommonModule,
|
|
70
|
+
args: [{ selector: 'group-cloud-widget', standalone: true, imports: [CommonModule, TranslatePipe, ErrorWidgetComponent, GroupCloudComponent], host: {
|
|
72
71
|
'(click)': 'event($event)',
|
|
73
72
|
'(blur)': 'event($event)',
|
|
74
73
|
'(change)': 'event($event)',
|
|
@@ -80,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
80
79
|
'(select)': 'event($event)'
|
|
81
80
|
}, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label\n >\n </div>\n <div>\n <adf-cloud-group\n [mode]=\"mode\"\n [title]=\"title\"\n [readOnly]=\"field.readOnly\"\n [validate]=\"validate\"\n [roles]=\"roles\"\n [searchGroupsControl]=\"search\"\n [required]=\"field.required\"\n (changedGroups)=\"onChangedGroup($event)\"\n [preSelectGroups]=\"preSelectGroup\"\n (blur)=\"markAsTouched()\"\n [attr.title]=\"field.tooltip\"\n [label] = \"field.name | translate\"\n />\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n</div>\n" }]
|
|
82
81
|
}], ctorParameters: () => [{ type: i1.FormService }] });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtY2xvdWQud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9ncm91cC9ncm91cC1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2dyb3VwL2dyb3VwLWNsb3VkLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7OztBQUV6Rix1REFBdUQ7QUFvQnZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxlQUFlO0lBVzFELFlBQVksV0FBd0I7UUFDaEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBWHZCLFdBQU0sR0FBRywyQkFBMkIsQ0FBQztRQU1yQyxhQUFRLEdBQUcsS0FB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QUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXJyb3JXaWRnZXRDb21wb25lbnQsIEZvcm1TZXJ2aWNlLCBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2VsZWN0aW9uTW9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IElkZW50aXR5R3JvdXBNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2dyb3VwL21vZGVscy9pZGVudGl0eS1ncm91cC5tb2RlbCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBHcm91cENsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZ3JvdXAvY29tcG9uZW50cy9ncm91cC1jbG91ZC5jb21wb25lbnQnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ3JvdXAtY2xvdWQtd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRXJyb3JXaWRnZXRDb21wb25lbnQsIEdyb3VwQ2xvdWRDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1jbG91ZC53aWRnZXQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhjaGFuZ2UpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW5wdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGludmFsaWQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKHNlbGVjdCknOiAnZXZlbnQoJGV2ZW50KSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBDbG91ZFdpZGdldENvbXBvbmVudCBleHRlbmRzIFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgdHlwZUlkID0gJ0dyb3VwQ2xvdWRXaWRnZXRDb21wb25lbnQnO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICBtb2RlOiBDb21wb25lbnRTZWxlY3Rpb25Nb2RlO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgcHJlU2VsZWN0R3JvdXA6IElkZW50aXR5R3JvdXBNb2RlbFtdO1xuICAgIHNlYXJjaDogVW50eXBlZEZvcm1Db250cm9sO1xuICAgIHZhbGlkYXRlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3Rvcihmb3JtU2VydmljZTogRm9ybVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuZmllbGQucm9sZXM7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSB0aGlzLmZpZWxkLm9wdGlvblR5cGUgYXMgQ29tcG9uZW50U2VsZWN0aW9uTW9kZTtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmZpZWxkLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RHcm91cCA9IHRoaXMuZmllbGQudmFsdWUgPyB0aGlzLmZpZWxkLnZhbHVlIDogW107XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlID0gdGhpcy5maWVsZC5yZWFkT25seSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlYXJjaCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0aGlzLmZpZWxkLnJlYWRPbmx5IH0sIFtdKTtcbiAgICAgICAgdGhpcy5zZWFyY2guc3RhdHVzQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZSA9PT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5mb3JtLm1hcmtBc0ludmFsaWQoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUgPT09ICdWQUxJRCcpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5mb3JtLnZhbGlkYXRlRm9ybSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uQ2hhbmdlZEdyb3VwKGdyb3VwczogSWRlbnRpdHlHcm91cE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IGdyb3Vwcz8ubGVuZ3RoID8gWy4uLmdyb3Vwc10gOiBudWxsO1xuICAgICAgICB0aGlzLm9uRmllbGRDaGFuZ2VkKHRoaXMuZmllbGQpO1xuICAgIH1cblxuICAgIGlzTXVsdGlwbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnbXVsdGlwbGUnO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImFkZi1kcm9wZG93bi13aWRnZXQge3tmaWVsZC5jbGFzc05hbWV9fVwiXG4gICAgW2NsYXNzLmFkZi1pbnZhbGlkXT1cIiFmaWVsZC5pc1ZhbGlkICYmIGlzVG91Y2hlZCgpXCJcbiAgICBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICA+e3tmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+PC9sYWJlbFxuICAgICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPGFkZi1jbG91ZC1ncm91cFxuICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgIFt2YWxpZGF0ZV09XCJ2YWxpZGF0ZVwiXG4gICAgICAgICAgICBbcm9sZXNdPVwicm9sZXNcIlxuICAgICAgICAgICAgW3NlYXJjaEdyb3Vwc0NvbnRyb2xdPVwic2VhcmNoXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgICAgICAoY2hhbmdlZEdyb3Vwcyk9XCJvbkNoYW5nZWRHcm91cCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtwcmVTZWxlY3RHcm91cHNdPVwicHJlU2VsZWN0R3JvdXBcIlxuICAgICAgICAgICAgKGJsdXIpPVwibWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgW2xhYmVsXSA9IFwiZmllbGQubmFtZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxlcnJvci13aWRnZXQgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCIgLz5cbiAgICAgICAgPGVycm9yLXdpZGdldFxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tcmVxdWlyZWQtbWVzc2FnZVwiXG4gICAgICAgICAgICAqbmdJZj1cImlzSW52YWxpZEZpZWxkUmVxdWlyZWQoKSAmJiBpc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtY2xvdWQud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9ncm91cC9ncm91cC1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2dyb3VwL2dyb3VwLWNsb3VkLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBRXpGLHVEQUF1RDtBQW9CdkQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGVBQWU7SUFXMUQsWUFBWSxXQUF3QjtRQUNoQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFYdkIsV0FBTSxHQUFHLDJCQUEyQixDQUFDO1FBTXJDLGFBQVEsR0FBRyxLQUFL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RSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFcnJvcldpZGdldENvbXBvbmVudCwgRm9ybVNlcnZpY2UsIFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnRTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWRlbnRpdHlHcm91cE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZ3JvdXAvbW9kZWxzL2lkZW50aXR5LWdyb3VwLm1vZGVsJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBHcm91cENsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZ3JvdXAvY29tcG9uZW50cy9ncm91cC1jbG91ZC5jb21wb25lbnQnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ3JvdXAtY2xvdWQtd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIEVycm9yV2lkZ2V0Q29tcG9uZW50LCBHcm91cENsb3VkQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3JvdXAtY2xvdWQud2lkZ2V0Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoYmx1ciknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1cyknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGlucHV0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnZhbGlkKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhzZWxlY3QpJzogJ2V2ZW50KCRldmVudCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHR5cGVJZCA9ICdHcm91cENsb3VkV2lkZ2V0Q29tcG9uZW50JztcbiAgICByb2xlczogc3RyaW5nW107XG4gICAgbW9kZTogQ29tcG9uZW50U2VsZWN0aW9uTW9kZTtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHByZVNlbGVjdEdyb3VwOiBJZGVudGl0eUdyb3VwTW9kZWxbXTtcbiAgICBzZWFyY2g6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgICB2YWxpZGF0ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGZvcm1TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLmZpZWxkLnJvbGVzO1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gdGhpcy5maWVsZC5vcHRpb25UeXBlIGFzIENvbXBvbmVudFNlbGVjdGlvbk1vZGU7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5maWVsZC5wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0R3JvdXAgPSB0aGlzLmZpZWxkLnZhbHVlID8gdGhpcy5maWVsZC52YWx1ZSA6IFtdO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSA9IHRoaXMuZmllbGQucmVhZE9ubHkgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2ggPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogdGhpcy5maWVsZC5yZWFkT25seSB9LCBbXSk7XG4gICAgICAgIHRoaXMuc2VhcmNoLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUgPT09ICdJTlZBTElEJyksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQubWFya0FzSW52YWxpZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuZm9ybS5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlYXJjaC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlID09PSAnVkFMSUQnKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuZm9ybS52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBvbkNoYW5nZWRHcm91cChncm91cHM6IElkZW50aXR5R3JvdXBNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBncm91cHM/Lmxlbmd0aCA/IFsuLi5ncm91cHNdIDogbnVsbDtcbiAgICAgICAgdGhpcy5vbkZpZWxkQ2hhbmdlZCh0aGlzLmZpZWxkKTtcbiAgICB9XG5cbiAgICBpc011bHRpcGxlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ211bHRpcGxlJztcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJhZGYtZHJvcGRvd24td2lkZ2V0IHt7ZmllbGQuY2xhc3NOYW1lfX1cIlxuICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCIhZmllbGQuaXNWYWxpZCAmJiBpc1RvdWNoZWQoKVwiXG4gICAgW2NsYXNzLmFkZi1yZWFkb25seV09XCJmaWVsZC5yZWFkT25seVwiXG4gICAgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsLWlucHV0LWNvbnRhaW5lcl09XCJmaWVsZC5sZWZ0TGFiZWxzXCJcbj5cbiAgICA8ZGl2ICpuZ0lmPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZGYtbGFiZWwgYWRmLWxlZnQtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgPnt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxhZGYtY2xvdWQtZ3JvdXBcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJmaWVsZC5yZWFkT25seVwiXG4gICAgICAgICAgICBbdmFsaWRhdGVdPVwidmFsaWRhdGVcIlxuICAgICAgICAgICAgW3JvbGVzXT1cInJvbGVzXCJcbiAgICAgICAgICAgIFtzZWFyY2hHcm91cHNDb250cm9sXT1cInNlYXJjaFwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICAgICAgKGNoYW5nZWRHcm91cHMpPVwib25DaGFuZ2VkR3JvdXAoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcHJlU2VsZWN0R3JvdXBzXT1cInByZVNlbGVjdEdyb3VwXCJcbiAgICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgIFtsYWJlbF0gPSBcImZpZWxkLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgICAvPlxuICAgICAgICA8ZXJyb3Itd2lkZ2V0IFtlcnJvcl09XCJmaWVsZC52YWxpZGF0aW9uU3VtbWFyeVwiIC8+XG4gICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWRyb3Bkb3duLXJlcXVpcmVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc0ludmFsaWRGaWVsZFJlcXVpcmVkKCkgJiYgaXNUb3VjaGVkKClcIlxuICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -21,13 +21,12 @@ import { filter } from 'rxjs/operators';
|
|
|
21
21
|
import { IdentityUserService } from '../../../../people/services/identity-user.service';
|
|
22
22
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
23
23
|
import { CommonModule } from '@angular/common';
|
|
24
|
-
import {
|
|
24
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
25
25
|
import { PeopleCloudComponent } from '../../../../people/components/people-cloud.component';
|
|
26
26
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
27
27
|
import * as i0 from "@angular/core";
|
|
28
28
|
import * as i1 from "@alfresco/adf-core";
|
|
29
29
|
import * as i2 from "@angular/common";
|
|
30
|
-
import * as i3 from "@ngx-translate/core";
|
|
31
30
|
/* eslint-disable @angular-eslint/component-selector */
|
|
32
31
|
export class PeopleCloudWidgetComponent extends WidgetComponent {
|
|
33
32
|
constructor(formService) {
|
|
@@ -73,11 +72,11 @@ export class PeopleCloudWidgetComponent extends WidgetComponent {
|
|
|
73
72
|
return this.mode === 'multiple';
|
|
74
73
|
}
|
|
75
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudWidgetComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PeopleCloudWidgetComponent, isStandalone: true, selector: "people-cloud-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label>\n </div>\n <div>\n <adf-cloud-people\n [preSelectUsers]=\"preSelectUsers\"\n [appName]=\"appName\"\n [readOnly]=\"field.readOnly\"\n [validate]=\"validate\"\n [searchUserCtrl]=\"search\"\n [required]=\"field.required\"\n (changedUsers)=\"onChangedUser($event)\"\n [roles]=\"roles\"\n [mode]=\"mode\"\n [groupsRestriction]=\"groupsRestriction\"\n (blur)=\"markAsTouched()\"\n [attr.title]=\"field.tooltip\"\n [label]=\"field.name | translate\"\n />\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n </div>\n</div>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PeopleCloudWidgetComponent, isStandalone: true, selector: "people-cloud-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label>\n </div>\n <div>\n <adf-cloud-people\n [preSelectUsers]=\"preSelectUsers\"\n [appName]=\"appName\"\n [readOnly]=\"field.readOnly\"\n [validate]=\"validate\"\n [searchUserCtrl]=\"search\"\n [required]=\"field.required\"\n (changedUsers)=\"onChangedUser($event)\"\n [roles]=\"roles\"\n [mode]=\"mode\"\n [groupsRestriction]=\"groupsRestriction\"\n (blur)=\"markAsTouched()\"\n [attr.title]=\"field.tooltip\"\n [label]=\"field.name | translate\"\n />\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n </div>\n</div>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: PeopleCloudComponent, selector: "adf-cloud-people", inputs: ["label", "appName", "mode", "roles", "validate", "readOnly", "required", "preSelectUsers", "excludedUsers", "groupsRestriction", "userChipsCtrl", "searchUserCtrl", "title", "placeholder", "hideInputOnSingleSelection", "formFieldAppearance", "formFieldSubscriptSizing", "showErrors", "showFullNameOnHover"], outputs: ["selectUser", "removeUser", "changedUsers", "warning"] }, { kind: "ngmodule", type: MatFormFieldModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
77
76
|
}
|
|
78
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudWidgetComponent, decorators: [{
|
|
79
78
|
type: Component,
|
|
80
|
-
args: [{ selector: 'people-cloud-widget', standalone: true, imports: [CommonModule,
|
|
79
|
+
args: [{ selector: 'people-cloud-widget', standalone: true, imports: [CommonModule, TranslatePipe, ErrorWidgetComponent, PeopleCloudComponent, MatFormFieldModule], host: {
|
|
81
80
|
'(click)': 'event($event)',
|
|
82
81
|
'(blur)': 'event($event)',
|
|
83
82
|
'(change)': 'event($event)',
|
|
@@ -89,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
89
88
|
'(select)': 'event($event)'
|
|
90
89
|
}, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span></label>\n </div>\n <div>\n <adf-cloud-people\n [preSelectUsers]=\"preSelectUsers\"\n [appName]=\"appName\"\n [readOnly]=\"field.readOnly\"\n [validate]=\"validate\"\n [searchUserCtrl]=\"search\"\n [required]=\"field.required\"\n (changedUsers)=\"onChangedUser($event)\"\n [roles]=\"roles\"\n [mode]=\"mode\"\n [groupsRestriction]=\"groupsRestriction\"\n (blur)=\"markAsTouched()\"\n [attr.title]=\"field.tooltip\"\n [label]=\"field.name | translate\"\n />\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n </div>\n</div>\n\n" }]
|
|
91
90
|
}], ctorParameters: () => [{ type: i1.FormService }] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVvcGxlLWNsb3VkLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvcGVvcGxlL3Blb3BsZS1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL3Blb3BsZS9wZW9wbGUtY2xvdWQud2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBRWxFLHVEQUF1RDtBQW9CdkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7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QUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztJQUNwQyxDQUFDOytHQWpFUSwwQkFBMEI7bUdBQTFCLDBCQUEwQixpWENsRHZDLG8yQ0ErQkEsMkNESWMsWUFBWSxrSUFBRSxlQUFlLDRGQUFFLG9CQUFvQix3RkFBRSxvQkFBb0IsMGJBQUUsa0JBQWtCOzs0RkFlOUYsMEJBQTBCO2tCQWxCdEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxRQUVsRzt3QkFDRixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsUUFBUSxFQUFFLGVBQWU7d0JBQ3pCLFVBQVUsRUFBRSxlQUFlO3dCQUMzQixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXJyb3JXaWRnZXRDb21wb25lbnQsIEZvcm1TZXJ2aWNlLCBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2VsZWN0aW9uTW9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IElkZW50aXR5VXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGVvcGxlL21vZGVscy9pZGVudGl0eS11c2VyLm1vZGVsJztcbmltcG9ydCB7IElkZW50aXR5VXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wZW9wbGUvc2VydmljZXMvaWRlbnRpdHktdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlb3BsZUNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vcGVvcGxlL2NvbXBvbmVudHMvcGVvcGxlLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Blb3BsZS1jbG91ZC13aWRnZXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBFcnJvcldpZGdldENvbXBvbmVudCwgUGVvcGxlQ2xvdWRDb21wb25lbnQsIE1hdEZvcm1GaWVsZE1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Blb3BsZS1jbG91ZC53aWRnZXQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhjaGFuZ2UpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW5wdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGludmFsaWQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKHNlbGVjdCknOiAnZXZlbnQoJGV2ZW50KSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUGVvcGxlQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgaWRlbnRpdHlVc2VyU2VydmljZSA9IGluamVjdChJZGVudGl0eVVzZXJTZXJ2aWNlKTtcblxuICAgIHR5cGVJZCA9ICdQZW9wbGVDbG91ZFdpZGdldENvbXBvbmVudCc7XG4gICAgYXBwTmFtZTogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICBtb2RlOiBDb21wb25lbnRTZWxlY3Rpb25Nb2RlO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgcHJlU2VsZWN0VXNlcnM6IElkZW50aXR5VXNlck1vZGVsW107XG4gICAgc2VhcmNoOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gICAgZ3JvdXBzUmVzdHJpY3Rpb246IHN0cmluZ1tdO1xuICAgIHZhbGlkYXRlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3Rvcihmb3JtU2VydmljZTogRm9ybVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuZmllbGQucm9sZXM7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSB0aGlzLmZpZWxkLm9wdGlvblR5cGUgYXMgQ29tcG9uZW50U2VsZWN0aW9uTW9kZTtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmZpZWxkLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RVc2VycyA9IHRoaXMuZmllbGQudmFsdWUgPyB0aGlzLmZpZWxkLnZhbHVlIDogW107XG4gICAgICAgICAgICB0aGlzLmdyb3Vwc1Jlc3RyaWN0aW9uID0gdGhpcy5maWVsZC5ncm91cHNSZXN0cmljdGlvbjtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUgPSB0aGlzLmZpZWxkLnJlYWRPbmx5ID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2ggPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogdGhpcy5maWVsZC5yZWFkT25seSB9LCBbXSk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2guc3RhdHVzQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZSA9PT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5mb3JtLm1hcmtBc0ludmFsaWQoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUgPT09ICdWQUxJRCcpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5mb3JtLnZhbGlkYXRlRm9ybSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQuc2VsZWN0TG9nZ2VkVXNlciAmJiAhdGhpcy5maWVsZC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgdXNlckluZm8gPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCk7XG4gICAgICAgICAgICB0aGlzLnByZVNlbGVjdFVzZXJzID0gW3VzZXJJbmZvXTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VkVXNlcih0aGlzLnByZVNlbGVjdFVzZXJzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlZFVzZXIodXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IHVzZXJzPy5sZW5ndGggPyBbLi4udXNlcnNdIDogbnVsbDtcbiAgICAgICAgdGhpcy5vbkZpZWxkQ2hhbmdlZCh0aGlzLmZpZWxkKTtcbiAgICB9XG5cbiAgICBpc011bHRpcGxlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ211bHRpcGxlJztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLWRyb3Bkb3duLXdpZGdldCB7e2ZpZWxkLmNsYXNzTmFtZX19XCJcbiAgICAgW2NsYXNzLmFkZi1pbnZhbGlkXT1cIiFmaWVsZC5pc1ZhbGlkICYmIGlzVG91Y2hlZCgpXCJcbiAgICAgW2NsYXNzLmFkZi1yZWFkb25seV09XCJmaWVsZC5yZWFkT25seVwiXG4gICAgIFtjbGFzcy5hZGYtbGVmdC1sYWJlbC1pbnB1dC1jb250YWluZXJdPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgICA8ZGl2ICpuZ0lmPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZGYtbGFiZWwgYWRmLWxlZnQtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj57e2ZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX08c3BhbiBjbGFzcz1cImFkZi1hc3Rlcmlza1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cImlzUmVxdWlyZWQoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxhZGYtY2xvdWQtcGVvcGxlXG4gICAgICAgICAgICBbcHJlU2VsZWN0VXNlcnNdPVwicHJlU2VsZWN0VXNlcnNcIlxuICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwiZmllbGQucmVhZE9ubHlcIlxuICAgICAgICAgICAgW3ZhbGlkYXRlXT1cInZhbGlkYXRlXCJcbiAgICAgICAgICAgIFtzZWFyY2hVc2VyQ3RybF09XCJzZWFyY2hcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgICAgICAgIChjaGFuZ2VkVXNlcnMpPVwib25DaGFuZ2VkVXNlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIFtyb2xlc109XCJyb2xlc1wiXG4gICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAgIFtncm91cHNSZXN0cmljdGlvbl09XCJncm91cHNSZXN0cmljdGlvblwiXG4gICAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiZmllbGQubmFtZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxlcnJvci13aWRnZXQgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCIgLz5cbiAgICAgICAgPGVycm9yLXdpZGdldFxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tcmVxdWlyZWQtbWVzc2FnZVwiXG4gICAgICAgICAgICAqbmdJZj1cImlzSW52YWxpZEZpZWxkUmVxdWlyZWQoKSAmJiBpc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVwiIC8+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVvcGxlLWNsb3VkLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvcGVvcGxlL3Blb3BsZS1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL3Blb3BsZS9wZW9wbGUtY2xvdWQud2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFFbEUsdURBQXVEO0FBb0J2RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZUFBZTtJ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QyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0lBQ3BDLENBQUM7K0dBakVRLDBCQUEwQjttR0FBMUIsMEJBQTBCLGlYQ2xEdkMsbzJDQStCQSwyQ0RJYyxZQUFZLDhIQUFFLGFBQWEsa0RBQUUsb0JBQW9CLHdGQUFFLG9CQUFvQiwwYkFBRSxrQkFBa0I7OzRGQWU1RiwwQkFBMEI7a0JBbEJ0QyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLFFBRWhHO3dCQUNGLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixRQUFRLEVBQUUsZUFBZTt3QkFDekIsVUFBVSxFQUFFLGVBQWU7d0JBQzNCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsWUFBWSxFQUFFLGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFcnJvcldpZGdldENvbXBvbmVudCwgRm9ybVNlcnZpY2UsIFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnRTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9wZW9wbGUvbW9kZWxzL2lkZW50aXR5LXVzZXIubW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlb3BsZUNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vcGVvcGxlL2NvbXBvbmVudHMvcGVvcGxlLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Blb3BsZS1jbG91ZC13aWRnZXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgRXJyb3JXaWRnZXRDb21wb25lbnQsIFBlb3BsZUNsb3VkQ29tcG9uZW50LCBNYXRGb3JtRmllbGRNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZW9wbGUtY2xvdWQud2lkZ2V0Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoYmx1ciknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1cyknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGlucHV0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnZhbGlkKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhzZWxlY3QpJzogJ2V2ZW50KCRldmVudCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBlb3BsZUNsb3VkV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIGlkZW50aXR5VXNlclNlcnZpY2UgPSBpbmplY3QoSWRlbnRpdHlVc2VyU2VydmljZSk7XG5cbiAgICB0eXBlSWQgPSAnUGVvcGxlQ2xvdWRXaWRnZXRDb21wb25lbnQnO1xuICAgIGFwcE5hbWU6IHN0cmluZztcbiAgICByb2xlczogc3RyaW5nW107XG4gICAgbW9kZTogQ29tcG9uZW50U2VsZWN0aW9uTW9kZTtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHByZVNlbGVjdFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdO1xuICAgIHNlYXJjaDogVW50eXBlZEZvcm1Db250cm9sO1xuICAgIGdyb3Vwc1Jlc3RyaWN0aW9uOiBzdHJpbmdbXTtcbiAgICB2YWxpZGF0ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGZvcm1TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLmZpZWxkLnJvbGVzO1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gdGhpcy5maWVsZC5vcHRpb25UeXBlIGFzIENvbXBvbmVudFNlbGVjdGlvbk1vZGU7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5maWVsZC5wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0VXNlcnMgPSB0aGlzLmZpZWxkLnZhbHVlID8gdGhpcy5maWVsZC52YWx1ZSA6IFtdO1xuICAgICAgICAgICAgdGhpcy5ncm91cHNSZXN0cmljdGlvbiA9IHRoaXMuZmllbGQuZ3JvdXBzUmVzdHJpY3Rpb247XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlID0gdGhpcy5maWVsZC5yZWFkT25seSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRoaXMuZmllbGQucmVhZE9ubHkgfSwgW10pO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUgPT09ICdJTlZBTElEJyksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQubWFya0FzSW52YWxpZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuZm9ybS5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlYXJjaC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlID09PSAnVkFMSUQnKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuZm9ybS52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnNlbGVjdExvZ2dlZFVzZXIgJiYgIXRoaXMuZmllbGQudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzZXJJbmZvID0gdGhpcy5pZGVudGl0eVVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VySW5mbygpO1xuICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RVc2VycyA9IFt1c2VySW5mb107XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlZFVzZXIodGhpcy5wcmVTZWxlY3RVc2Vycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZWRVc2VyKHVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSB1c2Vycz8ubGVuZ3RoID8gWy4uLnVzZXJzXSA6IG51bGw7XG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQodGhpcy5maWVsZCk7XG4gICAgfVxuXG4gICAgaXNNdWx0aXBsZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdtdWx0aXBsZSc7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1kcm9wZG93bi13aWRnZXQge3tmaWVsZC5jbGFzc05hbWV9fVwiXG4gICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCIhZmllbGQuaXNWYWxpZCAmJiBpc1RvdWNoZWQoKVwiXG4gICAgIFtjbGFzcy5hZGYtcmVhZG9ubHldPVwiZmllbGQucmVhZE9ubHlcIlxuICAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIj5cbiAgICAgPGRpdiAqbmdJZj1cImZpZWxkLmxlZnRMYWJlbHNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsIGFkZi1sZWZ0LWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+e3tmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+PC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8YWRmLWNsb3VkLXBlb3BsZVxuICAgICAgICAgICAgW3ByZVNlbGVjdFVzZXJzXT1cInByZVNlbGVjdFVzZXJzXCJcbiAgICAgICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgIFt2YWxpZGF0ZV09XCJ2YWxpZGF0ZVwiXG4gICAgICAgICAgICBbc2VhcmNoVXNlckN0cmxdPVwic2VhcmNoXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgICAgICAoY2hhbmdlZFVzZXJzKT1cIm9uQ2hhbmdlZFVzZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcm9sZXNdPVwicm9sZXNcIlxuICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgICBbZ3JvdXBzUmVzdHJpY3Rpb25dPVwiZ3JvdXBzUmVzdHJpY3Rpb25cIlxuICAgICAgICAgICAgKGJsdXIpPVwibWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgICAvPlxuICAgICAgICA8ZXJyb3Itd2lkZ2V0IFtlcnJvcl09XCJmaWVsZC52YWxpZGF0aW9uU3VtbWFyeVwiIC8+XG4gICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWRyb3Bkb3duLXJlcXVpcmVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc0ludmFsaWRGaWVsZFJlcXVpcmVkKCkgJiYgaXNUb3VjaGVkKClcIlxuICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIiAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|