@tilde-nlp/ngx-common 6.1.92 → 6.1.94

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.
@@ -21,17 +21,17 @@ import * as i11 from "@angular/material/progress-spinner";
21
21
  import * as i12 from "../../shared/llm-textarea/llm-textarea.component";
22
22
  import * as i13 from "@ngx-translate/core";
23
23
  const _c0 = (a0, a1) => ({ limit: a0, subscriptionUrl: a1 });
24
- function LLMTextareaWithActionsComponent_lib_tld_notification_message_7_Template(rf, ctx) { if (rf & 1) {
24
+ function LLMTextareaWithActionsComponent_lib_tld_notification_message_6_Template(rf, ctx) { if (rf & 1) {
25
25
  const _r2 = i0.ɵɵgetCurrentView();
26
- i0.ɵɵelementStart(0, "lib-tld-notification-message", 14);
27
- i0.ɵɵlistener("closeClicked", function LLMTextareaWithActionsComponent_lib_tld_notification_message_7_Template_lib_tld_notification_message_closeClicked_0_listener() { const message_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.closeMessage(message_r3)); });
26
+ i0.ɵɵelementStart(0, "lib-tld-notification-message", 15);
27
+ i0.ɵɵlistener("closeClicked", function LLMTextareaWithActionsComponent_lib_tld_notification_message_6_Template_lib_tld_notification_message_closeClicked_0_listener() { const message_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.closeMessage(message_r3)); });
28
28
  i0.ɵɵelementEnd();
29
29
  } if (rf & 2) {
30
30
  const message_r3 = ctx.$implicit;
31
31
  i0.ɵɵproperty("message", message_r3);
32
32
  } }
33
- function LLMTextareaWithActionsComponent_mat_form_field_8_For_6_Template(rf, ctx) { if (rf & 1) {
34
- i0.ɵɵelementStart(0, "mat-option", 17);
33
+ function LLMTextareaWithActionsComponent_mat_form_field_7_For_6_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelementStart(0, "mat-option", 18);
35
35
  i0.ɵɵtext(1);
36
36
  i0.ɵɵpipe(2, "uppercase");
37
37
  i0.ɵɵpipe(3, "translate");
@@ -42,15 +42,15 @@ function LLMTextareaWithActionsComponent_mat_form_field_8_For_6_Template(rf, ctx
42
42
  i0.ɵɵadvance();
43
43
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "LLM.USE_CASE." + i0.ɵɵpipeBind1(2, 2, useCase_r6)), " ");
44
44
  } }
45
- function LLMTextareaWithActionsComponent_mat_form_field_8_Template(rf, ctx) { if (rf & 1) {
45
+ function LLMTextareaWithActionsComponent_mat_form_field_7_Template(rf, ctx) { if (rf & 1) {
46
46
  const _r5 = i0.ɵɵgetCurrentView();
47
- i0.ɵɵelementStart(0, "mat-form-field", 15)(1, "mat-label");
47
+ i0.ɵɵelementStart(0, "mat-form-field", 16)(1, "mat-label");
48
48
  i0.ɵɵtext(2);
49
49
  i0.ɵɵpipe(3, "translate");
50
50
  i0.ɵɵelementEnd();
51
- i0.ɵɵelementStart(4, "mat-select", 16);
52
- i0.ɵɵtwoWayListener("ngModelChange", function LLMTextareaWithActionsComponent_mat_form_field_8_Template_mat_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r3.selectedUseCase, $event) || (ctx_r3.selectedUseCase = $event); return i0.ɵɵresetView($event); });
53
- i0.ɵɵrepeaterCreate(5, LLMTextareaWithActionsComponent_mat_form_field_8_For_6_Template, 4, 6, "mat-option", 17, i0.ɵɵrepeaterTrackByIndex);
51
+ i0.ɵɵelementStart(4, "mat-select", 17);
52
+ i0.ɵɵtwoWayListener("ngModelChange", function LLMTextareaWithActionsComponent_mat_form_field_7_Template_mat_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r3.selectedUseCase, $event) || (ctx_r3.selectedUseCase = $event); return i0.ɵɵresetView($event); });
53
+ i0.ɵɵrepeaterCreate(5, LLMTextareaWithActionsComponent_mat_form_field_7_For_6_Template, 4, 6, "mat-option", 18, i0.ɵɵrepeaterTrackByIndex);
54
54
  i0.ɵɵelementEnd()();
55
55
  } if (rf & 2) {
56
56
  const ctx_r3 = i0.ɵɵnextContext();
@@ -62,17 +62,17 @@ function LLMTextareaWithActionsComponent_mat_form_field_8_Template(rf, ctx) { if
62
62
  i0.ɵɵadvance();
63
63
  i0.ɵɵrepeater(ctx_r3.useCases);
64
64
  } }
65
- function LLMTextareaWithActionsComponent_div_11_Template(rf, ctx) { if (rf & 1) {
66
- i0.ɵɵelement(0, "div", 18);
65
+ function LLMTextareaWithActionsComponent_div_10_Template(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵelement(0, "div", 19);
67
67
  i0.ɵɵpipe(1, "translate");
68
68
  } if (rf & 2) {
69
69
  const ctx_r3 = i0.ɵɵnextContext();
70
70
  i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, ctx_r3.localizationKey + "LIMIT", i0.ɵɵpureFunction2(4, _c0, ctx_r3.quotaLeft, ctx_r3.subscriptionUrl)), i0.ɵɵsanitizeHtml);
71
71
  } }
72
- function LLMTextareaWithActionsComponent_button_13_Template(rf, ctx) { if (rf & 1) {
72
+ function LLMTextareaWithActionsComponent_button_12_Template(rf, ctx) { if (rf & 1) {
73
73
  const _r7 = i0.ɵɵgetCurrentView();
74
- i0.ɵɵelementStart(0, "button", 19);
75
- i0.ɵɵlistener("click", function LLMTextareaWithActionsComponent_button_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.cancel()); });
74
+ i0.ɵɵelementStart(0, "button", 20);
75
+ i0.ɵɵlistener("click", function LLMTextareaWithActionsComponent_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.cancel()); });
76
76
  i0.ɵɵtext(1);
77
77
  i0.ɵɵpipe(2, "translate");
78
78
  i0.ɵɵelementEnd();
@@ -81,8 +81,8 @@ function LLMTextareaWithActionsComponent_button_13_Template(rf, ctx) { if (rf &
81
81
  i0.ɵɵadvance();
82
82
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r3.localizationKey + "CANCEL"), " ");
83
83
  } }
84
- function LLMTextareaWithActionsComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "button", 20);
84
+ function LLMTextareaWithActionsComponent_ng_template_13_Template(rf, ctx) { if (rf & 1) {
85
+ i0.ɵɵelementStart(0, "button", 21);
86
86
  i0.ɵɵtext(1);
87
87
  i0.ɵɵpipe(2, "translate");
88
88
  i0.ɵɵelementEnd();
@@ -92,7 +92,7 @@ function LLMTextareaWithActionsComponent_ng_template_14_Template(rf, ctx) { if (
92
92
  i0.ɵɵadvance();
93
93
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, ctx_r3.localizationKey + "CLOSE"), " ");
94
94
  } }
95
- function LLMTextareaWithActionsComponent_span_17_Template(rf, ctx) { if (rf & 1) {
95
+ function LLMTextareaWithActionsComponent_span_16_Template(rf, ctx) { if (rf & 1) {
96
96
  i0.ɵɵelementStart(0, "span");
97
97
  i0.ɵɵtext(1);
98
98
  i0.ɵɵpipe(2, "translate");
@@ -102,15 +102,15 @@ function LLMTextareaWithActionsComponent_span_17_Template(rf, ctx) { if (rf & 1)
102
102
  i0.ɵɵadvance();
103
103
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, !ctx_r3.isSummarized ? "LLM.SUMMARY_MODAL.ACTION" : "LLM.SUMMARY_MODAL.REGENERATE"), " ");
104
104
  } }
105
- function LLMTextareaWithActionsComponent_ng_template_18_Template(rf, ctx) { if (rf & 1) {
105
+ function LLMTextareaWithActionsComponent_ng_template_17_Template(rf, ctx) { if (rf & 1) {
106
106
  i0.ɵɵtext(0);
107
107
  i0.ɵɵpipe(1, "translate");
108
108
  } if (rf & 2) {
109
109
  const ctx_r3 = i0.ɵɵnextContext();
110
110
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(1, 1, ctx_r3.localizationKey + "ACTION"), " ");
111
111
  } }
112
- function LLMTextareaWithActionsComponent_mat_spinner_20_Template(rf, ctx) { if (rf & 1) {
113
- i0.ɵɵelement(0, "mat-spinner", 21);
112
+ function LLMTextareaWithActionsComponent_mat_spinner_19_Template(rf, ctx) { if (rf & 1) {
113
+ i0.ɵɵelement(0, "mat-spinner", 22);
114
114
  } if (rf & 2) {
115
115
  i0.ɵɵproperty("diameter", 20);
116
116
  } }
@@ -277,35 +277,34 @@ export class LLMTextareaWithActionsComponent {
277
277
  };
278
278
  }
279
279
  static { this.ɵfac = function LLMTextareaWithActionsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LLMTextareaWithActionsComponent)(i0.ɵɵdirectiveInject(i1.LLMService), i0.ɵɵdirectiveInject(i2.LLMHelperService), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); }; }
280
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LLMTextareaWithActionsComponent, selectors: [["lib-llm-textarea-with-actions"]], decls: 21, vars: 22, consts: [["closeButton", ""], ["rephraseAction", ""], ["mat-dialog-title", ""], ["mat-dialog-content", ""], [3, "message", "closeClicked", 4, "ngFor", "ngForOf"], ["color", "accent", "class", "w-full llm-writing-style-select", "appearance", "outline", 4, "ngIf"], [3, "textEditEvent", "copyEvent", "dislikeEvent", "text", "disabled", "actionButtonsDisabled"], ["mat-dialog-actions", "", 1, "llm-actions-wrapper"], ["class", "quota-left-message", 3, "innerHTML", 4, "ngIf"], [1, "llm-actions"], ["mat-button", "", "color", "accent", 3, "click", 4, "ngIf", "ngIfElse"], ["mat-flat-button", "", "color", "accent", 3, "click", "disabled"], [4, "ngIf", "ngIfElse"], ["color", "primary-accent-darker", 3, "diameter", 4, "ngIf"], [3, "closeClicked", "message"], ["color", "accent", "appearance", "outline", 1, "w-full", "llm-writing-style-select"], [3, "ngModelChange", "disabled", "ngModel"], [3, "value"], [1, "quota-left-message", 3, "innerHTML"], ["mat-button", "", "color", "accent", 3, "click"], ["mat-button", "", "color", "accent", 3, "mat-dialog-close"], ["color", "primary-accent-darker", 3, "diameter"]], template: function LLMTextareaWithActionsComponent_Template(rf, ctx) { if (rf & 1) {
280
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LLMTextareaWithActionsComponent, selectors: [["lib-llm-textarea-with-actions"]], decls: 20, vars: 22, consts: [["closeButton", ""], ["rephraseAction", ""], ["mat-dialog-title", ""], ["mat-dialog-content", ""], [3, "innerHTML"], [3, "message", "closeClicked", 4, "ngFor", "ngForOf"], ["color", "accent", "class", "w-full llm-writing-style-select", "appearance", "outline", 4, "ngIf"], [3, "textEditEvent", "copyEvent", "dislikeEvent", "text", "disabled", "actionButtonsDisabled"], ["mat-dialog-actions", "", 1, "llm-actions-wrapper"], ["class", "quota-left-message", 3, "innerHTML", 4, "ngIf"], [1, "llm-actions"], ["mat-button", "", "color", "accent", 3, "click", 4, "ngIf", "ngIfElse"], ["mat-flat-button", "", "color", "accent", 3, "click", "disabled"], [4, "ngIf", "ngIfElse"], ["color", "primary-accent-darker", 3, "diameter", 4, "ngIf"], [3, "closeClicked", "message"], ["color", "accent", "appearance", "outline", 1, "w-full", "llm-writing-style-select"], [3, "ngModelChange", "disabled", "ngModel"], [3, "value"], [1, "quota-left-message", 3, "innerHTML"], ["mat-button", "", "color", "accent", 3, "click"], ["mat-button", "", "color", "accent", 3, "mat-dialog-close"], ["color", "primary-accent-darker", 3, "diameter"]], template: function LLMTextareaWithActionsComponent_Template(rf, ctx) { if (rf & 1) {
281
281
  const _r1 = i0.ɵɵgetCurrentView();
282
282
  i0.ɵɵelementStart(0, "h1", 2);
283
283
  i0.ɵɵtext(1);
284
284
  i0.ɵɵpipe(2, "translate");
285
285
  i0.ɵɵelementEnd();
286
- i0.ɵɵelementStart(3, "div", 3)(4, "p");
287
- i0.ɵɵtext(5);
288
- i0.ɵɵpipe(6, "translate");
289
- i0.ɵɵelementEnd();
290
- i0.ɵɵtemplate(7, LLMTextareaWithActionsComponent_lib_tld_notification_message_7_Template, 1, 1, "lib-tld-notification-message", 4)(8, LLMTextareaWithActionsComponent_mat_form_field_8_Template, 7, 5, "mat-form-field", 5);
291
- i0.ɵɵelementStart(9, "lib-llm-textarea", 6);
292
- i0.ɵɵlistener("textEditEvent", function LLMTextareaWithActionsComponent_Template_lib_llm_textarea_textEditEvent_9_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.textEditEvent($event)); })("copyEvent", function LLMTextareaWithActionsComponent_Template_lib_llm_textarea_copyEvent_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.copyPlausibleEvent()); })("dislikeEvent", function LLMTextareaWithActionsComponent_Template_lib_llm_textarea_dislikeEvent_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dislikePlausibleEvent()); });
286
+ i0.ɵɵelementStart(3, "div", 3);
287
+ i0.ɵɵelement(4, "p", 4);
288
+ i0.ɵɵpipe(5, "translate");
289
+ i0.ɵɵtemplate(6, LLMTextareaWithActionsComponent_lib_tld_notification_message_6_Template, 1, 1, "lib-tld-notification-message", 5)(7, LLMTextareaWithActionsComponent_mat_form_field_7_Template, 7, 5, "mat-form-field", 6);
290
+ i0.ɵɵelementStart(8, "lib-llm-textarea", 7);
291
+ i0.ɵɵlistener("textEditEvent", function LLMTextareaWithActionsComponent_Template_lib_llm_textarea_textEditEvent_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.textEditEvent($event)); })("copyEvent", function LLMTextareaWithActionsComponent_Template_lib_llm_textarea_copyEvent_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.copyPlausibleEvent()); })("dislikeEvent", function LLMTextareaWithActionsComponent_Template_lib_llm_textarea_dislikeEvent_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dislikePlausibleEvent()); });
293
292
  i0.ɵɵelementEnd()();
294
- i0.ɵɵelementStart(10, "div", 7);
295
- i0.ɵɵtemplate(11, LLMTextareaWithActionsComponent_div_11_Template, 2, 7, "div", 8);
296
- i0.ɵɵelementStart(12, "div", 9);
297
- i0.ɵɵtemplate(13, LLMTextareaWithActionsComponent_button_13_Template, 3, 3, "button", 10)(14, LLMTextareaWithActionsComponent_ng_template_14_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
298
- i0.ɵɵelementStart(16, "button", 11);
299
- i0.ɵɵlistener("click", function LLMTextareaWithActionsComponent_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.getEditedText()); });
300
- i0.ɵɵtemplate(17, LLMTextareaWithActionsComponent_span_17_Template, 3, 3, "span", 12)(18, LLMTextareaWithActionsComponent_ng_template_18_Template, 2, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(20, LLMTextareaWithActionsComponent_mat_spinner_20_Template, 1, 1, "mat-spinner", 13);
293
+ i0.ɵɵelementStart(9, "div", 8);
294
+ i0.ɵɵtemplate(10, LLMTextareaWithActionsComponent_div_10_Template, 2, 7, "div", 9);
295
+ i0.ɵɵelementStart(11, "div", 10);
296
+ i0.ɵɵtemplate(12, LLMTextareaWithActionsComponent_button_12_Template, 3, 3, "button", 11)(13, LLMTextareaWithActionsComponent_ng_template_13_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
297
+ i0.ɵɵelementStart(15, "button", 12);
298
+ i0.ɵɵlistener("click", function LLMTextareaWithActionsComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.getEditedText()); });
299
+ i0.ɵɵtemplate(16, LLMTextareaWithActionsComponent_span_16_Template, 3, 3, "span", 13)(17, LLMTextareaWithActionsComponent_ng_template_17_Template, 2, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(19, LLMTextareaWithActionsComponent_mat_spinner_19_Template, 1, 1, "mat-spinner", 14);
301
300
  i0.ɵɵelementEnd()()();
302
301
  } if (rf & 2) {
303
- const closeButton_r8 = i0.ɵɵreference(15);
304
- const rephraseAction_r9 = i0.ɵɵreference(19);
302
+ const closeButton_r8 = i0.ɵɵreference(14);
303
+ const rephraseAction_r9 = i0.ɵɵreference(18);
305
304
  i0.ɵɵadvance();
306
305
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 18, ctx.localizationKey + "TITLE"));
307
- i0.ɵɵadvance(4);
308
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 20, ctx.localizationKey + "DESCRIPTION"));
306
+ i0.ɵɵadvance(3);
307
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(5, 20, ctx.localizationKey + "DESCRIPTION"), i0.ɵɵsanitizeHtml);
309
308
  i0.ɵɵadvance(2);
310
309
  i0.ɵɵproperty("ngForOf", ctx.messages);
311
310
  i0.ɵɵadvance();
@@ -329,10 +328,10 @@ export class LLMTextareaWithActionsComponent {
329
328
  }
330
329
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LLMTextareaWithActionsComponent, [{
331
330
  type: Component,
332
- args: [{ selector: 'lib-llm-textarea-with-actions', template: "<h1 mat-dialog-title>{{ localizationKey + \"TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ localizationKey + \"DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngFor=\"let message of messages\" [message]=\"message\" (closeClicked)=\"closeMessage(message)\"></lib-tld-notification-message>\r\n\r\n <mat-form-field *ngIf=\"showUseCase\" color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.USE_CASES_LABEL' | translate }}</mat-label>\r\n <mat-select [disabled]=\"isLoading\" [(ngModel)]=\"selectedUseCase\">\r\n @for (useCase of useCases; track $index) {\r\n\r\n <mat-option [value]=\"useCase\">\r\n {{ 'LLM.USE_CASE.' + (useCase | uppercase) | translate }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n\r\n\r\n <lib-llm-textarea [class.rephrase]=\"llmActionType === llmActions.REPHRASE\" [text]=\"editedText !== '' ? editedText : initialText\" [disabled]=\"isLoading || !quotaLeft\" [actionButtonsDisabled]=\"!isEdited\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"remainingQuotaMessageVisible\" class=\"quota-left-message\" [innerHTML]=\"localizationKey + 'LIMIT' | translate: { limit: quotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!remainingQuotaMessageVisible\" class=\"llm-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ localizationKey + \"CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ localizationKey + \"CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n\r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"getEditedText()\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <span *ngIf=\"llmActionType === llmActions.SUMMARY; else rephraseAction\">\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.ACTION\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </span>\r\n\r\n <ng-template #rephraseAction>\r\n {{ localizationKey + \"ACTION\" | translate }}\r\n </ng-template>\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"primary-accent-darker\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{margin:0 2.25rem 0 0!important;font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important;align-items:center!important}:host ::ng-deep .text-container{margin-right:0!important}:host ::ng-deep tld-close-button{top:1px!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}:host ::ng-deep .llm-textarea{min-height:240px!important}:host ::ng-deep .rephrase .llm-textarea{min-height:100px!important}:host ::ng-deep .desktop .llm-textarea{min-height:460px!important}:host ::ng-deep .rephrase .desktop .llm-textarea{min-height:330px!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}mat-spinner{margin-left:.5rem}.quota-left-message{margin-bottom:12px}\n"] }]
331
+ args: [{ selector: 'lib-llm-textarea-with-actions', template: "<h1 mat-dialog-title>{{ localizationKey + \"TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p [innerHTML]=\"localizationKey + 'DESCRIPTION' | translate\"></p>\r\n\r\n <lib-tld-notification-message *ngFor=\"let message of messages\" [message]=\"message\" (closeClicked)=\"closeMessage(message)\"></lib-tld-notification-message>\r\n\r\n <mat-form-field *ngIf=\"showUseCase\" color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.USE_CASES_LABEL' | translate }}</mat-label>\r\n <mat-select [disabled]=\"isLoading\" [(ngModel)]=\"selectedUseCase\">\r\n @for (useCase of useCases; track $index) {\r\n\r\n <mat-option [value]=\"useCase\">\r\n {{ 'LLM.USE_CASE.' + (useCase | uppercase) | translate }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n\r\n\r\n <lib-llm-textarea [class.rephrase]=\"llmActionType === llmActions.REPHRASE\" [text]=\"editedText !== '' ? editedText : initialText\" [disabled]=\"isLoading || !quotaLeft\" [actionButtonsDisabled]=\"!isEdited\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"remainingQuotaMessageVisible\" class=\"quota-left-message\" [innerHTML]=\"localizationKey + 'LIMIT' | translate: { limit: quotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!remainingQuotaMessageVisible\" class=\"llm-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ localizationKey + \"CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ localizationKey + \"CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n\r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"getEditedText()\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <span *ngIf=\"llmActionType === llmActions.SUMMARY; else rephraseAction\">\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.ACTION\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </span>\r\n\r\n <ng-template #rephraseAction>\r\n {{ localizationKey + \"ACTION\" | translate }}\r\n </ng-template>\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"primary-accent-darker\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{margin:0 2.25rem 0 0!important;font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important;align-items:center!important}:host ::ng-deep .text-container{margin-right:0!important}:host ::ng-deep tld-close-button{top:1px!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}:host ::ng-deep .llm-textarea{min-height:240px!important}:host ::ng-deep .rephrase .llm-textarea{min-height:100px!important}:host ::ng-deep .desktop .llm-textarea{min-height:460px!important}:host ::ng-deep .rephrase .desktop .llm-textarea{min-height:330px!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}mat-spinner{margin-left:.5rem}.quota-left-message{margin-bottom:12px}\n"] }]
333
332
  }], () => [{ type: i1.LLMService }, { type: i2.LLMHelperService }, { type: undefined, decorators: [{
334
333
  type: Inject,
335
334
  args: [MAT_DIALOG_DATA]
336
335
  }] }], null); })();
337
336
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LLMTextareaWithActionsComponent, { className: "LLMTextareaWithActionsComponent", filePath: "lib\\llm\\components\\llm-textarea-with-actions\\llm-textarea-with-actions.component.ts", lineNumber: 20 }); })();
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL2NvbXBvbmVudHMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVGLE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUHBFLHdEQUEwSDtJQUF2QyxxUkFBZ0IsK0JBQXFCLEtBQUM7SUFBQyxpQkFBK0I7OztJQUExRixvQ0FBbUI7OztJQU81RSxzQ0FBOEI7SUFDNUIsWUFDRjs7O0lBQUEsaUJBQWE7OztJQUZELGtDQUFpQjtJQUMzQixjQUNGO0lBREUseUdBQ0Y7Ozs7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QjtZQUVoQixjQUE0QztZQUFBLEFBQTVDLG1FQUE0QywrQkFBbUI7WUFZeEQsZUFBZTtZQUFmLG9DQUFlOzs7aUZEbkN0QiwrQkFBK0I7Y0FMM0MsU0FBUzsyQkFDRSwrQkFBK0I7O3NCQStDdEMsTUFBTTt1QkFBQyxlQUFlOztrRkEzQ2QsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTExNUmVwaHJhc2VVc2VDYXNlLCBMTE1TZXJ2aWNlLCBMTE1TdW1tYXJ5VXNlQ2FzZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LXNlcnZpY2VzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFUlJPUl9DT0RFUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IFBsYXVzaWJsZUhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3BsYXVzaWJsZSc7XHJcbmltcG9ydCB7IExMTUFjdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLWFjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IExMTURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBMTE1Xcml0aW5nU3R5bGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLXdyaXRpbmctc3R5bGUuZW51bSc7XHJcbmltcG9ydCB7IExMTUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTExNVGV4dGFyZWFXaXRoQWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBpc1N1bW1hcml6ZWQhOiBib29sZWFuO1xyXG4gIGlzRWRpdGVkITogYm9vbGVhbjtcclxuICByZW1haW5pbmdRdW90YU1lc3NhZ2VWaXNpYmxlITogYm9vbGVhbjtcclxuICBxdW90YUxlZnQhOiBudW1iZXI7XHJcbiAgbWF4Q2hhckxlbmd0aCE6IG51bWJlcjtcclxuICBzdWJzY3JpcHRpb25VcmwhOiBzdHJpbmc7XHJcbiAgcHJldmlvdXNXcml0aW5nU3R5bGUhOiBMTE1Xcml0aW5nU3R5bGU7XHJcbiAgc2VsZWN0ZWRXcml0aW5nU3R5bGUgPSBMTE1Xcml0aW5nU3R5bGUuR0VORVJBTDtcclxuXHJcbiAgcmVhY2hlZFF1b3RhTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgZXhjZWVkZWRMaW1pdE1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG4gIHJlcXVlc3RUaW1lb3V0TWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgZGVmYXVsdEVycm9yTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pdGlhbFRleHQhOiBzdHJpbmc7XHJcbiAgZWRpdGVkVGV4dCA9ICcnO1xyXG4gIG1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICBsb2NhbGl6YXRpb25LZXkhOiBzdHJpbmc7XHJcbiAgbGxtQWN0aW9uVHlwZSE6IExMTUFjdGlvbnM7XHJcbiAgc2VsZWN0ZWRVc2VDYXNlITogTExNU3VtbWFyeVVzZUNhc2UgfCBMTE1SZXBocmFzZVVzZUNhc2U7XHJcblxyXG4gIHByaXZhdGUgc2F2ZWRSZXBocmFzaW5nczogeyBzdHlsZTogTExNV3JpdGluZ1N0eWxlLCB0ZXh0OiBzdHJpbmcgfVtdID0gW107XHJcblxyXG4gIHJlYWRvbmx5IGxsbUFjdGlvbnMgPSBMTE1BY3Rpb25zO1xyXG4gIHJlYWRvbmx5IHdyaXRpbmdTdHlsZXMgPSBPYmplY3QudmFsdWVzKExMTVdyaXRpbmdTdHlsZSk7XHJcbiAgdXNlQ2FzZXM6IExMTVN1bW1hcnlVc2VDYXNlW10gfCBMTE1SZXBocmFzZVVzZUNhc2VbXSA9IFtdO1xyXG5cclxuICByZWFkb25seSBtZXNzYWdlczogTm90aWZpY2F0aW9uTWVzc2FnZVtdID0gW107XHJcblxyXG4gIHNob3dVc2VDYXNlID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nIHx8ICF0aGlzLmluaXRpYWxUZXh0IHx8IHRoaXMucXVvdGFMZWZ0IDwgMTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1TZXJ2aWNlOiBMTE1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1IZWxwZXJTZXJ2aWNlOiBMTE1IZWxwZXJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgcmVhZG9ubHkgZGF0YTogTExNRGF0YVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRJbml0aWFsVGV4dCgpO1xyXG4gICAgaWYodGhpcy5sbG1BY3Rpb25UeXBlID09PSBMTE1BY3Rpb25zLlJFUEhSQVNFKSB7XHJcbiAgICAgIHRoaXMudXNlQ2FzZXMgID0gdGhpcy5kYXRhLnJlcGhyYXNlVXNlQ2FzZXMgPz8gT2JqZWN0LnZhbHVlcyhMTE1SZXBocmFzZVVzZUNhc2UpIGFzIExMTVJlcGhyYXNlVXNlQ2FzZVtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlQ2FzZSA9IHRoaXMudXNlQ2FzZXNbMF07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gTExNQWN0aW9ucy5TVU1NQVJZKSB7XHJcbiAgICAgIHRoaXMudXNlQ2FzZXMgID0gdGhpcy5kYXRhLnN1bW1hcnlVc2VDYXNlcyA/PyBPYmplY3QudmFsdWVzKExMTVN1bW1hcnlVc2VDYXNlKSBhcyBMTE1TdW1tYXJ5VXNlQ2FzZVtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlQ2FzZSA9IExMTVN1bW1hcnlVc2VDYXNlLkdlbmVyYWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaG93VXNlQ2FzZSA9ICh0aGlzLmxsbUFjdGlvblR5cGU9PT0gIExMTUFjdGlvbnMuUkVQSFJBU0UgJiYgdGhpcy5kYXRhLnNob3dVc2VDYXNlUmVwaHJhc2UpIHx8ICh0aGlzLmxsbUFjdGlvblR5cGUgPT09IExMTUFjdGlvbnMuU1VNTUFSWSAmJiB0aGlzLmRhdGEuc2hvd1VzZUNhc2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIGNsb3NlTWVzc2FnZShtc2c6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tZXNzYWdlcz8uZmluZEluZGV4KChtZXNzYWdlKSA9PiBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSA9PT0gSlNPTi5zdHJpbmdpZnkobXNnKSk7XHJcblxyXG4gICAgaWYgKGluZGV4IHx8IGluZGV4ID09PSAwKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrUmVwaHJhc2VkVGV4dFNhdmVzKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSkge1xyXG4gICAgICB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlID0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNlbGVjdGVkV3JpdGluZ1N0eWxlU2F2ZSA9IHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5maW5kKChyZXBocmFzaW5nKSA9PiByZXBocmFzaW5nLnN0eWxlID09PSB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlKTtcclxuICAgIGNvbnN0IHByZXZpb3VzV3JpdGluZ1N0eWxlU2F2ZSA9IHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5maW5kKChzYXZlKSA9PiBzYXZlLnN0eWxlID09PSB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlKTtcclxuXHJcbiAgICBpZiAocHJldmlvdXNXcml0aW5nU3R5bGVTYXZlKSB7XHJcbiAgICAgIHByZXZpb3VzV3JpdGluZ1N0eWxlU2F2ZS50ZXh0ID0gdGhpcy5lZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMuZWRpdGVkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNhdmVkUmVwaHJhc2luZ3MucHVzaCh7IHN0eWxlOiB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlLCB0ZXh0OiB0aGlzLmVkaXRlZFRleHQgIT09ICcnID8gdGhpcy5lZGl0ZWRUZXh0IDogdGhpcy5pbml0aWFsVGV4dCB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRlZFRleHQgPSBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmU/LnRleHQgPz8gdGhpcy5pbml0aWFsVGV4dDtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gICAgdGhpcy5jaGVja1RleHRMaW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdGVkVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5sbG1BY3Rpb25UeXBlID09PSBMTE1BY3Rpb25zLlJFUEhSQVNFKSB7XHJcbiAgICAgIHRoaXMud3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VtbWFyeVBsYXVzaWJsZUV2ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldFJlcXVlc3QoKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB0ZXh0RWRpdEV2ZW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjb3B5UGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQodGhpcy5sbG1BY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCksIHsgYWN0aW9uOiAnY29weScgfSk7XHJcbiAgfVxyXG5cclxuICBkaXNsaWtlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQodGhpcy5sbG1BY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCksIHsgYWN0aW9uOiAnZGlzbGlrZScgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEluaXRpYWxUZXh0KCkge1xyXG4gICAgdGhpcy5kYXRhLnRleHQuc3Vic2NyaWJlKCh0ZXh0KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbFRleHQgPSB0ZXh0O1xyXG4gICAgICB0aGlzLmxsbUFjdGlvblR5cGUgPSB0aGlzLmRhdGEuYWN0aW9uO1xyXG4gICAgICB0aGlzLmxvY2FsaXphdGlvbktleSA9IGBMTE0uJHt0aGlzLmxsbUFjdGlvblR5cGV9X01PREFMLmBcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25VcmwgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5zdWJzY3JpcHRpb25Vcmw7XHJcbiAgICAgIHRoaXMubWF4Q2hhckxlbmd0aCA9IHRoaXMubGxtSGVscGVyU2VydmljZS5sbG1Db25maWd1cmF0aW9uLm1heENoYXJMZW5ndGg7XHJcblxyXG4gICAgICB0aGlzLnJlZnJlc2hRdW90YSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUZXh0TGltaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsaW1pdCA9IHRoaXMubWF4Q2hhckxlbmd0aDtcclxuICAgIGNvbnN0IHRleHRzID0gW3RoaXMuaW5pdGlhbFRleHQsIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0LCB0aGlzLmVkaXRlZFRleHRdO1xyXG4gICAgY29uc3QgbG9uZ2VzdFRleHQgPSB0aGlzLmVkaXRlZFRleHQgJiYgIXRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID8gdGhpcy5lZGl0ZWRUZXh0IDogdGV4dHMucmVkdWNlKChhLCBiKSA9PiBhLmxlbmd0aCA+IGIubGVuZ3RoID8gYSA6IGIpO1xyXG5cclxuICAgIGlmIChsb25nZXN0VGV4dC5sZW5ndGggPiBsaW1pdCkge1xyXG4gICAgICBpZiAodGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmV4Y2VlZGVkTGltaXRNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldEV4Y2VlZGVkTGltaXRNZXNzYWdlKGxvbmdlc3RUZXh0Lmxlbmd0aCk7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMucHVzaCh0aGlzLmV4Y2VlZGVkTGltaXRNZXNzYWdlKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbG9zZU1lc3NhZ2UodGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdyaXRpbmdTdHlsZVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IHdyaXRpbmdTdHlsZTogdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VtbWFyeVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ3N1bW1hcnknIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVtYWluaW5nUXVvdGEoZGVjcmVhc2UpLnN1YnNjcmliZSgocmVtYWluaW5nUXVvdGEpID0+IHtcclxuICAgICAgdGhpcy5xdW90YUxlZnQgPSByZW1haW5pbmdRdW90YTtcclxuICAgICAgdGhpcy5zZXRRdW90YU1lc3NhZ2UoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1b3RhTWVzc2FnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1b3RhTGVmdCA8PSB0aGlzLmxsbUhlbHBlclNlcnZpY2UudHJpYWxSZXF1ZXN0Q291bnQpIHtcclxuICAgICAgdGhpcy5yZW1haW5pbmdRdW90YU1lc3NhZ2VWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5xdW90YUxlZnQgPCAxKSB7XHJcbiAgICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMucHVzaCh0aGlzLnJlYWNoZWRRdW90YU1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSZXF1ZXN0KCk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICBsZXQgdGV4dCA9XHJcbiAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ICE9PSAnJ1xyXG4gICAgICAgID8gdGhpcy5tYW51YWxseUVkaXRlZFRleHRcclxuICAgICAgICA6IHRoaXMuaW5pdGlhbFRleHQ7XHJcblxyXG4gICAgaWYgKHRleHQubGVuZ3RoID4gdGhpcy5tYXhDaGFyTGVuZ3RoKSB7XHJcbiAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0aGlzLm1heENoYXJMZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1ldGhvZCA9XHJcbiAgICAgIHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gTExNQWN0aW9ucy5SRVBIUkFTRVxyXG4gICAgICAgID8gdGhpcy5sbG1TZXJ2aWNlLnJlcGhyYXNlKHsgdGV4dDogdGV4dCwgbGFuZ3VhZ2U6IHRoaXMuZGF0YS5sYW5ndWFnZSwgc3R5bGU6IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUsIHVzZUNhc2U6IHRoaXMuc2VsZWN0ZWRVc2VDYXNlIGFzIExMTVJlcGhyYXNlVXNlQ2FzZSB9KVxyXG4gICAgICAgIDogdGhpcy5sbG1TZXJ2aWNlLnN1bW1hcml6ZSh7IHRleHQ6IHRleHQsIGxhbmd1YWdlOiB0aGlzLmRhdGEubGFuZ3VhZ2UsIHVzZUNhc2U6IHRoaXMuc2VsZWN0ZWRVc2VDYXNlIGFzIExMTVN1bW1hcnlVc2VDYXNlIH0pO1xyXG5cclxuICAgIHJldHVybiBtZXRob2RcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKSlcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmdldFJlcXVlc3RDYWxsYmFjaygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmVxdWVzdENhbGxiYWNrKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5sbG1BY3Rpb25UeXBlID09PSB0aGlzLmxsbUFjdGlvbnMuU1VNTUFSWSkge1xyXG4gICAgICAgICAgdGhpcy5pc1N1bW1hcml6ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lZGl0ZWRUZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuICAgICAgICB0aGlzLmRlZmF1bHRFcnJvck1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0RGVmYXVsdEVycm9yTWVzc2FnZSgpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMuZGVmYXVsdEVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZU1lc3NhZ2UodGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFF1b3RhKHRydWUpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tUZXh0TGltaXQoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSBFUlJPUl9DT0RFUy5USU1FT1VUKSB7XHJcbiAgICAgICAgICB0aGlzLnJlcXVlc3RUaW1lb3V0TWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZXF1ZXN0VGltZW91dE1lc3NhZ2UodGhpcy5sbG1BY3Rpb25UeXBlKTtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZXMucHVzaCh0aGlzLnJlcXVlc3RUaW1lb3V0TWVzc2FnZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5kZWZhdWx0RXJyb3JNZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyBsb2NhbGl6YXRpb25LZXkgKyBcIlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cD57eyBsb2NhbGl6YXRpb25LZXkgKyBcIkRFU0NSSVBUSU9OXCIgfCB0cmFuc2xhdGUgfX08L3A+XHJcblxyXG4gIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzXCIgW21lc3NhZ2VdPVwibWVzc2FnZVwiIChjbG9zZUNsaWNrZWQpPVwiY2xvc2VNZXNzYWdlKG1lc3NhZ2UpXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG5cclxuICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJzaG93VXNlQ2FzZVwiIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJ3LWZ1bGwgbGxtLXdyaXRpbmctc3R5bGUtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgIDxtYXQtbGFiZWw+e3sgJ0xMTS5VU0VfQ0FTRVNfTEFCRUwnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFVzZUNhc2VcIj5cclxuICAgICAgQGZvciAodXNlQ2FzZSBvZiB1c2VDYXNlczsgdHJhY2sgJGluZGV4KSB7XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ1c2VDYXNlXCI+XHJcbiAgICAgICAgICB7eyAnTExNLlVTRV9DQVNFLicgKyAodXNlQ2FzZSB8IHVwcGVyY2FzZSkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcblxyXG4gIDxsaWItbGxtLXRleHRhcmVhIFtjbGFzcy5yZXBocmFzZV09XCJsbG1BY3Rpb25UeXBlID09PSBsbG1BY3Rpb25zLlJFUEhSQVNFXCIgW3RleHRdPVwiZWRpdGVkVGV4dCAhPT0gJycgPyBlZGl0ZWRUZXh0IDogaW5pdGlhbFRleHRcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nIHx8ICFxdW90YUxlZnRcIiBbYWN0aW9uQnV0dG9uc0Rpc2FibGVkXT1cIiFpc0VkaXRlZFwiICh0ZXh0RWRpdEV2ZW50KT1cInRleHRFZGl0RXZlbnQoJGV2ZW50KVwiIChjb3B5RXZlbnQpPVwiY29weVBsYXVzaWJsZUV2ZW50KClcIiAoZGlzbGlrZUV2ZW50KT1cImRpc2xpa2VQbGF1c2libGVFdmVudCgpXCI+PC9saWItbGxtLXRleHRhcmVhPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImxsbS1hY3Rpb25zLXdyYXBwZXJcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGRpdiAqbmdJZj1cInJlbWFpbmluZ1F1b3RhTWVzc2FnZVZpc2libGVcIiBjbGFzcz1cInF1b3RhLWxlZnQtbWVzc2FnZVwiIFtpbm5lckhUTUxdPVwibG9jYWxpemF0aW9uS2V5ICsgJ0xJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogcXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhcmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIGNsYXNzPVwibGxtLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IGxvY2FsaXphdGlvbktleSArIFwiQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cImdldEVkaXRlZFRleHQoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJsbG1BY3Rpb25UeXBlID09PSBsbG1BY3Rpb25zLlNVTU1BUlk7IGVsc2UgcmVwaHJhc2VBY3Rpb25cIj5cclxuICAgICAgICB7e1xyXG4gICAgICAgICAgKCFpc1N1bW1hcml6ZWRcclxuICAgICAgICAgICAgPyBcIkxMTS5TVU1NQVJZX01PREFMLkFDVElPTlwiXHJcbiAgICAgICAgICAgIDogXCJMTE0uU1VNTUFSWV9NT0RBTC5SRUdFTkVSQVRFXCJcclxuICAgICAgICAgICkgfCB0cmFuc2xhdGVcclxuICAgICAgICB9fVxyXG4gICAgICA8L3NwYW4+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI3JlcGhyYXNlQWN0aW9uPlxyXG4gICAgICAgIHt7IGxvY2FsaXphdGlvbktleSArIFwiQUNUSU9OXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjIwXCIgY29sb3I9XCJwcmltYXJ5LWFjY2VudC1kYXJrZXJcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL2NvbXBvbmVudHMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVGLE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUHBFLHdEQUEwSDtJQUF2QyxxUkFBZ0IsK0JBQXFCLEtBQUM7SUFBQyxpQkFBK0I7OztJQUExRixvQ0FBbUI7OztJQU81RSxzQ0FBOEI7SUFDNUIsWUFDRjs7O0lBQUEsaUJBQWE7OztJQUZELGtDQUFpQjtJQUMzQixjQUNGO0lBREUseUdBQ0Y7Ozs7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QUE1QyxtRUFBNEMsK0JBQW1CO1lBWXhELGVBQWU7WUFBZixvQ0FBZTs7O2lGRG5DdEIsK0JBQStCO2NBTDNDLFNBQVM7MkJBQ0UsK0JBQStCOztzQkErQ3RDLE1BQU07dUJBQUMsZUFBZTs7a0ZBM0NkLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IExMTVJlcGhyYXNlVXNlQ2FzZSwgTExNU2VydmljZSwgTExNU3VtbWFyeVVzZUNhc2UgfSBmcm9tICdAdGlsZGUtbmxwL25neC1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRVJST1JfQ09ERVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBQbGF1c2libGVIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9wbGF1c2libGUnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQgeyBMTE1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgTExNV3JpdGluZ1N0eWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS13cml0aW5nLXN0eWxlLmVudW0nO1xyXG5pbXBvcnQgeyBMTE1IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLWhlbHBlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExMTVRleHRhcmVhV2l0aEFjdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgaXNTdW1tYXJpemVkITogYm9vbGVhbjtcclxuICBpc0VkaXRlZCE6IGJvb2xlYW47XHJcbiAgcmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZSE6IGJvb2xlYW47XHJcbiAgcXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIG1heENoYXJMZW5ndGghOiBudW1iZXI7XHJcbiAgc3Vic2NyaXB0aW9uVXJsITogc3RyaW5nO1xyXG4gIHByZXZpb3VzV3JpdGluZ1N0eWxlITogTExNV3JpdGluZ1N0eWxlO1xyXG4gIHNlbGVjdGVkV3JpdGluZ1N0eWxlID0gTExNV3JpdGluZ1N0eWxlLkdFTkVSQUw7XHJcblxyXG4gIHJlYWNoZWRRdW90YU1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG4gIGV4Y2VlZGVkTGltaXRNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuICByZXF1ZXN0VGltZW91dE1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG4gIGRlZmF1bHRFcnJvck1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG5cclxuICBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGluaXRpYWxUZXh0ITogc3RyaW5nO1xyXG4gIGVkaXRlZFRleHQgPSAnJztcclxuICBtYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgbG9jYWxpemF0aW9uS2V5ITogc3RyaW5nO1xyXG4gIGxsbUFjdGlvblR5cGUhOiBMTE1BY3Rpb25zO1xyXG4gIHNlbGVjdGVkVXNlQ2FzZSE6IExMTVN1bW1hcnlVc2VDYXNlIHwgTExNUmVwaHJhc2VVc2VDYXNlO1xyXG5cclxuICBwcml2YXRlIHNhdmVkUmVwaHJhc2luZ3M6IHsgc3R5bGU6IExMTVdyaXRpbmdTdHlsZSwgdGV4dDogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICByZWFkb25seSBsbG1BY3Rpb25zID0gTExNQWN0aW9ucztcclxuICByZWFkb25seSB3cml0aW5nU3R5bGVzID0gT2JqZWN0LnZhbHVlcyhMTE1Xcml0aW5nU3R5bGUpO1xyXG4gIHVzZUNhc2VzOiBMTE1TdW1tYXJ5VXNlQ2FzZVtdIHwgTExNUmVwaHJhc2VVc2VDYXNlW10gPSBbXTtcclxuXHJcbiAgcmVhZG9ubHkgbWVzc2FnZXM6IE5vdGlmaWNhdGlvbk1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICBzaG93VXNlQ2FzZSA9IGZhbHNlO1xyXG5cclxuICBnZXQgaXNEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyB8fCAhdGhpcy5pbml0aWFsVGV4dCB8fCB0aGlzLnF1b3RhTGVmdCA8IDE7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTExNU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtSGVscGVyU2VydmljZTogTExNSGVscGVyU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIHJlYWRvbmx5IGRhdGE6IExMTURhdGFcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFRleHQoKTtcclxuICAgIGlmKHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gTExNQWN0aW9ucy5SRVBIUkFTRSkge1xyXG4gICAgICB0aGlzLnVzZUNhc2VzICA9IHRoaXMuZGF0YS5yZXBocmFzZVVzZUNhc2VzID8/IE9iamVjdC52YWx1ZXMoTExNUmVwaHJhc2VVc2VDYXNlKSBhcyBMTE1SZXBocmFzZVVzZUNhc2VbXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZUNhc2UgPSB0aGlzLnVzZUNhc2VzWzBdO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZih0aGlzLmxsbUFjdGlvblR5cGUgPT09IExMTUFjdGlvbnMuU1VNTUFSWSkge1xyXG4gICAgICB0aGlzLnVzZUNhc2VzICA9IHRoaXMuZGF0YS5zdW1tYXJ5VXNlQ2FzZXMgPz8gT2JqZWN0LnZhbHVlcyhMTE1TdW1tYXJ5VXNlQ2FzZSkgYXMgTExNU3VtbWFyeVVzZUNhc2VbXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZUNhc2UgPSBMTE1TdW1tYXJ5VXNlQ2FzZS5HZW5lcmFsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd1VzZUNhc2UgPSAodGhpcy5sbG1BY3Rpb25UeXBlPT09ICBMTE1BY3Rpb25zLlJFUEhSQVNFICYmIHRoaXMuZGF0YS5zaG93VXNlQ2FzZVJlcGhyYXNlKSB8fCAodGhpcy5sbG1BY3Rpb25UeXBlID09PSBMTE1BY3Rpb25zLlNVTU1BUlkgJiYgdGhpcy5kYXRhLnNob3dVc2VDYXNlU3VtbWFyeSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZU1lc3NhZ2UobXNnOiBOb3RpZmljYXRpb25NZXNzYWdlKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWVzc2FnZXM/LmZpbmRJbmRleCgobWVzc2FnZSkgPT4gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkgPT09IEpTT04uc3RyaW5naWZ5KG1zZykpO1xyXG5cclxuICAgIGlmIChpbmRleCB8fCBpbmRleCA9PT0gMCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1JlcGhyYXNlZFRleHRTYXZlcyhldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQudmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUpIHtcclxuICAgICAgdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSA9IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgocmVwaHJhc2luZykgPT4gcmVwaHJhc2luZy5zdHlsZSA9PT0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSk7XHJcbiAgICBjb25zdCBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgoc2F2ZSkgPT4gc2F2ZS5zdHlsZSA9PT0gdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSk7XHJcblxyXG4gICAgaWYgKHByZXZpb3VzV3JpdGluZ1N0eWxlU2F2ZSkge1xyXG4gICAgICBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUudGV4dCA9IHRoaXMuZWRpdGVkVGV4dCAhPT0gJycgPyB0aGlzLmVkaXRlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zYXZlZFJlcGhyYXNpbmdzLnB1c2goeyBzdHlsZTogdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSwgdGV4dDogdGhpcy5lZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMuZWRpdGVkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0ZWRUZXh0ID0gc2VsZWN0ZWRXcml0aW5nU3R5bGVTYXZlPy50ZXh0ID8/IHRoaXMuaW5pdGlhbFRleHQ7XHJcbiAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICAgIHRoaXMuY2hlY2tUZXh0TGltaXQoKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRlZFRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gTExNQWN0aW9ucy5SRVBIUkFTRSkge1xyXG4gICAgICB0aGlzLndyaXRpbmdTdHlsZVBsYXVzaWJsZUV2ZW50KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1bW1hcnlQbGF1c2libGVFdmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5nZXRSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgdGV4dEVkaXRFdmVudCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gdGV4dDtcclxuICAgIHRoaXMuaW5pdGlhbFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5lZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gICAgdGhpcy5jaGVja1RleHRMaW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29weVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ2NvcHknIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzbGlrZVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ2Rpc2xpa2UnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbml0aWFsVGV4dCgpIHtcclxuICAgIHRoaXMuZGF0YS50ZXh0LnN1YnNjcmliZSgodGV4dCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGV4dDtcclxuICAgICAgdGhpcy5sbG1BY3Rpb25UeXBlID0gdGhpcy5kYXRhLmFjdGlvbjtcclxuICAgICAgdGhpcy5sb2NhbGl6YXRpb25LZXkgPSBgTExNLiR7dGhpcy5sbG1BY3Rpb25UeXBlfV9NT0RBTC5gXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uVXJsID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3Vic2NyaXB0aW9uVXJsO1xyXG4gICAgICB0aGlzLm1heENoYXJMZW5ndGggPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5tYXhDaGFyTGVuZ3RoO1xyXG5cclxuICAgICAgdGhpcy5yZWZyZXNoUXVvdGEoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrVGV4dExpbWl0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbGltaXQgPSB0aGlzLm1heENoYXJMZW5ndGg7XHJcbiAgICBjb25zdCB0ZXh0cyA9IFt0aGlzLmluaXRpYWxUZXh0LCB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCwgdGhpcy5lZGl0ZWRUZXh0XTtcclxuICAgIGNvbnN0IGxvbmdlc3RUZXh0ID0gdGhpcy5lZGl0ZWRUZXh0ICYmICF0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA/IHRoaXMuZWRpdGVkVGV4dCA6IHRleHRzLnJlZHVjZSgoYSwgYikgPT4gYS5sZW5ndGggPiBiLmxlbmd0aCA/IGEgOiBiKTtcclxuXHJcbiAgICBpZiAobG9uZ2VzdFRleHQubGVuZ3RoID4gbGltaXQpIHtcclxuICAgICAgaWYgKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmV4Y2VlZGVkTGltaXRNZXNzYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRFeGNlZWRlZExpbWl0TWVzc2FnZShsb25nZXN0VGV4dC5sZW5ndGgpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3cml0aW5nU3R5bGVQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCh0aGlzLmxsbUFjdGlvblR5cGUudG9Mb3dlckNhc2UoKSwgeyB3cml0aW5nU3R5bGU6IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1bW1hcnlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCh0aGlzLmxsbUFjdGlvblR5cGUudG9Mb3dlckNhc2UoKSwgeyBhY3Rpb246ICdzdW1tYXJ5JyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFF1b3RhKGRlY3JlYXNlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlbWFpbmluZ1F1b3RhKGRlY3JlYXNlKS5zdWJzY3JpYmUoKHJlbWFpbmluZ1F1b3RhKSA9PiB7XHJcbiAgICAgIHRoaXMucXVvdGFMZWZ0ID0gcmVtYWluaW5nUXVvdGE7XHJcbiAgICAgIHRoaXMuc2V0UXVvdGFNZXNzYWdlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YU1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdW90YUxlZnQgPD0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLnRyaWFsUmVxdWVzdENvdW50KSB7XHJcbiAgICAgIHRoaXMucmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucXVvdGFMZWZ0IDwgMSkge1xyXG4gICAgICB0aGlzLnJlYWNoZWRRdW90YU1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVhY2hlZFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5yZWFjaGVkUXVvdGFNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmVxdWVzdCgpOiBTdWJzY3JpcHRpb24ge1xyXG4gICAgbGV0IHRleHQgPVxyXG4gICAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCAhPT0gJydcclxuICAgICAgICA/IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0XHJcbiAgICAgICAgOiB0aGlzLmluaXRpYWxUZXh0O1xyXG5cclxuICAgIGlmICh0ZXh0Lmxlbmd0aCA+IHRoaXMubWF4Q2hhckxlbmd0aCkge1xyXG4gICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgdGhpcy5tYXhDaGFyTGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtZXRob2QgPVxyXG4gICAgICB0aGlzLmxsbUFjdGlvblR5cGUgPT09IExMTUFjdGlvbnMuUkVQSFJBU0VcclxuICAgICAgICA/IHRoaXMubGxtU2VydmljZS5yZXBocmFzZSh7IHRleHQ6IHRleHQsIGxhbmd1YWdlOiB0aGlzLmRhdGEubGFuZ3VhZ2UsIHN0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlLCB1c2VDYXNlOiB0aGlzLnNlbGVjdGVkVXNlQ2FzZSBhcyBMTE1SZXBocmFzZVVzZUNhc2UgfSlcclxuICAgICAgICA6IHRoaXMubGxtU2VydmljZS5zdW1tYXJpemUoeyB0ZXh0OiB0ZXh0LCBsYW5ndWFnZTogdGhpcy5kYXRhLmxhbmd1YWdlLCB1c2VDYXNlOiB0aGlzLnNlbGVjdGVkVXNlQ2FzZSBhcyBMTE1TdW1tYXJ5VXNlQ2FzZSB9KTtcclxuXHJcbiAgICByZXR1cm4gbWV0aG9kXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5nZXRSZXF1ZXN0Q2FsbGJhY2soKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJlcXVlc3RDYWxsYmFjaygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gdGhpcy5sbG1BY3Rpb25zLlNVTU1BUlkpIHtcclxuICAgICAgICAgIHRoaXMuaXNTdW1tYXJpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHJlc3BvbnNlO1xyXG4gICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmRlZmF1bHRFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMucmVxdWVzdFRpbWVvdXRNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLmlzRWRpdGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gRVJST1JfQ09ERVMuVElNRU9VVCkge1xyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVxdWVzdFRpbWVvdXRNZXNzYWdlKHRoaXMubGxtQWN0aW9uVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMuZGVmYXVsdEVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJUSVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHAgW2lubmVySFRNTF09XCJsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlXCI+PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cImNsb3NlTWVzc2FnZShtZXNzYWdlKVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuXHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwic2hvd1VzZUNhc2VcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7ICdMTE0uVVNFX0NBU0VTX0xBQkVMJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgPG1hdC1zZWxlY3QgW2Rpc2FibGVkXT1cImlzTG9hZGluZ1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRVc2VDYXNlXCI+XHJcbiAgICAgIEBmb3IgKHVzZUNhc2Ugb2YgdXNlQ2FzZXM7IHRyYWNrICRpbmRleCkge1xyXG5cclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidXNlQ2FzZVwiPlxyXG4gICAgICAgICAge3sgJ0xMTS5VU0VfQ0FTRS4nICsgKHVzZUNhc2UgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbY2xhc3MucmVwaHJhc2VdPVwibGxtQWN0aW9uVHlwZSA9PT0gbGxtQWN0aW9ucy5SRVBIUkFTRVwiIFt0ZXh0XT1cImVkaXRlZFRleHQgIT09ICcnID8gZWRpdGVkVGV4dCA6IGluaXRpYWxUZXh0XCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhcXVvdGFMZWZ0XCIgW2FjdGlvbkJ1dHRvbnNEaXNhYmxlZF09XCIhaXNFZGl0ZWRcIiAodGV4dEVkaXRFdmVudCk9XCJ0ZXh0RWRpdEV2ZW50KCRldmVudClcIiAoY29weUV2ZW50KT1cImNvcHlQbGF1c2libGVFdmVudCgpXCIgKGRpc2xpa2VFdmVudCk9XCJkaXNsaWtlUGxhdXNpYmxlRXZlbnQoKVwiPjwvbGliLWxsbS10ZXh0YXJlYT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJsbG0tYWN0aW9ucy13cmFwcGVyXCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgKm5nSWY9XCJyZW1haW5pbmdRdW90YU1lc3NhZ2VWaXNpYmxlXCIgY2xhc3M9XCJxdW90YS1sZWZ0LW1lc3NhZ2VcIiBbaW5uZXJIVE1MXT1cImxvY2FsaXphdGlvbktleSArICdMSU1JVCcgfCB0cmFuc2xhdGU6IHsgbGltaXQ6IHF1b3RhTGVmdCwgc3Vic2NyaXB0aW9uVXJsOiBzdWJzY3JpcHRpb25VcmwgfVwiPjwvZGl2PlxyXG5cclxuICA8ZGl2IFtjbGFzcy53LWZ1bGxdPVwiIXJlbWFpbmluZ1F1b3RhTWVzc2FnZVZpc2libGVcIiBjbGFzcz1cImxsbS1hY3Rpb25zXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiaXNMb2FkaW5nOyBlbHNlIGNsb3NlQnV0dG9uXCIgbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XHJcbiAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgXCJDTE9TRVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJnZXRFZGl0ZWRUZXh0KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGxtQWN0aW9uVHlwZSA9PT0gbGxtQWN0aW9ucy5TVU1NQVJZOyBlbHNlIHJlcGhyYXNlQWN0aW9uXCI+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgICghaXNTdW1tYXJpemVkXHJcbiAgICAgICAgICAgID8gXCJMTE0uU1VNTUFSWV9NT0RBTC5BQ1RJT05cIlxyXG4gICAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZXBocmFzZUFjdGlvbj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkFDVElPTlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ1wiIFtkaWFtZXRlcl09XCIyMFwiIGNvbG9yPVwicHJpbWFyeS1hY2NlbnQtZGFya2VyXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -38,7 +38,7 @@ function OpenCloseButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
38
38
  const closed_r2 = i0.ɵɵreference(7);
39
39
  const ctx_r0 = i0.ɵɵnextContext();
40
40
  i0.ɵɵproperty("disabled", ctx_r0.disabled)("disableRipple", true)("ngClass.lt-md", "open-close-button-tablet");
41
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 6, ctx_r0.ariaLabelCode));
41
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 7, ctx_r0.ariaLabelCode))("aria-expanded", ctx_r0.isOpened);
42
42
  i0.ɵɵadvance(5);
43
43
  i0.ɵɵproperty("ngIf", ctx_r0.isOpened)("ngIfElse", closed_r2);
44
44
  } }
@@ -81,7 +81,7 @@ export class OpenCloseButtonComponent {
81
81
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.button = _t.first);
82
82
  } }, inputs: { disableFocusOnAction: "disableFocusOnAction", disabled: "disabled", isIcon: "isIcon", ariaLabelCode: "ariaLabelCode", isOpened: "isOpened" }, ngContentSelectors: _c0, decls: 2, vars: 2, consts: [["closed", ""], ["mat-button", "", 3, "disabled", "disableRipple", "ngClass.lt-md", 4, "ngIf"], ["mat-icon-button", "", "fxLayoutAlign", "center center", 3, "disabled", 4, "ngIf"], ["mat-button", "", 3, "disabled", "disableRipple", "ngClass.lt-md"], ["fxLayout", "row", "fxLayoutAlign", "center center"], ["fxLayoutAlign", "center center", 1, "open-close-button-content", "text-l"], ["class", "material-icons spin", 4, "ngIf", "ngIfElse"], [1, "material-icons", "spin"], ["mat-icon-button", "", "fxLayoutAlign", "center center", 3, "disabled"], [1, "material-icons"]], template: function OpenCloseButtonComponent_Template(rf, ctx) { if (rf & 1) {
83
83
  i0.ɵɵprojectionDef();
84
- i0.ɵɵtemplate(0, OpenCloseButtonComponent_button_0_Template, 8, 8, "button", 1)(1, OpenCloseButtonComponent_button_1_Template, 4, 5, "button", 2);
84
+ i0.ɵɵtemplate(0, OpenCloseButtonComponent_button_0_Template, 8, 9, "button", 1)(1, OpenCloseButtonComponent_button_1_Template, 4, 5, "button", 2);
85
85
  } if (rf & 2) {
86
86
  i0.ɵɵproperty("ngIf", !ctx.isIcon);
87
87
  i0.ɵɵadvance();
@@ -90,7 +90,7 @@ export class OpenCloseButtonComponent {
90
90
  }
91
91
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OpenCloseButtonComponent, [{
92
92
  type: Component,
93
- args: [{ selector: 'lib-open-close-button', template: "<button\r\n mat-button\r\n *ngIf=\"!isIcon\"\r\n [disabled]=\"disabled\"\r\n [disableRipple]=\"true\"\r\n [ngClass.lt-md]=\"'open-close-button-tablet'\"\r\n [attr.aria-label]=\"ariaLabelCode | translate\">\r\n <span fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <span class=\"open-close-button-content text-l\" fxLayoutAlign=\"center center\">\r\n <ng-content></ng-content>\r\n </span>\r\n\r\n <span *ngIf=\"isOpened; else closed\" class=\"material-icons spin\">\r\n {{ icons.open }}\r\n </span>\r\n\r\n <ng-template #closed>\r\n <span class=\"material-icons spin\">\r\n {{ icons.close }}\r\n </span>\r\n </ng-template>\r\n </span>\r\n</button>\r\n<button\r\n mat-icon-button\r\n fxLayoutAlign=\"center center\"\r\n *ngIf=\"isIcon\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-label]=\"ariaLabelCode | translate\">\r\n <span class=\"material-icons\">\r\n {{ isOpened ? icons.open : icons.close }}\r\n </span>\r\n</button>\r\n", styles: [".spin{animation:spinArrow .3s forwards}@keyframes spinArrow{to{transform:rotate(180deg)}}.material-icons{color:var(--base-30)}\n"] }]
93
+ args: [{ selector: 'lib-open-close-button', template: "<button\r\n mat-button\r\n *ngIf=\"!isIcon\"\r\n [disabled]=\"disabled\"\r\n [disableRipple]=\"true\"\r\n [ngClass.lt-md]=\"'open-close-button-tablet'\"\r\n [attr.aria-label]=\"ariaLabelCode | translate\"\r\n [attr.aria-expanded]=\"isOpened\" \r\n>\r\n <span fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <span class=\"open-close-button-content text-l\" fxLayoutAlign=\"center center\">\r\n <ng-content></ng-content>\r\n </span>\r\n\r\n <span *ngIf=\"isOpened; else closed\" class=\"material-icons spin\">\r\n {{ icons.open }}\r\n </span>\r\n\r\n <ng-template #closed>\r\n <span class=\"material-icons spin\">\r\n {{ icons.close }}\r\n </span>\r\n </ng-template>\r\n </span>\r\n</button>\r\n<button\r\n mat-icon-button\r\n fxLayoutAlign=\"center center\"\r\n *ngIf=\"isIcon\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-label]=\"ariaLabelCode | translate\">\r\n <span class=\"material-icons\">\r\n {{ isOpened ? icons.open : icons.close }}\r\n </span>\r\n</button>\r\n", styles: [".spin{animation:spinArrow .3s forwards}@keyframes spinArrow{to{transform:rotate(180deg)}}.material-icons{color:var(--base-30)}\n"] }]
94
94
  }], () => [{ type: undefined, decorators: [{
95
95
  type: Optional
96
96
  }, {
@@ -111,4 +111,4 @@ export class OpenCloseButtonComponent {
111
111
  args: [MatButton]
112
112
  }] }); })();
113
113
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OpenCloseButtonComponent, { className: "OpenCloseButtonComponent", filePath: "lib\\open-close-button\\open-close-button.component.ts", lineNumber: 11 }); })();
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1jbG9zZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL29wZW4tY2xvc2UtYnV0dG9uL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9vcGVuLWNsb3NlLWJ1dHRvbi9vcGVuLWNsb3NlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7OztJQ1M1RCwrQkFBZ0U7SUFDOUQsWUFDRjtJQUFBLGlCQUFPOzs7SUFETCxjQUNGO0lBREUsa0RBQ0Y7OztJQUdFLCtCQUFrQztJQUNoQyxZQUNGO0lBQUEsaUJBQU87OztJQURMLGNBQ0Y7SUFERSxtREFDRjs7O0lBbkJOLGlDQU1nRDs7SUFFNUMsQUFERiwrQkFBbUQsY0FDNEI7SUFDM0Usa0JBQXlCO0lBQzNCLGlCQUFPO0lBTVAsQUFKQSxvRkFBZ0Usc0hBSTNDO0lBTXpCLEFBREUsaUJBQU8sRUFDQTs7OztJQWpCUCxBQURBLEFBREEsMENBQXFCLHVCQUNDLDZDQUNzQjs7SUFPbkMsZUFBZ0I7SUFBQSxBQUFoQixzQ0FBZ0IsdUJBQVc7OztJQVd0QyxpQ0FLZ0Q7O0lBQzlDLCtCQUE2QjtJQUMzQixZQUNGO0lBQ0YsQUFERSxpQkFBTyxFQUNBOzs7SUFMUCwwQ0FBcUI7O0lBR25CLGVBQ0Y7SUFERSx5RkFDRjs7QURyQkYsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxJQUFhLFFBQVEsQ0FBQyxLQUFjO1FBQ2xDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQU96QyxZQUE2RSxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZqSCxpQkFBWSxHQUFzQixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztJQUV1QixDQUFDO0lBRXRILFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO3lIQTlCVSx3QkFBd0IsdUJBc0JILDBCQUEwQjtvRUF0Qi9DLHdCQUF3QjsyQkFpQnhCLFNBQVM7Ozs7OztZQ0p0QixBQXZCQSwrRUFNZ0Qsa0VBc0JBOztZQTFCN0Msa0NBQWE7WUF3QmIsY0FBWTtZQUFaLGlDQUFZOzs7aUZEaEJGLHdCQUF3QjtjQUxwQyxTQUFTOzJCQUNFLHVCQUF1Qjs7c0JBMEJwQixRQUFROztzQkFBSSxNQUFNO3VCQUFDLDBCQUEwQjtxQkFuQmpELG9CQUFvQjtrQkFBNUIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBRU8sUUFBUTtrQkFBcEIsS0FBSztZQVNnQixNQUFNO2tCQUEzQixTQUFTO21CQUFDLFNBQVM7O2tGQWpCVCx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBPcGVuQ2xvc2VCdG5JY29ucyB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgT1BFTl9DTE9TRV9CVE5fSUNPTlNfVE9LRU4gfSBmcm9tICcuL2luamVjdGlvbi10b2tlbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItb3Blbi1jbG9zZS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcGVuLWNsb3NlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT3BlbkNsb3NlQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIF9pc09wZW5lZCE6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVGb2N1c09uQWN0aW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNJY29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhcmlhTGFiZWxDb2RlITogc3RyaW5nO1xyXG4gIFxyXG4gIEBJbnB1dCgpIHNldCBpc09wZW5lZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuX2lzT3BlbmVkICYmICF2YWx1ZSAmJiAhdGhpcy5kaXNhYmxlRm9jdXNPbkFjdGlvbikge1xyXG4gICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc09wZW5lZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzT3BlbmVkKCkgeyByZXR1cm4gdGhpcy5faXNPcGVuZWQ7IH1cclxuXHJcbiAgQFZpZXdDaGlsZChNYXRCdXR0b24pIGJ1dHRvbiE6IE1hdEJ1dHRvbjtcclxuXHJcbiAgaWNvbnMhOiBPcGVuQ2xvc2VCdG5JY29ucztcclxuICBkZWZhdWx0SWNvbnM6IE9wZW5DbG9zZUJ0bkljb25zID0geyBvcGVuOiAna2V5Ym9hcmRfYXJyb3dfZG93bicsIGNsb3NlOiAna2V5Ym9hcmRfYXJyb3dfdXAnIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoT1BFTl9DTE9TRV9CVE5fSUNPTlNfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgb3BlbkNsb3NlQnRuSWNvbnM6IE9wZW5DbG9zZUJ0bkljb25zICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmljb25zID0gdGhpcy5vcGVuQ2xvc2VCdG5JY29ucyA/PyB0aGlzLmRlZmF1bHRJY29ucztcclxuICB9XHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5idXR0b24uZm9jdXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIG1hdC1idXR0b25cclxuICAqbmdJZj1cIiFpc0ljb25cIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXHJcbiAgW25nQ2xhc3MubHQtbWRdPVwiJ29wZW4tY2xvc2UtYnV0dG9uLXRhYmxldCdcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ29kZSB8IHRyYW5zbGF0ZVwiPlxyXG4gIDxzcGFuIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwib3Blbi1jbG9zZS1idXR0b24tY29udGVudCB0ZXh0LWxcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCJpc09wZW5lZDsgZWxzZSBjbG9zZWRcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHNwaW5cIj5cclxuICAgICAge3sgaWNvbnMub3BlbiB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VkPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHNwaW5cIj5cclxuICAgICAgICB7eyBpY29ucy5jbG9zZSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvc3Bhbj5cclxuPC9idXR0b24+XHJcbjxidXR0b25cclxuICBtYXQtaWNvbi1idXR0b25cclxuICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgKm5nSWY9XCJpc0ljb25cIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxDb2RlIHwgdHJhbnNsYXRlXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxyXG4gICAge3sgaXNPcGVuZWQgPyBpY29ucy5vcGVuIDogaWNvbnMuY2xvc2UgfX1cclxuICA8L3NwYW4+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1jbG9zZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL29wZW4tY2xvc2UtYnV0dG9uL29wZW4tY2xvc2UtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9vcGVuLWNsb3NlLWJ1dHRvbi9vcGVuLWNsb3NlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7OztJQ1c1RCwrQkFBZ0U7SUFDOUQsWUFDRjtJQUFBLGlCQUFPOzs7SUFETCxjQUNGO0lBREUsa0RBQ0Y7OztJQUdFLCtCQUFrQztJQUNoQyxZQUNGO0lBQUEsaUJBQU87OztJQURMLGNBQ0Y7SUFERSxtREFDRjs7O0lBckJOLGlDQVFDOztJQUVHLEFBREYsK0JBQW1ELGNBQzRCO0lBQzNFLGtCQUF5QjtJQUMzQixpQkFBTztJQU1QLEFBSkEsb0ZBQWdFLHNIQUkzQztJQU16QixBQURFLGlCQUFPLEVBQ0E7Ozs7SUFuQlAsQUFEQSxBQURBLDBDQUFxQix1QkFDQyw2Q0FDc0I7O0lBU25DLGVBQWdCO0lBQUEsQUFBaEIsc0NBQWdCLHVCQUFXOzs7SUFXdEMsaUNBS2dEOztJQUM5QywrQkFBNkI7SUFDM0IsWUFDRjtJQUNGLEFBREUsaUJBQU8sRUFDQTs7O0lBTFAsMENBQXFCOztJQUduQixlQUNGO0lBREUseUZBQ0Y7O0FEdkJGLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFPekMsWUFBNkUsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGakgsaUJBQVksR0FBc0IsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLENBQUM7SUFFdUIsQ0FBQztJQUV0SCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt5SEE5QlUsd0JBQXdCLHVCQXNCSCwwQkFBMEI7b0VBdEIvQyx3QkFBd0I7MkJBaUJ4QixTQUFTOzs7Ozs7WUNGdEIsQUF6QkEsK0VBUUMsa0VBc0IrQzs7WUE1QjdDLGtDQUFhO1lBMEJiLGNBQVk7WUFBWixpQ0FBWTs7O2lGRGxCRix3QkFBd0I7Y0FMcEMsU0FBUzsyQkFDRSx1QkFBdUI7O3NCQTBCcEIsUUFBUTs7c0JBQUksTUFBTTt1QkFBQywwQkFBMEI7cUJBbkJqRCxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUVPLFFBQVE7a0JBQXBCLEtBQUs7WUFTZ0IsTUFBTTtrQkFBM0IsU0FBUzttQkFBQyxTQUFTOztrRkFqQlQsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgT3BlbkNsb3NlQnRuSWNvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IE9QRU5fQ0xPU0VfQlROX0lDT05TX1RPS0VOIH0gZnJvbSAnLi9pbmplY3Rpb24tdG9rZW5zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW9wZW4tY2xvc2UtYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb3Blbi1jbG9zZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9vcGVuLWNsb3NlLWJ1dHRvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE9wZW5DbG9zZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBfaXNPcGVuZWQhOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlRm9jdXNPbkFjdGlvbiE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzSWNvbiE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYXJpYUxhYmVsQ29kZSE6IHN0cmluZztcclxuICBcclxuICBASW5wdXQoKSBzZXQgaXNPcGVuZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLl9pc09wZW5lZCAmJiAhdmFsdWUgJiYgIXRoaXMuZGlzYWJsZUZvY3VzT25BY3Rpb24pIHtcclxuICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faXNPcGVuZWQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc09wZW5lZCgpIHsgcmV0dXJuIHRoaXMuX2lzT3BlbmVkOyB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0QnV0dG9uKSBidXR0b24hOiBNYXRCdXR0b247XHJcblxyXG4gIGljb25zITogT3BlbkNsb3NlQnRuSWNvbnM7XHJcbiAgZGVmYXVsdEljb25zOiBPcGVuQ2xvc2VCdG5JY29ucyA9IHsgb3BlbjogJ2tleWJvYXJkX2Fycm93X2Rvd24nLCBjbG9zZTogJ2tleWJvYXJkX2Fycm93X3VwJyB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KE9QRU5fQ0xPU0VfQlROX0lDT05TX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IG9wZW5DbG9zZUJ0bkljb25zOiBPcGVuQ2xvc2VCdG5JY29ucyApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pY29ucyA9IHRoaXMub3BlbkNsb3NlQnRuSWNvbnMgPz8gdGhpcy5kZWZhdWx0SWNvbnM7XHJcbiAgfVxyXG5cclxuICBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuYnV0dG9uLmZvY3VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICBtYXQtYnV0dG9uXHJcbiAgKm5nSWY9XCIhaXNJY29uXCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxyXG4gIFtuZ0NsYXNzLmx0LW1kXT1cIidvcGVuLWNsb3NlLWJ1dHRvbi10YWJsZXQnXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENvZGUgfCB0cmFuc2xhdGVcIlxyXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNPcGVuZWRcIiAgXHJcbj5cclxuICA8c3BhbiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm9wZW4tY2xvc2UtYnV0dG9uLWNvbnRlbnQgdGV4dC1sXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwiaXNPcGVuZWQ7IGVsc2UgY2xvc2VkXCIgY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBzcGluXCI+XHJcbiAgICAgIHt7IGljb25zLm9wZW4gfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlZD5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBzcGluXCI+XHJcbiAgICAgICAge3sgaWNvbnMuY2xvc2UgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3NwYW4+XHJcbjwvYnV0dG9uPlxyXG48YnV0dG9uXHJcbiAgbWF0LWljb24tYnV0dG9uXHJcbiAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICpuZ0lmPVwiaXNJY29uXCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ29kZSB8IHRyYW5zbGF0ZVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cclxuICAgIHt7IGlzT3BlbmVkID8gaWNvbnMub3BlbiA6IGljb25zLmNsb3NlIH19XHJcbiAgPC9zcGFuPlxyXG48L2J1dHRvbj5cclxuIl19