igniteui-angular 17.1.0-rc.0 → 17.1.1

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 (58) hide show
  1. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  2. package/esm2022/lib/badge/badge.component.mjs +2 -2
  3. package/esm2022/lib/banner/banner.component.mjs +1 -1
  4. package/esm2022/lib/calendar/calendar-base.mjs +3 -3
  5. package/esm2022/lib/calendar/calendar.component.mjs +22 -22
  6. package/esm2022/lib/calendar/calendar.mjs +9 -23
  7. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +2 -3
  8. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
  9. package/esm2022/lib/card/card.component.mjs +3 -3
  10. package/esm2022/lib/carousel/carousel-base.mjs +2 -7
  11. package/esm2022/lib/carousel/carousel.component.mjs +3 -7
  12. package/esm2022/lib/carousel/enums.mjs +11 -0
  13. package/esm2022/lib/carousel/public_api.mjs +3 -2
  14. package/esm2022/lib/carousel/slide.component.mjs +1 -1
  15. package/esm2022/lib/checkbox/checkbox.component.mjs +2 -2
  16. package/esm2022/lib/chips/chip.component.mjs +2 -2
  17. package/esm2022/lib/combo/combo.common.mjs +7 -15
  18. package/esm2022/lib/core/selection.mjs +8 -1
  19. package/esm2022/lib/data-operations/data-util.mjs +2 -2
  20. package/esm2022/lib/date-common/types.mjs +3 -3
  21. package/esm2022/lib/directives/button/button-base.mjs +2 -2
  22. package/esm2022/lib/directives/button/button.directive.mjs +2 -2
  23. package/esm2022/lib/directives/divider/divider.directive.mjs +2 -2
  24. package/esm2022/lib/directives/mask/mask.directive.mjs +1 -1
  25. package/esm2022/lib/drop-down/drop-down.common.mjs +3 -3
  26. package/esm2022/lib/drop-down/drop-down.component.mjs +3 -3
  27. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +2 -2
  28. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +2 -2
  29. package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
  30. package/esm2022/lib/grids/grid-base.directive.mjs +2 -2
  31. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +39 -10
  32. package/esm2022/lib/input-group/input-group.component.mjs +2 -2
  33. package/esm2022/lib/input-group/inputGroupType.mjs +3 -3
  34. package/esm2022/lib/progressbar/progressbar.component.mjs +3 -3
  35. package/esm2022/lib/select/select.component.mjs +1 -9
  36. package/esm2022/lib/services/direction/directionality.mjs +2 -2
  37. package/esm2022/lib/splitter/splitter.component.mjs +3 -3
  38. package/esm2022/lib/stepper/step/step.component.mjs +3 -2
  39. package/esm2022/lib/stepper/stepper.common.mjs +3 -3
  40. package/esm2022/lib/stepper/stepper.component.mjs +1 -1
  41. package/esm2022/lib/tabs/tabs/tabs.component.mjs +11 -18
  42. package/esm2022/lib/tree/common.mjs +4 -4
  43. package/fesm2022/igniteui-angular.mjs +136 -136
  44. package/fesm2022/igniteui-angular.mjs.map +1 -1
  45. package/lib/calendar/calendar.d.ts +1 -1
  46. package/lib/carousel/carousel-base.d.ts +1 -6
  47. package/lib/carousel/carousel.component.d.ts +2 -6
  48. package/lib/carousel/enums.d.ts +11 -0
  49. package/lib/carousel/public_api.d.ts +2 -1
  50. package/lib/combo/combo.common.d.ts +1 -1
  51. package/lib/core/selection.d.ts +5 -0
  52. package/lib/grids/common/grid.interface.d.ts +3 -0
  53. package/lib/grids/hierarchical-grid/row-island.component.d.ts +25 -5
  54. package/lib/select/select.component.d.ts +0 -4
  55. package/lib/splitter/splitter.component.d.ts +1 -1
  56. package/lib/stepper/stepper.common.d.ts +2 -1
  57. package/lib/stepper/stepper.component.d.ts +2 -1
  58. package/package.json +2 -2
@@ -4,12 +4,12 @@ import { mkenum } from '../core/utils';
4
4
  import { IgxIconComponent } from '../icon/icon.component';
5
5
  import * as i0 from "@angular/core";
6
6
  let NEXT_ID = 0;
7
- export const IgxAvatarSize = mkenum({
7
+ export const IgxAvatarSize = /*@__PURE__*/ mkenum({
8
8
  SMALL: 'small',
9
9
  MEDIUM: 'medium',
10
10
  LARGE: 'large'
11
11
  });
12
- export const IgxAvatarType = mkenum({
12
+ export const IgxAvatarType = /*@__PURE__*/ mkenum({
13
13
  INITIALS: 'initials',
14
14
  IMAGE: 'image',
15
15
  ICON: 'icon',
@@ -295,4 +295,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
295
295
  type: HostBinding,
296
296
  args: ['style.--component-size']
297
297
  }] } });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDSCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQyxDQUFDO0FBR0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUNoQyxRQUFRLEVBQUUsVUFBVTtJQUNwQixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7Q0FDbkIsQ0FBQyxDQUFDO0FBR0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU9ILE1BQU0sT0FBTyxrQkFBa0I7SUE2RDNCOzs7Ozs7Ozs7T0FTRztJQUNILHdCQUF3QjtJQUN4QixJQUVXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxD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LFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFZQyxRQUFRO3NCQURkLEtBQUs7Z0JBWUMsSUFBSTtzQkFEVixLQUFLO2dCQWFDLEdBQUc7c0JBRFQsS0FBSztnQkFLSSxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUt2RCxhQUFhO3NCQUR0QixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLckQsZ0JBQWdCO3NCQUR6QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUt4RCxZQUFZO3NCQURyQixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFrQm5ELElBQUk7c0JBRGQsS0FBSztnQkFvREssWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBTTNCLFdBQVc7c0JBRHJCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQU0xQixlQUFlO3NCQUR6QixXQUFXO3VCQUFDLDRCQUE0QjtnQkFNM0IsYUFBYTtzQkFEMUIsV0FBVzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbmxldCBORVhUX0lEID0gMDtcbmV4cG9ydCBjb25zdCBJZ3hBdmF0YXJTaXplID0gbWtlbnVtKHtcbiAgICBTTUFMTDogJ3NtYWxsJyxcbiAgICBNRURJVU06ICdtZWRpdW0nLFxuICAgIExBUkdFOiAnbGFyZ2UnXG59KTtcbmV4cG9ydCB0eXBlIElneEF2YXRhclNpemUgPSAodHlwZW9mIElneEF2YXRhclNpemUpW2tleW9mIHR5cGVvZiBJZ3hBdmF0YXJTaXplXTtcblxuZXhwb3J0IGNvbnN0IElneEF2YXRhclR5cGUgPSBta2VudW0oe1xuICAgIElOSVRJQUxTOiAnaW5pdGlhbHMnLFxuICAgIElNQUdFOiAnaW1hZ2UnLFxuICAgIElDT046ICdpY29uJyxcbiAgICBDVVNUT006ICdjdXN0b20nXG59KTtcbmV4cG9ydCB0eXBlIElneEF2YXRhclR5cGUgPSAodHlwZW9mIElneEF2YXRhclR5cGUpW2tleW9mIHR5cGVvZiBJZ3hBdmF0YXJUeXBlXTtcblxuLyoqXG4gKiBBdmF0YXIgcHJvdmlkZXMgYSB3YXkgdG8gZGlzcGxheSBhbiBpbWFnZSwgaWNvbiBvciBpbml0aWFscyB0byB0aGUgdXNlci5cbiAqXG4gKiBAaWd4TW9kdWxlIElneEF2YXRhck1vZHVsZVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtYXZhdGFyLXRoZW1lLCBpZ3gtaWNvbi10aGVtZVxuICpcbiAqIEBpZ3hLZXl3b3JkcyBhdmF0YXIsIHByb2ZpbGUsIHBpY3R1cmUsIGluaXRpYWxzXG4gKlxuICogQGlneEdyb3VwIExheW91dHNcbiAqXG4gKiBAcmVtYXJrc1xuICpcbiAqIFRoZSBJZ25pdGUgVUkgQXZhdGFyIHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGFkZCBhbiBhdmF0YXIgaWNvbiB0byB5b3VyIGFwcGxpY2F0aW9uLiAgVGhpcyBpY29uIGNhbiBiZSBhblxuICogaW1hZ2UsIHNvbWVvbmUncyBpbml0aWFscyBvciBhIG1hdGVyaWFsIGljb24gZnJvbSB0aGUgR29vZ2xlIE1hdGVyaWFsIGljb24gc2V0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWF2YXRhciBpbml0aWFscz1cIk1TXCIgc2hhcGU9XCJyb3VuZGVkXCIgc2l6ZT1cImxhcmdlXCI+XG4gKiA8L2lneC1hdmF0YXI+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSWd4SWNvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4QXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXJpYUxhYmVsID0gdGhpcy5hdmF0YXIuYXJpYUxhYmVsO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIHB1YmxpYyBhcmlhTGFiZWwgPSAnYXZhdGFyJztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBhdmF0YXJSb2xlID0gdGhpcy5hdmF0YXIucm9sZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHVibGljIHJvbGUgPSAnaW1nJztcblxuICAgIC8qKlxuICAgICAqIEhvc3QgYGNsYXNzLmlneC1hdmF0YXJgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYXZhdGFyJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWF2YXRhcic7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBhdmF0YXIuXG4gICAgICogVGhlIGF2YXRhciBjYW4gYmU6XG4gICAgICogLSBgXCJpbml0aWFscyB0eXBlIGF2YXRhclwiYFxuICAgICAqIC0gYFwiaWNvbiB0eXBlIGF2YXRhclwiYFxuICAgICAqIC0gYFwiaW1hZ2UgdHlwZSBhdmF0YXJcImAuXG4gICAgICogLSBgXCJjdXN0b20gdHlwZSBhdmF0YXJcImAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXZhdGFyRGVzY3JpcHRpb24gPSB0aGlzLmF2YXRhci5yb2xlRGVzY3JpcHRpb247XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uJylcbiAgICBwdWJsaWMgcm9sZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgaWRgIG9mIHRoZSBhdmF0YXIuIElmIG5vdCBzZXQsIHRoZSBmaXJzdCBhdmF0YXIgY29tcG9uZW50IHdpbGwgaGF2ZSBgaWRgID0gYFwiaWd4LWF2YXRhci0wXCJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hdmF0YXIgaWQ9XCJteS1maXJzdC1hdmF0YXJcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYXZhdGFyLSR7TkVYVF9JRCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBpbiB2ZXJzaW9uIDE1LjEuMC5cbiAgICAgKiBTZXRzIGEgY2lyY3VsYXIgc2hhcGUgdG8gdGhlIGF2YXRhciwgaWYgYFtyb3VuZFNoYXBlXWAgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBzaGFwZSBvZiB0aGUgYXZhdGFyIGlzIGEgc3F1YXJlLlxuICAgICAqIFxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYXZhdGFyIFtyb3VuZFNoYXBlXT1cInRydWVcIiA+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYXZhdGFyLS1jaXJjbGUnKVxuICAgIHB1YmxpYyBnZXQgcm91bmRTaGFwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhcGUgPT09ICdjaXJjbGUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcm91bmRTaGFwZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNoYXBlID0gdmFsdWUgPT09IHRydWUgPyAnY2lyY2xlJyA6ICdzcXVhcmUnO1xuICAgIH0gIFxuXG4gICAgLyoqXG4gICAgICogU2V0cyBzcXVhcmUsIHJvdW5kZWQgb3IgY2lyY3VsYXIgc2hhcGUgdG8gdGhlIGF2YXRhci5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBzaGFwZSBvZiB0aGUgYXZhdGFyIGlzIHNxdWFyZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYXZhdGFyIHNoYXBlPVwicm91bmRlZFwiPjwvaWd4LWF2YXRhcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaGFwZTogJ3NxdWFyZScgfCAncm91bmRlZCcgfCAnY2lyY2xlJyA9ICdzcXVhcmUnO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYXZhdGFyLS1yb3VuZGVkJylcbiAgICBwdWJsaWMgZ2V0IGlzUm91bmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhcGUgPT09ICdyb3VuZGVkJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjb2xvciBvZiB0aGUgYXZhdGFyJ3MgaW5pdGlhbHMgb3IgaWNvbi5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYXZhdGFyIGNvbG9yPVwiYmx1ZVwiPjwvaWd4LWF2YXRhcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuY29sb3InKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbG9yOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBiZ0NvbG9yPVwieWVsbG93XCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqIEBpZ3hGcmllbmRseU5hbWUgQmFja2dyb3VuZCBjb2xvclxuICAgICAqL1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGluaXRpYWxzIHRvIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBpbml0aWFscz1cIk1OXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluaXRpYWxzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGFuIGljb24gdG8gdGhlIGF2YXRhci4gQWxsIGljb25zIGZyb20gdGhlIG1hdGVyaWFsIGljb24gc2V0IGFyZSBzdXBwb3J0ZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBpY29uPVwicGhvbmVcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgaW1hZ2Ugc291cmNlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBzcmM9XCJpbWFnZXMvcGljdHVyZS5qcGdcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICogQGlneEZyaWVuZGx5TmFtZSBJbWFnZSBVUkxcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcmM6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAVmlld0NoaWxkKCdpbWFnZVRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGltYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAVmlld0NoaWxkKCdpbml0aWFsc1RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGluaXRpYWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAVmlld0NoaWxkKCdpY29uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NpemU6IHN0cmluZyB8IElneEF2YXRhclNpemU7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXZhdGFyU2l6ZSA9IHRoaXMuYXZhdGFyLnNpemU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogc3RyaW5nIHwgSWd4QXZhdGFyU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplIHx8IElneEF2YXRhclNpemUuU01BTEw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc2l6ZSAgb2YgdGhlIGF2YXRhci5cbiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgc2l6ZSBpcyBgXCJzbWFsbFwiYC4gSXQgY2FuIGJlIHNldCB0byBgXCJtZWRpdW1cImAgb3IgYFwibGFyZ2VcImAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBzaXplPVwibGFyZ2VcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNldCBzaXplKHZhbHVlOiBzdHJpbmcgfCBJZ3hBdmF0YXJTaXplKSB7XG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLl9zaXplID0gJ3NtYWxsJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBhdmF0YXJUeXBlID0gdGhpcy5hdmF0YXIudHlwZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKTogSWd4QXZhdGFyVHlwZSB7XG4gICAgICAgIGlmICh0aGlzLnNyYykge1xuICAgICAgICAgICAgcmV0dXJuIElneEF2YXRhclR5cGUuSU1BR0U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pY29uKSB7XG4gICAgICAgICAgICByZXR1cm4gSWd4QXZhdGFyVHlwZS5JQ09OO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbHMpIHtcbiAgICAgICAgICAgIHJldHVybiBJZ3hBdmF0YXJUeXBlLklOSVRJQUxTO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIElneEF2YXRhclR5cGUuQ1VTVE9NO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWF2YXRhci0taW1hZ2UnKVxuICAgIHB1YmxpYyBnZXQgX2lzSW1hZ2VUeXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hBdmF0YXJUeXBlLklNQUdFO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1hdmF0YXItLWljb24nKVxuICAgIHB1YmxpYyBnZXQgX2lzSWNvblR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEF2YXRhclR5cGUuSUNPTjtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYXZhdGFyLS1pbml0aWFscycpXG4gICAgcHVibGljIGdldCBfaXNJbml0aWFsc1R5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEF2YXRhclR5cGUuSU5JVElBTFM7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWNvbXBvbmVudC1zaXplJylcbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXBvbmVudFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gYHZhcigtLWlnLXNpemUtJHt0aGlzLl9zaXplfSlgO1xuICAgICAgICB9IFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHRlbXBsYXRlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCB0ZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSWd4QXZhdGFyVHlwZS5JTUFHRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbWFnZVRlbXBsYXRlO1xuICAgICAgICAgICAgY2FzZSBJZ3hBdmF0YXJUeXBlLklOSVRJQUxTOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxzVGVtcGxhdGU7XG4gICAgICAgICAgICBjYXNlIElneEF2YXRhclR5cGUuSUNPTjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pY29uVGVtcGxhdGU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNzcyB1cmwgb2YgdGhlIGltYWdlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTcmNVcmwoKSB7XG4gICAgICAgIHJldHVybiBgdXJsKCR7dGhpcy5zcmN9KWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvbGVEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0Um9sZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHByaXZhdGUgZ2V0Um9sZSgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBJZ3hBdmF0YXJUeXBlLklNQUdFOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UgYXZhdGFyJztcbiAgICAgICAgICAgIGNhc2UgSWd4QXZhdGFyVHlwZS5JQ09OOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaWNvbiBhdmF0YXInO1xuICAgICAgICAgICAgY2FzZSBJZ3hBdmF0YXJUeXBlLklOSVRJQUxTOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW5pdGlhbHMgYXZhdGFyJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjdXN0b20gYXZhdGFyJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbWFnZVRlbXBsYXRlPlxuICAgIDxkaXYgI2ltYWdlIGNsYXNzPVwiaWd4LWF2YXRhcl9faW1hZ2VcIiBbc3R5bGUuYmFja2dyb3VuZEltYWdlXT1cImdldFNyY1VybCgpXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2luaXRpYWxzVGVtcGxhdGU+XG4gICAgPHNwYW4+e3tpbml0aWFscy5zdWJzdHJpbmcoMCwgMil9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlPlxuICAgICA8aWd4LWljb24+e3tpY29ufX08L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDSCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFBLE1BQU0sQ0FBQztJQUM3QyxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0NBQ2pCLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUEsTUFBTSxDQUFDO0lBQzdDLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtDQUNuQixDQUFDLENBQUM7QUFHSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQTZEM0I7Ozs7Ozs7OztPQVNHO0lBQ0gsd0JBQXdCO0lBQ3hCLElBRVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLEtB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QUFLO2dCQWVDLE9BQU87c0JBRmIsV0FBVzt1QkFBQyxrQkFBa0I7O3NCQUM5QixLQUFLO2dCQVlDLFFBQVE7c0JBRGQsS0FBSztnQkFZQyxJQUFJO3NCQURWLEtBQUs7Z0JBYUMsR0FBRztzQkFEVCxLQUFLO2dCQUtJLGVBQWU7c0JBRHhCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS3ZELGFBQWE7c0JBRHRCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtyRCxnQkFBZ0I7c0JBRHpCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS3hELFlBQVk7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWtCbkQsSUFBSTtzQkFEZCxLQUFLO2dCQW9ESyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLHlCQUF5QjtnQkFNM0IsV0FBVztzQkFEckIsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBTTFCLGVBQWU7c0JBRHpCLFdBQVc7dUJBQUMsNEJBQTRCO2dCQU0zQixhQUFhO3NCQUQxQixXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBta2VudW0gfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcblxubGV0IE5FWFRfSUQgPSAwO1xuZXhwb3J0IGNvbnN0IElneEF2YXRhclNpemUgPSAvKkBfX1BVUkVfXyovbWtlbnVtKHtcbiAgICBTTUFMTDogJ3NtYWxsJyxcbiAgICBNRURJVU06ICdtZWRpdW0nLFxuICAgIExBUkdFOiAnbGFyZ2UnXG59KTtcbmV4cG9ydCB0eXBlIElneEF2YXRhclNpemUgPSAodHlwZW9mIElneEF2YXRhclNpemUpW2tleW9mIHR5cGVvZiBJZ3hBdmF0YXJTaXplXTtcblxuZXhwb3J0IGNvbnN0IElneEF2YXRhclR5cGUgPSAvKkBfX1BVUkVfXyovbWtlbnVtKHtcbiAgICBJTklUSUFMUzogJ2luaXRpYWxzJyxcbiAgICBJTUFHRTogJ2ltYWdlJyxcbiAgICBJQ09OOiAnaWNvbicsXG4gICAgQ1VTVE9NOiAnY3VzdG9tJ1xufSk7XG5leHBvcnQgdHlwZSBJZ3hBdmF0YXJUeXBlID0gKHR5cGVvZiBJZ3hBdmF0YXJUeXBlKVtrZXlvZiB0eXBlb2YgSWd4QXZhdGFyVHlwZV07XG5cbi8qKlxuICogQXZhdGFyIHByb3ZpZGVzIGEgd2F5IHRvIGRpc3BsYXkgYW4gaW1hZ2UsIGljb24gb3IgaW5pdGlhbHMgdG8gdGhlIHVzZXIuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hBdmF0YXJNb2R1bGVcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LWF2YXRhci10aGVtZSwgaWd4LWljb24tdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYXZhdGFyLCBwcm9maWxlLCBwaWN0dXJlLCBpbml0aWFsc1xuICpcbiAqIEBpZ3hHcm91cCBMYXlvdXRzXG4gKlxuICogQHJlbWFya3NcbiAqXG4gKiBUaGUgSWduaXRlIFVJIEF2YXRhciBwcm92aWRlcyBhbiBlYXN5IHdheSB0byBhZGQgYW4gYXZhdGFyIGljb24gdG8geW91ciBhcHBsaWNhdGlvbi4gIFRoaXMgaWNvbiBjYW4gYmUgYW5cbiAqIGltYWdlLCBzb21lb25lJ3MgaW5pdGlhbHMgb3IgYSBtYXRlcmlhbCBpY29uIGZyb20gdGhlIEdvb2dsZSBNYXRlcmlhbCBpY29uIHNldC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1hdmF0YXIgaW5pdGlhbHM9XCJNU1wiIHNoYXBlPVwicm91bmRlZFwiIHNpemU9XCJsYXJnZVwiPlxuICogPC9pZ3gtYXZhdGFyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWF2YXRhcicsXG4gICAgdGVtcGxhdGVVcmw6ICdhdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneEljb25Db21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIElneEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSBvZiB0aGUgYXZhdGFyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGFyaWFMYWJlbCA9IHRoaXMuYXZhdGFyLmFyaWFMYWJlbDtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBwdWJsaWMgYXJpYUxhYmVsID0gJ2F2YXRhcic7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgcm9sZWAgYXR0cmlidXRlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXZhdGFyUm9sZSA9IHRoaXMuYXZhdGFyLnJvbGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHB1YmxpYyByb2xlID0gJ2ltZyc7XG5cbiAgICAvKipcbiAgICAgKiBIb3N0IGBjbGFzcy5pZ3gtYXZhdGFyYCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWF2YXRhcicpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1hdmF0YXInO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYXZhdGFyLlxuICAgICAqIFRoZSBhdmF0YXIgY2FuIGJlOlxuICAgICAqIC0gYFwiaW5pdGlhbHMgdHlwZSBhdmF0YXJcImBcbiAgICAgKiAtIGBcImljb24gdHlwZSBhdmF0YXJcImBcbiAgICAgKiAtIGBcImltYWdlIHR5cGUgYXZhdGFyXCJgLlxuICAgICAqIC0gYFwiY3VzdG9tIHR5cGUgYXZhdGFyXCJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGF2YXRhckRlc2NyaXB0aW9uID0gdGhpcy5hdmF0YXIucm9sZURlc2NyaXB0aW9uO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbicpXG4gICAgcHVibGljIHJvbGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYGlkYCBvZiB0aGUgYXZhdGFyLiBJZiBub3Qgc2V0LCB0aGUgZmlyc3QgYXZhdGFyIGNvbXBvbmVudCB3aWxsIGhhdmUgYGlkYCA9IGBcImlneC1hdmF0YXItMFwiYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYXZhdGFyIGlkPVwibXktZmlyc3QtYXZhdGFyXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWF2YXRhci0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxNS4xLjAuXG4gICAgICogU2V0cyBhIGNpcmN1bGFyIHNoYXBlIHRvIHRoZSBhdmF0YXIsIGlmIGBbcm91bmRTaGFwZV1gIGlzIHNldCB0byBgdHJ1ZWAuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgc2hhcGUgb2YgdGhlIGF2YXRhciBpcyBhIHNxdWFyZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYXZhdGFyIFtyb3VuZFNoYXBlXT1cInRydWVcIiA+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYXZhdGFyLS1jaXJjbGUnKVxuICAgIHB1YmxpYyBnZXQgcm91bmRTaGFwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhcGUgPT09ICdjaXJjbGUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcm91bmRTaGFwZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNoYXBlID0gdmFsdWUgPT09IHRydWUgPyAnY2lyY2xlJyA6ICdzcXVhcmUnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgc3F1YXJlLCByb3VuZGVkIG9yIGNpcmN1bGFyIHNoYXBlIHRvIHRoZSBhdmF0YXIuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgc2hhcGUgb2YgdGhlIGF2YXRhciBpcyBzcXVhcmUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBzaGFwZT1cInJvdW5kZWRcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hhcGU6ICdzcXVhcmUnIHwgJ3JvdW5kZWQnIHwgJ2NpcmNsZScgPSAnc3F1YXJlJztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWF2YXRhci0tcm91bmRlZCcpXG4gICAgcHVibGljIGdldCBpc1JvdW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoYXBlID09PSAncm91bmRlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29sb3Igb2YgdGhlIGF2YXRhcidzIGluaXRpYWxzIG9yIGljb24uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBjb2xvcj1cImJsdWVcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICovXG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmNvbG9yJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYXZhdGFyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hdmF0YXIgYmdDb2xvcj1cInllbGxvd1wiPjwvaWd4LWF2YXRhcj5cbiAgICAgKiBgYGBcbiAgICAgKiBAaWd4RnJpZW5kbHlOYW1lIEJhY2tncm91bmQgY29sb3JcbiAgICAgKi9cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYmFja2dyb3VuZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYmdDb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBpbml0aWFscyB0byB0aGUgYXZhdGFyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hdmF0YXIgaW5pdGlhbHM9XCJNTlwiPjwvaWd4LWF2YXRhcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbml0aWFsczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBhbiBpY29uIHRvIHRoZSBhdmF0YXIuIEFsbCBpY29ucyBmcm9tIHRoZSBtYXRlcmlhbCBpY29uIHNldCBhcmUgc3VwcG9ydGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hdmF0YXIgaWNvbj1cInBob25lXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGltYWdlIHNvdXJjZSBvZiB0aGUgYXZhdGFyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hdmF0YXIgc3JjPVwiaW1hZ2VzL3BpY3R1cmUuanBnXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqIEBpZ3hGcmllbmRseU5hbWUgSW1hZ2UgVVJMXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3JjOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0VGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBpbWFnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQFZpZXdDaGlsZCgnaW5pdGlhbHNUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBpbml0aWFsc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQFZpZXdDaGlsZCgnaWNvblRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaXplOiBzdHJpbmcgfCBJZ3hBdmF0YXJTaXplO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgYXZhdGFyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGF2YXRhclNpemUgPSB0aGlzLmF2YXRhci5zaXplO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBzaXplKCk6IHN0cmluZyB8IElneEF2YXRhclNpemUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZSB8fCBJZ3hBdmF0YXJTaXplLlNNQUxMO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHNpemUgIG9mIHRoZSBhdmF0YXIuXG4gICAgICogQnkgZGVmYXVsdCwgdGhlIHNpemUgaXMgYFwic21hbGxcImAuIEl0IGNhbiBiZSBzZXQgdG8gYFwibWVkaXVtXCJgIG9yIGBcImxhcmdlXCJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hdmF0YXIgc2l6ZT1cImxhcmdlXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgc2l6ZSh2YWx1ZTogc3RyaW5nIHwgSWd4QXZhdGFyU2l6ZSkge1xuICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgICAgICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2l6ZSA9ICdzbWFsbCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXZhdGFyVHlwZSA9IHRoaXMuYXZhdGFyLnR5cGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB0eXBlKCk6IElneEF2YXRhclR5cGUge1xuICAgICAgICBpZiAodGhpcy5zcmMpIHtcbiAgICAgICAgICAgIHJldHVybiBJZ3hBdmF0YXJUeXBlLklNQUdFO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIElneEF2YXRhclR5cGUuSUNPTjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxzKSB7XG4gICAgICAgICAgICByZXR1cm4gSWd4QXZhdGFyVHlwZS5JTklUSUFMUztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBJZ3hBdmF0YXJUeXBlLkNVU1RPTTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1hdmF0YXItLWltYWdlJylcbiAgICBwdWJsaWMgZ2V0IF9pc0ltYWdlVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSWd4QXZhdGFyVHlwZS5JTUFHRTtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYXZhdGFyLS1pY29uJylcbiAgICBwdWJsaWMgZ2V0IF9pc0ljb25UeXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hBdmF0YXJUeXBlLklDT047XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWF2YXRhci0taW5pdGlhbHMnKVxuICAgIHB1YmxpYyBnZXQgX2lzSW5pdGlhbHNUeXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hBdmF0YXJUeXBlLklOSVRJQUxTO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1jb21wb25lbnQtc2l6ZScpXG4gICAgcHJvdGVjdGVkIGdldCBjb21wb25lbnRTaXplKCkge1xuICAgICAgICBpZiAodGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGB2YXIoLS1pZy1zaXplLSR7dGhpcy5fc2l6ZX0pYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHRlbXBsYXRlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCB0ZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSWd4QXZhdGFyVHlwZS5JTUFHRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbWFnZVRlbXBsYXRlO1xuICAgICAgICAgICAgY2FzZSBJZ3hBdmF0YXJUeXBlLklOSVRJQUxTOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxzVGVtcGxhdGU7XG4gICAgICAgICAgICBjYXNlIElneEF2YXRhclR5cGUuSUNPTjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pY29uVGVtcGxhdGU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNzcyB1cmwgb2YgdGhlIGltYWdlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTcmNVcmwoKSB7XG4gICAgICAgIHJldHVybiBgdXJsKCR7dGhpcy5zcmN9KWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvbGVEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0Um9sZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHByaXZhdGUgZ2V0Um9sZSgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBJZ3hBdmF0YXJUeXBlLklNQUdFOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UgYXZhdGFyJztcbiAgICAgICAgICAgIGNhc2UgSWd4QXZhdGFyVHlwZS5JQ09OOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaWNvbiBhdmF0YXInO1xuICAgICAgICAgICAgY2FzZSBJZ3hBdmF0YXJUeXBlLklOSVRJQUxTOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW5pdGlhbHMgYXZhdGFyJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjdXN0b20gYXZhdGFyJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbWFnZVRlbXBsYXRlPlxuICAgIDxkaXYgI2ltYWdlIGNsYXNzPVwiaWd4LWF2YXRhcl9faW1hZ2VcIiBbc3R5bGUuYmFja2dyb3VuZEltYWdlXT1cImdldFNyY1VybCgpXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2luaXRpYWxzVGVtcGxhdGU+XG4gICAgPHNwYW4+e3tpbml0aWFscy5zdWJzdHJpbmcoMCwgMil9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlPlxuICAgICA8aWd4LWljb24+e3tpY29ufX08L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
@@ -7,7 +7,7 @@ let NEXT_ID = 0;
7
7
  /**
8
8
  * Determines the igxBadge type
9
9
  */
10
- export const IgxBadgeType = mkenum({
10
+ export const IgxBadgeType = /*@__PURE__*/ mkenum({
11
11
  PRIMARY: 'primary',
12
12
  INFO: 'info',
13
13
  SUCCESS: 'success',
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
204
204
  type: HostBinding,
205
205
  args: ['class.igx-badge--error']
206
206
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7SUFDL0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztDQUNqQixDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBT0gsTUFBTSxPQUFPLGlCQUFpQjtJQU45QjtRQVFHOzs7Ozs7Ozs7O1dBVUc7UUFHSyxPQUFFLEdBQUcsYUFBYSxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBRXRDOzs7Ozs7Ozs7OztXQVdHO1FBRUssU0FBSSxHQUEwQixZQUFZLENBQUMsT0FBTyxDQUFDO1FBRTNEOzs7Ozs7Ozs7OztXQVdHO1FBRUssVUFBSyxHQUFvQixFQUFFLENBQUM7UUF3Qm5DOzs7Ozs7Ozs7O1dBVUc7UUFFSSxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRXZCOzs7Ozs7Ozs7O1dBVUc7UUFFSSxhQUFRLEdBQUcsV0FBVyxDQUFDO1FBRTlCOzs7Ozs7OztXQVFHO1FBRUksVUFBSyxHQUF5QixTQUFTLENBQUM7UUFRL0M7Ozs7Ozs7Ozs7V0FVRztRQUVJLFVBQUssR0FBRyxPQUFPLENBQUM7S0FzQzFCO0lBeERHLHdCQUF3QjtJQUN4QixJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBZ0JEOzs7Ozs7T0FNRztJQUNILElBQ1csZUFBZTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNoRTthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM3RDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7OEdBcEtRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlsQkM5QzlCLGdSQUlBLDRDRHdDYyxJQUFJLDZGQUFFLGdCQUFnQjs7MkZBRXZCLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxXQUFXLGNBRVQsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzhCQWlCMUIsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQWdCQyxJQUFJO3NCQURWLEtBQUs7Z0JBZ0JDLEtBQUs7c0JBRFgsS0FBSztnQkFpQkMsSUFBSTtzQkFEVixLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFlQyxJQUFJO3NCQURWLFdBQVc7dUJBQUMsV0FBVztnQkFlakIsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFhdkIsS0FBSztzQkFEWCxLQUFLO2dCQUtLLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMseUJBQXlCO2dCQWlCL0IsS0FBSztzQkFEWCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFXbkIsZUFBZTtzQkFEekIsV0FBVzt1QkFBQywyQkFBMkI7Z0JBVzdCLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsdUJBQXVCO2dCQU16QixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLDBCQUEwQjtnQkFNNUIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywwQkFBMEI7Z0JBTTVCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbmxldCBORVhUX0lEID0gMDtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBpZ3hCYWRnZSB0eXBlXG4gKi9cbmV4cG9ydCBjb25zdCBJZ3hCYWRnZVR5cGUgPSBta2VudW0oe1xuICAgIFBSSU1BUlk6ICdwcmltYXJ5JyxcbiAgICBJTkZPOiAnaW5mbycsXG4gICAgU1VDQ0VTUzogJ3N1Y2Nlc3MnLFxuICAgIFdBUk5JTkc6ICd3YXJuaW5nJyxcbiAgICBFUlJPUjogJ2Vycm9yJ1xufSk7XG5leHBvcnQgdHlwZSBJZ3hCYWRnZVR5cGUgPSAodHlwZW9mIElneEJhZGdlVHlwZSlba2V5b2YgdHlwZW9mIElneEJhZGdlVHlwZV07XG4vKipcbiAqIEJhZGdlIHByb3ZpZGVzIHZpc3VhbCBub3RpZmljYXRpb25zIHVzZWQgdG8gZGVjb3JhdGUgYXZhdGFycywgbWVudXMsIGV0Yy5cbiAqXG4gKiBAaWd4TW9kdWxlIElneEJhZGdlTW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC1iYWRnZS10aGVtZVxuICpcbiAqIEBpZ3hLZXl3b3JkcyBiYWRnZSwgaWNvbiwgbm90aWZpY2F0aW9uXG4gKlxuICogQGlneEdyb3VwIERhdGEgRW50cnkgJiBEaXNwbGF5XG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBJZ25pdGUgVUkgQmFkZ2UgaXMgdXNlZCB0byBkZWNvcmF0ZSBhdmF0YXJzLCBuYXZpZ2F0aW9uIG1lbnVzLCBvciBvdGhlciBjb21wb25lbnRzIGluIHRoZVxuICogYXBwbGljYXRpb24gd2hlbiB2aXN1YWwgbm90aWZpY2F0aW9uIGlzIG5lZWRlZC4gVGhleSBhcmUgdXN1YWxseSBkZXNpZ25lZCBhcyBpY29ucyB3aXRoIGEgcHJlZGVmaW5lZFxuICogc3R5bGUgdG8gY29tbXVuaWNhdGUgaW5mb3JtYXRpb24sIHN1Y2Nlc3MsIHdhcm5pbmdzLCBvciBlcnJvcnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtYXZhdGFyPlxuICogICA8aWd4LWJhZGdlIGljb249XCJjaGVja1wiIHR5cGU9XCJzdWNjZXNzXCI+PC9pZ3gtYmFkZ2U+XG4gKiA8L2lneC1hdmF0YXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWJhZGdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2JhZGdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBJZ3hJY29uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hCYWRnZUNvbXBvbmVudCB7XG5cbiAgIC8qKlxuICAgICogU2V0cy9nZXRzIHRoZSBgaWRgIG9mIHRoZSBiYWRnZS5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogSWYgbm90IHNldCwgdGhlIGBpZGAgd2lsbCBoYXZlIHZhbHVlIGBcImlneC1iYWRnZS0wXCJgLlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBgYGBodG1sXG4gICAgKiA8aWd4LWJhZGdlIGlkPVwiaWd4LWJhZGdlLTJcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYmFkZ2UtJHtORVhUX0lEKyt9YDtcblxuICAgLyoqXG4gICAgKiBTZXRzL2dldHMgdGhlIHR5cGUgb2YgdGhlIGJhZGdlLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYHByaW1hcnlgLCBgaW5mb2AsIGBzdWNjZXNzYCwgYHdhcm5pbmdgLCBgZXJyb3JgLlxuICAgICogUHJvdmlkaW5nIGFuIGludmFsaWQgdmFsdWUgd29uJ3QgZGlzcGxheSBhIGJhZGdlLlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBgYGBodG1sXG4gICAgKiA8aWd4LWJhZGdlIHR5cGU9XCJzdWNjZXNzXCI+PC9pZ3gtYmFkZ2U+XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR5cGU6IHN0cmluZyB8IElneEJhZGdlVHlwZSA9IElneEJhZGdlVHlwZS5QUklNQVJZO1xuXG4gICAvKipcbiAgICAqIFNldHMvZ2V0cyB0aGUgdmFsdWUgdG8gYmUgZGlzcGxheWVkIGluc2lkZSB0aGUgYmFkZ2UuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIElmIGFuIGBpY29uYCBwcm9wZXJ0eSBpcyBhbHJlYWR5IHNldCB0aGUgYGljb25gIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgICogSWYgbmVpdGhlciBhIGB2YWx1ZWAgbm9yIGFuIGBpY29uYCBpcyBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIGJhZGdlIHdpbGwgYmUgZW1wdHkuXG4gICAgKlxuICAgICogQGV4YW1wbGVcbiAgICAqIGBgYGh0bWxcbiAgICAqIDxpZ3gtYmFkZ2UgdmFsdWU9XCIxMVwiPjwvaWd4LWJhZGdlPlxuICAgICogYGBgXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgYW4gaWNvbiBmb3IgdGhlIGJhZGdlIGZyb20gdGhlIG1hdGVyaWFsIGljb25zIHNldC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogSGFzIHByaW9yaXR5IG92ZXIgdGhlIGB2YWx1ZWAgcHJvcGVydHkuXG4gICAgICogSWYgbmVpdGhlciBhIGB2YWx1ZWAgbm9yIGFuIGBpY29uYCBpcyBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIGJhZGdlIHdpbGwgYmUgZW1wdHkuXG4gICAgICogUHJvdmlkaW5nIGFuIGludmFsaWQgdmFsdWUgd29uJ3QgZGlzcGxheSBhbnl0aGluZy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFkZ2UgaWNvbj1cImNoZWNrXCI+PC9pZ3gtYmFkZ2U+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGljb24gc2V0LiBVc2VkIGluIGNhc2UgdGhlIGljb24gaXMgZnJvbSBhIGRpZmZlcmVudCBpY29uIHNldC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uU2V0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIHJvbGUgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15QmFkZ2VcIiwgeyByZWFkOiBJZ3hCYWRnZUNvbXBvbmVudCB9KVxuICAgICAqIHB1YmxpYyBiYWRnZTogSWd4QmFkZ2VDb21wb25lbnQ7XG4gICAgICpcbiAgICAgKiBiYWRnZS5yb2xlID0gJ3N0YXR1cyc7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHB1YmxpYyByb2xlID0gJ3N0YXR1cyc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGNzcyBjbGFzcyB0byB1c2Ugb24gdGhlIGJhZGdlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15QmFkZ2VcIiwgeyByZWFkOiBJZ3hCYWRnZUNvbXBvbmVudCB9KVxuICAgICAqIHB1YmxpYyBiYWRnZTogSWd4QmFkZ2VDb21wb25lbnQ7XG4gICAgICpcbiAgICAgKiBiYWRnZS5jc3NDbGFzcyA9ICdteS1iYWRnZS1jbGFzcyc7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtYmFkZ2UnO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIHNxdWFyZSBzaGFwZSB0byB0aGUgYmFkZ2UsIGlmIGBzaGFwZWAgaXMgc2V0IHRvIGBzcXVhcmVgLlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIHNoYXBlIG9mIHRoZSBiYWRnZSBpcyByb3VuZGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYWRnZSBzaGFwZT1cInNxdWFyZVwiPjwvaWd4LWJhZGdlPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNoYXBlOiAncm91bmRlZCcgfCAnc3F1YXJlJyA9ICdyb3VuZGVkJztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlLS1zcXVhcmUnKVxuICAgIHB1YmxpYyBnZXQgX3NxdWFyZVNoYXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGFwZSA9PT0gJ3NxdWFyZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBhcmlhLWxhYmVsIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKiBwdWJsaWMgYmFkZ2U6IElneEJhZGdlQ29tcG9uZW50O1xuICAgICAqXG4gICAgICogYmFkZ2UubGFiZWwgPSAnYmFkZ2UnO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBwdWJsaWMgbGFiZWwgPSAnYmFkZ2UnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhY2Nlc3NvciwgYXV0aG9yLWxvY2FsaXplZCBkZXNjcmlwdGlvbiBmb3JcbiAgICAgKiB0aGUgYHR5cGVgIGFuZCB0aGUgYGljb25gIG9yIGB2YWx1ZWAgb2YgdGhlIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uJylcbiAgICBwdWJsaWMgZ2V0IHJvbGVEZXNjcmlwdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICcgdHlwZSBiYWRnZSB3aXRoIGljb24gdHlwZSAnICsgdGhpcy5pY29uO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICcgYmFkZ2UgdHlwZSB3aXRoIHZhbHVlICcgKyB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAnIGJhZGdlIHR5cGUgd2l0aG91dCB2YWx1ZSc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLWluZm8nKVxuICAgIHB1YmxpYyBnZXQgaW5mb0NsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hCYWRnZVR5cGUuSU5GTztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0tc3VjY2VzcycpXG4gICAgcHVibGljIGdldCBzdWNjZXNzQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEJhZGdlVHlwZS5TVUNDRVNTO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlLS13YXJuaW5nJylcbiAgICBwdWJsaWMgZ2V0IHdhcm5pbmdDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSWd4QmFkZ2VUeXBlLldBUk5JTkc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLWVycm9yJylcbiAgICBwdWJsaWMgZ2V0IGVycm9yQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEJhZGdlVHlwZS5FUlJPUjtcbiAgICB9XG59XG4iLCI8c3BhbiAqbmdJZj1cInZhbHVlIHx8IHZhbHVlID09PSAwICYmICFpY29uXCIgY2xhc3M9XCJpZ3gtYmFkZ2VfX3ZhbHVlXCI+e3t2YWx1ZX19PC9zcGFuPlxuPGlneC1pY29uICpuZ0lmPVwiaWNvbiAmJiAhaWNvblNldFwiPnt7aWNvbn19PC9pZ3gtaWNvbj5cbjxpZ3gtaWNvbiAqbmdJZj1cImljb24gJiYgaWNvblNldFwiIFtmYW1pbHldPVwiaWNvblNldFwiIFtuYW1lXT1cImljb25cIj57e2ljb259fTwvaWd4LWljb24+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUEsTUFBTSxDQUFDO0lBQzVDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7SUFDbEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFRRzs7Ozs7Ozs7OztXQVVHO1FBR0ssT0FBRSxHQUFHLGFBQWEsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUV0Qzs7Ozs7Ozs7Ozs7V0FXRztRQUVLLFNBQUksR0FBMEIsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUUzRDs7Ozs7Ozs7Ozs7V0FXRztRQUVLLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBd0JuQzs7Ozs7Ozs7OztXQVVHO1FBRUksU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUV2Qjs7Ozs7Ozs7OztXQVVHO1FBRUksYUFBUSxHQUFHLFdBQVcsQ0FBQztRQUU5Qjs7Ozs7Ozs7V0FRRztRQUVJLFVBQUssR0FBeUIsU0FBUyxDQUFDO1FBUS9DOzs7Ozs7Ozs7O1dBVUc7UUFFSSxVQUFLLEdBQUcsT0FBTyxDQUFDO0tBc0MxQjtJQXhERyx3QkFBd0I7SUFDeEIsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQWdCRDs7Ozs7O09BTUc7SUFDSCxJQUNXLGVBQWU7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDaEU7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDN0Q7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQ1csU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQ1csVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDOzhHQXBLUSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5bEJDOUM5QixnUkFJQSw0Q0R3Q2MsSUFBSSw2RkFBRSxnQkFBZ0I7OzJGQUV2QixpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0ksV0FBVyxjQUVULElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQzs4QkFpQjFCLEVBQUU7c0JBRlIsV0FBVzt1QkFBQyxTQUFTOztzQkFDckIsS0FBSztnQkFnQkMsSUFBSTtzQkFEVixLQUFLO2dCQWdCQyxLQUFLO3NCQURYLEtBQUs7Z0JBaUJDLElBQUk7c0JBRFYsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBZUMsSUFBSTtzQkFEVixXQUFXO3VCQUFDLFdBQVc7Z0JBZWpCLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBYXZCLEtBQUs7c0JBRFgsS0FBSztnQkFLSyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLHlCQUF5QjtnQkFpQi9CLEtBQUs7c0JBRFgsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBV25CLGVBQWU7c0JBRHpCLFdBQVc7dUJBQUMsMkJBQTJCO2dCQVc3QixTQUFTO3NCQURuQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFNekIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywwQkFBMEI7Z0JBTTVCLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsMEJBQTBCO2dCQU01QixVQUFVO3NCQURwQixXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1rZW51bSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgaWd4QmFkZ2UgdHlwZVxuICovXG5leHBvcnQgY29uc3QgSWd4QmFkZ2VUeXBlID0gLypAX19QVVJFX18qL21rZW51bSh7XG4gICAgUFJJTUFSWTogJ3ByaW1hcnknLFxuICAgIElORk86ICdpbmZvJyxcbiAgICBTVUNDRVNTOiAnc3VjY2VzcycsXG4gICAgV0FSTklORzogJ3dhcm5pbmcnLFxuICAgIEVSUk9SOiAnZXJyb3InXG59KTtcbmV4cG9ydCB0eXBlIElneEJhZGdlVHlwZSA9ICh0eXBlb2YgSWd4QmFkZ2VUeXBlKVtrZXlvZiB0eXBlb2YgSWd4QmFkZ2VUeXBlXTtcbi8qKlxuICogQmFkZ2UgcHJvdmlkZXMgdmlzdWFsIG5vdGlmaWNhdGlvbnMgdXNlZCB0byBkZWNvcmF0ZSBhdmF0YXJzLCBtZW51cywgZXRjLlxuICpcbiAqIEBpZ3hNb2R1bGUgSWd4QmFkZ2VNb2R1bGVcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LWJhZGdlLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGJhZGdlLCBpY29uLCBub3RpZmljYXRpb25cbiAqXG4gKiBAaWd4R3JvdXAgRGF0YSBFbnRyeSAmIERpc3BsYXlcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIElnbml0ZSBVSSBCYWRnZSBpcyB1c2VkIHRvIGRlY29yYXRlIGF2YXRhcnMsIG5hdmlnYXRpb24gbWVudXMsIG9yIG90aGVyIGNvbXBvbmVudHMgaW4gdGhlXG4gKiBhcHBsaWNhdGlvbiB3aGVuIHZpc3VhbCBub3RpZmljYXRpb24gaXMgbmVlZGVkLiBUaGV5IGFyZSB1c3VhbGx5IGRlc2lnbmVkIGFzIGljb25zIHdpdGggYSBwcmVkZWZpbmVkXG4gKiBzdHlsZSB0byBjb21tdW5pY2F0ZSBpbmZvcm1hdGlvbiwgc3VjY2Vzcywgd2FybmluZ3MsIG9yIGVycm9ycy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1hdmF0YXI+XG4gKiAgIDxpZ3gtYmFkZ2UgaWNvbj1cImNoZWNrXCIgdHlwZT1cInN1Y2Nlc3NcIj48L2lneC1iYWRnZT5cbiAqIDwvaWd4LWF2YXRhcj5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtYmFkZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEJhZGdlQ29tcG9uZW50IHtcblxuICAgLyoqXG4gICAgKiBTZXRzL2dldHMgdGhlIGBpZGAgb2YgdGhlIGJhZGdlLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBJZiBub3Qgc2V0LCB0aGUgYGlkYCB3aWxsIGhhdmUgdmFsdWUgYFwiaWd4LWJhZGdlLTBcImAuXG4gICAgKlxuICAgICogQGV4YW1wbGVcbiAgICAqIGBgYGh0bWxcbiAgICAqIDxpZ3gtYmFkZ2UgaWQ9XCJpZ3gtYmFkZ2UtMlwiPjwvaWd4LWJhZGdlPlxuICAgICogYGBgXG4gICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1iYWRnZS0ke05FWFRfSUQrK31gO1xuXG4gICAvKipcbiAgICAqIFNldHMvZ2V0cyB0aGUgdHlwZSBvZiB0aGUgYmFkZ2UuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIEFsbG93ZWQgdmFsdWVzIGFyZSBgcHJpbWFyeWAsIGBpbmZvYCwgYHN1Y2Nlc3NgLCBgd2FybmluZ2AsIGBlcnJvcmAuXG4gICAgKiBQcm92aWRpbmcgYW4gaW52YWxpZCB2YWx1ZSB3b24ndCBkaXNwbGF5IGEgYmFkZ2UuXG4gICAgKlxuICAgICogQGV4YW1wbGVcbiAgICAqIGBgYGh0bWxcbiAgICAqIDxpZ3gtYmFkZ2UgdHlwZT1cInN1Y2Nlc3NcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nIHwgSWd4QmFkZ2VUeXBlID0gSWd4QmFkZ2VUeXBlLlBSSU1BUlk7XG5cbiAgIC8qKlxuICAgICogU2V0cy9nZXRzIHRoZSB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBiYWRnZS5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogSWYgYW4gYGljb25gIHByb3BlcnR5IGlzIGFscmVhZHkgc2V0IHRoZSBgaWNvbmAgd2lsbCBiZSBkaXNwbGF5ZWQuXG4gICAgKiBJZiBuZWl0aGVyIGEgYHZhbHVlYCBub3IgYW4gYGljb25gIGlzIHNldCB0aGUgY29udGVudCBvZiB0aGUgYmFkZ2Ugd2lsbCBiZSBlbXB0eS5cbiAgICAqXG4gICAgKiBAZXhhbXBsZVxuICAgICogYGBgaHRtbFxuICAgICogPGlneC1iYWRnZSB2YWx1ZT1cIjExXCI+PC9pZ3gtYmFkZ2U+XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyBhbiBpY29uIGZvciB0aGUgYmFkZ2UgZnJvbSB0aGUgbWF0ZXJpYWwgaWNvbnMgc2V0LlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBIYXMgcHJpb3JpdHkgb3ZlciB0aGUgYHZhbHVlYCBwcm9wZXJ0eS5cbiAgICAgKiBJZiBuZWl0aGVyIGEgYHZhbHVlYCBub3IgYW4gYGljb25gIGlzIHNldCB0aGUgY29udGVudCBvZiB0aGUgYmFkZ2Ugd2lsbCBiZSBlbXB0eS5cbiAgICAgKiBQcm92aWRpbmcgYW4gaW52YWxpZCB2YWx1ZSB3b24ndCBkaXNwbGF5IGFueXRoaW5nLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYWRnZSBpY29uPVwiY2hlY2tcIj48L2lneC1iYWRnZT5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgaWNvbiBzZXQuIFVzZWQgaW4gY2FzZSB0aGUgaWNvbiBpcyBmcm9tIGEgZGlmZmVyZW50IGljb24gc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25TZXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgcm9sZSBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlCYWRnZVwiLCB7IHJlYWQ6IElneEJhZGdlQ29tcG9uZW50IH0pXG4gICAgICogcHVibGljIGJhZGdlOiBJZ3hCYWRnZUNvbXBvbmVudDtcbiAgICAgKlxuICAgICAqIGJhZGdlLnJvbGUgPSAnc3RhdHVzJztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHVibGljIHJvbGUgPSAnc3RhdHVzJztcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgY3NzIGNsYXNzIHRvIHVzZSBvbiB0aGUgYmFkZ2UuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlCYWRnZVwiLCB7IHJlYWQ6IElneEJhZGdlQ29tcG9uZW50IH0pXG4gICAgICogcHVibGljIGJhZGdlOiBJZ3hCYWRnZUNvbXBvbmVudDtcbiAgICAgKlxuICAgICAqIGJhZGdlLmNzc0NsYXNzID0gJ215LWJhZGdlLWNsYXNzJztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZScpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1iYWRnZSc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgc3F1YXJlIHNoYXBlIHRvIHRoZSBiYWRnZSwgaWYgYHNoYXBlYCBpcyBzZXQgdG8gYHNxdWFyZWAuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgc2hhcGUgb2YgdGhlIGJhZGdlIGlzIHJvdW5kZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhZGdlIHNoYXBlPVwic3F1YXJlXCI+PC9pZ3gtYmFkZ2U+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hhcGU6ICdyb3VuZGVkJyB8ICdzcXVhcmUnID0gJ3JvdW5kZWQnO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLXNxdWFyZScpXG4gICAgcHVibGljIGdldCBfc3F1YXJlU2hhcGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoYXBlID09PSAnc3F1YXJlJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15QmFkZ2VcIiwgeyByZWFkOiBJZ3hCYWRnZUNvbXBvbmVudCB9KVxuICAgICAqIHB1YmxpYyBiYWRnZTogSWd4QmFkZ2VDb21wb25lbnQ7XG4gICAgICpcbiAgICAgKiBiYWRnZS5sYWJlbCA9ICdiYWRnZSc7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIHB1YmxpYyBsYWJlbCA9ICdiYWRnZSc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUsIGFjY2Vzc29yLCBhdXRob3ItbG9jYWxpemVkIGRlc2NyaXB0aW9uIGZvclxuICAgICAqIHRoZSBgdHlwZWAgYW5kIHRoZSBgaWNvbmAgb3IgYHZhbHVlYCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb24nKVxuICAgIHB1YmxpYyBnZXQgcm9sZURlc2NyaXB0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5pY29uKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgJyB0eXBlIGJhZGdlIHdpdGggaWNvbiB0eXBlICcgKyB0aGlzLmljb247XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgJyBiYWRnZSB0eXBlIHdpdGggdmFsdWUgJyArIHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICcgYmFkZ2UgdHlwZSB3aXRob3V0IHZhbHVlJztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0taW5mbycpXG4gICAgcHVibGljIGdldCBpbmZvQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEJhZGdlVHlwZS5JTkZPO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlLS1zdWNjZXNzJylcbiAgICBwdWJsaWMgZ2V0IHN1Y2Nlc3NDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSWd4QmFkZ2VUeXBlLlNVQ0NFU1M7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLXdhcm5pbmcnKVxuICAgIHB1YmxpYyBnZXQgd2FybmluZ0NsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hCYWRnZVR5cGUuV0FSTklORztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0tZXJyb3InKVxuICAgIHB1YmxpYyBnZXQgZXJyb3JDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSWd4QmFkZ2VUeXBlLkVSUk9SO1xuICAgIH1cbn1cbiIsIjxzcGFuICpuZ0lmPVwidmFsdWUgfHwgdmFsdWUgPT09IDAgJiYgIWljb25cIiBjbGFzcz1cImlneC1iYWRnZV9fdmFsdWVcIj57e3ZhbHVlfX08L3NwYW4+XG48aWd4LWljb24gKm5nSWY9XCJpY29uICYmICFpY29uU2V0XCI+e3tpY29ufX08L2lneC1pY29uPlxuPGlneC1pY29uICpuZ0lmPVwiaWNvbiAmJiBpY29uU2V0XCIgW2ZhbWlseV09XCJpY29uU2V0XCIgW25hbWVdPVwiaWNvblwiPnt7aWNvbn19PC9pZ3gtaWNvbj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -262,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
262
262
  type: ContentChild,
263
263
  args: [IgxBannerActionsDirective]
264
264
  }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYW5uZXIvYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYW5uZXIvYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFZbkU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQStEM0IsY0FBYztJQUNkLElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLGlCQUFpQixDQUFDLFFBQWlDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDVyxpQkFBaUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN0RyxDQUFDO0lBRUc7Ozs7O0dBS0Q7SUFFSCxJQUNXLGVBQWUsQ0FBQyxLQUE2QjtRQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUtEOztPQUVHO0lBQ0gsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekMsQ0FBQztJQVlELFlBQW1CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBN0l0RDs7Ozs7Ozs7OztXQVVHO1FBRUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRXBEOzs7Ozs7Ozs7O1dBVUc7UUFFSSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFM0Q7Ozs7Ozs7Ozs7V0FVRztRQUVJLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUVwRDs7Ozs7Ozs7OztXQVVHO1FBRUksWUFBTyxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBbUVwRCxhQUFRLEdBQUcsaUJBQWlCLENBQUM7UUFrQjVCLHFCQUFnQixHQUFHLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFcEIsQ0FBQztJQUUzRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksSUFBSSxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN4RCxNQUFNLFdBQVcsR0FBMEI7WUFDdkMsTUFBTSxFQUFFLElBQUk7WUFDWixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUs7WUFDTCxNQUFNLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3BCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN4RCxNQUFNLFdBQVcsR0FBMEI7WUFDdkMsTUFBTSxFQUFFLElBQUk7WUFDWixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUs7WUFDTCxNQUFNLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3BCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksTUFBTSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEI7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNQLG9CQUFvQjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7SUFDUCxxQkFBcUI7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBOU9RLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHlYQUliLGdCQUFnQix3RkF5SWhCLHlCQUF5QixpTEN2TTNDLGl4Q0F5QkEsNENEK0JlLDBCQUEwQixnT0FBRSw4QkFBOEIsOEdBQUUsSUFBSSw2RkFBRSxrQkFBa0IsNktBQUUsa0JBQWtCOzsyRkFFMUcsa0JBQWtCO2tCQU45QixTQUFTOytCQUNJLFlBQVksY0FFVixJQUFJLFdBQ1AsQ0FBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUU7K0VBTzlHLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQWV2QixNQUFNO3NCQURaLE1BQU07Z0JBZUEsT0FBTztzQkFEYixNQUFNO2dCQWVBLE1BQU07c0JBRFosTUFBTTtnQkFlQSxPQUFPO3NCQURiLE1BQU07Z0JBMkJJLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFhSyxlQUFlO3NCQUR6QixLQUFLO2dCQThCQyxRQUFRO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFPVCxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLGVBQWU7Z0JBTXBCLGVBQWU7c0JBRHRCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyQyxxQkFBcUI7c0JBRDVCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElUb2dnbGVWaWV3IH0gZnJvbSAnLi4vY29yZS9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCYW5uZXJBY3Rpb25zRGlyZWN0aXZlIH0gZnJvbSAnLi9iYW5uZXIuZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENhbmNlbGFibGVFdmVudEFyZ3MsIElCYXNlRXZlbnRBcmdzIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC90b2dnbGUtYW5pbWF0aW9uLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hFeHBhbnNpb25QYW5lbEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyUmVzb3VyY2VTdHJpbmdzRU4sIElCYW5uZXJSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vYmFubmVyLXJlc291cmNlcyc7XG5pbXBvcnQgeyBnZXRDdXJyZW50UmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL3Jlc291cmNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFubmVyRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGluIDEyLjEuMC4gVG8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBiYW5uZXIsIHVzZSBgb3duZXJgIGluc3RlYWRcbiAgICAgKi9cbiAgICBiYW5uZXI6IElneEJhbm5lckNvbXBvbmVudDtcbiAgICBldmVudD86IEV2ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lckNhbmNlbEV2ZW50QXJncyBleHRlbmRzIEJhbm5lckV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG59XG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIEJhbm5lcioqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9iYW5uZXIuaHRtbClcbiAqXG4gKiBUaGUgSWduaXRlIFVJIEJhbm5lciBwcm92aWRlcyBhIGhpZ2hseSB0ZW1wbGF0ZS1hYmxlIGFuZCBlYXN5IHRvIHVzZSBiYW5uZXIgdGhhdCBjYW4gYmUgc2hvd24gaW4geW91ciBhcHBsaWNhdGlvbi5cbiAqXG4gKiBVc2FnZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8aWd4LWJhbm5lciAjYmFubmVyPlxuICogICBPdXIgcHJpdmFjeSBzZXR0aW5ncyBoYXZlIGNoYW5nZWQuXG4gKiAgPGlneC1iYW5uZXItYWN0aW9ucz5cbiAqICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uPVwiY29udGFpbmVkXCI+UmVhZCBNb3JlPC9idXR0b24+XG4gKiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbj1cImNvbnRhaW5lZFwiPkFjY2VwdCBhbmQgQ29udGludWU8L2J1dHRvbj5cbiAqICA8L2lneC1iYW5uZXItYWN0aW9ucz5cbiAqIDwvaWd4LWJhbm5lcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1iYW5uZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFsgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQsIElneEV4cGFuc2lvblBhbmVsQm9keUNvbXBvbmVudCwgTmdJZiwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUgXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBJVG9nZ2xlVmlldyB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4SWNvbkNvbXBvbmVudClcbiAgICBwdWJsaWMgYmFubmVySWNvbjogSWd4SWNvbkNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFmdGVyIHRoZSBiYW5uZXIgc2hvd3MgdXBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZU9wZW5lZChldmVudCkge1xuICAgICAqICAuLi5cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFubmVyIChvcGVuZWQpPVwiaGFuZGxlT3BlbmVkKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFubmVyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYmVmb3JlIHRoZSBiYW5uZXIgc2hvd3MgdXBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZU9wZW5pbmcoZXZlbnQpIHtcbiAgICAgKiAgLi4uXG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhbm5lciAob3BlbmluZyk9XCJoYW5kbGVPcGVuaW5nKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEJhbm5lckNhbmNlbEV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFmdGVyIHRoZSBiYW5uZXIgaGlkZXNcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZUNsb3NlZChldmVudCkge1xuICAgICAqICAuLi5cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFubmVyIChjbG9zZWQpPVwiaGFuZGxlQ2xvc2VkKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFubmVyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYmVmb3JlIHRoZSBiYW5uZXIgaGlkZXNcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZUNsb3NpbmcoZXZlbnQpIHtcbiAgICAgKiAgLi4uXG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhbm5lciAoY2xvc2luZyk9XCJoYW5kbGVDbG9zaW5nKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEJhbm5lckNhbmNlbEV2ZW50QXJncz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCB1c2VEZWZhdWx0VGVtcGxhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fYmFubmVyQWN0aW9uVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBhbmltYXRpb24gc2V0dGluZ3MgdXNlZCBieSB0aGUgYmFubmVyIG9wZW4vY2xvc2UgbWV0aG9kc1xuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBpbXBvcnQgeyBzbGlkZUluTGVmdCwgc2xpZGVPdXRSaWdodCB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXInO1xuICAgICAqIC4uLlxuICAgICAqIGJhbm5lci5hbmltYXRpb25TZXR0aW5nczogVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3MgPSB7IG9wZW5BbmltYXRpb246IHNsaWRlSW5MZWZ0LCBjbG9zZUFuaW1hdGlvbjogc2xpZGVPdXRSaWdodCB9O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uU2V0dGluZ3Moc2V0dGluZ3M6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBhbmltYXRpb24gc2V0dGluZ3MgdXNlZCBieSB0aGUgYmFubmVyIG9wZW4vY2xvc2UgbWV0aG9kc1xuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgY3VycmVudEFuaW1hdGlvbnM6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzID0gYmFubmVyLmFuaW1hdGlvblNldHRpbmdzXG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGFuaW1hdGlvblNldHRpbmdzKCk6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID8gdGhpcy5fYW5pbWF0aW9uU2V0dGluZ3MgOiB0aGlzLl9leHBhbnNpb25QYW5lbC5hbmltYXRpb25TZXR0aW5ncztcbiAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUJhbm5lclJlc291cmNlU3RyaW5ncykge1xuICAgICAgICB0aGlzLl9yZXNvdXJjZVN0cmluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJQmFubmVyUmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIGJhbm5lciBpcyBjb2xsYXBzZWRcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGJhbm5lci5jb2xsYXBzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHBhbnNpb25QYW5lbC5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbmF0aXZlIGVsZW1lbnQgb2YgdGhlIGJhbm5lciBjb21wb25lbnRcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIGNvbnN0IG15QmFubmVyRWxlbWVudDogSFRNTEVsZW1lbnQgPSBiYW5uZXIuZWxlbWVudDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWJhbm5lci1ob3N0JztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICAgIHB1YmxpYyBnZXQgZGlzcGxheVN0eWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZCA/ICcnIDogJ2Jsb2NrJztcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdleHBhbnNpb25QYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfZXhwYW5zaW9uUGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChJZ3hCYW5uZXJBY3Rpb25zRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgX2Jhbm5lckFjdGlvblRlbXBsYXRlOiBJZ3hCYW5uZXJBY3Rpb25zRGlyZWN0aXZlO1xuXG4gICAgcHJpdmF0ZSBfYmFubmVyRXZlbnQ6IEJhbm5lckV2ZW50QXJncztcbiAgICBwcml2YXRlIF9hbmltYXRpb25TZXR0aW5nczogVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3M7XG4gICAgcHJpdmF0ZSBfcmVzb3VyY2VTdHJpbmdzID0gZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyhCYW5uZXJSZXNvdXJjZVN0cmluZ3NFTik7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHsgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIGJhbm5lclxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBteUJhbm5lci5vcGVuKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYW5uZXIgI2Jhbm5lcj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1iYW5uZXI+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJhbm5lci5vcGVuKClcIj5PcGVuIEJhbm5lcjwvYnV0dG9uPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fYmFubmVyRXZlbnQgPSB7IGJhbm5lcjogdGhpcywgb3duZXI6IHRoaXMsIGV2ZW50fTtcbiAgICAgICAgY29uc3Qgb3BlbmluZ0FyZ3M6IEJhbm5lckNhbmNlbEV2ZW50QXJncyA9IHtcbiAgICAgICAgICAgIGJhbm5lcjogdGhpcyxcbiAgICAgICAgICAgIG93bmVyOiB0aGlzLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBjYW5jZWw6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub3BlbmluZy5lbWl0KG9wZW5pbmdBcmdzKTtcbiAgICAgICAgaWYgKG9wZW5pbmdBcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4cGFuc2lvblBhbmVsLm9wZW4oZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgYmFubmVyXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIG15QmFubmVyLmNsb3NlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYW5uZXIgI2Jhbm5lcj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1iYW5uZXI+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJhbm5lci5jbG9zZSgpXCI+Q2xvc2UgQmFubmVyPC9idXR0b24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fYmFubmVyRXZlbnQgPSB7IGJhbm5lcjogdGhpcywgb3duZXI6IHRoaXMsIGV2ZW50fTtcbiAgICAgICAgY29uc3QgY2xvc2luZ0FyZ3M6IEJhbm5lckNhbmNlbEV2ZW50QXJncyA9IHtcbiAgICAgICAgICAgIGJhbm5lcjogdGhpcyxcbiAgICAgICAgICAgIG93bmVyOiB0aGlzLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBjYW5jZWw6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2xvc2luZy5lbWl0KGNsb3NpbmdBcmdzKTtcbiAgICAgICAgaWYgKGNsb3NpbmdBcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4cGFuc2lvblBhbmVsLmNsb3NlKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHRoZSBiYW5uZXJcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgbXlCYW5uZXIudG9nZ2xlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYW5uZXIgI2Jhbm5lcj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1iYW5uZXI+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJhbm5lci50b2dnbGUoKVwiPlRvZ2dsZSBCYW5uZXI8L2J1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBvbkV4cGFuc2lvblBhbmVsT3BlbigpIHtcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCh0aGlzLl9iYW5uZXJFdmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgb25FeHBhbnNpb25QYW5lbENsb3NlKCkge1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KHRoaXMuX2Jhbm5lckV2ZW50KTtcbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5cbiIsIjxpZ3gtZXhwYW5zaW9uLXBhbmVsICNleHBhbnNpb25QYW5lbCBbYW5pbWF0aW9uU2V0dGluZ3NdPVwiYW5pbWF0aW9uU2V0dGluZ3NcIiAoY29udGVudENvbGxhcHNlZCk9XCJvbkV4cGFuc2lvblBhbmVsQ2xvc2UoKVwiIChjb250ZW50RXhwYW5kZWQpPVwib25FeHBhbnNpb25QYW5lbE9wZW4oKVwiXG4gICAgW2NvbGxhcHNlZF09XCJjb2xsYXBzZWRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJjb2xsYXBzZWRcIj5cbiAgICA8aWd4LWV4cGFuc2lvbi1wYW5lbC1ib2R5PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWJhbm5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1iYW5uZXJfX21lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYmFubmVySWNvblwiIGNsYXNzPVwiaWd4LWJhbm5lcl9faWxsdXN0cmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1pY29uXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWJhbm5lcl9fdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWJhbm5lcl9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VEZWZhdWx0VGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uPVwiZmxhdFwiIGlneFJpcHBsZSAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVzb3VyY2VTdHJpbmdzLmlneF9iYW5uZXJfYnV0dG9uX2Rpc21pc3MgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF1c2VEZWZhdWx0VGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LWJhbm5lci1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvaWd4LWV4cGFuc2lvbi1wYW5lbC1ib2R5PlxuPC9pZ3gtZXhwYW5zaW9uLXBhbmVsPlxuIl19
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYW5uZXIvYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYW5uZXIvYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFZbkU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQStEM0IsY0FBYztJQUNkLElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7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QWU7Z0JBTXBCLGVBQWU7c0JBRHRCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyQyxxQkFBcUI7c0JBRDVCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElUb2dnbGVWaWV3IH0gZnJvbSAnLi4vY29yZS9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCYW5uZXJBY3Rpb25zRGlyZWN0aXZlIH0gZnJvbSAnLi9iYW5uZXIuZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENhbmNlbGFibGVFdmVudEFyZ3MsIElCYXNlRXZlbnRBcmdzIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC90b2dnbGUtYW5pbWF0aW9uLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hFeHBhbnNpb25QYW5lbEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyUmVzb3VyY2VTdHJpbmdzRU4sIElCYW5uZXJSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vYmFubmVyLXJlc291cmNlcyc7XG5pbXBvcnQgeyBnZXRDdXJyZW50UmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL3Jlc291cmNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFubmVyRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGluIDEyLjEuMC4gVG8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBiYW5uZXIsIHVzZSBgb3duZXJgIGluc3RlYWRcbiAgICAgKi9cbiAgICBiYW5uZXI6IElneEJhbm5lckNvbXBvbmVudDtcbiAgICBldmVudD86IEV2ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lckNhbmNlbEV2ZW50QXJncyBleHRlbmRzIEJhbm5lckV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG59XG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIEJhbm5lcioqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9iYW5uZXIuaHRtbClcbiAqXG4gKiBUaGUgSWduaXRlIFVJIEJhbm5lciBwcm92aWRlcyBhIGhpZ2hseSB0ZW1wbGF0ZS1hYmxlIGFuZCBlYXN5IHRvIHVzZSBiYW5uZXIgdGhhdCBjYW4gYmUgc2hvd24gaW4geW91ciBhcHBsaWNhdGlvbi5cbiAqXG4gKiBVc2FnZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8aWd4LWJhbm5lciAjYmFubmVyPlxuICogICBPdXIgcHJpdmFjeSBzZXR0aW5ncyBoYXZlIGNoYW5nZWQuXG4gKiAgPGlneC1iYW5uZXItYWN0aW9ucz5cbiAqICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uPVwiY29udGFpbmVkXCI+UmVhZCBNb3JlPC9idXR0b24+XG4gKiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbj1cImNvbnRhaW5lZFwiPkFjY2VwdCBhbmQgQ29udGludWU8L2J1dHRvbj5cbiAqICA8L2lneC1iYW5uZXItYWN0aW9ucz5cbiAqIDwvaWd4LWJhbm5lcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1iYW5uZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFsgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQsIElneEV4cGFuc2lvblBhbmVsQm9keUNvbXBvbmVudCwgTmdJZiwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUgXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBJVG9nZ2xlVmlldyB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4SWNvbkNvbXBvbmVudClcbiAgICBwdWJsaWMgYmFubmVySWNvbjogSWd4SWNvbkNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFmdGVyIHRoZSBiYW5uZXIgc2hvd3MgdXBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZU9wZW5lZChldmVudCkge1xuICAgICAqICAuLi5cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFubmVyIChvcGVuZWQpPVwiaGFuZGxlT3BlbmVkKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFubmVyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYmVmb3JlIHRoZSBiYW5uZXIgc2hvd3MgdXBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZU9wZW5pbmcoZXZlbnQpIHtcbiAgICAgKiAgLi4uXG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhbm5lciAob3BlbmluZyk9XCJoYW5kbGVPcGVuaW5nKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEJhbm5lckNhbmNlbEV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFmdGVyIHRoZSBiYW5uZXIgaGlkZXNcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZUNsb3NlZChldmVudCkge1xuICAgICAqICAuLi5cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFubmVyIChjbG9zZWQpPVwiaGFuZGxlQ2xvc2VkKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFubmVyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYmVmb3JlIHRoZSBiYW5uZXIgaGlkZXNcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGhhbmRsZUNsb3NpbmcoZXZlbnQpIHtcbiAgICAgKiAgLi4uXG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhbm5lciAoY2xvc2luZyk9XCJoYW5kbGVDbG9zaW5nKCRldmVudClcIj48L2lneC1iYW5uZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEJhbm5lckNhbmNlbEV2ZW50QXJncz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCB1c2VEZWZhdWx0VGVtcGxhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fYmFubmVyQWN0aW9uVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBhbmltYXRpb24gc2V0dGluZ3MgdXNlZCBieSB0aGUgYmFubmVyIG9wZW4vY2xvc2UgbWV0aG9kc1xuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBpbXBvcnQgeyBzbGlkZUluTGVmdCwgc2xpZGVPdXRSaWdodCB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXInO1xuICAgICAqIC4uLlxuICAgICAqIGJhbm5lci5hbmltYXRpb25TZXR0aW5nczogVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3MgPSB7IG9wZW5BbmltYXRpb246IHNsaWRlSW5MZWZ0LCBjbG9zZUFuaW1hdGlvbjogc2xpZGVPdXRSaWdodCB9O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uU2V0dGluZ3Moc2V0dGluZ3M6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBhbmltYXRpb24gc2V0dGluZ3MgdXNlZCBieSB0aGUgYmFubmVyIG9wZW4vY2xvc2UgbWV0aG9kc1xuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgY3VycmVudEFuaW1hdGlvbnM6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzID0gYmFubmVyLmFuaW1hdGlvblNldHRpbmdzXG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGFuaW1hdGlvblNldHRpbmdzKCk6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID8gdGhpcy5fYW5pbWF0aW9uU2V0dGluZ3MgOiB0aGlzLl9leHBhbnNpb25QYW5lbC5hbmltYXRpb25TZXR0aW5ncztcbiAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUJhbm5lclJlc291cmNlU3RyaW5ncykge1xuICAgICAgICB0aGlzLl9yZXNvdXJjZVN0cmluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJQmFubmVyUmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIGJhbm5lciBpcyBjb2xsYXBzZWRcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGJhbm5lci5jb2xsYXBzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHBhbnNpb25QYW5lbC5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbmF0aXZlIGVsZW1lbnQgb2YgdGhlIGJhbm5lciBjb21wb25lbnRcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIGNvbnN0IG15QmFubmVyRWxlbWVudDogSFRNTEVsZW1lbnQgPSBiYW5uZXIuZWxlbWVudDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWJhbm5lci1ob3N0JztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICAgIHB1YmxpYyBnZXQgZGlzcGxheVN0eWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZCA/ICcnIDogJ2Jsb2NrJztcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdleHBhbnNpb25QYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfZXhwYW5zaW9uUGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChJZ3hCYW5uZXJBY3Rpb25zRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgX2Jhbm5lckFjdGlvblRlbXBsYXRlOiBJZ3hCYW5uZXJBY3Rpb25zRGlyZWN0aXZlO1xuXG4gICAgcHJpdmF0ZSBfYmFubmVyRXZlbnQ6IEJhbm5lckV2ZW50QXJncztcbiAgICBwcml2YXRlIF9hbmltYXRpb25TZXR0aW5nczogVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3M7XG4gICAgcHJpdmF0ZSBfcmVzb3VyY2VTdHJpbmdzID0gZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyhCYW5uZXJSZXNvdXJjZVN0cmluZ3NFTik7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHsgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIGJhbm5lclxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBteUJhbm5lci5vcGVuKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYW5uZXIgI2Jhbm5lcj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1iYW5uZXI+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJhbm5lci5vcGVuKClcIj5PcGVuIEJhbm5lcjwvYnV0dG9uPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fYmFubmVyRXZlbnQgPSB7IGJhbm5lcjogdGhpcywgb3duZXI6IHRoaXMsIGV2ZW50fTtcbiAgICAgICAgY29uc3Qgb3BlbmluZ0FyZ3M6IEJhbm5lckNhbmNlbEV2ZW50QXJncyA9IHtcbiAgICAgICAgICAgIGJhbm5lcjogdGhpcyxcbiAgICAgICAgICAgIG93bmVyOiB0aGlzLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBjYW5jZWw6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub3BlbmluZy5lbWl0KG9wZW5pbmdBcmdzKTtcbiAgICAgICAgaWYgKG9wZW5pbmdBcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4cGFuc2lvblBhbmVsLm9wZW4oZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgYmFubmVyXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIG15QmFubmVyLmNsb3NlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYW5uZXIgI2Jhbm5lcj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1iYW5uZXI+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJhbm5lci5jbG9zZSgpXCI+Q2xvc2UgQmFubmVyPC9idXR0b24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fYmFubmVyRXZlbnQgPSB7IGJhbm5lcjogdGhpcywgb3duZXI6IHRoaXMsIGV2ZW50fTtcbiAgICAgICAgY29uc3QgY2xvc2luZ0FyZ3M6IEJhbm5lckNhbmNlbEV2ZW50QXJncyA9IHtcbiAgICAgICAgICAgIGJhbm5lcjogdGhpcyxcbiAgICAgICAgICAgIG93bmVyOiB0aGlzLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBjYW5jZWw6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2xvc2luZy5lbWl0KGNsb3NpbmdBcmdzKTtcbiAgICAgICAgaWYgKGNsb3NpbmdBcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4cGFuc2lvblBhbmVsLmNsb3NlKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHRoZSBiYW5uZXJcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgbXlCYW5uZXIudG9nZ2xlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1iYW5uZXIgI2Jhbm5lcj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1iYW5uZXI+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJhbm5lci50b2dnbGUoKVwiPlRvZ2dsZSBCYW5uZXI8L2J1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBvbkV4cGFuc2lvblBhbmVsT3BlbigpIHtcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCh0aGlzLl9iYW5uZXJFdmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgb25FeHBhbnNpb25QYW5lbENsb3NlKCkge1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KHRoaXMuX2Jhbm5lckV2ZW50KTtcbiAgICB9XG59XG4iLCI8aWd4LWV4cGFuc2lvbi1wYW5lbCAjZXhwYW5zaW9uUGFuZWwgW2FuaW1hdGlvblNldHRpbmdzXT1cImFuaW1hdGlvblNldHRpbmdzXCIgKGNvbnRlbnRDb2xsYXBzZWQpPVwib25FeHBhbnNpb25QYW5lbENsb3NlKClcIiAoY29udGVudEV4cGFuZGVkKT1cIm9uRXhwYW5zaW9uUGFuZWxPcGVuKClcIlxuICAgIFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkXCIgYXJpYS1saXZlPVwicG9saXRlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwiY29sbGFwc2VkXCI+XG4gICAgPGlneC1leHBhbnNpb24tcGFuZWwtYm9keT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1iYW5uZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtYmFubmVyX19tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJhbm5lckljb25cIiBjbGFzcz1cImlneC1iYW5uZXJfX2lsbHVzdHJhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtaWNvblwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1iYW5uZXJfX3RleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1iYW5uZXJfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlRGVmYXVsdFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbj1cImZsYXRcIiBpZ3hSaXBwbGUgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlc291cmNlU3RyaW5ncy5pZ3hfYmFubmVyX2J1dHRvbl9kaXNtaXNzIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdXNlRGVmYXVsdFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1iYW5uZXItYWN0aW9uc1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2lneC1leHBhbnNpb24tcGFuZWwtYm9keT5cbjwvaWd4LWV4cGFuc2lvbi1wYW5lbD5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Input, Output, EventEmitter, Directive, Inject, LOCALE_ID, HostListener, booleanAttribute } from '@angular/core';
2
- import { Calendar, isDateInRanges, ScrollMonth, CalendarSelection } from './calendar';
2
+ import { Calendar, isDateInRanges, CalendarSelection } from './calendar';
3
3
  import { noop, Subject } from 'rxjs';
4
4
  import { isDate, isEqual } from '../core/utils';
5
5
  import { CalendarResourceStringsEN } from '../core/i18n/calendar-resources';
@@ -268,7 +268,7 @@ export class IgxCalendarBaseDirective {
268
268
  /**
269
269
  * @hidden
270
270
  */
271
- this.monthScrollDirection = ScrollMonth.NONE;
271
+ this.monthScrollDirection = "none" /* ScrollMonth.NONE */;
272
272
  /**
273
273
  * @hidden
274
274
  */
@@ -703,4 +703,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
703
703
  type: HostListener,
704
704
  args: ['pointerdown', ['$event']]
705
705
  }] } });
706
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFZLFFBQVEsRUFBRSxjQUFjLEVBQWtFLFdBQVcsRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHakwsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBNEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUVuRSx3QkFBd0I7QUFLeEIsTUFBTSxPQUFPLHdCQUF3QjtJQXlNakM7OztPQUdHO0lBQ0gsSUFDVyxlQUFlLENBQUMsS0FBK0I7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09B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QVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxNQUFNO2dCQWVBLGVBQWU7c0JBRHJCLE1BQU07Z0JBZUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQStKSSxlQUFlO3NCQUR6QixLQUFLO2dCQWtCSyxTQUFTO3NCQURuQixLQUFLO2dCQW1CSyxNQUFNO3NCQURoQixLQUFLO2dCQStCSyxhQUFhO3NCQUR2QixLQUFLO2dCQW1CSyxXQUFXO3NCQURyQixLQUFLO2dCQXFCSyxTQUFTO3NCQURuQixLQUFLO2dCQWlDSyxLQUFLO3NCQURmLEtBQUs7Z0JBK0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBeUJLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBeUJLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBc0NDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBEaXJlY3RpdmUsIEluamVjdCwgTE9DQUxFX0lELCBIb3N0TGlzdGVuZXIsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdFRUtEQVlTLCBDYWxlbmRhciwgaXNEYXRlSW5SYW5nZXMsIElGb3JtYXR0aW5nT3B0aW9ucywgSUZvcm1hdHRpbmdWaWV3cywgSVZpZXdEYXRlQ2hhbmdlRXZlbnRBcmdzLCBTY3JvbGxNb250aCwgSWd4Q2FsZW5kYXJWaWV3LCBDYWxlbmRhclNlbGVjdGlvbiB9IGZyb20gJy4vY2FsZW5kYXInO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VEZXNjcmlwdG9yIH0gZnJvbSAnLi4vY29yZS9kYXRlcyc7XG5pbXBvcnQgeyBub29wLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc0RhdGUsIGlzRXF1YWwsIFBsYXRmb3JtVXRpbCB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJSZXNvdXJjZVN0cmluZ3NFTiwgSUNhbGVuZGFyUmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL2NhbGVuZGFyLXJlc291cmNlcyc7XG5pbXBvcnQgeyBEYXRlVGltZVV0aWwgfSBmcm9tICcuLi9kYXRlLWNvbW1vbi91dGlsL2RhdGUtdGltZS51dGlsJztcbmltcG9ydCB7IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9yZXNvdXJjZXMnO1xuXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneENhbGVuZGFyQmFzZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2FsZW5kYXJCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSBvdXRzaWRlIGRhdGVzIChkYXRlcyB0aGF0IGFyZSBvdXQgb2YgdGhlIGN1cnJlbnQgbW9udGgpIHdpbGwgYmUgaGlkZGVuLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYWxlbmRhciBbaGlkZU91dHNpZGVEYXlzXT1cInRydWVcIj48L2lneC1jYWxlbmRhcj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGhpZGVPdXRzaWRlRGF5cyA9IHRoaXMuY2FsZW5kYXIuaGlkZU91dHNpZGVEYXlzO1xuICAgICAqIGBgYFxuICAgICAqL1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGhpZGVPdXRzaWRlRGF5cyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWQuXG4gICAgICogUHJvdmlkZXMgcmVmZXJlbmNlIHRoZSBgc2VsZWN0ZWREYXRlc2AgcHJvcGVydHkuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgRGF0ZVtdPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgbW9udGggaW4gdmlldyBpcyBjaGFuZ2VkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNhbGVuZGFyICh2aWV3RGF0ZUNoYW5nZWQpPVwidmlld0RhdGVDaGFuZ2VkKCRldmVudClcIj48L2lneC1jYWxlbmRhcj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIHZpZXdEYXRlQ2hhbmdlZChldmVudDogSVZpZXdEYXRlQ2hhbmdlRXZlbnRBcmdzKSB7XG4gICAgICogIGxldCB2aWV3RGF0ZSA9IGV2ZW50LmN1cnJlbnRWYWx1ZTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZpZXdEYXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVZpZXdEYXRlQ2hhbmdlRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYWxlbmRhciAoYWN0aXZlVmlld0NoYW5nZWQpPVwiYWN0aXZlVmlld0NoYW5nZWQoJGV2ZW50KVwiPjwvaWd4LWNhbGVuZGFyPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgYWN0aXZlVmlld0NoYW5nZWQoZXZlbnQ6IENhbGVuZGFyVmlldykge1xuICAgICAqICBsZXQgYWN0aXZlVmlldyA9IGV2ZW50O1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aXZlVmlld0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElneENhbGVuZGFyVmlldz4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmFuZ2VTdGFydGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG1vbnRoU2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsTW9udGguTk9ORTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2Nyb2xsTW9udGgkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RvcE1vbnRoU2Nyb2xsJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHN0YXJ0TW9udGhTY3JvbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlcztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hpZnRLZXkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICogQGhpZGRlblxuICAgICovXG4gICAgcHVibGljIGxhc3RTZWxlY3RlZERhdGU6IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1hdHRlcldlZWtkYXk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1hdHRlckRheTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWF0dGVyTW9udGg7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1hdHRlclllYXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1hdHRlck1vbnRoZGF5O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjYWxlbmRhck1vZGVsOiBDYWxlbmRhcjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX29uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogRGF0ZSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICAvKipcbiAgICAgICogQGhpZGRlblxuICAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc2VsZWN0RGF0ZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNlbGVjdGVkRGF0ZXNXaXRob3V0Rm9jdXM7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfd2Vla1N0YXJ0OiBXRUVLREFZUyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF92aWV3RGF0ZTogRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zdGFydERhdGU6IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZW5kRGF0ZTogRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNhYmxlZERhdGVzOiBEYXRlUmFuZ2VEZXNjcmlwdG9yW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc3BlY2lhbERhdGVzOiBEYXRlUmFuZ2VEZXNjcmlwdG9yW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uOiBDYWxlbmRhclNlbGVjdGlvbiB8IHN0cmluZyA9IENhbGVuZGFyU2VsZWN0aW9uLlNJTkdMRTtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHByaXZhdGUgX3Jlc291cmNlU3RyaW5ncyA9IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MoQ2FsZW5kYXJSZXNvdXJjZVN0cmluZ3NFTik7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybWF0T3B0aW9uczogSUZvcm1hdHRpbmdPcHRpb25zID0ge1xuICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIHdlZWtkYXk6ICdzaG9ydCcsXG4gICAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybWF0Vmlld3M6IElGb3JtYXR0aW5nVmlld3MgPSB7XG4gICAgICAgIGRheTogZmFsc2UsXG4gICAgICAgIG1vbnRoOiB0cnVlLFxuICAgICAgICB5ZWFyOiBmYWxzZVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBbiBhY2Nlc3NvciB0aGF0IHNldHMgdGhlIHJlc291cmNlIHN0cmluZ3MuXG4gICAgICogQnkgZGVmYXVsdCBpdCB1c2VzIEVOIHJlc291cmNlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVzb3VyY2VTdHJpbmdzKHZhbHVlOiBJQ2FsZW5kYXJSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gYWNjZXNzb3IgdGhhdCByZXR1cm5zIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzb3VyY2VTdHJpbmdzKCk6IElDYWxlbmRhclJlc291cmNlU3RyaW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVN0cmluZ3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc3RhcnQgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAqIENhbiByZXR1cm4gYSBudW1lcmljIG9yIGFuIGVudW0gcmVwcmVzZW50YXRpb24gb2YgdGhlIHdlZWsgZGF5LlxuICAgICAqIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgZm9yIHRoZSBhcHBsaWNhdGlvbiBsb2NhbGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHdlZWtTdGFydCgpOiBXRUVLREFZUyB8IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGVuZGFyTW9kZWwuZmlyc3RXZWVrRGF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXJ0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgKiBDYW4gYmUgYXNzaWduZWQgdG8gYSBudW1lcmljIHZhbHVlIG9yIHRvIGBXRUVLREFZU2AgZW51bSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHdlZWtTdGFydCh2YWx1ZTogV0VFS0RBWVMgfCBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fd2Vla1N0YXJ0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJNb2RlbC5maXJzdFdlZWtEYXkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgY2FsZW5kYXIuXG4gICAgICogSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYXBwbGljYXRpb24ncyBsb2NhbGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGxvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSBjYWxlbmRhci5cbiAgICAgKiBFeHBlY3RzIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGxvY2FsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuXG4gICAgICAgIC8vIGlmIHZhbHVlIGlzIG5vdCBhIHZhbGlkIEJDUCA0NyB0YWcsIHNldCBpdCBiYWNrIHRvIF9sb2NhbGVJZFxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZ2V0TG9jYWxlRmlyc3REYXlPZldlZWsodGhpcy5fbG9jYWxlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxlID0gdGhpcy5fbG9jYWxlSWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGFuZ2luZyBsb2NhbGUgcnVudGltZSBuZWVkcyB0byB1cGRhdGUgdGhlIGB3ZWVrU3RhcnRgIHRvbywgaWYgYHdlZWtTdGFydGAgaXMgbm90IGV4cGxpY2l0bHkgc2V0XG4gICAgICAgIGlmICh0aGlzLl93ZWVrU3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck1vZGVsLmZpcnN0V2Vla0RheSA9IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRGb3JtYXR0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXQgb3B0aW9ucyBvZiB0aGUgZGF5cyB2aWV3LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBmb3JtYXRPcHRpb25zKCk6IElGb3JtYXR0aW5nT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXRPcHRpb25zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGRhdGUgZm9ybWF0IG9wdGlvbnMgb2YgdGhlIGRheXMgdmlldy5cbiAgICAgKiBEZWZhdWx0IGlzIHsgZGF5OiAnbnVtZXJpYycsIG1vbnRoOiAnc2hvcnQnLCB3ZWVrZGF5OiAnc2hvcnQnLCB5ZWFyOiAnbnVtZXJpYycgfVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgZm9ybWF0T3B0aW9ucyhmb3JtYXRPcHRpb25zOiBJRm9ybWF0dGluZ09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fZm9ybWF0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5fZm9ybWF0T3B0aW9ucywgZm9ybWF0T3B0aW9ucyk7XG4gICAgICAgIHRoaXMuaW5pdEZvcm1hdHRlcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGBkYXlgLCBgbW9udGhgIGFuZCBgeWVhcmAgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICogYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUgYW5kIGZvcm1hdE9wdGlvbnMsIGlmIGFueS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZm9ybWF0Vmlld3MoKTogSUZvcm1hdHRpbmdWaWV3cyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXRWaWV3cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGBkYXlgLCBgbW9udGhgIGFuZCBgeWVhcmAgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICogYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUgYW5kIGZvcm1hdE9wdGlvbnMsIGlmIGFueS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGZvcm1hdFZpZXdzKGZvcm1hdFZpZXdzOiBJRm9ybWF0dGluZ1ZpZXdzKSB7XG4gICAgICAgIHRoaXMuX2Zvcm1hdFZpZXdzID0gT2JqZWN0LmFzc2lnbih0aGlzLl9mb3JtYXRWaWV3cywgZm9ybWF0Vmlld3MpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogR2V0cyB0aGUgc2VsZWN0aW9uIHR5cGUuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgXCJzaW5nbGVcImAuXG4gICAgICogQ2hhbmdpbmcgdGhlIHR5cGUgb2Ygc2VsZWN0aW9uIHJlc2V0cyB0aGUgY3VycmVudGx5XG4gICAgICogc2VsZWN0ZWQgdmFsdWVzIGlmIGFueS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgc2VsZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgc2VsZWN0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5TSU5HTEU6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJTZWxlY3Rpb24uTVVMVEk6XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLlJBTkdFOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IFtdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2VsZWN0aW9uIHZhbHVlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICB0aGlzLnJhbmdlU3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzZWxlY3RlZCBkYXRlKHMpLlxuICAgICAqXG4gICAgICogV2hlbiBzZWxlY3Rpb24gaXMgc2V0IHRvIGBzaW5nbGVgLCBpdCByZXR1cm5zXG4gICAgICogYSBzaW5nbGUgYERhdGVgIG9iamVjdC5cbiAgICAgKiBPdGhlcndpc2UgaXQgaXMgYW4gYXJyYXkgb2YgYERhdGVgIG9iamVjdHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGUgfCBEYXRlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHNlbGVjdGVkIGRhdGUocykuXG4gICAgICpcbiAgICAgKiBXaGVuIHNlbGVjdGlvbiBpcyBzZXQgdG8gYHNpbmdsZWAsIGl0IGFjY2VwdHNcbiAgICAgKiBhIHNpbmdsZSBgRGF0ZWAgb2JqZWN0LlxuICAgICAqIE90aGVyd2lzZSBpdCBpcyBhbiBhcnJheSBvZiBgRGF0ZWAgb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBEYXRlIHwgRGF0ZVtdKSB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgISF2YWx1ZSAmJiAodmFsdWUgYXMgRGF0ZVtdKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlc1dpdGhvdXRGb2N1cyA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZXNXaXRob3V0Rm9jdXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlRGF0ZSA9IHZhbHVlWzBdID8gTWF0aC5taW4uYXBwbHkobnVsbCwgdmFsdWUpIDogdmFsdWU7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5nZXREYXRlT25seShuZXcgRGF0ZSh2YWx1ZURhdGUpKS5zZXREYXRlKDEpO1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0RGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlc1dpdGhvdXRGb2N1cyA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRhdGUgdGhhdCBpcyBwcmVzZW50ZWQuXG4gICAgICogQnkgZGVmYXVsdCBpdCBpcyB0aGUgY3VycmVudCBkYXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2aWV3RGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdEYXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGRhdGUgdGhhdCB3aWxsIGJlIHByZXNlbnRlZCBpbiB0aGUgZGVmYXVsdCB2aWV3IHdoZW4gdGhlIGNvbXBvbmVudCByZW5kZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgdmlld0RhdGUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWxpZERhdGUgPSB0aGlzLnZhbGlkYXRlRGF0ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl92aWV3RGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzV2l0aG91dEZvY3VzID0gdmFsaWREYXRlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmdldERhdGVPbmx5KHZhbGlkRGF0ZSkuc2V0RGF0ZSgxKTtcbiAgICAgICAgdGhpcy5fdmlld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkaXNhYmxlZCBkYXRlcyBkZXNjcmlwdG9ycy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWREYXRlcygpOiBEYXRlUmFuZ2VEZXNjcmlwdG9yW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWREYXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBkYXRlcycgZGVzY3JpcHRvcnMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUNhbGVuZGFyXCIpXG4gICAgICogcHVibGljIGNhbGVuZGFyOiBJZ3hDYWxlbmRhckNvbXBvbmVudDtcbiAgICAgKiBuZ09uSW5pdCgpe1xuICAgICAqICAgIHRoaXMuY2FsZW5kYXIuZGlzYWJsZWREYXRlcyA9IFtcbiAgICAgKiAgICAge3R5cGU6IERhdGVSYW5nZVR5cGUuQmV0d2VlbiwgZGF0ZVJhbmdlOiBbbmV3IERhdGUoXCIyMDIwLTEtMVwiKSwgbmV3IERhdGUoXCIyMDIwLTEtMTVcIildfSxcbiAgICAgKiAgICAge3R5cGU6IERhdGVSYW5nZVR5cGUuV2Vla2VuZHN9XTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlUmFuZ2VEZXNjcmlwdG9yW10pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHNwZWNpYWwgZGF0ZXMgZGVzY3JpcHRvcnMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNwZWNpYWxEYXRlcygpOiBEYXRlUmFuZ2VEZXNjcmlwdG9yW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BlY2lhbERhdGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHNwZWNpYWwgZGF0ZXMnIGRlc2NyaXB0b3JzLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDYWxlbmRhclwiKVxuICAgICAqIHB1YmxpYyBjYWxlbmRhcjogSWd4Q2FsZW5kYXJDb21wb25lbnQ7XG4gICAgICogbmdPbkluaXQoKXtcbiAgICAgKiAgICB0aGlzLmNhbGVuZGFyLnNwZWNpYWxEYXRlcyA9IFtcbiAgICAgKiAgICAge3R5cGU6IERhdGVSYW5nZVR5cGUuQmV0d2VlbiwgZGF0ZVJhbmdlOiBbbmV3IERhdGUoXCIyMDIwLTEtMVwiKSwgbmV3IERhdGUoXCIyMDIwLTEtMTVcIildfSxcbiAgICAgKiAgICAge3R5cGU6IERhdGVSYW5nZVR5cGUuV2Vla2VuZHN9XTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNldCBzcGVjaWFsRGF0ZXModmFsdWU6IERhdGVSYW5nZURlc2NyaXB0b3JbXSkge1xuICAgICAgICB0aGlzLl9zcGVjaWFsRGF0ZXMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwsIEBJbmplY3QoTE9DQUxFX0lEKSBwcm90ZWN0ZWQgX2xvY2FsZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhck1vZGVsID0gbmV3IENhbGVuZGFyKCk7XG4gICAgICAgIHRoaXMubG9jYWxlID0gX2xvY2FsZUlkO1xuICAgICAgICB0aGlzLnZpZXdEYXRlID0gdGhpcy52aWV3RGF0ZSA/IHRoaXMudmlld0RhdGUgOiBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLmluaXRGb3JtYXR0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTXVsdGkvUmFuZ2Ugc2VsZWN0aW9uIHdpdGggc2hpZnQga2V5XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvblBvaW50ZXJkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2hpZnRLZXkgPSBldmVudC5idXR0b24gPT09IDAgJiYgZXZlbnQuc2hpZnRLZXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgZGVzZWxlY3Rpb24gb2YgZGF0ZS9kYXRlcywgd2hlbiBzZWxlY3Rpb24gaXMgbXVsdGlcbiAgICAgKiBVc3VhbGx5IHBlcmZvcm1lZCBieSB0aGUgc2VsZWN0TXVsdGlwbGUgbWV0aG9kLCBidXQgbGVhZHMgdG8gYnVnIHdoZW4gbXVsdGlwbGUgbW9udGhzIGFyZSBpbiB2aWV3XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGRlc2VsZWN0TXVsdGlwbGVJbk1vbnRoKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIC8vIGRlc2VsZWN0IG11bHRpcGxlIGRhdGVzIGZyb20gbGFzdCBjbGlja2VkIHRvIHNoaWZ0IGNsaWNrZWQgZGF0ZSAoZXhjbHVkaW5nKVxuICAgICAgICBpZiAodGhpcy5zaGlmdEtleSkge1xuICAgICAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5sYXN0U2VsZWN0ZWREYXRlLmdldFRpbWUoKSA8IHZhbHVlLmdldFRpbWUoKVxuICAgICAgICAgICAgICAgID8gW3RoaXMubGFzdFNlbGVjdGVkRGF0ZSwgdmFsdWVdXG4gICAgICAgICAgICAgICAgOiBbdmFsdWUsIHRoaXMubGFzdFNlbGVjdGVkRGF0ZV07XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHRoaXMuc2VsZWN0ZWREYXRlcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGRhdGU6IERhdGUpID0+IGRhdGUuZ2V0VGltZSgpIDwgc3RhcnQuZ2V0VGltZSgpIHx8IGRhdGUuZ2V0VGltZSgpID4gZW5kLmdldFRpbWUoKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzLnB1c2godmFsdWUpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBkZXNlbGVjdCBhIHNpbmdsZSBkYXRlXG4gICAgICAgICAgICBjb25zdCB2YWx1ZURhdGVPbmx5ID0gdGhpcy5nZXREYXRlT25seSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChkYXRlOiBEYXRlKSA9PiBkYXRlLmdldFRpbWUoKSAhPT0gdmFsdWVEYXRlT25seS5nZXRUaW1lKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBEYXRlKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgRGF0ZVtdKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RGF0ZSh2YWx1ZSBhcyBEYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciBhIGRhdGUgaXMgZGlzYWJsZWQuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGlzRGF0ZURpc2FibGVkKGRhdGU6IERhdGUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWREYXRlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzRGF0ZUluUmFuZ2VzKGRhdGUsIHRoaXMuZGlzYWJsZWREYXRlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWN0cyBkYXRlKHMpIChiYXNlZCBvbiB0aGUgc2VsZWN0aW9uIHR5cGUpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3REYXRlKHZhbHVlOiBEYXRlIHwgRGF0ZVtdKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLlNJTkdMRTpcbiAgICAgICAgICAgICAgICBpZiAoaXNEYXRlKHZhbHVlKSAmJiAhdGhpcy5pc0RhdGVEaXNhYmxlZCh2YWx1ZSBhcyBEYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFNpbmdsZSh2YWx1ZSBhcyBEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLk1VTFRJOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TXVsdGlwbGUodmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5SQU5HRTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFJhbmdlKHZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0cyBkYXRlKHMpIChiYXNlZCBvbiB0aGUgc2VsZWN0aW9uIHR5cGUpLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNlbGVjdERhdGUodmFsdWU/OiBEYXRlIHwgRGF0ZVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGVzIHx8IHRoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGlvbiA9PT0gQ2FsZW5kYXJTZWxlY3Rpb24uU0lOR0xFID8gbnVsbCA6IFtdO1xuICAgICAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJTZWxlY3Rpb24uU0lOR0xFOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RTaW5nbGUodmFsdWUgYXMgRGF0ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLk1VTFRJOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RNdWx0aXBsZSh2YWx1ZSBhcyBEYXRlW10pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5SQU5HRTpcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2VsZWN0UmFuZ2UodmFsdWUgYXMgRGF0ZVtdKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0RGF0ZUZyb21DbGllbnQodmFsdWU6IERhdGUpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5TSU5HTEU6XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLk1VTFRJOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLlJBTkdFOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0UmFuZ2UodmFsdWUsIHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpbml0Rm9ybWF0dGVycygpIHtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXJEYXkgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLl9sb2NhbGUsIHsgZGF5OiB0aGlzLl9mb3JtYXRPcHRpb25zLmRheSB9KTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXJXZWVrZGF5ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5fbG9jYWxlLCB7IHdlZWtkYXk6IHRoaXMuX2Zvcm1hdE9wdGlvbnMud2Vla2RheSB9KTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXJNb250aCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuX2xvY2FsZSwgeyBtb250aDogdGhpcy5fZm9ybWF0T3B0aW9ucy5tb250aCB9KTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXJZZWFyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5fbG9jYWxlLCB7IHllYXI6IHRoaXMuX2Zvcm1hdE9wdGlvbnMueWVhciB9KTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXJNb250aGRheSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuX2xvY2FsZSwgeyBtb250aDogdGhpcy5fZm9ybWF0T3B0aW9ucy5tb250aCwgZGF5OiB0aGlzLl9mb3JtYXRPcHRpb25zLmRheSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldERhdGVPbmx5KGRhdGU6IERhdGUpIHtcbiAgICAgICAgY29uc3QgdmFsaWREYXRlID0gdGhpcy52YWxpZGF0ZURhdGUoZGF0ZSk7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWxpZERhdGUuZ2V0RnVsbFllYXIoKSwgdmFsaWREYXRlLmdldE1vbnRoKCksIHZhbGlkRGF0ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldERhdGVPbmx5SW5NcyhkYXRlOiBEYXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGVPbmx5KGRhdGUpLmdldFRpbWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZURhdGVSYW5nZShzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogRGF0ZVtdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIHN0YXJ0ID0gdGhpcy5nZXREYXRlT25seShzdGFydCk7XG4gICAgICAgIGVuZCA9IHRoaXMuZ2V0RGF0ZU9ubHkoZW5kKTtcbiAgICAgICAgd2hpbGUgKHN0YXJ0LmdldFRpbWUoKSA8IGVuZC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5jYWxlbmRhck1vZGVsLnRpbWVkZWx0YShzdGFydCwgJ2RheScsIDEpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goc3RhcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHNpbmdsZSBzZWxlY3Rpb24uXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZWxlY3RTaW5nbGUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgaWYgKCFpc0VxdWFsKHRoaXMuc2VsZWN0ZWREYXRlcywgdmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLmdldERhdGVPbmx5KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgbXVsdGlwbGUgc2VsZWN0aW9uXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZWxlY3RNdWx0aXBsZSh2YWx1ZTogRGF0ZSB8IERhdGVbXSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGVzID0gdmFsdWUubWFwKHYgPT4gdGhpcy5nZXREYXRlT25seSh2KS5nZXRUaW1lKCkpO1xuICAgICAgICAgICAgY29uc3Qgc2VsRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXMubWFwKHYgPT4gdGhpcy5nZXREYXRlT25seSh2KS5nZXRUaW1lKCkpO1xuXG4gICAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkobmV3RGF0ZXMpID09PSBKU09OLnN0cmluZ2lmeShzZWxEYXRlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IEFycmF5LmZyb20obmV3IFNldChbLi4ubmV3RGF0ZXMsIC4uLnNlbERhdGVzXSkpLm1hcCh2ID0+IG5ldyBEYXRlKHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBuZXdTZWxlY3Rpb24gPSBbXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2hpZnRLZXkgJiYgdGhpcy5sYXN0U2VsZWN0ZWREYXRlKSB7XG5cbiAgICAgICAgICAgICAgICBbdGhpcy5fc3RhcnREYXRlLCB0aGlzLl9lbmREYXRlXSA9IHRoaXMubGFzdFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB2YWx1ZS5nZXRUaW1lKClcbiAgICAgICAgICAgICAgICAgICAgPyBbdGhpcy5sYXN0U2VsZWN0ZWREYXRlLCB2YWx1ZV1cbiAgICAgICAgICAgICAgICAgICAgOiBbdmFsdWUsIHRoaXMubGFzdFNlbGVjdGVkRGF0ZV07XG5cbiAgICAgICAgICAgICAgICBjb25zdCB1bnNlbGVjdGVkRGF0ZXMgPSBbdGhpcy5fc3RhcnREYXRlLCAuLi50aGlzLmdlbmVyYXRlRGF0ZVJhbmdlKHRoaXMuX3N0YXJ0RGF0ZSwgdGhpcy5fZW5kRGF0ZSldXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZGF0ZSA9PiAhdGhpcy5pc0RhdGVEaXNhYmxlZChkYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5zZWxlY3RlZERhdGVzLmV2ZXJ5KChkOiBEYXRlKSA9PiBkLmdldFRpbWUoKSAhPT0gZGF0ZS5nZXRUaW1lKCkpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAvLyBzZWxlY3QgYWxsIGRhdGVzIGZyb20gbGFzdCBzZWxlY3RlZCB0byBzaGlmdCBjbGlja2VkIGRhdGVcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVzLnNvbWUoKGRhdGU6IERhdGUpID0+IGRhdGUuZ2V0VGltZSgpID09PSB0aGlzLmxhc3RTZWxlY3RlZERhdGUuZ2V0VGltZSgpKVxuICAgICAgICAgICAgICAgICAgICAmJiB1bnNlbGVjdGVkRGF0ZXMubGVuZ3RoKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gdW5zZWxlY3RlZERhdGVzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRlbGVzZWN0IGFsbCBkYXRlcyBmcm9tIGxhc3QgY2xpY2tlZCB0byBzaGlmdCBjbGlja2VkIGRhdGUgKGV4Y2x1ZGluZylcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLmZpbHRlcigoZGF0ZTogRGF0ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpIDwgdGhpcy5fc3RhcnREYXRlLmdldFRpbWUoKSB8fCBkYXRlLmdldFRpbWUoKSA+IHRoaXMuX2VuZERhdGUuZ2V0VGltZSgpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZXNlbGVjdERhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHRoaXMuX2VuZERhdGUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGVzLmV2ZXJ5KChkYXRlOiBEYXRlKSA9PiBkYXRlLmdldFRpbWUoKSAhPT0gdmFsdWUuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5wdXNoKHZhbHVlKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoZGF0ZTogRGF0ZSkgPT4gZGF0ZS5nZXRUaW1lKCkgIT09IHZhbHVlLmdldFRpbWUoKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9kZXNlbGVjdERhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXMuY29uY2F0KG5ld1NlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3REYXRlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLmZpbHRlcihkID0+ICF0aGlzLmlzRGF0ZURpc2FibGVkKGQpKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzLnNvcnQoKGE6IERhdGUsIGI6IERhdGUpID0+IGEudmFsdWVPZigpIC0gYi52YWx1ZU9mKCkpO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgc2VsZWN0UmFuZ2UodmFsdWU6IERhdGUgfCBEYXRlW10sIGV4Y2x1ZGVEaXNhYmxlZERhdGVzID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5zb3J0KChhOiBEYXRlLCBiOiBEYXRlKSA9PiBhLnZhbHVlT2YoKSAtIGIudmFsdWVPZigpKTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHRoaXMuZ2V0RGF0ZU9ubHkodmFsdWVbMF0pO1xuICAgICAgICAgICAgdGhpcy5fZW5kRGF0ZSA9IHRoaXMuZ2V0RGF0ZU9ubHkodmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0pO1xuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zaGlmdEtleSAmJiB0aGlzLmxhc3RTZWxlY3RlZERhdGUpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhc3RTZWxlY3RlZERhdGUuZ2V0VGltZSgpID09PSB2YWx1ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLmxlbmd0aCA9PT0gMSA/IFtdIDogW3ZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ZWQgPSAhIXRoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHNob3J0ZW5zIHRoZSByYW5nZSB3aGVuIHNlbGVjdGluZyBhIGRhdGUgaW5zaWRlIG9mIGl0XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlcy5zb21lKChkYXRlOiBEYXRlKSA9PiBkYXRlLmdldFRpbWUoKSA9PT0gdmFsdWUuZ2V0VGltZSgpKSkge1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB2YWx1ZS5nZXRUaW1lKClcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fc3RhcnREYXRlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZW5kRGF0ZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXh0ZW5kcyB0aGUgcmFuZ2Ugd2hlbiBzZWxlY3RpbmcgYSBkYXRlIG91dHNpZGUgb2YgaXRcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3dzIHNlbGVjdGlvbiBmcm9tIGxhc3QgZGVzZWxlY3RlZCB0byBjdXJyZW50IHNlbGVjdGVkIGRhdGVcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB2YWx1ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHRoaXMuX3N0YXJ0RGF0ZSA/PyB0aGlzLmxhc3RTZWxlY3RlZERhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbmREYXRlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGFydERhdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2VuZERhdGUgPSB0aGlzLl9lbmREYXRlID8/IHRoaXMubGFzdFNlbGVjdGVkRGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VTdGFydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucmFuZ2VTdGFydGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IFt2YWx1ZV07XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnREYXRlID0gdGhpcy5fZW5kRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpID09PSB2YWx1ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIFt0aGlzLl9zdGFydERhdGUsIHRoaXMuX2VuZERhdGVdID0gdGhpcy5sYXN0U2VsZWN0ZWREYXRlLmdldFRpbWUoKSA8IHZhbHVlLmdldFRpbWUoKVxuICAgICAgICAgICAgICAgICAgICA/IFt0aGlzLmxhc3RTZWxlY3RlZERhdGUsIHZhbHVlXVxuICAgICAgICAgICAgICAgICAgICA6IFt2YWx1ZSwgdGhpcy5sYXN0U2VsZWN0ZWREYXRlXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fc3RhcnREYXRlICYmIHRoaXMuX2VuZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IFt0aGlzLl9zdGFydERhdGUsIC4uLnRoaXMuZ2VuZXJhdGVEYXRlUmFuZ2UodGhpcy5fc3RhcnREYXRlLCB0aGlzLl9lbmREYXRlKV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhjbHVkZURpc2FibGVkRGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHRoaXMuc2VsZWN0ZWREYXRlcy5maWx0ZXIoZCA9PiAhdGhpcy5pc0RhdGVEaXNhYmxlZChkKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBzaW5nbGUgZGVzZWxlY3Rpb24uXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZXNlbGVjdFNpbmdsZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVzICE9PSBudWxsICYmXG4gICAgICAgICAgICB0aGlzLmdldERhdGVPbmx5SW5Ncyh2YWx1ZSBhcyBEYXRlKSA9PT0gdGhpcy5nZXREYXRlT25seUluTXModGhpcy5zZWxlY3RlZERhdGVzKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgbXVsdGlwbGUgZGVzZWxlY3Rpb24uXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZXNlbGVjdE11bHRpcGxlKHZhbHVlOiBEYXRlW10pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIodiA9PiB2ICE9PSBudWxsKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlc0NvdW50ID0gdGhpcy5zZWxlY3RlZERhdGVzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0ZXNJbk1zVG9EZXNlbGVjdDogU2V0PG51bWJlcj4gPSBuZXcgU2V0PG51bWJlcj4oXG4gICAgICAgICAgICB2YWx1ZS5tYXAodiA9PiB0aGlzLmdldERhdGVPbmx5SW5Ncyh2KSkpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnNlbGVjdGVkRGF0ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChkYXRlc0luTXNUb0Rlc2VsZWN0Lmhhcyh0aGlzLmdldERhdGVPbmx5SW5Ncyh0aGlzLnNlbGVjdGVkRGF0ZXNbaV0pKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVzLmxlbmd0aCAhPT0gc2VsZWN0ZWREYXRlc0NvdW50KSB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHJhbmdlIGRlc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzZWxlY3RSYW5nZSh2YWx1ZTogRGF0ZVtdKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKHYgPT4gdiAhPT0gbnVsbCk7XG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YWx1ZS5zb3J0KChhOiBEYXRlLCBiOiBEYXRlKSA9PiBhLnZhbHVlT2YoKSAtIGIudmFsdWVPZigpKTtcbiAgICAgICAgY29uc3QgdmFsdWVTdGFydCA9IHRoaXMuZ2V0RGF0ZU9ubHlJbk1zKHZhbHVlWzBdKTtcbiAgICAgICAgY29uc3QgdmFsdWVFbmQgPSB0aGlzLmdldERhdGVPbmx5SW5Ncyh2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzLnNvcnQoKGE6IERhdGUsIGI6IERhdGUpID0+IGEudmFsdWVPZigpIC0gYi52YWx1ZU9mKCkpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGVzU3RhcnQgPSB0aGlzLmdldERhdGVPbmx5SW5Ncyh0aGlzLnNlbGVjdGVkRGF0ZXNbMF0pO1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGVzRW5kID0gdGhpcy5nZXREYXRlT25seUluTXModGhpcy5zZWxlY3RlZERhdGVzW3RoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGggLSAxXSk7XG5cbiAgICAgICAgaWYgKCEodmFsdWVFbmQgPCBzZWxlY3RlZERhdGVzU3RhcnQpICYmICEodmFsdWVTdGFydCA+IHNlbGVjdGVkRGF0ZXNFbmQpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucmFuZ2VTdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICByZXR1cm4gRGF0ZVRpbWVVdGlsLmlzVmFsaWREYXRlKHZhbHVlKSA/IHZhbHVlIDogbmV3IERhdGUoKTtcbiAgICB9XG59XG4iXX0=
706
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFZLFFBQVEsRUFBRSxjQUFjLEVBQWdHLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR2pMLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQTRCLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFbkUsd0JBQXdCO0FBS3hCLE1BQU0sT0FBTyx3QkFBd0I7SUF5TWpDOzs7T0FHRztJQUNILElBQ1csZUFBZSxDQUFDLEtBQStCO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFD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QVE7c0JBRGQsTUFBTTtnQkFlQSxlQUFlO3NCQURyQixNQUFNO2dCQWVBLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkErSkksZUFBZTtzQkFEekIsS0FBSztnQkFrQkssU0FBUztzQkFEbkIsS0FBSztnQkFtQkssTUFBTTtzQkFEaEIsS0FBSztnQkErQkssYUFBYTtzQkFEdkIsS0FBSztnQkFtQkssV0FBVztzQkFEckIsS0FBSztnQkFxQkssU0FBUztzQkFEbkIsS0FBSztnQkFpQ0ssS0FBSztzQkFEZixLQUFLO2dCQStCSyxRQUFRO3NCQURsQixLQUFLO2dCQXlCSyxhQUFhO3NCQUR2QixLQUFLO2dCQXlCSyxZQUFZO3NCQUR0QixLQUFLO2dCQXNDQyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRGlyZWN0aXZlLCBJbmplY3QsIExPQ0FMRV9JRCwgSG9zdExpc3RlbmVyLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXRUVLREFZUywgQ2FsZW5kYXIsIGlzRGF0ZUluUmFuZ2VzLCBJRm9ybWF0dGluZ09wdGlvbnMsIElGb3JtYXR0aW5nVmlld3MsIElWaWV3RGF0ZUNoYW5nZUV2ZW50QXJncywgU2Nyb2xsTW9udGgsIElneENhbGVuZGFyVmlldywgQ2FsZW5kYXJTZWxlY3Rpb24gfSBmcm9tICcuL2NhbGVuZGFyJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlRGVzY3JpcHRvciB9IGZyb20gJy4uL2NvcmUvZGF0ZXMnO1xuaW1wb3J0IHsgbm9vcCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNEYXRlLCBpc0VxdWFsLCBQbGF0Zm9ybVV0aWwgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENhbGVuZGFyUmVzb3VyY2VTdHJpbmdzRU4sIElDYWxlbmRhclJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9jYWxlbmRhci1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgRGF0ZVRpbWVVdGlsIH0gZnJvbSAnLi4vZGF0ZS1jb21tb24vdXRpbC9kYXRlLXRpbWUudXRpbCc7XG5pbXBvcnQgeyBnZXRMb2NhbGVGaXJzdERheU9mV2VlayB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vcmVzb3VyY2VzJztcblxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDYWxlbmRhckJhc2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneENhbGVuZGFyQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgb3V0c2lkZSBkYXRlcyAoZGF0ZXMgdGhhdCBhcmUgb3V0IG9mIHRoZSBjdXJyZW50IG1vbnRoKSB3aWxsIGJlIGhpZGRlbi5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FsZW5kYXIgW2hpZGVPdXRzaWRlRGF5c109XCJ0cnVlXCI+PC9pZ3gtY2FsZW5kYXI+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBoaWRlT3V0c2lkZURheXMgPSB0aGlzLmNhbGVuZGFyLmhpZGVPdXRzaWRlRGF5cztcbiAgICAgKiBgYGBcbiAgICAgKi9cblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBoaWRlT3V0c2lkZURheXMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkLlxuICAgICAqIFByb3ZpZGVzIHJlZmVyZW5jZSB0aGUgYHNlbGVjdGVkRGF0ZXNgIHByb3BlcnR5LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IERhdGVbXT4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIG1vbnRoIGluIHZpZXcgaXMgY2hhbmdlZC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jYWxlbmRhciAodmlld0RhdGVDaGFuZ2VkKT1cInZpZXdEYXRlQ2hhbmdlZCgkZXZlbnQpXCI+PC9pZ3gtY2FsZW5kYXI+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyB2aWV3RGF0ZUNoYW5nZWQoZXZlbnQ6IElWaWV3RGF0ZUNoYW5nZUV2ZW50QXJncykge1xuICAgICAqICBsZXQgdmlld0RhdGUgPSBldmVudC5jdXJyZW50VmFsdWU7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2aWV3RGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElWaWV3RGF0ZUNoYW5nZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGFjdGl2ZSB2aWV3IGlzIGNoYW5nZWQuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2FsZW5kYXIgKGFjdGl2ZVZpZXdDaGFuZ2VkKT1cImFjdGl2ZVZpZXdDaGFuZ2VkKCRldmVudClcIj48L2lneC1jYWxlbmRhcj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGFjdGl2ZVZpZXdDaGFuZ2VkKGV2ZW50OiBDYWxlbmRhclZpZXcpIHtcbiAgICAgKiAgbGV0IGFjdGl2ZVZpZXcgPSBldmVudDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFjdGl2ZVZpZXdDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJZ3hDYWxlbmRhclZpZXc+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJhbmdlU3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aFNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbE1vbnRoLk5PTkU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNjcm9sbE1vbnRoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHN0b3BNb250aFNjcm9sbCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGFydE1vbnRoU2Nyb2xsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdGVkRGF0ZXM7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNoaWZ0S2V5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqL1xuICAgIHB1YmxpYyBsYXN0U2VsZWN0ZWREYXRlOiBEYXRlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBmb3JtYXR0ZXJXZWVrZGF5O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBmb3JtYXR0ZXJEYXk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1hdHRlck1vbnRoO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBmb3JtYXR0ZXJZZWFyO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBmb3JtYXR0ZXJNb250aGRheTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY2FsZW5kYXJNb2RlbDogQ2FsZW5kYXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb25DaGFuZ2VDYWxsYmFjazogKF86IERhdGUpID0+IHZvaWQgPSBub29wO1xuXG4gICAgLyoqXG4gICAgICAqIEBoaWRkZW5cbiAgICAgICovXG4gICAgcHJvdGVjdGVkIF9kZXNlbGVjdERhdGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZWxlY3RlZERhdGVzV2l0aG91dEZvY3VzO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2xvY2FsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX3dlZWtTdGFydDogV0VFS0RBWVMgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdmlld0RhdGU6IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc3RhcnREYXRlOiBEYXRlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2VuZERhdGU6IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogRGF0ZVJhbmdlRGVzY3JpcHRvcltdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX3NwZWNpYWxEYXRlczogRGF0ZVJhbmdlRGVzY3JpcHRvcltdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGlvbjogQ2FsZW5kYXJTZWxlY3Rpb24gfCBzdHJpbmcgPSBDYWxlbmRhclNlbGVjdGlvbi5TSU5HTEU7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBnZXRDdXJyZW50UmVzb3VyY2VTdHJpbmdzKENhbGVuZGFyUmVzb3VyY2VTdHJpbmdzRU4pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1hdE9wdGlvbnM6IElGb3JtYXR0aW5nT3B0aW9ucyA9IHtcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgICB3ZWVrZGF5OiAnc2hvcnQnLFxuICAgICAgICB5ZWFyOiAnbnVtZXJpYydcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1hdFZpZXdzOiBJRm9ybWF0dGluZ1ZpZXdzID0ge1xuICAgICAgICBkYXk6IGZhbHNlLFxuICAgICAgICBtb250aDogdHJ1ZSxcbiAgICAgICAgeWVhcjogZmFsc2VcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQW4gYWNjZXNzb3IgdGhhdCBzZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgdXNlcyBFTiByZXNvdXJjZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUNhbGVuZGFyUmVzb3VyY2VTdHJpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jlc291cmNlU3RyaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3Jlc291cmNlU3RyaW5ncywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGFjY2Vzc29yIHRoYXQgcmV0dXJucyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJQ2FsZW5kYXJSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHN0YXJ0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgKiBDYW4gcmV0dXJuIGEgbnVtZXJpYyBvciBhbiBlbnVtIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB3ZWVrIGRheS5cbiAgICAgKiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGZvciB0aGUgYXBwbGljYXRpb24gbG9jYWxlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB3ZWVrU3RhcnQoKTogV0VFS0RBWVMgfCBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxlbmRhck1vZGVsLmZpcnN0V2Vla0RheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGFydCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICogQ2FuIGJlIGFzc2lnbmVkIHRvIGEgbnVtZXJpYyB2YWx1ZSBvciB0byBgV0VFS0RBWVNgIGVudW0gdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIHNldCB3ZWVrU3RhcnQodmFsdWU6IFdFRUtEQVlTIHwgbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3dlZWtTdGFydCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNhbGVuZGFyTW9kZWwuZmlyc3RXZWVrRGF5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYGxvY2FsZWAgb2YgdGhlIGNhbGVuZGFyLlxuICAgICAqIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIGFwcGxpY2F0aW9uJ3MgbG9jYWxlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgY2FsZW5kYXIuXG4gICAgICogRXhwZWN0cyBhIHZhbGlkIEJDUCA0NyBsYW5ndWFnZSB0YWcuXG4gICAgICovXG4gICAgcHVibGljIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcblxuICAgICAgICAvLyBpZiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBCQ1AgNDcgdGFnLCBzZXQgaXQgYmFjayB0byBfbG9jYWxlSWRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IHRoaXMuX2xvY2FsZUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hhbmdpbmcgbG9jYWxlIHJ1bnRpbWUgbmVlZHMgdG8gdXBkYXRlIHRoZSBgd2Vla1N0YXJ0YCB0b28sIGlmIGB3ZWVrU3RhcnRgIGlzIG5vdCBleHBsaWNpdGx5IHNldFxuICAgICAgICBpZiAodGhpcy5fd2Vla1N0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJNb2RlbC5maXJzdFdlZWtEYXkgPSBnZXRMb2NhbGVGaXJzdERheU9mV2Vlayh0aGlzLl9sb2NhbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0Rm9ybWF0dGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0IG9wdGlvbnMgb2YgdGhlIGRheXMgdmlldy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZm9ybWF0T3B0aW9ucygpOiBJRm9ybWF0dGluZ09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0T3B0aW9ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkYXRlIGZvcm1hdCBvcHRpb25zIG9mIHRoZSBkYXlzIHZpZXcuXG4gICAgICogRGVmYXVsdCBpcyB7IGRheTogJ251bWVyaWMnLCBtb250aDogJ3Nob3J0Jywgd2Vla2RheTogJ3Nob3J0JywgeWVhcjogJ251bWVyaWMnIH1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGZvcm1hdE9wdGlvbnMoZm9ybWF0T3B0aW9uczogSUZvcm1hdHRpbmdPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX2Zvcm1hdE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHRoaXMuX2Zvcm1hdE9wdGlvbnMsIGZvcm1hdE9wdGlvbnMpO1xuICAgICAgICB0aGlzLmluaXRGb3JtYXR0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBgZGF5YCwgYG1vbnRoYCBhbmQgYHllYXJgIHNob3VsZCBiZSByZW5kZXJlZFxuICAgICAqIGFjY29yZGluZyB0byB0aGUgbG9jYWxlIGFuZCBmb3JtYXRPcHRpb25zLCBpZiBhbnkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdFZpZXdzKCk6IElGb3JtYXR0aW5nVmlld3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0Vmlld3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBgZGF5YCwgYG1vbnRoYCBhbmQgYHllYXJgIHNob3VsZCBiZSByZW5kZXJlZFxuICAgICAqIGFjY29yZGluZyB0byB0aGUgbG9jYWxlIGFuZCBmb3JtYXRPcHRpb25zLCBpZiBhbnkuXG4gICAgICovXG4gICAgcHVibGljIHNldCBmb3JtYXRWaWV3cyhmb3JtYXRWaWV3czogSUZvcm1hdHRpbmdWaWV3cykge1xuICAgICAgICB0aGlzLl9mb3JtYXRWaWV3cyA9IE9iamVjdC5hc3NpZ24odGhpcy5fZm9ybWF0Vmlld3MsIGZvcm1hdFZpZXdzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEdldHMgdGhlIHNlbGVjdGlvbiB0eXBlLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwic2luZ2xlXCJgLlxuICAgICAqIENoYW5naW5nIHRoZSB0eXBlIG9mIHNlbGVjdGlvbiByZXNldHMgdGhlIGN1cnJlbnRseVxuICAgICAqIHNlbGVjdGVkIHZhbHVlcyBpZiBhbnkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJTZWxlY3Rpb24uU0lOR0xFOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLk1VTFRJOlxuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5SQU5HRTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlbGVjdGlvbiB2YWx1ZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc2VsZWN0ZWQgZGF0ZShzKS5cbiAgICAgKlxuICAgICAqIFdoZW4gc2VsZWN0aW9uIGlzIHNldCB0byBgc2luZ2xlYCwgaXQgcmV0dXJuc1xuICAgICAqIGEgc2luZ2xlIGBEYXRlYCBvYmplY3QuXG4gICAgICogT3RoZXJ3aXNlIGl0IGlzIGFuIGFycmF5IG9mIGBEYXRlYCBvYmplY3RzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlIHwgRGF0ZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzZWxlY3RlZCBkYXRlKHMpLlxuICAgICAqXG4gICAgICogV2hlbiBzZWxlY3Rpb24gaXMgc2V0IHRvIGBzaW5nbGVgLCBpdCBhY2NlcHRzXG4gICAgICogYSBzaW5nbGUgYERhdGVgIG9iamVjdC5cbiAgICAgKiBPdGhlcndpc2UgaXQgaXMgYW4gYXJyYXkgb2YgYERhdGVgIG9iamVjdHMuXG4gICAgICovXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZSB8IERhdGVbXSkge1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICEhdmFsdWUgJiYgKHZhbHVlIGFzIERhdGVbXSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXNXaXRob3V0Rm9jdXMgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGVzV2l0aG91dEZvY3VzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZURhdGUgPSB2YWx1ZVswXSA/IE1hdGgubWluLmFwcGx5KG51bGwsIHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0RGF0ZU9ubHkobmV3IERhdGUodmFsdWVEYXRlKSkuc2V0RGF0ZSgxKTtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdERhdGUodmFsdWUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXNXaXRob3V0Rm9jdXMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkYXRlIHRoYXQgaXMgcHJlc2VudGVkLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgaXMgdGhlIGN1cnJlbnQgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdmlld0RhdGUoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3RGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkYXRlIHRoYXQgd2lsbCBiZSBwcmVzZW50ZWQgaW4gdGhlIGRlZmF1bHQgdmlldyB3aGVuIHRoZSBjb21wb25lbnQgcmVuZGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHZpZXdEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWREYXRlID0gdGhpcy52YWxpZGF0ZURhdGUodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5fdmlld0RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlc1dpdGhvdXRGb2N1cyA9IHZhbGlkRGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5nZXREYXRlT25seSh2YWxpZERhdGUpLnNldERhdGUoMSk7XG4gICAgICAgIHRoaXMuX3ZpZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGlzYWJsZWQgZGF0ZXMgZGVzY3JpcHRvcnMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVJhbmdlRGVzY3JpcHRvcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGlzYWJsZWQgZGF0ZXMnIGRlc2NyaXB0b3JzLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDYWxlbmRhclwiKVxuICAgICAqIHB1YmxpYyBjYWxlbmRhcjogSWd4Q2FsZW5kYXJDb21wb25lbnQ7XG4gICAgICogbmdPbkluaXQoKXtcbiAgICAgKiAgICB0aGlzLmNhbGVuZGFyLmRpc2FibGVkRGF0ZXMgPSBbXG4gICAgICogICAgIHt0eXBlOiBEYXRlUmFuZ2VUeXBlLkJldHdlZW4sIGRhdGVSYW5nZTogW25ldyBEYXRlKFwiMjAyMC0xLTFcIiksIG5ldyBEYXRlKFwiMjAyMC0xLTE1XCIpXX0sXG4gICAgICogICAgIHt0eXBlOiBEYXRlUmFuZ2VUeXBlLldlZWtlbmRzfV07XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWREYXRlcyh2YWx1ZTogRGF0ZVJhbmdlRGVzY3JpcHRvcltdKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkRGF0ZXMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzcGVjaWFsIGRhdGVzIGRlc2NyaXB0b3JzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBzcGVjaWFsRGF0ZXMoKTogRGF0ZVJhbmdlRGVzY3JpcHRvcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NwZWNpYWxEYXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzcGVjaWFsIGRhdGVzJyBkZXNjcmlwdG9ycy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15Q2FsZW5kYXJcIilcbiAgICAgKiBwdWJsaWMgY2FsZW5kYXI6IElneENhbGVuZGFyQ29tcG9uZW50O1xuICAgICAqIG5nT25Jbml0KCl7XG4gICAgICogICAgdGhpcy5jYWxlbmRhci5zcGVjaWFsRGF0ZXMgPSBbXG4gICAgICogICAgIHt0eXBlOiBEYXRlUmFuZ2VUeXBlLkJldHdlZW4sIGRhdGVSYW5nZTogW25ldyBEYXRlKFwiMjAyMC0xLTFcIiksIG5ldyBEYXRlKFwiMjAyMC0xLTE1XCIpXX0sXG4gICAgICogICAgIHt0eXBlOiBEYXRlUmFuZ2VUeXBlLldlZWtlbmRzfV07XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgc3BlY2lhbERhdGVzKHZhbHVlOiBEYXRlUmFuZ2VEZXNjcmlwdG9yW10pIHtcbiAgICAgICAgdGhpcy5fc3BlY2lhbERhdGVzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsLCBASW5qZWN0KExPQ0FMRV9JRCkgcHJvdGVjdGVkIF9sb2NhbGVJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJNb2RlbCA9IG5ldyBDYWxlbmRhcigpO1xuICAgICAgICB0aGlzLmxvY2FsZSA9IF9sb2NhbGVJZDtcbiAgICAgICAgdGhpcy52aWV3RGF0ZSA9IHRoaXMudmlld0RhdGUgPyB0aGlzLnZpZXdEYXRlIDogbmV3IERhdGUoKTtcbiAgICAgICAgdGhpcy5pbml0Rm9ybWF0dGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE11bHRpL1JhbmdlIHNlbGVjdGlvbiB3aXRoIHNoaWZ0IGtleVxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25Qb2ludGVyZG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnNoaWZ0S2V5ID0gZXZlbnQuYnV0dG9uID09PSAwICYmIGV2ZW50LnNoaWZ0S2V5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGRlc2VsZWN0aW9uIG9mIGRhdGUvZGF0ZXMsIHdoZW4gc2VsZWN0aW9uIGlzIG11bHRpXG4gICAgICogVXN1YWxseSBwZXJmb3JtZWQgYnkgdGhlIHNlbGVjdE11bHRpcGxlIG1ldGhvZCwgYnV0IGxlYWRzIHRvIGJ1ZyB3aGVuIG11bHRpcGxlIG1vbnRocyBhcmUgaW4gdmlld1xuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNlbGVjdE11bHRpcGxlSW5Nb250aCh2YWx1ZTogRGF0ZSkge1xuICAgICAgICAvLyBkZXNlbGVjdCBtdWx0aXBsZSBkYXRlcyBmcm9tIGxhc3QgY2xpY2tlZCB0byBzaGlmdCBjbGlja2VkIGRhdGUgKGV4Y2x1ZGluZylcbiAgICAgICAgaWYgKHRoaXMuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMubGFzdFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB2YWx1ZS5nZXRUaW1lKClcbiAgICAgICAgICAgICAgICA/IFt0aGlzLmxhc3RTZWxlY3RlZERhdGUsIHZhbHVlXVxuICAgICAgICAgICAgICAgIDogW3ZhbHVlLCB0aGlzLmxhc3RTZWxlY3RlZERhdGVdO1xuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChkYXRlOiBEYXRlKSA9PiBkYXRlLmdldFRpbWUoKSA8IHN0YXJ0LmdldFRpbWUoKSB8fCBkYXRlLmdldFRpbWUoKSA+IGVuZC5nZXRUaW1lKClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5wdXNoKHZhbHVlKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGVzZWxlY3QgYSBzaW5nbGUgZGF0ZVxuICAgICAgICAgICAgY29uc3QgdmFsdWVEYXRlT25seSA9IHRoaXMuZ2V0RGF0ZU9ubHkodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZGF0ZTogRGF0ZSkgPT4gZGF0ZS5nZXRUaW1lKCkgIT09IHZhbHVlRGF0ZU9ubHkuZ2V0VGltZSgpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodjogRGF0ZSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IERhdGVbXSkge1xuICAgICAgICB0aGlzLnNlbGVjdERhdGUodmFsdWUgYXMgRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgYSBkYXRlIGlzIGRpc2FibGVkLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBpc0RhdGVEaXNhYmxlZChkYXRlOiBEYXRlKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkRGF0ZXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc0RhdGVJblJhbmdlcyhkYXRlLCB0aGlzLmRpc2FibGVkRGF0ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgZGF0ZShzKSAoYmFzZWQgb24gdGhlIHNlbGVjdGlvbiB0eXBlKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSB8IERhdGVbXSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5TSU5HTEU6XG4gICAgICAgICAgICAgICAgaWYgKGlzRGF0ZSh2YWx1ZSkgJiYgIXRoaXMuaXNEYXRlRGlzYWJsZWQodmFsdWUgYXMgRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RTaW5nbGUodmFsdWUgYXMgRGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5NVUxUSTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdE11bHRpcGxlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJTZWxlY3Rpb24uUkFOR0U6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RSYW5nZSh2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXNlbGVjdHMgZGF0ZShzKSAoYmFzZWQgb24gdGhlIHNlbGVjdGlvbiB0eXBlKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVzZWxlY3REYXRlKHZhbHVlPzogRGF0ZSB8IERhdGVbXSkge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlcyB8fCB0aGlzLnNlbGVjdGVkRGF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3Rpb24gPT09IENhbGVuZGFyU2VsZWN0aW9uLlNJTkdMRSA/IG51bGwgOiBbXTtcbiAgICAgICAgICAgIHRoaXMucmFuZ2VTdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyU2VsZWN0aW9uLlNJTkdMRTpcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2VsZWN0U2luZ2xlKHZhbHVlIGFzIERhdGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5NVUxUSTpcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2VsZWN0TXVsdGlwbGUodmFsdWUgYXMgRGF0ZVtdKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJTZWxlY3Rpb24uUkFOR0U6XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdFJhbmdlKHZhbHVlIGFzIERhdGVbXSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdERhdGVGcm9tQ2xpZW50KHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJTZWxlY3Rpb24uU0lOR0xFOlxuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5NVUxUSTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdERhdGUodmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclNlbGVjdGlvbi5SQU5HRTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFJhbmdlKHZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdEZvcm1hdHRlcnMoKSB7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyRGF5ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5fbG9jYWxlLCB7IGRheTogdGhpcy5fZm9ybWF0T3B0aW9ucy5kYXkgfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyV2Vla2RheSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuX2xvY2FsZSwgeyB3ZWVrZGF5OiB0aGlzLl9mb3JtYXRPcHRpb25zLndlZWtkYXkgfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyTW9udGggPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLl9sb2NhbGUsIHsgbW9udGg6IHRoaXMuX2Zvcm1hdE9wdGlvbnMubW9udGggfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyWWVhciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuX2xvY2FsZSwgeyB5ZWFyOiB0aGlzLl9mb3JtYXRPcHRpb25zLnllYXIgfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyTW9udGhkYXkgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLl9sb2NhbGUsIHsgbW9udGg6IHRoaXMuX2Zvcm1hdE9wdGlvbnMubW9udGgsIGRheTogdGhpcy5fZm9ybWF0T3B0aW9ucy5kYXkgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXREYXRlT25seShkYXRlOiBEYXRlKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkRGF0ZSA9IHRoaXMudmFsaWRhdGVEYXRlKGRhdGUpO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsaWREYXRlLmdldEZ1bGxZZWFyKCksIHZhbGlkRGF0ZS5nZXRNb250aCgpLCB2YWxpZERhdGUuZ2V0RGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXREYXRlT25seUluTXMoZGF0ZTogRGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlT25seShkYXRlKS5nZXRUaW1lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZ2VuZXJhdGVEYXRlUmFuZ2Uoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGVbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBzdGFydCA9IHRoaXMuZ2V0RGF0ZU9ubHkoc3RhcnQpO1xuICAgICAgICBlbmQgPSB0aGlzLmdldERhdGVPbmx5KGVuZCk7XG4gICAgICAgIHdoaWxlIChzdGFydC5nZXRUaW1lKCkgPCBlbmQuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMuY2FsZW5kYXJNb2RlbC50aW1lZGVsdGEoc3RhcnQsICdkYXknLCAxKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHN0YXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBzaW5nbGUgc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgc2VsZWN0U2luZ2xlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIGlmICghaXNFcXVhbCh0aGlzLnNlbGVjdGVkRGF0ZXMsIHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5nZXREYXRlT25seSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIG11bHRpcGxlIHNlbGVjdGlvblxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgc2VsZWN0TXVsdGlwbGUodmFsdWU6IERhdGUgfCBEYXRlW10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlcyA9IHZhbHVlLm1hcCh2ID0+IHRoaXMuZ2V0RGF0ZU9ubHkodikuZ2V0VGltZSgpKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLm1hcCh2ID0+IHRoaXMuZ2V0RGF0ZU9ubHkodikuZ2V0VGltZSgpKTtcblxuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KG5ld0RhdGVzKSA9PT0gSlNPTi5zdHJpbmdpZnkoc2VsRGF0ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoWy4uLm5ld0RhdGVzLCAuLi5zZWxEYXRlc10pKS5tYXAodiA9PiBuZXcgRGF0ZSh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbmV3U2VsZWN0aW9uID0gW107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNoaWZ0S2V5ICYmIHRoaXMubGFzdFNlbGVjdGVkRGF0ZSkge1xuXG4gICAgICAgICAgICAgICAgW3RoaXMuX3N0YXJ0RGF0ZSwgdGhpcy5fZW5kRGF0ZV0gPSB0aGlzLmxhc3RTZWxlY3RlZERhdGUuZ2V0VGltZSgpIDwgdmFsdWUuZ2V0VGltZSgpXG4gICAgICAgICAgICAgICAgICAgID8gW3RoaXMubGFzdFNlbGVjdGVkRGF0ZSwgdmFsdWVdXG4gICAgICAgICAgICAgICAgICAgIDogW3ZhbHVlLCB0aGlzLmxhc3RTZWxlY3RlZERhdGVdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZWxlY3RlZERhdGVzID0gW3RoaXMuX3N0YXJ0RGF0ZSwgLi4udGhpcy5nZW5lcmF0ZURhdGVSYW5nZSh0aGlzLl9zdGFydERhdGUsIHRoaXMuX2VuZERhdGUpXVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGRhdGUgPT4gIXRoaXMuaXNEYXRlRGlzYWJsZWQoZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHRoaXMuc2VsZWN0ZWREYXRlcy5ldmVyeSgoZDogRGF0ZSkgPT4gZC5nZXRUaW1lKCkgIT09IGRhdGUuZ2V0VGltZSgpKVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgLy8gc2VsZWN0IGFsbCBkYXRlcyBmcm9tIGxhc3Qgc2VsZWN0ZWQgdG8gc2hpZnQgY2xpY2tlZCBkYXRlXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlcy5zb21lKChkYXRlOiBEYXRlKSA9PiBkYXRlLmdldFRpbWUoKSA9PT0gdGhpcy5sYXN0U2VsZWN0ZWREYXRlLmdldFRpbWUoKSlcbiAgICAgICAgICAgICAgICAgICAgJiYgdW5zZWxlY3RlZERhdGVzLmxlbmd0aCkge1xuXG4gICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHVuc2VsZWN0ZWREYXRlcztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBkZWxlc2VjdCBhbGwgZGF0ZXMgZnJvbSBsYXN0IGNsaWNrZWQgdG8gc2hpZnQgY2xpY2tlZCBkYXRlIChleGNsdWRpbmcpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHRoaXMuc2VsZWN0ZWREYXRlcy5maWx0ZXIoKGRhdGU6IERhdGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlLmdldFRpbWUoKSA8IHRoaXMuX3N0YXJ0RGF0ZS5nZXRUaW1lKCkgfHwgZGF0ZS5nZXRUaW1lKCkgPiB0aGlzLl9lbmREYXRlLmdldFRpbWUoKVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3REYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydERhdGUgPSB0aGlzLl9lbmREYXRlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRlcy5ldmVyeSgoZGF0ZTogRGF0ZSkgPT4gZGF0ZS5nZXRUaW1lKCkgIT09IHZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24ucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKGRhdGU6IERhdGUpID0+IGRhdGUuZ2V0VGltZSgpICE9PSB2YWx1ZS5nZXRUaW1lKClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3REYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzLmNvbmNhdChuZXdTZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Rlc2VsZWN0RGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmxhc3RTZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHRoaXMuc2VsZWN0ZWREYXRlcy5maWx0ZXIoZCA9PiAhdGhpcy5pc0RhdGVEaXNhYmxlZChkKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5zb3J0KChhOiBEYXRlLCBiOiBEYXRlKSA9PiBhLnZhbHVlT2YoKSAtIGIudmFsdWVPZigpKTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNlbGVjdFJhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVtdLCBleGNsdWRlRGlzYWJsZWREYXRlcyA9IGZhbHNlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuc29ydCgoYTogRGF0ZSwgYjogRGF0ZSkgPT4gYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSk7XG4gICAgICAgICAgICB0aGlzLl9zdGFydERhdGUgPSB0aGlzLmdldERhdGVPbmx5KHZhbHVlWzBdKTtcbiAgICAgICAgICAgIHRoaXMuX2VuZERhdGUgPSB0aGlzLmdldERhdGVPbmx5KHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2hpZnRLZXkgJiYgdGhpcy5sYXN0U2VsZWN0ZWREYXRlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXN0U2VsZWN0ZWREYXRlLmdldFRpbWUoKSA9PT0gdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHRoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGggPT09IDEgPyBbXSA6IFt2YWx1ZV07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VTdGFydGVkID0gISF0aGlzLnNlbGVjdGVkRGF0ZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBzaG9ydGVucyB0aGUgcmFuZ2Ugd2hlbiBzZWxlY3RpbmcgYSBkYXRlIGluc2lkZSBvZiBpdFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZXMuc29tZSgoZGF0ZTogRGF0ZSkgPT4gZGF0ZS5nZXRUaW1lKCkgPT09IHZhbHVlLmdldFRpbWUoKSkpIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RTZWxlY3RlZERhdGUuZ2V0VGltZSgpIDwgdmFsdWUuZ2V0VGltZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX3N0YXJ0RGF0ZSA9IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX2VuZERhdGUgPSB2YWx1ZTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGV4dGVuZHMgdGhlIHJhbmdlIHdoZW4gc2VsZWN0aW5nIGEgZGF0ZSBvdXRzaWRlIG9mIGl0XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbG93cyBzZWxlY3Rpb24gZnJvbSBsYXN0IGRlc2VsZWN0ZWQgdG8gY3VycmVudCBzZWxlY3RlZCBkYXRlXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhc3RTZWxlY3RlZERhdGUuZ2V0VGltZSgpIDwgdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGFydERhdGUgPSB0aGlzLl9zdGFydERhdGUgPz8gdGhpcy5sYXN0U2VsZWN0ZWREYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW5kRGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhcnREYXRlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbmREYXRlID0gdGhpcy5fZW5kRGF0ZSA/PyB0aGlzLmxhc3RTZWxlY3RlZERhdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJhbmdlU3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnJhbmdlU3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VTdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBbdmFsdWVdO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHRoaXMuX2VuZERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VTdGFydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKSA9PT0gdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBbdGhpcy5fc3RhcnREYXRlLCB0aGlzLl9lbmREYXRlXSA9IHRoaXMubGFzdFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB2YWx1ZS5nZXRUaW1lKClcbiAgICAgICAgICAgICAgICAgICAgPyBbdGhpcy5sYXN0U2VsZWN0ZWREYXRlLCB2YWx1ZV1cbiAgICAgICAgICAgICAgICAgICAgOiBbdmFsdWUsIHRoaXMubGFzdFNlbGVjdGVkRGF0ZV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RGF0ZSAmJiB0aGlzLl9lbmREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBbdGhpcy5fc3RhcnREYXRlLCAuLi50aGlzLmdlbmVyYXRlRGF0ZVJhbmdlKHRoaXMuX3N0YXJ0RGF0ZSwgdGhpcy5fZW5kRGF0ZSldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4Y2x1ZGVEaXNhYmxlZERhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXMuZmlsdGVyKGQgPT4gIXRoaXMuaXNEYXRlRGlzYWJsZWQoZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgc2luZ2xlIGRlc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzZWxlY3RTaW5nbGUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlcyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgdGhpcy5nZXREYXRlT25seUluTXModmFsdWUgYXMgRGF0ZSkgPT09IHRoaXMuZ2V0RGF0ZU9ubHlJbk1zKHRoaXMuc2VsZWN0ZWREYXRlcykpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIG11bHRpcGxlIGRlc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzZWxlY3RNdWx0aXBsZSh2YWx1ZTogRGF0ZVtdKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKHYgPT4gdiAhPT0gbnVsbCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZXNDb3VudCA9IHRoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGRhdGVzSW5Nc1RvRGVzZWxlY3Q6IFNldDxudW1iZXI+ID0gbmV3IFNldDxudW1iZXI+KFxuICAgICAgICAgICAgdmFsdWUubWFwKHYgPT4gdGhpcy5nZXREYXRlT25seUluTXModikpKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zZWxlY3RlZERhdGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZXNJbk1zVG9EZXNlbGVjdC5oYXModGhpcy5nZXREYXRlT25seUluTXModGhpcy5zZWxlY3RlZERhdGVzW2ldKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGggIT09IHNlbGVjdGVkRGF0ZXNDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSByYW5nZSBkZXNlbGVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlc2VsZWN0UmFuZ2UodmFsdWU6IERhdGVbXSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcih2ID0+IHYgIT09IG51bGwpO1xuICAgICAgICBpZiAodmFsdWUubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUuc29ydCgoYTogRGF0ZSwgYjogRGF0ZSkgPT4gYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSk7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RhcnQgPSB0aGlzLmdldERhdGVPbmx5SW5Ncyh2YWx1ZVswXSk7XG4gICAgICAgIGNvbnN0IHZhbHVlRW5kID0gdGhpcy5nZXREYXRlT25seUluTXModmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0pO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5zb3J0KChhOiBEYXRlLCBiOiBEYXRlKSA9PiBhLnZhbHVlT2YoKSAtIGIudmFsdWVPZigpKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlc1N0YXJ0ID0gdGhpcy5nZXREYXRlT25seUluTXModGhpcy5zZWxlY3RlZERhdGVzWzBdKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlc0VuZCA9IHRoaXMuZ2V0RGF0ZU9ubHlJbk1zKHRoaXMuc2VsZWN0ZWREYXRlc1t0aGlzLnNlbGVjdGVkRGF0ZXMubGVuZ3RoIC0gMV0pO1xuXG4gICAgICAgIGlmICghKHZhbHVlRW5kIDwgc2VsZWN0ZWREYXRlc1N0YXJ0KSAmJiAhKHZhbHVlU3RhcnQgPiBzZWxlY3RlZERhdGVzRW5kKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0gW107XG4gICAgICAgICAgICB0aGlzLnJhbmdlU3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZURhdGUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lVXRpbC5pc1ZhbGlkRGF0ZSh2YWx1ZSkgPyB2YWx1ZSA6IG5ldyBEYXRlKCk7XG4gICAgfVxufVxuIl19