valtech-components 2.0.727 → 2.0.729

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.
@@ -1,12 +1,12 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, computed, EventEmitter, inject, input, Output, signal, } from '@angular/core';
2
+ import { Component, computed, EventEmitter, inject, input, Output, signal } from '@angular/core';
3
3
  import { NavigationEnd, Router } from '@angular/router';
4
4
  import { IonIcon, IonRippleEffect } from '@ionic/angular/standalone';
5
5
  import { addIcons } from 'ionicons';
6
6
  import { filter } from 'rxjs';
7
7
  import { I18nService } from '../../../services/i18n';
8
8
  import { NavigationService } from '../../../services/navigation';
9
- import { BOTTOM_NAV_DEFAULTS, } from './types';
9
+ import { BOTTOM_NAV_DEFAULTS } from './types';
10
10
  // Register common navigation icons
11
11
  import { home, homeOutline, search, searchOutline, person, personOutline, settings, settingsOutline, notifications, notificationsOutline, add, addOutline, heart, heartOutline, cart, cartOutline, chatbubble, chatbubbleOutline, compass, compassOutline, grid, gridOutline, list, listOutline, calendar, calendarOutline, folder, folderOutline, documents, documentsOutline, statsChart, statsChartOutline, } from 'ionicons/icons';
12
12
  import * as i0 from "@angular/core";
@@ -126,7 +126,7 @@ export class BottomNavComponent {
126
126
  return true;
127
127
  // Check additional active routes
128
128
  if (tab.activeRoutes) {
129
- return tab.activeRoutes.some((r) => route.startsWith(r));
129
+ return tab.activeRoutes.some(r => route.startsWith(r));
130
130
  }
131
131
  return false;
132
132
  }
@@ -156,15 +156,36 @@ export class BottomNavComponent {
156
156
  '--bottom-nav-active': this.resolveColor(theme.activeColor),
157
157
  '--bottom-nav-inactive': this.resolveColor(theme.inactiveColor),
158
158
  '--bottom-nav-radius': theme.borderRadius || '',
159
+ '--bottom-nav-max-width': this.resolveMaxWidth(this.config().maxWidth),
159
160
  };
160
161
  }
162
+ /** Resolve maxWidth token (sm|md|lg|xl|full) to CSS var or raw value */
163
+ resolveMaxWidth(v) {
164
+ switch (v) {
165
+ case 'sm':
166
+ return 'var(--val-container-sm, 540px)';
167
+ case 'md':
168
+ return 'var(--val-container-md, 720px)';
169
+ case 'lg':
170
+ return 'var(--val-container-lg, 880px)';
171
+ case 'xl':
172
+ return 'var(--val-container-xl, 1100px)';
173
+ case 'full':
174
+ return 'none';
175
+ case undefined:
176
+ case '':
177
+ return 'var(--val-container-xl, 1100px)';
178
+ default:
179
+ return v;
180
+ }
181
+ }
161
182
  ngOnInit() {
162
183
  // Set initial route
163
184
  this.currentRoute.set(this.router.url);
164
185
  // Subscribe to route changes
165
186
  this.routerSubscription = this.router.events
166
- .pipe(filter((event) => event instanceof NavigationEnd))
167
- .subscribe((event) => {
187
+ .pipe(filter(event => event instanceof NavigationEnd))
188
+ .subscribe(event => {
168
189
  this.currentRoute.set(event.urlAfterRedirects);
169
190
  });
170
191
  }
@@ -202,17 +223,7 @@ export class BottomNavComponent {
202
223
  resolveColor(color) {
203
224
  if (!color)
204
225
  return '';
205
- const ionicColors = [
206
- 'primary',
207
- 'secondary',
208
- 'tertiary',
209
- 'success',
210
- 'warning',
211
- 'danger',
212
- 'light',
213
- 'medium',
214
- 'dark',
215
- ];
226
+ const ionicColors = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
216
227
  if (ionicColors.includes(color)) {
217
228
  return `var(--ion-color-${color})`;
218
229
  }
@@ -270,7 +281,9 @@ export class BottomNavComponent {
270
281
  class="bottom-nav__badge"
271
282
  [class.bottom-nav__badge--dot]="item.badge.dot"
272
283
  [style.color]="item.badge.color ? resolveColor(item.badge.color) : null"
273
- [style.background-color]="item.badge.backgroundColor ? resolveColor(item.badge.backgroundColor) : null"
284
+ [style.background-color]="
285
+ item.badge.backgroundColor ? resolveColor(item.badge.backgroundColor) : null
286
+ "
274
287
  >
275
288
  @if (!item.badge.dot && item.badge.text) {
276
289
  {{ item.badge.text }}
@@ -287,7 +300,7 @@ export class BottomNavComponent {
287
300
  }
288
301
  </div>
289
302
  </nav>
290
- `, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 8px;border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
303
+ `, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--bottom-nav-max-width: var(--val-container-xl, 1100px);--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px;max-width:var(--bottom-nav-max-width);margin:0 auto}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 auto 8px;width:calc(100% - 32px);border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
291
304
  }
292
305
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BottomNavComponent, decorators: [{
293
306
  type: Component,
@@ -342,7 +355,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
342
355
  class="bottom-nav__badge"
343
356
  [class.bottom-nav__badge--dot]="item.badge.dot"
344
357
  [style.color]="item.badge.color ? resolveColor(item.badge.color) : null"
345
- [style.background-color]="item.badge.backgroundColor ? resolveColor(item.badge.backgroundColor) : null"
358
+ [style.background-color]="
359
+ item.badge.backgroundColor ? resolveColor(item.badge.backgroundColor) : null
360
+ "
346
361
  >
347
362
  @if (!item.badge.dot && item.badge.text) {
348
363
  {{ item.badge.text }}
@@ -359,10 +374,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
359
374
  }
360
375
  </div>
361
376
  </nav>
362
- `, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 8px;border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
377
+ `, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--bottom-nav-max-width: var(--val-container-xl, 1100px);--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px;max-width:var(--bottom-nav-max-width);margin:0 auto}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 auto 8px;width:calc(100% - 32px);border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
363
378
  }], propDecorators: { tabClick: [{
364
379
  type: Output
365
380
  }], fabClick: [{
366
381
  type: Output
367
382
  }] } });
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxtQkFBbUIsR0FDcEIsTUFBTSxTQUFTLENBQUM7QUFFakIsbUNBQW1DO0FBQ25DLE9BQU8sRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sRUFDTixhQUFhLEVBQ2IsTUFBTSxFQUNOLGFBQWEsRUFDYixRQUFRLEVBQ1IsZUFBZSxFQUNmLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFVBQVUsRUFDVixLQUFLLEVBQ0wsWUFBWSxFQUNaLElBQUksRUFDSixXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsY0FBYyxFQUNkLElBQUksRUFDSixXQUFXLEVB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LENBQUM7UUFDRixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQTVKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1UUF2RW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVCw0a05BckVTLFlBQVksb0hBQUUsT0FBTywySkFBRSxlQUFlOzs0RkF3RXJDLGtCQUFrQjtrQkEzRTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsWUFDdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0VUOzhCQWFTLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIEJvdHRvbU5hdk1ldGFkYXRhLFxuICBCb3R0b21OYXZUYWIsXG4gIEJvdHRvbU5hdkNsaWNrRXZlbnQsXG4gIEJPVFRPTV9OQVZfREVGQVVMVFMsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZWdpc3RlciBjb21tb24gbmF2aWdhdGlvbiBpY29uc1xuaW1wb3J0IHtcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIHNlYXJjaCxcbiAgc2VhcmNoT3V0bGluZSxcbiAgcGVyc29uLFxuICBwZXJzb25PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgYWRkLFxuICBhZGRPdXRsaW5lLFxuICBoZWFydCxcbiAgaGVhcnRPdXRsaW5lLFxuICBjYXJ0LFxuICBjYXJ0T3V0bGluZSxcbiAgY2hhdGJ1YmJsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGNvbXBhc3MsXG4gIGNvbXBhc3NPdXRsaW5lLFxuICBncmlkLFxuICBncmlkT3V0bGluZSxcbiAgbGlzdCxcbiAgbGlzdE91dGxpbmUsXG4gIGNhbGVuZGFyLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGZvbGRlcixcbiAgZm9sZGVyT3V0bGluZSxcbiAgZG9jdW1lbnRzLFxuICBkb2N1bWVudHNPdXRsaW5lLFxuICBzdGF0c0NoYXJ0LFxuICBzdGF0c0NoYXJ0T3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7XG4gIGhvbWUsXG4gIGhvbWVPdXRsaW5lLFxuICBzZWFyY2gsXG4gIHNlYXJjaE91dGxpbmUsXG4gIHBlcnNvbixcbiAgcGVyc29uT3V0bGluZSxcbiAgc2V0dGluZ3MsXG4gIHNldHRpbmdzT3V0bGluZSxcbiAgbm90aWZpY2F0aW9ucyxcbiAgbm90aWZpY2F0aW9uc091dGxpbmUsXG4gIGFkZCxcbiAgYWRkT3V0bGluZSxcbiAgaGVhcnQsXG4gIGhlYXJ0T3V0bGluZSxcbiAgY2FydCxcbiAgY2FydE91dGxpbmUsXG4gIGNoYXRidWJibGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBjb21wYXNzLFxuICBjb21wYXNzT3V0bGluZSxcbiAgZ3JpZCxcbiAgZ3JpZE91dGxpbmUsXG4gIGxpc3QsXG4gIGxpc3RPdXRsaW5lLFxuICBjYWxlbmRhcixcbiAgY2FsZW5kYXJPdXRsaW5lLFxuICBmb2xkZXIsXG4gIGZvbGRlck91dGxpbmUsXG4gIGRvY3VtZW50cyxcbiAgZG9jdW1lbnRzT3V0bGluZSxcbiAgc3RhdHNDaGFydCxcbiAgc3RhdHNDaGFydE91dGxpbmUsXG59KTtcblxuLyoqXG4gKiB2YWwtYm90dG9tLW5hdlxuICpcbiAqIEEgbW9kZXJuIGJvdHRvbSBuYXZpZ2F0aW9uIGJhciBjb21wb25lbnQgd2l0aCBzdXBwb3J0IGZvciB0YWJzLFxuICogb3B0aW9uYWwgY2VudHJhbCBGQUIgYnV0dG9uLCBiYWRnZXMsIGFuZCByb3V0ZS1iYXNlZCBhY3RpdmUgc3RhdGUgZGV0ZWN0aW9uLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWJvdHRvbS1uYXZcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YWJzOiBbXG4gKiAgICAgICB7IHRva2VuOiAnaG9tZScsIGljb246IHsgZGVmYXVsdDogJ2hvbWUtb3V0bGluZScsIGFjdGl2ZTogJ2hvbWUnIH0sIGxhYmVsOiAnSG9tZScsIHJvdXRlOiAnL2FwcC9ob21lJyB9LFxuICogICAgICAgeyB0b2tlbjogJ3NldHRpbmdzJywgaWNvbjogeyBkZWZhdWx0OiAnc2V0dGluZ3Mtb3V0bGluZScsIGFjdGl2ZTogJ3NldHRpbmdzJyB9LCBsYWJlbDogJ1NldHRpbmdzJywgcm91dGU6ICcvYXBwL3NldHRpbmdzJyB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqICAgKHRhYkNsaWNrKT1cIm9uVGFiQ2xpY2soJGV2ZW50KVwiXG4gKiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCBpMThuIGFuZCB0cmFuc2x1Y2VudCB0aGVtZVxuICogYGBgaHRtbFxuICogPHZhbC1ib3R0b20tbmF2XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGFiczogW1xuICogICAgICAgeyB0b2tlbjogJ2hvbWUnLCBpY29uOiB7IGRlZmF1bHQ6ICdob21lLW91dGxpbmUnIH0sIGxhYmVsS2V5OiAnbWVudUhvbWUnLCByb3V0ZTogJy9hcHAvaG9tZScgfSxcbiAqICAgICAgIHsgdG9rZW46ICdzZXR0aW5ncycsIGljb246IHsgZGVmYXVsdDogJ3NldHRpbmdzLW91dGxpbmUnIH0sIGxhYmVsS2V5OiAnbWVudVNldHRpbmdzJywgcm91dGU6ICcvYXBwL3NldHRpbmdzJyB9XG4gKiAgICAgXSxcbiAqICAgICBpMThuTmFtZXNwYWNlOiAnTWVudScsXG4gKiAgICAgdGhlbWU6IHsgdHJhbnNsdWNlbnQ6IHRydWUgfVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJvdHRvbS1uYXYnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBJb25SaXBwbGVFZmZlY3RdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXZcbiAgICAgIGNsYXNzPVwiYm90dG9tLW5hdlwiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tZWxldmF0ZWRdPVwiY29uZmlnKCkudGhlbWUuZWxldmF0ZWRcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLXRyYW5zbHVjZW50XT1cImNvbmZpZygpLnRoZW1lLnRyYW5zbHVjZW50XCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1mbG9hdGluZ109XCJjb25maWcoKS50aGVtZS5mbG9hdGluZ1wiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tc2FmZS1hcmVhXT1cImNvbmZpZygpLnNhZmVBcmVhXCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1oaWRlLWxhYmVsc109XCJjb25maWcoKS5oaWRlTGFiZWxzXCJcbiAgICAgIFtuZ1N0eWxlXT1cImdldFRoZW1lU3R5bGVzKClcIlxuICAgICAgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICAgYXJpYS1sYWJlbD1cIkJvdHRvbSBuYXZpZ2F0aW9uXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLW5hdl9fY29udGFpbmVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheVRhYnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgQGlmIChpdGVtID09PSBudWxsICYmIGNvbmZpZygpLmZhYikge1xuICAgICAgICAgICAgPCEtLSBGQUIgQnV0dG9uIC0tPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJvdHRvbS1uYXZfX2ZhYlwiXG4gICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tbmF2X19mYWItLXNtYWxsXT1cImNvbmZpZygpLmZhYiEuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWZhYi1jb2xvcl09XCJyZXNvbHZlQ29sb3IoY29uZmlnKCkuZmFiIS5jb2xvciB8fCAncHJpbWFyeScpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmFiQ2xpY2soKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnKCkuZmFiIS5hcmlhTGFiZWwgfHwgJ0FjdGlvbiBidXR0b24nXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY29uZmlnKCkuZmFiIS5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIDwhLS0gVGFiIEl0ZW0gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm90dG9tLW5hdl9fdGFiXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX3RhYi0tYWN0aXZlXT1cImlzQWN0aXZlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX3RhYi0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtYW5pbWF0aW9uXT1cImNvbmZpZygpLmFuaW1hdGlvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCB8fCBnZXRMYWJlbChpdGVtKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpc0FjdGl2ZShpdGVtKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLW5hdl9fdGFiLWljb25cIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZ2V0SWNvbihpdGVtKVwiPjwvaW9uLWljb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEJhZGdlIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib3R0b20tbmF2X19iYWRnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tbmF2X19iYWRnZS0tZG90XT1cIml0ZW0uYmFkZ2UuZG90XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIml0ZW0uYmFkZ2UuY29sb3IgPyByZXNvbHZlQ29sb3IoaXRlbS5iYWRnZS5jb2xvcikgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS5iYWRnZS5iYWNrZ3JvdW5kQ29sb3IgPyByZXNvbHZlQ29sb3IoaXRlbS5iYWRnZS5iYWNrZ3JvdW5kQ29sb3IpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uYmFkZ2UuZG90ICYmIGl0ZW0uYmFkZ2UudGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICBAaWYgKCFjb25maWcoKS5oaWRlTGFiZWxzICYmIGdldExhYmVsKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tbmF2X190YWItbGFiZWxcIj57eyBnZXRMYWJlbChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYm90dG9tLW5hdi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEJvdHRvbU5hdk1ldGFkYXRhPih7IHRhYnM6IFtdIH0pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgdGFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJvdHRvbU5hdkNsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgRkFCIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ3VycmVudCBhY3RpdmUgcm91dGUgc2lnbmFsIGZvciByZWFjdGl2ZSB1cGRhdGVzICovXG4gIHByaXZhdGUgY3VycmVudFJvdXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQk9UVE9NX05BVl9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gICAgdGhlbWU6IHtcbiAgICAgIC4uLkJPVFRPTV9OQVZfREVGQVVMVFMudGhlbWUsXG4gICAgICAuLi50aGlzLnByb3BzKCkudGhlbWUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qKiBDb21wdXRlZCB0YWJzIHdpdGggRkFCIGluc2VydGVkIGlmIHByZXNlbnQgKi9cbiAgZGlzcGxheVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuY29uZmlnKCkudGFicztcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcblxuICAgIGlmICghZmFiKSByZXR1cm4gdGFicztcblxuICAgIC8vIEluc2VydCBwbGFjZWhvbGRlciBhdCBjZW50ZXIgZm9yIEZBQiBwb3NpdGlvbmluZ1xuICAgIGNvbnN0IG1pZHBvaW50ID0gTWF0aC5mbG9vcih0YWJzLmxlbmd0aCAvIDIpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi50YWJzLnNsaWNlKDAsIG1pZHBvaW50KSxcbiAgICAgIG51bGwgYXMgdW5rbm93biBhcyBCb3R0b21OYXZUYWIsIC8vIEZBQiBwbGFjZWhvbGRlclxuICAgICAgLi4udGFicy5zbGljZShtaWRwb2ludCksXG4gICAgXTtcbiAgfSk7XG5cbiAgLyoqIENoZWNrIGlmIGEgdGFiIGlzIGN1cnJlbnRseSBhY3RpdmUgKi9cbiAgaXNBY3RpdmUodGFiOiBCb3R0b21OYXZUYWIpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuY3VycmVudFJvdXRlKCk7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgbWFpbiByb3V0ZVxuICAgIGNvbnN0IHRhYlJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlLmpvaW4oJy8nKSA6IHRhYi5yb3V0ZTtcbiAgICBpZiAocm91dGUuc3RhcnRzV2l0aCh0YWJSb3V0ZSkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25hbCBhY3RpdmUgcm91dGVzXG4gICAgaWYgKHRhYi5hY3RpdmVSb3V0ZXMpIHtcbiAgICAgIHJldHVybiB0YWIuYWN0aXZlUm91dGVzLnNvbWUoKHIpID0+IHJvdXRlLnN0YXJ0c1dpdGgocikpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGFwcHJvcHJpYXRlIGljb24gZm9yIGEgdGFiIGJhc2VkIG9uIGFjdGl2ZSBzdGF0ZSAqL1xuICBnZXRJY29uKHRhYjogQm90dG9tTmF2VGFiKTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKHRhYik7XG4gICAgaWYgKGFjdGl2ZSAmJiB0YWIuaWNvbi5hY3RpdmUpIHtcbiAgICAgIHJldHVybiB0YWIuaWNvbi5hY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiB0YWIuaWNvbi5kZWZhdWx0O1xuICB9XG5cbiAgLyoqIEdldCB0cmFuc2xhdGVkIGxhYmVsIGZvciBhIHRhYiAqL1xuICBnZXRMYWJlbCh0YWI6IEJvdHRvbU5hdlRhYik6IHN0cmluZyB7XG4gICAgaWYgKHRhYi5sYWJlbCkgcmV0dXJuIHRhYi5sYWJlbDtcbiAgICBpZiAodGFiLmxhYmVsS2V5KSB7XG4gICAgICB0aGlzLmkxOG4ubGFuZygpOyAvLyBUcmFjayBsYW5ndWFnZSBjaGFuZ2VzIGZvciByZWFjdGl2aXR5XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQodGFiLmxhYmVsS2V5LCB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKiogR2V0IENTUyB2YXJpYWJsZXMgZm9yIHRoZW1pbmcgKi9cbiAgZ2V0VGhlbWVTdHlsZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLmNvbmZpZygpLnRoZW1lO1xuICAgIHJldHVybiB7XG4gICAgICAnLS1ib3R0b20tbmF2LWJnJzogdGhlbWUuYmFja2dyb3VuZCB8fCAnJyxcbiAgICAgICctLWJvdHRvbS1uYXYtYWN0aXZlJzogdGhpcy5yZXNvbHZlQ29sb3IodGhlbWUuYWN0aXZlQ29sb3IpLFxuICAgICAgJy0tYm90dG9tLW5hdi1pbmFjdGl2ZSc6IHRoaXMucmVzb2x2ZUNvbG9yKHRoZW1lLmluYWN0aXZlQ29sb3IpLFxuICAgICAgJy0tYm90dG9tLW5hdi1yYWRpdXMnOiB0aGVtZS5ib3JkZXJSYWRpdXMgfHwgJycsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCBpbml0aWFsIHJvdXRlXG4gICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KHRoaXMucm91dGVyLnVybCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlc1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKS51cmxBZnRlclJlZGlyZWN0cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSB0YWIgY2xpY2sgKi9cbiAgb25UYWJDbGljayh0YWI6IEJvdHRvbU5hdlRhYik6IHZvaWQge1xuICAgIGlmICh0YWIuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLnRhYkNsaWNrLmVtaXQoe1xuICAgICAgdG9rZW46IHRhYi50b2tlbixcbiAgICAgIGlzRmFiOiBmYWxzZSxcbiAgICAgIHJvdXRlOiB0YWIucm91dGUsXG4gICAgfSk7XG5cbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnN0IHJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlIDogW3RhYi5yb3V0ZV07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBGQUIgY2xpY2sgKi9cbiAgb25GYWJDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcbiAgICBpZiAoIWZhYikgcmV0dXJuO1xuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuXG4gICAgLy8gTmF2aWdhdGUgaWYgcm91dGUgaXMgZGVmaW5lZCBhbmQgbm90IGFuIGFjdGlvbi1vbmx5IGJ1dHRvblxuICAgIGlmIChmYWIucm91dGUgJiYgIWZhYi5pc0FjdGlvbikge1xuICAgICAgY29uc3Qgcm91dGUgPSBBcnJheS5pc0FycmF5KGZhYi5yb3V0ZSkgPyBmYWIucm91dGUgOiBbZmFiLnJvdXRlXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzb2x2ZSBJb25pYyBjb2xvciBuYW1lIHRvIENTUyB2YXJpYWJsZSAqL1xuICByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghY29sb3IpIHJldHVybiAnJztcbiAgICBjb25zdCBpb25pY0NvbG9ycyA9IFtcbiAgICAgICdwcmltYXJ5JyxcbiAgICAgICdzZWNvbmRhcnknLFxuICAgICAgJ3RlcnRpYXJ5JyxcbiAgICAgICdzdWNjZXNzJyxcbiAgICAgICd3YXJuaW5nJyxcbiAgICAgICdkYW5nZXInLFxuICAgICAgJ2xpZ2h0JyxcbiAgICAgICdtZWRpdW0nLFxuICAgICAgJ2RhcmsnLFxuICAgIF07XG4gICAgaWYgKGlvbmljQ29sb3JzLmluY2x1ZGVzKGNvbG9yKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG59XG4iXX0=
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQXdELG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXBHLG1DQUFtQztBQUNuQyxPQUFPLEVBQ0wsSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLEVBQ04sYUFBYSxFQUNiLE1BQU0sRUFDTixhQUFhLEVBQ2IsUUFBUSxFQUNSLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFlBQVksRUFDWixJQUFJLEVBQ0osV0FBVyxFQUNYLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLEVBQ0osV0FBVyxF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QkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblJpcHBsZUVmZmVjdCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBCb3R0b21OYXZNZXRhZGF0YSwgQm90dG9tTmF2VGFiLCBCb3R0b21OYXZDbGlja0V2ZW50LCBCT1RUT01fTkFWX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFJlZ2lzdGVyIGNvbW1vbiBuYXZpZ2F0aW9uIGljb25zXG5pbXBvcnQge1xuICBob21lLFxuICBob21lT3V0bGluZSxcbiAgc2VhcmNoLFxuICBzZWFyY2hPdXRsaW5lLFxuICBwZXJzb24sXG4gIHBlcnNvbk91dGxpbmUsXG4gIHNldHRpbmdzLFxuICBzZXR0aW5nc091dGxpbmUsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIG5vdGlmaWNhdGlvbnNPdXRsaW5lLFxuICBhZGQsXG4gIGFkZE91dGxpbmUsXG4gIGhlYXJ0LFxuICBoZWFydE91dGxpbmUsXG4gIGNhcnQsXG4gIGNhcnRPdXRsaW5lLFxuICBjaGF0YnViYmxlLFxuICBjaGF0YnViYmxlT3V0bGluZSxcbiAgY29tcGFzcyxcbiAgY29tcGFzc091dGxpbmUsXG4gIGdyaWQsXG4gIGdyaWRPdXRsaW5lLFxuICBsaXN0LFxuICBsaXN0T3V0bGluZSxcbiAgY2FsZW5kYXIsXG4gIGNhbGVuZGFyT3V0bGluZSxcbiAgZm9sZGVyLFxuICBmb2xkZXJPdXRsaW5lLFxuICBkb2N1bWVudHMsXG4gIGRvY3VtZW50c091dGxpbmUsXG4gIHN0YXRzQ2hhcnQsXG4gIHN0YXRzQ2hhcnRPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmFkZEljb25zKHtcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIHNlYXJjaCxcbiAgc2VhcmNoT3V0bGluZSxcbiAgcGVyc29uLFxuICBwZXJzb25PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgYWRkLFxuICBhZGRPdXRsaW5lLFxuICBoZWFydCxcbiAgaGVhcnRPdXRsaW5lLFxuICBjYXJ0LFxuICBjYXJ0T3V0bGluZSxcbiAgY2hhdGJ1YmJsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGNvbXBhc3MsXG4gIGNvbXBhc3NPdXRsaW5lLFxuICBncmlkLFxuICBncmlkT3V0bGluZSxcbiAgbGlzdCxcbiAgbGlzdE91dGxpbmUsXG4gIGNhbGVuZGFyLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGZvbGRlcixcbiAgZm9sZGVyT3V0bGluZSxcbiAgZG9jdW1lbnRzLFxuICBkb2N1bWVudHNPdXRsaW5lLFxuICBzdGF0c0NoYXJ0LFxuICBzdGF0c0NoYXJ0T3V0bGluZSxcbn0pO1xuXG4vKipcbiAqIHZhbC1ib3R0b20tbmF2XG4gKlxuICogQSBtb2Rlcm4gYm90dG9tIG5hdmlnYXRpb24gYmFyIGNvbXBvbmVudCB3aXRoIHN1cHBvcnQgZm9yIHRhYnMsXG4gKiBvcHRpb25hbCBjZW50cmFsIEZBQiBidXR0b24sIGJhZGdlcywgYW5kIHJvdXRlLWJhc2VkIGFjdGl2ZSBzdGF0ZSBkZXRlY3Rpb24uXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtYm90dG9tLW5hdlxuICogICBbcHJvcHNdPVwie1xuICogICAgIHRhYnM6IFtcbiAqICAgICAgIHsgdG9rZW46ICdob21lJywgaWNvbjogeyBkZWZhdWx0OiAnaG9tZS1vdXRsaW5lJywgYWN0aXZlOiAnaG9tZScgfSwgbGFiZWw6ICdIb21lJywgcm91dGU6ICcvYXBwL2hvbWUnIH0sXG4gKiAgICAgICB7IHRva2VuOiAnc2V0dGluZ3MnLCBpY29uOiB7IGRlZmF1bHQ6ICdzZXR0aW5ncy1vdXRsaW5lJywgYWN0aXZlOiAnc2V0dGluZ3MnIH0sIGxhYmVsOiAnU2V0dGluZ3MnLCByb3V0ZTogJy9hcHAvc2V0dGluZ3MnIH1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAodGFiQ2xpY2spPVwib25UYWJDbGljaygkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGkxOG4gYW5kIHRyYW5zbHVjZW50IHRoZW1lXG4gKiBgYGBodG1sXG4gKiA8dmFsLWJvdHRvbS1uYXZcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YWJzOiBbXG4gKiAgICAgICB7IHRva2VuOiAnaG9tZScsIGljb246IHsgZGVmYXVsdDogJ2hvbWUtb3V0bGluZScgfSwgbGFiZWxLZXk6ICdtZW51SG9tZScsIHJvdXRlOiAnL2FwcC9ob21lJyB9LFxuICogICAgICAgeyB0b2tlbjogJ3NldHRpbmdzJywgaWNvbjogeyBkZWZhdWx0OiAnc2V0dGluZ3Mtb3V0bGluZScgfSwgbGFiZWxLZXk6ICdtZW51U2V0dGluZ3MnLCByb3V0ZTogJy9hcHAvc2V0dGluZ3MnIH1cbiAqICAgICBdLFxuICogICAgIGkxOG5OYW1lc3BhY2U6ICdNZW51JyxcbiAqICAgICB0aGVtZTogeyB0cmFuc2x1Y2VudDogdHJ1ZSB9XG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYm90dG9tLW5hdicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvblJpcHBsZUVmZmVjdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJib3R0b20tbmF2XCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1lbGV2YXRlZF09XCJjb25maWcoKS50aGVtZS5lbGV2YXRlZFwiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tdHJhbnNsdWNlbnRdPVwiY29uZmlnKCkudGhlbWUudHJhbnNsdWNlbnRcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLWZsb2F0aW5nXT1cImNvbmZpZygpLnRoZW1lLmZsb2F0aW5nXCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1zYWZlLWFyZWFdPVwiY29uZmlnKCkuc2FmZUFyZWFcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLWhpZGUtbGFiZWxzXT1cImNvbmZpZygpLmhpZGVMYWJlbHNcIlxuICAgICAgW25nU3R5bGVdPVwiZ2V0VGhlbWVTdHlsZXMoKVwiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiQm90dG9tIG5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbmF2X19jb250YWluZXJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBkaXNwbGF5VGFicygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICBAaWYgKGl0ZW0gPT09IG51bGwgJiYgY29uZmlnKCkuZmFiKSB7XG4gICAgICAgICAgICA8IS0tIEZBQiBCdXR0b24gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm90dG9tLW5hdl9fZmFiXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX2ZhYi0tc21hbGxdPVwiY29uZmlnKCkuZmFiIS5zaXplID09PSAnc21hbGwnXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tZmFiLWNvbG9yXT1cInJlc29sdmVDb2xvcihjb25maWcoKS5mYWIhLmNvbG9yIHx8ICdwcmltYXJ5JylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GYWJDbGljaygpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcoKS5mYWIhLmFyaWFMYWJlbCB8fCAnQWN0aW9uIGJ1dHRvbidcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJjb25maWcoKS5mYWIhLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbSkge1xuICAgICAgICAgICAgPCEtLSBUYWIgSXRlbSAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJib3R0b20tbmF2X190YWJcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLW5hdl9fdGFiLS1hY3RpdmVdPVwiaXNBY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLW5hdl9fdGFiLS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hbmltYXRpb25dPVwiY29uZmlnKCkuYW5pbWF0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsIHx8IGdldExhYmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQWN0aXZlKGl0ZW0pID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbmF2X190YWItaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJnZXRJY29uKGl0ZW0pXCI+PC9pb24taWNvbj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmJhZGdlKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJvdHRvbS1uYXZfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX2JhZGdlLS1kb3RdPVwiaXRlbS5iYWRnZS5kb3RcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5iYWRnZS5jb2xvciA/IHJlc29sdmVDb2xvcihpdGVtLmJhZGdlLmNvbG9yKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmJhZGdlLmJhY2tncm91bmRDb2xvciA/IHJlc29sdmVDb2xvcihpdGVtLmJhZGdlLmJhY2tncm91bmRDb2xvcikgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uYmFkZ2UuZG90ICYmIGl0ZW0uYmFkZ2UudGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICBAaWYgKCFjb25maWcoKS5oaWRlTGFiZWxzICYmIGdldExhYmVsKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tbmF2X190YWItbGFiZWxcIj57eyBnZXRMYWJlbChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYm90dG9tLW5hdi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEJvdHRvbU5hdk1ldGFkYXRhPih7IHRhYnM6IFtdIH0pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgdGFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJvdHRvbU5hdkNsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgRkFCIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ3VycmVudCBhY3RpdmUgcm91dGUgc2lnbmFsIGZvciByZWFjdGl2ZSB1cGRhdGVzICovXG4gIHByaXZhdGUgY3VycmVudFJvdXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQk9UVE9NX05BVl9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gICAgdGhlbWU6IHtcbiAgICAgIC4uLkJPVFRPTV9OQVZfREVGQVVMVFMudGhlbWUsXG4gICAgICAuLi50aGlzLnByb3BzKCkudGhlbWUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qKiBDb21wdXRlZCB0YWJzIHdpdGggRkFCIGluc2VydGVkIGlmIHByZXNlbnQgKi9cbiAgZGlzcGxheVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuY29uZmlnKCkudGFicztcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcblxuICAgIGlmICghZmFiKSByZXR1cm4gdGFicztcblxuICAgIC8vIEluc2VydCBwbGFjZWhvbGRlciBhdCBjZW50ZXIgZm9yIEZBQiBwb3NpdGlvbmluZ1xuICAgIGNvbnN0IG1pZHBvaW50ID0gTWF0aC5mbG9vcih0YWJzLmxlbmd0aCAvIDIpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi50YWJzLnNsaWNlKDAsIG1pZHBvaW50KSxcbiAgICAgIG51bGwgYXMgdW5rbm93biBhcyBCb3R0b21OYXZUYWIsIC8vIEZBQiBwbGFjZWhvbGRlclxuICAgICAgLi4udGFicy5zbGljZShtaWRwb2ludCksXG4gICAgXTtcbiAgfSk7XG5cbiAgLyoqIENoZWNrIGlmIGEgdGFiIGlzIGN1cnJlbnRseSBhY3RpdmUgKi9cbiAgaXNBY3RpdmUodGFiOiBCb3R0b21OYXZUYWIpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuY3VycmVudFJvdXRlKCk7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgbWFpbiByb3V0ZVxuICAgIGNvbnN0IHRhYlJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlLmpvaW4oJy8nKSA6IHRhYi5yb3V0ZTtcbiAgICBpZiAocm91dGUuc3RhcnRzV2l0aCh0YWJSb3V0ZSkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25hbCBhY3RpdmUgcm91dGVzXG4gICAgaWYgKHRhYi5hY3RpdmVSb3V0ZXMpIHtcbiAgICAgIHJldHVybiB0YWIuYWN0aXZlUm91dGVzLnNvbWUociA9PiByb3V0ZS5zdGFydHNXaXRoKHIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogR2V0IHRoZSBhcHByb3ByaWF0ZSBpY29uIGZvciBhIHRhYiBiYXNlZCBvbiBhY3RpdmUgc3RhdGUgKi9cbiAgZ2V0SWNvbih0YWI6IEJvdHRvbU5hdlRhYik6IHN0cmluZyB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSh0YWIpO1xuICAgIGlmIChhY3RpdmUgJiYgdGFiLmljb24uYWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGFiLmljb24uYWN0aXZlO1xuICAgIH1cbiAgICByZXR1cm4gdGFiLmljb24uZGVmYXVsdDtcbiAgfVxuXG4gIC8qKiBHZXQgdHJhbnNsYXRlZCBsYWJlbCBmb3IgYSB0YWIgKi9cbiAgZ2V0TGFiZWwodGFiOiBCb3R0b21OYXZUYWIpOiBzdHJpbmcge1xuICAgIGlmICh0YWIubGFiZWwpIHJldHVybiB0YWIubGFiZWw7XG4gICAgaWYgKHRhYi5sYWJlbEtleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KHRhYi5sYWJlbEtleSwgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLyoqIEdldCBDU1MgdmFyaWFibGVzIGZvciB0aGVtaW5nICovXG4gIGdldFRoZW1lU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHRoZW1lID0gdGhpcy5jb25maWcoKS50aGVtZTtcbiAgICByZXR1cm4ge1xuICAgICAgJy0tYm90dG9tLW5hdi1iZyc6IHRoZW1lLmJhY2tncm91bmQgfHwgJycsXG4gICAgICAnLS1ib3R0b20tbmF2LWFjdGl2ZSc6IHRoaXMucmVzb2x2ZUNvbG9yKHRoZW1lLmFjdGl2ZUNvbG9yKSxcbiAgICAgICctLWJvdHRvbS1uYXYtaW5hY3RpdmUnOiB0aGlzLnJlc29sdmVDb2xvcih0aGVtZS5pbmFjdGl2ZUNvbG9yKSxcbiAgICAgICctLWJvdHRvbS1uYXYtcmFkaXVzJzogdGhlbWUuYm9yZGVyUmFkaXVzIHx8ICcnLFxuICAgICAgJy0tYm90dG9tLW5hdi1tYXgtd2lkdGgnOiB0aGlzLnJlc29sdmVNYXhXaWR0aCh0aGlzLmNvbmZpZygpLm1heFdpZHRoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIFJlc29sdmUgbWF4V2lkdGggdG9rZW4gKHNtfG1kfGxnfHhsfGZ1bGwpIHRvIENTUyB2YXIgb3IgcmF3IHZhbHVlICovXG4gIHJlc29sdmVNYXhXaWR0aCh2Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHYpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12YWwtY29udGFpbmVyLXNtLCA1NDBweCknO1xuICAgICAgY2FzZSAnbWQnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXZhbC1jb250YWluZXItbWQsIDcyMHB4KSc7XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAndmFyKC0tdmFsLWNvbnRhaW5lci1sZywgODgwcHgpJztcbiAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12YWwtY29udGFpbmVyLXhsLCAxMTAwcHgpJztcbiAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICBjYXNlICcnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXZhbC1jb250YWluZXIteGwsIDExMDBweCknO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2V0IGluaXRpYWwgcm91dGVcbiAgICB0aGlzLmN1cnJlbnRSb3V0ZS5zZXQodGhpcy5yb3V0ZXIudXJsKTtcblxuICAgIC8vIFN1YnNjcmliZSB0byByb3V0ZSBjaGFuZ2VzXG4gICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudFJvdXRlLnNldCgoZXZlbnQgYXMgTmF2aWdhdGlvbkVuZCkudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGUgdGFiIGNsaWNrICovXG4gIG9uVGFiQ2xpY2sodGFiOiBCb3R0b21OYXZUYWIpOiB2b2lkIHtcbiAgICBpZiAodGFiLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICAvLyBFbWl0IGV2ZW50XG4gICAgdGhpcy50YWJDbGljay5lbWl0KHtcbiAgICAgIHRva2VuOiB0YWIudG9rZW4sXG4gICAgICBpc0ZhYjogZmFsc2UsXG4gICAgICByb3V0ZTogdGFiLnJvdXRlLFxuICAgIH0pO1xuXG4gICAgLy8gTmF2aWdhdGVcbiAgICBjb25zdCByb3V0ZSA9IEFycmF5LmlzQXJyYXkodGFiLnJvdXRlKSA/IHRhYi5yb3V0ZSA6IFt0YWIucm91dGVdO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGUgRkFCIGNsaWNrICovXG4gIG9uRmFiQ2xpY2soKTogdm9pZCB7XG4gICAgY29uc3QgZmFiID0gdGhpcy5jb25maWcoKS5mYWI7XG4gICAgaWYgKCFmYWIpIHJldHVybjtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLmZhYkNsaWNrLmVtaXQoKTtcblxuICAgIC8vIE5hdmlnYXRlIGlmIHJvdXRlIGlzIGRlZmluZWQgYW5kIG5vdCBhbiBhY3Rpb24tb25seSBidXR0b25cbiAgICBpZiAoZmFiLnJvdXRlICYmICFmYWIuaXNBY3Rpb24pIHtcbiAgICAgIGNvbnN0IHJvdXRlID0gQXJyYXkuaXNBcnJheShmYWIucm91dGUpID8gZmFiLnJvdXRlIDogW2ZhYi5yb3V0ZV07XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc29sdmUgSW9uaWMgY29sb3IgbmFtZSB0byBDU1MgdmFyaWFibGUgKi9cbiAgcmVzb2x2ZUNvbG9yKGNvbG9yPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbG9yKSByZXR1cm4gJyc7XG4gICAgY29uc3QgaW9uaWNDb2xvcnMgPSBbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ3RlcnRpYXJ5JywgJ3N1Y2Nlc3MnLCAnd2FybmluZycsICdkYW5nZXInLCAnbGlnaHQnLCAnbWVkaXVtJywgJ2RhcmsnXTtcbiAgICBpZiAoaW9uaWNDb2xvcnMuaW5jbHVkZXMoY29sb3IpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cbiAgICByZXR1cm4gY29sb3I7XG4gIH1cbn1cbiJdfQ==
@@ -5,6 +5,7 @@ export const BOTTOM_NAV_DEFAULTS = {
5
5
  hideLabels: false,
6
6
  safeArea: true,
7
7
  animation: 'scale',
8
+ maxWidth: 'xl',
8
9
  theme: {
9
10
  background: 'var(--ion-background-color)',
10
11
  activeColor: 'primary',
@@ -15,4 +16,4 @@ export const BOTTOM_NAV_DEFAULTS = {
15
16
  floating: false,
16
17
  },
17
18
  };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0hBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBRVU7SUFDeEMsVUFBVSxFQUFFLEtBQUs7SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxTQUFTLEVBQUUsT0FBTztJQUNsQixLQUFLLEVBQUU7UUFDTCxVQUFVLEVBQUUsNkJBQTZCO1FBQ3pDLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLFlBQVksRUFBRSxlQUFlO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLElBQUk7UUFDakIsUUFBUSxFQUFFLEtBQUs7S0FDaEI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbi8qKlxuICogQmFkZ2UgY29uZmlndXJhdGlvbiBmb3IgYSBuYXYgaXRlbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvdHRvbU5hdkJhZGdlIHtcbiAgLyoqIEJhZGdlIHRleHQgKGUuZy4sIFwiM1wiLCBcIk5FV1wiKSAqL1xuICB0ZXh0Pzogc3RyaW5nO1xuICAvKiogQmFkZ2UgY29sb3IgKi9cbiAgY29sb3I/OiBDb2xvciB8IHN0cmluZztcbiAgLyoqIEJhZGdlIGJhY2tncm91bmQgY29sb3IgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogQ29sb3IgfCBzdHJpbmc7XG4gIC8qKiBTaG93IGFzIGRvdCBvbmx5IChubyB0ZXh0KSAqL1xuICBkb3Q/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEljb24gY29uZmlndXJhdGlvbiAtIHN1cHBvcnRzIG11bHRpcGxlIGljb24gc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvdHRvbU5hdkljb24ge1xuICAvKiogSW9uaWNvbiBuYW1lIGZvciBpbmFjdGl2ZSBzdGF0ZSAoZS5nLiwgJ2hvbWUtb3V0bGluZScpICovXG4gIGRlZmF1bHQ6IHN0cmluZztcbiAgLyoqIElvbmljb24gbmFtZSBmb3IgYWN0aXZlIHN0YXRlIChlLmcuLCAnaG9tZScpIC0gZGVmYXVsdHMgdG8gZGVmYXVsdCBpZiBub3QgcHJvdmlkZWQgKi9cbiAgYWN0aXZlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIG5hdiB0YWIgaXRlbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvdHRvbU5hdlRhYiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRhYiAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogSWNvbiBjb25maWd1cmF0aW9uICovXG4gIGljb246IEJvdHRvbU5hdkljb247XG4gIC8qKiBTdGF0aWMgbGFiZWwgdGV4dCAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIGkxOG4ga2V5IGZvciBsYWJlbCAqL1xuICBsYWJlbEtleT86IHN0cmluZztcbiAgLyoqIFJvdXRlIHRvIG5hdmlnYXRlIHRvIChzdXBwb3J0cyBzdHJpbmcgb3IgYXJyYXkgZm9ybWF0KSAqL1xuICByb3V0ZTogc3RyaW5nIHwgc3RyaW5nW107XG4gIC8qKiBSb3V0ZXMgdGhhdCBzaG91bGQgYWxzbyBtYXJrIHRoaXMgdGFiIGFzIGFjdGl2ZSAoZm9yIG5lc3RlZCByb3V0ZXMpICovXG4gIGFjdGl2ZVJvdXRlcz86IHN0cmluZ1tdO1xuICAvKiogQmFkZ2UgY29uZmlndXJhdGlvbiAqL1xuICBiYWRnZT86IEJvdHRvbU5hdkJhZGdlO1xuICAvKiogV2hldGhlciB0aGUgdGFiIGlzIGRpc2FibGVkICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIEFyaWEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkgKi9cbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjZW50cmFsIEZBQiBidXR0b24gKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvdHRvbU5hdkZhYiB7XG4gIC8qKiBJY29uIG5hbWUgKi9cbiAgaWNvbjogc3RyaW5nO1xuICAvKiogRkFCIGNvbG9yICovXG4gIGNvbG9yPzogQ29sb3IgfCBzdHJpbmc7XG4gIC8qKiBGQUIgc2l6ZSAqL1xuICBzaXplPzogJ3NtYWxsJyB8ICdkZWZhdWx0JztcbiAgLyoqIFJvdXRlIHRvIG5hdmlnYXRlIHRvIChpZiBuYXZpZ2F0aW9uIGFjdGlvbikgKi9cbiAgcm91dGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBhbiBhY3Rpb24gKGVtaXRzIGV2ZW50KSBvciBuYXZpZ2F0aW9uICovXG4gIGlzQWN0aW9uPzogYm9vbGVhbjtcbiAgLyoqIEFyaWEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkgKi9cbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZW1lIGNvbmZpZ3VyYXRpb24gZm9yIGJvdHRvbSBuYXZcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb3R0b21OYXZUaGVtZSB7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIChDU1MgdmFyaWFibGUgb3IgY29sb3IgdmFsdWUpICovXG4gIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIC8qKiBBY3RpdmUgdGFiIGNvbG9yICovXG4gIGFjdGl2ZUNvbG9yPzogQ29sb3IgfCBzdHJpbmc7XG4gIC8qKiBJbmFjdGl2ZSB0YWIgY29sb3IgKi9cbiAgaW5hY3RpdmVDb2xvcj86IENvbG9yIHwgc3RyaW5nO1xuICAvKiogQm9yZGVyIHJhZGl1cyBmb3IgdGhlIG5hdiBiYXIgKi9cbiAgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byBzaG93IGEgdG9wIGJvcmRlci9zaGFkb3cgKi9cbiAgZWxldmF0ZWQ/OiBib29sZWFuO1xuICAvKiogQmx1ciBlZmZlY3QgZm9yIHRyYW5zbHVjZW50IGJhY2tncm91bmQgKi9cbiAgdHJhbnNsdWNlbnQ/OiBib29sZWFuO1xuICAvKiogRmxvYXRpbmcgaXNsYW5kIHN0eWxlIC0gZGV0YWNoZWQgZnJvbSBlZGdlcyB3aXRoIHJvdW5kZWQgY29ybmVycyAqL1xuICBmbG9hdGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ2xpY2sgZXZlbnQgZW1pdHRlZCBieSBib3R0b20gbmF2XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tTmF2Q2xpY2tFdmVudCB7XG4gIC8qKiBUb2tlbiBvZiB0aGUgY2xpY2tlZCBpdGVtICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIGl0J3MgdGhlIEZBQiBidXR0b24gKi9cbiAgaXNGYWI6IGJvb2xlYW47XG4gIC8qKiBUaGUgcm91dGUgaWYgbmF2aWdhdGlvbiBvY2N1cnJlZCAqL1xuICByb3V0ZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE1haW4gbWV0YWRhdGEgZm9yIHZhbC1ib3R0b20tbmF2IGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvdHRvbU5hdk1ldGFkYXRhIHtcbiAgLyoqIEFycmF5IG9mIHRhYiBjb25maWd1cmF0aW9ucyAqL1xuICB0YWJzOiBCb3R0b21OYXZUYWJbXTtcbiAgLyoqIENlbnRyYWwgRkFCIGJ1dHRvbiBjb25maWd1cmF0aW9uIChvcHRpb25hbCkgKi9cbiAgZmFiPzogQm90dG9tTmF2RmFiO1xuICAvKiogaTE4biBuYW1lc3BhY2UgZm9yIGxhYmVscyAqL1xuICBpMThuTmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKiogVGhlbWUgY29uZmlndXJhdGlvbiAqL1xuICB0aGVtZT86IEJvdHRvbU5hdlRoZW1lO1xuICAvKiogSGlkZSBsYWJlbHMgKGljb24tb25seSBtb2RlKSAqL1xuICBoaWRlTGFiZWxzPzogYm9vbGVhbjtcbiAgLyoqIFNhZmUgYXJlYSBwYWRkaW5nIGZvciBpT1Mgbm90Y2ggKi9cbiAgc2FmZUFyZWE/OiBib29sZWFuO1xuICAvKiogQW5pbWF0aW9uIHN0eWxlICovXG4gIGFuaW1hdGlvbj86ICdmYWRlJyB8ICdzY2FsZScgfCAnc2xpZGUnIHwgJ25vbmUnO1xufVxuXG4vKipcbiAqIERlZmF1bHQgdmFsdWVzIGZvciBCb3R0b21OYXZNZXRhZGF0YVxuICovXG5leHBvcnQgY29uc3QgQk9UVE9NX05BVl9ERUZBVUxUUzogUmVxdWlyZWQ8XG4gIFBpY2s8Qm90dG9tTmF2TWV0YWRhdGEsICdoaWRlTGFiZWxzJyB8ICdzYWZlQXJlYScgfCAnYW5pbWF0aW9uJz5cbj4gJiB7IHRoZW1lOiBSZXF1aXJlZDxCb3R0b21OYXZUaGVtZT4gfSA9IHtcbiAgaGlkZUxhYmVsczogZmFsc2UsXG4gIHNhZmVBcmVhOiB0cnVlLFxuICBhbmltYXRpb246ICdzY2FsZScsXG4gIHRoZW1lOiB7XG4gICAgYmFja2dyb3VuZDogJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScsXG4gICAgYWN0aXZlQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBpbmFjdGl2ZUNvbG9yOiAnbWVkaXVtJyxcbiAgICBib3JkZXJSYWRpdXM6ICcxNnB4IDE2cHggMCAwJyxcbiAgICBlbGV2YXRlZDogZmFsc2UsXG4gICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgZmxvYXRpbmc6IGZhbHNlLFxuICB9LFxufTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEhBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBRVU7SUFDeEMsVUFBVSxFQUFFLEtBQUs7SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxTQUFTLEVBQUUsT0FBTztJQUNsQixRQUFRLEVBQUUsSUFBSTtJQUNkLEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRSw2QkFBNkI7UUFDekMsV0FBVyxFQUFFLFNBQVM7UUFDdEIsYUFBYSxFQUFFLFFBQVE7UUFDdkIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsS0FBSztLQUNoQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcblxuLyoqXG4gKiBCYWRnZSBjb25maWd1cmF0aW9uIGZvciBhIG5hdiBpdGVtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tTmF2QmFkZ2Uge1xuICAvKiogQmFkZ2UgdGV4dCAoZS5nLiwgXCIzXCIsIFwiTkVXXCIpICovXG4gIHRleHQ/OiBzdHJpbmc7XG4gIC8qKiBCYWRnZSBjb2xvciAqL1xuICBjb2xvcj86IENvbG9yIHwgc3RyaW5nO1xuICAvKiogQmFkZ2UgYmFja2dyb3VuZCBjb2xvciAqL1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBDb2xvciB8IHN0cmluZztcbiAgLyoqIFNob3cgYXMgZG90IG9ubHkgKG5vIHRleHQpICovXG4gIGRvdD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSWNvbiBjb25maWd1cmF0aW9uIC0gc3VwcG9ydHMgbXVsdGlwbGUgaWNvbiBzb3VyY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tTmF2SWNvbiB7XG4gIC8qKiBJb25pY29uIG5hbWUgZm9yIGluYWN0aXZlIHN0YXRlIChlLmcuLCAnaG9tZS1vdXRsaW5lJykgKi9cbiAgZGVmYXVsdDogc3RyaW5nO1xuICAvKiogSW9uaWNvbiBuYW1lIGZvciBhY3RpdmUgc3RhdGUgKGUuZy4sICdob21lJykgLSBkZWZhdWx0cyB0byBkZWZhdWx0IGlmIG5vdCBwcm92aWRlZCAqL1xuICBhY3RpdmU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgbmF2IHRhYiBpdGVtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tTmF2VGFiIHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdGFiICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBJY29uIGNvbmZpZ3VyYXRpb24gKi9cbiAgaWNvbjogQm90dG9tTmF2SWNvbjtcbiAgLyoqIFN0YXRpYyBsYWJlbCB0ZXh0ICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogaTE4biBrZXkgZm9yIGxhYmVsICovXG4gIGxhYmVsS2V5Pzogc3RyaW5nO1xuICAvKiogUm91dGUgdG8gbmF2aWdhdGUgdG8gKHN1cHBvcnRzIHN0cmluZyBvciBhcnJheSBmb3JtYXQpICovXG4gIHJvdXRlOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqIFJvdXRlcyB0aGF0IHNob3VsZCBhbHNvIG1hcmsgdGhpcyB0YWIgYXMgYWN0aXZlIChmb3IgbmVzdGVkIHJvdXRlcykgKi9cbiAgYWN0aXZlUm91dGVzPzogc3RyaW5nW107XG4gIC8qKiBCYWRnZSBjb25maWd1cmF0aW9uICovXG4gIGJhZGdlPzogQm90dG9tTmF2QmFkZ2U7XG4gIC8qKiBXaGV0aGVyIHRoZSB0YWIgaXMgZGlzYWJsZWQgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKiogQXJpYSBsYWJlbCBmb3IgYWNjZXNzaWJpbGl0eSAqL1xuICBhcmlhTGFiZWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNlbnRyYWwgRkFCIGJ1dHRvbiAob3B0aW9uYWwpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tTmF2RmFiIHtcbiAgLyoqIEljb24gbmFtZSAqL1xuICBpY29uOiBzdHJpbmc7XG4gIC8qKiBGQUIgY29sb3IgKi9cbiAgY29sb3I/OiBDb2xvciB8IHN0cmluZztcbiAgLyoqIEZBQiBzaXplICovXG4gIHNpemU/OiAnc21hbGwnIHwgJ2RlZmF1bHQnO1xuICAvKiogUm91dGUgdG8gbmF2aWdhdGUgdG8gKGlmIG5hdmlnYXRpb24gYWN0aW9uKSAqL1xuICByb3V0ZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0aGlzIGlzIGFuIGFjdGlvbiAoZW1pdHMgZXZlbnQpIG9yIG5hdmlnYXRpb24gKi9cbiAgaXNBY3Rpb24/OiBib29sZWFuO1xuICAvKiogQXJpYSBsYWJlbCBmb3IgYWNjZXNzaWJpbGl0eSAqL1xuICBhcmlhTGFiZWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlbWUgY29uZmlndXJhdGlvbiBmb3IgYm90dG9tIG5hdlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvdHRvbU5hdlRoZW1lIHtcbiAgLyoqIEJhY2tncm91bmQgY29sb3IgKENTUyB2YXJpYWJsZSBvciBjb2xvciB2YWx1ZSkgKi9cbiAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgLyoqIEFjdGl2ZSB0YWIgY29sb3IgKi9cbiAgYWN0aXZlQ29sb3I/OiBDb2xvciB8IHN0cmluZztcbiAgLyoqIEluYWN0aXZlIHRhYiBjb2xvciAqL1xuICBpbmFjdGl2ZUNvbG9yPzogQ29sb3IgfCBzdHJpbmc7XG4gIC8qKiBCb3JkZXIgcmFkaXVzIGZvciB0aGUgbmF2IGJhciAqL1xuICBib3JkZXJSYWRpdXM/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgYSB0b3AgYm9yZGVyL3NoYWRvdyAqL1xuICBlbGV2YXRlZD86IGJvb2xlYW47XG4gIC8qKiBCbHVyIGVmZmVjdCBmb3IgdHJhbnNsdWNlbnQgYmFja2dyb3VuZCAqL1xuICB0cmFuc2x1Y2VudD86IGJvb2xlYW47XG4gIC8qKiBGbG9hdGluZyBpc2xhbmQgc3R5bGUgLSBkZXRhY2hlZCBmcm9tIGVkZ2VzIHdpdGggcm91bmRlZCBjb3JuZXJzICovXG4gIGZsb2F0aW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDbGljayBldmVudCBlbWl0dGVkIGJ5IGJvdHRvbSBuYXZcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb3R0b21OYXZDbGlja0V2ZW50IHtcbiAgLyoqIFRva2VuIG9mIHRoZSBjbGlja2VkIGl0ZW0gKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgaXQncyB0aGUgRkFCIGJ1dHRvbiAqL1xuICBpc0ZhYjogYm9vbGVhbjtcbiAgLyoqIFRoZSByb3V0ZSBpZiBuYXZpZ2F0aW9uIG9jY3VycmVkICovXG4gIHJvdXRlPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8qKlxuICogTWFpbiBtZXRhZGF0YSBmb3IgdmFsLWJvdHRvbS1uYXYgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tTmF2TWV0YWRhdGEge1xuICAvKiogQXJyYXkgb2YgdGFiIGNvbmZpZ3VyYXRpb25zICovXG4gIHRhYnM6IEJvdHRvbU5hdlRhYltdO1xuICAvKiogQ2VudHJhbCBGQUIgYnV0dG9uIGNvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKSAqL1xuICBmYWI/OiBCb3R0b21OYXZGYWI7XG4gIC8qKiBpMThuIG5hbWVzcGFjZSBmb3IgbGFiZWxzICovXG4gIGkxOG5OYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKiBUaGVtZSBjb25maWd1cmF0aW9uICovXG4gIHRoZW1lPzogQm90dG9tTmF2VGhlbWU7XG4gIC8qKiBIaWRlIGxhYmVscyAoaWNvbi1vbmx5IG1vZGUpICovXG4gIGhpZGVMYWJlbHM/OiBib29sZWFuO1xuICAvKiogU2FmZSBhcmVhIHBhZGRpbmcgZm9yIGlPUyBub3RjaCAqL1xuICBzYWZlQXJlYT86IGJvb2xlYW47XG4gIC8qKiBBbmltYXRpb24gc3R5bGUgKi9cbiAgYW5pbWF0aW9uPzogJ2ZhZGUnIHwgJ3NjYWxlJyB8ICdzbGlkZScgfCAnbm9uZSc7XG4gIC8qKiBDYXAgZGVsIGFuY2hvIGRlIGxhIGJhcnJhLiBUb2tlbiBzbXxtZHxsZ3x4bHxmdWxsIG8gdmFsb3IgQ1NTIGNydWRvLiBEZWZhdWx0OiAneGwnICgxMTAwcHgpIOKAlCBhbGluZWEgY29uIGAtLXZhbC1jb250YWluZXIteGxgIGRlbCByZXBvICovXG4gIG1heFdpZHRoPzogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICdmdWxsJyB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IHZhbHVlcyBmb3IgQm90dG9tTmF2TWV0YWRhdGFcbiAqL1xuZXhwb3J0IGNvbnN0IEJPVFRPTV9OQVZfREVGQVVMVFM6IFJlcXVpcmVkPFxuICBQaWNrPEJvdHRvbU5hdk1ldGFkYXRhLCAnaGlkZUxhYmVscycgfCAnc2FmZUFyZWEnIHwgJ2FuaW1hdGlvbicgfCAnbWF4V2lkdGgnPlxuPiAmIHsgdGhlbWU6IFJlcXVpcmVkPEJvdHRvbU5hdlRoZW1lPiB9ID0ge1xuICBoaWRlTGFiZWxzOiBmYWxzZSxcbiAgc2FmZUFyZWE6IHRydWUsXG4gIGFuaW1hdGlvbjogJ3NjYWxlJyxcbiAgbWF4V2lkdGg6ICd4bCcsXG4gIHRoZW1lOiB7XG4gICAgYmFja2dyb3VuZDogJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScsXG4gICAgYWN0aXZlQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBpbmFjdGl2ZUNvbG9yOiAnbWVkaXVtJyxcbiAgICBib3JkZXJSYWRpdXM6ICcxNnB4IDE2cHggMCAwJyxcbiAgICBlbGV2YXRlZDogZmFsc2UsXG4gICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgZmxvYXRpbmc6IGZhbHNlLFxuICB9LFxufTtcbiJdfQ==
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
149
149
  type: Inject,
150
150
  args: [VALTECH_AUTH_CONFIG]
151
151
  }] }, { type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Router }] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZG9mZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2hhbmRvZmYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQUcvQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBeUQzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQ3VDLE1BQXlCLEVBQ3RELElBQWdCLEVBQ2hCLElBQWlCLEVBQ2pCLE1BQWM7UUFIZSxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5oQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBT3RCLENBQUM7SUFFSjs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFnQyxFQUFFO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsZUFBZSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxJQUFJLENB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bnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgcXVlcnkgcGFyYW0gdGhhdCBjYXJyaWVzIHRoZSBoYW5kb2ZmIHRva2VuLiBBcHBzIG1heSBvdmVycmlkZVxuICogdmlhIGBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYoeyB0b2tlblBhcmFtIH0pYCBidXQgdGhlIGRlZmF1bHQga2VlcHMgdGhlXG4gKiBjb252ZW50aW9uIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBmYWN0b3J5LlxuICovXG5leHBvcnQgY29uc3QgSEFORE9GRl9UT0tFTl9QQVJBTSA9ICdoYW5kb2ZmJztcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBxdWVyeSBwYXJhbSB0aGF0IGNhcnJpZXMgdGhlIHBvc3QtZXhjaGFuZ2Ugcm91dGUuXG4gKi9cbmV4cG9ydCBjb25zdCBIQU5ET0ZGX1JPVVRFX1BBUkFNID0gJ3JvdXRlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSGFuZG9mZlNlcnZpY2UuZGV0ZWN0QW5kRXhjaGFuZ2VIYW5kb2ZmYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RBbmRFeGNoYW5nZU9wdGlvbnMge1xuICAvKiogT3ZlcnJpZGUgdGhlIHF1ZXJ5IHBhcmFtIG5hbWUuIERlZmF1bHQ6IGAnaGFuZG9mZidgLiAqL1xuICB0b2tlblBhcmFtPzogc3RyaW5nO1xuICAvKiogT3ZlcnJpZGUgdGhlIHJvdXRlIHBhcmFtIG5hbWUuIERlZmF1bHQ6IGAncm91dGUnYC4gKi9cbiAgcm91dGVQYXJhbT86IHN0cmluZztcbiAgLyoqIFdoZXJlIHRvIG5hdmlnYXRlIGlmIG5vIHJvdXRlIHBhcmFtIGlzIHByZXNlbnQuIERlZmF1bHQ6IGAnLydgLiAqL1xuICBkZWZhdWx0Um91dGU/OiBzdHJpbmc7XG4gIC8qKiBXaGVyZSB0byBuYXZpZ2F0ZSBvbiBleGNoYW5nZSBlcnJvci4gRGVmYXVsdDogYXBwJ3MgY29uZmlndXJlZCBgbG9naW5Sb3V0ZWAuICovXG4gIGVycm9yUm91dGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBib2R5IGZvciBgUE9TVCAvdjIvYXV0aC9oYW5kb2ZmYC5cbiAqXG4gKiBCb3RoIGZpZWxkcyBhcmUgb3B0aW9uYWwgYW5kIHN0b3JlZCBmb3IgYXVkaXQgb25seSDigJQgdGhlIGV4Y2hhbmdlIHN0ZXBcbiAqIGRvZXMgbm90IGVuZm9yY2UgdGhhdCB0aGUgcmVkZWVtaW5nIGFwcCBtYXRjaGVzIGB0YXJnZXRBcHBJZGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkNyZWF0ZVJlcXVlc3Qge1xuICAvKiogVGFyZ2V0IGFwcCB0aGUgaGFuZG9mZiBpcyBpbnRlbmRlZCBmb3IgKGUuZy4gYFwibXl2YWx0ZWNoXCJgKS4gQXVkaXQtb25seS4gKi9cbiAgdGFyZ2V0QXBwSWQ/OiBzdHJpbmc7XG4gIC8qKiBSb3V0ZSB0aGUgdGFyZ2V0IGFwcCBzaG91bGQgbmF2aWdhdGUgdG8gYWZ0ZXIgZXhjaGFuZ2UuIEVjaG9lZCBiYWNrLiAqL1xuICByb3V0ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBib2R5IGZyb20gYFBPU1QgL3YyL2F1dGgvaGFuZG9mZmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkNyZWF0ZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFJhdyB0b2tlbiB0byBlbWJlZCBpbiB0aGUgcmVkaXJlY3QgVVJMIGFzIGA/aGFuZG9mZj08dG9rZW4+YC4gMzBzIFRUTCwgc2luZ2xlLXVzZS4gKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFJGQzMzMzkgZXhwaXJhdGlvbiB0aW1lc3RhbXAuICovXG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICAvKiogRWNob2VkIGByb3V0ZWAgZnJvbSB0aGUgcmVxdWVzdCwgd2hlbiBwcm92aWRlZC4gKi9cbiAgcm91dGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgYm9keSBmcm9tIGBQT1NUIC92Mi9hdXRoL2hhbmRvZmYvZXhjaGFuZ2VgLlxuICpcbiAqIFNhbWUgc2hhcGUgYXMgYFNpZ25pblJlc3BvbnNlYCDigJQgaW5zdGFsbGFibGUgdmlhIGBBdXRoU2VydmljZS5zZXRFeHRlcm5hbEF1dGhgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRvZmZFeGNoYW5nZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbjogbnVtYmVyO1xuICB0b2tlblR5cGU6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSGFuZG9mZlNlcnZpY2Ug4oCUIGNyb3NzLWFwcCBzZXNzaW9uIHRyYW5zZmVyLlxuICpcbiAqIEltcGxlbWVudHMgdGhlIE9BdXRoIEF1dGhvcml6YXRpb24gQ29kZSBwYXR0ZXJuLCBhcHBsaWVkIGludGVybmFsbHkgYmV0d2VlblxuICogYXBwcyB0aGF0IHNoYXJlIHRoZSBzYW1lIGJhY2tlbmQuXG4gKlxuICogKipPcmlnaW4gYXBwICh1c2VyIGlzIGF1dGhlbnRpY2F0ZWQpOioqXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgeyB0b2tlbiwgcm91dGUgfSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICogICBoYW5kb2ZmLmNyZWF0ZUhhbmRvZmYoeyB0YXJnZXRBcHBJZDogJ215dmFsdGVjaCcsIHJvdXRlOiAnL2FwcC9kYXNoYm9hcmQnIH0pXG4gKiApO1xuICogd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgaHR0cHM6Ly9teXZhbHRlY2guYXBwLz9oYW5kb2ZmPSR7dG9rZW59JnJvdXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJvdXRlID8/ICcvJyl9YDtcbiAqIGBgYFxuICpcbiAqICoqVGFyZ2V0IGFwcCAoYm9vdCk6KiogY2FsbCBgZXhjaGFuZ2VIYW5kb2ZmKHRva2VuKWAuIE9uIHN1Y2Nlc3MsIHRoZSBzZXNzaW9uXG4gKiBpcyBpbnN0YWxsZWQgKGBBdXRoU2VydmljZS5zZXRFeHRlcm5hbEF1dGhgKSBhbmQgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZC5cbiAqIFNlZSBgZGV0ZWN0QW5kRXhjaGFuZ2VIYW5kb2ZmYCBoZWxwZXIgZm9yIHRoZSB0eXBpY2FsIGJvb3RzdHJhcCBwYXR0ZXJuLlxuICpcbiAqIFNlY3VyaXR5IG5vdGVzOlxuICogLSBUb2tlbiBpcyBzaW5nbGUtdXNlIGFuZCBzaG9ydC1saXZlZCAoMzBzKSDigJQgZW5mb3JjZWQgc2VydmVyLXNpZGUuXG4gKiAtIFRva2VuIGluIFVSTCBtdXN0IGJlIHJlbW92ZWQgZnJvbSBoaXN0b3J5IGFmdGVyIGV4Y2hhbmdlIHRvIGF2b2lkIGxvZyBsZWFrYWdlLlxuICogLSBUaGUgZXhjaGFuZ2UgZW5kcG9pbnQgaXMgcHVibGljOyBkbyBOT1QgYWRkIGF1dGggaGVhZGVyLiBUaGVcbiAqICAgYEh0dHBDbGllbnRgIHJlcXVlc3QgYmVsb3cgYXZvaWRzIHRyaWdnZXJpbmcgdGhlIGF1dGggaW50ZXJjZXB0b3Igc2luY2UgdGhlXG4gKiAgIHVzZXIgaXNuJ3QgbG9nZ2VkIGluIHlldCBvbiB0aGUgdGFyZ2V0IGFwcC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBIYW5kb2ZmU2VydmljZSB7XG4gIHByaXZhdGUgZGV0ZWN0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICAvKipcbiAgICogQ3JlYXRlIGEgaGFuZG9mZiB0b2tlbi4gQ2FsbGVyIG11c3QgYmUgYXV0aGVudGljYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3QgT3B0aW9uYWwgbWV0YWRhdGE6IHRhcmdldCBhcHAgaWQgYW5kIGludGVuZGVkIHJvdXRlLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGVtaXR0aW5nIGB7IHRva2VuLCBleHBpcmVzQXQsIHJvdXRlPyB9YC5cbiAgICovXG4gIGNyZWF0ZUhhbmRvZmYocmVxdWVzdDogSGFuZG9mZkNyZWF0ZVJlcXVlc3QgPSB7fSk6IE9ic2VydmFibGU8SGFuZG9mZkNyZWF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEhhbmRvZmZDcmVhdGVSZXNwb25zZT4oYCR7dGhpcy5iYXNlVXJsfS9oYW5kb2ZmYCwgcmVxdWVzdCk7XG4gIH1cblxuICAvKipcbiAgICogRXhjaGFuZ2UgYSBoYW5kb2ZmIHRva2VuIGZvciBhIHNlc3Npb24gYW5kIGluc3RhbGwgaXQuXG4gICAqXG4gICAqIE9uIHN1Y2Nlc3MsIHRoZSByZXNwb25zZSBpcyBwaXBlZCB0aHJvdWdoIGBBdXRoU2VydmljZS5zZXRFeHRlcm5hbEF1dGhgXG4gICAqIHNvIHRoZSB1c2VyIGJlY29tZXMgYXV0aGVudGljYXRlZC4gU3Vic2VxdWVudCBuYXZpZ2F0aW9uIGNhbiBwcm9jZWVkLlxuICAgKlxuICAgKiBPbiBmYWlsdXJlLCB0aGUgb2JzZXJ2YWJsZSBlcnJvcnMuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yXG4gICAqIHNob3dpbmcgYW4gZXJyb3IgYW5kIHJvdXRpbmcgdG8gYC9sb2dpbmAuXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlbiBSYXcgaGFuZG9mZiB0b2tlbiByZWFkIGZyb20gdGhlIFVSTC5cbiAgICovXG4gIGV4Y2hhbmdlSGFuZG9mZih0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxIYW5kb2ZmRXhjaGFuZ2VSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PEhhbmRvZmZFeGNoYW5nZVJlc3BvbnNlPihgJHt0aGlzLmJhc2VVcmx9L2hhbmRvZmYvZXhjaGFuZ2VgLCB7IHRva2VuIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHRoaXMuaW5zdGFsbFNlc3Npb24ocmVzcG9uc2UpKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIC8vIFN1cmZhY2UgdGhlIGVycm9yIHVudG91Y2hlZCDigJQgdGhlIGNhbGxlciBkZWNpZGVzIGhvdyB0byByZWFjdFxuICAgICAgICAgIC8vICh0eXBpY2FsbHk6IHJlZGlyZWN0IHRvIC9sb2dpbiArIHRvYXN0KS4gRG9uJ3QgaW5zdGFsbCBhIGJhZCBzZXNzaW9uLlxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQm9vdHN0cmFwIGhlbHBlciDigJQgcmVhZHMgdGhlIGhhbmRvZmYgdG9rZW4gZnJvbSB0aGUgY3VycmVudCBVUkwsIGV4Y2hhbmdlc1xuICAgKiBpdCBmb3IgYSBzZXNzaW9uLCBhbmQgbmF2aWdhdGVzIHRvIHRoZSBpbnRlbmRlZCByb3V0ZSB3aXRoIHRoZSB0b2tlblxuICAgKiBzdHJpcHBlZCBmcm9tIGhpc3RvcnkuXG4gICAqXG4gICAqIElkZW1wb3RlbnQ6IHN1YnNlcXVlbnQgY2FsbHMgYXJlIG5vLW9wcy4gV2lyZSBmcm9tIGFuXG4gICAqIGBBUFBfSU5JVElBTElaRVJgL2Bwcm92aWRlQXBwSW5pdGlhbGl6ZXJgIGZhY3RvcnkgaW4gYG1haW4udHNgLlxuICAgKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIG1haW4udHNcbiAgICogcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IGluamVjdChIYW5kb2ZmU2VydmljZSkuZGV0ZWN0QW5kRXhjaGFuZ2VIYW5kb2ZmKCkpXG4gICAqIGBgYFxuICAgKlxuICAgKiBPbiBlcnJvciAoZXhwaXJlZC91c2VkL2ludmFsaWQgdG9rZW4pLCByZWRpcmVjdHMgdG8gYGVycm9yUm91dGVgIChkZWZhdWx0OlxuICAgKiB0aGUgYXBwJ3MgY29uZmlndXJlZCBgbG9naW5Sb3V0ZWApLiBUaGUgVVJMIGlzIGFsd2F5cyBjbGVhbmVkLCBldmVuIG9uXG4gICAqIGVycm9yLCBzbyB0aGUgdG9rZW4gY2Fubm90IGJlIHJldHJpZWQgYnkgcmVmcmVzaGluZyB0aGUgcGFnZS5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIGEgaGFuZG9mZiB3YXMgZGV0ZWN0ZWQgYW5kIHByb2Nlc3NlZCAoc3VjY2VzcyBvciBmYWlsKS5cbiAgICogICAgICAgICAgYGZhbHNlYCBpZiBubyB0b2tlbiB3YXMgcHJlc2VudCAoY29sZCBib290LCBub3JtYWwgZmxvdykuXG4gICAqL1xuICBhc3luYyBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYob3B0aW9uczogRGV0ZWN0QW5kRXhjaGFuZ2VPcHRpb25zID0ge30pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5kZXRlY3RlZCB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmRldGVjdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHRva2VuUGFyYW0gPSBvcHRpb25zLnRva2VuUGFyYW0gPz8gSEFORE9GRl9UT0tFTl9QQVJBTTtcbiAgICBjb25zdCByb3V0ZVBhcmFtID0gb3B0aW9ucy5yb3V0ZVBhcmFtID8/IEhBTkRPRkZfUk9VVEVfUEFSQU07XG4gICAgY29uc3QgZGVmYXVsdFJvdXRlID0gb3B0aW9ucy5kZWZhdWx0Um91dGUgPz8gJy8nO1xuICAgIGNvbnN0IGVycm9yUm91dGUgPSBvcHRpb25zLmVycm9yUm91dGUgPz8gdGhpcy5jb25maWcubG9naW5Sb3V0ZSA/PyAnL2xvZ2luJztcblxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KHRva2VuUGFyYW0pO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRSb3V0ZSA9IHBhcmFtcy5nZXQocm91dGVQYXJhbSkgfHwgZGVmYXVsdFJvdXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZXhjaGFuZ2VIYW5kb2ZmKHRva2VuKSk7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhcmdldFJvdXRlLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tIYW5kb2ZmXSBFeGNoYW5nZSBmYWlsZWQsIHJlZGlyZWN0aW5nIHRvIGxvZ2luJywgZXJyKTtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoZXJyb3JSb3V0ZSwgeyByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3QgdGhlIHNlc3Npb24gaW4gYEF1dGhTZXJ2aWNlYC4gTWlycm9ycyB0aGUgaW5zdGFsbCBmbG93IHVzZWQgYnlcbiAgICogdGhlIG5vcm1hbCBzaWduaW4gcGF0aCBzbyB0aW1lcnMsIEZpcmViYXNlLCBhbmQgdGFiLXN5bmMgYWxsIGtpY2sgaW4uXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxTZXNzaW9uKHJlc3BvbnNlOiBIYW5kb2ZmRXhjaGFuZ2VSZXNwb25zZSk6IHZvaWQge1xuICAgIHRoaXMuYXV0aC5zZXRFeHRlcm5hbEF1dGgoe1xuICAgICAgYWNjZXNzVG9rZW46IHJlc3BvbnNlLmFjY2Vzc1Rva2VuLFxuICAgICAgcmVmcmVzaFRva2VuOiByZXNwb25zZS5yZWZyZXNoVG9rZW4sXG4gICAgICBmaXJlYmFzZVRva2VuOiByZXNwb25zZS5maXJlYmFzZVRva2VuLFxuICAgICAgZXhwaXJlc0luOiByZXNwb25zZS5leHBpcmVzSW4sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBiYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uZmlnLmFwaVVybH0ke3RoaXMuY29uZmlnLmF1dGhQcmVmaXh9YDtcbiAgfVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZG9mZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2hhbmRvZmYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQUcvQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBbUUzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQ3VDLE1BQXlCLEVBQ3RELElBQWdCLEVBQ2hCLElBQWlCLEVBQ2pCLE1BQWM7UUFIZSxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5oQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBT3RCLENBQUM7SUFFSjs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFnQyxFQUFFO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsZUFBZSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxJQUFJLENB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bnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgcXVlcnkgcGFyYW0gdGhhdCBjYXJyaWVzIHRoZSBoYW5kb2ZmIHRva2VuLiBBcHBzIG1heSBvdmVycmlkZVxuICogdmlhIGBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYoeyB0b2tlblBhcmFtIH0pYCBidXQgdGhlIGRlZmF1bHQga2VlcHMgdGhlXG4gKiBjb252ZW50aW9uIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBmYWN0b3J5LlxuICovXG5leHBvcnQgY29uc3QgSEFORE9GRl9UT0tFTl9QQVJBTSA9ICdoYW5kb2ZmJztcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBxdWVyeSBwYXJhbSB0aGF0IGNhcnJpZXMgdGhlIHBvc3QtZXhjaGFuZ2Ugcm91dGUuXG4gKi9cbmV4cG9ydCBjb25zdCBIQU5ET0ZGX1JPVVRFX1BBUkFNID0gJ3JvdXRlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSGFuZG9mZlNlcnZpY2UuZGV0ZWN0QW5kRXhjaGFuZ2VIYW5kb2ZmYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RBbmRFeGNoYW5nZU9wdGlvbnMge1xuICAvKiogT3ZlcnJpZGUgdGhlIHF1ZXJ5IHBhcmFtIG5hbWUuIERlZmF1bHQ6IGAnaGFuZG9mZidgLiAqL1xuICB0b2tlblBhcmFtPzogc3RyaW5nO1xuICAvKiogT3ZlcnJpZGUgdGhlIHJvdXRlIHBhcmFtIG5hbWUuIERlZmF1bHQ6IGAncm91dGUnYC4gKi9cbiAgcm91dGVQYXJhbT86IHN0cmluZztcbiAgLyoqIFdoZXJlIHRvIG5hdmlnYXRlIGlmIG5vIHJvdXRlIHBhcmFtIGlzIHByZXNlbnQuIERlZmF1bHQ6IGAnLydgLiAqL1xuICBkZWZhdWx0Um91dGU/OiBzdHJpbmc7XG4gIC8qKiBXaGVyZSB0byBuYXZpZ2F0ZSBvbiBleGNoYW5nZSBlcnJvci4gRGVmYXVsdDogYXBwJ3MgY29uZmlndXJlZCBgbG9naW5Sb3V0ZWAuICovXG4gIGVycm9yUm91dGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBib2R5IGZvciBgUE9TVCAvdjIvYXV0aC9oYW5kb2ZmYC5cbiAqXG4gKiBCb3RoIGZpZWxkcyBhcmUgb3B0aW9uYWwgYW5kIHN0b3JlZCBmb3IgYXVkaXQgb25seSDigJQgdGhlIGV4Y2hhbmdlIHN0ZXBcbiAqIGRvZXMgbm90IGVuZm9yY2UgdGhhdCB0aGUgcmVkZWVtaW5nIGFwcCBtYXRjaGVzIGB0YXJnZXRBcHBJZGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkNyZWF0ZVJlcXVlc3Qge1xuICAvKiogVGFyZ2V0IGFwcCB0aGUgaGFuZG9mZiBpcyBpbnRlbmRlZCBmb3IgKGUuZy4gYFwibXl2YWx0ZWNoXCJgKS4gQXVkaXQtb25seS4gKi9cbiAgdGFyZ2V0QXBwSWQ/OiBzdHJpbmc7XG4gIC8qKiBSb3V0ZSB0aGUgdGFyZ2V0IGFwcCBzaG91bGQgbmF2aWdhdGUgdG8gYWZ0ZXIgZXhjaGFuZ2UuIEVjaG9lZCBiYWNrLiAqL1xuICByb3V0ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBib2R5IGZyb20gYFBPU1QgL3YyL2F1dGgvaGFuZG9mZmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkNyZWF0ZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFJhdyB0b2tlbiB0byBlbWJlZCBpbiB0aGUgcmVkaXJlY3QgVVJMIGFzIGA/aGFuZG9mZj08dG9rZW4+YC4gMzBzIFRUTCwgc2luZ2xlLXVzZS4gKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFJGQzMzMzkgZXhwaXJhdGlvbiB0aW1lc3RhbXAuICovXG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICAvKiogRWNob2VkIGByb3V0ZWAgZnJvbSB0aGUgcmVxdWVzdCwgd2hlbiBwcm92aWRlZC4gKi9cbiAgcm91dGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBiYXNlIFVSTCBvZiB0aGUgdGFyZ2V0IGFwcCAoZS5nLiBgXCJodHRwczovL3NpZ2lmeS5jb21cImApLlxuICAgKlxuICAgKiBXaGVuIHByZXNlbnQsIGNhbGxlcnMgc2hvdWxkIHVzZSB0aGlzIGFzIHRoZSBkZXN0aW5hdGlvbiBmb3IgdGhlIHJlZGlyZWN0LlxuICAgKiBCYWNrZW5kIHJlc29sdmVzIGl0IGZyb20gdGhlIGBhcHAtY29uZmlnYCB0YWJsZSAoc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCkuXG4gICAqXG4gICAqIE9wdGlvbmFsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IOKAlCB3aGVuIG1pc3NpbmcsIGNhbGxlcnMgbWF5IGZhbGwgYmFja1xuICAgKiB0byBhIGNsaWVudC1zaWRlIGBhcHBVcmxzYCBtYXBwaW5nLlxuICAgKi9cbiAgdGFyZ2V0QmFzZVVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBib2R5IGZyb20gYFBPU1QgL3YyL2F1dGgvaGFuZG9mZi9leGNoYW5nZWAuXG4gKlxuICogU2FtZSBzaGFwZSBhcyBgU2lnbmluUmVzcG9uc2VgIOKAlCBpbnN0YWxsYWJsZSB2aWEgYEF1dGhTZXJ2aWNlLnNldEV4dGVybmFsQXV0aGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkV4Y2hhbmdlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZmlyZWJhc2VUb2tlbj86IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBIYW5kb2ZmU2VydmljZSDigJQgY3Jvc3MtYXBwIHNlc3Npb24gdHJhbnNmZXIuXG4gKlxuICogSW1wbGVtZW50cyB0aGUgT0F1dGggQXV0aG9yaXphdGlvbiBDb2RlIHBhdHRlcm4sIGFwcGxpZWQgaW50ZXJuYWxseSBiZXR3ZWVuXG4gKiBhcHBzIHRoYXQgc2hhcmUgdGhlIHNhbWUgYmFja2VuZC5cbiAqXG4gKiAqKk9yaWdpbiBhcHAgKHVzZXIgaXMgYXV0aGVudGljYXRlZCk6KipcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB7IHRva2VuLCByb3V0ZSB9ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gKiAgIGhhbmRvZmYuY3JlYXRlSGFuZG9mZih7IHRhcmdldEFwcElkOiAnbXl2YWx0ZWNoJywgcm91dGU6ICcvYXBwL2Rhc2hib2FyZCcgfSlcbiAqICk7XG4gKiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBodHRwczovL215dmFsdGVjaC5hcHAvP2hhbmRvZmY9JHt0b2tlbn0mcm91dGU9JHtlbmNvZGVVUklDb21wb25lbnQocm91dGUgPz8gJy8nKX1gO1xuICogYGBgXG4gKlxuICogKipUYXJnZXQgYXBwIChib290KToqKiBjYWxsIGBleGNoYW5nZUhhbmRvZmYodG9rZW4pYC4gT24gc3VjY2VzcywgdGhlIHNlc3Npb25cbiAqIGlzIGluc3RhbGxlZCAoYEF1dGhTZXJ2aWNlLnNldEV4dGVybmFsQXV0aGApIGFuZCB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkLlxuICogU2VlIGBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmZgIGhlbHBlciBmb3IgdGhlIHR5cGljYWwgYm9vdHN0cmFwIHBhdHRlcm4uXG4gKlxuICogU2VjdXJpdHkgbm90ZXM6XG4gKiAtIFRva2VuIGlzIHNpbmdsZS11c2UgYW5kIHNob3J0LWxpdmVkICgzMHMpIOKAlCBlbmZvcmNlZCBzZXJ2ZXItc2lkZS5cbiAqIC0gVG9rZW4gaW4gVVJMIG11c3QgYmUgcmVtb3ZlZCBmcm9tIGhpc3RvcnkgYWZ0ZXIgZXhjaGFuZ2UgdG8gYXZvaWQgbG9nIGxlYWthZ2UuXG4gKiAtIFRoZSBleGNoYW5nZSBlbmRwb2ludCBpcyBwdWJsaWM7IGRvIE5PVCBhZGQgYXV0aCBoZWFkZXIuIFRoZVxuICogICBgSHR0cENsaWVudGAgcmVxdWVzdCBiZWxvdyBhdm9pZHMgdHJpZ2dlcmluZyB0aGUgYXV0aCBpbnRlcmNlcHRvciBzaW5jZSB0aGVcbiAqICAgdXNlciBpc24ndCBsb2dnZWQgaW4geWV0IG9uIHRoZSB0YXJnZXQgYXBwLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEhhbmRvZmZTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkZXRlY3RlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVkFMVEVDSF9BVVRIX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hBdXRoQ29uZmlnLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBoYW5kb2ZmIHRva2VuLiBDYWxsZXIgbXVzdCBiZSBhdXRoZW50aWNhdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdCBPcHRpb25hbCBtZXRhZGF0YTogdGFyZ2V0IGFwcCBpZCBhbmQgaW50ZW5kZWQgcm91dGUuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgZW1pdHRpbmcgYHsgdG9rZW4sIGV4cGlyZXNBdCwgcm91dGU/IH1gLlxuICAgKi9cbiAgY3JlYXRlSGFuZG9mZihyZXF1ZXN0OiBIYW5kb2ZmQ3JlYXRlUmVxdWVzdCA9IHt9KTogT2JzZXJ2YWJsZTxIYW5kb2ZmQ3JlYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SGFuZG9mZkNyZWF0ZVJlc3BvbnNlPihgJHt0aGlzLmJhc2VVcmx9L2hhbmRvZmZgLCByZXF1ZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGNoYW5nZSBhIGhhbmRvZmYgdG9rZW4gZm9yIGEgc2Vzc2lvbiBhbmQgaW5zdGFsbCBpdC5cbiAgICpcbiAgICogT24gc3VjY2VzcywgdGhlIHJlc3BvbnNlIGlzIHBpcGVkIHRocm91Z2ggYEF1dGhTZXJ2aWNlLnNldEV4dGVybmFsQXV0aGBcbiAgICogc28gdGhlIHVzZXIgYmVjb21lcyBhdXRoZW50aWNhdGVkLiBTdWJzZXF1ZW50IG5hdmlnYXRpb24gY2FuIHByb2NlZWQuXG4gICAqXG4gICAqIE9uIGZhaWx1cmUsIHRoZSBvYnNlcnZhYmxlIGVycm9ycy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3JcbiAgICogc2hvd2luZyBhbiBlcnJvciBhbmQgcm91dGluZyB0byBgL2xvZ2luYC5cbiAgICpcbiAgICogQHBhcmFtIHRva2VuIFJhdyBoYW5kb2ZmIHRva2VuIHJlYWQgZnJvbSB0aGUgVVJMLlxuICAgKi9cbiAgZXhjaGFuZ2VIYW5kb2ZmKHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEhhbmRvZmZFeGNoYW5nZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8SGFuZG9mZkV4Y2hhbmdlUmVzcG9uc2U+KGAke3RoaXMuYmFzZVVybH0vaGFuZG9mZi9leGNoYW5nZWAsIHsgdG9rZW4gfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAocmVzcG9uc2UgPT4gdGhpcy5pbnN0YWxsU2Vzc2lvbihyZXNwb25zZSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgLy8gU3VyZmFjZSB0aGUgZXJyb3IgdW50b3VjaGVkIOKAlCB0aGUgY2FsbGVyIGRlY2lkZXMgaG93IHRvIHJlYWN0XG4gICAgICAgICAgLy8gKHR5cGljYWxseTogcmVkaXJlY3QgdG8gL2xvZ2luICsgdG9hc3QpLiBEb24ndCBpbnN0YWxsIGEgYmFkIHNlc3Npb24uXG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCb290c3RyYXAgaGVscGVyIOKAlCByZWFkcyB0aGUgaGFuZG9mZiB0b2tlbiBmcm9tIHRoZSBjdXJyZW50IFVSTCwgZXhjaGFuZ2VzXG4gICAqIGl0IGZvciBhIHNlc3Npb24sIGFuZCBuYXZpZ2F0ZXMgdG8gdGhlIGludGVuZGVkIHJvdXRlIHdpdGggdGhlIHRva2VuXG4gICAqIHN0cmlwcGVkIGZyb20gaGlzdG9yeS5cbiAgICpcbiAgICogSWRlbXBvdGVudDogc3Vic2VxdWVudCBjYWxscyBhcmUgbm8tb3BzLiBXaXJlIGZyb20gYW5cbiAgICogYEFQUF9JTklUSUFMSVpFUmAvYHByb3ZpZGVBcHBJbml0aWFsaXplcmAgZmFjdG9yeSBpbiBgbWFpbi50c2AuXG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gbWFpbi50c1xuICAgKiBwcm92aWRlQXBwSW5pdGlhbGl6ZXIoKCkgPT4gaW5qZWN0KEhhbmRvZmZTZXJ2aWNlKS5kZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYoKSlcbiAgICogYGBgXG4gICAqXG4gICAqIE9uIGVycm9yIChleHBpcmVkL3VzZWQvaW52YWxpZCB0b2tlbiksIHJlZGlyZWN0cyB0byBgZXJyb3JSb3V0ZWAgKGRlZmF1bHQ6XG4gICAqIHRoZSBhcHAncyBjb25maWd1cmVkIGBsb2dpblJvdXRlYCkuIFRoZSBVUkwgaXMgYWx3YXlzIGNsZWFuZWQsIGV2ZW4gb25cbiAgICogZXJyb3IsIHNvIHRoZSB0b2tlbiBjYW5ub3QgYmUgcmV0cmllZCBieSByZWZyZXNoaW5nIHRoZSBwYWdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYSBoYW5kb2ZmIHdhcyBkZXRlY3RlZCBhbmQgcHJvY2Vzc2VkIChzdWNjZXNzIG9yIGZhaWwpLlxuICAgKiAgICAgICAgICBgZmFsc2VgIGlmIG5vIHRva2VuIHdhcyBwcmVzZW50IChjb2xkIGJvb3QsIG5vcm1hbCBmbG93KS5cbiAgICovXG4gIGFzeW5jIGRldGVjdEFuZEV4Y2hhbmdlSGFuZG9mZihvcHRpb25zOiBEZXRlY3RBbmRFeGNoYW5nZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmRldGVjdGVkIHx8IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZGV0ZWN0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgdG9rZW5QYXJhbSA9IG9wdGlvbnMudG9rZW5QYXJhbSA/PyBIQU5ET0ZGX1RPS0VOX1BBUkFNO1xuICAgIGNvbnN0IHJvdXRlUGFyYW0gPSBvcHRpb25zLnJvdXRlUGFyYW0gPz8gSEFORE9GRl9ST1VURV9QQVJBTTtcbiAgICBjb25zdCBkZWZhdWx0Um91dGUgPSBvcHRpb25zLmRlZmF1bHRSb3V0ZSA/PyAnLyc7XG4gICAgY29uc3QgZXJyb3JSb3V0ZSA9IG9wdGlvbnMuZXJyb3JSb3V0ZSA/PyB0aGlzLmNvbmZpZy5sb2dpblJvdXRlID8/ICcvbG9naW4nO1xuXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBjb25zdCB0b2tlbiA9IHBhcmFtcy5nZXQodG9rZW5QYXJhbSk7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldFJvdXRlID0gcGFyYW1zLmdldChyb3V0ZVBhcmFtKSB8fCBkZWZhdWx0Um91dGU7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5leGNoYW5nZUhhbmRvZmYodG9rZW4pKTtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFyZ2V0Um91dGUsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUud2FybignW0hhbmRvZmZdIEV4Y2hhbmdlIGZhaWxlZCwgcmVkaXJlY3RpbmcgdG8gbG9naW4nLCBlcnIpO1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChlcnJvclJvdXRlLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUGVyc2lzdCB0aGUgc2Vzc2lvbiBpbiBgQXV0aFNlcnZpY2VgLiBNaXJyb3JzIHRoZSBpbnN0YWxsIGZsb3cgdXNlZCBieVxuICAgKiB0aGUgbm9ybWFsIHNpZ25pbiBwYXRoIHNvIHRpbWVycywgRmlyZWJhc2UsIGFuZCB0YWItc3luYyBhbGwga2ljayBpbi5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFNlc3Npb24ocmVzcG9uc2U6IEhhbmRvZmZFeGNoYW5nZVJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5hdXRoLnNldEV4dGVybmFsQXV0aCh7XG4gICAgICBhY2Nlc3NUb2tlbjogcmVzcG9uc2UuYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW46IHJlc3BvbnNlLnJlZnJlc2hUb2tlbixcbiAgICAgIGZpcmViYXNlVG9rZW46IHJlc3BvbnNlLmZpcmViYXNlVG9rZW4sXG4gICAgICBleHBpcmVzSW46IHJlc3BvbnNlLmV4cGlyZXNJbixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb25maWcuYXBpVXJsfSR7dGhpcy5jb25maWcuYXV0aFByZWZpeH1gO1xuICB9XG59XG4iXX0=
@@ -51,14 +51,18 @@ export class NotificationActionService {
51
51
  const currentApp = this.config.appId;
52
52
  const targetApp = notif.appId;
53
53
  // 2) Cross-app: handoff + full redirect
54
+ //
55
+ // baseUrl resolution priority:
56
+ // (1) response.targetBaseUrl — backend lookup en app-config (preferred, single source of truth)
57
+ // (2) config.appUrls[targetApp] — fallback frontend mientras backend agrega el campo
54
58
  if (targetApp && currentApp && targetApp !== currentApp) {
55
- const baseUrl = this.config.appUrls?.[targetApp];
56
- if (!baseUrl) {
57
- console.warn(`[NotificationAction] Missing appUrls['${targetApp}'] — configure ValtechAuthConfig.appUrls`);
58
- return 'cross-app-unconfigured';
59
- }
60
59
  try {
61
60
  const resp = await firstValueFrom(this.handoff.createHandoff({ targetAppId: targetApp, route }));
61
+ const baseUrl = resp.targetBaseUrl ?? this.config.appUrls?.[targetApp];
62
+ if (!baseUrl) {
63
+ console.warn(`[NotificationAction] No baseUrl for app '${targetApp}' — backend did not return targetBaseUrl and no appUrls fallback configured`);
64
+ return 'cross-app-unconfigured';
65
+ }
62
66
  const url = this.buildHandoffUrl(baseUrl, resp.token, route);
63
67
  if (typeof window !== 'undefined') {
64
68
  window.location.href = url;
@@ -110,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
110
114
  type: Inject,
111
115
  args: [VALTECH_AUTH_CONFIG]
112
116
  }] }, { type: i1.AuthService }, { type: i2.OrgSwitchService }, { type: i3.HandoffService }, { type: i4.NotificationsService }, { type: i5.Router }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL25vdGlmaWNhdGlvbi1hY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7OztBQWdCL0MsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUN1QyxNQUF5QixFQUN0RCxJQUFpQixFQUNqQixTQUEyQixFQUMzQixPQUF1QixFQUN2QixhQUFtQyxFQUNuQyxNQUFjO1FBTGUsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDdEQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUo7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUEyQjtRQUNwQywrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUs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Q0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTVGVSx5QkFBeUIsa0JBRTFCLG1CQUFtQjttSEFGbEIseUJBQXlCLGNBRFosTUFBTTs7NEZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUc3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm90aWZpY2F0aW9uQWN0aW9uU2VydmljZSDigJQgb3JxdWVzdGEgZWwgXCJjbGljayBlbiBub3RpZmljYWNpw7NuXCIgY3Jvc3MtYXBwIGNyb3NzLW9yZy5cbiAqXG4gKiBGbHVqbzpcbiAqICAgMS4gbWFya0FzUmVhZCAoYmVzdC1lZmZvcnQsIG5vIGJsb3F1ZWEpXG4gKiAgIDIuIFNpIGFwcElkIGRlc3Rpbm8gIT09IGFwcElkIGFjdHVhbCDihpIgaGFuZG9mZiB0b2tlbiArIHJlZGlyZWN0IGEgYXBwIGRlc3Rpbm9cbiAqICAgMy4gU2kgb3JnSWQgZGVzdGlubyAhPT0gYWN0aXZlT3JnIOKGkiBzd2l0Y2hUbyhvcmdJZCkgKHNpbiByZWxvYWQsIG5hdmVnYSBkZXNwdcOpcylcbiAqICAgNC4gcm91dGVyLm5hdmlnYXRlQnlVcmwoYWN0aW9uUm91dGUpXG4gKlxuICogUmVxdWllcmU6XG4gKiAgIC0gVmFsdGVjaEF1dGhDb25maWcuYXBwSWQgIChpZGVudGlmaWNhIGxhIGFwcCBhY3R1YWwpXG4gKiAgIC0gVmFsdGVjaEF1dGhDb25maWcuYXBwVXJscyAobWFwYSBiYXNlVXJsIHBhcmEgaGFuZG9mZiBjcm9zcy1hcHApXG4gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBIYW5kb2ZmU2VydmljZSB9IGZyb20gJy4vaGFuZG9mZi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1N3aXRjaFNlcnZpY2UgfSBmcm9tICcuL29yZy1zd2l0Y2guc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQXV0aENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uRG9jdW1lbnQsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2Uvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcblxuLyoqIFJlc3VsdGFkbyBkZXNjcmlwdGl2byBkZWwgb3BlbigpIOKAlCDDunRpbCBwYXJhIHRlc3RzIHkgdGVsZW1ldHLDrWEuICovXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25PcGVuUmVzdWx0ID1cbiAgfCAnbmF2aWdhdGVkJ1xuICB8ICduYXZpZ2F0ZWQtYWZ0ZXItc3dpdGNoLW9yZydcbiAgfCAncmVkaXJlY3RlZC1jcm9zcy1hcHAnXG4gIHwgJ25vLWFjdGlvbi1yb3V0ZSdcbiAgfCAnY3Jvc3MtYXBwLXVuY29uZmlndXJlZCdcbiAgfCAnaGFuZG9mZi1mYWlsZWQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3JnU3dpdGNoOiBPcmdTd2l0Y2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGFuZG9mZjogSGFuZG9mZlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICAvKipcbiAgICogQWJyZSBsYSBub3RpZmljYWNpw7NuOiBtYXJjYSBjb21vIGxlw61kYSwgc3dpdGNoLW9yZyBzaSB0b2NhLCBuYXZlZ2FjacOzbiBsb2NhbCBvXG4gICAqIHJlZGlyZWN0IGNyb3NzLWFwcCB2w61hIGhhbmRvZmYuXG4gICAqXG4gICAqIE5vIGxhbnphIGVycm9yZXMgaGFjaWEgbGEgVUkg4oCUIGRldnVlbHZlIHVuIHJlc3VsdGFkbyBkZXNjcmlwdGl2by4gRXJyb3Jlc1xuICAgKiB0w6ljbmljb3MgcXVlZGFuIGVuIGNvbnNvbGUud2Fybi5cbiAgICovXG4gIGFzeW5jIG9wZW4obm90aWY6IE5vdGlmaWNhdGlvbkRvY3VtZW50KTogUHJvbWlzZTxOb3RpZmljYXRpb25PcGVuUmVzdWx0PiB7XG4gICAgLy8gMSkgTWFyayBhcyByZWFkIChiZXN0LWVmZm9ydCwgbm8gYmxvcXVlYSBlbCBmbHVqbyBwcmluY2lwYWwpXG4gICAgaWYgKG5vdGlmLmlkICYmICFub3RpZi5pc1JlYWQpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5tYXJrQXNSZWFkKG5vdGlmLmlkKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tOb3RpZmljYXRpb25BY3Rpb25dIG1hcmtBc1JlYWQgZmFpbGVkJywgZXJyKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlID0gbm90aWYuYWN0aW9uUm91dGU7XG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgcmV0dXJuICduby1hY3Rpb24tcm91dGUnO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRBcHAgPSB0aGlzLmNvbmZpZy5hcHBJZDtcbiAgICBjb25zdCB0YXJnZXRBcHAgPSBub3RpZi5hcHBJZDtcblxuICAgIC8vIDIpIENyb3NzLWFwcDogaGFuZG9mZiArIGZ1bGwgcmVkaXJlY3RcbiAgICBpZiAodGFyZ2V0QXBwICYmIGN1cnJlbnRBcHAgJiYgdGFyZ2V0QXBwICE9PSBjdXJyZW50QXBwKSB7XG4gICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWcuYXBwVXJscz8uW3RhcmdldEFwcF07XG4gICAgICBpZiAoIWJhc2VVcmwpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbTm90aWZpY2F0aW9uQWN0aW9uXSBNaXNzaW5nIGFwcFVybHNbJyR7dGFyZ2V0QXBwfSddIOKAlCBjb25maWd1cmUgVmFsdGVjaEF1dGhDb25maWcuYXBwVXJsc2BcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuICdjcm9zcy1hcHAtdW5jb25maWd1cmVkJztcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMuaGFuZG9mZi5jcmVhdGVIYW5kb2ZmKHsgdGFyZ2V0QXBwSWQ6IHRhcmdldEFwcCwgcm91dGUgfSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEhhbmRvZmZVcmwoYmFzZVVybCwgcmVzcC50b2tlbiwgcm91dGUpO1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ3JlZGlyZWN0ZWQtY3Jvc3MtYXBwJztcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBtc2cgPSBlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7XG4gICAgICAgIGNvbnNvbGUud2FybignW05vdGlmaWNhdGlvbkFjdGlvbl0gY3JlYXRlSGFuZG9mZiBmYWlsZWQ6JywgbXNnKTtcbiAgICAgICAgcmV0dXJuICdoYW5kb2ZmLWZhaWxlZCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMykgU2FtZSBhcHAg4oCUIHN3aXRjaC1vcmcgc2kgdG9jYSAoc2luIHJlbG9hZCDigJQgbGEgbmF2ZWdhY2nDs24gcG9zdGVyaW9yIG1vbnRhIHBhZ2UgZnJlc2gpXG4gICAgbGV0IHN3aXRjaGVkID0gZmFsc2U7XG4gICAgaWYgKG5vdGlmLm9yZ0lkKSB7XG4gICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZU9yZygpO1xuICAgICAgaWYgKGFjdGl2ZSAmJiBhY3RpdmUgIT09IG5vdGlmLm9yZ0lkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub3JnU3dpdGNoLnN3aXRjaFRvKG5vdGlmLm9yZ0lkKTtcbiAgICAgICAgc3dpdGNoZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDQpIE5hdmlnYXRlIGxvY2FsXG4gICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyb3V0ZSk7XG4gICAgcmV0dXJuIHN3aXRjaGVkID8gJ25hdmlnYXRlZC1hZnRlci1zd2l0Y2gtb3JnJyA6ICduYXZpZ2F0ZWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVPcmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcbiAgICByZXR1cm4gKFxuICAgICAgKHVzZXIgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsKT8uYWN0aXZlT3JnSWQgPz9cbiAgICAgICh1c2VyIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbCk/LmFjdGl2ZU9yZyA/P1xuICAgICAgJydcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnV5ZSBVUkwgYWJzb2x1dGEgcGFyYSBoYW5kb2ZmIGNyb3NzLWFwcCBwcmVzZXJ2YW5kbyBwYXRobmFtZSB5IG90cm9zXG4gICAqIHBhcmFtcyBleGlzdGVudGVzIGRlIGxhIGJhc2VVcmwuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSGFuZG9mZlVybChiYXNlVXJsOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIHJvdXRlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoYmFzZVVybCk7XG4gICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2hhbmRvZmYnLCB0b2tlbik7XG4gICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3JvdXRlJywgcm91dGUpO1xuICAgIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL25vdGlmaWNhdGlvbi1hY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7OztBQWdCL0MsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUN1QyxNQUF5QixFQUN0RCxJQUFpQixFQUNqQixTQUEyQixFQUMzQixPQUF1QixFQUN2QixhQUFtQyxFQUNuQyxNQUFjO1FBTGUsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDdEQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUo7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUEyQjtRQUNwQywrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUs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UUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQS9GVSx5QkFBeUIsa0JBRTFCLG1CQUFtQjttSEFGbEIseUJBQXlCLGNBRFosTUFBTTs7NEZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUc3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm90aWZpY2F0aW9uQWN0aW9uU2VydmljZSDigJQgb3JxdWVzdGEgZWwgXCJjbGljayBlbiBub3RpZmljYWNpw7NuXCIgY3Jvc3MtYXBwIGNyb3NzLW9yZy5cbiAqXG4gKiBGbHVqbzpcbiAqICAgMS4gbWFya0FzUmVhZCAoYmVzdC1lZmZvcnQsIG5vIGJsb3F1ZWEpXG4gKiAgIDIuIFNpIGFwcElkIGRlc3Rpbm8gIT09IGFwcElkIGFjdHVhbCDihpIgaGFuZG9mZiB0b2tlbiArIHJlZGlyZWN0IGEgYXBwIGRlc3Rpbm9cbiAqICAgMy4gU2kgb3JnSWQgZGVzdGlubyAhPT0gYWN0aXZlT3JnIOKGkiBzd2l0Y2hUbyhvcmdJZCkgKHNpbiByZWxvYWQsIG5hdmVnYSBkZXNwdcOpcylcbiAqICAgNC4gcm91dGVyLm5hdmlnYXRlQnlVcmwoYWN0aW9uUm91dGUpXG4gKlxuICogUmVxdWllcmU6XG4gKiAgIC0gVmFsdGVjaEF1dGhDb25maWcuYXBwSWQgIChpZGVudGlmaWNhIGxhIGFwcCBhY3R1YWwpXG4gKiAgIC0gVmFsdGVjaEF1dGhDb25maWcuYXBwVXJscyAobWFwYSBiYXNlVXJsIHBhcmEgaGFuZG9mZiBjcm9zcy1hcHApXG4gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBIYW5kb2ZmU2VydmljZSB9IGZyb20gJy4vaGFuZG9mZi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1N3aXRjaFNlcnZpY2UgfSBmcm9tICcuL29yZy1zd2l0Y2guc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQXV0aENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uRG9jdW1lbnQsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2Uvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcblxuLyoqIFJlc3VsdGFkbyBkZXNjcmlwdGl2byBkZWwgb3BlbigpIOKAlCDDunRpbCBwYXJhIHRlc3RzIHkgdGVsZW1ldHLDrWEuICovXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25PcGVuUmVzdWx0ID1cbiAgfCAnbmF2aWdhdGVkJ1xuICB8ICduYXZpZ2F0ZWQtYWZ0ZXItc3dpdGNoLW9yZydcbiAgfCAncmVkaXJlY3RlZC1jcm9zcy1hcHAnXG4gIHwgJ25vLWFjdGlvbi1yb3V0ZSdcbiAgfCAnY3Jvc3MtYXBwLXVuY29uZmlndXJlZCdcbiAgfCAnaGFuZG9mZi1mYWlsZWQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3JnU3dpdGNoOiBPcmdTd2l0Y2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGFuZG9mZjogSGFuZG9mZlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICAvKipcbiAgICogQWJyZSBsYSBub3RpZmljYWNpw7NuOiBtYXJjYSBjb21vIGxlw61kYSwgc3dpdGNoLW9yZyBzaSB0b2NhLCBuYXZlZ2FjacOzbiBsb2NhbCBvXG4gICAqIHJlZGlyZWN0IGNyb3NzLWFwcCB2w61hIGhhbmRvZmYuXG4gICAqXG4gICAqIE5vIGxhbnphIGVycm9yZXMgaGFjaWEgbGEgVUkg4oCUIGRldnVlbHZlIHVuIHJlc3VsdGFkbyBkZXNjcmlwdGl2by4gRXJyb3Jlc1xuICAgKiB0w6ljbmljb3MgcXVlZGFuIGVuIGNvbnNvbGUud2Fybi5cbiAgICovXG4gIGFzeW5jIG9wZW4obm90aWY6IE5vdGlmaWNhdGlvbkRvY3VtZW50KTogUHJvbWlzZTxOb3RpZmljYXRpb25PcGVuUmVzdWx0PiB7XG4gICAgLy8gMSkgTWFyayBhcyByZWFkIChiZXN0LWVmZm9ydCwgbm8gYmxvcXVlYSBlbCBmbHVqbyBwcmluY2lwYWwpXG4gICAgaWYgKG5vdGlmLmlkICYmICFub3RpZi5pc1JlYWQpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5tYXJrQXNSZWFkKG5vdGlmLmlkKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tOb3RpZmljYXRpb25BY3Rpb25dIG1hcmtBc1JlYWQgZmFpbGVkJywgZXJyKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlID0gbm90aWYuYWN0aW9uUm91dGU7XG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgcmV0dXJuICduby1hY3Rpb24tcm91dGUnO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRBcHAgPSB0aGlzLmNvbmZpZy5hcHBJZDtcbiAgICBjb25zdCB0YXJnZXRBcHAgPSBub3RpZi5hcHBJZDtcblxuICAgIC8vIDIpIENyb3NzLWFwcDogaGFuZG9mZiArIGZ1bGwgcmVkaXJlY3RcbiAgICAvL1xuICAgIC8vIGJhc2VVcmwgcmVzb2x1dGlvbiBwcmlvcml0eTpcbiAgICAvLyAgICgxKSByZXNwb25zZS50YXJnZXRCYXNlVXJsICDigJQgYmFja2VuZCBsb29rdXAgZW4gYXBwLWNvbmZpZyAocHJlZmVycmVkLCBzaW5nbGUgc291cmNlIG9mIHRydXRoKVxuICAgIC8vICAgKDIpIGNvbmZpZy5hcHBVcmxzW3RhcmdldEFwcF0g4oCUIGZhbGxiYWNrIGZyb250ZW5kIG1pZW50cmFzIGJhY2tlbmQgYWdyZWdhIGVsIGNhbXBvXG4gICAgaWYgKHRhcmdldEFwcCAmJiBjdXJyZW50QXBwICYmIHRhcmdldEFwcCAhPT0gY3VycmVudEFwcCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMuaGFuZG9mZi5jcmVhdGVIYW5kb2ZmKHsgdGFyZ2V0QXBwSWQ6IHRhcmdldEFwcCwgcm91dGUgfSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHJlc3AudGFyZ2V0QmFzZVVybCA/PyB0aGlzLmNvbmZpZy5hcHBVcmxzPy5bdGFyZ2V0QXBwXTtcbiAgICAgICAgaWYgKCFiYXNlVXJsKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtOb3RpZmljYXRpb25BY3Rpb25dIE5vIGJhc2VVcmwgZm9yIGFwcCAnJHt0YXJnZXRBcHB9JyDigJQgYmFja2VuZCBkaWQgbm90IHJldHVybiB0YXJnZXRCYXNlVXJsIGFuZCBubyBhcHBVcmxzIGZhbGxiYWNrIGNvbmZpZ3VyZWRgXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gJ2Nyb3NzLWFwcC11bmNvbmZpZ3VyZWQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRIYW5kb2ZmVXJsKGJhc2VVcmwsIHJlc3AudG9rZW4sIHJvdXRlKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdyZWRpcmVjdGVkLWNyb3NzLWFwcCc7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc3QgbXNnID0gZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpO1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tOb3RpZmljYXRpb25BY3Rpb25dIGNyZWF0ZUhhbmRvZmYgZmFpbGVkOicsIG1zZyk7XG4gICAgICAgIHJldHVybiAnaGFuZG9mZi1mYWlsZWQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDMpIFNhbWUgYXBwIOKAlCBzd2l0Y2gtb3JnIHNpIHRvY2EgKHNpbiByZWxvYWQg4oCUIGxhIG5hdmVnYWNpw7NuIHBvc3RlcmlvciBtb250YSBwYWdlIGZyZXNoKVxuICAgIGxldCBzd2l0Y2hlZCA9IGZhbHNlO1xuICAgIGlmIChub3RpZi5vcmdJZCkge1xuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVPcmcoKTtcbiAgICAgIGlmIChhY3RpdmUgJiYgYWN0aXZlICE9PSBub3RpZi5vcmdJZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhub3RpZi5vcmdJZCk7XG4gICAgICAgIHN3aXRjaGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0KSBOYXZpZ2F0ZSBsb2NhbFxuICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocm91dGUpO1xuICAgIHJldHVybiBzd2l0Y2hlZCA/ICduYXZpZ2F0ZWQtYWZ0ZXItc3dpdGNoLW9yZycgOiAnbmF2aWdhdGVkJztcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlT3JnKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aC51c2VyKCk7XG4gICAgcmV0dXJuIChcbiAgICAgICh1c2VyIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbCk/LmFjdGl2ZU9yZ0lkID8/XG4gICAgICAodXNlciBhcyB7IGFjdGl2ZU9yZ0lkPzogc3RyaW5nOyBhY3RpdmVPcmc/OiBzdHJpbmcgfSB8IG51bGwpPy5hY3RpdmVPcmcgPz9cbiAgICAgICcnXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1eWUgVVJMIGFic29sdXRhIHBhcmEgaGFuZG9mZiBjcm9zcy1hcHAgcHJlc2VydmFuZG8gcGF0aG5hbWUgeSBvdHJvc1xuICAgKiBwYXJhbXMgZXhpc3RlbnRlcyBkZSBsYSBiYXNlVXJsLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhhbmRvZmZVcmwoYmFzZVVybDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCByb3V0ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGJhc2VVcmwpO1xuICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdoYW5kb2ZmJywgdG9rZW4pO1xuICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyb3V0ZScsIHJvdXRlKTtcbiAgICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,56 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { catchError, map, of, shareReplay, switchMap, throwError } from 'rxjs';
4
+ import { MarkdownArticleParserService } from './markdown-article-parser.service';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Loads Markdown legal documents from `/assets/legal/{locale}/{slug}.md` and parses them
8
+ * into ArticleMetadata ready for `<val-article>`. Caches parsed results by `locale:slug`
9
+ * so multiple views consuming the same doc share one HTTP request.
10
+ */
11
+ export class LegalContentService {
12
+ constructor() {
13
+ this.http = inject(HttpClient);
14
+ this.parser = inject(MarkdownArticleParserService);
15
+ this.DEFAULT_BASE = '/assets/legal';
16
+ this.cache = new Map();
17
+ }
18
+ load(slug, options = {}) {
19
+ const locale = (options.locale ?? 'es').toLowerCase();
20
+ const base = options.basePath ?? this.DEFAULT_BASE;
21
+ const fallback = options.fallbackLocale === undefined ? 'es' : options.fallbackLocale;
22
+ const key = `${base}|${locale}|${slug}`;
23
+ const cached = this.cache.get(key);
24
+ if (cached)
25
+ return cached;
26
+ const primary = this.fetchAndParse(`${base}/${locale}/${slug}.md`);
27
+ const stream = fallback && fallback !== locale
28
+ ? primary.pipe(catchError(() => this.fetchAndParse(`${base}/${fallback}/${slug}.md`)))
29
+ : primary;
30
+ const shared = stream.pipe(shareReplay({ bufferSize: 1, refCount: false }));
31
+ this.cache.set(key, shared);
32
+ return shared;
33
+ }
34
+ /** Returns the raw Markdown string without parsing. Useful for debugging. */
35
+ raw(slug, options = {}) {
36
+ const locale = (options.locale ?? 'es').toLowerCase();
37
+ const base = options.basePath ?? this.DEFAULT_BASE;
38
+ return this.http.get(`${base}/${locale}/${slug}.md`, { responseType: 'text' });
39
+ }
40
+ /** Clears the in-memory cache. Call when the user changes locale at runtime. */
41
+ invalidate() {
42
+ this.cache.clear();
43
+ }
44
+ fetchAndParse(url) {
45
+ return this.http.get(url, { responseType: 'text' }).pipe(switchMap(md => md && md.trim().length > 0
46
+ ? of(this.parser.parse(md))
47
+ : throwError(() => new Error(`Empty legal doc: ${url}`))), map(parsed => parsed));
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LegalContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LegalContentService, providedIn: 'root' }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LegalContentService, decorators: [{
53
+ type: Injectable,
54
+ args: [{ providedIn: 'root' }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWwtY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9tYXJrZG93bi1hcnRpY2xlL2xlZ2FsLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQWFqRjs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVtQixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUU5QyxpQkFBWSxHQUFHLGVBQWUsQ0FBQztRQUMvQixVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7S0E0Q3pFO0lBMUNDLElBQUksQ0FBQyxJQUFlLEVBQUUsVUFBNEIsRUFBRTtRQUNsRCxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFFdEYsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTTtZQUFFLE9BQU8sTUFBTSxDQUFDO1FBRTFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQ1YsUUFBUSxJQUFJLFFBQVEsS0FBSyxNQUFNO1lBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUVkLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEdBQUcsQ0FBQyxJQUFlLEVBQUUsVUFBNEIsRUFBRTtRQUNqRCxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVc7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3RELFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNiLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDeEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQzNELEVBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQ3RCLENBQUM7SUFDSixDQUFDOytHQWhEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXJ0aWNsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS90eXBlcyc7XG5pbXBvcnQgeyBNYXJrZG93bkFydGljbGVQYXJzZXJTZXJ2aWNlIH0gZnJvbSAnLi9tYXJrZG93bi1hcnRpY2xlLXBhcnNlci5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgTGVnYWxTbHVnID0gJ3Rlcm1zJyB8ICdwcml2YWN5JyB8ICdjb29raWVzJyB8ICdkYXRhLXVzYWdlJyB8ICdsZWdhbC1ub3RpY2UnIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlZ2FsTG9hZE9wdGlvbnMge1xuICAvKiogVHdvLWxldHRlciBsb2NhbGUgY29kZSAoZXMsIGVuLCBwdCkuIEZhbGxzIGJhY2sgdG8gYGVzYCBvbiA0MDQuICovXG4gIGxvY2FsZT86IHN0cmluZztcbiAgLyoqIE92ZXJyaWRlIGJhc2UgcGF0aCAoZGVmYXVsdCBgL2Fzc2V0cy9sZWdhbGApLiAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqIEZhbGxiYWNrIGxvY2FsZSB0cmllZCB3aGVuIHRoZSByZXF1ZXN0ZWQgb25lIGlzIG1pc3NpbmcuIFNldCBudWxsIHRvIGRpc2FibGUuICovXG4gIGZhbGxiYWNrTG9jYWxlPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBMb2FkcyBNYXJrZG93biBsZWdhbCBkb2N1bWVudHMgZnJvbSBgL2Fzc2V0cy9sZWdhbC97bG9jYWxlfS97c2x1Z30ubWRgIGFuZCBwYXJzZXMgdGhlbVxuICogaW50byBBcnRpY2xlTWV0YWRhdGEgcmVhZHkgZm9yIGA8dmFsLWFydGljbGU+YC4gQ2FjaGVzIHBhcnNlZCByZXN1bHRzIGJ5IGBsb2NhbGU6c2x1Z2BcbiAqIHNvIG11bHRpcGxlIHZpZXdzIGNvbnN1bWluZyB0aGUgc2FtZSBkb2Mgc2hhcmUgb25lIEhUVFAgcmVxdWVzdC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMZWdhbENvbnRlbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcnNlciA9IGluamVjdChNYXJrZG93bkFydGljbGVQYXJzZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfQkFTRSA9ICcvYXNzZXRzL2xlZ2FsJztcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPEFydGljbGVNZXRhZGF0YT4+KCk7XG5cbiAgbG9hZChzbHVnOiBMZWdhbFNsdWcsIG9wdGlvbnM6IExlZ2FsTG9hZE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8QXJ0aWNsZU1ldGFkYXRhPiB7XG4gICAgY29uc3QgbG9jYWxlID0gKG9wdGlvbnMubG9jYWxlID8/ICdlcycpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgYmFzZSA9IG9wdGlvbnMuYmFzZVBhdGggPz8gdGhpcy5ERUZBVUxUX0JBU0U7XG4gICAgY29uc3QgZmFsbGJhY2sgPSBvcHRpb25zLmZhbGxiYWNrTG9jYWxlID09PSB1bmRlZmluZWQgPyAnZXMnIDogb3B0aW9ucy5mYWxsYmFja0xvY2FsZTtcblxuICAgIGNvbnN0IGtleSA9IGAke2Jhc2V9fCR7bG9jYWxlfXwke3NsdWd9YDtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBwcmltYXJ5ID0gdGhpcy5mZXRjaEFuZFBhcnNlKGAke2Jhc2V9LyR7bG9jYWxlfS8ke3NsdWd9Lm1kYCk7XG4gICAgY29uc3Qgc3RyZWFtID1cbiAgICAgIGZhbGxiYWNrICYmIGZhbGxiYWNrICE9PSBsb2NhbGVcbiAgICAgICAgPyBwcmltYXJ5LnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmZldGNoQW5kUGFyc2UoYCR7YmFzZX0vJHtmYWxsYmFja30vJHtzbHVnfS5tZGApKSlcbiAgICAgICAgOiBwcmltYXJ5O1xuXG4gICAgY29uc3Qgc2hhcmVkID0gc3RyZWFtLnBpcGUoc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogZmFsc2UgfSkpO1xuICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgc2hhcmVkKTtcbiAgICByZXR1cm4gc2hhcmVkO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIHJhdyBNYXJrZG93biBzdHJpbmcgd2l0aG91dCBwYXJzaW5nLiBVc2VmdWwgZm9yIGRlYnVnZ2luZy4gKi9cbiAgcmF3KHNsdWc6IExlZ2FsU2x1Zywgb3B0aW9uczogTGVnYWxMb2FkT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBsb2NhbGUgPSAob3B0aW9ucy5sb2NhbGUgPz8gJ2VzJykudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlUGF0aCA/PyB0aGlzLkRFRkFVTFRfQkFTRTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHtiYXNlfS8ke2xvY2FsZX0vJHtzbHVnfS5tZGAsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSk7XG4gIH1cblxuICAvKiogQ2xlYXJzIHRoZSBpbi1tZW1vcnkgY2FjaGUuIENhbGwgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIGxvY2FsZSBhdCBydW50aW1lLiAqL1xuICBpbnZhbGlkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hBbmRQYXJzZSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8QXJ0aWNsZU1ldGFkYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobWQgPT5cbiAgICAgICAgbWQgJiYgbWQudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IG9mKHRoaXMucGFyc2VyLnBhcnNlKG1kKSlcbiAgICAgICAgICA6IHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBFbXB0eSBsZWdhbCBkb2M6ICR7dXJsfWApKVxuICAgICAgKSxcbiAgICAgIG1hcChwYXJzZWQgPT4gcGFyc2VkKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==