@valtimo/dossier-management 12.1.0 → 12.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-management-assignee/dossier-management-assignee.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-create/dossier-management-create.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-detail/dossier-management-detail.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-document-definition/dossier-management-document-definition.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-list/dossier-management-list.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-processes/dossier-management-processes.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-remove-modal/dossier-management-remove-modal.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-statuses/dossier-management-status-modal/dossier-management-status-modal.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-statuses/dossier-management-statuses.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-add-tab-modal/dossier-management-add-tab-modal.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-tabs.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-tabs/tab-form/tab-form.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-configurators/collection/dossier-management-widget-collection.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-configurators/custom/dossier-management-widget-custom.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-configurators/fields/column/dossier-management-widget-fields-column.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-configurators/fields/dossier-management-widget-fields.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-configurators/formio/dossier-management-widget-formio.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-configurators/table/dossier-management-widget-table.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-tab/dossier-management-widget-tab.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-tab/editor/dossier-management-widgets-editor.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-tab/json-editor/dossier-management-widgets-json-editor.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-tab-edit-modal/dossier-management-widget-tab-edit-modal.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-wizard/dossier-management-widget-wizard.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-wizard/steps/widget-wizard-content-step/widget-wizard-content-step.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-wizard/steps/widget-wizard-style-step/widget-wizard-style-step.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-wizard/steps/widget-wizard-type-step/widget-wizard-type-step.component.mjs +4 -4
- package/esm2022/lib/components/dossier-management-widget-wizard/steps/widget-wizard-width-step/widget-wizard-width-step.component.mjs +4 -4
- package/esm2022/lib/dossier-management-routing.module.mjs +5 -5
- package/esm2022/lib/dossier-management.module.mjs +5 -5
- package/esm2022/lib/services/dossier-detail.service.mjs +4 -4
- package/esm2022/lib/services/dossier-export.service.mjs +4 -4
- package/esm2022/lib/services/dossier-management.service.mjs +4 -4
- package/esm2022/lib/services/tab-management.service.mjs +4 -4
- package/esm2022/lib/services/tab.service.mjs +4 -4
- package/esm2022/lib/services/widget-fields.service.mjs +4 -4
- package/esm2022/lib/services/widget-json-editor.service.mjs +4 -4
- package/esm2022/lib/services/widget-tab-management.service.mjs +4 -4
- package/esm2022/lib/services/widget-wizard.service.mjs +4 -4
- package/fesm2022/valtimo-dossier-management.mjs +140 -140
- package/fesm2022/valtimo-dossier-management.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -80,10 +80,10 @@ export class DossierManagementWidgetCustomComponent {
|
|
|
80
80
|
this._selectedCustomComponentKey$.next(componentKey);
|
|
81
81
|
this.changeValidEvent.emit(true);
|
|
82
82
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetCustomComponent, deps: [{ token: CUSTOM_CASE_WIDGET_TOKEN, optional: true }, { token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementWidgetCustomComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"valtimo-dossier-management-widget-custom\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.custom.selectComponent' | translate }}\n\n <cds-dropdown\n *ngIf=\"componentListItems$ | async as componentListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.custom.placeholder' | translate\"\n [disabled]=\"componentListItems.length === 0\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"componentListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-custom{display:flex;flex-direction:column}.valtimo-dossier-management-widget-custom>*:first-child{margin-bottom:16px}.valtimo-dossier-management-widget-custom ::ng-deep .dropdown-label label{display:flex;flex-direction:column;width:100%}.valtimo-dossier-management-widget-custom ::ng-deep .dropdown-label cds-dropdown{margin-top:8px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SelectModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
85
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetCustomComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
88
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
89
89
|
CommonModule,
|
|
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
101
101
|
}] }, { type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.WidgetWizardService }], propDecorators: { changeValidEvent: [{
|
|
102
102
|
type: Output
|
|
103
103
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUdOLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQStCLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdGLE9BQU8sRUFBQyxZQUFZLEVBQW1CLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdEYsT0FBTyxFQUNMLHdCQUF3QixHQUd6QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9B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WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlLCBJbnB1dE1vZHVsZSwgU2VsZWN0TW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtDQVJCT05fVEhFTUUsIENkc1RoZW1lU2VydmljZSwgQ3VycmVudENhcmJvblRoZW1lfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7V2lkZ2V0V2l6YXJkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQ1VTVE9NX0NBU0VfV0lER0VUX1RPS0VOLFxuICBDdXN0b21DYXNlV2lkZ2V0Q29uZmlnLFxuICBXaWRnZXRDdXN0b21Db250ZW50LFxufSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvZHJvcGRvd24vbGlzdC1pdGVtLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWN1c3RvbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0Q3VzdG9tQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2VWYWxpZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0VGl0bGUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd3aWRnZXRUaXRsZScpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY2RzVGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQucGlwZShcbiAgICBtYXAoKHRoZW1lOiBDdXJyZW50Q2FyYm9uVGhlbWUpID0+XG4gICAgICB0aGVtZSA9PT0gQ3VycmVudENhcmJvblRoZW1lLkcxMCA/IENBUkJPTl9USEVNRS5XSElURSA6IENBUkJPTl9USEVNRS5HOTBcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ2FzZVdpZGdldENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbUNhc2VXaWRnZXRDb25maWc+KHt9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50TGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2N1c3RvbUNhc2VXaWRnZXRDb25maWckLFxuICAgIHRoaXMuX3NlbGVjdGVkQ3VzdG9tQ29tcG9uZW50S2V5JCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjb25maWddKSA9PiAhIWNvbmZpZyksXG4gICAgbWFwKChbY29uZmlnLCBzZWxlY3RlZEtleV0pID0+XG4gICAgICBPYmplY3Qua2V5cyhjb25maWcpLnJlZHVjZShcbiAgICAgICAgKGFjYywgY3VycikgPT4gWy4uLmFjYywge2NvbnRlbnQ6IGN1cnIsIHNlbGVjdGVkOiBjdXJyID09PSBzZWxlY3RlZEtleX1dLFxuICAgICAgICBbXVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDVVNUT01fQ0FTRV9XSURHRVRfVE9LRU4pXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DYXNlV2lkZ2V0Q29uZmlnOiBDdXN0b21DYXNlV2lkZ2V0Q29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RzVGhlbWVTZXJ2aWNlOiBDZHNUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRXaXphcmRTZXJ2aWNlOiBXaWRnZXRXaXphcmRTZXJ2aWNlXG4gICkge1xuICAgIGlmIChjdXN0b21DYXNlV2lkZ2V0Q29uZmlnKSB0aGlzLl9jdXN0b21DYXNlV2lkZ2V0Q29uZmlnJC5uZXh0KGN1c3RvbUNhc2VXaWRnZXRDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGNvbXBvbmVudERyb3BEb3duQ2hhbmdlKGV2ZW50OiB7XG4gICAgaXRlbToge2NvbnRlbnQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW59O1xuICAgIGlzVXBkYXRlOiBib29sZWFuO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50S2V5ID0gZXZlbnQ/Lml0ZW0/LmNvbnRlbnQ7XG5cbiAgICBpZiAoIWNvbXBvbmVudEtleSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLm5leHQoY29tcG9uZW50S2V5KTtcbiAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudC5zZXQoe2NvbXBvbmVudEtleX0pO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblRpdGxlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5wcmVmaWxsKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVGl0bGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLndpZGdldFRpdGxlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodGl0bGUgPT4ge1xuICAgICAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUuc2V0KHRpdGxlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlZmlsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRDdXN0b21Db250ZW50KVxuICAgICAgPy5jb21wb25lbnRLZXk7XG5cbiAgICBpZiAoIWNvbXBvbmVudEtleSB8fCBPYmplY3Qua2V5cyh0aGlzLmN1c3RvbUNhc2VXaWRnZXRDb25maWcgfHwge30pLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLm5leHQoY29tcG9uZW50S2V5KTtcbiAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybVxuICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b21cIlxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZSQgfCBhc3luY1wiXG4+XG4gIDxjZHMtdGV4dC1sYWJlbCBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZF9faW5wdXRcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPGlucHV0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ3aWRnZXRUaXRsZVwiXG4gICAgICBjZHNUZXh0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cbiAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICA8Y2RzLWxhYmVsIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmN1c3RvbS5zZWxlY3RDb21wb25lbnQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAqbmdJZj1cImNvbXBvbmVudExpc3RJdGVtcyQgfCBhc3luYyBhcyBjb21wb25lbnRMaXN0SXRlbXNcIlxuICAgICAgW2FwcGVuZElubGluZV09XCJmYWxzZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jdXN0b20ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb21wb25lbnRMaXN0SXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIChzZWxlY3RlZCk9XCJjb21wb25lbnREcm9wRG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImNvbXBvbmVudExpc3RJdGVtc1wiPiA8L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Nkcy1sYWJlbD5cbjwvZm9ybT5cbiJdfQ==
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUdOLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQStCLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdGLE9BQU8sRUFBQyxZQUFZLEVBQW1CLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdEYsT0FBTyxFQUNMLHdCQUF3QixHQUd6QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9B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WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlLCBJbnB1dE1vZHVsZSwgU2VsZWN0TW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtDQVJCT05fVEhFTUUsIENkc1RoZW1lU2VydmljZSwgQ3VycmVudENhcmJvblRoZW1lfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7V2lkZ2V0V2l6YXJkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQ1VTVE9NX0NBU0VfV0lER0VUX1RPS0VOLFxuICBDdXN0b21DYXNlV2lkZ2V0Q29uZmlnLFxuICBXaWRnZXRDdXN0b21Db250ZW50LFxufSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvZHJvcGRvd24vbGlzdC1pdGVtLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWN1c3RvbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0Q3VzdG9tQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2VWYWxpZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0VGl0bGUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd3aWRnZXRUaXRsZScpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY2RzVGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQucGlwZShcbiAgICBtYXAoKHRoZW1lOiBDdXJyZW50Q2FyYm9uVGhlbWUpID0+XG4gICAgICB0aGVtZSA9PT0gQ3VycmVudENhcmJvblRoZW1lLkcxMCA/IENBUkJPTl9USEVNRS5XSElURSA6IENBUkJPTl9USEVNRS5HOTBcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ2FzZVdpZGdldENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbUNhc2VXaWRnZXRDb25maWc+KHt9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50TGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2N1c3RvbUNhc2VXaWRnZXRDb25maWckLFxuICAgIHRoaXMuX3NlbGVjdGVkQ3VzdG9tQ29tcG9uZW50S2V5JCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjb25maWddKSA9PiAhIWNvbmZpZyksXG4gICAgbWFwKChbY29uZmlnLCBzZWxlY3RlZEtleV0pID0+XG4gICAgICBPYmplY3Qua2V5cyhjb25maWcpLnJlZHVjZShcbiAgICAgICAgKGFjYywgY3VycikgPT4gWy4uLmFjYywge2NvbnRlbnQ6IGN1cnIsIHNlbGVjdGVkOiBjdXJyID09PSBzZWxlY3RlZEtleX1dLFxuICAgICAgICBbXVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDVVNUT01fQ0FTRV9XSURHRVRfVE9LRU4pXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DYXNlV2lkZ2V0Q29uZmlnOiBDdXN0b21DYXNlV2lkZ2V0Q29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RzVGhlbWVTZXJ2aWNlOiBDZHNUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRXaXphcmRTZXJ2aWNlOiBXaWRnZXRXaXphcmRTZXJ2aWNlXG4gICkge1xuICAgIGlmIChjdXN0b21DYXNlV2lkZ2V0Q29uZmlnKSB0aGlzLl9jdXN0b21DYXNlV2lkZ2V0Q29uZmlnJC5uZXh0KGN1c3RvbUNhc2VXaWRnZXRDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGNvbXBvbmVudERyb3BEb3duQ2hhbmdlKGV2ZW50OiB7XG4gICAgaXRlbToge2NvbnRlbnQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW59O1xuICAgIGlzVXBkYXRlOiBib29sZWFuO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50S2V5ID0gZXZlbnQ/Lml0ZW0/LmNvbnRlbnQ7XG5cbiAgICBpZiAoIWNvbXBvbmVudEtleSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLm5leHQoY29tcG9uZW50S2V5KTtcbiAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudC5zZXQoe2NvbXBvbmVudEtleX0pO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblRpdGxlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5wcmVmaWxsKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVGl0bGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLndpZGdldFRpdGxlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodGl0bGUgPT4ge1xuICAgICAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUuc2V0KHRpdGxlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlZmlsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRDdXN0b21Db250ZW50KVxuICAgICAgPy5jb21wb25lbnRLZXk7XG5cbiAgICBpZiAoIWNvbXBvbmVudEtleSB8fCBPYmplY3Qua2V5cyh0aGlzLmN1c3RvbUNhc2VXaWRnZXRDb25maWcgfHwge30pLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLm5leHQoY29tcG9uZW50S2V5KTtcbiAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybVxuICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b21cIlxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZSQgfCBhc3luY1wiXG4+XG4gIDxjZHMtdGV4dC1sYWJlbCBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZF9faW5wdXRcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPGlucHV0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ3aWRnZXRUaXRsZVwiXG4gICAgICBjZHNUZXh0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cbiAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICA8Y2RzLWxhYmVsIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmN1c3RvbS5zZWxlY3RDb21wb25lbnQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAqbmdJZj1cImNvbXBvbmVudExpc3RJdGVtcyQgfCBhc3luYyBhcyBjb21wb25lbnRMaXN0SXRlbXNcIlxuICAgICAgW2FwcGVuZElubGluZV09XCJmYWxzZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jdXN0b20ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb21wb25lbnRMaXN0SXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIChzZWxlY3RlZCk9XCJjb21wb25lbnREcm9wRG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImNvbXBvbmVudExpc3RJdGVtc1wiPiA8L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Nkcy1sYWJlbD5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -163,10 +163,10 @@ export class DossierManagementWidgetFieldsColumnComponent {
|
|
|
163
163
|
this.columnUpdateEvent.emit({ data: mappedRows, valid: this.formGroup.valid });
|
|
164
164
|
}));
|
|
165
165
|
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierManagementWidgetFieldsColumnComponent, isStandalone: true, selector: "valtimo-dossier-management-widget-fields-column", inputs: { columnData: "columnData", addTranslateKey: "addTranslateKey", fieldWidthDropdown: "fieldWidthDropdown" }, outputs: { columnUpdateEvent: "columnUpdateEvent" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"inputTheme$ | async as inputTheme\"\n class=\"valtimo-dossier-management-widget-field-column\"\n [formGroup]=\"formGroup\"\n>\n <cds-accordion formArrayName=\"rows\" align=\"start\" size=\"sm\">\n @for (formRow of formRows.controls; track $index) {\n <cds-accordion-item\n [title]=\"fieldTitle\"\n [context]=\"{index: $index, title: formRow.get('title')?.value}\"\n class=\"valtimo-dossier-management-widget-field-column__item\"\n >\n <form\n [formGroup]=\"formRow\"\n class=\"valtimo-dossier-management-widget-field-column__container\"\n >\n <div\n class=\"valtimo-dossier-management-widget-field-column__content\"\n [class.valtimo-dossier-management-widget-field-column__content--collection]=\"\n !!fieldWidthDropdown\n \"\n >\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.title' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.titlePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"title\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.value' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.valuePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"content\"\n />\n </cds-text-label>\n\n <cds-dropdown\n [attr.data-carbon-theme]=\"inputTheme\"\n [label]=\"'widgetTabManagement.content.fields.type' | translate\"\n [dropUp]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.fields.typePlaceholder' | translate\"\n (selected)=\"onTypeSelected(formRow, $event)\"\n formControlName=\"type\"\n >\n <cds-dropdown-list [items]=\"getDisplayItemsSelected(formRow)\"></cds-dropdown-list>\n </cds-dropdown>\n\n <ng-container\n *ngTemplateOutlet=\"fieldWidthDropdown; context: {index: $index}\"\n ></ng-container>\n </div>\n\n <div class=\"valtimo-dossier-management-widget-field-column__options\">\n @switch (formRow.get('type').value.id) {\n @case (CaseWidgetDisplayTypeKey.CURRENCY) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.currencyCode' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.currencyCodePlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"currencyCode\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.display' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.displayPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"display\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.digitsInfo' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.digitsInfoPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.DATE) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.format' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.DATE_TIME) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.format' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.ENUM) {\n <div\n class=\"valtimo-dossier-management-widget-field-column__enum\"\n formArrayName=\"values\"\n >\n @for (rowValue of formRow.get('values')?.controls; track $index) {\n <form\n [formGroup]=\"rowValue\"\n class=\"valtimo-dossier-management-widget-field-column__enum-form\"\n >\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.key' | translate }}\n\n <input\n [attr.data-carbon-theme]=\"inputTheme\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.fields.key' | translate\"\n type=\"text\"\n formControlName=\"key\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.value' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.value' | translate\"\n type=\"text\"\n formControlName=\"value\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n class=\"valtimo-dossier-management-widget-field-column__delete-button enum\"\n (click)=\"onDeleteRowClick($event, formRow.get('values'), $index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"onAddEnumValueClick(formRow.get('values'))\"\n >\n {{ 'widgetTabManagement.content.fields.addEnum' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n @case (CaseWidgetDisplayTypeKey.NUMBER) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.digitsInfo' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.PERCENT) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.digitsInfo' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n }\n </div>\n </form>\n </cds-accordion-item>\n }\n </cds-accordion>\n\n <button cdsButton=\"primary\" size=\"sm\" (click)=\"onAddFieldClick()\">\n {{ addTranslateKey | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n\n<ng-template #fieldTitle let-index=\"index\" let-title=\"title\">\n <div class=\"valtimo-dossier-management-widget-field-column__title\">\n {{ title || ('widgetTabManagement.content.fields.titlePlaceholder' | translate) }}\n\n <button\n cdsButton=\"danger\"\n [iconOnly]=\"true\"\n class=\"valtimo-dossier-management-widget-field-column__delete-button\"\n (click)=\"onDeleteRowClick($event, formRows, index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field-column{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field-column__item,.valtimo-dossier-management-widget-field-column__cotainer{background:var(--cds-layer-01)}.valtimo-dossier-management-widget-field-column__item .cds--accordion__content{padding-inline-end:20px}.valtimo-dossier-management-widget-field-column__container{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field-column__content{display:grid;grid-template-columns:1fr 1fr 180px;align-items:flex-end;gap:16px}.valtimo-dossier-management-widget-field-column__content--collection{grid-template-columns:1fr 1fr 180px 180px}.valtimo-dossier-management-widget-field-column__title{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px}.valtimo-dossier-management-widget-field-column__delete-button{display:flex;align-items:center;justify-content:center;padding:0;align-self:center}.valtimo-dossier-management-widget-field-column__delete-button.enum{align-self:flex-end}.valtimo-dossier-management-widget-field-column__options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.valtimo-dossier-management-widget-field-column__enum{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field-column__enum-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i3.Accordion, selector: "cds-accordion, ibm-accordion", inputs: ["align", "size", "skeleton"] }, { kind: "component", type: i3.AccordionItem, selector: "cds-accordion-item, ibm-accordion-item", inputs: ["title", "context", "id", "skeleton", "expanded", "disabled"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsColumnComponent, deps: [{ token: i1.CdsThemeService }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.IconService }, { token: i4.TranslateService }, { token: i5.WidgetFieldsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierManagementWidgetFieldsColumnComponent, isStandalone: true, selector: "valtimo-dossier-management-widget-fields-column", inputs: { columnData: "columnData", addTranslateKey: "addTranslateKey", fieldWidthDropdown: "fieldWidthDropdown" }, outputs: { columnUpdateEvent: "columnUpdateEvent" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"inputTheme$ | async as inputTheme\"\n class=\"valtimo-dossier-management-widget-field-column\"\n [formGroup]=\"formGroup\"\n>\n <cds-accordion formArrayName=\"rows\" align=\"start\" size=\"sm\">\n @for (formRow of formRows.controls; track $index) {\n <cds-accordion-item\n [title]=\"fieldTitle\"\n [context]=\"{index: $index, title: formRow.get('title')?.value}\"\n class=\"valtimo-dossier-management-widget-field-column__item\"\n >\n <form\n [formGroup]=\"formRow\"\n class=\"valtimo-dossier-management-widget-field-column__container\"\n >\n <div\n class=\"valtimo-dossier-management-widget-field-column__content\"\n [class.valtimo-dossier-management-widget-field-column__content--collection]=\"\n !!fieldWidthDropdown\n \"\n >\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.title' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.titlePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"title\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.value' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.valuePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"content\"\n />\n </cds-text-label>\n\n <cds-dropdown\n [attr.data-carbon-theme]=\"inputTheme\"\n [label]=\"'widgetTabManagement.content.fields.type' | translate\"\n [dropUp]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.fields.typePlaceholder' | translate\"\n (selected)=\"onTypeSelected(formRow, $event)\"\n formControlName=\"type\"\n >\n <cds-dropdown-list [items]=\"getDisplayItemsSelected(formRow)\"></cds-dropdown-list>\n </cds-dropdown>\n\n <ng-container\n *ngTemplateOutlet=\"fieldWidthDropdown; context: {index: $index}\"\n ></ng-container>\n </div>\n\n <div class=\"valtimo-dossier-management-widget-field-column__options\">\n @switch (formRow.get('type').value.id) {\n @case (CaseWidgetDisplayTypeKey.CURRENCY) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.currencyCode' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.currencyCodePlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"currencyCode\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.display' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.displayPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"display\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.digitsInfo' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.digitsInfoPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.DATE) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.format' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.DATE_TIME) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.format' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.ENUM) {\n <div\n class=\"valtimo-dossier-management-widget-field-column__enum\"\n formArrayName=\"values\"\n >\n @for (rowValue of formRow.get('values')?.controls; track $index) {\n <form\n [formGroup]=\"rowValue\"\n class=\"valtimo-dossier-management-widget-field-column__enum-form\"\n >\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.key' | translate }}\n\n <input\n [attr.data-carbon-theme]=\"inputTheme\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.fields.key' | translate\"\n type=\"text\"\n formControlName=\"key\"\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.value' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.value' | translate\"\n type=\"text\"\n formControlName=\"value\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n class=\"valtimo-dossier-management-widget-field-column__delete-button enum\"\n (click)=\"onDeleteRowClick($event, formRow.get('values'), $index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"onAddEnumValueClick(formRow.get('values'))\"\n >\n {{ 'widgetTabManagement.content.fields.addEnum' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n @case (CaseWidgetDisplayTypeKey.NUMBER) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.digitsInfo' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (CaseWidgetDisplayTypeKey.PERCENT) {\n <cds-text-label>\n {{ 'widgetTabManagement.content.fields.digitsInfo' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n }\n </div>\n </form>\n </cds-accordion-item>\n }\n </cds-accordion>\n\n <button cdsButton=\"primary\" size=\"sm\" (click)=\"onAddFieldClick()\">\n {{ addTranslateKey | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n\n<ng-template #fieldTitle let-index=\"index\" let-title=\"title\">\n <div class=\"valtimo-dossier-management-widget-field-column__title\">\n {{ title || ('widgetTabManagement.content.fields.titlePlaceholder' | translate) }}\n\n <button\n cdsButton=\"danger\"\n [iconOnly]=\"true\"\n class=\"valtimo-dossier-management-widget-field-column__delete-button\"\n (click)=\"onDeleteRowClick($event, formRows, index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field-column{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field-column__item,.valtimo-dossier-management-widget-field-column__cotainer{background:var(--cds-layer-01)}.valtimo-dossier-management-widget-field-column__item .cds--accordion__content{padding-inline-end:20px}.valtimo-dossier-management-widget-field-column__container{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field-column__content{display:grid;grid-template-columns:1fr 1fr 180px;align-items:flex-end;gap:16px}.valtimo-dossier-management-widget-field-column__content--collection{grid-template-columns:1fr 1fr 180px 180px}.valtimo-dossier-management-widget-field-column__title{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px}.valtimo-dossier-management-widget-field-column__delete-button{display:flex;align-items:center;justify-content:center;padding:0;align-self:center}.valtimo-dossier-management-widget-field-column__delete-button.enum{align-self:flex-end}.valtimo-dossier-management-widget-field-column__options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.valtimo-dossier-management-widget-field-column__enum{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field-column__enum-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i3.Accordion, selector: "cds-accordion, ibm-accordion", inputs: ["align", "size", "skeleton"] }, { kind: "component", type: i3.AccordionItem, selector: "cds-accordion-item, ibm-accordion-item", inputs: ["title", "context", "id", "skeleton", "expanded", "disabled"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
168
168
|
}
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsColumnComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
171
171
|
args: [{ selector: 'valtimo-dossier-management-widget-fields-column', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
172
172
|
CommonModule,
|
|
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
191
191
|
}], columnUpdateEvent: [{
|
|
192
192
|
type: Output
|
|
193
193
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWNvbmZpZ3VyYXRvcnMvZmllbGRzL2NvbHVtbi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvY29sdW1uL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFJTCx3QkFBd0IsR0FJekIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVks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QUNaLGNBQWMsbXJCQUNkLFdBQVcsMmFBQ1gsbUJBQW1CLG1qQ0FDbkIsVUFBVSw0TkFDVixlQUFlOzsyRkFHTiw0Q0FBNEM7a0JBbEJ4RCxTQUFTOytCQUNFLGlEQUFpRCxtQkFHMUMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixlQUFlO3FCQUNoQjt5T0FHcUMsS0FBSztzQkFBMUMsV0FBVzt1QkFBQyxPQUFPO2dCQUNZLFVBQVU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUVXLGlCQUFpQjtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYXNoQ2FuMTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBDYXNlV2lkZ2V0Q3VycmVuY3lEaXNwbGF5VHlwZSxcbiAgQ2FzZVdpZGdldERhdGVEaXNwbGF5VHlwZSxcbiAgQ2FzZVdpZGdldERhdGVUaW1lRGlzcGxheVR5cGUsXG4gIENhc2VXaWRnZXREaXNwbGF5VHlwZUtleSxcbiAgQ2FzZVdpZGdldEVudW1EaXNwbGF5VHlwZSxcbiAgQ2FzZVdpZGdldE51bWJlckRpc3BsYXlUeXBlLFxuICBGaWVsZHNDYXNlV2lkZ2V0VmFsdWUsXG59IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtcbiAgQWNjb3JkaW9uTW9kdWxlLFxuICBCdXR0b25Nb2R1bGUsXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSWNvblNlcnZpY2UsXG4gIElucHV0TW9kdWxlLFxuICBMaXN0SXRlbSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7V2lkZ2V0RmllbGRzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQWNjb3JkaW9uTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTWFuYWdlbWVudFdpZGdldEZpZWxkc0NvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uJztcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBjb2x1bW5EYXRhOiBGaWVsZHNDYXNlV2lkZ2V0VmFsdWVbXTtcbiAgQElucHV0KCkgcHVibGljIGFkZFRyYW5zbGF0ZUtleSA9ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmFkZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZFdpZHRoRHJvcGRvd24/OiBUZW1wbGF0ZVJlZjxEcm9wZG93bj47XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5VcGRhdGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGRhdGE6IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZVtdO1xuICAgIHZhbGlkOiBib29sZWFuO1xuICB9PigpO1xuXG4gIHB1YmxpYyBmb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICByb3dzOiB0aGlzLmZiLmFycmF5PGFueT4oW10pLFxuICB9KTtcblxuICBwdWJsaWMgZ2V0IGZvcm1Sb3dzKCk6IEZvcm1BcnJheSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQoJ3Jvd3MnKSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3Jvd3MnKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVJdGVtczogTGlzdEl0ZW1bXSA9IHRoaXMud2lkZ2V0RmllbGRzU2VydmljZS5kaXNwbGF5VHlwZUl0ZW1zO1xuXG4gIHB1YmxpYyBnZXREaXNwbGF5SXRlbXNTZWxlY3RlZChyb3c6IEFic3RyYWN0Q29udHJvbCk6IExpc3RJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLndpZGdldEZpZWxkc1NlcnZpY2UuZ2V0RGlzcGxheUl0ZW1zU2VsZWN0ZWQocm93KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkgPSBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlucHV0VGhlbWUkOiBPYnNlcnZhYmxlPEN1cnJlbnRDYXJib25UaGVtZT4gPSB0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0RmllbGRzU2VydmljZTogV2lkZ2V0RmllbGRzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyKFRyYXNoQ2FuMTYpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLm9wZW5Gb3JtU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25BZGRGaWVsZENsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtUm93cykgcmV0dXJuO1xuXG4gICAgdGhpcy5mb3JtUm93cy5wdXNoKFxuICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIHR5cGU6IHRoaXMuZmIuY29udHJvbDxMaXN0SXRlbT4oe2NvbnRlbnQ6ICcnLCBzZWxlY3RlZDogZmFsc2V9LCBbXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICB0aGlzLnR5cGVTZWxlY3RWYWxpZGF0b3IsXG4gICAgICAgIF0pLFxuICAgICAgICB0aXRsZTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBjb250ZW50OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25EZWxldGVSb3dDbGljayhldmVudDogRXZlbnQsIGZvcm1BcnJheTogRm9ybUFycmF5LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCFmb3JtQXJyYXkpIHJldHVybjtcblxuICAgIGZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICBwdWJsaWMgb25UeXBlU2VsZWN0ZWQoZm9ybVJvdzogRm9ybUdyb3VwLCBldmVudDoge2l0ZW06IExpc3RJdGVtfSk6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0RmllbGRzU2VydmljZS5vbkRpc3BsYXlUeXBlU2VsZWN0ZWQoWyd0aXRsZScsICdjb250ZW50JywgJ3R5cGUnXSwgZm9ybVJvdywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQWRkRW51bVZhbHVlQ2xpY2sodmFsdWVzRm9ybUFycmF5OiBGb3JtQXJyYXkpOiB2b2lkIHtcbiAgICB2YWx1ZXNGb3JtQXJyYXkucHVzaChcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBrZXk6IHRoaXMuZmIuY29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHZhbHVlOiB0aGlzLmZiLmNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB0eXBlU2VsZWN0VmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IG51bGwgfCB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gICAgY29uc3QgY29udHJvbFZhbHVlOiBMaXN0SXRlbSB8IHVuZGVmaW5lZCA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCFjb250cm9sVmFsdWUgfHwgIWNvbnRyb2xWYWx1ZS5zZWxlY3RlZCkgcmV0dXJuIHtlcnJvcjogJ1R5cGUgaXMgbm90IHNlbGVjdGVkJ307XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um93Rm9ybShyb3c6IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdHlwZTogdGhpcy5mYi5jb250cm9sPExpc3RJdGVtPihcbiAgICAgICAge1xuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgIGB3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZGlzcGxheVR5cGUuJHtyb3cuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LlRFWFR9YFxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgaWQ6IHJvdy5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA/PyBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuVEVYVCxcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgKSxcbiAgICAgIHRpdGxlOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihyb3cudGl0bGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY29udGVudDogdGhpcy5mYi5jb250cm9sPHN0cmluZz4ocm93LnZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIC4uLihbQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5Lk5VTUJFUiwgQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LlBFUkNFTlRdLmluY2x1ZGVzKFxuICAgICAgICByb3cuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgYXMgQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5XG4gICAgICApICYmIHtcbiAgICAgICAgZGlnaXRzSW5mbzogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oXG4gICAgICAgICAgKHJvdy5kaXNwbGF5UHJvcGVydGllcyBhcyBDYXNlV2lkZ2V0TnVtYmVyRGlzcGxheVR5cGUpLmRpZ2l0c0luZm8gPz8gJydcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHJvdy5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA9PT0gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LkNVUlJFTkNZICYmIHtcbiAgICAgICAgZGlnaXRzSW5mbzogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oXG4gICAgICAgICAgKHJvdy5kaXNwbGF5UHJvcGVydGllcyBhcyBDYXNlV2lkZ2V0Q3VycmVuY3lEaXNwbGF5VHlwZSkuZGlnaXRzSW5mbyA/PyAnJ1xuICAgICAgICApLFxuICAgICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KFxuICAgICAgICAgIChyb3cuZGlzcGxheVByb3BlcnRpZXMgYXMgQ2FzZVdpZGdldEN1cnJlbmN5RGlzcGxheVR5cGUpLmN1cnJlbmN5Q29kZSA/PyAnJ1xuICAgICAgICApLFxuICAgICAgICBkaXNwbGF5OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihcbiAgICAgICAgICAocm93LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXRDdXJyZW5jeURpc3BsYXlUeXBlKS5kaXNwbGF5ID8/ICcnXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICAgIC4uLihyb3cuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPT09IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5EQVRFICYmIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihcbiAgICAgICAgICAocm93LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXREYXRlRGlzcGxheVR5cGUpLmZvcm1hdCA/PyAnJ1xuICAgICAgICApLFxuICAgICAgfSksXG4gICAgICAuLi4ocm93LmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID09PSBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuREFURV9USU1FICYmIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihcbiAgICAgICAgICAocm93LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXREYXRlVGltZURpc3BsYXlUeXBlKS5mb3JtYXQgPz8gJydcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHJvdy5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA9PT0gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LkVOVU0gJiYge1xuICAgICAgICB2YWx1ZXM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoKHJvdy5kaXNwbGF5UHJvcGVydGllcyBhcyBDYXNlV2lkZ2V0RW51bURpc3BsYXlUeXBlKS52YWx1ZXMpLm1hcChcbiAgICAgICAgICAgIChba2V5LCB2YWx1ZV0pID0+XG4gICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oa2V5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4odmFsdWUgYXMgc3RyaW5nLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkRhdGEpIHJldHVybjtcblxuICAgIGNvbnN0IHJvd3NDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5O1xuICAgIGlmICghcm93c0NvbnRyb2wpIHJldHVybjtcblxuICAgIHRoaXMuY29sdW1uRGF0YS5mb3JFYWNoKChyb3c6IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSkgPT4ge1xuICAgICAgcm93c0NvbnRyb2wucHVzaCh0aGlzLmdldFJvd0Zvcm0ocm93KSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29sdW1uVXBkYXRlRXZlbnQuZW1pdCh7ZGF0YTogdGhpcy5jb2x1bW5EYXRhLCB2YWxpZDogdHJ1ZX0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm1Sb3dzPy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKChyb3dzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGVkUm93czogRmllbGRzQ2FzZVdpZGdldFZhbHVlW10gPSByb3dzLm1hcCgocm93OiBhbnkgfCBudWxsKSA9PiAoe1xuICAgICAgICAgIGtleTogcm93LnRpdGxlLnJlcGxhY2UoL1xcVysvZywgJy0nKS5yZXBsYWNlKC9cXC0kLywgJycpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgdGl0bGU6IHJvdy50aXRsZSxcbiAgICAgICAgICB2YWx1ZTogcm93LmNvbnRlbnQsXG4gICAgICAgICAgLi4uKCEhcm93Py50eXBlLmlkICYmXG4gICAgICAgICAgICByb3c/LnR5cGUuaWQgIT09IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5URVhUICYmIHtcbiAgICAgICAgICAgICAgZGlzcGxheVByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiByb3cudHlwZS5pZCxcbiAgICAgICAgICAgICAgICAuLi4oISFyb3c/LmN1cnJlbmN5Q29kZSAmJiB7Y3VycmVuY3lDb2RlOiByb3cuY3VycmVuY3lDb2RlfSksXG4gICAgICAgICAgICAgICAgLi4uKCEhcm93Py5kaXNwbGF5ICYmIHtkaXNwbGF5OiByb3cuZGlzcGxheX0pLFxuICAgICAgICAgICAgICAgIC4uLighIXJvdz8uZGlnaXRzSW5mbyAmJiB7ZGlnaXRzSW5mbzogcm93LmRpZ2l0c0luZm99KSxcbiAgICAgICAgICAgICAgICAuLi4oISFyb3c/LmZvcm1hdCAmJiB7Zm9ybWF0OiByb3cuZm9ybWF0fSksXG4gICAgICAgICAgICAgICAgLi4uKCEhcm93Py52YWx1ZXMgJiYge1xuICAgICAgICAgICAgICAgICAgdmFsdWVzOiByb3cudmFsdWVzPy5yZWR1Y2UoKGFjYywgY3VycikgPT4gKHsuLi5hY2MsIFtjdXJyLmtleV06IGN1cnIudmFsdWV9KSwge30pLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5jb2x1bW5VcGRhdGVFdmVudC5lbWl0KHtkYXRhOiBtYXBwZWRSb3dzLCB2YWxpZDogdGhpcy5mb3JtR3JvdXAudmFsaWR9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPGZvcm1cbiAgKm5nSWY9XCJpbnB1dFRoZW1lJCB8IGFzeW5jIGFzIGlucHV0VGhlbWVcIlxuICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5cIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4+XG4gIDxjZHMtYWNjb3JkaW9uIGZvcm1BcnJheU5hbWU9XCJyb3dzXCIgYWxpZ249XCJzdGFydFwiIHNpemU9XCJzbVwiPlxuICAgIEBmb3IgKGZvcm1Sb3cgb2YgZm9ybVJvd3MuY29udHJvbHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGNkcy1hY2NvcmRpb24taXRlbVxuICAgICAgICBbdGl0bGVdPVwiZmllbGRUaXRsZVwiXG4gICAgICAgIFtjb250ZXh0XT1cIntpbmRleDogJGluZGV4LCB0aXRsZTogZm9ybVJvdy5nZXQoJ3RpdGxlJyk/LnZhbHVlfVwiXG4gICAgICAgIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkLWNvbHVtbl9faXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtUm93XCJcbiAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2NvbnRhaW5lclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2NvbnRlbnRcIlxuICAgICAgICAgICAgW2NsYXNzLnZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2NvbnRlbnQtLWNvbGxlY3Rpb25dPVwiXG4gICAgICAgICAgICAgICEhZmllbGRXaWR0aERyb3Bkb3duXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMudGl0bGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy50aXRsZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG5cbiAgICAgICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMudmFsdWUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy52YWx1ZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICAgICAgPGNkcy1kcm9wZG93blxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJpbnB1dFRoZW1lXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIid3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLnR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2Ryb3BVcF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy50eXBlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cIm9uVHlwZVNlbGVjdGVkKGZvcm1Sb3csICRldmVudClcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJnZXREaXNwbGF5SXRlbXNTZWxlY3RlZChmb3JtUm93KVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgICAgICAgICA8L2Nkcy1kcm9wZG93bj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZpZWxkV2lkdGhEcm9wZG93bjsgY29udGV4dDoge2luZGV4OiAkaW5kZXh9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uX19vcHRpb25zXCI+XG4gICAgICAgICAgICBAc3dpdGNoIChmb3JtUm93LmdldCgndHlwZScpLnZhbHVlLmlkKSB7XG4gICAgICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuQ1VSUkVOQ1kpIHtcbiAgICAgICAgICAgICAgICA8Y2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5jdXJyZW5jeUNvZGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuY3VycmVuY3lDb2RlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmRpc3BsYXknIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlzcGxheVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlnaXRzSW5mbycgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5kaWdpdHNJbmZvUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzSW5mb1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5EQVRFKSB7XG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJpbnB1dFRoZW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmZvcm1hdFBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5EQVRFX1RJTUUpIHtcbiAgICAgICAgICAgICAgICA8Y2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5mb3JtYXQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZm9ybWF0UGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LkVOVU0pIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2VudW1cIlxuICAgICAgICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cInZhbHVlc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGZvciAocm93VmFsdWUgb2YgZm9ybVJvdy5nZXQoJ3ZhbHVlcycpPy5jb250cm9sczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJyb3dWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uX19lbnVtLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMua2V5JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIid3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmtleScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8Y2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy52YWx1ZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy52YWx1ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNkc0J1dHRvbj1cImRhbmdlci0tZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiRjb3VudCA9PT0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2RlbGV0ZS1idXR0b24gZW51bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVSb3dDbGljaygkZXZlbnQsIGZvcm1Sb3cuZ2V0KCd2YWx1ZXMnKSwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZEVudW1WYWx1ZUNsaWNrKGZvcm1Sb3cuZ2V0KCd2YWx1ZXMnKSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5hZGRFbnVtJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlnaXRzSW5mbycgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5kaWdpdHNJbmZvJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzSW5mb1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5QRVJDRU5UKSB7XG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlnaXRzSW5mbycgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5kaWdpdHNJbmZvJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzSW5mb1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9jZHMtYWNjb3JkaW9uLWl0ZW0+XG4gICAgfVxuICA8L2Nkcy1hY2NvcmRpb24+XG5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgc2l6ZT1cInNtXCIgKGNsaWNrKT1cIm9uQWRkRmllbGRDbGljaygpXCI+XG4gICAge3sgYWRkVHJhbnNsYXRlS2V5IHwgdHJhbnNsYXRlIH19XG5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9mb3JtPlxuXG48bmctdGVtcGxhdGUgI2ZpZWxkVGl0bGUgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtdGl0bGU9XCJ0aXRsZVwiPlxuICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkLWNvbHVtbl9fdGl0bGVcIj5cbiAgICB7eyB0aXRsZSB8fCAoJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMudGl0bGVQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUpIH19XG5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJkYW5nZXJcIlxuICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uX19kZWxldGUtYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvbkRlbGV0ZVJvd0NsaWNrKCRldmVudCwgZm9ybVJvd3MsIGluZGV4KVwiXG4gICAgPlxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWNvbmZpZ3VyYXRvcnMvZmllbGRzL2NvbHVtbi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvY29sdW1uL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFJTCx3QkFBd0IsR0FJekIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVks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QUNaLGNBQWMsbXJCQUNkLFdBQVcsMmFBQ1gsbUJBQW1CLG1qQ0FDbkIsVUFBVSw0TkFDVixlQUFlOzs0RkFHTiw0Q0FBNEM7a0JBbEJ4RCxTQUFTOytCQUNFLGlEQUFpRCxtQkFHMUMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixlQUFlO3FCQUNoQjt5T0FHcUMsS0FBSztzQkFBMUMsV0FBVzt1QkFBQyxPQUFPO2dCQUNZLFVBQVU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUVXLGlCQUFpQjtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYXNoQ2FuMTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBDYXNlV2lkZ2V0Q3VycmVuY3lEaXNwbGF5VHlwZSxcbiAgQ2FzZVdpZGdldERhdGVEaXNwbGF5VHlwZSxcbiAgQ2FzZVdpZGdldERhdGVUaW1lRGlzcGxheVR5cGUsXG4gIENhc2VXaWRnZXREaXNwbGF5VHlwZUtleSxcbiAgQ2FzZVdpZGdldEVudW1EaXNwbGF5VHlwZSxcbiAgQ2FzZVdpZGdldE51bWJlckRpc3BsYXlUeXBlLFxuICBGaWVsZHNDYXNlV2lkZ2V0VmFsdWUsXG59IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtcbiAgQWNjb3JkaW9uTW9kdWxlLFxuICBCdXR0b25Nb2R1bGUsXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSWNvblNlcnZpY2UsXG4gIElucHV0TW9kdWxlLFxuICBMaXN0SXRlbSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7V2lkZ2V0RmllbGRzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQWNjb3JkaW9uTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTWFuYWdlbWVudFdpZGdldEZpZWxkc0NvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uJztcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBjb2x1bW5EYXRhOiBGaWVsZHNDYXNlV2lkZ2V0VmFsdWVbXTtcbiAgQElucHV0KCkgcHVibGljIGFkZFRyYW5zbGF0ZUtleSA9ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmFkZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZFdpZHRoRHJvcGRvd24/OiBUZW1wbGF0ZVJlZjxEcm9wZG93bj47XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5VcGRhdGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGRhdGE6IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZVtdO1xuICAgIHZhbGlkOiBib29sZWFuO1xuICB9PigpO1xuXG4gIHB1YmxpYyBmb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICByb3dzOiB0aGlzLmZiLmFycmF5PGFueT4oW10pLFxuICB9KTtcblxuICBwdWJsaWMgZ2V0IGZvcm1Sb3dzKCk6IEZvcm1BcnJheSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQoJ3Jvd3MnKSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3Jvd3MnKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVJdGVtczogTGlzdEl0ZW1bXSA9IHRoaXMud2lkZ2V0RmllbGRzU2VydmljZS5kaXNwbGF5VHlwZUl0ZW1zO1xuXG4gIHB1YmxpYyBnZXREaXNwbGF5SXRlbXNTZWxlY3RlZChyb3c6IEFic3RyYWN0Q29udHJvbCk6IExpc3RJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLndpZGdldEZpZWxkc1NlcnZpY2UuZ2V0RGlzcGxheUl0ZW1zU2VsZWN0ZWQocm93KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkgPSBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlucHV0VGhlbWUkOiBPYnNlcnZhYmxlPEN1cnJlbnRDYXJib25UaGVtZT4gPSB0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0RmllbGRzU2VydmljZTogV2lkZ2V0RmllbGRzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyKFRyYXNoQ2FuMTYpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLm9wZW5Gb3JtU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25BZGRGaWVsZENsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtUm93cykgcmV0dXJuO1xuXG4gICAgdGhpcy5mb3JtUm93cy5wdXNoKFxuICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIHR5cGU6IHRoaXMuZmIuY29udHJvbDxMaXN0SXRlbT4oe2NvbnRlbnQ6ICcnLCBzZWxlY3RlZDogZmFsc2V9LCBbXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICB0aGlzLnR5cGVTZWxlY3RWYWxpZGF0b3IsXG4gICAgICAgIF0pLFxuICAgICAgICB0aXRsZTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBjb250ZW50OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25EZWxldGVSb3dDbGljayhldmVudDogRXZlbnQsIGZvcm1BcnJheTogRm9ybUFycmF5LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCFmb3JtQXJyYXkpIHJldHVybjtcblxuICAgIGZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICBwdWJsaWMgb25UeXBlU2VsZWN0ZWQoZm9ybVJvdzogRm9ybUdyb3VwLCBldmVudDoge2l0ZW06IExpc3RJdGVtfSk6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0RmllbGRzU2VydmljZS5vbkRpc3BsYXlUeXBlU2VsZWN0ZWQoWyd0aXRsZScsICdjb250ZW50JywgJ3R5cGUnXSwgZm9ybVJvdywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQWRkRW51bVZhbHVlQ2xpY2sodmFsdWVzRm9ybUFycmF5OiBGb3JtQXJyYXkpOiB2b2lkIHtcbiAgICB2YWx1ZXNGb3JtQXJyYXkucHVzaChcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBrZXk6IHRoaXMuZmIuY29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHZhbHVlOiB0aGlzLmZiLmNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB0eXBlU2VsZWN0VmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IG51bGwgfCB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gICAgY29uc3QgY29udHJvbFZhbHVlOiBMaXN0SXRlbSB8IHVuZGVmaW5lZCA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCFjb250cm9sVmFsdWUgfHwgIWNvbnRyb2xWYWx1ZS5zZWxlY3RlZCkgcmV0dXJuIHtlcnJvcjogJ1R5cGUgaXMgbm90IHNlbGVjdGVkJ307XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um93Rm9ybShyb3c6IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdHlwZTogdGhpcy5mYi5jb250cm9sPExpc3RJdGVtPihcbiAgICAgICAge1xuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgIGB3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZGlzcGxheVR5cGUuJHtyb3cuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LlRFWFR9YFxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgaWQ6IHJvdy5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA/PyBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuVEVYVCxcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgKSxcbiAgICAgIHRpdGxlOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihyb3cudGl0bGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY29udGVudDogdGhpcy5mYi5jb250cm9sPHN0cmluZz4ocm93LnZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIC4uLihbQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5Lk5VTUJFUiwgQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LlBFUkNFTlRdLmluY2x1ZGVzKFxuICAgICAgICByb3cuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgYXMgQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5XG4gICAgICApICYmIHtcbiAgICAgICAgZGlnaXRzSW5mbzogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oXG4gICAgICAgICAgKHJvdy5kaXNwbGF5UHJvcGVydGllcyBhcyBDYXNlV2lkZ2V0TnVtYmVyRGlzcGxheVR5cGUpLmRpZ2l0c0luZm8gPz8gJydcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHJvdy5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA9PT0gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LkNVUlJFTkNZICYmIHtcbiAgICAgICAgZGlnaXRzSW5mbzogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oXG4gICAgICAgICAgKHJvdy5kaXNwbGF5UHJvcGVydGllcyBhcyBDYXNlV2lkZ2V0Q3VycmVuY3lEaXNwbGF5VHlwZSkuZGlnaXRzSW5mbyA/PyAnJ1xuICAgICAgICApLFxuICAgICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KFxuICAgICAgICAgIChyb3cuZGlzcGxheVByb3BlcnRpZXMgYXMgQ2FzZVdpZGdldEN1cnJlbmN5RGlzcGxheVR5cGUpLmN1cnJlbmN5Q29kZSA/PyAnJ1xuICAgICAgICApLFxuICAgICAgICBkaXNwbGF5OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihcbiAgICAgICAgICAocm93LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXRDdXJyZW5jeURpc3BsYXlUeXBlKS5kaXNwbGF5ID8/ICcnXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICAgIC4uLihyb3cuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPT09IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5EQVRFICYmIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihcbiAgICAgICAgICAocm93LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXREYXRlRGlzcGxheVR5cGUpLmZvcm1hdCA/PyAnJ1xuICAgICAgICApLFxuICAgICAgfSksXG4gICAgICAuLi4ocm93LmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID09PSBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuREFURV9USU1FICYmIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPihcbiAgICAgICAgICAocm93LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXREYXRlVGltZURpc3BsYXlUeXBlKS5mb3JtYXQgPz8gJydcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHJvdy5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA9PT0gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LkVOVU0gJiYge1xuICAgICAgICB2YWx1ZXM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoKHJvdy5kaXNwbGF5UHJvcGVydGllcyBhcyBDYXNlV2lkZ2V0RW51bURpc3BsYXlUeXBlKS52YWx1ZXMpLm1hcChcbiAgICAgICAgICAgIChba2V5LCB2YWx1ZV0pID0+XG4gICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oa2V5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4odmFsdWUgYXMgc3RyaW5nLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkRhdGEpIHJldHVybjtcblxuICAgIGNvbnN0IHJvd3NDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5O1xuICAgIGlmICghcm93c0NvbnRyb2wpIHJldHVybjtcblxuICAgIHRoaXMuY29sdW1uRGF0YS5mb3JFYWNoKChyb3c6IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSkgPT4ge1xuICAgICAgcm93c0NvbnRyb2wucHVzaCh0aGlzLmdldFJvd0Zvcm0ocm93KSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29sdW1uVXBkYXRlRXZlbnQuZW1pdCh7ZGF0YTogdGhpcy5jb2x1bW5EYXRhLCB2YWxpZDogdHJ1ZX0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm1Sb3dzPy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKChyb3dzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGVkUm93czogRmllbGRzQ2FzZVdpZGdldFZhbHVlW10gPSByb3dzLm1hcCgocm93OiBhbnkgfCBudWxsKSA9PiAoe1xuICAgICAgICAgIGtleTogcm93LnRpdGxlLnJlcGxhY2UoL1xcVysvZywgJy0nKS5yZXBsYWNlKC9cXC0kLywgJycpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgdGl0bGU6IHJvdy50aXRsZSxcbiAgICAgICAgICB2YWx1ZTogcm93LmNvbnRlbnQsXG4gICAgICAgICAgLi4uKCEhcm93Py50eXBlLmlkICYmXG4gICAgICAgICAgICByb3c/LnR5cGUuaWQgIT09IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5URVhUICYmIHtcbiAgICAgICAgICAgICAgZGlzcGxheVByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiByb3cudHlwZS5pZCxcbiAgICAgICAgICAgICAgICAuLi4oISFyb3c/LmN1cnJlbmN5Q29kZSAmJiB7Y3VycmVuY3lDb2RlOiByb3cuY3VycmVuY3lDb2RlfSksXG4gICAgICAgICAgICAgICAgLi4uKCEhcm93Py5kaXNwbGF5ICYmIHtkaXNwbGF5OiByb3cuZGlzcGxheX0pLFxuICAgICAgICAgICAgICAgIC4uLighIXJvdz8uZGlnaXRzSW5mbyAmJiB7ZGlnaXRzSW5mbzogcm93LmRpZ2l0c0luZm99KSxcbiAgICAgICAgICAgICAgICAuLi4oISFyb3c/LmZvcm1hdCAmJiB7Zm9ybWF0OiByb3cuZm9ybWF0fSksXG4gICAgICAgICAgICAgICAgLi4uKCEhcm93Py52YWx1ZXMgJiYge1xuICAgICAgICAgICAgICAgICAgdmFsdWVzOiByb3cudmFsdWVzPy5yZWR1Y2UoKGFjYywgY3VycikgPT4gKHsuLi5hY2MsIFtjdXJyLmtleV06IGN1cnIudmFsdWV9KSwge30pLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5jb2x1bW5VcGRhdGVFdmVudC5lbWl0KHtkYXRhOiBtYXBwZWRSb3dzLCB2YWxpZDogdGhpcy5mb3JtR3JvdXAudmFsaWR9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPGZvcm1cbiAgKm5nSWY9XCJpbnB1dFRoZW1lJCB8IGFzeW5jIGFzIGlucHV0VGhlbWVcIlxuICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5cIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4+XG4gIDxjZHMtYWNjb3JkaW9uIGZvcm1BcnJheU5hbWU9XCJyb3dzXCIgYWxpZ249XCJzdGFydFwiIHNpemU9XCJzbVwiPlxuICAgIEBmb3IgKGZvcm1Sb3cgb2YgZm9ybVJvd3MuY29udHJvbHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGNkcy1hY2NvcmRpb24taXRlbVxuICAgICAgICBbdGl0bGVdPVwiZmllbGRUaXRsZVwiXG4gICAgICAgIFtjb250ZXh0XT1cIntpbmRleDogJGluZGV4LCB0aXRsZTogZm9ybVJvdy5nZXQoJ3RpdGxlJyk/LnZhbHVlfVwiXG4gICAgICAgIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkLWNvbHVtbl9faXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtUm93XCJcbiAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2NvbnRhaW5lclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2NvbnRlbnRcIlxuICAgICAgICAgICAgW2NsYXNzLnZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2NvbnRlbnQtLWNvbGxlY3Rpb25dPVwiXG4gICAgICAgICAgICAgICEhZmllbGRXaWR0aERyb3Bkb3duXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMudGl0bGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy50aXRsZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG5cbiAgICAgICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMudmFsdWUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy52YWx1ZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICAgICAgPGNkcy1kcm9wZG93blxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJpbnB1dFRoZW1lXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIid3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLnR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2Ryb3BVcF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy50eXBlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cIm9uVHlwZVNlbGVjdGVkKGZvcm1Sb3csICRldmVudClcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJnZXREaXNwbGF5SXRlbXNTZWxlY3RlZChmb3JtUm93KVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgICAgICAgICA8L2Nkcy1kcm9wZG93bj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZpZWxkV2lkdGhEcm9wZG93bjsgY29udGV4dDoge2luZGV4OiAkaW5kZXh9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uX19vcHRpb25zXCI+XG4gICAgICAgICAgICBAc3dpdGNoIChmb3JtUm93LmdldCgndHlwZScpLnZhbHVlLmlkKSB7XG4gICAgICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuQ1VSUkVOQ1kpIHtcbiAgICAgICAgICAgICAgICA8Y2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5jdXJyZW5jeUNvZGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuY3VycmVuY3lDb2RlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmRpc3BsYXknIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlzcGxheVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlnaXRzSW5mbycgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5kaWdpdHNJbmZvUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzSW5mb1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5EQVRFKSB7XG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJpbnB1dFRoZW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmZvcm1hdFBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5EQVRFX1RJTUUpIHtcbiAgICAgICAgICAgICAgICA8Y2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5mb3JtYXQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cImlucHV0VGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZm9ybWF0UGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LkVOVU0pIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2VudW1cIlxuICAgICAgICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cInZhbHVlc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGZvciAocm93VmFsdWUgb2YgZm9ybVJvdy5nZXQoJ3ZhbHVlcycpPy5jb250cm9sczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJyb3dWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uX19lbnVtLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMua2V5JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIid3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZmllbGRzLmtleScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8Y2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy52YWx1ZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy52YWx1ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNkc0J1dHRvbj1cImRhbmdlci0tZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiRjb3VudCA9PT0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZC1jb2x1bW5fX2RlbGV0ZS1idXR0b24gZW51bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVSb3dDbGljaygkZXZlbnQsIGZvcm1Sb3cuZ2V0KCd2YWx1ZXMnKSwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZEVudW1WYWx1ZUNsaWNrKGZvcm1Sb3cuZ2V0KCd2YWx1ZXMnKSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5hZGRFbnVtJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXkuTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlnaXRzSW5mbycgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5kaWdpdHNJbmZvJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzSW5mb1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5QRVJDRU5UKSB7XG4gICAgICAgICAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMuZGlnaXRzSW5mbycgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwiaW5wdXRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZpZWxkcy5kaWdpdHNJbmZvJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzSW5mb1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9jZHMtYWNjb3JkaW9uLWl0ZW0+XG4gICAgfVxuICA8L2Nkcy1hY2NvcmRpb24+XG5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgc2l6ZT1cInNtXCIgKGNsaWNrKT1cIm9uQWRkRmllbGRDbGljaygpXCI+XG4gICAge3sgYWRkVHJhbnNsYXRlS2V5IHwgdHJhbnNsYXRlIH19XG5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9mb3JtPlxuXG48bmctdGVtcGxhdGUgI2ZpZWxkVGl0bGUgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtdGl0bGU9XCJ0aXRsZVwiPlxuICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkLWNvbHVtbl9fdGl0bGVcIj5cbiAgICB7eyB0aXRsZSB8fCAoJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5maWVsZHMudGl0bGVQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUpIH19XG5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJkYW5nZXJcIlxuICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQtY29sdW1uX19kZWxldGUtYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvbkRlbGV0ZVJvd0NsaWNrKCRldmVudCwgZm9ybVJvd3MsIGluZGV4KVwiXG4gICAgPlxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -109,10 +109,10 @@ export class DossierManagementWidgetFieldsComponent {
|
|
|
109
109
|
this._contentValid.set(event.valid);
|
|
110
110
|
this.changeValidEvent.emit(event.valid && this.form.valid);
|
|
111
111
|
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsComponent, deps: [{ token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierManagementWidgetFieldsComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<p>{{ 'widgetTabManagement.content.description' | translate }}</p>\n\n<form [formGroup]=\"form\">\n <cds-text-label\n [attr.data-carbon-theme]=\"theme$ | async\"\n class=\"valtimo-dossier-management-widget-field__input\"\n >\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n</form>\n\n<ng-container>\n <cds-tabs type=\"contained\">\n @for (column of columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-dossier-management-widget-fields-column\n *ngIf=\"activeTab() === $index\"\n [columnData]=\"selectedWidgetContent()?.[$index]\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-dossier-management-widget-fields-column>\n </cds-tab>\n }\n <cds-tab\n *ngIf=\"columns().length < widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-dossier-management-widget-field__add\"\n ></cds-tab>\n </cds-tabs>\n</ng-container>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-dossier-management-widget-field__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field{display:flex;flex-direction:column}.valtimo-dossier-management-widget-field>*:first-child,.valtimo-dossier-management-widget-field>*:nth-child(2){margin-bottom:16px}.valtimo-dossier-management-widget-field__input{max-width:288px}.valtimo-dossier-management-widget-field__heading{display:flex;align-items:center}.valtimo-dossier-management-widget-field #addColumn-header{padding:0!important}.valtimo-dossier-management-widget-field .cds--tabs__nav-item{padding-right:0!important}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i6.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i6.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: DossierManagementWidgetFieldsColumnComponent, selector: "valtimo-dossier-management-widget-fields-column", inputs: ["columnData", "addTranslateKey", "fieldWidthDropdown"], outputs: ["columnUpdateEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
118
118
|
CommonModule,
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
130
130
|
}], changeValidEvent: [{
|
|
131
131
|
type: Output
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBR1gsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFtQixrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RixPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFDLDRDQUE0QyxFQUFDLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7O0FBbUJ4SCxNQUFNLE9BQU8sc0NBQXNDO0lBZ0NqRCxZQUNtQixlQUFnQyxFQUNoQyxFQUFlLEVBQ2YsbUJBQXdDO1FBRnhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ysd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWhDckIsVUFBSyxHQUFHLHlDQUF5QyxDQUFDO1FBQzlELHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFbEUsU0FBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUMxRixDQUFDLENBQUM7UUFFYSxZQUFPLEdBQUcsTUFBTSxDQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRCxxQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixXQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FDaEMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDekUsQ0FDRixDQUFDO1FBQ2MsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUEwQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQy9FLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckIsR0FBRyxHQUFHO1lBQ04sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO1NBQ2QsQ0FBQyxFQUNGLEVBQUUsQ0FDSCxDQUNGLENBQUM7UUFDYyxjQUFTLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRTdCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQU1yRCxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBMEI7WUFDckYsRUFBRSxPQUFPLENBQUM7UUFDWixJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRTFCLE1BQU0sYUFBYSxHQUFHLE9BQThCLENBQUM7WUFFckQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksV0FBVyxHQUFHLEVBQUMsR0FBRyxhQUFhLEVBQUMsQ0FBQztZQUNyQyxPQUFPLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUM7WUFDRCxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFekMsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV0QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssS0FBSztZQUFFLE9BQU87UUFFdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU0sbUJBQW1CLENBQ3hCLEtBR0MsRUFDRCxXQUFtQjtRQUVuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLEVBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7WUFFN0MsTUFBTSxPQUFPLEdBQUksT0FBK0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQzlFLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDNUMsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87YUFDL0UsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7OEdBcEhVLHNDQUFzQztrR0FBdEMsc0NBQXNDLDRLQ3ZEbkQsd3VGQW9GQSxnc0NEdkNJLFlBQVksdUxBQ1osZUFBZSwyRkFDZixXQUFXLDJhQUNYLFVBQVUsOFpBQ1YsVUFBVSw0TkFDVixtQkFBbUIsNDhCQUNuQixZQUFZLGlNQUNaLDRDQUE0Qzs7MkZBR25DLHNDQUFzQztrQkFqQmxELFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWiw0Q0FBNEM7cUJBQzdDO2dKQUtxQyxLQUFLO3NCQUExQyxXQUFXO3VCQUFDLE9BQU87Z0JBQ00sZ0JBQWdCO3NCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDQVJCT05fVEhFTUUsIENkc1RoZW1lU2VydmljZSwgQ3VycmVudENhcmJvblRoZW1lfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7RmllbGRzQ2FzZVdpZGdldFZhbHVlLCBXaWRnZXRGaWVsZHNDb250ZW50fSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlLCBJbnB1dE1vZHVsZSwgVGFic01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0RmllbGRzQ29sdW1uQ29tcG9uZW50fSBmcm9tICcuL2NvbHVtbi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRGaWVsZHNDb2x1bW5Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0RmllbGRzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQnO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGNoYW5nZVZhbGlkRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB3aWRnZXRUaXRsZTogdGhpcy5mYi5jb250cm9sKHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRUaXRsZSgpLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbnMgPSBzaWduYWw8bnVsbFtdPihbbnVsbF0pO1xuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0V2lkdGggPSB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0V2lkdGgoKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkVGFiSW5kZXggPSAtMTtcbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY2RzVGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQucGlwZShcbiAgICBtYXAoKHRoZW1lOiBDdXJyZW50Q2FyYm9uVGhlbWUpID0+XG4gICAgICB0aGVtZSA9PT0gQ3VycmVudENhcmJvblRoZW1lLkcxMCA/IENBUkJPTl9USEVNRS5XSElURSA6IENBUkJPTl9USEVNRS5HOTBcbiAgICApXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFdpZGdldENvbnRlbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgICh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudCgpIGFzIFdpZGdldEZpZWxkc0NvbnRlbnQpPy5jb2x1bW5zLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnIsIGluZGV4KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpbmRleF06IGN1cnIsXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlVGFiID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudFZhbGlkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkc1RoZW1lU2VydmljZTogQ2RzVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0V2l6YXJkU2VydmljZTogV2lkZ2V0V2l6YXJkU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoZm9ybVZhbHVlID0+IHtcbiAgICAgICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFRpdGxlLnNldChmb3JtVmFsdWUud2lkZ2V0VGl0bGUgPz8gJycpO1xuICAgICAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0aGlzLmZvcm0udmFsaWQgJiYgdGhpcy5fY29udGVudFZhbGlkKCkpO1xuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IHdpZGdldENvbnRlbnQgPSAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRGaWVsZHNDb250ZW50KVxuICAgICAgPy5jb2x1bW5zO1xuICAgIGlmICghd2lkZ2V0Q29udGVudCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb2x1bW5zLnNldChPYmplY3Qua2V5cyh3aWRnZXRDb250ZW50KS5tYXAoKCkgPT4gbnVsbCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5fY29udGVudFZhbGlkLnNldChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgb25BZGRDb2x1bW5DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnMudXBkYXRlKHZhbHVlID0+IFsuLi52YWx1ZSwgbnVsbF0pO1xuICAgIHRoaXMuYWN0aXZlVGFiLnNldCh0aGlzLmNvbHVtbnMoKS5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRhYlNlbGVjdGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVRhYi5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlQ29sdW1uQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRDb250ZW50LnVwZGF0ZShjb250ZW50ID0+IHtcbiAgICAgIGlmICghY29udGVudCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IHdpZGdldENvbnRlbnQgPSBjb250ZW50IGFzIFdpZGdldEZpZWxkc0NvbnRlbnQ7XG5cbiAgICAgIGxldCB0ZW1wSW5kZXggPSBpbmRleDtcbiAgICAgIGxldCB0ZW1wQ29udGVudCA9IHsuLi53aWRnZXRDb250ZW50fTtcbiAgICAgIHdoaWxlICh0ZW1wSW5kZXggPCB0aGlzLmNvbHVtbnMoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRlbXBDb250ZW50LmNvbHVtbnNbdGVtcEluZGV4XSA9IHRlbXBDb250ZW50LmNvbHVtbnNbdGVtcEluZGV4ICsgMV07XG4gICAgICAgIHRlbXBJbmRleCsrO1xuICAgICAgfVxuICAgICAgdGVtcENvbnRlbnQuY29sdW1ucy5zcGxpY2UodGVtcEluZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHRlbXBDb250ZW50O1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgoY29sdW1uczogbnVsbFtdKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wID0gY29sdW1ucztcbiAgICAgIHRlbXAuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHRlbXA7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUYWIoKSAhPT0gaW5kZXgpIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlVGFiLnNldCgtMSk7XG4gIH1cblxuICBwdWJsaWMgb25Db2x1bW5VcGRhdGVFdmVudChcbiAgICBldmVudDoge1xuICAgICAgZGF0YTogRmllbGRzQ2FzZVdpZGdldFZhbHVlW107XG4gICAgICB2YWxpZDogYm9vbGVhbjtcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQudXBkYXRlKGNvbnRlbnQgPT4ge1xuICAgICAgaWYgKCFjb250ZW50KSByZXR1cm4ge2NvbHVtbnM6IFtldmVudC5kYXRhXX07XG5cbiAgICAgIGNvbnN0IGNvbHVtbnMgPSAoY29udGVudCBhcyBXaWRnZXRGaWVsZHNDb250ZW50KT8uY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+XG4gICAgICAgIGluZGV4ID09PSBjb2x1bW5JbmRleCA/IGV2ZW50LmRhdGEgOiBjb2x1bW5cbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5JbmRleCA+IGNvbHVtbnMubGVuZ3RoIC0gMSA/IFsuLi5jb2x1bW5zLCBldmVudC5kYXRhXSA6IGNvbHVtbnMsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuX2NvbnRlbnRWYWxpZC5zZXQoZXZlbnQudmFsaWQpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KGV2ZW50LnZhbGlkICYmIHRoaXMuZm9ybS52YWxpZCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHA+e3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX08L3A+XG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8Y2RzLXRleHQtbGFiZWxcbiAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZSQgfCBhc3luY1wiXG4gICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRfX2lucHV0XCJcbiAgPlxuICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQud2lkZ2V0VGl0bGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIndpZGdldFRpdGxlXCJcbiAgICAgIGNkc1RleHRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICA8L2Nkcy10ZXh0LWxhYmVsPlxuPC9mb3JtPlxuXG48bmctY29udGFpbmVyPlxuICA8Y2RzLXRhYnMgdHlwZT1cImNvbnRhaW5lZFwiPlxuICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGNkcy10YWJcbiAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIoKSA9PT0gJGluZGV4XCJcbiAgICAgICAgW2hlYWRpbmddPVwiY29sdW1uSGVhZGluZ1wiXG4gICAgICAgIFtjb250ZXh0XT1cIntpbmRleDogJGluZGV4LCBjb3VudDogJGNvdW50fVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJvblRhYlNlbGVjdGVkKCRpbmRleClcIlxuICAgICAgPlxuICAgICAgICA8dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW5cbiAgICAgICAgICAqbmdJZj1cImFjdGl2ZVRhYigpID09PSAkaW5kZXhcIlxuICAgICAgICAgIFtjb2x1bW5EYXRhXT1cInNlbGVjdGVkV2lkZ2V0Q29udGVudCgpPy5bJGluZGV4XVwiXG4gICAgICAgICAgKGNvbHVtblVwZGF0ZUV2ZW50KT1cIm9uQ29sdW1uVXBkYXRlRXZlbnQoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4+XG4gICAgICA8L2Nkcy10YWI+XG4gICAgfVxuICAgIDxjZHMtdGFiXG4gICAgICAqbmdJZj1cImNvbHVtbnMoKS5sZW5ndGggPCB3aWRnZXRXaWR0aFwiXG4gICAgICBbaGVhZGluZ109XCJhZGRDb2x1bW5cIlxuICAgICAgW2lkXT1cIidhZGRDb2x1bW4nXCJcbiAgICAgIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19hZGRcIlxuICAgID48L2Nkcy10YWI+XG4gIDwvY2RzLXRhYnM+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNhZGRDb2x1bW4+XG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7IG9uQWRkQ29sdW1uQ2xpY2soKVwiXG4gID5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5IZWFkaW5nIGxldC1kYXRhPlxuICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19oZWFkaW5nXCI+XG4gICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jb2x1bW4nIHwgdHJhbnNsYXRlOiB7bnVtYmVyOiBkYXRhLmluZGV4ICsgMX0gfX1cblxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkYXRhLmNvdW50ID09PSAxXCJcbiAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICAoY2xpY2spPVwib25EZWxldGVDb2x1bW5DbGljayhkYXRhLmluZGV4KVwiXG4gICAgPlxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImNsb3NlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBR1gsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFtQixrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RixPQUFPLEVBQUMsWUFBWSxF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QyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7K0dBcEhVLHNDQUFzQzttR0FBdEMsc0NBQXNDLDRLQ3ZEbkQsd3VGQW9GQSxnc0NEdkNJLFlBQVksdUxBQ1osZUFBZSwyRkFDZixXQUFXLDJhQUNYLFVBQVUsOFpBQ1YsVUFBVSw0TkFDVixtQkFBbUIsNDhCQUNuQixZQUFZLGlNQUNaLDRDQUE0Qzs7NEZBR25DLHNDQUFzQztrQkFqQmxELFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWiw0Q0FBNEM7cUJBQzdDO2dKQUtxQyxLQUFLO3NCQUExQyxXQUFXO3VCQUFDLE9BQU87Z0JBQ00sZ0JBQWdCO3NCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDQVJCT05fVEhFTUUsIENkc1RoZW1lU2VydmljZSwgQ3VycmVudENhcmJvblRoZW1lfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7RmllbGRzQ2FzZVdpZGdldFZhbHVlLCBXaWRnZXRGaWVsZHNDb250ZW50fSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlLCBJbnB1dE1vZHVsZSwgVGFic01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0RmllbGRzQ29sdW1uQ29tcG9uZW50fSBmcm9tICcuL2NvbHVtbi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRGaWVsZHNDb2x1bW5Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0RmllbGRzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGQnO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGNoYW5nZVZhbGlkRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB3aWRnZXRUaXRsZTogdGhpcy5mYi5jb250cm9sKHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRUaXRsZSgpLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbnMgPSBzaWduYWw8bnVsbFtdPihbbnVsbF0pO1xuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0V2lkdGggPSB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0V2lkdGgoKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkVGFiSW5kZXggPSAtMTtcbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY2RzVGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQucGlwZShcbiAgICBtYXAoKHRoZW1lOiBDdXJyZW50Q2FyYm9uVGhlbWUpID0+XG4gICAgICB0aGVtZSA9PT0gQ3VycmVudENhcmJvblRoZW1lLkcxMCA/IENBUkJPTl9USEVNRS5XSElURSA6IENBUkJPTl9USEVNRS5HOTBcbiAgICApXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFdpZGdldENvbnRlbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgICh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudCgpIGFzIFdpZGdldEZpZWxkc0NvbnRlbnQpPy5jb2x1bW5zLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnIsIGluZGV4KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpbmRleF06IGN1cnIsXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlVGFiID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudFZhbGlkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkc1RoZW1lU2VydmljZTogQ2RzVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0V2l6YXJkU2VydmljZTogV2lkZ2V0V2l6YXJkU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoZm9ybVZhbHVlID0+IHtcbiAgICAgICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFRpdGxlLnNldChmb3JtVmFsdWUud2lkZ2V0VGl0bGUgPz8gJycpO1xuICAgICAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0aGlzLmZvcm0udmFsaWQgJiYgdGhpcy5fY29udGVudFZhbGlkKCkpO1xuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IHdpZGdldENvbnRlbnQgPSAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRGaWVsZHNDb250ZW50KVxuICAgICAgPy5jb2x1bW5zO1xuICAgIGlmICghd2lkZ2V0Q29udGVudCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb2x1bW5zLnNldChPYmplY3Qua2V5cyh3aWRnZXRDb250ZW50KS5tYXAoKCkgPT4gbnVsbCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5fY29udGVudFZhbGlkLnNldChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgb25BZGRDb2x1bW5DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnMudXBkYXRlKHZhbHVlID0+IFsuLi52YWx1ZSwgbnVsbF0pO1xuICAgIHRoaXMuYWN0aXZlVGFiLnNldCh0aGlzLmNvbHVtbnMoKS5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRhYlNlbGVjdGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVRhYi5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlQ29sdW1uQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRDb250ZW50LnVwZGF0ZShjb250ZW50ID0+IHtcbiAgICAgIGlmICghY29udGVudCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IHdpZGdldENvbnRlbnQgPSBjb250ZW50IGFzIFdpZGdldEZpZWxkc0NvbnRlbnQ7XG5cbiAgICAgIGxldCB0ZW1wSW5kZXggPSBpbmRleDtcbiAgICAgIGxldCB0ZW1wQ29udGVudCA9IHsuLi53aWRnZXRDb250ZW50fTtcbiAgICAgIHdoaWxlICh0ZW1wSW5kZXggPCB0aGlzLmNvbHVtbnMoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRlbXBDb250ZW50LmNvbHVtbnNbdGVtcEluZGV4XSA9IHRlbXBDb250ZW50LmNvbHVtbnNbdGVtcEluZGV4ICsgMV07XG4gICAgICAgIHRlbXBJbmRleCsrO1xuICAgICAgfVxuICAgICAgdGVtcENvbnRlbnQuY29sdW1ucy5zcGxpY2UodGVtcEluZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHRlbXBDb250ZW50O1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgoY29sdW1uczogbnVsbFtdKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wID0gY29sdW1ucztcbiAgICAgIHRlbXAuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHRlbXA7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUYWIoKSAhPT0gaW5kZXgpIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlVGFiLnNldCgtMSk7XG4gIH1cblxuICBwdWJsaWMgb25Db2x1bW5VcGRhdGVFdmVudChcbiAgICBldmVudDoge1xuICAgICAgZGF0YTogRmllbGRzQ2FzZVdpZGdldFZhbHVlW107XG4gICAgICB2YWxpZDogYm9vbGVhbjtcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQudXBkYXRlKGNvbnRlbnQgPT4ge1xuICAgICAgaWYgKCFjb250ZW50KSByZXR1cm4ge2NvbHVtbnM6IFtldmVudC5kYXRhXX07XG5cbiAgICAgIGNvbnN0IGNvbHVtbnMgPSAoY29udGVudCBhcyBXaWRnZXRGaWVsZHNDb250ZW50KT8uY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+XG4gICAgICAgIGluZGV4ID09PSBjb2x1bW5JbmRleCA/IGV2ZW50LmRhdGEgOiBjb2x1bW5cbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5JbmRleCA+IGNvbHVtbnMubGVuZ3RoIC0gMSA/IFsuLi5jb2x1bW5zLCBldmVudC5kYXRhXSA6IGNvbHVtbnMsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuX2NvbnRlbnRWYWxpZC5zZXQoZXZlbnQudmFsaWQpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KGV2ZW50LnZhbGlkICYmIHRoaXMuZm9ybS52YWxpZCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHA+e3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX08L3A+XG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8Y2RzLXRleHQtbGFiZWxcbiAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZSQgfCBhc3luY1wiXG4gICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRfX2lucHV0XCJcbiAgPlxuICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQud2lkZ2V0VGl0bGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIndpZGdldFRpdGxlXCJcbiAgICAgIGNkc1RleHRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICA8L2Nkcy10ZXh0LWxhYmVsPlxuPC9mb3JtPlxuXG48bmctY29udGFpbmVyPlxuICA8Y2RzLXRhYnMgdHlwZT1cImNvbnRhaW5lZFwiPlxuICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGNkcy10YWJcbiAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIoKSA9PT0gJGluZGV4XCJcbiAgICAgICAgW2hlYWRpbmddPVwiY29sdW1uSGVhZGluZ1wiXG4gICAgICAgIFtjb250ZXh0XT1cIntpbmRleDogJGluZGV4LCBjb3VudDogJGNvdW50fVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJvblRhYlNlbGVjdGVkKCRpbmRleClcIlxuICAgICAgPlxuICAgICAgICA8dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW5cbiAgICAgICAgICAqbmdJZj1cImFjdGl2ZVRhYigpID09PSAkaW5kZXhcIlxuICAgICAgICAgIFtjb2x1bW5EYXRhXT1cInNlbGVjdGVkV2lkZ2V0Q29udGVudCgpPy5bJGluZGV4XVwiXG4gICAgICAgICAgKGNvbHVtblVwZGF0ZUV2ZW50KT1cIm9uQ29sdW1uVXBkYXRlRXZlbnQoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4+XG4gICAgICA8L2Nkcy10YWI+XG4gICAgfVxuICAgIDxjZHMtdGFiXG4gICAgICAqbmdJZj1cImNvbHVtbnMoKS5sZW5ndGggPCB3aWRnZXRXaWR0aFwiXG4gICAgICBbaGVhZGluZ109XCJhZGRDb2x1bW5cIlxuICAgICAgW2lkXT1cIidhZGRDb2x1bW4nXCJcbiAgICAgIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19hZGRcIlxuICAgID48L2Nkcy10YWI+XG4gIDwvY2RzLXRhYnM+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNhZGRDb2x1bW4+XG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7IG9uQWRkQ29sdW1uQ2xpY2soKVwiXG4gID5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5IZWFkaW5nIGxldC1kYXRhPlxuICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19oZWFkaW5nXCI+XG4gICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jb2x1bW4nIHwgdHJhbnNsYXRlOiB7bnVtYmVyOiBkYXRhLmluZGV4ICsgMX0gfX1cblxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkYXRhLmNvdW50ID09PSAxXCJcbiAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICAoY2xpY2spPVwib25EZWxldGVDb2x1bW5DbGljayhkYXRhLmluZGV4KVwiXG4gICAgPlxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImNsb3NlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|