cps-ui-kit 0.140.0 → 0.141.0

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 (94) hide show
  1. package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +137 -4
  2. package/esm2020/lib/components/cps-button/cps-button.component.mjs +55 -2
  3. package/esm2020/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +63 -2
  4. package/esm2020/lib/components/cps-checkbox/cps-checkbox.component.mjs +50 -1
  5. package/esm2020/lib/components/cps-chip/cps-chip.component.mjs +34 -1
  6. package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +78 -1
  7. package/esm2020/lib/components/cps-expansion-panel/cps-expansion-panel.component.mjs +51 -1
  8. package/esm2020/lib/components/cps-icon/cps-icon.component.mjs +17 -1
  9. package/esm2020/lib/components/cps-info-circle/cps-info-circle.component.mjs +29 -1
  10. package/esm2020/lib/components/cps-input/cps-input.component.mjs +131 -1
  11. package/esm2020/lib/components/cps-loader/cps-loader.component.mjs +21 -1
  12. package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +58 -2
  13. package/esm2020/lib/components/cps-paginator/cps-paginator.component.mjs +38 -1
  14. package/esm2020/lib/components/cps-paginator/pipes/cps-paginate.pipe.mjs +5 -1
  15. package/esm2020/lib/components/cps-progress-circular/cps-progress-circular.component.mjs +17 -1
  16. package/esm2020/lib/components/cps-progress-linear/cps-progress-linear.component.mjs +29 -1
  17. package/esm2020/lib/components/cps-radio-group/cps-radio/cps-radio.component.mjs +5 -1
  18. package/esm2020/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.mjs +18 -1
  19. package/esm2020/lib/components/cps-radio-group/cps-radio-group.component.mjs +50 -1
  20. package/esm2020/lib/components/cps-select/cps-select.component.mjs +137 -4
  21. package/esm2020/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +21 -1
  22. package/esm2020/lib/components/cps-tab-group/cps-tab/cps-tab.component.mjs +41 -1
  23. package/esm2020/lib/components/cps-tab-group/cps-tab-group.component.mjs +32 -2
  24. package/esm2020/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.mjs +67 -3
  25. package/esm2020/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.mjs +31 -3
  26. package/esm2020/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.mjs +51 -0
  27. package/esm2020/lib/components/cps-table/cps-table.component.mjs +312 -8
  28. package/esm2020/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +67 -3
  29. package/esm2020/lib/components/cps-table/directives/cps-table-column-sortable.directive.mjs +9 -1
  30. package/esm2020/lib/components/cps-table/directives/cps-table-header-selectable.directive.mjs +5 -1
  31. package/esm2020/lib/components/cps-table/directives/cps-table-row-selectable.directive.mjs +5 -1
  32. package/esm2020/lib/components/cps-tag/cps-tag.component.mjs +35 -2
  33. package/esm2020/lib/components/cps-textarea/cps-textarea.component.mjs +101 -1
  34. package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +17 -1
  35. package/esm2020/lib/components/cps-tree-select/cps-tree-select.component.mjs +13 -1
  36. package/esm2020/lib/components/cps-tree-table/cps-tree-table.component.mjs +314 -7
  37. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.mjs +63 -3
  38. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.mjs +9 -1
  39. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-header-selectable.directive.mjs +5 -1
  40. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.mjs +5 -1
  41. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.mjs +5 -1
  42. package/esm2020/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +118 -1
  43. package/esm2020/lib/directives/cps-tooltip.directive.mjs +37 -1
  44. package/esm2020/lib/services/cps-dialog/cps-dialog.service.mjs +2 -2
  45. package/fesm2015/cps-ui-kit.mjs +2312 -37
  46. package/fesm2015/cps-ui-kit.mjs.map +1 -1
  47. package/fesm2020/cps-ui-kit.mjs +2312 -37
  48. package/fesm2020/cps-ui-kit.mjs.map +1 -1
  49. package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +133 -0
  50. package/lib/components/cps-button/cps-button.component.d.ts +53 -0
  51. package/lib/components/cps-button-toggle/cps-button-toggle.component.d.ts +61 -0
  52. package/lib/components/cps-checkbox/cps-checkbox.component.d.ts +49 -0
  53. package/lib/components/cps-chip/cps-chip.component.d.ts +33 -0
  54. package/lib/components/cps-datepicker/cps-datepicker.component.d.ts +85 -0
  55. package/lib/components/cps-expansion-panel/cps-expansion-panel.component.d.ts +50 -0
  56. package/lib/components/cps-icon/cps-icon.component.d.ts +16 -0
  57. package/lib/components/cps-info-circle/cps-info-circle.component.d.ts +28 -0
  58. package/lib/components/cps-input/cps-input.component.d.ts +130 -0
  59. package/lib/components/cps-loader/cps-loader.component.d.ts +20 -0
  60. package/lib/components/cps-menu/cps-menu.component.d.ts +56 -0
  61. package/lib/components/cps-paginator/cps-paginator.component.d.ts +37 -0
  62. package/lib/components/cps-paginator/pipes/cps-paginate.pipe.d.ts +4 -0
  63. package/lib/components/cps-progress-circular/cps-progress-circular.component.d.ts +16 -0
  64. package/lib/components/cps-progress-linear/cps-progress-linear.component.d.ts +28 -0
  65. package/lib/components/cps-radio-group/cps-radio/cps-radio.component.d.ts +8 -0
  66. package/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.d.ts +21 -0
  67. package/lib/components/cps-radio-group/cps-radio-group.component.d.ts +49 -0
  68. package/lib/components/cps-select/cps-select.component.d.ts +133 -0
  69. package/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.d.ts +21 -1
  70. package/lib/components/cps-tab-group/cps-tab/cps-tab.component.d.ts +40 -0
  71. package/lib/components/cps-tab-group/cps-tab-group.component.d.ts +30 -0
  72. package/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.d.ts +68 -0
  73. package/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.d.ts +36 -0
  74. package/lib/components/cps-table/{table-row-menu → components/internal/table-row-menu}/table-row-menu.component.d.ts +15 -1
  75. package/lib/components/cps-table/cps-table.component.d.ts +304 -0
  76. package/lib/components/cps-table/directives/cps-table-column-filter.directive.d.ts +68 -0
  77. package/lib/components/cps-table/directives/cps-table-column-sortable.directive.d.ts +8 -0
  78. package/lib/components/cps-table/directives/cps-table-header-selectable.directive.d.ts +4 -0
  79. package/lib/components/cps-table/directives/cps-table-row-selectable.directive.d.ts +8 -0
  80. package/lib/components/cps-tag/cps-tag.component.d.ts +33 -0
  81. package/lib/components/cps-textarea/cps-textarea.component.d.ts +100 -0
  82. package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +16 -0
  83. package/lib/components/cps-tree-select/cps-tree-select.component.d.ts +12 -0
  84. package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +307 -0
  85. package/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.d.ts +64 -0
  86. package/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.d.ts +8 -0
  87. package/lib/components/cps-tree-table/directives/cps-tree-table-header-selectable.directive.d.ts +4 -0
  88. package/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.d.ts +8 -0
  89. package/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.d.ts +8 -0
  90. package/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.d.ts +117 -0
  91. package/lib/directives/cps-tooltip.directive.d.ts +40 -0
  92. package/lib/services/cps-dialog/cps-dialog.service.d.ts +1 -1
  93. package/package.json +1 -1
  94. package/esm2020/lib/components/cps-table/table-row-menu/table-row-menu.component.mjs +0 -37
@@ -2,16 +2,56 @@ import { CommonModule } from '@angular/common';
2
2
  import { Component, Input, TemplateRef, ViewChild } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
+ /**
6
+ * CpsTabComponent is a tab within a tab-group.
7
+ * @group Components
8
+ */
5
9
  export class CpsTabComponent {
6
10
  constructor() {
11
+ /**
12
+ * Label of the tab.
13
+ * @group Props
14
+ */
7
15
  this.label = '';
16
+ /**
17
+ * Icon before the label.
18
+ * @group Props
19
+ */
8
20
  this.icon = '';
21
+ /**
22
+ * Whether tab is disabled.
23
+ * @group Props
24
+ */
9
25
  this.disabled = false;
26
+ /**
27
+ * Whether to show the tooltip on tab hover.
28
+ * @group Props
29
+ */
10
30
  this.tooltipText = '';
31
+ /**
32
+ * Class for styling the tab tooltip.
33
+ * @group Props
34
+ */
11
35
  this.tooltipContentClass = 'cps-tooltip-content';
36
+ /**
37
+ * Max width of the tooltip, of type number denoting pixels or string.
38
+ * @group Props
39
+ */
12
40
  this.tooltipMaxWidth = '100%';
41
+ /**
42
+ * Whether the tooltip should have persistent info.
43
+ * @group Props
44
+ */
13
45
  this.tooltipPersistent = false;
46
+ /**
47
+ * Badge value to show on the tab after the label in a form of a circle.
48
+ * @group Props
49
+ */
14
50
  this.badgeValue = '';
51
+ /**
52
+ * Tooltip text to show on badge hover.
53
+ * @group Props
54
+ */
15
55
  this.badgeTooltip = '';
16
56
  this.active = false;
17
57
  }
@@ -43,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
43
83
  type: ViewChild,
44
84
  args: [TemplateRef]
45
85
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWIvY3BzLXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWIvY3BzLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBU3pFLE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBUVcsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLHdCQUFtQixHQUFHLHFCQUFxQixDQUFDO1FBQzVDLG9CQUFlLEdBQW9CLE1BQU0sQ0FBQztRQUMxQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUUzQixXQUFNLEdBQUcsS0FBSyxDQUFDO0tBQ2hCOzs0R0FaWSxlQUFlO2dHQUFmLGVBQWUsd1hBVWYsV0FBVyxnRENwQnhCLHNJQUtBLHlEREFZLFlBQVk7MkZBS1gsZUFBZTtrQkFQM0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYixTQUFTOzhCQUtWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ2tCLE9BQU87c0JBQTlCLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdjcHMtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtdGFiLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGFiQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgaWNvbiA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB0b29sdGlwVGV4dCA9ICcnO1xuICBASW5wdXQoKSB0b29sdGlwQ29udGVudENsYXNzID0gJ2Nwcy10b29sdGlwLWNvbnRlbnQnO1xuICBASW5wdXQoKSB0b29sdGlwTWF4V2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgdG9vbHRpcFBlcnNpc3RlbnQgPSBmYWxzZTtcbiAgQElucHV0KCkgYmFkZ2VWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSBiYWRnZVRvb2x0aXAgPSAnJztcbiAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGFjdGl2ZSA9IGZhbHNlO1xufVxuIiwiPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWIvY3BzLXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWIvY3BzLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRXpFOzs7R0FHRztBQVFILE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBUUU7OztXQUdHO1FBQ00sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVwQjs7O1dBR0c7UUFDTSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRW5COzs7V0FHRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sd0JBQW1CLEdBQUcscUJBQXFCLENBQUM7UUFFckQ7OztXQUdHO1FBQ00sb0JBQWUsR0FBb0IsTUFBTSxDQUFDO1FBRW5EOzs7V0FHRztRQUNNLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVuQzs7O1dBR0c7UUFDTSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXpCOzs7V0FHRztRQUNNLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBSTNCLFdBQU0sR0FBRyxLQUFLLENBQUM7S0FDaEI7OzRHQTFEWSxlQUFlO2dHQUFmLGVBQWUsd1hBdURmLFdBQVcsZ0RDckV4QixzSUFLQSx5RERJWSxZQUFZOzJGQUtYLGVBQWU7a0JBUDNCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2IsU0FBUzs4QkFTVixLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsV0FBVztzQkFBbkIsS0FBSztnQkFNRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVrQixPQUFPO3NCQUE5QixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIENwc1RhYkNvbXBvbmVudCBpcyBhIHRhYiB3aXRoaW4gYSB0YWItZ3JvdXAuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnY3BzLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRhYi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENwc1RhYkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBMYWJlbCBvZiB0aGUgdGFiLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgLyoqXG4gICAqIEljb24gYmVmb3JlIHRoZSBsYWJlbC5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBpY29uID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGFiIGlzIGRpc2FibGVkLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgdG9vbHRpcCBvbiB0YWIgaG92ZXIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgdG9vbHRpcFRleHQgPSAnJztcblxuICAvKipcbiAgICogQ2xhc3MgZm9yIHN0eWxpbmcgdGhlIHRhYiB0b29sdGlwLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHRvb2x0aXBDb250ZW50Q2xhc3MgPSAnY3BzLXRvb2x0aXAtY29udGVudCc7XG5cbiAgLyoqXG4gICAqIE1heCB3aWR0aCBvZiB0aGUgdG9vbHRpcCwgb2YgdHlwZSBudW1iZXIgZGVub3RpbmcgcGl4ZWxzIG9yIHN0cmluZy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSB0b29sdGlwTWF4V2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdG9vbHRpcCBzaG91bGQgaGF2ZSBwZXJzaXN0ZW50IGluZm8uXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgdG9vbHRpcFBlcnNpc3RlbnQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQmFkZ2UgdmFsdWUgdG8gc2hvdyBvbiB0aGUgdGFiIGFmdGVyIHRoZSBsYWJlbCBpbiBhIGZvcm0gb2YgYSBjaXJjbGUuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgYmFkZ2VWYWx1ZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBUb29sdGlwIHRleHQgdG8gc2hvdyBvbiBiYWRnZSBob3Zlci5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBiYWRnZVRvb2x0aXAgPSAnJztcblxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBhY3RpdmUgPSBmYWxzZTtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -8,15 +8,45 @@ import { getCSSColor } from '../../utils/colors-utils';
8
8
  import { Subscription, debounceTime, distinctUntilChanged, fromEvent } from 'rxjs';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/common";
11
+ /**
12
+ * CpsTabGroupComponent is a navigation component that displays items as tab headers.
13
+ * @group Components
14
+ */
11
15
  export class CpsTabGroupComponent {
12
16
  // eslint-disable-next-line no-useless-constructor
13
17
  constructor(cdRef) {
14
18
  this.cdRef = cdRef;
19
+ /**
20
+ * Index of the selected tab.
21
+ * @group Props
22
+ */
15
23
  this.selectedIndex = 0;
16
- this.isSubTabs = false; // applies an alternative styling to tabs
24
+ /**
25
+ * Whether to apply an alternative 'subtabs' styling.
26
+ * @group Props
27
+ */
28
+ this.isSubTabs = false;
29
+ /**
30
+ * Transition options of how content appears, it can be "slide" or "fade".
31
+ * @group Props
32
+ */
17
33
  this.animationType = 'slide';
34
+ /**
35
+ * Background styling of tabs.
36
+ * @group Props
37
+ */
18
38
  this.tabsBackground = 'inherit';
39
+ /**
40
+ * Callback to invoke before tab change.
41
+ * @param {TabChangeEvent} any - tab changed.
42
+ * @group Emits
43
+ */
19
44
  this.beforeTabChanged = new EventEmitter();
45
+ /**
46
+ * Callback to invoke after tab change.
47
+ * @param {TabChangeEvent} any - tab changed.
48
+ * @group Emits
49
+ */
20
50
  this.afterTabChanged = new EventEmitter();
21
51
  this.backBtnVisible = false;
22
52
  this.forwardBtnVisible = false;
@@ -203,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
203
233
  type: ContentChildren,
204
234
  args: [CpsTabComponent]
205
235
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYi1ncm91cC9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLG9CQUFvQixFQUNwQixTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7OztBQThDZCxNQUFNLE9BQU8sb0JBQW9CO0lBd0IvQixrREFBa0Q7SUFDbEQsWUFBb0IsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF0Qm5DLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFL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LEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDdEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDdkMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO2dDQUM5QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3JCLE9BQU8sQ0FBQyxlQUFlLENBQUM7NkJBQ3pCLENBQUM7NEJBQ0YsVUFBVSxDQUFDLG1CQUFtQixFQUFFO2dDQUM5QixPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUMvQyxDQUFDO3lCQUNILENBQUM7cUJBQ0g7d0dBS1EsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRVcsSUFBSTtzQkFBckMsZUFBZTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc1RhYkNvbXBvbmVudCB9IGZyb20gJy4vY3BzLXRhYi9jcHMtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jcHMtdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0Q1NTQ29sb3IgfSBmcm9tICcuLi8uLi91dGlscy9jb2xvcnMtdXRpbHMnO1xuaW1wb3J0IHtcbiAgU3Vic2NyaXB0aW9uLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmcm9tRXZlbnRcbn0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFiQ2hhbmdlRXZlbnQge1xuICBjdXJyZW50VGFiSW5kZXg6IG51bWJlcjtcbiAgbmV3VGFiSW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIENwc1RhYnNBbmltYXRpb25UeXBlID0gJ3NsaWRlJyB8ICdmYWRlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNUYWJDb21wb25lbnQsXG4gICAgQ3BzVG9vbHRpcERpcmVjdGl2ZVxuICBdLFxuICBzZWxlY3RvcjogJ2Nwcy10YWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXG4gICAgICBzdGF0ZSgnc2xpZGVMZWZ0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXG4gICAgICBzdGF0ZSgnc2xpZGVSaWdodCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBzbGlkZUxlZnQnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBzbGlkZVJpZ2h0JywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluJylcbiAgICAgIF0pXG4gICAgXSksXG4gICAgdHJpZ2dlcignZmFkZUluT3V0JywgW1xuICAgICAgc3RhdGUoJ2ZhZGVJbicsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXG4gICAgICBzdGF0ZSgnZmFkZU91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWRlT3V0ID0+IGZhZGVJbicsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKCcxMDBtcyBlYXNlLWluJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignZmFkZUluID0+IGZhZGVPdXQnLCBbXG4gICAgICAgIGFuaW1hdGUoJzBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcbiAgICAgIF0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJHcm91cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXggPSAwO1xuICBASW5wdXQoKSBpc1N1YlRhYnMgPSBmYWxzZTsgLy8gYXBwbGllcyBhbiBhbHRlcm5hdGl2ZSBzdHlsaW5nIHRvIHRhYnNcbiAgQElucHV0KCkgYW5pbWF0aW9uVHlwZTogQ3BzVGFic0FuaW1hdGlvblR5cGUgPSAnc2xpZGUnO1xuICBASW5wdXQoKSB0YWJzQmFja2dyb3VuZCA9ICdpbmhlcml0JztcblxuICBAT3V0cHV0KCkgYmVmb3JlVGFiQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiQ2hhbmdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhZnRlclRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYkNoYW5nZUV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYnNMaXN0JykgdGFic0xpc3QhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdiYWNrQnRuJykgYmFja0J0bj86IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2ZvcndhcmRCdG4nKSBmb3J3YXJkQnRuPzogRWxlbWVudFJlZjtcblxuICBAQ29udGVudENoaWxkcmVuKENwc1RhYkNvbXBvbmVudCkgdGFicyE6IFF1ZXJ5TGlzdDxDcHNUYWJDb21wb25lbnQ+O1xuXG4gIGJhY2tCdG5WaXNpYmxlID0gZmFsc2U7XG4gIGZvcndhcmRCdG5WaXNpYmxlID0gZmFsc2U7XG4gIGFuaW1hdGlvblN0YXRlOiAnc2xpZGVMZWZ0JyB8ICdzbGlkZVJpZ2h0JyB8ICdmYWRlSW4nIHwgJ2ZhZGVPdXQnID0gJ2ZhZGVJbic7XG5cbiAgd2luZG93UmVzaXplJDogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICBsaXN0U2Nyb2xsJDogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFic0JhY2tncm91bmQgPSBnZXRDU1NDb2xvcih0aGlzLnRhYnNCYWNrZ3JvdW5kKTtcblxuICAgIHRoaXMud2luZG93UmVzaXplJCA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblJlc2l6ZSgpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNlbGVjdFRhYih0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpO1xuXG4gICAgdGhpcy5saXN0U2Nyb2xsJCA9IGZyb21FdmVudCh0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHRoaXMub25TY3JvbGwoZXZlbnQpKTtcblxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dSZXNpemUkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubGlzdFNjcm9sbCQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRUYWIoKTogQ3BzVGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmZpbmQoKHQpID0+IHQuYWN0aXZlKTtcbiAgfVxuXG4gIHNlbGVjdFRhYihuZXdTZWxlY3RlZEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBfdGFicyA9IHRoaXMudGFicy50b0FycmF5KCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkVGFiID0gX3RhYnMgJiYgX3RhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcblxuICAgIHRoaXMuYmVmb3JlVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGN1cnJlbnRUYWJJbmRleDogdGhpcy5zZWxlY3RlZEluZGV4LFxuICAgICAgbmV3VGFiSW5kZXg6IG5ld1NlbGVjdGVkSW5kZXhcbiAgICB9KTtcblxuICAgIGN1cnJlbnRTZWxlY3RlZFRhYiAmJiAoY3VycmVudFNlbGVjdGVkVGFiLmFjdGl2ZSA9IGZhbHNlKTtcbiAgICBjb25zdCBuZXdTZWxlY3RlZFRhYiA9IF90YWJzICYmIF90YWJzW25ld1NlbGVjdGVkSW5kZXhdO1xuICAgIG5ld1NlbGVjdGVkVGFiICYmIChuZXdTZWxlY3RlZFRhYi5hY3RpdmUgPSB0cnVlKTtcbiAgICBpZiAobmV3U2VsZWN0ZWRJbmRleCA9PT0gdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uVHlwZSA9PT0gJ3NsaWRlJykge1xuICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9XG4gICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPCB0aGlzLnNlbGVjdGVkSW5kZXggPyAnc2xpZGVMZWZ0JyA6ICdzbGlkZVJpZ2h0JztcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7XG5cbiAgICAgIHRoaXMuYWZ0ZXJUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBjdXJyZW50VGFiSW5kZXg6IG5ld1NlbGVjdGVkSW5kZXhcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbmltYXRpb25UeXBlID09PSAnZmFkZScpIHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZmFkZU91dCc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9ICdmYWRlSW4nO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4O1xuICAgICAgICB0aGlzLmFmdGVyVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICBjdXJyZW50VGFiSW5kZXg6IG5ld1NlbGVjdGVkSW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIG9uU2Nyb2xsKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLl91cGRhdGVOYXZCdG5zU3RhdGUoKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25SZXNpemUoKSB7XG4gICAgdGhpcy5fdXBkYXRlTmF2QnRuc1N0YXRlKCk7XG4gIH1cblxuICBuYXZCYWNrd2FyZCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy50YWJzTGlzdC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5fZ2V0V2lkdGgoY29udGVudCkgLSB0aGlzLl9nZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCk7XG4gICAgY29uc3QgcG9zID0gY29udGVudC5zY3JvbGxMZWZ0IC0gd2lkdGg7XG4gICAgY29udGVudC5zY3JvbGxMZWZ0ID0gcG9zIDw9IDAgPyAwIDogcG9zO1xuICB9XG5cbiAgbmF2Rm9yd2FyZCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy50YWJzTGlzdC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5fZ2V0V2lkdGgoY29udGVudCkgLSB0aGlzLl9nZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCk7XG4gICAgY29uc3QgcG9zID0gY29udGVudC5zY3JvbGxMZWZ0ICsgd2lkdGg7XG4gICAgY29uc3QgbGFzdFBvcyA9IGNvbnRlbnQuc2Nyb2xsV2lkdGggLSB3aWR0aDtcbiAgICBjb250ZW50LnNjcm9sbExlZnQgPSBwb3MgPj0gbGFzdFBvcyA/IGxhc3RQb3MgOiBwb3M7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVOYXZCdG5zU3RhdGUoKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMudGFic0xpc3QubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB7IHNjcm9sbExlZnQsIHNjcm9sbFdpZHRoIH0gPSBjb250ZW50O1xuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KTtcblxuICAgIHRoaXMuYmFja0J0blZpc2libGUgPSBzY3JvbGxMZWZ0ID09PSAwO1xuICAgIHRoaXMuZm9yd2FyZEJ0blZpc2libGUgPSBNYXRoLmFicyhzY3JvbGxMZWZ0IC0gc2Nyb2xsV2lkdGggKyB3aWR0aCkgPCAyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmlzaWJsZUJ1dHRvbldpZHRocygpIHtcbiAgICByZXR1cm4gW3RoaXMuYmFja0J0bj8ubmF0aXZlRWxlbWVudCwgdGhpcy5mb3J3YXJkQnRuPy5uYXRpdmVFbGVtZW50XS5yZWR1Y2UoXG4gICAgICAoYWNjLCBlbCkgPT4gKGVsID8gYWNjICsgdGhpcy5fZ2V0V2lkdGgoZWwpIDogYWNjKSxcbiAgICAgIDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0V2lkdGgoZWw6IGFueSk6IG51bWJlciB7XG4gICAgbGV0IHdpZHRoID0gZWwub2Zmc2V0V2lkdGg7XG4gICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsKTtcblxuICAgIHdpZHRoIC09XG4gICAgICBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdMZWZ0KSArXG4gICAgICBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdSaWdodCkgK1xuICAgICAgcGFyc2VGbG9hdChzdHlsZS5ib3JkZXJMZWZ0V2lkdGgpICtcbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUuYm9yZGVyUmlnaHRXaWR0aCk7XG5cbiAgICByZXR1cm4gd2lkdGg7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjcHMtdGFic1wiXG4gIFtuZ0NsYXNzXT1cInsgJ2Nwcy10YWJzLXN1YnRhYnMnOiBpc1N1YlRhYnMgfVwiXG4gIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiB0YWJzQmFja2dyb3VuZCB9XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm5hdi1idG4gbmF2LWJ0bi1iYWNrXCJcbiAgICAqbmdJZj1cIiFiYWNrQnRuVmlzaWJsZVwiXG4gICAgI2JhY2tCdG5cbiAgICAoY2xpY2spPVwibmF2QmFja3dhcmQoKVwiPlxuICAgIDxjcHMtaWNvbiBpY29uPVwiY2hldnJvbi1kb3duXCIgY29sb3I9XCJ0ZXh0LWRhcmtcIj48L2Nwcy1pY29uPlxuICA8L2Rpdj5cbiAgPHVsICN0YWJzTGlzdCBjbGFzcz1cImNwcy10YWJzLWxpc3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IHRhYkluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cInRhYi50b29sdGlwVGV4dFwiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYlwiXG4gICAgICAgIChjbGljayk9XCIhdGFiLmRpc2FibGVkID8gc2VsZWN0VGFiKHRhYkluZGV4KSA6ICcnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHRhYi5hY3RpdmUsIGRpc2FibGVkOiB0YWIuZGlzYWJsZWQgfVwiXG4gICAgICAgIFtjcHNUb29sdGlwXT1cInRhYi50b29sdGlwVGV4dFwiXG4gICAgICAgIHRvb2x0aXBPcGVuRGVsYXk9XCIxMDAwXCJcbiAgICAgICAgdG9vbHRpcENsb3NlRGVsYXk9XCIwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgW3Rvb2x0aXBNYXhXaWR0aF09XCJ0YWIudG9vbHRpcE1heFdpZHRoXCJcbiAgICAgICAgW3Rvb2x0aXBQZXJzaXN0ZW50XT1cInRhYi50b29sdGlwUGVyc2lzdGVudFwiXG4gICAgICAgIFt0b29sdGlwQ29udGVudENsYXNzXT1cInRhYi50b29sdGlwQ29udGVudENsYXNzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGFiSGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHRhYjogdGFiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0lmPVwiIXRhYi50b29sdGlwVGV4dFwiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYlwiXG4gICAgICAgIChjbGljayk9XCIhdGFiLmRpc2FibGVkID8gc2VsZWN0VGFiKHRhYkluZGV4KSA6ICcnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHRhYi5hY3RpdmUsIGRpc2FibGVkOiB0YWIuZGlzYWJsZWQgfVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRhYkhlYWRlclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICB0YWI6IHRhYlxuICAgICAgICAgICAgfVxuICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbiAgPGRpdlxuICAgIGNsYXNzPVwibmF2LWJ0biBuYXYtYnRuLWZvcndhcmRcIlxuICAgICpuZ0lmPVwiIWZvcndhcmRCdG5WaXNpYmxlXCJcbiAgICAjZm9yd2FyZEJ0blxuICAgIChjbGljayk9XCJuYXZGb3J3YXJkKClcIj5cbiAgICA8Y3BzLWljb24gaWNvbj1cImNoZXZyb24tZG93blwiIGNvbG9yPVwidGV4dC1kYXJrXCI+PC9jcHMtaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJjcHMtdGFiLWNvbnRlbnRcIlxuICBbbmdDbGFzc109XCJ7ICdjcHMtdGFiLWNvbnRlbnQtc3VidGFicyc6IGlzU3ViVGFicyB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCI+XG4gICAgPGRpdlxuICAgICAgW0BzbGlkZUluT3V0XT1cImFuaW1hdGlvblN0YXRlXCJcbiAgICAgICpuZ0lmPVwidGFiLmFjdGl2ZSAmJiBhbmltYXRpb25UeXBlID09PSAnc2xpZGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW0BmYWRlSW5PdXRdPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgICAgKm5nSWY9XCJ0YWIuYWN0aXZlICYmIGFuaW1hdGlvblR5cGUgPT09ICdmYWRlJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RhYkhlYWRlclRlbXBsYXRlIGxldC10YWI9XCJ0YWJcIj5cbiAgPGNwcy1pY29uICpuZ0lmPVwidGFiLmljb25cIiBjbGFzcz1cImNwcy10YWItaWNvblwiIFtpY29uXT1cInRhYi5pY29uXCI+IDwvY3BzLWljb24+XG4gIDxhIGNsYXNzPVwiY3BzLXRhYi1saW5rXCI+e3sgdGFiLmxhYmVsIH19PC9hPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLmJhZGdlVmFsdWVcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInRhYi5iYWRnZVRvb2x0aXBcIlxuICAgICAgY2xhc3M9XCJjcHMtdGFiLWJhZGdlXCJcbiAgICAgIFtjcHNUb29sdGlwXT1cInRhYi5iYWRnZVRvb2x0aXBcIj5cbiAgICAgIDxzcGFuPnt7IHRhYi5iYWRnZVZhbHVlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhdGFiLmJhZGdlVG9vbHRpcFwiIGNsYXNzPVwiY3BzLXRhYi1iYWRnZVwiPlxuICAgICAgPHNwYW4+e3sgdGFiLmJhZGdlVmFsdWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFiLWdyb3VwL2Nwcy10YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYi1ncm91cC9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLG9CQUFvQixFQUNwQixTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7OztBQVNkOzs7R0FHRztBQXNDSCxNQUFNLE9BQU8sb0JBQW9CO0lBc0QvQixrREFBa0Q7SUFDbEQsWUFBb0IsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFwRDVDOzs7V0FHRztRQUNNLGtCQUFhLEdBQUcsQ0FBQyxD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QUM7d0JBQ0YsT0FBTyxDQUFDLFdBQVcsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDdEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDdkMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO2dDQUM5QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3JCLE9BQU8sQ0FBQyxlQUFlLENBQUM7NkJBQ3pCLENBQUM7NEJBQ0YsVUFBVSxDQUFDLG1CQUFtQixFQUFFO2dDQUM5QixPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUMvQyxDQUFDO3lCQUNILENBQUM7cUJBQ0g7d0dBU1EsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFPSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRVcsSUFBSTtzQkFBckMsZUFBZTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc1RhYkNvbXBvbmVudCB9IGZyb20gJy4vY3BzLXRhYi9jcHMtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jcHMtdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0Q1NTQ29sb3IgfSBmcm9tICcuLi8uLi91dGlscy9jb2xvcnMtdXRpbHMnO1xuaW1wb3J0IHtcbiAgU3Vic2NyaXB0aW9uLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmcm9tRXZlbnRcbn0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFiQ2hhbmdlRXZlbnQge1xuICBjdXJyZW50VGFiSW5kZXg6IG51bWJlcjtcbiAgbmV3VGFiSW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIENwc1RhYnNBbmltYXRpb25UeXBlID0gJ3NsaWRlJyB8ICdmYWRlJztcblxuLyoqXG4gKiBDcHNUYWJHcm91cENvbXBvbmVudCBpcyBhIG5hdmlnYXRpb24gY29tcG9uZW50IHRoYXQgZGlzcGxheXMgaXRlbXMgYXMgdGFiIGhlYWRlcnMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDcHNJY29uQ29tcG9uZW50LFxuICAgIENwc1RhYkNvbXBvbmVudCxcbiAgICBDcHNUb29sdGlwRGlyZWN0aXZlXG4gIF0sXG4gIHNlbGVjdG9yOiAnY3BzLXRhYi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtdGFiLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRhYi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcbiAgICAgIHN0YXRlKCdzbGlkZUxlZnQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pKSxcbiAgICAgIHN0YXRlKCdzbGlkZVJpZ2h0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHNsaWRlTGVmdCcsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0xMDAlKScgfSksXG4gICAgICAgIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4nKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHNsaWRlUmlnaHQnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSksXG4gICAgICAgIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4nKVxuICAgICAgXSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXG4gICAgICBzdGF0ZSgnZmFkZUluJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIHN0YXRlKCdmYWRlT3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2ZhZGVPdXQgPT4gZmFkZUluJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzEwMG1zIGVhc2UtaW4nKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWRlSW4gPT4gZmFkZU91dCcsIFtcbiAgICAgICAgYW5pbWF0ZSgnMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENwc1RhYkdyb3VwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEluZGV4IG9mIHRoZSBzZWxlY3RlZCB0YWIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRJbmRleCA9IDA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXBwbHkgYW4gYWx0ZXJuYXRpdmUgJ3N1YnRhYnMnIHN0eWxpbmcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaXNTdWJUYWJzID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiBob3cgY29udGVudCBhcHBlYXJzLCBpdCBjYW4gYmUgXCJzbGlkZVwiIG9yIFwiZmFkZVwiLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGFuaW1hdGlvblR5cGU6IENwc1RhYnNBbmltYXRpb25UeXBlID0gJ3NsaWRlJztcblxuICAvKipcbiAgICogQmFja2dyb3VuZCBzdHlsaW5nIG9mIHRhYnMuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgdGFic0JhY2tncm91bmQgPSAnaW5oZXJpdCc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSBiZWZvcmUgdGFiIGNoYW5nZS5cbiAgICogQHBhcmFtIHtUYWJDaGFuZ2VFdmVudH0gYW55IC0gdGFiIGNoYW5nZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGJlZm9yZVRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYkNoYW5nZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2UgYWZ0ZXIgdGFiIGNoYW5nZS5cbiAgICogQHBhcmFtIHtUYWJDaGFuZ2VFdmVudH0gYW55IC0gdGFiIGNoYW5nZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGFmdGVyVGFiQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGFic0xpc3QnKSB0YWJzTGlzdCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2JhY2tCdG4nKSBiYWNrQnRuPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZm9yd2FyZEJ0bicpIGZvcndhcmRCdG4/OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQ3BzVGFiQ29tcG9uZW50KSB0YWJzITogUXVlcnlMaXN0PENwc1RhYkNvbXBvbmVudD47XG5cbiAgYmFja0J0blZpc2libGUgPSBmYWxzZTtcbiAgZm9yd2FyZEJ0blZpc2libGUgPSBmYWxzZTtcbiAgYW5pbWF0aW9uU3RhdGU6ICdzbGlkZUxlZnQnIHwgJ3NsaWRlUmlnaHQnIHwgJ2ZhZGVJbicgfCAnZmFkZU91dCcgPSAnZmFkZUluJztcblxuICB3aW5kb3dSZXNpemUkOiBTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gIGxpc3RTY3JvbGwkOiBTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzQmFja2dyb3VuZCA9IGdldENTU0NvbG9yKHRoaXMudGFic0JhY2tncm91bmQpO1xuXG4gICAgdGhpcy53aW5kb3dSZXNpemUkID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uUmVzaXplKCkpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fdXBkYXRlTmF2QnRuc1N0YXRlKCk7XG5cbiAgICB0aGlzLmxpc3RTY3JvbGwkID0gZnJvbUV2ZW50KHRoaXMudGFic0xpc3QubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4gdGhpcy5vblNjcm9sbChldmVudCkpO1xuXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1Jlc2l6ZSQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5saXN0U2Nyb2xsJD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFRhYigpOiBDcHNUYWJDb21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRhYnMuZmluZCgodCkgPT4gdC5hY3RpdmUpO1xuICB9XG5cbiAgc2VsZWN0VGFiKG5ld1NlbGVjdGVkSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IF90YWJzID0gdGhpcy50YWJzLnRvQXJyYXkoKTtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0ZWRUYWIgPSBfdGFicyAmJiBfdGFic1t0aGlzLnNlbGVjdGVkSW5kZXhdO1xuXG4gICAgdGhpcy5iZWZvcmVUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgY3VycmVudFRhYkluZGV4OiB0aGlzLnNlbGVjdGVkSW5kZXgsXG4gICAgICBuZXdUYWJJbmRleDogbmV3U2VsZWN0ZWRJbmRleFxuICAgIH0pO1xuXG4gICAgY3VycmVudFNlbGVjdGVkVGFiICYmIChjdXJyZW50U2VsZWN0ZWRUYWIuYWN0aXZlID0gZmFsc2UpO1xuICAgIGNvbnN0IG5ld1NlbGVjdGVkVGFiID0gX3RhYnMgJiYgX3RhYnNbbmV3U2VsZWN0ZWRJbmRleF07XG4gICAgbmV3U2VsZWN0ZWRUYWIgJiYgKG5ld1NlbGVjdGVkVGFiLmFjdGl2ZSA9IHRydWUpO1xuICAgIGlmIChuZXdTZWxlY3RlZEluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbmltYXRpb25UeXBlID09PSAnc2xpZGUnKSB7XG4gICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID1cbiAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA8IHRoaXMuc2VsZWN0ZWRJbmRleCA/ICdzbGlkZUxlZnQnIDogJ3NsaWRlUmlnaHQnO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDtcblxuICAgICAgdGhpcy5hZnRlclRhYkNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGN1cnJlbnRUYWJJbmRleDogbmV3U2VsZWN0ZWRJbmRleFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFuaW1hdGlvblR5cGUgPT09ICdmYWRlJykge1xuICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9ICdmYWRlT3V0JztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gJ2ZhZGVJbic7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7XG4gICAgICAgIHRoaXMuYWZ0ZXJUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgIGN1cnJlbnRUYWJJbmRleDogbmV3U2VsZWN0ZWRJbmRleFxuICAgICAgICB9KTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLl91cGRhdGVOYXZCdG5zU3RhdGUoKTtcbiAgfVxuXG4gIG5hdkJhY2t3YXJkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KSAtIHRoaXMuX2dldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICBjb25zdCBwb3MgPSBjb250ZW50LnNjcm9sbExlZnQgLSB3aWR0aDtcbiAgICBjb250ZW50LnNjcm9sbExlZnQgPSBwb3MgPD0gMCA/IDAgOiBwb3M7XG4gIH1cblxuICBuYXZGb3J3YXJkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRhYnNMaXN0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLl9nZXRXaWR0aChjb250ZW50KSAtIHRoaXMuX2dldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICBjb25zdCBwb3MgPSBjb250ZW50LnNjcm9sbExlZnQgKyB3aWR0aDtcbiAgICBjb25zdCBsYXN0UG9zID0gY29udGVudC5zY3JvbGxXaWR0aCAtIHdpZHRoO1xuICAgIGNvbnRlbnQuc2Nyb2xsTGVmdCA9IHBvcyA+PSBsYXN0UG9zID8gbGFzdFBvcyA6IHBvcztcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU5hdkJ0bnNTdGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy50YWJzTGlzdC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGggfSA9IGNvbnRlbnQ7XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuX2dldFdpZHRoKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5iYWNrQnRuVmlzaWJsZSA9IHNjcm9sbExlZnQgPT09IDA7XG4gICAgdGhpcy5mb3J3YXJkQnRuVmlzaWJsZSA9IE1hdGguYWJzKHNjcm9sbExlZnQgLSBzY3JvbGxXaWR0aCArIHdpZHRoKSA8IDI7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCkge1xuICAgIHJldHVybiBbdGhpcy5iYWNrQnRuPy5uYXRpdmVFbGVtZW50LCB0aGlzLmZvcndhcmRCdG4/Lm5hdGl2ZUVsZW1lbnRdLnJlZHVjZShcbiAgICAgIChhY2MsIGVsKSA9PiAoZWwgPyBhY2MgKyB0aGlzLl9nZXRXaWR0aChlbCkgOiBhY2MpLFxuICAgICAgMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaWR0aChlbDogYW55KTogbnVtYmVyIHtcbiAgICBsZXQgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpO1xuXG4gICAgd2lkdGggLT1cbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ0xlZnQpICtcbiAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ1JpZ2h0KSArXG4gICAgICBwYXJzZUZsb2F0KHN0eWxlLmJvcmRlckxlZnRXaWR0aCkgK1xuICAgICAgcGFyc2VGbG9hdChzdHlsZS5ib3JkZXJSaWdodFdpZHRoKTtcblxuICAgIHJldHVybiB3aWR0aDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNwcy10YWJzXCJcbiAgW25nQ2xhc3NdPVwieyAnY3BzLXRhYnMtc3VidGFicyc6IGlzU3ViVGFicyB9XCJcbiAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRhYnNCYWNrZ3JvdW5kIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibmF2LWJ0biBuYXYtYnRuLWJhY2tcIlxuICAgICpuZ0lmPVwiIWJhY2tCdG5WaXNpYmxlXCJcbiAgICAjYmFja0J0blxuICAgIChjbGljayk9XCJuYXZCYWNrd2FyZCgpXCI+XG4gICAgPGNwcy1pY29uIGljb249XCJjaGV2cm9uLWRvd25cIiBjb2xvcj1cInRleHQtZGFya1wiPjwvY3BzLWljb24+XG4gIDwvZGl2PlxuICA8dWwgI3RhYnNMaXN0IGNsYXNzPVwiY3BzLXRhYnMtbGlzdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgdGFiSW5kZXggPSBpbmRleFwiPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0lmPVwidGFiLnRvb2x0aXBUZXh0XCJcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFiXCJcbiAgICAgICAgKGNsaWNrKT1cIiF0YWIuZGlzYWJsZWQgPyBzZWxlY3RUYWIodGFiSW5kZXgpIDogJydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmFjdGl2ZSwgZGlzYWJsZWQ6IHRhYi5kaXNhYmxlZCB9XCJcbiAgICAgICAgW2Nwc1Rvb2x0aXBdPVwidGFiLnRvb2x0aXBUZXh0XCJcbiAgICAgICAgdG9vbHRpcE9wZW5EZWxheT1cIjEwMDBcIlxuICAgICAgICB0b29sdGlwQ2xvc2VEZWxheT1cIjBcIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICBbdG9vbHRpcE1heFdpZHRoXT1cInRhYi50b29sdGlwTWF4V2lkdGhcIlxuICAgICAgICBbdG9vbHRpcFBlcnNpc3RlbnRdPVwidGFiLnRvb2x0aXBQZXJzaXN0ZW50XCJcbiAgICAgICAgW3Rvb2x0aXBDb250ZW50Q2xhc3NdPVwidGFiLnRvb2x0aXBDb250ZW50Q2xhc3NcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICB0YWJIZWFkZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgdGFiOiB0YWJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGlcbiAgICAgICAgKm5nSWY9XCIhdGFiLnRvb2x0aXBUZXh0XCJcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFiXCJcbiAgICAgICAgKGNsaWNrKT1cIiF0YWIuZGlzYWJsZWQgPyBzZWxlY3RUYWIodGFiSW5kZXgpIDogJydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmFjdGl2ZSwgZGlzYWJsZWQ6IHRhYi5kaXNhYmxlZCB9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGFiSGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHRhYjogdGFiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJuYXYtYnRuIG5hdi1idG4tZm9yd2FyZFwiXG4gICAgKm5nSWY9XCIhZm9yd2FyZEJ0blZpc2libGVcIlxuICAgICNmb3J3YXJkQnRuXG4gICAgKGNsaWNrKT1cIm5hdkZvcndhcmQoKVwiPlxuICAgIDxjcHMtaWNvbiBpY29uPVwiY2hldnJvbi1kb3duXCIgY29sb3I9XCJ0ZXh0LWRhcmtcIj48L2Nwcy1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cImNwcy10YWItY29udGVudFwiXG4gIFtuZ0NsYXNzXT1cInsgJ2Nwcy10YWItY29udGVudC1zdWJ0YWJzJzogaXNTdWJUYWJzIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICA8ZGl2XG4gICAgICBbQHNsaWRlSW5PdXRdPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgICAgKm5nSWY9XCJ0YWIuYWN0aXZlICYmIGFuaW1hdGlvblR5cGUgPT09ICdzbGlkZSdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbQGZhZGVJbk91dF09XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgICAqbmdJZj1cInRhYi5hY3RpdmUgJiYgYW5pbWF0aW9uVHlwZSA9PT0gJ2ZhZGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGFiSGVhZGVyVGVtcGxhdGUgbGV0LXRhYj1cInRhYlwiPlxuICA8Y3BzLWljb24gKm5nSWY9XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3BzLXRhYi1pY29uXCIgW2ljb25dPVwidGFiLmljb25cIj4gPC9jcHMtaWNvbj5cbiAgPGEgY2xhc3M9XCJjcHMtdGFiLWxpbmtcIj57eyB0YWIubGFiZWwgfX08L2E+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuYmFkZ2VWYWx1ZVwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwidGFiLmJhZGdlVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImNwcy10YWItYmFkZ2VcIlxuICAgICAgW2Nwc1Rvb2x0aXBdPVwidGFiLmJhZGdlVG9vbHRpcFwiPlxuICAgICAgPHNwYW4+e3sgdGFiLmJhZGdlVmFsdWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiF0YWIuYmFkZ2VUb29sdGlwXCIgY2xhc3M9XCJjcHMtdGFiLWJhZGdlXCI+XG4gICAgICA8c3Bhbj57eyB0YWIuYmFkZ2VWYWx1ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -14,6 +14,10 @@ import * as i1 from "primeng/table";
14
14
  import * as i2 from "primeng/treetable";
15
15
  import * as i3 from "@angular/common";
16
16
  import * as i4 from "@angular/forms";
17
+ /**
18
+ * TableColumnFilterComponent is an internal filter component in table and treetable.
19
+ * @group Components
20
+ */
17
21
  export class TableColumnFilterComponent {
18
22
  get isCategoryDropdownOpened() {
19
23
  if (this.type !== 'category')
@@ -24,20 +28,80 @@ export class TableColumnFilterComponent {
24
28
  this.elementRef = elementRef;
25
29
  this.dt = dt;
26
30
  this.tt = tt;
31
+ /**
32
+ * Type of filter in table, it can be of type "number", "boolean", "text", "date" or "category".
33
+ * @group Props
34
+ */
27
35
  this.type = 'text';
36
+ /**
37
+ * Whether the filter menu should be persistent.
38
+ * @group Props
39
+ */
28
40
  this.persistent = false;
41
+ /**
42
+ * Whether the filter should have clear button.
43
+ * @group Props
44
+ */
29
45
  this.showClearButton = true;
46
+ /**
47
+ * Whether the filter should have apply button.
48
+ * @group Props
49
+ */
30
50
  this.showApplyButton = true;
51
+ /**
52
+ * Whether the filter should have close button.
53
+ * @group Props
54
+ */
31
55
  this.showCloseButton = false;
56
+ /**
57
+ * Whether the filter should have match modes.
58
+ * @group Props
59
+ */
32
60
  this.showMatchModes = true;
61
+ /**
62
+ * Match modes for filter.
63
+ * @group Props
64
+ */
33
65
  this.matchModes = [];
66
+ /**
67
+ * Whether the filter should have operator.
68
+ * @group Props
69
+ */
34
70
  this.showOperator = true;
71
+ /**
72
+ * Maximum number of constraints.
73
+ * @group Props
74
+ */
35
75
  this.maxConstraints = 2;
76
+ /**
77
+ * Title of the filter.
78
+ * @group Props
79
+ */
36
80
  this.headerTitle = '';
81
+ /**
82
+ * Whether the filter should hide on clear.
83
+ * @group Props
84
+ */
37
85
  this.hideOnClear = false;
86
+ /**
87
+ * Options for category filter.
88
+ * @group Props
89
+ */
38
90
  this.categoryOptions = [];
39
- this.asButtonToggle = false; // for category type only
40
- this.singleSelection = false; // for category type only
91
+ /**
92
+ * Whether to show category filter as button toggles.
93
+ * @group Props
94
+ */
95
+ this.asButtonToggle = false;
96
+ /**
97
+ * Single selection for category filter.
98
+ * @group Props
99
+ */
100
+ this.singleSelection = false;
101
+ /**
102
+ * Placeholder for filter constraints.
103
+ * @group Props
104
+ */
41
105
  this.placeholder = '';
42
106
  this.operator = FilterOperator.AND;
43
107
  this.operatorOptions = [
@@ -341,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
341
405
  type: HostListener,
342
406
  args: ['mouseleave']
343
407
  }] } });
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvY29tcG9uZW50cy9pbnRlcm5hbC90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBa0IsY0FBYyxFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUVMLHdCQUF3QixFQUV6QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pG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QWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMscUJBQXFCO2dCQXVEbkMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCO2dCQWlPN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQkwsV0FBVztzQkFBdEMsWUFBWTt1QkFBQyxZQUFZO2dCQUlFLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsdGVyTWV0YWRhdGEsIEZpbHRlck9wZXJhdG9yLCBTZWxlY3RJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRyZWVUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXRhYmxlJztcbmltcG9ydCB7XG4gIENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uLFxuICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUsXG4gIENwc0NvbHVtbkZpbHRlclR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vY3BzLWNvbHVtbi1maWx0ZXItdHlwZXMnO1xuaW1wb3J0IHsgQ3BzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLWJ1dHRvbi9jcHMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLXNlbGVjdC9jcHMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhYmxlLWNvbHVtbi1maWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENwc0J1dHRvbkNvbXBvbmVudCxcbiAgICBDcHNNZW51Q29tcG9uZW50LFxuICAgIENwc0ljb25Db21wb25lbnQsXG4gICAgQ3BzU2VsZWN0Q29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uRmlsdGVyQ29uc3RyYWludENvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdHlwZTogQ3BzQ29sdW1uRmlsdGVyVHlwZSA9ICd0ZXh0JztcbiAgQElucHV0KCkgcGVyc2lzdGVudCA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93Q2xlYXJCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93QXBwbHlCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd01hdGNoTW9kZXMgPSB0cnVlO1xuICBASW5wdXQoKSBtYXRjaE1vZGVzOiBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGVbXSA9IFtdO1xuICBASW5wdXQoKSBzaG93T3BlcmF0b3IgPSB0cnVlO1xuICBASW5wdXQoKSBtYXhDb25zdHJhaW50cyA9IDI7XG4gIEBJbnB1dCgpIGhlYWRlclRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGhpZGVPbkNsZWFyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhdGVnb3J5T3B0aW9uczogQ3BzQ29sdW1uRmlsdGVyQ2F0ZWdvcnlPcHRpb25bXSB8IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KCkgYXNCdXR0b25Ub2dnbGUgPSBmYWxzZTsgLy8gZm9yIGNhdGVnb3J5IHR5cGUgb25seVxuICBASW5wdXQoKSBzaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTsgLy8gZm9yIGNhdGVnb3J5IHR5cGUgb25seVxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbnN0cmFpbnRDb21wb25lbnQnKVxuICBjb25zdHJhaW50Q29tcExpc3QhOiBRdWVyeUxpc3Q8VGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50PjtcblxuICBvcGVyYXRvcjogc3RyaW5nID0gRmlsdGVyT3BlcmF0b3IuQU5EO1xuXG4gIG9wZXJhdG9yT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiAnTWF0Y2ggQWxsJywgdmFsdWU6IEZpbHRlck9wZXJhdG9yLkFORCwgaW5mbzogJ0FORCcgfSxcbiAgICB7IGxhYmVsOiAnTWF0Y2ggQW55JywgdmFsdWU6IEZpbHRlck9wZXJhdG9yLk9SLCBpbmZvOiAnT1InIH1cbiAgXTtcblxuICBwcml2YXRlIG1hdGNoTW9kZUxhYmVscyA9IHtcbiAgICBzdGFydHNXaXRoOiAnU3RhcnRzIHdpdGgnLFxuICAgIGNvbnRhaW5zOiAnQ29udGFpbnMnLFxuICAgIG5vdENvbnRhaW5zOiAnRG9lcyBub3QgY29udGFpbicsXG4gICAgZW5kc1dpdGg6ICdFbmRzIHdpdGgnLFxuICAgIGVxdWFsczogJ0VxdWFscycsXG4gICAgbm90RXF1YWxzOiAnRG9lcyBub3QgZXF1YWwnLFxuICAgIGx0OiAnTGVzcyB0aGFuJyxcbiAgICBsdGU6ICdMZXNzIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgIGd0OiAnR3JlYXRlciB0aGFuJyxcbiAgICBndGU6ICdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgIGRhdGVJczogJ0RhdGUgaXMnLFxuICAgIGRhdGVJc05vdDogJ0RhdGUgaXMgbm90JyxcbiAgICBkYXRlQmVmb3JlOiAnRGF0ZSBpcyBiZWZvcmUnLFxuICAgIGRhdGVBZnRlcjogJ0RhdGUgaXMgYWZ0ZXInXG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBwcml2YXRlIGZpbHRlck1hdGNoTW9kZU9wdGlvbnMgPSB7XG4gICAgdGV4dDogW1xuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLlNUQVJUU19XSVRILFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLk5PVF9DT05UQUlOUyxcbiAgICAgIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5FTkRTX1dJVEgsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuRVFVQUxTLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFNcbiAgICBdLFxuICAgIG51bWJlcjogW1xuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUyxcbiAgICAgIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5OT1RfRVFVQUxTLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkxFU1NfVEhBTixcbiAgICAgIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuR1JFQVRFUl9USEFOLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT1xuICAgIF0sXG4gICAgZGF0ZTogW1xuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuREFURV9JU19OT1QsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuREFURV9CRUZPUkUsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuREFURV9BRlRFUlxuICAgIF1cbiAgfSBhcyB7IFtrZXk6IHN0cmluZ106IENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZVtdIH07XG5cbiAgY3VycmVudE1hdGNoTW9kZXM6IFNlbGVjdEl0ZW1bXSB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjb2x1bW5GaWx0ZXJNZW51JylcbiAgY29sdW1uRmlsdGVyTWVudSE6IENwc01lbnVDb21wb25lbnQ7XG5cbiAgX3RhYmxlSW5zdGFuY2U6IFRhYmxlIHwgVHJlZVRhYmxlO1xuXG4gIGlzRmlsdGVyQXBwbGllZCA9IGZhbHNlO1xuXG4gIGdldCBpc0NhdGVnb3J5RHJvcGRvd25PcGVuZWQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2NhdGVnb3J5JykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnRDb21wTGlzdD8uZmlyc3Q/LmlzQ2F0ZWdvcnlEcm9wZG93bk9wZW5lZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkdDogVGFibGUsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHR0OiBUcmVlVGFibGVcbiAgKSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZSA9IGR0IHx8IHR0O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubWF0Y2hNb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZpbHRlck1hdGNoTW9kZU9wdGlvbnNbdGhpcy50eXBlXSA9IHRoaXMubWF0Y2hNb2RlcztcbiAgICB9XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZT8ub25GaWx0ZXI/LnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICB0aGlzLl91cGRhdGVGaWx0ZXJBcHBsaWVkKHZhbHVlKVxuICAgICk7XG4gICAgaWYgKCF0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkge1xuICAgICAgdGhpcy5faW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heENvbnN0cmFpbnRzID4gMSAmJiB0aGlzLnR5cGUgIT09ICdjYXRlZ29yeScpIHtcbiAgICAgIHRoaXMuc2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuc2hvd0FwcGx5QnV0dG9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50TWF0Y2hNb2RlcyA9IHRoaXMuZmlsdGVyTWF0Y2hNb2RlT3B0aW9uc1t0aGlzLnR5cGVdPy5tYXAoXG4gICAgICAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHRoaXMubWF0Y2hNb2RlTGFiZWxzW2tleV0sIHZhbHVlOiBrZXkgfTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRmlsdGVyQXBwbGllZCh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgZmllbGRGaWx0ZXIgPSB2YWx1ZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF07XG4gICAgaWYgKGZpZWxkRmlsdGVyKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZEZpbHRlcikpIHtcbiAgICAgICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSAoPEZpbHRlck1ldGFkYXRhW10+ZmllbGRGaWx0ZXIpLnNvbWUoXG4gICAgICAgICAgKG1ldGEpID0+ICF0aGlzLl90YWJsZUluc3RhbmNlLmlzRmlsdGVyQmxhbmsobWV0YS52YWx1ZSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gIXRoaXMuX3RhYmxlSW5zdGFuY2UuaXNGaWx0ZXJCbGFuayhcbiAgICAgICAgICBmaWVsZEZpbHRlci52YWx1ZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGaWVsZEZpbHRlckNvbnN0cmFpbnQoKSB7XG4gICAgY29uc3QgZGVmYXVsdE1hdGNoTW9kZSA9IHRoaXMuZ2V0RGVmYXVsdE1hdGNoTW9kZSgpO1xuICAgIGlmICh0aGlzLl90YWJsZUluc3RhbmNlIGluc3RhbmNlb2YgVGFibGUpIHtcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlLFxuICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLm9wZXJhdG9yXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0ge1xuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIG9uTWVudU1hdGNoTW9kZUNoYW5nZSh2YWx1ZTogYW55LCBmaWx0ZXJNZXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgIGZpbHRlck1ldGEubWF0Y2hNb2RlID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuc2hvd0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBhZGRDb25zdHJhaW50KCkge1xuICAgICg8RmlsdGVyTWV0YWRhdGFbXT50aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkucHVzaCh7XG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIG1hdGNoTW9kZTogdGhpcy5nZXREZWZhdWx0TWF0Y2hNb2RlKCksXG4gICAgICBvcGVyYXRvcjogdGhpcy5nZXREZWZhdWx0T3BlcmF0b3IoKVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlQ29uc3RyYWludChmaWx0ZXJNZXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0gKDxGaWx0ZXJNZXRhZGF0YVtdPihcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdXG4gICAgKSkuZmlsdGVyKChtZXRhKSA9PiBtZXRhICE9PSBmaWx0ZXJNZXRhKTtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgfVxuXG4gIG9uT3BlcmF0b3JDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICg8RmlsdGVyTWV0YWRhdGFbXT50aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkuZm9yRWFjaChcbiAgICAgIChmaWx0ZXJNZXRhKSA9PiB7XG4gICAgICAgIGZpbHRlck1ldGEub3BlcmF0b3IgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVyYXRvciA9IHZhbHVlO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMuc2hvd0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBnZXREZWZhdWx0TWF0Y2hNb2RlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZ2V0TWF0Y2hNb2RlID0gKHZhbDogQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlKSA9PiB7XG4gICAgICBpZiAodGhpcy50eXBlIGluIHRoaXMuZmlsdGVyTWF0Y2hNb2RlT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJNYXRjaE1vZGVPcHRpb25zW3RoaXMudHlwZV0uaW5jbHVkZXModmFsKVxuICAgICAgICAgID8gdmFsXG4gICAgICAgICAgOiB0aGlzLmZpbHRlck1hdGNoTW9kZU9wdGlvbnNbdGhpcy50eXBlXVswXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIGdldE1hdGNoTW9kZShDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEgpO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIGdldE1hdGNoTW9kZShDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuRVFVQUxTKTtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICByZXR1cm4gZ2V0TWF0Y2hNb2RlKENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5EQVRFX0lTKTtcbiAgICAgIGNhc2UgJ2NhdGVnb3J5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2luZ2xlU2VsZWN0aW9uXG4gICAgICAgICAgPyBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuSVNcbiAgICAgICAgICA6IENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5JTjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBnZXRNYXRjaE1vZGUoQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TKTtcbiAgICB9XG4gIH1cblxuICBnZXREZWZhdWx0T3BlcmF0b3IoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzXG4gICAgICA/ICg8RmlsdGVyTWV0YWRhdGFbXT4oXG4gICAgICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+KDxzdHJpbmc+dGhpcy5maWVsZCldXG4gICAgICAgICkpWzBdLm9wZXJhdG9yXG4gICAgICA6IHRoaXMub3BlcmF0b3I7XG4gIH1cblxuICBnZXQgZmllbGRDb25zdHJhaW50cygpOiBGaWx0ZXJNZXRhZGF0YVtdIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuX3RhYmxlSW5zdGFuY2UgaW5zdGFuY2VvZiBUYWJsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1xuICAgICAgICA/IDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdXG4gICAgICAgIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1xuICAgICAgICA/IDxGaWx0ZXJNZXRhZGF0YVtdPlt0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXV1cbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93UmVtb3ZlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZENvbnN0cmFpbnRzID8gdGhpcy5maWVsZENvbnN0cmFpbnRzLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc1Nob3dPcGVyYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zaG93T3BlcmF0b3IgJiZcbiAgICAgIHRoaXMubWF4Q29uc3RyYWludHMgPiAxICYmXG4gICAgICAhWydib29sZWFuJywgJ2NhdGVnb3J5J10uaW5jbHVkZXModGhpcy50eXBlKVxuICAgICk7XG4gIH1cblxuICBnZXQgaXNTaG93QWRkQ29uc3RyYWludCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgICFbJ2Jvb2xlYW4nLCAnY2F0ZWdvcnknXS5pbmNsdWRlcyh0aGlzLnR5cGUpICYmXG4gICAgICB0aGlzLmZpZWxkQ29uc3RyYWludHMgJiZcbiAgICAgIHRoaXMuZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCB0aGlzLm1heENvbnN0cmFpbnRzXG4gICAgKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJNZW51LmhpZGUoKTtcbiAgfVxuXG4gIGNsZWFyRmlsdGVyKCkge1xuICAgIHRoaXMuX2luaXRGaWVsZEZpbHRlckNvbnN0cmFpbnQoKTtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICBpZiAodGhpcy5oaWRlT25DbGVhcikgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBjbGVhckZpbHRlclZhbHVlcygpIHtcbiAgICB0aGlzLl9pbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCk7XG4gICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyKCkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgb25NZW51U2hvd24oKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9ICdjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LW9wZW4nO1xuICAgIHBhcmVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gIH1cblxuICBvbkJlZm9yZU1lbnVIaWRkZW4oKSB7XG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyQXBwbGllZCkgdGhpcy5faW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICB9XG5cbiAgb25NZW51SGlkZGVuKCkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBjbGFzc05hbWUgPSAnY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1vcGVuJztcbiAgICBwYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNvcnRJY29uQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIGNvbnN0IHVuc29ydGVkVXAgPVxuICAgICAgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNvcnQtdW5zb3J0ZWQtYXJyb3ctdXAnXG4gICAgICApO1xuICAgIGlmICh1bnNvcnRlZFVwKSB7XG4gICAgICB1bnNvcnRlZFVwLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gY29sb3I7XG4gICAgfVxuICAgIGNvbnN0IHVuc29ydGVkRG93biA9XG4gICAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc29ydC11bnNvcnRlZC1hcnJvdy1kb3duJ1xuICAgICAgKTtcbiAgICBpZiAodW5zb3J0ZWREb3duKSB7XG4gICAgICB1bnNvcnRlZERvd24uc3R5bGUuYm9yZGVyVG9wQ29sb3IgPSBjb2xvcjtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZU92ZXIoKSB7XG4gICAgdGhpcy5fdXBkYXRlU29ydEljb25Db2xvcigndmFyKC0tY3BzLWNvbG9yLWxpbmUtZGFyayknKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBvbk1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5fdXBkYXRlU29ydEljb25Db2xvcignJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlPy5vbkZpbHRlcj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyXCI+XG4gIDxjcHMtbWVudVxuICAgICNjb2x1bW5GaWx0ZXJNZW51XG4gICAgW3dpdGhBcnJvd109XCJmYWxzZVwiXG4gICAgaGlkZVRyYW5zaXRpb25PcHRpb25zPVwiMHMgbGluZWFyXCJcbiAgICBbcGVyc2lzdGVudF09XCJwZXJzaXN0ZW50IHx8IChzaG93QXBwbHlCdXR0b24gJiYgaXNDYXRlZ29yeURyb3Bkb3duT3BlbmVkKVwiXG4gICAgKG1lbnVTaG93bik9XCJvbk1lbnVTaG93bigpXCJcbiAgICAobWVudUhpZGRlbik9XCJvbk1lbnVIaWRkZW4oKVwiXG4gICAgKGJlZm9yZU1lbnVIaWRkZW4pPVwib25CZWZvcmVNZW51SGlkZGVuKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LWhlYWRlclwiXG4gICAgICAgICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uIHx8IGhlYWRlclRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LWhlYWRlci10aXRsZVwiPlxuICAgICAgICAgIHt7IGhlYWRlclRpdGxlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIlxuICAgICAgICAgIGljb249XCJjbG9zZS14XCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIj48L2Nwcy1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LW9wZXJhdG9yXCJcbiAgICAgICAgKm5nSWY9XCJpc1Nob3dPcGVyYXRvclwiPlxuICAgICAgICA8Y3BzLXNlbGVjdFxuICAgICAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZpZWxkQ29uc3RyYWludHMgfHwgZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCAyXCJcbiAgICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJvcGVyYXRvck9wdGlvbnNcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIm9wZXJhdG9yXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiPjwvY3BzLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50c1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uc3RyYWludCBvZiBmaWVsZENvbnN0cmFpbnRzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50XCI+XG4gICAgICAgICAgPGNwcy1zZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd01hdGNoTW9kZXMgJiYgY3VycmVudE1hdGNoTW9kZXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1tYXRjaC1tb2RlLXNlbGVjdFwiXG4gICAgICAgICAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImN1cnJlbnRNYXRjaE1vZGVzXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZpZWxkQ29uc3RyYWludC5tYXRjaE1vZGVcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJcbiAgICAgICAgICAgICAgb25NZW51TWF0Y2hNb2RlQ2hhbmdlKCRldmVudCwgZmllbGRDb25zdHJhaW50KVxuICAgICAgICAgICAgXCI+PC9jcHMtc2VsZWN0PlxuICAgICAgICAgIDx0YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnRcbiAgICAgICAgICAgICNjb25zdHJhaW50Q29tcG9uZW50XG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICBbYXNCdXR0b25Ub2dnbGVdPVwiYXNCdXR0b25Ub2dnbGVcIlxuICAgICAgICAgICAgW3NpbmdsZVNlbGVjdGlvbl09XCJzaW5nbGVTZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2NhdGVnb3J5T3B0aW9uc109XCJjYXRlZ29yeU9wdGlvbnNcIlxuICAgICAgICAgICAgW2ZpbHRlckNvbnN0cmFpbnRdPVwiZmllbGRDb25zdHJhaW50XCJcbiAgICAgICAgICAgIFtoYXNBcHBseUJ1dHRvbl09XCJzaG93QXBwbHlCdXR0b25cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgPC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1yZW1vdmUtcnVsZS1idG5cIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93UmVtb3ZlSWNvblwiPlxuICAgICAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cInJlbW92ZUNvbnN0cmFpbnQoZmllbGRDb25zdHJhaW50KVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlIGNvbmRpdGlvblwiPlxuICAgICAgICAgICAgPC9jcHMtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWFkZC1ydWxlLWJ0blwiXG4gICAgICAgICpuZ0lmPVwiaXNTaG93QWRkQ29uc3RyYWludFwiPlxuICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgIGxhYmVsPVwiQWRkIGNvbmRpdGlvblwiXG4gICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBjb2xvcj1cInN1cnByaXNlXCJcbiAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJhZGRDb25zdHJhaW50KClcIj5cbiAgICAgICAgPC9jcHMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItYnV0dG9uYmFyXCI+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2xlYXJCdXR0b25cIlxuICAgICAgICAgIChjbGlja2VkKT1cImNsZWFyRmlsdGVyKClcIlxuICAgICAgICAgIHR5cGU9XCJib3JkZXJsZXNzXCJcbiAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIGxhYmVsPVwiQ2xlYXJcIj48L2Nwcy1idXR0b24+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93QXBwbHlCdXR0b25cIlxuICAgICAgICAgIChjbGlja2VkKT1cImFwcGx5RmlsdGVyKClcIlxuICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgbGFiZWw9XCJBcHBseVwiPjwvY3BzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Nwcy1tZW51PlxuICA8Y3BzLWljb25cbiAgICBbaWNvbl09XCJpc0ZpbHRlckFwcGxpZWQgPyAnZmlsdGVyLWZ1bm5lbC1maWxsZWQnIDogJ2ZpbHRlci1mdW5uZWwnXCJcbiAgICBzaXplPVwiMTNcIlxuICAgIChjbGljayk9XCJjb2x1bW5GaWx0ZXJNZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtYnV0dG9uXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1idXR0b24tYWN0aXZlJzogaXNGaWx0ZXJBcHBsaWVkXG4gICAgfVwiXG4gICAgPj5cbiAgPC9jcHMtaWNvbj5cbjwvZGl2PlxuIl19
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvY29tcG9uZW50cy9pbnRlcm5hbC90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBa0IsY0FBYyxFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUVMLHdCQUF3QixFQUV6QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pG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Q1osV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG9DQUFvQztxQkFDckM7OzBCQXlLRSxRQUFROzswQkFDUixRQUFROzRDQWpLRixLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxlQUFlO3NCQUF2QixLQUFLO2dCQU1HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTUcsV0FBVztzQkFBbkIsS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMscUJBQXFCO2dCQXVEbkMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCO2dCQWlPN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQkwsV0FBVztzQkFBdEMsWUFBWTt1QkFBQyxZQUFZO2dCQUlFLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsdGVyTWV0YWRhdGEsIEZpbHRlck9wZXJhdG9yLCBTZWxlY3RJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRyZWVUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXRhYmxlJztcbmltcG9ydCB7XG4gIENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uLFxuICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUsXG4gIENwc0NvbHVtbkZpbHRlclR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vY3BzLWNvbHVtbi1maWx0ZXItdHlwZXMnO1xuaW1wb3J0IHsgQ3BzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLWJ1dHRvbi9jcHMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLXNlbGVjdC9jcHMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQgaXMgYW4gaW50ZXJuYWwgZmlsdGVyIGNvbXBvbmVudCBpbiB0YWJsZSBhbmQgdHJlZXRhYmxlLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtY29sdW1uLWZpbHRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ3BzQnV0dG9uQ29tcG9uZW50LFxuICAgIENwc01lbnVDb21wb25lbnQsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNTZWxlY3RDb21wb25lbnQsXG4gICAgVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY29sdW1uIHRvIGJlIGZpbHRlcmVkLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgZmlsdGVyIGluIHRhYmxlLCBpdCBjYW4gYmUgb2YgdHlwZSBcIm51bWJlclwiLCBcImJvb2xlYW5cIiwgXCJ0ZXh0XCIsIFwiZGF0ZVwiIG9yIFwiY2F0ZWdvcnlcIi5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSB0eXBlOiBDcHNDb2x1bW5GaWx0ZXJUeXBlID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWx0ZXIgbWVudSBzaG91bGQgYmUgcGVyc2lzdGVudC5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBwZXJzaXN0ZW50ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpbHRlciBzaG91bGQgaGF2ZSBjbGVhciBidXR0b24uXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0NsZWFyQnV0dG9uID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlsdGVyIHNob3VsZCBoYXZlIGFwcGx5IGJ1dHRvbi5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzaG93QXBwbHlCdXR0b24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWx0ZXIgc2hvdWxkIGhhdmUgY2xvc2UgYnV0dG9uLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHNob3dDbG9zZUJ1dHRvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWx0ZXIgc2hvdWxkIGhhdmUgbWF0Y2ggbW9kZXMuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd01hdGNoTW9kZXMgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBNYXRjaCBtb2RlcyBmb3IgZmlsdGVyLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIG1hdGNoTW9kZXM6IENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZVtdID0gW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpbHRlciBzaG91bGQgaGF2ZSBvcGVyYXRvci5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzaG93T3BlcmF0b3IgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBjb25zdHJhaW50cy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBtYXhDb25zdHJhaW50cyA9IDI7XG5cbiAgLyoqXG4gICAqIFRpdGxlIG9mIHRoZSBmaWx0ZXIuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaGVhZGVyVGl0bGUgPSAnJztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlsdGVyIHNob3VsZCBoaWRlIG9uIGNsZWFyLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGhpZGVPbkNsZWFyID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGNhdGVnb3J5IGZpbHRlci5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBjYXRlZ29yeU9wdGlvbnM6IENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uW10gfCBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgY2F0ZWdvcnkgZmlsdGVyIGFzIGJ1dHRvbiB0b2dnbGVzLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGFzQnV0dG9uVG9nZ2xlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNpbmdsZSBzZWxlY3Rpb24gZm9yIGNhdGVnb3J5IGZpbHRlci5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAvKipcbiAgICogUGxhY2Vob2xkZXIgZm9yIGZpbHRlciBjb25zdHJhaW50cy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbnN0cmFpbnRDb21wb25lbnQnKVxuICBjb25zdHJhaW50Q29tcExpc3QhOiBRdWVyeUxpc3Q8VGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50PjtcblxuICBvcGVyYXRvcjogc3RyaW5nID0gRmlsdGVyT3BlcmF0b3IuQU5EO1xuXG4gIG9wZXJhdG9yT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiAnTWF0Y2ggQWxsJywgdmFsdWU6IEZpbHRlck9wZXJhdG9yLkFORCwgaW5mbzogJ0FORCcgfSxcbiAgICB7IGxhYmVsOiAnTWF0Y2ggQW55JywgdmFsdWU6IEZpbHRlck9wZXJhdG9yLk9SLCBpbmZvOiAnT1InIH1cbiAgXTtcblxuICBwcml2YXRlIG1hdGNoTW9kZUxhYmVscyA9IHtcbiAgICBzdGFydHNXaXRoOiAnU3RhcnRzIHdpdGgnLFxuICAgIGNvbnRhaW5zOiAnQ29udGFpbnMnLFxuICAgIG5vdENvbnRhaW5zOiAnRG9lcyBub3QgY29udGFpbicsXG4gICAgZW5kc1dpdGg6ICdFbmRzIHdpdGgnLFxuICAgIGVxdWFsczogJ0VxdWFscycsXG4gICAgbm90RXF1YWxzOiAnRG9lcyBub3QgZXF1YWwnLFxuICAgIGx0OiAnTGVzcyB0aGFuJyxcbiAgICBsdGU6ICdMZXNzIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgIGd0OiAnR3JlYXRlciB0aGFuJyxcbiAgICBndGU6ICdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgIGRhdGVJczogJ0RhdGUgaXMnLFxuICAgIGRhdGVJc05vdDogJ0RhdGUgaXMgbm90JyxcbiAgICBkYXRlQmVmb3JlOiAnRGF0ZSBpcyBiZWZvcmUnLFxuICAgIGRhdGVBZnRlcjogJ0RhdGUgaXMgYWZ0ZXInXG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBwcml2YXRlIGZpbHRlck1hdGNoTW9kZU9wdGlvbnMgPSB7XG4gICAgdGV4dDogW1xuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLlNUQVJUU19XSVRILFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLk5PVF9DT05UQUlOUyxcbiAgICAgIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5FTkRTX1dJVEgsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuRVFVQUxTLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFNcbiAgICBdLFxuICAgIG51bWJlcjogW1xuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUyxcbiAgICAgIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5OT1RfRVFVQUxTLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkxFU1NfVEhBTixcbiAgICAgIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuR1JFQVRFUl9USEFOLFxuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT1xuICAgIF0sXG4gICAgZGF0ZTogW1xuICAgICAgQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuREFURV9JU19OT1QsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuREFURV9CRUZPUkUsXG4gICAgICBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuREFURV9BRlRFUlxuICAgIF1cbiAgfSBhcyB7IFtrZXk6IHN0cmluZ106IENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZVtdIH07XG5cbiAgY3VycmVudE1hdGNoTW9kZXM6IFNlbGVjdEl0ZW1bXSB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjb2x1bW5GaWx0ZXJNZW51JylcbiAgY29sdW1uRmlsdGVyTWVudSE6IENwc01lbnVDb21wb25lbnQ7XG5cbiAgX3RhYmxlSW5zdGFuY2U6IFRhYmxlIHwgVHJlZVRhYmxlO1xuXG4gIGlzRmlsdGVyQXBwbGllZCA9IGZhbHNlO1xuXG4gIGdldCBpc0NhdGVnb3J5RHJvcGRvd25PcGVuZWQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2NhdGVnb3J5JykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnRDb21wTGlzdD8uZmlyc3Q/LmlzQ2F0ZWdvcnlEcm9wZG93bk9wZW5lZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkdDogVGFibGUsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHR0OiBUcmVlVGFibGVcbiAgKSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZSA9IGR0IHx8IHR0O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubWF0Y2hNb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZpbHRlck1hdGNoTW9kZU9wdGlvbnNbdGhpcy50eXBlXSA9IHRoaXMubWF0Y2hNb2RlcztcbiAgICB9XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZT8ub25GaWx0ZXI/LnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICB0aGlzLl91cGRhdGVGaWx0ZXJBcHBsaWVkKHZhbHVlKVxuICAgICk7XG4gICAgaWYgKCF0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkge1xuICAgICAgdGhpcy5faW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heENvbnN0cmFpbnRzID4gMSAmJiB0aGlzLnR5cGUgIT09ICdjYXRlZ29yeScpIHtcbiAgICAgIHRoaXMuc2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuc2hvd0FwcGx5QnV0dG9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50TWF0Y2hNb2RlcyA9IHRoaXMuZmlsdGVyTWF0Y2hNb2RlT3B0aW9uc1t0aGlzLnR5cGVdPy5tYXAoXG4gICAgICAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHRoaXMubWF0Y2hNb2RlTGFiZWxzW2tleV0sIHZhbHVlOiBrZXkgfTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRmlsdGVyQXBwbGllZCh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgZmllbGRGaWx0ZXIgPSB2YWx1ZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF07XG4gICAgaWYgKGZpZWxkRmlsdGVyKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZEZpbHRlcikpIHtcbiAgICAgICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSAoPEZpbHRlck1ldGFkYXRhW10+ZmllbGRGaWx0ZXIpLnNvbWUoXG4gICAgICAgICAgKG1ldGEpID0+ICF0aGlzLl90YWJsZUluc3RhbmNlLmlzRmlsdGVyQmxhbmsobWV0YS52YWx1ZSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gIXRoaXMuX3RhYmxlSW5zdGFuY2UuaXNGaWx0ZXJCbGFuayhcbiAgICAgICAgICBmaWVsZEZpbHRlci52YWx1ZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGaWVsZEZpbHRlckNvbnN0cmFpbnQoKSB7XG4gICAgY29uc3QgZGVmYXVsdE1hdGNoTW9kZSA9IHRoaXMuZ2V0RGVmYXVsdE1hdGNoTW9kZSgpO1xuICAgIGlmICh0aGlzLl90YWJsZUluc3RhbmNlIGluc3RhbmNlb2YgVGFibGUpIHtcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlLFxuICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLm9wZXJhdG9yXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0ge1xuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIG9uTWVudU1hdGNoTW9kZUNoYW5nZSh2YWx1ZTogYW55LCBmaWx0ZXJNZXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgIGZpbHRlck1ldGEubWF0Y2hNb2RlID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuc2hvd0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBhZGRDb25zdHJhaW50KCkge1xuICAgICg8RmlsdGVyTWV0YWRhdGFbXT50aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkucHVzaCh7XG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIG1hdGNoTW9kZTogdGhpcy5nZXREZWZhdWx0TWF0Y2hNb2RlKCksXG4gICAgICBvcGVyYXRvcjogdGhpcy5nZXREZWZhdWx0T3BlcmF0b3IoKVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlQ29uc3RyYWludChmaWx0ZXJNZXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0gKDxGaWx0ZXJNZXRhZGF0YVtdPihcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdXG4gICAgKSkuZmlsdGVyKChtZXRhKSA9PiBtZXRhICE9PSBmaWx0ZXJNZXRhKTtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgfVxuXG4gIG9uT3BlcmF0b3JDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICg8RmlsdGVyTWV0YWRhdGFbXT50aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkuZm9yRWFjaChcbiAgICAgIChmaWx0ZXJNZXRhKSA9PiB7XG4gICAgICAgIGZpbHRlck1ldGEub3BlcmF0b3IgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVyYXRvciA9IHZhbHVlO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMuc2hvd0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBnZXREZWZhdWx0TWF0Y2hNb2RlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZ2V0TWF0Y2hNb2RlID0gKHZhbDogQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlKSA9PiB7XG4gICAgICBpZiAodGhpcy50eXBlIGluIHRoaXMuZmlsdGVyTWF0Y2hNb2RlT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJNYXRjaE1vZGVPcHRpb25zW3RoaXMudHlwZV0uaW5jbHVkZXModmFsKVxuICAgICAgICAgID8gdmFsXG4gICAgICAgICAgOiB0aGlzLmZpbHRlck1hdGNoTW9kZU9wdGlvbnNbdGhpcy50eXBlXVswXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIGdldE1hdGNoTW9kZShDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEgpO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIGdldE1hdGNoTW9kZShDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuRVFVQUxTKTtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICByZXR1cm4gZ2V0TWF0Y2hNb2RlKENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5EQVRFX0lTKTtcbiAgICAgIGNhc2UgJ2NhdGVnb3J5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2luZ2xlU2VsZWN0aW9uXG4gICAgICAgICAgPyBDcHNDb2x1bW5GaWx0ZXJNYXRjaE1vZGUuSVNcbiAgICAgICAgICA6IENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZS5JTjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBnZXRNYXRjaE1vZGUoQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TKTtcbiAgICB9XG4gIH1cblxuICBnZXREZWZhdWx0T3BlcmF0b3IoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzXG4gICAgICA/ICg8RmlsdGVyTWV0YWRhdGFbXT4oXG4gICAgICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+KDxzdHJpbmc+dGhpcy5maWVsZCldXG4gICAgICAgICkpWzBdLm9wZXJhdG9yXG4gICAgICA6IHRoaXMub3BlcmF0b3I7XG4gIH1cblxuICBnZXQgZmllbGRDb25zdHJhaW50cygpOiBGaWx0ZXJNZXRhZGF0YVtdIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuX3RhYmxlSW5zdGFuY2UgaW5zdGFuY2VvZiBUYWJsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1xuICAgICAgICA/IDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdXG4gICAgICAgIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1xuICAgICAgICA/IDxGaWx0ZXJNZXRhZGF0YVtdPlt0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXV1cbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93UmVtb3ZlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZENvbnN0cmFpbnRzID8gdGhpcy5maWVsZENvbnN0cmFpbnRzLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc1Nob3dPcGVyYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zaG93T3BlcmF0b3IgJiZcbiAgICAgIHRoaXMubWF4Q29uc3RyYWludHMgPiAxICYmXG4gICAgICAhWydib29sZWFuJywgJ2NhdGVnb3J5J10uaW5jbHVkZXModGhpcy50eXBlKVxuICAgICk7XG4gIH1cblxuICBnZXQgaXNTaG93QWRkQ29uc3RyYWludCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgICFbJ2Jvb2xlYW4nLCAnY2F0ZWdvcnknXS5pbmNsdWRlcyh0aGlzLnR5cGUpICYmXG4gICAgICB0aGlzLmZpZWxkQ29uc3RyYWludHMgJiZcbiAgICAgIHRoaXMuZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCB0aGlzLm1heENvbnN0cmFpbnRzXG4gICAgKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJNZW51LmhpZGUoKTtcbiAgfVxuXG4gIGNsZWFyRmlsdGVyKCkge1xuICAgIHRoaXMuX2luaXRGaWVsZEZpbHRlckNvbnN0cmFpbnQoKTtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICBpZiAodGhpcy5oaWRlT25DbGVhcikgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBjbGVhckZpbHRlclZhbHVlcygpIHtcbiAgICB0aGlzLl9pbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCk7XG4gICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyKCkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgb25NZW51U2hvd24oKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9ICdjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LW9wZW4nO1xuICAgIHBhcmVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gIH1cblxuICBvbkJlZm9yZU1lbnVIaWRkZW4oKSB7XG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyQXBwbGllZCkgdGhpcy5faW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICB9XG5cbiAgb25NZW51SGlkZGVuKCkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBjbGFzc05hbWUgPSAnY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1vcGVuJztcbiAgICBwYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNvcnRJY29uQ29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIGNvbnN0IHVuc29ydGVkVXAgPVxuICAgICAgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNvcnQtdW5zb3J0ZWQtYXJyb3ctdXAnXG4gICAgICApO1xuICAgIGlmICh1bnNvcnRlZFVwKSB7XG4gICAgICB1bnNvcnRlZFVwLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gY29sb3I7XG4gICAgfVxuICAgIGNvbnN0IHVuc29ydGVkRG93biA9XG4gICAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc29ydC11bnNvcnRlZC1hcnJvdy1kb3duJ1xuICAgICAgKTtcbiAgICBpZiAodW5zb3J0ZWREb3duKSB7XG4gICAgICB1bnNvcnRlZERvd24uc3R5bGUuYm9yZGVyVG9wQ29sb3IgPSBjb2xvcjtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZU92ZXIoKSB7XG4gICAgdGhpcy5fdXBkYXRlU29ydEljb25Db2xvcigndmFyKC0tY3BzLWNvbG9yLWxpbmUtZGFyayknKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBvbk1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5fdXBkYXRlU29ydEljb25Db2xvcignJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlPy5vbkZpbHRlcj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyXCI+XG4gIDxjcHMtbWVudVxuICAgICNjb2x1bW5GaWx0ZXJNZW51XG4gICAgW3dpdGhBcnJvd109XCJmYWxzZVwiXG4gICAgaGlkZVRyYW5zaXRpb25PcHRpb25zPVwiMHMgbGluZWFyXCJcbiAgICBbcGVyc2lzdGVudF09XCJwZXJzaXN0ZW50IHx8IChzaG93QXBwbHlCdXR0b24gJiYgaXNDYXRlZ29yeURyb3Bkb3duT3BlbmVkKVwiXG4gICAgKG1lbnVTaG93bik9XCJvbk1lbnVTaG93bigpXCJcbiAgICAobWVudUhpZGRlbik9XCJvbk1lbnVIaWRkZW4oKVwiXG4gICAgKGJlZm9yZU1lbnVIaWRkZW4pPVwib25CZWZvcmVNZW51SGlkZGVuKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LWhlYWRlclwiXG4gICAgICAgICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uIHx8IGhlYWRlclRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LWhlYWRlci10aXRsZVwiPlxuICAgICAgICAgIHt7IGhlYWRlclRpdGxlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIlxuICAgICAgICAgIGljb249XCJjbG9zZS14XCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIj48L2Nwcy1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LW9wZXJhdG9yXCJcbiAgICAgICAgKm5nSWY9XCJpc1Nob3dPcGVyYXRvclwiPlxuICAgICAgICA8Y3BzLXNlbGVjdFxuICAgICAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZpZWxkQ29uc3RyYWludHMgfHwgZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCAyXCJcbiAgICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJvcGVyYXRvck9wdGlvbnNcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIm9wZXJhdG9yXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiPjwvY3BzLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50c1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uc3RyYWludCBvZiBmaWVsZENvbnN0cmFpbnRzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50XCI+XG4gICAgICAgICAgPGNwcy1zZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd01hdGNoTW9kZXMgJiYgY3VycmVudE1hdGNoTW9kZXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1tYXRjaC1tb2RlLXNlbGVjdFwiXG4gICAgICAgICAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImN1cnJlbnRNYXRjaE1vZGVzXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZpZWxkQ29uc3RyYWludC5tYXRjaE1vZGVcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJcbiAgICAgICAgICAgICAgb25NZW51TWF0Y2hNb2RlQ2hhbmdlKCRldmVudCwgZmllbGRDb25zdHJhaW50KVxuICAgICAgICAgICAgXCI+PC9jcHMtc2VsZWN0PlxuICAgICAgICAgIDx0YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnRcbiAgICAgICAgICAgICNjb25zdHJhaW50Q29tcG9uZW50XG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICBbYXNCdXR0b25Ub2dnbGVdPVwiYXNCdXR0b25Ub2dnbGVcIlxuICAgICAgICAgICAgW3NpbmdsZVNlbGVjdGlvbl09XCJzaW5nbGVTZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2NhdGVnb3J5T3B0aW9uc109XCJjYXRlZ29yeU9wdGlvbnNcIlxuICAgICAgICAgICAgW2ZpbHRlckNvbnN0cmFpbnRdPVwiZmllbGRDb25zdHJhaW50XCJcbiAgICAgICAgICAgIFtoYXNBcHBseUJ1dHRvbl09XCJzaG93QXBwbHlCdXR0b25cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgPC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1yZW1vdmUtcnVsZS1idG5cIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93UmVtb3ZlSWNvblwiPlxuICAgICAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cInJlbW92ZUNvbnN0cmFpbnQoZmllbGRDb25zdHJhaW50KVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlIGNvbmRpdGlvblwiPlxuICAgICAgICAgICAgPC9jcHMtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWFkZC1ydWxlLWJ0blwiXG4gICAgICAgICpuZ0lmPVwiaXNTaG93QWRkQ29uc3RyYWludFwiPlxuICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgIGxhYmVsPVwiQWRkIGNvbmRpdGlvblwiXG4gICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBjb2xvcj1cInN1cnByaXNlXCJcbiAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJhZGRDb25zdHJhaW50KClcIj5cbiAgICAgICAgPC9jcHMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItYnV0dG9uYmFyXCI+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2xlYXJCdXR0b25cIlxuICAgICAgICAgIChjbGlja2VkKT1cImNsZWFyRmlsdGVyKClcIlxuICAgICAgICAgIHR5cGU9XCJib3JkZXJsZXNzXCJcbiAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIGxhYmVsPVwiQ2xlYXJcIj48L2Nwcy1idXR0b24+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93QXBwbHlCdXR0b25cIlxuICAgICAgICAgIChjbGlja2VkKT1cImFwcGx5RmlsdGVyKClcIlxuICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgbGFiZWw9XCJBcHBseVwiPjwvY3BzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Nwcy1tZW51PlxuICA8Y3BzLWljb25cbiAgICBbaWNvbl09XCJpc0ZpbHRlckFwcGxpZWQgPyAnZmlsdGVyLWZ1bm5lbC1maWxsZWQnIDogJ2ZpbHRlci1mdW5uZWwnXCJcbiAgICBzaXplPVwiMTNcIlxuICAgIChjbGljayk9XCJjb2x1bW5GaWx0ZXJNZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtYnV0dG9uXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1idXR0b24tYWN0aXZlJzogaXNGaWx0ZXJBcHBsaWVkXG4gICAgfVwiXG4gICAgPj5cbiAgPC9jcHMtaWNvbj5cbjwvZGl2PlxuIl19
@@ -10,6 +10,10 @@ import * as i0 from "@angular/core";
10
10
  import * as i1 from "primeng/table";
11
11
  import * as i2 from "primeng/treetable";
12
12
  import * as i3 from "@angular/common";
13
+ /**
14
+ * TableColumnFilterConstraintComponent is an internal filtering constraint component in table and treetable.
15
+ * @group Components
16
+ */
13
17
  export class TableColumnFilterConstraintComponent {
14
18
  get isCategoryDropdownOpened() {
15
19
  return this.categoryAutocompleteComponent?.isOpened || false;
@@ -17,11 +21,35 @@ export class TableColumnFilterConstraintComponent {
17
21
  constructor(dt, tt) {
18
22
  this.dt = dt;
19
23
  this.tt = tt;
24
+ /**
25
+ * Type of filter constraint.
26
+ * @group Props
27
+ */
20
28
  this.type = 'text';
29
+ /**
30
+ * An array of category options.
31
+ * @group Props
32
+ */
21
33
  this.categoryOptions = [];
22
- this.asButtonToggle = false; // for category type only
23
- this.singleSelection = false; // for category type only
34
+ /**
35
+ * Whether to show category filter as button toggles.
36
+ * @group Props
37
+ */
38
+ this.asButtonToggle = false;
39
+ /**
40
+ * Single selection for category filter.
41
+ * @group Props
42
+ */
43
+ this.singleSelection = false;
44
+ /**
45
+ * Placeholder for input field.
46
+ * @group Props
47
+ */
24
48
  this.placeholder = '';
49
+ /**
50
+ * Whether the filter should have an apply button.
51
+ * @group Props
52
+ */
25
53
  this.hasApplyButton = true;
26
54
  this.booleanOptions = [
27
55
  { label: 'True', value: 'true' },
@@ -117,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
117
145
  type: ViewChild,
118
146
  args: ['categoryAutocompleteComponent']
119
147
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9jb21wb25lbnRzL2ludGVybmFsL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQ0wsd0JBQXdCLEVBRXpCLE1BQU0sMkRBQTJELENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7O0FBb0JuRyxNQUFNLE9BQU8sb0NBQW9DO0lBc0IvQyxJQUFJLHdCQUF3QjtRQUMxQixPQUFP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Y0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDOztpSUEvRVUsb0NBQW9DO3FIQUFwQyxvQ0FBb0MsdWZDdENqRCx5bEVBa0VBLG9PRHRDSSxZQUFZLDhUQUNaLFdBQVcsK0JBQ1gsaUJBQWlCLHFnQkFDakIsc0JBQXNCLGtZQUN0Qix3QkFBd0IsdVRBQ3hCLHdCQUF3QjsyRkFLZixvQ0FBb0M7a0JBZGhELFNBQVM7K0JBQ0UsZ0NBQWdDLGNBQzlCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3FCQUN6Qjs7MEJBOEJZLFFBQVE7OzBCQUFzQixRQUFROzRDQXpCMUMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdOLDZCQUE2QjtzQkFENUIsU0FBUzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWx0ZXJNZXRhZGF0YSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUcmVlVGFibGUgfSBmcm9tICdwcmltZW5nL3RyZWV0YWJsZSc7XG5pbXBvcnQgeyBDcHNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1pbnB1dC9jcHMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0RhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtZGF0ZXBpY2tlci9jcHMtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50LFxuICBDcHNCdXR0b25Ub2dnbGVPcHRpb25cbn0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1hdXRvY29tcGxldGUvY3BzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ3BzQ29sdW1uRmlsdGVyQ2F0ZWdvcnlPcHRpb24sXG4gIENwc0NvbHVtbkZpbHRlclR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vY3BzLWNvbHVtbi1maWx0ZXItdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENwc0lucHV0Q29tcG9uZW50LFxuICAgIENwc0RhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50LFxuICAgIENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogQ3BzQ29sdW1uRmlsdGVyVHlwZSA9ICd0ZXh0JztcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29uc3RyYWludDogRmlsdGVyTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNhdGVnb3J5T3B0aW9uczogQ3BzQ29sdW1uRmlsdGVyQ2F0ZWdvcnlPcHRpb25bXSB8IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIGFzQnV0dG9uVG9nZ2xlID0gZmFsc2U7IC8vIGZvciBjYXRlZ29yeSB0eXBlIG9ubHlcbiAgQElucHV0KCkgc2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7IC8vIGZvciBjYXRlZ29yeSB0eXBlIG9ubHlcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgaGFzQXBwbHlCdXR0b24gPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhdGVnb3J5QXV0b2NvbXBsZXRlQ29tcG9uZW50JylcbiAgY2F0ZWdvcnlBdXRvY29tcGxldGVDb21wb25lbnQ/OiBDcHNBdXRvY29tcGxldGVDb21wb25lbnQ7XG5cbiAgYm9vbGVhbk9wdGlvbnMgPSBbXG4gICAgeyBsYWJlbDogJ1RydWUnLCB2YWx1ZTogJ3RydWUnIH0sXG4gICAgeyBsYWJlbDogJ0ZhbHNlJywgdmFsdWU6ICdmYWxzZScgfVxuICBdIGFzIENwc0J1dHRvblRvZ2dsZU9wdGlvbltdO1xuXG4gIGNhdGVnb3JpZXM6IENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uW10gPSBbXTtcblxuICBfdGFibGVJbnN0YW5jZTogVGFibGUgfCBUcmVlVGFibGU7XG5cbiAgZ2V0IGlzQ2F0ZWdvcnlEcm9wZG93bk9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeUF1dG9jb21wbGV0ZUNvbXBvbmVudD8uaXNPcGVuZWQgfHwgZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgZHQ6IFRhYmxlLCBAT3B0aW9uYWwoKSBwdWJsaWMgdHQ6IFRyZWVUYWJsZSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UgPSBkdCB8fCB0dDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZUNhdGVnb3JpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNhdGVnb3JpZXMoKSB7XG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2NhdGVnb3J5JykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNhdGVnb3J5T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2F0ZWdvcnlPcHRpb25zWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSAodGhpcy5jYXRlZ29yeU9wdGlvbnMgYXMgc3RyaW5nW10pLm1hcCgobykgPT4gKHtcbiAgICAgICAgICBsYWJlbDogbyxcbiAgICAgICAgICB2YWx1ZTogb1xuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSB0aGlzXG4gICAgICAgICAgLmNhdGVnb3J5T3B0aW9ucyBhcyBDcHNDb2x1bW5GaWx0ZXJDYXRlZ29yeU9wdGlvbltdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgY2F0cyA9IFtdO1xuICAgICAgaWYgKHRoaXMuX3RhYmxlSW5zdGFuY2UgaW5zdGFuY2VvZiBUYWJsZSkge1xuICAgICAgICBjYXRzID1cbiAgICAgICAgICB0aGlzLl90YWJsZUluc3RhbmNlLnZhbHVlPy5tYXAoKHYpID0+IHZbdGhpcy5maWVsZCBhcyBzdHJpbmddKSB8fCBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZpbGxDYXRzID0gKG5vZGVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgIG5vZGVzPy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICBjYXRzLnB1c2godi5kYXRhW3RoaXMuZmllbGQgYXMgc3RyaW5nXSk7XG4gICAgICAgICAgICBmaWxsQ2F0cyh2LmNoaWxkcmVuKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgZmlsbENhdHModGhpcy5fdGFibGVJbnN0YW5jZS52YWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNhdGVnb3JpZXMgPVxuICAgICAgICBBcnJheS5mcm9tKG5ldyBTZXQoY2F0cykpPy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGMsXG4gICAgICAgICAgdmFsdWU6IGNcbiAgICAgICAgfSkpIHx8IFtdO1xuICAgIH1cbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICg8YW55PnRoaXMuZmlsdGVyQ29uc3RyYWludCkudmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl90YWJsZUluc3RhbmNlLmlzRmlsdGVyQmxhbmsodmFsdWUpIHx8ICF0aGlzLmhhc0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBvbkVudGVyS2V5RG93bihldmVudDogYW55KSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cInRleHRcIj48L2Nwcy1pbnB1dD5cblxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyS2V5RG93bigkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICB0eXBlPVwibnVtYmVyXCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY29uc3RyYWludC1idG4tdG9nZ2xlc1wiXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuICAgIDxjcHMtYnV0dG9uLXRvZ2dsZVxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5J1wiPlxuICAgIDxjcHMtYXV0b2NvbXBsZXRlXG4gICAgICAjY2F0ZWdvcnlBdXRvY29tcGxldGVDb21wb25lbnRcbiAgICAgICpuZ0lmPVwiIWFzQnV0dG9uVG9nZ2xlXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY2F0ZWdvcnktYXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgICBbbXVsdGlwbGVdPVwiIXNpbmdsZVNlbGVjdGlvblwiPlxuICAgIDwvY3BzLWF1dG9jb21wbGV0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY29uc3RyYWludC1idG4tdG9nZ2xlc1wiPlxuICAgICAgPGNwcy1idXR0b24tdG9nZ2xlXG4gICAgICAgICpuZ0lmPVwiYXNCdXR0b25Ub2dnbGVcIlxuICAgICAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgW211bHRpcGxlXT1cIiFzaW5nbGVTZWxlY3Rpb25cIj5cbiAgICAgIDwvY3BzLWJ1dHRvbi10b2dnbGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9jb21wb25lbnRzL2ludGVybmFsL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQ0wsd0JBQXdCLEVBRXpCLE1BQU0sMkRBQTJELENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7O0FBTW5HOzs7R0FHRztBQWVILE1BQU0sT0FBTyxvQ0FBb0M7SUE2RC9DLElBQUksd0JBQXdC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LENBQUMsZ0JBQWlCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2lJQXRIVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQyx1ZkMxQ2pELHlsRUFrRUEsb09EbENJLFlBQVksOFRBQ1osV0FBVywrQkFDWCxpQkFBaUIscWdCQUNqQixzQkFBc0Isa1lBQ3RCLHdCQUF3Qix1VEFDeEIsd0JBQXdCOzJGQUtmLG9DQUFvQztrQkFkaEQsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7cUJBQ3pCOzswQkFxRVksUUFBUTs7MEJBQXNCLFFBQVE7NENBNUQxQyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyxlQUFlO3NCQUF2QixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR04sNkJBQTZCO3NCQUQ1QixTQUFTO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlck1ldGFkYXRhIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRyZWVUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXRhYmxlJztcbmltcG9ydCB7IENwc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLWlucHV0L2Nwcy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1kYXRlcGlja2VyL2Nwcy1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnQsXG4gIENwc0J1dHRvblRvZ2dsZU9wdGlvblxufSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtYnV0dG9uLXRvZ2dsZS9jcHMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3BzLWF1dG9jb21wbGV0ZS9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNDb2x1bW5GaWx0ZXJDYXRlZ29yeU9wdGlvbixcbiAgQ3BzQ29sdW1uRmlsdGVyVHlwZVxufSBmcm9tICcuLi8uLi8uLi9jcHMtY29sdW1uLWZpbHRlci10eXBlcyc7XG5cbi8qKlxuICogVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50IGlzIGFuIGludGVybmFsIGZpbHRlcmluZyBjb25zdHJhaW50IGNvbXBvbmVudCBpbiB0YWJsZSBhbmQgdHJlZXRhYmxlLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDcHNJbnB1dENvbXBvbmVudCxcbiAgICBDcHNEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIENwc0J1dHRvblRvZ2dsZUNvbXBvbmVudCxcbiAgICBDcHNBdXRvY29tcGxldGVDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uRmlsdGVyQ29uc3RyYWludENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIGZpbHRlciBjb25zdHJhaW50LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IENwc0NvbHVtbkZpbHRlclR5cGUgPSAndGV4dCc7XG5cbiAgLyoqXG4gICAqIENvbHVtbiBuYW1lLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIENvbnN0cmFpbnQgZGF0YS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBmaWx0ZXJDb25zdHJhaW50OiBGaWx0ZXJNZXRhZGF0YSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgY2F0ZWdvcnkgb3B0aW9ucy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBjYXRlZ29yeU9wdGlvbnM6IENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uW10gfCBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgY2F0ZWdvcnkgZmlsdGVyIGFzIGJ1dHRvbiB0b2dnbGVzLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGFzQnV0dG9uVG9nZ2xlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNpbmdsZSBzZWxlY3Rpb24gZm9yIGNhdGVnb3J5IGZpbHRlci5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAvKipcbiAgICogUGxhY2Vob2xkZXIgZm9yIGlucHV0IGZpZWxkLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpbHRlciBzaG91bGQgaGF2ZSBhbiBhcHBseSBidXR0b24uXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaGFzQXBwbHlCdXR0b24gPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhdGVnb3J5QXV0b2NvbXBsZXRlQ29tcG9uZW50JylcbiAgY2F0ZWdvcnlBdXRvY29tcGxldGVDb21wb25lbnQ/OiBDcHNBdXRvY29tcGxldGVDb21wb25lbnQ7XG5cbiAgYm9vbGVhbk9wdGlvbnMgPSBbXG4gICAgeyBsYWJlbDogJ1RydWUnLCB2YWx1ZTogJ3RydWUnIH0sXG4gICAgeyBsYWJlbDogJ0ZhbHNlJywgdmFsdWU6ICdmYWxzZScgfVxuICBdIGFzIENwc0J1dHRvblRvZ2dsZU9wdGlvbltdO1xuXG4gIGNhdGVnb3JpZXM6IENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uW10gPSBbXTtcblxuICBfdGFibGVJbnN0YW5jZTogVGFibGUgfCBUcmVlVGFibGU7XG5cbiAgZ2V0IGlzQ2F0ZWdvcnlEcm9wZG93bk9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeUF1dG9jb21wbGV0ZUNvbXBvbmVudD8uaXNPcGVuZWQgfHwgZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgZHQ6IFRhYmxlLCBAT3B0aW9uYWwoKSBwdWJsaWMgdHQ6IFRyZWVUYWJsZSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UgPSBkdCB8fCB0dDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZUNhdGVnb3JpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNhdGVnb3JpZXMoKSB7XG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2NhdGVnb3J5JykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNhdGVnb3J5T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2F0ZWdvcnlPcHRpb25zWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSAodGhpcy5jYXRlZ29yeU9wdGlvbnMgYXMgc3RyaW5nW10pLm1hcCgobykgPT4gKHtcbiAgICAgICAgICBsYWJlbDogbyxcbiAgICAgICAgICB2YWx1ZTogb1xuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSB0aGlzXG4gICAgICAgICAgLmNhdGVnb3J5T3B0aW9ucyBhcyBDcHNDb2x1bW5GaWx0ZXJDYXRlZ29yeU9wdGlvbltdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgY2F0cyA9IFtdO1xuICAgICAgaWYgKHRoaXMuX3RhYmxlSW5zdGFuY2UgaW5zdGFuY2VvZiBUYWJsZSkge1xuICAgICAgICBjYXRzID1cbiAgICAgICAgICB0aGlzLl90YWJsZUluc3RhbmNlLnZhbHVlPy5tYXAoKHYpID0+IHZbdGhpcy5maWVsZCBhcyBzdHJpbmddKSB8fCBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZpbGxDYXRzID0gKG5vZGVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgIG5vZGVzPy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICBjYXRzLnB1c2godi5kYXRhW3RoaXMuZmllbGQgYXMgc3RyaW5nXSk7XG4gICAgICAgICAgICBmaWxsQ2F0cyh2LmNoaWxkcmVuKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgZmlsbENhdHModGhpcy5fdGFibGVJbnN0YW5jZS52YWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNhdGVnb3JpZXMgPVxuICAgICAgICBBcnJheS5mcm9tKG5ldyBTZXQoY2F0cykpPy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGMsXG4gICAgICAgICAgdmFsdWU6IGNcbiAgICAgICAgfSkpIHx8IFtdO1xuICAgIH1cbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICg8YW55PnRoaXMuZmlsdGVyQ29uc3RyYWludCkudmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl90YWJsZUluc3RhbmNlLmlzRmlsdGVyQmxhbmsodmFsdWUpIHx8ICF0aGlzLmhhc0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl90YWJsZUluc3RhbmNlLl9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBvbkVudGVyS2V5RG93bihldmVudDogYW55KSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cInRleHRcIj48L2Nwcy1pbnB1dD5cblxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyS2V5RG93bigkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICB0eXBlPVwibnVtYmVyXCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY29uc3RyYWludC1idG4tdG9nZ2xlc1wiXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuICAgIDxjcHMtYnV0dG9uLXRvZ2dsZVxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5J1wiPlxuICAgIDxjcHMtYXV0b2NvbXBsZXRlXG4gICAgICAjY2F0ZWdvcnlBdXRvY29tcGxldGVDb21wb25lbnRcbiAgICAgICpuZ0lmPVwiIWFzQnV0dG9uVG9nZ2xlXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY2F0ZWdvcnktYXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgICBbbXVsdGlwbGVdPVwiIXNpbmdsZVNlbGVjdGlvblwiPlxuICAgIDwvY3BzLWF1dG9jb21wbGV0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY29uc3RyYWludC1idG4tdG9nZ2xlc1wiPlxuICAgICAgPGNwcy1idXR0b24tdG9nZ2xlXG4gICAgICAgICpuZ0lmPVwiYXNCdXR0b25Ub2dnbGVcIlxuICAgICAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgW211bHRpcGxlXT1cIiFzaW5nbGVTZWxlY3Rpb25cIj5cbiAgICAgIDwvY3BzLWJ1dHRvbi10b2dnbGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=