ngx-tethys 16.1.4 → 16.1.6

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 (31) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/core/overlay/abstract-overlay.config.d.ts +4 -0
  3. package/date-picker/abstract-picker.directive.d.ts +1 -0
  4. package/dialog/dialog.config.d.ts +3 -0
  5. package/esm2022/core/overlay/abstract-overlay.config.mjs +5 -1
  6. package/esm2022/date-picker/abstract-picker.directive.mjs +5 -1
  7. package/esm2022/dialog/dialog-container.component.mjs +2 -2
  8. package/esm2022/dialog/dialog.config.mjs +4 -1
  9. package/esm2022/input-number/input-number.component.mjs +12 -15
  10. package/esm2022/radio/button/radio-button.component.mjs +11 -3
  11. package/esm2022/radio/group/radio-group.component.mjs +12 -3
  12. package/esm2022/version.mjs +2 -2
  13. package/fesm2022/ngx-tethys-core.mjs +4 -0
  14. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  15. package/fesm2022/ngx-tethys-date-picker.mjs +4 -0
  16. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  17. package/fesm2022/ngx-tethys-dialog.mjs +4 -1
  18. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  19. package/fesm2022/ngx-tethys-input-number.mjs +9 -12
  20. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  21. package/fesm2022/ngx-tethys-radio.mjs +21 -4
  22. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  23. package/fesm2022/ngx-tethys.mjs +1 -1
  24. package/fesm2022/ngx-tethys.mjs.map +1 -1
  25. package/form/styles/form-check.scss +1 -0
  26. package/input-number/input-number.component.d.ts +0 -2
  27. package/package.json +1 -1
  28. package/radio/button/radio-button.component.d.ts +1 -0
  29. package/radio/group/radio-group.component.d.ts +5 -2
  30. package/schematics/version.d.ts +1 -1
  31. package/schematics/version.js +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [16.1.6](https://github.com/atinc/ngx-tethys/compare/16.2.0-next...16.1.6) (2023-10-27)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **check:** fix form-check style(#INFR-9102) ([#2837](https://github.com/atinc/ngx-tethys/issues/2837)) ([40eddcf](https://github.com/atinc/ngx-tethys/commit/40eddcf66038b8bd52db1ec9fe7c81b89ab3dc02)), closes [#INFR-9102](https://github.com/atinc/ngx-tethys/issues/INFR-9102)
11
+ * **input-number:** fix input non-number show error #INFR-10053 ([#2862](https://github.com/atinc/ngx-tethys/issues/2862)) ([7749771](https://github.com/atinc/ngx-tethys/commit/7749771ea63659961121aa25f381f15ac0d67970)), closes [#INFR-10053](https://github.com/atinc/ngx-tethys/issues/INFR-10053)
12
+ * **input-number:** fix input number suffix not effect #INFR-10053 ([#2859](https://github.com/atinc/ngx-tethys/issues/2859)) ([b411b5a](https://github.com/atinc/ngx-tethys/commit/b411b5ab769360c50c37667f907a9d5a56047e3f)), closes [#INFR-10053](https://github.com/atinc/ngx-tethys/issues/INFR-10053)
13
+ * **radio:** fix radio group thyDisabled #INFR-9788 ([#2858](https://github.com/atinc/ngx-tethys/issues/2858)) ([1569e3c](https://github.com/atinc/ngx-tethys/commit/1569e3cbbfcadcceca804baf37c5deea71461be1)), closes [#INFR-9788](https://github.com/atinc/ngx-tethys/issues/INFR-9788)
14
+
15
+
16
+ ### Features
17
+
18
+ * add restoreFocusOptions to control previously element focusing #INFR-9782 ([#2860](https://github.com/atinc/ngx-tethys/issues/2860)) ([da6ef88](https://github.com/atinc/ngx-tethys/commit/da6ef88cbe8ed135651628106e4084015803de6a)), closes [#INFR-9782](https://github.com/atinc/ngx-tethys/issues/INFR-9782)
19
+
20
+
21
+
22
+ ## [16.1.5](https://github.com/atinc/ngx-tethys/compare/16.1.4...16.1.5) (2023-10-12)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **date-picker:** fix bug for get panelMode #INFR-9916 ([#2848](https://github.com/atinc/ngx-tethys/issues/2848)) ([7f6dd84](https://github.com/atinc/ngx-tethys/commit/7f6dd843ba1ecc5400e3f24b3678474aefff801a)), closes [#INFR-9916](https://github.com/atinc/ngx-tethys/issues/INFR-9916)
28
+
29
+
30
+
5
31
  ## [16.1.4](https://github.com/atinc/ngx-tethys/compare/16.1.3...16.1.4) (2023-09-28)
6
32
 
7
33
 
@@ -96,6 +96,10 @@ export declare class ThyAbstractOverlayConfig<TData = unknown> {
96
96
  * previously-focused element, after it's closed.
97
97
  */
98
98
  restoreFocus?: boolean;
99
+ /**
100
+ * Control the previously-focused element focusing process.
101
+ */
102
+ restoreFocusOptions?: FocusOptions;
99
103
  /**
100
104
  * 切换浏览器导航是否自动关闭弹出框
101
105
  * @description.en-us Whether the overlay should close when the user goes backwards/forwards in history.Note that this usually doesn't include clicking on links (unless the user is using the `HashLocationStrategy`).
@@ -62,6 +62,7 @@ export declare abstract class PickerDirective extends AbstractPickerComponent im
62
62
  private el;
63
63
  readonly $click: Observable<boolean>;
64
64
  ngOnInit(): void;
65
+ private getInitialState;
65
66
  private openOverlay;
66
67
  closeOverlay(): void;
67
68
  initActionSubscribe(): void;
@@ -58,6 +58,9 @@ export declare const THY_DIALOG_DEFAULT_OPTIONS_PROVIDER: {
58
58
  closeOnNavigation: boolean;
59
59
  autoFocus: boolean;
60
60
  restoreFocus: boolean;
61
+ restoreFocusOptions: {
62
+ preventScroll: boolean;
63
+ };
61
64
  hostClass: string;
62
65
  };
63
66
  };
@@ -50,6 +50,10 @@ export class ThyAbstractOverlayConfig {
50
50
  * previously-focused element, after it's closed.
51
51
  */
52
52
  this.restoreFocus = true;
53
+ /**
54
+ * Control the previously-focused element focusing process.
55
+ */
56
+ this.restoreFocusOptions = { preventScroll: true };
53
57
  /**
54
58
  * 切换浏览器导航是否自动关闭弹出框
55
59
  * @description.en-us Whether the overlay should close when the user goes backwards/forwards in history.Note that this usually doesn't include clicking on links (unless the user is using the `HashLocationStrategy`).
@@ -57,4 +61,4 @@ export class ThyAbstractOverlayConfig {
57
61
  this.closeOnNavigation = true;
58
62
  }
59
63
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtb3ZlcmxheS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9vdmVybGF5L2Fic3RyYWN0LW92ZXJsYXkuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBYUk7OztXQUdHO1FBQ0gsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFLcEM7OztXQUdHO1FBQ0gsZ0JBQVcsR0FBSSxJQUFJLENBQUM7UUFFcEI7OztXQUdHO1FBQ0gsa0JBQWEsR0FBdUIsRUFBRSxDQUFDO1FBRXZDOzs7V0FHRztRQUNILHFCQUFnQixHQUFJLElBQUksQ0FBQztRQUV6Qix3RkFBd0Y7UUFDeEYsaUJBQVksR0FBSSxLQUFLLENBQUM7UUFFdEI7Ozs7V0FJRztRQUNILFVBQUssR0FBSSxFQUFFLENBQUM7UUFFWjs7OztXQUlHO1FBQ0gsV0FBTSxHQUFJLEVBQUUsQ0FBQztRQTJCYjs7O1dBR0c7UUFDSCxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFLbkMsb0RBQW9EO1FBQ3BELG9CQUFlLEdBQW1CLElBQUksQ0FBQztRQUV2QyxrREFBa0Q7UUFDbEQsY0FBUyxHQUFtQixJQUFJLENBQUM7UUFFakMsNEVBQTRFO1FBQzVFLGNBQVMsR0FBSSxJQUFJLENBQUM7UUFFbEI7OztXQUdHO1FBQ0gsaUJBQVksR0FBSSxJQUFJLENBQUM7UUFFckI7OztXQUdHO1FBQ0gsc0JBQWlCLEdBQUksSUFBSSxDQUFDO0lBTTlCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbiB7XG4gICAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIHRvcCBwb3NpdGlvbi4gKi9cbiAgICB0b3A/OiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgYm90dG9tIHBvc2l0aW9uLiAqL1xuICAgIGJvdHRvbT86IHN0cmluZztcblxuICAgIC8qKiBPdmVycmlkZSBmb3IgdGhlIG92ZXJsYXkncyBsZWZ0IHBvc2l0aW9uLiAqL1xuICAgIGxlZnQ/OiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgcmlnaHQgcG9zaXRpb24uICovXG4gICAgcmlnaHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBUaHlBYnN0cmFjdE92ZXJsYXlDb25maWc8VERhdGEgPSB1bmtub3duPiB7XG4gICAgLyoqXG4gICAgICog5b2T5YmN55qE57uE5Lu255qEIHZpZXdDb250YWluZXJSZWbvvIzmjIflrprlkI7lvLnlh7rnmoTnu4Tku7bnmoTniLbms6jlhaXlmajkuLrlvZPliY3nu4Tku7bnmoTms6jlhaXlmahcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgV2hlcmUgdGhlIGF0dGFjaGVkIGNvbXBvbmVudCBzaG91bGQgbGl2ZSBpbiBBbmd1bGFyJ3MgKmxvZ2ljYWwqIGNvbXBvbmVudCB0cmVlLlRoaXMgYWZmZWN0cyB3aGF0IGlzIGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uIGFuZCB0aGUgY2hhbmdlIGRldGVjdGlvbiBvcmRlciBmb3IgdGhlIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW5zaWRlIG9mIHRoZSBvdmVybGF5LiBUaGlzIGRvZXMgbm90IGFmZmVjdCB3aGVyZSB0aGUgb3ZlcmxheSBjb250ZW50IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAgICovXG4gICAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rmoYbnmoTllK/kuIDmoIfor4ZcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgSUQgZm9yIHRoZSBvdmVybGF5LiBJZiBvbWl0dGVkLCBhIHVuaXF1ZSBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBvdmVybGF5IHBhbmVsIOexu+WQjVxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBDdXN0b20gY2xhc3MgZm9yIHRoZSBvdmVybGF5IHBhbmUuXG4gICAgICovXG4gICAgcGFuZWxDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XG5cbiAgICAvKiogQ3VzdG9tIGNsYXNzIGZvciB0aGUgb3ZlcmxheSBjb21wb25lbnQncyBob3N0IGVsZW1lbnQuICovXG4gICAgaG9zdENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmnInluZXluINcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgV2hldGhlciB0aGUgb3ZlcmxheSBoYXMgYSBiYWNrZHJvcC5cbiAgICAgKi9cbiAgICBoYXNCYWNrZHJvcD8gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5bmV5biD55qE5qC35byPXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGJhY2tkcm9wLlxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOeCueWHu+W5leW4g+aIluiAheaMiUVTQ+mUruaYr+WQpuiHquWKqOWFs+mXreW8ueWHuuahhu+8jGhhc0JhY2tkcm9wPXRydWUg5pe26K+l5Y+C5pWw6LW35L2c55SoXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIFdoZXRoZXIgdGhlIHVzZXIgY2FuIHVzZSBlc2NhcGUgb3IgY2xpY2tpbmcgb24gdGhlIGJhY2tkcm9wIHRvIGNsb3NlIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xvc2FibGU/ID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiB1c2UgZXNjYXBlIG9yIGNsaWNraW5nIG9uIHRoZSBiYWNrZHJvcCB0byBjbG9zZSB0aGUgb3ZlcmxheS4gKi9cbiAgICBkaXNhYmxlQ2xvc2U/ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnlvLnlh7rmoYbnmoTlrr3luqZcbiAgICAgKiBAZGVmYXVsdCA2NjBweFxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBXaWR0aCBvZiB0aGUgb3ZlcmxheS5cbiAgICAgKi9cbiAgICB3aWR0aD8gPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieW8ueWHuuahhueahOmrmOW6plxuICAgICAqIEBkZWZhdWx0IDg1dmhcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgSGVpZ2h0IG9mIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIGhlaWdodD8gPSAnJztcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuahhuacgOWwj+WuveW6plxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBNaW4td2lkdGggb2YgdGhlIG92ZXJsYXkuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBwaXhlbCB1bml0cyBhcmUgYXNzdW1lZC5cbiAgICAgKi9cbiAgICBtaW5XaWR0aD86IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuahhuacgOWwj+mrmOW6plxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBNaW4taGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgcGl4ZWwgdW5pdHMgYXJlIGFzc3VtZWQuXG4gICAgICovXG4gICAgbWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65qGG5pyA5aSn5a695bqmXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIE1heC13aWR0aCBvZiB0aGUgb3ZlcmxheS4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIHBpeGVsIHVuaXRzIGFyZSBhc3N1bWVkLiBEZWZhdWx0cyB0byA4MHZ3XG4gICAgICovXG4gICAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rmoYbmnIDlpKfpq5jluqZcbiAgICAgKiBAZGVmYXVsdCA4NXZoXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIE1heC1oZWlnaHQgb2YgdGhlIG92ZXJsYXkuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBwaXhlbCB1bml0cyBhcmUgYXNzdW1lZC5cbiAgICAgKi9cbiAgICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDkvKDlhaXnmoTliJ3lp4vljJbnirbmgIHvvIzlvLnlh7rnu4Tku7bnmoTlj5jph4/kvJroh6rliqjotYvlgLzvvIzlnKggbmdPbkluaXQg55Sf5ZG95ZGo5pyf6ZKp5a2Q5Y+v5Lul6I635Y+W5Yiw77yM5p6E6YCg5Ye95pWw6I635Y+W5LiN5YiwXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIERhdGEgYmVpbmcgaW5qZWN0ZWQgaW50byB0aGUgY2hpbGQgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGluaXRpYWxTdGF0ZT86IFREYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogTGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIG92ZXJsYXkncyBjb250ZW50LiAqL1xuICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcblxuICAgIC8qKiBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGRlc2NyaWJlcyB0aGUgb3ZlcmxheS4gKi9cbiAgICBhcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBBcmlhIGxhYmVsIHRvIGFzc2lnbiB0byB0aGUgb3ZlcmxheSBlbGVtZW50ICovXG4gICAgYXJpYUxhYmVsPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgZm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uIG9wZW4uICovXG4gICAgYXV0b0ZvY3VzPyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBvdmVybGF5IHNob3VsZCByZXN0b3JlIGZvY3VzIHRvIHRoZVxuICAgICAqIHByZXZpb3VzbHktZm9jdXNlZCBlbGVtZW50LCBhZnRlciBpdCdzIGNsb3NlZC5cbiAgICAgKi9cbiAgICByZXN0b3JlRm9jdXM/ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWIh+aNoua1j+iniOWZqOWvvOiIquaYr+WQpuiHquWKqOWFs+mXreW8ueWHuuahhlxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBXaGV0aGVyIHRoZSBvdmVybGF5IHNob3VsZCBjbG9zZSB3aGVuIHRoZSB1c2VyIGdvZXMgYmFja3dhcmRzL2ZvcndhcmRzIGluIGhpc3RvcnkuTm90ZSB0aGF0IHRoaXMgdXN1YWxseSBkb2Vzbid0IGluY2x1ZGUgY2xpY2tpbmcgb24gbGlua3MgKHVubGVzcyB0aGUgdXNlciBpcyB1c2luZyB0aGUgYEhhc2hMb2NhdGlvblN0cmF0ZWd5YCkuXG4gICAgICovXG4gICAgY2xvc2VPbk5hdmlnYXRpb24/ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWFs+mXreW8ueeql+WJjeeahOWbnuiwg+WHveaVsO+8jOi/lOWbniBmYWxzZSDlj6/pmLvmraLlhbPpl63lvLnnqpdcbiAgICAgKi9cbiAgICBjYW5DbG9zZT86IChyZXN1bHQ/OiB1bmtub3duKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoeUFic3RyYWN0T3ZlcmxheU9wdGlvbnMge1xuICAgIC8qKiBjb21wb25lbnQgbmFtZSwgZS5nLiBkaWFsb2cgfCBwb3BvdmVyIHwgc2xpZGUgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFdoZXRoZXIgZW5hYmxlIGFuaW1hdGlvbiAqL1xuICAgIGFuaW1hdGlvbkVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgZGlzcG9zZSBjZGsgb3ZlcmxheSByZWYgd2hlbiBjbG9zZSB1cHBlciBvdmVybGF5ICovXG4gICAgZGlzcG9zZVdoZW5DbG9zZTogYm9vbGVhbjtcbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtb3ZlcmxheS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9vdmVybGF5L2Fic3RyYWN0LW92ZXJsYXkuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBYUk7OztXQUdHO1FBQ0gsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFLcEM7OztXQUdHO1FBQ0gsZ0JBQVcsR0FBSSxJQUFJLENBQUM7UUFFcEI7OztXQUdHO1FBQ0gsa0JBQWEsR0FBdUIsRUFBRSxDQUFDO1FBRXZDOzs7V0FHRztRQUNILHFCQUFnQixHQUFJLElBQUksQ0FBQztRQUV6Qix3RkFBd0Y7UUFDeEYsaUJBQVksR0FBSSxLQUFLLENBQUM7UUFFdEI7Ozs7V0FJRztRQUNILFVBQUssR0FBSSxFQUFFLENBQUM7UUFFWjs7OztXQUlHO1FBQ0gsV0FBTSxHQUFJLEVBQUUsQ0FBQztRQTJCYjs7O1dBR0c7UUFDSCxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFLbkMsb0RBQW9EO1FBQ3BELG9CQUFlLEdBQW1CLElBQUksQ0FBQztRQUV2QyxrREFBa0Q7UUFDbEQsY0FBUyxHQUFtQixJQUFJLENBQUM7UUFFakMsNEVBQTRFO1FBQzVFLGNBQVMsR0FBSSxJQUFJLENBQUM7UUFFbEI7OztXQUdHO1FBQ0gsaUJBQVksR0FBSSxJQUFJLENBQUM7UUFFckI7O1dBRUc7UUFDSCx3QkFBbUIsR0FBa0IsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0Q7OztXQUdHO1FBQ0gsc0JBQWlCLEdBQUksSUFBSSxDQUFDO0lBTTlCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbiB7XG4gICAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIHRvcCBwb3NpdGlvbi4gKi9cbiAgICB0b3A/OiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgYm90dG9tIHBvc2l0aW9uLiAqL1xuICAgIGJvdHRvbT86IHN0cmluZztcblxuICAgIC8qKiBPdmVycmlkZSBmb3IgdGhlIG92ZXJsYXkncyBsZWZ0IHBvc2l0aW9uLiAqL1xuICAgIGxlZnQ/OiBzdHJpbmc7XG5cbiAgICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgcmlnaHQgcG9zaXRpb24uICovXG4gICAgcmlnaHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBUaHlBYnN0cmFjdE92ZXJsYXlDb25maWc8VERhdGEgPSB1bmtub3duPiB7XG4gICAgLyoqXG4gICAgICog5b2T5YmN55qE57uE5Lu255qEIHZpZXdDb250YWluZXJSZWbvvIzmjIflrprlkI7lvLnlh7rnmoTnu4Tku7bnmoTniLbms6jlhaXlmajkuLrlvZPliY3nu4Tku7bnmoTms6jlhaXlmahcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgV2hlcmUgdGhlIGF0dGFjaGVkIGNvbXBvbmVudCBzaG91bGQgbGl2ZSBpbiBBbmd1bGFyJ3MgKmxvZ2ljYWwqIGNvbXBvbmVudCB0cmVlLlRoaXMgYWZmZWN0cyB3aGF0IGlzIGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uIGFuZCB0aGUgY2hhbmdlIGRldGVjdGlvbiBvcmRlciBmb3IgdGhlIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW5zaWRlIG9mIHRoZSBvdmVybGF5LiBUaGlzIGRvZXMgbm90IGFmZmVjdCB3aGVyZSB0aGUgb3ZlcmxheSBjb250ZW50IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAgICovXG4gICAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rmoYbnmoTllK/kuIDmoIfor4ZcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgSUQgZm9yIHRoZSBvdmVybGF5LiBJZiBvbWl0dGVkLCBhIHVuaXF1ZSBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBvdmVybGF5IHBhbmVsIOexu+WQjVxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBDdXN0b20gY2xhc3MgZm9yIHRoZSBvdmVybGF5IHBhbmUuXG4gICAgICovXG4gICAgcGFuZWxDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XG5cbiAgICAvKiogQ3VzdG9tIGNsYXNzIGZvciB0aGUgb3ZlcmxheSBjb21wb25lbnQncyBob3N0IGVsZW1lbnQuICovXG4gICAgaG9zdENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmnInluZXluINcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgV2hldGhlciB0aGUgb3ZlcmxheSBoYXMgYSBiYWNrZHJvcC5cbiAgICAgKi9cbiAgICBoYXNCYWNrZHJvcD8gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5bmV5biD55qE5qC35byPXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGJhY2tkcm9wLlxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOeCueWHu+W5leW4g+aIluiAheaMiUVTQ+mUruaYr+WQpuiHquWKqOWFs+mXreW8ueWHuuahhu+8jGhhc0JhY2tkcm9wPXRydWUg5pe26K+l5Y+C5pWw6LW35L2c55SoXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIFdoZXRoZXIgdGhlIHVzZXIgY2FuIHVzZSBlc2NhcGUgb3IgY2xpY2tpbmcgb24gdGhlIGJhY2tkcm9wIHRvIGNsb3NlIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIGJhY2tkcm9wQ2xvc2FibGU/ID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiB1c2UgZXNjYXBlIG9yIGNsaWNraW5nIG9uIHRoZSBiYWNrZHJvcCB0byBjbG9zZSB0aGUgb3ZlcmxheS4gKi9cbiAgICBkaXNhYmxlQ2xvc2U/ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnlvLnlh7rmoYbnmoTlrr3luqZcbiAgICAgKiBAZGVmYXVsdCA2NjBweFxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBXaWR0aCBvZiB0aGUgb3ZlcmxheS5cbiAgICAgKi9cbiAgICB3aWR0aD8gPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieW8ueWHuuahhueahOmrmOW6plxuICAgICAqIEBkZWZhdWx0IDg1dmhcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgSGVpZ2h0IG9mIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIGhlaWdodD8gPSAnJztcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuahhuacgOWwj+WuveW6plxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBNaW4td2lkdGggb2YgdGhlIG92ZXJsYXkuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBwaXhlbCB1bml0cyBhcmUgYXNzdW1lZC5cbiAgICAgKi9cbiAgICBtaW5XaWR0aD86IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuahhuacgOWwj+mrmOW6plxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBNaW4taGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgcGl4ZWwgdW5pdHMgYXJlIGFzc3VtZWQuXG4gICAgICovXG4gICAgbWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65qGG5pyA5aSn5a695bqmXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIE1heC13aWR0aCBvZiB0aGUgb3ZlcmxheS4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIHBpeGVsIHVuaXRzIGFyZSBhc3N1bWVkLiBEZWZhdWx0cyB0byA4MHZ3XG4gICAgICovXG4gICAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rmoYbmnIDlpKfpq5jluqZcbiAgICAgKiBAZGVmYXVsdCA4NXZoXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIE1heC1oZWlnaHQgb2YgdGhlIG92ZXJsYXkuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBwaXhlbCB1bml0cyBhcmUgYXNzdW1lZC5cbiAgICAgKi9cbiAgICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDkvKDlhaXnmoTliJ3lp4vljJbnirbmgIHvvIzlvLnlh7rnu4Tku7bnmoTlj5jph4/kvJroh6rliqjotYvlgLzvvIzlnKggbmdPbkluaXQg55Sf5ZG95ZGo5pyf6ZKp5a2Q5Y+v5Lul6I635Y+W5Yiw77yM5p6E6YCg5Ye95pWw6I635Y+W5LiN5YiwXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIERhdGEgYmVpbmcgaW5qZWN0ZWQgaW50byB0aGUgY2hpbGQgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGluaXRpYWxTdGF0ZT86IFREYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogTGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIG92ZXJsYXkncyBjb250ZW50LiAqL1xuICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcblxuICAgIC8qKiBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGRlc2NyaWJlcyB0aGUgb3ZlcmxheS4gKi9cbiAgICBhcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBBcmlhIGxhYmVsIHRvIGFzc2lnbiB0byB0aGUgb3ZlcmxheSBlbGVtZW50ICovXG4gICAgYXJpYUxhYmVsPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgZm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uIG9wZW4uICovXG4gICAgYXV0b0ZvY3VzPyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBvdmVybGF5IHNob3VsZCByZXN0b3JlIGZvY3VzIHRvIHRoZVxuICAgICAqIHByZXZpb3VzbHktZm9jdXNlZCBlbGVtZW50LCBhZnRlciBpdCdzIGNsb3NlZC5cbiAgICAgKi9cbiAgICByZXN0b3JlRm9jdXM/ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2wgdGhlIHByZXZpb3VzbHktZm9jdXNlZCBlbGVtZW50IGZvY3VzaW5nIHByb2Nlc3MuXG4gICAgICovXG4gICAgcmVzdG9yZUZvY3VzT3B0aW9ucz86IEZvY3VzT3B0aW9ucyA9IHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9O1xuXG4gICAgLyoqXG4gICAgICog5YiH5o2i5rWP6KeI5Zmo5a+86Iiq5piv5ZCm6Ieq5Yqo5YWz6Zet5by55Ye65qGGXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIFdoZXRoZXIgdGhlIG92ZXJsYXkgc2hvdWxkIGNsb3NlIHdoZW4gdGhlIHVzZXIgZ29lcyBiYWNrd2FyZHMvZm9yd2FyZHMgaW4gaGlzdG9yeS5Ob3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzIHRoZSB1c2VyIGlzIHVzaW5nIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICAgKi9cbiAgICBjbG9zZU9uTmF2aWdhdGlvbj8gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5YWz6Zet5by556qX5YmN55qE5Zue6LCD5Ye95pWw77yM6L+U5ZueIGZhbHNlIOWPr+mYu+atouWFs+mXreW8ueeql1xuICAgICAqL1xuICAgIGNhbkNsb3NlPzogKHJlc3VsdD86IHVua25vd24pID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGh5QWJzdHJhY3RPdmVybGF5T3B0aW9ucyB7XG4gICAgLyoqIGNvbXBvbmVudCBuYW1lLCBlLmcuIGRpYWxvZyB8IHBvcG92ZXIgfCBzbGlkZSAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogV2hldGhlciBlbmFibGUgYW5pbWF0aW9uICovXG4gICAgYW5pbWF0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogV2hldGhlciBkaXNwb3NlIGNkayBvdmVybGF5IHJlZiB3aGVuIGNsb3NlIHVwcGVyIG92ZXJsYXkgKi9cbiAgICBkaXNwb3NlV2hlbkNsb3NlOiBib29sZWFuO1xufVxuIl19
@@ -41,6 +41,9 @@ export class PickerDirective extends AbstractPickerComponent {
41
41
  this.hasBackdrop = value;
42
42
  }
43
43
  ngOnInit() {
44
+ this.getInitialState();
45
+ }
46
+ getInitialState() {
44
47
  this.thyMode = this.thyMode || 'date';
45
48
  this.flexible = this.thyMode === 'flexible';
46
49
  if (this.isRange) {
@@ -52,6 +55,7 @@ export class PickerDirective extends AbstractPickerComponent {
52
55
  this.showWeek = this.thyMode === 'week';
53
56
  }
54
57
  openOverlay() {
58
+ this.getInitialState();
55
59
  const popoverRef = this.thyPopover.open(DatePopupComponent, Object.assign({
56
60
  origin: this.el,
57
61
  hasBackdrop: this.hasBackdrop,
@@ -225,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
225
229
  }], thyStopPropagation: [{
226
230
  type: Input
227
231
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9hYnN0cmFjdC1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBSXZFOztHQUVHO0FBRUgsTUFBTSxPQUFnQixlQUFnQixTQUFRLHVCQUF1QjtJQWtCakUsSUFBYSxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQXFCLENB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QUFJLENBQUMsZUFBZSxDQUFDO0lBQ3pDLENBQUM7SUFFRCw2RkFBNkY7SUFDN0Ysc0JBQXNCLENBQUMsS0FBNkI7UUFDaEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQy9EO0lBQ0wsQ0FBQztJQUNELHNCQUFzQixDQUFDLElBQWE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQzs4R0FoTmlCLGVBQWU7a0dBQWYsZUFBZTs7QUE2QmpDO0lBQVUsWUFBWSxFQUFFOzt3REFBeUI7QUFjakQ7SUFDQyxXQUFXLEVBQUU7OztnREFNYjtBQVFEO0lBQ0MsWUFBWSxFQUFFOzs7cURBTWQ7QUFVRDtJQUFVLFlBQVksRUFBRTs7MkRBQTJCOzJGQTNFakMsZUFBZTtrQkFEcEMsU0FBUzswSkFJRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9hLGdCQUFnQjtzQkFBbEMsTUFBTTtnQkFLWSxtQkFBbUI7c0JBQXJDLE1BQU07Z0JBR00sV0FBVztzQkFBdkIsS0FBSztnQkFXbUIsZUFBZTtzQkFBdkMsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQVVGLFNBQVM7c0JBRlosS0FBSztnQkFpQkYsY0FBYztzQkFGakIsS0FBSztnQkFZRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS21CLGtCQUFrQjtzQkFBMUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyQ29uZmlnIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgRnVuY3Rpb25Qcm9wLCB3YXJuRGVwcmVjYXRpb24gfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcFRvLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL2xpYi9wb3B1cHMvZGF0ZS1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UGFuZWxNb2RlLCBUaHlTaG9ydGN1dFZhbHVlQ2hhbmdlIH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQaWNrZXJEaXJlY3RpdmUgZXh0ZW5kcyBBYnN0cmFjdFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHNob3dXZWVrID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0aHlEYXRlUmVuZGVyOiBGdW5jdGlvblByb3A8VGVtcGxhdGVSZWY8RGF0ZT4gfCBzdHJpbmc+O1xuXG4gICAgcGFuZWxNb2RlOiBUaHlQYW5lbE1vZGUgfCBUaHlQYW5lbE1vZGVbXTtcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxUaHlQYW5lbE1vZGUgfCBUaHlQYW5lbE1vZGVbXT5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T25QYW5lbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5UGFuZWxNb2RlIHwgVGh5UGFuZWxNb2RlW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8RGF0ZVtdPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPbkNhbGVuZGFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XG5cbiAgICBwcml2YXRlIF9zaG93VGltZTogb2JqZWN0IHwgYm9vbGVhbjtcbiAgICBASW5wdXQoKSBnZXQgdGh5U2hvd1RpbWUoKTogb2JqZWN0IHwgYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93VGltZTtcbiAgICB9XG4gICAgc2V0IHRoeVNob3dUaW1lKHZhbHVlOiBvYmplY3QgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dUaW1lID0gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IHZhbHVlIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrml7bpl7Qo5pe244CB5YiGKVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeU11c3RTaG93VGltZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65L2N572uXG4gICAgICogQHR5cGUgdG9wIHwgdG9wTGVmdCB8IHRvcFJpZ2h0IHwgYm90dG9tIHwgYm90dG9tTGVmdCB8IGJvdHRvbVJpZ2h0IHwgbGVmdCB8IGxlZnRUb3AgfCBsZWZ0Qm90dG9tIHwgcmlnaHQgfCByaWdodFRvcCB8IHJpZ2h0Qm90dG9tXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tJztcblxuICAgIHByaXZhdGUgb2Zmc2V0ID0gNDtcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuiBEYXRlUGlja2VyIOeahOWBj+enu+mHj1xuICAgICAqIEBkZWZhdWx0IDRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dE51bWJlcigpXG4gICAgc2V0IHRoeU9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIHdhcm5EZXByZWNhdGlvbihgdGh5T2Zmc2V0IHBhcmFtZXRlciB3aWxsIGJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgdGh5UG9wb3Zlck9wdGlvbnMgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzQmFja2Ryb3AgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pyJ5bmV5biDXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHNldCB0aHlIYXNCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICB3YXJuRGVwcmVjYXRpb24oYHRoeUhhc0JhY2tkcm9wIHBhcmFtZXRlciB3aWxsIGJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgdGh5UG9wb3Zlck9wdGlvbnMgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc0JhY2tkcm9wID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcG9wb3ZlciDnmoTlhbbku5blj4LmlbBcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQb3BvdmVyT3B0aW9uczogVGh5UG9wb3ZlckNvbmZpZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpumYu+atouWGkuazoVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlTdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBlbDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICByZWFkb25seSAkY2xpY2s6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBmcm9tRXZlbnQodGhpcy5lbCwgJ2NsaWNrJykucGlwZShcbiAgICAgICAgdGFwKGUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5U3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIG1hcFRvKHRydWUpXG4gICAgKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnRoeU1vZGUgPSB0aGlzLnRoeU1vZGUgfHwgJ2RhdGUnO1xuICAgICAgICB0aGlzLmZsZXhpYmxlID0gdGhpcy50aHlNb2RlID09PSAnZmxleGlibGUnO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxNb2RlID0gdGhpcy5mbGV4aWJsZSA/IFsnZGF0ZScsICdkYXRlJ10gOiBbdGhpcy50aHlNb2RlLCB0aGlzLnRoeU1vZGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGUgPSB0aGlzLnRoeU1vZGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93V2VlayA9IHRoaXMudGh5TW9kZSA9PT0gJ3dlZWsnO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3Blbk92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihcbiAgICAgICAgICAgIERhdGVQb3B1cENvbXBvbmVudCxcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW46IHRoaXMuZWwsXG4gICAgICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAndGh5LW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUmFuZ2U6IHRoaXMuaXNSYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsTW9kZTogdGhpcy5wYW5lbE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93V2VlazogdGhpcy5zaG93V2VlayxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRoeVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RpbWU6IHRoaXMudGh5U2hvd1RpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXN0U2hvd1RpbWU6IHRoaXMud2l0aFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IHRoaXMudGh5Rm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVJlbmRlcjogdGhpcy50aHlEYXRlUmVuZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWREYXRlOiB0aGlzLnRoeURpc2FibGVkRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnRoeVBsYWNlSG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnRoeVBhbmVsQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFBpY2tlclZhbHVlOiB0aGlzLnRoeURlZmF1bHRQaWNrZXJWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbkRhdGU6IHRoaXMudGh5TWluRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heERhdGU6IHRoaXMudGh5TWF4RGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dTaG9ydGN1dDogdGhpcy50aHlTaG93U2hvcnRjdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGN1dFByZXNldHM6IHRoaXMuc2hvcnRjdXRQcmVzZXRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRjdXRQb3NpdGlvbjogdGhpcy5zaG9ydGN1dFBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleGlibGU6IHRoaXMuZmxleGlibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4aWJsZURhdGVHcmFudWxhcml0eTogdGhpcy5mbGV4aWJsZURhdGVHcmFudWxhcml0eVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMudGh5UGxhY2VtZW50XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVBvcG92ZXJPcHRpb25zXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGlmIChwb3BvdmVyUmVmKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRJbnN0YW5jZSA9IHBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudDogQ29tcGF0aWJsZVZhbHVlKSA9PiB0aGlzLm9uVmFsdWVDaGFuZ2UoZXZlbnQpKTtcbiAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmNhbGVuZGFyQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50OiBDb21wYXRpYmxlVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZVZhbHVlID0gY29lcmNlQXJyYXkoZXZlbnQpLm1hcCh4ID0+IHgubmF0aXZlRGF0ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlPbkNhbGVuZGFyQ2hhbmdlLmVtaXQocmFuZ2VWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLnNob3dUaW1lUGlja2VyQ2hhbmdlXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBib29sZWFuKSA9PiB0aGlzLm9uU2hvd1RpbWVQaWNrZXJDaGFuZ2UoZXZlbnQpKTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5uZ09uQ2hhbmdlcyh7IHZhbHVlOiB7fSBhcyBTaW1wbGVDaGFuZ2UgfSk7IC8vIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50cyBkb24ndCBjYWxsIG5nT25DaGFuZ2VzLCBtYW51YWwgY2FsbFxuICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2Uuc2hvcnRjdXRWYWx1ZUNoYW5nZT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZlbnQ6IFRoeVNob3J0Y3V0VmFsdWVDaGFuZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVNob3J0Y3V0VmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBvcG92ZXJSZWZcbiAgICAgICAgICAgICAgICAuYWZ0ZXJPcGVuZWQoKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudGh5T3BlbkNoYW5nZS5lbWl0KHRydWUpKTtcbiAgICAgICAgICAgIHBvcG92ZXJSZWZcbiAgICAgICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudGh5T3BlbkNoYW5nZS5lbWl0KGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5UG9wb3Zlci5jbG9zZSgpO1xuICAgIH1cblxuICAgIGluaXRBY3Rpb25TdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuJGNsaWNrLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRoeURpc2FibGVkICYmICF0aGlzLnRoeVJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuT3ZlcmxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3Zlcikge1xuICAgICAgICBzdXBlcihjZHIpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0VGltZVBpY2tlclN0YXRlKCk7XG4gICAgICAgIHRoaXMuaW5pdEFjdGlvblN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IENvbXBhdGlibGVWYWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc3RvcmVUaW1lUGlja2VyU3RhdGUodmFsdWUpO1xuICAgICAgICBzdXBlci5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLmZsZXhpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzcGxheXMgdGhlIHRpbWUgZGlyZWN0bHkgd2hlbiB0aGUgdGltZSBtdXN0IGJlIGRpc3BsYXllZCBieSBkZWZhdWx0XG4gICAgc2V0RGVmYXVsdFRpbWVQaWNrZXJTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy53aXRoVGltZSA9IHRoaXMudGh5TXVzdFNob3dUaW1lO1xuICAgIH1cblxuICAgIC8vIFJlc3RvcmUgYWZ0ZXIgY2xlYXJpbmcgdGltZSB0byBzZWxlY3Qgd2hldGhlciB0aGUgb3JpZ2luYWwgcGlja2VyIHRpbWUgaXMgZGlzcGxheWVkIG9yIG5vdFxuICAgIHJlc3RvcmVUaW1lUGlja2VyU3RhdGUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGwpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53aXRoVGltZSA9IHRoaXMudGh5TXVzdFNob3dUaW1lIHx8IHRoaXMub3JpZ2luV2l0aFRpbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25TaG93VGltZVBpY2tlckNoYW5nZShzaG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2l0aFRpbWUgPSBzaG93O1xuICAgIH1cbn1cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9hYnN0cmFjdC1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBSXZFOztHQUVHO0FBRUgsTUFBTSxPQUFnQixlQUFnQixTQUFRLHVCQUF1QjtJQWtCakUsSUFBYSxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQWdCRDs7O09BR0c7SUFDSCxJQUVJLFNBQVMsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUMvQyxlQUFlLENBQUMsK0VBQStFLENBQUMsQ0FBQztTQUNwRztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFJRDs7O09BR0c7SUFDSCxJQUVJLGNBQWMsQ0FBQyxLQUFjO1FBQzdCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUMvQyxlQUFlLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztTQUN6RztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUF1QkQsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkMsa0JBQWtCLEVBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQ1Q7WUFDSSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsWUFBWSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUMxQixZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdEIsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUM5QixZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ2pDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzlDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ2xDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDckMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDdkMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2Qix1QkFBdUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO2FBQ3hEO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQy9CLEVBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUN6QixDQUNKLENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDO1lBQ3ZELGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM5SCxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFzQixFQUFFLEVBQUU7Z0JBQ2pHLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxpQkFBaUIsQ0FBQyxvQkFBb0I7aUJBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLG1DQUFtQztZQUNuQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUU7WUFDbkksaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUE2QixFQUFFLEVBQUU7Z0JBQzlHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxVQUFVO2lCQUNMLFdBQVcsRUFBRTtpQkFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsVUFBVTtpQkFDTCxXQUFXLEVBQUU7aUJBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDdEI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxZQUFtQixVQUFzQixFQUFTLEdBQXNCLEVBQVUsVUFBc0I7UUFDcEcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBREksZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWpMeEcsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQjs7V0FFRztRQUNnQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUV4Rjs7V0FFRztRQUNnQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBVXBFOzs7V0FHRztRQUNzQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUVqRDs7O1dBR0c7UUFDTSxpQkFBWSxHQUFpQixRQUFRLENBQUM7UUFFdkMsV0FBTSxHQUFHLENBQUMsQ0FBQztRQWVYLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBb0IzQjs7V0FFRztRQUNzQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFM0MsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsT0FBRSxHQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUMvQyxXQUFNLEdBQXdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbkUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0osSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pCLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN2QjtRQUNMLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDZCxDQUFDO0lBOEZGLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsd0VBQXdFO0lBQ3hFLHlCQUF5QjtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVELDZGQUE2RjtJQUM3RixzQkFBc0IsQ0FBQyxLQUE2QjtRQUNoRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDL0Q7SUFDTCxDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsSUFBYTtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDOzhHQXJOaUIsZUFBZTtrR0FBZixlQUFlOztBQTZCakM7SUFBVSxZQUFZLEVBQUU7O3dEQUF5QjtBQWNqRDtJQUNDLFdBQVcsRUFBRTs7O2dEQU1iO0FBUUQ7SUFDQyxZQUFZLEVBQUU7OztxREFNZDtBQVVEO0lBQVUsWUFBWSxFQUFFOzsyREFBMkI7MkZBM0VqQyxlQUFlO2tCQURwQyxTQUFTOzBKQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT2EsZ0JBQWdCO3NCQUFsQyxNQUFNO2dCQUtZLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFHTSxXQUFXO3NCQUF2QixLQUFLO2dCQVdtQixlQUFlO3NCQUF2QyxLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBVUYsU0FBUztzQkFGWixLQUFLO2dCQWlCRixjQUFjO3NCQUZqQixLQUFLO2dCQVlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLbUIsa0JBQWtCO3NCQUExQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciwgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJDb25maWcgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBGdW5jdGlvblByb3AsIHdhcm5EZXByZWNhdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwVG8sIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vbGliL3BvcHVwcy9kYXRlLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlQYW5lbE1vZGUsIFRoeVNob3J0Y3V0VmFsdWVDaGFuZ2UgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcbmltcG9ydCB7IENvbXBhdGlibGVWYWx1ZSB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBpY2tlckRpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgc2hvd1dlZWsgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRoeURhdGVSZW5kZXI6IEZ1bmN0aW9uUHJvcDxUZW1wbGF0ZVJlZjxEYXRlPiB8IHN0cmluZz47XG5cbiAgICBwYW5lbE1vZGU6IFRoeVBhbmVsTW9kZSB8IFRoeVBhbmVsTW9kZVtdO1xuXG4gICAgLyoqXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeVBhbmVsTW9kZSB8IFRoeVBhbmVsTW9kZVtdPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPblBhbmVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlQYW5lbE1vZGUgfCBUaHlQYW5lbE1vZGVbXT4oKTtcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxEYXRlW10+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeU9uQ2FsZW5kYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcblxuICAgIHByaXZhdGUgX3Nob3dUaW1lOiBvYmplY3QgfCBib29sZWFuO1xuICAgIEBJbnB1dCgpIGdldCB0aHlTaG93VGltZSgpOiBvYmplY3QgfCBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dUaW1lO1xuICAgIH1cbiAgICBzZXQgdGh5U2hvd1RpbWUodmFsdWU6IG9iamVjdCB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1RpbWUgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gdmFsdWUgOiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuuaXtumXtCjml7bjgIHliIYpXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5TXVzdFNob3dUaW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rkvY3nva5cbiAgICAgKiBAdHlwZSB0b3AgfCB0b3BMZWZ0IHwgdG9wUmlnaHQgfCBib3R0b20gfCBib3R0b21MZWZ0IHwgYm90dG9tUmlnaHQgfCBsZWZ0IHwgbGVmdFRvcCB8IGxlZnRCb3R0b20gfCByaWdodCB8IHJpZ2h0VG9wIHwgcmlnaHRCb3R0b21cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZW1lbnQ6IFRoeVBsYWNlbWVudCA9ICdib3R0b20nO1xuXG4gICAgcHJpdmF0ZSBvZmZzZXQgPSA0O1xuXG4gICAgLyoqXG4gICAgICog5by55Ye6IERhdGVQaWNrZXIg55qE5YGP56e76YePXG4gICAgICogQGRlZmF1bHQgNFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0TnVtYmVyKClcbiAgICBzZXQgdGh5T2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgd2FybkRlcHJlY2F0aW9uKGB0aHlPZmZzZXQgcGFyYW1ldGVyIHdpbGwgYmUgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSB0aHlQb3BvdmVyT3B0aW9ucyBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNCYWNrZHJvcCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmnInluZXluINcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeUhhc0JhY2tkcm9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIHdhcm5EZXByZWNhdGlvbihgdGh5SGFzQmFja2Ryb3AgcGFyYW1ldGVyIHdpbGwgYmUgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSB0aHlQb3BvdmVyT3B0aW9ucyBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzQmFja2Ryb3AgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBwb3BvdmVyIOeahOWFtuS7luWPguaVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBvcG92ZXJPcHRpb25zOiBUaHlQb3BvdmVyQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6Zi75q2i5YaS5rOhXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeVN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHJlYWRvbmx5ICRjbGljazogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZyb21FdmVudCh0aGlzLmVsLCAnY2xpY2snKS5waXBlKFxuICAgICAgICB0YXAoZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlTdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgbWFwVG8odHJ1ZSlcbiAgICApO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZ2V0SW5pdGlhbFN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHRoaXMudGh5TW9kZSA9IHRoaXMudGh5TW9kZSB8fCAnZGF0ZSc7XG4gICAgICAgIHRoaXMuZmxleGlibGUgPSB0aGlzLnRoeU1vZGUgPT09ICdmbGV4aWJsZSc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGUgPSB0aGlzLmZsZXhpYmxlID8gWydkYXRlJywgJ2RhdGUnXSA6IFt0aGlzLnRoeU1vZGUsIHRoaXMudGh5TW9kZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsTW9kZSA9IHRoaXMudGh5TW9kZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dXZWVrID0gdGhpcy50aHlNb2RlID09PSAnd2Vlayc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRJbml0aWFsU3RhdGUoKTtcbiAgICAgICAgY29uc3QgcG9wb3ZlclJlZiA9IHRoaXMudGh5UG9wb3Zlci5vcGVuKFxuICAgICAgICAgICAgRGF0ZVBvcHVwQ29tcG9uZW50LFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbjogdGhpcy5lbCxcbiAgICAgICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuaGFzQmFja2Ryb3AsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0aHktb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNSYW5nZTogdGhpcy5pc1JhbmdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxNb2RlOiB0aGlzLnBhbmVsTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dXZWVrOiB0aGlzLnNob3dXZWVrLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGh5VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VGltZTogdGhpcy50aHlTaG93VGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11c3RTaG93VGltZTogdGhpcy53aXRoVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogdGhpcy50aHlGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlUmVuZGVyOiB0aGlzLnRoeURhdGVSZW5kZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZERhdGU6IHRoaXMudGh5RGlzYWJsZWREYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudGh5UGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMudGh5UGFuZWxDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UGlja2VyVmFsdWU6IHRoaXMudGh5RGVmYXVsdFBpY2tlclZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluRGF0ZTogdGhpcy50aHlNaW5EYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4RGF0ZTogdGhpcy50aHlNYXhEYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1Nob3J0Y3V0OiB0aGlzLnRoeVNob3dTaG9ydGN1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0Y3V0UHJlc2V0czogdGhpcy5zaG9ydGN1dFByZXNldHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGN1dFBvc2l0aW9uOiB0aGlzLnNob3J0Y3V0UG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4aWJsZTogdGhpcy5mbGV4aWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5OiB0aGlzLmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogdGhpcy50aHlQbGFjZW1lbnRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRoaXMudGh5UG9wb3Zlck9wdGlvbnNcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHBvcG92ZXJSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gcG9wb3ZlclJlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50OiBDb21wYXRpYmxlVmFsdWUpID0+IHRoaXMub25WYWx1ZUNoYW5nZShldmVudCkpO1xuICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2UuY2FsZW5kYXJDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZlbnQ6IENvbXBhdGlibGVWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlVmFsdWUgPSBjb2VyY2VBcnJheShldmVudCkubWFwKHggPT4geC5uYXRpdmVEYXRlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeU9uQ2FsZW5kYXJDaGFuZ2UuZW1pdChyYW5nZVZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2Uuc2hvd1RpbWVQaWNrZXJDaGFuZ2VcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IGJvb2xlYW4pID0+IHRoaXMub25TaG93VGltZVBpY2tlckNoYW5nZShldmVudCkpO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLm5nT25DaGFuZ2VzKHsgdmFsdWU6IHt9IGFzIFNpbXBsZUNoYW5nZSB9KTsgLy8gZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnRzIGRvbid0IGNhbGwgbmdPbkNoYW5nZXMsIG1hbnVhbCBjYWxsXG4gICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5zaG9ydGN1dFZhbHVlQ2hhbmdlPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudDogVGh5U2hvcnRjdXRWYWx1ZUNoYW5nZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5U2hvcnRjdXRWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcG9wb3ZlclJlZlxuICAgICAgICAgICAgICAgIC5hZnRlck9wZW5lZCgpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQodHJ1ZSkpO1xuICAgICAgICAgICAgcG9wb3ZlclJlZlxuICAgICAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaW5pdEFjdGlvblN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4kY2xpY2sucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudGh5RGlzYWJsZWQgJiYgIXRoaXMudGh5UmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyKSB7XG4gICAgICAgIHN1cGVyKGNkcik7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldERlZmF1bHRUaW1lUGlja2VyU3RhdGUoKTtcbiAgICAgICAgdGhpcy5pbml0QWN0aW9uU3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogQ29tcGF0aWJsZVZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzdG9yZVRpbWVQaWNrZXJTdGF0ZSh2YWx1ZSk7XG4gICAgICAgIHN1cGVyLm9uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMuZmxleGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5cyB0aGUgdGltZSBkaXJlY3RseSB3aGVuIHRoZSB0aW1lIG11c3QgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHRcbiAgICBzZXREZWZhdWx0VGltZVBpY2tlclN0YXRlKCkge1xuICAgICAgICB0aGlzLndpdGhUaW1lID0gdGhpcy50aHlNdXN0U2hvd1RpbWU7XG4gICAgfVxuXG4gICAgLy8gUmVzdG9yZSBhZnRlciBjbGVhcmluZyB0aW1lIHRvIHNlbGVjdCB3aGV0aGVyIHRoZSBvcmlnaW5hbCBwaWNrZXIgdGltZSBpcyBkaXNwbGF5ZWQgb3Igbm90XG4gICAgcmVzdG9yZVRpbWVQaWNrZXJTdGF0ZSh2YWx1ZTogQ29tcGF0aWJsZVZhbHVlIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhUaW1lID0gdGhpcy50aHlNdXN0U2hvd1RpbWUgfHwgdGhpcy5vcmlnaW5XaXRoVGltZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblNob3dUaW1lUGlja2VyQ2hhbmdlKHNob3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aXRoVGltZSA9IHNob3c7XG4gICAgfVxufVxuIl19
@@ -62,7 +62,7 @@ export class ThyDialogContainerComponent extends ThyAbstractOverlayContainer {
62
62
  const toFocus = this.elementFocusedBeforeDialogWasOpened;
63
63
  // We need the extra check, because IE can set the `activeElement` to null in some cases.
64
64
  if (this.config.restoreFocus && toFocus && typeof toFocus.focus === 'function') {
65
- toFocus.focus();
65
+ toFocus.focus(this.config.restoreFocusOptions);
66
66
  }
67
67
  if (this.focusTrap) {
68
68
  this.focusTrap.destroy();
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
161
161
  type: HostBinding,
162
162
  args: [`attr.id`]
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlhbG9nL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFFaEU7O0dBRUc7QUF3QkgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDJCQUEyQjtJQXlCaEUsNEJBQTRCO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQTRCLENBQUM7WUFFdEYsbUVBQW1FO1lBQ25FLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUNyQyxnR0FBZ0c7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TUFBTSxFQUFFLElBQUksRUFBRTtnQkFJNUMsRUFBRTtzQkFERCxXQUFXO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXFBbmltRnJhbWUsIFRoeUFic3RyYWN0T3ZlcmxheUNvbnRhaW5lciwgVGh5Q2xpY2tQb3NpdGlvbmVyLCBUaHlQb3J0YWxPdXRsZXQgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRm9jdXNUcmFwLCBGb2N1c1RyYXBGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHRoeURpYWxvZ0FuaW1hdGlvbnMgfSBmcm9tICcuL2RpYWxvZy1hbmltYXRpb25zJztcbmltcG9ydCB7IFRoeURpYWxvZ0NvbmZpZyB9IGZyb20gJy4vZGlhbG9nLmNvbmZpZyc7XG5pbXBvcnQgeyBkaWFsb2dBYnN0cmFjdE92ZXJsYXlPcHRpb25zIH0gZnJvbSAnLi9kaWFsb2cub3B0aW9ucyc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktZGlhbG9nLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlIHRoeVBvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPiBgLFxuICAgIC8vIFVzaW5nIE9uUHVzaCBmb3IgZGlhbG9ncyBjYXVzZWQgc29tZSBzeW5jIGlzc3VlcywgZS5nLiBjdXN0b20gbmdNb2RlbCBjYW4ndCB0byBkZXRlY3QgY2hhbmdlc1xuICAgIC8vIERpc2FibGVkIHVudGlsIHdlIGNhbiB0cmFjayB0aGVtIGRvd24uXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGFuaW1hdGlvbnM6IFt0aHlEaWFsb2dBbmltYXRpb25zLmRpYWxvZ0NvbnRhaW5lcl0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1kaWFsb2ctY29udGFpbmVyJyxcbiAgICAgICAgdGFiaW5kZXg6ICctMScsXG4gICAgICAgICdhcmlhLW1vZGFsJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ2NvbmZpZy5yb2xlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnY29uZmlnLmFyaWFMYWJlbCA/IG51bGwgOiBhcmlhTGFiZWxsZWRCeScsXG4gICAgICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdjb25maWcuYXJpYUxhYmVsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbCcsXG4gICAgICAgICdbQGRpYWxvZ0NvbnRhaW5lcl0nOiAnYW5pbWF0aW9uU3RhdGUnLFxuICAgICAgICAnKEBkaWFsb2dDb250YWluZXIuc3RhcnQpJzogJ29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KScsXG4gICAgICAgICcoQGRpYWxvZ0NvbnRhaW5lci5kb25lKSc6ICdvbkFuaW1hdGlvbkRvbmUoJGV2ZW50KSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1BvcnRhbE1vZHVsZSwgVGh5UG9ydGFsT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlEaWFsb2dDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlDb250YWluZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGFuaW1hdGlvbk9wZW5pbmdEb25lOiBPYnNlcnZhYmxlPEFuaW1hdGlvbkV2ZW50PjtcbiAgICBhbmltYXRpb25DbG9zaW5nRG9uZTogT2JzZXJ2YWJsZTxBbmltYXRpb25FdmVudD47XG5cbiAgICBAVmlld0NoaWxkKFRoeVBvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwb3J0YWxPdXRsZXQ6IFRoeVBvcnRhbE91dGxldDtcblxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5pZGApXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBTdGF0ZSBvZiB0aGUgZGlhbG9nIGFuaW1hdGlvbi4gKi9cbiAgICBhbmltYXRpb25TdGF0ZTogJ3ZvaWQnIHwgJ2VudGVyJyB8ICdleGl0JyA9ICd2b2lkJztcblxuICAgIC8qKiBFbWl0cyB3aGVuIGFuIGFuaW1hdGlvbiBzdGF0ZSBjaGFuZ2VzLiAqL1xuICAgIGFuaW1hdGlvblN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgICAvKiogSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyB0aGUgZGlhbG9nJ3MgbGFiZWwuICovXG4gICAgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBiZWZvcmUgdGhlIGRpYWxvZyB3YXMgb3BlbmVkLiBTYXZlIHRoaXMgdG8gcmVzdG9yZSB1cG9uIGNsb3NlLiAqL1xuICAgIHByaXZhdGUgZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogVGhlIGNsYXNzIHRoYXQgdHJhcHMgYW5kIG1hbmFnZXMgZm9jdXMgd2l0aGluIHRoZSBkaWFsb2cuICovXG4gICAgcHJpdmF0ZSBmb2N1c1RyYXA6IEZvY3VzVHJhcDtcblxuICAgIHByaXZhdGUgc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBmb2N1cyBtZXRob2Qgd2hlbiByZW5kZXJpbmcgb24gdGhlIHNlcnZlci5cbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cykge1xuICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoaXMgaXMgYmVpbmcgcnVuIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZSBiZWNhdXNlIGBlbGVtZW50LmZvY3VzKClgIGRvZXNuJ3QgcmVxdWlyZVxuICAgICAgICAgICAgICAgIC8vIHJ1bm5pbmcgY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyBNb3ZlIGZvY3VzIG9udG8gdGhlIGRpYWxvZyBpbW1lZGlhdGVseSBpbiBvcmRlciB0byBwcmV2ZW50IHRoZSB1c2VyIGZyb20gYWNjaWRlbnRhbGx5XG4gICAgICAgICAgICAgICAgICAgIC8vIG9wZW5pbmcgbXVsdGlwbGUgZGlhbG9ncyBhdCB0aGUgc2FtZSB0aW1lLiBOZWVkcyB0byBiZSBhc3luYywgYmVjYXVzZSB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAvLyBtYXkgbm90IGJlIGZvY3VzYWJsZSBpbW1lZGlhdGVseS5cblxuICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBgZWxlbWVudC5mb2N1cygpYCBjYXVzZXMgcmUtbGF5b3V0IGFuZCB0aGlzIG1heSBsZWFkIHRvIGZyYW1lIGRyb3Agb24gc2xvd2VyIGRldmljZXMuXG4gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3BhdWxpcmlzaC81ZDUyZmIwODFiMzU3MGM4MWUzYSNzZXR0aW5nLWZvY3VzXG4gICAgICAgICAgICAgICAgICAgIC8vIGBzZXRUaW1lb3V0YCBpcyBhIG1hY3JvdGFzayBhbmQgbWFjcm90YXNrcyBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBjdXJyZW50IHJlbmRlcmluZyBmcmFtZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gQW5pbWF0aW9uIHRhc2tzIGFyZSBleGVjdXRlZCB3aXRoaW4gdGhlIG5leHQgcmVuZGVyaW5nIGZyYW1lLlxuICAgICAgICAgICAgICAgICAgICByZXFBbmltRnJhbWUoKCkgPT4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1vdmVzIHRoZSBmb2N1cyBpbnNpZGUgdGhlIGZvY3VzIHRyYXAuICovXG4gICAgcHJpdmF0ZSB0cmFwRm9jdXMoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBpZiAoIXRoaXMuZm9jdXNUcmFwKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcCA9IHRoaXMuZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUoZWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB3ZSB3ZXJlIHRvIGF0dGVtcHQgdG8gZm9jdXMgaW1tZWRpYXRlbHksIHRoZW4gdGhlIGNvbnRlbnQgb2YgdGhlIGRpYWxvZyB3b3VsZCBub3QgeWV0IGJlXG4gICAgICAgIC8vIHJlYWR5IGluIGluc3RhbmNlcyB3aGVyZSBjaGFuZ2UgZGV0ZWN0aW9uIGhhcyB0byBydW4gZmlyc3QuIFRvIGRlYWwgd2l0aCB0aGlzLCB3ZSBzaW1wbHlcbiAgICAgICAgLy8gd2FpdCBmb3IgdGhlIG1pY3JvdGFzayBxdWV1ZSB0byBiZSBlbXB0eS5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGVuc3VyZSB0aGF0IGZvY3VzIGlzIG9uIHRoZSBkaWFsb2cgY29udGFpbmVyLiBJdCdzIHBvc3NpYmxlIHRoYXQgYSBkaWZmZXJlbnRcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudCB0cmllZCB0byBtb3ZlIGZvY3VzIHdoaWxlIHRoZSBvcGVuIGFuaW1hdGlvbiB3YXMgcnVubmluZy4gU2VlOlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMTYyMTUuIE5vdGUgdGhhdCB3ZSBvbmx5IHdhbnQgdG8gZG8gdGhpc1xuICAgICAgICAgICAgLy8gaWYgdGhlIGZvY3VzIGlzbid0IGluc2lkZSB0aGUgZGlhbG9nIGFscmVhZHksIGJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBjb25zdW1lclxuICAgICAgICAgICAgLy8gdHVybmVkIG9mZiBgYXV0b0ZvY3VzYCBpbiBvcmRlciB0byBtb3ZlIGZvY3VzIHRoZW1zZWx2ZXMuXG4gICAgICAgICAgICBpZiAoYWN0aXZlRWxlbWVudCAhPT0gZWxlbWVudCAmJiAhZWxlbWVudC5jb250YWlucyhhY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdG9yZUZvY3VzKCkge1xuICAgICAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDtcblxuICAgICAgICAvLyBXZSBuZWVkIHRoZSBleHRyYSBjaGVjaywgYmVjYXVzZSBJRSBjYW4gc2V0IHRoZSBgYWN0aXZlRWxlbWVudGAgdG8gbnVsbCBpbiBzb21lIGNhc2VzLlxuICAgICAgICBpZiAodGhpcy5jb25maWcucmVzdG9yZUZvY3VzICYmIHRvRm9jdXMgJiYgdHlwZW9mIHRvRm9jdXMuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRvRm9jdXMuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUcmFuc2Zvcm1PcmlnaW4oKSB7XG4gICAgICAgIHRoaXMuY2xpY2tQb3NpdGlvbmVyLnJ1blRhc2tVc2VMYXN0UG9zaXRpb24obGFzdFBvc2l0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0UG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybU9yaWdpbiA9IGAke2xhc3RQb3NpdGlvbi54IC0gY29udGFpbmVyRWxlbWVudC5vZmZzZXRMZWZ0fXB4ICR7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RQb3NpdGlvbi55IC0gY29udGFpbmVyRWxlbWVudC5vZmZzZXRUb3BcbiAgICAgICAgICAgICAgICB9cHggMHB4YDtcbiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlWyd0cmFuc2Zvcm0tb3JpZ2luJ10gPSB0cmFuc2Zvcm1PcmlnaW47XG4gICAgICAgICAgICAgICAgLy8g5omL5Yqo5L+u5pS55Yqo55S754q25oCB5Li65LuOIHZvaWQg5YiwIGVudGVyLCDlvIDlkK/liqjnlLtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZW50ZXInO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHB1YmxpYyBjb25maWc6IFRoeURpYWxvZ0NvbmZpZyxcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNsaWNrUG9zaXRpb25lcjogVGh5Q2xpY2tQb3NpdGlvbmVyLFxuICAgICAgICBwcml2YXRlIGZvY3VzVHJhcEZhY3Rvcnk6IEZvY3VzVHJhcEZhY3RvcnksXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZGlhbG9nQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbk9wZW5pbmdEb25lID0gdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnBoYXNlTmFtZSA9PT0gJ2RvbmUnICYmIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uQ2xvc2luZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBiZWZvcmVBdHRhY2hQb3J0YWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VHJhbnNmb3JtT3JpZ2luKCk7XG4gICAgICAgIHRoaXMuc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8qKiBDYWxsYmFjaywgaW52b2tlZCB3aGVuZXZlciBhbiBhbmltYXRpb24gb24gdGhlIGhvc3QgY29tcGxldGVzLiAqL1xuICAgIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC50b1N0YXRlID09PSAnZXhpdCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIENhbGxiYWNrLCBpbnZva2VkIHdoZW4gYW4gYW5pbWF0aW9uIG9uIHRoZSBob3N0IHN0YXJ0cy4gKi9cbiAgICBvbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlhbG9nL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFFaEU7O0dBRUc7QUF3QkgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDJCQUEyQjtJQXlCaEUsNEJBQTRCO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQTRCLENBQUM7WUFFdEYsbUVBQW1FO1lBQ25FLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUNyQyxnR0FBZ0c7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c0JBRFgsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk1QyxFQUFFO3NCQURELFdBQVc7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlcUFuaW1GcmFtZSwgVGh5QWJzdHJhY3RPdmVybGF5Q29udGFpbmVyLCBUaHlDbGlja1Bvc2l0aW9uZXIsIFRoeVBvcnRhbE91dGxldCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c1RyYXAsIEZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgdGh5RGlhbG9nQW5pbWF0aW9ucyB9IGZyb20gJy4vZGlhbG9nLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgVGh5RGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2cuY29uZmlnJztcbmltcG9ydCB7IGRpYWxvZ0Fic3RyYWN0T3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL2RpYWxvZy5vcHRpb25zJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1kaWFsb2ctY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZTogYCA8bmctdGVtcGxhdGUgdGh5UG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+IGAsXG4gICAgLy8gVXNpbmcgT25QdXNoIGZvciBkaWFsb2dzIGNhdXNlZCBzb21lIHN5bmMgaXNzdWVzLCBlLmcuIGN1c3RvbSBuZ01vZGVsIGNhbid0IHRvIGRldGVjdCBjaGFuZ2VzXG4gICAgLy8gRGlzYWJsZWQgdW50aWwgd2UgY2FuIHRyYWNrIHRoZW0gZG93bi5cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgYW5pbWF0aW9uczogW3RoeURpYWxvZ0FuaW1hdGlvbnMuZGlhbG9nQ29udGFpbmVyXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWRpYWxvZy1jb250YWluZXInLFxuICAgICAgICB0YWJpbmRleDogJy0xJyxcbiAgICAgICAgJ2FyaWEtbW9kYWwnOiAndHJ1ZScsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnY29uZmlnLnJvbGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdjb25maWcuYXJpYUxhYmVsID8gbnVsbCA6IGFyaWFMYWJlbGxlZEJ5JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2NvbmZpZy5hcmlhTGFiZWwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRCeSB8fCBudWxsJyxcbiAgICAgICAgJ1tAZGlhbG9nQ29udGFpbmVyXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQGRpYWxvZ0NvbnRhaW5lci5zdGFydCknOiAnb25BbmltYXRpb25TdGFydCgkZXZlbnQpJyxcbiAgICAgICAgJyhAZGlhbG9nQ29udGFpbmVyLmRvbmUpJzogJ29uQW5pbWF0aW9uRG9uZSgkZXZlbnQpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlLCBUaHlQb3J0YWxPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeURpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIFRoeUFic3RyYWN0T3ZlcmxheUNvbnRhaW5lciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgYW5pbWF0aW9uT3BlbmluZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuICAgIGFuaW1hdGlvbkNsb3NpbmdEb25lOiBPYnNlcnZhYmxlPEFuaW1hdGlvbkV2ZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoVGh5UG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHBvcnRhbE91dGxldDogVGh5UG9ydGFsT3V0bGV0O1xuXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmlkYClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqIFN0YXRlIG9mIHRoZSBkaWFsb2cgYW5pbWF0aW9uLiAqL1xuICAgIGFuaW1hdGlvblN0YXRlOiAndm9pZCcgfCAnZW50ZXInIHwgJ2V4aXQnID0gJ3ZvaWQnO1xuXG4gICAgLyoqIEVtaXRzIHdoZW4gYW4gYW5pbWF0aW9uIHN0YXRlIGNoYW5nZXMuICovXG4gICAgYW5pbWF0aW9uU3RhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb25FdmVudD4oKTtcblxuICAgIC8qKiBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHRoZSBkaWFsb2cncyBsYWJlbC4gKi9cbiAgICBhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogRWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIGJlZm9yZSB0aGUgZGlhbG9nIHdhcyBvcGVuZWQuIFNhdmUgdGhpcyB0byByZXN0b3JlIHVwb24gY2xvc2UuICovXG4gICAgcHJpdmF0ZSBlbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBUaGUgY2xhc3MgdGhhdCB0cmFwcyBhbmQgbWFuYWdlcyBmb2N1cyB3aXRoaW4gdGhlIGRpYWxvZy4gKi9cbiAgICBwcml2YXRlIGZvY3VzVHJhcDogRm9jdXNUcmFwO1xuXG4gICAgcHJpdmF0ZSBzYXZlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoZXJlIGlzIG5vIGZvY3VzIG1ldGhvZCB3aGVuIHJlbmRlcmluZyBvbiB0aGUgc2VydmVyLlxuICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKSB7XG4gICAgICAgICAgICAgICAgLy8gTm90ZTogdGhpcyBpcyBiZWluZyBydW4gb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lIGJlY2F1c2UgYGVsZW1lbnQuZm9jdXMoKWAgZG9lc24ndCByZXF1aXJlXG4gICAgICAgICAgICAgICAgLy8gcnVubmluZyBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgZm9jdXMgb250byB0aGUgZGlhbG9nIGltbWVkaWF0ZWx5IGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBhY2NpZGVudGFsbHlcbiAgICAgICAgICAgICAgICAgICAgLy8gb3BlbmluZyBtdWx0aXBsZSBkaWFsb2dzIGF0IHRoZSBzYW1lIHRpbWUuIE5lZWRzIHRvIGJlIGFzeW5jLCBiZWNhdXNlIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIC8vIG1heSBub3QgYmUgZm9jdXNhYmxlIGltbWVkaWF0ZWx5LlxuXG4gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IGBlbGVtZW50LmZvY3VzKClgIGNhdXNlcyByZS1sYXlvdXQgYW5kIHRoaXMgbWF5IGxlYWQgdG8gZnJhbWUgZHJvcCBvbiBzbG93ZXIgZGV2aWNlcy5cbiAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGF1bGlyaXNoLzVkNTJmYjA4MWIzNTcwYzgxZTNhI3NldHRpbmctZm9jdXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYHNldFRpbWVvdXRgIGlzIGEgbWFjcm90YXNrIGFuZCBtYWNyb3Rhc2tzIGFyZSBleGVjdXRlZCB3aXRoaW4gdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGZyYW1lLlxuICAgICAgICAgICAgICAgICAgICAvLyBBbmltYXRpb24gdGFza3MgYXJlIGV4ZWN1dGVkIHdpdGhpbiB0aGUgbmV4dCByZW5kZXJpbmcgZnJhbWUuXG4gICAgICAgICAgICAgICAgICAgIHJlcUFuaW1GcmFtZSgoKSA9PiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTW92ZXMgdGhlIGZvY3VzIGluc2lkZSB0aGUgZm9jdXMgdHJhcC4gKi9cbiAgICBwcml2YXRlIHRyYXBGb2N1cygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmICghdGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwID0gdGhpcy5mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZShlbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHdlIHdlcmUgdG8gYXR0ZW1wdCB0byBmb2N1cyBpbW1lZGlhdGVseSwgdGhlbiB0aGUgY29udGVudCBvZiB0aGUgZGlhbG9nIHdvdWxkIG5vdCB5ZXQgYmVcbiAgICAgICAgLy8gcmVhZHkgaW4gaW5zdGFuY2VzIHdoZXJlIGNoYW5nZSBkZXRlY3Rpb24gaGFzIHRvIHJ1biBmaXJzdC4gVG8gZGVhbCB3aXRoIHRoaXMsIHdlIHNpbXBseVxuICAgICAgICAvLyB3YWl0IGZvciB0aGUgbWljcm90YXNrIHF1ZXVlIHRvIGJlIGVtcHR5LlxuICAgICAgICBpZiAodGhpcy5jb25maWcuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgZW5zdXJlIHRoYXQgZm9jdXMgaXMgb24gdGhlIGRpYWxvZyBjb250YWluZXIuIEl0J3MgcG9zc2libGUgdGhhdCBhIGRpZmZlcmVudFxuICAgICAgICAgICAgLy8gY29tcG9uZW50IHRyaWVkIHRvIG1vdmUgZm9jdXMgd2hpbGUgdGhlIG9wZW4gYW5pbWF0aW9uIHdhcyBydW5uaW5nLiBTZWU6XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNjIxNS4gTm90ZSB0aGF0IHdlIG9ubHkgd2FudCB0byBkbyB0aGlzXG4gICAgICAgICAgICAvLyBpZiB0aGUgZm9jdXMgaXNuJ3QgaW5zaWRlIHRoZSBkaWFsb2cgYWxyZWFkeSwgYmVjYXVzZSBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGNvbnN1bWVyXG4gICAgICAgICAgICAvLyB0dXJuZWQgb2ZmIGBhdXRvRm9jdXNgIGluIG9yZGVyIHRvIG1vdmUgZm9jdXMgdGhlbXNlbHZlcy5cbiAgICAgICAgICAgIGlmIChhY3RpdmVFbGVtZW50ICE9PSBlbGVtZW50ICYmICFlbGVtZW50LmNvbnRhaW5zKGFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN0b3JlRm9jdXMoKSB7XG4gICAgICAgIGNvbnN0IHRvRm9jdXMgPSB0aGlzLmVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkO1xuXG4gICAgICAgIC8vIFdlIG5lZWQgdGhlIGV4dHJhIGNoZWNrLCBiZWNhdXNlIElFIGNhbiBzZXQgdGhlIGBhY3RpdmVFbGVtZW50YCB0byBudWxsIGluIHNvbWUgY2FzZXMuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5yZXN0b3JlRm9jdXMgJiYgdG9Gb2N1cyAmJiB0eXBlb2YgdG9Gb2N1cy5mb2N1cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdG9Gb2N1cy5mb2N1cyh0aGlzLmNvbmZpZy5yZXN0b3JlRm9jdXNPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUcmFuc2Zvcm1PcmlnaW4oKSB7XG4gICAgICAgIHRoaXMuY2xpY2tQb3NpdGlvbmVyLnJ1blRhc2tVc2VMYXN0UG9zaXRpb24obGFzdFBvc2l0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0UG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybU9yaWdpbiA9IGAke2xhc3RQb3NpdGlvbi54IC0gY29udGFpbmVyRWxlbWVudC5vZmZzZXRMZWZ0fXB4ICR7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RQb3NpdGlvbi55IC0gY29udGFpbmVyRWxlbWVudC5vZmZzZXRUb3BcbiAgICAgICAgICAgICAgICB9cHggMHB4YDtcbiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlWyd0cmFuc2Zvcm0tb3JpZ2luJ10gPSB0cmFuc2Zvcm1PcmlnaW47XG4gICAgICAgICAgICAgICAgLy8g5omL5Yqo5L+u5pS55Yqo55S754q25oCB5Li65LuOIHZvaWQg5YiwIGVudGVyLCDlvIDlkK/liqjnlLtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZW50ZXInO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHB1YmxpYyBjb25maWc6IFRoeURpYWxvZ0NvbmZpZyxcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNsaWNrUG9zaXRpb25lcjogVGh5Q2xpY2tQb3NpdGlvbmVyLFxuICAgICAgICBwcml2YXRlIGZvY3VzVHJhcEZhY3Rvcnk6IEZvY3VzVHJhcEZhY3RvcnksXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZGlhbG9nQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbk9wZW5pbmdEb25lID0gdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnBoYXNlTmFtZSA9PT0gJ2RvbmUnICYmIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uQ2xvc2luZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBiZWZvcmVBdHRhY2hQb3J0YWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VHJhbnNmb3JtT3JpZ2luKCk7XG4gICAgICAgIHRoaXMuc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8qKiBDYWxsYmFjaywgaW52b2tlZCB3aGVuZXZlciBhbiBhbmltYXRpb24gb24gdGhlIGhvc3QgY29tcGxldGVzLiAqL1xuICAgIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC50b1N0YXRlID09PSAnZXhpdCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIENhbGxiYWNrLCBpbnZva2VkIHdoZW4gYW4gYW5pbWF0aW9uIG9uIHRoZSBob3N0IHN0YXJ0cy4gKi9cbiAgICBvbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -43,6 +43,9 @@ export const THY_DIALOG_DEFAULT_OPTIONS_PROVIDER = {
43
43
  closeOnNavigation: true,
44
44
  autoFocus: true,
45
45
  restoreFocus: true,
46
+ restoreFocusOptions: {
47
+ preventScroll: true
48
+ },
46
49
  hostClass: 'thy-dialog-content'
47
50
  }
48
51
  };
@@ -56,4 +59,4 @@ export const THY_DIALOG_LAYOUT_CONFIG_PROVIDER = {
56
59
  footerDivided: false
57
60
  }
58
61
  };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQThCLE1BQU0saUJBQWlCLENBQUM7QUFHdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQyxNQUFNLENBQU4sSUFBWSxjQVlYO0FBWkQsV0FBWSxjQUFjO0lBQ3RCLDJCQUFTLENBQUE7SUFDVDs7O09BR0c7SUFDSCx3Q0FBc0IsQ0FBQTtJQUN0QixzQ0FBb0IsQ0FBQTtJQUNwQixrQ0FBZ0IsQ0FBQTtJQUNoQiwyQkFBUyxDQUFBO0lBQ1QsMkJBQVMsQ0FBQTtJQUNULCtCQUFhLENBQUE7QUFDakIsQ0FBQyxFQVpXLGNBQWMsS0FBZCxjQUFjLFFBWXpCO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZUFBaUMsU0FBUSx3QkFBK0I7SUFBckY7O1FBQ0k7OztXQUdHO1FBQ0gsU0FBSSxHQUFtQixRQUFRLENBQUM7SUFvQnBDLENBQUM7Q0FBQTtBQUVELDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsNEJBQTRCLENBQUMsQ0FBQztBQUU1RyxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRztJQUMvQyxPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLFFBQVEsRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLElBQUk7UUFDakIsYUFBYSxFQUFFLEVBQUU7UUFDakIsVUFBVSxFQUFFLEVBQUU7UUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsSUFBSTtRQUNsQixTQUFTLEVBQUUsb0JBQW9CO0tBQ2xDO0NBQ0osQ0FBQztBQUlGLE1BQU0sT0FBTyxxQkFBcUI7Q0FHakM7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsMEJBQTBCLENBQUMsQ0FBQztBQUU5RyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRztJQUM3QyxPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGFBQWEsRUFBRSxLQUFLO0tBQ3ZCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoeUFic3RyYWN0T3ZlcmxheUNvbmZpZywgVGh5QWJzdHJhY3RPdmVybGF5UG9zaXRpb24gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuXG5pbXBvcnQgeyBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBWYWxpZCBBUklBIHJvbGVzIGZvciBhIGRpYWxvZyBlbGVtZW50LiAqL1xuZXhwb3J0IHR5cGUgVGh5RGlhbG9nUm9sZSA9ICdkaWFsb2cnIHwgJ2FsZXJ0ZGlhbG9nJztcblxuZXhwb3J0IGVudW0gVGh5RGlhbG9nU2l6ZXMge1xuICAgIGxnID0gJ2xnJyxcbiAgICAvKipcbiAgICAgKiDlt7Llup/lvIPvvIzlkb3lkI3plJnor6/vvIzor7fkvb/nlKggc3VwZXJMZ1xuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgc3VwcGVyTGcgPSAnc3VwcGVyLWxnJyxcbiAgICBzdXBlckxnID0gJ3N1cGVyLWxnJyxcbiAgICBtYXhMZyA9ICdtYXgtbGcnLFxuICAgIG1kID0gJ21kJyxcbiAgICBzbSA9ICdzbScsXG4gICAgZnVsbCA9ICdmdWxsJ1xufVxuXG4vKipcbiAqIOmAmui/h1RoeURpYWxvZ+acjeWKoeerr+aJk+W8gOaooeaAgeahhueahOmFjee9rlxuICogQGRlc2NyaXB0aW9uLmVuLXVzIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5pbmcgYSBtb2RhbCBkaWFsb2cgd2l0aCB0aGUgVGh5RGlhbG9nIHNlcnZpY2UuXG4gKiBAcHVibGljXG4gKiBAb3JkZXIgMjBcbiAqL1xuZXhwb3J0IGNsYXNzIFRoeURpYWxvZ0NvbmZpZzxURGF0YSA9IHVua25vd24+IGV4dGVuZHMgVGh5QWJzdHJhY3RPdmVybGF5Q29uZmlnPFREYXRhPiB7XG4gICAgLyoqXG4gICAgICog5a+56K+d5qGG5YWD57Sg55qEIEFSSUEg6KeS6ImyXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIFRoZSBBUklBIHJvbGUgb2YgdGhlIGRpYWxvZyBlbGVtZW50LlxuICAgICAqL1xuICAgIHJvbGU/OiBUaHlEaWFsb2dSb2xlID0gJ2RpYWxvZyc7XG5cbiAgICAvKipcbiAgICAgKiDlrprkvY3mqKHmgIHmoYbnmoTlvLnlh7rkvY3nva5cbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgUG9zaXRpb24gb3ZlcnJpZGVzLlxuICAgICAqL1xuICAgIHBvc2l0aW9uPzogVGh5QWJzdHJhY3RPdmVybGF5UG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiDmqKHmgIHmoYbnmoTlpKflsI/vvIxUaHlEaWFsb2dTaXplczogc20gKDQwMCnjgIFtZCAoNjYwKeOAgWxnICg4MDAp44CBbWF4TGcgKDk4MCnjgIFzdXBlckxnICg5NHZ3KeOAgWZ1bGwgKOWFqOWxjylcbiAgICAgKiBAZGVmYXVsdCBtZFxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBEaWFsb2cgc2l6ZSBtZCwgbGcsIHNtXG4gICAgICovXG4gICAgc2l6ZT86IFRoeURpYWxvZ1NpemVzO1xuXG4gICAgLyoqXG4gICAgICog55So5LqO5qih5oCB5qGG55qE5rua5Yqo562W55WlXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIFNjcm9sbCBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIHNjcm9sbFN0cmF0ZWd5PzogU2Nyb2xsU3RyYXRlZ3k7XG59XG5cbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGRlZmF1bHQgZGlhbG9nIG9wdGlvbnMuICovXG5leHBvcnQgY29uc3QgVEhZX0RJQUxPR19ERUZBVUxUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGh5RGlhbG9nQ29uZmlnPigndGh5LWRpYWxvZy1kZWZhdWx0LW9wdGlvbnMnKTtcblxuZXhwb3J0IGNvbnN0IFRIWV9ESUFMT0dfREVGQVVMVF9PUFRJT05TX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IFRIWV9ESUFMT0dfREVGQVVMVF9PUFRJT05TLFxuICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJycsXG4gICAgICAgIHBhbmVsQ2xhc3M6ICcnLFxuICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiB0cnVlLFxuICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgYXV0b0ZvY3VzOiB0cnVlLFxuICAgICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgICAgIGhvc3RDbGFzczogJ3RoeS1kaWFsb2ctY29udGVudCdcbiAgICB9XG59O1xuXG5leHBvcnQgdHlwZSBUaHlEaWFsb2dGb290ZXJBbGlnbiA9ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcblxuZXhwb3J0IGNsYXNzIFRoeURpYWxvZ0xheW91dENvbmZpZyB7XG4gICAgZm9vdGVyQWxpZ24/OiBUaHlEaWFsb2dGb290ZXJBbGlnbjtcbiAgICBmb290ZXJEaXZpZGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFRIWV9ESUFMT0dfTEFZT1VUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUaHlEaWFsb2dMYXlvdXRDb25maWc+KCd0aHktZGlhbG9nLWxheW91dC1jb25maWcnKTtcblxuZXhwb3J0IGNvbnN0IFRIWV9ESUFMT0dfTEFZT1VUX0NPTkZJR19QUk9WSURFUiA9IHtcbiAgICBwcm92aWRlOiBUSFlfRElBTE9HX0xBWU9VVF9DT05GSUcsXG4gICAgdXNlVmFsdWU6IHtcbiAgICAgICAgZm9vdGVyQWxpZ246ICdsZWZ0JyxcbiAgICAgICAgZm9vdGVyRGl2aWRlZDogZmFsc2VcbiAgICB9XG59O1xuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQThCLE1BQU0saUJBQWlCLENBQUM7QUFHdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQyxNQUFNLENBQU4sSUFBWSxjQVlYO0FBWkQsV0FBWSxjQUFjO0lBQ3RCLDJCQUFTLENBQUE7SUFDVDs7O09BR0c7SUFDSCx3Q0FBc0IsQ0FBQTtJQUN0QixzQ0FBb0IsQ0FBQTtJQUNwQixrQ0FBZ0IsQ0FBQTtJQUNoQiwyQkFBUyxDQUFBO0lBQ1QsMkJBQVMsQ0FBQTtJQUNULCtCQUFhLENBQUE7QUFDakIsQ0FBQyxFQVpXLGNBQWMsS0FBZCxjQUFjLFFBWXpCO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZUFBaUMsU0FBUSx3QkFBK0I7SUFBckY7O1FBQ0k7OztXQUdHO1FBQ0gsU0FBSSxHQUFtQixRQUFRLENBQUM7SUFvQnBDLENBQUM7Q0FBQTtBQUVELDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsNEJBQTRCLENBQUMsQ0FBQztBQUU1RyxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRztJQUMvQyxPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLFFBQVEsRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLElBQUk7UUFDakIsYUFBYSxFQUFFLEVBQUU7UUFDakIsVUFBVSxFQUFFLEVBQUU7UUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsSUFBSTtRQUNsQixtQkFBbUIsRUFBRTtZQUNqQixhQUFhLEVBQUUsSUFBSTtTQUN0QjtRQUNELFNBQVMsRUFBRSxvQkFBb0I7S0FDbEM7Q0FDSixDQUFDO0FBSUYsTUFBTSxPQUFPLHFCQUFxQjtDQUdqQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF3QiwwQkFBMEIsQ0FBQyxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHO0lBQzdDLE9BQU8sRUFBRSx3QkFBd0I7SUFDakMsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLE1BQU07UUFDbkIsYUFBYSxFQUFFLEtBQUs7S0FDdkI7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGh5QWJzdHJhY3RPdmVybGF5Q29uZmlnLCBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5cbmltcG9ydCB7IFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIFZhbGlkIEFSSUEgcm9sZXMgZm9yIGEgZGlhbG9nIGVsZW1lbnQuICovXG5leHBvcnQgdHlwZSBUaHlEaWFsb2dSb2xlID0gJ2RpYWxvZycgfCAnYWxlcnRkaWFsb2cnO1xuXG5leHBvcnQgZW51bSBUaHlEaWFsb2dTaXplcyB7XG4gICAgbGcgPSAnbGcnLFxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOWRveWQjemUmeivr++8jOivt+S9v+eUqCBzdXBlckxnXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBzdXBwZXJMZyA9ICdzdXBwZXItbGcnLFxuICAgIHN1cGVyTGcgPSAnc3VwZXItbGcnLFxuICAgIG1heExnID0gJ21heC1sZycsXG4gICAgbWQgPSAnbWQnLFxuICAgIHNtID0gJ3NtJyxcbiAgICBmdWxsID0gJ2Z1bGwnXG59XG5cbi8qKlxuICog6YCa6L+HVGh5RGlhbG9n5pyN5Yqh56uv5omT5byA5qih5oCB5qGG55qE6YWN572uXG4gKiBAZGVzY3JpcHRpb24uZW4tdXMgQ29uZmlndXJhdGlvbiBmb3Igb3BlbmluZyBhIG1vZGFsIGRpYWxvZyB3aXRoIHRoZSBUaHlEaWFsb2cgc2VydmljZS5cbiAqIEBwdWJsaWNcbiAqIEBvcmRlciAyMFxuICovXG5leHBvcnQgY2xhc3MgVGh5RGlhbG9nQ29uZmlnPFREYXRhID0gdW5rbm93bj4gZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlDb25maWc8VERhdGE+IHtcbiAgICAvKipcbiAgICAgKiDlr7nor53moYblhYPntKDnmoQgQVJJQSDop5LoibJcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgVGhlIEFSSUEgcm9sZSBvZiB0aGUgZGlhbG9nIGVsZW1lbnQuXG4gICAgICovXG4gICAgcm9sZT86IFRoeURpYWxvZ1JvbGUgPSAnZGlhbG9nJztcblxuICAgIC8qKlxuICAgICAqIOWumuS9jeaooeaAgeahhueahOW8ueWHuuS9jee9rlxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBQb3NpdGlvbiBvdmVycmlkZXMuXG4gICAgICovXG4gICAgcG9zaXRpb24/OiBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIOaooeaAgeahhueahOWkp+Wwj++8jFRoeURpYWxvZ1NpemVzOiBzbSAoNDAwKeOAgW1kICg2NjAp44CBbGcgKDgwMCnjgIFtYXhMZyAoOTgwKeOAgXN1cGVyTGcgKDk0dncp44CBZnVsbCAo5YWo5bGPKVxuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIERpYWxvZyBzaXplIG1kLCBsZywgc21cbiAgICAgKi9cbiAgICBzaXplPzogVGh5RGlhbG9nU2l6ZXM7XG5cbiAgICAvKipcbiAgICAgKiDnlKjkuo7mqKHmgIHmoYbnmoTmu5rliqjnrZbnlaVcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgU2Nyb2xsIHN0cmF0ZWd5IHRvIGJlIHVzZWQgZm9yIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgc2Nyb2xsU3RyYXRlZ3k/OiBTY3JvbGxTdHJhdGVneTtcbn1cblxuLyoqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZGVmYXVsdCBkaWFsb2cgb3B0aW9ucy4gKi9cbmV4cG9ydCBjb25zdCBUSFlfRElBTE9HX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUaHlEaWFsb2dDb25maWc+KCd0aHktZGlhbG9nLWRlZmF1bHQtb3B0aW9ucycpO1xuXG5leHBvcnQgY29uc3QgVEhZX0RJQUxPR19ERUZBVUxUX09QVElPTlNfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogVEhZX0RJQUxPR19ERUZBVUxUX09QVElPTlMsXG4gICAgdXNlVmFsdWU6IHtcbiAgICAgICAgcm9sZTogJ2RpYWxvZycsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnJyxcbiAgICAgICAgcGFuZWxDbGFzczogJycsXG4gICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IHRydWUsXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICBhdXRvRm9jdXM6IHRydWUsXG4gICAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcbiAgICAgICAgcmVzdG9yZUZvY3VzT3B0aW9uczoge1xuICAgICAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBob3N0Q2xhc3M6ICd0aHktZGlhbG9nLWNvbnRlbnQnXG4gICAgfVxufTtcblxuZXhwb3J0IHR5cGUgVGh5RGlhbG9nRm9vdGVyQWxpZ24gPSAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG5cbmV4cG9ydCBjbGFzcyBUaHlEaWFsb2dMYXlvdXRDb25maWcge1xuICAgIGZvb3RlckFsaWduPzogVGh5RGlhbG9nRm9vdGVyQWxpZ247XG4gICAgZm9vdGVyRGl2aWRlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBUSFlfRElBTE9HX0xBWU9VVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGh5RGlhbG9nTGF5b3V0Q29uZmlnPigndGh5LWRpYWxvZy1sYXlvdXQtY29uZmlnJyk7XG5cbmV4cG9ydCBjb25zdCBUSFlfRElBTE9HX0xBWU9VVF9DT05GSUdfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogVEhZX0RJQUxPR19MQVlPVVRfQ09ORklHLFxuICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIGZvb3RlckFsaWduOiAnbGVmdCcsXG4gICAgICAgIGZvb3RlckRpdmlkZWQ6IGZhbHNlXG4gICAgfVxufTtcbiJdfQ==
@@ -1,10 +1,10 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { TabIndexDisabledControlValueAccessorMixin, InputBoolean, InputNumber, useHostFocusControl } from 'ngx-tethys/core';
2
+ import { InputBoolean, InputNumber, TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';
3
3
  import { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';
4
4
  import { ThyIconComponent } from 'ngx-tethys/icon';
5
5
  import { ThyInputDirective } from 'ngx-tethys/input';
6
6
  import { ThyAutofocusDirective } from 'ngx-tethys/shared';
7
- import { DOWN_ARROW, ENTER, isNumber, isUndefinedOrNull, UP_ARROW, isFloat } from 'ngx-tethys/util';
7
+ import { DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';
8
8
  import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
9
9
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
10
10
  import * as i0 from "@angular/core";
@@ -129,21 +129,18 @@ export class ThyInputNumberComponent extends TabIndexDisabledControlValueAccesso
129
129
  }
130
130
  }
131
131
  onModelChange(value) {
132
- const parseValue = this.parser(value);
133
- const validValue = this.getCurrentValidValue(parseValue);
134
- if (this.validValue !== validValue) {
135
- this.updateValidValue(validValue);
136
- this.onChangeFn(this.validValue);
137
- }
138
- }
139
- onInput(input) {
140
- const value = input.value;
141
132
  if (this.isInputNumber(value)) {
142
133
  this.activeValue = value;
143
134
  }
144
135
  else {
145
136
  this.displayValue = this.activeValue;
146
- input.value = this.displayValue;
137
+ this.inputElement.nativeElement.value = this.displayValue;
138
+ }
139
+ const parseValue = this.parser(value);
140
+ const validValue = this.getCurrentValidValue(parseValue);
141
+ if (this.validValue !== validValue) {
142
+ this.updateValidValue(validValue);
143
+ this.onChangeFn(this.validValue);
147
144
  }
148
145
  }
149
146
  onInputFocus(event) {
@@ -305,7 +302,7 @@ export class ThyInputNumberComponent extends TabIndexDisabledControlValueAccesso
305
302
  useExisting: forwardRef(() => ThyInputNumberComponent),
306
303
  multi: true
307
304
  }
308
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\"\n >\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\"\n >\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (input)=\"onInput(input)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\"\n/>\n", dependencies: [{ kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
305
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n", dependencies: [{ kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
309
306
  }
310
307
  __decorate([
311
308
  InputBoolean(),
@@ -330,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
330
327
  ], standalone: true, imports: [ThyIconComponent, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyMinDirective, ThyMaxDirective], host: {
331
328
  class: 'thy-input-number',
332
329
  '[attr.tabindex]': 'tabIndex'
333
- }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\"\n >\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\"\n >\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (input)=\"onInput(input)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\"\n/>\n" }]
330
+ }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
334
331
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElement: [{
335
332
  type: ViewChild,
336
333
  args: ['input', { static: true }]
@@ -357,4 +354,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
357
354
  }], thyFocus: [{
358
355
  type: Output
359
356
  }] } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFHN0csT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSXRGLElBQUssSUFHSjtBQUhELFdBQUssSUFBSTtJQUNMLDJCQUFFLENBQUE7SUFDRiwrQkFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUhJLElBQUksS0FBSixJQUFJLFFBR1I7QUFFRDs7OztHQUlHO0FBa0JILE1BQU0sT0FBTyx1QkFDVCxTQUFRLHlDQUF5QztJQW9DakQ7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LHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQzlHO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGlCQUFpQixFQUFFLFVBQVU7cUJBQ2hDO3dHQU1xQyxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBb0JYLFlBQVk7c0JBQXBDLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFNbUIsV0FBVztzQkFBbkMsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQWdCTyxNQUFNO3NCQUFsQixLQUFLO2dCQWVrQixPQUFPO3NCQUE5QixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW4sIElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIsIHVzZUhvc3RGb2N1c0NvbnRyb2wgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5TWF4RGlyZWN0aXZlLCBUaHlNaW5EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2Zvcm0nO1xuaW1wb3J0IHsgVGh5SWNvbkNvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dENvbXBvbmVudCwgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBpc051bWJlciwgaXNVbmRlZmluZWRPck51bGwsIFVQX0FSUk9XLCBpc0Zsb2F0LCBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbnR5cGUgSW5wdXRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICcnO1xuXG5lbnVtIFR5cGUge1xuICAgIHVwLFxuICAgIGRvd25cbn1cblxuLyoqXG4gKiDmlbDlrZfovpPlhaXmoYZcbiAqIEBuYW1lIHRoeS1pbnB1dC1udW1iZXJcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeUlucHV0TnVtYmVyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUljb25Db21wb25lbnQsIFRoeUlucHV0RGlyZWN0aXZlLCBUaHlBdXRvZm9jdXNEaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBUaHlNaW5EaXJlY3RpdmUsIFRoeU1heERpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYkluZGV4J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXROdW1iZXJDb21wb25lbnRcbiAgICBleHRlbmRzIFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBwcml2YXRlIGF1dG9TdGVwVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgaG9zdEZvY3VzQ29udHJvbCA9IHVzZUhvc3RGb2N1c0NvbnRyb2woKTtcblxuICAgIHZhbGlkVmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzYWJsZWRVcCA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWREb3duID0gZmFsc2U7XG5cbiAgICBhY3RpdmVWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKboh6rliqjogZrnhKZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlBdXRvRm9jdXM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYbnmoRwbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5YC8XG4gICAgICogQGRlZmF1bHQgSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1heCA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1heDtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdmFsID49IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lgLxcbiAgICAgKiBAZGVmYXVsdCAtSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWluKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1pbiA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1pbjtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERvd24gPSB2YWwgPD0gdGhpcy5pbm5lck1pbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlNaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyTWluO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOavj+asoeaUueWPmOatpeaVsO+8jOWPr+S7peS4uuWwj+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeVN0ZXAgPSAxO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBJbnB1dFNpemU7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLznsr7luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmVjaXNpb246IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaVsOWAvOWQjue8gFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVN1ZmZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55aSx5Y675LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55r+A5rS75LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIHByaXZhdGUgaW5uZXJNYXg6IG51bWJlciA9IEluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpbm5lck1pbjogbnVtYmVyID0gLUluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpc0ZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5RGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhvc3RGb2N1c0NvbnRyb2wuZm9jdXNDaGFuZ2VkID0gKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlCbHVyLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy50aHlTdWZmaXggJiYgIWNoYW5nZXMudGh5U3VmZml4LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBfdmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKF92YWx1ZSk7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZShfdmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWxpZFZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRWYWx1ZSA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHRoaXMuZGlzYWJsZWREb3duID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWwgPj0gdGhpcy50aHlNYXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbCA8PSB0aGlzLnRoeU1pbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWREb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIodmFsdWUpO1xuICAgICAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZShwYXJzZVZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRWYWx1ZSAhPT0gdmFsaWRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0KGlucHV0PzogVGh5SW5wdXRDb21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5hY3RpdmVWYWx1ZTtcbiAgICAgICAgICAgIGlucHV0LnZhbHVlID0gdGhpcy5kaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlID0gdGhpcy5wYXJzZXIodGhpcy5kaXNwbGF5VmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGh5Rm9jdXMuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBVUF9BUlJPVykge1xuICAgICAgICAgICAgdGhpcy51cChlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRE9XTl9BUlJPVykge1xuICAgICAgICAgICAgdGhpcy5kb3duKGUpO1xuICAgICAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvU3RlcFRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvU3RlcFRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMudG9OdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgIH1cblxuICAgIHN0ZXAodHlwZTogVHlwZSwgZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsaWRWYWx1ZSBhcyBudW1iZXI7XG4gICAgICAgIGxldCB2YWw7XG4gICAgICAgIGlmICh0eXBlID09PSBUeXBlLnVwKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnVwU3RlcCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVHlwZS5kb3duKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLmRvd25TdGVwKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdXRPZlJhbmdlID0gdmFsID4gdGhpcy50aHlNYXggfHwgdmFsIDwgdGhpcy50aHlNaW47XG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VGbih0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsKTtcbiAgICAgICAgaWYgKG91dE9mUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1dG9TdGVwVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICh0aGlzW1R5cGVbdHlwZV1dIGFzIChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCkoZSk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgfVxuXG4gICAgdXBTdGVwKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb25GYWN0b3IgPSB0aGlzLmdldFByZWNpc2lvbkZhY3Rvcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSArIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBkb3duU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBNYXRoLmFicyh0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoKHByZWNpc2lvbkZhY3RvciAqIHZhbHVlIC0gcHJlY2lzaW9uRmFjdG9yICogdGhpcy50aHlTdGVwKSAvIHByZWNpc2lvbkZhY3RvcikudG9GaXhlZChwcmVjaXNpb24pO1xuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcihyZXN1bHQpO1xuICAgIH1cblxuICAgIGdldE1heFByZWNpc2lvbih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVByZWNpc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGVwUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odGhpcy50aHlTdGVwKTtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odmFsdWUgYXMgbnVtYmVyKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXBQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGN1cnJlbnRWYWx1ZVByZWNpc2lvbiwgc3RlcFByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgZ2V0UHJlY2lzaW9uRmFjdG9yKGFjdGl2ZVZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldE1heFByZWNpc2lvbihhY3RpdmVWYWx1ZSk7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdygxMCwgcHJlY2lzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRQcmVjaXNpb24odmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgLy8gMC4wMDAwMDAwMDA0LnRvU3RyaW5nKCkgPSA0ZTEwICA9PiAxMFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWVTdHJpbmcuc2xpY2UodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSArIDIpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWNpc2lvbiA9IDA7XG4gICAgICAgIC8vIDEuMjIyMiA9PiAgNFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignLicpID49IDApIHtcbiAgICAgICAgICAgIHByZWNpc2lvbiA9IHZhbHVlU3RyaW5nLmxlbmd0aCAtIHZhbHVlU3RyaW5nLmluZGV4T2YoJy4nKSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZWNpc2lvbjtcbiAgICB9XG5cbiAgICB1cChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RlcChUeXBlLnVwLCBlKTtcbiAgICB9XG5cbiAgICBkb3duKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUuZG93biwgZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIoYCR7dmFsdWV9YCk7XG4gICAgICAgIGlmIChwYXJzZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlTdWZmaXggPyBgJHtwYXJzZVZhbHVlfSAke3RoaXMudGh5U3VmZml4fWAgOiBwYXJzZVZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgv44CCL2csICcuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLi1dKy9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMudGh5U3VmZml4LCAnJyk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIGxldCB2YWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFsID0gcGFyc2VGbG9hdCh2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKHZhbCkpIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudmFsaWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHZhbCBhcyBudW1iZXIpIDwgdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudGh5TWluO1xuICAgICAgICB9XG4gICAgICAgIGlmICgodmFsIGFzIG51bWJlcikgPiB0aGlzLnRoeU1heCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy50aHlNYXg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcih2YWwpO1xuICAgIH1cblxuICAgIGlzTm90VmFsaWQobnVtOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmFOKG51bSBhcyBudW1iZXIpIHx8IG51bSA9PT0gJycgfHwgbnVtID09PSBudWxsIHx8ICEhKG51bSAmJiBudW0udG9TdHJpbmcoKS5pbmRleE9mKCcuJykgPT09IG51bS50b1N0cmluZygpLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIHRvTnVtYmVyKG51bTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZChudW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtIGFzIG51bWJlcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudW1TdHIgPSBTdHJpbmcobnVtKTtcbiAgICAgICAgaWYgKG51bVN0ci5pbmRleE9mKCcuJykgPj0gMCAmJiAhaXNVbmRlZmluZWRPck51bGwodGhpcy50aHlQcmVjaXNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKE51bWJlcihudW0pLnRvRml4ZWQodGhpcy50aHlQcmVjaXNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTnVtYmVyKG51bSk7XG4gICAgfVxuXG4gICAgaXNJbnB1dE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBpc0Zsb2F0KHZhbHVlKSB8fCAvXlstK0VlXSR8XihbLSsuXT9bMC05XSkqKChbLl18Wy5lRV0pP1tlRV0/WystXT8pPyR8XiQvLnRlc3QodmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmhvc3RGb2N1c0NvbnRyb2wuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlci13cmFwXCIgW2NsYXNzLmlucHV0LW51bWJlci1kaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiPlxuICA8c3BhblxuICAgIHVuc2VsZWN0YWJsZT1cInVuc2VsZWN0YWJsZVwiXG4gICAgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlciBpbnB1dC1udW1iZXItaGFuZGxlci11cFwiXG4gICAgKG1vdXNlZG93bik9XCJ1cCgkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkVXBcIlxuICA+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtdXBcIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLWRvd25cIlxuICAgIChtb3VzZWRvd24pPVwiZG93bigkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkRG93blwiXG4gID5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3duXCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG48aW5wdXRcbiAgdGh5SW5wdXRcbiAgI2lucHV0XG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWlucHV0IGZvcm0tY29udHJvbFwiXG4gIFt0aHlTaXplXT1cInRoeVNpemVcIlxuICBbdGh5QXV0b2ZvY3VzXT1cInRoeUF1dG9Gb2N1c1wiXG4gIFtkaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiXG4gIFthdHRyLm1pbl09XCJ0aHlNaW5cIlxuICBbYXR0ci5tYXhdPVwidGh5TWF4XCJcbiAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgW2F0dHIuc3RlcF09XCJ0aHlTdGVwXCJcbiAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAoa2V5dXApPVwic3RvcCgpXCJcbiAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAoaW5wdXQpPVwib25JbnB1dChpbnB1dClcIlxuICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICB0YWJpbmRleD1cIi0xXCJcbi8+XG4iXX0=
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSx5Q0FBeUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwRyxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdEYsSUFBSyxJQUdKO0FBSEQsV0FBSyxJQUFJO0lBQ0wsMkJBQUUsQ0FBQTtJQUNGLCtCQUFJLENBQUE7QUFDUixDQUFDLEVBSEksSUFBSSxLQUFKLElBQUksUUFHUjtBQUVEOzs7O0dBSUc7QUFrQkgsTUFBTSxPQUFPLHVCQUNULFNBQVEseUNBQXlDO0lBb0NqRDs7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QUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQzlHO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGlCQUFpQixFQUFFLFVBQVU7cUJBQ2hDO3dHQU1xQyxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBb0JYLFlBQVk7c0JBQXBDLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFNbUIsV0FBVztzQkFBbkMsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQWdCTyxNQUFNO3NCQUFsQixLQUFLO2dCQWVrQixPQUFPO3NCQUE5QixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciwgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW4sIHVzZUhvc3RGb2N1c0NvbnRyb2wgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5TWF4RGlyZWN0aXZlLCBUaHlNaW5EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2Zvcm0nO1xuaW1wb3J0IHsgVGh5SWNvbkNvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIGlzRmxvYXQsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZE9yTnVsbCwgVVBfQVJST1cgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5pbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxudHlwZSBJbnB1dFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJyc7XG5cbmVudW0gVHlwZSB7XG4gICAgdXAsXG4gICAgZG93blxufVxuXG4vKipcbiAqIOaVsOWtl+i+k+WFpeahhlxuICogQG5hbWUgdGh5LWlucHV0LW51bWJlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0LW51bWJlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXROdW1iZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5SWNvbkNvbXBvbmVudCwgVGh5SW5wdXREaXJlY3RpdmUsIFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIFRoeU1pbkRpcmVjdGl2ZSwgVGh5TWF4RGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWlucHV0LW51bWJlcicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaHlJbnB1dE51bWJlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjtcblxuICAgIHByaXZhdGUgYXV0b1N0ZXBUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBob3N0Rm9jdXNDb250cm9sID0gdXNlSG9zdEZvY3VzQ29udHJvbCgpO1xuXG4gICAgdmFsaWRWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzcGxheVZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICBkaXNhYmxlZFVwID0gZmFsc2U7XG5cbiAgICBkaXNhYmxlZERvd24gPSBmYWxzZTtcblxuICAgIGFjdGl2ZVZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuiHquWKqOiBmueEplxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeUF1dG9Gb2N1czogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhueahHBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5RGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDmnIDlpKflgLxcbiAgICAgKiBAZGVmYXVsdCBJbmZpbml0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlNYXgodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLmlubmVyTWF4ID0gaXNOdW1iZXIodmFsdWUpID8gdmFsdWUgOiB0aGlzLmlubmVyTWF4O1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5VmFsdWUgfHwgdGhpcy5kaXNwbGF5VmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih0aGlzLmRpc3BsYXlWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB2YWwgPj0gdGhpcy5pbm5lck1heDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlNYXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyTWF4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOacgOWwj+WAvFxuICAgICAqIEBkZWZhdWx0IC1JbmZpbml0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlNaW4odmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLmlubmVyTWluID0gaXNOdW1iZXIodmFsdWUpID8gdmFsdWUgOiB0aGlzLmlubmVyTWluO1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5VmFsdWUgfHwgdGhpcy5kaXNwbGF5VmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih0aGlzLmRpc3BsYXlWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkRG93biA9IHZhbCA8PSB0aGlzLmlubmVyTWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeU1pbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJNaW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5q+P5qyh5pS55Y+Y5q2l5pWw77yM5Y+v5Lul5Li65bCP5pWwXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5U3RlcCA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYblpKflsI9cbiAgICAgKiBAdHlwZSB4cyB8IHNtIHwgbWQgfCBsZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IElucHV0U2l6ZTtcblxuICAgIC8qKlxuICAgICAqIOaVsOWAvOeyvuW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVByZWNpc2lvbjogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5pWw5YC85ZCO57yAXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U3VmZml4OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDnhKbngrnlpLHljrvkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Qmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDnhKbngrnmv4DmtLvkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSBpbm5lck1heDogbnVtYmVyID0gSW5maW5pdHk7XG5cbiAgICBwcml2YXRlIGlubmVyTWluOiBudW1iZXIgPSAtSW5maW5pdHk7XG5cbiAgICBwcml2YXRlIGlzRm9jdXNlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aHlEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaG9zdEZvY3VzQ29udHJvbC5mb2N1c0NoYW5nZWQgPSAob3JpZ2luOiBGb2N1c09yaWdpbikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcmlnaW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeUJsdXIuZW1pdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnRoeVN1ZmZpeCAmJiAhY2hhbmdlcy50aHlTdWZmaXguaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IF92YWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKF92YWx1ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZhbGlkVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZFZhbHVlID0gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YWxpZFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdGhpcy5kaXNhYmxlZERvd24gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlIHx8IHZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbCA+PSB0aGlzLnRoeU1heCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsIDw9IHRoaXMudGh5TWluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERvd24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5wdXROdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuYWN0aXZlVmFsdWU7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VWYWx1ZSA9IHRoaXMucGFyc2VyKHZhbHVlKTtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUocGFyc2VWYWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkVmFsdWUgIT09IHZhbGlkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbih0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHRoaXMucGFyc2VyKHRoaXMuZGlzcGxheVZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRoeUZvY3VzLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gVVBfQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMudXAoZSk7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMuZG93bihlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1N0ZXBUaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1N0ZXBUaW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnRvTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICB9XG5cbiAgICBzdGVwKHR5cGU6IFR5cGUsIGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbGlkVmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICBsZXQgdmFsO1xuICAgICAgICBpZiAodHlwZSA9PT0gVHlwZS51cCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy51cFN0ZXAodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFR5cGUuZG93bikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy5kb3duU3RlcCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0T2ZSYW5nZSA9IHZhbCA+IHRoaXMudGh5TWF4IHx8IHZhbCA8IHRoaXMudGh5TWluO1xuICAgICAgICB2YWwgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWwpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChvdXRPZlJhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU3RlcFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAodGhpc1tUeXBlW3R5cGVdXSBhcyAoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpKGUpO1xuICAgICAgICB9LCAzMDApO1xuICAgIH1cblxuICAgIHVwU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9ICgocHJlY2lzaW9uRmFjdG9yICogdmFsdWUgKyBwcmVjaXNpb25GYWN0b3IgKiB0aGlzLnRoeVN0ZXApIC8gcHJlY2lzaW9uRmFjdG9yKS50b0ZpeGVkKHByZWNpc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZG93blN0ZXAodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbkZhY3RvciA9IHRoaXMuZ2V0UHJlY2lzaW9uRmFjdG9yKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gTWF0aC5hYnModGhpcy5nZXRNYXhQcmVjaXNpb24odmFsdWUpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSAtIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBnZXRNYXhQcmVjaXNpb24odmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICghaXNVbmRlZmluZWRPck51bGwodGhpcy50aHlQcmVjaXNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RlcFByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKHRoaXMudGh5U3RlcCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZVByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKHZhbHVlIGFzIG51bWJlcik7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwUHJlY2lzaW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBNYXRoLm1heChjdXJyZW50VmFsdWVQcmVjaXNpb24sIHN0ZXBQcmVjaXNpb24pO1xuICAgIH1cblxuICAgIGdldFByZWNpc2lvbkZhY3RvcihhY3RpdmVWYWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gdGhpcy5nZXRNYXhQcmVjaXNpb24oYWN0aXZlVmFsdWUpO1xuICAgICAgICByZXR1cm4gTWF0aC5wb3coMTAsIHByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgZ2V0UHJlY2lzaW9uKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIC8vIDAuMDAwMDAwMDAwNC50b1N0cmluZygpID0gNGUxMCAgPT4gMTBcbiAgICAgICAgaWYgKHZhbHVlU3RyaW5nLmluZGV4T2YoJ2UtJykgPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlU3RyaW5nLnNsaWNlKHZhbHVlU3RyaW5nLmluZGV4T2YoJ2UtJykgKyAyKSwgMTApO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVjaXNpb24gPSAwO1xuICAgICAgICAvLyAxLjIyMjIgPT4gIDRcbiAgICAgICAgaWYgKHZhbHVlU3RyaW5nLmluZGV4T2YoJy4nKSA+PSAwKSB7XG4gICAgICAgICAgICBwcmVjaXNpb24gPSB2YWx1ZVN0cmluZy5sZW5ndGggLSB2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmVjaXNpb247XG4gICAgfVxuXG4gICAgdXAoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLnN0ZXAoVHlwZS51cCwgZSk7XG4gICAgfVxuXG4gICAgZG93bihlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RlcChUeXBlLmRvd24sIGUpO1xuICAgIH1cblxuICAgIGZvcm1hdHRlclZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcGFyc2VWYWx1ZSA9IHRoaXMucGFyc2VyKGAke3ZhbHVlfWApO1xuICAgICAgICBpZiAocGFyc2VWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5U3VmZml4ID8gYCR7cGFyc2VWYWx1ZX0gJHt0aGlzLnRoeVN1ZmZpeH1gIDogcGFyc2VWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBhcnNlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgLnJlcGxhY2UoL+OAgi9nLCAnLicpXG4gICAgICAgICAgICAucmVwbGFjZSgvW15cXHdcXC4tXSsvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSh0aGlzLnRoeVN1ZmZpeCwgJycpO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIgfCBzdHJpbmcge1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHZhbCA9IHBhcnNlRmxvYXQodmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZCh2YWwpKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnZhbGlkVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh2YWwgYXMgbnVtYmVyKSA8IHRoaXMudGh5TWluKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnRoeU1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHZhbCBhcyBudW1iZXIpID4gdGhpcy50aHlNYXgpIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudGh5TWF4O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIodmFsKTtcbiAgICB9XG5cbiAgICBpc05vdFZhbGlkKG51bTogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hTihudW0gYXMgbnVtYmVyKSB8fCBudW0gPT09ICcnIHx8IG51bSA9PT0gbnVsbCB8fCAhIShudW0gJiYgbnVtLnRvU3RyaW5nKCkuaW5kZXhPZignLicpID09PSBudW0udG9TdHJpbmcoKS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICB0b051bWJlcihudW06IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQobnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bSBhcyBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtU3RyID0gU3RyaW5nKG51bSk7XG4gICAgICAgIGlmIChudW1TdHIuaW5kZXhPZignLicpID49IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXMudGh5UHJlY2lzaW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihOdW1iZXIobnVtKS50b0ZpeGVkKHRoaXMudGh5UHJlY2lzaW9uKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlcihudW0pO1xuICAgIH1cblxuICAgIGlzSW5wdXROdW1iZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gaXNGbG9hdCh2YWx1ZSkgfHwgL15bLStFZV0kfF4oWy0rLl0/WzAtOV0pKigoWy5dfFsuZUVdKT9bZUVdP1srLV0/KT8kfF4kLy50ZXN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5ob3N0Rm9jdXNDb250cm9sLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtbnVtYmVyLWhhbmRsZXItd3JhcFwiIFtjbGFzcy5pbnB1dC1udW1iZXItZGlzYWJsZWRdPVwidGh5RGlzYWJsZWRcIj5cbiAgPHNwYW5cbiAgICB1bnNlbGVjdGFibGU9XCJ1bnNlbGVjdGFibGVcIlxuICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWhhbmRsZXIgaW5wdXQtbnVtYmVyLWhhbmRsZXItdXBcIlxuICAgIChtb3VzZWRvd24pPVwidXAoJGV2ZW50KVwiXG4gICAgKG1vdXNldXApPVwic3RvcCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wKClcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFVwXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtdXBcIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLWRvd25cIlxuICAgIChtb3VzZWRvd24pPVwiZG93bigkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkRG93blwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvd25cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L2Rpdj5cbjxpbnB1dFxuICB0aHlJbnB1dFxuICAjaW5wdXRcbiAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgY2xhc3M9XCJpbnB1dC1udW1iZXItaW5wdXQgZm9ybS1jb250cm9sXCJcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIFt0aHlBdXRvZm9jdXNdPVwidGh5QXV0b0ZvY3VzXCJcbiAgW2Rpc2FibGVkXT1cInRoeURpc2FibGVkXCJcbiAgW2F0dHIubWluXT1cInRoeU1pblwiXG4gIFthdHRyLm1heF09XCJ0aHlNYXhcIlxuICBbcGxhY2Vob2xkZXJdPVwidGh5UGxhY2Vob2xkZXJcIlxuICBbYXR0ci5zdGVwXT1cInRoeVN0ZXBcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChrZXl1cCk9XCJzdG9wKClcIlxuICBbKG5nTW9kZWwpXT1cImRpc3BsYXlWYWx1ZVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gIHRhYmluZGV4PVwiLTFcIiAvPlxuIl19