@hmcts/ccd-case-ui-toolkit 7.2.32-javascript-void-removal → 7.2.32-mv-redactions-rc1

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 (34) hide show
  1. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +4 -4
  2. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +5 -5
  3. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +5 -5
  4. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +5 -5
  5. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +4 -4
  6. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +4 -4
  7. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +4 -4
  8. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +4 -4
  9. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +4 -4
  10. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +3 -3
  11. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +3 -3
  12. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +3 -3
  13. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +3 -3
  14. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +3 -3
  15. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +4 -4
  16. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +4 -4
  17. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +4 -4
  18. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +9 -9
  19. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +4 -5
  20. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +7 -7
  21. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +5 -5
  22. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +5 -5
  23. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +7 -7
  24. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +5 -5
  25. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +5 -5
  26. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +5 -5
  27. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +69 -71
  28. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +3 -3
  29. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +5 -5
  30. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +5 -5
  31. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +5 -5
  32. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +174 -177
  33. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  34. package/package.json +1 -1
@@ -65,7 +65,7 @@ function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_contain
65
65
  function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_a_2_Template(rf, ctx) { if (rf & 1) {
66
66
  const _r4 = i0.ɵɵgetCurrentView();
67
67
  i0.ɵɵelementStart(0, "a", 13);
68
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_a_2_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const page_r5 = i0.ɵɵnextContext(5).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); ctx_r1.navigateToPage(page_r5.id); return i0.ɵɵresetView($event.preventDefault()); });
68
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_a_2_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r4); const page_r5 = i0.ɵɵnextContext(5).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToPage(page_r5.id)); });
69
69
  i0.ɵɵelementStart(1, "span", 20);
70
70
  i0.ɵɵpipe(2, "rpxTranslate");
71
71
  i0.ɵɵpipe(3, "rpxTranslate");
@@ -599,7 +599,7 @@ export class CaseEditSubmitComponent {
599
599
  return 'Cancel';
600
600
  }
601
601
  static ɵfac = function CaseEditSubmitComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(i1.CaseEditComponent), i0.ɵɵdirectiveInject(i2.FieldsUtils), i0.ɵɵdirectiveInject(i2.CaseFieldService), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i2.OrderService), i0.ɵɵdirectiveInject(i2.ProfileNotifier), i0.ɵɵdirectiveInject(i2.MultipageComponentStateService), i0.ɵɵdirectiveInject(i2.FormValidatorsService), i0.ɵɵdirectiveInject(i4.CaseFlagStateService), i0.ɵɵdirectiveInject(i5.LinkedCasesService)); };
602
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 25, vars: 24, consts: [["titleBlock", ""], ["idBlock", ""], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], [3, "error"], [3, "callbackErrorsContext", "callbackErrorsSubject"], [1, "check-your-answers", 3, "submit", "formGroup"], [4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "#", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content", "text-16"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "#", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group", 3, "ngClass"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["class", "error-message", 4, "ngIf"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], [1, "error-message"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
602
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 25, vars: 24, consts: [["titleBlock", ""], ["idBlock", ""], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], [3, "error"], [3, "callbackErrorsContext", "callbackErrorsSubject"], [1, "check-your-answers", 3, "submit", "formGroup"], [4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content", "text-16"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group", 3, "ngClass"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["class", "error-message", 4, "ngIf"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], [1, "error-message"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
603
603
  const _r1 = i0.ɵɵgetCurrentView();
604
604
  i0.ɵɵelementStart(0, "div")(1, "h1", 2);
605
605
  i0.ɵɵtext(2);
@@ -623,7 +623,7 @@ export class CaseEditSubmitComponent {
623
623
  i0.ɵɵpipe(20, "rpxTranslate");
624
624
  i0.ɵɵelementEnd()();
625
625
  i0.ɵɵelementStart(21, "p", 12)(22, "a", 13);
626
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_Template_a_click_22_listener($event) { i0.ɵɵrestoreView(_r1); ctx.cancel(); return i0.ɵɵresetView($event.preventDefault()); });
626
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_Template_a_click_22_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.cancel()); });
627
627
  i0.ɵɵtext(23);
628
628
  i0.ɵɵpipe(24, "rpxTranslate");
629
629
  i0.ɵɵelementEnd()()()();
@@ -660,7 +660,7 @@ export class CaseEditSubmitComponent {
660
660
  }
661
661
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
662
662
  type: Component,
663
- args: [{ selector: 'ccd-case-edit-submit', template: "<div>\n <!-- Event trigger name -->\n <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n\n <!--Case ID or Title -->\n <div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n <ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: contextFields : editForm.controls['data']\"></ccd-markdown>\n </ng-template>\n <ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n </ng-template>\n\n <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n <table class=\"form-table\" aria-describedby=\"check your answers table\">\n <tbody>\n <ng-container *ngFor=\"let page of wizard.pages\">\n <ng-container *ngIf=\"isShown(page)\">\n <ng-container *ngFor=\"let field of page\n | ccdPageFields: editForm\n | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n | ccdCYAPageLabelFilter\">\n <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n </th>\n <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n <ccd-field-read\n [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n <td class=\"valign-top check-your-answers__change case-field-change\">\n <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id); $event.preventDefault()\"\n href=\"#\">\n <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n {{'Change' | rpxTranslate}}\n </span>\n </a>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n <tbody>\n <ng-container *ngFor=\"let field of showSummaryFields\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th id=\"summary-field-label\">{{field.label}}</th>\n <td class=\"form-cell\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <td colspan=\"2\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"showEventNotes()\">\n <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n <legend style=\"display: none;\"></legend>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n <label for=\"field-trigger-summary\" class=\"form-label\">\n Event summary (optional)\n <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n </label>\n <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n </span>\n <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n </span>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n </div>\n <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n </ccd-case-event-completion>\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n {{triggerText | rpxTranslate}}\n </button>\n </div>\n <p class=\"cancel\">\n <a (click)=\"cancel(); $event.preventDefault()\" href=\"#\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}\n"] }]
663
+ args: [{ selector: 'ccd-case-edit-submit', template: "<div>\n <!-- Event trigger name -->\n <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n\n <!--Case ID or Title -->\n <div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n <ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: contextFields : editForm.controls['data']\"></ccd-markdown>\n </ng-template>\n <ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n </ng-template>\n\n <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n <table class=\"form-table\" aria-describedby=\"check your answers table\">\n <tbody>\n <ng-container *ngFor=\"let page of wizard.pages\">\n <ng-container *ngIf=\"isShown(page)\">\n <ng-container *ngFor=\"let field of page\n | ccdPageFields: editForm\n | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n | ccdCYAPageLabelFilter\">\n <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n </th>\n <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n <ccd-field-read\n [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n <td class=\"valign-top check-your-answers__change case-field-change\">\n <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id)\"\n href=\"javascript:void(0)\">\n <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n {{'Change' | rpxTranslate}}\n </span>\n </a>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n <tbody>\n <ng-container *ngFor=\"let field of showSummaryFields\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th id=\"summary-field-label\">{{field.label}}</th>\n <td class=\"form-cell\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <td colspan=\"2\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"showEventNotes()\">\n <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n <legend style=\"display: none;\"></legend>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n <label for=\"field-trigger-summary\" class=\"form-label\">\n Event summary (optional)\n <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n </label>\n <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n </span>\n <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n </span>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n </div>\n <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n </ccd-case-event-completion>\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n {{triggerText | rpxTranslate}}\n </button>\n </div>\n <p class=\"cancel\">\n <a (click)=\"cancel()\" href=\"javascript:void(0)\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}\n"] }]
664
664
  }], () => [{ type: i1.CaseEditComponent }, { type: i2.FieldsUtils }, { type: i2.CaseFieldService }, { type: i3.ActivatedRoute }, { type: i2.OrderService }, { type: i2.ProfileNotifier }, { type: i2.MultipageComponentStateService }, { type: i2.FormValidatorsService }, { type: i4.CaseFlagStateService }, { type: i5.LinkedCasesService }], null); })();
665
665
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditSubmitComponent, { className: "CaseEditSubmitComponent", filePath: "lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.ts", lineNumber: 30 }); })();
666
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LXN1Ym1pdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXN1Ym1pdC9jYXNlLWVkaXQtc3VibWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtc3VibWl0L2Nhc2UtZWRpdC1zdWJtaXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJakQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsOEJBQThCLEVBQzlCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osZUFBZSxFQUNoQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxhQUFhLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7SUNoQjVGLHNCQUFpRTs7O0lB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O1lBSXRCLGtEQUFzRjtZQUV0RiwrQ0FDMkU7WUFBdkQsOExBQXlCLGdDQUE0QixLQUFDO1lBQUMsaUJBQXNCO1lBRWpHLGdDQUE0RTtZQUFwQiwySUFBVSxZQUFRLEtBQUM7WUEwRnpFLEFBekZBLDBFQUF1RCx5R0EyRkM7WUFHdEQsQUFERiwrQkFBMkMsa0JBQ3VGO1lBQXJCLDJJQUFTLGNBQVUsS0FBQztZQUM3SCxhQUNGOztZQUFBLGlCQUFTO1lBQ1QsbUNBQTZEO1lBQzNELGFBQ0Y7O1lBQ0YsQUFERSxpQkFBUyxFQUNMO1lBRUosQUFERiw4QkFBa0IsYUFDaUY7WUFBOUYsc0hBQVMsWUFBUSx3QkFBRSx1QkFBdUIsS0FBQztZQUFtRCxhQUFrQzs7WUFHekksQUFERSxBQURFLEFBRHFJLGlCQUFJLEVBQ3JJLEVBQ0MsRUFDSDs7OztZQTFId0IsZUFBb0M7WUFBcEMsa0VBQW9DO1lBRzFELGVBQXNCO1lBQWlCLEFBQWpCLEFBQXRCLHlDQUFzQiwyQkFBaUIsd0JBQVk7WUFRM0IsZUFBd0I7WUFBeEIsMENBQXdCO1lBRWpDLGNBQXdEO1lBQXhELDBFQUF3RDtZQUc1QyxjQUFzQjtZQUF0Qix3Q0FBc0I7WUFDL0MsY0FBK0M7WUFBL0Msb0VBQStDO1lBeUZ6QixjQUE4QztZQUE5QyxtRUFBOEM7WUFLbEIsZUFBb0Q7WUFBcEQsMEVBQW9EO1lBQ3hHLGNBQ0Y7WUFERSxtRUFDRjtZQUNzQixlQUF1QjtZQUF2Qix5Q0FBdUI7WUFDM0MsY0FDRjtZQURFLHdFQUNGO1lBR3dELGVBQXdDO1lBQXhDLHFEQUF3QztZQUFDLGNBQWtDO1lBQWxDLGlFQUFrQzs7O2lGRDVGNUgsdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0Usc0JBQXNCOztrRkFJckIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIsIENhc2VGaWVsZCwgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7XG4gIENhc2VGaWVsZFNlcnZpY2UsXG4gIEZpZWxkc1V0aWxzLFxuICBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UsXG4gIEZvcm1WYWxpZGF0b3JzU2VydmljZSxcbiAgT3JkZXJTZXJ2aWNlLFxuICBQcm9maWxlTm90aWZpZXJcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsbGJhY2tFcnJvcnNDb21wb25lbnQsIENhbGxiYWNrRXJyb3JzQ29udGV4dCB9IGZyb20gJy4uLy4uL2Vycm9yJztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vLi4vcGFsZXR0ZSc7XG5pbXBvcnQgeyBDYXNlRWRpdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQtcGFnZS9jYXNlLWVkaXQtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUVkaXRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmQsIFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUVkaXRTdWJtaXRUaXRsZXMgfSBmcm9tICcuL2Nhc2UtZWRpdC1zdWJtaXQtdGl0bGVzLmVudW0nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jYXNlLWZsYWctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWxldHRlL2xpbmtlZC1jYXNlcy9zZXJ2aWNlcy9saW5rZWQtY2FzZXMuc2VydmljZSc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0LXN1Ym1pdCcsXG4gIHRlbXBsYXRlVXJsOiAnY2FzZS1lZGl0LXN1Ym1pdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2Nhc2UtZWRpdC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUVkaXRTdWJtaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyBlZGl0Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgdHJpZ2dlclRleHQ6IHN0cmluZztcbiAgcHVibGljIHdpemFyZDogV2l6YXJkO1xuICBwdWJsaWMgcHJvZmlsZTogUHJvZmlsZTtcbiAgcHVibGljIHNob3dTdW1tYXJ5RmllbGRzOiBDYXNlRmllbGRbXTtcbiAgcHVibGljIHBhbGV0dGVDb250ZXh0OiBQYWxldHRlQ29udGV4dCA9IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY29udGV4dEZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyB0YXNrOiBUYXNrO1xuICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBtZXRhZGF0YUZpZWxkc09iamVjdDogb2JqZWN0O1xuICBwdWJsaWMgYWxsRmllbGRzVmFsdWVzOiBhbnk7XG4gIHB1YmxpYyBzdW1tYXJ5OiBBYnN0cmFjdENvbnRyb2w7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbjogQWJzdHJhY3RDb250cm9sO1xuICBwdWJsaWMgZXZlbnRTdW1tYXJ5TGFiZWw6IHN0cmluZyA9ICdFdmVudCBzdW1tYXJ5JztcbiAgcHVibGljIGV2ZW50RGVzY3JpcHRpb25MYWJlbDogc3RyaW5nID0gJ0V2ZW50IGRlc2NyaXB0aW9uJztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIT1dfU1VNTUFSWV9DT05URU5UX0NPTVBBUkVfRlVOQ1RJT04gPSAoYTogQ2FzZUZpZWxkLCBiOiBDYXNlRmllbGQpOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IGFDYXNlRmllbGQgPSBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbiA9PT0gMCB8fCBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcbiAgICBjb25zdCBiQ2FzZUZpZWxkID0gYi5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gPT09IDAgfHwgYi5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb247XG5cbiAgICBpZiAoIWFDYXNlRmllbGQpIHtcbiAgICAgIHJldHVybiAhYkNhc2VGaWVsZCA/IDAgOiAxO1xuICAgIH1cblxuICAgIGlmICghYkNhc2VGaWVsZCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gYS5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gLSBiLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcbiAgfTtcblxuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gRVVJLTM0NTIuXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGVkaXRGb3JtIGFzIGl0IGlzIHJlYWRvbmx5LlxuICAgIC8vIFRoaXMgd2FzIGNhdXNpbmcgaXNzdWVzIHdpdGggaGlkZGVuIGZpZWxkcyB0aGF0IGFyZW4ndCB3YW50ZWQgYnV0IGhhdmVcbiAgICAvLyBub3QgYmVlbiBkaXNhYmxlZC5cbiAgICByZXR1cm4gdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgfHwgdGhpcy5oYXNFcnJvcnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FzZUVkaXQ6IENhc2VFZGl0Q29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzVXRpbHM6IEZpZWxkc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZpZWxkU2VydmljZTogQ2FzZUZpZWxkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9yZGVyU2VydmljZTogT3JkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2U6IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWxpZGF0b3JzU2VydmljZTogRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnByb2ZpbGUgPSBfKTtcbiAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IHRoaXMuY2FzZUVkaXQuZXZlbnRUcmlnZ2VyO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSB0aGlzLmV2ZW50VHJpZ2dlci5lbmRfYnV0dG9uX2xhYmVsIHx8IENhbGxiYWNrRXJyb3JzQ29tcG9uZW50LlRSSUdHRVJfVEVYVF9TVUJNSVQ7XG4gICAgdGhpcy5lZGl0Rm9ybSA9IHRoaXMuY2FzZUVkaXQuZm9ybTtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMuY2FzZUVkaXQud2l6YXJkO1xuICAgIHRoaXMuc2hvd1N1bW1hcnlGaWVsZHMgPSB0aGlzLnNvcnRGaWVsZHNCeVNob3dTdW1tYXJ5Q29udGVudCh0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRleHRGaWVsZHMgPSB0aGlzLmdldENhc2VGaWVsZHMoKTtcbiAgICB0aGlzLm1ldGFkYXRhRmllbGRzT2JqZWN0ID0gdGhpcy5jYXNlRWRpdD8uY2FzZURldGFpbHM/Lm1ldGFkYXRhRmllbGRzPy5cbiAgICAgIHJlZHVjZSgobywga2V5KSA9PiBPYmplY3QuYXNzaWduKG8sIHsgW2tleS5pZF06IGtleS52YWx1ZSB9KSwge30pO1xuICAgIHRoaXMuYWxsRmllbGRzVmFsdWVzID0gT2JqZWN0LmFzc2lnbih0aGlzLm1ldGFkYXRhRmllbGRzT2JqZWN0ID8gdGhpcy5tZXRhZGF0YUZpZWxkc09iamVjdCA6IHt9LCB0aGlzLmVkaXRGb3JtLmdldFJhd1ZhbHVlKCkuZGF0YSk7XG4gICAgLy8gSW5kaWNhdGVzIGlmIHRoZSBzdWJtaXNzaW9uIGlzIGZvciBhIENhc2UgRmxhZywgYXMgb3Bwb3NlZCB0byBhIFwicmVndWxhclwiIGZvcm0gc3VibWlzc2lvbiwgYnkgdGhlIHByZXNlbmNlIG9mXG4gICAgLy8gYSBGbGFnTGF1bmNoZXIgZmllbGQgaW4gdGhlIGV2ZW50IHRyaWdnZXJcbiAgICB0aGlzLmNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uID1cbiAgICAgIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLnNvbWUoKGNhc2VGaWVsZCkgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgdGhpcy5jYXNlRWRpdC5pc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9XG4gICAgICB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcy5zb21lKGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlRmllbGQsIFsnQ29tcG9uZW50TGF1bmNoZXInXSkpO1xuICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5nZXRQYWdlVGl0bGUoKTtcbiAgICBpZiAoIXRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuaW5pdGlhbENhc2VGbGFncyAmJiB0aGlzLmNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uICYmIE9iamVjdC5rZXlzKHRoaXMuY2FzZUVkaXQuZm9ybS52YWx1ZS5kYXRhKS5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuaW5pdGlhbENhc2VGbGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jYXNlRWRpdC5mb3JtLnZhbHVlKSk7XG4gICAgfVxuICAgIHRoaXMuc3VtbWFyeSA9IHRoaXMuZm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZE1hcmtEb3duVmFsaWRhdG9ycyh0aGlzLmVkaXRGb3JtLCAnZXZlbnQuc3VtbWFyeScpO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLmZvcm1WYWxpZGF0b3JzU2VydmljZS5hZGRNYXJrRG93blZhbGlkYXRvcnModGhpcy5lZGl0Rm9ybSwgJ2V2ZW50LmRlc2NyaXB0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1bW1hcnkudmFsaWQgJiYgdGhpcy5kZXNjcmlwdGlvbi52YWxpZCkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UucmVzZXRMaW5rZWRDYXNlRGF0YSgpO1xuICAgICAgdGhpcy5jaGVja0V4aXN0aW5nRGF0YUluU3VibWlzc2lvbigpO1xuICAgICAgdGhpcy5jYXNlRWRpdC5zdWJtaXRGb3JtKHtcbiAgICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLmNhc2VFZGl0LnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5yZXNldEluaXRpYWxDYXNlRmxhZ3MoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FdmVudENhbkJlQ29tcGxldGVkKGV2ZW50Q2FuQmVDb21wbGV0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lm9uRXZlbnRDYW5CZUNvbXBsZXRlZCh7XG4gICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgZXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLFxuICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHN1Ym1pdDogdGhpcy5jYXNlRWRpdC5zdWJtaXRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0V4aXN0aW5nRGF0YUluU3VibWlzc2lvbigpIHtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbikge1xuICAgICAgdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGREYXRhID0gdGhpcy5lZGl0Rm9ybS52YWx1ZS5kYXRhW2ZpZWxkLmlkXTtcbiAgICAgICAgaWYgKGZpZWxkRGF0YT8uZGV0YWlscykge1xuICAgICAgICAgIGNvbnN0IHByaW9yRmxhZ3MgPSB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmluaXRpYWxDYXNlRmxhZ3MuZGF0YVtmaWVsZC5pZF0uZGV0YWlscztcbiAgICAgICAgICBpZiAocHJpb3JGbGFncykge1xuICAgICAgICAgICAgcHJpb3JGbGFncy5mb3JFYWNoKChmbGFnKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghZmllbGQuX3ZhbHVlLmRldGFpbHMuc29tZSgoZGV0YWlsKSA9PiBkZXRhaWwuaWQgPT09IGZsYWcuaWQpKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuX3ZhbHVlLmRldGFpbHMucHVzaChmbGFnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZmllbGQuX3ZhbHVlKSB7XG4gICAgICAgICAgICAgIGZpZWxkLl92YWx1ZS5kZXRhaWxzID0gZmllbGQuX3ZhbHVlLmRldGFpbHM/LmZpbHRlcigoZGV0YWlsOiB7IGlkPzogc3RyaW5nIH0pID0+IGRldGFpbC5pZCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtYXR0ZWRfdmFsdWU/Lmdyb3VwSWQpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fdmFsdWUuZ3JvdXBJZCA9IGZpZWxkLmZvcm1hdHRlZF92YWx1ZS5ncm91cElkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtYXR0ZWRfdmFsdWU/LnZpc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fdmFsdWUudmlzaWJpbGl0eSA9IGZpZWxkLmZvcm1hdHRlZF92YWx1ZT8udmlzaWJpbGl0eTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoZmllbGQuZm9ybWF0dGVkX3ZhbHVlPy5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuZm9ybWF0dGVkX3ZhbHVlLmRldGFpbHMgPSBmaWVsZC5fdmFsdWU/LmRldGFpbHM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZmllbGREYXRhLmRldGFpbHMgPSBmaWVsZERhdGEuZGV0YWlscy5maWx0ZXIoKGRldGFpbDogeyBpZD86IHN0cmluZyB9KSA9PiBkZXRhaWwuaWQgIT09IG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWdlVGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjYXNlRmxhZ0ZpZWxkID0gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuZmluZChjYXNlRmllbGQgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgaWYgKGNhc2VGbGFnRmllbGQpIHtcbiAgICAgIGNvbnN0IGlzQ2FzZUZsYWdFeHRlcm5hbE1vZGUgPSBjYXNlRmxhZ0ZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09ICcjQVJHVU1FTlQoVVBEQVRFLEVYVEVSTkFMKScgfHxcbiAgICAgICAgY2FzZUZsYWdGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSAnI0FSR1VNRU5UKENSRUFURSxFWFRFUk5BTCknO1xuICAgICAgcmV0dXJuIGlzQ2FzZUZsYWdFeHRlcm5hbE1vZGVcbiAgICAgICAgPyBDYXNlRWRpdFN1Ym1pdFRpdGxlcy5SRVZJRVdfU1VQUE9SVF9SRVFVRVNUXG4gICAgICAgIDogQ2FzZUVkaXRTdWJtaXRUaXRsZXMuUkVWSUVXX0ZMQUdfREVUQUlMUztcbiAgICB9XG4gICAgcmV0dXJuIENhc2VFZGl0U3VibWl0VGl0bGVzLkNIRUNLX1lPVVJfQU5TV0VSUztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRWRpdD8uZXJyb3I/LmNhbGxiYWNrRXJyb3JzPy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lm5hdmlnYXRlVG9QYWdlKHBhZ2VJZCk7XG4gIH1cblxuICBwdWJsaWMgY2FsbGJhY2tFcnJvcnNOb3RpZnkoZXJyb3JDb250ZXh0OiBDYWxsYmFja0Vycm9yc0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lmlnbm9yZVdhcm5pbmcgPSBlcnJvckNvbnRleHQuaWdub3JlV2FybmluZztcbiAgICB0aGlzLnRyaWdnZXJUZXh0ID0gZXJyb3JDb250ZXh0LnRyaWdnZXJUZXh0O1xuICB9XG5cbiAgcHVibGljIHN1bW1hcnlDYXNlRmllbGQoZmllbGQ6IENhc2VGaWVsZCk6IENhc2VGaWVsZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAobnVsbCA9PT0gdGhpcy5lZGl0Rm9ybS5nZXQoJ2RhdGEnKS5nZXQoZmllbGQuaWQpKSB7XG4gICAgICAvLyBJZiBub3QgaW4gZm9ybSwgcmV0dXJuIGZpZWxkIGl0c2VsZlxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lRmllbGQ6IENhc2VGaWVsZCA9IHRoaXMuZmllbGRzVXRpbHMuY2xvbmVDYXNlRmllbGQoZmllbGQpO1xuICAgIGNsb25lRmllbGQudmFsdWUgPSB0aGlzLmVkaXRGb3JtLmdldCgnZGF0YScpLmdldChmaWVsZC5pZCkudmFsdWU7XG5cbiAgICByZXR1cm4gY2xvbmVGaWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuaXNMaW5rZWRDYXNlc1N1Ym1pc3Npb24pIHtcbiAgICAgIHRoaXMuaGFuZGxlTGlua2VkQ2FzZXNTdWJtaXNzaW9uKCk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UucmVzZXRJbml0aWFsQ2FzZUZsYWdzKCk7XG4gICAgdGhpcy5lbWl0Q2FuY2VsRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlua2VkQ2FzZXNTdWJtaXNzaW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmtlZENhc2VzVGFiID0gdGhpcy5nZXRMaW5rZWRDYXNlc1RhYigpO1xuICAgIGNvbnN0IGluaXRpYWxMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua1JlZnM7XG5cbiAgICBpZiAobGlua2VkQ2FzZXNUYWIgJiYgbGlua2VkQ2FzZXNUYWIudmFsdWUubGVuZ3RoICE9PSBpbml0aWFsTGlua3MubGVuZ3RoKSB7XG4gICAgICBsaW5rZWRDYXNlc1RhYi52YWx1ZSA9IGxpbmtlZENhc2VzVGFiLnZhbHVlLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgaW5pdGlhbExpbmtzLmluY2x1ZGVzKGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnJlc2V0TGlua2VkQ2FzZURhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGlua2VkQ2FzZXNUYWIoKTogQ2FzZUZpZWxkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMudGFicy5maW5kKCh0YWIpID0+XG4gICAgICB0YWI/LmZpZWxkcz8uc29tZSgoZmllbGQpID0+IGZpZWxkLmlkID09PSAnY2FzZUxpbmtzJylcbiAgICApPy5maWVsZHM/LlswXSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q2FuY2VsRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLmNhbl9zYXZlX2RyYWZ0KSB7XG4gICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KENhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTSk7XG4gICAgICBjb25zdCBzdGF0dXMgPSBvcmlnaW4gPT09ICd2aWV3RHJhZnQnID8gQ2FzZUVkaXRQYWdlQ29tcG9uZW50LlJFU1VNRURfRk9STV9ESVNDQVJEIDogQ2FzZUVkaXRQYWdlQ29tcG9uZW50Lk5FV19GT1JNX0RJU0NBUkQ7XG4gICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KHsgc3RhdHVzIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzTGFiZWwoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZFNlcnZpY2UuaXNMYWJlbChmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgaXNDaGFuZ2VBbGxvd2VkKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2FzZUZpZWxkU2VydmljZS5pc1JlYWRPbmx5KGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1lvdXJBbnN3ZXJGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5IHx8IHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfc3VtbWFyeSA9PT0gbnVsbCkge1xuICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHRoaXMud2l6YXJkLnBhZ2VzKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChwYWdlLmNhc2VfZmllbGRzICYmIHRoaXMuaXNTaG93bihwYWdlKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcGFnZS5jYXNlX2ZpZWxkcykge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmNhblNob3dGaWVsZEluQ1lBKGZpZWxkKSkge1xuICAgICAgICAgICAgICAvLyBhdCBsZWFzdCBvbmUgZmllbGQgbmVlZHMgc2hvd2luZ1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZm91bmQgbm8gZmllbGRzIHRvIHNob3cgaW4gQ1lBIHN1bW1hcnkgcGFnZVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkT25seVN1bW1hcnlGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLnNvbWUoKGZpZWxkKSA9PiBmaWVsZC5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gPj0gMCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0V2ZW50Tm90ZXMoKTogYm9vbGVhbiB7XG4gICAgLy8gRGlzcGxheSBldmVudCBub3RlcyByZWxhdGVkIGNvbnRyb2xzIG9ubHkgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXRcbiAgICAvLyAxLiBzaG93X2V2ZW50X25vdGVzIGZsYWcgaXMgc2V0IHRvIHRydWVcbiAgICAvLyAyLiBwcm9maWxlIGlzIG5vdCBhIHNvbGljaXRvclxuICAgIC8vIDMuIGlzIG5vdCBhIGNhc2UgZmxhZ3Mgam91cm5leSwgYXMgaXQgdXNlcyBhIGN1c3RvbSBjaGVjayB5b3VyIGFuc3dlcnMgY29tcG9uZW50XG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHJldHVybiAhdGhpcy5wcm9maWxlPy5pc1NvbGljaXRvcigpXG4gICAgICAgICYmICF0aGlzLmNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldExhc3RQYWdlU2hvd24oKTogV2l6YXJkUGFnZSB7XG4gICAgbGV0IGxhc3RQYWdlOiBXaXphcmRQYWdlO1xuICAgIHRoaXMud2l6YXJkLnJldmVyc2UoKS5mb3JFYWNoKChwYWdlKSA9PiB7XG4gICAgICBpZiAoIWxhc3RQYWdlICYmIHRoaXMuaXNTaG93bihwYWdlKSkge1xuICAgICAgICBsYXN0UGFnZSA9IHBhZ2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkQXNzaWdubWVudFxuICAgIHJldHVybiBsYXN0UGFnZTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbikge1xuICAgICAgLy8gaWYgd2UgYXJlIGluIHRoZSBjYXNlZmxhZyBqb3VybmV5IHdlIG5lZWQgdG8gc3RvcmUgdGhlIGxhc3QgcGFnZSBpbmRleCBzbyB0aGF0IHRoZSBwcmV2aW91cyBidXR0b24gb24gQ1lBIHdpbGwgdGFrZSB0byBjb3JyZWN0IHBhZ2VcbiAgICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZmllbGRTdGF0ZVRvTmF2aWdhdGUgPSB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmxhc3RQYWdlRmllbGRTdGF0ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuaXNMaW5rZWRDYXNlc1N1Ym1pc3Npb24pIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhbWVGcm9tRmluYWxTdGVwID0gdHJ1ZTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5oYXNQcmV2aW91cygpKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9QYWdlKHRoaXMuZ2V0TGFzdFBhZ2VTaG93bigpLmlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzUHJldmlvdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRMYXN0UGFnZVNob3duKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTaG93bihwYWdlOiBXaXphcmRQYWdlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5maWVsZHNVdGlsc1xuICAgICAgLm1lcmdlQ2FzZUZpZWxkc0FuZEZvcm1GaWVsZHModGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIHRoaXMuZWRpdEZvcm0uY29udHJvbHMuZGF0YS52YWx1ZSk7XG4gICAgcmV0dXJuIHBhZ2UucGFyc2VkU2hvd0NvbmRpdGlvbi5tYXRjaChmaWVsZHMpO1xuICB9XG5cbiAgcHVibGljIGNhblNob3dGaWVsZEluQ1lBKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmllbGQuc2hvd19zdW1tYXJ5X2NoYW5nZV9vcHRpb247XG4gIH1cblxuICBwcml2YXRlIHNvcnRGaWVsZHNCeVNob3dTdW1tYXJ5Q29udGVudChmaWVsZHM6IENhc2VGaWVsZFtdKTogQ2FzZUZpZWxkW10ge1xuICAgIHJldHVybiB0aGlzLm9yZGVyU2VydmljZVxuICAgICAgLnNvcnQoZmllbGRzLCBDYXNlRWRpdFN1Ym1pdENvbXBvbmVudC5TSE9XX1NVTU1BUllfQ09OVEVOVF9DT01QQVJFX0ZVTkNUSU9OKVxuICAgICAgLmZpbHRlcigoY2YpID0+IGNmLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldENhc2VGaWVsZHMoKTogQ2FzZUZpZWxkW10ge1xuICAgIGlmICh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKSB7XG4gICAgICByZXR1cm4gRmllbGRzVXRpbHMuZ2V0Q2FzZUZpZWxkcyh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuZ2V0Q2FzZUlkKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyAmJiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlICYmXG4gICAgICB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgPyB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgOiAnJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FuY2VsVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmV2ZW50VHJpZ2dlci5jYW5fc2F2ZV9kcmFmdCkge1xuICAgICAgcmV0dXJuICdSZXR1cm4gdG8gY2FzZSBsaXN0JztcbiAgICB9XG4gICAgcmV0dXJuICdDYW5jZWwnO1xuICB9XG59XG5cbiIsIjxkaXY+XG4gIDwhLS0gRXZlbnQgdHJpZ2dlciBuYW1lIC0tPlxuICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj57e2V2ZW50VHJpZ2dlci5uYW1lIHwgcnB4VHJhbnNsYXRlfX08L2gxPlxuXG4gIDwhLS1DYXNlIElEIG9yIFRpdGxlIC0tPlxuICA8ZGl2ICpuZ0lmPVwiZ2V0Q2FzZVRpdGxlKCk7IHRoZW4gdGl0bGVCbG9jazsgZWxzZSBpZEJsb2NrXCI+PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjdGl0bGVCbG9jaz5cbiAgICA8Y2NkLW1hcmtkb3duIFtjb250ZW50XT1cImdldENhc2VUaXRsZSgpIHwgY2NkQ2FzZVRpdGxlOiBjb250ZXh0RmllbGRzIDogZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiPjwvY2NkLW1hcmtkb3duPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2lkQmxvY2s+XG4gICAgPGgyICpuZ0lmPVwiZ2V0Q2FzZUlkKClcIiBjbGFzcz1cImhlYWRpbmctaDJcIj4je3sgZ2V0Q2FzZUlkKCkgfCBjY2RDYXNlUmVmZXJlbmNlIH19PC9oMj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8Y2NkLWNhc2UtZWRpdC1nZW5lcmljLWVycm9ycyBbZXJyb3JdPVwiY2FzZUVkaXQuZXJyb3JcIj48L2NjZC1jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnM+XG5cbiAgPGNjZC1jYWxsYmFjay1lcnJvcnMgW2NhbGxiYWNrRXJyb3JzU3ViamVjdF09XCJjYXNlRWRpdC5jYWxsYmFja0Vycm9yc1N1YmplY3RcIlxuICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFja0Vycm9yc0NvbnRleHQpPVwiY2FsbGJhY2tFcnJvcnNOb3RpZnkoJGV2ZW50KVwiPjwvY2NkLWNhbGxiYWNrLWVycm9ycz5cblxuICA8Zm9ybSBjbGFzcz1cImNoZWNrLXlvdXItYW5zd2Vyc1wiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm1cIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFjYXNlRWRpdC5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tZb3VyQW5zd2VyRmllbGRzVG9EaXNwbGF5RXhpc3RzKClcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiPnt7cGFnZVRpdGxlIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIj57eydDaGVjayB0aGUgaW5mb3JtYXRpb24gYmVsb3cgY2FyZWZ1bGx5LicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cblxuICAgICAgICA8dGFibGUgY2xhc3M9XCJmb3JtLXRhYmxlXCIgYXJpYS1kZXNjcmliZWRieT1cImNoZWNrIHlvdXIgYW5zd2VycyB0YWJsZVwiPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYWdlIG9mIHdpemFyZC5wYWdlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd24ocGFnZSlcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgcGFnZVxuICAgICAgICAgICAgICB8IGNjZFBhZ2VGaWVsZHM6IGVkaXRGb3JtXG4gICAgICAgICAgICAgIHwgY2NkUmVhZEZpZWxkc0ZpbHRlcjogZmFsc2UgOnVuZGVmaW5lZCA6dHJ1ZSA6YWxsRmllbGRzVmFsdWVzXG4gICAgICAgICAgICAgIHwgY2NkQ1lBUGFnZUxhYmVsRmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhblNob3dGaWVsZEluQ1lBKGZpZWxkKVwiPlxuICAgICAgICAgICAgICAgICAgPHRyIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY29udGV4dEZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cIiFpc0xhYmVsKGZpZWxkKSAmJiAhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIiBjbGFzcz1cInZhbGlnbi10b3AgY2FzZS1maWVsZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiPnt7ZmllbGQubGFiZWwgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9ybS1jZWxsIGNhc2UtZmllbGQtY29udGVudCB0ZXh0LTE2XCIgW2F0dHIuY29sc3Bhbl09XCJpc0xhYmVsKGZpZWxkKSA/ICcyJyA6ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW3RvcExldmVsRm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJzdW1tYXJ5Q2FzZUZpZWxkKGZpZWxkKVwiIFtjb250ZXh0XT1cInBhbGV0dGVDb250ZXh0XCIgW2Nhc2VGaWVsZHNdPVwiY29udGV4dEZpZWxkc1wiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWxpZ24tdG9wIGNoZWNrLXlvdXItYW5zd2Vyc19fY2hhbmdlIGNhc2UtZmllbGQtY2hhbmdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImlzQ2hhbmdlQWxsb3dlZChmaWVsZClcIiAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZS5pZCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgYXR0ci5hcmlhLWxhYmVsPVwie3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19IHt7IGZpZWxkLmxhYmVsIHwgcnB4VHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWRPbmx5U3VtbWFyeUZpZWxkc1RvRGlzcGxheUV4aXN0cygpXCI+XG5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwic3VtbWFyeS1maWVsZHNcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic3VtbWFyeSBmaWVsZHMgdGFibGVcIj5cbiAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBzaG93U3VtbWFyeUZpZWxkc1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIiEoZmllbGQgfCBjY2RJc0NvbXBvdW5kKVwiPlxuICAgICAgICAgICAgICAgICAgPHRyICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImZpZWxkXCIgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2NvbnRleHRGaWVsZHNdPVwiY29udGV4dEZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGggaWQ9XCJzdW1tYXJ5LWZpZWxkLWxhYmVsXCI+e3tmaWVsZC5sYWJlbH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9ybS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjYXNlRmllbGRdPVwic3VtbWFyeUNhc2VGaWVsZChmaWVsZClcIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgIDx0ciAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIiBjbGFzcz1cImNvbXBvdW5kLWZpZWxkXCIgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImZpZWxkXCIgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2NvbnRleHRGaWVsZHNdPVwiY29udGV4dEZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2Nhc2VGaWVsZF09XCJzdW1tYXJ5Q2FzZUZpZWxkKGZpZWxkKVwiIFtjYXNlRmllbGRzXT1cImNvbnRleHRGaWVsZHNcIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dFdmVudE5vdGVzKClcIj5cbiAgICAgICAgPGZpZWxkc2V0IGlkPVwiZmllbGRzZXQtZXZlbnRcIiBmb3JtR3JvdXBOYW1lPVwiZXZlbnRcIj5cbiAgICAgICAgICA8bGVnZW5kIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj48L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6ICEhc3VtbWFyeSAmJiAhc3VtbWFyeS52YWxpZCAmJiAoc3VtbWFyeS5kaXJ0eSB8fCBzdW1tYXJ5LnRvdWNoZWQpfVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpZWxkLXRyaWdnZXItc3VtbWFyeVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxuICAgICAgICAgICAgICBFdmVudCBzdW1tYXJ5IChvcHRpb25hbClcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIj5BIGZldyB3b3JkcyBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBldmVudC48L3NwYW4+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzdW1tYXJ5Py5lcnJvcnMgJiYgKHN1bW1hcnkuZGlydHkgfHwgc3VtbWFyeS50b3VjaGVkKVwiPlxuICAgICAgICAgICAgICB7e3N1bW1hcnkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjogZXZlbnRTdW1tYXJ5TGFiZWwgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJmaWVsZC10cmlnZ2VyLXN1bW1hcnlcIiBjbGFzcz1cImZvcm0tY29udHJvbCBib3R0b20tMzAgd2lkdGgtNTBcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IHN1bW1hcnk/LmVycm9ycyAmJiAoc3VtbWFyeS5kaXJ0eSB8fCBzdW1tYXJ5LnRvdWNoZWQpfVwiIGZvcm1Db250cm9sTmFtZT1cInN1bW1hcnlcIiBtYXhsZW5ndGg9XCIxMDI0XCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiAhIWRlc2NyaXB0aW9uICYmICFkZXNjcmlwdGlvbi52YWxpZCAmJiAoZGVzY3JpcHRpb24uZGlydHkgfHwgZGVzY3JpcHRpb24udG91Y2hlZCl9XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmllbGQtdHJpZ2dlci1kZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkV2ZW50IGRlc2NyaXB0aW9uIChvcHRpb25hbCk8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJkZXNjcmlwdGlvbj8uZXJyb3JzICYmIChkZXNjcmlwdGlvbi5kaXJ0eSB8fCBkZXNjcmlwdGlvbi50b3VjaGVkKVwiPlxuICAgICAgICAgICAgICB7e2Rlc2NyaXB0aW9uLmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6IGV2ZW50RGVzY3JpcHRpb25MYWJlbCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJmaWVsZC10cmlnZ2VyLWRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwIHdpZHRoLTUwXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGRlc2NyaXB0aW9uPy5lcnJvcnMgJiYgKGRlc2NyaXB0aW9uLmRpcnR5IHx8IGRlc2NyaXB0aW9uLnRvdWNoZWQpfVwiIG1heGxlbmd0aD1cIjY1NTM2XCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxjY2QtY2FzZS1ldmVudC1jb21wbGV0aW9uICpuZ0lmPVwiY2FzZUVkaXQuaXNFdmVudENvbXBsZXRpb25DaGVja3NSZXF1aXJlZFwiXG4gICAgICBbZXZlbnRDb21wbGV0aW9uUGFyYW1zXT1cImNhc2VFZGl0LmV2ZW50Q29tcGxldGlvblBhcmFtc1wiXG4gICAgICAoZXZlbnRDYW5CZUNvbXBsZXRlZCk9XCJvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoJGV2ZW50KVwiPlxuICAgIDwvY2NkLWNhc2UtZXZlbnQtY29tcGxldGlvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLXJlbGF0ZWRcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiIWhhc1ByZXZpb3VzKCkgfHwgY2FzZUVkaXQuaXNTdWJtaXR0aW5nXCIgKGNsaWNrKT1cInByZXZpb3VzKClcIj5cbiAgICAgICAge3snUHJldmlvdXMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBjbGFzcz1cImJ1dHRvblwiPlxuICAgICAgICB7e3RyaWdnZXJUZXh0IHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxwIGNsYXNzPVwiY2FuY2VsXCI+XG4gICAgICA8YSAoY2xpY2spPVwiY2FuY2VsKCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgaHJlZj1cIiNcIiBbY2xhc3MuZGlzYWJsZWRdPVwiY2FzZUVkaXQuaXNTdWJtaXR0aW5nXCI+e3tnZXRDYW5jZWxUZXh0KCkgfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgICA8L3A+XG4gIDwvZm9ybT5cbjwvZGl2PlxuXG4iXX0=
666
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LXN1Ym1pdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXN1Ym1pdC9jYXNlLWVkaXQtc3VibWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtc3VibWl0L2Nhc2UtZWRpdC1zdWJtaXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJakQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsOEJBQThCLEVBQzlCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osZUFBZSxFQUNoQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxhQUFhLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7SUNoQjVGLHNCQUFpRTs7O0lB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c0Y7WUFFdEYsK0NBQzJFO1lBQXZELDhMQUF5QixnQ0FBNEIsS0FBQztZQUFDLGlCQUFzQjtZQUVqRyxnQ0FBNEU7WUFBcEIsMklBQVUsWUFBUSxLQUFDO1lBMEZ6RSxBQXpGQSwwRUFBdUQseUdBMkZDO1lBR3RELEFBREYsK0JBQTJDLGtCQUN1RjtZQUFyQiwySUFBUyxjQUFVLEtBQUM7WUFDN0gsYUFDRjs7WUFBQSxpQkFBUztZQUNULG1DQUE2RDtZQUMzRCxhQUNGOztZQUNGLEFBREUsaUJBQVMsRUFDTDtZQUVKLEFBREYsOEJBQWtCLGFBQ3lFO1lBQXRGLHNJQUFTLFlBQVEsS0FBQztZQUFvRSxhQUFrQzs7WUFHakksQUFERSxBQURFLEFBRDZILGlCQUFJLEVBQzdILEVBQ0MsRUFDSDs7OztZQTFId0IsZUFBb0M7WUFBcEMsa0VBQW9DO1lBRzFELGVBQXNCO1lBQWlCLEFBQWpCLEFBQXRCLHlDQUFzQiwyQkFBaUIsd0JBQVk7WUFRM0IsZUFBd0I7WUFBeEIsMENBQXdCO1lBRWpDLGNBQXdEO1lBQXhELDBFQUF3RDtZQUc1QyxjQUFzQjtZQUF0Qix3Q0FBc0I7WUFDL0MsY0FBK0M7WUFBL0Msb0VBQStDO1lBeUZ6QixjQUE4QztZQUE5QyxtRUFBOEM7WUFLbEIsZUFBb0Q7WUFBcEQsMEVBQW9EO1lBQ3hHLGNBQ0Y7WUFERSxtRUFDRjtZQUNzQixlQUF1QjtZQUF2Qix5Q0FBdUI7WUFDM0MsY0FDRjtZQURFLHdFQUNGO1lBR2dELGVBQXdDO1lBQXhDLHFEQUF3QztZQUFDLGNBQWtDO1lBQWxDLGlFQUFrQzs7O2lGRDVGcEgsdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0Usc0JBQXNCOztrRkFJckIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIsIENhc2VGaWVsZCwgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7XG4gIENhc2VGaWVsZFNlcnZpY2UsXG4gIEZpZWxkc1V0aWxzLFxuICBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UsXG4gIEZvcm1WYWxpZGF0b3JzU2VydmljZSxcbiAgT3JkZXJTZXJ2aWNlLFxuICBQcm9maWxlTm90aWZpZXJcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsbGJhY2tFcnJvcnNDb21wb25lbnQsIENhbGxiYWNrRXJyb3JzQ29udGV4dCB9IGZyb20gJy4uLy4uL2Vycm9yJztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vLi4vcGFsZXR0ZSc7XG5pbXBvcnQgeyBDYXNlRWRpdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQtcGFnZS9jYXNlLWVkaXQtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUVkaXRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmQsIFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUVkaXRTdWJtaXRUaXRsZXMgfSBmcm9tICcuL2Nhc2UtZWRpdC1zdWJtaXQtdGl0bGVzLmVudW0nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jYXNlLWZsYWctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWxldHRlL2xpbmtlZC1jYXNlcy9zZXJ2aWNlcy9saW5rZWQtY2FzZXMuc2VydmljZSc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0LXN1Ym1pdCcsXG4gIHRlbXBsYXRlVXJsOiAnY2FzZS1lZGl0LXN1Ym1pdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2Nhc2UtZWRpdC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUVkaXRTdWJtaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyBlZGl0Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgdHJpZ2dlclRleHQ6IHN0cmluZztcbiAgcHVibGljIHdpemFyZDogV2l6YXJkO1xuICBwdWJsaWMgcHJvZmlsZTogUHJvZmlsZTtcbiAgcHVibGljIHNob3dTdW1tYXJ5RmllbGRzOiBDYXNlRmllbGRbXTtcbiAgcHVibGljIHBhbGV0dGVDb250ZXh0OiBQYWxldHRlQ29udGV4dCA9IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY29udGV4dEZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyB0YXNrOiBUYXNrO1xuICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBtZXRhZGF0YUZpZWxkc09iamVjdDogb2JqZWN0O1xuICBwdWJsaWMgYWxsRmllbGRzVmFsdWVzOiBhbnk7XG4gIHB1YmxpYyBzdW1tYXJ5OiBBYnN0cmFjdENvbnRyb2w7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbjogQWJzdHJhY3RDb250cm9sO1xuICBwdWJsaWMgZXZlbnRTdW1tYXJ5TGFiZWw6IHN0cmluZyA9ICdFdmVudCBzdW1tYXJ5JztcbiAgcHVibGljIGV2ZW50RGVzY3JpcHRpb25MYWJlbDogc3RyaW5nID0gJ0V2ZW50IGRlc2NyaXB0aW9uJztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIT1dfU1VNTUFSWV9DT05URU5UX0NPTVBBUkVfRlVOQ1RJT04gPSAoYTogQ2FzZUZpZWxkLCBiOiBDYXNlRmllbGQpOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IGFDYXNlRmllbGQgPSBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbiA9PT0gMCB8fCBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcbiAgICBjb25zdCBiQ2FzZUZpZWxkID0gYi5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gPT09IDAgfHwgYi5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb247XG5cbiAgICBpZiAoIWFDYXNlRmllbGQpIHtcbiAgICAgIHJldHVybiAhYkNhc2VGaWVsZCA/IDAgOiAxO1xuICAgIH1cblxuICAgIGlmICghYkNhc2VGaWVsZCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gYS5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gLSBiLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcbiAgfTtcblxuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gRVVJLTM0NTIuXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGVkaXRGb3JtIGFzIGl0IGlzIHJlYWRvbmx5LlxuICAgIC8vIFRoaXMgd2FzIGNhdXNpbmcgaXNzdWVzIHdpdGggaGlkZGVuIGZpZWxkcyB0aGF0IGFyZW4ndCB3YW50ZWQgYnV0IGhhdmVcbiAgICAvLyBub3QgYmVlbiBkaXNhYmxlZC5cbiAgICByZXR1cm4gdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgfHwgdGhpcy5oYXNFcnJvcnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FzZUVkaXQ6IENhc2VFZGl0Q29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzVXRpbHM6IEZpZWxkc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZpZWxkU2VydmljZTogQ2FzZUZpZWxkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9yZGVyU2VydmljZTogT3JkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2U6IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWxpZGF0b3JzU2VydmljZTogRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnByb2ZpbGUgPSBfKTtcbiAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IHRoaXMuY2FzZUVkaXQuZXZlbnRUcmlnZ2VyO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSB0aGlzLmV2ZW50VHJpZ2dlci5lbmRfYnV0dG9uX2xhYmVsIHx8IENhbGxiYWNrRXJyb3JzQ29tcG9uZW50LlRSSUdHRVJfVEVYVF9TVUJNSVQ7XG4gICAgdGhpcy5lZGl0Rm9ybSA9IHRoaXMuY2FzZUVkaXQuZm9ybTtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMuY2FzZUVkaXQud2l6YXJkO1xuICAgIHRoaXMuc2hvd1N1bW1hcnlGaWVsZHMgPSB0aGlzLnNvcnRGaWVsZHNCeVNob3dTdW1tYXJ5Q29udGVudCh0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRleHRGaWVsZHMgPSB0aGlzLmdldENhc2VGaWVsZHMoKTtcbiAgICB0aGlzLm1ldGFkYXRhRmllbGRzT2JqZWN0ID0gdGhpcy5jYXNlRWRpdD8uY2FzZURldGFpbHM/Lm1ldGFkYXRhRmllbGRzPy5cbiAgICAgIHJlZHVjZSgobywga2V5KSA9PiBPYmplY3QuYXNzaWduKG8sIHsgW2tleS5pZF06IGtleS52YWx1ZSB9KSwge30pO1xuICAgIHRoaXMuYWxsRmllbGRzVmFsdWVzID0gT2JqZWN0LmFzc2lnbih0aGlzLm1ldGFkYXRhRmllbGRzT2JqZWN0ID8gdGhpcy5tZXRhZGF0YUZpZWxkc09iamVjdCA6IHt9LCB0aGlzLmVkaXRGb3JtLmdldFJhd1ZhbHVlKCkuZGF0YSk7XG4gICAgLy8gSW5kaWNhdGVzIGlmIHRoZSBzdWJtaXNzaW9uIGlzIGZvciBhIENhc2UgRmxhZywgYXMgb3Bwb3NlZCB0byBhIFwicmVndWxhclwiIGZvcm0gc3VibWlzc2lvbiwgYnkgdGhlIHByZXNlbmNlIG9mXG4gICAgLy8gYSBGbGFnTGF1bmNoZXIgZmllbGQgaW4gdGhlIGV2ZW50IHRyaWdnZXJcbiAgICB0aGlzLmNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uID1cbiAgICAgIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLnNvbWUoKGNhc2VGaWVsZCkgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgdGhpcy5jYXNlRWRpdC5pc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9XG4gICAgICB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcy5zb21lKGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlRmllbGQsIFsnQ29tcG9uZW50TGF1bmNoZXInXSkpO1xuICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5nZXRQYWdlVGl0bGUoKTtcbiAgICBpZiAoIXRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuaW5pdGlhbENhc2VGbGFncyAmJiB0aGlzLmNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uICYmIE9iamVjdC5rZXlzKHRoaXMuY2FzZUVkaXQuZm9ybS52YWx1ZS5kYXRhKS5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuaW5pdGlhbENhc2VGbGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jYXNlRWRpdC5mb3JtLnZhbHVlKSk7XG4gICAgfVxuICAgIHRoaXMuc3VtbWFyeSA9IHRoaXMuZm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZE1hcmtEb3duVmFsaWRhdG9ycyh0aGlzLmVkaXRGb3JtLCAnZXZlbnQuc3VtbWFyeScpO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLmZvcm1WYWxpZGF0b3JzU2VydmljZS5hZGRNYXJrRG93blZhbGlkYXRvcnModGhpcy5lZGl0Rm9ybSwgJ2V2ZW50LmRlc2NyaXB0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1bW1hcnkudmFsaWQgJiYgdGhpcy5kZXNjcmlwdGlvbi52YWxpZCkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UucmVzZXRMaW5rZWRDYXNlRGF0YSgpO1xuICAgICAgdGhpcy5jaGVja0V4aXN0aW5nRGF0YUluU3VibWlzc2lvbigpO1xuICAgICAgdGhpcy5jYXNlRWRpdC5zdWJtaXRGb3JtKHtcbiAgICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLmNhc2VFZGl0LnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5yZXNldEluaXRpYWxDYXNlRmxhZ3MoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FdmVudENhbkJlQ29tcGxldGVkKGV2ZW50Q2FuQmVDb21wbGV0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lm9uRXZlbnRDYW5CZUNvbXBsZXRlZCh7XG4gICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgZXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLFxuICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHN1Ym1pdDogdGhpcy5jYXNlRWRpdC5zdWJtaXRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0V4aXN0aW5nRGF0YUluU3VibWlzc2lvbigpIHtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbikge1xuICAgICAgdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGREYXRhID0gdGhpcy5lZGl0Rm9ybS52YWx1ZS5kYXRhW2ZpZWxkLmlkXTtcbiAgICAgICAgaWYgKGZpZWxkRGF0YT8uZGV0YWlscykge1xuICAgICAgICAgIGNvbnN0IHByaW9yRmxhZ3MgPSB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmluaXRpYWxDYXNlRmxhZ3MuZGF0YVtmaWVsZC5pZF0uZGV0YWlscztcbiAgICAgICAgICBpZiAocHJpb3JGbGFncykge1xuICAgICAgICAgICAgcHJpb3JGbGFncy5mb3JFYWNoKChmbGFnKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghZmllbGQuX3ZhbHVlLmRldGFpbHMuc29tZSgoZGV0YWlsKSA9PiBkZXRhaWwuaWQgPT09IGZsYWcuaWQpKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuX3ZhbHVlLmRldGFpbHMucHVzaChmbGFnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZmllbGQuX3ZhbHVlKSB7XG4gICAgICAgICAgICAgIGZpZWxkLl92YWx1ZS5kZXRhaWxzID0gZmllbGQuX3ZhbHVlLmRldGFpbHM/LmZpbHRlcigoZGV0YWlsOiB7IGlkPzogc3RyaW5nIH0pID0+IGRldGFpbC5pZCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtYXR0ZWRfdmFsdWU/Lmdyb3VwSWQpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fdmFsdWUuZ3JvdXBJZCA9IGZpZWxkLmZvcm1hdHRlZF92YWx1ZS5ncm91cElkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtYXR0ZWRfdmFsdWU/LnZpc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5fdmFsdWUudmlzaWJpbGl0eSA9IGZpZWxkLmZvcm1hdHRlZF92YWx1ZT8udmlzaWJpbGl0eTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoZmllbGQuZm9ybWF0dGVkX3ZhbHVlPy5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuZm9ybWF0dGVkX3ZhbHVlLmRldGFpbHMgPSBmaWVsZC5fdmFsdWU/LmRldGFpbHM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZmllbGREYXRhLmRldGFpbHMgPSBmaWVsZERhdGEuZGV0YWlscy5maWx0ZXIoKGRldGFpbDogeyBpZD86IHN0cmluZyB9KSA9PiBkZXRhaWwuaWQgIT09IG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWdlVGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjYXNlRmxhZ0ZpZWxkID0gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuZmluZChjYXNlRmllbGQgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgaWYgKGNhc2VGbGFnRmllbGQpIHtcbiAgICAgIGNvbnN0IGlzQ2FzZUZsYWdFeHRlcm5hbE1vZGUgPSBjYXNlRmxhZ0ZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09ICcjQVJHVU1FTlQoVVBEQVRFLEVYVEVSTkFMKScgfHxcbiAgICAgICAgY2FzZUZsYWdGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSAnI0FSR1VNRU5UKENSRUFURSxFWFRFUk5BTCknO1xuICAgICAgcmV0dXJuIGlzQ2FzZUZsYWdFeHRlcm5hbE1vZGVcbiAgICAgICAgPyBDYXNlRWRpdFN1Ym1pdFRpdGxlcy5SRVZJRVdfU1VQUE9SVF9SRVFVRVNUXG4gICAgICAgIDogQ2FzZUVkaXRTdWJtaXRUaXRsZXMuUkVWSUVXX0ZMQUdfREVUQUlMUztcbiAgICB9XG4gICAgcmV0dXJuIENhc2VFZGl0U3VibWl0VGl0bGVzLkNIRUNLX1lPVVJfQU5TV0VSUztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRWRpdD8uZXJyb3I/LmNhbGxiYWNrRXJyb3JzPy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lm5hdmlnYXRlVG9QYWdlKHBhZ2VJZCk7XG4gIH1cblxuICBwdWJsaWMgY2FsbGJhY2tFcnJvcnNOb3RpZnkoZXJyb3JDb250ZXh0OiBDYWxsYmFja0Vycm9yc0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lmlnbm9yZVdhcm5pbmcgPSBlcnJvckNvbnRleHQuaWdub3JlV2FybmluZztcbiAgICB0aGlzLnRyaWdnZXJUZXh0ID0gZXJyb3JDb250ZXh0LnRyaWdnZXJUZXh0O1xuICB9XG5cbiAgcHVibGljIHN1bW1hcnlDYXNlRmllbGQoZmllbGQ6IENhc2VGaWVsZCk6IENhc2VGaWVsZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAobnVsbCA9PT0gdGhpcy5lZGl0Rm9ybS5nZXQoJ2RhdGEnKS5nZXQoZmllbGQuaWQpKSB7XG4gICAgICAvLyBJZiBub3QgaW4gZm9ybSwgcmV0dXJuIGZpZWxkIGl0c2VsZlxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lRmllbGQ6IENhc2VGaWVsZCA9IHRoaXMuZmllbGRzVXRpbHMuY2xvbmVDYXNlRmllbGQoZmllbGQpO1xuICAgIGNsb25lRmllbGQudmFsdWUgPSB0aGlzLmVkaXRGb3JtLmdldCgnZGF0YScpLmdldChmaWVsZC5pZCkudmFsdWU7XG5cbiAgICByZXR1cm4gY2xvbmVGaWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuaXNMaW5rZWRDYXNlc1N1Ym1pc3Npb24pIHtcbiAgICAgIHRoaXMuaGFuZGxlTGlua2VkQ2FzZXNTdWJtaXNzaW9uKCk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UucmVzZXRJbml0aWFsQ2FzZUZsYWdzKCk7XG4gICAgdGhpcy5lbWl0Q2FuY2VsRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlua2VkQ2FzZXNTdWJtaXNzaW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmtlZENhc2VzVGFiID0gdGhpcy5nZXRMaW5rZWRDYXNlc1RhYigpO1xuICAgIGNvbnN0IGluaXRpYWxMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua1JlZnM7XG5cbiAgICBpZiAobGlua2VkQ2FzZXNUYWIgJiYgbGlua2VkQ2FzZXNUYWIudmFsdWUubGVuZ3RoICE9PSBpbml0aWFsTGlua3MubGVuZ3RoKSB7XG4gICAgICBsaW5rZWRDYXNlc1RhYi52YWx1ZSA9IGxpbmtlZENhc2VzVGFiLnZhbHVlLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgaW5pdGlhbExpbmtzLmluY2x1ZGVzKGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnJlc2V0TGlua2VkQ2FzZURhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGlua2VkQ2FzZXNUYWIoKTogQ2FzZUZpZWxkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMudGFicy5maW5kKCh0YWIpID0+XG4gICAgICB0YWI/LmZpZWxkcz8uc29tZSgoZmllbGQpID0+IGZpZWxkLmlkID09PSAnY2FzZUxpbmtzJylcbiAgICApPy5maWVsZHM/LlswXSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q2FuY2VsRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLmNhbl9zYXZlX2RyYWZ0KSB7XG4gICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KENhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTSk7XG4gICAgICBjb25zdCBzdGF0dXMgPSBvcmlnaW4gPT09ICd2aWV3RHJhZnQnID8gQ2FzZUVkaXRQYWdlQ29tcG9uZW50LlJFU1VNRURfRk9STV9ESVNDQVJEIDogQ2FzZUVkaXRQYWdlQ29tcG9uZW50Lk5FV19GT1JNX0RJU0NBUkQ7XG4gICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KHsgc3RhdHVzIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzTGFiZWwoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZFNlcnZpY2UuaXNMYWJlbChmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgaXNDaGFuZ2VBbGxvd2VkKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2FzZUZpZWxkU2VydmljZS5pc1JlYWRPbmx5KGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1lvdXJBbnN3ZXJGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5IHx8IHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfc3VtbWFyeSA9PT0gbnVsbCkge1xuICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHRoaXMud2l6YXJkLnBhZ2VzKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChwYWdlLmNhc2VfZmllbGRzICYmIHRoaXMuaXNTaG93bihwYWdlKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcGFnZS5jYXNlX2ZpZWxkcykge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmNhblNob3dGaWVsZEluQ1lBKGZpZWxkKSkge1xuICAgICAgICAgICAgICAvLyBhdCBsZWFzdCBvbmUgZmllbGQgbmVlZHMgc2hvd2luZ1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZm91bmQgbm8gZmllbGRzIHRvIHNob3cgaW4gQ1lBIHN1bW1hcnkgcGFnZVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkT25seVN1bW1hcnlGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLnNvbWUoKGZpZWxkKSA9PiBmaWVsZC5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gPj0gMCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0V2ZW50Tm90ZXMoKTogYm9vbGVhbiB7XG4gICAgLy8gRGlzcGxheSBldmVudCBub3RlcyByZWxhdGVkIGNvbnRyb2xzIG9ubHkgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXRcbiAgICAvLyAxLiBzaG93X2V2ZW50X25vdGVzIGZsYWcgaXMgc2V0IHRvIHRydWVcbiAgICAvLyAyLiBwcm9maWxlIGlzIG5vdCBhIHNvbGljaXRvclxuICAgIC8vIDMuIGlzIG5vdCBhIGNhc2UgZmxhZ3Mgam91cm5leSwgYXMgaXQgdXNlcyBhIGN1c3RvbSBjaGVjayB5b3VyIGFuc3dlcnMgY29tcG9uZW50XG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHJldHVybiAhdGhpcy5wcm9maWxlPy5pc1NvbGljaXRvcigpXG4gICAgICAgICYmICF0aGlzLmNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldExhc3RQYWdlU2hvd24oKTogV2l6YXJkUGFnZSB7XG4gICAgbGV0IGxhc3RQYWdlOiBXaXphcmRQYWdlO1xuICAgIHRoaXMud2l6YXJkLnJldmVyc2UoKS5mb3JFYWNoKChwYWdlKSA9PiB7XG4gICAgICBpZiAoIWxhc3RQYWdlICYmIHRoaXMuaXNTaG93bihwYWdlKSkge1xuICAgICAgICBsYXN0UGFnZSA9IHBhZ2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkQXNzaWdubWVudFxuICAgIHJldHVybiBsYXN0UGFnZTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbikge1xuICAgICAgLy8gaWYgd2UgYXJlIGluIHRoZSBjYXNlZmxhZyBqb3VybmV5IHdlIG5lZWQgdG8gc3RvcmUgdGhlIGxhc3QgcGFnZSBpbmRleCBzbyB0aGF0IHRoZSBwcmV2aW91cyBidXR0b24gb24gQ1lBIHdpbGwgdGFrZSB0byBjb3JyZWN0IHBhZ2VcbiAgICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZmllbGRTdGF0ZVRvTmF2aWdhdGUgPSB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmxhc3RQYWdlRmllbGRTdGF0ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuaXNMaW5rZWRDYXNlc1N1Ym1pc3Npb24pIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhbWVGcm9tRmluYWxTdGVwID0gdHJ1ZTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5oYXNQcmV2aW91cygpKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9QYWdlKHRoaXMuZ2V0TGFzdFBhZ2VTaG93bigpLmlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzUHJldmlvdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRMYXN0UGFnZVNob3duKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTaG93bihwYWdlOiBXaXphcmRQYWdlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5maWVsZHNVdGlsc1xuICAgICAgLm1lcmdlQ2FzZUZpZWxkc0FuZEZvcm1GaWVsZHModGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIHRoaXMuZWRpdEZvcm0uY29udHJvbHMuZGF0YS52YWx1ZSk7XG4gICAgcmV0dXJuIHBhZ2UucGFyc2VkU2hvd0NvbmRpdGlvbi5tYXRjaChmaWVsZHMpO1xuICB9XG5cbiAgcHVibGljIGNhblNob3dGaWVsZEluQ1lBKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmllbGQuc2hvd19zdW1tYXJ5X2NoYW5nZV9vcHRpb247XG4gIH1cblxuICBwcml2YXRlIHNvcnRGaWVsZHNCeVNob3dTdW1tYXJ5Q29udGVudChmaWVsZHM6IENhc2VGaWVsZFtdKTogQ2FzZUZpZWxkW10ge1xuICAgIHJldHVybiB0aGlzLm9yZGVyU2VydmljZVxuICAgICAgLnNvcnQoZmllbGRzLCBDYXNlRWRpdFN1Ym1pdENvbXBvbmVudC5TSE9XX1NVTU1BUllfQ09OVEVOVF9DT01QQVJFX0ZVTkNUSU9OKVxuICAgICAgLmZpbHRlcigoY2YpID0+IGNmLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldENhc2VGaWVsZHMoKTogQ2FzZUZpZWxkW10ge1xuICAgIGlmICh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKSB7XG4gICAgICByZXR1cm4gRmllbGRzVXRpbHMuZ2V0Q2FzZUZpZWxkcyh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuZ2V0Q2FzZUlkKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyAmJiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlICYmXG4gICAgICB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgPyB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgOiAnJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FuY2VsVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmV2ZW50VHJpZ2dlci5jYW5fc2F2ZV9kcmFmdCkge1xuICAgICAgcmV0dXJuICdSZXR1cm4gdG8gY2FzZSBsaXN0JztcbiAgICB9XG4gICAgcmV0dXJuICdDYW5jZWwnO1xuICB9XG59XG5cbiIsIjxkaXY+XG4gIDwhLS0gRXZlbnQgdHJpZ2dlciBuYW1lIC0tPlxuICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj57e2V2ZW50VHJpZ2dlci5uYW1lIHwgcnB4VHJhbnNsYXRlfX08L2gxPlxuXG4gIDwhLS1DYXNlIElEIG9yIFRpdGxlIC0tPlxuICA8ZGl2ICpuZ0lmPVwiZ2V0Q2FzZVRpdGxlKCk7IHRoZW4gdGl0bGVCbG9jazsgZWxzZSBpZEJsb2NrXCI+PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjdGl0bGVCbG9jaz5cbiAgICA8Y2NkLW1hcmtkb3duIFtjb250ZW50XT1cImdldENhc2VUaXRsZSgpIHwgY2NkQ2FzZVRpdGxlOiBjb250ZXh0RmllbGRzIDogZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiPjwvY2NkLW1hcmtkb3duPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2lkQmxvY2s+XG4gICAgPGgyICpuZ0lmPVwiZ2V0Q2FzZUlkKClcIiBjbGFzcz1cImhlYWRpbmctaDJcIj4je3sgZ2V0Q2FzZUlkKCkgfCBjY2RDYXNlUmVmZXJlbmNlIH19PC9oMj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8Y2NkLWNhc2UtZWRpdC1nZW5lcmljLWVycm9ycyBbZXJyb3JdPVwiY2FzZUVkaXQuZXJyb3JcIj48L2NjZC1jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnM+XG5cbiAgPGNjZC1jYWxsYmFjay1lcnJvcnMgW2NhbGxiYWNrRXJyb3JzU3ViamVjdF09XCJjYXNlRWRpdC5jYWxsYmFja0Vycm9yc1N1YmplY3RcIlxuICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFja0Vycm9yc0NvbnRleHQpPVwiY2FsbGJhY2tFcnJvcnNOb3RpZnkoJGV2ZW50KVwiPjwvY2NkLWNhbGxiYWNrLWVycm9ycz5cblxuICA8Zm9ybSBjbGFzcz1cImNoZWNrLXlvdXItYW5zd2Vyc1wiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm1cIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFjYXNlRWRpdC5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tZb3VyQW5zd2VyRmllbGRzVG9EaXNwbGF5RXhpc3RzKClcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiPnt7cGFnZVRpdGxlIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIj57eydDaGVjayB0aGUgaW5mb3JtYXRpb24gYmVsb3cgY2FyZWZ1bGx5LicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cblxuICAgICAgICA8dGFibGUgY2xhc3M9XCJmb3JtLXRhYmxlXCIgYXJpYS1kZXNjcmliZWRieT1cImNoZWNrIHlvdXIgYW5zd2VycyB0YWJsZVwiPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYWdlIG9mIHdpemFyZC5wYWdlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd24ocGFnZSlcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgcGFnZVxuICAgICAgICAgICAgICB8IGNjZFBhZ2VGaWVsZHM6IGVkaXRGb3JtXG4gICAgICAgICAgICAgIHwgY2NkUmVhZEZpZWxkc0ZpbHRlcjogZmFsc2UgOnVuZGVmaW5lZCA6dHJ1ZSA6YWxsRmllbGRzVmFsdWVzXG4gICAgICAgICAgICAgIHwgY2NkQ1lBUGFnZUxhYmVsRmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhblNob3dGaWVsZEluQ1lBKGZpZWxkKVwiPlxuICAgICAgICAgICAgICAgICAgPHRyIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY29udGV4dEZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cIiFpc0xhYmVsKGZpZWxkKSAmJiAhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIiBjbGFzcz1cInZhbGlnbi10b3AgY2FzZS1maWVsZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiPnt7ZmllbGQubGFiZWwgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9ybS1jZWxsIGNhc2UtZmllbGQtY29udGVudCB0ZXh0LTE2XCIgW2F0dHIuY29sc3Bhbl09XCJpc0xhYmVsKGZpZWxkKSA/ICcyJyA6ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW3RvcExldmVsRm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJzdW1tYXJ5Q2FzZUZpZWxkKGZpZWxkKVwiIFtjb250ZXh0XT1cInBhbGV0dGVDb250ZXh0XCIgW2Nhc2VGaWVsZHNdPVwiY29udGV4dEZpZWxkc1wiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWxpZ24tdG9wIGNoZWNrLXlvdXItYW5zd2Vyc19fY2hhbmdlIGNhc2UtZmllbGQtY2hhbmdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImlzQ2hhbmdlQWxsb3dlZChmaWVsZClcIiAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiIGF0dHIuYXJpYS1sYWJlbD1cInt7J0NoYW5nZScgfCBycHhUcmFuc2xhdGV9fSB7eyBmaWVsZC5sYWJlbCB8IHJweFRyYW5zbGF0ZSB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0NoYW5nZScgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkT25seVN1bW1hcnlGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKVwiPlxuXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInN1bW1hcnktZmllbGRzXCIgYXJpYS1kZXNjcmliZWRieT1cInN1bW1hcnkgZmllbGRzIHRhYmxlXCI+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2Ygc2hvd1N1bW1hcnlGaWVsZHNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCIhKGZpZWxkIHwgY2NkSXNDb21wb3VuZClcIj5cbiAgICAgICAgICAgICAgICAgIDx0ciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjb250ZXh0RmllbGRzXT1cImNvbnRleHRGaWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoIGlkPVwic3VtbWFyeS1maWVsZC1sYWJlbFwiPnt7ZmllbGQubGFiZWx9fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvcm0tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY2FzZUZpZWxkXT1cInN1bW1hcnlDYXNlRmllbGQoZmllbGQpXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICA8dHIgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJjb21wb3VuZC1maWVsZFwiIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjb250ZXh0RmllbGRzXT1cImNvbnRleHRGaWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjYXNlRmllbGRdPVwic3VtbWFyeUNhc2VGaWVsZChmaWVsZClcIiBbY2FzZUZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RXZlbnROb3RlcygpXCI+XG4gICAgICAgIDxmaWVsZHNldCBpZD1cImZpZWxkc2V0LWV2ZW50XCIgZm9ybUdyb3VwTmFtZT1cImV2ZW50XCI+XG4gICAgICAgICAgPGxlZ2VuZCBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiAhIXN1bW1hcnkgJiYgIXN1bW1hcnkudmFsaWQgJiYgKHN1bW1hcnkuZGlydHkgfHwgc3VtbWFyeS50b3VjaGVkKX1cIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWVsZC10cmlnZ2VyLXN1bW1hcnlcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgRXZlbnQgc3VtbWFyeSAob3B0aW9uYWwpXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCI+QSBmZXcgd29yZHMgZGVzY3JpYmluZyB0aGUgcHVycG9zZSBvZiB0aGUgZXZlbnQuPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwic3VtbWFyeT8uZXJyb3JzICYmIChzdW1tYXJ5LmRpcnR5IHx8IHN1bW1hcnkudG91Y2hlZClcIj5cbiAgICAgICAgICAgICAge3tzdW1tYXJ5LmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6IGV2ZW50U3VtbWFyeUxhYmVsIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwiZmllbGQtdHJpZ2dlci1zdW1tYXJ5XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwIHdpZHRoLTUwXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBzdW1tYXJ5Py5lcnJvcnMgJiYgKHN1bW1hcnkuZGlydHkgfHwgc3VtbWFyeS50b3VjaGVkKX1cIiBmb3JtQ29udHJvbE5hbWU9XCJzdW1tYXJ5XCIgbWF4bGVuZ3RoPVwiMTAyNFwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogISFkZXNjcmlwdGlvbiAmJiAhZGVzY3JpcHRpb24udmFsaWQgJiYgKGRlc2NyaXB0aW9uLmRpcnR5IHx8IGRlc2NyaXB0aW9uLnRvdWNoZWQpfVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpZWxkLXRyaWdnZXItZGVzY3JpcHRpb25cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FdmVudCBkZXNjcmlwdGlvbiAob3B0aW9uYWwpPC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZGVzY3JpcHRpb24/LmVycm9ycyAmJiAoZGVzY3JpcHRpb24uZGlydHkgfHwgZGVzY3JpcHRpb24udG91Y2hlZClcIj5cbiAgICAgICAgICAgICAge3tkZXNjcmlwdGlvbi5lcnJvcnMgfCBjY2RGaXJzdEVycm9yOiBldmVudERlc2NyaXB0aW9uTGFiZWwgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHRleHRhcmVhIGlkPVwiZmllbGQtdHJpZ2dlci1kZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGJvdHRvbS0zMCB3aWR0aC01MFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBkZXNjcmlwdGlvbj8uZXJyb3JzICYmIChkZXNjcmlwdGlvbi5kaXJ0eSB8fCBkZXNjcmlwdGlvbi50b3VjaGVkKX1cIiBtYXhsZW5ndGg9XCI2NTUzNlwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8Y2NkLWNhc2UtZXZlbnQtY29tcGxldGlvbiAqbmdJZj1cImNhc2VFZGl0LmlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWRcIlxuICAgICAgW2V2ZW50Q29tcGxldGlvblBhcmFtc109XCJjYXNlRWRpdC5ldmVudENvbXBsZXRpb25QYXJhbXNcIlxuICAgICAgKGV2ZW50Q2FuQmVDb21wbGV0ZWQpPVwib25FdmVudENhbkJlQ29tcGxldGVkKCRldmVudClcIj5cbiAgICA8L2NjZC1jYXNlLWV2ZW50LWNvbXBsZXRpb24+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1yZWxhdGVkXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIiFoYXNQcmV2aW91cygpIHx8IGNhc2VFZGl0LmlzU3VibWl0dGluZ1wiIChjbGljayk9XCJwcmV2aW91cygpXCI+XG4gICAgICAgIHt7J1ByZXZpb3VzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgY2xhc3M9XCJidXR0b25cIj5cbiAgICAgICAge3t0cmlnZ2VyVGV4dCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cImNhbmNlbFwiPlxuICAgICAgPGEgKGNsaWNrKT1cImNhbmNlbCgpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjYXNlRWRpdC5pc1N1Ym1pdHRpbmdcIj57e2dldENhbmNlbFRleHQoKSB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgIDwvcD5cbiAgPC9mb3JtPlxuPC9kaXY+XG5cbiJdfQ==
@@ -28,7 +28,7 @@ function CaseTimelineComponent_div_0_ng_container_3_Template(rf, ctx) { if (rf &
28
28
  const _r3 = i0.ɵɵgetCurrentView();
29
29
  i0.ɵɵelementContainerStart(0);
30
30
  i0.ɵɵelementStart(1, "div", 5)(2, "ol", 6)(3, "li", 7)(4, "a", 8);
31
- i0.ɵɵlistener("click", function CaseTimelineComponent_div_0_ng_container_3_Template_a_click_4_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.goToCaseTimeline(); return i0.ɵɵresetView($event.preventDefault()); });
31
+ i0.ɵɵlistener("click", function CaseTimelineComponent_div_0_ng_container_3_Template_a_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.goToCaseTimeline()); });
32
32
  i0.ɵɵtext(5);
33
33
  i0.ɵɵpipe(6, "rpxTranslate");
34
34
  i0.ɵɵelementEnd()()()();
@@ -99,7 +99,7 @@ export class CaseTimelineComponent {
99
99
  this.displayMode = CaseTimelineDisplayMode.TIMELINE;
100
100
  }
101
101
  static ɵfac = function CaseTimelineComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseTimelineComponent)(i0.ɵɵdirectiveInject(i1.CaseNotifier), i0.ɵɵdirectiveInject(i1.CasesService), i0.ɵɵdirectiveInject(i2.AlertService)); };
102
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseTimelineComponent, selectors: [["ccd-case-timeline"]], inputs: { case: "case" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], [3, "events", "onCaseHistory", 4, "ngIf"], [3, "onCaseHistory", "events"], [1, "govuk-breadcrumbs"], [1, "govuk-breadcrumbs__list"], [1, "govuk-breadcrumbs__list-item"], ["href", "#", 1, "govuk-back-link", 3, "click"], [3, "event"]], template: function CaseTimelineComponent_Template(rf, ctx) { if (rf & 1) {
102
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseTimelineComponent, selectors: [["ccd-case-timeline"]], inputs: { case: "case" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], [3, "events", "onCaseHistory", 4, "ngIf"], [3, "onCaseHistory", "events"], [1, "govuk-breadcrumbs"], [1, "govuk-breadcrumbs__list"], [1, "govuk-breadcrumbs__list-item"], ["href", "javascript:void(0)", 1, "govuk-back-link", 3, "click"], [3, "event"]], template: function CaseTimelineComponent_Template(rf, ctx) { if (rf & 1) {
103
103
  i0.ɵɵtemplate(0, CaseTimelineComponent_div_0_Template, 4, 3, "div", 0);
104
104
  } if (rf & 2) {
105
105
  i0.ɵɵproperty("ngIf", ctx.isDataLoaded());
@@ -107,9 +107,9 @@ export class CaseTimelineComponent {
107
107
  }
108
108
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseTimelineComponent, [{
109
109
  type: Component,
110
- args: [{ selector: 'ccd-case-timeline', template: "<div *ngIf=\"isDataLoaded()\">\n <ng-container [ngSwitch]=\"displayMode\">\n <ng-container *ngSwitchCase=\"dspMode.TIMELINE\">\n <ccd-event-log [events]=\"events\" (onCaseHistory)=\"caseHistoryClicked($event)\" *ngIf=\"displayMode === dspMode.TIMELINE\">\n </ccd-event-log>\n </ng-container>\n <ng-container *ngSwitchCase=\"dspMode.DETAILS\">\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"#\" (click)=\"goToCaseTimeline(); $event.preventDefault()\" class=\"govuk-back-link\">\n {{'Back to case timeline' | rpxTranslate}}\n </a>\n </li>\n </ol>\n </div>\n <ccd-case-history [event]=\"selectedEventId\"></ccd-case-history>\n </ng-container>\n </ng-container>\n</div>\n" }]
110
+ args: [{ selector: 'ccd-case-timeline', template: "<div *ngIf=\"isDataLoaded()\">\n <ng-container [ngSwitch]=\"displayMode\">\n <ng-container *ngSwitchCase=\"dspMode.TIMELINE\">\n <ccd-event-log [events]=\"events\" (onCaseHistory)=\"caseHistoryClicked($event)\" *ngIf=\"displayMode === dspMode.TIMELINE\">\n </ccd-event-log>\n </ng-container>\n <ng-container *ngSwitchCase=\"dspMode.DETAILS\">\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTimeline()\" class=\"govuk-back-link\">\n {{'Back to case timeline' | rpxTranslate}}\n </a>\n </li>\n </ol>\n </div>\n <ccd-case-history [event]=\"selectedEventId\"></ccd-case-history>\n </ng-container>\n </ng-container>\n</div>\n" }]
111
111
  }], () => [{ type: i1.CaseNotifier }, { type: i1.CasesService }, { type: i2.AlertService }], { case: [{
112
112
  type: Input
113
113
  }] }); })();
114
114
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseTimelineComponent, { className: "CaseTimelineComponent", filePath: "lib/shared/components/case-timeline/case-timeline.component.ts", lineNumber: 17 }); })();
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS10aW1lbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS10aW1lbGluZS9jYXNlLXRpbWVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXRpbWVsaW5lL2Nhc2UtdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztJQ0hoRCx3Q0FBdUg7SUFBdEYsOE9BQWlCLGlDQUEwQixLQUFDO0lBQzdFLGlCQUFnQjs7O0lBREQsc0NBQWlCOzs7SUFEcEMsNkJBQStDO0lBQzNDLCtHQUF1SDs7OztJQUF4QyxjQUFzQztJQUF0QyxxRUFBc0M7Ozs7SUFHekgsNkJBQThDO0lBSTlCLEFBREosQUFESixBQURKLDhCQUErQixZQUNTLFlBQ1MsV0FDcUQ7SUFBOUUsNEtBQVMseUJBQWtCLHdCQUFFLHVCQUF1QixLQUFDO0lBQy9ELFlBQ0Y7O0lBR1osQUFESSxBQURJLEFBREksaUJBQUksRUFDSCxFQUNKLEVBQ0g7SUFDTixzQ0FBK0Q7Ozs7SUFMakQsZUFDRjtJQURFLDhFQUNGO0lBSU0sZUFBeUI7SUFBekIsOENBQXlCOzs7SUFoQnZELDJCQUE0QjtJQUN4QixnQ0FBdUM7SUFLbkMsQUFKQSw4RkFBK0MsaUZBSUQ7O0lBYXRELGlCQUFNOzs7SUFsQlksY0FBd0I7SUFBeEIsNkNBQXdCO0lBQ25CLGNBQThCO0lBQTlCLHNEQUE4QjtJQUk5QixjQUE2QjtJQUE3QixxREFBNkI7O0FERXBELE1BQU0sQ0FBTixJQUFZLHVCQUdYO0FBSEQsV0FBWSx1QkFBdUI7SUFDakMsNkVBQVEsQ0FBQTtJQUNSLDJFQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUdsQztBQUtELE1BQU0sT0FBTyxxQkFBcUI7SUFXYjtJQUNBO0lBQ0E7SUFWWixJQUFJLENBQVM7SUFFYixNQUFNLENBQWtCO0lBQ3hCLGVBQWUsQ0FBUztJQUN4QixPQUFPLEdBQUcsdUJBQXVCLENBQUM7SUFDbEMsV0FBVyxHQUE0Qix1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFFL0UsWUFDbUIsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsWUFBMEI7UUFGMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDMUMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWTthQUNkLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3hCLElBQUksQ0FDSCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUU7YUFDWCxLQUFLLENBQUMsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDO1FBQ25ELElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDdEQsQ0FBQzsrR0EzQ1UscUJBQXFCOzZEQUFyQixxQkFBcUI7WUNoQmxDLHNFQUE0Qjs7WUFBdEIseUNBQW9COzs7aUZEZ0JiLHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNFLG1CQUFtQjttR0FNdEIsSUFBSTtrQkFEVixLQUFLOztrRkFGSyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhc2VWaWV3RXZlbnQgfSBmcm9tICcuLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2Utdmlldy1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBIdHRwRXJyb3IgfSBmcm9tICcuLi8uLi9kb21haW4vaHR0cC9odHRwLWVycm9yLm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyLCBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi9jYXNlLWVkaXRvcic7XG5cbmV4cG9ydCBlbnVtIENhc2VUaW1lbGluZURpc3BsYXlNb2RlIHtcbiAgVElNRUxJTkUsXG4gIERFVEFJTFNcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLXRpbWVsaW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtdGltZWxpbmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VUaW1lbGluZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2U6IHN0cmluZztcblxuICBwdWJsaWMgZXZlbnRzOiBDYXNlVmlld0V2ZW50W107XG4gIHB1YmxpYyBzZWxlY3RlZEV2ZW50SWQ6IHN0cmluZztcbiAgcHVibGljIGRzcE1vZGUgPSBDYXNlVGltZWxpbmVEaXNwbGF5TW9kZTtcbiAgcHVibGljIGRpc3BsYXlNb2RlOiBDYXNlVGltZWxpbmVEaXNwbGF5TW9kZSA9IENhc2VUaW1lbGluZURpc3BsYXlNb2RlLlRJTUVMSU5FO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FzZXNTZXJ2aWNlXG4gICAgICAuZ2V0Q2FzZVZpZXdWMih0aGlzLmNhc2UpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGNhc2VWaWV3ID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50cyA9IGNhc2VWaWV3LmV2ZW50cztcbiAgICAgICAgICB0aGlzLmNhc2VOb3RpZmllci5hbm5vdW5jZUNhc2UoY2FzZVZpZXcpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAuY2F0Y2goKGVycm9yOiBIdHRwRXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoeyBwaHJhc2U6IGVycm9yLm1lc3NhZ2UgfSk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzRGF0YUxvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudHMgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgY2FzZUhpc3RvcnlDbGlja2VkKGV2ZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPSBDYXNlVGltZWxpbmVEaXNwbGF5TW9kZS5ERVRBSUxTO1xuICAgIHRoaXMuc2VsZWN0ZWRFdmVudElkID0gZXZlbnRJZDtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvQ2FzZVRpbWVsaW5lKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPSBDYXNlVGltZWxpbmVEaXNwbGF5TW9kZS5USU1FTElORTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzRGF0YUxvYWRlZCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGlzcGxheU1vZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHNwTW9kZS5USU1FTElORVwiPlxuICAgICAgICAgICAgPGNjZC1ldmVudC1sb2cgW2V2ZW50c109XCJldmVudHNcIiAob25DYXNlSGlzdG9yeSk9XCJjYXNlSGlzdG9yeUNsaWNrZWQoJGV2ZW50KVwiICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09IGRzcE1vZGUuVElNRUxJTkVcIj5cbiAgICAgICAgICAgIDwvY2NkLWV2ZW50LWxvZz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRzcE1vZGUuREVUQUlMU1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzXCI+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiAoY2xpY2spPVwiZ29Ub0Nhc2VUaW1lbGluZSgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIGNsYXNzPVwiZ292dWstYmFjay1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0JhY2sgdG8gY2FzZSB0aW1lbGluZScgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxjY2QtY2FzZS1oaXN0b3J5IFtldmVudF09XCJzZWxlY3RlZEV2ZW50SWRcIj48L2NjZC1jYXNlLWhpc3Rvcnk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS10aW1lbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS10aW1lbGluZS9jYXNlLXRpbWVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXRpbWVsaW5lL2Nhc2UtdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztJQ0hoRCx3Q0FBdUg7SUFBdEYsOE9BQWlCLGlDQUEwQixLQUFDO0lBQzdFLGlCQUFnQjs7O0lBREQsc0NBQWlCOzs7SUFEcEMsNkJBQStDO0lBQzNDLCtHQUF1SDs7OztJQUF4QyxjQUFzQztJQUF0QyxxRUFBc0M7Ozs7SUFHekgsNkJBQThDO0lBSTlCLEFBREosQUFESixBQURKLDhCQUErQixZQUNTLFlBQ1MsV0FDNkM7SUFBckQsNExBQVMseUJBQWtCLEtBQUM7SUFDdkQsWUFDRjs7SUFHWixBQURJLEFBREksQUFESSxpQkFBSSxFQUNILEVBQ0osRUFDSDtJQUNOLHNDQUErRDs7OztJQUxqRCxlQUNGO0lBREUsOEVBQ0Y7SUFJTSxlQUF5QjtJQUF6Qiw4Q0FBeUI7OztJQWhCdkQsMkJBQTRCO0lBQ3hCLGdDQUF1QztJQUtuQyxBQUpBLDhGQUErQyxpRkFJRDs7SUFhdEQsaUJBQU07OztJQWxCWSxjQUF3QjtJQUF4Qiw2Q0FBd0I7SUFDbkIsY0FBOEI7SUFBOUIsc0RBQThCO0lBSTlCLGNBQTZCO0lBQTdCLHFEQUE2Qjs7QURFcEQsTUFBTSxDQUFOLElBQVksdUJBR1g7QUFIRCxXQUFZLHVCQUF1QjtJQUNqQyw2RUFBUSxDQUFBO0lBQ1IsMkVBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBR2xDO0FBS0QsTUFBTSxPQUFPLHFCQUFxQjtJQVdiO0lBQ0E7SUFDQTtJQVZaLElBQUksQ0FBUztJQUViLE1BQU0sQ0FBa0I7SUFDeEIsZUFBZSxDQUFTO0lBQ3hCLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztJQUNsQyxXQUFXLEdBQTRCLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztJQUUvRSxZQUNtQixZQUEwQixFQUMxQixZQUEwQixFQUMxQixZQUEwQjtRQUYxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUMxQyxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxZQUFZO2FBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDeEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRTthQUNYLEtBQUssQ0FBQyxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNuRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE9BQWU7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztJQUN0RCxDQUFDOytHQTNDVSxxQkFBcUI7NkRBQXJCLHFCQUFxQjtZQ2hCbEMsc0VBQTRCOztZQUF0Qix5Q0FBb0I7OztpRkRnQmIscUJBQXFCO2NBSmpDLFNBQVM7MkJBQ0UsbUJBQW1CO21HQU10QixJQUFJO2tCQURWLEtBQUs7O2tGQUZLLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FzZVZpZXdFdmVudCB9IGZyb20gJy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcvY2FzZS12aWV3LWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJy4uLy4uL2RvbWFpbi9odHRwL2h0dHAtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIENhc2VzU2VydmljZSB9IGZyb20gJy4uL2Nhc2UtZWRpdG9yJztcblxuZXhwb3J0IGVudW0gQ2FzZVRpbWVsaW5lRGlzcGxheU1vZGUge1xuICBUSU1FTElORSxcbiAgREVUQUlMU1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtdGltZWxpbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS10aW1lbGluZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVRpbWVsaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBldmVudHM6IENhc2VWaWV3RXZlbnRbXTtcbiAgcHVibGljIHNlbGVjdGVkRXZlbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgZHNwTW9kZSA9IENhc2VUaW1lbGluZURpc3BsYXlNb2RlO1xuICBwdWJsaWMgZGlzcGxheU1vZGU6IENhc2VUaW1lbGluZURpc3BsYXlNb2RlID0gQ2FzZVRpbWVsaW5lRGlzcGxheU1vZGUuVElNRUxJTkU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYXNlc1NlcnZpY2VcbiAgICAgIC5nZXRDYXNlVmlld1YyKHRoaXMuY2FzZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoY2FzZVZpZXcgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnRzID0gY2FzZVZpZXcuZXZlbnRzO1xuICAgICAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmFubm91bmNlQ2FzZShjYXNlVmlldyk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKClcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEh0dHBFcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih7IHBocmFzZTogZXJyb3IubWVzc2FnZSB9KTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50cyA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjYXNlSGlzdG9yeUNsaWNrZWQoZXZlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9IENhc2VUaW1lbGluZURpc3BsYXlNb2RlLkRFVEFJTFM7XG4gICAgdGhpcy5zZWxlY3RlZEV2ZW50SWQgPSBldmVudElkO1xuICB9XG5cbiAgcHVibGljIGdvVG9DYXNlVGltZWxpbmUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9IENhc2VUaW1lbGluZURpc3BsYXlNb2RlLlRJTUVMSU5FO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNEYXRhTG9hZGVkKClcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkaXNwbGF5TW9kZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkc3BNb2RlLlRJTUVMSU5FXCI+XG4gICAgICAgICAgICA8Y2NkLWV2ZW50LWxvZyBbZXZlbnRzXT1cImV2ZW50c1wiIChvbkNhc2VIaXN0b3J5KT1cImNhc2VIaXN0b3J5Q2xpY2tlZCgkZXZlbnQpXCIgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gZHNwTW9kZS5USU1FTElORVwiPlxuICAgICAgICAgICAgPC9jY2QtZXZlbnQtbG9nPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHNwTW9kZS5ERVRBSUxTXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIj5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic19fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic19fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImdvVG9DYXNlVGltZWxpbmUoKVwiIGNsYXNzPVwiZ292dWstYmFjay1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0JhY2sgdG8gY2FzZSB0aW1lbGluZScgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxjY2QtY2FzZS1oaXN0b3J5IFtldmVudF09XCJzZWxlY3RlZEV2ZW50SWRcIj48L2NjZC1jYXNlLWhpc3Rvcnk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -174,7 +174,7 @@ export class CaseBasicAccessViewComponent {
174
174
  return accessType === 'CHALLENGED' ? 'challenged-access-request' : 'specific-access-request';
175
175
  }
176
176
  static ɵfac = function CaseBasicAccessViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseBasicAccessViewComponent)(i0.ɵɵdirectiveInject(i1.CasesService), i0.ɵɵdirectiveInject(i2.Router)); };
177
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseBasicAccessViewComponent, selectors: [["ccd-case-basic-access-view"]], inputs: { caseDetails: "caseDetails", accessType: "accessType" }, decls: 29, vars: 23, consts: [[4, "ngIf"], ["type", "information"], [1, "heading-h1"], [1, "govuk-heading-m"], [1, "govuk-summary-list"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-button-group"], [1, "govuk-button", "govuk-!-margin-right-3", 3, "routerLink"], [1, "govuk-grid-column-full", "govuk-!-padding-left-0"], ["href", "#", 1, "govuk-body", 3, "click"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key", "summary-key"], [1, "govuk-summary-list__value"]], template: function CaseBasicAccessViewComponent_Template(rf, ctx) { if (rf & 1) {
177
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseBasicAccessViewComponent, selectors: [["ccd-case-basic-access-view"]], inputs: { caseDetails: "caseDetails", accessType: "accessType" }, decls: 29, vars: 23, consts: [[4, "ngIf"], ["type", "information"], [1, "heading-h1"], [1, "govuk-heading-m"], [1, "govuk-summary-list"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-button-group"], [1, "govuk-button", "govuk-!-margin-right-3", 3, "routerLink"], [1, "govuk-grid-column-full", "govuk-!-padding-left-0"], ["href", "javascript:void(0)", 1, "govuk-body", 3, "click"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key", "summary-key"], [1, "govuk-summary-list__value"]], template: function CaseBasicAccessViewComponent_Template(rf, ctx) { if (rf & 1) {
178
178
  i0.ɵɵtemplate(0, CaseBasicAccessViewComponent_ccd_loading_spinner_0_Template, 1, 0, "ccd-loading-spinner", 0);
179
179
  i0.ɵɵelementStart(1, "div")(2, "cut-alert", 1);
180
180
  i0.ɵɵtemplate(3, CaseBasicAccessViewComponent_ng_container_3_Template, 6, 11, "ng-container", 0)(4, CaseBasicAccessViewComponent_ng_container_4_Template, 3, 3, "ng-container", 0);
@@ -197,7 +197,7 @@ export class CaseBasicAccessViewComponent {
197
197
  i0.ɵɵpipe(23, "rpxTranslate");
198
198
  i0.ɵɵelementEnd();
199
199
  i0.ɵɵelementStart(24, "div", 8)(25, "p")(26, "a", 9);
200
- i0.ɵɵlistener("click", function CaseBasicAccessViewComponent_Template_a_click_26_listener($event) { ctx.onCancel(); return $event.preventDefault(); });
200
+ i0.ɵɵlistener("click", function CaseBasicAccessViewComponent_Template_a_click_26_listener() { return ctx.onCancel(); });
201
201
  i0.ɵɵtext(27);
202
202
  i0.ɵɵpipe(28, "rpxTranslate");
203
203
  i0.ɵɵelementEnd()()()();
@@ -235,11 +235,11 @@ export class CaseBasicAccessViewComponent {
235
235
  }
236
236
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseBasicAccessViewComponent, [{
237
237
  type: Component,
238
- args: [{ selector: 'ccd-case-basic-access-view', template: "<ccd-loading-spinner *ngIf=\"showSpinner\"></ccd-loading-spinner>\n<div>\n <cut-alert type=\"information\">\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">{{'This case requires' | rpxTranslate}} {{accessType | rpxTranslate | lowercase}} {{'access' | rpxTranslate}}.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">{{'Authorisation is needed to access this case' | rpxTranslate}}</ng-container>\n <br />\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">{{'This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes' | rpxTranslate}}.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">{{\"This could be because it's outside your jurisdiction, or you may be excluded from the case. If you request access to this case, it will be logged for auditing purposes\" | rpxTranslate }}.</ng-container>\n </cut-alert>\n <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n <h2 class=\"govuk-heading-m\">{{'Case details' | rpxTranslate}}</h2>\n <dl class=\"govuk-summary-list\">\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Case name' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal | rpxTranslate}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Service' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name | rpxTranslate}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'State' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description | rpxTranslate}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Court or hearing centre' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n </div>\n\n <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Access' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{accessType | titlecase | rpxTranslate}}</dd>\n </div>\n </dl>\n</div>\n<div class=\"govuk-button-group\">\n <button class=\"govuk-button govuk-!-margin-right-3\" [routerLink]=\"getRequestUrl(accessType)\">\n {{'Request access' | rpxTranslate}}\n </button>\n <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n <p>\n <a class=\"govuk-body\" (click)=\"onCancel(); $event.preventDefault()\" href=\"#\">\n {{'Cancel' | rpxTranslate}}\n </a>\n </p>\n </div>\n</div>\n" }]
238
+ args: [{ selector: 'ccd-case-basic-access-view', template: "<ccd-loading-spinner *ngIf=\"showSpinner\"></ccd-loading-spinner>\n<div>\n <cut-alert type=\"information\">\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">{{'This case requires' | rpxTranslate}} {{accessType | rpxTranslate | lowercase}} {{'access' | rpxTranslate}}.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">{{'Authorisation is needed to access this case' | rpxTranslate}}</ng-container>\n <br />\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">{{'This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes' | rpxTranslate}}.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">{{\"This could be because it's outside your jurisdiction, or you may be excluded from the case. If you request access to this case, it will be logged for auditing purposes\" | rpxTranslate }}.</ng-container>\n </cut-alert>\n <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n <h2 class=\"govuk-heading-m\">{{'Case details' | rpxTranslate}}</h2>\n <dl class=\"govuk-summary-list\">\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Case name' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal | rpxTranslate}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Service' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name | rpxTranslate}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'State' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description | rpxTranslate}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Court or hearing centre' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n </div>\n\n <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n <dt class=\"govuk-summary-list__key summary-key\">{{'Access' | rpxTranslate}}</dt>\n <dd class=\"govuk-summary-list__value\">{{accessType | titlecase | rpxTranslate}}</dd>\n </div>\n </dl>\n</div>\n<div class=\"govuk-button-group\">\n <button class=\"govuk-button govuk-!-margin-right-3\" [routerLink]=\"getRequestUrl(accessType)\">\n {{'Request access' | rpxTranslate}}\n </button>\n <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n <p>\n <a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\">\n {{'Cancel' | rpxTranslate}}\n </a>\n </p>\n </div>\n</div>\n" }]
239
239
  }], () => [{ type: i1.CasesService }, { type: i2.Router }], { caseDetails: [{
240
240
  type: Input
241
241
  }], accessType: [{
242
242
  type: Input
243
243
  }] }); })();
244
244
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseBasicAccessViewComponent, { className: "CaseBasicAccessViewComponent", filePath: "lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.ts", lineNumber: 11 }); })();
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1iYXNpYy1hY2Nlc3Mtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS12aWV3ZXIvY2FzZS1iYXNpYy1hY2Nlc3Mtdmlldy9jYXNlLWJhc2ljLWFjY2Vzcy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWJhc2ljLWFjY2Vzcy12aWV3L2Nhc2UtYmFzaWMtYWNjZXNzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7O0lDSnhFLHNDQUFnRTs7O0lBRzVELDZCQUFrRDtJQUFBLFlBQThHOzs7Ozs7OztJQUE5RyxjQUE4RztJQUE5RyxtTEFBOEc7OztJQUNoSyw2QkFBZ0Q7SUFBQSxZQUFnRTs7OztJQUFoRSxjQUFnRTtJQUFoRSx5RkFBZ0U7OztJQUVoSCw2QkFBa0Q7SUFBQSxZQUFvSjs7OztJQUFwSixjQUFvSjtJQUFwSixzTEFBb0o7OztJQUN0TSw2QkFBZ0Q7SUFBQSxZQUE4TDs7OztJQUE5TCxjQUE4TDtJQUE5TCwrTkFBOEw7OztJQU01TyxBQURGLCtCQUE0RixhQUMxQztJQUFBLFlBQThCOztJQUFBLGlCQUFLO0lBQ25GLDhCQUFzQztJ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QUEwQjtZQUExQiwrQ0FBMEI7WUFLMUIsY0FBZ0I7WUFBaEIscUNBQWdCO1lBT0osZUFBd0M7WUFBeEMsOERBQXdDO1lBQzFGLGNBQ0Y7WUFERSx5RUFDRjtZQUlNLGVBQ0Y7WUFERSxpRUFDRjs7O2lGRGpDTyw0QkFBNEI7Y0FKeEMsU0FBUzsyQkFDRSw0QkFBNEI7a0VBTy9CLFdBQVc7a0JBRGpCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLOztrRkFOSyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2Utdmlldy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtYmFzaWMtYWNjZXNzLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ2Nhc2UtYmFzaWMtYWNjZXNzLXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VCYXNpY0FjY2Vzc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgQ0FOQ0VMX0xJTktfREVTVElOQVRJT04gPSAnL3dvcmsvbXktd29yay9saXN0JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3ID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjZXNzVHlwZTogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgY291cnRPckhlYXJpbmdDZW50cmU6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBzaG93U3Bpbm5lcjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjb3VydE9ySGVhcmluZ0NlbnRyZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbG9jYXRpb25JZCA9IHRoaXMuY2FzZURldGFpbHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZURldGFpbHMuYmFzaWNGaWVsZHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZURldGFpbHMuYmFzaWNGaWVsZHMuY2FzZU1hbmFnZW1lbnRMb2NhdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXNlRGV0YWlscy5iYXNpY0ZpZWxkcy5jYXNlTWFuYWdlbWVudExvY2F0aW9uLmJhc2VMb2NhdGlvbiA/XG4gICAgICB0aGlzLmNhc2VEZXRhaWxzLmJhc2ljRmllbGRzLmNhc2VNYW5hZ2VtZW50TG9jYXRpb24uYmFzZUxvY2F0aW9uIDogbnVsbDtcblxuICAgIGlmIChsb2NhdGlvbklkKSB7XG4gICAgICB0aGlzLnNob3dTcGlubmVyID0gdHJ1ZTtcbiAgICAgIHRoaXMuY291cnRPckhlYXJpbmdDZW50cmVTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VzU2VydmljZS5nZXRDb3VydE9ySGVhcmluZ0NlbnRyZU5hbWUobG9jYXRpb25JZCkuc3Vic2NyaWJlKGNvdXJ0T3JIZWFyaW5nQ2VudHJlID0+IHtcbiAgICAgICAgdGhpcy5jb3VydE9ySGVhcmluZ0NlbnRyZSA9IGNvdXJ0T3JIZWFyaW5nQ2VudHJlWzBdICYmIGNvdXJ0T3JIZWFyaW5nQ2VudHJlWzBdLmNvdXJ0X25hbWUgP1xuICAgICAgICBjb3VydE9ySGVhcmluZ0NlbnRyZVswXS5jb3VydF9uYW1lIDogbnVsbDtcbiAgICAgICAgdGhpcy5zaG93U3Bpbm5lciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHRoaXMuc2hvd1NwaW5uZXIgPSBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvdXJ0T3JIZWFyaW5nQ2VudHJlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNvdXJ0T3JIZWFyaW5nQ2VudHJlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoQ2FzZUJhc2ljQWNjZXNzVmlld0NvbXBvbmVudC5DQU5DRUxfTElOS19ERVNUSU5BVElPTik7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWVzdFVybChhY2Nlc3NUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBhY2Nlc3NUeXBlID09PSAnQ0hBTExFTkdFRCcgPyAnY2hhbGxlbmdlZC1hY2Nlc3MtcmVxdWVzdCcgOiAnc3BlY2lmaWMtYWNjZXNzLXJlcXVlc3QnO1xuICB9XG59XG4iLCI8Y2NkLWxvYWRpbmctc3Bpbm5lciAgKm5nSWY9XCJzaG93U3Bpbm5lclwiPjwvY2NkLWxvYWRpbmctc3Bpbm5lcj5cbjxkaXY+XG4gIDxjdXQtYWxlcnQgdHlwZT1cImluZm9ybWF0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2Vzc1R5cGUgPT09ICdDSEFMTEVOR0VEJ1wiPnt7J1RoaXMgY2FzZSByZXF1aXJlcycgfCBycHhUcmFuc2xhdGV9fSB7e2FjY2Vzc1R5cGUgfCBycHhUcmFuc2xhdGUgfCBsb3dlcmNhc2V9fSB7eydhY2Nlc3MnIHwgcnB4VHJhbnNsYXRlfX0uPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2Vzc1R5cGUgPT09ICdTUEVDSUZJQydcIj57eydBdXRob3Jpc2F0aW9uIGlzIG5lZWRlZCB0byBhY2Nlc3MgdGhpcyBjYXNlJyB8IHJweFRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgPGJyIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2Vzc1R5cGUgPT09ICdDSEFMTEVOR0VEJ1wiPnt7J1RoaXMgaXMgYmVjYXVzZSB0aGUgY2FzZSBpcyBvdXRzaWRlIHlvdXIgd29yayBhcmVhLiBJZiB5b3UgcmVxdWVzdCBhY2Nlc3MgdG8gdGhlIGNhc2UsIGl0IHdpbGwgYmUgbG9nZ2VkIGZvciBhdWRpdGluZyBwdXJwb3NlcycgfCBycHhUcmFuc2xhdGV9fS48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWNjZXNzVHlwZSA9PT0gJ1NQRUNJRklDJ1wiPnt7XCJUaGlzIGNvdWxkIGJlIGJlY2F1c2UgaXQncyBvdXRzaWRlIHlvdXIganVyaXNkaWN0aW9uLCBvciB5b3UgbWF5IGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGNhc2UuIElmIHlvdSByZXF1ZXN0IGFjY2VzcyB0byB0aGlzIGNhc2UsIGl0IHdpbGwgYmUgbG9nZ2VkIGZvciBhdWRpdGluZyBwdXJwb3Nlc1wiIHwgcnB4VHJhbnNsYXRlIH19LjwvbmctY29udGFpbmVyPlxuICA8L2N1dC1hbGVydD5cbiAgPGgxIGNsYXNzPVwiaGVhZGluZy1oMVwiPiN7eyBjYXNlRGV0YWlscy5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9oMT5cbiAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+e3snQ2FzZSBkZXRhaWxzJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbiAgPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0XCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJjYXNlRGV0YWlscy5iYXNpY0ZpZWxkcz8uY2FzZU5hbWVIbWN0c0ludGVybmFsXCI+XG4gICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSBzdW1tYXJ5LWtleVwiPnt7J0Nhc2UgbmFtZScgfCBycHhUcmFuc2xhdGV9fTwvZHQ+XG4gICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+e3tjYXNlRGV0YWlscy5iYXNpY0ZpZWxkcy5jYXNlTmFtZUhtY3RzSW50ZXJuYWwgfCBycHhUcmFuc2xhdGV9fTwvZGQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJjYXNlRGV0YWlscy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8ubmFtZVwiPlxuICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXkgc3VtbWFyeS1rZXlcIj57eydTZXJ2aWNlJyB8IHJweFRyYW5zbGF0ZX19PC9kdD5cbiAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj57e2Nhc2VEZXRhaWxzLmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24ubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9kZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIiAqbmdJZj1cImNhc2VEZXRhaWxzLnN0YXRlPy5kZXNjcmlwdGlvblwiPlxuICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXkgc3VtbWFyeS1rZXlcIj57eydTdGF0ZScgfCBycHhUcmFuc2xhdGV9fTwvZHQ+XG4gICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+e3tjYXNlRGV0YWlscy5zdGF0ZS5kZXNjcmlwdGlvbiB8IHJweFRyYW5zbGF0ZX19PC9kZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIiAqbmdJZj1cImNvdXJ0T3JIZWFyaW5nQ2VudHJlXCI+XG4gICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSBzdW1tYXJ5LWtleVwiPnt7J0NvdXJ0IG9yIGhlYXJpbmcgY2VudHJlJyB8IHJweFRyYW5zbGF0ZX19PC9kdD5cbiAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj57e2NvdXJ0T3JIZWFyaW5nQ2VudHJlIHwgdGl0bGVjYXNlfX08L2RkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJhY2Nlc3NUeXBlXCI+XG4gICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSBzdW1tYXJ5LWtleVwiPnt7J0FjY2VzcycgfCBycHhUcmFuc2xhdGV9fTwvZHQ+XG4gICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+e3thY2Nlc3NUeXBlIHwgdGl0bGVjYXNlIHwgcnB4VHJhbnNsYXRlfX08L2RkPlxuICAgIDwvZGl2PlxuICA8L2RsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCI+XG4gIDxidXR0b24gY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstIS1tYXJnaW4tcmlnaHQtM1wiIFtyb3V0ZXJMaW5rXT1cImdldFJlcXVlc3RVcmwoYWNjZXNzVHlwZSlcIj5cbiAgICB7eydSZXF1ZXN0IGFjY2VzcycgfCBycHhUcmFuc2xhdGV9fVxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGwgZ292dWstIS1wYWRkaW5nLWxlZnQtMFwiPlxuICAgIDxwPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1ib2R5XCIgKGNsaWNrKT1cIm9uQ2FuY2VsKCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgaHJlZj1cIiNcIj5cbiAgICAgICAge3snQ2FuY2VsJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2E+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1iYXNpYy1hY2Nlc3Mtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS12aWV3ZXIvY2FzZS1iYXNpYy1hY2Nlc3Mtdmlldy9jYXNlLWJhc2ljLWFjY2Vzcy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWJhc2ljLWFjY2Vzcy12aWV3L2Nhc2UtYmFzaWMtYWNjZXNzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7O0lDSnhFLHNDQUFnRTs7O0lBRzVELDZCQUFrRDtJQUFBLFlBQThHOzs7Ozs7OztJQUE5RyxjQUE4RztJQUE5RyxtTEFBOEc7OztJQUNoSyw2QkFBZ0Q7SUFBQSxZQUFnRTs7OztJQUFoRSxjQUFnRTtJQUFoRSx5RkFBZ0U7OztJQUVoSCw2QkFBa0Q7SUFBQSxZQUFvSjs7OztJQUFwSixjQUFvSjtJQUFwSixzTEFBb0o7OztJQUN0TSw2QkFBZ0Q7SUFBQSxZQUE4TDs7OztJQUE5TCxjQUE4TDtJQUE5TCwrTkFBOEw7OztJQU01TyxBQURGLCtCQUE0RixhQUMxQztJQUFBLFlBQThCOztJQUFBLGlCQUFLO0lBQ25GLDhCQUFzQztJ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Q0FBMEI7WUFLMUIsY0FBZ0I7WUFBaEIscUNBQWdCO1lBT0osZUFBd0M7WUFBeEMsOERBQXdDO1lBQzFGLGNBQ0Y7WUFERSx5RUFDRjtZQUlNLGVBQ0Y7WUFERSxpRUFDRjs7O2lGRGpDTyw0QkFBNEI7Y0FKeEMsU0FBUzsyQkFDRSw0QkFBNEI7a0VBTy9CLFdBQVc7a0JBRGpCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLOztrRkFOSyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2Utdmlldy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtYmFzaWMtYWNjZXNzLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ2Nhc2UtYmFzaWMtYWNjZXNzLXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VCYXNpY0FjY2Vzc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgQ0FOQ0VMX0xJTktfREVTVElOQVRJT04gPSAnL3dvcmsvbXktd29yay9saXN0JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3ID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjZXNzVHlwZTogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgY291cnRPckhlYXJpbmdDZW50cmU6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBzaG93U3Bpbm5lcjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjb3VydE9ySGVhcmluZ0NlbnRyZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbG9jYXRpb25JZCA9IHRoaXMuY2FzZURldGFpbHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZURldGFpbHMuYmFzaWNGaWVsZHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZURldGFpbHMuYmFzaWNGaWVsZHMuY2FzZU1hbmFnZW1lbnRMb2NhdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXNlRGV0YWlscy5iYXNpY0ZpZWxkcy5jYXNlTWFuYWdlbWVudExvY2F0aW9uLmJhc2VMb2NhdGlvbiA/XG4gICAgICB0aGlzLmNhc2VEZXRhaWxzLmJhc2ljRmllbGRzLmNhc2VNYW5hZ2VtZW50TG9jYXRpb24uYmFzZUxvY2F0aW9uIDogbnVsbDtcblxuICAgIGlmIChsb2NhdGlvbklkKSB7XG4gICAgICB0aGlzLnNob3dTcGlubmVyID0gdHJ1ZTtcbiAgICAgIHRoaXMuY291cnRPckhlYXJpbmdDZW50cmVTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VzU2VydmljZS5nZXRDb3VydE9ySGVhcmluZ0NlbnRyZU5hbWUobG9jYXRpb25JZCkuc3Vic2NyaWJlKGNvdXJ0T3JIZWFyaW5nQ2VudHJlID0+IHtcbiAgICAgICAgdGhpcy5jb3VydE9ySGVhcmluZ0NlbnRyZSA9IGNvdXJ0T3JIZWFyaW5nQ2VudHJlWzBdICYmIGNvdXJ0T3JIZWFyaW5nQ2VudHJlWzBdLmNvdXJ0X25hbWUgP1xuICAgICAgICBjb3VydE9ySGVhcmluZ0NlbnRyZVswXS5jb3VydF9uYW1lIDogbnVsbDtcbiAgICAgICAgdGhpcy5zaG93U3Bpbm5lciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHRoaXMuc2hvd1NwaW5uZXIgPSBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvdXJ0T3JIZWFyaW5nQ2VudHJlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNvdXJ0T3JIZWFyaW5nQ2VudHJlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoQ2FzZUJhc2ljQWNjZXNzVmlld0NvbXBvbmVudC5DQU5DRUxfTElOS19ERVNUSU5BVElPTik7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWVzdFVybChhY2Nlc3NUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBhY2Nlc3NUeXBlID09PSAnQ0hBTExFTkdFRCcgPyAnY2hhbGxlbmdlZC1hY2Nlc3MtcmVxdWVzdCcgOiAnc3BlY2lmaWMtYWNjZXNzLXJlcXVlc3QnO1xuICB9XG59XG4iLCI8Y2NkLWxvYWRpbmctc3Bpbm5lciAgKm5nSWY9XCJzaG93U3Bpbm5lclwiPjwvY2NkLWxvYWRpbmctc3Bpbm5lcj5cbjxkaXY+XG4gIDxjdXQtYWxlcnQgdHlwZT1cImluZm9ybWF0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2Vzc1R5cGUgPT09ICdDSEFMTEVOR0VEJ1wiPnt7J1RoaXMgY2FzZSByZXF1aXJlcycgfCBycHhUcmFuc2xhdGV9fSB7e2FjY2Vzc1R5cGUgfCBycHhUcmFuc2xhdGUgfCBsb3dlcmNhc2V9fSB7eydhY2Nlc3MnIHwgcnB4VHJhbnNsYXRlfX0uPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2Vzc1R5cGUgPT09ICdTUEVDSUZJQydcIj57eydBdXRob3Jpc2F0aW9uIGlzIG5lZWRlZCB0byBhY2Nlc3MgdGhpcyBjYXNlJyB8IHJweFRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgPGJyIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2Vzc1R5cGUgPT09ICdDSEFMTEVOR0VEJ1wiPnt7J1RoaXMgaXMgYmVjYXVzZSB0aGUgY2FzZSBpcyBvdXRzaWRlIHlvdXIgd29yayBhcmVhLiBJZiB5b3UgcmVxdWVzdCBhY2Nlc3MgdG8gdGhlIGNhc2UsIGl0IHdpbGwgYmUgbG9nZ2VkIGZvciBhdWRpdGluZyBwdXJwb3NlcycgfCBycHhUcmFuc2xhdGV9fS48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWNjZXNzVHlwZSA9PT0gJ1NQRUNJRklDJ1wiPnt7XCJUaGlzIGNvdWxkIGJlIGJlY2F1c2UgaXQncyBvdXRzaWRlIHlvdXIganVyaXNkaWN0aW9uLCBvciB5b3UgbWF5IGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGNhc2UuIElmIHlvdSByZXF1ZXN0IGFjY2VzcyB0byB0aGlzIGNhc2UsIGl0IHdpbGwgYmUgbG9nZ2VkIGZvciBhdWRpdGluZyBwdXJwb3Nlc1wiIHwgcnB4VHJhbnNsYXRlIH19LjwvbmctY29udGFpbmVyPlxuICA8L2N1dC1hbGVydD5cbiAgPGgxIGNsYXNzPVwiaGVhZGluZy1oMVwiPiN7eyBjYXNlRGV0YWlscy5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9oMT5cbiAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+e3snQ2FzZSBkZXRhaWxzJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbiAgPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0XCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJjYXNlRGV0YWlscy5iYXNpY0ZpZWxkcz8uY2FzZU5hbWVIbWN0c0ludGVybmFsXCI+XG4gICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSBzdW1tYXJ5LWtleVwiPnt7J0Nhc2UgbmFtZScgfCBycHhUcmFuc2xhdGV9fTwvZHQ+XG4gICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+e3tjYXNlRGV0YWlscy5iYXNpY0ZpZWxkcy5jYXNlTmFtZUhtY3RzSW50ZXJuYWwgfCBycHhUcmFuc2xhdGV9fTwvZGQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJjYXNlRGV0YWlscy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8ubmFtZVwiPlxuICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXkgc3VtbWFyeS1rZXlcIj57eydTZXJ2aWNlJyB8IHJweFRyYW5zbGF0ZX19PC9kdD5cbiAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj57e2Nhc2VEZXRhaWxzLmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24ubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9kZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIiAqbmdJZj1cImNhc2VEZXRhaWxzLnN0YXRlPy5kZXNjcmlwdGlvblwiPlxuICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXkgc3VtbWFyeS1rZXlcIj57eydTdGF0ZScgfCBycHhUcmFuc2xhdGV9fTwvZHQ+XG4gICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+e3tjYXNlRGV0YWlscy5zdGF0ZS5kZXNjcmlwdGlvbiB8IHJweFRyYW5zbGF0ZX19PC9kZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIiAqbmdJZj1cImNvdXJ0T3JIZWFyaW5nQ2VudHJlXCI+XG4gICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSBzdW1tYXJ5LWtleVwiPnt7J0NvdXJ0IG9yIGhlYXJpbmcgY2VudHJlJyB8IHJweFRyYW5zbGF0ZX19PC9kdD5cbiAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj57e2NvdXJ0T3JIZWFyaW5nQ2VudHJlIHwgdGl0bGVjYXNlfX08L2RkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJhY2Nlc3NUeXBlXCI+XG4gICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSBzdW1tYXJ5LWtleVwiPnt7J0FjY2VzcycgfCBycHhUcmFuc2xhdGV9fTwvZHQ+XG4gICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+e3thY2Nlc3NUeXBlIHwgdGl0bGVjYXNlIHwgcnB4VHJhbnNsYXRlfX08L2RkPlxuICAgIDwvZGl2PlxuICA8L2RsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCI+XG4gIDxidXR0b24gY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstIS1tYXJnaW4tcmlnaHQtM1wiIFtyb3V0ZXJMaW5rXT1cImdldFJlcXVlc3RVcmwoYWNjZXNzVHlwZSlcIj5cbiAgICB7eydSZXF1ZXN0IGFjY2VzcycgfCBycHhUcmFuc2xhdGV9fVxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGwgZ292dWstIS1wYWRkaW5nLWxlZnQtMFwiPlxuICAgIDxwPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1ib2R5XCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+XG4gICAgICAgIHt7J0NhbmNlbCcgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9hPlxuICAgIDwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==