@alauda/ui 6.4.1-beta.8 → 6.4.2-beta

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 (51) hide show
  1. package/autocomplete/autocomplete.directive.d.ts +1 -1
  2. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +2 -2
  3. package/esm2020/anchor/anchor.component.mjs +2 -3
  4. package/esm2020/anchor/anchor.directive.mjs +2 -3
  5. package/esm2020/autocomplete/autocomplete.component.mjs +9 -6
  6. package/esm2020/autocomplete/autocomplete.directive.mjs +2 -3
  7. package/esm2020/autocomplete/suggestion/suggestion.component.mjs +5 -6
  8. package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +4 -4
  9. package/esm2020/back-top/back-top.component.mjs +2 -3
  10. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +2 -2
  11. package/esm2020/checkbox/checkbox.component.mjs +2 -3
  12. package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +3 -4
  13. package/esm2020/drawer/component/drawer.component.mjs +2 -3
  14. package/esm2020/drawer/drawer.service.mjs +2 -3
  15. package/esm2020/dropdown/dropdown.directive.mjs +2 -2
  16. package/esm2020/form/form-item/form-item.component.mjs +4 -4
  17. package/esm2020/form/form.directive.mjs +2 -3
  18. package/esm2020/icon/icon-register.service.mjs +8 -5
  19. package/esm2020/input/autosize.directive.mjs +2 -3
  20. package/esm2020/radio/base-radio.mjs +2 -3
  21. package/esm2020/radio/radio-button/radio-button.component.mjs +2 -2
  22. package/esm2020/radio/radio-group/radio-group.component.mjs +2 -3
  23. package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +2 -3
  24. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +2 -3
  25. package/esm2020/select/base-select.mjs +7 -8
  26. package/esm2020/select/multi-select/multi-select.component.mjs +5 -6
  27. package/esm2020/select/option/option.component.mjs +5 -6
  28. package/esm2020/select/option-group/option-group.component.mjs +4 -4
  29. package/esm2020/select/select.component.mjs +5 -6
  30. package/esm2020/steps/steps.component.mjs +2 -3
  31. package/esm2020/table/table-scroll.directive.mjs +2 -3
  32. package/esm2020/table/table.component.mjs +2 -2
  33. package/esm2020/table-of-contents/toc-container.directive.mjs +2 -3
  34. package/esm2020/tabs/tab-context.service.mjs +2 -3
  35. package/esm2020/tabs/tab-header.component.mjs +2 -3
  36. package/esm2020/theme/theme.pipe.mjs +2 -3
  37. package/esm2020/theme/theme.service.mjs +2 -3
  38. package/esm2020/tooltip/base-tooltip.mjs +2 -3
  39. package/esm2020/tooltip/tooltip.component.mjs +7 -8
  40. package/esm2020/tree-select/tree-select.component.mjs +6 -6
  41. package/esm2020/utils/index.mjs +2 -1
  42. package/esm2020/utils/operators.mjs +12 -0
  43. package/esm2020/utils/watch-content-exist.mjs +4 -3
  44. package/fesm2015/alauda-ui.mjs +71 -55
  45. package/fesm2015/alauda-ui.mjs.map +1 -1
  46. package/fesm2020/alauda-ui.mjs +71 -55
  47. package/fesm2020/alauda-ui.mjs.map +1 -1
  48. package/package.json +1 -1
  49. package/theme/_pattern.scss +1 -0
  50. package/utils/index.d.ts +1 -0
  51. package/utils/operators.d.ts +8 -0
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren, ViewEncapsulation, forwardRef, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { BehaviorSubject, combineLatest, map, of, publishReplay, refCount, startWith, Subject, switchMap, takeUntil, tap, } from 'rxjs';
3
+ import { BehaviorSubject, combineLatest, map, of, startWith, Subject, switchMap, takeUntil, tap, } from 'rxjs';
4
4
  import { CommonFormControl } from '../form';
5
- import { buildBem, coerceAttrBoolean, coerceString, scrollIntoView, } from '../utils';
5
+ import { buildBem, coerceAttrBoolean, coerceString, publishRef, scrollIntoView, } from '../utils';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../input/input-group/input-group.component";
8
8
  import * as i2 from "../input/input.component";
@@ -238,11 +238,11 @@ export class TreeNodeComponent {
238
238
  ]).pipe(map(([selectValue, selfValue]) => selectValue &&
239
239
  this.select.trackFn(selectValue) === this.select.trackFn(selfValue)), tap(selected => {
240
240
  this.selected = selected;
241
- }), publishReplay(1), refCount());
241
+ }), publishRef());
242
242
  this.selfVisible$ = combineLatest([
243
243
  this.select.filterString$,
244
244
  this.nodeData$$,
245
- ]).pipe(map(([filterString, nodeData]) => this.select.filterFn(filterString, nodeData)), publishReplay(1), refCount());
245
+ ]).pipe(map(([filterString, nodeData]) => this.select.filterFn(filterString, nodeData)), publishRef());
246
246
  }
247
247
  get nodeData() {
248
248
  return this._nodeData;
@@ -267,7 +267,7 @@ export class TreeNodeComponent {
267
267
  this.visible$ = combineLatest([
268
268
  this.selfVisible$,
269
269
  hasVisibleChildNodes$,
270
- ]).pipe(map(visible => visible.some(Boolean)), publishReplay(1), refCount());
270
+ ]).pipe(map(visible => visible.some(Boolean)), publishRef());
271
271
  this.visible$.pipe(takeUntil(this.destroy$$)).subscribe(visible => {
272
272
  this.visible = visible;
273
273
  this.cdr.markForCheck();
@@ -337,4 +337,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
337
337
  type: ViewChildren,
338
338
  args: [TreeNodeComponent]
339
339
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxHQUtYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFFSCxFQUFFLEVBQ0YsYUFBYSxFQUNiLFFBQVEsRUFDUixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBSTVDLE9BQU8sRUFFTCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixjQUFjLEdBQ2YsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7O0FBbUJsQixNQUFNLE9BQU8sbUJBQWlDLFNBQVEsaUJBQW9CO0lBZjFFOztRQStCRSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBOEJqQixhQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUcxQixZQUFPLEdBQWUsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQU1wQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHMUMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHaEMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFjeEIsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1QsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFekUsa0JBQWEsR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUd2RSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixpQkFBWSxHQUF1QixFQUFFLENBQUM7UUFzSHRDLDBDQUEwQztRQUMxQyxpQkFBWSxHQUFHLENBQUMsQ0FBUyxFQUFFLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQXlCOUU7SUF4T0MsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFHO1FBQ2YsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBUUQsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFpQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEdBQWlCO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBaUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBNkNELElBQUksV0FBVztRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxHQUFHO1FBQ2xCLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVk7UUFDbEIsTUFBTSxLQUFLLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUEwQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQ3ZDLENBQUMsTUFBTSxDQUFDO0lBQ1gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUEwQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkI7U0FDRjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBVTtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUN6RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVO1lBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQzlDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVrQixPQUFPLENBQUMsQ0FBSTtRQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM5RSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDaEUsQ0FBQztJQUtPLGFBQWEsQ0FBQyxRQUE0QixFQUFFO1FBQ2xELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDakIsQ0FBQyxTQUE2QixFQUFFLFdBQVcsRUFBRSxFQUFFLENBQzdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQ3pFLEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQWlCO1FBQ3hDLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVPLFNBQVMsQ0FBQyxZQUFvQixFQUFFLElBQWlCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLFFBQVEsQ0FBSSxLQUFRO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Z0hBeE9VLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDJVQVJuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixnZUMzREgsazFEQXFFQSwyM0lEMk9hLGlCQUFpQjsyRkFuUGpCLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxhQUNmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFJRyxTQUFTO3NCQURaLEtBQUs7Z0JBZU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJRixVQUFVO3NCQURiLEtBQUs7Z0JBVUYsU0FBUztzQkFEWixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFVTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlQLElBQUk7c0JBREgsTUFBTTtnQkFJRyxTQUFTO3NCQURsQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekMsV0FBVztzQkFEVixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTFDLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQXdLekMsTUFBTSxPQUFPLGlCQUFpQjtJQTZDNUIsWUFDRSxNQUE4QixFQUNiLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBOUN6QyxRQUFHLEdBQVEsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBR3BCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUE4QmpELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFUCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBVXZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQ0QsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQzNCLFdBQVc7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FDdEUsRUFDRCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLFFBQVEsRUFBRSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWE7WUFDekIsSUFBSSxDQUFDLFVBQVU7U0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FDN0MsRUFDRCxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLFFBQVEsRUFBRSxDQUNYLENBQUM7SUFDSixDQUFDO0lBcEVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNkLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsR0FBaUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBa0RELGVBQWU7UUFDYixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDMUIsU0FBUyxDQUFDLENBQUMsS0FBc0MsRUFBRSxFQUFFLENBQ25ELEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNkLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDaEIsRUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUMvRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVk7WUFDakIscUJBQXFCO1NBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNyQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLFFBQVEsRUFBRSxDQUNYLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDbEQscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELHFCQUFxQixDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVMsRUFBRSxJQUFpQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUEwQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQzNCLGNBQWMsQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUM1QixDQUFDO1NBQ0g7SUFDSCxDQUFDOzs4R0E5SlUsaUJBQWlCLGtCQThDbEIsbUJBQW1CO2tHQTlDbEIsaUJBQWlCLGlQQWdDZCxpQkFBaUIsZ0RFaFZqQywrb0NBMENBLDBuQ0ZzUWEsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLOzBEQWdEaEIsbUJBQW1CLDBEQXRDekIsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLFFBQVE7c0JBRFgsS0FBSztnQkFVTixRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBRdWVyeUxpc3QsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHB1Ymxpc2hSZXBsYXksXG4gIHJlZkNvdW50LFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uL2Zvcm0nO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dCc7XG5pbXBvcnQgeyBUcmFja0ZuIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC50eXBlcyc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQge1xuICBCZW0sXG4gIGJ1aWxkQmVtLFxuICBjb2VyY2VBdHRyQm9vbGVhbixcbiAgY29lcmNlU3RyaW5nLFxuICBzY3JvbGxJbnRvVmlldyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4vdHJlZS1zZWxlY3QudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdHJlZS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPFQ+IHtcbiAgQElucHV0KClcbiAgZ2V0IG5vZGVzRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXNEYXRhO1xuICB9XG5cbiAgc2V0IG5vZGVzRGF0YSh2YWwpIHtcbiAgICBpZiAoIXZhbCB8fCB2YWwgPT09IHRoaXMuX25vZGVzRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ub2Rlc0RhdGEgPSB2YWw7XG4gICAgdGhpcy5mbGF0dGVkTm9kZXMgPSB0aGlzLmZsYXROb2Rlc0RhdGEodmFsKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdERpc3BsYXkodGhpcy5wcm9wVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KClcbiAgZ2V0IGZpbHRlcmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmFibGU7XG4gIH1cblxuICBzZXQgZmlsdGVyYWJsZSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2ZpbHRlcmFibGUgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNsZWFyYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xlYXJhYmxlO1xuICB9XG5cbiAgc2V0IGNsZWFyYWJsZSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2NsZWFyYWJsZSA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbGVhZk9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xlYWZPbmx5O1xuICB9XG5cbiAgc2V0IGxlYWZPbmx5KHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fbGVhZk9ubHkgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZmlsdGVyRm4gPSB0aGlzLl9maWx0ZXJGbjtcblxuICBASW5wdXQoKVxuICB0cmFja0ZuOiBUcmFja0ZuPFQ+ID0gdGhpcy5fdHJhY2tGbjtcblxuICBASW5wdXQoKVxuICBsYWJlbEZuPzogKHZhbHVlOiBUKSA9PiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzaG93ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBoaWRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBzZWxlY3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgdG9vbHRpcFJlZjogVG9vbHRpcERpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkKCdub2RlTGlzdFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIG5vZGVMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGlucHV0UmVmOiBJbnB1dENvbXBvbmVudDtcblxuICBwcml2YXRlIF9ub2Rlc0RhdGE6IEFycmF5PFRyZWVOb2RlPFQ+PiA9IFtdO1xuICBwcml2YXRlIF9maWx0ZXJTdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmlsdGVyYWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9jbGVhcmFibGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGVhZk9ubHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTdHJpbmckJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5maWx0ZXJTdHJpbmcpO1xuXG4gIGZpbHRlclN0cmluZyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZmlsdGVyU3RyaW5nJCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29udGFpbmVyV2lkdGg6IHN0cmluZztcbiAgZGlzcGxheVRleHQgPSAnJztcbiAgZmxhdHRlZE5vZGVzOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXTtcblxuICBnZXQgaXNDbGVhcmFibGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJhYmxlICYmIHRoaXMuZ2V0SW5wdXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IG9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwUmVmLmlzQ3JlYXRlZDtcbiAgfVxuXG4gIGdldCBpbnB1dFJlYWRvbmx5KCkge1xuICAgIHJldHVybiAhKHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCk7XG4gIH1cblxuICBnZXQgZmlsdGVyU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XG4gIH1cblxuICBzZXQgZmlsdGVyU3RyaW5nKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHRoaXMuX2ZpbHRlclN0cmluZykge1xuICAgICAgdGhpcy5fZmlsdGVyU3RyaW5nID0gdmFsO1xuICAgICAgdGhpcy5maWx0ZXJTdHJpbmckJC5uZXh0KHZhbCk7XG4gICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgb3Blbk5vZGVzKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi5jcmVhdGVUb29sdGlwKCk7XG4gIH1cblxuICBjbG9zZU5vZGVzKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi5kaXNwb3NlVG9vbHRpcCgpO1xuICB9XG5cbiAgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gIH1cblxuICBvblNob3dOb2RlcygpIHtcbiAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5zZWxlY3RSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgdGhpcy5zaG93LmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkhpZGVOb2RlcygpIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gJyc7XG4gICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbk5vZGVDbGljayhub2RlOiBUcmVlTm9kZUNvbXBvbmVudDxUPikge1xuICAgIHRoaXMuc2VsZWN0Tm9kZShub2RlKTtcbiAgfVxuXG4gIGdldFZpc2libGVOb2RlQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhdHRlZE5vZGVzLmZpbHRlcihub2RlID0+XG4gICAgICB0aGlzLmZpbHRlckZuKHRoaXMuZmlsdGVyU3RyaW5nLCBub2RlKSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIHNlbGVjdE5vZGUobm9kZTogVHJlZU5vZGVDb21wb25lbnQ8VD4pIHtcbiAgICBpZiAoIW5vZGUuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZW1pdFZhbHVlKG5vZGUubm9kZURhdGEudmFsdWUpO1xuICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5jbG9zZU5vZGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZU9wdGlvbigpIHtcbiAgICB0aGlzLnRvb2x0aXBSZWYuZGlzcG9zZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHVwZGF0ZVNlbGVjdERpc3BsYXkodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHBpY2tlZE5vZGUgPSB0aGlzLmZsYXR0ZWROb2Rlcy5maW5kKFxuICAgICAgbm9kZSA9PiB0aGlzLnRyYWNrRm4obm9kZS52YWx1ZSkgPT09IHRoaXMudHJhY2tGbih2YWx1ZSksXG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXlUZXh0ID0gcGlja2VkTm9kZVxuICAgICAgPyB0aGlzLmdldExhYmVsRnJvbU5vZGUocGlja2VkTm9kZSkudG9TdHJpbmcoKVxuICAgICAgOiBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSk7XG4gIH1cblxuICBjbGVhclZhbHVlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZW1pdFZhbHVlKG51bGwpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVJbih2OiBUKTogVCB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3REaXNwbGF5KHYpO1xuICAgIHRoaXMuY2xvc2VOb2RlcygpO1xuICAgIHJldHVybiB2O1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCA/IHRoaXMuZGlzcGxheVRleHQgOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgZ2V0SW5wdXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJhYmxlICYmIHRoaXMub3BlbmVkID8gJycgOiB0aGlzLmRpc3BsYXlUZXh0O1xuICB9XG5cbiAgLy8gYHRoaXNgIGlzIG5vdCBhdmFpbGFibGUgaW4gYHRyYWNrQnlgLi4uXG4gIHRyYWNrQnlMYWJlbCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVOb2RlPFQ+KSA9PiB0aGlzLmdldExhYmVsRnJvbU5vZGUobm9kZSk7XG5cbiAgcHJpdmF0ZSBmbGF0Tm9kZXNEYXRhKG5vZGVzOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXSk6IEFycmF5PFRyZWVOb2RlPFQ+PiB7XG4gICAgcmV0dXJuIG5vZGVzLnJlZHVjZShcbiAgICAgIChwcmV2VmFsdWU6IEFycmF5PFRyZWVOb2RlPFQ+PiwgY3VycmVudE5vZGUpID0+XG4gICAgICAgIHByZXZWYWx1ZS5jb25jYXQoY3VycmVudE5vZGUsIHRoaXMuZmxhdE5vZGVzRGF0YShjdXJyZW50Tm9kZS5jaGlsZHJlbikpLFxuICAgICAgW10sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tTm9kZShub2RlOiBUcmVlTm9kZTxUPikge1xuICAgIHJldHVybiAoXG4gICAgICBub2RlLmxhYmVsIHx8XG4gICAgICB0aGlzLmxhYmVsRm4/Lihub2RlLnZhbHVlKSB8fFxuICAgICAgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbihub2RlLnZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oZmlsdGVyU3RyaW5nOiBzdHJpbmcsIG5vZGU6IFRyZWVOb2RlPFQ+KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGFiZWxGcm9tTm9kZShub2RlKT8uaW5jbHVkZXMoZmlsdGVyU3RyaW5nID8/ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYWNrRm48VD4odmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtbm9kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLW5vZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS10cmVlLW5vZGUnKTtcblxuICBwcml2YXRlIF9ub2RlRGF0YTogVHJlZU5vZGU8VD47XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZURhdGEkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGU8VD4+KHRoaXMubm9kZURhdGEpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG5vZGVEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9ub2RlRGF0YTtcbiAgfVxuXG4gIHNldCBub2RlRGF0YSh2YWwpIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl9ub2RlRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ub2RlRGF0YSA9IHZhbDtcbiAgICB0aGlzLm5vZGVEYXRhJCQubmV4dCh2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxlYWZPbmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9sZWFmT25seTtcbiAgfVxuXG4gIHNldCBsZWFmT25seSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2xlYWZPbmx5ID0gY29lcmNlQXR0ckJvb2xlYW4odmFsKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlUmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgdGl0bGVSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oVHJlZU5vZGVDb21wb25lbnQpXG4gIGNoaWxkTm9kZXM6IFF1ZXJ5TGlzdDxUcmVlTm9kZUNvbXBvbmVudDxUPj47XG5cbiAgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgdmlzaWJsZSA9IHRydWU7XG4gIGlzTGVhZiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xlYWZPbmx5ID0gdHJ1ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD47XG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VsZlZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB2aXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3Q6IFRyZWVTZWxlY3RDb21wb25lbnQ8VD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLnNlbGVjdCA9IHNlbGVjdDtcbiAgICB0aGlzLnNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3QubW9kZWwkLFxuICAgICAgdGhpcy5ub2RlRGF0YSQkLnBpcGUobWFwKGRhdGEgPT4gZGF0YS52YWx1ZSkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbc2VsZWN0VmFsdWUsIHNlbGZWYWx1ZV0pID0+XG4gICAgICAgICAgc2VsZWN0VmFsdWUgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdC50cmFja0ZuKHNlbGVjdFZhbHVlKSA9PT0gdGhpcy5zZWxlY3QudHJhY2tGbihzZWxmVmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHRhcChzZWxlY3RlZCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH0pLFxuICAgICAgcHVibGlzaFJlcGxheSgxKSxcbiAgICAgIHJlZkNvdW50KCksXG4gICAgKTtcbiAgICB0aGlzLnNlbGZWaXNpYmxlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3QuZmlsdGVyU3RyaW5nJCxcbiAgICAgIHRoaXMubm9kZURhdGEkJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZmlsdGVyU3RyaW5nLCBub2RlRGF0YV0pID0+XG4gICAgICAgIHRoaXMuc2VsZWN0LmZpbHRlckZuKGZpbHRlclN0cmluZywgbm9kZURhdGEpLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZXBsYXkoMSksXG4gICAgICByZWZDb3VudCgpLFxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgaGFzVmlzaWJsZUNoaWxkTm9kZXMkID0gdGhpcy5jaGlsZE5vZGVzLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmNoaWxkTm9kZXMpLFxuICAgICAgc3dpdGNoTWFwKChub2RlczogUXVlcnlMaXN0PFRyZWVOb2RlQ29tcG9uZW50PFQ+PikgPT5cbiAgICAgICAgbm9kZXMubGVuZ3RoID4gMFxuICAgICAgICAgID8gY29tYmluZUxhdGVzdChub2Rlcy5tYXAobm9kZSA9PiBub2RlLnZpc2libGUkKSlcbiAgICAgICAgICA6IG9mKFtmYWxzZV0pLFxuICAgICAgKSxcbiAgICAgIG1hcCh2aXNpYmxlID0+IHZpc2libGUuc29tZShCb29sZWFuKSksXG4gICAgICB0YXAoaGFzVmlzaWJsZUNoaWxkcmVuID0+ICh0aGlzLmlzTGVhZiA9ICFoYXNWaXNpYmxlQ2hpbGRyZW4pKSxcbiAgICApO1xuICAgIHRoaXMudmlzaWJsZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZlZpc2libGUkLFxuICAgICAgaGFzVmlzaWJsZUNoaWxkTm9kZXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAodmlzaWJsZSA9PiB2aXNpYmxlLnNvbWUoQm9vbGVhbikpLFxuICAgICAgcHVibGlzaFJlcGxheSgxKSxcbiAgICAgIHJlZkNvdW50KCksXG4gICAgKTtcblxuICAgIHRoaXMudmlzaWJsZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUodmlzaWJsZSA9PiB7XG4gICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMubm9kZURhdGEuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGVhZk9ubHkgJiYgIXRoaXMuaXNMZWFmKSB7XG4gICAgICB0aGlzLnN3aXRjaEV4cGFuZGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0Lm9uTm9kZUNsaWNrKHRoaXMpO1xuICB9XG5cbiAgc3dpdGNoRXhwYW5kZWQoKSB7XG4gICAgdGhpcy5ub2RlRGF0YS5leHBhbmRlZCA9ICF0aGlzLm5vZGVEYXRhLmV4cGFuZGVkO1xuICAgIGlmICh0aGlzLm5vZGVEYXRhLmV4cGFuZGVkICYmIHRoaXMuY2hpbGROb2Rlcy5sYXN0KSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbFRvTm9kZSh0aGlzLmNoaWxkTm9kZXMubGFzdCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRJY29uKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVEYXRhLmV4cGFuZGVkXG4gICAgICA/IHRoaXMubm9kZURhdGEuZXhwYW5kZWRJY29uIHx8IHRoaXMubm9kZURhdGEuaWNvblxuICAgICAgOiB0aGlzLm5vZGVEYXRhLmljb247XG4gIH1cblxuICB0cmFja0J5TGFiZWwoXzogbnVtYmVyLCBkYXRhOiBUcmVlTm9kZTxUPikge1xuICAgIHJldHVybiBkYXRhLmxhYmVsO1xuICB9XG5cbiAgc2Nyb2xsVG9Ob2RlKG5vZGU6IFRyZWVOb2RlQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0Lm5vZGVMaXN0UmVmKSB7XG4gICAgICBzY3JvbGxJbnRvVmlldyhcbiAgICAgICAgdGhpcy5zZWxlY3Qubm9kZUxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgbm9kZS50aXRsZVJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RcIlxuICBbY2xhc3MuaXNEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5pc0NsZWFyYWJsZV09XCJpc0NsZWFyYWJsZVwiXG4gICNzZWxlY3RSZWZcbiAgI3Rvb2x0aXBSZWY9XCJhdWlUb29sdGlwXCJcbiAgW2F1aVRvb2x0aXBdPVwidGVtcGxhdGVSZWZcIlxuICBbYXVpVG9vbHRpcERpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBzdGFydFwiXG4gIGF1aVRvb2x0aXBUeXBlPVwicGxhaW5cIlxuICAoYXVpVG9vbHRpcFNob3cpPVwib25TaG93Tm9kZXMoKVwiXG4gIChhdWlUb29sdGlwSGlkZSk9XCJvbkhpZGVOb2RlcygpXCJcbj5cbiAgPGF1aS1pbnB1dC1ncm91cD5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFJlZlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2lucHV0XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBhdWktaW5wdXRcbiAgICAgIFt2YWx1ZV09XCJnZXRJbnB1dFZhbHVlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgIFtyZWFkb25seV09XCJpbnB1dFJlYWRvbmx5XCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgKGJsdXIpPVwiY2xvc2VOb2RlcygpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxzcGFuXG4gICAgICBhdWlJbnB1dFN1ZmZpeFxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2luZGljYXRvclwiXG4gICAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAnc3Bpbm5lcicgOiAnY2FyZXRfZG93bl9zJ1wiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImF1aS10cmVlLXNlbGVjdF9fY2xlYXJcIlxuICAgICAgICBpY29uPVwiY2xvc2Vfc21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9hdWktaW5wdXQtZ3JvdXA+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjbm9kZUxpc3RSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJfX2NvbnRlbnRcIlxuICAgID5cbiAgICAgIDxhdWktdHJlZS1ub2RlXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG5vZGVzRGF0YTsgdHJhY2tCeTogdHJhY2tCeUxhYmVsXCJcbiAgICAgICAgW25vZGVEYXRhXT1cImRhdGFcIlxuICAgICAgICBbbGVhZk9ubHldPVwibGVhZk9ubHlcIlxuICAgICAgPjwvYXVpLXRyZWUtbm9kZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFnZXRWaXNpYmxlTm9kZUNvdW50KClcIlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlLWNvbnRhaW5lcl9fcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF1aS10cmVlLW5vZGUtcGxhY2Vob2xkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiIsIjxkaXZcbiAgW2hpZGRlbl09XCIhdmlzaWJsZVwiXG4gIGNsYXNzPVwiYXVpLXRyZWUtbm9kZVwiXG4gIFtjbGFzcy5pc0Rpc2FibGVkXT1cIm5vZGVEYXRhLmRpc2FibGVkXCJcbiAgW2NsYXNzLmlzU2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICBbYXR0ci5kYXRhLXZhbHVlXT1cIm5vZGVEYXRhLnZhbHVlXCJcbj5cbiAgPGRpdiBjbGFzcz1cImF1aS10cmVlLW5vZGVfX2NvbnRlbnRcIj5cbiAgICA8YXVpLWljb25cbiAgICAgICpuZ0lmPVwibm9kZURhdGEuY2hpbGRyZW5cIlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlX19pbmRpY2F0b3JcIlxuICAgICAgW2ljb25dPVwibm9kZURhdGEuZXhwYW5kZWQgPyAnYW5nbGVfZG93bicgOiAnYW5nbGVfcmlnaHQnXCJcbiAgICAgIChjbGljayk9XCJzd2l0Y2hFeHBhbmRlZCgpXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgICA8c3BhblxuICAgICAgI3RpdGxlUmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLW5vZGVfX3RpdGxlXCJcbiAgICAgIFtjbGFzcy5pc0Rpc2FibGVkXT1cIm5vZGVEYXRhLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5pc1NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgICAgIFtjbGFzcy51bnNlbGVjdGFibGVdPVwibGVhZk9ubHkgJiYgIWlzTGVhZlwiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgKm5nSWY9XCJub2RlRGF0YS5pY29uXCJcbiAgICAgICAgbWFyZ2luPVwicmlnaHRcIlxuICAgICAgICBbaWNvbl09XCJnZXRJY29uKClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICB7eyBub2RlRGF0YS5sYWJlbCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm5vZGVEYXRhLmNoaWxkcmVuXCJcbiAgICBbaGlkZGVuXT1cIiFub2RlRGF0YS5leHBhbmRlZFwiXG4gICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlX19jaGlsZHJlblwiXG4gID5cbiAgICA8YXVpLXRyZWUtbm9kZVxuICAgICAgKm5nRm9yPVwibGV0IGRhdGEgb2Ygbm9kZURhdGEuY2hpbGRyZW47IHRyYWNrQnk6IHRyYWNrQnlMYWJlbFwiXG4gICAgICBbbm9kZURhdGFdPVwiZGF0YVwiXG4gICAgICBbbGVhZk9ubHldPVwibGVhZk9ubHlcIlxuICAgID48L2F1aS10cmVlLW5vZGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uL3NyYy90cmVlLXNlbGVjdC90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxHQUtYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUk1QyxPQUFPLEVBRUwsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osVUFBVSxFQUNWLGNBQWMsR0FDZixNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7QUFtQmxCLE1BQU0sT0FBTyxtQkFBaUMsU0FBUSxpQkFBb0I7SUFmMUU7O1FBK0JFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHaEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUE4QmpCLGFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRzFCLFlBQU8sR0FBZSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBTXBDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUcxQyxTQUFJLEdB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SSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQTBCO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDM0IsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQzVCLENBQUM7U0FDSDtJQUNILENBQUM7OzhHQTNKVSxpQkFBaUIsa0JBOENsQixtQkFBbUI7a0dBOUNsQixpQkFBaUIsaVBBZ0NkLGlCQUFpQixnREUvVWpDLCtvQ0EwQ0EsMG5DRnFRYSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUs7MERBZ0RoQixtQkFBbUIsMERBdEN6QixRQUFRO3NCQURYLEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO2dCQVVOLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl2QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29tbW9uRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9mb3JtJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQnO1xuaW1wb3J0IHsgVHJhY2tGbiB9IGZyb20gJy4uL3NlbGVjdC9zZWxlY3QudHlwZXMnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL3Rvb2x0aXAnO1xuaW1wb3J0IHtcbiAgQmVtLFxuICBidWlsZEJlbSxcbiAgY29lcmNlQXR0ckJvb2xlYW4sXG4gIGNvZXJjZVN0cmluZyxcbiAgcHVibGlzaFJlZixcbiAgc2Nyb2xsSW50b1ZpZXcsXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtc2VsZWN0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRyZWUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyZWVTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZVNlbGVjdENvbXBvbmVudDxUID0gdW5rbm93bj4gZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxUPiB7XG4gIEBJbnB1dCgpXG4gIGdldCBub2Rlc0RhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzRGF0YTtcbiAgfVxuXG4gIHNldCBub2Rlc0RhdGEodmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgdmFsID09PSB0aGlzLl9ub2Rlc0RhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fbm9kZXNEYXRhID0gdmFsO1xuICAgIHRoaXMuZmxhdHRlZE5vZGVzID0gdGhpcy5mbGF0Tm9kZXNEYXRhKHZhbCk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3REaXNwbGF5KHRoaXMucHJvcFZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBmaWx0ZXJhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJhYmxlO1xuICB9XG5cbiAgc2V0IGZpbHRlcmFibGUodmFsOiBib29sZWFuIHwgJycpIHtcbiAgICB0aGlzLl9maWx0ZXJhYmxlID0gY29lcmNlQXR0ckJvb2xlYW4odmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBjbGVhcmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsZWFyYWJsZTtcbiAgfVxuXG4gIHNldCBjbGVhcmFibGUodmFsOiBib29sZWFuIHwgJycpIHtcbiAgICB0aGlzLl9jbGVhcmFibGUgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxlYWZPbmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9sZWFmT25seTtcbiAgfVxuXG4gIHNldCBsZWFmT25seSh2YWw6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX2xlYWZPbmx5ID0gY29lcmNlQXR0ckJvb2xlYW4odmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuID0gdGhpcy5fZmlsdGVyRm47XG5cbiAgQElucHV0KClcbiAgdHJhY2tGbjogVHJhY2tGbjxUPiA9IHRoaXMuX3RyYWNrRm47XG5cbiAgQElucHV0KClcbiAgbGFiZWxGbj86ICh2YWx1ZTogVCkgPT4gc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgc2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgc2VsZWN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwUmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHRvb2x0aXBSZWY6IFRvb2x0aXBEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZCgnbm9kZUxpc3RSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBub2RlTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogSW5wdXRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfbm9kZXNEYXRhOiBBcnJheTxUcmVlTm9kZTxUPj4gPSBbXTtcbiAgcHJpdmF0ZSBfZmlsdGVyU3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpbHRlcmFibGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2xlYXJhYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgX2xlYWZPbmx5ID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyU3RyaW5nJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuZmlsdGVyU3RyaW5nKTtcblxuICBmaWx0ZXJTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmZpbHRlclN0cmluZyQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnRhaW5lcldpZHRoOiBzdHJpbmc7XG4gIGRpc3BsYXlUZXh0ID0gJyc7XG4gIGZsYXR0ZWROb2RlczogQXJyYXk8VHJlZU5vZGU8VD4+ID0gW107XG5cbiAgZ2V0IGlzQ2xlYXJhYmxlKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNsZWFyYWJsZSAmJiB0aGlzLmdldElucHV0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBvcGVuZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbHRpcFJlZi5pc0NyZWF0ZWQ7XG4gIH1cblxuICBnZXQgaW5wdXRSZWFkb25seSgpIHtcbiAgICByZXR1cm4gISh0aGlzLmZpbHRlcmFibGUgJiYgdGhpcy5vcGVuZWQpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU3RyaW5nO1xuICB9XG5cbiAgc2V0IGZpbHRlclN0cmluZyh2YWwpIHtcbiAgICBpZiAodmFsICE9PSB0aGlzLl9maWx0ZXJTdHJpbmcpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclN0cmluZyA9IHZhbDtcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCQubmV4dCh2YWwpO1xuICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Ob2RlcygpIHtcbiAgICB0aGlzLnRvb2x0aXBSZWYuY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgY2xvc2VOb2RlcygpIHtcbiAgICB0aGlzLnRvb2x0aXBSZWYuZGlzcG9zZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgb25TaG93Tm9kZXMoKSB7XG4gICAgdGhpcy5jb250YWluZXJXaWR0aCA9IHRoaXMuc2VsZWN0UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnO1xuICAgIHRoaXMuc2hvdy5lbWl0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25IaWRlTm9kZXMoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlclN0cmluZyA9ICcnO1xuICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmZpbHRlclN0cmluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ob2RlQ2xpY2sobm9kZTogVHJlZU5vZGVDb21wb25lbnQ8VD4pIHtcbiAgICB0aGlzLnNlbGVjdE5vZGUobm9kZSk7XG4gIH1cblxuICBnZXRWaXNpYmxlTm9kZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYXR0ZWROb2Rlcy5maWx0ZXIobm9kZSA9PlxuICAgICAgdGhpcy5maWx0ZXJGbih0aGlzLmZpbHRlclN0cmluZywgbm9kZSksXG4gICAgKS5sZW5ndGg7XG4gIH1cblxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVOb2RlQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKCFub2RlLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZShub2RlLm5vZGVEYXRhLnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VOb2RlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlT3B0aW9uKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VPcHRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLmRpc3Bvc2VUb29sdGlwKCk7XG4gIH1cblxuICB1cGRhdGVTZWxlY3REaXNwbGF5KHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBwaWNrZWROb2RlID0gdGhpcy5mbGF0dGVkTm9kZXMuZmluZChcbiAgICAgIG5vZGUgPT4gdGhpcy50cmFja0ZuKG5vZGUudmFsdWUpID09PSB0aGlzLnRyYWNrRm4odmFsdWUpLFxuICAgICk7XG4gICAgdGhpcy5kaXNwbGF5VGV4dCA9IHBpY2tlZE5vZGVcbiAgICAgID8gdGhpcy5nZXRMYWJlbEZyb21Ob2RlKHBpY2tlZE5vZGUpLnRvU3RyaW5nKClcbiAgICAgIDogY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbih2YWx1ZSkpO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmVtaXRWYWx1ZShudWxsKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSW4odjogVCk6IFQge1xuICAgIHRoaXMudXBkYXRlU2VsZWN0RGlzcGxheSh2KTtcbiAgICB0aGlzLmNsb3NlTm9kZXMoKTtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmFibGUgJiYgdGhpcy5vcGVuZWQgPyB0aGlzLmRpc3BsYXlUZXh0IDogdGhpcy5wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIGdldElucHV0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCA/ICcnIDogdGhpcy5kaXNwbGF5VGV4dDtcbiAgfVxuXG4gIC8vIGB0aGlzYCBpcyBub3QgYXZhaWxhYmxlIGluIGB0cmFja0J5YC4uLlxuICB0cmFja0J5TGFiZWwgPSAoXzogbnVtYmVyLCBub2RlOiBUcmVlTm9kZTxUPikgPT4gdGhpcy5nZXRMYWJlbEZyb21Ob2RlKG5vZGUpO1xuXG4gIHByaXZhdGUgZmxhdE5vZGVzRGF0YShub2RlczogQXJyYXk8VHJlZU5vZGU8VD4+ID0gW10pOiBBcnJheTxUcmVlTm9kZTxUPj4ge1xuICAgIHJldHVybiBub2Rlcy5yZWR1Y2UoXG4gICAgICAocHJldlZhbHVlOiBBcnJheTxUcmVlTm9kZTxUPj4sIGN1cnJlbnROb2RlKSA9PlxuICAgICAgICBwcmV2VmFsdWUuY29uY2F0KGN1cnJlbnROb2RlLCB0aGlzLmZsYXROb2Rlc0RhdGEoY3VycmVudE5vZGUuY2hpbGRyZW4pKSxcbiAgICAgIFtdLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldExhYmVsRnJvbU5vZGUobm9kZTogVHJlZU5vZGU8VD4pIHtcbiAgICByZXR1cm4gKFxuICAgICAgbm9kZS5sYWJlbCB8fFxuICAgICAgdGhpcy5sYWJlbEZuPy4obm9kZS52YWx1ZSkgfHxcbiAgICAgIGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4obm9kZS52YWx1ZSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckZuKGZpbHRlclN0cmluZzogc3RyaW5nLCBub2RlOiBUcmVlTm9kZTxUPikge1xuICAgIHJldHVybiB0aGlzLmdldExhYmVsRnJvbU5vZGUobm9kZSk/LmluY2x1ZGVzKGZpbHRlclN0cmluZyA/PyAnJyk7XG4gIH1cblxuICBwcml2YXRlIF90cmFja0ZuPFQ+KHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS10cmVlLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1ub2RlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktdHJlZS1ub2RlJyk7XG5cbiAgcHJpdmF0ZSBfbm9kZURhdGE6IFRyZWVOb2RlPFQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVEYXRhJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlPFQ+Pih0aGlzLm5vZGVEYXRhKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBub2RlRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZURhdGE7XG4gIH1cblxuICBzZXQgbm9kZURhdGEodmFsKSB7XG4gICAgaWYgKHZhbCA9PT0gdGhpcy5fbm9kZURhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fbm9kZURhdGEgPSB2YWw7XG4gICAgdGhpcy5ub2RlRGF0YSQkLm5leHQodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBsZWFmT25seSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGVhZk9ubHk7XG4gIH1cblxuICBzZXQgbGVhZk9ubHkodmFsOiBib29sZWFuIHwgJycpIHtcbiAgICB0aGlzLl9sZWFmT25seSA9IGNvZXJjZUF0dHJCb29sZWFuKHZhbCk7XG4gIH1cblxuICBAVmlld0NoaWxkKCd0aXRsZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHRpdGxlUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkcmVuKFRyZWVOb2RlQ29tcG9uZW50KVxuICBjaGlsZE5vZGVzOiBRdWVyeUxpc3Q8VHJlZU5vZGVDb21wb25lbnQ8VD4+O1xuXG4gIHNlbGVjdGVkID0gZmFsc2U7XG4gIHZpc2libGUgPSB0cnVlO1xuICBpc0xlYWYgPSBmYWxzZTtcblxuICBwcml2YXRlIF9sZWFmT25seSA9IHRydWU7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0OiBUcmVlU2VsZWN0Q29tcG9uZW50PFQ+O1xuICBzZWxlY3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNlbGZWaXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdmlzaWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2VsZWN0OiBUcmVlU2VsZWN0Q29tcG9uZW50PFQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3QgPSBzZWxlY3Q7XG4gICAgdGhpcy5zZWxlY3RlZCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZWN0Lm1vZGVsJCxcbiAgICAgIHRoaXMubm9kZURhdGEkJC5waXBlKG1hcChkYXRhID0+IGRhdGEudmFsdWUpKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW3NlbGVjdFZhbHVlLCBzZWxmVmFsdWVdKSA9PlxuICAgICAgICAgIHNlbGVjdFZhbHVlICYmXG4gICAgICAgICAgdGhpcy5zZWxlY3QudHJhY2tGbihzZWxlY3RWYWx1ZSkgPT09IHRoaXMuc2VsZWN0LnRyYWNrRm4oc2VsZlZhbHVlKSxcbiAgICAgICksXG4gICAgICB0YXAoc2VsZWN0ZWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICB9KSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICAgIHRoaXMuc2VsZlZpc2libGUkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNlbGVjdC5maWx0ZXJTdHJpbmckLFxuICAgICAgdGhpcy5ub2RlRGF0YSQkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtmaWx0ZXJTdHJpbmcsIG5vZGVEYXRhXSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3QuZmlsdGVyRm4oZmlsdGVyU3RyaW5nLCBub2RlRGF0YSksXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgaGFzVmlzaWJsZUNoaWxkTm9kZXMkID0gdGhpcy5jaGlsZE5vZGVzLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmNoaWxkTm9kZXMpLFxuICAgICAgc3dpdGNoTWFwKChub2RlczogUXVlcnlMaXN0PFRyZWVOb2RlQ29tcG9uZW50PFQ+PikgPT5cbiAgICAgICAgbm9kZXMubGVuZ3RoID4gMFxuICAgICAgICAgID8gY29tYmluZUxhdGVzdChub2Rlcy5tYXAobm9kZSA9PiBub2RlLnZpc2libGUkKSlcbiAgICAgICAgICA6IG9mKFtmYWxzZV0pLFxuICAgICAgKSxcbiAgICAgIG1hcCh2aXNpYmxlID0+IHZpc2libGUuc29tZShCb29sZWFuKSksXG4gICAgICB0YXAoaGFzVmlzaWJsZUNoaWxkcmVuID0+ICh0aGlzLmlzTGVhZiA9ICFoYXNWaXNpYmxlQ2hpbGRyZW4pKSxcbiAgICApO1xuICAgIHRoaXMudmlzaWJsZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZlZpc2libGUkLFxuICAgICAgaGFzVmlzaWJsZUNoaWxkTm9kZXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAodmlzaWJsZSA9PiB2aXNpYmxlLnNvbWUoQm9vbGVhbikpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLnZpc2libGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSkuc3Vic2NyaWJlKHZpc2libGUgPT4ge1xuICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSkuc3Vic2NyaWJlKHNlbGVjdGVkID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ob2RlKHRoaXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLm5vZGVEYXRhLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxlYWZPbmx5ICYmICF0aGlzLmlzTGVhZikge1xuICAgICAgdGhpcy5zd2l0Y2hFeHBhbmRlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdC5vbk5vZGVDbGljayh0aGlzKTtcbiAgfVxuXG4gIHN3aXRjaEV4cGFuZGVkKCkge1xuICAgIHRoaXMubm9kZURhdGEuZXhwYW5kZWQgPSAhdGhpcy5ub2RlRGF0YS5leHBhbmRlZDtcbiAgICBpZiAodGhpcy5ub2RlRGF0YS5leHBhbmRlZCAmJiB0aGlzLmNoaWxkTm9kZXMubGFzdCkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb05vZGUodGhpcy5jaGlsZE5vZGVzLmxhc3QpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdC51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlRGF0YS5leHBhbmRlZFxuICAgICAgPyB0aGlzLm5vZGVEYXRhLmV4cGFuZGVkSWNvbiB8fCB0aGlzLm5vZGVEYXRhLmljb25cbiAgICAgIDogdGhpcy5ub2RlRGF0YS5pY29uO1xuICB9XG5cbiAgdHJhY2tCeUxhYmVsKF86IG51bWJlciwgZGF0YTogVHJlZU5vZGU8VD4pIHtcbiAgICByZXR1cm4gZGF0YS5sYWJlbDtcbiAgfVxuXG4gIHNjcm9sbFRvTm9kZShub2RlOiBUcmVlTm9kZUNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLnNlbGVjdC5ub2RlTGlzdFJlZikge1xuICAgICAgc2Nyb2xsSW50b1ZpZXcoXG4gICAgICAgIHRoaXMuc2VsZWN0Lm5vZGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG5vZGUudGl0bGVSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0XCJcbiAgW2NsYXNzLmlzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaXNDbGVhcmFibGVdPVwiaXNDbGVhcmFibGVcIlxuICAjc2VsZWN0UmVmXG4gICN0b29sdGlwUmVmPVwiYXVpVG9vbHRpcFwiXG4gIFthdWlUb29sdGlwXT1cInRlbXBsYXRlUmVmXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gc3RhcnRcIlxuICBhdWlUb29sdGlwVHlwZT1cInBsYWluXCJcbiAgKGF1aVRvb2x0aXBTaG93KT1cIm9uU2hvd05vZGVzKClcIlxuICAoYXVpVG9vbHRpcEhpZGUpPVwib25IaWRlTm9kZXMoKVwiXG4+XG4gIDxhdWktaW5wdXQtZ3JvdXA+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRSZWZcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0X19pbnB1dFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgYXVpLWlucHV0XG4gICAgICBbdmFsdWVdPVwiZ2V0SW5wdXRWYWx1ZSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXG4gICAgICBbcmVhZG9ubHldPVwiaW5wdXRSZWFkb25seVwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cImNsb3NlTm9kZXMoKVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8c3BhblxuICAgICAgYXVpSW5wdXRTdWZmaXhcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0X19pY29uLWNvbnRhaW5lclwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYXVpLXRyZWUtc2VsZWN0X19pbmRpY2F0b3JcIlxuICAgICAgICBbaWNvbl09XCJsb2FkaW5nID8gJ3NwaW5uZXInIDogJ2NhcmV0X2Rvd25fcydcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktdHJlZS1zZWxlY3RfX2NsZWFyXCJcbiAgICAgICAgaWNvbj1cImNsb3NlX3NtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvYXVpLWlucHV0LWdyb3VwPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF1aS10cmVlLW5vZGUtY29udGFpbmVyXCJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI25vZGVMaXN0UmVmXG4gICAgICBjbGFzcz1cImF1aS10cmVlLW5vZGUtY29udGFpbmVyX19jb250ZW50XCJcbiAgICA+XG4gICAgICA8YXVpLXRyZWUtbm9kZVxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBub2Rlc0RhdGE7IHRyYWNrQnk6IHRyYWNrQnlMYWJlbFwiXG4gICAgICAgIFtub2RlRGF0YV09XCJkYXRhXCJcbiAgICAgICAgW2xlYWZPbmx5XT1cImxlYWZPbmx5XCJcbiAgICAgID48L2F1aS10cmVlLW5vZGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhZ2V0VmlzaWJsZU5vZGVDb3VudCgpXCJcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZS1jb250YWluZXJfX3BsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhdWktdHJlZS1ub2RlLXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iLCI8ZGl2XG4gIFtoaWRkZW5dPVwiIXZpc2libGVcIlxuICBjbGFzcz1cImF1aS10cmVlLW5vZGVcIlxuICBbY2xhc3MuaXNEaXNhYmxlZF09XCJub2RlRGF0YS5kaXNhYmxlZFwiXG4gIFtjbGFzcy5pc1NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgW2F0dHIuZGF0YS12YWx1ZV09XCJub2RlRGF0YS52YWx1ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhdWktdHJlZS1ub2RlX19jb250ZW50XCI+XG4gICAgPGF1aS1pY29uXG4gICAgICAqbmdJZj1cIm5vZGVEYXRhLmNoaWxkcmVuXCJcbiAgICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9faW5kaWNhdG9yXCJcbiAgICAgIFtpY29uXT1cIm5vZGVEYXRhLmV4cGFuZGVkID8gJ2FuZ2xlX2Rvd24nIDogJ2FuZ2xlX3JpZ2h0J1wiXG4gICAgICAoY2xpY2spPVwic3dpdGNoRXhwYW5kZWQoKVwiXG4gICAgPjwvYXVpLWljb24+XG4gICAgPHNwYW5cbiAgICAgICN0aXRsZVJlZlxuICAgICAgY2xhc3M9XCJhdWktdHJlZS1ub2RlX190aXRsZVwiXG4gICAgICBbY2xhc3MuaXNEaXNhYmxlZF09XCJub2RlRGF0YS5kaXNhYmxlZFwiXG4gICAgICBbY2xhc3MuaXNTZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICBbY2xhc3MudW5zZWxlY3RhYmxlXT1cImxlYWZPbmx5ICYmICFpc0xlYWZcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwibm9kZURhdGEuaWNvblwiXG4gICAgICAgIG1hcmdpbj1cInJpZ2h0XCJcbiAgICAgICAgW2ljb25dPVwiZ2V0SWNvbigpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAge3sgbm9kZURhdGEubGFiZWwgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJub2RlRGF0YS5jaGlsZHJlblwiXG4gICAgW2hpZGRlbl09XCIhbm9kZURhdGEuZXhwYW5kZWRcIlxuICAgIGNsYXNzPVwiYXVpLXRyZWUtbm9kZV9fY2hpbGRyZW5cIlxuICA+XG4gICAgPGF1aS10cmVlLW5vZGVcbiAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG5vZGVEYXRhLmNoaWxkcmVuOyB0cmFja0J5OiB0cmFja0J5TGFiZWxcIlxuICAgICAgW25vZGVEYXRhXT1cImRhdGFcIlxuICAgICAgW2xlYWZPbmx5XT1cImxlYWZPbmx5XCJcbiAgICA+PC9hdWktdHJlZS1ub2RlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -3,6 +3,7 @@ export * from './bem';
3
3
  export * from './coercion';
4
4
  export * from './fn';
5
5
  export * from './observe-dom';
6
+ export * from './operators';
6
7
  export * from './scroll-into-view';
7
8
  export * from './watch-content-exist';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2JlbSc7XG5leHBvcnQgKiBmcm9tICcuL2NvZXJjaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZm4nO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLWRvbSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1pbnRvLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaC1jb250ZW50LWV4aXN0JztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2JlbSc7XG5leHBvcnQgKiBmcm9tICcuL2NvZXJjaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZm4nO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLWRvbSc7XG5leHBvcnQgKiBmcm9tICcuL29wZXJhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1pbnRvLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaC1jb250ZW50LWV4aXN0JztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { pipe, publishReplay, refCount } from 'rxjs';
2
+ /**
3
+ * @see https://rxjs.dev/deprecations/multicasting#publishreplay
4
+ *
5
+ * FIXME:
6
+ * The recommended replacement is breaking our apps for watching resources,
7
+ * revert it back temporarily. see also https://github.com/ReactiveX/rxjs/discussions/6438
8
+ */
9
+ export const publishRef = (bufferSize = 1, windowTime) =>
10
+ // eslint-disable-next-line sonar/deprecation
11
+ pipe(publishReplay(bufferSize, windowTime), refCount());
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUksVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFtQixFQUFFLEVBQUU7QUFDbkUsNkNBQTZDO0FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUksVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwaXBlLCBwdWJsaXNoUmVwbGF5LCByZWZDb3VudCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nI3B1Ymxpc2hyZXBsYXlcbiAqXG4gKiBGSVhNRTpcbiAqIFRoZSByZWNvbW1lbmRlZCByZXBsYWNlbWVudCBpcyBicmVha2luZyBvdXIgYXBwcyBmb3Igd2F0Y2hpbmcgcmVzb3VyY2VzLFxuICogcmV2ZXJ0IGl0IGJhY2sgdGVtcG9yYXJpbHkuIHNlZSBhbHNvIGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9kaXNjdXNzaW9ucy82NDM4XG4gKi9cbmV4cG9ydCBjb25zdCBwdWJsaXNoUmVmID0gPFQ+KGJ1ZmZlclNpemUgPSAxLCB3aW5kb3dUaW1lPzogbnVtYmVyKSA9PlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXIvZGVwcmVjYXRpb25cbiAgcGlwZShwdWJsaXNoUmVwbGF5PFQ+KGJ1ZmZlclNpemUsIHdpbmRvd1RpbWUpLCByZWZDb3VudCgpKTtcbiJdfQ==
@@ -1,5 +1,6 @@
1
- import { map, publishReplay, refCount, startWith } from 'rxjs/operators';
1
+ import { map, startWith } from 'rxjs';
2
+ import { publishRef } from './operators';
2
3
  export function watchContentExist(queryList) {
3
- return queryList.changes.pipe(startWith(queryList), map((list) => !!list.length), publishReplay(1), refCount());
4
+ return queryList.changes.pipe(startWith(queryList), map((list) => !!list.length), publishRef());
4
5
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtY29udGVudC1leGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy93YXRjaC1jb250ZW50LWV4aXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsU0FBNkI7SUFDN0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDM0IsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUNwQixHQUFHLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUNoRCxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLFFBQVEsRUFBRSxDQUNYLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHB1Ymxpc2hSZXBsYXksIHJlZkNvdW50LCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXRjaENvbnRlbnRFeGlzdChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDx1bmtub3duPikge1xuICByZXR1cm4gcXVlcnlMaXN0LmNoYW5nZXMucGlwZShcbiAgICBzdGFydFdpdGgocXVlcnlMaXN0KSxcbiAgICBtYXAoKGxpc3Q6IFF1ZXJ5TGlzdDx1bmtub3duPikgPT4gISFsaXN0Lmxlbmd0aCksXG4gICAgcHVibGlzaFJlcGxheSgxKSxcbiAgICByZWZDb3VudCgpLFxuICApO1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtY29udGVudC1leGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy93YXRjaC1jb250ZW50LWV4aXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQTZCO0lBQzdELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzNCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsR0FBRyxDQUFDLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDaEQsVUFBVSxFQUFFLENBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHB1Ymxpc2hSZWYgfSBmcm9tICcuL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXRjaENvbnRlbnRFeGlzdChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDx1bmtub3duPikge1xuICByZXR1cm4gcXVlcnlMaXN0LmNoYW5nZXMucGlwZShcbiAgICBzdGFydFdpdGgocXVlcnlMaXN0KSxcbiAgICBtYXAoKGxpc3Q6IFF1ZXJ5TGlzdDx1bmtub3duPikgPT4gISFsaXN0Lmxlbmd0aCksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xufVxuIl19