@valtimo/dossier 12.1.2 → 12.2.0

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.
Files changed (23) hide show
  1. package/esm2022/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +1 -1
  2. package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +1 -1
  3. package/esm2022/lib/components/dossier-detail/tab/progress/progress.component.mjs +1 -1
  4. package/esm2022/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.mjs +3 -3
  5. package/esm2022/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.mjs +3 -3
  6. package/esm2022/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.mjs +4 -1
  7. package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +9 -5
  8. package/esm2022/lib/components/dossier-list-actions/dossier-list-actions.component.mjs +18 -7
  9. package/esm2022/lib/components/note-modal/note-modal.component.mjs +1 -1
  10. package/esm2022/lib/services/dossier-tab-api.service.mjs +2 -7
  11. package/esm2022/lib/services/dossier-tab.service.mjs +2 -3
  12. package/fesm2022/valtimo-dossier.mjs +36 -23
  13. package/fesm2022/valtimo-dossier.mjs.map +1 -1
  14. package/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.d.ts.map +1 -1
  15. package/lib/components/dossier-detail/tab/widgets/widgets.component.d.ts +1 -1
  16. package/lib/components/dossier-detail/tab/widgets/widgets.component.d.ts.map +1 -1
  17. package/lib/components/dossier-list/dossier-list.component.d.ts +3 -1
  18. package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -1
  19. package/lib/components/dossier-list-actions/dossier-list-actions.component.d.ts +4 -3
  20. package/lib/components/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -1
  21. package/lib/services/dossier-tab-api.service.d.ts.map +1 -1
  22. package/lib/services/dossier-tab.service.d.ts.map +1 -1
  23. package/package.json +4 -4
@@ -57,7 +57,7 @@ export class DossierBulkAssignModalComponent {
57
57
  return index;
58
58
  }
59
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierBulkAssignModalComponent, deps: [{ token: i1.DossierBulkAssignService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierBulkAssignModalComponent, selector: "valtimo-dossier-bulk-assign-modal", inputs: { documentIds: "documentIds", open: "open" }, outputs: { closeEvent: "closeEvent" }, host: { properties: { "class": "this.modalClass" } }, 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<cds-modal valtimoCdsModal [open]=\"open\" (close)=\"closeModal()\" showFooter=\"true\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dossier.bulkAssign.modal.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form *ngIf=\"candidateUsers$ | async as candidateUsers\" [formGroup]=\"formGroup\">\n <cds-combo-box\n formControlName=\"assignee\"\n [dropUp]=\"false\"\n [items]=\"candidateUsers\"\n [label]=\"'dossier.bulkAssign.modal.selectLabel' | translate\"\n [placeholder]=\"'dossier.bulkAssign.modal.selectPlaceholder' | translate\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">{{ 'interface.cancel' | translate }}</button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"closeModal(true)\">\n {{ 'dossier.bulkAssign.modal.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["::ng-deep .valtimo-dossier-bulk-assign-modal .cds--list-box__field{background-color:#fff}::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-container,::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-content{overflow:unset}\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: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "items", "type", "size", "itemValueKey", "label", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierBulkAssignModalComponent, selector: "valtimo-dossier-bulk-assign-modal", inputs: { documentIds: "documentIds", open: "open" }, outputs: { closeEvent: "closeEvent" }, host: { properties: { "class": "this.modalClass" } }, 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<cds-modal valtimoCdsModal [open]=\"open\" (close)=\"closeModal()\" showFooter=\"true\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dossier.bulkAssign.modal.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form *ngIf=\"candidateUsers$ | async as candidateUsers\" [formGroup]=\"formGroup\">\n <cds-combo-box\n formControlName=\"assignee\"\n [dropUp]=\"false\"\n [items]=\"candidateUsers\"\n [label]=\"'dossier.bulkAssign.modal.selectLabel' | translate\"\n [placeholder]=\"'dossier.bulkAssign.modal.selectPlaceholder' | translate\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">{{ 'interface.cancel' | translate }}</button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"closeModal(true)\">\n {{ 'dossier.bulkAssign.modal.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["::ng-deep .valtimo-dossier-bulk-assign-modal .cds--list-box__field{background-color:#fff}::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-container,::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-content{overflow:unset}\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: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierBulkAssignModalComponent, decorators: [{
63
63
  type: Component,
@@ -218,7 +218,7 @@ export class DossierDetailComponent {
218
218
  });
219
219
  }
220
220
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailComponent, deps: [{ token: i1.BreadcrumbService }, { token: i0.ComponentFactoryResolver }, { token: i2.ConfigService }, { token: i3.DocumentService }, { token: i4.KeycloakService }, { token: i5.Location }, { token: i6.NGXLogger }, { token: i7.PermissionService }, { token: i8.ActivatedRoute }, { token: i8.Router }, { token: i9.DossierTabService }, { token: i9.DossierService }, { token: i3.CaseStatusService }, { token: i1.PageTitleService }, { token: i10.IconService }, { token: i1.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
221
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierDetailComponent, selector: "valtimo-dossier-detail", providers: [DossierTabService], viewQueries: [{ propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef }], 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<div\n class=\"main-content\"\n [ngClass]=\"{'main-content--no-horizontal-overflow': tabHorizontalOverflowDisabled()}\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-template #tabs>\n <ng-container *ngIf=\"tabLoader\">\n <cds-tabs type=\"inline\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.isActive()\"\n heading=\"{{ tab | tabTranslate | async }}\"\n [id]=\"\"\n (selected)=\"tabLoader.load(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n\n <div class=\"tab-content-container\">\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n\n <div *ngIf=\"showTaskList$ | async\" class=\"tab-content-container__task-list\">\n <valtimo-dossier-detail-task-list></valtimo-dossier-detail-task-list>\n </div>\n </div>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"(customDossierHeaderItems || []).length > 0\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n class=\"mb-0 mt-0 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n >\n {{ 'dossier.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"dossier-actions\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async\n } as obs\"\n >\n <div\n class=\"dossier-status-assign-custom-title\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\">{{ obs.caseStatus.title }}</cds-tag>\n }\n\n <div class=\"dossier-assign-user\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n <cds-overflow-menu-option (selected)=\"unassignAssignee()\" [disabled]=\"!obs.assigneeId\">\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"250\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".main-content--no-horizontal-overflow{overflow-x:hidden}.tab-container{min-height:300px}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.tab-container:has(>.tab--no-background){background:transparent!important}.loading-container{display:flex;justify-content:center;flex-direction:row}.dossier-detail-page-header{display:flex;width:100%;justify-content:flex-start;padding-bottom:5px}.dossier-detail-page-header ::ng-deep .cds--tag{margin:0}.case-detail-tabs{display:flex;margin-bottom:24px}.case-detail-tabs cds-tab{display:none!important}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.dossier-actions.--compact{padding-bottom:0;align-items:flex-start}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.dossier-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.dossier-status-assign-custom-title .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.dossier-status-assign-custom-title.--compact{align-items:center}.tab-content-container{overflow:hidden;display:flex;gap:24px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i10.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i10.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i10.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i10.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i10.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i1.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i10.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i10.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i10.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i1.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { kind: "component", type: i12.DossierDetailTaskListComponent, selector: "valtimo-dossier-detail-task-list" }, { kind: "component", type: i13.DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { kind: "component", type: i14.DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName", "hasPermission"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }, { kind: "pipe", type: i16.TabTranslatePipe, name: "tabTranslate" }] }); }
221
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierDetailComponent, selector: "valtimo-dossier-detail", providers: [DossierTabService], viewQueries: [{ propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef }], 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<div\n class=\"main-content\"\n [ngClass]=\"{'main-content--no-horizontal-overflow': tabHorizontalOverflowDisabled()}\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-template #tabs>\n <ng-container *ngIf=\"tabLoader\">\n <cds-tabs type=\"inline\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.isActive()\"\n heading=\"{{ tab | tabTranslate | async }}\"\n [id]=\"\"\n (selected)=\"tabLoader.load(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n\n <div class=\"tab-content-container\">\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n\n <div *ngIf=\"showTaskList$ | async\" class=\"tab-content-container__task-list\">\n <valtimo-dossier-detail-task-list></valtimo-dossier-detail-task-list>\n </div>\n </div>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"(customDossierHeaderItems || []).length > 0\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n class=\"mb-0 mt-0 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n >\n {{ 'dossier.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"dossier-actions\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async\n } as obs\"\n >\n <div\n class=\"dossier-status-assign-custom-title\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\">{{ obs.caseStatus.title }}</cds-tag>\n }\n\n <div class=\"dossier-assign-user\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n <cds-overflow-menu-option (selected)=\"unassignAssignee()\" [disabled]=\"!obs.assigneeId\">\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"250\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".main-content--no-horizontal-overflow{overflow-x:hidden}.tab-container{min-height:300px}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.tab-container:has(>.tab--no-background){background:transparent!important}.loading-container{display:flex;justify-content:center;flex-direction:row}.dossier-detail-page-header{display:flex;width:100%;justify-content:flex-start;padding-bottom:5px}.dossier-detail-page-header ::ng-deep .cds--tag{margin:0}.case-detail-tabs{display:flex;margin-bottom:24px}.case-detail-tabs cds-tab{display:none!important}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.dossier-actions.--compact{padding-bottom:0;align-items:flex-start}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.dossier-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.dossier-status-assign-custom-title .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.dossier-status-assign-custom-title.--compact{align-items:center}.tab-content-container{overflow:hidden;display:flex;gap:24px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i10.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i10.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i10.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i10.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i10.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i1.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i10.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i10.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i10.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i1.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { kind: "component", type: i12.DossierDetailTaskListComponent, selector: "valtimo-dossier-detail-task-list" }, { kind: "component", type: i13.DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { kind: "component", type: i14.DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName", "hasPermission"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }, { kind: "pipe", type: i16.TabTranslatePipe, name: "tabTranslate" }] }); }
222
222
  }
223
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailComponent, decorators: [{
224
224
  type: Component,
@@ -55,7 +55,7 @@ export class DossierDetailTabProgressComponent {
55
55
  }
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailTabProgressComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierDetailTabProgressComponent, selector: "valtimo-dossier-detail-tab-progress", 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<ng-container\n class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n <div class=\"process-info-row\">\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'progress.process' | translate\"\n [skeleton]=\"obs.processInstanceItems.isLoading\"\n [style.width.px]=\"350\"\n (selected)=\"loadProcessInstance($event.item.processInstanceId)\"\n >\n <cds-dropdown-list [items]=\"obs.processInstanceItems.value || []\"></cds-dropdown-list>\n </cds-dropdown>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n ></valtimo-process-diagram>\n </div>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-info-text{color:var(--v-color-black);font-size:var(--v-font-size-default)}.process-info-text{display:flex;height:40px;align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ProcessDiagramComponent, selector: "valtimo-process-diagram", inputs: ["processDefinitionKey", "processInstanceId"], outputs: ["importDone"] }, { kind: "component", type: i5.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { 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"] }, { kind: "component", type: i6.SkeletonText, selector: "cds-skeleton-text, ibm-skeleton-text", inputs: ["lines", "minLineWidth", "maxLineWidth"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierDetailTabProgressComponent, selector: "valtimo-dossier-detail-tab-progress", 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<ng-container\n class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n <div class=\"process-info-row\">\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'progress.process' | translate\"\n [skeleton]=\"obs.processInstanceItems.isLoading\"\n [style.width.px]=\"350\"\n (selected)=\"loadProcessInstance($event.item.processInstanceId)\"\n >\n <cds-dropdown-list [items]=\"obs.processInstanceItems.value || []\"></cds-dropdown-list>\n </cds-dropdown>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n ></valtimo-process-diagram>\n </div>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-info-text{color:var(--v-color-black);font-size:var(--v-font-size-default)}.process-info-text{display:flex;height:40px;align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ProcessDiagramComponent, selector: "valtimo-process-diagram", inputs: ["processDefinitionKey", "processInstanceId"], outputs: ["importDone"] }, { kind: "component", type: i5.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "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"] }, { kind: "component", type: i6.SkeletonText, selector: "cds-skeleton-text, ibm-skeleton-text", inputs: ["lines", "minLineWidth", "maxLineWidth"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
59
59
  }
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailTabProgressComponent, decorators: [{
61
61
  type: Component,
@@ -160,7 +160,7 @@ export class WidgetCollectionComponent {
160
160
  return '-';
161
161
  }
162
162
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetCollectionComponent, deps: [{ token: i1.ViewContentService }, { token: i0.ChangeDetectorRef }, { token: i2.DossierWidgetsApiService }], target: i0.ɵɵFactoryTarget.Component }); }
163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetCollectionComponent, isStandalone: true, selector: "valtimo-widget-collection", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetCollectionRef", first: true, predicate: ["widgetCollection"], descendants: true }], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async\n } as obs\"\n>\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half'\n }\"\n >\n <cds-label>\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{display:grid;grid-gap:16px}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i4.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
163
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetCollectionComponent, isStandalone: true, selector: "valtimo-widget-collection", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetCollectionRef", first: true, predicate: ["widgetCollection"], descendants: true }], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async\n } as obs\"\n>\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half'\n }\"\n >\n <cds-label class=\"valtimo-widget-collection__label\" [attr.title]=\"field?.title\">\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection .cds--label{overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column;width:100%;overflow:hidden}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{grid-gap:16px;align-items:stretch;overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__render-vertically{display:flex!important}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i4.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
164
164
  }
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetCollectionComponent, decorators: [{
166
166
  type: Component,
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
171
171
  TilesModule,
172
172
  CarbonListModule,
173
173
  TranslateModule,
174
- ], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async\n } as obs\"\n>\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half'\n }\"\n >\n <cds-label>\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{display:grid;grid-gap:16px}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\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"] }]
174
+ ], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async\n } as obs\"\n>\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half'\n }\"\n >\n <cds-label class=\"valtimo-widget-collection__label\" [attr.title]=\"field?.title\">\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection .cds--label{overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column;width:100%;overflow:hidden}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{grid-gap:16px;align-items:stretch;overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__render-vertically{display:flex!important}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\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"] }]
175
175
  }], ctorParameters: () => [{ type: i1.ViewContentService }, { type: i0.ChangeDetectorRef }, { type: i2.DossierWidgetsApiService }], propDecorators: { class: [{
176
176
  type: HostBinding,
177
177
  args: ['class']
@@ -189,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
189
189
  }], widgetData: [{
190
190
  type: Input
191
191
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLHdCQUF3QixHQU16QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFB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LDhCQUNYLGdCQUFnQixvUEFDaEIsZUFBZTs7NEZBR04seUJBQXlCO2tCQWhCckMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjs4SkFHcUMsS0FBSztzQkFBMUMsV0FBVzt1QkFBQyxPQUFPO2dCQUNtQixvQkFBb0I7c0JBQTFELFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVHLFVBQVU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNTLE1BQU07c0JBQXJDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNILG1CQUFtQjtzQkFBdEMsS0FBSztnQkFjYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbnB1dE1vZHVsZSxcbiAgUGFnaW5hdGlvbk1vZGVsLFxuICBQYWdpbmF0aW9uTW9kdWxlLFxuICBUaWxlc01vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXksXG4gIENvbGxlY3Rpb25DYXNlV2lkZ2V0LFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhLFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldEZpZWxkLFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLFxuICBDb2xsZWN0aW9uV2lkZ2V0UmVzb2x2ZWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2FyYm9uTGlzdE1vZHVsZSwgVmlld0NvbnRlbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RG9zc2llcldpZGdldHNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBQYWdpbmF0aW9uTW9kdWxlLFxuICAgIFRpbGVzTW9kdWxlLFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb2xsZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uJztcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0Q29sbGVjdGlvbicpIHByaXZhdGUgX3dpZGdldENvbGxlY3Rpb25SZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIHRhYktleTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldENvbmZpZ3VyYXRpb24odmFsdWU6IENvbGxlY3Rpb25DYXNlV2lkZ2V0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IHNob3dQYWdpbmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLnBpcGUoXG4gICAgICBmaWx0ZXIobnVtYmVyT2ZFbGVtZW50cyA9PiBudW1iZXJPZkVsZW1lbnRzICE9PSBudWxsKVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldERhdGEodmFsdWU6IFBhZ2U8Q29sbGVjdGlvbkNhc2VXaWRnZXRDYXJkRGF0YT4gfCBudWxsKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zaG93UGFnaW5hdGlvbiQubmV4dCh2YWx1ZS50b3RhbEVsZW1lbnRzID4gdmFsdWUuc2l6ZSk7XG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHNTdWJqZWN0JC5uZXh0KHZhbHVlLm51bWJlck9mRWxlbWVudHMpO1xuICAgIHRoaXMuX3dpZGdldERhdGFTdWJqZWN0JC5uZXh0KHZhbHVlLmNvbnRlbnQpO1xuXG4gICAgdGhpcy5wYWdpbmF0aW9uTW9kZWwuc2V0KFxuICAgICAgdmFsdWUudG90YWxQYWdlcyA8IDBcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge1xuICAgICAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgICAgICB0b3RhbERhdGFMZW5ndGg6IE1hdGguY2VpbCh2YWx1ZS50b3RhbEVsZW1lbnRzIC8gdmFsdWUuc2l6ZSksXG4gICAgICAgICAgICBwYWdlTGVuZ3RoOiB2YWx1ZS5zaXplLFxuICAgICAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRUaXRsZSA9IHNpZ25hbCgnLScpO1xuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkNhc2VXaWRnZXQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb25Nb2RlbCA9IHNpZ25hbDxQYWdpbmF0aW9uTW9kZWw+KG5ldyBQYWdpbmF0aW9uTW9kZWwoKSk7XG4gIHB1YmxpYyByZWFkb25seSBhbW91bnRPZkNvbHVtbnMgPSBzaWduYWwoMCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0RGF0YVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhW10+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1ZXJ5UGFyYW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0RGF0YSQ6IE9ic2VydmFibGU8Q29sbGVjdGlvbkNhc2VXaWRnZXRDYXJkRGF0YVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX3dpZGdldERhdGFTdWJqZWN0JCxcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQsXG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHMkLFxuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbZGF0YSwgcXVlcnlQYXJhbXMsIGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzLCB3aWRnZXRDb25maWd1cmF0aW9uXSkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAhcXVlcnlQYXJhbXNcbiAgICAgICAgICA/IG9mKGRhdGEpXG4gICAgICAgICAgOiB0aGlzLndpZGdldEFwaVNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldFdpZGdldERhdGEodGhpcy5kb2N1bWVudElkLCB0aGlzLnRhYktleSwgd2lkZ2V0Q29uZmlndXJhdGlvbi5rZXksIHF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgICAucGlwZShtYXAoKHJlczogUGFnZTxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhPikgPT4gcmVzLmNvbnRlbnQpKSxcbiAgICAgICAgb2YoaW5pdGlhbE51bWJlck9mRWxlbWVudHMpLFxuICAgICAgXSlcbiAgICApLFxuICAgIGZpbHRlcigoW2l0ZW1zXSkgPT4gISFpdGVtcyksXG4gICAgbWFwKChbaXRlbXMsIGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzXSkgPT4ge1xuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gaW5pdGlhbE51bWJlck9mRWxlbWVudHMpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5PG51bWJlcj4oaW5pdGlhbE51bWJlck9mRWxlbWVudHMpLmZpbGwobnVsbCk7XG5cbiAgICAgIHJldHVybiByb3dzLm1hcCgoXywgaW5kZXgpID0+IGl0ZW1zW2luZGV4XSB8fCB7Li4uaXRlbXNbMF0sIGhpZGRlbjogdHJ1ZX0pO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxlY3Rpb25XaWRnZXRDYXJkcyQ6IE9ic2VydmFibGU8XG4gICAge3RpdGxlOiBzdHJpbmc7IGZpZWxkczogQ29sbGVjdGlvbldpZGdldFJlc29sdmVkRmllbGRbXTsga2V5OiBudW1iZXI7IGhpZGRlbjogYm9vbGVhbn1bXVxuICA+ID0gY29tYmluZUxhdGVzdChbdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJCwgdGhpcy5fd2lkZ2V0RGF0YSRdKS5waXBlKFxuICAgIGZpbHRlcigoW3dpZGdldENvbmZpZywgd2lkZ2V0RGF0YV0pID0+ICEhd2lkZ2V0Q29uZmlnICYmICEhd2lkZ2V0RGF0YSksXG4gICAgdGFwKChbd2lkZ2V0Q29uZmlnXSkgPT4gdGhpcy53aWRnZXRUaXRsZS5zZXQod2lkZ2V0Q29uZmlnLnRpdGxlKSksXG4gICAgbWFwKChbd2lkZ2V0Q29uZmlnLCB3aWRnZXREYXRhXSkgPT5cbiAgICAgIHdpZGdldERhdGEubWFwKChjYXJkRGF0YSwgaW5kZXgpID0+ICh7XG4gICAgICAgIGhpZGRlbjogY2FyZERhdGEuaGlkZGVuLFxuICAgICAgICBrZXk6IGluZGV4LFxuICAgICAgICB0aXRsZTogdGhpcy5nZXRDYXJkVGl0bGUoe1xuICAgICAgICAgIHZhbHVlOiBjYXJkRGF0YS50aXRsZSxcbiAgICAgICAgICBkaXNwbGF5UHJvcGVydGllczogd2lkZ2V0Q29uZmlnPy5wcm9wZXJ0aWVzPy50aXRsZT8uZGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgIH0pLFxuICAgICAgICBmaWVsZHM6IHdpZGdldENvbmZpZz8ucHJvcGVydGllcy5maWVsZHMucmVkdWNlKFxuICAgICAgICAgIChjYXJkRmllbGRzQWNjdW11bGF0b3IsIGN1cnJlbnRGaWVsZCkgPT4gW1xuICAgICAgICAgICAgLi4uY2FyZEZpZWxkc0FjY3VtdWxhdG9yLFxuICAgICAgICAgICAgdGhpcy5nZXRDYXJkRmllbGQoY3VycmVudEZpZWxkLCBjYXJkRGF0YSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXVxuICAgICAgICApLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgX29ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGVudFNlcnZpY2U6IFZpZXdDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRBcGlTZXJ2aWNlOiBEb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuV2lkdGhPYnNlcnZlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RQYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zJC5uZXh0KGBwYWdlPSR7cGFnZSAtIDF9JnNpemU9JHt0aGlzLnBhZ2luYXRpb25Nb2RlbCgpLnBhZ2VMZW5ndGh9YCk7XG4gICAgdGhpcy5wYWdpbmF0aW9uTW9kZWwudXBkYXRlKChtb2RlbDogUGFnaW5hdGlvbk1vZGVsKSA9PiAoe1xuICAgICAgLi4ubW9kZWwsXG4gICAgICBjdXJyZW50UGFnZTogcGFnZSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhcmRGaWVsZChcbiAgICBmaWVsZDogQ29sbGVjdGlvbkNhc2VXaWRnZXRGaWVsZCxcbiAgICBkYXRhOiBDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhXG4gICk6IENvbGxlY3Rpb25XaWRnZXRSZXNvbHZlZEZpZWxkIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID0gdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KGRhdGEuZmllbGRzW2ZpZWxkLmtleV0sIHtcbiAgICAgIC4uLmZpZWxkLmRpc3BsYXlQcm9wZXJ0aWVzLFxuICAgICAgdmlld1R5cGU6IGZpZWxkLmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID8/IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5URVhULFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogZmllbGQua2V5LFxuICAgICAgdGl0bGU6IGZpZWxkLnRpdGxlLFxuICAgICAgd2lkdGg6IGZpZWxkLndpZHRoLFxuICAgICAgdmFsdWU6IHJlc29sdmVkVmFsdWUgfHwgZGF0YS5maWVsZHNbZmllbGQua2V5XSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0Q29sbGVjdGlvblJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXJNdXRhdGlvbihldmVudDogQXJyYXk8UmVzaXplT2JzZXJ2ZXJFbnRyeT4pOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBldmVudFswXT8uYm9yZGVyQm94U2l6ZVswXT8uaW5saW5lU2l6ZTtcblxuICAgIGlmICh0eXBlb2YgZWxlbWVudFdpZHRoID09PSAnbnVtYmVyJyAmJiBlbGVtZW50V2lkdGggIT09IDApIHtcbiAgICAgIGlmIChlbGVtZW50V2lkdGggPCA2NDApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDEpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA2NDAgJiYgZWxlbWVudFdpZHRoIDw9IDc2OCkge1xuICAgICAgICB0aGlzLmFtb3VudE9mQ29sdW1ucy5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLmFtb3VudE9mQ29sdW1ucy5zZXQoMyk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDEwODApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FyZFRpdGxlKGNvbGxlY3Rpb25DYXNlV2lkZ2V0VGl0bGU6IENvbGxlY3Rpb25DYXNlV2lkZ2V0VGl0bGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlVmFsdWUgPSBjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLnZhbHVlO1xuICAgIGNvbnN0IHdpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMgPSBjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLmRpc3BsYXlQcm9wZXJ0aWVzO1xuXG4gICAgaWYgKCF3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzICYmIHdpZGdldFRpdGxlVmFsdWUpIHtcbiAgICAgIHJldHVybiB3aWRnZXRUaXRsZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAod2lkZ2V0VGl0bGVEaXNwbGF5UHJvcGVydGllcyAmJiB3aWRnZXRUaXRsZVZhbHVlKSB7XG4gICAgICBjb25zdCBjb252ZXJ0ZWRUaXRsZSA9IHRoaXMudmlld0NvbnRlbnRTZXJ2aWNlLmdldCh3aWRnZXRUaXRsZVZhbHVlLCB7XG4gICAgICAgIC4uLndpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgIHZpZXdUeXBlOiB3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzLnR5cGUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvbnZlcnRlZFRpdGxlKSByZXR1cm4gY29udmVydGVkVGl0bGU7XG4gICAgfVxuXG4gICAgcmV0dXJuICctJztcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIHdpZGdldENvbmZpZ3VyYXRpb246IHdpZGdldENvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgY29sbGVjdGlvbldpZGdldENhcmRzOiBjb2xsZWN0aW9uV2lkZ2V0Q2FyZHMkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8c3BhbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3RpdGxlXCI+e3sgd2lkZ2V0VGl0bGUoKSB9fTwvc3Bhbj5cblxuICA8ZGl2XG4gICAgI3dpZGdldENvbGxlY3Rpb25cbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fcmVuZGVyLXZlcnRpY2FsbHknOiBhbW91bnRPZkNvbHVtbnMoKSA9PT0gMSxcbiAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19yZW5kZXItdHdvLWNvbHVtbnMnOiBhbW91bnRPZkNvbHVtbnMoKSA9PT0gMixcbiAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19yZW5kZXItdGhyZWUtY29sdW1ucyc6IGFtb3VudE9mQ29sdW1ucygpID09PSAzLFxuICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NvbnRhaW5lcic6IGFtb3VudE9mQ29sdW1ucygpID09PSA0XG4gICAgfVwiXG4gID5cbiAgICBAZm9yIChjYXJkIG9mIG9icz8uY29sbGVjdGlvbldpZGdldENhcmRzOyB0cmFjayBjYXJkLmtleSkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmRcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmQtLWhpZGRlbic6IGNhcmQuaGlkZGVufVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY2FyZC10aXRsZVwiPnt7IGNhcmQudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgY2FyZC5maWVsZHM7IHRyYWNrIGZpZWxkLmtleSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2Z1bGwtd2lkdGgtaW5wdXQnOiBmaWVsZD8ud2lkdGggPT09ICdmdWxsJyxcbiAgICAgICAgICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2hhbGYtd2lkdGgtaW5wdXQnOiBmaWVsZD8ud2lkdGggPT09ICdoYWxmJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGNkcy1sYWJlbD5cbiAgICAgICAgICAgICAge3sgZmllbGQ/LnRpdGxlIH19XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpZWxkPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY2FyZC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jZHMtbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmICghb2JzPy5jb2xsZWN0aW9uV2lkZ2V0Q2FyZHM/Lmxlbmd0aCkge1xuICAgIDx2YWx0aW1vLW5vLXJlc3VsdHNcbiAgICAgIFtjb2xsYXBzZVZlcnRpY2FsbHldPVwidHJ1ZVwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIud2lkZ2V0cy5ub0RhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzbWFsbFBhZGRpbmddPVwidHJ1ZVwiXG4gICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICB9XG5cbiAgPGNkcy1wYWdpbmF0aW9uLW5hdlxuICAgICpuZ0lmPVwicGFnaW5hdGlvbk1vZGVsKCkgJiYgKHNob3dQYWdpbmF0aW9uJCB8IGFzeW5jKVwiXG4gICAgY2xhc3M9XCJ2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19wYWdpbmF0aW9uXCJcbiAgICBbbW9kZWxdPVwicGFnaW5hdGlvbk1vZGVsKClcIlxuICAgIChzZWxlY3RQYWdlKT1cIm9uU2VsZWN0UGFnZSgkZXZlbnQpXCJcbiAgPlxuICA8L2Nkcy1wYWdpbmF0aW9uLW5hdj5cbjwvbmctY29udGFpbmVyPlxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLHdCQUF3QixHQU16QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQW9CcEQsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxJQUFvQixtQkFBbUIsQ0FBQyxLQUEyQjtRQUNqRSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBS0QsSUFBWSx5QkFBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUMvQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQyxDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQW9CLFVBQVUsQ0FBQyxLQUFnRDtRQUM3RSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FDdEIsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDO2dCQUNFLFdBQVcsRUFBRSxDQUFDO2dCQUNkLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDNUQsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ3ZCLENBQ04sQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQWtFRCxZQUNtQixrQkFBc0MsRUFDdEMsR0FBc0IsRUFDdEIsZ0JBQTBDO1FBRjFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEwQjtRQXpHdkIsVUFBSyxHQUFHLDJCQUEyQixDQUFDO1FBUzFELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFckQscUNBQWdDLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7UUEyQnRFLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFCLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUE4QixJQUFJLENBQUMsQ0FBQztRQUM5RSxvQkFBZSxHQUFHLE1BQU0sQ0FBa0IsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNCLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFpQyxJQUFJLENBQUMsQ0FBQztRQUVoRixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUV6RCxpQkFBWSxHQUErQyxhQUFhLENBQUM7WUFDeEYsSUFBSSxDQUFDLG1CQUFtQjtZQUN4QixJQUFJLENBQUMsYUFBYTtZQUNsQixJQUFJLENBQUMseUJBQXlCO1lBQzlCLElBQUksQ0FBQyxvQkFBb0I7U0FDMUIsQ0FBQyxDQUFDLElBQUksQ0FDTCxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQzlFLGFBQWEsQ0FBQztZQUNaLENBQUMsV0FBVztnQkFDVixDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDVixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtxQkFDbEIsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDO3FCQUNqRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBdUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztTQUM1QixDQUFDLENBQ0gsRUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssdUJBQXVCLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQVMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVjLDJCQUFzQixHQUVsQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQ3RFLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNqRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQ2pDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtZQUN2QixHQUFHLEVBQUUsS0FBSztZQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUN2QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLGlCQUFpQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQjthQUN0RSxDQUFDO1lBQ0YsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUN2QyxHQUFHLHFCQUFxQjtnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO2FBQzFDLEVBQ0QsRUFBRSxDQUNIO1NBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FDRixDQUFDO0lBUUMsQ0FBQztJQUVHLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVk7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RCxHQUFHLEtBQUs7WUFDUixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTyxZQUFZLENBQ2xCLEtBQWdDLEVBQ2hDLElBQWtDO1FBRWxDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEUsR0FBRyxLQUFLLENBQUMsaUJBQWlCO1lBQzFCLFFBQVEsRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLHdCQUF3QixDQUFDLElBQUk7U0FDekUsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsS0FBSyxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWlDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDO1FBRTVELElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxJQUFJLFlBQVksR0FBRyxHQUFHLElBQUksWUFBWSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixDQUFDO2lCQUFNLElBQUksWUFBWSxHQUFHLEdBQUcsSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sSUFBSSxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyx5QkFBb0Q7UUFDdkUsTUFBTSxnQkFBZ0IsR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7UUFDekQsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUVqRixJQUFJLENBQUMsNEJBQTRCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7YUFBTSxJQUFJLDRCQUE0QixJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDbkUsR0FBRyw0QkFBNEI7Z0JBQy9CLFFBQVEsRUFBRSw0QkFBNEIsQ0FBQyxJQUFJO2FBQzVDLENBQUMsQ0FBQztZQUVILElBQUksY0FBYztnQkFBRSxPQUFPLGNBQWMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOytHQXJMVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw4WENsRXRDLGl3RkErRUEsdXNFRHJCSSxZQUFZLHFSQUNaLFdBQVcseVdBQ1gsZ0JBQWdCLDhOQUNoQixXQUFXLDhCQUNYLGdCQUFnQixvUEFDaEIsZUFBZTs7NEZBR04seUJBQXlCO2tCQWhCckMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjs4SkFHcUMsS0FBSztzQkFBMUMsV0FBVzt1QkFBQyxPQUFPO2dCQUNtQixvQkFBb0I7c0JBQTFELFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVHLFVBQVU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNTLE1BQU07c0JBQXJDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNILG1CQUFtQjtzQkFBdEMsS0FBSztnQkFjYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbnB1dE1vZHVsZSxcbiAgUGFnaW5hdGlvbk1vZGVsLFxuICBQYWdpbmF0aW9uTW9kdWxlLFxuICBUaWxlc01vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXksXG4gIENvbGxlY3Rpb25DYXNlV2lkZ2V0LFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhLFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldEZpZWxkLFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLFxuICBDb2xsZWN0aW9uV2lkZ2V0UmVzb2x2ZWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2FyYm9uTGlzdE1vZHVsZSwgVmlld0NvbnRlbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RG9zc2llcldpZGdldHNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBQYWdpbmF0aW9uTW9kdWxlLFxuICAgIFRpbGVzTW9kdWxlLFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb2xsZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uJztcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0Q29sbGVjdGlvbicpIHByaXZhdGUgX3dpZGdldENvbGxlY3Rpb25SZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIHRhYktleTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldENvbmZpZ3VyYXRpb24odmFsdWU6IENvbGxlY3Rpb25DYXNlV2lkZ2V0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IHNob3dQYWdpbmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLnBpcGUoXG4gICAgICBmaWx0ZXIobnVtYmVyT2ZFbGVtZW50cyA9PiBudW1iZXJPZkVsZW1lbnRzICE9PSBudWxsKVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldERhdGEodmFsdWU6IFBhZ2U8Q29sbGVjdGlvbkNhc2VXaWRnZXRDYXJkRGF0YT4gfCBudWxsKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zaG93UGFnaW5hdGlvbiQubmV4dCh2YWx1ZS50b3RhbEVsZW1lbnRzID4gdmFsdWUuc2l6ZSk7XG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHNTdWJqZWN0JC5uZXh0KHZhbHVlLm51bWJlck9mRWxlbWVudHMpO1xuICAgIHRoaXMuX3dpZGdldERhdGFTdWJqZWN0JC5uZXh0KHZhbHVlLmNvbnRlbnQpO1xuXG4gICAgdGhpcy5wYWdpbmF0aW9uTW9kZWwuc2V0KFxuICAgICAgdmFsdWUudG90YWxQYWdlcyA8IDBcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge1xuICAgICAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgICAgICB0b3RhbERhdGFMZW5ndGg6IE1hdGguY2VpbCh2YWx1ZS50b3RhbEVsZW1lbnRzIC8gdmFsdWUuc2l6ZSksXG4gICAgICAgICAgICBwYWdlTGVuZ3RoOiB2YWx1ZS5zaXplLFxuICAgICAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRUaXRsZSA9IHNpZ25hbCgnLScpO1xuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkNhc2VXaWRnZXQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb25Nb2RlbCA9IHNpZ25hbDxQYWdpbmF0aW9uTW9kZWw+KG5ldyBQYWdpbmF0aW9uTW9kZWwoKSk7XG4gIHB1YmxpYyByZWFkb25seSBhbW91bnRPZkNvbHVtbnMgPSBzaWduYWwoMCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0RGF0YVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhW10+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1ZXJ5UGFyYW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0RGF0YSQ6IE9ic2VydmFibGU8Q29sbGVjdGlvbkNhc2VXaWRnZXRDYXJkRGF0YVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX3dpZGdldERhdGFTdWJqZWN0JCxcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQsXG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHMkLFxuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbZGF0YSwgcXVlcnlQYXJhbXMsIGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzLCB3aWRnZXRDb25maWd1cmF0aW9uXSkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAhcXVlcnlQYXJhbXNcbiAgICAgICAgICA/IG9mKGRhdGEpXG4gICAgICAgICAgOiB0aGlzLndpZGdldEFwaVNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldFdpZGdldERhdGEodGhpcy5kb2N1bWVudElkLCB0aGlzLnRhYktleSwgd2lkZ2V0Q29uZmlndXJhdGlvbi5rZXksIHF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgICAucGlwZShtYXAoKHJlczogUGFnZTxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhPikgPT4gcmVzLmNvbnRlbnQpKSxcbiAgICAgICAgb2YoaW5pdGlhbE51bWJlck9mRWxlbWVudHMpLFxuICAgICAgXSlcbiAgICApLFxuICAgIGZpbHRlcigoW2l0ZW1zXSkgPT4gISFpdGVtcyksXG4gICAgbWFwKChbaXRlbXMsIGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzXSkgPT4ge1xuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gaW5pdGlhbE51bWJlck9mRWxlbWVudHMpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5PG51bWJlcj4oaW5pdGlhbE51bWJlck9mRWxlbWVudHMpLmZpbGwobnVsbCk7XG5cbiAgICAgIHJldHVybiByb3dzLm1hcCgoXywgaW5kZXgpID0+IGl0ZW1zW2luZGV4XSB8fCB7Li4uaXRlbXNbMF0sIGhpZGRlbjogdHJ1ZX0pO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxlY3Rpb25XaWRnZXRDYXJkcyQ6IE9ic2VydmFibGU8XG4gICAge3RpdGxlOiBzdHJpbmc7IGZpZWxkczogQ29sbGVjdGlvbldpZGdldFJlc29sdmVkRmllbGRbXTsga2V5OiBudW1iZXI7IGhpZGRlbjogYm9vbGVhbn1bXVxuICA+ID0gY29tYmluZUxhdGVzdChbdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJCwgdGhpcy5fd2lkZ2V0RGF0YSRdKS5waXBlKFxuICAgIGZpbHRlcigoW3dpZGdldENvbmZpZywgd2lkZ2V0RGF0YV0pID0+ICEhd2lkZ2V0Q29uZmlnICYmICEhd2lkZ2V0RGF0YSksXG4gICAgdGFwKChbd2lkZ2V0Q29uZmlnXSkgPT4gdGhpcy53aWRnZXRUaXRsZS5zZXQod2lkZ2V0Q29uZmlnLnRpdGxlKSksXG4gICAgbWFwKChbd2lkZ2V0Q29uZmlnLCB3aWRnZXREYXRhXSkgPT5cbiAgICAgIHdpZGdldERhdGEubWFwKChjYXJkRGF0YSwgaW5kZXgpID0+ICh7XG4gICAgICAgIGhpZGRlbjogY2FyZERhdGEuaGlkZGVuLFxuICAgICAgICBrZXk6IGluZGV4LFxuICAgICAgICB0aXRsZTogdGhpcy5nZXRDYXJkVGl0bGUoe1xuICAgICAgICAgIHZhbHVlOiBjYXJkRGF0YS50aXRsZSxcbiAgICAgICAgICBkaXNwbGF5UHJvcGVydGllczogd2lkZ2V0Q29uZmlnPy5wcm9wZXJ0aWVzPy50aXRsZT8uZGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgIH0pLFxuICAgICAgICBmaWVsZHM6IHdpZGdldENvbmZpZz8ucHJvcGVydGllcy5maWVsZHMucmVkdWNlKFxuICAgICAgICAgIChjYXJkRmllbGRzQWNjdW11bGF0b3IsIGN1cnJlbnRGaWVsZCkgPT4gW1xuICAgICAgICAgICAgLi4uY2FyZEZpZWxkc0FjY3VtdWxhdG9yLFxuICAgICAgICAgICAgdGhpcy5nZXRDYXJkRmllbGQoY3VycmVudEZpZWxkLCBjYXJkRGF0YSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXVxuICAgICAgICApLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgX29ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGVudFNlcnZpY2U6IFZpZXdDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRBcGlTZXJ2aWNlOiBEb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuV2lkdGhPYnNlcnZlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RQYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zJC5uZXh0KGBwYWdlPSR7cGFnZSAtIDF9JnNpemU9JHt0aGlzLnBhZ2luYXRpb25Nb2RlbCgpLnBhZ2VMZW5ndGh9YCk7XG4gICAgdGhpcy5wYWdpbmF0aW9uTW9kZWwudXBkYXRlKChtb2RlbDogUGFnaW5hdGlvbk1vZGVsKSA9PiAoe1xuICAgICAgLi4ubW9kZWwsXG4gICAgICBjdXJyZW50UGFnZTogcGFnZSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhcmRGaWVsZChcbiAgICBmaWVsZDogQ29sbGVjdGlvbkNhc2VXaWRnZXRGaWVsZCxcbiAgICBkYXRhOiBDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhXG4gICk6IENvbGxlY3Rpb25XaWRnZXRSZXNvbHZlZEZpZWxkIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID0gdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KGRhdGEuZmllbGRzW2ZpZWxkLmtleV0sIHtcbiAgICAgIC4uLmZpZWxkLmRpc3BsYXlQcm9wZXJ0aWVzLFxuICAgICAgdmlld1R5cGU6IGZpZWxkLmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID8/IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5URVhULFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogZmllbGQua2V5LFxuICAgICAgdGl0bGU6IGZpZWxkLnRpdGxlLFxuICAgICAgd2lkdGg6IGZpZWxkLndpZHRoLFxuICAgICAgdmFsdWU6IHJlc29sdmVkVmFsdWUgfHwgZGF0YS5maWVsZHNbZmllbGQua2V5XSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0Q29sbGVjdGlvblJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXJNdXRhdGlvbihldmVudDogQXJyYXk8UmVzaXplT2JzZXJ2ZXJFbnRyeT4pOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBldmVudFswXT8uYm9yZGVyQm94U2l6ZVswXT8uaW5saW5lU2l6ZTtcblxuICAgIGlmICh0eXBlb2YgZWxlbWVudFdpZHRoID09PSAnbnVtYmVyJyAmJiBlbGVtZW50V2lkdGggIT09IDApIHtcbiAgICAgIGlmIChlbGVtZW50V2lkdGggPCA2NDApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDEpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA2NDAgJiYgZWxlbWVudFdpZHRoIDw9IDc2OCkge1xuICAgICAgICB0aGlzLmFtb3VudE9mQ29sdW1ucy5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLmFtb3VudE9mQ29sdW1ucy5zZXQoMyk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDEwODApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FyZFRpdGxlKGNvbGxlY3Rpb25DYXNlV2lkZ2V0VGl0bGU6IENvbGxlY3Rpb25DYXNlV2lkZ2V0VGl0bGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlVmFsdWUgPSBjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLnZhbHVlO1xuICAgIGNvbnN0IHdpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMgPSBjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLmRpc3BsYXlQcm9wZXJ0aWVzO1xuXG4gICAgaWYgKCF3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzICYmIHdpZGdldFRpdGxlVmFsdWUpIHtcbiAgICAgIHJldHVybiB3aWRnZXRUaXRsZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAod2lkZ2V0VGl0bGVEaXNwbGF5UHJvcGVydGllcyAmJiB3aWRnZXRUaXRsZVZhbHVlKSB7XG4gICAgICBjb25zdCBjb252ZXJ0ZWRUaXRsZSA9IHRoaXMudmlld0NvbnRlbnRTZXJ2aWNlLmdldCh3aWRnZXRUaXRsZVZhbHVlLCB7XG4gICAgICAgIC4uLndpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgIHZpZXdUeXBlOiB3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzLnR5cGUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvbnZlcnRlZFRpdGxlKSByZXR1cm4gY29udmVydGVkVGl0bGU7XG4gICAgfVxuXG4gICAgcmV0dXJuICctJztcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIHdpZGdldENvbmZpZ3VyYXRpb246IHdpZGdldENvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgY29sbGVjdGlvbldpZGdldENhcmRzOiBjb2xsZWN0aW9uV2lkZ2V0Q2FyZHMkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8c3BhbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3RpdGxlXCI+e3sgd2lkZ2V0VGl0bGUoKSB9fTwvc3Bhbj5cblxuICA8ZGl2XG4gICAgI3dpZGdldENvbGxlY3Rpb25cbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fcmVuZGVyLXZlcnRpY2FsbHknOiBhbW91bnRPZkNvbHVtbnMoKSA9PT0gMSxcbiAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19yZW5kZXItdHdvLWNvbHVtbnMnOiBhbW91bnRPZkNvbHVtbnMoKSA9PT0gMixcbiAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19yZW5kZXItdGhyZWUtY29sdW1ucyc6IGFtb3VudE9mQ29sdW1ucygpID09PSAzLFxuICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NvbnRhaW5lcic6IGFtb3VudE9mQ29sdW1ucygpID09PSA0XG4gICAgfVwiXG4gID5cbiAgICBAZm9yIChjYXJkIG9mIG9icz8uY29sbGVjdGlvbldpZGdldENhcmRzOyB0cmFjayBjYXJkLmtleSkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmRcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmQtLWhpZGRlbic6IGNhcmQuaGlkZGVufVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY2FyZC10aXRsZVwiPnt7IGNhcmQudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgY2FyZC5maWVsZHM7IHRyYWNrIGZpZWxkLmtleSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2Z1bGwtd2lkdGgtaW5wdXQnOiBmaWVsZD8ud2lkdGggPT09ICdmdWxsJyxcbiAgICAgICAgICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2hhbGYtd2lkdGgtaW5wdXQnOiBmaWVsZD8ud2lkdGggPT09ICdoYWxmJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGNkcy1sYWJlbCBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2xhYmVsXCIgW2F0dHIudGl0bGVdPVwiZmllbGQ/LnRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7IGZpZWxkPy50aXRsZSB9fVxuXG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmaWVsZD8udmFsdWVcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmQtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvY2RzLWxhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAoIW9icz8uY29sbGVjdGlvbldpZGdldENhcmRzPy5sZW5ndGgpIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfVxuXG4gIDxjZHMtcGFnaW5hdGlvbi1uYXZcbiAgICAqbmdJZj1cInBhZ2luYXRpb25Nb2RlbCgpICYmIChzaG93UGFnaW5hdGlvbiQgfCBhc3luYylcIlxuICAgIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fcGFnaW5hdGlvblwiXG4gICAgW21vZGVsXT1cInBhZ2luYXRpb25Nb2RlbCgpXCJcbiAgICAoc2VsZWN0UGFnZSk9XCJvblNlbGVjdFBhZ2UoJGV2ZW50KVwiXG4gID5cbiAgPC9jZHMtcGFnaW5hdGlvbi1uYXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -95,11 +95,11 @@ export class WidgetFieldComponent {
95
95
  return widgetData && Object.keys(widgetData).length === 0;
96
96
  }
97
97
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetFieldComponent, deps: [{ token: i1.ViewContentService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n {{ property?.title }}\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;grid-gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n <span [attr.title]=\"property?.title\"> {{ property?.title }}</span>\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
99
  }
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetFieldComponent, decorators: [{
101
101
  type: Component,
102
- args: [{ selector: 'valtimo-widget-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, WidgetFieldComponent, InputModule, TranslateModule, CarbonListModule], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n {{ property?.title }}\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;grid-gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\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"] }]
102
+ args: [{ selector: 'valtimo-widget-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, WidgetFieldComponent, InputModule, TranslateModule, CarbonListModule], 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<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n <span [attr.title]=\"property?.title\"> {{ property?.title }}</span>\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\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"] }]
103
103
  }], ctorParameters: () => [{ type: i1.ViewContentService }], propDecorators: { class: [{
104
104
  type: HostBinding,
105
105
  args: ['class']
@@ -113,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
113
113
  }], widgetData: [{
114
114
  type: Input
115
115
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy9maWVsZC93aWRnZXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBV3BELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsSUFBb0IsbUJBQW1CLENBQUMsS0FBdUI7UUFDN0QsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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O3NCQUFoRCxTQUFTO3VCQUFDLGFBQWE7Z0JBRWYsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNjLG1CQUFtQjtzQkFBdEMsS0FBSztnQkFNYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhcmJvbkxpc3RNb2R1bGUsIFZpZXdDb250ZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNDYXNlV2lkZ2V0fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtJbnB1dE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2lkZ2V0RmllbGRDb21wb25lbnQsIElucHV0TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIENhcmJvbkxpc3RNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwdWJsaWMgcmVhZG9ubHkgY2xhc3MgPSAnd2lkZ2V0LWZpZWxkJztcblxuICBAVmlld0NoaWxkKCd3aWRnZXRGaWVsZCcpIHByaXZhdGUgX3dpZGdldEZpZWxkUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSBjb2xsYXBzZVZlcnRpY2FsbHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBGaWVsZHNDYXNlV2lkZ2V0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHlXaWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0RGF0YSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0RGF0YSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5pc0VtcHR5V2lkZ2V0RGF0YSQubmV4dCh0aGlzLmNoZWNrRW1wdHlXaWRnZXREYXRhKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyVmVydGljYWxseSA9IHNpZ25hbCgwKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldENvbmZpZ3VyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWVsZHNDYXNlV2lkZ2V0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFByb3BlcnR5VmFsdWUkOiBPYnNlcnZhYmxlPHt0aXRsZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nfVtdW10+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLCB0aGlzLndpZGdldERhdGEkXSkucGlwZShcbiAgICAgIG1hcCgoW3dpZGdldCwgd2lkZ2V0RGF0YV0pID0+XG4gICAgICAgIHdpZGdldD8ucHJvcGVydGllcy5jb2x1bW5zLm1hcChjb2x1bW4gPT5cbiAgICAgICAgICBjb2x1bW4ucmVkdWNlKFxuICAgICAgICAgICAgKGNvbHVtbkZpZWxkcywgcHJvcGVydHkpID0+IFtcbiAgICAgICAgICAgICAgLi4uY29sdW1uRmllbGRzLFxuICAgICAgICAgICAgICAuLi4od2lkZ2V0RGF0YT8uaGFzT3duUHJvcGVydHkocHJvcGVydHkua2V5KVxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHByb3BlcnR5LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0RGF0YVtwcm9wZXJ0eS5rZXldICE9PSBudWxsICYmIHdpZGdldERhdGFbcHJvcGVydHkua2V5XSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KHdpZGdldERhdGFbcHJvcGVydHkua2V5XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3VHlwZTogcHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJy0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICBwcml2YXRlIF9vYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRlbnRTZXJ2aWNlOiBWaWV3Q29udGVudFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZVZlcnRpY2FsbHkgJiYgdGhpcy5fd2lkZ2V0RmllbGRSZWYpIHRoaXMub3BlbldpZHRoT2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0RmllbGRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmlubGluZVNpemU7XG5cbiAgICBpZiAodHlwZW9mIGVsZW1lbnRXaWR0aCA9PT0gJ251bWJlcicgJiYgZWxlbWVudFdpZHRoICE9PSAwKSB7XG4gICAgICBpZiAoZWxlbWVudFdpZHRoIDwgNjQwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMSk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDY0MCAmJiBlbGVtZW50V2lkdGggPD0gNzY4KSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDMpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiAxMDgwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoNCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0VtcHR5V2lkZ2V0RGF0YSh3aWRnZXREYXRhOiBPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2lkZ2V0RGF0YSAmJiBPYmplY3Qua2V5cyh3aWRnZXREYXRhKS5sZW5ndGggPT09IDA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICB3aWRnZXRDb25maWd1cmF0aW9uOiB3aWRnZXRDb25maWd1cmF0aW9uJCB8IGFzeW5jLFxuICAgIHdpZGdldFByb3BlcnR5VmFsdWU6IHdpZGdldFByb3BlcnR5VmFsdWUkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luYyxcbiAgICBpc0VtcHR5V2lkZ2V0RGF0YTogaXNFbXB0eVdpZGdldERhdGEkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8aDQgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX3RpdGxlXCI+e3sgb2JzPy53aWRnZXRDb25maWd1cmF0aW9uPy50aXRsZSB9fTwvaDQ+XG5cbiAgQGlmIChvYnM/LmlzRW1wdHlXaWRnZXREYXRhKSB7XG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci53aWRnZXRzLm5vRGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcbiAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICN3aWRnZXRGaWVsZFxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdmVydGljYWxseSc6IHJlbmRlclZlcnRpY2FsbHkoKSA9PT0gMSxcbiAgICAgICAgJ3dpZGdldC1maWVsZF9fcmVuZGVyLXR3by1jb2x1bW5zJzogcmVuZGVyVmVydGljYWxseSgpID09PSAyLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdGhyZWUtY29sdW1ucyc6IHJlbmRlclZlcnRpY2FsbHkoKSA9PT0gMyxcbiAgICAgICAgJ3dpZGdldC1maWVsZF9fY29udGFpbmVyJzogcmVuZGVyVmVydGljYWxseSgpID09PSA0XG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAZm9yIChjb2x1bW4gb2Ygb2JzPy53aWRnZXRQcm9wZXJ0eVZhbHVlOyB0cmFjayBjb2x1bW4ua2V5KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2NvbHVtblwiPlxuICAgICAgICAgIEBmb3IgKHByb3BlcnR5IG9mIGNvbHVtbjsgdHJhY2sgcHJvcGVydHkpIHtcbiAgICAgICAgICAgIDxjZHMtbGFiZWw+XG4gICAgICAgICAgICAgIHt7IHByb3BlcnR5Py50aXRsZSB9fVxuXG4gICAgICAgICAgICAgIDxpbnB1dCBjZHNUZXh0IFt2YWx1ZV09XCJwcm9wZXJ0eT8udmFsdWVcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8L2Nkcy1sYWJlbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy9maWVsZC93aWRnZXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBV3BELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsSUFBb0IsbUJBQW1CLENBQUMsS0FBdUI7UUFDN0QsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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O3NCQUFoRCxTQUFTO3VCQUFDLGFBQWE7Z0JBRWYsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNjLG1CQUFtQjtzQkFBdEMsS0FBSztnQkFNYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhcmJvbkxpc3RNb2R1bGUsIFZpZXdDb250ZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNDYXNlV2lkZ2V0fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtJbnB1dE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2lkZ2V0RmllbGRDb21wb25lbnQsIElucHV0TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIENhcmJvbkxpc3RNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwdWJsaWMgcmVhZG9ubHkgY2xhc3MgPSAnd2lkZ2V0LWZpZWxkJztcblxuICBAVmlld0NoaWxkKCd3aWRnZXRGaWVsZCcpIHByaXZhdGUgX3dpZGdldEZpZWxkUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSBjb2xsYXBzZVZlcnRpY2FsbHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBGaWVsZHNDYXNlV2lkZ2V0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHlXaWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0RGF0YSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0RGF0YSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5pc0VtcHR5V2lkZ2V0RGF0YSQubmV4dCh0aGlzLmNoZWNrRW1wdHlXaWRnZXREYXRhKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyVmVydGljYWxseSA9IHNpZ25hbCgwKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldENvbmZpZ3VyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWVsZHNDYXNlV2lkZ2V0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFByb3BlcnR5VmFsdWUkOiBPYnNlcnZhYmxlPHt0aXRsZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nfVtdW10+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLCB0aGlzLndpZGdldERhdGEkXSkucGlwZShcbiAgICAgIG1hcCgoW3dpZGdldCwgd2lkZ2V0RGF0YV0pID0+XG4gICAgICAgIHdpZGdldD8ucHJvcGVydGllcy5jb2x1bW5zLm1hcChjb2x1bW4gPT5cbiAgICAgICAgICBjb2x1bW4ucmVkdWNlKFxuICAgICAgICAgICAgKGNvbHVtbkZpZWxkcywgcHJvcGVydHkpID0+IFtcbiAgICAgICAgICAgICAgLi4uY29sdW1uRmllbGRzLFxuICAgICAgICAgICAgICAuLi4od2lkZ2V0RGF0YT8uaGFzT3duUHJvcGVydHkocHJvcGVydHkua2V5KVxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHByb3BlcnR5LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0RGF0YVtwcm9wZXJ0eS5rZXldICE9PSBudWxsICYmIHdpZGdldERhdGFbcHJvcGVydHkua2V5XSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KHdpZGdldERhdGFbcHJvcGVydHkua2V5XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3VHlwZTogcHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJy0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICBwcml2YXRlIF9vYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRlbnRTZXJ2aWNlOiBWaWV3Q29udGVudFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZVZlcnRpY2FsbHkgJiYgdGhpcy5fd2lkZ2V0RmllbGRSZWYpIHRoaXMub3BlbldpZHRoT2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0RmllbGRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmlubGluZVNpemU7XG5cbiAgICBpZiAodHlwZW9mIGVsZW1lbnRXaWR0aCA9PT0gJ251bWJlcicgJiYgZWxlbWVudFdpZHRoICE9PSAwKSB7XG4gICAgICBpZiAoZWxlbWVudFdpZHRoIDwgNjQwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMSk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDY0MCAmJiBlbGVtZW50V2lkdGggPD0gNzY4KSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDMpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiAxMDgwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoNCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0VtcHR5V2lkZ2V0RGF0YSh3aWRnZXREYXRhOiBPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2lkZ2V0RGF0YSAmJiBPYmplY3Qua2V5cyh3aWRnZXREYXRhKS5sZW5ndGggPT09IDA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICB3aWRnZXRDb25maWd1cmF0aW9uOiB3aWRnZXRDb25maWd1cmF0aW9uJCB8IGFzeW5jLFxuICAgIHdpZGdldFByb3BlcnR5VmFsdWU6IHdpZGdldFByb3BlcnR5VmFsdWUkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luYyxcbiAgICBpc0VtcHR5V2lkZ2V0RGF0YTogaXNFbXB0eVdpZGdldERhdGEkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8aDQgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX3RpdGxlXCI+e3sgb2JzPy53aWRnZXRDb25maWd1cmF0aW9uPy50aXRsZSB9fTwvaDQ+XG5cbiAgQGlmIChvYnM/LmlzRW1wdHlXaWRnZXREYXRhKSB7XG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci53aWRnZXRzLm5vRGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcbiAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICN3aWRnZXRGaWVsZFxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdmVydGljYWxseSc6IHJlbmRlclZlcnRpY2FsbHkoKSA9PT0gMSxcbiAgICAgICAgJ3dpZGdldC1maWVsZF9fcmVuZGVyLXR3by1jb2x1bW5zJzogcmVuZGVyVmVydGljYWxseSgpID09PSAyLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdGhyZWUtY29sdW1ucyc6IHJlbmRlclZlcnRpY2FsbHkoKSA9PT0gMyxcbiAgICAgICAgJ3dpZGdldC1maWVsZF9fY29udGFpbmVyJzogcmVuZGVyVmVydGljYWxseSgpID09PSA0XG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAZm9yIChjb2x1bW4gb2Ygb2JzPy53aWRnZXRQcm9wZXJ0eVZhbHVlOyB0cmFjayBjb2x1bW4ua2V5KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2NvbHVtblwiPlxuICAgICAgICAgIEBmb3IgKHByb3BlcnR5IG9mIGNvbHVtbjsgdHJhY2sgcHJvcGVydHkpIHtcbiAgICAgICAgICAgIDxjZHMtbGFiZWw+XG4gICAgICAgICAgICAgIDxzcGFuIFthdHRyLnRpdGxlXT1cInByb3BlcnR5Py50aXRsZVwiPiB7eyBwcm9wZXJ0eT8udGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGlucHV0IGNkc1RleHQgW3ZhbHVlXT1cInByb3BlcnR5Py52YWx1ZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDwvY2RzLWxhYmVsPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -45,6 +45,9 @@ export class WidgetTableComponent {
45
45
  ...(!!column.displayProperties?.['currencyCode'] && {
46
46
  currencyCode: column.displayProperties['currencyCode'],
47
47
  }),
48
+ ...(!!column.displayProperties?.['values'] && {
49
+ values: column.displayProperties['values'],
50
+ }),
48
51
  })));
49
52
  this.cdr.detectChanges();
50
53
  }
@@ -123,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
123
126
  type: Input,
124
127
  args: [{ required: true }]
125
128
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy90YWJsZS93aWRnZXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL3RhYmxlL3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0IsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFN0YsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFhNUYsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixJQUFvQyxtQkFBbUIsQ0FBQyxLQUFzQjtRQUM1RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxD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UyxNQUFNO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFHYSxtQkFBbUI7c0JBQXRELEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQXVDTSxVQUFVO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NhcmJvbkxpc3RJdGVtLCBDYXJib25MaXN0TW9kdWxlLCBDb2x1bW5Db25maWcsIFZpZXdUeXBlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7UGFnaW5hdGlvbk1vZGVsLCBQYWdpbmF0aW9uTW9kdWxlLCBUaWxlc01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNDYXNlV2lkZ2V0VmFsdWUsIFRhYmxlQ2FzZVdpZGdldH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7RG9zc2llcldpZGdldHNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2FyYm9uTGlzdE1vZHVsZSwgUGFnaW5hdGlvbk1vZHVsZSwgVGlsZXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBkb2N1bWVudElkOiBzdHJpbmc7XG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgdGFiS2V5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlndXJhdGlvbjogVGFibGVDYXNlV2lkZ2V0O1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBUYWJsZUNhc2VXaWRnZXQpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWd1cmF0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5maWVsZHMkLm5leHQoXG4gICAgICB2YWx1ZS5wcm9wZXJ0aWVzLmNvbHVtbnMubWFwKChjb2x1bW46IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAga2V5OiBjb2x1bW4ua2V5LFxuICAgICAgICBsYWJlbDogY29sdW1uLnRpdGxlLFxuICAgICAgICB2aWV3VHlwZTogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID8/IFZpZXdUeXBlLlRFWFQsXG4gICAgICAgIGNsYXNzTmFtZTogYHZhbHRpbW8td2lkZ2V0LXRhYmxlLS10cmFuc3BhcmVudCAke2luZGV4ID09PSAwICYmIHZhbHVlLnByb3BlcnRpZXMuZmlyc3RDb2x1bW5Bc1RpdGxlID8gJ3ZhbHRpbW8td2lkZ2V0LXRhYmxlLS10aXRsZScgOiAnJ31gLFxuICAgICAgICAuLi4oISFjb2x1bW4uZGlzcGxheVByb3BlcnRpZXM/LlsnZm9ybWF0J10gJiYge1xuICAgICAgICAgIGZvcm1hdDogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWydmb3JtYXQnXSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLighIWNvbHVtbi5kaXNwbGF5UHJvcGVydGllcz8uWydkaWdpdHNJbmZvJ10gJiYge1xuICAgICAgICAgIGRpZ2l0c0luZm86IGNvbHVtbi5kaXNwbGF5UHJvcGVydGllc1snZGlnaXRzSW5mbyddLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKCEhY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzPy5bJ2Rpc3BsYXknXSAmJiB7XG4gICAgICAgICAgZGlzcGxheTogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWydkaXNwbGF5J10sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oISFjb2x1bW4uZGlzcGxheVByb3BlcnRpZXM/LlsnY3VycmVuY3lDb2RlJ10gJiYge1xuICAgICAgICAgIGN1cnJlbmN5Q29kZTogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWydjdXJyZW5jeUNvZGUnXSxcbiAgICAgICAgfSksXG4gICAgICB9KSlcbiAgICApO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHdpZGdldENvbmZpZ3VyYXRpb24oKTogVGFibGVDYXNlV2lkZ2V0IHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLnBpcGUoXG4gICAgICBmaWx0ZXIobnVtYmVyT2ZFbGVtZW50cyA9PiBudW1iZXJPZkVsZW1lbnRzICE9PSBudWxsKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1BhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0RGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhcmJvbkxpc3RJdGVtW10gfCBudWxsPihudWxsKTtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHNldCB3aWRnZXREYXRhKHZhbHVlOiBQYWdlPENhcmJvbkxpc3RJdGVtPiB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnNob3dQYWdpbmF0aW9uJC5uZXh0KHZhbHVlLnRvdGFsRWxlbWVudHMgPiB2YWx1ZS5zaXplKTtcbiAgICB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLm5leHQodmFsdWUubnVtYmVyT2ZFbGVtZW50cyk7XG4gICAgdGhpcy5fd2lkZ2V0RGF0YSQubmV4dCh2YWx1ZS5jb250ZW50KTtcblxuICAgIHRoaXMucGFnaW5hdGlvbk1vZGVsLnNldChcbiAgICAgIHZhbHVlLnRvdGFsUGFnZXMgPCAyXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgICAgICAgdG90YWxEYXRhTGVuZ3RoOiBNYXRoLmNlaWwodmFsdWUudG90YWxFbGVtZW50cyAvIHZhbHVlLnNpemUpLFxuICAgICAgICAgICAgcGFnZUxlbmd0aDogdmFsdWUuc2l6ZSxcbiAgICAgICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uQ29uZmlnW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGFnaW5hdGlvbk1vZGVsID0gc2lnbmFsPFBhZ2luYXRpb25Nb2RlbD4obmV3IFBhZ2luYXRpb25Nb2RlbCgpKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0RGF0YSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl93aWRnZXREYXRhJCxcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQsXG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHMkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2RhdGEsIHF1ZXJ5UGFyYW1zLCBpbml0aWFsTnVtYmVyT2ZFbGVtZW50c10pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgIXF1ZXJ5UGFyYW1zXG4gICAgICAgICAgPyBvZihkYXRhKVxuICAgICAgICAgIDogdGhpcy5kb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldFdpZGdldERhdGEoXG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudElkLFxuICAgICAgICAgICAgICAgIHRoaXMudGFiS2V5LFxuICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbi5rZXksXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAucGlwZShtYXAoKHJlczogUGFnZTxDYXJib25MaXN0SXRlbT4pID0+IHJlcy5jb250ZW50KSksXG4gICAgICAgIG9mKGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKSxcbiAgICAgIF0pXG4gICAgKSxcbiAgICBmaWx0ZXIoKFtpdGVtc10pID0+ICEhaXRlbXMpLFxuICAgIG1hcCgoW2l0ZW1zLCBpbml0aWFsTnVtYmVyT2ZFbGVtZW50c10pID0+IHtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxudW1iZXI+KGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKS5maWxsKG51bGwpO1xuXG4gICAgICByZXR1cm4gcm93cy5tYXAoKF8sIGluZGV4KSA9PiBpdGVtc1tpbmRleF0gfHwge30pO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2U6IERvc3NpZXJXaWRnZXRzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBvblNlbGVjdFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlQYXJhbXMkLm5leHQoYHBhZ2U9JHtwYWdlIC0gMX0mc2l6ZT0ke3RoaXMucGFnaW5hdGlvbk1vZGVsKCkucGFnZUxlbmd0aH1gKTtcbiAgICB0aGlzLnBhZ2luYXRpb25Nb2RlbC51cGRhdGUoKG1vZGVsOiBQYWdpbmF0aW9uTW9kZWwpID0+ICh7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdlLFxuICAgIH0pKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLXRpbGVcbiAgKm5nSWY9XCJ7XG4gICAgZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4gIGNsYXNzPVwidmFsdGltby13aWRnZXQtdGFibGVcIlxuPlxuICA8c3BhbiBjbGFzcz1cIndpZGdldC10aXRsZVwiPnt7IHdpZGdldENvbmZpZ3VyYXRpb24/LnRpdGxlIH19PC9zcGFuPlxuXG4gIEBpZiAob2JzLndpZGdldERhdGEgJiYgb2JzLmZpZWxkcyAmJiBvYnMud2lkZ2V0RGF0YS5sZW5ndGgpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LXRhYmxlX19jb250ZW50XCI+XG4gICAgICA8dmFsdGltby1jYXJib24tbGlzdFxuICAgICAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cInRydWVcIlxuICAgICAgICBbZmllbGRzXT1cIm9icy5maWVsZHNcIlxuICAgICAgICBbaXRlbXNdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgPlxuICAgICAgPC92YWx0aW1vLWNhcmJvbi1saXN0PlxuXG4gICAgICA8Y2RzLXBhZ2luYXRpb24tbmF2XG4gICAgICAgICpuZ0lmPVwicGFnaW5hdGlvbk1vZGVsKClcIlxuICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LXRhYmxlX19wYWdpbmF0aW9uXCJcbiAgICAgICAgW21vZGVsXT1cInBhZ2luYXRpb25Nb2RlbCgpXCJcbiAgICAgICAgKHNlbGVjdFBhZ2UpPVwib25TZWxlY3RQYWdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9jZHMtcGFnaW5hdGlvbi1uYXY+XG4gICAgPC9zZWN0aW9uPlxuICB9IEBlbHNlIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfVxuPC9jZHMtdGlsZT5cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy90YWJsZS93aWRnZXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL3RhYmxlL3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0IsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFN0YsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFhNUYsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixJQUFvQyxtQkFBbUIsQ0FBQyxLQUFzQjtRQUM1RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxD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QUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQzs2SEFHekQsVUFBVTtzQkFBekMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ1MsTUFBTTtzQkFBckMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBR2EsbUJBQW1CO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkEwQ00sVUFBVTtzQkFBdEMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDYXJib25MaXN0SXRlbSwgQ2FyYm9uTGlzdE1vZHVsZSwgQ29sdW1uQ29uZmlnLCBWaWV3VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1BhZ2luYXRpb25Nb2RlbCwgUGFnaW5hdGlvbk1vZHVsZSwgVGlsZXNNb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmllbGRzQ2FzZVdpZGdldFZhbHVlLCBUYWJsZUNhc2VXaWRnZXR9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Rvc3NpZXJXaWRnZXRzQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENhcmJvbkxpc3RNb2R1bGUsIFBhZ2luYXRpb25Nb2R1bGUsIFRpbGVzTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRUYWJsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIHRhYktleTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3dpZGdldENvbmZpZ3VyYXRpb246IFRhYmxlQ2FzZVdpZGdldDtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBzZXQgd2lkZ2V0Q29uZmlndXJhdGlvbih2YWx1ZTogVGFibGVDYXNlV2lkZ2V0KSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlndXJhdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuZmllbGRzJC5uZXh0KFxuICAgICAgdmFsdWUucHJvcGVydGllcy5jb2x1bW5zLm1hcCgoY29sdW1uOiBGaWVsZHNDYXNlV2lkZ2V0VmFsdWUsIGluZGV4OiBudW1iZXIpID0+ICh7XG4gICAgICAgIGtleTogY29sdW1uLmtleSxcbiAgICAgICAgbGFiZWw6IGNvbHVtbi50aXRsZSxcbiAgICAgICAgdmlld1R5cGU6IGNvbHVtbi5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA/PyBWaWV3VHlwZS5URVhULFxuICAgICAgICBjbGFzc05hbWU6IGB2YWx0aW1vLXdpZGdldC10YWJsZS0tdHJhbnNwYXJlbnQgJHtpbmRleCA9PT0gMCAmJiB2YWx1ZS5wcm9wZXJ0aWVzLmZpcnN0Q29sdW1uQXNUaXRsZSA/ICd2YWx0aW1vLXdpZGdldC10YWJsZS0tdGl0bGUnIDogJyd9YCxcbiAgICAgICAgLi4uKCEhY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzPy5bJ2Zvcm1hdCddICYmIHtcbiAgICAgICAgICBmb3JtYXQ6IGNvbHVtbi5kaXNwbGF5UHJvcGVydGllc1snZm9ybWF0J10sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oISFjb2x1bW4uZGlzcGxheVByb3BlcnRpZXM/LlsnZGlnaXRzSW5mbyddICYmIHtcbiAgICAgICAgICBkaWdpdHNJbmZvOiBjb2x1bW4uZGlzcGxheVByb3BlcnRpZXNbJ2RpZ2l0c0luZm8nXSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLighIWNvbHVtbi5kaXNwbGF5UHJvcGVydGllcz8uWydkaXNwbGF5J10gJiYge1xuICAgICAgICAgIGRpc3BsYXk6IGNvbHVtbi5kaXNwbGF5UHJvcGVydGllc1snZGlzcGxheSddLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKCEhY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzPy5bJ2N1cnJlbmN5Q29kZSddICYmIHtcbiAgICAgICAgICBjdXJyZW5jeUNvZGU6IGNvbHVtbi5kaXNwbGF5UHJvcGVydGllc1snY3VycmVuY3lDb2RlJ10sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oISFjb2x1bW4uZGlzcGxheVByb3BlcnRpZXM/LlsndmFsdWVzJ10gJiYge1xuICAgICAgICAgIHZhbHVlczogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWyd2YWx1ZXMnXSxcbiAgICAgICAgfSksXG4gICAgICB9KSlcbiAgICApO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHdpZGdldENvbmZpZ3VyYXRpb24oKTogVGFibGVDYXNlV2lkZ2V0IHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLnBpcGUoXG4gICAgICBmaWx0ZXIobnVtYmVyT2ZFbGVtZW50cyA9PiBudW1iZXJPZkVsZW1lbnRzICE9PSBudWxsKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1BhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0RGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhcmJvbkxpc3RJdGVtW10gfCBudWxsPihudWxsKTtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHNldCB3aWRnZXREYXRhKHZhbHVlOiBQYWdlPENhcmJvbkxpc3RJdGVtPiB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnNob3dQYWdpbmF0aW9uJC5uZXh0KHZhbHVlLnRvdGFsRWxlbWVudHMgPiB2YWx1ZS5zaXplKTtcbiAgICB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLm5leHQodmFsdWUubnVtYmVyT2ZFbGVtZW50cyk7XG4gICAgdGhpcy5fd2lkZ2V0RGF0YSQubmV4dCh2YWx1ZS5jb250ZW50KTtcblxuICAgIHRoaXMucGFnaW5hdGlvbk1vZGVsLnNldChcbiAgICAgIHZhbHVlLnRvdGFsUGFnZXMgPCAyXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgICAgICAgdG90YWxEYXRhTGVuZ3RoOiBNYXRoLmNlaWwodmFsdWUudG90YWxFbGVtZW50cyAvIHZhbHVlLnNpemUpLFxuICAgICAgICAgICAgcGFnZUxlbmd0aDogdmFsdWUuc2l6ZSxcbiAgICAgICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uQ29uZmlnW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGFnaW5hdGlvbk1vZGVsID0gc2lnbmFsPFBhZ2luYXRpb25Nb2RlbD4obmV3IFBhZ2luYXRpb25Nb2RlbCgpKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0RGF0YSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl93aWRnZXREYXRhJCxcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQsXG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHMkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2RhdGEsIHF1ZXJ5UGFyYW1zLCBpbml0aWFsTnVtYmVyT2ZFbGVtZW50c10pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgIXF1ZXJ5UGFyYW1zXG4gICAgICAgICAgPyBvZihkYXRhKVxuICAgICAgICAgIDogdGhpcy5kb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldFdpZGdldERhdGEoXG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudElkLFxuICAgICAgICAgICAgICAgIHRoaXMudGFiS2V5LFxuICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbi5rZXksXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAucGlwZShtYXAoKHJlczogUGFnZTxDYXJib25MaXN0SXRlbT4pID0+IHJlcy5jb250ZW50KSksXG4gICAgICAgIG9mKGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKSxcbiAgICAgIF0pXG4gICAgKSxcbiAgICBmaWx0ZXIoKFtpdGVtc10pID0+ICEhaXRlbXMpLFxuICAgIG1hcCgoW2l0ZW1zLCBpbml0aWFsTnVtYmVyT2ZFbGVtZW50c10pID0+IHtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxudW1iZXI+KGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKS5maWxsKG51bGwpO1xuXG4gICAgICByZXR1cm4gcm93cy5tYXAoKF8sIGluZGV4KSA9PiBpdGVtc1tpbmRleF0gfHwge30pO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2U6IERvc3NpZXJXaWRnZXRzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBvblNlbGVjdFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlQYXJhbXMkLm5leHQoYHBhZ2U9JHtwYWdlIC0gMX0mc2l6ZT0ke3RoaXMucGFnaW5hdGlvbk1vZGVsKCkucGFnZUxlbmd0aH1gKTtcbiAgICB0aGlzLnBhZ2luYXRpb25Nb2RlbC51cGRhdGUoKG1vZGVsOiBQYWdpbmF0aW9uTW9kZWwpID0+ICh7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdlLFxuICAgIH0pKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLXRpbGVcbiAgKm5nSWY9XCJ7XG4gICAgZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4gIGNsYXNzPVwidmFsdGltby13aWRnZXQtdGFibGVcIlxuPlxuICA8c3BhbiBjbGFzcz1cIndpZGdldC10aXRsZVwiPnt7IHdpZGdldENvbmZpZ3VyYXRpb24/LnRpdGxlIH19PC9zcGFuPlxuXG4gIEBpZiAob2JzLndpZGdldERhdGEgJiYgb2JzLmZpZWxkcyAmJiBvYnMud2lkZ2V0RGF0YS5sZW5ndGgpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LXRhYmxlX19jb250ZW50XCI+XG4gICAgICA8dmFsdGltby1jYXJib24tbGlzdFxuICAgICAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cInRydWVcIlxuICAgICAgICBbZmllbGRzXT1cIm9icy5maWVsZHNcIlxuICAgICAgICBbaXRlbXNdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgPlxuICAgICAgPC92YWx0aW1vLWNhcmJvbi1saXN0PlxuXG4gICAgICA8Y2RzLXBhZ2luYXRpb24tbmF2XG4gICAgICAgICpuZ0lmPVwicGFnaW5hdGlvbk1vZGVsKClcIlxuICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LXRhYmxlX19wYWdpbmF0aW9uXCJcbiAgICAgICAgW21vZGVsXT1cInBhZ2luYXRpb25Nb2RlbCgpXCJcbiAgICAgICAgKHNlbGVjdFBhZ2UpPVwib25TZWxlY3RQYWdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9jZHMtcGFnaW5hdGlvbi1uYXY+XG4gICAgPC9zZWN0aW9uPlxuICB9IEBlbHNlIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfVxuPC9jZHMtdGlsZT5cbiJdfQ==