@reusa/ngx-reusa-app-lib 0.0.1320 → 0.0.1322

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +46 -46
  2. package/esm2022/lib/annimations/app-animations.mjs +1 -1
  3. package/esm2022/lib/components/add-employer/add-employer.component.mjs +755 -763
  4. package/esm2022/lib/components/add-participant/add-participant.component.mjs +24 -29
  5. package/esm2022/lib/components/add-payment/add-payment.component.mjs +31 -45
  6. package/esm2022/lib/components/address/address.component.mjs +46 -97
  7. package/esm2022/lib/components/bank-details/bank-details.component.mjs +75 -139
  8. package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
  9. package/esm2022/lib/components/card/card.component.mjs +1 -1
  10. package/esm2022/lib/components/contact-us/contact-us.component.mjs +28 -42
  11. package/esm2022/lib/components/content/content.component.mjs +1 -1
  12. package/esm2022/lib/components/email-update/email-update.component.mjs +62 -119
  13. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +84 -165
  14. package/esm2022/lib/components/error/error.component.mjs +1 -1
  15. package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
  16. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +1 -1
  17. package/esm2022/lib/components/footer/footer.component.mjs +11 -23
  18. package/esm2022/lib/components/header/header.component.mjs +109 -163
  19. package/esm2022/lib/components/help/help.component.mjs +1 -1
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +18 -29
  21. package/esm2022/lib/components/info/info.component.mjs +1 -1
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +16 -20
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +208 -389
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +21 -83
  26. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
  27. package/esm2022/lib/components/mask/mask.component.mjs +1 -1
  28. package/esm2022/lib/components/menu/menu.component.mjs +25 -63
  29. package/esm2022/lib/components/mfa/mfa.component.mjs +98 -155
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +30 -54
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +23 -31
  32. package/esm2022/lib/components/msg/msg.component.mjs +1 -1
  33. package/esm2022/lib/components/news/news.component.mjs +1 -1
  34. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
  35. package/esm2022/lib/components/page/page.component.mjs +1 -1
  36. package/esm2022/lib/components/profile/profile.component.mjs +14 -34
  37. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +10 -17
  38. package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
  39. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +27 -80
  40. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +8 -29
  41. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +119 -172
  42. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +41 -122
  43. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
  44. package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
  45. package/esm2022/lib/components/questionnaire/question.service.mjs +1 -1
  46. package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
  47. package/esm2022/lib/components/search-employer/search-employer.component.mjs +7 -10
  48. package/esm2022/lib/components/security-question/security-question.component.mjs +9 -19
  49. package/esm2022/lib/components/select/select.component.mjs +5 -10
  50. package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
  51. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  52. package/esm2022/lib/components/test/test.component.mjs +1 -1
  53. package/esm2022/lib/components/user-login/user-login.component.mjs +82 -116
  54. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +174 -170
  55. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
  56. package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
  57. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
  58. package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
  59. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +1 -1
  60. package/esm2022/lib/models/ErrorModel.mjs +1 -1
  61. package/esm2022/lib/models/FileModel.mjs +1 -1
  62. package/esm2022/lib/models/NotificationModel.mjs +1 -1
  63. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  64. package/esm2022/lib/models/TrendModel.mjs +1 -1
  65. package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
  66. package/esm2022/lib/models/UserModel.mjs +1 -1
  67. package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
  68. package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
  69. package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
  70. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
  71. package/esm2022/lib/models/questionnaire/ComboModel.mjs +1 -480
  72. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
  73. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
  74. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
  75. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +1 -1
  76. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +1 -1
  77. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +1 -1
  78. package/esm2022/lib/pages/common/login/login.component.mjs +2 -7
  79. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
  80. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +1 -1
  81. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +1 -1
  82. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
  83. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  84. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +1 -1
  85. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +1 -1
  86. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
  87. package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
  88. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
  89. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
  90. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  91. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
  92. package/esm2022/lib/services/base-service.mjs +1 -1
  93. package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
  94. package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
  95. package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
  96. package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
  97. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
  98. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
  99. package/esm2022/lib/services/idle/idle.service.mjs +1 -1
  100. package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
  101. package/esm2022/lib/services/notification/notification.service.mjs +1 -1
  102. package/esm2022/lib/services/tour/tour.service.mjs +1 -1
  103. package/esm2022/lib/validations/AppValidators.mjs +43 -6
  104. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +2290 -3782
  105. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  106. package/lib/components/add-employer/add-employer.component.d.ts +76 -22
  107. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  108. package/lib/components/add-participant/add-participant.component.d.ts +1 -4
  109. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  110. package/lib/components/add-payment/add-payment.component.d.ts +2 -1
  111. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  112. package/lib/components/address/address.component.d.ts +1 -10
  113. package/lib/components/address/address.component.d.ts.map +1 -1
  114. package/lib/components/bank-details/bank-details.component.d.ts +1 -17
  115. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  116. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  117. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  118. package/lib/components/email-update/email-update.component.d.ts +1 -6
  119. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  120. package/lib/components/employer-grid/employer-grid.component.d.ts +24 -6
  121. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  122. package/lib/components/footer/footer.component.d.ts.map +1 -1
  123. package/lib/components/header/header.component.d.ts +0 -3
  124. package/lib/components/header/header.component.d.ts.map +1 -1
  125. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  126. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  127. package/lib/components/job-title/job-title.component.d.ts +1 -3
  128. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  129. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +1 -5
  130. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  131. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
  132. package/lib/components/menu/menu.component.d.ts +1 -11
  133. package/lib/components/menu/menu.component.d.ts.map +1 -1
  134. package/lib/components/mfa/mfa.component.d.ts +1 -6
  135. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  136. package/lib/components/profile/profile.component.d.ts.map +1 -1
  137. package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -1
  138. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  139. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  140. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  141. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  142. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  143. package/lib/components/user-login/user-login.component.d.ts +1 -7
  144. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  145. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +1 -7
  146. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  147. package/lib/models/questionnaire/ComboModel.d.ts +0 -80
  148. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  149. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  150. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  151. package/lib/validations/AppValidators.d.ts +10 -0
  152. package/lib/validations/AppValidators.d.ts.map +1 -1
  153. package/package.json +2 -2
@@ -8,19 +8,15 @@ import * as i2 from "../../services/login/login.service";
8
8
  import * as i3 from "../../services/notification/notification.service";
9
9
  import * as i4 from "@angular/router";
10
10
  import * as i5 from "../../services/util/util.service";
11
- import * as i6 from "@ngx-translate/core";
12
- import * as i7 from "@angular/common";
13
- import * as i8 from "primeng/tooltip";
14
- import * as i9 from "primeng/accordion";
15
- import * as i10 from "primeng/divider";
16
- import * as i11 from "../profile/profile.component";
11
+ import * as i6 from "@angular/common";
12
+ import * as i7 from "primeng/tooltip";
13
+ import * as i8 from "primeng/accordion";
14
+ import * as i9 from "primeng/divider";
15
+ import * as i10 from "../profile/profile.component";
17
16
  function MenuComponent_ion_menu_0_ion_menu_button_4_Template(rf, ctx) { if (rf & 1) {
18
17
  i0.ɵɵelementStart(0, "ion-menu-button", 6);
19
- i0.ɵɵpipe(1, "translate");
20
- i0.ɵɵelement(2, "ion-icon", 7);
18
+ i0.ɵɵelement(1, "ion-icon", 7);
21
19
  i0.ɵɵelementEnd();
22
- } if (rf & 2) {
23
- i0.ɵɵpropertyInterpolate("pTooltip", i0.ɵɵpipeBind1(1, 1, "header.menu.close"));
24
20
  } }
25
21
  function MenuComponent_ion_menu_0_p_accordion_6_p_accordionTab_1_ion_item_2_ion_icon_1_Template(rf, ctx) { if (rf & 1) {
26
22
  i0.ɵɵelement(0, "ion-icon", 16);
@@ -126,40 +122,34 @@ function MenuComponent_ion_menu_0_div_7_Template(rf, ctx) { if (rf & 1) {
126
122
  i0.ɵɵlistener("click", function MenuComponent_ion_menu_0_div_7_Template_ion_item_click_5_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.presentMyProfilePopover($event)); });
127
123
  i0.ɵɵelement(6, "ion-icon", 24);
128
124
  i0.ɵɵelementStart(7, "ion-label", 25);
129
- i0.ɵɵtext(8);
125
+ i0.ɵɵtext(8, "User Profile");
130
126
  i0.ɵɵelementEnd()();
131
127
  i0.ɵɵelementStart(9, "ion-item", 11);
132
128
  i0.ɵɵlistener("click", function MenuComponent_ion_menu_0_div_7_Template_ion_item_click_9_listener() { i0.ɵɵrestoreView(_r31); const ctx_r32 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r32.navigate("cp", "documents")); });
133
129
  i0.ɵɵelement(10, "ion-icon", 26);
134
130
  i0.ɵɵelementStart(11, "ion-label", 25);
135
- i0.ɵɵtext(12);
131
+ i0.ɵɵtext(12, "Documents");
136
132
  i0.ɵɵelementEnd()();
137
133
  i0.ɵɵelementStart(13, "ion-item", 11);
138
134
  i0.ɵɵlistener("click", function MenuComponent_ion_menu_0_div_7_Template_ion_item_click_13_listener() { i0.ɵɵrestoreView(_r31); const ctx_r33 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r33.logout()); });
139
135
  i0.ɵɵelement(14, "ion-icon", 27);
140
136
  i0.ɵɵelementStart(15, "ion-label", 25);
141
- i0.ɵɵtext(16);
137
+ i0.ɵɵtext(16, "Logout");
142
138
  i0.ɵɵelementEnd()()()();
143
139
  } if (rf & 2) {
144
140
  const ctx_r4 = i0.ɵɵnextContext(2);
145
141
  i0.ɵɵadvance(1);
146
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 4, ctx_r4.ls.getMenuBs()));
147
- i0.ɵɵadvance(7);
148
- i0.ɵɵtextInterpolate(ctx_r4.userProfileLabel);
149
- i0.ɵɵadvance(4);
150
- i0.ɵɵtextInterpolate(ctx_r4.userDocumentsLabel);
151
- i0.ɵɵadvance(4);
152
- i0.ɵɵtextInterpolate(ctx_r4.userLogoutLabel);
142
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r4.ls.getMenuBs()));
153
143
  } }
154
144
  function MenuComponent_ion_menu_0_Template(rf, ctx) { if (rf & 1) {
155
145
  const _r35 = i0.ɵɵgetCurrentView();
156
146
  i0.ɵɵelementStart(0, "ion-menu", 2);
157
147
  i0.ɵɵlistener("ionDidOpen", function MenuComponent_ion_menu_0_Template_ion_menu_ionDidOpen_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.menuOpened()); });
158
148
  i0.ɵɵelementStart(1, "ion-header")(2, "ion-toolbar")(3, "ion-buttons", 3);
159
- i0.ɵɵtemplate(4, MenuComponent_ion_menu_0_ion_menu_button_4_Template, 3, 3, "ion-menu-button", 4);
149
+ i0.ɵɵtemplate(4, MenuComponent_ion_menu_0_ion_menu_button_4_Template, 2, 0, "ion-menu-button", 4);
160
150
  i0.ɵɵelementEnd()()();
161
151
  i0.ɵɵelementStart(5, "ion-content");
162
- i0.ɵɵtemplate(6, MenuComponent_ion_menu_0_p_accordion_6_Template, 3, 3, "p-accordion", 5)(7, MenuComponent_ion_menu_0_div_7_Template, 17, 6, "div", 5);
152
+ i0.ɵɵtemplate(6, MenuComponent_ion_menu_0_p_accordion_6_Template, 3, 3, "p-accordion", 5)(7, MenuComponent_ion_menu_0_div_7_Template, 17, 3, "div", 5);
163
153
  i0.ɵɵelementEnd()();
164
154
  } if (rf & 2) {
165
155
  const ctx_r0 = i0.ɵɵnextContext();
@@ -177,7 +167,7 @@ function MenuComponent_app_profile_1_Template(rf, ctx) { if (rf & 1) {
177
167
  i0.ɵɵelementEnd();
178
168
  } }
179
169
  export class MenuComponent {
180
- constructor(nav, popup, ls, ns, r, menu, util, ar, translateService) {
170
+ constructor(nav, popup, ls, ns, r, menu, util, ar) {
181
171
  this.nav = nav;
182
172
  this.popup = popup;
183
173
  this.ls = ls;
@@ -186,16 +176,13 @@ export class MenuComponent {
186
176
  this.menu = menu;
187
177
  this.util = util;
188
178
  this.ar = ar;
189
- this.translateService = translateService;
190
179
  this.appVersion = LibConstants.appVersion;
191
180
  this.showFavButton = false;
192
181
  this.reRenderMenu = true;
193
182
  this.legacyMenu = LibConstants.legacyMenu;
194
183
  this.showProfilePopup = false;
195
- this.translateService.use(localStorage.getItem("language"));
196
184
  }
197
185
  ngOnInit() {
198
- this.translateService.use(localStorage.getItem("language"));
199
186
  this.setupUserMenu();
200
187
  this.showFavButton = this.ls.isCsr();
201
188
  }
@@ -221,7 +208,7 @@ export class MenuComponent {
221
208
  label: "Menus",
222
209
  items: [
223
210
  {
224
- "label": this.getHomeLabel(),
211
+ "label": "Home",
225
212
  "state": {
226
213
  "consortiumState": ["ms"],
227
214
  "roles": ["claimant"],
@@ -231,7 +218,7 @@ export class MenuComponent {
231
218
  }
232
219
  },
233
220
  {
234
- "label": this.getClaimsLabel(),
221
+ "label": "Claims",
235
222
  "state": {
236
223
  "consortiumState": ["ms"],
237
224
  "roles": ["claimant"],
@@ -241,7 +228,7 @@ export class MenuComponent {
241
228
  }
242
229
  },
243
230
  {
244
- "label": this.getWeeklyLabel(),
231
+ "label": "Weekly",
245
232
  "state": {
246
233
  "consortiumState": ["ms"],
247
234
  "roles": ["claimant"],
@@ -251,7 +238,7 @@ export class MenuComponent {
251
238
  }
252
239
  },
253
240
  {
254
- "label": this.getHistoryLabel(),
241
+ "label": "History",
255
242
  "state": {
256
243
  "consortiumState": ["ms"],
257
244
  "roles": ["claimant"],
@@ -261,7 +248,7 @@ export class MenuComponent {
261
248
  }
262
249
  },
263
250
  {
264
- "label": this.getWorkSearchLabel(),
251
+ "label": "Work Search Journal",
265
252
  "state": {
266
253
  "consortiumState": ["ks"],
267
254
  "roles": ["work-search-journal"],
@@ -408,45 +395,20 @@ export class MenuComponent {
408
395
  }
409
396
  logout() {
410
397
  this.nav.navigateRoot('/landing');
411
- localStorage.setItem("language", "en");
412
398
  this.ls.logout();
413
399
  }
414
- get userProfileLabel() {
415
- return this.translateService.instant('common.user.profile');
416
- }
417
- get userDocumentsLabel() {
418
- return this.translateService.instant('common.documents');
419
- }
420
- get userLogoutLabel() {
421
- return this.translateService.instant('common.logout');
422
- }
423
- getHomeLabel() {
424
- return this.translateService.instant('common.home');
425
- }
426
- getClaimsLabel() {
427
- return this.translateService.instant('common.claims');
428
- }
429
- getWeeklyLabel() {
430
- return this.translateService.instant('common.weekly');
431
- }
432
- getHistoryLabel() {
433
- return this.translateService.instant('common.history');
434
- }
435
- getWorkSearchLabel() {
436
- return this.translateService.instant('common.work.search');
437
- }
438
- static { this.ɵfac = function MenuComponent_Factory(t) { return new (t || MenuComponent)(i0.ɵɵdirectiveInject(i1.NavController), i0.ɵɵdirectiveInject(i1.PopoverController), i0.ɵɵdirectiveInject(i2.LoginService), i0.ɵɵdirectiveInject(i3.NotificationService), i0.ɵɵdirectiveInject(i4.Router), i0.ɵɵdirectiveInject(i1.MenuController), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i4.ActivatedRoute), i0.ɵɵdirectiveInject(i6.TranslateService)); }; }
439
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuComponent, selectors: [["app-menu"]], decls: 2, vars: 2, consts: [["side", "start", "menuId", "first", "contentId", "main-content", 3, "ionDidOpen", 4, "ngIf"], [3, "onCancel", 4, "ngIf"], ["side", "start", "menuId", "first", "contentId", "main-content", 3, "ionDidOpen"], ["slot", "start"], ["autoHide", "false", "tooltipPosition", "bottom", 3, "pTooltip", 4, "ngIf"], [4, "ngIf"], ["autoHide", "false", "tooltipPosition", "bottom", 3, "pTooltip"], ["color", "success", "name", "close"], [3, "header", 4, "ngFor", "ngForOf"], [3, "header"], ["button", "", "lines", "none", 3, "click", 4, "ngFor", "ngForOf"], ["button", "", "lines", "none", 3, "click"], ["name", "link", "color", "primary", "slot", "start", "style", "margin-inline-end: 15px !important;", 4, "ngIf"], ["color", "primary", "slot", "start", "style", "margin-inline-end: 15px !important;", 3, "name", 4, "ngIf"], ["color", "primary", 2, "font-size", "small"], ["slot", "end", "color", "warning", 3, "click", 4, "ngIf"], ["name", "link", "color", "primary", "slot", "start", 2, "margin-inline-end", "15px !important"], ["color", "primary", "slot", "start", 2, "margin-inline-end", "15px !important", 3, "name"], ["slot", "end", "color", "warning", 3, "click"], ["name", "star-outline", 4, "ngIf"], ["name", "star-sharp", 4, "ngIf"], ["name", "star-outline"], ["name", "star-sharp"], [4, "ngFor", "ngForOf"], ["name", "person-circle-outline", "slot", "start", "color", "primary", 1, "menu-icon"], ["color", "primary", 2, "font-size", "31px"], ["name", "document-text-outline", "slot", "start", "color", "primary", 1, "menu-icon"], ["name", "log-out-outline", "slot", "start", "color", "primary", 1, "menu-icon"], ["color", "primary", 2, "font-size", "31px", 3, "ngClass"], [3, "onCancel"]], template: function MenuComponent_Template(rf, ctx) { if (rf & 1) {
400
+ static { this.ɵfac = function MenuComponent_Factory(t) { return new (t || MenuComponent)(i0.ɵɵdirectiveInject(i1.NavController), i0.ɵɵdirectiveInject(i1.PopoverController), i0.ɵɵdirectiveInject(i2.LoginService), i0.ɵɵdirectiveInject(i3.NotificationService), i0.ɵɵdirectiveInject(i4.Router), i0.ɵɵdirectiveInject(i1.MenuController), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i4.ActivatedRoute)); }; }
401
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuComponent, selectors: [["app-menu"]], decls: 2, vars: 2, consts: [["side", "start", "menuId", "first", "contentId", "main-content", 3, "ionDidOpen", 4, "ngIf"], [3, "onCancel", 4, "ngIf"], ["side", "start", "menuId", "first", "contentId", "main-content", 3, "ionDidOpen"], ["slot", "start"], ["autoHide", "false", "pTooltip", "Close menu", "tooltipPosition", "bottom", 4, "ngIf"], [4, "ngIf"], ["autoHide", "false", "pTooltip", "Close menu", "tooltipPosition", "bottom"], ["color", "success", "name", "close"], [3, "header", 4, "ngFor", "ngForOf"], [3, "header"], ["button", "", "lines", "none", 3, "click", 4, "ngFor", "ngForOf"], ["button", "", "lines", "none", 3, "click"], ["name", "link", "color", "primary", "slot", "start", "style", "margin-inline-end: 15px !important;", 4, "ngIf"], ["color", "primary", "slot", "start", "style", "margin-inline-end: 15px !important;", 3, "name", 4, "ngIf"], ["color", "primary", 2, "font-size", "small"], ["slot", "end", "color", "warning", 3, "click", 4, "ngIf"], ["name", "link", "color", "primary", "slot", "start", 2, "margin-inline-end", "15px !important"], ["color", "primary", "slot", "start", 2, "margin-inline-end", "15px !important", 3, "name"], ["slot", "end", "color", "warning", 3, "click"], ["name", "star-outline", 4, "ngIf"], ["name", "star-sharp", 4, "ngIf"], ["name", "star-outline"], ["name", "star-sharp"], [4, "ngFor", "ngForOf"], ["name", "person-circle-outline", "slot", "start", "color", "primary", 1, "menu-icon"], ["color", "primary", 2, "font-size", "31px"], ["name", "document-text-outline", "slot", "start", "color", "primary", 1, "menu-icon"], ["name", "log-out-outline", "slot", "start", "color", "primary", 1, "menu-icon"], ["color", "primary", 2, "font-size", "31px", 3, "ngClass"], [3, "onCancel"]], template: function MenuComponent_Template(rf, ctx) { if (rf & 1) {
440
402
  i0.ɵɵtemplate(0, MenuComponent_ion_menu_0_Template, 8, 3, "ion-menu", 0)(1, MenuComponent_app_profile_1_Template, 1, 0, "app-profile", 1);
441
403
  } if (rf & 2) {
442
404
  i0.ɵɵproperty("ngIf", ctx.ls.isLoggedIn() && ctx.menus && ctx.menus.length > 0);
443
405
  i0.ɵɵadvance(1);
444
406
  i0.ɵɵproperty("ngIf", ctx.showProfilePopup);
445
- } }, dependencies: [i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonItem, i1.IonLabel, i1.IonList, i1.IonMenu, i1.IonMenuButton, i1.IonToolbar, i7.NgClass, i7.NgForOf, i7.NgIf, i8.Tooltip, i9.Accordion, i9.AccordionTab, i10.Divider, i11.ProfileComponent, i7.AsyncPipe, i6.TranslatePipe], styles: ["ion-menu[_ngcontent-%COMP%] ion-content[_ngcontent-%COMP%]{--background: var(--ion-item-background, var(--ion-background-color, #fff))}ion-note[_ngcontent-%COMP%]{display:inline-block;font-size:16px;color:var(--ion-color-medium-shade)}ion-item.selected[_ngcontent-%COMP%]{--color: var(--ion-color-primary)}mat-expansion-panel-header[_ngcontent-%COMP%]{background:var(--ion-color-light)}.link[_ngcontent-%COMP%]{margin-right:25px;cursor:pointer;text-decoration:none;pointer-events:auto!important}.link[_ngcontent-%COMP%]:hover{color:var(--ion-color-yellow)!important}.footer-links[_ngcontent-%COMP%]{color:var(--ion-color-grey)!important}.header-links[_ngcontent-%COMP%]{color:var(--ion-color-primary)!important}.ios[_ngcontent-%COMP%] ion-menu[_ngcontent-%COMP%]::part(container){padding-top:25px!important}.selected-menu[_ngcontent-%COMP%]{-webkit-text-decoration:underline 2px;text-decoration:underline 2px;text-underline-offset:3px;text-decoration-color:var(--ion-color-secondary)}.selected-menu-unselect[_ngcontent-%COMP%]{text-decoration:none}.menu-icon[_ngcontent-%COMP%]{margin-inline-end:15px!important;font-size:20px}.item[_ngcontent-%COMP%]:nth-child(5) ion-label.sc-ion-label-md-h[_ngcontent-%COMP%]{font-size:31px;text-indent:-25px;margin-left:25px;overflow:visible;line-height:35px;white-space:normal}[_nghost-%COMP%] .p-accordion .p-accordion-content{padding:0!important}[_nghost-%COMP%] .p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem .5rem!important}[_nghost-%COMP%] .p-accordion-header{background:var(--ion-color-light)!important}"] }); }
407
+ } }, dependencies: [i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonItem, i1.IonLabel, i1.IonList, i1.IonMenu, i1.IonMenuButton, i1.IonToolbar, i6.NgClass, i6.NgForOf, i6.NgIf, i7.Tooltip, i8.Accordion, i8.AccordionTab, i9.Divider, i10.ProfileComponent, i6.AsyncPipe], styles: ["ion-menu[_ngcontent-%COMP%] ion-content[_ngcontent-%COMP%]{--background: var(--ion-item-background, var(--ion-background-color, #fff))}ion-note[_ngcontent-%COMP%]{display:inline-block;font-size:16px;color:var(--ion-color-medium-shade)}ion-item.selected[_ngcontent-%COMP%]{--color: var(--ion-color-primary)}mat-expansion-panel-header[_ngcontent-%COMP%]{background:var(--ion-color-light)}.link[_ngcontent-%COMP%]{margin-right:25px;cursor:pointer;text-decoration:none;pointer-events:auto!important}.link[_ngcontent-%COMP%]:hover{color:var(--ion-color-yellow)!important}.footer-links[_ngcontent-%COMP%]{color:var(--ion-color-grey)!important}.header-links[_ngcontent-%COMP%]{color:var(--ion-color-primary)!important}.ios[_ngcontent-%COMP%] ion-menu[_ngcontent-%COMP%]::part(container){padding-top:25px!important}.selected-menu[_ngcontent-%COMP%]{-webkit-text-decoration:underline 2px;text-decoration:underline 2px;text-underline-offset:3px;text-decoration-color:var(--ion-color-secondary)}.selected-menu-unselect[_ngcontent-%COMP%]{text-decoration:none}.menu-icon[_ngcontent-%COMP%]{margin-inline-end:15px!important;font-size:20px}.item[_ngcontent-%COMP%]:nth-child(5) ion-label.sc-ion-label-md-h[_ngcontent-%COMP%]{font-size:31px;text-indent:-25px;margin-left:25px;overflow:visible;line-height:35px;white-space:normal}[_nghost-%COMP%] .p-accordion .p-accordion-content{padding:0!important}[_nghost-%COMP%] .p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem .5rem!important}[_nghost-%COMP%] .p-accordion-header{background:var(--ion-color-light)!important}"] }); }
446
408
  }
447
409
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuComponent, [{
448
410
  type: Component,
449
- args: [{ selector: 'app-menu', template: "<ion-menu side=\"start\" menuId=\"first\" contentId=\"main-content\" *ngIf=\"ls.isLoggedIn() && menus && menus.length > 0\" (ionDidOpen)=\"menuOpened()\">\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button autoHide=\"false\" pTooltip=\"{{'header.menu.close' | translate}}\" tooltipPosition=\"bottom\"\r\n *ngIf=\"ls.isLoggedIn()\"> \r\n <ion-icon color=\"success\" name=\"close\"></ion-icon>\r\n </ion-menu-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <ion-content>\r\n <p-accordion *ngIf=\"menus && menus.length > 0 && (!ls.isClaimant() || legacyMenu == 'true')\">\r\n <p-accordionTab *ngFor=\"let menu of ls.getMenuBs() | async; let i = index\" [header]=\"menu.label\">\r\n <ion-list>\r\n <ion-item button *ngFor=\"let item of menu.items\" (click)=\"openPage(item)\" lines=\"none\">\r\n <ion-icon name=\"link\" color=\"primary\" slot=\"start\" *ngIf=\"!item.icon\" style=\"margin-inline-end: 15px !important;\"></ion-icon>\r\n <ion-icon [name]=\"item.icon\" color=\"primary\" slot=\"start\" *ngIf=\"item.icon\" style=\"margin-inline-end: 15px !important;\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: small;\">{{item.label}}</ion-label>\r\n <ion-button slot=\"end\" (click)=\"markFavourite(item); $event.stopPropagation();\" color=\"warning\" *ngIf=\"showFavButton\">\r\n <ion-icon name=\"star-outline\" *ngIf=\"!item.state.isFav\"></ion-icon>\r\n <ion-icon name=\"star-sharp\" *ngIf=\"item.state.isFav\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n </ion-list>\r\n </p-accordionTab>\r\n </p-accordion>\r\n\r\n <div *ngIf=\"menus && menus.length > 0 && (ls.isClaimant() && legacyMenu == 'false')\">\r\n <div *ngFor=\"let menu of ls.getMenuBs() | async; let i = index; let isLast = last\">\r\n <ion-list>\r\n <ion-item button *ngFor=\"let item of menu.items\" (click)=\"openPage(item)\" lines=\"none\">\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\" [ngClass]=\"showIcon(item) ? 'selected-menu' : 'selected-menu-unselect'\">{{item.label}}</ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </div>\r\n <p-divider></p-divider>\r\n\r\n <ion-list>\r\n <ion-item button lines=\"none\" (click)=\"presentMyProfilePopover($event)\">\r\n <ion-icon name=\"person-circle-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">{{userProfileLabel}}</ion-label>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"navigate('cp', 'documents')\">\r\n <ion-icon name=\"document-text-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">{{userDocumentsLabel}}</ion-label>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"logout()\">\r\n <ion-icon name=\"log-out-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">{{userLogoutLabel}}</ion-label>\r\n </ion-item>\r\n </ion-list>\r\n\r\n </div>\r\n </ion-content>\r\n</ion-menu>\r\n<app-profile *ngIf=\"showProfilePopup\" (onCancel)=\"showProfilePopup = !showProfilePopup\"></app-profile>", styles: ["ion-menu ion-content{--background: var(--ion-item-background, var(--ion-background-color, #fff))}ion-note{display:inline-block;font-size:16px;color:var(--ion-color-medium-shade)}ion-item.selected{--color: var(--ion-color-primary)}mat-expansion-panel-header{background:var(--ion-color-light)}.link{margin-right:25px;cursor:pointer;text-decoration:none;pointer-events:auto!important}.link:hover{color:var(--ion-color-yellow)!important}.footer-links{color:var(--ion-color-grey)!important}.header-links{color:var(--ion-color-primary)!important}.ios ion-menu::part(container){padding-top:25px!important}.selected-menu{-webkit-text-decoration:underline 2px;text-decoration:underline 2px;text-underline-offset:3px;text-decoration-color:var(--ion-color-secondary)}.selected-menu-unselect{text-decoration:none}.menu-icon{margin-inline-end:15px!important;font-size:20px}.item:nth-child(5) ion-label.sc-ion-label-md-h{font-size:31px;text-indent:-25px;margin-left:25px;overflow:visible;line-height:35px;white-space:normal}:host ::ng-deep .p-accordion .p-accordion-content{padding:0!important}:host ::ng-deep .p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem .5rem!important}:host ::ng-deep .p-accordion-header{background:var(--ion-color-light)!important}\n"] }]
450
- }], () => [{ type: i1.NavController }, { type: i1.PopoverController }, { type: i2.LoginService }, { type: i3.NotificationService }, { type: i4.Router }, { type: i1.MenuController }, { type: i5.UtilService }, { type: i4.ActivatedRoute }, { type: i6.TranslateService }], null); })();
451
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuComponent, { className: "MenuComponent", filePath: "lib\\components\\menu\\menu.component.ts", lineNumber: 19 }); })();
452
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7Ozs7OztJQ0h4RSwwQ0FDOEI7O0lBQ3hCLDhCQUFrRDtJQUN4RCxpQkFBa0I7O0lBSGdCLCtFQUE4Qzs7O0lBWTVFLCtCQUE2SDs7O0lBQzdILCtCQUFtSTs7O0lBQXpILG1DQUFrQjs7O0lBRzFCLCtCQUFtRTs7O0lBQ25FLCtCQUFnRTs7OztJQUZsRSxzQ0FBc0g7SUFBL0YsMFFBQVMsOEJBQW1CLFNBQUUsZUFBQSx3QkFBd0IsQ0FBQSxJQUFFO0lBQzdFLDJJQUFtRSw4SEFBQTtJQUVyRSxpQkFBYTs7O0lBRm9CLGVBQXVCO0lBQXZCLDJDQUF1QjtJQUN6QixlQUFzQjtJQUF0QiwwQ0FBc0I7Ozs7SUFOdkQsb0NBQXVGO0lBQXRDLHlRQUFTLGVBQUEseUJBQWMsQ0FBQSxJQUFDO0lBQ3ZFLDhIQUE2SCxpSEFBQTtJQUU3SCxxQ0FBcUQ7SUFBQSxZQUFjO0lBQUEsaUJBQVk7SUFDL0Usa0lBR2E7SUFDZixpQkFBVzs7OztJQVAyQyxlQUFnQjtJQUFoQixvQ0FBZ0I7SUFDVCxlQUFlO0lBQWYsbUNB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QUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDN0QsQ0FBQzs4RUF6UlUsYUFBYTtvRUFBYixhQUFhO1lDbEIxQix3RUF1RFcsaUVBQUE7O1lBdkRxRCwrRUFBa0Q7WUF3RHBHLGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRHRDdkIsYUFBYTtjQUx6QixTQUFTOzJCQUNFLFVBQVU7O2tGQUlULGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWVudUNvbnRyb2xsZXIsIE5hdkNvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBNeU5vdGlmaWNhdGlvbnNQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktbm90aWZpY2F0aW9ucy9teS1ub3RpZmljYXRpb25zLnBhZ2UnO1xyXG5pbXBvcnQgeyBNeVByb2ZpbGVQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktcHJvZmlsZS9teS1wcm9maWxlLnBhZ2UnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBtZW51czogTWVudUl0ZW1bXTtcclxuICBwdWJsaWMgYXBwVmVyc2lvbiA9IExpYkNvbnN0YW50cy5hcHBWZXJzaW9uO1xyXG4gIHB1YmxpYyBzaG93RmF2QnV0dG9uID0gZmFsc2U7XHJcbiAgcHVibGljIHJlUmVuZGVyTWVudSA9IHRydWU7XHJcbiAgcHVibGljIGxlZ2FjeU1lbnUgPSBMaWJDb25zdGFudHMubGVnYWN5TWVudTtcclxuICBwdWJsaWMgc2hvd1Byb2ZpbGVQb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyBwb3B1cDogUG9wb3ZlckNvbnRyb2xsZXIsIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgbnM6IE5vdGlmaWNhdGlvblNlcnZpY2UsIFxyXG4gICAgICAgICAgICAgIHB1YmxpYyByOiBSb3V0ZXIsIHB1YmxpYyBtZW51OiBNZW51Q29udHJvbGxlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgYXIgOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2UgOiBUcmFuc2xhdGVTZXJ2aWNlICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpKTsgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikpO1xyXG4gICAgdGhpcy5zZXR1cFVzZXJNZW51KCk7XHJcbiAgICB0aGlzLnNob3dGYXZCdXR0b24gPSB0aGlzLmxzLmlzQ3NyKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNZW51KHVzZXI6IFVzZXJNb2RlbCkge1xyXG4gICAgaWYgKHVzZXIpIHtcclxuICAgICAgdGhpcy5ucy5zZXR1cE5vdGlmaWNhdGlvblRpbWVyKCk7XHJcbiAgICAgIGlmKCF0aGlzLmxzLmlzQ2xhaW1hbnQoKSB8fCB0aGlzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnKXtcclxuICAgICAgICB0aGlzLmxvYWRNZW51KCk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLnNldENsYWltYW50TWVudSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1lbnVzID0gW107XHJcbiAgICAgIHRoaXMubnMucmVtb3ZlTm90aWZpY2F0aW9uVGltZXIoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0ZhdkJ1dHRvbiA9IHRoaXMubHMuaXNDc3IoKTtcclxuICB9XHJcblxyXG4gIHNldENsYWltYW50TWVudSgpe1xyXG4gICAgdGhpcy5tZW51cyA9IFtcclxuICAgICB7XHJcbiAgICAgICBsYWJlbDogXCJNZW51c1wiLFxyXG4gICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwibGFiZWxcIjogIHRoaXMuZ2V0SG9tZUxhYmVsKCksXHJcbiAgICAgICAgICAgIFwic3RhdGVcIiA6IHtcclxuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wibXNcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wiY2xhaW1hbnRcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb3V0ZXJMaW5rXCI6IFwid2VsY29tZVwiLFxyXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxyXG4gICAgICAgICAgICAgIFwiaWRcIjogXCJtZW51LTE4XCJcclxuICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImxhYmVsXCI6IHRoaXMuZ2V0Q2xhaW1zTGFiZWwoKSwgXHJcbiAgICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xyXG4gICAgICAgICAgICAgICAgXCJjb25zb3J0aXVtU3RhdGVcIiA6IFtcIm1zXCJdLFxyXG4gICAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wiY2xhaW1hbnRcIl0sXHJcbiAgICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJjbGFpbWFudC1pbmR1Y3Rpb25cIixcclxuICAgICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxyXG4gICAgICAgICAgICAgICAgXCJpZFwiOiBcIm1lbnUtMTlcIlxyXG4gICAgICAgICAgICB9fSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICBcImxhYmVsXCI6IHRoaXMuZ2V0V2Vla2x5TGFiZWwoKSwgXHJcbiAgICAgICAgICAgIFwic3RhdGVcIiA6IHtcclxuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wibXNcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wiY2xhaW1hbnRcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb3V0ZXJMaW5rXCI6IFwidjMvd2Vla2xpZXNcIixcclxuICAgICAgICAgICAgICBcImNvbnRleHRcIiA6IFwiY3BcIixcclxuICAgICAgICAgICAgICBcImlkXCI6IFwibWVudS0xNlwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgXCJsYWJlbFwiOiB0aGlzLmdldEhpc3RvcnlMYWJlbCgpLCBcclxuICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xyXG4gICAgICAgICAgICAgIFwiY29uc29ydGl1bVN0YXRlXCIgOiBbXCJtc1wiXSxcclxuICAgICAgICAgICAgICBcInJvbGVzXCIgOiBbXCJjbGFpbWFudFwiXSxcclxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJoaXN0b3J5XCIsXHJcbiAgICAgICAgICAgICAgXCJjb250ZXh0XCIgOiBcImNwXCIsXHJcbiAgICAgICAgICAgICAgXCJpZFwiOiBcIm1lbnUtMTdcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIFwibGFiZWxcIjogdGhpcy5nZXRXb3JrU2VhcmNoTGFiZWwoKSwgXHJcbiAgICAgICAgICAgIFwic3RhdGVcIiA6IHtcclxuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wia3NcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wid29yay1zZWFyY2gtam91cm5hbFwiXSxcclxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJ3b3JrLXNlYXJjaC1qb3VybmFsXCIsXHJcbiAgICAgICAgICAgICAgXCJjb250ZXh0XCIgOiBcImNwXCIsXHJcbiAgICAgICAgICAgICAgXCJpZFwiOiBcIm1lbnUtMjBcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICB9XHJcbiAgICBdO1xyXG4gICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KHRoaXMubWVudXMpO1xyXG4gIH1cclxuXHJcbiAgbG9hZE1lbnUoKXtcclxuICAgIHRoaXMubHNcclxuICAgICAgICAuZ2V0VXNlck1lbnVzKClcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZW51cyA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KHRoaXMubWVudXMpO1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoTm90aWZpY2F0aW9ucygpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudXMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgfVxyXG5cclxuICBmZXRjaE5vdGlmaWNhdGlvbnMoKXtcclxuICAgIHRoaXMubnNcclxuICAgICAgICAuZ2V0Tm90aWZpY2F0aW9ucygpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubnMubm90aWZpY2F0aW9ucy5uZXh0KHJlcyk7XHJcbiAgICAgICAgICAgIHRoaXMubnMuZ2V0VW5yZWFkTm90aWZpY2F0aW9uQ291bnQoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5zLm5vdGlmaWNhdGlvbkNvdW50Lm5leHQoMCk7XHJcbiAgICAgICAgICAgIHRoaXMubnMubm90aWZpY2F0aW9ucy5uZXh0KFtdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cFVzZXJNZW51KCkge1xyXG4gICAgdGhpcy5sc1xyXG4gICAgICAuZ2V0VXNlckJzKClcclxuICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcclxuICAgICAgICBpZih1c2VyICYmICF1c2VyLmlzMkZBUmVxdWlyZWQpe1xyXG4gICAgICAgICAgdGhpcy5zZXRNZW51KHVzZXIpO1xyXG4gICAgICAgIH0gZWxzZXtcclxuICAgICAgICAgIHRoaXMubWVudXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMubnMucmVtb3ZlTm90aWZpY2F0aW9uVGltZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblBhZ2UobWVudTogTWVudUl0ZW0pIHtcclxuICAgIGlmICghbWVudSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgYXBwTmFtZSA9IG1lbnUuc3RhdGUuYXBwO1xyXG4gICAgbGV0IG1lbnVDb250ZXh0Um9vdCA9IGAvJHttZW51LnN0YXRlLmNvbnRleHR9YDtcclxuICAgIGxldCBwYWdlVG9OYXZpZ2F0ZSA6IHN0cmluZyA9IG1lbnUuc3RhdGUucm91dGVyTGluaztcclxuXHJcbiAgICBpZihhcHBOYW1lID09ICdiZW4nKXtcclxuICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0ke21lbnVDb250ZXh0Um9vdH0vJHtwYWdlVG9OYXZpZ2F0ZX0/YT0ke3RoaXMubHMuZ2V0VXNlcigpLmFjY2Vzc190b2tlbn0mcj0ke3RoaXMubHMuZ2V0VXNlcigpLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNlIGlmKGFwcE5hbWUgPT0gJ3RheCcpe1xyXG4gICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy50YXhVcmxFeHRlcm5hbH0ke21lbnVDb250ZXh0Um9vdH0vJHtwYWdlVG9OYXZpZ2F0ZX0/YT0ke3RoaXMubHMuZ2V0VXNlcigpLmFjY2Vzc190b2tlbn0mcj0ke3RoaXMubHMuZ2V0VXNlcigpLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY3VycmVudENvbnRleHRSb290ID0gdGhpcy51dGlsLmdldENvbnRleHRSb290KCk7XHJcbiAgICBcclxuICAgIGlmKGN1cnJlbnRDb250ZXh0Um9vdCA9PSBtZW51Q29udGV4dFJvb3Qpe1xyXG4gICAgICB0aGlzLnIubmF2aWdhdGVCeVVybChgLyR7cGFnZVRvTmF2aWdhdGV9YCk7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QobWVudUNvbnRleHRSb290LCBtZW51LnN0YXRlLnJvdXRlckxpbmspO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tZW51LmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBtYXJrRmF2b3VyaXRlKGl0ZW0pe1xyXG4gICAgaWYoaXRlbS5zdGF0ZS5pc0Zhdil7XHJcbiAgICAgIGl0ZW0uc3RhdGUuaXNGYXYgPSAhaXRlbS5zdGF0ZS5pc0ZhdjtcclxuICAgICAgdGhpcy5sc1xyXG4gICAgICAgICAgLnJlbW92ZUZhdihpdGVtLnN0YXRlLmlkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxzLmdldE1lbnVCcygpLm5leHQocmVzKTtcclxuICAgICAgICAgICAgdGhpcy51dGlsLnRvYXN0KFwiUmVtb3ZlZCBGYXZvdXJpdGUuXCIpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIGl0ZW0uc3RhdGUuaXNGYXYgPSAhaXRlbS5zdGF0ZS5pc0ZhdjtcclxuICAgICAgdGhpcy5sc1xyXG4gICAgICAgICAgLm1hcmtGYXYoaXRlbS5zdGF0ZS5pZClcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KHJlcyk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC50b2FzdChcIk1hcmtlZCBGYXZvdXJpdGUuXCIpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuSG9tZSgpe1xyXG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvd2VsY29tZScpO1xyXG4gIH1cclxuXHJcbiAgbWVudU9wZW5lZCgpe1xyXG4gICAgdGhpcy5yZVJlbmRlck1lbnUgPSBmYWxzZTtcclxuICAgIHRoaXMucmVSZW5kZXJNZW51ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNob3dJY29uKGl0ZW0pe1xyXG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuci51cmwucmVwbGFjZSgnLycsICcnKTtcclxuICAgIHJldHVybiBjdXJyZW50Um91dGUuaW5jbHVkZXMoaXRlbS5zdGF0ZS5yb3V0ZXJMaW5rKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlKGNvbnRleHRSb290LCB1cmkpe1xyXG4gICAgbGV0IGN1cnJlbnRDb250ZXh0Um9vdCA9IHRoaXMudXRpbC5nZXRDb250ZXh0Um9vdCgpO1xyXG4gICAgbGV0IHRhcmdldCA9IGAvJHtjb250ZXh0Um9vdH1gO1xyXG5cclxuICAgIGlmKGN1cnJlbnRDb250ZXh0Um9vdCA9PSB0YXJnZXQpe1xyXG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUZvcndhcmQoYC8ke3VyaX1gKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KHRhcmdldCwgdXJpKTtcclxuICAgIH1cclxuICAgIHRoaXMubWVudS5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcHJlc2VudE15Tm90aWZpY2F0aW9uUG9wb3ZlcihldmVudCkge1xyXG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wdXAuY3JlYXRlKHtcclxuICAgICAgY29tcG9uZW50OiBNeU5vdGlmaWNhdGlvbnNQYWdlLFxyXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxyXG4gICAgICBjc3NDbGFzczogJ2hlYWRlci1wb3BvdmVyJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgcG9wb3Zlci5vbkRpZERpc21pc3MoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5ucy51cGRhdGVSZWFkRmxhZygpO1xyXG4gICAgfSlcclxuICAgIHRoaXMubWVudS5jbG9zZSgpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcHJlc2VudE15UHJvZmlsZVBvcG92ZXIoZXZlbnQpIHtcclxuXHJcbiAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSl7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2ZpbGVQb3B1cCA9IHRydWU7XHJcbiAgICAgIHRoaXMubWVudS5jbG9zZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcHVwLmNyZWF0ZSh7XHJcbiAgICAgIGNvbXBvbmVudDogTXlQcm9maWxlUGFnZSxcclxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcclxuICAgICAgY3NzQ2xhc3M6ICdoZWFkZXItcG9wb3ZlcidcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICByZXR1cm4gYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKXtcclxuICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnL2xhbmRpbmcnKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibGFuZ3VhZ2VcIixcImVuXCIpO1xyXG4gICAgdGhpcy5scy5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyUHJvZmlsZUxhYmVsKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi51c2VyLnByb2ZpbGUnKTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyRG9jdW1lbnRzTGFiZWwoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLmRvY3VtZW50cycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJMb2dvdXRMYWJlbCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24ubG9nb3V0Jyk7XHJcbiAgfVxyXG5cclxuICBnZXRIb21lTGFiZWwoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLmhvbWUnKTtcclxuICB9XHJcblxyXG4gIGdldENsYWltc0xhYmVsKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5jbGFpbXMnKTtcclxuICB9XHJcblxyXG4gIGdldFdlZWtseUxhYmVsKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi53ZWVrbHknKTtcclxuICB9XHJcblxyXG4gIGdldEhpc3RvcnlMYWJlbCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24uaGlzdG9yeScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V29ya1NlYXJjaExhYmVsKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi53b3JrLnNlYXJjaCcpO1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLW1lbnUgc2lkZT1cInN0YXJ0XCIgbWVudUlkPVwiZmlyc3RcIiBjb250ZW50SWQ9XCJtYWluLWNvbnRlbnRcIiAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKSAmJiBtZW51cyAmJiBtZW51cy5sZW5ndGggPiAwXCIgKGlvbkRpZE9wZW4pPVwibWVudU9wZW5lZCgpXCI+XHJcbiAgPGlvbi1oZWFkZXI+XHJcbiAgICA8aW9uLXRvb2xiYXI+XHJcbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cclxuICAgICAgICA8aW9uLW1lbnUtYnV0dG9uIGF1dG9IaWRlPVwiZmFsc2VcIiBwVG9vbHRpcD1cInt7J2hlYWRlci5tZW51LmNsb3NlJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKVwiPiAgICBcclxuICAgICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJzdWNjZXNzXCIgbmFtZT1cImNsb3NlXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1tZW51LWJ1dHRvbj5cclxuICAgICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDwvaW9uLXRvb2xiYXI+XHJcbiAgPC9pb24taGVhZGVyPlxyXG4gIDxpb24tY29udGVudD5cclxuICAgIDxwLWFjY29yZGlvbiAqbmdJZj1cIm1lbnVzICYmIG1lbnVzLmxlbmd0aCA+IDAgJiYgKCFscy5pc0NsYWltYW50KCkgfHwgbGVnYWN5TWVudSA9PSAndHJ1ZScpXCI+XHJcbiAgICAgIDxwLWFjY29yZGlvblRhYiAqbmdGb3I9XCJsZXQgbWVudSBvZiBscy5nZXRNZW51QnMoKSB8IGFzeW5jOyBsZXQgaSA9IGluZGV4XCIgW2hlYWRlcl09XCJtZW51LmxhYmVsXCI+XHJcbiAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51Lml0ZW1zXCIgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0pXCIgbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibGlua1wiIGNvbG9yPVwicHJpbWFyeVwiIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwiIWl0ZW0uaWNvblwiIHN0eWxlPVwibWFyZ2luLWlubGluZS1lbmQ6IDE1cHggIWltcG9ydGFudDtcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiaXRlbS5pY29uXCIgY29sb3I9XCJwcmltYXJ5XCIgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJpdGVtLmljb25cIiBzdHlsZT1cIm1hcmdpbi1pbmxpbmUtZW5kOiAxNXB4ICFpbXBvcnRhbnQ7XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+e3tpdGVtLmxhYmVsfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2xvdD1cImVuZFwiIChjbGljayk9XCJtYXJrRmF2b3VyaXRlKGl0ZW0pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgY29sb3I9XCJ3YXJuaW5nXCIgKm5nSWY9XCJzaG93RmF2QnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzdGFyLW91dGxpbmVcIiAqbmdJZj1cIiFpdGVtLnN0YXRlLmlzRmF2XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN0YXItc2hhcnBcIiAqbmdJZj1cIml0ZW0uc3RhdGUuaXNGYXZcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgIDwvcC1hY2NvcmRpb25UYWI+XHJcbiAgICA8L3AtYWNjb3JkaW9uPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJtZW51cyAmJiBtZW51cy5sZW5ndGggPiAwICYmIChscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnKVwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIGxzLmdldE1lbnVCcygpIHwgYXN5bmM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51Lml0ZW1zXCIgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0pXCIgbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCIgW25nQ2xhc3NdPVwic2hvd0ljb24oaXRlbSkgPyAnc2VsZWN0ZWQtbWVudScgOiAnc2VsZWN0ZWQtbWVudS11bnNlbGVjdCdcIj57e2l0ZW0ubGFiZWx9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuXHJcbiAgICAgIDxpb24tbGlzdD5cclxuICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uIGxpbmVzPVwibm9uZVwiIChjbGljayk9XCJwcmVzZW50TXlQcm9maWxlUG9wb3ZlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlcnNvbi1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwibWVudS1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCI+e3t1c2VyUHJvZmlsZUxhYmVsfX08L2lvbi1sYWJlbD5cclxuICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDxpb24taXRlbSBidXR0b24gbGluZXM9XCJub25lXCIgKGNsaWNrKT1cIm5hdmlnYXRlKCdjcCcsICdkb2N1bWVudHMnKVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb2N1bWVudC10ZXh0LW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiBjbGFzcz1cIm1lbnUtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAzMXB4O1wiPnt7dXNlckRvY3VtZW50c0xhYmVsfX08L2lvbi1sYWJlbD5cclxuICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDxpb24taXRlbSBidXR0b24gbGluZXM9XCJub25lXCIgKGNsaWNrKT1cImxvZ291dCgpXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImxvZy1vdXQtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwibWVudS1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCI+e3t1c2VyTG9nb3V0TGFiZWx9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgIDwvaW9uLWxpc3Q+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9pb24tY29udGVudD5cclxuPC9pb24tbWVudT5cclxuPGFwcC1wcm9maWxlICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93UHJvZmlsZVBvcHVwID0gIXNob3dQcm9maWxlUG9wdXBcIj48L2FwcC1wcm9maWxlPiJdfQ==
411
+ args: [{ selector: 'app-menu', template: "<ion-menu side=\"start\" menuId=\"first\" contentId=\"main-content\" *ngIf=\"ls.isLoggedIn() && menus && menus.length > 0\" (ionDidOpen)=\"menuOpened()\">\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button autoHide=\"false\" pTooltip=\"Close menu\" tooltipPosition=\"bottom\"\r\n *ngIf=\"ls.isLoggedIn()\"> \r\n <ion-icon color=\"success\" name=\"close\"></ion-icon>\r\n </ion-menu-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <ion-content>\r\n <p-accordion *ngIf=\"menus && menus.length > 0 && (!ls.isClaimant() || legacyMenu == 'true')\">\r\n <p-accordionTab *ngFor=\"let menu of ls.getMenuBs() | async; let i = index\" [header]=\"menu.label\">\r\n <ion-list>\r\n <ion-item button *ngFor=\"let item of menu.items\" (click)=\"openPage(item)\" lines=\"none\">\r\n <ion-icon name=\"link\" color=\"primary\" slot=\"start\" *ngIf=\"!item.icon\" style=\"margin-inline-end: 15px !important;\"></ion-icon>\r\n <ion-icon [name]=\"item.icon\" color=\"primary\" slot=\"start\" *ngIf=\"item.icon\" style=\"margin-inline-end: 15px !important;\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: small;\">{{item.label}}</ion-label>\r\n <ion-button slot=\"end\" (click)=\"markFavourite(item); $event.stopPropagation();\" color=\"warning\" *ngIf=\"showFavButton\">\r\n <ion-icon name=\"star-outline\" *ngIf=\"!item.state.isFav\"></ion-icon>\r\n <ion-icon name=\"star-sharp\" *ngIf=\"item.state.isFav\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n </ion-list>\r\n </p-accordionTab>\r\n </p-accordion>\r\n\r\n <div *ngIf=\"menus && menus.length > 0 && (ls.isClaimant() && legacyMenu == 'false')\">\r\n <div *ngFor=\"let menu of ls.getMenuBs() | async; let i = index; let isLast = last\">\r\n <ion-list>\r\n <ion-item button *ngFor=\"let item of menu.items\" (click)=\"openPage(item)\" lines=\"none\">\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\" [ngClass]=\"showIcon(item) ? 'selected-menu' : 'selected-menu-unselect'\">{{item.label}}</ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </div>\r\n <p-divider></p-divider>\r\n\r\n <ion-list>\r\n <ion-item button lines=\"none\" (click)=\"presentMyProfilePopover($event)\">\r\n <ion-icon name=\"person-circle-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">User Profile</ion-label>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"navigate('cp', 'documents')\">\r\n <ion-icon name=\"document-text-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">Documents</ion-label>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"logout()\">\r\n <ion-icon name=\"log-out-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">Logout</ion-label>\r\n </ion-item>\r\n </ion-list>\r\n\r\n </div>\r\n </ion-content>\r\n</ion-menu>\r\n<app-profile *ngIf=\"showProfilePopup\" (onCancel)=\"showProfilePopup = !showProfilePopup\"></app-profile>", styles: ["ion-menu ion-content{--background: var(--ion-item-background, var(--ion-background-color, #fff))}ion-note{display:inline-block;font-size:16px;color:var(--ion-color-medium-shade)}ion-item.selected{--color: var(--ion-color-primary)}mat-expansion-panel-header{background:var(--ion-color-light)}.link{margin-right:25px;cursor:pointer;text-decoration:none;pointer-events:auto!important}.link:hover{color:var(--ion-color-yellow)!important}.footer-links{color:var(--ion-color-grey)!important}.header-links{color:var(--ion-color-primary)!important}.ios ion-menu::part(container){padding-top:25px!important}.selected-menu{-webkit-text-decoration:underline 2px;text-decoration:underline 2px;text-underline-offset:3px;text-decoration-color:var(--ion-color-secondary)}.selected-menu-unselect{text-decoration:none}.menu-icon{margin-inline-end:15px!important;font-size:20px}.item:nth-child(5) ion-label.sc-ion-label-md-h{font-size:31px;text-indent:-25px;margin-left:25px;overflow:visible;line-height:35px;white-space:normal}:host ::ng-deep .p-accordion .p-accordion-content{padding:0!important}:host ::ng-deep .p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem .5rem!important}:host ::ng-deep .p-accordion-header{background:var(--ion-color-light)!important}\n"] }]
412
+ }], () => [{ type: i1.NavController }, { type: i1.PopoverController }, { type: i2.LoginService }, { type: i3.NotificationService }, { type: i4.Router }, { type: i1.MenuController }, { type: i5.UtilService }, { type: i4.ActivatedRoute }], null); })();
413
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuComponent, { className: "MenuComponent", filePath: "lib\\components\\menu\\menu.component.ts", lineNumber: 18 }); })();
414
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7Ozs7O0lDSHhFLDBDQUM4QjtJQUN4Qiw4QkFBa0Q7SUFDeEQsaUJBQWtCOzs7SUFTZCwrQkFBNkg7OztJQUM3SCwrQkFBbUk7OztJQUF6SCxtQ0FBa0I7OztJQUcxQiwrQkFBbUU7OztJQUNuRSwrQkFBZ0U7Ozs7SUFGbEUsc0NBQXNIO0lBQS9GLDBRQUFTLDhCQUFtQixTQUFFLGVBQUEsd0JBQXdCLENBQUEsSUFBRTtJQUM3RSwySUFBbUUsOEhBQUE7SUFFckUsaUJBQWE7OztJQUZvQixlQUF1QjtJQUF2QiwyQ0FBdUI7SUFDekIsZUFBc0I7SUFBdEIsMENBQXNCOzs7O0lBTnZELG9DQUF1RjtJQUF0Qyx5UUFBUyxlQUFBLHlCQUFjLENBQUEsSUFBQztJQUN2RSw4SEFBNkgsaUhBQUE7SUFFN0gscUNBQXFEO0lBQUEsWUFBYztJQUFBLGlCQUFZO0lBQy9FLGtJQUdhO0lBQ2YsaUJBQVc7Ozs7SUFQMkMsZUFBZ0I7SUFBaEIsb0NBQWdCO0lBQ1QsZUFBZTtJQUFmLG1DQUFlO0lBQ3JCLGVBQWM7SUFB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QkFBdUIsQ0FBQyxLQUFLO1FBRWpDLElBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsT0FBTztTQUNSO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QyxTQUFTLEVBQUUsYUFBYTtZQUN4QixXQUFXLEVBQUUsSUFBSTtZQUNqQixlQUFlLEVBQUUsSUFBSTtZQUNyQixRQUFRLEVBQUUsZ0JBQWdCO1NBQzNCLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ25CLENBQUM7OEVBclBVLGFBQWE7b0VBQWIsYUFBYTtZQ2pCMUIsd0VBdURXLGlFQUFBOztZQXZEcUQsK0VBQWtEO1lBd0RwRyxlQUFzQjtZQUF0QiwyQ0FBc0I7OztpRkR2Q3ZCLGFBQWE7Y0FMekIsU0FBUzsyQkFDRSxVQUFVOztrRkFJVCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1lbnVDb250cm9sbGVyLCBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgTXlOb3RpZmljYXRpb25zUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3BvcG92ZXJzL215LW5vdGlmaWNhdGlvbnMvbXktbm90aWZpY2F0aW9ucy5wYWdlJztcclxuaW1wb3J0IHsgTXlQcm9maWxlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3BvcG92ZXJzL215LXByb2ZpbGUvbXktcHJvZmlsZS5wYWdlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIG1lbnVzOiBNZW51SXRlbVtdO1xyXG4gIHB1YmxpYyBhcHBWZXJzaW9uID0gTGliQ29uc3RhbnRzLmFwcFZlcnNpb247XHJcbiAgcHVibGljIHNob3dGYXZCdXR0b24gPSBmYWxzZTtcclxuICBwdWJsaWMgcmVSZW5kZXJNZW51ID0gdHJ1ZTtcclxuICBwdWJsaWMgbGVnYWN5TWVudSA9IExpYkNvbnN0YW50cy5sZWdhY3lNZW51O1xyXG4gIHB1YmxpYyBzaG93UHJvZmlsZVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5hdjogTmF2Q29udHJvbGxlciwgcHVibGljIHBvcHVwOiBQb3BvdmVyQ29udHJvbGxlciwgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHB1YmxpYyBuczogTm90aWZpY2F0aW9uU2VydmljZSwgXHJcbiAgICAgICAgICAgICAgcHVibGljIHI6IFJvdXRlciwgcHVibGljIG1lbnU6IE1lbnVDb250cm9sbGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBhciA6IEFjdGl2YXRlZFJvdXRlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldHVwVXNlck1lbnUoKTtcclxuICAgIHRoaXMuc2hvd0ZhdkJ1dHRvbiA9IHRoaXMubHMuaXNDc3IoKTtcclxuICB9XHJcblxyXG4gIHNldE1lbnUodXNlcjogVXNlck1vZGVsKSB7XHJcbiAgICBpZiAodXNlcikge1xyXG4gICAgICB0aGlzLm5zLnNldHVwTm90aWZpY2F0aW9uVGltZXIoKTtcclxuICAgICAgaWYoIXRoaXMubHMuaXNDbGFpbWFudCgpIHx8IHRoaXMubGVnYWN5TWVudSA9PSAndHJ1ZScpe1xyXG4gICAgICAgIHRoaXMubG9hZE1lbnUoKTtcclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Q2xhaW1hbnRNZW51KCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWVudXMgPSBbXTtcclxuICAgICAgdGhpcy5ucy5yZW1vdmVOb3RpZmljYXRpb25UaW1lcigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93RmF2QnV0dG9uID0gdGhpcy5scy5pc0NzcigpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhaW1hbnRNZW51KCl7XHJcbiAgICB0aGlzLm1lbnVzID0gW1xyXG4gICAgIHtcclxuICAgICAgIGxhYmVsOiBcIk1lbnVzXCIsXHJcbiAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJsYWJlbFwiOiBcIkhvbWVcIiwgXHJcbiAgICAgICAgICAgIFwic3RhdGVcIiA6IHtcclxuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wibXNcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wiY2xhaW1hbnRcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb3V0ZXJMaW5rXCI6IFwid2VsY29tZVwiLFxyXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxyXG4gICAgICAgICAgICAgIFwiaWRcIjogXCJtZW51LTE4XCJcclxuICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiQ2xhaW1zXCIsIFxyXG4gICAgICAgICAgICAgIFwic3RhdGVcIiA6IHtcclxuICAgICAgICAgICAgICAgIFwiY29uc29ydGl1bVN0YXRlXCIgOiBbXCJtc1wiXSxcclxuICAgICAgICAgICAgICAgIFwicm9sZXNcIiA6IFtcImNsYWltYW50XCJdLFxyXG4gICAgICAgICAgICAgICAgXCJyb3V0ZXJMaW5rXCI6IFwiY2xhaW1hbnQtaW5kdWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICBcImNvbnRleHRcIiA6IFwiY3BcIixcclxuICAgICAgICAgICAgICAgIFwiaWRcIjogXCJtZW51LTE5XCJcclxuICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJsYWJlbFwiOiBcIldlZWtseVwiLCBcclxuICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xyXG4gICAgICAgICAgICAgIFwiY29uc29ydGl1bVN0YXRlXCIgOiBbXCJtc1wiXSxcclxuICAgICAgICAgICAgICBcInJvbGVzXCIgOiBbXCJjbGFpbWFudFwiXSxcclxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJ2My93ZWVrbGllc1wiLFxyXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxyXG4gICAgICAgICAgICAgIFwiaWRcIjogXCJtZW51LTE2XCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBcImxhYmVsXCI6IFwiSGlzdG9yeVwiLCBcclxuICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xyXG4gICAgICAgICAgICAgIFwiY29uc29ydGl1bVN0YXRlXCIgOiBbXCJtc1wiXSxcclxuICAgICAgICAgICAgICBcInJvbGVzXCIgOiBbXCJjbGFpbWFudFwiXSxcclxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJoaXN0b3J5XCIsXHJcbiAgICAgICAgICAgICAgXCJjb250ZXh0XCIgOiBcImNwXCIsXHJcbiAgICAgICAgICAgICAgXCJpZFwiOiBcIm1lbnUtMTdcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIFwibGFiZWxcIjogXCJXb3JrIFNlYXJjaCBKb3VybmFsXCIsIFxyXG4gICAgICAgICAgICBcInN0YXRlXCIgOiB7XHJcbiAgICAgICAgICAgICAgXCJjb25zb3J0aXVtU3RhdGVcIiA6IFtcImtzXCJdLFxyXG4gICAgICAgICAgICAgIFwicm9sZXNcIiA6IFtcIndvcmstc2VhcmNoLWpvdXJuYWxcIl0sXHJcbiAgICAgICAgICAgICAgXCJyb3V0ZXJMaW5rXCI6IFwid29yay1zZWFyY2gtam91cm5hbFwiLFxyXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxyXG4gICAgICAgICAgICAgIFwiaWRcIjogXCJtZW51LTIwXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgfVxyXG4gICAgXTtcclxuICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dCh0aGlzLm1lbnVzKTtcclxuICB9XHJcblxyXG4gIGxvYWRNZW51KCl7XHJcbiAgICB0aGlzLmxzXHJcbiAgICAgICAgLmdldFVzZXJNZW51cygpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudXMgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dCh0aGlzLm1lbnVzKTtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaE5vdGlmaWNhdGlvbnMoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVzID0gW107XHJcbiAgICAgICAgICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dChudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hOb3RpZmljYXRpb25zKCl7XHJcbiAgICB0aGlzLm5zXHJcbiAgICAgICAgLmdldE5vdGlmaWNhdGlvbnMoKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5zLm5vdGlmaWNhdGlvbnMubmV4dChyZXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5zLmdldFVucmVhZE5vdGlmaWNhdGlvbkNvdW50KCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ucy5ub3RpZmljYXRpb25Db3VudC5uZXh0KDApO1xyXG4gICAgICAgICAgICB0aGlzLm5zLm5vdGlmaWNhdGlvbnMubmV4dChbXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBVc2VyTWVudSgpIHtcclxuICAgIHRoaXMubHNcclxuICAgICAgLmdldFVzZXJCcygpXHJcbiAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB7XHJcbiAgICAgICAgaWYodXNlciAmJiAhdXNlci5pczJGQVJlcXVpcmVkKXtcclxuICAgICAgICAgIHRoaXMuc2V0TWVudSh1c2VyKTtcclxuICAgICAgICB9IGVsc2V7XHJcbiAgICAgICAgICB0aGlzLm1lbnVzID0gW107XHJcbiAgICAgICAgICB0aGlzLm5zLnJlbW92ZU5vdGlmaWNhdGlvblRpbWVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5QYWdlKG1lbnU6IE1lbnVJdGVtKSB7XHJcbiAgICBpZiAoIW1lbnUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGFwcE5hbWUgPSBtZW51LnN0YXRlLmFwcDtcclxuICAgIGxldCBtZW51Q29udGV4dFJvb3QgPSBgLyR7bWVudS5zdGF0ZS5jb250ZXh0fWA7XHJcbiAgICBsZXQgcGFnZVRvTmF2aWdhdGUgOiBzdHJpbmcgPSBtZW51LnN0YXRlLnJvdXRlckxpbms7XHJcblxyXG4gICAgaWYoYXBwTmFtZSA9PSAnYmVuJyl7XHJcbiAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9JHttZW51Q29udGV4dFJvb3R9LyR7cGFnZVRvTmF2aWdhdGV9P2E9JHt0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW59JnI9JHt0aGlzLmxzLmdldFVzZXIoKS5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZSBpZihhcHBOYW1lID09ICd0YXgnKXtcclxuICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMudGF4VXJsRXh0ZXJuYWx9JHttZW51Q29udGV4dFJvb3R9LyR7cGFnZVRvTmF2aWdhdGV9P2E9JHt0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW59JnI9JHt0aGlzLmxzLmdldFVzZXIoKS5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGN1cnJlbnRDb250ZXh0Um9vdCA9IHRoaXMudXRpbC5nZXRDb250ZXh0Um9vdCgpO1xyXG4gICAgXHJcbiAgICBpZihjdXJyZW50Q29udGV4dFJvb3QgPT0gbWVudUNvbnRleHRSb290KXtcclxuICAgICAgdGhpcy5yLm5hdmlnYXRlQnlVcmwoYC8ke3BhZ2VUb05hdmlnYXRlfWApO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KG1lbnVDb250ZXh0Um9vdCwgbWVudS5zdGF0ZS5yb3V0ZXJMaW5rKTtcclxuICAgIH1cclxuICAgIHRoaXMubWVudS5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgbWFya0Zhdm91cml0ZShpdGVtKXtcclxuICAgIGlmKGl0ZW0uc3RhdGUuaXNGYXYpe1xyXG4gICAgICBpdGVtLnN0YXRlLmlzRmF2ID0gIWl0ZW0uc3RhdGUuaXNGYXY7XHJcbiAgICAgIHRoaXMubHNcclxuICAgICAgICAgIC5yZW1vdmVGYXYoaXRlbS5zdGF0ZS5pZClcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KHJlcyk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC50b2FzdChcIlJlbW92ZWQgRmF2b3VyaXRlLlwiKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBpdGVtLnN0YXRlLmlzRmF2ID0gIWl0ZW0uc3RhdGUuaXNGYXY7XHJcbiAgICAgIHRoaXMubHNcclxuICAgICAgICAgIC5tYXJrRmF2KGl0ZW0uc3RhdGUuaWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dChyZXMpO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwudG9hc3QoXCJNYXJrZWQgRmF2b3VyaXRlLlwiKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbkhvbWUoKXtcclxuICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnL3dlbGNvbWUnKTtcclxuICB9XHJcblxyXG4gIG1lbnVPcGVuZWQoKXtcclxuICAgIHRoaXMucmVSZW5kZXJNZW51ID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlUmVuZGVyTWVudSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzaG93SWNvbihpdGVtKXtcclxuICAgIGxldCBjdXJyZW50Um91dGUgPSB0aGlzLnIudXJsLnJlcGxhY2UoJy8nLCAnJyk7XHJcbiAgICByZXR1cm4gY3VycmVudFJvdXRlLmluY2x1ZGVzKGl0ZW0uc3RhdGUucm91dGVyTGluayk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZShjb250ZXh0Um9vdCwgdXJpKXtcclxuICAgIGxldCBjdXJyZW50Q29udGV4dFJvb3QgPSB0aGlzLnV0aWwuZ2V0Q29udGV4dFJvb3QoKTtcclxuICAgIGxldCB0YXJnZXQgPSBgLyR7Y29udGV4dFJvb3R9YDtcclxuXHJcbiAgICBpZihjdXJyZW50Q29udGV4dFJvb3QgPT0gdGFyZ2V0KXtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVGb3J3YXJkKGAvJHt1cml9YCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdCh0YXJnZXQsIHVyaSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1lbnUuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoZXZlbnQpIHtcclxuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcHVwLmNyZWF0ZSh7XHJcbiAgICAgIGNvbXBvbmVudDogTXlOb3RpZmljYXRpb25zUGFnZSxcclxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcclxuICAgICAgY3NzQ2xhc3M6ICdoZWFkZXItcG9wb3ZlcidcclxuICAgIH0pO1xyXG5cclxuICAgIHBvcG92ZXIub25EaWREaXNtaXNzKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMubnMudXBkYXRlUmVhZEZsYWcoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLm1lbnUuY2xvc2UoKTtcclxuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHByZXNlbnRNeVByb2ZpbGVQb3BvdmVyKGV2ZW50KSB7XHJcblxyXG4gICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkpe1xyXG4gICAgICB0aGlzLnNob3dQcm9maWxlUG9wdXAgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1lbnUuY2xvc2UoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3B1cC5jcmVhdGUoe1xyXG4gICAgICBjb21wb25lbnQ6IE15UHJvZmlsZVBhZ2UsXHJcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXHJcbiAgICAgIGNzc0NsYXNzOiAnaGVhZGVyLXBvcG92ZXInXHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCl7XHJcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJy9sYW5kaW5nJyk7XHJcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLW1lbnUgc2lkZT1cInN0YXJ0XCIgbWVudUlkPVwiZmlyc3RcIiBjb250ZW50SWQ9XCJtYWluLWNvbnRlbnRcIiAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKSAmJiBtZW51cyAmJiBtZW51cy5sZW5ndGggPiAwXCIgKGlvbkRpZE9wZW4pPVwibWVudU9wZW5lZCgpXCI+XHJcbiAgPGlvbi1oZWFkZXI+XHJcbiAgICA8aW9uLXRvb2xiYXI+XHJcbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cclxuICAgICAgICA8aW9uLW1lbnUtYnV0dG9uIGF1dG9IaWRlPVwiZmFsc2VcIiBwVG9vbHRpcD1cIkNsb3NlIG1lbnVcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibHMuaXNMb2dnZWRJbigpXCI+ICAgIFxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBjb2xvcj1cInN1Y2Nlc3NcIiBuYW1lPVwiY2xvc2VcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLW1lbnUtYnV0dG9uPlxyXG4gICAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgPC9pb24tdG9vbGJhcj5cclxuICA8L2lvbi1oZWFkZXI+XHJcbiAgPGlvbi1jb250ZW50PlxyXG4gICAgPHAtYWNjb3JkaW9uICpuZ0lmPVwibWVudXMgJiYgbWVudXMubGVuZ3RoID4gMCAmJiAoIWxzLmlzQ2xhaW1hbnQoKSB8fCBsZWdhY3lNZW51ID09ICd0cnVlJylcIj5cclxuICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0Zvcj1cImxldCBtZW51IG9mIGxzLmdldE1lbnVCcygpIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIiBbaGVhZGVyXT1cIm1lbnUubGFiZWxcIj5cclxuICAgICAgICA8aW9uLWxpc3Q+XHJcbiAgICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnUuaXRlbXNcIiAoY2xpY2spPVwib3BlblBhZ2UoaXRlbSlcIiBsaW5lcz1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJsaW5rXCIgY29sb3I9XCJwcmltYXJ5XCIgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCIhaXRlbS5pY29uXCIgc3R5bGU9XCJtYXJnaW4taW5saW5lLWVuZDogMTVweCAhaW1wb3J0YW50O1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJpdGVtLmljb25cIiBjb2xvcj1cInByaW1hcnlcIiBzbG90PVwic3RhcnRcIiAqbmdJZj1cIml0ZW0uaWNvblwiIHN0eWxlPVwibWFyZ2luLWlubGluZS1lbmQ6IDE1cHggIWltcG9ydGFudDtcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiBzbWFsbDtcIj57e2l0ZW0ubGFiZWx9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzbG90PVwiZW5kXCIgKGNsaWNrKT1cIm1hcmtGYXZvdXJpdGUoaXRlbSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIiBjb2xvcj1cIndhcm5pbmdcIiAqbmdJZj1cInNob3dGYXZCdXR0b25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN0YXItb3V0bGluZVwiICpuZ0lmPVwiIWl0ZW0uc3RhdGUuaXNGYXZcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic3Rhci1zaGFycFwiICpuZ0lmPVwiaXRlbS5zdGF0ZS5pc0ZhdlwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgPC9pb24tbGlzdD5cclxuICAgICAgPC9wLWFjY29yZGlvblRhYj5cclxuICAgIDwvcC1hY2NvcmRpb24+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIm1lbnVzICYmIG1lbnVzLmxlbmd0aCA+IDAgJiYgKGxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScpXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1lbnUgb2YgbHMuZ2V0TWVudUJzKCkgfCBhc3luYzsgbGV0IGkgPSBpbmRleDsgbGV0IGlzTGFzdCA9IGxhc3RcIj5cclxuICAgICAgICA8aW9uLWxpc3Q+XHJcbiAgICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnUuaXRlbXNcIiAoY2xpY2spPVwib3BlblBhZ2UoaXRlbSlcIiBsaW5lcz1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzFweDtcIiBbbmdDbGFzc109XCJzaG93SWNvbihpdGVtKSA/ICdzZWxlY3RlZC1tZW51JyA6ICdzZWxlY3RlZC1tZW51LXVuc2VsZWN0J1wiPnt7aXRlbS5sYWJlbH19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cC1kaXZpZGVyPjwvcC1kaXZpZGVyPlxyXG5cclxuICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgIDxpb24taXRlbSBidXR0b24gbGluZXM9XCJub25lXCIgKGNsaWNrKT1cInByZXNlbnRNeVByb2ZpbGVQb3BvdmVyKCRldmVudClcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVyc29uLWNpcmNsZS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgY2xhc3M9XCJtZW51LWljb25cIiBjb2xvcj1cInByaW1hcnlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzFweDtcIj5Vc2VyIFByb2ZpbGU8L2lvbi1sYWJlbD5cclxuICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDxpb24taXRlbSBidXR0b24gbGluZXM9XCJub25lXCIgKGNsaWNrKT1cIm5hdmlnYXRlKCdjcCcsICdkb2N1bWVudHMnKVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb2N1bWVudC10ZXh0LW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiBjbGFzcz1cIm1lbnUtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAzMXB4O1wiPkRvY3VtZW50czwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiBsaW5lcz1cIm5vbmVcIiAoY2xpY2spPVwibG9nb3V0KClcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibG9nLW91dC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgY2xhc3M9XCJtZW51LWljb25cIiBjb2xvcj1cInByaW1hcnlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzFweDtcIj5Mb2dvdXQ8L2lvbi1sYWJlbD5cclxuICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICA8L2lvbi1saXN0PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvaW9uLWNvbnRlbnQ+XHJcbjwvaW9uLW1lbnU+XHJcbjxhcHAtcHJvZmlsZSAqbmdJZj1cInNob3dQcm9maWxlUG9wdXBcIiAob25DYW5jZWwpPVwic2hvd1Byb2ZpbGVQb3B1cCA9ICFzaG93UHJvZmlsZVBvcHVwXCI+PC9hcHAtcHJvZmlsZT4iXX0=