valtech-components 4.0.209 → 4.0.211

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2022/lib/components/molecules/load-more/load-more.component.mjs +11 -7
  2. package/esm2022/lib/components/molecules/reaction-bar/reaction-bar.component.mjs +326 -0
  3. package/esm2022/lib/components/molecules/reaction-bar/types.mjs +2 -0
  4. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +12 -9
  5. package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +79 -5
  6. package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.i18n.mjs +5 -1
  7. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
  8. package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +108 -135
  9. package/esm2022/lib/services/auth/org-switch.service.mjs +11 -1
  10. package/esm2022/lib/services/icons.service.mjs +3 -2
  11. package/esm2022/lib/services/reactions/config.mjs +22 -0
  12. package/esm2022/lib/services/reactions/index.mjs +3 -0
  13. package/esm2022/lib/services/reactions/reactions.service.mjs +89 -0
  14. package/esm2022/lib/services/reactions/types.mjs +2 -0
  15. package/esm2022/lib/version.mjs +2 -2
  16. package/esm2022/public-api.mjs +5 -1
  17. package/fesm2022/valtech-components.mjs +650 -157
  18. package/fesm2022/valtech-components.mjs.map +1 -1
  19. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
  20. package/lib/components/molecules/cta-card/cta-card.component.d.ts +1 -1
  21. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  22. package/lib/components/molecules/load-more/load-more.component.d.ts +1 -1
  23. package/lib/components/molecules/metric-card/metric-card.component.d.ts +1 -1
  24. package/lib/components/molecules/reaction-bar/reaction-bar.component.d.ts +44 -0
  25. package/lib/components/molecules/reaction-bar/types.d.ts +55 -0
  26. package/lib/components/organisms/account-view/account-view.component.d.ts +1 -1
  27. package/lib/components/organisms/article/article.component.d.ts +5 -5
  28. package/lib/components/organisms/auth-cta/auth-cta.component.d.ts +1 -1
  29. package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
  30. package/lib/components/organisms/organization-view/organization-view.component.d.ts +2 -1
  31. package/lib/components/organisms/switch-org-modal/switch-org-modal.component.d.ts +5 -1
  32. package/lib/services/auth/org-switch.service.d.ts +9 -0
  33. package/lib/services/reactions/config.d.ts +20 -0
  34. package/lib/services/reactions/index.d.ts +3 -0
  35. package/lib/services/reactions/reactions.service.d.ts +42 -0
  36. package/lib/services/reactions/types.d.ts +48 -0
  37. package/lib/version.d.ts +1 -1
  38. package/package.json +1 -1
  39. package/public-api.d.ts +3 -0
@@ -1,7 +1,7 @@
1
1
  import { CommonModule, NgTemplateOutlet } from '@angular/common';
2
2
  import { Component, computed, EventEmitter, inject, input, Output } from '@angular/core';
3
3
  import { NavigationEnd, Router, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
4
- import { IonContent, IonIcon, IonItem, IonLabel, IonList, IonMenu, IonMenuToggle, IonRefresher, IonRefresherContent, IonSplitPane, } from '@ionic/angular/standalone';
4
+ import { IonContent, IonIcon, IonItem, IonLabel, IonList, IonRefresher, IonRefresherContent, } from '@ionic/angular/standalone';
5
5
  import { addIcons } from 'ionicons';
6
6
  import { chevronDownCircleOutline } from 'ionicons/icons';
7
7
  import { filter } from 'rxjs';
@@ -164,72 +164,60 @@ export class PageWrapperComponent {
164
164
  }
165
165
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
166
166
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PageWrapperComponent, isStandalone: true, selector: "val-page-wrapper", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onHeaderClick: "onHeaderClick" }, ngImport: i0, template: `
167
- @if (hasSideMenu()) {
168
- <ion-split-pane contentId="val-pw-main" [when]="'md'">
169
- <ion-menu contentId="val-pw-main" type="overlay">
170
- <ion-content>
171
- <ion-list lines="none" class="pw-menu-list">
172
- @for (item of menuItems(); track item.route) {
173
- <ion-menu-toggle [autoHide]="false">
174
- <ion-item
175
- [routerLink]="item.route"
176
- routerLinkActive="pw-menu-active"
177
- [routerLinkActiveOptions]="{ exact: item.exact ?? false }"
178
- lines="none"
179
- >
180
- @if (item.icon) {
181
- <ion-icon [name]="item.icon" slot="start" />
182
- }
183
- <ion-label>{{ item.label }}</ion-label>
184
- </ion-item>
185
- </ion-menu-toggle>
186
- }
187
- </ion-list>
188
- </ion-content>
189
- </ion-menu>
190
- <div class="ion-page" id="val-pw-main">
191
- <ng-container *ngTemplateOutlet="pageContent" />
192
- </div>
193
- </ion-split-pane>
194
- } @else {
195
- <div class="ion-page">
196
- <ng-container *ngTemplateOutlet="pageContent" />
167
+ <div class="ion-page" [class.pw-has-menu]="hasSideMenu()">
168
+ @if (hasSideMenu()) {
169
+ <nav class="pw-sidenav" aria-label="Menú lateral">
170
+ <ion-list lines="none" class="pw-menu-list">
171
+ @for (item of menuItems(); track item.route) {
172
+ <ion-item
173
+ [routerLink]="item.route"
174
+ routerLinkActive="pw-menu-active"
175
+ [routerLinkActiveOptions]="{ exact: item.exact ?? false }"
176
+ lines="none"
177
+ >
178
+ @if (item.icon) {
179
+ <ion-icon [name]="item.icon" slot="start" />
180
+ }
181
+ <ion-label>{{ item.label }}</ion-label>
182
+ </ion-item>
183
+ }
184
+ </ion-list>
185
+ </nav>
186
+ }
187
+ <div class="pw-content">
188
+ <val-header [props]="headerProps()" (onClick)="onHeaderClickHandler($event)" />
189
+ <ion-content
190
+ [id]="contentId()"
191
+ [fullscreen]="true"
192
+ [ngStyle]="{
193
+ '--background': background(),
194
+ }"
195
+ >
196
+ <!-- Pull-to-refresh estándar del factory. Se renderiza sólo cuando la
197
+ página activa registró un handler vía PageRefreshService.
198
+ ion-refresher con slot="fixed" DEBE ser hijo directo de
199
+ ion-content — por eso va aquí crudo, no envuelto en val-refresher. -->
200
+ @if (pageRefresh.hasHandler()) {
201
+ <ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
202
+ <ion-refresher-content
203
+ pullingIcon="chevron-down-circle-outline"
204
+ refreshingSpinner="circular"
205
+ ></ion-refresher-content>
206
+ </ion-refresher>
207
+ }
208
+ <val-network-banner />
209
+ <val-container [props]="{ size: contentMaxWidth() }">
210
+ <main>
211
+ <router-outlet></router-outlet>
212
+ </main>
213
+ </val-container>
214
+ @if (propsFooter()) {
215
+ <val-company-footer [props]="propsFooter()" />
216
+ }
217
+ </ion-content>
197
218
  </div>
198
- }
199
-
200
- <ng-template #pageContent>
201
- <val-header [props]="headerProps()" (onClick)="onHeaderClickHandler($event)" />
202
- <ion-content
203
- [id]="contentId()"
204
- [fullscreen]="true"
205
- [ngStyle]="{
206
- '--background': background(),
207
- }"
208
- >
209
- <!-- Pull-to-refresh estándar del factory. Se renderiza sólo cuando la
210
- página activa registró un handler vía PageRefreshService.
211
- ion-refresher con slot="fixed" DEBE ser hijo directo de
212
- ion-content — por eso va aquí crudo, no envuelto en val-refresher. -->
213
- @if (pageRefresh.hasHandler()) {
214
- <ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
215
- <ion-refresher-content
216
- pullingIcon="chevron-down-circle-outline"
217
- refreshingSpinner="circular"
218
- ></ion-refresher-content>
219
- </ion-refresher>
220
- }
221
- <val-network-banner />
222
- <val-container [props]="{ size: contentMaxWidth() }">
223
- <main>
224
- <router-outlet></router-outlet>
225
- </main>
226
- </val-container>
227
- @if (propsFooter()) {
228
- <val-company-footer [props]="propsFooter()" />
229
- }
230
- </ion-content>
231
- </ng-template>
232
- `, isInline: true, styles: ["main{min-height:60vh;padding-bottom:calc(var(--val-bottom-nav-height, 0px) + env(safe-area-inset-bottom,0px) + 16px)}.pw-menu-list{padding-top:12px}.pw-menu-list ion-item{--border-radius: 10px;--padding-start: 12px;--padding-end: 12px;margin:2px 8px;font-size:.9375rem}.pw-menu-list ion-item.pw-menu-active{--background: var(--ion-color-primary-tint, rgba(var(--ion-color-primary-rgb), .12));--color: var(--ion-color-primary);font-weight:600}.pw-menu-list ion-item.pw-menu-active ion-icon{color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: CompanyFooterComponent, selector: "val-company-footer", inputs: ["props"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSplitPane, selector: "ion-split-pane", inputs: ["contentId", "disabled", "when"] }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: NetworkBannerComponent, selector: "val-network-banner" }] }); }
219
+ </div>
220
+ `, isInline: true, styles: [".ion-page.pw-has-menu{flex-direction:row}.pw-sidenav{width:0;overflow:hidden;flex-shrink:0;border-right:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-background-color);transition:width .25s ease}@media (min-width: 768px){.pw-sidenav{width:220px}}.pw-content{display:flex;flex-direction:column;flex:1;min-width:0;position:relative}main{min-height:60vh;padding-bottom:calc(var(--val-bottom-nav-height, 0px) + env(safe-area-inset-bottom,0px) + 16px)}.pw-menu-list{padding-top:12px}.pw-menu-list ion-item{--border-radius: 10px;--padding-start: 12px;--padding-end: 12px;margin:2px 8px;font-size:.9375rem}.pw-menu-list ion-item.pw-menu-active{--background: rgba(var(--ion-color-primary-rgb, 0, 0, 0), .1);--color: var(--ion-color-primary);font-weight:600}.pw-menu-list ion-item.pw-menu-active ion-icon{color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: CompanyFooterComponent, selector: "val-company-footer", inputs: ["props"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: NetworkBannerComponent, selector: "val-network-banner" }] }); }
233
221
  }
234
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageWrapperComponent, decorators: [{
235
223
  type: Component,
@@ -245,82 +233,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
245
233
  RouterLink,
246
234
  RouterLinkActive,
247
235
  IonContent,
248
- IonSplitPane,
249
- IonMenu,
250
- IonMenuToggle,
251
236
  IonList,
252
237
  IonItem,
253
238
  IonLabel,
254
239
  IonIcon,
255
240
  NetworkBannerComponent,
256
241
  ], template: `
257
- @if (hasSideMenu()) {
258
- <ion-split-pane contentId="val-pw-main" [when]="'md'">
259
- <ion-menu contentId="val-pw-main" type="overlay">
260
- <ion-content>
261
- <ion-list lines="none" class="pw-menu-list">
262
- @for (item of menuItems(); track item.route) {
263
- <ion-menu-toggle [autoHide]="false">
264
- <ion-item
265
- [routerLink]="item.route"
266
- routerLinkActive="pw-menu-active"
267
- [routerLinkActiveOptions]="{ exact: item.exact ?? false }"
268
- lines="none"
269
- >
270
- @if (item.icon) {
271
- <ion-icon [name]="item.icon" slot="start" />
272
- }
273
- <ion-label>{{ item.label }}</ion-label>
274
- </ion-item>
275
- </ion-menu-toggle>
276
- }
277
- </ion-list>
278
- </ion-content>
279
- </ion-menu>
280
- <div class="ion-page" id="val-pw-main">
281
- <ng-container *ngTemplateOutlet="pageContent" />
282
- </div>
283
- </ion-split-pane>
284
- } @else {
285
- <div class="ion-page">
286
- <ng-container *ngTemplateOutlet="pageContent" />
242
+ <div class="ion-page" [class.pw-has-menu]="hasSideMenu()">
243
+ @if (hasSideMenu()) {
244
+ <nav class="pw-sidenav" aria-label="Menú lateral">
245
+ <ion-list lines="none" class="pw-menu-list">
246
+ @for (item of menuItems(); track item.route) {
247
+ <ion-item
248
+ [routerLink]="item.route"
249
+ routerLinkActive="pw-menu-active"
250
+ [routerLinkActiveOptions]="{ exact: item.exact ?? false }"
251
+ lines="none"
252
+ >
253
+ @if (item.icon) {
254
+ <ion-icon [name]="item.icon" slot="start" />
255
+ }
256
+ <ion-label>{{ item.label }}</ion-label>
257
+ </ion-item>
258
+ }
259
+ </ion-list>
260
+ </nav>
261
+ }
262
+ <div class="pw-content">
263
+ <val-header [props]="headerProps()" (onClick)="onHeaderClickHandler($event)" />
264
+ <ion-content
265
+ [id]="contentId()"
266
+ [fullscreen]="true"
267
+ [ngStyle]="{
268
+ '--background': background(),
269
+ }"
270
+ >
271
+ <!-- Pull-to-refresh estándar del factory. Se renderiza sólo cuando la
272
+ página activa registró un handler vía PageRefreshService.
273
+ ion-refresher con slot="fixed" DEBE ser hijo directo de
274
+ ion-content — por eso va aquí crudo, no envuelto en val-refresher. -->
275
+ @if (pageRefresh.hasHandler()) {
276
+ <ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
277
+ <ion-refresher-content
278
+ pullingIcon="chevron-down-circle-outline"
279
+ refreshingSpinner="circular"
280
+ ></ion-refresher-content>
281
+ </ion-refresher>
282
+ }
283
+ <val-network-banner />
284
+ <val-container [props]="{ size: contentMaxWidth() }">
285
+ <main>
286
+ <router-outlet></router-outlet>
287
+ </main>
288
+ </val-container>
289
+ @if (propsFooter()) {
290
+ <val-company-footer [props]="propsFooter()" />
291
+ }
292
+ </ion-content>
287
293
  </div>
288
- }
289
-
290
- <ng-template #pageContent>
291
- <val-header [props]="headerProps()" (onClick)="onHeaderClickHandler($event)" />
292
- <ion-content
293
- [id]="contentId()"
294
- [fullscreen]="true"
295
- [ngStyle]="{
296
- '--background': background(),
297
- }"
298
- >
299
- <!-- Pull-to-refresh estándar del factory. Se renderiza sólo cuando la
300
- página activa registró un handler vía PageRefreshService.
301
- ion-refresher con slot="fixed" DEBE ser hijo directo de
302
- ion-content — por eso va aquí crudo, no envuelto en val-refresher. -->
303
- @if (pageRefresh.hasHandler()) {
304
- <ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
305
- <ion-refresher-content
306
- pullingIcon="chevron-down-circle-outline"
307
- refreshingSpinner="circular"
308
- ></ion-refresher-content>
309
- </ion-refresher>
310
- }
311
- <val-network-banner />
312
- <val-container [props]="{ size: contentMaxWidth() }">
313
- <main>
314
- <router-outlet></router-outlet>
315
- </main>
316
- </val-container>
317
- @if (propsFooter()) {
318
- <val-company-footer [props]="propsFooter()" />
319
- }
320
- </ion-content>
321
- </ng-template>
322
- `, styles: ["main{min-height:60vh;padding-bottom:calc(var(--val-bottom-nav-height, 0px) + env(safe-area-inset-bottom,0px) + 16px)}.pw-menu-list{padding-top:12px}.pw-menu-list ion-item{--border-radius: 10px;--padding-start: 12px;--padding-end: 12px;margin:2px 8px;font-size:.9375rem}.pw-menu-list ion-item.pw-menu-active{--background: var(--ion-color-primary-tint, rgba(var(--ion-color-primary-rgb), .12));--color: var(--ion-color-primary);font-weight:600}.pw-menu-list ion-item.pw-menu-active ion-icon{color:var(--ion-color-primary)}\n"] }]
294
+ </div>
295
+ `, styles: [".ion-page.pw-has-menu{flex-direction:row}.pw-sidenav{width:0;overflow:hidden;flex-shrink:0;border-right:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-background-color);transition:width .25s ease}@media (min-width: 768px){.pw-sidenav{width:220px}}.pw-content{display:flex;flex-direction:column;flex:1;min-width:0;position:relative}main{min-height:60vh;padding-bottom:calc(var(--val-bottom-nav-height, 0px) + env(safe-area-inset-bottom,0px) + 16px)}.pw-menu-list{padding-top:12px}.pw-menu-list ion-item{--border-radius: 10px;--padding-start: 12px;--padding-end: 12px;margin:2px 8px;font-size:.9375rem}.pw-menu-list ion-item.pw-menu-active{--background: rgba(var(--ion-color-primary-rgb, 0, 0, 0), .1);--color: var(--ion-color-primary);font-weight:600}.pw-menu-list ion-item.pw-menu-active ion-icon{color:var(--ion-color-primary)}\n"] }]
323
296
  }], propDecorators: { onHeaderClick: [{
324
297
  type: Output
325
298
  }] } });
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS13cmFwcGVyL3BhZ2Utd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixZQUFZLEdBR2IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThC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RkFxR2Isb0JBQW9CO2tCQTNIaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixZQUFZO3dCQUNaLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixPQUFPO3dCQUNQLHNCQUFzQjtxQkFDdkIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0VUOzhCQWlFUyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgSW9uQ29udGVudCxcbiAgSW9uSWNvbixcbiAgSW9uSXRlbSxcbiAgSW9uTGFiZWwsXG4gIElvbkxpc3QsXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblJlZnJlc2hlcixcbiAgSW9uUmVmcmVzaGVyQ29udGVudCxcbiAgSW9uU3BsaXRQYW5lLFxuICBWaWV3V2lsbEVudGVyLFxuICBWaWV3V2lsbExlYXZlLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkRvd25DaXJjbGVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wYW55Rm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL2NvbXBhbnktZm9vdGVyL2NvbXBhbnktZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250YWluZXJTaXplIH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL3R5cGVzJztcbmltcG9ydCB7IFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IFBhZ2VSZWZyZXNoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtcmVmcmVzaC9wYWdlLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQgeyBQYWdlV3JhcHBlck1ldGFkYXRhLCBTaWRlTmF2SXRlbSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5pbXBvcnQgeyBOZXR3b3JrQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL25ldHdvcmstYmFubmVyL25ldHdvcmstYmFubmVyLmNvbXBvbmVudCc7XG5cbi8vIEljb25vIGRlbCBpbmRpY2Fkb3IgZGUgcHVsbCAoaW9uLXJlZnJlc2hlci1jb250ZW50IHB1bGxpbmdJY29uKS5cbmFkZEljb25zKHsgY2hldnJvbkRvd25DaXJjbGVPdXRsaW5lIH0pO1xuXG4vKipcbiAqIHZhbC1wYWdlLXdyYXBwZXJcbiAqXG4gKiBBIGNvbXBsZXRlIHBhZ2Ugd3JhcHBlciB0ZW1wbGF0ZSB3aXRoIGhlYWRlciwgcm91dGVyIG91dGxldCwgZm9vdGVyLFxuICogYW5kIGF1dG9tYXRpYyBzY3JvbGwtdG8tdG9wIG9uIG5hdmlnYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS13cmFwcGVyXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaG9tZVJvdXRlOiAnLycsXG4gKiAgICAgc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlOiB0cnVlLFxuICogICAgIGZvb3Rlcjoge1xuICogICAgICAgbGlua3M6IHsgLi4uIH0sXG4gKiAgICAgICByaWdodHM6IHsgY29tcGFueU5hbWU6ICdBY21lJyB9XG4gKiAgICAgfVxuICogICB9XCJcbiAqID48L3ZhbC1wYWdlLXdyYXBwZXI+XG4gKlxuICogQGlucHV0IHByb3BzIC0gUGFnZSB3cmFwcGVyIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgb25IZWFkZXJDbGljayAtIEVtaXRzIHdoZW4gYSBoZWFkZXIgYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2Utd3JhcHBlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBIZWFkZXJDb21wb25lbnQsXG4gICAgQ29tcGFueUZvb3RlckNvbXBvbmVudCxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgSW9uUmVmcmVzaGVyLFxuICAgIElvblJlZnJlc2hlckNvbnRlbnQsXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIFJvdXRlckxpbmssXG4gICAgUm91dGVyTGlua0FjdGl2ZSxcbiAgICBJb25Db250ZW50LFxuICAgIElvblNwbGl0UGFuZSxcbiAgICBJb25NZW51LFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uTGlzdCxcbiAgICBJb25JdGVtLFxuICAgIElvbkxhYmVsLFxuICAgIElvbkljb24sXG4gICAgTmV0d29ya0Jhbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGhhc1NpZGVNZW51KCkpIHtcbiAgICAgIDxpb24tc3BsaXQtcGFuZSBjb250ZW50SWQ9XCJ2YWwtcHctbWFpblwiIFt3aGVuXT1cIidtZCdcIj5cbiAgICAgICAgPGlvbi1tZW51IGNvbnRlbnRJZD1cInZhbC1wdy1tYWluXCIgdHlwZT1cIm92ZXJsYXlcIj5cbiAgICAgICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgICAgICA8aW9uLWxpc3QgbGluZXM9XCJub25lXCIgY2xhc3M9XCJwdy1tZW51LWxpc3RcIj5cbiAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtZW51SXRlbXMoKTsgdHJhY2sgaXRlbS5yb3V0ZSkge1xuICAgICAgICAgICAgICAgIDxpb24tbWVudS10b2dnbGUgW2F1dG9IaWRlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJwdy1tZW51LWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBpdGVtLmV4YWN0ID8/IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJpdGVtLmljb25cIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgaXRlbS5sYWJlbCB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgICAgICA8L2lvbi1tZW51LXRvZ2dsZT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgICA8L2lvbi1tZW51PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZ2VcIiBpZD1cInZhbC1wdy1tYWluXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VDb250ZW50XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1zcGxpdC1wYW5lPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWdlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlQ29udGVudFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8bmctdGVtcGxhdGUgI3BhZ2VDb250ZW50PlxuICAgICAgPHZhbC1oZWFkZXIgW3Byb3BzXT1cImhlYWRlclByb3BzKClcIiAob25DbGljayk9XCJvbkhlYWRlckNsaWNrSGFuZGxlcigkZXZlbnQpXCIgLz5cbiAgICAgIDxpb24tY29udGVudFxuICAgICAgICBbaWRdPVwiY29udGVudElkKClcIlxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBiYWNrZ3JvdW5kKCksXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8IS0tIFB1bGwtdG8tcmVmcmVzaCBlc3TDoW5kYXIgZGVsIGZhY3RvcnkuIFNlIHJlbmRlcml6YSBzw7NsbyBjdWFuZG8gbGFcbiAgICAgICAgICAgICBww6FnaW5hIGFjdGl2YSByZWdpc3Ryw7MgdW4gaGFuZGxlciB2w61hIFBhZ2VSZWZyZXNoU2VydmljZS5cbiAgICAgICAgICAgICBpb24tcmVmcmVzaGVyIGNvbiBzbG90PVwiZml4ZWRcIiBERUJFIHNlciBoaWpvIGRpcmVjdG8gZGVcbiAgICAgICAgICAgICBpb24tY29udGVudCDigJQgcG9yIGVzbyB2YSBhcXXDrSBjcnVkbywgbm8gZW52dWVsdG8gZW4gdmFsLXJlZnJlc2hlci4gLS0+XG4gICAgICAgIEBpZiAocGFnZVJlZnJlc2guaGFzSGFuZGxlcigpKSB7XG4gICAgICAgICAgPGlvbi1yZWZyZXNoZXIgc2xvdD1cImZpeGVkXCIgKGlvblJlZnJlc2gpPVwib25QYWdlUmVmcmVzaCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8aW9uLXJlZnJlc2hlci1jb250ZW50XG4gICAgICAgICAgICAgIHB1bGxpbmdJY29uPVwiY2hldnJvbi1kb3duLWNpcmNsZS1vdXRsaW5lXCJcbiAgICAgICAgICAgICAgcmVmcmVzaGluZ1NwaW5uZXI9XCJjaXJjdWxhclwiXG4gICAgICAgICAgICA+PC9pb24tcmVmcmVzaGVyLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24tcmVmcmVzaGVyPlxuICAgICAgICB9XG4gICAgICAgIDx2YWwtbmV0d29yay1iYW5uZXIgLz5cbiAgICAgICAgPHZhbC1jb250YWluZXIgW3Byb3BzXT1cInsgc2l6ZTogY29udGVudE1heFdpZHRoKCkgfVwiPlxuICAgICAgICAgIDxtYWluPlxuICAgICAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgPC92YWwtY29udGFpbmVyPlxuICAgICAgICBAaWYgKHByb3BzRm9vdGVyKCkpIHtcbiAgICAgICAgICA8dmFsLWNvbXBhbnktZm9vdGVyIFtwcm9wc109XCJwcm9wc0Zvb3RlcigpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9pb24tY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICBtYWluIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgICAvKiBSZXNlcnZhIGVzcGFjaW8gcGFyYSBlbCBib3R0b20tbmF2IGZsb2F0aW5nICsgc2FmZS1hcmVhIChpT1MgaG9tZSBpbmRpY2F0b3IpXG4gICAgICAgICArIGJyZWF0aGluZyByb29tICgxNnB4KS4gU2luIGVzdG8sIGVsIMO6bHRpbW8gZWxlbWVudG8gcXVlZGEgdGFwYWRvIHBvclxuICAgICAgICAgZWwgbmF2IGVuIG1vYmlsZS9QV0EuICovXG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS12YWwtYm90dG9tLW5hdi1oZWlnaHQsIDBweCkgKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSArIDE2cHgpO1xuICAgIH1cblxuICAgIC5wdy1tZW51LWxpc3Qge1xuICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgfVxuXG4gICAgLnB3LW1lbnUtbGlzdCBpb24taXRlbSB7XG4gICAgICAtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAtLXBhZGRpbmctc3RhcnQ6IDEycHg7XG4gICAgICAtLXBhZGRpbmctZW5kOiAxMnB4O1xuICAgICAgbWFyZ2luOiAycHggOHB4O1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgfVxuXG4gICAgLnB3LW1lbnUtbGlzdCBpb24taXRlbS5wdy1tZW51LWFjdGl2ZSB7XG4gICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXRpbnQsIHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiKSwgMC4xMikpO1xuICAgICAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG5cbiAgICAucHctbWVudS1saXN0IGlvbi1pdGVtLnB3LW1lbnUtYWN0aXZlIGlvbi1pY29uIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIFZpZXdXaWxsRW50ZXIsIFZpZXdXaWxsTGVhdmUsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB0aGVtZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBCdXMgZGVsIHB1bGwtdG8tcmVmcmVzaCDigJQgbGEgcMOhZ2luYSBhY3RpdmEgcmVnaXN0cmEgc3UgaGFuZGxlciBhcXXDrS4gKi9cbiAgcHJvdGVjdGVkIHBhZ2VSZWZyZXNoID0gaW5qZWN0KFBhZ2VSZWZyZXNoU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXIgZGVsIGdlc3RvIHB1bGwtdG8tcmVmcmVzaCAoYGlvbi1yZWZyZXNoZXJgIGlvblJlZnJlc2gpLiBEZWxlZ2EgZW5cbiAgICogZWwgaGFuZGxlciBxdWUgcmVnaXN0csOzIGxhIHDDoWdpbmEgYWN0aXZhIHkgY2llcnJhIGVsIHNwaW5uZXIgYWwgdGVybWluYXIuXG4gICAqL1xuICBhc3luYyBvblBhZ2VSZWZyZXNoKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2VSZWZyZXNoLnJ1bigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJb25SZWZyZXNoZXJFbGVtZW50IHwgbnVsbCk/LmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhZ2Ugd3JhcHBlciBjb25maWd1cmF0aW9uLlxuICAgKiBTaWduYWwtYmFzZWQgaW5wdXQgZm9yIGZ1bGwgcmVhY3Rpdml0eSB3aXRoIGNvbXB1dGVkKCkuXG4gICAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFBhZ2VXcmFwcGVyTWV0YWRhdGE+KHtcbiAgICBzY3JvbGxUb1RvcE9uTmF2aWdhdGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBoZWFkZXIgY29uZmlndXJhdGlvbiAoY2FjaGVkIHRvIGF2b2lkIGluZmluaXRlIGNoYW5nZSBkZXRlY3Rpb24pLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0SGVhZGVyID0ge1xuICAgIGJvcmRlcmVkOiB0cnVlLFxuICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIHdpdGhCYWNrOiBmYWxzZSxcbiAgICAgIHdpdGhBY3Rpb25zOiB0cnVlLFxuICAgICAgdGV4dENvbG9yOiAnZGFyaycgYXMgY29uc3QsXG4gICAgICB3aXRoTWVudTogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuOiAnaGVhZGVyLWxvZ28nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnIGFzIGNvbnN0LFxuICAgICAgICAgIHR5cGU6ICdJTUFHRScgYXMgY29uc3QsXG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvJyxcbiAgICAgICAgICAgIGFsdDogJ2hlYWRlciBsb2dvJyxcbiAgICAgICAgICAgIG1vZGU6ICdib3gnIGFzIGNvbnN0LFxuICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcgYXMgY29uc3QsXG4gICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGZsZXg6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcblxuICAvLyBDb21wdXRlZCBoZWxwZXJzIGZvciB0ZW1wbGF0ZSBiaW5kaW5nc1xuICBoZWFkZXJQcm9wcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKT8uaGVhZGVyIHx8IHRoaXMuZGVmYXVsdEhlYWRlcik7XG4gIGNvbnRlbnRJZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKT8uY29udGVudElkIHx8ICdwYWdlLXdyYXBwZXInKTtcbiAgcHJvcHNGb290ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCk/LmZvb3Rlcik7XG4gIGNvbnRlbnRNYXhXaWR0aCA9IGNvbXB1dGVkPENvbnRhaW5lclNpemU+KCgpID0+IHRoaXMucHJvcHMoKT8uY29udGVudE1heFdpZHRoID8/ICdmbHVpZCcpO1xuICBtZW51SXRlbXMgPSBjb21wdXRlZDxTaWRlTmF2SXRlbVtdPigoKSA9PiB0aGlzLnByb3BzKCk/Lm1lbnVJdGVtcyA/PyBbXSk7XG4gIGhhc1NpZGVNZW51ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51SXRlbXMoKS5sZW5ndGggPiAwKTtcbiAgYmFja2dyb3VuZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy50aGVtZS5Jc0RhcmspIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJztcbiAgICB9XG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzKCk/LmJhY2tncm91bmQ7XG4gICAgaWYgKCFiZykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZUNvbG9yKGJnKTtcbiAgfSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMoKT8uc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGlvblZpZXdXaWxsTGVhdmUoKTogdm9pZCB7XG4gICAgLy8gT3B0aW9uYWw6IGNhbiBhZGQgbG9naWMgb24gdmlldyBsZWF2ZVxuICB9XG5cbiAgaW9uVmlld1dpbGxFbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgY29udGVudCB0byB0aGUgdG9wLlxuICAgKi9cbiAgcHJpdmF0ZSBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9IHRoaXMucHJvcHMoKT8uY29udGVudElkIHx8ICdwYWdlLXdyYXBwZXInO1xuICAgIGNvbnN0IGlvbkNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtpZH1gKSBhcyBhbnk7XG4gICAgaWYgKGlvbkNvbnRlbnQgJiYgaW9uQ29udGVudC5zY3JvbGxUb1RvcCkge1xuICAgICAgaW9uQ29udGVudC5zY3JvbGxUb1RvcCgzMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBoZWFkZXIgYWN0aW9uIGNsaWNrcy5cbiAgICovXG4gIG9uSGVhZGVyQ2xpY2tIYW5kbGVyKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uSGVhZGVyQ2xpY2suZW1pdCh0b2tlbik7XG5cbiAgICBjb25zdCBob21lUm91dGUgPSB0aGlzLnByb3BzKCk/LmhvbWVSb3V0ZTtcbiAgICBpZiAodG9rZW4gPT09ICdoZWFkZXItbG9nbycgJiYgaG9tZVJvdXRlKSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKGhvbWVSb3V0ZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS13cmFwcGVyL3BhZ2Utd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFlBQVksRUFDWixtQkFBbUIsR0FHcEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixF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QWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixPQUFPO3dCQUNQLHNCQUFzQjtxQkFDdkIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0RUOzhCQThGUyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgSW9uQ29udGVudCxcbiAgSW9uSWNvbixcbiAgSW9uSXRlbSxcbiAgSW9uTGFiZWwsXG4gIElvbkxpc3QsXG4gIElvblJlZnJlc2hlcixcbiAgSW9uUmVmcmVzaGVyQ29udGVudCxcbiAgVmlld1dpbGxFbnRlcixcbiAgVmlld1dpbGxMZWF2ZSxcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Eb3duQ2lyY2xlT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFueUZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9jb21wYW55LWZvb3Rlci9jb21wYW55LWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGFpbmVyU2l6ZSB9IGZyb20gJy4uLy4uL2F0b21zL2NvbnRhaW5lci90eXBlcyc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBQYWdlUmVmcmVzaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wYWdlLXJlZnJlc2gvcGFnZS1yZWZyZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnZVdyYXBwZXJNZXRhZGF0YSwgU2lkZU5hdkl0ZW0gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlc29sdmVDb2xvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuaW1wb3J0IHsgTmV0d29ya0Jhbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9uZXR3b3JrLWJhbm5lci9uZXR3b3JrLWJhbm5lci5jb21wb25lbnQnO1xuXG4vLyBJY29ubyBkZWwgaW5kaWNhZG9yIGRlIHB1bGwgKGlvbi1yZWZyZXNoZXItY29udGVudCBwdWxsaW5nSWNvbikuXG5hZGRJY29ucyh7IGNoZXZyb25Eb3duQ2lyY2xlT3V0bGluZSB9KTtcblxuLyoqXG4gKiB2YWwtcGFnZS13cmFwcGVyXG4gKlxuICogQSBjb21wbGV0ZSBwYWdlIHdyYXBwZXIgdGVtcGxhdGUgd2l0aCBoZWFkZXIsIHJvdXRlciBvdXRsZXQsIGZvb3RlcixcbiAqIGFuZCBhdXRvbWF0aWMgc2Nyb2xsLXRvLXRvcCBvbiBuYXZpZ2F0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXBhZ2Utd3JhcHBlclxuICogICBbcHJvcHNdPVwie1xuICogICAgIGhvbWVSb3V0ZTogJy8nLFxuICogICAgIHNjcm9sbFRvVG9wT25OYXZpZ2F0ZTogdHJ1ZSxcbiAqICAgICBmb290ZXI6IHtcbiAqICAgICAgIGxpbmtzOiB7IC4uLiB9LFxuICogICAgICAgcmlnaHRzOiB7IGNvbXBhbnlOYW1lOiAnQWNtZScgfVxuICogICAgIH1cbiAqICAgfVwiXG4gKiA+PC92YWwtcGFnZS13cmFwcGVyPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIFBhZ2Ugd3JhcHBlciBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG9uSGVhZGVyQ2xpY2sgLSBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wYWdlLXdyYXBwZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIENvbXBhbnlGb290ZXJDb21wb25lbnQsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIElvblJlZnJlc2hlcixcbiAgICBJb25SZWZyZXNoZXJDb250ZW50LFxuICAgIFJvdXRlck91dGxldCxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25MaXN0LFxuICAgIElvbkl0ZW0sXG4gICAgSW9uTGFiZWwsXG4gICAgSW9uSWNvbixcbiAgICBOZXR3b3JrQmFubmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFnZVwiIFtjbGFzcy5wdy1oYXMtbWVudV09XCJoYXNTaWRlTWVudSgpXCI+XG4gICAgICBAaWYgKGhhc1NpZGVNZW51KCkpIHtcbiAgICAgICAgPG5hdiBjbGFzcz1cInB3LXNpZGVuYXZcIiBhcmlhLWxhYmVsPVwiTWVuw7ogbGF0ZXJhbFwiPlxuICAgICAgICAgIDxpb24tbGlzdCBsaW5lcz1cIm5vbmVcIiBjbGFzcz1cInB3LW1lbnUtbGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtZW51SXRlbXMoKTsgdHJhY2sgaXRlbS5yb3V0ZSkge1xuICAgICAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwicHctbWVudS1hY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBpdGVtLmV4YWN0ID8/IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAgIGxpbmVzPVwibm9uZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIml0ZW0uaWNvblwiIHNsb3Q9XCJzdGFydFwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgaXRlbS5sYWJlbCB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvaW9uLWxpc3Q+XG4gICAgICAgIDwvbmF2PlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cInB3LWNvbnRlbnRcIj5cbiAgICAgICAgPHZhbC1oZWFkZXIgW3Byb3BzXT1cImhlYWRlclByb3BzKClcIiAob25DbGljayk9XCJvbkhlYWRlckNsaWNrSGFuZGxlcigkZXZlbnQpXCIgLz5cbiAgICAgICAgPGlvbi1jb250ZW50XG4gICAgICAgICAgW2lkXT1cImNvbnRlbnRJZCgpXCJcbiAgICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnLS1iYWNrZ3JvdW5kJzogYmFja2dyb3VuZCgpLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBQdWxsLXRvLXJlZnJlc2ggZXN0w6FuZGFyIGRlbCBmYWN0b3J5LiBTZSByZW5kZXJpemEgc8OzbG8gY3VhbmRvIGxhXG4gICAgICAgICAgICAgICBww6FnaW5hIGFjdGl2YSByZWdpc3Ryw7MgdW4gaGFuZGxlciB2w61hIFBhZ2VSZWZyZXNoU2VydmljZS5cbiAgICAgICAgICAgICAgIGlvbi1yZWZyZXNoZXIgY29uIHNsb3Q9XCJmaXhlZFwiIERFQkUgc2VyIGhpam8gZGlyZWN0byBkZVxuICAgICAgICAgICAgICAgaW9uLWNvbnRlbnQg4oCUIHBvciBlc28gdmEgYXF1w60gY3J1ZG8sIG5vIGVudnVlbHRvIGVuIHZhbC1yZWZyZXNoZXIuIC0tPlxuICAgICAgICAgIEBpZiAocGFnZVJlZnJlc2guaGFzSGFuZGxlcigpKSB7XG4gICAgICAgICAgICA8aW9uLXJlZnJlc2hlciBzbG90PVwiZml4ZWRcIiAoaW9uUmVmcmVzaCk9XCJvblBhZ2VSZWZyZXNoKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPGlvbi1yZWZyZXNoZXItY29udGVudFxuICAgICAgICAgICAgICAgIHB1bGxpbmdJY29uPVwiY2hldnJvbi1kb3duLWNpcmNsZS1vdXRsaW5lXCJcbiAgICAgICAgICAgICAgICByZWZyZXNoaW5nU3Bpbm5lcj1cImNpcmN1bGFyXCJcbiAgICAgICAgICAgICAgPjwvaW9uLXJlZnJlc2hlci1jb250ZW50PlxuICAgICAgICAgICAgPC9pb24tcmVmcmVzaGVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8dmFsLW5ldHdvcmstYmFubmVyIC8+XG4gICAgICAgICAgPHZhbC1jb250YWluZXIgW3Byb3BzXT1cInsgc2l6ZTogY29udGVudE1heFdpZHRoKCkgfVwiPlxuICAgICAgICAgICAgPG1haW4+XG4gICAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgICA8L3ZhbC1jb250YWluZXI+XG4gICAgICAgICAgQGlmIChwcm9wc0Zvb3RlcigpKSB7XG4gICAgICAgICAgICA8dmFsLWNvbXBhbnktZm9vdGVyIFtwcm9wc109XCJwcm9wc0Zvb3RlcigpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgLyogTGF5b3V0IGNvbiBzaWRlbWVudTogaW9uLXBhZ2UgZW4gcm93LCBzaWRlYmFyIGZpam8gKyBjb250ZW50IGFyZWEgZmxleGlibGUgKi9cbiAgICAuaW9uLXBhZ2UucHctaGFzLW1lbnUge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAucHctc2lkZW5hdiB7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLnB3LXNpZGVuYXYge1xuICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQ29udGVudCBhcmVhOiBmbGV4LWNvbHVtbiwgb2N1cGEgZWwgZXNwYWNpbyByZXN0YW50ZSAqL1xuICAgIC5wdy1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBtYWluIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgICAvKiBSZXNlcnZhIGVzcGFjaW8gcGFyYSBlbCBib3R0b20tbmF2IGZsb2F0aW5nICsgc2FmZS1hcmVhIChpT1MgaG9tZSBpbmRpY2F0b3IpXG4gICAgICAgICArIGJyZWF0aGluZyByb29tICgxNnB4KS4gU2luIGVzdG8sIGVsIMO6bHRpbW8gZWxlbWVudG8gcXVlZGEgdGFwYWRvIHBvclxuICAgICAgICAgZWwgbmF2IGVuIG1vYmlsZS9QV0EuICovXG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS12YWwtYm90dG9tLW5hdi1oZWlnaHQsIDBweCkgKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSArIDE2cHgpO1xuICAgIH1cblxuICAgIC5wdy1tZW51LWxpc3Qge1xuICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgfVxuXG4gICAgLnB3LW1lbnUtbGlzdCBpb24taXRlbSB7XG4gICAgICAtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAtLXBhZGRpbmctc3RhcnQ6IDEycHg7XG4gICAgICAtLXBhZGRpbmctZW5kOiAxMnB4O1xuICAgICAgbWFyZ2luOiAycHggOHB4O1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgfVxuXG4gICAgLnB3LW1lbnUtbGlzdCBpb24taXRlbS5wdy1tZW51LWFjdGl2ZSB7XG4gICAgICAtLWJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiLCAwLCAwLCAwKSwgMC4xKTtcbiAgICAgIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLnB3LW1lbnUtbGlzdCBpb24taXRlbS5wdy1tZW51LWFjdGl2ZSBpb24taWNvbiB7XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZVdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBWaWV3V2lsbEVudGVyLCBWaWV3V2lsbExlYXZlLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgdGhlbWUgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAvKiogQnVzIGRlbCBwdWxsLXRvLXJlZnJlc2gg4oCUIGxhIHDDoWdpbmEgYWN0aXZhIHJlZ2lzdHJhIHN1IGhhbmRsZXIgYXF1w60uICovXG4gIHByb3RlY3RlZCBwYWdlUmVmcmVzaCA9IGluamVjdChQYWdlUmVmcmVzaFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBIYW5kbGVyIGRlbCBnZXN0byBwdWxsLXRvLXJlZnJlc2ggKGBpb24tcmVmcmVzaGVyYCBpb25SZWZyZXNoKS4gRGVsZWdhIGVuXG4gICAqIGVsIGhhbmRsZXIgcXVlIHJlZ2lzdHLDsyBsYSBww6FnaW5hIGFjdGl2YSB5IGNpZXJyYSBlbCBzcGlubmVyIGFsIHRlcm1pbmFyLlxuICAgKi9cbiAgYXN5bmMgb25QYWdlUmVmcmVzaChldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5wYWdlUmVmcmVzaC5ydW4oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW9uUmVmcmVzaGVyRWxlbWVudCB8IG51bGwpPy5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQYWdlIHdyYXBwZXIgY29uZmlndXJhdGlvbi5cbiAgICogU2lnbmFsLWJhc2VkIGlucHV0IGZvciBmdWxsIHJlYWN0aXZpdHkgd2l0aCBjb21wdXRlZCgpLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dDxQYWdlV3JhcHBlck1ldGFkYXRhPih7XG4gICAgc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlOiB0cnVlLFxuICB9KTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIGhlYWRlciBhY3Rpb24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkhlYWRlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgaGVhZGVyIGNvbmZpZ3VyYXRpb24gKGNhY2hlZCB0byBhdm9pZCBpbmZpbml0ZSBjaGFuZ2UgZGV0ZWN0aW9uKS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEhlYWRlciA9IHtcbiAgICBib3JkZXJlZDogdHJ1ZSxcbiAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICB0b29sYmFyOiB7XG4gICAgICB3aXRoQmFjazogZmFsc2UsXG4gICAgICB3aXRoQWN0aW9uczogdHJ1ZSxcbiAgICAgIHRleHRDb2xvcjogJ2RhcmsnIGFzIGNvbnN0LFxuICAgICAgd2l0aE1lbnU6IHRydWUsXG4gICAgICB0aXRsZTogJycsXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0b2tlbjogJ2hlYWRlci1sb2dvJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgcG9zaXRpb246ICdsZWZ0JyBhcyBjb25zdCxcbiAgICAgICAgICB0eXBlOiAnSU1BR0UnIGFzIGNvbnN0LFxuICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgICAgICBzcmM6ICctLW1haW4tbG9nbycsXG4gICAgICAgICAgICBhbHQ6ICdoZWFkZXIgbG9nbycsXG4gICAgICAgICAgICBtb2RlOiAnYm94JyBhcyBjb25zdCxcbiAgICAgICAgICAgIHNoYWRlZDogZmFsc2UsXG4gICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICBzaXplOiAnc21hbGwnIGFzIGNvbnN0LFxuICAgICAgICAgICAgbGltaXRlZDogZmFsc2UsXG4gICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH07XG5cbiAgLy8gQ29tcHV0ZWQgaGVscGVycyBmb3IgdGVtcGxhdGUgYmluZGluZ3NcbiAgaGVhZGVyUHJvcHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCk/LmhlYWRlciB8fCB0aGlzLmRlZmF1bHRIZWFkZXIpO1xuICBjb250ZW50SWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCk/LmNvbnRlbnRJZCB8fCAncGFnZS13cmFwcGVyJyk7XG4gIHByb3BzRm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpPy5mb290ZXIpO1xuICBjb250ZW50TWF4V2lkdGggPSBjb21wdXRlZDxDb250YWluZXJTaXplPigoKSA9PiB0aGlzLnByb3BzKCk/LmNvbnRlbnRNYXhXaWR0aCA/PyAnZmx1aWQnKTtcbiAgbWVudUl0ZW1zID0gY29tcHV0ZWQ8U2lkZU5hdkl0ZW1bXT4oKCkgPT4gdGhpcy5wcm9wcygpPy5tZW51SXRlbXMgPz8gW10pO1xuICBoYXNTaWRlTWVudSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWVudUl0ZW1zKCkubGVuZ3RoID4gMCk7XG4gIGJhY2tncm91bmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMudGhlbWUuSXNEYXJrKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSc7XG4gICAgfVxuICAgIGNvbnN0IGJnID0gdGhpcy5wcm9wcygpPy5iYWNrZ3JvdW5kO1xuICAgIGlmICghYmcpIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJztcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVDb2xvcihiZyk7XG4gIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzKCk/LnNjcm9sbFRvVG9wT25OYXZpZ2F0ZSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBpb25WaWV3V2lsbExlYXZlKCk6IHZvaWQge1xuICAgIC8vIE9wdGlvbmFsOiBjYW4gYWRkIGxvZ2ljIG9uIHZpZXcgbGVhdmVcbiAgfVxuXG4gIGlvblZpZXdXaWxsRW50ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIGNvbnRlbnQgdG8gdGhlIHRvcC5cbiAgICovXG4gIHByaXZhdGUgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgY29uc3QgaWQgPSB0aGlzLnByb3BzKCk/LmNvbnRlbnRJZCB8fCAncGFnZS13cmFwcGVyJztcbiAgICBjb25zdCBpb25Db250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7aWR9YCkgYXMgYW55O1xuICAgIGlmIChpb25Db250ZW50ICYmIGlvbkNvbnRlbnQuc2Nyb2xsVG9Ub3ApIHtcbiAgICAgIGlvbkNvbnRlbnQuc2Nyb2xsVG9Ub3AoMzAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaGVhZGVyIGFjdGlvbiBjbGlja3MuXG4gICAqL1xuICBvbkhlYWRlckNsaWNrSGFuZGxlcih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkhlYWRlckNsaWNrLmVtaXQodG9rZW4pO1xuXG4gICAgY29uc3QgaG9tZVJvdXRlID0gdGhpcy5wcm9wcygpPy5ob21lUm91dGU7XG4gICAgaWYgKHRva2VuID09PSAnaGVhZGVyLWxvZ28nICYmIGhvbWVSb3V0ZSkge1xuICAgICAgdGhpcy5uYXYubmF2aWdhdGVCeVVybChob21lUm91dGUpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -63,10 +63,15 @@ import * as i1 from "./auth.service";
63
63
  * ```
64
64
  */
65
65
  export class OrgSwitchService {
66
+ /** Notify subscribers that the active org's data was updated. */
67
+ notifyOrgDataUpdated(org) {
68
+ this._orgDataUpdated.next(org);
69
+ }
66
70
  constructor(auth) {
67
71
  this.auth = auth;
68
72
  this._switching = signal(false);
69
73
  this._orgChanged = new Subject();
74
+ this._orgDataUpdated = new Subject();
70
75
  /**
71
76
  * `true` while a switch is in flight. UI should disable interactions
72
77
  * with org-scoped data and show a loading indicator.
@@ -80,6 +85,11 @@ export class OrgSwitchService {
80
85
  * see the updated Firebase user / activeOrg claim.
81
86
  */
82
87
  this.orgChanged$ = this._orgChanged.asObservable();
88
+ /**
89
+ * Fires when org data (name, logoUrl, etc.) changes without a full org switch.
90
+ * Subscribe in the app shell to keep the header org avatar up to date.
91
+ */
92
+ this.orgDataUpdated$ = this._orgDataUpdated.asObservable();
83
93
  }
84
94
  /**
85
95
  * Switch the user's active organization.
@@ -134,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
134
144
  type: Injectable,
135
145
  args: [{ providedIn: 'root' }]
136
146
  }], ctorParameters: () => [{ type: i1.AuthService }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLXN3aXRjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBOEIzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyREc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUIzQixZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBbEJwQixlQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFFOUQ7OztXQUdHO1FBQ00sY0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEQ7Ozs7OztXQU1HO1FBQ00sZ0JBQVcsR0FBZ0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU1QyxDQUFDO0lBRXpDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBYSxFQUFFLFVBQTRCLEVBQUU7UUFDMUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFCLCtCQUErQjtZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFdEQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLHFFQUFxRTtRQUNyRSxtQ0FBbUM7UUFDbkMsT0FBTyxDQUNKLElBQTRELEVBQUUsV0FBVztZQUN6RSxJQUE0RCxFQUFFLFNBQVM7WUFDeEUsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDOytHQXZFVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFjdGl2ZSBvcmdhbml6YXRpb24gY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmdDaGFuZ2VkRXZlbnQge1xuICAvKiogT3JnIHRoZSB1c2VyIHdhcyBvbiBiZWZvcmUgdGhlIHN3aXRjaC4gTWF5IGJlIGVtcHR5IG9uIGZpcnN0IHNpZ24taW4uICovXG4gIHByZXZpb3VzT3JnOiBzdHJpbmc7XG4gIC8qKiBPcmcgdGhlIHVzZXIganVzdCBzd2l0Y2hlZCB0by4gKi9cbiAgbmV3T3JnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYE9yZ1N3aXRjaFNlcnZpY2Uuc3dpdGNoVG9gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaE9yZ09wdGlvbnMge1xuICAvKipcbiAgICogSWYgYHRydWVgLCBhZnRlciB0aGUgc3dpdGNoIHN1Y2NlZWRzIHRoZSBwYWdlIGlzIGZ1bGx5IHJlbG9hZGVkIHZpYVxuICAgKiBgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpYC4gVXNlZnVsIGZvciBhcHBzIHdpdGggc2lnbmlmaWNhbnQgaW4tbWVtb3J5XG4gICAqIHN0YXRlIHRpZWQgdG8gdGhlIHByZXZpb3VzIG9yZyB0aGF0J3MgaGFyZCB0byBpbnZhbGlkYXRlIHBpZWNlIGJ5IHBpZWNlLlxuICAgKlxuICAgKiBUcmFkZS1vZmY6IHJlbG9hZCBsb3NlcyBhbGwgaW4tbWVtb3J5IHN0YXRlIChmb3Jtcywgc2Nyb2xsIHBvc2l0aW9uKS5cbiAgICogRGVmYXVsdDogYGZhbHNlYCDigJQgcmVsaWVzIG9uIGBvcmdDaGFuZ2VkJGAgYW5kIGBhdXRoLnVzZXIoKWAgc2lnbmFsXG4gICAqIHByb3BhZ2F0aW9uIGZvciBjb21wb25lbnRzIHRvIHJlYWN0LlxuICAgKi9cbiAgcmVsb2FkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcmdTd2l0Y2hTZXJ2aWNlIOKAlCBvcmNoZXN0cmF0ZXMgYWN0aXZlIG9yZ2FuaXphdGlvbiBjaGFuZ2VzIGFjcm9zcyB0aGUgYXBwLlxuICpcbiAqIEJ1aWx0IG9uIHRvcCBvZiBgQXV0aFNlcnZpY2Uuc3dpdGNoT3JnYCwgd2hpY2ggYWxyZWFkeTpcbiAqIC0gSGl0cyBgUE9TVCAvdjIvYXV0aC9zd2l0Y2gtb3JnYCBhbmQgcmVjZWl2ZXMgYSBuZXcgRmlyZWJhc2UgY3VzdG9tIHRva2VuLlxuICogLSBSZS1hdXRoZW50aWNhdGVzIEZpcmViYXNlIEF1dGggd2l0aCB0aGUgbmV3IHRva2VuIChSQkFDIGNsYWltcyB1cGRhdGUpLlxuICogLSBCcm9hZGNhc3RzIGBPUkdfU1dJVENIYCB0byBvdGhlciB0YWJzIHZpYSBgQXV0aFN5bmNTZXJ2aWNlYCAobXVsdGktdGFiIHN5bmMpLlxuICpcbiAqIFdoYXQgdGhpcyBzZXJ2aWNlIGFkZHMgb24gdG9wOlxuICogLSBBIGBzd2l0Y2hpbmdgIHNpZ25hbCBzbyB0aGUgVUkgY2FuIHNob3cgYSBsb2FkaW5nIGluZGljYXRvciAoMS0ycyBzd2l0Y2gpLlxuICogLSBBbiBgb3JnQ2hhbmdlZCRgIE9ic2VydmFibGUgdGhhdCBjb21wb25lbnRzIHN1YnNjcmliZSB0byBpbiBvcmRlciB0b1xuICogICBpbnZhbGlkYXRlIHRoZWlyIG9yZy1zY29wZWQgY2FjaGVzIChlLmcuIGRyb3Agb2xkIHF1ZXJ5IHJlc3VsdHMsIHJlc2V0XG4gKiAgIHBhZ2Ugc3RhdGUpIHdpdGhvdXQgYSBmdWxsIHBhZ2UgcmVsb2FkLlxuICogLSBPcHRpb25hbCBgcmVsb2FkOiB0cnVlYCBmb3IgYXBwcyB3aGVyZSBpbnZhbGlkYXRpbmcgaW4tbWVtb3J5IHN0YXRlIHBpZWNlXG4gKiAgIGJ5IHBpZWNlIGlzIGltcHJhY3RpY2FsLlxuICpcbiAqICoqV2hhdCB0aGlzIHNlcnZpY2UgZG9lcyBOT1QgZG8gYXV0b21hdGljYWxseToqKlxuICpcbiAqIDEuICoqVGVhcmRvd24gRmlyZXN0b3JlIGxpc3RlbmVycy4qKiBMaXN0ZW5lcnMgYXJlIG93bmVkIGJ5IHRoZWlyIHN1YnNjcmliaW5nXG4gKiAgICBjb21wb25lbnRzICh0eXBpY2FsbHkgdmlhIGB0YWtlVW50aWxEZXN0cm95ZWRgIG9yIGFzeW5jIHBpcGUpLiBXaGVuIHRoZVxuICogICAgY29tcG9uZW50IHJlLXJlbmRlcnMgb3IgdW5zdWJzY3JpYmVzLCB0aGUgbGlzdGVuZXIgZGlzcG9zZXMuIElmIGFcbiAqICAgIGNvbXBvbmVudCBkb2VzIE5PVCB1bnN1YnNjcmliZSBvbiBvcmcgY2hhbmdlLCBpdHMgbGlzdGVuZXIgd2lsbCBrZWVwXG4gKiAgICBwb2ludGluZyBhdCB0aGUgcHJldmlvdXMgb3JnJ3MgcGF0aCBhbmQgbWF5IHN0YXJ0IGZhaWxpbmcgcnVsZXMuIFRoZSBmaXhcbiAqICAgIGlzIGNvbXBvbmVudC1sZXZlbDogc3Vic2NyaWJlIHRvIGBvcmdDaGFuZ2VkJGAgYW5kIHJlc2V0IHN0YXRlLCBvciB1c2VcbiAqICAgIHRoZSBgcmVsb2FkOiB0cnVlYCBvcHRpb24uXG4gKlxuICogMi4gKipSZS1pbnN0YW50aWF0ZSByb3V0ZWQgY29tcG9uZW50cy4qKiBBbmd1bGFyIGtlZXBzIG1vdW50ZWQgY29tcG9uZW50c1xuICogICAgYWxpdmUgYWNyb3NzIG5hdmlnYXRpb25zLiBJZiB5b3UgbmVlZCBmcmVzaCBzdGF0ZSwgZWl0aGVyIHN1YnNjcmliZSB0b1xuICogICAgYG9yZ0NoYW5nZWQkYCBpbiB0aGUgY29tcG9uZW50LCBvciB1c2UgYHJlbG9hZDogdHJ1ZWAuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgc3dpdGNoIHdpdGggbG9hZGluZyBzdGF0ZVxuICogYGBgdHlwZXNjcmlwdFxuICogcHJpdmF0ZSBvcmdTd2l0Y2ggPSBpbmplY3QoT3JnU3dpdGNoU2VydmljZSk7XG4gKlxuICogYXN5bmMgb25Td2l0Y2hPcmcob3JnSWQ6IHN0cmluZykge1xuICogICBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmdJZCk7XG4gKiAgIC8vIENvbXBvbmVudHMgc3Vic2NyaWJlZCB0byBvcmdDaGFuZ2VkJCBoYXZlIGFscmVhZHkgcmVzZXQgdGhlaXIgc3RhdGUuXG4gKiB9XG4gKlxuICogLy8gSW4gdGVtcGxhdGU6XG4gKiBAaWYgKG9yZ1N3aXRjaC5zd2l0Y2hpbmcoKSkgeyA8dmFsLWxvYWRpbmcgLz4gfVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQ29tcG9uZW50IHJlYWN0aW5nIHRvIG9yZyBjaGFuZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByaXZhdGUgb3JnU3dpdGNoID0gaW5qZWN0KE9yZ1N3aXRjaFNlcnZpY2UpO1xuICpcbiAqIGNvbnN0cnVjdG9yKCkge1xuICogICB0aGlzLm9yZ1N3aXRjaC5vcmdDaGFuZ2VkJFxuICogICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICogICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldFN0YXRlKCkpO1xuICogfVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQnJ1dGFsIHJlbG9hZCBtb2RlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmdJZCwgeyByZWxvYWQ6IHRydWUgfSk7XG4gKiAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkg4oCUIGNsZWFuIHNsYXRlLCBsb3NlcyBzY3JvbGwgcG9zaXRpb25cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9yZ1N3aXRjaFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zd2l0Y2hpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vcmdDaGFuZ2VkID0gbmV3IFN1YmplY3Q8T3JnQ2hhbmdlZEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgd2hpbGUgYSBzd2l0Y2ggaXMgaW4gZmxpZ2h0LiBVSSBzaG91bGQgZGlzYWJsZSBpbnRlcmFjdGlvbnNcbiAgICogd2l0aCBvcmctc2NvcGVkIGRhdGEgYW5kIHNob3cgYSBsb2FkaW5nIGluZGljYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IHN3aXRjaGluZyA9IHRoaXMuX3N3aXRjaGluZy5hc1JlYWRvbmx5KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCBzd2l0Y2gsIHdpdGggdGhlIHByZXZpb3VzIGFuZCBuZXcgb3JnIGlkcy5cbiAgICogQ29tcG9uZW50cyBzdWJzY3JpYmUgdG8gaW52YWxpZGF0ZSBjYWNoZXMgLyByZXNldCBzdGF0ZS5cbiAgICpcbiAgICogRmlyZXMgQUZURVIgdGhlIEZpcmViYXNlIHJlLWF1dGggY29tcGxldGVzIOKAlCBsaXN0ZW5lcnMgYXR0YWNoZWQgaGVyZVxuICAgKiBzZWUgdGhlIHVwZGF0ZWQgRmlyZWJhc2UgdXNlciAvIGFjdGl2ZU9yZyBjbGFpbS5cbiAgICovXG4gIHJlYWRvbmx5IG9yZ0NoYW5nZWQkOiBPYnNlcnZhYmxlPE9yZ0NoYW5nZWRFdmVudD4gPSB0aGlzLl9vcmdDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIFN3aXRjaCB0aGUgdXNlcidzIGFjdGl2ZSBvcmdhbml6YXRpb24uXG4gICAqXG4gICAqIFJlLWVudHJhbnQgc2FmZTogd2hpbGUgYSBzd2l0Y2ggaXMgaW4gZmxpZ2h0LCBhZGRpdGlvbmFsIGNhbGxzIGFyZVxuICAgKiByZWplY3RlZCBzaWxlbnRseSAocmV0dXJucyBpbW1lZGlhdGVseSkuIEluc3BlY3QgYHN3aXRjaGluZygpYCB0byBnYXRlIFVJLlxuICAgKlxuICAgKiBAcGFyYW0gb3JnSWQgVGFyZ2V0IG9yZ2FuaXphdGlvbiBpZC4gTXVzdCBiZSBvbmUgdGhlIHVzZXIgaGFzIGEgcm9sZSBpblxuICAgKiAgICAgICAgICAgICAg4oCUIGJhY2tlbmQgcmVqZWN0cyBvdGhlcndpc2Ugd2l0aCBgUEVSTUlTU0lPTl9ERU5JRURgLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBTZWUgYFN3aXRjaE9yZ09wdGlvbnNgLlxuICAgKlxuICAgKiBAdGhyb3dzIFRoZSBlcnJvciBmcm9tIGBhdXRoLnN3aXRjaE9yZ2AgaWYgdGhlIGJhY2tlbmQgY2FsbCBmYWlscy5cbiAgICogICAgICAgICBgc3dpdGNoaW5nYCByZXR1cm5zIHRvIGBmYWxzZWAgYmVmb3JlIHRoZSBlcnJvciBwcm9wYWdhdGVzLlxuICAgKi9cbiAgYXN5bmMgc3dpdGNoVG8ob3JnSWQ6IHN0cmluZywgb3B0aW9uczogU3dpdGNoT3JnT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuX3N3aXRjaGluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNPcmcgPSB0aGlzLmN1cnJlbnRBY3RpdmVPcmcoKTtcbiAgICBpZiAocHJldmlvdXNPcmcgPT09IG9yZ0lkKSB7XG4gICAgICAvLyBOby1vcCDigJQgYWxyZWFkeSBvbiB0aGlzIG9yZy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zd2l0Y2hpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGguc3dpdGNoT3JnKG9yZ0lkKSk7XG4gICAgICB0aGlzLl9vcmdDaGFuZ2VkLm5leHQoeyBwcmV2aW91c09yZywgbmV3T3JnOiBvcmdJZCB9KTtcblxuICAgICAgaWYgKG9wdGlvbnMucmVsb2FkICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc3dpdGNoaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgdGhlIGN1cnJlbnQgYGFjdGl2ZU9yZ2AgZnJvbSB0aGUgYXV0aCB1c2VyIHNpZ25hbC5cbiAgICogRmFsbHMgYmFjayB0byBlbXB0eSBzdHJpbmcgaWYgdGhlIHVzZXIgaXNuJ3QgbG9hZGVkIHlldC5cbiAgICovXG4gIHByaXZhdGUgY3VycmVudEFjdGl2ZU9yZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGgudXNlcigpO1xuICAgIC8vIEF1dGhVc2VyIG1heSBleHBvc2UgYWN0aXZlT3JnSWQgdW5kZXIgZGlmZmVyZW50IG5hbWVzIGRlcGVuZGluZyBvblxuICAgIC8vIGJhY2tlbmQgdmVyc2lvbiDigJQga2VlcCB0b2xlcmFudC5cbiAgICByZXR1cm4gKFxuICAgICAgKHVzZXIgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsKT8uYWN0aXZlT3JnSWQgPz9cbiAgICAgICh1c2VyIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbCk/LmFjdGl2ZU9yZyA/P1xuICAgICAgJydcbiAgICApO1xuICB9XG59XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLXN3aXRjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBK0IzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyREc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEIzQixpRUFBaUU7SUFDakUsb0JBQW9CLENBQUMsR0FBaUI7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQW9CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7UUE5QnBCLGVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBRS9EOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxEOzs7Ozs7V0FNRztRQUNNLGdCQUFXLEdBQWdDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEY7OztXQUdHO1FBQ00sb0JBQWUsR0FBNkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU9qRCxDQUFDO0lBRXpDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBYSxFQUFFLFVBQTRCLEVBQUU7UUFDMUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFCLCtCQUErQjtZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFdEQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLHFFQUFxRTtRQUNyRSxtQ0FBbUM7UUFDbkMsT0FBTyxDQUNKLElBQTRELEVBQUUsV0FBVztZQUN6RSxJQUE0RCxFQUFFLFNBQVM7WUFDeEUsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDOytHQW5GVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uL29yZy90eXBlcyc7XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBhY3RpdmUgb3JnYW5pemF0aW9uIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JnQ2hhbmdlZEV2ZW50IHtcbiAgLyoqIE9yZyB0aGUgdXNlciB3YXMgb24gYmVmb3JlIHRoZSBzd2l0Y2guIE1heSBiZSBlbXB0eSBvbiBmaXJzdCBzaWduLWluLiAqL1xuICBwcmV2aW91c09yZzogc3RyaW5nO1xuICAvKiogT3JnIHRoZSB1c2VyIGp1c3Qgc3dpdGNoZWQgdG8uICovXG4gIG5ld09yZzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBPcmdTd2l0Y2hTZXJ2aWNlLnN3aXRjaFRvYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hPcmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgYWZ0ZXIgdGhlIHN3aXRjaCBzdWNjZWVkcyB0aGUgcGFnZSBpcyBmdWxseSByZWxvYWRlZCB2aWFcbiAgICogYHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKWAuIFVzZWZ1bCBmb3IgYXBwcyB3aXRoIHNpZ25pZmljYW50IGluLW1lbW9yeVxuICAgKiBzdGF0ZSB0aWVkIHRvIHRoZSBwcmV2aW91cyBvcmcgdGhhdCdzIGhhcmQgdG8gaW52YWxpZGF0ZSBwaWVjZSBieSBwaWVjZS5cbiAgICpcbiAgICogVHJhZGUtb2ZmOiByZWxvYWQgbG9zZXMgYWxsIGluLW1lbW9yeSBzdGF0ZSAoZm9ybXMsIHNjcm9sbCBwb3NpdGlvbikuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAg4oCUIHJlbGllcyBvbiBgb3JnQ2hhbmdlZCRgIGFuZCBgYXV0aC51c2VyKClgIHNpZ25hbFxuICAgKiBwcm9wYWdhdGlvbiBmb3IgY29tcG9uZW50cyB0byByZWFjdC5cbiAgICovXG4gIHJlbG9hZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3JnU3dpdGNoU2VydmljZSDigJQgb3JjaGVzdHJhdGVzIGFjdGl2ZSBvcmdhbml6YXRpb24gY2hhbmdlcyBhY3Jvc3MgdGhlIGFwcC5cbiAqXG4gKiBCdWlsdCBvbiB0b3Agb2YgYEF1dGhTZXJ2aWNlLnN3aXRjaE9yZ2AsIHdoaWNoIGFscmVhZHk6XG4gKiAtIEhpdHMgYFBPU1QgL3YyL2F1dGgvc3dpdGNoLW9yZ2AgYW5kIHJlY2VpdmVzIGEgbmV3IEZpcmViYXNlIGN1c3RvbSB0b2tlbi5cbiAqIC0gUmUtYXV0aGVudGljYXRlcyBGaXJlYmFzZSBBdXRoIHdpdGggdGhlIG5ldyB0b2tlbiAoUkJBQyBjbGFpbXMgdXBkYXRlKS5cbiAqIC0gQnJvYWRjYXN0cyBgT1JHX1NXSVRDSGAgdG8gb3RoZXIgdGFicyB2aWEgYEF1dGhTeW5jU2VydmljZWAgKG11bHRpLXRhYiBzeW5jKS5cbiAqXG4gKiBXaGF0IHRoaXMgc2VydmljZSBhZGRzIG9uIHRvcDpcbiAqIC0gQSBgc3dpdGNoaW5nYCBzaWduYWwgc28gdGhlIFVJIGNhbiBzaG93IGEgbG9hZGluZyBpbmRpY2F0b3IgKDEtMnMgc3dpdGNoKS5cbiAqIC0gQW4gYG9yZ0NoYW5nZWQkYCBPYnNlcnZhYmxlIHRoYXQgY29tcG9uZW50cyBzdWJzY3JpYmUgdG8gaW4gb3JkZXIgdG9cbiAqICAgaW52YWxpZGF0ZSB0aGVpciBvcmctc2NvcGVkIGNhY2hlcyAoZS5nLiBkcm9wIG9sZCBxdWVyeSByZXN1bHRzLCByZXNldFxuICogICBwYWdlIHN0YXRlKSB3aXRob3V0IGEgZnVsbCBwYWdlIHJlbG9hZC5cbiAqIC0gT3B0aW9uYWwgYHJlbG9hZDogdHJ1ZWAgZm9yIGFwcHMgd2hlcmUgaW52YWxpZGF0aW5nIGluLW1lbW9yeSBzdGF0ZSBwaWVjZVxuICogICBieSBwaWVjZSBpcyBpbXByYWN0aWNhbC5cbiAqXG4gKiAqKldoYXQgdGhpcyBzZXJ2aWNlIGRvZXMgTk9UIGRvIGF1dG9tYXRpY2FsbHk6KipcbiAqXG4gKiAxLiAqKlRlYXJkb3duIEZpcmVzdG9yZSBsaXN0ZW5lcnMuKiogTGlzdGVuZXJzIGFyZSBvd25lZCBieSB0aGVpciBzdWJzY3JpYmluZ1xuICogICAgY29tcG9uZW50cyAodHlwaWNhbGx5IHZpYSBgdGFrZVVudGlsRGVzdHJveWVkYCBvciBhc3luYyBwaXBlKS4gV2hlbiB0aGVcbiAqICAgIGNvbXBvbmVudCByZS1yZW5kZXJzIG9yIHVuc3Vic2NyaWJlcywgdGhlIGxpc3RlbmVyIGRpc3Bvc2VzLiBJZiBhXG4gKiAgICBjb21wb25lbnQgZG9lcyBOT1QgdW5zdWJzY3JpYmUgb24gb3JnIGNoYW5nZSwgaXRzIGxpc3RlbmVyIHdpbGwga2VlcFxuICogICAgcG9pbnRpbmcgYXQgdGhlIHByZXZpb3VzIG9yZydzIHBhdGggYW5kIG1heSBzdGFydCBmYWlsaW5nIHJ1bGVzLiBUaGUgZml4XG4gKiAgICBpcyBjb21wb25lbnQtbGV2ZWw6IHN1YnNjcmliZSB0byBgb3JnQ2hhbmdlZCRgIGFuZCByZXNldCBzdGF0ZSwgb3IgdXNlXG4gKiAgICB0aGUgYHJlbG9hZDogdHJ1ZWAgb3B0aW9uLlxuICpcbiAqIDIuICoqUmUtaW5zdGFudGlhdGUgcm91dGVkIGNvbXBvbmVudHMuKiogQW5ndWxhciBrZWVwcyBtb3VudGVkIGNvbXBvbmVudHNcbiAqICAgIGFsaXZlIGFjcm9zcyBuYXZpZ2F0aW9ucy4gSWYgeW91IG5lZWQgZnJlc2ggc3RhdGUsIGVpdGhlciBzdWJzY3JpYmUgdG9cbiAqICAgIGBvcmdDaGFuZ2VkJGAgaW4gdGhlIGNvbXBvbmVudCwgb3IgdXNlIGByZWxvYWQ6IHRydWVgLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHN3aXRjaCB3aXRoIGxvYWRpbmcgc3RhdGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByaXZhdGUgb3JnU3dpdGNoID0gaW5qZWN0KE9yZ1N3aXRjaFNlcnZpY2UpO1xuICpcbiAqIGFzeW5jIG9uU3dpdGNoT3JnKG9yZ0lkOiBzdHJpbmcpIHtcbiAqICAgYXdhaXQgdGhpcy5vcmdTd2l0Y2guc3dpdGNoVG8ob3JnSWQpO1xuICogICAvLyBDb21wb25lbnRzIHN1YnNjcmliZWQgdG8gb3JnQ2hhbmdlZCQgaGF2ZSBhbHJlYWR5IHJlc2V0IHRoZWlyIHN0YXRlLlxuICogfVxuICpcbiAqIC8vIEluIHRlbXBsYXRlOlxuICogQGlmIChvcmdTd2l0Y2guc3dpdGNoaW5nKCkpIHsgPHZhbC1sb2FkaW5nIC8+IH1cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIENvbXBvbmVudCByZWFjdGluZyB0byBvcmcgY2hhbmdlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAqXG4gKiBjb25zdHJ1Y3RvcigpIHtcbiAqICAgdGhpcy5vcmdTd2l0Y2gub3JnQ2hhbmdlZCRcbiAqICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAqICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRTdGF0ZSgpKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEJydXRhbCByZWxvYWQgbW9kZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgdGhpcy5vcmdTd2l0Y2guc3dpdGNoVG8ob3JnSWQsIHsgcmVsb2FkOiB0cnVlIH0pO1xuICogLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpIOKAlCBjbGVhbiBzbGF0ZSwgbG9zZXMgc2Nyb2xsIHBvc2l0aW9uXG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBPcmdTd2l0Y2hTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3dpdGNoaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3JnQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PE9yZ0NoYW5nZWRFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3JnRGF0YVVwZGF0ZWQgPSBuZXcgU3ViamVjdDxPcmdhbml6YXRpb24+KCk7XG5cbiAgLyoqXG4gICAqIGB0cnVlYCB3aGlsZSBhIHN3aXRjaCBpcyBpbiBmbGlnaHQuIFVJIHNob3VsZCBkaXNhYmxlIGludGVyYWN0aW9uc1xuICAgKiB3aXRoIG9yZy1zY29wZWQgZGF0YSBhbmQgc2hvdyBhIGxvYWRpbmcgaW5kaWNhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc3dpdGNoaW5nID0gdGhpcy5fc3dpdGNoaW5nLmFzUmVhZG9ubHkoKTtcblxuICAvKipcbiAgICogRmlyZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHN3aXRjaCwgd2l0aCB0aGUgcHJldmlvdXMgYW5kIG5ldyBvcmcgaWRzLlxuICAgKiBDb21wb25lbnRzIHN1YnNjcmliZSB0byBpbnZhbGlkYXRlIGNhY2hlcyAvIHJlc2V0IHN0YXRlLlxuICAgKlxuICAgKiBGaXJlcyBBRlRFUiB0aGUgRmlyZWJhc2UgcmUtYXV0aCBjb21wbGV0ZXMg4oCUIGxpc3RlbmVycyBhdHRhY2hlZCBoZXJlXG4gICAqIHNlZSB0aGUgdXBkYXRlZCBGaXJlYmFzZSB1c2VyIC8gYWN0aXZlT3JnIGNsYWltLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnQ2hhbmdlZCQ6IE9ic2VydmFibGU8T3JnQ2hhbmdlZEV2ZW50PiA9IHRoaXMuX29yZ0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gb3JnIGRhdGEgKG5hbWUsIGxvZ29VcmwsIGV0Yy4pIGNoYW5nZXMgd2l0aG91dCBhIGZ1bGwgb3JnIHN3aXRjaC5cbiAgICogU3Vic2NyaWJlIGluIHRoZSBhcHAgc2hlbGwgdG8ga2VlcCB0aGUgaGVhZGVyIG9yZyBhdmF0YXIgdXAgdG8gZGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9yZ0RhdGFVcGRhdGVkJDogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb24+ID0gdGhpcy5fb3JnRGF0YVVwZGF0ZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqIE5vdGlmeSBzdWJzY3JpYmVycyB0aGF0IHRoZSBhY3RpdmUgb3JnJ3MgZGF0YSB3YXMgdXBkYXRlZC4gKi9cbiAgbm90aWZ5T3JnRGF0YVVwZGF0ZWQob3JnOiBPcmdhbml6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9vcmdEYXRhVXBkYXRlZC5uZXh0KG9yZyk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBTd2l0Y2ggdGhlIHVzZXIncyBhY3RpdmUgb3JnYW5pemF0aW9uLlxuICAgKlxuICAgKiBSZS1lbnRyYW50IHNhZmU6IHdoaWxlIGEgc3dpdGNoIGlzIGluIGZsaWdodCwgYWRkaXRpb25hbCBjYWxscyBhcmVcbiAgICogcmVqZWN0ZWQgc2lsZW50bHkgKHJldHVybnMgaW1tZWRpYXRlbHkpLiBJbnNwZWN0IGBzd2l0Y2hpbmcoKWAgdG8gZ2F0ZSBVSS5cbiAgICpcbiAgICogQHBhcmFtIG9yZ0lkIFRhcmdldCBvcmdhbml6YXRpb24gaWQuIE11c3QgYmUgb25lIHRoZSB1c2VyIGhhcyBhIHJvbGUgaW5cbiAgICogICAgICAgICAgICAgIOKAlCBiYWNrZW5kIHJlamVjdHMgb3RoZXJ3aXNlIHdpdGggYFBFUk1JU1NJT05fREVOSUVEYC5cbiAgICogQHBhcmFtIG9wdGlvbnMgU2VlIGBTd2l0Y2hPcmdPcHRpb25zYC5cbiAgICpcbiAgICogQHRocm93cyBUaGUgZXJyb3IgZnJvbSBgYXV0aC5zd2l0Y2hPcmdgIGlmIHRoZSBiYWNrZW5kIGNhbGwgZmFpbHMuXG4gICAqICAgICAgICAgYHN3aXRjaGluZ2AgcmV0dXJucyB0byBgZmFsc2VgIGJlZm9yZSB0aGUgZXJyb3IgcHJvcGFnYXRlcy5cbiAgICovXG4gIGFzeW5jIHN3aXRjaFRvKG9yZ0lkOiBzdHJpbmcsIG9wdGlvbnM6IFN3aXRjaE9yZ09wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9zd2l0Y2hpbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzT3JnID0gdGhpcy5jdXJyZW50QWN0aXZlT3JnKCk7XG4gICAgaWYgKHByZXZpb3VzT3JnID09PSBvcmdJZCkge1xuICAgICAgLy8gTm8tb3Ag4oCUIGFscmVhZHkgb24gdGhpcyBvcmcuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3dpdGNoaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLnN3aXRjaE9yZyhvcmdJZCkpO1xuICAgICAgdGhpcy5fb3JnQ2hhbmdlZC5uZXh0KHsgcHJldmlvdXNPcmcsIG5ld09yZzogb3JnSWQgfSk7XG5cbiAgICAgIGlmIChvcHRpb25zLnJlbG9hZCAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3N3aXRjaGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBjdXJyZW50IGBhY3RpdmVPcmdgIGZyb20gdGhlIGF1dGggdXNlciBzaWduYWwuXG4gICAqIEZhbGxzIGJhY2sgdG8gZW1wdHkgc3RyaW5nIGlmIHRoZSB1c2VyIGlzbid0IGxvYWRlZCB5ZXQuXG4gICAqL1xuICBwcml2YXRlIGN1cnJlbnRBY3RpdmVPcmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcbiAgICAvLyBBdXRoVXNlciBtYXkgZXhwb3NlIGFjdGl2ZU9yZ0lkIHVuZGVyIGRpZmZlcmVudCBuYW1lcyBkZXBlbmRpbmcgb25cbiAgICAvLyBiYWNrZW5kIHZlcnNpb24g4oCUIGtlZXAgdG9sZXJhbnQuXG4gICAgcmV0dXJuIChcbiAgICAgICh1c2VyIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbCk/LmFjdGl2ZU9yZ0lkID8/XG4gICAgICAodXNlciBhcyB7IGFjdGl2ZU9yZ0lkPzogc3RyaW5nOyBhY3RpdmVPcmc/OiBzdHJpbmcgfSB8IG51bGwpPy5hY3RpdmVPcmcgPz9cbiAgICAgICcnXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { Injectable } from '@angular/core';
7
7
  import { addIcons } from 'ionicons';
8
- import { addCircleOutline, addOutline, alertCircleOutline, alertOutline, arrowBackOutline, bulbOutline, diamondOutline, lockOpenOutline, arrowDownOutline, arrowForwardOutline, businessOutline, calendarOutline, chatbubblesOutline, checkmarkCircleOutline, checkmarkOutline, chevronDownOutline, chevronForwardOutline, clipboardOutline, closeOutline, cloudDownloadOutline, copyOutline, createOutline, desktopOutline, documentTextOutline, ellipsisHorizontalOutline, eyeOffOutline, eyeOutline, filterOutline, heart, heartOutline, home, homeOutline, informationCircleOutline, keyOutline, locationOutline, lockClosedOutline, logOutOutline, cloudOutline, gitBranchOutline, layersOutline, logoFacebook, logoGoogle, logoInstagram, logoLinkedin, logoNpm, logoTiktok, logoTwitter, logoYoutube, serverOutline, notifications, notificationsOutline, openOutline, playOutline, personOutline, phonePortraitOutline, refreshOutline, removeOutline, scanOutline, settings, settingsOutline, shareOutline, shieldCheckmarkOutline, trashOutline, optionsOutline, warningOutline, peopleOutline, cloudUploadOutline, textOutline, } from 'ionicons/icons';
8
+ import { addCircleOutline, addOutline, alertCircleOutline, alertOutline, arrowBackOutline, bulbOutline, diamondOutline, lockOpenOutline, arrowDownOutline, arrowForwardOutline, businessOutline, calendarOutline, chatbubblesOutline, checkmarkCircleOutline, checkmarkOutline, chevronDownOutline, chevronForwardOutline, clipboardOutline, closeOutline, cloudDownloadOutline, copyOutline, createOutline, desktopOutline, documentTextOutline, ellipsisHorizontalOutline, eyeOffOutline, eyeOutline, filterOutline, heart, heartOutline, home, homeOutline, informationCircleOutline, keyOutline, locationOutline, lockClosedOutline, logOutOutline, cloudOutline, gitBranchOutline, layersOutline, logoFacebook, logoGoogle, logoInstagram, logoLinkedin, logoNpm, logoTiktok, logoTwitter, logoYoutube, serverOutline, notifications, notificationsOutline, openOutline, playOutline, personOutline, phonePortraitOutline, refreshOutline, removeOutline, scanOutline, settings, settingsOutline, shareOutline, shieldCheckmarkOutline, trashOutline, optionsOutline, warningOutline, peopleOutline, cloudUploadOutline, textOutline, newspaperOutline, } from 'ionicons/icons';
9
9
  import * as i0 from "@angular/core";
10
10
  export class IconService {
11
11
  /**
@@ -81,6 +81,7 @@ export class IconService {
81
81
  bulbOutline,
82
82
  lockOpenOutline,
83
83
  diamondOutline,
84
+ newspaperOutline,
84
85
  });
85
86
  }
86
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -92,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
92
93
  providedIn: 'root',
93
94
  }]
94
95
  }], ctorParameters: () => [] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvaWNvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFFekM7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNkLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsYUFBYSxFQUNiLFVBQVUsRUFDVixhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixJQUFJLEVBQ0osV0FBVyxFQUNYLHdCQUF3QixFQUN4QixVQUFVLEVBRVYsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2IsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsV0FBVyxFQUNYLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLGVBQWUsRUFDZixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsV0FBVyxHQUNaLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3hCLE1BQU0sT0FBTyxXQUFXO0lBQ3RCOztPQUVHO0lBQ0g7UUFDRSxRQUFRLENBQUM7WUFDUCxVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsUUFBUTtZQUNSLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIseUJBQXlCO1lBQ3pCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLEtBQUs7WUFDTCxZQUFZO1lBQ1osSUFBSTtZQUNKLFdBQVc7WUFDWCxhQUFhO1lBQ2IsVUFBVTtZQUNWLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIscUJBQXFCO1lBQ3JCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGVBQWU7WUFDZixXQUFXO1lBQ1gsYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsVUFBVTtZQUNWLFlBQVk7WUFDWixVQUFVO1lBQ1YsYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLHdCQUF3QjtZQUN4QixPQUFPO1lBQ1AsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLFVBQVU7WUFDVixjQUFjO1lBQ2QsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixhQUFhO1lBQ2IsY0FBYztZQUNkLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBM0VVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cblxuLyoqXG4gKiBTZXJ2aWNlIGZvciByZWdpc3RlcmluZyBhbmQgbWFuYWdpbmcgY3VzdG9tIElvbmljb25zIGljb25zIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEF1dG9tYXRpY2FsbHkgcmVnaXN0ZXJzIGEgc2V0IG9mIGNvbW1vbmx5IHVzZWQgaWNvbnMgb24gaW5pdGlhbGl6YXRpb24uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBhZGRDaXJjbGVPdXRsaW5lLFxuICBhZGRPdXRsaW5lLFxuICBhbGVydENpcmNsZU91dGxpbmUsXG4gIGFsZXJ0T3V0bGluZSxcbiAgYXJyb3dCYWNrT3V0bGluZSxcbiAgYnVsYk91dGxpbmUsXG4gIGRpYW1vbmRPdXRsaW5lLFxuICBsb2NrT3Blbk91dGxpbmUsXG4gIGFycm93RG93bk91dGxpbmUsXG4gIGFycm93Rm9yd2FyZE91dGxpbmUsXG4gIGJ1c2luZXNzT3V0bGluZSxcbiAgY2FsZW5kYXJPdXRsaW5lLFxuICBjaGF0YnViYmxlc091dGxpbmUsXG4gIGNoZWNrbWFya0NpcmNsZU91dGxpbmUsXG4gIGNoZWNrbWFya091dGxpbmUsXG4gIGNoZXZyb25Eb3duT3V0bGluZSxcbiAgY2hldnJvbkZvcndhcmRPdXRsaW5lLFxuICBjbGlwYm9hcmRPdXRsaW5lLFxuICBjbG9zZU91dGxpbmUsXG4gIGNsb3VkRG93bmxvYWRPdXRsaW5lLFxuICBjb3B5T3V0bGluZSxcbiAgY3JlYXRlT3V0bGluZSxcbiAgZGVza3RvcE91dGxpbmUsXG4gIGRvY3VtZW50VGV4dE91dGxpbmUsXG4gIGVsbGlwc2lzSG9yaXpvbnRhbE91dGxpbmUsXG4gIGV5ZU9mZk91dGxpbmUsXG4gIGV5ZU91dGxpbmUsXG4gIGZpbHRlck91dGxpbmUsXG4gIGhlYXJ0LFxuICBoZWFydE91dGxpbmUsXG4gIGhvbWUsXG4gIGhvbWVPdXRsaW5lLFxuICBpbmZvcm1hdGlvbkNpcmNsZU91dGxpbmUsXG4gIGtleU91dGxpbmUsXG4gIGxhcHRvcE91dGxpbmUsXG4gIGxvY2F0aW9uT3V0bGluZSxcbiAgbG9ja0Nsb3NlZE91dGxpbmUsXG4gIGxvZ091dE91dGxpbmUsXG4gIGNsb3VkT3V0bGluZSxcbiAgZ2l0QnJhbmNoT3V0bGluZSxcbiAgbGF5ZXJzT3V0bGluZSxcbiAgbG9nb0ZhY2Vib29rLFxuICBsb2dvR29vZ2xlLFxuICBsb2dvSW5zdGFncmFtLFxuICBsb2dvTGlua2VkaW4sXG4gIGxvZ29OcG0sXG4gIGxvZ29UaWt0b2ssXG4gIGxvZ29Ud2l0dGVyLFxuICBsb2dvWW91dHViZSxcbiAgc2VydmVyT3V0bGluZSxcbiAgbm90aWZpY2F0aW9ucyxcbiAgbm90aWZpY2F0aW9uc091dGxpbmUsXG4gIG9wZW5PdXRsaW5lLFxuICBwbGF5T3V0bGluZSxcbiAgcGVyc29uT3V0bGluZSxcbiAgcGhvbmVQb3J0cmFpdE91dGxpbmUsXG4gIHJlZnJlc2hPdXRsaW5lLFxuICByZW1vdmVPdXRsaW5lLFxuICBzY2FuT3V0bGluZSxcbiAgc2V0dGluZ3MsXG4gIHNldHRpbmdzT3V0bGluZSxcbiAgc2hhcmVPdXRsaW5lLFxuICBzaGllbGRDaGVja21hcmtPdXRsaW5lLFxuICB0cmFzaE91dGxpbmUsXG4gIG9wdGlvbnNPdXRsaW5lLFxuICB3YXJuaW5nT3V0bGluZSxcbiAgcGVvcGxlT3V0bGluZSxcbiAgY2xvdWRVcGxvYWRPdXRsaW5lLFxuICB0ZXh0T3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSWNvblNlcnZpY2Uge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgc2V0IG9mIElvbmljb25zIGljb25zIGZvciB1c2UgdGhyb3VnaG91dCB0aGUgYXBwLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWRkSWNvbnMoe1xuICAgICAgYWRkT3V0bGluZSxcbiAgICAgIGFkZENpcmNsZU91dGxpbmUsXG4gICAgICBhbGVydE91dGxpbmUsXG4gICAgICBhbGVydENpcmNsZU91dGxpbmUsXG4gICAgICBhcnJvd0JhY2tPdXRsaW5lLFxuICAgICAgYXJyb3dGb3J3YXJkT3V0bGluZSxcbiAgICAgIGFycm93RG93bk91dGxpbmUsXG4gICAgICBzZXR0aW5ncyxcbiAgICAgIHNldHRpbmdzT3V0bGluZSxcbiAgICAgIGNoZWNrbWFya0NpcmNsZU91dGxpbmUsXG4gICAgICBlbGxpcHNpc0hvcml6b250YWxPdXRsaW5lLFxuICAgICAgbm90aWZpY2F0aW9ucyxcbiAgICAgIG5vdGlmaWNhdGlvbnNPdXRsaW5lLFxuICAgICAgb3Blbk91dGxpbmUsXG4gICAgICBjbG9zZU91dGxpbmUsXG4gICAgICBjaGF0YnViYmxlc091dGxpbmUsXG4gICAgICBzaGFyZU91dGxpbmUsXG4gICAgICBoZWFydCxcbiAgICAgIGhlYXJ0T3V0bGluZSxcbiAgICAgIGhvbWUsXG4gICAgICBob21lT3V0bGluZSxcbiAgICAgIGV5ZU9mZk91dGxpbmUsXG4gICAgICBleWVPdXRsaW5lLFxuICAgICAgc2Nhbk91dGxpbmUsXG4gICAgICBjaGV2cm9uRG93bk91dGxpbmUsXG4gICAgICBjaGV2cm9uRm9yd2FyZE91dGxpbmUsXG4gICAgICBjaGVja21hcmtPdXRsaW5lLFxuICAgICAgY2xpcGJvYXJkT3V0bGluZSxcbiAgICAgIGNvcHlPdXRsaW5lLFxuICAgICAgZmlsdGVyT3V0bGluZSxcbiAgICAgIGxvY2F0aW9uT3V0bGluZSxcbiAgICAgIGNhbGVuZGFyT3V0bGluZSxcbiAgICAgIGJ1c2luZXNzT3V0bGluZSxcbiAgICAgIGxvZ29Ud2l0dGVyLFxuICAgICAgbG9nb0luc3RhZ3JhbSxcbiAgICAgIGxvZ29MaW5rZWRpbixcbiAgICAgIGxvZ29Zb3V0dWJlLFxuICAgICAgbG9nb1Rpa3RvayxcbiAgICAgIGxvZ29GYWNlYm9vayxcbiAgICAgIGxvZ29Hb29nbGUsXG4gICAgICBjcmVhdGVPdXRsaW5lLFxuICAgICAgdHJhc2hPdXRsaW5lLFxuICAgICAgcGxheU91dGxpbmUsXG4gICAgICBwZW9wbGVPdXRsaW5lLFxuICAgICAgcGhvbmVQb3J0cmFpdE91dGxpbmUsXG4gICAgICByZWZyZXNoT3V0bGluZSxcbiAgICAgIGRvY3VtZW50VGV4dE91dGxpbmUsXG4gICAgICBsb2NrQ2xvc2VkT3V0bGluZSxcbiAgICAgIGNsb3VkVXBsb2FkT3V0bGluZSxcbiAgICAgIHRleHRPdXRsaW5lLFxuICAgICAgaW5mb3JtYXRpb25DaXJjbGVPdXRsaW5lLFxuICAgICAgbG9nb05wbSxcbiAgICAgIHJlbW92ZU91dGxpbmUsXG4gICAgICBvcHRpb25zT3V0bGluZSxcbiAgICAgIHBlcnNvbk91dGxpbmUsXG4gICAgICBzaGllbGRDaGVja21hcmtPdXRsaW5lLFxuICAgICAga2V5T3V0bGluZSxcbiAgICAgIGRlc2t0b3BPdXRsaW5lLFxuICAgICAgbG9nT3V0T3V0bGluZSxcbiAgICAgIGNsb3VkRG93bmxvYWRPdXRsaW5lLFxuICAgICAgY2xvdWRPdXRsaW5lLFxuICAgICAgZ2l0QnJhbmNoT3V0bGluZSxcbiAgICAgIGxheWVyc091dGxpbmUsXG4gICAgICBzZXJ2ZXJPdXRsaW5lLFxuICAgICAgd2FybmluZ091dGxpbmUsXG4gICAgICBidWxiT3V0bGluZSxcbiAgICAgIGxvY2tPcGVuT3V0bGluZSxcbiAgICAgIGRpYW1vbmRPdXRsaW5lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvaWNvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFFekM7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNkLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsYUFBYSxFQUNiLFVBQVUsRUFDVixhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixJQUFJLEVBQ0osV0FBVyxFQUNYLHdCQUF3QixFQUN4QixVQUFVLEVBRVYsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixhQUFhLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2IsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsV0FBVyxFQUNYLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLGVBQWUsRUFDZixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDOztBQUt4QixNQUFNLE9BQU8sV0FBVztJQUN0Qjs7T0FFRztJQUNIO1FBQ0UsUUFBUSxDQUFDO1lBQ1AsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFFBQVE7WUFDUixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLHlCQUF5QjtZQUN6QixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLFdBQVc7WUFDWCxZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLFlBQVk7WUFDWixLQUFLO1lBQ0wsWUFBWTtZQUNaLElBQUk7WUFDSixXQUFXO1lBQ1gsYUFBYTtZQUNiLFVBQVU7WUFDVixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixlQUFlO1lBQ2YsV0FBVztZQUNYLGFBQWE7WUFDYixZQUFZO1lBQ1osV0FBVztZQUNYLFVBQVU7WUFDVixZQUFZO1lBQ1osVUFBVTtZQUNWLGFBQWE7WUFDYixZQUFZO1lBQ1osV0FBVztZQUNYLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLFdBQVc7WUFDWCx3QkFBd0I7WUFDeEIsT0FBTztZQUNQLGFBQWE7WUFDYixjQUFjO1lBQ2QsYUFBYTtZQUNiLHNCQUFzQjtZQUN0QixVQUFVO1lBQ1YsY0FBYztZQUNkLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsYUFBYTtZQUNiLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZUFBZTtZQUNmLGNBQWM7WUFDZCxnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E1RVUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHJlZ2lzdGVyaW5nIGFuZCBtYW5hZ2luZyBjdXN0b20gSW9uaWNvbnMgaWNvbnMgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICogQXV0b21hdGljYWxseSByZWdpc3RlcnMgYSBzZXQgb2YgY29tbW9ubHkgdXNlZCBpY29ucyBvbiBpbml0aWFsaXphdGlvbi5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7XG4gIGFkZENpcmNsZU91dGxpbmUsXG4gIGFkZE91dGxpbmUsXG4gIGFsZXJ0Q2lyY2xlT3V0bGluZSxcbiAgYWxlcnRPdXRsaW5lLFxuICBhcnJvd0JhY2tPdXRsaW5lLFxuICBidWxiT3V0bGluZSxcbiAgZGlhbW9uZE91dGxpbmUsXG4gIGxvY2tPcGVuT3V0bGluZSxcbiAgYXJyb3dEb3duT3V0bGluZSxcbiAgYXJyb3dGb3J3YXJkT3V0bGluZSxcbiAgYnVzaW5lc3NPdXRsaW5lLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGNoYXRidWJibGVzT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrT3V0bGluZSxcbiAgY2hldnJvbkRvd25PdXRsaW5lLFxuICBjaGV2cm9uRm9yd2FyZE91dGxpbmUsXG4gIGNsaXBib2FyZE91dGxpbmUsXG4gIGNsb3NlT3V0bGluZSxcbiAgY2xvdWREb3dubG9hZE91dGxpbmUsXG4gIGNvcHlPdXRsaW5lLFxuICBjcmVhdGVPdXRsaW5lLFxuICBkZXNrdG9wT3V0bGluZSxcbiAgZG9jdW1lbnRUZXh0T3V0bGluZSxcbiAgZWxsaXBzaXNIb3Jpem9udGFsT3V0bGluZSxcbiAgZXllT2ZmT3V0bGluZSxcbiAgZXllT3V0bGluZSxcbiAgZmlsdGVyT3V0bGluZSxcbiAgaGVhcnQsXG4gIGhlYXJ0T3V0bGluZSxcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIGluZm9ybWF0aW9uQ2lyY2xlT3V0bGluZSxcbiAga2V5T3V0bGluZSxcbiAgbGFwdG9wT3V0bGluZSxcbiAgbG9jYXRpb25PdXRsaW5lLFxuICBsb2NrQ2xvc2VkT3V0bGluZSxcbiAgbG9nT3V0T3V0bGluZSxcbiAgY2xvdWRPdXRsaW5lLFxuICBnaXRCcmFuY2hPdXRsaW5lLFxuICBsYXllcnNPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29Hb29nbGUsXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb05wbSxcbiAgbG9nb1Rpa3RvayxcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBzZXJ2ZXJPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgb3Blbk91dGxpbmUsXG4gIHBsYXlPdXRsaW5lLFxuICBwZXJzb25PdXRsaW5lLFxuICBwaG9uZVBvcnRyYWl0T3V0bGluZSxcbiAgcmVmcmVzaE91dGxpbmUsXG4gIHJlbW92ZU91dGxpbmUsXG4gIHNjYW5PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBzaGFyZU91dGxpbmUsXG4gIHNoaWVsZENoZWNrbWFya091dGxpbmUsXG4gIHRyYXNoT3V0bGluZSxcbiAgb3B0aW9uc091dGxpbmUsXG4gIHdhcm5pbmdPdXRsaW5lLFxuICBwZW9wbGVPdXRsaW5lLFxuICBjbG91ZFVwbG9hZE91dGxpbmUsXG4gIHRleHRPdXRsaW5lLFxuICBuZXdzcGFwZXJPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uU2VydmljZSB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBzZXQgb2YgSW9uaWNvbnMgaWNvbnMgZm9yIHVzZSB0aHJvdWdob3V0IHRoZSBhcHAuXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7XG4gICAgICBhZGRPdXRsaW5lLFxuICAgICAgYWRkQ2lyY2xlT3V0bGluZSxcbiAgICAgIGFsZXJ0T3V0bGluZSxcbiAgICAgIGFsZXJ0Q2lyY2xlT3V0bGluZSxcbiAgICAgIGFycm93QmFja091dGxpbmUsXG4gICAgICBhcnJvd0ZvcndhcmRPdXRsaW5lLFxuICAgICAgYXJyb3dEb3duT3V0bGluZSxcbiAgICAgIHNldHRpbmdzLFxuICAgICAgc2V0dGluZ3NPdXRsaW5lLFxuICAgICAgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSxcbiAgICAgIGVsbGlwc2lzSG9yaXpvbnRhbE91dGxpbmUsXG4gICAgICBub3RpZmljYXRpb25zLFxuICAgICAgbm90aWZpY2F0aW9uc091dGxpbmUsXG4gICAgICBvcGVuT3V0bGluZSxcbiAgICAgIGNsb3NlT3V0bGluZSxcbiAgICAgIGNoYXRidWJibGVzT3V0bGluZSxcbiAgICAgIHNoYXJlT3V0bGluZSxcbiAgICAgIGhlYXJ0LFxuICAgICAgaGVhcnRPdXRsaW5lLFxuICAgICAgaG9tZSxcbiAgICAgIGhvbWVPdXRsaW5lLFxuICAgICAgZXllT2ZmT3V0bGluZSxcbiAgICAgIGV5ZU91dGxpbmUsXG4gICAgICBzY2FuT3V0bGluZSxcbiAgICAgIGNoZXZyb25Eb3duT3V0bGluZSxcbiAgICAgIGNoZXZyb25Gb3J3YXJkT3V0bGluZSxcbiAgICAgIGNoZWNrbWFya091dGxpbmUsXG4gICAgICBjbGlwYm9hcmRPdXRsaW5lLFxuICAgICAgY29weU91dGxpbmUsXG4gICAgICBmaWx0ZXJPdXRsaW5lLFxuICAgICAgbG9jYXRpb25PdXRsaW5lLFxuICAgICAgY2FsZW5kYXJPdXRsaW5lLFxuICAgICAgYnVzaW5lc3NPdXRsaW5lLFxuICAgICAgbG9nb1R3aXR0ZXIsXG4gICAgICBsb2dvSW5zdGFncmFtLFxuICAgICAgbG9nb0xpbmtlZGluLFxuICAgICAgbG9nb1lvdXR1YmUsXG4gICAgICBsb2dvVGlrdG9rLFxuICAgICAgbG9nb0ZhY2Vib29rLFxuICAgICAgbG9nb0dvb2dsZSxcbiAgICAgIGNyZWF0ZU91dGxpbmUsXG4gICAgICB0cmFzaE91dGxpbmUsXG4gICAgICBwbGF5T3V0bGluZSxcbiAgICAgIHBlb3BsZU91dGxpbmUsXG4gICAgICBwaG9uZVBvcnRyYWl0T3V0bGluZSxcbiAgICAgIHJlZnJlc2hPdXRsaW5lLFxuICAgICAgZG9jdW1lbnRUZXh0T3V0bGluZSxcbiAgICAgIGxvY2tDbG9zZWRPdXRsaW5lLFxuICAgICAgY2xvdWRVcGxvYWRPdXRsaW5lLFxuICAgICAgdGV4dE91dGxpbmUsXG4gICAgICBpbmZvcm1hdGlvbkNpcmNsZU91dGxpbmUsXG4gICAgICBsb2dvTnBtLFxuICAgICAgcmVtb3ZlT3V0bGluZSxcbiAgICAgIG9wdGlvbnNPdXRsaW5lLFxuICAgICAgcGVyc29uT3V0bGluZSxcbiAgICAgIHNoaWVsZENoZWNrbWFya091dGxpbmUsXG4gICAgICBrZXlPdXRsaW5lLFxuICAgICAgZGVza3RvcE91dGxpbmUsXG4gICAgICBsb2dPdXRPdXRsaW5lLFxuICAgICAgY2xvdWREb3dubG9hZE91dGxpbmUsXG4gICAgICBjbG91ZE91dGxpbmUsXG4gICAgICBnaXRCcmFuY2hPdXRsaW5lLFxuICAgICAgbGF5ZXJzT3V0bGluZSxcbiAgICAgIHNlcnZlck91dGxpbmUsXG4gICAgICB3YXJuaW5nT3V0bGluZSxcbiAgICAgIGJ1bGJPdXRsaW5lLFxuICAgICAgbG9ja09wZW5PdXRsaW5lLFxuICAgICAgZGlhbW9uZE91dGxpbmUsXG4gICAgICBuZXdzcGFwZXJPdXRsaW5lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
2
+ /**
3
+ * Token de inyeccion para la configuracion del servicio de Reactions.
4
+ */
5
+ export const VALTECH_REACTIONS_CONFIG = new InjectionToken('ValtechReactionsConfig');
6
+ /**
7
+ * Provee el servicio de reactions a la aplicacion Angular.
8
+ *
9
+ * @param config - Configuracion de reactions
10
+ * @returns EnvironmentProviders para usar en bootstrapApplication
11
+ *
12
+ * @example
13
+ * bootstrapApplication(AppComponent, {
14
+ * providers: [
15
+ * provideValtechReactions({ apiUrl: environment.apiUrl, appId: 'my-app' }),
16
+ * ],
17
+ * });
18
+ */
19
+ export function provideValtechReactions(config) {
20
+ return makeEnvironmentProviders([{ provide: VALTECH_REACTIONS_CONFIG, useValue: config }]);
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9yZWFjdGlvbnMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9GOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQ3hELHdCQUF3QixDQUN6QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQThCO0lBQ3BFLE9BQU8sd0JBQXdCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsdGVjaFJlYWN0aW9uc0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRva2VuIGRlIGlueWVjY2lvbiBwYXJhIGxhIGNvbmZpZ3VyYWNpb24gZGVsIHNlcnZpY2lvIGRlIFJlYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfUkVBQ1RJT05TX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxWYWx0ZWNoUmVhY3Rpb25zQ29uZmlnPihcbiAgJ1ZhbHRlY2hSZWFjdGlvbnNDb25maWcnXG4pO1xuXG4vKipcbiAqIFByb3ZlZSBlbCBzZXJ2aWNpbyBkZSByZWFjdGlvbnMgYSBsYSBhcGxpY2FjaW9uIEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gZGUgcmVhY3Rpb25zXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVycyBwYXJhIHVzYXIgZW4gYm9vdHN0cmFwQXBwbGljYXRpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVWYWx0ZWNoUmVhY3Rpb25zKHsgYXBpVXJsOiBlbnZpcm9ubWVudC5hcGlVcmwsIGFwcElkOiAnbXktYXBwJyB9KSxcbiAqICAgXSxcbiAqIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hSZWFjdGlvbnMoY29uZmlnOiBWYWx0ZWNoUmVhY3Rpb25zQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFt7IHByb3ZpZGU6IFZBTFRFQ0hfUkVBQ1RJT05TX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XSk7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { VALTECH_REACTIONS_CONFIG, provideValtechReactions } from './config';
2
+ export { ReactionsService } from './reactions.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlYWN0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBWQUxURUNIX1JFQUNUSU9OU19DT05GSUcsIHByb3ZpZGVWYWx0ZWNoUmVhY3Rpb25zIH0gZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0IHsgUmVhY3Rpb25zU2VydmljZSB9IGZyb20gJy4vcmVhY3Rpb25zLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge1xuICBWYWx0ZWNoUmVhY3Rpb25zQ29uZmlnLFxuICBSZWFjdGlvblNldENvbnRleHQsXG4gIFJlYWN0aW9uRGVmaW5pdGlvbixcbiAgUmVhY3Rpb25TZXQsXG4gIFJlYWN0aW9uQ291bnRzLFxuICBSZWFjdFJlcXVlc3QsXG4gIFJlYWN0UmVzcG9uc2UsXG4gIEdldENvdW50c1Jlc3BvbnNlLFxuICBHZXRNeVJlYWN0aW9uc1Jlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcbiJdfQ==