valtech-components 2.0.980 → 2.0.981

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 (47) hide show
  1. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +3 -3
  2. package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
  3. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +3 -3
  4. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
  5. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +3 -3
  6. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +3 -3
  7. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +3 -3
  8. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
  9. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
  10. package/esm2022/lib/components/molecules/comment/comment.component.mjs +3 -3
  11. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +3 -3
  12. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +3 -3
  13. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +3 -3
  14. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +3 -3
  15. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +3 -3
  16. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
  17. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +3 -3
  18. package/esm2022/lib/components/molecules/page-links/page-links.component.mjs +3 -3
  19. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +3 -3
  20. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +3 -3
  21. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
  22. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
  23. package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
  24. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -3
  25. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +3 -3
  26. package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +3 -3
  27. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -3
  28. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +3 -3
  29. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +3 -3
  30. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +3 -3
  31. package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +3 -3
  32. package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +3 -3
  33. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +3 -3
  34. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
  35. package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +3 -3
  36. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
  37. package/esm2022/lib/components/organisms/debug-console/debug-console.component.mjs +2 -2
  38. package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
  39. package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +59 -26
  40. package/esm2022/lib/services/preferences/preferences.service.mjs +3 -2
  41. package/esm2022/lib/version.mjs +2 -2
  42. package/fesm2022/valtech-components.mjs +136 -102
  43. package/fesm2022/valtech-components.mjs.map +1 -1
  44. package/lib/components/organisms/preferences-view/preferences-view.component.d.ts +8 -4
  45. package/lib/version.d.ts +1 -1
  46. package/package.json +1 -1
  47. package/src/lib/components/styles/alert.scss +4 -4
@@ -4,8 +4,8 @@ import { ActivatedRoute } from '@angular/router';
4
4
  import { DisplayComponent } from '../../atoms/display/display.component';
5
5
  import { TextComponent } from '../../atoms/text/text.component';
6
6
  import { TitleComponent } from '../../atoms/title/title.component';
7
+ import { IonSelect, IonSelectOption } from '@ionic/angular/standalone';
7
8
  import { LanguageSelectorComponent } from '../../molecules/language-selector/language-selector.component';
8
- import { SegmentControlComponent } from '../../molecules/segment-control/segment-control.component';
9
9
  import { I18nService } from '../../../services/i18n';
10
10
  import { NavigationService } from '../../../services/navigation/navigation.service';
11
11
  import { PreferencesService } from '../../../services/preferences/preferences.service';
@@ -64,15 +64,12 @@ export class PreferencesViewComponent {
64
64
  this.langHint = computed(() => this.t('languageHint'));
65
65
  this.fontSizeTitle = computed(() => this.t('fontSizeTitle'));
66
66
  this.fontSizeHint = computed(() => this.t('fontSizeHint'));
67
- this.themeProps = computed(() => ({
68
- value: this.prefs.theme(),
69
- disabled: this.saving(),
70
- options: [
71
- { value: 'light', label: this.t('themeLight') },
72
- { value: 'dark', label: this.t('themeDark') },
73
- { value: 'auto', label: this.t('themeAuto') },
74
- ],
75
- }));
67
+ this.themeLight = computed(() => this.t('themeLight'));
68
+ this.themeDark = computed(() => this.t('themeDark'));
69
+ this.themeAuto = computed(() => this.t('themeAuto'));
70
+ this.fontSizeSmall = computed(() => this.t('fontSizeSmall'));
71
+ this.fontSizeMedium = computed(() => this.t('fontSizeMedium'));
72
+ this.fontSizeLarge = computed(() => this.t('fontSizeLarge'));
76
73
  this.langProps = computed(() => ({
77
74
  currentLanguage: this.prefs.language(),
78
75
  availableLanguages: this.resolvedConfig().supportedLanguages,
@@ -81,15 +78,6 @@ export class PreferencesViewComponent {
81
78
  expand: 'block',
82
79
  fill: 'outline',
83
80
  }));
84
- this.fontSizeProps = computed(() => ({
85
- value: this.prefs.fontSize(),
86
- disabled: this.saving(),
87
- options: [
88
- { value: 'small', label: this.t('fontSizeSmall') },
89
- { value: 'medium', label: this.t('fontSizeMedium') },
90
- { value: 'large', label: this.t('fontSizeLarge') },
91
- ],
92
- }));
93
81
  // Auto-registro i18n — respeta override del consumer. El namespace puede
94
82
  // venir de @Input.config o del route data; lo resolvemos acá.
95
83
  const ns = this.ns;
@@ -173,7 +161,18 @@ export class PreferencesViewComponent {
173
161
  content: themeHint(),
174
162
  }"
175
163
  />
176
- <val-segment-control [props]="themeProps()" (segmentChange)="onThemeChange($event)" />
164
+ <ion-select
165
+ [value]="prefs.theme()"
166
+ [disabled]="saving()"
167
+ fill="outline"
168
+ expand="block"
169
+ interface="popover"
170
+ (ionChange)="onThemeChange($event.detail.value)"
171
+ >
172
+ <ion-select-option value="light">{{ themeLight() }}</ion-select-option>
173
+ <ion-select-option value="dark">{{ themeDark() }}</ion-select-option>
174
+ <ion-select-option value="auto">{{ themeAuto() }}</ion-select-option>
175
+ </ion-select>
177
176
  </div>
178
177
  </section>
179
178
  }
@@ -221,18 +220,30 @@ export class PreferencesViewComponent {
221
220
  content: fontSizeHint(),
222
221
  }"
223
222
  />
224
- <val-segment-control [props]="fontSizeProps()" (segmentChange)="onFontSizeChange($event)" />
223
+ <ion-select
224
+ [value]="prefs.fontSize()"
225
+ [disabled]="saving()"
226
+ fill="outline"
227
+ expand="block"
228
+ interface="popover"
229
+ (ionChange)="onFontSizeChange($event.detail.value)"
230
+ >
231
+ <ion-select-option value="small">{{ fontSizeSmall() }}</ion-select-option>
232
+ <ion-select-option value="medium">{{ fontSizeMedium() }}</ion-select-option>
233
+ <ion-select-option value="large">{{ fontSizeLarge() }}</ion-select-option>
234
+ </ion-select>
225
235
  </div>
226
236
  </section>
227
237
  }
228
238
  </div>
229
- `, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SegmentControlComponent, selector: "val-segment-control", inputs: ["preset", "props"], outputs: ["segmentChange"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
239
+ `, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
230
240
  }
231
241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesViewComponent, decorators: [{
232
242
  type: Component,
233
243
  args: [{ selector: 'val-preferences-view', standalone: true, imports: [
234
244
  CommonModule,
235
- SegmentControlComponent,
245
+ IonSelect,
246
+ IonSelectOption,
236
247
  LanguageSelectorComponent,
237
248
  DisplayComponent,
238
249
  TitleComponent,
@@ -270,7 +281,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
270
281
  content: themeHint(),
271
282
  }"
272
283
  />
273
- <val-segment-control [props]="themeProps()" (segmentChange)="onThemeChange($event)" />
284
+ <ion-select
285
+ [value]="prefs.theme()"
286
+ [disabled]="saving()"
287
+ fill="outline"
288
+ expand="block"
289
+ interface="popover"
290
+ (ionChange)="onThemeChange($event.detail.value)"
291
+ >
292
+ <ion-select-option value="light">{{ themeLight() }}</ion-select-option>
293
+ <ion-select-option value="dark">{{ themeDark() }}</ion-select-option>
294
+ <ion-select-option value="auto">{{ themeAuto() }}</ion-select-option>
295
+ </ion-select>
274
296
  </div>
275
297
  </section>
276
298
  }
@@ -318,7 +340,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
318
340
  content: fontSizeHint(),
319
341
  }"
320
342
  />
321
- <val-segment-control [props]="fontSizeProps()" (segmentChange)="onFontSizeChange($event)" />
343
+ <ion-select
344
+ [value]="prefs.fontSize()"
345
+ [disabled]="saving()"
346
+ fill="outline"
347
+ expand="block"
348
+ interface="popover"
349
+ (ionChange)="onFontSizeChange($event.detail.value)"
350
+ >
351
+ <ion-select-option value="small">{{ fontSizeSmall() }}</ion-select-option>
352
+ <ion-select-option value="medium">{{ fontSizeMedium() }}</ion-select-option>
353
+ <ion-select-option value="large">{{ fontSizeLarge() }}</ion-select-option>
354
+ </ion-select>
322
355
  </div>
323
356
  </section>
324
357
  }
@@ -327,4 +360,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
327
360
  }], ctorParameters: () => [], propDecorators: { config: [{
328
361
  type: Input
329
362
  }] } });
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRTFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBR3BHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU12RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFaEUsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FB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QUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQscUNBQXFDO0lBQzNCLENBQUMsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXhJVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw4R0E1R3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNGVCw4VEE3RkMsWUFBWSwrQkFDWix1QkFBdUIseUhBQ3ZCLHlCQUF5QixrSEFDekIsZ0JBQWdCLDJFQUNoQixjQUFjLHlFQUNkLGFBQWE7OzRGQThHSix3QkFBd0I7a0JBdkhwQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7cUJBQ2QsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRlQ7d0RBa0NRLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmltcG9ydCB7IFNlZ21lbnRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlZ21lbnQtY29udHJvbC9zZWdtZW50LWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IFNlZ21lbnRDb250cm9sTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VnbWVudC1jb250cm9sL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0ZvbnRTaXplLFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy50eXBlcyc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFByZWZlcmVuY2VzVmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUFJFRkVSRU5DRVNfVklFV19JMThOIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy12aWV3LmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5HZW5lcmFsJztcbmNvbnN0IERFRkFVTFRfTEFOR1VBR0VTOiBQcmVmZXJlbmNlc0xhbmd1YWdlW10gPSBbJ2VzJywgJ2VuJ107XG5cbi8qKlxuICogYHZhbC1wcmVmZXJlbmNlcy12aWV3YCDigJQgdmlzdGEgZGUgcHJlZmVyZW5jaWFzIGRlIFVJIGNyb3NzLWFwcCAodGVtYSArXG4gKiBpZGlvbWEpIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgXG4gKiBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqXG4gKiBCYWNrZW5kIGludGVncmF0aW9uIDEwMCUgZW4gYFByZWZlcmVuY2VzU2VydmljZWA6XG4gKiAgLSBSZWFkOiBsaXN0ZW5lciBGaXJlc3RvcmUgcmVhY3Rpdm8gKGBwcmVmcy50aGVtZSgpYCAvIGBwcmVmcy5sYW5ndWFnZSgpYCkuXG4gKiAgLSBXcml0ZTogYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGBwcmVmcy5zZXRUaGVtZWAgLyBgcHJlZnMuc2V0TGFuZ3VhZ2VgKS5cbiAqICAgIEVsIGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0by5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIHZhbC1wYWdlLXdyYXBwZXIuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGVsIGNvbnN0cnVjdG9yIHNpIGVsIGNvbnN1bWVyIG5vXG4gKiBwcm92ZXnDsyBlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8gKGRlZmF1bHQgYFNldHRpbmdzLkdlbmVyYWxgKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXByZWZlcmVuY2VzLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNlZ21lbnRDb250cm9sQ29tcG9uZW50LFxuICAgIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1RoZW1lKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiB0aGVtZVRpdGxlKCksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhlbWVIaW50KCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtc2VnbWVudC1jb250cm9sIFtwcm9wc109XCJ0aGVtZVByb3BzKClcIiAoc2VnbWVudENoYW5nZSk9XCJvblRoZW1lQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93TGFuZ3VhZ2UpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGxhbmdUaXRsZSgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGxhbmdIaW50KCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmdQcm9wcygpXCIgKGxhbmd1YWdlQ2hhbmdlKT1cIm9uTGFuZ3VhZ2VDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dGb250U2l6ZSkge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogZm9udFNpemVUaXRsZSgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGZvbnRTaXplSGludCgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLXNlZ21lbnQtY29udHJvbCBbcHJvcHNdPVwiZm9udFNpemVQcm9wcygpXCIgKHNlZ21lbnRDaGFuZ2UpPVwib25Gb250U2l6ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwcmVmcyA9IGluamVjdChQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgcHJlZmVyZW5jZXNDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hQcmVmZXJlbmNlc1JvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogUHJlZmVyZW5jZXNWaWV3Q29uZmlnO1xuXG4gIC8qKiBDb25maWcgbWVyZ2VhZGEgY29uIGRlZmF1bHRzLiBASW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLiAqL1xuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFxuICAgIFJlcXVpcmVkPE9taXQ8UHJlZmVyZW5jZXNWaWV3Q29uZmlnLCAnb25UaGVtZUNoYW5nZWQnIHwgJ29uTGFuZ3VhZ2VDaGFuZ2VkJyB8ICdvbkZvbnRTaXplQ2hhbmdlZCc+PiAmXG4gICAgICBQaWNrPFByZWZlcmVuY2VzVmlld0NvbmZpZywgJ29uVGhlbWVDaGFuZ2VkJyB8ICdvbkxhbmd1YWdlQ2hhbmdlZCcgfCAnb25Gb250U2l6ZUNoYW5nZWQnPlxuICA+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsncHJlZmVyZW5jZXNDb25maWcnXSA/PyB7fSkgYXMgUHJlZmVyZW5jZXNWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogUHJlZmVyZW5jZXNWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1RoZW1lOiBtZXJnZWQuc2hvd1RoZW1lID8/IHRydWUsXG4gICAgICBzaG93TGFuZ3VhZ2U6IG1lcmdlZC5zaG93TGFuZ3VhZ2UgPz8gdHJ1ZSxcbiAgICAgIHNob3dGb250U2l6ZTogbWVyZ2VkLnNob3dGb250U2l6ZSA/PyB0cnVlLFxuICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBtZXJnZWQuc3VwcG9ydGVkTGFuZ3VhZ2VzID8/IERFRkFVTFRfTEFOR1VBR0VTLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICBvblRoZW1lQ2hhbmdlZDogbWVyZ2VkLm9uVGhlbWVDaGFuZ2VkLFxuICAgICAgb25MYW5ndWFnZUNoYW5nZWQ6IG1lcmdlZC5vbkxhbmd1YWdlQ2hhbmdlZCxcbiAgICAgIG9uRm9udFNpemVDaGFuZ2VkOiBtZXJnZWQub25Gb250U2l6ZUNoYW5nZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IHNhdmluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcGFnZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdwYWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBhZ2VEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgncGFnZURlc2NyaXB0aW9uJykpO1xuICByZWFkb25seSB0aGVtZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZVRpdGxlJykpO1xuICByZWFkb25seSB0aGVtZUhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lSGludCcpKTtcbiAgcmVhZG9ubHkgbGFuZ1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdsYW5ndWFnZVRpdGxlJykpO1xuICByZWFkb25seSBsYW5nSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnbGFuZ3VhZ2VIaW50JykpO1xuICByZWFkb25seSBmb250U2l6ZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdmb250U2l6ZVRpdGxlJykpO1xuICByZWFkb25seSBmb250U2l6ZUhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplSGludCcpKTtcblxuICByZWFkb25seSB0aGVtZVByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxTZWdtZW50Q29udHJvbE1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB2YWx1ZTogdGhpcy5wcmVmcy50aGVtZSgpLFxuICAgIGRpc2FibGVkOiB0aGlzLnNhdmluZygpLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdsaWdodCcsIGxhYmVsOiB0aGlzLnQoJ3RoZW1lTGlnaHQnKSB9LFxuICAgICAgeyB2YWx1ZTogJ2RhcmsnLCBsYWJlbDogdGhpcy50KCd0aGVtZURhcmsnKSB9LFxuICAgICAgeyB2YWx1ZTogJ2F1dG8nLCBsYWJlbDogdGhpcy50KCd0aGVtZUF1dG8nKSB9LFxuICAgIF0sXG4gIH0pKTtcblxuICByZWFkb25seSBsYW5nUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY3VycmVudExhbmd1YWdlOiB0aGlzLnByZWZzLmxhbmd1YWdlKCksXG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgZXhwYW5kOiAnYmxvY2snLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGZvbnRTaXplUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPFNlZ21lbnRDb250cm9sTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHZhbHVlOiB0aGlzLnByZWZzLmZvbnRTaXplKCksXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ3NtYWxsJywgbGFiZWw6IHRoaXMudCgnZm9udFNpemVTbWFsbCcpIH0sXG4gICAgICB7IHZhbHVlOiAnbWVkaXVtJywgbGFiZWw6IHRoaXMudCgnZm9udFNpemVNZWRpdW0nKSB9LFxuICAgICAgeyB2YWx1ZTogJ2xhcmdlJywgbGFiZWw6IHRoaXMudCgnZm9udFNpemVMYXJnZScpIH0sXG4gICAgXSxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gaTE4biDigJQgcmVzcGV0YSBvdmVycmlkZSBkZWwgY29uc3VtZXIuIEVsIG5hbWVzcGFjZSBwdWVkZVxuICAgIC8vIHZlbmlyIGRlIEBJbnB1dC5jb25maWcgbyBkZWwgcm91dGUgZGF0YTsgbG8gcmVzb2x2ZW1vcyBhY8OhLlxuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBQUkVGRVJFTkNFU19WSUVXX0kxOE4pO1xuICAgIH1cblxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgb25UaGVtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMudGhlbWUoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHRoZW1lID0gdmFsdWUgYXMgUHJlZmVyZW5jZXNUaGVtZTtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRUaGVtZSh0aGVtZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25UaGVtZUNoYW5nZWQ/Lih0aGVtZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25Gb250U2l6ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9udFNpemUgPSB2YWx1ZSBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplO1xuICAgIGlmICh0aGlzLnNhdmluZygpIHx8IHZhbHVlID09PSB0aGlzLnByZWZzLmZvbnRTaXplKCkpIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRGb250U2l6ZShmb250U2l6ZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Gb250U2l6ZUNoYW5nZWQ/Lihmb250U2l6ZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25MYW5ndWFnZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZyA9IHZhbHVlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2U7XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMubGFuZ3VhZ2UoKSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goXG4gICAgICAoKSA9PiB0aGlzLnByZWZzLnNldExhbmd1YWdlKGxhbmcpLFxuICAgICAgKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uTGFuZ3VhZ2VDaGFuZ2VkPy4obGFuZylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkaXNwYXRjaChmbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPiwgb25TdWNjZXNzPzogKCkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2F2aW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZm4oKTtcbiAgICAgIG9uU3VjY2Vzcz8uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZXR0aW5ncy5wcmVmZXJlbmNlcy5zYXZlJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzYXZlRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIExlZSBkZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvLiAqL1xuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBTXZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVoRSxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQTBCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTlEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBK0lILE1BQU0sT0FBTyx3QkFBd0I7SUFpQ25DLHNFQUFzRTtJQUN0RSxJQUFZLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQTRCRDtRQS9EUSxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFTM0Qsa0VBQWtFO1FBQ3pELG1CQUFjLEdBQUcsUUFBUSxDQUdoQyxHQUFHLEVBQUU7WUFDTCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBMEIsQ0FBQztZQUNsRyxNQUFNLE1BQU0sR0FBMEIsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQy9FLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSTtnQkFDbkMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtnQkFDekMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtnQkFDekMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixJQUFJLGlCQUFpQjtnQkFDbEUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLElBQUksaUJBQWlCO2dCQUN4RCxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7Z0JBQ3JDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7Z0JBQzNDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7YUFDNUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBT00sV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUM1RCxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNwRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3RELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2hELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFeEQsY0FBUyxHQUFHLFFBQVEsQ0FBb0MsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RSxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDdEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGtCQUFrQjtZQUM1RCxTQUFTLEVBQUUsS0FBSztZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBR0YseUVBQXlFO1FBQ3pFLDhEQUE4RDtRQUM5RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBYTtRQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFBRSxPQUFPO1FBQzFELE1BQU0sS0FBSyxHQUFHLEtBQXlCLENBQUM7UUFDeEMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUNqQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDaEMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQTRCLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM3RCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQ2pCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUN0QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNsQyxNQUFNLElBQUksR0FBRyxLQUE0QixDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFDckUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM3RCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQ2pCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUNsQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQTBCLEVBQUUsU0FBc0I7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUU7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDM0IsQ0FBQyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBMUhVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDhHQWxJekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVCw4VEFwSEMsWUFBWSwrQkFDWixTQUFTLGtWQUNULGVBQWUsNkZBQ2YseUJBQXlCLGtIQUN6QixnQkFBZ0IsMkVBQ2hCLGNBQWMseUVBQ2QsYUFBYTs7NEZBb0lKLHdCQUF3QjtrQkE5SXBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxhQUFhO3FCQUNkLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVDt3REFrQ1EsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJb25TZWxlY3QsIElvblNlbGVjdE9wdGlvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0ZvbnRTaXplLFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy50eXBlcyc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFByZWZlcmVuY2VzVmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUFJFRkVSRU5DRVNfVklFV19JMThOIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy12aWV3LmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5HZW5lcmFsJztcbmNvbnN0IERFRkFVTFRfTEFOR1VBR0VTOiBQcmVmZXJlbmNlc0xhbmd1YWdlW10gPSBbJ2VzJywgJ2VuJ107XG5cbi8qKlxuICogYHZhbC1wcmVmZXJlbmNlcy12aWV3YCDigJQgdmlzdGEgZGUgcHJlZmVyZW5jaWFzIGRlIFVJIGNyb3NzLWFwcCAodGVtYSArXG4gKiBpZGlvbWEpIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgXG4gKiBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqXG4gKiBCYWNrZW5kIGludGVncmF0aW9uIDEwMCUgZW4gYFByZWZlcmVuY2VzU2VydmljZWA6XG4gKiAgLSBSZWFkOiBsaXN0ZW5lciBGaXJlc3RvcmUgcmVhY3Rpdm8gKGBwcmVmcy50aGVtZSgpYCAvIGBwcmVmcy5sYW5ndWFnZSgpYCkuXG4gKiAgLSBXcml0ZTogYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGBwcmVmcy5zZXRUaGVtZWAgLyBgcHJlZnMuc2V0TGFuZ3VhZ2VgKS5cbiAqICAgIEVsIGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0by5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIHZhbC1wYWdlLXdyYXBwZXIuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGVsIGNvbnN0cnVjdG9yIHNpIGVsIGNvbnN1bWVyIG5vXG4gKiBwcm92ZXnDsyBlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8gKGRlZmF1bHQgYFNldHRpbmdzLkdlbmVyYWxgKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXByZWZlcmVuY2VzLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvblNlbGVjdCxcbiAgICBJb25TZWxlY3RPcHRpb24sXG4gICAgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogcGFnZVRpdGxlKCkgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHBhZ2VEZXNjcmlwdGlvbigpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93VGhlbWUpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHRoZW1lVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGVtZUhpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlvbi1zZWxlY3RcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZzLnRoZW1lKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nKClcIlxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICAgICAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25UaGVtZUNoYW5nZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiB2YWx1ZT1cImxpZ2h0XCI+e3sgdGhlbWVMaWdodCgpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiZGFya1wiPnt7IHRoZW1lRGFyaygpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiYXV0b1wiPnt7IHRoZW1lQXV0bygpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0xhbmd1YWdlKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiBsYW5nVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBsYW5nSGludCgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLWxhbmd1YWdlLXNlbGVjdG9yIFtwcm9wc109XCJsYW5nUHJvcHMoKVwiIChsYW5ndWFnZUNoYW5nZSk9XCJvbkxhbmd1YWdlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93Rm9udFNpemUpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGZvbnRTaXplVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb250U2l6ZUhpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlvbi1zZWxlY3RcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZzLmZvbnRTaXplKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nKClcIlxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICAgICAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25Gb250U2l6ZUNoYW5nZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+e3sgZm9udFNpemVTbWFsbCgpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwibWVkaXVtXCI+e3sgZm9udFNpemVNZWRpdW0oKSB9fTwvaW9uLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+e3sgZm9udFNpemVMYXJnZSgpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHByZWZzID0gaW5qZWN0KFByZWZlcmVuY2VzU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwcmVmZXJlbmNlc0NvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFByZWZlcmVuY2VzUm91dGVzYCkuXG4gICAqIGByZXNvbHZlZENvbmZpZ2AgbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG5cbiAgLyoqIENvbmZpZyBtZXJnZWFkYSBjb24gZGVmYXVsdHMuIEBJbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuICovXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxQcmVmZXJlbmNlc1ZpZXdDb25maWcsICdvblRoZW1lQ2hhbmdlZCcgfCAnb25MYW5ndWFnZUNoYW5nZWQnIHwgJ29uRm9udFNpemVDaGFuZ2VkJz4+ICZcbiAgICAgIFBpY2s8UHJlZmVyZW5jZXNWaWV3Q29uZmlnLCAnb25UaGVtZUNoYW5nZWQnIHwgJ29uTGFuZ3VhZ2VDaGFuZ2VkJyB8ICdvbkZvbnRTaXplQ2hhbmdlZCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydwcmVmZXJlbmNlc0NvbmZpZyddID8/IHt9KSBhcyBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBQcmVmZXJlbmNlc1ZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93VGhlbWU6IG1lcmdlZC5zaG93VGhlbWUgPz8gdHJ1ZSxcbiAgICAgIHNob3dMYW5ndWFnZTogbWVyZ2VkLnNob3dMYW5ndWFnZSA/PyB0cnVlLFxuICAgICAgc2hvd0ZvbnRTaXplOiBtZXJnZWQuc2hvd0ZvbnRTaXplID8/IHRydWUsXG4gICAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IG1lcmdlZC5zdXBwb3J0ZWRMYW5ndWFnZXMgPz8gREVGQVVMVF9MQU5HVUFHRVMsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgIG9uVGhlbWVDaGFuZ2VkOiBtZXJnZWQub25UaGVtZUNoYW5nZWQsXG4gICAgICBvbkxhbmd1YWdlQ2hhbmdlZDogbWVyZ2VkLm9uTGFuZ3VhZ2VDaGFuZ2VkLFxuICAgICAgb25Gb250U2l6ZUNoYW5nZWQ6IG1lcmdlZC5vbkZvbnRTaXplQ2hhbmdlZCxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3BhZ2VUaXRsZScpKTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdwYWdlRGVzY3JpcHRpb24nKSk7XG4gIHJlYWRvbmx5IHRoZW1lVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHRoZW1lSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgndGhlbWVIaW50JykpO1xuICByZWFkb25seSBsYW5nVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2xhbmd1YWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGxhbmdIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdsYW5ndWFnZUhpbnQnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnZm9udFNpemVIaW50JykpO1xuICByZWFkb25seSB0aGVtZUxpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZUxpZ2h0JykpO1xuICByZWFkb25seSB0aGVtZURhcmsgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lRGFyaycpKTtcbiAgcmVhZG9ubHkgdGhlbWVBdXRvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZUF1dG8nKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplU21hbGwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplU21hbGwnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplTWVkaXVtID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdmb250U2l6ZU1lZGl1bScpKTtcbiAgcmVhZG9ubHkgZm9udFNpemVMYXJnZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnZm9udFNpemVMYXJnZScpKTtcblxuICByZWFkb25seSBsYW5nUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY3VycmVudExhbmd1YWdlOiB0aGlzLnByZWZzLmxhbmd1YWdlKCksXG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgZXhwYW5kOiAnYmxvY2snLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gaTE4biDigJQgcmVzcGV0YSBvdmVycmlkZSBkZWwgY29uc3VtZXIuIEVsIG5hbWVzcGFjZSBwdWVkZVxuICAgIC8vIHZlbmlyIGRlIEBJbnB1dC5jb25maWcgbyBkZWwgcm91dGUgZGF0YTsgbG8gcmVzb2x2ZW1vcyBhY8OhLlxuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBQUkVGRVJFTkNFU19WSUVXX0kxOE4pO1xuICAgIH1cblxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgb25UaGVtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMudGhlbWUoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHRoZW1lID0gdmFsdWUgYXMgUHJlZmVyZW5jZXNUaGVtZTtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRUaGVtZSh0aGVtZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25UaGVtZUNoYW5nZWQ/Lih0aGVtZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25Gb250U2l6ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9udFNpemUgPSB2YWx1ZSBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplO1xuICAgIGlmICh0aGlzLnNhdmluZygpIHx8IHZhbHVlID09PSB0aGlzLnByZWZzLmZvbnRTaXplKCkpIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRGb250U2l6ZShmb250U2l6ZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Gb250U2l6ZUNoYW5nZWQ/Lihmb250U2l6ZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25MYW5ndWFnZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZyA9IHZhbHVlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2U7XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMubGFuZ3VhZ2UoKSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goXG4gICAgICAoKSA9PiB0aGlzLnByZWZzLnNldExhbmd1YWdlKGxhbmcpLFxuICAgICAgKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uTGFuZ3VhZ2VDaGFuZ2VkPy4obGFuZylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkaXNwYXRjaChmbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPiwgb25TdWNjZXNzPzogKCkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2F2aW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZm4oKTtcbiAgICAgIG9uU3VjY2Vzcz8uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZXR0aW5ncy5wcmVmZXJlbmNlcy5zYXZlJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzYXZlRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIExlZSBkZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvLiAqL1xuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==
@@ -91,6 +91,7 @@ export class PreferencesService {
91
91
  }
92
92
  });
93
93
  // Side-effect: aplicar fontSize local cuando llega snapshot real.
94
+ // allowSignalWrites: fontSizeService.setSize() escribe this._size (signal).
94
95
  effect(() => {
95
96
  if (!this._synced())
96
97
  return;
@@ -98,7 +99,7 @@ export class PreferencesService {
98
99
  if (this.fontSizeService) {
99
100
  this.fontSizeService.setSize(fs);
100
101
  }
101
- });
102
+ }, { allowSignalWrites: true });
102
103
  }
103
104
  /** Actualiza preferencias via backend. Optimistic UI: aplica local, revierte si falla. */
104
105
  async update(partial) {
@@ -221,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
221
222
  }] }, { type: i6.I18nService, decorators: [{
222
223
  type: Optional
223
224
  }] }] });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWdCckQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUE2QjdCLFlBQ3VDLE1BQXlCLEVBQ3RELFNBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLElBQWdCLEVBQ0osWUFBaUMsRUFDakMsZUFBdUMsRUFDdkMsSUFBd0I7UUFOUCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQW9CO1FBbkM3QixXQUFNLEdBQUcsTUFBTSxDQUFtQixNQUFNLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQUcsTUFBTSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQUcsTUFBTSxDQUFzQixRQUFRLENBQUMsQ0FBQztRQUNuRSxvRkFBb0Y7UUFDcEYsZ0VBQWdFO1FBQy9DLHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvRCxzRkFBc0Y7UUFDckUsWUFBTyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2Qyx3QkFBbUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0QsV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFJNUM7Ozs7Ozs7O1dBUUc7UUFDSyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVc5QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUUxQyxrRkFBa0Y7UUFDbEYsNkVBQTZFO1FBQzdFLHdEQUF3RDtRQUN4RCxNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7UUFFRiwrREFBK0Q7UUFDL0QseUVBQXlFO1FBQ3pFLHVFQUF1RTtRQUN2RSxxRUFBcUU7UUFDckUsZ0RBQWdEO1FBQ2hELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFBRSxPQUFPO1lBQzVCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFnQixDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFBRSxPQUFPO1lBQzVCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBYSxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFBRSxPQUFPO1lBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBb0IsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwwRkFBMEY7SUFDMUYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQjtRQUNyQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsQ0FBQztRQUV4RCxNQUFNLElBQUksR0FBRztZQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7U0FDcEMsQ0FBQztRQUVGLElBQUksT0FBTyxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxPQUFPLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLE9BQU8sQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELElBQUksT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsNEVBQTRFO1FBQzVFLDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixJQUFJLENBQUM7WUFDSCxxRUFBcUU7WUFDckUseUVBQXlFO1lBQ3pFLHdEQUF3RDtZQUN4RCxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RELE1BQU0sR0FBRyxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QixHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RixtRUFBbUU7WUFDbkUsaUVBQWlFO1lBQ2pFLHNCQUFzQjtZQUN0QixJQUFJLEdBQUcsQ0FBQyxLQUFLO2dCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUF5QixDQUFDLENBQUM7WUFDOUQsSUFBSSxHQUFHLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBK0IsQ0FBQyxDQUFDO1lBQzFFLElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQStCLENBQUMsQ0FBQztZQUMxRSxJQUFJLE9BQU8sR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXVCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUE2QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBNkI7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBZ0I7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWM7UUFDL0IsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFDL0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsc0VBQXNFO1FBQ3RFLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTO2FBQy9CLFVBQVUsQ0FBd0MsU0FBUyxNQUFNLGNBQWMsRUFBRSxNQUFNLENBQUM7YUFDeEYsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULDhEQUE4RDtnQkFDOUQsaUVBQWlFO2dCQUNqRSx1REFBdUQ7Z0JBQ3ZELE9BQU87WUFDVCxDQUFDO1lBQ0QsdUVBQXVFO1lBQ3ZFLG9FQUFvRTtZQUNwRSxzRUFBc0U7WUFDdEUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSztnQkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxHQUFHLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxHQUFHLENBQUMsYUFBYSxJQUFJLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0E5TFUsa0JBQWtCLGtCQThCbkIsbUJBQW1CO21IQTlCbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQStCN0IsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUkxQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi4vYXV0aC9jb25maWcnO1xuaW1wb3J0IHsgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuLi9hdXRoL3R5cGVzJztcbmltcG9ydCB7IEZpcmVzdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9maXJlYmFzZS9maXJlc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuTGFuZyB9IGZyb20gJy4uL2kxOG4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZU9wdGlvbiwgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBGb250U2l6ZU9wdGlvbiwgRm9udFNpemVTZXJ2aWNlIH0gZnJvbSAnLi4vZm9udC1zaXplL2ZvbnQtc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFByZWZlcmVuY2VzRG9jdW1lbnQsXG4gIFByZWZlcmVuY2VzRm9udFNpemUsXG4gIFByZWZlcmVuY2VzTGFuZ3VhZ2UsXG4gIFByZWZlcmVuY2VzVGhlbWUsXG4gIFByZWZlcmVuY2VzVXBkYXRlLFxuICBQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlLFxufSBmcm9tICcuL3ByZWZlcmVuY2VzLnR5cGVzJztcblxuLyoqXG4gKiBQcmVmZXJlbmNlc1NlcnZpY2Ug4oCUIHByZWZlcmVuY2lhcyBkZWwgdXNlciBlbiBlbCBkb2MgY2Fuw7NuaWNvIEZpcmVzdG9yZVxuICogYC9hcHBzL3thcHBJZH0vdXNlcnMve3VpZH0vcHJlZmVyZW5jZXMvbWFpbmAuXG4gKlxuICogUmVhZCByZWFjdGl2byAoc2lnbmFscykgdmlhIGxpc3RlbmVyIEZpcmVzdG9yZS5cbiAqIFdyaXRlIHZpYSBgUFVUIC92Mi9hdXRoL3ByZWZlcmVuY2VzYCAoY2xpZW50ZSBOVU5DQSBlc2NyaWJlIEZpcmVzdG9yZSBkaXJlY3RvIOKAlFxuICogdmVyIG1lbW9yaWEgYGZlZWRiYWNrX25vX2RpcmVjdF9maXJlc3RvcmVfd3JpdGVzYCkuXG4gKlxuICogU2lkZS1lZmZlY3RzIGF1dG9tw6F0aWNvczpcbiAqIC0gQ3VhbmRvIGB0aGVtZSgpYCBjYW1iaWEg4oaSIGBUaGVtZVNlcnZpY2UuVGhlbWUgPSAuLi5gXG4gKiAtIEN1YW5kbyBgbGFuZ3VhZ2UoKWAgY2FtYmlhIOKGkiBgSTE4blNlcnZpY2Uuc2V0TGFuZ3VhZ2UoLi4uKWBcbiAqXG4gKiBBdXRvLWJpbmQgYWwgdXNlciBhY3R1YWwgdmlhIGBBdXRoU2VydmljZS51c2VyKClgLiBTaW4gdXNlciAobG9nb3V0KSDihpIgdW5iaW5kLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RoZW1lID0gc2lnbmFsPFByZWZlcmVuY2VzVGhlbWU+KCdhdXRvJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmd1YWdlID0gc2lnbmFsPFByZWZlcmVuY2VzTGFuZ3VhZ2U+KCdlcycpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb250U2l6ZSA9IHNpZ25hbDxQcmVmZXJlbmNlc0ZvbnRTaXplPignbWVkaXVtJyk7XG4gIC8vIERlZmF1bHQgYGZhbHNlYCAob3B0LWluKS4gRWwgdXNlciBkZWJlIGFjdGl2YXIgZXhwbMOtY2l0YW1lbnRlIGxhcyBub3RpZmljYWNpb25lcztcbiAgLy8gbm8gYXN1bWltb3MgY29uc2VudGltaWVudG8gaW1wbMOtY2l0by4gQmFja2VuZCBkZWJlIGNvaW5jaWRpci5cbiAgcHJpdmF0ZSByZWFkb25seSBfbm90aWZpY2F0aW9uc01hc3RlciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIC8qKiBgdHJ1ZWAgZGVzcHXDqXMgZGVsIHByaW1lciBzbmFwc2hvdCBGaXJlc3RvcmUuIEFudGVzLCBkZWZhdWx0cyBzaW4gc2lkZS1lZmZlY3RzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9zeW5jZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHRoZW1lID0gdGhpcy5fdGhlbWUuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBsYW5ndWFnZSA9IHRoaXMuX2xhbmd1YWdlLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgZm9udFNpemUgPSB0aGlzLl9mb250U2l6ZS5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnNNYXN0ZXIgPSB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgc3luY2VkID0gdGhpcy5fc3luY2VkLmFzUmVhZG9ubHkoKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjdXJyZW50VXNlcklkPzogc3RyaW5nO1xuICAvKipcbiAgICogYHRydWVgIG1pZW50cmFzIHVuIGB1cGRhdGUoKWAgZXN0w6EgZW4gdnVlbG8gKFBVVCBhbCBiYWNrZW5kKS5cbiAgICpcbiAgICogRWwgbGlzdGVuZXIgRmlyZXN0b3JlIChgYmluZFRvVXNlcmApIGVzIHJlYWwtdGltZSB5IHB1ZWRlIGVtaXRpciB1biBzbmFwc2hvdFxuICAgKiAqc3RhbGUqIOKAlCBhbnRlcmlvciBhbCBzeW5jIGRlbCBiYWNrZW5kIOKAlCBxdWUgcGlzYXLDrWEgZWwgdmFsb3Igb3B0aW1pc3RhIGRlXG4gICAqIGBfbm90aWZpY2F0aW9uc01hc3RlcmAgeSByZXZlcnRpcsOtYSBlbCB0b2dnbGUuIE1pZW50cmFzIGVzdGUgZmxhZyBlc3TDqSBgdHJ1ZWBcbiAgICogZWwgbGlzdGVuZXIgaWdub3JhIGxhcyBlbWlzaW9uZXM7IGVsIGB1cGRhdGUoKWAgeWEgYWxpbmVhIGxhcyBzZcOxYWxlcyBjb24gbGFcbiAgICogcmVzcHVlc3RhIGRlbCBiYWNrZW5kIGFsIHRlcm1pbmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBkYXRlSW5GbGlnaHQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGZpcmVzdG9yZTogRmlyZXN0b3JlU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGZvbnRTaXplU2VydmljZTogRm9udFNpemVTZXJ2aWNlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGkxOG46IEkxOG5TZXJ2aWNlIHwgbnVsbFxuICApIHtcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHRoaXMudW5iaW5kKCkpO1xuXG4gICAgLy8gQXV0by1iaW5kIGFsIHVzZXIgYWN0dWFsLiBlZmZlY3QoKSBjb3JyZSBlbiBpbmplY3Rpb24gY29udGV4dCAoY29uc3RydWN0b3IgT0spLlxuICAgIC8vIGFsbG93U2lnbmFsV3JpdGVzOiBiaW5kVG9Vc2VyL3VuYmluZCBlc2NyaWJlbiBgX3N5bmNlZGAgKHNlw7FhbCBpbnRlcm5hIHNpblxuICAgIC8vIGRlcGVuZGVuY2lhcyBkZWwgcHJvcGlvIGVmZmVjdCkg4oaSIHNlZ3VybyB5IG5lY2VzYXJpby5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGgudXNlcigpO1xuICAgICAgICBpZiAodXNlcj8udXNlcklkKSB7XG4gICAgICAgICAgdGhpcy5iaW5kVG9Vc2VyKHVzZXIudXNlcklkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnVuYmluZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIC8vIFNpZGUtZWZmZWN0OiBhcGxpY2FyIHRoZW1lIGxvY2FsIGN1YW5kbyBsbGVnYSBzbmFwc2hvdCByZWFsLlxuICAgIC8vIE9KTzogdXNhciBgdG9nZ2xlVXNlclByZWZlcmVuY2UoKWAgeSBOTyBlbCBzZXR0ZXIgYFRoZW1lID1gLiBFbCBzZXR0ZXJcbiAgICAvLyBzb2xvIHBlcnNpc3RlIGxvY2FsU3RvcmFnZSArIGVtaXRlIGVsIEJlaGF2aW9yU3ViamVjdDsgbm8gYXBsaWNhIGxhc1xuICAgIC8vIGNsYXNlcyBgYm9keS5kYXJrYC9gYm9keS5saWdodGAgcXVlIGVsIHBhbGV0dGUgYGRhcmsuY2xhc3MuY3NzYCBkZVxuICAgIC8vIElvbmljIG5lY2VzaXRhIHBhcmEgY29ubXV0YXIgZWwgdGVtYSB2aXNpYmxlLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3N5bmNlZCgpKSByZXR1cm47XG4gICAgICBjb25zdCB0ID0gdGhpcy5fdGhlbWUoKTtcbiAgICAgIGlmICh0aGlzLnRoZW1lU2VydmljZSkge1xuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS50b2dnbGVVc2VyUHJlZmVyZW5jZSh0IGFzIFRoZW1lT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNpZGUtZWZmZWN0OiBhcGxpY2FyIGxhbmd1YWdlIGxvY2FsIGN1YW5kbyBsbGVnYSBzbmFwc2hvdCByZWFsLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3N5bmNlZCgpKSByZXR1cm47XG4gICAgICBjb25zdCBsID0gdGhpcy5fbGFuZ3VhZ2UoKTtcbiAgICAgIGlmICh0aGlzLmkxOG4gJiYgdGhpcy5pMThuLmxhbmcoKSAhPT0gbCkge1xuICAgICAgICB0aGlzLmkxOG4uc2V0TGFuZ3VhZ2UobCBhcyBJMThuTGFuZyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciBmb250U2l6ZSBsb2NhbCBjdWFuZG8gbGxlZ2Egc25hcHNob3QgcmVhbC5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgZnMgPSB0aGlzLl9mb250U2l6ZSgpO1xuICAgICAgaWYgKHRoaXMuZm9udFNpemVTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZm9udFNpemVTZXJ2aWNlLnNldFNpemUoZnMgYXMgRm9udFNpemVPcHRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEFjdHVhbGl6YSBwcmVmZXJlbmNpYXMgdmlhIGJhY2tlbmQuIE9wdGltaXN0aWMgVUk6IGFwbGljYSBsb2NhbCwgcmV2aWVydGUgc2kgZmFsbGEuICovXG4gIGFzeW5jIHVwZGF0ZShwYXJ0aWFsOiBQcmVmZXJlbmNlc1VwZGF0ZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmFwaVVybH0vdjIvYXV0aC9wcmVmZXJlbmNlc2A7XG5cbiAgICBjb25zdCBwcmV2ID0ge1xuICAgICAgdGhlbWU6IHRoaXMuX3RoZW1lKCksXG4gICAgICBsYW5ndWFnZTogdGhpcy5fbGFuZ3VhZ2UoKSxcbiAgICAgIGZvbnRTaXplOiB0aGlzLl9mb250U2l6ZSgpLFxuICAgICAgbWFzdGVyOiB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyKCksXG4gICAgfTtcblxuICAgIGlmIChwYXJ0aWFsLnRoZW1lKSB0aGlzLl90aGVtZS5zZXQocGFydGlhbC50aGVtZSk7XG4gICAgaWYgKHBhcnRpYWwubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChwYXJ0aWFsLmxhbmd1YWdlKTtcbiAgICBpZiAocGFydGlhbC5mb250U2l6ZSkgdGhpcy5fZm9udFNpemUuc2V0KHBhcnRpYWwuZm9udFNpemUpO1xuICAgIGlmIChwYXJ0aWFsLm5vdGlmaWNhdGlvbnMgJiYgdHlwZW9mIHBhcnRpYWwubm90aWZpY2F0aW9ucy5tYXN0ZXIgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocGFydGlhbC5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgfVxuXG4gICAgLy8gQmxvcXVlYXIgZWwgbGlzdGVuZXIgRmlyZXN0b3JlIG1pZW50cmFzIGVsIFBVVCBlc3TDoSBlbiB2dWVsbzogdW4gc25hcHNob3RcbiAgICAvLyBzdGFsZSBubyBkZWJlIHBpc2FyIGVsIHZhbG9yIG9wdGltaXN0YSByZWNpw6luIGFwbGljYWRvLlxuICAgIHRoaXMuX3VwZGF0ZUluRmxpZ2h0ID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBFbnZpYXIgYXBwSWQgZXhwbMOtY2l0byDigJQgZWwgYmFja2VuZCBsbyB1c2EgcGFyYSBlc2NyaWJpciBlbCBtaXJyb3JcbiAgICAgIC8vIEZpcmVzdG9yZSBlbiBhcHBzL3thcHBJZH0vLi4uIGNvcnJlY3RvLCBzaW4gZGVwZW5kZXIgZGVsIGhlYWRlciBPcmlnaW5cbiAgICAgIC8vIChxdWUgZW4gUFdBIGlPUyBwdWVkZSBubyByZXNvbHZlciBhbCBBcHBJRCBlc3BlcmFkbykuXG4gICAgICBjb25zdCBib2R5ID0geyAuLi5wYXJ0aWFsLCBhcHBJZDogdGhpcy5jb25maWcuYXBwSWQgfTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wdXQ8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4odXJsLCBib2R5KSk7XG4gICAgICAvLyBFbCBsaXN0ZW5lciBGaXJlc3RvcmUgZXMgbGEgZnVlbnRlIGZpbmFsLCBwZXJvIGFsaW5lYXIgeWEgY29uIGxhXG4gICAgICAvLyByZXNwdWVzdGEgZGVsIGJhY2tlbmQgYWNlbGVyYSBVWCAoZXNwZWNpYWxtZW50ZSBzaSBlbCBsaXN0ZW5lclxuICAgICAgLy8gdGFyZGEgZW4gcHJvcGFnYXIpLlxuICAgICAgaWYgKHJlcy50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KHJlcy50aGVtZSBhcyBQcmVmZXJlbmNlc1RoZW1lKTtcbiAgICAgIGlmIChyZXMubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChyZXMubGFuZ3VhZ2UgYXMgUHJlZmVyZW5jZXNMYW5ndWFnZSk7XG4gICAgICBpZiAocmVzLmZvbnRTaXplKSB0aGlzLl9mb250U2l6ZS5zZXQocmVzLmZvbnRTaXplIGFzIFByZWZlcmVuY2VzRm9udFNpemUpO1xuICAgICAgaWYgKHR5cGVvZiByZXMubm90aWZpY2F0aW9ucz8ubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocmVzLm5vdGlmaWNhdGlvbnMubWFzdGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBSZXZlcnQgb3B0aW1pc3RpYy5cbiAgICAgIHRoaXMuX3RoZW1lLnNldChwcmV2LnRoZW1lKTtcbiAgICAgIHRoaXMuX2xhbmd1YWdlLnNldChwcmV2Lmxhbmd1YWdlKTtcbiAgICAgIHRoaXMuX2ZvbnRTaXplLnNldChwcmV2LmZvbnRTaXplKTtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHByZXYubWFzdGVyKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fdXBkYXRlSW5GbGlnaHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogUHJlZmVyZW5jZXNUaGVtZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IHRoZW1lIH0pO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IFByZWZlcmVuY2VzTGFuZ3VhZ2UpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyBsYW5ndWFnZSB9KTtcbiAgfVxuXG4gIHNldEZvbnRTaXplKGZvbnRTaXplOiBQcmVmZXJlbmNlc0ZvbnRTaXplKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgZm9udFNpemUgfSk7XG4gIH1cblxuICBzZXROb3RpZmljYXRpb25zTWFzdGVyKGVuYWJsZWQ6IGJvb2xlYW4pOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyBub3RpZmljYXRpb25zOiB7IG1hc3RlcjogZW5hYmxlZCB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kVG9Vc2VyKHVzZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFVzZXJJZCA9PT0gdXNlcklkICYmIHRoaXMuc3Vic2NyaXB0aW9uKSByZXR1cm47XG4gICAgdGhpcy51bmJpbmQoKTtcbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSB1c2VySWQ7XG4gICAgLy8gRmlyZXN0b3JlU2VydmljZS5kb2NDaGFuZ2VzIHByZWZpamEgYXV0b23DoXRpY2FtZW50ZSBgYXBwcy97YXBwSWR9L2BcbiAgICAvLyBjdWFuZG8gYGNvbmZpZy5hcHBJZGAgZXN0w6Egc2V0ZWFkbyBlbiBWYWx0ZWNoQXV0aENvbmZpZy5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZmlyZXN0b3JlXG4gICAgICAuZG9jQ2hhbmdlczxQcmVmZXJlbmNlc0RvY3VtZW50ICYgeyBpZD86IHN0cmluZyB9PihgdXNlcnMvJHt1c2VySWR9L3ByZWZlcmVuY2VzYCwgJ21haW4nKVxuICAgICAgLnN1YnNjcmliZShkb2MgPT4ge1xuICAgICAgICBpZiAoIWRvYykge1xuICAgICAgICAgIC8vIERvYyBubyBleGlzdGUgYcO6biAodXNlciBudWV2bywgc2luIHByaW1lciBzeW5jKS4gTWFudGVuZW1vc1xuICAgICAgICAgIC8vIGRlZmF1bHRzIGxvY2FsZXMgcGVybyBOTyBtYXJjYW1vcyBzeW5jZWQg4oCUIGxvcyBzaWRlLWVmZmVjdHMgbm9cbiAgICAgICAgICAvLyBwaXNhbiBlbCB0aGVtZS9sYW5nIGxvY2FsZXMgY29uIHZhbG9yZXMgYXJiaXRyYXJpb3MuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIElnbm9yYXIgZW1pc2lvbmVzIGRlbCBsaXN0ZW5lciBtaWVudHJhcyBoYXkgdW4gdXBkYXRlKCkgZW4gdnVlbG86IHVuXG4gICAgICAgIC8vIHNuYXBzaG90IHN0YWxlIChhbnRlcmlvciBhbCBzeW5jIGRlbCBiYWNrZW5kKSByZXZlcnRpcsOtYSBlbCB2YWxvclxuICAgICAgICAvLyBvcHRpbWlzdGEuIEVsIHVwZGF0ZSgpIHlhIGFsaW5lYSBsYXMgc2XDsWFsZXMgY29uIGxhIHJlc3B1ZXN0YSByZWFsLlxuICAgICAgICBpZiAodGhpcy5fdXBkYXRlSW5GbGlnaHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvYy50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KGRvYy50aGVtZSk7XG4gICAgICAgIGlmIChkb2MubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChkb2MubGFuZ3VhZ2UpO1xuICAgICAgICBpZiAoZG9jLmZvbnRTaXplKSB0aGlzLl9mb250U2l6ZS5zZXQoZG9jLmZvbnRTaXplKTtcbiAgICAgICAgaWYgKGRvYy5ub3RpZmljYXRpb25zICYmIHR5cGVvZiBkb2Mubm90aWZpY2F0aW9ucy5tYXN0ZXIgPT09ICdib29sZWFuJykge1xuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KGRvYy5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3luY2VkLnNldCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmJpbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3N5bmNlZC5zZXQoZmFsc2UpO1xuICB9XG59XG4iXX0=
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWdCckQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUE2QjdCLFlBQ3VDLE1BQXlCLEVBQ3RELFNBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLElBQWdCLEVBQ0osWUFBaUMsRUFDakMsZUFBdUMsRUFDdkMsSUFBd0I7UUFOUCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQW9CO1FBbkM3QixXQUFNLEdBQUcsTUFBTSxDQUFtQixNQUFNLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQUcsTUFBTSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQUcsTUFBTSxDQUFzQixRQUFRLENBQUMsQ0FBQztRQUNuRSxvRkFBb0Y7UUFDcEYsZ0VBQWdFO1FBQy9DLHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvRCxzRkFBc0Y7UUFDckUs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QUFDO1lBQzFDLElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksR0FBRyxDQUFDLGFBQWEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBbE1VLGtCQUFrQixrQkE4Qm5CLG1CQUFtQjttSEE5QmxCLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkErQjdCLE1BQU07MkJBQUMsbUJBQW1COzswQkFJMUIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4uL2F1dGgvY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2UvZmlyZXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4bkxhbmcgfSBmcm9tICcuLi9pMThuL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlbWVPcHRpb24sIFRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9udFNpemVPcHRpb24sIEZvbnRTaXplU2VydmljZSB9IGZyb20gJy4uL2ZvbnQtc2l6ZS9mb250LXNpemUuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0RvY3VtZW50LFxuICBQcmVmZXJlbmNlc0ZvbnRTaXplLFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxuICBQcmVmZXJlbmNlc1VwZGF0ZSxcbiAgUHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9wcmVmZXJlbmNlcy50eXBlcyc7XG5cbi8qKlxuICogUHJlZmVyZW5jZXNTZXJ2aWNlIOKAlCBwcmVmZXJlbmNpYXMgZGVsIHVzZXIgZW4gZWwgZG9jIGNhbsOzbmljbyBGaXJlc3RvcmVcbiAqIGAvYXBwcy97YXBwSWR9L3VzZXJzL3t1aWR9L3ByZWZlcmVuY2VzL21haW5gLlxuICpcbiAqIFJlYWQgcmVhY3Rpdm8gKHNpZ25hbHMpIHZpYSBsaXN0ZW5lciBGaXJlc3RvcmUuXG4gKiBXcml0ZSB2aWEgYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0byDigJRcbiAqIHZlciBtZW1vcmlhIGBmZWVkYmFja19ub19kaXJlY3RfZmlyZXN0b3JlX3dyaXRlc2ApLlxuICpcbiAqIFNpZGUtZWZmZWN0cyBhdXRvbcOhdGljb3M6XG4gKiAtIEN1YW5kbyBgdGhlbWUoKWAgY2FtYmlhIOKGkiBgVGhlbWVTZXJ2aWNlLlRoZW1lID0gLi4uYFxuICogLSBDdWFuZG8gYGxhbmd1YWdlKClgIGNhbWJpYSDihpIgYEkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKC4uLilgXG4gKlxuICogQXV0by1iaW5kIGFsIHVzZXIgYWN0dWFsIHZpYSBgQXV0aFNlcnZpY2UudXNlcigpYC4gU2luIHVzZXIgKGxvZ291dCkg4oaSIHVuYmluZC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZSA9IHNpZ25hbDxQcmVmZXJlbmNlc1RoZW1lPignYXV0bycpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSA9IHNpZ25hbDxQcmVmZXJlbmNlc0xhbmd1YWdlPignZXMnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9udFNpemUgPSBzaWduYWw8UHJlZmVyZW5jZXNGb250U2l6ZT4oJ21lZGl1bScpO1xuICAvLyBEZWZhdWx0IGBmYWxzZWAgKG9wdC1pbikuIEVsIHVzZXIgZGViZSBhY3RpdmFyIGV4cGzDrWNpdGFtZW50ZSBsYXMgbm90aWZpY2FjaW9uZXM7XG4gIC8vIG5vIGFzdW1pbW9zIGNvbnNlbnRpbWllbnRvIGltcGzDrWNpdG8uIEJhY2tlbmQgZGViZSBjb2luY2lkaXIuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25vdGlmaWNhdGlvbnNNYXN0ZXIgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogYHRydWVgIGRlc3B1w6lzIGRlbCBwcmltZXIgc25hcHNob3QgRmlyZXN0b3JlLiBBbnRlcywgZGVmYXVsdHMgc2luIHNpZGUtZWZmZWN0cy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfc3luY2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSB0aGVtZSA9IHRoaXMuX3RoZW1lLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbGFuZ3VhZ2UgPSB0aGlzLl9sYW5ndWFnZS5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IGZvbnRTaXplID0gdGhpcy5fZm9udFNpemUuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBub3RpZmljYXRpb25zTWFzdGVyID0gdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IHN5bmNlZCA9IHRoaXMuX3N5bmNlZC5hc1JlYWRvbmx5KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgY3VycmVudFVzZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIGB0cnVlYCBtaWVudHJhcyB1biBgdXBkYXRlKClgIGVzdMOhIGVuIHZ1ZWxvIChQVVQgYWwgYmFja2VuZCkuXG4gICAqXG4gICAqIEVsIGxpc3RlbmVyIEZpcmVzdG9yZSAoYGJpbmRUb1VzZXJgKSBlcyByZWFsLXRpbWUgeSBwdWVkZSBlbWl0aXIgdW4gc25hcHNob3RcbiAgICogKnN0YWxlKiDigJQgYW50ZXJpb3IgYWwgc3luYyBkZWwgYmFja2VuZCDigJQgcXVlIHBpc2Fyw61hIGVsIHZhbG9yIG9wdGltaXN0YSBkZVxuICAgKiBgX25vdGlmaWNhdGlvbnNNYXN0ZXJgIHkgcmV2ZXJ0aXLDrWEgZWwgdG9nZ2xlLiBNaWVudHJhcyBlc3RlIGZsYWcgZXN0w6kgYHRydWVgXG4gICAqIGVsIGxpc3RlbmVyIGlnbm9yYSBsYXMgZW1pc2lvbmVzOyBlbCBgdXBkYXRlKClgIHlhIGFsaW5lYSBsYXMgc2XDsWFsZXMgY29uIGxhXG4gICAqIHJlc3B1ZXN0YSBkZWwgYmFja2VuZCBhbCB0ZXJtaW5hci5cbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZUluRmxpZ2h0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcsXG4gICAgcHJpdmF0ZSBmaXJlc3RvcmU6IEZpcmVzdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb250U2l6ZVNlcnZpY2U6IEZvbnRTaXplU2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBpMThuOiBJMThuU2VydmljZSB8IG51bGxcbiAgKSB7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLnVuYmluZCgpKTtcblxuICAgIC8vIEF1dG8tYmluZCBhbCB1c2VyIGFjdHVhbC4gZWZmZWN0KCkgY29ycmUgZW4gaW5qZWN0aW9uIGNvbnRleHQgKGNvbnN0cnVjdG9yIE9LKS5cbiAgICAvLyBhbGxvd1NpZ25hbFdyaXRlczogYmluZFRvVXNlci91bmJpbmQgZXNjcmliZW4gYF9zeW5jZWRgIChzZcOxYWwgaW50ZXJuYSBzaW5cbiAgICAvLyBkZXBlbmRlbmNpYXMgZGVsIHByb3BpbyBlZmZlY3QpIOKGkiBzZWd1cm8geSBuZWNlc2FyaW8uXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcbiAgICAgICAgaWYgKHVzZXI/LnVzZXJJZCkge1xuICAgICAgICAgIHRoaXMuYmluZFRvVXNlcih1c2VyLnVzZXJJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51bmJpbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciB0aGVtZSBsb2NhbCBjdWFuZG8gbGxlZ2Egc25hcHNob3QgcmVhbC5cbiAgICAvLyBPSk86IHVzYXIgYHRvZ2dsZVVzZXJQcmVmZXJlbmNlKClgIHkgTk8gZWwgc2V0dGVyIGBUaGVtZSA9YC4gRWwgc2V0dGVyXG4gICAgLy8gc29sbyBwZXJzaXN0ZSBsb2NhbFN0b3JhZ2UgKyBlbWl0ZSBlbCBCZWhhdmlvclN1YmplY3Q7IG5vIGFwbGljYSBsYXNcbiAgICAvLyBjbGFzZXMgYGJvZHkuZGFya2AvYGJvZHkubGlnaHRgIHF1ZSBlbCBwYWxldHRlIGBkYXJrLmNsYXNzLmNzc2AgZGVcbiAgICAvLyBJb25pYyBuZWNlc2l0YSBwYXJhIGNvbm11dGFyIGVsIHRlbWEgdmlzaWJsZS5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgdCA9IHRoaXMuX3RoZW1lKCk7XG4gICAgICBpZiAodGhpcy50aGVtZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy50aGVtZVNlcnZpY2UudG9nZ2xlVXNlclByZWZlcmVuY2UodCBhcyBUaGVtZU9wdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciBsYW5ndWFnZSBsb2NhbCBjdWFuZG8gbGxlZ2Egc25hcHNob3QgcmVhbC5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgbCA9IHRoaXMuX2xhbmd1YWdlKCk7XG4gICAgICBpZiAodGhpcy5pMThuICYmIHRoaXMuaTE4bi5sYW5nKCkgIT09IGwpIHtcbiAgICAgICAgdGhpcy5pMThuLnNldExhbmd1YWdlKGwgYXMgSTE4bkxhbmcpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU2lkZS1lZmZlY3Q6IGFwbGljYXIgZm9udFNpemUgbG9jYWwgY3VhbmRvIGxsZWdhIHNuYXBzaG90IHJlYWwuXG4gICAgLy8gYWxsb3dTaWduYWxXcml0ZXM6IGZvbnRTaXplU2VydmljZS5zZXRTaXplKCkgZXNjcmliZSB0aGlzLl9zaXplIChzaWduYWwpLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBmcyA9IHRoaXMuX2ZvbnRTaXplKCk7XG4gICAgICAgIGlmICh0aGlzLmZvbnRTaXplU2VydmljZSkge1xuICAgICAgICAgIHRoaXMuZm9udFNpemVTZXJ2aWNlLnNldFNpemUoZnMgYXMgRm9udFNpemVPcHRpb24pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKiBBY3R1YWxpemEgcHJlZmVyZW5jaWFzIHZpYSBiYWNrZW5kLiBPcHRpbWlzdGljIFVJOiBhcGxpY2EgbG9jYWwsIHJldmllcnRlIHNpIGZhbGxhLiAqL1xuICBhc3luYyB1cGRhdGUocGFydGlhbDogUHJlZmVyZW5jZXNVcGRhdGUpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvcHJlZmVyZW5jZXNgO1xuXG4gICAgY29uc3QgcHJldiA9IHtcbiAgICAgIHRoZW1lOiB0aGlzLl90aGVtZSgpLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMuX2xhbmd1YWdlKCksXG4gICAgICBmb250U2l6ZTogdGhpcy5fZm9udFNpemUoKSxcbiAgICAgIG1hc3RlcjogdGhpcy5fbm90aWZpY2F0aW9uc01hc3RlcigpLFxuICAgIH07XG5cbiAgICBpZiAocGFydGlhbC50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KHBhcnRpYWwudGhlbWUpO1xuICAgIGlmIChwYXJ0aWFsLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQocGFydGlhbC5sYW5ndWFnZSk7XG4gICAgaWYgKHBhcnRpYWwuZm9udFNpemUpIHRoaXMuX2ZvbnRTaXplLnNldChwYXJ0aWFsLmZvbnRTaXplKTtcbiAgICBpZiAocGFydGlhbC5ub3RpZmljYXRpb25zICYmIHR5cGVvZiBwYXJ0aWFsLm5vdGlmaWNhdGlvbnMubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHBhcnRpYWwubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgIH1cblxuICAgIC8vIEJsb3F1ZWFyIGVsIGxpc3RlbmVyIEZpcmVzdG9yZSBtaWVudHJhcyBlbCBQVVQgZXN0w6EgZW4gdnVlbG86IHVuIHNuYXBzaG90XG4gICAgLy8gc3RhbGUgbm8gZGViZSBwaXNhciBlbCB2YWxvciBvcHRpbWlzdGEgcmVjacOpbiBhcGxpY2Fkby5cbiAgICB0aGlzLl91cGRhdGVJbkZsaWdodCA9IHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgLy8gRW52aWFyIGFwcElkIGV4cGzDrWNpdG8g4oCUIGVsIGJhY2tlbmQgbG8gdXNhIHBhcmEgZXNjcmliaXIgZWwgbWlycm9yXG4gICAgICAvLyBGaXJlc3RvcmUgZW4gYXBwcy97YXBwSWR9Ly4uLiBjb3JyZWN0bywgc2luIGRlcGVuZGVyIGRlbCBoZWFkZXIgT3JpZ2luXG4gICAgICAvLyAocXVlIGVuIFBXQSBpT1MgcHVlZGUgbm8gcmVzb2x2ZXIgYWwgQXBwSUQgZXNwZXJhZG8pLlxuICAgICAgY29uc3QgYm9keSA9IHsgLi4ucGFydGlhbCwgYXBwSWQ6IHRoaXMuY29uZmlnLmFwcElkIH07XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucHV0PFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+KHVybCwgYm9keSkpO1xuICAgICAgLy8gRWwgbGlzdGVuZXIgRmlyZXN0b3JlIGVzIGxhIGZ1ZW50ZSBmaW5hbCwgcGVybyBhbGluZWFyIHlhIGNvbiBsYVxuICAgICAgLy8gcmVzcHVlc3RhIGRlbCBiYWNrZW5kIGFjZWxlcmEgVVggKGVzcGVjaWFsbWVudGUgc2kgZWwgbGlzdGVuZXJcbiAgICAgIC8vIHRhcmRhIGVuIHByb3BhZ2FyKS5cbiAgICAgIGlmIChyZXMudGhlbWUpIHRoaXMuX3RoZW1lLnNldChyZXMudGhlbWUgYXMgUHJlZmVyZW5jZXNUaGVtZSk7XG4gICAgICBpZiAocmVzLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQocmVzLmxhbmd1YWdlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2UpO1xuICAgICAgaWYgKHJlcy5mb250U2l6ZSkgdGhpcy5fZm9udFNpemUuc2V0KHJlcy5mb250U2l6ZSBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplKTtcbiAgICAgIGlmICh0eXBlb2YgcmVzLm5vdGlmaWNhdGlvbnM/Lm1hc3RlciA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHJlcy5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gUmV2ZXJ0IG9wdGltaXN0aWMuXG4gICAgICB0aGlzLl90aGVtZS5zZXQocHJldi50aGVtZSk7XG4gICAgICB0aGlzLl9sYW5ndWFnZS5zZXQocHJldi5sYW5ndWFnZSk7XG4gICAgICB0aGlzLl9mb250U2l6ZS5zZXQocHJldi5mb250U2l6ZSk7XG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLnNldChwcmV2Lm1hc3Rlcik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3VwZGF0ZUluRmxpZ2h0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc2V0VGhlbWUodGhlbWU6IFByZWZlcmVuY2VzVGhlbWUpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyB0aGVtZSB9KTtcbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlOiBQcmVmZXJlbmNlc0xhbmd1YWdlKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgbGFuZ3VhZ2UgfSk7XG4gIH1cblxuICBzZXRGb250U2l6ZShmb250U2l6ZTogUHJlZmVyZW5jZXNGb250U2l6ZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IGZvbnRTaXplIH0pO1xuICB9XG5cbiAgc2V0Tm90aWZpY2F0aW9uc01hc3RlcihlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgbm90aWZpY2F0aW9uczogeyBtYXN0ZXI6IGVuYWJsZWQgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFRvVXNlcih1c2VySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVc2VySWQgPT09IHVzZXJJZCAmJiB0aGlzLnN1YnNjcmlwdGlvbikgcmV0dXJuO1xuICAgIHRoaXMudW5iaW5kKCk7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gdXNlcklkO1xuICAgIC8vIEZpcmVzdG9yZVNlcnZpY2UuZG9jQ2hhbmdlcyBwcmVmaWphIGF1dG9tw6F0aWNhbWVudGUgYGFwcHMve2FwcElkfS9gXG4gICAgLy8gY3VhbmRvIGBjb25maWcuYXBwSWRgIGVzdMOhIHNldGVhZG8gZW4gVmFsdGVjaEF1dGhDb25maWcuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZpcmVzdG9yZVxuICAgICAgLmRvY0NoYW5nZXM8UHJlZmVyZW5jZXNEb2N1bWVudCAmIHsgaWQ/OiBzdHJpbmcgfT4oYHVzZXJzLyR7dXNlcklkfS9wcmVmZXJlbmNlc2AsICdtYWluJylcbiAgICAgIC5zdWJzY3JpYmUoZG9jID0+IHtcbiAgICAgICAgaWYgKCFkb2MpIHtcbiAgICAgICAgICAvLyBEb2Mgbm8gZXhpc3RlIGHDum4gKHVzZXIgbnVldm8sIHNpbiBwcmltZXIgc3luYykuIE1hbnRlbmVtb3NcbiAgICAgICAgICAvLyBkZWZhdWx0cyBsb2NhbGVzIHBlcm8gTk8gbWFyY2Ftb3Mgc3luY2VkIOKAlCBsb3Mgc2lkZS1lZmZlY3RzIG5vXG4gICAgICAgICAgLy8gcGlzYW4gZWwgdGhlbWUvbGFuZyBsb2NhbGVzIGNvbiB2YWxvcmVzIGFyYml0cmFyaW9zLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZ25vcmFyIGVtaXNpb25lcyBkZWwgbGlzdGVuZXIgbWllbnRyYXMgaGF5IHVuIHVwZGF0ZSgpIGVuIHZ1ZWxvOiB1blxuICAgICAgICAvLyBzbmFwc2hvdCBzdGFsZSAoYW50ZXJpb3IgYWwgc3luYyBkZWwgYmFja2VuZCkgcmV2ZXJ0aXLDrWEgZWwgdmFsb3JcbiAgICAgICAgLy8gb3B0aW1pc3RhLiBFbCB1cGRhdGUoKSB5YSBhbGluZWEgbGFzIHNlw7FhbGVzIGNvbiBsYSByZXNwdWVzdGEgcmVhbC5cbiAgICAgICAgaWYgKHRoaXMuX3VwZGF0ZUluRmxpZ2h0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2MudGhlbWUpIHRoaXMuX3RoZW1lLnNldChkb2MudGhlbWUpO1xuICAgICAgICBpZiAoZG9jLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQoZG9jLmxhbmd1YWdlKTtcbiAgICAgICAgaWYgKGRvYy5mb250U2l6ZSkgdGhpcy5fZm9udFNpemUuc2V0KGRvYy5mb250U2l6ZSk7XG4gICAgICAgIGlmIChkb2Mubm90aWZpY2F0aW9ucyAmJiB0eXBlb2YgZG9jLm5vdGlmaWNhdGlvbnMubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLnNldChkb2Mubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N5bmNlZC5zZXQodHJ1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9zeW5jZWQuc2V0KGZhbHNlKTtcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.980';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODAnO1xuIl19
5
+ export const VERSION = '2.0.981';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODEnO1xuIl19