@tilde-nlp/ngx-menu 6.1.17 → 6.1.18

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.
@@ -9,11 +9,12 @@ import * as i4 from "@ngbracket/ngx-layout/flex";
9
9
  import * as i5 from "@ngbracket/ngx-layout/extended";
10
10
  import * as i6 from "@angular/router";
11
11
  import * as i7 from "@angular/common";
12
- import * as i8 from "@angular/material/icon";
13
- import * as i9 from "@angular/material/button";
14
- import * as i10 from "@angular/material/menu";
15
- import * as i11 from "../menu-columns/menu-columns.component";
16
- import * as i12 from "@ngx-translate/core";
12
+ import * as i8 from "@angular/material/tooltip";
13
+ import * as i9 from "@angular/material/icon";
14
+ import * as i10 from "@angular/material/button";
15
+ import * as i11 from "@angular/material/menu";
16
+ import * as i12 from "../menu-columns/menu-columns.component";
17
+ import * as i13 from "@ngx-translate/core";
17
18
  const _forTrack0 = ($index, $item) => $item.label;
18
19
  const _c0 = (a0, a1) => ({ icon: a0, label: a1 });
19
20
  function SideNavMenuComponent_a_14_Template(rf, ctx) { if (rf & 1) {
@@ -34,28 +35,28 @@ function SideNavMenuComponent_a_14_Template(rf, ctx) { if (rf & 1) {
34
35
  i0.ɵɵadvance(2);
35
36
  i0.ɵɵtextInterpolate1(" ", ctx_r2.productName, " ");
36
37
  } }
37
- function SideNavMenuComponent_button_24_ng_container_4_mat_icon_3_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵelementStart(0, "mat-icon", 25);
38
+ function SideNavMenuComponent_button_25_ng_container_4_mat_icon_3_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "mat-icon", 26);
39
40
  i0.ɵɵtext(1);
40
41
  i0.ɵɵelementEnd();
41
42
  } if (rf & 2) {
42
43
  i0.ɵɵadvance();
43
44
  i0.ɵɵtextInterpolate("keyboard_arrow_down");
44
45
  } }
45
- function SideNavMenuComponent_button_24_ng_container_4_ng_template_4_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementStart(0, "mat-icon", 25);
46
+ function SideNavMenuComponent_button_25_ng_container_4_ng_template_4_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelementStart(0, "mat-icon", 26);
47
48
  i0.ɵɵtext(1);
48
49
  i0.ɵɵelementEnd();
49
50
  } if (rf & 2) {
50
51
  i0.ɵɵadvance();
51
52
  i0.ɵɵtextInterpolate("keyboard_arrow_up");
52
53
  } }
53
- function SideNavMenuComponent_button_24_ng_container_4_Template(rf, ctx) { if (rf & 1) {
54
+ function SideNavMenuComponent_button_25_ng_container_4_Template(rf, ctx) { if (rf & 1) {
54
55
  i0.ɵɵelementContainerStart(0);
55
- i0.ɵɵelementStart(1, "span", 23);
56
+ i0.ɵɵelementStart(1, "span", 24);
56
57
  i0.ɵɵtext(2);
57
58
  i0.ɵɵelementEnd();
58
- i0.ɵɵtemplate(3, SideNavMenuComponent_button_24_ng_container_4_mat_icon_3_Template, 2, 1, "mat-icon", 24)(4, SideNavMenuComponent_button_24_ng_container_4_ng_template_4_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
59
+ i0.ɵɵtemplate(3, SideNavMenuComponent_button_25_ng_container_4_mat_icon_3_Template, 2, 1, "mat-icon", 25)(4, SideNavMenuComponent_button_25_ng_container_4_ng_template_4_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
59
60
  i0.ɵɵelementContainerEnd();
60
61
  } if (rf & 2) {
61
62
  const iconDown_r4 = i0.ɵɵreference(5);
@@ -67,81 +68,81 @@ function SideNavMenuComponent_button_24_ng_container_4_Template(rf, ctx) { if (r
67
68
  i0.ɵɵadvance();
68
69
  i0.ɵɵproperty("ngIf", state_r5.menuOpen)("ngIfElse", iconDown_r4);
69
70
  } }
70
- function SideNavMenuComponent_button_24_Template(rf, ctx) { if (rf & 1) {
71
- i0.ɵɵelementStart(0, "button", 20, 2)(2, "div", 21);
71
+ function SideNavMenuComponent_button_25_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵelementStart(0, "button", 21, 2)(2, "div", 22);
72
73
  i0.ɵɵtext(3);
73
74
  i0.ɵɵelementEnd();
74
- i0.ɵɵtemplate(4, SideNavMenuComponent_button_24_ng_container_4_Template, 6, 3, "ng-container", 22);
75
+ i0.ɵɵtemplate(4, SideNavMenuComponent_button_25_ng_container_4_Template, 6, 3, "ng-container", 23);
75
76
  i0.ɵɵelementEnd();
76
77
  } if (rf & 2) {
77
78
  const ctx_r2 = i0.ɵɵnextContext();
78
- const menu_r6 = i0.ɵɵreference(26);
79
+ const menu_r6 = i0.ɵɵreference(27);
79
80
  i0.ɵɵproperty("matMenuTriggerFor", menu_r6);
80
81
  i0.ɵɵadvance(3);
81
82
  i0.ɵɵtextInterpolate1(" ", ctx_r2.userInitials, " ");
82
83
  i0.ɵɵadvance();
83
84
  i0.ɵɵproperty("ngIf", !ctx_r2.collapsed);
84
85
  } }
85
- function SideNavMenuComponent_For_28_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
86
+ function SideNavMenuComponent_For_29_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
86
87
  i0.ɵɵelementContainer(0);
87
88
  } }
88
- function SideNavMenuComponent_For_28_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
89
- i0.ɵɵelementStart(0, "a", 27);
90
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_28_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 29);
89
+ function SideNavMenuComponent_For_29_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelementStart(0, "a", 28);
91
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_29_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 30);
91
92
  i0.ɵɵelementEnd();
92
93
  } if (rf & 2) {
93
94
  const item_r7 = i0.ɵɵnextContext(2).$implicit;
94
95
  i0.ɵɵnextContext();
95
- const profileMenuItem_r8 = i0.ɵɵreference(30);
96
+ const profileMenuItem_r8 = i0.ɵɵreference(31);
96
97
  i0.ɵɵproperty("href", item_r7.link.href, i0.ɵɵsanitizeUrl);
97
98
  i0.ɵɵadvance();
98
99
  i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c0, item_r7.icon, item_r7.label));
99
100
  } }
100
- function SideNavMenuComponent_For_28_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
101
+ function SideNavMenuComponent_For_29_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
101
102
  i0.ɵɵelementContainer(0);
102
103
  } }
103
- function SideNavMenuComponent_For_28_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵelementStart(0, "a", 28);
105
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_28_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 29);
104
+ function SideNavMenuComponent_For_29_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelementStart(0, "a", 29);
106
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_29_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 30);
106
107
  i0.ɵɵelementEnd();
107
108
  } if (rf & 2) {
108
109
  const item_r7 = i0.ɵɵnextContext(2).$implicit;
109
110
  i0.ɵɵnextContext();
110
- const profileMenuItem_r8 = i0.ɵɵreference(30);
111
+ const profileMenuItem_r8 = i0.ɵɵreference(31);
111
112
  i0.ɵɵproperty("routerLink", item_r7.link.href);
112
113
  i0.ɵɵadvance();
113
114
  i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c0, item_r7.icon, item_r7.label));
114
115
  } }
115
- function SideNavMenuComponent_For_28_Conditional_0_Template(rf, ctx) { if (rf & 1) {
116
- i0.ɵɵtemplate(0, SideNavMenuComponent_For_28_Conditional_0_Conditional_0_Template, 2, 6, "a", 27)(1, SideNavMenuComponent_For_28_Conditional_0_Conditional_1_Template, 2, 6, "a", 28);
116
+ function SideNavMenuComponent_For_29_Conditional_0_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_29_Conditional_0_Conditional_0_Template, 2, 6, "a", 28)(1, SideNavMenuComponent_For_29_Conditional_0_Conditional_1_Template, 2, 6, "a", 29);
117
118
  } if (rf & 2) {
118
119
  const item_r7 = i0.ɵɵnextContext().$implicit;
119
120
  i0.ɵɵconditional(item_r7.link.isExternal ? 0 : 1);
120
121
  } }
121
- function SideNavMenuComponent_For_28_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
122
+ function SideNavMenuComponent_For_29_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
122
123
  i0.ɵɵelementContainer(0);
123
124
  } }
124
- function SideNavMenuComponent_For_28_Conditional_1_Template(rf, ctx) { if (rf & 1) {
125
+ function SideNavMenuComponent_For_29_Conditional_1_Template(rf, ctx) { if (rf & 1) {
125
126
  const _r9 = i0.ɵɵgetCurrentView();
126
- i0.ɵɵelementStart(0, "button", 30);
127
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_28_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7.button == null ? null : item_r7.button.callback()); });
128
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_28_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 29);
127
+ i0.ɵɵelementStart(0, "button", 31);
128
+ i0.ɵɵlistener("click", function SideNavMenuComponent_For_29_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7.button == null ? null : item_r7.button.callback()); });
129
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_29_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 30);
129
130
  i0.ɵɵelementEnd();
130
131
  } if (rf & 2) {
131
132
  const item_r7 = i0.ɵɵnextContext().$implicit;
132
133
  i0.ɵɵnextContext();
133
- const profileMenuItem_r8 = i0.ɵɵreference(30);
134
+ const profileMenuItem_r8 = i0.ɵɵreference(31);
134
135
  i0.ɵɵadvance();
135
136
  i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c0, item_r7.icon, item_r7.label));
136
137
  } }
137
- function SideNavMenuComponent_For_28_Template(rf, ctx) { if (rf & 1) {
138
- i0.ɵɵtemplate(0, SideNavMenuComponent_For_28_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_28_Conditional_1_Template, 2, 5, "button", 26);
138
+ function SideNavMenuComponent_For_29_Template(rf, ctx) { if (rf & 1) {
139
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_29_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_29_Conditional_1_Template, 2, 5, "button", 27);
139
140
  } if (rf & 2) {
140
141
  const item_r7 = ctx.$implicit;
141
142
  i0.ɵɵconditional(item_r7.link ? 0 : 1);
142
143
  } }
143
- function SideNavMenuComponent_ng_template_29_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
144
- i0.ɵɵelementStart(0, "span", 33);
144
+ function SideNavMenuComponent_ng_template_30_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
145
+ i0.ɵɵelementStart(0, "span", 34);
145
146
  i0.ɵɵtext(1);
146
147
  i0.ɵɵelementEnd();
147
148
  } if (rf & 2) {
@@ -150,20 +151,20 @@ function SideNavMenuComponent_ng_template_29_Conditional_0_Conditional_0_Templat
150
151
  i0.ɵɵadvance();
151
152
  i0.ɵɵtextInterpolate1(" ", icon_r10 == null ? null : icon_r10.name, " ");
152
153
  } }
153
- function SideNavMenuComponent_ng_template_29_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
154
- i0.ɵɵelement(0, "mat-icon", 32);
154
+ function SideNavMenuComponent_ng_template_30_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
155
+ i0.ɵɵelement(0, "mat-icon", 33);
155
156
  } if (rf & 2) {
156
157
  const icon_r10 = i0.ɵɵnextContext(2).icon;
157
158
  i0.ɵɵproperty("svgIcon", icon_r10 == null ? null : icon_r10.name);
158
159
  } }
159
- function SideNavMenuComponent_ng_template_29_Conditional_0_Template(rf, ctx) { if (rf & 1) {
160
- i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_29_Conditional_0_Conditional_0_Template, 2, 3, "span", 31)(1, SideNavMenuComponent_ng_template_29_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 32);
160
+ function SideNavMenuComponent_ng_template_30_Conditional_0_Template(rf, ctx) { if (rf & 1) {
161
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_30_Conditional_0_Conditional_0_Template, 2, 3, "span", 32)(1, SideNavMenuComponent_ng_template_30_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 33);
161
162
  } if (rf & 2) {
162
163
  const icon_r10 = i0.ɵɵnextContext().icon;
163
164
  i0.ɵɵconditional(!(icon_r10 == null ? null : icon_r10.isCustom) ? 0 : 1);
164
165
  } }
165
- function SideNavMenuComponent_ng_template_29_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_29_Conditional_0_Template, 2, 1);
166
+ function SideNavMenuComponent_ng_template_30_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_30_Conditional_0_Template, 2, 1);
167
168
  i0.ɵɵtext(1);
168
169
  i0.ɵɵpipe(2, "translate");
169
170
  } if (rf & 2) {
@@ -259,7 +260,7 @@ export class SideNavMenuComponent extends NavBaseComponent {
259
260
  this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];
260
261
  }
261
262
  static { this.ɵfac = function SideNavMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SideNavMenuComponent)(i0.ɵɵdirectiveInject(i1.StrapiLinkService), i0.ɵɵdirectiveInject(i2.DOMService), i0.ɵɵdirectiveInject(i3.MenuItemsService)); }; }
262
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings", productName: "productName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 31, vars: 28, consts: [["menu", "matMenu"], ["profileMenuItem", ""], ["state", "matMenuTrigger"], ["iconDown", ""], ["fxHide.gt-xs", ""], [1, "mobile-header", 3, "fxHide"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "width", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "menu-product-name"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", 1, "menu-container", 3, "ngClass.lt-sm"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "href", "click", 4, "ngIf"], ["fxHide.lt-sm", ""], ["fxLayout", "column", 1, "menu-wrapper"], ["role", "navigation", 3, "toggleCollapseEvent", "direction", "isOpen", "active"], [1, "profile"], ["class", "profile-wrapper", 3, "matMenuTriggerFor", 4, "ngIf"], [1, "profile-menu"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-name"], ["class", "profile-arrow spin", 4, "ngIf", "ngIfElse"], [1, "profile-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
263
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings", productName: "productName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 32, vars: 31, consts: [["menu", "matMenu"], ["profileMenuItem", ""], ["state", "matMenuTrigger"], ["iconDown", ""], ["fxHide.gt-xs", ""], [1, "mobile-header", 3, "fxHide"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "width", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "menu-product-name"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", 1, "menu-container", 3, "ngClass.lt-sm"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent", "matTooltip"], ["fxHide.lt-sm", ""], ["fxLayout", "column", 1, "menu-wrapper"], ["role", "navigation", 3, "toggleCollapseEvent", "direction", "isOpen", "active"], [1, "profile"], ["class", "profile-wrapper", 3, "matMenuTriggerFor", 4, "ngIf"], [1, "profile-menu"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-name"], ["class", "profile-arrow spin", 4, "ngIf", "ngIfElse"], [1, "profile-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
263
264
  const _r1 = i0.ɵɵgetCurrentView();
264
265
  i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "a", 6);
265
266
  i0.ɵɵpipe(3, "translate");
@@ -276,38 +277,39 @@ export class SideNavMenuComponent extends NavBaseComponent {
276
277
  i0.ɵɵelementEnd()()()();
277
278
  i0.ɵɵelementStart(11, "div", 10)(12, "div", 11)(13, "div", 12);
278
279
  i0.ɵɵtemplate(14, SideNavMenuComponent_a_14_Template, 5, 7, "a", 13);
279
- i0.ɵɵelementStart(15, "button", 9);
280
+ i0.ɵɵelementStart(15, "button", 14);
280
281
  i0.ɵɵpipe(16, "translate");
282
+ i0.ɵɵpipe(17, "translate");
281
283
  i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
282
- i0.ɵɵelementStart(17, "mat-icon", 4);
283
- i0.ɵɵtext(18, "close");
284
+ i0.ɵɵelementStart(18, "mat-icon", 4);
285
+ i0.ɵɵtext(19, "close");
284
286
  i0.ɵɵelementEnd();
285
- i0.ɵɵelementStart(19, "mat-icon", 14);
286
- i0.ɵɵtext(20);
287
+ i0.ɵɵelementStart(20, "mat-icon", 15);
288
+ i0.ɵɵtext(21);
287
289
  i0.ɵɵelementEnd()()();
288
- i0.ɵɵelementStart(21, "div", 15)(22, "menu-columns", 16);
289
- i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_22_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
290
+ i0.ɵɵelementStart(22, "div", 16)(23, "menu-columns", 17);
291
+ i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_23_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
290
292
  i0.ɵɵelementEnd()();
291
- i0.ɵɵelementStart(23, "div", 17);
292
- i0.ɵɵtemplate(24, SideNavMenuComponent_button_24_Template, 5, 3, "button", 18);
293
- i0.ɵɵelementStart(25, "mat-menu", 19, 0);
294
- i0.ɵɵrepeaterCreate(27, SideNavMenuComponent_For_28_Template, 2, 1, null, null, _forTrack0);
293
+ i0.ɵɵelementStart(24, "div", 18);
294
+ i0.ɵɵtemplate(25, SideNavMenuComponent_button_25_Template, 5, 3, "button", 19);
295
+ i0.ɵɵelementStart(26, "mat-menu", 20, 0);
296
+ i0.ɵɵrepeaterCreate(28, SideNavMenuComponent_For_29_Template, 2, 1, null, null, _forTrack0);
295
297
  i0.ɵɵelementEnd()();
296
- i0.ɵɵtemplate(29, SideNavMenuComponent_ng_template_29_Template, 3, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
298
+ i0.ɵɵtemplate(30, SideNavMenuComponent_ng_template_30_Template, 3, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
297
299
  i0.ɵɵelementEnd()();
298
300
  } if (rf & 2) {
299
301
  i0.ɵɵadvance();
300
302
  i0.ɵɵproperty("fxHide", !ctx.collapsed);
301
303
  i0.ɵɵadvance();
302
304
  i0.ɵɵproperty("libPlausibleEvent", ctx.LOGOCLICK_PLAUSIBLE_EVENT)("href", ctx.baseUrl, i0.ɵɵsanitizeUrl);
303
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(3, 22, "MENU.ARIA_LABELS.LOGO"));
305
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(3, 23, "MENU.ARIA_LABELS.LOGO"));
304
306
  i0.ɵɵadvance(2);
305
307
  i0.ɵɵproperty("src", ctx.menuLogoImage, i0.ɵɵsanitizeUrl);
306
308
  i0.ɵɵadvance(2);
307
309
  i0.ɵɵtextInterpolate1(" ", ctx.productName, " ");
308
310
  i0.ɵɵadvance();
309
311
  i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT);
310
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(8, 24, "ARIA_LABELS.MENU_TOGGLER"));
312
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(8, 25, "ARIA_LABELS.MENU_TOGGLER"));
311
313
  i0.ɵɵadvance(4);
312
314
  i0.ɵɵstyleProp("width", ctx.sideNavWidth);
313
315
  i0.ɵɵclassProp("collapsed", ctx.collapsed);
@@ -317,9 +319,9 @@ export class SideNavMenuComponent extends NavBaseComponent {
317
319
  i0.ɵɵadvance();
318
320
  i0.ɵɵproperty("ngIf", !ctx.collapsed);
319
321
  i0.ɵɵadvance();
320
- i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT);
321
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(16, 26, "ARIA_LABELS.MENU_TOGGLER"));
322
- i0.ɵɵadvance(5);
322
+ i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT)("matTooltip", i0.ɵɵpipeBind1(16, 27, ctx.collapsed ? "MENU.EXPAND" : "MENU.COLLAPSE"));
323
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(17, 29, "ARIA_LABELS.MENU_TOGGLER"));
324
+ i0.ɵɵadvance(6);
323
325
  i0.ɵɵtextInterpolate(ctx.collapsed ? "keyboard_double_arrow_right" : "keyboard_double_arrow_left");
324
326
  i0.ɵɵadvance(2);
325
327
  i0.ɵɵproperty("direction", ctx.direction)("isOpen", !ctx.collapsed)("active", ctx.active);
@@ -327,11 +329,11 @@ export class SideNavMenuComponent extends NavBaseComponent {
327
329
  i0.ɵɵproperty("ngIf", ctx.userInitials);
328
330
  i0.ɵɵadvance(3);
329
331
  i0.ɵɵrepeater(ctx.menuSettings.userOptions);
330
- } }, dependencies: [i4.DefaultLayoutDirective, i4.DefaultLayoutAlignDirective, i4.FlexFillDirective, i4.DefaultFlexDirective, i5.DefaultShowHideDirective, i5.DefaultClassDirective, i6.RouterLink, i7.NgIf, i7.NgTemplateOutlet, i8.MatIcon, i9.MatIconButton, i10.MatMenu, i10.MatMenuItem, i10.MatMenuTrigger, i2.PlausibleEventDirective, i11.MenuColumnsComponent, i12.TranslatePipe], styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed[_ngcontent-%COMP%]{display:none!important}.mobile.menu-container[_ngcontent-%COMP%]:not(.collapsed){display:block!important;position:absolute;min-width:100vw;min-height:100vh;z-index:1000}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{position:relative}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute!important;right:0}.menu-product-name[_ngcontent-%COMP%]{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--primary-accent-darker)}.menu-container[_ngcontent-%COMP%]{max-height:100vh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile[_ngcontent-%COMP%]{position:relative;height:100%;margin-top:100px}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px}.collapsed[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{margin:36px 0!important}.mobile[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:60vw}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.mobile[_ngcontent-%COMP%] .profile-arrow[_ngcontent-%COMP%]{position:absolute;right:0;margin-right:20px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none}[_nghost-%COMP%] .mobile .child-list .menu-item{padding:8px 54px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
332
+ } }, dependencies: [i4.DefaultLayoutDirective, i4.DefaultLayoutAlignDirective, i4.FlexFillDirective, i4.DefaultFlexDirective, i5.DefaultShowHideDirective, i5.DefaultClassDirective, i6.RouterLink, i7.NgIf, i7.NgTemplateOutlet, i8.MatTooltip, i9.MatIcon, i10.MatIconButton, i11.MatMenu, i11.MatMenuItem, i11.MatMenuTrigger, i2.PlausibleEventDirective, i12.MenuColumnsComponent, i13.TranslatePipe], styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed[_ngcontent-%COMP%]{display:none!important}.mobile.menu-container[_ngcontent-%COMP%]:not(.collapsed){display:block!important;position:absolute;min-width:100vw;min-height:100vh;z-index:1000}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{position:relative}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute!important;right:0}.menu-product-name[_ngcontent-%COMP%]{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--primary-accent-darker)}.menu-container[_ngcontent-%COMP%]{max-height:100vh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile[_ngcontent-%COMP%]{position:relative;height:100%;margin-top:100px}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px}.collapsed[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{margin:36px 0!important}.mobile[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:60vw}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.mobile[_ngcontent-%COMP%] .profile-arrow[_ngcontent-%COMP%]{position:absolute;right:0;margin-right:20px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none}[_nghost-%COMP%] .mobile .child-list .menu-item{padding:8px 54px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
331
333
  }
332
334
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideNavMenuComponent, [{
333
335
  type: Component,
334
- args: [{ selector: 'lib-side-nav-menu', template: "<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs>close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n <div class=\"profile\">\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"profile-arrow spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.link) {\r\n @if (item.link.isExternal) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item.button?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n <ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!icon?.isCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n {{icon?.name}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n </ng-template>\r\n</div>\r\n ", styles: ["a{text-decoration:none}.mobile-header{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed{display:none!important}.mobile.menu-container:not(.collapsed){display:block!important;position:absolute;min-width:100vw;min-height:100vh;z-index:1000}.mobile .profile-wrapper{position:relative}.mobile .profile-wrapper mat-icon{position:absolute!important;right:0}.menu-product-name{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--primary-accent-darker)}.menu-container{max-height:100vh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile{position:relative;height:100%;margin-top:100px}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px}.collapsed .profile-wrapper{margin:36px 0!important}.mobile .profile-name{max-width:60vw}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.mobile .profile-arrow{position:absolute;right:0;margin-right:20px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}:host ::ng-deep .mobile .child-list .menu-item{padding:8px 54px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
336
+ args: [{ selector: 'lib-side-nav-menu', template: "<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs>close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n <div class=\"profile\">\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"profile-arrow spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.link) {\r\n @if (item.link.isExternal) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item.button?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n <ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!icon?.isCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n {{icon?.name}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n </ng-template>\r\n</div>\r\n ", styles: ["a{text-decoration:none}.mobile-header{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed{display:none!important}.mobile.menu-container:not(.collapsed){display:block!important;position:absolute;min-width:100vw;min-height:100vh;z-index:1000}.mobile .profile-wrapper{position:relative}.mobile .profile-wrapper mat-icon{position:absolute!important;right:0}.menu-product-name{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--primary-accent-darker)}.menu-container{max-height:100vh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile{position:relative;height:100%;margin-top:100px}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px}.collapsed .profile-wrapper{margin:36px 0!important}.mobile .profile-name{max-width:60vw}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.mobile .profile-arrow{position:absolute;right:0;margin-right:20px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}:host ::ng-deep .mobile .child-list .menu-item{padding:8px 54px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
335
337
  }], () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: i3.MenuItemsService }], { username: [{
336
338
  type: Input
337
339
  }], menuSettings: [{
@@ -340,4 +342,4 @@ export class SideNavMenuComponent extends NavBaseComponent {
340
342
  type: Input
341
343
  }] }); })();
342
344
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SideNavMenuComponent, { className: "SideNavMenuComponent", filePath: "lib\\components\\side-nav-menu\\side-nav-menu.component.ts", lineNumber: 14 }); })();
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW5hdi1tZW51L3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDdUI1RCw0QkFFQzs7SUFEeUQsZ0xBQVMsd0JBQWlCLEtBQUM7SUFFbkYseUJBQWlGO0lBQ2pGLCtCQUFnQztJQUM5QixZQUNGO0lBQ0YsQUFERSxpQkFBTyxFQUNMOzs7SUFQbUYsQUFBakUsb0VBQStDLDBDQUFrQzs7SUFHdkQsZUFBcUI7SUFBckIsNERBQXFCO0lBRWpFLGVBQ0Y7SUFERSxtREFDRjs7O0lBK0JBLG9DQUEyRTtJQUFBLFlBQXlCO0lBQUEsaUJBQVc7O0lBQXBDLGNBQXlCO0lBQXpCLDJDQUF5Qjs7O0lBR2xHLG9DQUFxQztJQUFBLFlBQXdCO0lBQUEsaUJBQVc7O0lBQW5DLGNBQXdCO0lBQXhCLHlDQUF3Qjs7O0lBUmpFLDZCQUFpQztJQUMvQixnQ0FBMkI7SUFDekIsWUFDRjtJQUFBLGlCQUFPO0lBSVAsQUFGQSx5R0FBMkUsa0lBRXBEOzs7Ozs7O0lBTHJCLGVBQ0Y7SUFERSxnREFDRjtJQUVXLGNBQXNCO0lBQUEsQUFBdEIsd0NBQXNCLHlCQUFhOzs7SUFUaEQs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IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPTVNlcnZpY2UsIFBsYXVzaWJsZUV2ZW50LCBSZXNvbHV0aW9uSGVscGVyIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgU3RyYXBpTGlua1NlcnZpY2UgfSBmcm9tICdAdGlsZGUtbmxwL25neC1zdHJhcGknO1xyXG5pbXBvcnQgeyBOYXZCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LWJhc2UvbmF2LWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZU5hdlNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbHMvc2lkZS1uYXYtc2V0dGluZ3MubW9kZWwnO1xyXG5pbXBvcnQgeyBNZW51SXRlbXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVudS1pdGVtcy5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaWRlLW5hdi1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1uYXYtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYtbWVudS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlTmF2TWVudUNvbXBvbmVudCBleHRlbmRzIE5hdkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgI3VzZXJuYW1lITogc3RyaW5nO1xyXG4gIGdldCB1c2VybmFtZSgpIHsgcmV0dXJuIHRoaXMuI3VzZXJuYW1lOyB9XHJcbiAgQElucHV0KCkgc2V0IHVzZXJuYW1lKHZhbHVlKSB7XHJcbiAgICB0aGlzLiN1c2VybmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRVc2VySW5pdGlhbHMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG1lbnVTZXR0aW5nczogU2lkZU5hdlNldHRpbmdzID0ge1xyXG4gICAgZXhwYW5kZWRXaWR0aDogJzI0MXB4JyxcclxuICAgIGNvbGxhcHNlZFdpZHRoOiAnNTZweCcsXHJcbiAgICBtZW51TG9nbzogJycsXHJcbiAgICBtZW51TG9nb0NvbGxhcHNlZDogJycsXHJcbiAgICBkaXNhYmxlU3RyYXBpOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcHJvZHVjdE5hbWUhOiBzdHJpbmc7XHJcblxyXG4gIHVzZXJJbml0aWFscyE6IHN0cmluZztcclxuICBjb2xsYXBzZWQgPSBmYWxzZTtcclxuXHJcbiAgcmVhZG9ubHkgQ09MTEFQU0VEX0xPQ0FMX1NUT1JBR0VfS0VZID0gXCJUTERfTUVOVV9TSURFX05BVl9DT0xMQVBTRURcIjtcclxuXHJcbiAgLy8jcmVnaW9uIFBsYXVzaWJsZSBldmVudCB2YXJpYWJsZXMgZm9yIGNvbGxhcHNlIGJ1dHRvblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lEID0gXCJjb2xsYXBzZU1lbnVcIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IENPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZID0gXCJhY3Rpb25cIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IExPR09DTElDS19QTEFVU0lCTEVfQUNUSU9OX0lEID0gXCJ0aWxkZV9sb2dvX2NsaWNrXCJcclxuXHJcbiAgcmVhZG9ubHkgTE9HT0NMSUNLX1BMQVVTSUJMRV9FVkVOVDogUGxhdXNpYmxlRXZlbnQgPSB7XHJcbiAgICBldmVudElkOiB0aGlzLkxPR09DTElDS19QTEFVU0lCTEVfQUNUSU9OX0lELFxyXG4gICAgcHJvcGVydGllczogW11cclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IEVYUEFORF9QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5DT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRfSUQsXHJcbiAgICBwcm9wZXJ0aWVzOiBbeyBrZXk6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0FDVElPTl9LRVksIHZhbHVlOiBcImV4cGFuZFwiIH1dXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBDT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5DT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRfSUQsXHJcbiAgICBwcm9wZXJ0aWVzOiBbeyBrZXk6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0FDVElPTl9LRVksIHZhbHVlOiBcImNvbGxhcHNlXCIgfV1cclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IG1lbnVMb2dvSW1hZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZFxyXG4gICAgICA/IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvQ29sbGFwc2VkID8/IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvXHJcbiAgICAgIDogdGhpcy5tZW51U2V0dGluZ3MubWVudUxvZ287XHJcbiAgfVxyXG5cclxuICBnZXQgc2lkZU5hdldpZHRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWQgPyB0aGlzLm1lbnVTZXR0aW5ncy5jb2xsYXBzZWRXaWR0aCA6IHRoaXMubWVudVNldHRpbmdzLmV4cGFuZGVkV2lkdGg7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdHJhcGlMaW5rU2VydmljZTogU3RyYXBpTGlua1NlcnZpY2UsXHJcbiAgICByZWFkb25seSBkb21TZXJ2aWNlOiBET01TZXJ2aWNlLFxyXG4gICAgcmVhZG9ubHkgbWVudUl0ZW1zOiBNZW51SXRlbXNTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIobWVudUl0ZW1zKTtcclxuICAgIHRoaXMuYmFzZVVybCA9IG1lbnVJdGVtcy5tZW51U2hhcmVkQ29uZmlnLmJhc2VVcmwgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmdldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gICAgdGhpcy5zZXRVc2VySW5pdGlhbHMoKTtcclxuICB9XHJcblxyXG4gIGxvZ29DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHJhcGlMaW5rU2VydmljZS5zdHJhcGlMaW5rQ2xpY2soZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ29sbGFwc2UoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuICAgIHRoaXMuc2V0Q29sYXBzZWRGcm9tTG9jYWxTdG9yYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGlmICghdGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb2xsYXBzZWQgPSAodGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQ09MTEFQU0VEX0xPQ0FMX1NUT1JBR0VfS0VZKSA9PSAndHJ1ZScgfHwgUmVzb2x1dGlvbkhlbHBlci5pc01vYmlsZVJlcygpKSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q29sYXBzZWRGcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkNPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSwgdGhpcy5jb2xsYXBzZWQudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVzZXJJbml0aWFscygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy51c2VybmFtZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZGlzcGxheWluZyBmaXJzdCBsZXR0ZXJzIG9mIG5hbWUgYW5kIHN1cm5hbWVcclxuICAgIGNvbnN0IHNwbGl0dGVkVXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHNwbGl0dGVkVXNlcm5hbWUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgd29yZCwgdXNlIHRoZSBmaXJzdCBsZXR0ZXJcclxuICAgICAgdGhpcy51c2VySW5pdGlhbHMgPSBzcGxpdHRlZFVzZXJuYW1lWzBdWzBdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB3b3JkLCB1c2UgdGhlIGZpcnN0IGxldHRlciBvZiB0aGUgZmlyc3QgdHdvIG5hbWVzXHJcbiAgICB0aGlzLnVzZXJJbml0aWFscyA9IHNwbGl0dGVkVXNlcm5hbWVbMF1bMF0gKyBzcGxpdHRlZFVzZXJuYW1lWzFdWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGZ4SGlkZS5ndC14cz5cclxuICA8ZGl2IFtmeEhpZGVdPVwiIWNvbGxhcHNlZFwiIGNsYXNzPVwibW9iaWxlLWhlYWRlclwiPlxyXG4gICAgPGEgW2xpYlBsYXVzaWJsZUV2ZW50XT1cIkxPR09DTElDS19QTEFVU0lCTEVfRVZFTlRcIiBmeEZsZXg9XCIzLjEyNWVtXCIgW2hyZWZdPVwiYmFzZVVybFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01FTlUuQVJJQV9MQUJFTFMuTE9HTycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwibG9nb0NsaWNrKCRldmVudClcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPGltZyBoZWlnaHQ9XCI0MFwiIHdpZHRoPVwiNDBcIiBjbGFzcz1cIm1lbnUtbG9nb1wiIFtzcmNdPVwibWVudUxvZ29JbWFnZVwiIGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtcHJvZHVjdC1uYW1lXCI+XHJcbiAgICAgICAge3sgcHJvZHVjdE5hbWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cInRvZ2dsZXJcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5NRU5VX1RPR0dMRVInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW2xpYlBsYXVzaWJsZUV2ZW50XT1cImNvbGxhcHNlZCA/IEVYUEFORF9QTEFVU0lCTEVfRVZFTlQgOiBDT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRcIlxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgW25nQ2xhc3MubHQtc21dPVwiJ21vYmlsZSdcIiBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCIgW3N0eWxlLndpZHRoXT1cInNpZGVOYXZXaWR0aFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgW2NsYXNzLmNvbGxhcHNlZF09XCJjb2xsYXBzZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4RmlsbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRhaW5lci1oZWFkZXJcIiBmeExheW91dD1cInJvd1wiIFtmeExheW91dEFsaWduXT1cImNvbGxhcHNlZCA/ICdjZW50ZXIgY2VudGVyJyA6ICdzcGFjZS1iZXR3ZWVuIGNlbnRlcidcIj5cclxuICAgICAgPGEgKm5nSWY9XCIhY29sbGFwc2VkXCIgW2xpYlBsYXVzaWJsZUV2ZW50XT1cIkxPR09DTElDS19QTEFVU0lCTEVfRVZFTlRcIiBmeEZsZXg9XCIzLjEyNWVtXCIgW2hyZWZdPVwiYmFzZVVybFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTUVOVS5BUklBX0xBQkVMUy5MT0dPJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJsb2dvQ2xpY2soJGV2ZW50KVwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGltZyBoZWlnaHQ9XCI0MFwiIHdpZHRoPVwiNDBcIiBjbGFzcz1cIm1lbnUtbG9nb1wiIFtzcmNdPVwibWVudUxvZ29JbWFnZVwiIGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1wcm9kdWN0LW5hbWVcIj5cclxuICAgICAgICAgIHt7IHByb2R1Y3ROYW1lIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICAgIFxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJ0b2dnbGVyXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5NRU5VX1RPR0dMRVInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbbGliUGxhdXNpYmxlRXZlbnRdPVwiY29sbGFwc2VkID8gRVhQQU5EX1BMQVVTSUJMRV9FVkVOVCA6IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uIGZ4SGlkZS5ndC14cz5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1pY29uIGZ4SGlkZS5sdC1zbT57eyBjb2xsYXBzZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0JyA6ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfbGVmdCcgfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICBcclxuICAgIDxkaXYgY2xhc3M9XCJtZW51LXdyYXBwZXJcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICA8bWVudS1jb2x1bW5zICh0b2dnbGVDb2xsYXBzZUV2ZW50KT1cInRvZ2dsZUNvbGxhcHNlKClcIiBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgW2lzT3Blbl09XCIhY29sbGFwc2VkXCJcclxuICAgICAgICBbYWN0aXZlXT1cImFjdGl2ZVwiPjwvbWVudS1jb2x1bW5zPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJwcm9maWxlXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwidXNlckluaXRpYWxzXCIgI3N0YXRlPVwibWF0TWVudVRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwicHJvZmlsZS13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWljb25cIj5cclxuICAgICAgICB7e3VzZXJJbml0aWFsc319XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInByb2ZpbGUtbmFtZVwiPlxyXG4gICAgICAgICAge3sgdXNlcm5hbWUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic3RhdGUubWVudU9wZW47IGVsc2UgaWNvbkRvd25cIiBjbGFzcz1cInByb2ZpbGUtYXJyb3cgc3BpblwiPnt7XCJrZXlib2FyZF9hcnJvd19kb3duXCJ9fTwvbWF0LWljb24+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkRvd24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwcm9maWxlLWFycm93IHNwaW5cIj57e1wia2V5Ym9hcmRfYXJyb3dfdXBcIiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJwcm9maWxlLW1lbnVcIj5cclxuICAgICAgQGZvciAoaXRlbSBvZiBtZW51U2V0dGluZ3MudXNlck9wdGlvbnM7IHRyYWNrIGl0ZW0ubGFiZWwpIHtcclxuICAgICAgICBAaWYgKGl0ZW0ubGluaykge1xyXG4gICAgICAgICAgQGlmIChpdGVtLmxpbmsuaXNFeHRlcm5hbCkge1xyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1hdC1tZGMtbWVudS1pdGVtXCIgW2hyZWZdPVwiaXRlbS5saW5rLmhyZWZcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInByb2ZpbGVNZW51SXRlbTsgY29udGV4dDogeyBpY29uOiBpdGVtLmljb24sIGxhYmVsOiBpdGVtLmxhYmVsIH1cIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIiBbcm91dGVyTGlua109XCJpdGVtLmxpbmsuaHJlZlwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvZmlsZU1lbnVJdGVtOyBjb250ZXh0OiB7IGljb246IGl0ZW0uaWNvbiwgbGFiZWw6IGl0ZW0ubGFiZWwgfVwiPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgY2xhc3M9XCJwcm9maWxlLW9wdGlvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJpdGVtLmJ1dHRvbj8uY2FsbGJhY2soKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInByb2ZpbGVNZW51SXRlbTsgY29udGV4dDogeyBpY29uOiBpdGVtLmljb24sIGxhYmVsOiBpdGVtLmxhYmVsIH1cIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9tYXQtbWVudT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNwcm9maWxlTWVudUl0ZW0gbGV0LWljb249XCJpY29uXCIgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICAgIEBpZiAoaWNvbikge1xyXG4gICAgICBAaWYgKCFpY29uPy5pc0N1c3RvbSkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgcHJvZmlsZS1vcHRpb24taWNvblwiIFtjbGFzcy5tYXRlcmlhbC1pY29ucy1vdXRsaW5lZF09XCJpY29uPy5pc091dGxpbmVkXCI+XHJcbiAgICAgICAgICB7e2ljb24/Lm5hbWV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicHJvZmlsZS1vcHRpb24taWNvblwiIFtzdmdJY29uXT1cImljb24/Lm5hbWVcIj48L21hdC1pY29uPlxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4gICAgIl19
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW5hdi1tZW51L3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ3VCNUQsNEJBRUM7O0lBRHlELGdMQUFTLHdCQUFpQixLQUFDO0lBRW5GLHlCQUFpRjtJQUNqRiwrQkFBZ0M7SUFDOUIsWUFDRjtJQUNGLEFBREUsaUJBQU8sRUFDTDs7O0lBUG1GLEFBQWpFLG9FQUErQywwQ0FBa0M7O0lBR3ZELGVBQXFCO0lBQXJCLDREQUFxQjtJQUVqRSxlQUNGO0lBREUsbURBQ0Y7OztJQWdDQSxvQ0FBMkU7SUFBQSxZQUF5QjtJQUFBLGlCQUFXOztJQUFwQyxjQUF5QjtJQUF6QiwyQ0FBeUI7OztJQUdsRyxvQ0FBcUM7SUFBQSxZQUF3QjtJQUFBLGlCQUFXOztJQUFuQyxjQUF3QjtJQUF4Qix5Q0FBd0I7OztJQVJqRSw2QkFBaUM7SUFDL0IsZ0NBQTJCO0lBQ3pCLFlBQ0Y7SUFBQSxpQkFBTztJQUlQLEFBRkEseUdBQTJFLGtJQUVwRDs7Ozs7OztJQUxyQixlQUNGO0lBREUsZ0RBQ0Y7SUFFVyxjQUFzQjtJQUFBLEFBQXRCLHdDQUFzQix5QkFBYTs7O0lBVGhELEFBREYscUNBQXdHLGNBQzVFO0lBQ3hCLFlBQ0Y7SUFBQSxpQkFBTTtJQUVOLGtHQUFpQztJQVduQyxpQkFBUzs7OztJQWhCNEMsMkNBQTBCO0lBRTNFLGVBQ0Y7SUFERSxvREFDRjtJQUVlLGNBQWdCO0lBQWhCLHdDQUFnQjs7O0lBa0J2Qix3QkFFZTs7O0lBSGpCLDZCQUFxRTtJQUNuRSwySEFDdUY7SUFFekYsaUJBQUk7Ozs7O0lBSnlCLDBEQUF1QjtJQUUvQyxjQUFtQztJQUFBLEFBQW5DLHFEQUFtQyxvRkFBK0M7OztJQUtyRix3QkFFZTs7O0lBSGpCLDZCQUEyRDtJQUN6RCwySEFDdUY7SUFFekYsaUJBQUk7Ozs7O0lBSnlCLDhDQUE2QjtJQUVyRCxjQUFtQztJQUFBLEFBQW5DLHFEQUFtQyxvRkFBK0M7OztJQUh2RixBQU5GLGlHQUE0QixvRkFNbkI7OztJQU5ULGlEQVlDOzs7SUFPRCx3QkFFZTs7OztJQVBmLGtDQUlEO0lBREcsd1FBQWlDO0lBRW5DLDZHQUN1RjtJQUV6RixpQkFBUzs7Ozs7SUFGSixjQUFtQztJQUFBLEFBQW5DLHFEQUFtQyxvRkFBK0M7OztJQVByRixBQWRGLDBFQUFpQiwyRUFjUjs7O0lBZFQsc0NBd0JDOzs7SUFRRCxnQ0FBb0c7SUFDbEcsWUFDRjtJQUFBLGlCQUFPOzs7SUFGMEMsd0ZBQWtEO0lBQ2pHLGNBQ0Y7SUFERSx3RUFDRjs7O0lBRUEsK0JBQXdFOzs7SUFBbEMsaUVBQXNCOzs7SUFENUQsQUFKRiw0R0FBdUIsbUdBSWQ7OztJQUpULHdFQU1DOzs7SUFQSCxrRkFBWTtJQVNaLFlBQ0Y7Ozs7O0lBVkUsbUNBUUM7SUFDRCxjQUNGO0lBREUsZ0VBQ0Y7O0FEckdGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFDeEQsU0FBUyxDQUFVO0lBQ25CLElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekMsSUFBYSxRQUFRLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQXdDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtZQUNuRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQzdGLENBQUM7SUFFRCxZQUNTLGlCQUFvQyxFQUNsQyxVQUFzQixFQUN0QixTQUEyQjtRQUVwQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFKVixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFuRDdCLGlCQUFZLEdBQW9CO1lBQ3ZDLGFBQWEsRUFBRSxPQUFPO1lBQ3RCLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFBO1FBS0QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVULGdDQUEyQixHQUFHLDZCQUE2QixDQUFDO1FBRXJFLHVEQUF1RDtRQUN0QyxnQ0FBMkIsR0FBRyxjQUFjLENBQUM7UUFDN0Msa0NBQTZCLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLGtDQUE2QixHQUFHLGtCQUFrQixDQUFBO1FBRTFELDhCQUF5QixHQUFtQjtZQUNuRCxPQUFPLEVBQUUsSUFBSSxDQUFDLDZCQUE2QjtZQUMzQyxVQUFVLEVBQUUsRUFBRTtTQUNmLENBQUE7UUFFUSwyQkFBc0IsR0FBbUI7WUFDaEQsT0FBTyxFQUFFLElBQUksQ0FBQywyQkFBMkI7WUFDekMsVUFBVSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUMzRSxDQUFBO1FBRVEsNkJBQXdCLEdBQW1CO1lBQ2xELE9BQU8sRUFBRSxJQUFJLENBQUMsMkJBQTJCO1lBQ3pDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7U0FDN0UsQ0FBQTtRQXFCQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxNQUFNLElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdkosQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxpREFBaUQ7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxPQUFPO1FBQ1QsQ0FBQztRQUNELCtFQUErRTtRQUMvRSxJQUFJLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7cUhBOUdVLG9CQUFvQjtvRUFBcEIsb0JBQW9COztZQ1g3QixBQURGLEFBREYsOEJBQWtCLGFBQ2lDLFdBRzlDOztZQUR5RCx3SUFBUyxxQkFBaUIsS0FBQztZQUVuRix5QkFBaUY7WUFDakYsK0JBQWdDO1lBQzlCLFlBQ0Y7WUFDRixBQURFLGlCQUFPLEVBQ0w7WUFFSixpQ0FNQzs7WUFEQyx1SUFBUyxvQkFBZ0IsS0FBQztZQUUxQixnQ0FBVTtZQUFBLHFCQUFJO1lBR3BCLEFBREUsQUFERSxBQURnQixpQkFBVyxFQUNsQixFQUNMLEVBQ0Y7WUFJRixBQURGLEFBREYsZ0NBQW9JLGVBQ2hGLGVBQ3lFO1lBQ3ZILG9FQUVDO1lBT0QsbUNBT0M7OztZQURDLHdJQUFTLG9CQUFnQixLQUFDO1lBRTFCLG9DQUF1QjtZQUFBLHNCQUFLO1lBQUEsaUJBQVc7WUFDdkMscUNBQXVCO1lBQUEsYUFBOEU7WUFFekcsQUFERSxBQUR1RyxpQkFBVyxFQUN6RyxFQUNMO1lBR0osQUFERixnQ0FBNEMsd0JBRXRCO1lBRE4sMEtBQXVCLG9CQUFnQixLQUFDO1lBRXhELEFBRHNCLGlCQUFlLEVBQy9CO1lBRVIsZ0NBQXFCO1lBQ25CLDhFQUF3RztZQWtCeEcsd0NBQStDO1lBQzdDLDJGQTBCQztZQUVMLEFBREUsaUJBQVcsRUFDUDtZQUVOLHdIQUFnRTtZQVlsRSxpQkFBTSxFQTVGOEg7O1lBdEI3SCxjQUFxQjtZQUFyQix1Q0FBcUI7WUFDckIsY0FBK0M7WUFBa0IsQUFBakUsaUVBQStDLHVDQUFrQzs7WUFHcEMsZUFBcUI7WUFBckIseURBQXFCO1lBRWpFLGVBQ0Y7WUFERSxnREFDRjtZQU9BLGNBQW1GO1lBQW5GLDZHQUFtRjs7WUFRbEMsZUFBNEI7WUFBNUIseUNBQTRCO1lBQW1CLDBDQUE2QjtZQUE5SCx3Q0FBMEI7WUFFdUIsZUFBc0U7WUFBdEUsd0ZBQXNFO1lBQ2xILGNBQWdCO1lBQWhCLHFDQUFnQjtZQWFsQixjQUFtRjtZQUNuRixBQURBLDZHQUFtRix1RkFDWDs7WUFJakQsZUFBOEU7WUFBOUUsa0dBQThFO1lBS2hELGVBQXVCO1lBQzVFLEFBRCtGLEFBQTFDLHlDQUF1QiwwQkFBd0Msc0JBQ25HO1lBSVosZUFBa0I7WUFBbEIsdUNBQWtCO1lBbUJ6QixlQTBCQztZQTFCRCwyQ0EwQkM7OztpRkR0Rk0sb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0UsbUJBQW1COzBHQU9oQixRQUFRO2tCQUFwQixLQUFLO1lBS0csWUFBWTtrQkFBcEIsS0FBSztZQVFHLFdBQVc7a0JBQW5CLEtBQUs7O2tGQWhCSyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET01TZXJ2aWNlLCBQbGF1c2libGVFdmVudCwgUmVzb2x1dGlvbkhlbHBlciB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFN0cmFwaUxpbmtTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtc3RyYXBpJztcclxuaW1wb3J0IHsgTmF2QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL25hdi1iYXNlL25hdi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpZGVOYXZTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL3NpZGUtbmF2LXNldHRpbmdzLm1vZGVsJztcclxuaW1wb3J0IHsgTWVudUl0ZW1zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lbnUtaXRlbXMuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2lkZS1uYXYtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NpZGUtbmF2LW1lbnUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZU5hdk1lbnVDb21wb25lbnQgZXh0ZW5kcyBOYXZCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICN1c2VybmFtZSE6IHN0cmluZztcclxuICBnZXQgdXNlcm5hbWUoKSB7IHJldHVybiB0aGlzLiN1c2VybmFtZTsgfVxyXG4gIEBJbnB1dCgpIHNldCB1c2VybmFtZSh2YWx1ZSkge1xyXG4gICAgdGhpcy4jdXNlcm5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0VXNlckluaXRpYWxzKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBtZW51U2V0dGluZ3M6IFNpZGVOYXZTZXR0aW5ncyA9IHtcclxuICAgIGV4cGFuZGVkV2lkdGg6ICcyNDFweCcsXHJcbiAgICBjb2xsYXBzZWRXaWR0aDogJzU2cHgnLFxyXG4gICAgbWVudUxvZ286ICcnLFxyXG4gICAgbWVudUxvZ29Db2xsYXBzZWQ6ICcnLFxyXG4gICAgZGlzYWJsZVN0cmFwaTogZmFsc2VcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHByb2R1Y3ROYW1lITogc3RyaW5nO1xyXG5cclxuICB1c2VySW5pdGlhbHMhOiBzdHJpbmc7XHJcbiAgY29sbGFwc2VkID0gZmFsc2U7XHJcblxyXG4gIHJlYWRvbmx5IENPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSA9IFwiVExEX01FTlVfU0lERV9OQVZfQ09MTEFQU0VEXCI7XHJcblxyXG4gIC8vI3JlZ2lvbiBQbGF1c2libGUgZXZlbnQgdmFyaWFibGVzIGZvciBjb2xsYXBzZSBidXR0b25cclxuICBwcml2YXRlIHJlYWRvbmx5IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVF9JRCA9IFwiY29sbGFwc2VNZW51XCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBDT0xMQVBTRV9QTEFVU0lCTEVfQUNUSU9OX0tFWSA9IFwiYWN0aW9uXCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBMT0dPQ0xJQ0tfUExBVVNJQkxFX0FDVElPTl9JRCA9IFwidGlsZGVfbG9nb19jbGlja1wiXHJcblxyXG4gIHJlYWRvbmx5IExPR09DTElDS19QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5MT0dPQ0xJQ0tfUExBVVNJQkxFX0FDVElPTl9JRCxcclxuICAgIHByb3BlcnRpZXM6IFtdXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBFWFBBTkRfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lELFxyXG4gICAgcHJvcGVydGllczogW3sga2V5OiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZLCB2YWx1ZTogXCJleHBhbmRcIiB9XVxyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lELFxyXG4gICAgcHJvcGVydGllczogW3sga2V5OiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZLCB2YWx1ZTogXCJjb2xsYXBzZVwiIH1dXHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBtZW51TG9nb0ltYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRcclxuICAgICAgPyB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nb0NvbGxhcHNlZCA/PyB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nb1xyXG4gICAgICA6IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNpZGVOYXZXaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkID8gdGhpcy5tZW51U2V0dGluZ3MuY29sbGFwc2VkV2lkdGggOiB0aGlzLm1lbnVTZXR0aW5ncy5leHBhbmRlZFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc3RyYXBpTGlua1NlcnZpY2U6IFN0cmFwaUxpbmtTZXJ2aWNlLFxyXG4gICAgcmVhZG9ubHkgZG9tU2VydmljZTogRE9NU2VydmljZSxcclxuICAgIHJlYWRvbmx5IG1lbnVJdGVtczogTWVudUl0ZW1zU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKG1lbnVJdGVtcyk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBtZW51SXRlbXMubWVudVNoYXJlZENvbmZpZy5iYXNlVXJsIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5nZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKTtcclxuICAgIHRoaXMuc2V0VXNlckluaXRpYWxzKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RyYXBpTGlua1NlcnZpY2Uuc3RyYXBpTGlua0NsaWNrKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNvbGxhcHNlKCkge1xyXG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sbGFwc2VkID0gKHRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSkgPT0gJ3RydWUnIHx8IFJlc29sdXRpb25IZWxwZXIuaXNNb2JpbGVSZXMoKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGlmICghdGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DT0xMQVBTRURfTE9DQUxfU1RPUkFHRV9LRVksIHRoaXMuY29sbGFwc2VkLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVc2VySW5pdGlhbHMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXNlcm5hbWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGRpc3BsYXlpbmcgZmlyc3QgbGV0dGVycyBvZiBuYW1lIGFuZCBzdXJuYW1lXHJcbiAgICBjb25zdCBzcGxpdHRlZFVzZXJuYW1lID0gdGhpcy51c2VybmFtZS5zcGxpdCgnICcpO1xyXG5cclxuICAgIGlmIChzcGxpdHRlZFVzZXJuYW1lLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAvLyBJZiB0aGVyZSdzIG9ubHkgb25lIHdvcmQsIHVzZSB0aGUgZmlyc3QgbGV0dGVyXHJcbiAgICAgIHRoaXMudXNlckluaXRpYWxzID0gc3BsaXR0ZWRVc2VybmFtZVswXVswXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gSWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgd29yZCwgdXNlIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIGZpcnN0IHR3byBuYW1lc1xyXG4gICAgdGhpcy51c2VySW5pdGlhbHMgPSBzcGxpdHRlZFVzZXJuYW1lWzBdWzBdICsgc3BsaXR0ZWRVc2VybmFtZVsxXVswXTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBmeEhpZGUuZ3QteHM+XHJcbiAgPGRpdiBbZnhIaWRlXT1cIiFjb2xsYXBzZWRcIiBjbGFzcz1cIm1vYmlsZS1oZWFkZXJcIj5cclxuICAgIDxhIFtsaWJQbGF1c2libGVFdmVudF09XCJMT0dPQ0xJQ0tfUExBVVNJQkxFX0VWRU5UXCIgZnhGbGV4PVwiMy4xMjVlbVwiIFtocmVmXT1cImJhc2VVcmxcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNRU5VLkFSSUFfTEFCRUxTLkxPR08nIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImxvZ29DbGljaygkZXZlbnQpXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWcgaGVpZ2h0PVwiNDBcIiB3aWR0aD1cIjQwXCIgY2xhc3M9XCJtZW51LWxvZ29cIiBbc3JjXT1cIm1lbnVMb2dvSW1hZ2VcIiBhbHQ9XCJsb2dvXCIgLz5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXByb2R1Y3QtbmFtZVwiPlxyXG4gICAgICAgIHt7IHByb2R1Y3ROYW1lIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYT5cclxuICAgIFxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgY2xhc3M9XCJ0b2dnbGVyXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuTUVOVV9UT0dHTEVSJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgIFtsaWJQbGF1c2libGVFdmVudF09XCJjb2xsYXBzZWQgPyBFWFBBTkRfUExBVVNJQkxFX0VWRU5UIDogQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UXCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IFtuZ0NsYXNzLmx0LXNtXT1cIidtb2JpbGUnXCIgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiIFtzdHlsZS53aWR0aF09XCJzaWRlTmF2V2lkdGhcIiBmeExheW91dD1cImNvbHVtblwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleEZpbGw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXItaGVhZGVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBbZnhMYXlvdXRBbGlnbl09XCJjb2xsYXBzZWQgPyAnY2VudGVyIGNlbnRlcicgOiAnc3BhY2UtYmV0d2VlbiBjZW50ZXInXCI+XHJcbiAgICAgIDxhICpuZ0lmPVwiIWNvbGxhcHNlZFwiIFtsaWJQbGF1c2libGVFdmVudF09XCJMT0dPQ0xJQ0tfUExBVVNJQkxFX0VWRU5UXCIgZnhGbGV4PVwiMy4xMjVlbVwiIFtocmVmXT1cImJhc2VVcmxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01FTlUuQVJJQV9MQUJFTFMuTE9HTycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwibG9nb0NsaWNrKCRldmVudClcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpbWcgaGVpZ2h0PVwiNDBcIiB3aWR0aD1cIjQwXCIgY2xhc3M9XCJtZW51LWxvZ29cIiBbc3JjXT1cIm1lbnVMb2dvSW1hZ2VcIiBhbHQ9XCJsb2dvXCIgLz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtcHJvZHVjdC1uYW1lXCI+XHJcbiAgICAgICAgICB7eyBwcm9kdWN0TmFtZSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9hPlxyXG4gICAgICBcclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwidG9nZ2xlclwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuTUVOVV9UT0dHTEVSJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2xpYlBsYXVzaWJsZUV2ZW50XT1cImNvbGxhcHNlZCA/IEVYUEFORF9QTEFVU0lCTEVfRVZFTlQgOiBDT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRcIlxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cIihjb2xsYXBzZWQgPyAnTUVOVS5FWFBBTkQnIDogJ01FTlUuQ09MTEFQU0UnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uIGZ4SGlkZS5ndC14cz5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1pY29uIGZ4SGlkZS5sdC1zbT57eyBjb2xsYXBzZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0JyA6ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfbGVmdCcgfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICBcclxuICAgIDxkaXYgY2xhc3M9XCJtZW51LXdyYXBwZXJcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICA8bWVudS1jb2x1bW5zICh0b2dnbGVDb2xsYXBzZUV2ZW50KT1cInRvZ2dsZUNvbGxhcHNlKClcIiBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgW2lzT3Blbl09XCIhY29sbGFwc2VkXCJcclxuICAgICAgICBbYWN0aXZlXT1cImFjdGl2ZVwiPjwvbWVudS1jb2x1bW5zPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJwcm9maWxlXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwidXNlckluaXRpYWxzXCIgI3N0YXRlPVwibWF0TWVudVRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwicHJvZmlsZS13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWljb25cIj5cclxuICAgICAgICB7e3VzZXJJbml0aWFsc319XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInByb2ZpbGUtbmFtZVwiPlxyXG4gICAgICAgICAge3sgdXNlcm5hbWUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic3RhdGUubWVudU9wZW47IGVsc2UgaWNvbkRvd25cIiBjbGFzcz1cInByb2ZpbGUtYXJyb3cgc3BpblwiPnt7XCJrZXlib2FyZF9hcnJvd19kb3duXCJ9fTwvbWF0LWljb24+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkRvd24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwcm9maWxlLWFycm93IHNwaW5cIj57e1wia2V5Ym9hcmRfYXJyb3dfdXBcIiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJwcm9maWxlLW1lbnVcIj5cclxuICAgICAgQGZvciAoaXRlbSBvZiBtZW51U2V0dGluZ3MudXNlck9wdGlvbnM7IHRyYWNrIGl0ZW0ubGFiZWwpIHtcclxuICAgICAgICBAaWYgKGl0ZW0ubGluaykge1xyXG4gICAgICAgICAgQGlmIChpdGVtLmxpbmsuaXNFeHRlcm5hbCkge1xyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1hdC1tZGMtbWVudS1pdGVtXCIgW2hyZWZdPVwiaXRlbS5saW5rLmhyZWZcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInByb2ZpbGVNZW51SXRlbTsgY29udGV4dDogeyBpY29uOiBpdGVtLmljb24sIGxhYmVsOiBpdGVtLmxhYmVsIH1cIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIiBbcm91dGVyTGlua109XCJpdGVtLmxpbmsuaHJlZlwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvZmlsZU1lbnVJdGVtOyBjb250ZXh0OiB7IGljb246IGl0ZW0uaWNvbiwgbGFiZWw6IGl0ZW0ubGFiZWwgfVwiPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgY2xhc3M9XCJwcm9maWxlLW9wdGlvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJpdGVtLmJ1dHRvbj8uY2FsbGJhY2soKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInByb2ZpbGVNZW51SXRlbTsgY29udGV4dDogeyBpY29uOiBpdGVtLmljb24sIGxhYmVsOiBpdGVtLmxhYmVsIH1cIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9tYXQtbWVudT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNwcm9maWxlTWVudUl0ZW0gbGV0LWljb249XCJpY29uXCIgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICAgIEBpZiAoaWNvbikge1xyXG4gICAgICBAaWYgKCFpY29uPy5pc0N1c3RvbSkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgcHJvZmlsZS1vcHRpb24taWNvblwiIFtjbGFzcy5tYXRlcmlhbC1pY29ucy1vdXRsaW5lZF09XCJpY29uPy5pc091dGxpbmVkXCI+XHJcbiAgICAgICAgICB7e2ljb24/Lm5hbWV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicHJvZmlsZS1vcHRpb24taWNvblwiIFtzdmdJY29uXT1cImljb24/Lm5hbWVcIj48L21hdC1pY29uPlxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4gICAgIl19