@seniorsistemas/angular-components 19.9.7-develop-ad878012 → 19.9.8-develop-dbc2f1b4

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 (162) hide show
  1. package/card/lib/card/card.component.d.ts +6 -2
  2. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -1
  3. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -0
  4. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +3 -3
  5. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +8 -3
  6. package/esm2022/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +4 -3
  7. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +3 -3
  8. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +4 -2
  9. package/esm2022/button/lib/button/button.component.mjs +3 -3
  10. package/esm2022/card/lib/card/card.component.mjs +13 -5
  11. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -3
  12. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +3 -3
  13. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +3 -3
  14. package/esm2022/chips/lib/chips/chips/chips.component.mjs +3 -3
  15. package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.mjs +3 -2
  16. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +3 -3
  17. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -9
  18. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
  19. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
  20. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -1
  21. package/esm2022/drawer/lib/drawer/drawer.component.mjs +3 -3
  22. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
  23. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
  24. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
  25. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
  26. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
  27. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
  28. package/esm2022/editor/lib/editor/editor.component.mjs +3 -3
  29. package/esm2022/editor/lib/editor/toolbar-button/editor-toolbar-button.component.mjs +3 -3
  30. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +3 -3
  31. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +3 -3
  32. package/esm2022/gantt/lib/gantt/components/gantt/bar.mjs +2 -1
  33. package/esm2022/gantt/lib/gantt/gantt.component.mjs +3 -3
  34. package/esm2022/global-search/lib/global-search/global-search.component.mjs +16 -25
  35. package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +3 -3
  36. package/esm2022/input-text/lib/input-text/input-text.directive.mjs +3 -3
  37. package/esm2022/lib/locale/fallback.mjs +5 -2
  38. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +3 -3
  39. package/esm2022/object-card/lib/object-card/object-card.component.mjs +3 -3
  40. package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
  41. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +3 -3
  42. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +4 -10
  43. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +3 -3
  44. package/esm2022/select/lib/select/select.component.mjs +3 -3
  45. package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +3 -3
  46. package/esm2022/shared/lib/accessibility/datepicker-no-period-tab.directive.mjs +6 -6
  47. package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +3 -3
  48. package/esm2022/slider/lib/slider/slider.component.mjs +67 -65
  49. package/esm2022/slider/lib/slider/slider.module.mjs +2 -2
  50. package/esm2022/split-button/lib/split-button/split-button.component.mjs +3 -3
  51. package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
  52. package/esm2022/stepper/lib/stepper/stepper.component.mjs +3 -3
  53. package/esm2022/switch/lib/switch/switch.component.mjs +5 -19
  54. package/esm2022/tabs/lib/tabs/tabs.component.mjs +3 -3
  55. package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
  56. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +10 -3
  57. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +3 -3
  58. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
  59. package/esm2022/tiered-menu/lib/tiered-menu/services/tiered-menu.global.service.mjs +4 -3
  60. package/esm2022/tile/lib/tile/tile.component.mjs +3 -3
  61. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +20 -3
  62. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +3 -3
  63. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +2 -2
  64. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  65. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +10 -5
  66. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  67. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -3
  68. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  69. package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
  70. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  71. package/fesm2022/seniorsistemas-angular-components-card.mjs +12 -4
  72. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  73. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +2 -2
  74. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  75. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -2
  76. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  77. package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -4
  78. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  79. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +2 -1
  80. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  81. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +2 -2
  82. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  83. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +13 -8
  84. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  85. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +2 -2
  86. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  87. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +14 -2
  88. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  89. package/fesm2022/seniorsistemas-angular-components-drawer.mjs +2 -2
  90. package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
  91. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -12
  92. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  93. package/fesm2022/seniorsistemas-angular-components-editor.mjs +4 -4
  94. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  95. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +2 -2
  96. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  97. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +2 -2
  98. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  99. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +3 -2
  100. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  101. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +14 -23
  102. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  103. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +2 -2
  104. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  105. package/fesm2022/seniorsistemas-angular-components-input-text.mjs +2 -2
  106. package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
  107. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +2 -2
  108. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  109. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
  110. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  111. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
  112. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  113. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +2 -2
  114. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  115. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +3 -9
  116. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  117. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +2 -2
  118. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  119. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
  120. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  121. package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
  122. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  123. package/fesm2022/seniorsistemas-angular-components-shared.mjs +5 -5
  124. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  125. package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +2 -2
  126. package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
  127. package/fesm2022/seniorsistemas-angular-components-slider.mjs +67 -65
  128. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  129. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +2 -2
  130. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  131. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
  132. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  133. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +2 -2
  134. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  135. package/fesm2022/seniorsistemas-angular-components-switch.mjs +4 -18
  136. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  137. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +2 -2
  138. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  139. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
  140. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  141. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +9 -2
  142. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  143. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +2 -2
  144. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  145. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +5 -4
  146. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  147. package/fesm2022/seniorsistemas-angular-components-tile.mjs +2 -2
  148. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  149. package/fesm2022/seniorsistemas-angular-components-tree.mjs +20 -3
  150. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  151. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +2 -2
  152. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  153. package/fesm2022/seniorsistemas-angular-components.mjs +4 -1
  154. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  155. package/global-search/lib/global-search/global-search.component.d.ts +7 -3
  156. package/package.json +1 -1
  157. package/radio-button/lib/radio-button/radio-button.component.d.ts +0 -1
  158. package/slider/lib/slider/slider.component.d.ts +25 -7
  159. package/styles.css +5 -0
  160. package/switch/lib/switch/switch.component.d.ts +0 -2
  161. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -0
  162. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +4 -0
@@ -111,6 +111,7 @@ export class Bar {
111
111
  this._group = createSVG('g', {
112
112
  class: 'bar-wrapper ' + (this.task.custom_class || ''),
113
113
  'data-id': this.task.id,
114
+ tabindex: '0',
114
115
  });
115
116
  this._barGroup = createSVG('g', {
116
117
  class: 'bar-group',
@@ -291,4 +292,4 @@ export class Bar {
291
292
  }
292
293
  }
293
294
  }
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2dhbnR0L3NyYy9saWIvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxNQUFNLE9BQU8sR0FBRztJQUNKLGdCQUFnQixDQUFXO0lBQzNCLE1BQU0sQ0FBUztJQUNmLFFBQVEsQ0FBVztJQUNuQixPQUFPLENBQVU7SUFDakIsRUFBRSxDQUFVO0lBQ1osRUFBRSxDQUFVO0lBQ1osYUFBYSxDQUFVO0lBQ3ZCLFNBQVMsQ0FBVTtJQUNuQixNQUFNLENBQVU7SUFDaEIsU0FBUyxDQUFNO0lBRWYsT0FBTyxDQUFXO0lBQ2xCLE1BQU0sQ0FBTztJQUNiLEtBQUssQ0FBZ0I7SUFDckIsUUFBUSxDQUFNO0lBRWQsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUU3QixZQUFZLEtBQVUsRUFBRSxJQUFTO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJ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QUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRW5ELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmlldy1tb2RlJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4vdXRpbHMvZGF0ZS11dGlscyc7XG5pbXBvcnQgeyAkLCBhbmltYXRlU1ZHLCBjcmVhdGVTVkcgfSBmcm9tICcuL3V0aWxzL3N2Zy11dGlscyc7XG5pbXBvcnQgeyBFbnJpY2hlZFRhc2sgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFzayc7XG5pbXBvcnQgeyBBcnJvdyB9IGZyb20gJy4vYXJyb3cnO1xuaW1wb3J0IHsgR2FudHQgfSBmcm9tICcuL2dhbnR0JztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBCYXIge1xuICAgIHByaXZhdGUgX2FjdGlvbkNvbXBsZXRlZD86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfZ2FudHQ/OiBHYW50dDtcbiAgICBwcml2YXRlIF9pbnZhbGlkPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9oZWlnaHQ/OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfeD86IG51bWJlcjtcbiAgICBwcml2YXRlIF95PzogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Nvcm5lclJhZGl1cz86IG51bWJlcjtcbiAgICBwcml2YXRlIF9kdXJhdGlvbj86IG51bWJlcjtcbiAgICBwcml2YXRlIF93aWR0aD86IG51bWJlcjtcbiAgICBwcml2YXRlIF9iYXJHcm91cDogYW55O1xuXG4gICAgcHJpdmF0ZSBfYXJyb3dzPzogQXJyb3dbXTtcbiAgICBwcml2YXRlIF9ncm91cD86IGFueTtcbiAgICBwcml2YXRlIF90YXNrITogRW5yaWNoZWRUYXNrO1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IGFueTtcblxuICAgIHByaXZhdGUgX2lzUG9wVXBPcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihnYW50dDogYW55LCB0YXNrOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdHMoZ2FudHQsIHRhc2spO1xuICAgICAgICB0aGlzLl9wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX2RyYXcoKTtcbiAgICAgICAgdGhpcy5fYmluZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXJyb3dzKCk6IEFycm93W10gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFzaygpOiBFbnJpY2hlZFRhc2sge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFycm93cyhhcnJvd3M6IEFycm93W10pIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVCYXJQb3NpdGlvbih7IHgsIHdpZHRoIH06IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAvLyBnZXQgYWxsIHggdmFsdWVzIG9mIHBhcmVudCB0YXNrXG4gICAgICAgICAgICBjb25zdCB4cyA9IHRoaXMudGFzaz8uZGVwZW5kZW5jaWVzPy5tYXAoKGRlcDogYW55KSA9PiB0aGlzLl9nYW50dD8uZ2V0X2JhcihkZXApPy5lbGVtZW50LmdldFgoKSk7XG4gICAgICAgICAgICAvLyBjaGlsZCB0YXNrIG11c3Qgbm90IGdvIGJlZm9yZSBwYXJlbnRcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkWCA9IHhzPy5yZWR1Y2UoKHByZXY6IGFueSwgY3VycjogYW55KSA9PiB4ID49IGN1cnIsIHgpO1xuICAgICAgICAgICAgaWYgKCF2YWxpZFgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsICd4JywgeCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpZHRoICYmIHdpZHRoID49ICh0aGlzLl9nYW50dD8ub3B0aW9ucz8uY29sdW1uV2lkdGggPz8gMCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUF0dHIoYmFyLCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLl91cGRhdGVBcnJvd1Bvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjb21wdXRlZFN0YXJ0RW5kRGF0ZSA9IHRoaXMuX2NvbXB1dGVTdGFydEVuZERhdGUoKTtcblxuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoY29tcHV0ZWRTdGFydEVuZERhdGUpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfSA9IGNvbXB1dGVkU3RhcnRFbmREYXRlO1xuXG4gICAgICAgIGlmICh0aGlzLnRhc2s/LnN0YXJ0ICE9PSBuZXdTdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFzaykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2suc3RhcnQgPSBuZXdTdGFydERhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXNrPy5lbmQgIT09IG5ld0VuZERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFzaykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2suZW5kID0gbmV3RW5kRGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9nYW50dD8udHJpZ2dlcl9ldmVudCgnb25EYXRlQ2hhbmdlJywgW3RoaXMudGFzaywgbmV3U3RhcnREYXRlLCBEYXRlVXRpbHMuYWRkKG5ld0VuZERhdGUsIC0xLCAnc2Vjb25kJyldKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25Db21wbGV0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRzKGdhbnR0OiBhbnksIHRhc2s6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2FudHQgPSBnYW50dDtcbiAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlcygpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlSGVscGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFzaykgfHxcbiAgICAgICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0KSB8fFxuICAgICAgICAgICAgaXNOdWxsT3JVbmRlZmluZWQodGhpcy5fZ2FudHQub3B0aW9ucykgfHxcbiAgICAgICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcClcbiAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB0aGlzLnRhc2suaW52YWxpZDtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3ggPSB0aGlzLl9jb21wdXRlWCgpO1xuICAgICAgICB0aGlzLl95ID0gdGhpcy5fY29tcHV0ZVkoKTtcbiAgICAgICAgdGhpcy5fY29ybmVyUmFkaXVzID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJDb3JuZXJSYWRpdXM7XG4gICAgICAgIHRoaXMuX2R1cmF0aW9uID0gRGF0ZVV0aWxzLmRpZmYodGhpcy50YXNrLmVuZCwgdGhpcy50YXNrLnN0YXJ0LCAnbWludXRlJykgLyB0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAgLyA2MC4wO1xuICAgICAgICB0aGlzLl93aWR0aCA9ICh0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoID8/IDApICogdGhpcy5fZHVyYXRpb247XG4gICAgICAgIHRoaXMuX2dyb3VwID0gY3JlYXRlU1ZHKCdnJywge1xuICAgICAgICAgICAgY2xhc3M6ICdiYXItd3JhcHBlciAnICsgKHRoaXMudGFzay5jdXN0b21fY2xhc3MgfHwgJycpLFxuICAgICAgICAgICAgJ2RhdGEtaWQnOiB0aGlzLnRhc2suaWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9iYXJHcm91cCA9IGNyZWF0ZVNWRygnZycsIHtcbiAgICAgICAgICAgIGNsYXNzOiAnYmFyLWdyb3VwJyxcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5ncm91cCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUhlbHBlcnMoKTogdm9pZCB7XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKCd4Jyk7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKCd5Jyk7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFdpZHRoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZSgnd2lkdGgnKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jyk7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEVuZFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRYKCkgKyB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJhd0JhcigpO1xuICAgICAgICB0aGlzLl9kcmF3TGFiZWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3QmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gY3JlYXRlU1ZHKCdyZWN0Jywge1xuICAgICAgICAgICAgeDogdGhpcy5feCxcbiAgICAgICAgICAgIHk6IHRoaXMuX3ksXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5fd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuX2hlaWdodCxcbiAgICAgICAgICAgIHJ4OiB0aGlzLl9jb3JuZXJSYWRpdXMsXG4gICAgICAgICAgICByeTogdGhpcy5fY29ybmVyUmFkaXVzLFxuICAgICAgICAgICAgY2xhc3M6ICdiYXInLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgICAgIGZpbGw6IHRoaXMudGFzaz8uY29sb3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFuaW1hdGVTVkcodGhpcy5lbGVtZW50LCAnd2lkdGgnLCAwLCB0aGlzLl93aWR0aCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2ludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdiYXItaW52YWxpZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhd0xhYmVsKCk6IHZvaWQge1xuICAgICAgICBjcmVhdGVTVkcoJ3RleHQnLCB7XG4gICAgICAgICAgICB4OiAodGhpcy5feCA/PyAwKSArICh0aGlzLl93aWR0aCA/PyAwKSAvIDIsXG4gICAgICAgICAgICB5OiAodGhpcy5feSA/PyAwKSArICh0aGlzLl9oZWlnaHQgPz8gMCkgLyAyLFxuICAgICAgICAgICAgaW5uZXJIVE1MOiB0aGlzLnRhc2s/LnNob3dUYXNrTmFtZSA/IHRoaXMudGFzay5uYW1lIDogJycsXG4gICAgICAgICAgICBjbGFzczogJ2Jhci1sYWJlbCcsXG4gICAgICAgICAgICBhcHBlbmRfdG86IHRoaXMuX2Jhckdyb3VwLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gbGFiZWxzIGdldCBCQm94IGluIHRoZSBuZXh0IHRpY2tcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuX3VwZGF0ZUxhYmVsUG9zaXRpb24oKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYmluZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXR1cENsaWNrRXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldHVwQ2xpY2tFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2dhbnR0Py5vcHRpb25zPy5oYXNQb3B1cCkge1xuICAgICAgICAgICAgJC5vbihcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLFxuICAgICAgICAgICAgICAgICdmb2N1cyAnICsgdGhpcy5fZ2FudHQub3B0aW9ucy5wb3B1cFRyaWdnZXIsXG4gICAgICAgICAgICAgICAgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IGZpbmlzaGVkIGEgbW92ZSBhY3Rpb24sIHdhaXQgZm9yIGEgZmV3IHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQ/LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICQub24oXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICAnZGJsY2xpY2snLFxuICAgICAgICAgICAgICAgIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Py50cmlnZ2VyX2V2ZW50KCdvbkNsaWNrJywgW3RoaXMudGFza10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQub24oXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICAnbW91c2VlbnRlcicsXG4gICAgICAgICAgICAgICAgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lzUG9wVXBPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93UG9wdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IGUuY2xpZW50WCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLmdyb3VwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIDMwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnbWlkZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNQb3BVcE9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJC5vbihcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLFxuICAgICAgICAgICAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgICAgICAgICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Py5oaWRlX3BvcHVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzUG9wVXBPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJC5vbihcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLFxuICAgICAgICAgICAgICAgICdmb2N1cyBjbGljaycsXG4gICAgICAgICAgICAgICAgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQ/LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Py50cmlnZ2VyX2V2ZW50KCdvbkNsaWNrJywgW3RoaXMudGFza10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3Nob3dQb3B1cChhcmdzPzogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9nYW50dD8uYmFyX2JlaW5nX2RyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YnRpdGxlOiBhbnkgPSB7fTtcblxuICAgICAgICBpZiAoIXRoaXMuX2dhbnR0Py5vcHRpb25zPy5zaG93T25seUhvdXJzKSB7XG4gICAgICAgICAgICBzdWJ0aXRsZS5zdGFydERhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KHRoaXMudGFzaz8uc3RhcnQsICdERC9NTS9ZWVlZJywgdGhpcy5fZ2FudHQ/Lm9wdGlvbnM/Lmxhbmd1YWdlKTtcbiAgICAgICAgICAgIHN1YnRpdGxlLmVuZERhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KHRoaXMudGFzaz8uZW5kLCAnREQvTU0vWVlZWScsIHRoaXMuX2dhbnR0Py5vcHRpb25zPy5sYW5ndWFnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX2dhbnR0Py5vcHRpb25zPy5zaG93T25seURheXMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0SG91ciA9IERhdGVVdGlscy5mb3JtYXQodGhpcy50YXNrPy5zdGFydCwgJ0hIOm1tOnNzJywgdGhpcy5fZ2FudHQ/Lm9wdGlvbnM/Lmxhbmd1YWdlKTtcbiAgICAgICAgICAgIHN1YnRpdGxlLmVuZEhvdXIgPSBEYXRlVXRpbHMuZm9ybWF0KHRoaXMudGFzaz8uZW5kLCAnSEg6bW06c3MnLCB0aGlzLl9nYW50dD8ub3B0aW9ucz8ubGFuZ3VhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZ2FudHQ/LnNob3dfcG9wdXAoe1xuICAgICAgICAgICAgdGFyZ2V0X2VsZW1lbnQ6IHRoaXMuZWxlbWVudCxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRhc2s/Lm5hbWUsXG4gICAgICAgICAgICBzdWJ0aXRsZTogc3VidGl0bGUsXG4gICAgICAgICAgICB0YXNrOiB0aGlzLnRhc2ssXG4gICAgICAgICAgICAuLi5hcmdzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlU3RhcnRFbmREYXRlKCk6IHsgbmV3U3RhcnREYXRlOiBEYXRlOyBuZXdFbmREYXRlOiBEYXRlIH0gfCBudWxsIHtcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0Py5vcHRpb25zPy5jb2x1bW5XaWR0aCkgfHwgaXNOdWxsT3JVbmRlZmluZWQodGhpcy5fZ2FudHQubWluRGF0ZSkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgY29uc3QgeEluVW5pdHMgPSBiYXIuZ2V0WCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3U3RhcnREYXRlID0gRGF0ZVV0aWxzLmFkZCh0aGlzLl9nYW50dC5taW5EYXRlLCB4SW5Vbml0cyAqICh0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAgPz8gMCksICdob3VyJyk7XG4gICAgICAgIGNvbnN0IHdpZHRoSW5Vbml0cyA9IGJhci5nZXRXaWR0aCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3RW5kRGF0ZSA9IERhdGVVdGlscy5hZGQobmV3U3RhcnREYXRlLCB3aWR0aEluVW5pdHMgKiAodGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwID8/IDApLCAnaG91cicpO1xuXG4gICAgICAgIHJldHVybiB7IG5ld1N0YXJ0RGF0ZSwgbmV3RW5kRGF0ZSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXB1dGVYKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9nYW50dCkpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dhbnR0Lm9wdGlvbnM7XG5cbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKG9wdGlvbnMpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IHsgc3RlcCwgY29sdW1uV2lkdGggfSA9IG9wdGlvbnM7XG5cbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHN0ZXApIHx8IGlzTnVsbE9yVW5kZWZpbmVkKGNvbHVtbldpZHRoKSB8fCBpc051bGxPclVuZGVmaW5lZCh0aGlzLnRhc2spIHx8IGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0Lm1pbkRhdGUpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGxldCB4O1xuICAgICAgICBpZiAodGhpcy5fZ2FudHQ/LnZpZXdfaXMoW1ZpZXdNb2RlLlF1YXJ0ZXJIb3VyLCBWaWV3TW9kZS5Ib3VyLCBWaWV3TW9kZS5RdWFydGVyRGF5LCBWaWV3TW9kZS5IYWxmRGF5LCBWaWV3TW9kZS5EYXldKSkge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgJ21pbnV0ZXMnKTtcbiAgICAgICAgICAgIHggPSAoZGlmZiAvIHN0ZXApICogKGNvbHVtbldpZHRoIC8gNjApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgJ2hvdXInKTtcbiAgICAgICAgICAgIHggPSAoZGlmZiAvIHN0ZXApICogY29sdW1uV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlWSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKHRoaXMuX2dhbnR0Py5vcHRpb25zPy5oZWFkZXJIZWlnaHQgPz8gMCkgKyAodGhpcy5fZ2FudHQ/Lm9wdGlvbnM/LnBhZGRpbmcgPz8gMCkgKyAodGhpcy50YXNrPy5faW5kZXggPz8gMCkgKiAoKHRoaXMuX2hlaWdodCA/PyAwKSArICh0aGlzLl9nYW50dD8ub3B0aW9ucz8ucGFkZGluZyA/PyAwKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcignLmJhci1sYWJlbCcpO1xuXG4gICAgICAgIGlmIChsYWJlbC5nZXRCQm94KCkud2lkdGggPiBiYXIuZ2V0V2lkdGgoKSkge1xuICAgICAgICAgICAgbGFiZWwuY2xhc3NMaXN0LmFkZCgnYmlnJyk7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoJ3gnLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2JpZycpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKCd4JywgYmFyLmdldFgoKSArIGJhci5nZXRXaWR0aCgpIC8gMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVBcnJvd1Bvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hcnJvd3MgPSB0aGlzLl9hcnJvd3MgfHwgW107XG4gICAgICAgIGZvciAoY29uc3QgYXJyb3cgb2YgdGhpcy5fYXJyb3dzKSB7XG4gICAgICAgICAgICBhcnJvdy51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2dhbnR0L3NyYy9saWIvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxNQUFNLE9BQU8sR0FBRztJQUNKLGdCQUFnQixDQUFXO0lBQzNCLE1BQU0sQ0FBUztJQUNmLFFBQVEsQ0FBVztJQUNuQixPQUFPLENBQVU7SUFDakIsRUFBRSxDQUFVO0lBQ1osRUFBRSxDQUFVO0lBQ1osYUFBYSxDQUFVO0lBQ3ZCLFNBQVMsQ0FBVTtJQUNuQixNQUFNLENBQVU7SUFDaEIsU0FBUyxDQUFNO0lBRWYsT0FBTyxDQUFXO0lBQ2xCLE1BQU0sQ0FBTztJQUNiLEtBQUssQ0FBZ0I7SUFDckIsUUFBUSxDQUFNO0lBRWQsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUU3QixZQUFZLEtBQVUsRUFBRSxJQUFTO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJ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QUFDLE9BQU8sRUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRW5ELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmlldy1tb2RlJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4vdXRpbHMvZGF0ZS11dGlscyc7XG5pbXBvcnQgeyAkLCBhbmltYXRlU1ZHLCBjcmVhdGVTVkcgfSBmcm9tICcuL3V0aWxzL3N2Zy11dGlscyc7XG5pbXBvcnQgeyBFbnJpY2hlZFRhc2sgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFzayc7XG5pbXBvcnQgeyBBcnJvdyB9IGZyb20gJy4vYXJyb3cnO1xuaW1wb3J0IHsgR2FudHQgfSBmcm9tICcuL2dhbnR0JztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBCYXIge1xuICAgIHByaXZhdGUgX2FjdGlvbkNvbXBsZXRlZD86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfZ2FudHQ/OiBHYW50dDtcbiAgICBwcml2YXRlIF9pbnZhbGlkPzogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9oZWlnaHQ/OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfeD86IG51bWJlcjtcbiAgICBwcml2YXRlIF95PzogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Nvcm5lclJhZGl1cz86IG51bWJlcjtcbiAgICBwcml2YXRlIF9kdXJhdGlvbj86IG51bWJlcjtcbiAgICBwcml2YXRlIF93aWR0aD86IG51bWJlcjtcbiAgICBwcml2YXRlIF9iYXJHcm91cDogYW55O1xuXG4gICAgcHJpdmF0ZSBfYXJyb3dzPzogQXJyb3dbXTtcbiAgICBwcml2YXRlIF9ncm91cD86IGFueTtcbiAgICBwcml2YXRlIF90YXNrITogRW5yaWNoZWRUYXNrO1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IGFueTtcblxuICAgIHByaXZhdGUgX2lzUG9wVXBPcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihnYW50dDogYW55LCB0YXNrOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdHMoZ2FudHQsIHRhc2spO1xuICAgICAgICB0aGlzLl9wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX2RyYXcoKTtcbiAgICAgICAgdGhpcy5fYmluZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXJyb3dzKCk6IEFycm93W10gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFzaygpOiBFbnJpY2hlZFRhc2sge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFycm93cyhhcnJvd3M6IEFycm93W10pIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVCYXJQb3NpdGlvbih7IHgsIHdpZHRoIH06IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAvLyBnZXQgYWxsIHggdmFsdWVzIG9mIHBhcmVudCB0YXNrXG4gICAgICAgICAgICBjb25zdCB4cyA9IHRoaXMudGFzaz8uZGVwZW5kZW5jaWVzPy5tYXAoKGRlcDogYW55KSA9PiB0aGlzLl9nYW50dD8uZ2V0X2JhcihkZXApPy5lbGVtZW50LmdldFgoKSk7XG4gICAgICAgICAgICAvLyBjaGlsZCB0YXNrIG11c3Qgbm90IGdvIGJlZm9yZSBwYXJlbnRcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkWCA9IHhzPy5yZWR1Y2UoKHByZXY6IGFueSwgY3VycjogYW55KSA9PiB4ID49IGN1cnIsIHgpO1xuICAgICAgICAgICAgaWYgKCF2YWxpZFgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsICd4JywgeCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpZHRoICYmIHdpZHRoID49ICh0aGlzLl9nYW50dD8ub3B0aW9ucz8uY29sdW1uV2lkdGggPz8gMCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUF0dHIoYmFyLCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLl91cGRhdGVBcnJvd1Bvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjb21wdXRlZFN0YXJ0RW5kRGF0ZSA9IHRoaXMuX2NvbXB1dGVTdGFydEVuZERhdGUoKTtcblxuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoY29tcHV0ZWRTdGFydEVuZERhdGUpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfSA9IGNvbXB1dGVkU3RhcnRFbmREYXRlO1xuXG4gICAgICAgIGlmICh0aGlzLnRhc2s/LnN0YXJ0ICE9PSBuZXdTdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFzaykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2suc3RhcnQgPSBuZXdTdGFydERhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXNrPy5lbmQgIT09IG5ld0VuZERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFzaykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2suZW5kID0gbmV3RW5kRGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9nYW50dD8udHJpZ2dlcl9ldmVudCgnb25EYXRlQ2hhbmdlJywgW3RoaXMudGFzaywgbmV3U3RhcnREYXRlLCBEYXRlVXRpbHMuYWRkKG5ld0VuZERhdGUsIC0xLCAnc2Vjb25kJyldKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25Db21wbGV0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRzKGdhbnR0OiBhbnksIHRhc2s6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2FudHQgPSBnYW50dDtcbiAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlcygpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlSGVscGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGFzaykgfHxcbiAgICAgICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0KSB8fFxuICAgICAgICAgICAgaXNOdWxsT3JVbmRlZmluZWQodGhpcy5fZ2FudHQub3B0aW9ucykgfHxcbiAgICAgICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcClcbiAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB0aGlzLnRhc2suaW52YWxpZDtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3ggPSB0aGlzLl9jb21wdXRlWCgpO1xuICAgICAgICB0aGlzLl95ID0gdGhpcy5fY29tcHV0ZVkoKTtcbiAgICAgICAgdGhpcy5fY29ybmVyUmFkaXVzID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJDb3JuZXJSYWRpdXM7XG4gICAgICAgIHRoaXMuX2R1cmF0aW9uID0gRGF0ZVV0aWxzLmRpZmYodGhpcy50YXNrLmVuZCwgdGhpcy50YXNrLnN0YXJ0LCAnbWludXRlJykgLyB0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAgLyA2MC4wO1xuICAgICAgICB0aGlzLl93aWR0aCA9ICh0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoID8/IDApICogdGhpcy5fZHVyYXRpb247XG4gICAgICAgIHRoaXMuX2dyb3VwID0gY3JlYXRlU1ZHKCdnJywge1xuICAgICAgICAgICAgY2xhc3M6ICdiYXItd3JhcHBlciAnICsgKHRoaXMudGFzay5jdXN0b21fY2xhc3MgfHwgJycpLFxuICAgICAgICAgICAgJ2RhdGEtaWQnOiB0aGlzLnRhc2suaWQsXG4gICAgICAgICAgICB0YWJpbmRleDogJzAnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fYmFyR3JvdXAgPSBjcmVhdGVTVkcoJ2cnLCB7XG4gICAgICAgICAgICBjbGFzczogJ2Jhci1ncm91cCcsXG4gICAgICAgICAgICBhcHBlbmRfdG86IHRoaXMuZ3JvdXAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWxwZXJzKCk6IHZvaWQge1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRYID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZSgneCcpO1xuICAgICAgICB9O1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRZID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZSgneScpO1xuICAgICAgICB9O1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRXaWR0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoJ3dpZHRoJyk7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpO1xuICAgICAgICB9O1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRFbmRYID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0WCgpICsgdGhpcy5nZXRXaWR0aCgpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RyYXdCYXIoKTtcbiAgICAgICAgdGhpcy5fZHJhd0xhYmVsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhd0JhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudCA9IGNyZWF0ZVNWRygncmVjdCcsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3gsXG4gICAgICAgICAgICB5OiB0aGlzLl95LFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuX3dpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLl9oZWlnaHQsXG4gICAgICAgICAgICByeDogdGhpcy5fY29ybmVyUmFkaXVzLFxuICAgICAgICAgICAgcnk6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIGNsYXNzOiAnYmFyJyxcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLnRhc2s/LmNvbG9yLFxuICAgICAgICB9KTtcblxuICAgICAgICBhbmltYXRlU1ZHKHRoaXMuZWxlbWVudCwgJ3dpZHRoJywgMCwgdGhpcy5fd2lkdGgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYmFyLWludmFsaWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgY3JlYXRlU1ZHKCd0ZXh0Jywge1xuICAgICAgICAgICAgeDogKHRoaXMuX3ggPz8gMCkgKyAodGhpcy5fd2lkdGggPz8gMCkgLyAyLFxuICAgICAgICAgICAgeTogKHRoaXMuX3kgPz8gMCkgKyAodGhpcy5faGVpZ2h0ID8/IDApIC8gMixcbiAgICAgICAgICAgIGlubmVySFRNTDogdGhpcy50YXNrPy5zaG93VGFza05hbWUgPyB0aGlzLnRhc2submFtZSA6ICcnLFxuICAgICAgICAgICAgY2xhc3M6ICdiYXItbGFiZWwnLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGxhYmVscyBnZXQgQkJveCBpbiB0aGUgbmV4dCB0aWNrXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl91cGRhdGVMYWJlbFBvc2l0aW9uKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2JpbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0dXBDbGlja0V2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXR1cENsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9nYW50dD8ub3B0aW9ucz8uaGFzUG9wdXApIHtcbiAgICAgICAgICAgICQub24oXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICAnZm9jdXMgJyArIHRoaXMuX2dhbnR0Lm9wdGlvbnMucG9wdXBUcmlnZ2VyLFxuICAgICAgICAgICAgICAgIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fYWN0aW9uQ29tcGxldGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93UG9wdXAoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Py51bnNlbGVjdF9hbGwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAkLm9uKFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAsXG4gICAgICAgICAgICAgICAgJ2RibGNsaWNrJyxcbiAgICAgICAgICAgICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgZmluaXNoZWQgYSBtb3ZlIGFjdGlvbiwgd2FpdCBmb3IgYSBmZXcgc2Vjb25kc1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fYWN0aW9uQ29tcGxldGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dD8udHJpZ2dlcl9ldmVudCgnb25DbGljaycsIFt0aGlzLnRhc2tdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkLm9uKFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAsXG4gICAgICAgICAgICAgICAgJ21vdXNlZW50ZXInLFxuICAgICAgICAgICAgICAgIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1BvcFVwT3Blbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd1BvcHVwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBlLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5ncm91cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyAzMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ21pZGRsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzUG9wVXBPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICQub24oXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgICAgICAgICAgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dD8uaGlkZV9wb3B1cCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc1BvcFVwT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICQub24oXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICAnZm9jdXMgY2xpY2snLFxuICAgICAgICAgICAgICAgIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Py51bnNlbGVjdF9hbGwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dD8udHJpZ2dlcl9ldmVudCgnb25DbGljaycsIFt0aGlzLnRhc2tdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaG93UG9wdXAoYXJncz86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZ2FudHQ/LmJhcl9iZWluZ19kcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJ0aXRsZTogYW55ID0ge307XG5cbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dD8ub3B0aW9ucz8uc2hvd09ubHlIb3Vycykge1xuICAgICAgICAgICAgc3VidGl0bGUuc3RhcnREYXRlID0gRGF0ZVV0aWxzLmZvcm1hdCh0aGlzLnRhc2s/LnN0YXJ0LCAnREQvTU0vWVlZWScsIHRoaXMuX2dhbnR0Py5vcHRpb25zPy5sYW5ndWFnZSk7XG4gICAgICAgICAgICBzdWJ0aXRsZS5lbmREYXRlID0gRGF0ZVV0aWxzLmZvcm1hdCh0aGlzLnRhc2s/LmVuZCwgJ0REL01NL1lZWVknLCB0aGlzLl9nYW50dD8ub3B0aW9ucz8ubGFuZ3VhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dD8ub3B0aW9ucz8uc2hvd09ubHlEYXlzKSB7XG4gICAgICAgICAgICBzdWJ0aXRsZS5zdGFydEhvdXIgPSBEYXRlVXRpbHMuZm9ybWF0KHRoaXMudGFzaz8uc3RhcnQsICdISDptbTpzcycsIHRoaXMuX2dhbnR0Py5vcHRpb25zPy5sYW5ndWFnZSk7XG4gICAgICAgICAgICBzdWJ0aXRsZS5lbmRIb3VyID0gRGF0ZVV0aWxzLmZvcm1hdCh0aGlzLnRhc2s/LmVuZCwgJ0hIOm1tOnNzJywgdGhpcy5fZ2FudHQ/Lm9wdGlvbnM/Lmxhbmd1YWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2dhbnR0Py5zaG93X3BvcHVwKHtcbiAgICAgICAgICAgIHRhcmdldF9lbGVtZW50OiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50YXNrPy5uYW1lLFxuICAgICAgICAgICAgc3VidGl0bGU6IHN1YnRpdGxlLFxuICAgICAgICAgICAgdGFzazogdGhpcy50YXNrLFxuICAgICAgICAgICAgLi4uYXJncyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVN0YXJ0RW5kRGF0ZSgpOiB7IG5ld1N0YXJ0RGF0ZTogRGF0ZTsgbmV3RW5kRGF0ZTogRGF0ZSB9IHwgbnVsbCB7XG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9nYW50dD8ub3B0aW9ucz8uY29sdW1uV2lkdGgpIHx8IGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2dhbnR0Lm1pbkRhdGUpKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHhJblVuaXRzID0gYmFyLmdldFgoKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuY29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1N0YXJ0RGF0ZSA9IERhdGVVdGlscy5hZGQodGhpcy5fZ2FudHQubWluRGF0ZSwgeEluVW5pdHMgKiAodGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwID8/IDApLCAnaG91cicpO1xuICAgICAgICBjb25zdCB3aWR0aEluVW5pdHMgPSBiYXIuZ2V0V2lkdGgoKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuY29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld0VuZERhdGUgPSBEYXRlVXRpbHMuYWRkKG5ld1N0YXJ0RGF0ZSwgd2lkdGhJblVuaXRzICogKHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCA/PyAwKSwgJ2hvdXInKTtcblxuICAgICAgICByZXR1cm4geyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlWCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5fZ2FudHQpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9nYW50dC5vcHRpb25zO1xuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChvcHRpb25zKSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICBjb25zdCB7IHN0ZXAsIGNvbHVtbldpZHRoIH0gPSBvcHRpb25zO1xuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChzdGVwKSB8fCBpc051bGxPclVuZGVmaW5lZChjb2x1bW5XaWR0aCkgfHwgaXNOdWxsT3JVbmRlZmluZWQodGhpcy50YXNrKSB8fCBpc051bGxPclVuZGVmaW5lZCh0aGlzLl9nYW50dC5taW5EYXRlKSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICBsZXQgeDtcbiAgICAgICAgaWYgKHRoaXMuX2dhbnR0Py52aWV3X2lzKFtWaWV3TW9kZS5RdWFydGVySG91ciwgVmlld01vZGUuSG91ciwgVmlld01vZGUuUXVhcnRlckRheSwgVmlld01vZGUuSGFsZkRheSwgVmlld01vZGUuRGF5XSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsICdtaW51dGVzJyk7XG4gICAgICAgICAgICB4ID0gKGRpZmYgLyBzdGVwKSAqIChjb2x1bW5XaWR0aCAvIDYwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsICdob3VyJyk7XG4gICAgICAgICAgICB4ID0gKGRpZmYgLyBzdGVwKSAqIGNvbHVtbldpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9nYW50dD8ub3B0aW9ucz8uaGVhZGVySGVpZ2h0ID8/IDApICsgKHRoaXMuX2dhbnR0Py5vcHRpb25zPy5wYWRkaW5nID8/IDApICsgKHRoaXMudGFzaz8uX2luZGV4ID8/IDApICogKCh0aGlzLl9oZWlnaHQgPz8gMCkgKyAodGhpcy5fZ2FudHQ/Lm9wdGlvbnM/LnBhZGRpbmcgPz8gMCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUF0dHIoZWxlbWVudDogYW55LCBhdHRyOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XG4gICAgICAgIGlmICghaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlTGFiZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFyID0gdGhpcy5lbGVtZW50LFxuICAgICAgICAgICAgbGFiZWwgPSB0aGlzLmdyb3VwLnF1ZXJ5U2VsZWN0b3IoJy5iYXItbGFiZWwnKTtcblxuICAgICAgICBpZiAobGFiZWwuZ2V0QkJveCgpLndpZHRoID4gYmFyLmdldFdpZHRoKCkpIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ2JpZycpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKCd4JywgYmFyLmdldFgoKSArIGJhci5nZXRXaWR0aCgpICsgNSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QucmVtb3ZlKCdiaWcnKTtcbiAgICAgICAgICAgIGxhYmVsLnNldEF0dHJpYnV0ZSgneCcsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGFycm93IG9mIHRoaXMuX2Fycm93cykge1xuICAgICAgICAgICAgYXJyb3cudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -130,11 +130,11 @@ export class GanttComponent {
130
130
  });
131
131
  }
132
132
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
133
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GanttComponent, isStandalone: true, selector: "s-gantt", inputs: { columnTitle: "columnTitle", multipleTaskPerLine: "multipleTaskPerLine", showSideTable: "showSideTable", viewMode: "viewMode", tasks: "tasks", marginBeforeStart: "marginBeforeStart", marginAfterEnd: "marginAfterEnd", allowMovement: "allowMovement", hasPopup: "hasPopup", containerWidth: "containerWidth", fullWidth: "fullWidth", showOnlyHours: "showOnlyHours", showOnlyDays: "showOnlyDays" }, outputs: { taskClicked: "taskClicked", taskDateChanged: "taskDateChanged", viewChanged: "viewChanged" }, viewQueries: [{ propertyName: "outer", first: true, predicate: ["outer"], descendants: true }, { propertyName: "side", first: true, predicate: ["side"], descendants: true }, { propertyName: "ganttSvg", first: true, predicate: ["ganttSvg"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"outer\" #outer>\n <div #side>\n @if(showSideTable) {\n <gantt-side-table\n [tasks]=\"tasks\"\n [columnTitle]=\"columnTitle ?? ''\"\n [multipleTaskPerLine]=\"multipleTaskPerLine\">\n </gantt-side-table>\n }\n </div>\n <svg #ganttSvg></svg>\n</div>\n", styles: [".outer{display:flex;justify-content:center;align-items:flex-start;align-content:center;flex-wrap:nowrap;flex-direction:row}\n", ".gantt{border:1px solid #e0e0e0}.gantt .weekend-highlight{fill:#b8c2cc;opacity:.5;stroke:#ebeff2;stroke-width:1}.gantt .grid-background{fill:none}.gantt .grid-header,.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.4}.gantt .tick.thick{stroke:#428bca;stroke-width:2}.gantt .today-highlight{fill:#ffe979;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{opacity:.8;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;-webkit-user-select:none;user-select:none}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-dasharray:5;stroke-width:1}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:hover .bar,.gantt .bar-wrapper.active .bar{opacity:1}.gantt .bar-wrapper.active .bar{stroke:#212533;stroke-width:2}.gantt .lower-text,.gantt .upper-text{font-size:12px;text-anchor:middle}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{border-left:1px solid #e0e0e0;font-size:12px;overflow:auto;position:relative}.gantt-container .title-1{fill:#999;font-size:12px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .title-2{fill:#333;font-size:14px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .popup-wrapper{left:0;position:absolute;top:0}.gantt-container .popup-wrapper .popup{background:#0e1119;border-radius:2px;color:#fff;padding:8px;font-family:\"Open Sans\" sans-serif;line-height:150%;font-weight:400}.gantt-container .popup-wrapper .popup .wrp-title{border-bottom:1px solid #525966;padding-bottom:10px}.gantt-container .popup-wrapper .popup .wrp-title .title{font-size:14px}.gantt-container .popup-wrapper .popup .wrp-subtitle{color:#dfe2e5;padding-top:10px;display:flex;align-items:center}.gantt-container .popup-wrapper .popup .wrp-subtitle .icon{margin-right:10px}.gantt-container .popup-wrapper .popup .wrp-subtitle .subtitle{font-size:12px}.gantt-container .popup-wrapper .popup .pointer{border:6px solid transparent;border-top-color:#0e1119;height:6px;margin-left:-4px;position:absolute}\n"], dependencies: [{ kind: "component", type: SideTableComponent, selector: "gantt-side-table", inputs: ["columnTitle", "tasks", "multipleTaskPerLine"] }], encapsulation: i0.ViewEncapsulation.None });
133
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GanttComponent, isStandalone: true, selector: "s-gantt", inputs: { columnTitle: "columnTitle", multipleTaskPerLine: "multipleTaskPerLine", showSideTable: "showSideTable", viewMode: "viewMode", tasks: "tasks", marginBeforeStart: "marginBeforeStart", marginAfterEnd: "marginAfterEnd", allowMovement: "allowMovement", hasPopup: "hasPopup", containerWidth: "containerWidth", fullWidth: "fullWidth", showOnlyHours: "showOnlyHours", showOnlyDays: "showOnlyDays" }, outputs: { taskClicked: "taskClicked", taskDateChanged: "taskDateChanged", viewChanged: "viewChanged" }, viewQueries: [{ propertyName: "outer", first: true, predicate: ["outer"], descendants: true }, { propertyName: "side", first: true, predicate: ["side"], descendants: true }, { propertyName: "ganttSvg", first: true, predicate: ["ganttSvg"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"outer\" #outer>\n <div #side>\n @if(showSideTable) {\n <gantt-side-table\n [tasks]=\"tasks\"\n [columnTitle]=\"columnTitle ?? ''\"\n [multipleTaskPerLine]=\"multipleTaskPerLine\">\n </gantt-side-table>\n }\n </div>\n <svg #ganttSvg></svg>\n</div>\n", styles: [".outer{display:flex;justify-content:center;align-items:flex-start;align-content:center;flex-wrap:nowrap;flex-direction:row}\n", ".gantt{border:1px solid #e0e0e0}.gantt .weekend-highlight{fill:#b8c2cc;opacity:.5;stroke:#ebeff2;stroke-width:1}.gantt .grid-background{fill:none}.gantt .grid-header,.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.4}.gantt .tick.thick{stroke:#428bca;stroke-width:2}.gantt .today-highlight{fill:#ffe979;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{opacity:.8;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;-webkit-user-select:none;user-select:none}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-dasharray:5;stroke-width:1}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:focus-visible{outline:2px solid var(--s-focus-ring-color);outline-offset:3px}.gantt .bar-wrapper:hover .bar,.gantt .bar-wrapper.active .bar{opacity:1}.gantt .bar-wrapper.active .bar{stroke:#212533;stroke-width:2}.gantt .lower-text,.gantt .upper-text{font-size:12px;text-anchor:middle}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{border-left:1px solid #e0e0e0;font-size:12px;overflow:auto;position:relative}.gantt-container .title-1{fill:#999;font-size:12px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .title-2{fill:#333;font-size:14px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .popup-wrapper{left:0;position:absolute;top:0}.gantt-container .popup-wrapper .popup{background:#0e1119;border-radius:2px;color:#fff;padding:8px;font-family:\"Open Sans\" sans-serif;line-height:150%;font-weight:400}.gantt-container .popup-wrapper .popup .wrp-title{border-bottom:1px solid #525966;padding-bottom:10px}.gantt-container .popup-wrapper .popup .wrp-title .title{font-size:14px}.gantt-container .popup-wrapper .popup .wrp-subtitle{color:#dfe2e5;padding-top:10px;display:flex;align-items:center}.gantt-container .popup-wrapper .popup .wrp-subtitle .icon{margin-right:10px}.gantt-container .popup-wrapper .popup .wrp-subtitle .subtitle{font-size:12px}.gantt-container .popup-wrapper .popup .pointer{border:6px solid transparent;border-top-color:#0e1119;height:6px;margin-left:-4px;position:absolute}\n"], dependencies: [{ kind: "component", type: SideTableComponent, selector: "gantt-side-table", inputs: ["columnTitle", "tasks", "multipleTaskPerLine"] }], encapsulation: i0.ViewEncapsulation.None });
134
134
  }
135
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttComponent, decorators: [{
136
136
  type: Component,
137
- args: [{ selector: 's-gantt', encapsulation: ViewEncapsulation.None, standalone: true, imports: [SideTableComponent], template: "<div class=\"outer\" #outer>\n <div #side>\n @if(showSideTable) {\n <gantt-side-table\n [tasks]=\"tasks\"\n [columnTitle]=\"columnTitle ?? ''\"\n [multipleTaskPerLine]=\"multipleTaskPerLine\">\n </gantt-side-table>\n }\n </div>\n <svg #ganttSvg></svg>\n</div>\n", styles: [".outer{display:flex;justify-content:center;align-items:flex-start;align-content:center;flex-wrap:nowrap;flex-direction:row}\n", ".gantt{border:1px solid #e0e0e0}.gantt .weekend-highlight{fill:#b8c2cc;opacity:.5;stroke:#ebeff2;stroke-width:1}.gantt .grid-background{fill:none}.gantt .grid-header,.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.4}.gantt .tick.thick{stroke:#428bca;stroke-width:2}.gantt .today-highlight{fill:#ffe979;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{opacity:.8;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;-webkit-user-select:none;user-select:none}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-dasharray:5;stroke-width:1}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:hover .bar,.gantt .bar-wrapper.active .bar{opacity:1}.gantt .bar-wrapper.active .bar{stroke:#212533;stroke-width:2}.gantt .lower-text,.gantt .upper-text{font-size:12px;text-anchor:middle}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{border-left:1px solid #e0e0e0;font-size:12px;overflow:auto;position:relative}.gantt-container .title-1{fill:#999;font-size:12px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .title-2{fill:#333;font-size:14px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .popup-wrapper{left:0;position:absolute;top:0}.gantt-container .popup-wrapper .popup{background:#0e1119;border-radius:2px;color:#fff;padding:8px;font-family:\"Open Sans\" sans-serif;line-height:150%;font-weight:400}.gantt-container .popup-wrapper .popup .wrp-title{border-bottom:1px solid #525966;padding-bottom:10px}.gantt-container .popup-wrapper .popup .wrp-title .title{font-size:14px}.gantt-container .popup-wrapper .popup .wrp-subtitle{color:#dfe2e5;padding-top:10px;display:flex;align-items:center}.gantt-container .popup-wrapper .popup .wrp-subtitle .icon{margin-right:10px}.gantt-container .popup-wrapper .popup .wrp-subtitle .subtitle{font-size:12px}.gantt-container .popup-wrapper .popup .pointer{border:6px solid transparent;border-top-color:#0e1119;height:6px;margin-left:-4px;position:absolute}\n"] }]
137
+ args: [{ selector: 's-gantt', encapsulation: ViewEncapsulation.None, standalone: true, imports: [SideTableComponent], template: "<div class=\"outer\" #outer>\n <div #side>\n @if(showSideTable) {\n <gantt-side-table\n [tasks]=\"tasks\"\n [columnTitle]=\"columnTitle ?? ''\"\n [multipleTaskPerLine]=\"multipleTaskPerLine\">\n </gantt-side-table>\n }\n </div>\n <svg #ganttSvg></svg>\n</div>\n", styles: [".outer{display:flex;justify-content:center;align-items:flex-start;align-content:center;flex-wrap:nowrap;flex-direction:row}\n", ".gantt{border:1px solid #e0e0e0}.gantt .weekend-highlight{fill:#b8c2cc;opacity:.5;stroke:#ebeff2;stroke-width:1}.gantt .grid-background{fill:none}.gantt .grid-header,.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.4}.gantt .tick.thick{stroke:#428bca;stroke-width:2}.gantt .today-highlight{fill:#ffe979;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{opacity:.8;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;-webkit-user-select:none;user-select:none}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-dasharray:5;stroke-width:1}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:focus-visible{outline:2px solid var(--s-focus-ring-color);outline-offset:3px}.gantt .bar-wrapper:hover .bar,.gantt .bar-wrapper.active .bar{opacity:1}.gantt .bar-wrapper.active .bar{stroke:#212533;stroke-width:2}.gantt .lower-text,.gantt .upper-text{font-size:12px;text-anchor:middle}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{border-left:1px solid #e0e0e0;font-size:12px;overflow:auto;position:relative}.gantt-container .title-1{fill:#999;font-size:12px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .title-2{fill:#333;font-size:14px;font-weight:400;line-height:150%;text-anchor:middle}.gantt-container .popup-wrapper{left:0;position:absolute;top:0}.gantt-container .popup-wrapper .popup{background:#0e1119;border-radius:2px;color:#fff;padding:8px;font-family:\"Open Sans\" sans-serif;line-height:150%;font-weight:400}.gantt-container .popup-wrapper .popup .wrp-title{border-bottom:1px solid #525966;padding-bottom:10px}.gantt-container .popup-wrapper .popup .wrp-title .title{font-size:14px}.gantt-container .popup-wrapper .popup .wrp-subtitle{color:#dfe2e5;padding-top:10px;display:flex;align-items:center}.gantt-container .popup-wrapper .popup .wrp-subtitle .icon{margin-right:10px}.gantt-container .popup-wrapper .popup .wrp-subtitle .subtitle{font-size:12px}.gantt-container .popup-wrapper .popup .pointer{border:6px solid transparent;border-top-color:#0e1119;height:6px;margin-left:-4px;position:absolute}\n"] }]
138
138
  }], propDecorators: { columnTitle: [{
139
139
  type: Input
140
140
  }], multipleTaskPerLine: [{
@@ -178,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
178
178
  type: ViewChild,
179
179
  args: ['ganttSvg']
180
180
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2dhbnR0L3NyYy9saWIvZ2FudHQvZ2FudHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2dhbnR0L3NyYy9saWIvZ2FudHQvZ2FudHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixZQUFZLEVBR1osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBRWxGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBU0gsTUFBTSxPQUFPLGNBQWM7SUFDdkIsMEVBQTBFO0lBRW5FLFdBQVcsQ0FBVTtJQUU1Qix1RkFBdUY7SUFFaEYsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBRW5DLGtGQUFrRjtJQUUzRSxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTVCLGlHQUFpRztJQUUxRixRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUUvQix1RkFBdUY7SUFFaEYsS0FBSyxDQUFlO0lBRTNCLHNFQUFzRTtJQUUvRCxpQkFBaUIsQ0FBVTtJQUVsQywrREFBK0Q7SUFFeEQsY0FBYyxDQUFVO0lBRS9CLG9GQUFvRjtJQUU3RSxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTVCLG1GQUFtRjtJQUU1RSxRQUFRLEdBQUcsSUFBSSxDQUFD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Z0JBS0EsV0FBVztzQkFEakIsTUFBTTtnQkFJQSxLQUFLO3NCQURYLFNBQVM7dUJBQUMsT0FBTztnQkFJWCxJQUFJO3NCQURWLFNBQVM7dUJBQUMsTUFBTTtnQkFJVixRQUFRO3NCQURkLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR2FudHQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2FudHQvZ2FudHQnO1xyXG5pbXBvcnQgeyBUYXNrR3JvdXAsIFRhc2ssIEVucmljaGVkVGFzayB9IGZyb20gJy4vbW9kZWxzL3Rhc2snO1xyXG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gJy4vbW9kZWxzL3ZpZXctbW9kZSc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XHJcbmltcG9ydCB7IFNpZGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWRlLXRhYmxlL3NpZGUtdGFibGUuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBkaWFncmFtYSBkZSBHYW50dCBwYXJhIHZpc3VhbGl6YcOnw6NvIGUgbWFuaXB1bGHDp8OjbyBkZSB0YXJlZmFzXHJcbiAqIGVtIGxpbmhhIGRvIHRlbXBvLiBTdXBvcnRhIGRpZmVyZW50ZXMgbW9kb3MgZGUgdmlzdWFsaXphw6fDo28gKGRpYSwgc2VtYW5hLCBtw6pzKSxcclxuICogbW92aW1lbnRhw6fDo28gZGUgdGFyZWZhcyB2aWEgZHJhZyBlIHBvcHVwIGRlIGRldGFsaGVzIGFvIGNsaWNhci5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1nYW50dFxyXG4gKiAgIFt0YXNrc109XCJncnVwb3NEZVRhcmVmYXNcIlxyXG4gKiAgIFt2aWV3TW9kZV09XCJ2aWV3TW9kZVwiXHJcbiAqICAgKHRhc2tDbGlja2VkKT1cIm9uVGFza0NsaWNhZGEoJGV2ZW50KVwiIC8+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgRGF0YVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtZ2FudHQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dhbnR0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2dhbnR0LmNvbXBvbmVudC5zY3NzJywgJy4vY29tcG9uZW50cy9nYW50dC9nYW50dC5zY3NzJ10sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtTaWRlVGFibGVDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2FudHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFTDrXR1bG8gZGEgY29sdW5hIGxhdGVyYWwgZGUgaWRlbnRpZmljYcOnw6NvIGRhcyB0YXJlZmFzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb2x1bW5UaXRsZT86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlcm1pdGUgcmVuZGVyaXphciBtw7psdGlwbGFzIHRhcmVmYXMgbmEgbWVzbWEgbGluaGEuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG11bHRpcGxlVGFza1BlckxpbmUgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIGEgdGFiZWxhIGxhdGVyYWwgY29tIG9zIG5vbWVzIGRhcyB0YXJlZmFzLiBAZGVmYXVsdCB0cnVlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTaWRlVGFibGUgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTW9kbyBkZSB2aXN1YWxpemHDp8OjbyBkbyBnYW50dCAoZGlhLCBzZW1hbmEsIG3DqnMsIGV0Yy4pLiBAZGVmYXVsdCBWaWV3TW9kZS5EYXkgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdmlld01vZGUgPSBWaWV3TW9kZS5EYXk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBncnVwb3MgZGUgdGFyZWZhcyBhIHNlcmVtIHJlbmRlcml6YWRvcy4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyB0YXNrcyE6IFRhc2tHcm91cFtdO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTWFyZ2VtIGVtIGRpYXMgYW50ZXMgZG8gaW7DrWNpbyBkYSBwcmltZWlyYSB0YXJlZmEuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1hcmdpbkJlZm9yZVN0YXJ0PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTWFyZ2VtIGVtIGRpYXMgYXDDs3MgbyBmaW0gZGEgw7psdGltYSB0YXJlZmEuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1hcmdpbkFmdGVyRW5kPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBhcnJhc3RhciBkZSB0YXJlZmFzIHBhcmEgYWx0ZXJhciBkYXRhcy4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbGxvd01vdmVtZW50ID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIHBvcHVwIGNvbSBkZXRhbGhlcyBhbyBjbGljYXIgZW0gdW1hIHRhcmVmYS4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBoYXNQb3B1cCA9IHRydWU7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYXJndXJhIGRvIGNvbnRhaW5lciBlbSBwaXhlbHMuIFNlIG9taXRpZG8sIHVzYSBhIGxhcmd1cmEgbmF0dXJhbC4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyV2lkdGg/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBGYXogbyBnYW50dCBvY3VwYXIgMTAwJSBkYSBsYXJndXJhIGRpc3BvbsOtdmVsLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmdWxsV2lkdGggPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIGFwZW5hcyBob3JhcyBuYSBsaW5oYSBkbyB0ZW1wbyAoaWdub3JhIGRpYXMpLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93T25seUhvdXJzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeGliZSBhcGVuYXMgZGlhcyBuYSBsaW5oYSBkbyB0ZW1wbyAoaWdub3JhIGhvcmFzKS4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd09ubHlEYXlzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIGNsaWNhIGVtIHVtYSB0YXJlZmEuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0YXNrQ2xpY2tlZDogRXZlbnRFbWl0dGVyPFRhc2s+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBhcnJhc3RhIGUgbW9kaWZpY2EgYXMgZGF0YXMgZGUgdW1hIHRhcmVmYS4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHRhc2tEYXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIG1vZG8gZGUgdmlzdWFsaXphw6fDo28gw6kgYWx0ZXJhZG8uICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2aWV3Q2hhbmdlZDogRXZlbnRFbWl0dGVyPFZpZXdNb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdvdXRlcicpXHJcbiAgICBwdWJsaWMgb3V0ZXI6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzaWRlJylcclxuICAgIHB1YmxpYyBzaWRlOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZ2FudHRTdmcnKVxyXG4gICAgcHVibGljIGdhbnR0U3ZnOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2FudHQ/OiBHYW50dDtcclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVWaWV3TW9kZSgpO1xyXG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlVGFza3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZ1bGxXaWR0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5vdXRlcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIHRoaXMuc2lkZT8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2dhbnR0ID0gbmV3IEdhbnR0KHRoaXMuZ2FudHRTdmchLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2ZpbHRlclRhc2sodGhpcy50YXNrcyksIHtcclxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMudmlld01vZGUsXHJcbiAgICAgICAgICAgIG1hcmdpbkJlZm9yZVN0YXJ0OiB0aGlzLm1hcmdpbkJlZm9yZVN0YXJ0LFxyXG4gICAgICAgICAgICBtYXJnaW5BZnRlckVuZDogdGhpcy5tYXJnaW5BZnRlckVuZCxcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICdwdC1icicsXHJcbiAgICAgICAgICAgIGFsbG93TW92ZW1lbnQ6IHRoaXMuYWxsb3dNb3ZlbWVudCxcclxuICAgICAgICAgICAgaGFzUG9wdXA6IHRoaXMuaGFzUG9wdXAsXHJcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiB0aGlzLmNvbnRhaW5lcldpZHRoLFxyXG4gICAgICAgICAgICBzaG93T25seUhvdXJzOiB0aGlzLnNob3dPbmx5SG91cnMsXHJcbiAgICAgICAgICAgIHNob3dPbmx5RGF5czogdGhpcy5zaG93T25seURheXMsXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6ICh0YXNrOiBUYXNrKSA9PiB0aGlzLnRhc2tDbGlja2VkLmVtaXQodGFzayksXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZTogKHRhc2s6IFRhc2ssIHN0YXJ0OiBhbnksIGVuZDogYW55KSA9PiB0aGlzLnRhc2tEYXRlQ2hhbmdlZC5lbWl0KHsgdGFzaywgc3RhcnQsIGVuZCB9KSxcclxuICAgICAgICAgICAgb25WaWV3Q2hhbmdlOiAodmlld01vZGU6IFZpZXdNb2RlKSA9PiB0aGlzLnZpZXdDaGFuZ2VkLmVtaXQodmlld01vZGUpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlc1sndmlld01vZGUnXSAmJiAhaXNOdWxsT3JVbmRlZmluZWQodGhpcy5fZ2FudHQub3B0aW9ucz8udmlld01vZGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMudmlld01vZGUgPSBjaGFuZ2VzWyd2aWV3TW9kZSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fZ2FudHQuY2hhbmdlX3ZpZXdfbW9kZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3Rhc2tzJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5fZ2FudHQucmVmcmVzaCh0aGlzLl9maWx0ZXJUYXNrKGNoYW5nZXNbJ3Rhc2tzJ10uY3VycmVudFZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZpbHRlclRhc2sodGFza3NHcm91cHM6IFRhc2tHcm91cFtdKTogVGFza1tdIHtcclxuICAgICAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlVGFza1BlckxpbmUpIHtcclxuICAgICAgICAgICAgdGFza3NHcm91cHMuZm9yRWFjaCgoZ3JvdXA6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGFza3MucHVzaCguLi5ncm91cC50YXNrcy5tYXAoKHRhc2s6IEVucmljaGVkVGFzaykgPT4gKHsgLi4udGFzaywgX3Jvd19pZDogaW5kZXggfSkpKTtcclxuICAgICAgICAgICAgfSwgW10pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBpID0gMDtcclxuICAgICAgICAgICAgdGFza3NHcm91cHMuZm9yRWFjaCgoZ3JvdXA6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGFza3MucHVzaCguLi5ncm91cC50YXNrcy5tYXAoKHRhc2s6IEVucmljaGVkVGFzaykgPT4gKHsgLi4udGFzaywgX3Jvd19pZDogaSsrIH0pKSk7XHJcbiAgICAgICAgICAgIH0sIFtdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0YXNrcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF92YWxpZGF0ZVZpZXdNb2RlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgIVtcclxuICAgICAgICAgICAgICAgIFZpZXdNb2RlLlF1YXJ0ZXJIb3VyLFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuSG91cixcclxuICAgICAgICAgICAgICAgIFZpZXdNb2RlLlF1YXJ0ZXJEYXksXHJcbiAgICAgICAgICAgICAgICBWaWV3TW9kZS5IYWxmRGF5LFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuRGF5LFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuV2VlayxcclxuICAgICAgICAgICAgICAgIFZpZXdNb2RlLk1vbnRoLFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuWWVhcixcclxuICAgICAgICAgICAgXS5pbmNsdWRlcyh0aGlzLnZpZXdNb2RlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZ2FudHQgdmlldyBtb2RlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ZhbGlkYXRlVGFza3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YXNrcy5mb3JFYWNoKChncm91cCkgPT4ge1xyXG4gICAgICAgICAgICBncm91cC50YXNrcy5mb3JFYWNoKCh0YXNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFzay5zdGFydCA+IHRhc2suZW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHRhc2suIFRoZSBzdGFydCBkYXRlIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBlbmQgZGF0ZS4nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm91dGVyXCIgI291dGVyPlxuICAgIDxkaXYgI3NpZGU+XG4gICAgICAgIEBpZihzaG93U2lkZVRhYmxlKSB7XG4gICAgICAgICAgICA8Z2FudHQtc2lkZS10YWJsZVxuICAgICAgICAgICAgICAgIFt0YXNrc109XCJ0YXNrc1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtblRpdGxlXT1cImNvbHVtblRpdGxlID8/ICcnXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVUYXNrUGVyTGluZV09XCJtdWx0aXBsZVRhc2tQZXJMaW5lXCI+XG4gICAgICAgICAgICA8L2dhbnR0LXNpZGUtdGFibGU+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8c3ZnICNnYW50dFN2Zz48L3N2Zz5cbjwvZGl2PlxuIl19
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2dhbnR0L3NyYy9saWIvZ2FudHQvZ2FudHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2dhbnR0L3NyYy9saWIvZ2FudHQvZ2FudHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixZQUFZLEVBR1osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBRWxGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBU0gsTUFBTSxPQUFPLGNBQWM7SUFDdkIsMEVBQTBFO0lBRW5FLFdBQVcsQ0FBVTtJQUU1Qix1RkFBdUY7SUFFaEYsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBRW5DLGtGQUFrRjtJQUUzRSxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTVCLGlHQUFpRztJQUUxRixRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUUvQix1RkFBdUY7SUFFaEYsS0FBSyxDQUFlO0lBRTNCLHNFQUFzRTtJQUUvRCxpQkFBaUIsQ0FBVTtJQUVsQywrREFBK0Q7SUFFeEQsY0FBYyxDQUFVO0lBRS9CLG9GQUFvRjtJQUU3RSxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTVCLG1GQUFtRjtJQUU1RSxRQUFRLEdBQUcsSUFBSSxDQUFD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Z0JBS0EsV0FBVztzQkFEakIsTUFBTTtnQkFJQSxLQUFLO3NCQURYLFNBQVM7dUJBQUMsT0FBTztnQkFJWCxJQUFJO3NCQURWLFNBQVM7dUJBQUMsTUFBTTtnQkFJVixRQUFRO3NCQURkLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR2FudHQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2FudHQvZ2FudHQnO1xyXG5pbXBvcnQgeyBUYXNrR3JvdXAsIFRhc2ssIEVucmljaGVkVGFzayB9IGZyb20gJy4vbW9kZWxzL3Rhc2snO1xyXG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gJy4vbW9kZWxzL3ZpZXctbW9kZSc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XHJcbmltcG9ydCB7IFNpZGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWRlLXRhYmxlL3NpZGUtdGFibGUuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBkaWFncmFtYSBkZSBHYW50dCBwYXJhIHZpc3VhbGl6YcOnw6NvIGUgbWFuaXB1bGHDp8OjbyBkZSB0YXJlZmFzXHJcbiAqIGVtIGxpbmhhIGRvIHRlbXBvLiBTdXBvcnRhIGRpZmVyZW50ZXMgbW9kb3MgZGUgdmlzdWFsaXphw6fDo28gKGRpYSwgc2VtYW5hLCBtw6pzKSxcclxuICogbW92aW1lbnRhw6fDo28gZGUgdGFyZWZhcyB2aWEgZHJhZyBlIHBvcHVwIGRlIGRldGFsaGVzIGFvIGNsaWNhci5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1nYW50dFxyXG4gKiAgIFt0YXNrc109XCJncnVwb3NEZVRhcmVmYXNcIlxyXG4gKiAgIFt2aWV3TW9kZV09XCJ2aWV3TW9kZVwiXHJcbiAqICAgKHRhc2tDbGlja2VkKT1cIm9uVGFza0NsaWNhZGEoJGV2ZW50KVwiIC8+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgRGF0YVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtZ2FudHQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dhbnR0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2dhbnR0LmNvbXBvbmVudC5zY3NzJywgJy4vY29tcG9uZW50cy9nYW50dC9nYW50dC5zY3NzJ10sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtTaWRlVGFibGVDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2FudHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFTDrXR1bG8gZGEgY29sdW5hIGxhdGVyYWwgZGUgaWRlbnRpZmljYcOnw6NvIGRhcyB0YXJlZmFzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb2x1bW5UaXRsZT86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlcm1pdGUgcmVuZGVyaXphciBtw7psdGlwbGFzIHRhcmVmYXMgbmEgbWVzbWEgbGluaGEuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG11bHRpcGxlVGFza1BlckxpbmUgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIGEgdGFiZWxhIGxhdGVyYWwgY29tIG9zIG5vbWVzIGRhcyB0YXJlZmFzLiBAZGVmYXVsdCB0cnVlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTaWRlVGFibGUgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTW9kbyBkZSB2aXN1YWxpemHDp8OjbyBkbyBnYW50dCAoZGlhLCBzZW1hbmEsIG3DqnMsIGV0Yy4pLiBAZGVmYXVsdCBWaWV3TW9kZS5EYXkgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdmlld01vZGUgPSBWaWV3TW9kZS5EYXk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBncnVwb3MgZGUgdGFyZWZhcyBhIHNlcmVtIHJlbmRlcml6YWRvcy4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyB0YXNrcyE6IFRhc2tHcm91cFtdO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTWFyZ2VtIGVtIGRpYXMgYW50ZXMgZG8gaW7DrWNpbyBkYSBwcmltZWlyYSB0YXJlZmEuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1hcmdpbkJlZm9yZVN0YXJ0PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTWFyZ2VtIGVtIGRpYXMgYXDDs3MgbyBmaW0gZGEgw7psdGltYSB0YXJlZmEuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1hcmdpbkFmdGVyRW5kPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBhcnJhc3RhciBkZSB0YXJlZmFzIHBhcmEgYWx0ZXJhciBkYXRhcy4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbGxvd01vdmVtZW50ID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIHBvcHVwIGNvbSBkZXRhbGhlcyBhbyBjbGljYXIgZW0gdW1hIHRhcmVmYS4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBoYXNQb3B1cCA9IHRydWU7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYXJndXJhIGRvIGNvbnRhaW5lciBlbSBwaXhlbHMuIFNlIG9taXRpZG8sIHVzYSBhIGxhcmd1cmEgbmF0dXJhbC4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyV2lkdGg/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBGYXogbyBnYW50dCBvY3VwYXIgMTAwJSBkYSBsYXJndXJhIGRpc3BvbsOtdmVsLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmdWxsV2lkdGggPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIGFwZW5hcyBob3JhcyBuYSBsaW5oYSBkbyB0ZW1wbyAoaWdub3JhIGRpYXMpLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93T25seUhvdXJzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeGliZSBhcGVuYXMgZGlhcyBuYSBsaW5oYSBkbyB0ZW1wbyAoaWdub3JhIGhvcmFzKS4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd09ubHlEYXlzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIGNsaWNhIGVtIHVtYSB0YXJlZmEuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0YXNrQ2xpY2tlZDogRXZlbnRFbWl0dGVyPFRhc2s+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBhcnJhc3RhIGUgbW9kaWZpY2EgYXMgZGF0YXMgZGUgdW1hIHRhcmVmYS4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHRhc2tEYXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIG1vZG8gZGUgdmlzdWFsaXphw6fDo28gw6kgYWx0ZXJhZG8uICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2aWV3Q2hhbmdlZDogRXZlbnRFbWl0dGVyPFZpZXdNb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdvdXRlcicpXHJcbiAgICBwdWJsaWMgb3V0ZXI6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzaWRlJylcclxuICAgIHB1YmxpYyBzaWRlOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZ2FudHRTdmcnKVxyXG4gICAgcHVibGljIGdhbnR0U3ZnOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2FudHQ/OiBHYW50dDtcclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVWaWV3TW9kZSgpO1xyXG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlVGFza3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZ1bGxXaWR0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5vdXRlcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIHRoaXMuc2lkZT8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2dhbnR0ID0gbmV3IEdhbnR0KHRoaXMuZ2FudHRTdmchLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2ZpbHRlclRhc2sodGhpcy50YXNrcyksIHtcclxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMudmlld01vZGUsXHJcbiAgICAgICAgICAgIG1hcmdpbkJlZm9yZVN0YXJ0OiB0aGlzLm1hcmdpbkJlZm9yZVN0YXJ0LFxyXG4gICAgICAgICAgICBtYXJnaW5BZnRlckVuZDogdGhpcy5tYXJnaW5BZnRlckVuZCxcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICdwdC1icicsXHJcbiAgICAgICAgICAgIGFsbG93TW92ZW1lbnQ6IHRoaXMuYWxsb3dNb3ZlbWVudCxcclxuICAgICAgICAgICAgaGFzUG9wdXA6IHRoaXMuaGFzUG9wdXAsXHJcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiB0aGlzLmNvbnRhaW5lcldpZHRoLFxyXG4gICAgICAgICAgICBzaG93T25seUhvdXJzOiB0aGlzLnNob3dPbmx5SG91cnMsXHJcbiAgICAgICAgICAgIHNob3dPbmx5RGF5czogdGhpcy5zaG93T25seURheXMsXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6ICh0YXNrOiBUYXNrKSA9PiB0aGlzLnRhc2tDbGlja2VkLmVtaXQodGFzayksXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZTogKHRhc2s6IFRhc2ssIHN0YXJ0OiBhbnksIGVuZDogYW55KSA9PiB0aGlzLnRhc2tEYXRlQ2hhbmdlZC5lbWl0KHsgdGFzaywgc3RhcnQsIGVuZCB9KSxcclxuICAgICAgICAgICAgb25WaWV3Q2hhbmdlOiAodmlld01vZGU6IFZpZXdNb2RlKSA9PiB0aGlzLnZpZXdDaGFuZ2VkLmVtaXQodmlld01vZGUpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlc1sndmlld01vZGUnXSAmJiAhaXNOdWxsT3JVbmRlZmluZWQodGhpcy5fZ2FudHQub3B0aW9ucz8udmlld01vZGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMudmlld01vZGUgPSBjaGFuZ2VzWyd2aWV3TW9kZSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fZ2FudHQuY2hhbmdlX3ZpZXdfbW9kZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3Rhc2tzJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5fZ2FudHQucmVmcmVzaCh0aGlzLl9maWx0ZXJUYXNrKGNoYW5nZXNbJ3Rhc2tzJ10uY3VycmVudFZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZpbHRlclRhc2sodGFza3NHcm91cHM6IFRhc2tHcm91cFtdKTogVGFza1tdIHtcclxuICAgICAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlVGFza1BlckxpbmUpIHtcclxuICAgICAgICAgICAgdGFza3NHcm91cHMuZm9yRWFjaCgoZ3JvdXA6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGFza3MucHVzaCguLi5ncm91cC50YXNrcy5tYXAoKHRhc2s6IEVucmljaGVkVGFzaykgPT4gKHsgLi4udGFzaywgX3Jvd19pZDogaW5kZXggfSkpKTtcclxuICAgICAgICAgICAgfSwgW10pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBpID0gMDtcclxuICAgICAgICAgICAgdGFza3NHcm91cHMuZm9yRWFjaCgoZ3JvdXA6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGFza3MucHVzaCguLi5ncm91cC50YXNrcy5tYXAoKHRhc2s6IEVucmljaGVkVGFzaykgPT4gKHsgLi4udGFzaywgX3Jvd19pZDogaSsrIH0pKSk7XHJcbiAgICAgICAgICAgIH0sIFtdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0YXNrcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF92YWxpZGF0ZVZpZXdNb2RlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgIVtcclxuICAgICAgICAgICAgICAgIFZpZXdNb2RlLlF1YXJ0ZXJIb3VyLFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuSG91cixcclxuICAgICAgICAgICAgICAgIFZpZXdNb2RlLlF1YXJ0ZXJEYXksXHJcbiAgICAgICAgICAgICAgICBWaWV3TW9kZS5IYWxmRGF5LFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuRGF5LFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuV2VlayxcclxuICAgICAgICAgICAgICAgIFZpZXdNb2RlLk1vbnRoLFxyXG4gICAgICAgICAgICAgICAgVmlld01vZGUuWWVhcixcclxuICAgICAgICAgICAgXS5pbmNsdWRlcyh0aGlzLnZpZXdNb2RlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZ2FudHQgdmlldyBtb2RlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ZhbGlkYXRlVGFza3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YXNrcy5mb3JFYWNoKChncm91cCkgPT4ge1xyXG4gICAgICAgICAgICBncm91cC50YXNrcy5mb3JFYWNoKCh0YXNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFzay5zdGFydCA+IHRhc2suZW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHRhc2suIFRoZSBzdGFydCBkYXRlIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBlbmQgZGF0ZS4nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm91dGVyXCIgI291dGVyPlxuICAgIDxkaXYgI3NpZGU+XG4gICAgICAgIEBpZihzaG93U2lkZVRhYmxlKSB7XG4gICAgICAgICAgICA8Z2FudHQtc2lkZS10YWJsZVxuICAgICAgICAgICAgICAgIFt0YXNrc109XCJ0YXNrc1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtblRpdGxlXT1cImNvbHVtblRpdGxlID8/ICcnXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVUYXNrUGVyTGluZV09XCJtdWx0aXBsZVRhc2tQZXJMaW5lXCI+XG4gICAgICAgICAgICA8L2dhbnR0LXNpZGUtdGFibGU+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8c3ZnICNnYW50dFN2Zz48L3N2Zz5cbjwvZGl2PlxuIl19
@@ -1,9 +1,7 @@
1
1
  import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
2
+ import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, inject, } from '@angular/core';
3
3
  import { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';
4
- import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
5
4
  import { FormsModule } from '@angular/forms';
6
- import { InputTextDirective } from '@seniorsistemas/angular-components/input-text';
7
5
  import { LoadingStateDirective } from '@seniorsistemas/angular-components/loading-state';
8
6
  import { NgTemplateOutlet, NgClass } from '@angular/common';
9
7
  import { ButtonComponent } from '@seniorsistemas/angular-components/button';
@@ -28,7 +26,6 @@ import * as i1 from "@angular/forms";
28
26
  export class GlobalSearchComponent {
29
27
  _cdr = inject(ChangeDetectorRef);
30
28
  static nextId = 0;
31
- globalSearch = null;
32
29
  /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
33
30
  id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;
34
31
  /** @description Tempo de debounce em ms antes de emitir o evento de busca. @default 500 */
@@ -62,6 +59,14 @@ export class GlobalSearchComponent {
62
59
  wasSearched = false;
63
60
  isModalLoading = false;
64
61
  expanded = true;
62
+ isFocused = false;
63
+ /**
64
+ * @description Controla a largura do campo: fica compacto quando não está focado
65
+ * nem tem texto digitado, e expande ao focar ou ao ter conteúdo (mesmo sem foco).
66
+ */
67
+ get isExpanded() {
68
+ return this.isFocused || !!this.search;
69
+ }
65
70
  onChange() {
66
71
  const search = this.search;
67
72
  setTimeout(() => {
@@ -72,9 +77,11 @@ export class GlobalSearchComponent {
72
77
  }, this.delay);
73
78
  }
74
79
  focusIn() {
80
+ this.isFocused = true;
75
81
  this.focused.emit(true);
76
82
  }
77
83
  focusOut() {
84
+ this.isFocused = false;
78
85
  this.focused.emit(false);
79
86
  }
80
87
  showMore() {
@@ -85,28 +92,16 @@ export class GlobalSearchComponent {
85
92
  this.wasSearched = false;
86
93
  this.dropdownItens = null;
87
94
  this.isModalLoading = false;
88
- this._removeActiveClassByGlobalSearch();
89
- }
90
- _removeActiveClassByGlobalSearch() {
91
- if (isNullOrUndefined(this.globalSearch))
92
- return;
93
- this.globalSearch.nativeElement.classList.remove('global-search__input-active');
94
95
  }
95
96
  _canShowGlobalSearchActive() {
96
97
  this.wasSearched = !!this.search;
97
- if (this.search) {
98
- if (isNullOrUndefined(this.globalSearch))
99
- return;
100
- this.globalSearch.nativeElement.classList.add('global-search__input-active');
101
- }
102
- else {
103
- this._removeActiveClassByGlobalSearch();
98
+ if (!this.search) {
104
99
  this.close();
105
100
  }
106
101
  this._cdr.detectChanges();
107
102
  }
108
103
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchComponent, isStandalone: true, selector: "s-global-search", inputs: { id: "id", delay: "delay", totalItensLabel: "totalItensLabel", showMoreLabel: "showMoreLabel", placeholder: "placeholder", isLoading: "isLoading", totalElements: "totalElements", emptyTitle: "emptyTitle", emptyDescription: "emptyDescription", emptyIcon: "emptyIcon", showFooter: "showFooter" }, outputs: { searched: "searched", focused: "focused", moreShown: "moreShown" }, queries: [{ propertyName: "dropdownItens", predicate: GlobalSearchDropdownItemComponent }], viewQueries: [{ propertyName: "globalSearch", first: true, predicate: ["globalSearch"], descendants: true }], ngImport: i0, template: "<div class=\"group flex max-w-full\">\r\n <input\r\n #globalSearch\r\n sInputText\r\n class=\"global-search__input rounded-tl-[20px] rounded-bl-[20px] rounded-tr-none rounded-br-none border border-solid border-grayscale-30 border-r-0 cursor-pointer h-[25px] min-h-[25px] pl-[15px] text-sm font-open-sans outline-none bg-grayscale-0 transition-all duration-300 w-[136px]\"\r\n [(ngModel)]=\"search\"\r\n (ngModelChange)=\"onChange()\"\r\n [placeholder]=\"placeholder\"\r\n (focus)=\"focusIn()\"\r\n (blur)=\"focusOut()\"\r\n />\r\n <span class=\"global-search__span items-center bg-transparent border border-solid border-grayscale-30 border-l-0 rounded-tr-[20px] rounded-br-[20px] flex h-[25px] justify-center px-2 transition-all duration-300\">\r\n <em class=\"fas fa-search\"></em>\r\n </span>\r\n\r\n @if (wasSearched) {\r\n <div class=\"bg-grayscale-0 rounded-[5px] shadow-[0_2px_8px_0_rgba(0,0,0,0.4)] mt-[60px] min-h-[50px] absolute w-[500px] z-[6]\">\r\n <div\r\n *sLoadingState=\"isLoading && !isModalLoading\"\r\n class=\"global-search__loader\"\r\n >\r\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\r\n <div class=\"min-h-[50px] w-full\">\r\n @if (dropdownItens && dropdownItens.length > 0) {\r\n <div>\r\n <div class=\"border-b border-solid border-grayscale-30 text-grayscale-90 font-semibold h-[50px] p-[15px] flex items-center justify-between\">\r\n <span class=\"m-0 p-0\">{{ totalItensLabel }}</span>\r\n <span\r\n class=\"m-0 p-0 cursor-pointer text-right\"\r\n (click)=\"close()\"\r\n >\r\n <em class=\"fas fa-times\"></em>\r\n </span>\r\n </div>\r\n <div\r\n class=\"max-h-[510px] overflow-auto\"\r\n [@expandableContent]=\"expanded\"\r\n >\r\n @for (item of dropdownItens; track item.id) {\r\n <div\r\n class=\"s-object-card-field hover:bg-[#dbe0e4]\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"border-t border-solid border-grayscale-30 h-[50px]\">\r\n <s-button\r\n class=\"flex flex-col\"\r\n (click)=\"showMore()\"\r\n priority=\"link\"\r\n >\r\n {{ showMoreLabel }}\r\n </s-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\r\n <s-empty-state\r\n [title]=\"emptyTitle ?? ''\"\r\n [description]=\"emptyDescription\"\r\n ngClass=\"global-search__empty-state--icon\"\r\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\r\n >\r\n </s-empty-state>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (wasSearched) {\r\n <div\r\n class=\"bg-[rgba(0,0,0,0.4)] cursor-pointer h-[calc(100vh-70px)] left-0 mt-[50px] absolute w-full z-[5]\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n</div>\r\n", styles: [".global-search__input:active,.global-search__input:focus,.global-search__input-active{border-bottom:solid 1px #428bca;border-left:solid 1px #428bca;border-top:solid 1px #428bca;cursor:default;width:466px}.global-search__input:focus+.global-search__span,.global-search__input:active+.global-search__span{border-bottom:solid 1px #428bca;border-right:solid 1px #428bca;border-top:solid 1px #428bca}::ng-deep s-global-search{width:100%}::ng-deep s-global-search .global-search__loader{border-radius:5px!important;width:100%}::ng-deep s-global-search .global-search__empty-state--icon .empty-state .icon{font-size:40px}::ng-deep s-global-search .s-button-priority-link{color:#428bca}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: InputTextDirective, selector: "input[sInputText]" }, { kind: "directive", type: LoadingStateDirective, selector: "[sLoadingState]", inputs: ["sLoadingState"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
104
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchComponent, isStandalone: true, selector: "s-global-search", inputs: { id: "id", delay: "delay", totalItensLabel: "totalItensLabel", showMoreLabel: "showMoreLabel", placeholder: "placeholder", isLoading: "isLoading", totalElements: "totalElements", emptyTitle: "emptyTitle", emptyDescription: "emptyDescription", emptyIcon: "emptyIcon", showFooter: "showFooter" }, outputs: { searched: "searched", focused: "focused", moreShown: "moreShown" }, queries: [{ propertyName: "dropdownItens", predicate: GlobalSearchDropdownItemComponent }], ngImport: i0, template: "<div class=\"global-search__wrapper group flex max-w-full\">\r\n <input\r\n class=\"global-search__input rounded-tl-[20px] rounded-bl-[20px] rounded-tr-none rounded-br-none border border-solid border-grayscale-30 border-r-0 cursor-pointer h-[25px] min-h-[25px] pl-[15px] text-sm font-open-sans outline-none bg-grayscale-0 transition-all duration-300 w-[136px]\"\r\n [class.global-search__input-active]=\"isExpanded\"\r\n [(ngModel)]=\"search\"\r\n (ngModelChange)=\"onChange()\"\r\n [placeholder]=\"placeholder\"\r\n (focus)=\"focusIn()\"\r\n (blur)=\"focusOut()\"\r\n />\r\n <span class=\"global-search__span items-center bg-transparent border border-solid border-grayscale-30 border-l-0 rounded-tr-[20px] rounded-br-[20px] flex h-[25px] justify-center px-2 transition-all duration-300\">\r\n <em class=\"fas fa-search\"></em>\r\n </span>\r\n\r\n @if (wasSearched) {\r\n <div class=\"bg-grayscale-0 rounded-[5px] shadow-[0_2px_8px_0_rgba(0,0,0,0.4)] mt-[60px] min-h-[50px] absolute w-[500px] z-[6]\">\r\n <div\r\n *sLoadingState=\"isLoading && !isModalLoading\"\r\n class=\"global-search__loader\"\r\n >\r\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\r\n <div class=\"min-h-[50px] w-full\">\r\n @if (dropdownItens && dropdownItens.length > 0) {\r\n <div>\r\n <div class=\"border-b border-solid border-grayscale-30 text-grayscale-90 font-semibold h-[50px] p-[15px] flex items-center justify-between\">\r\n <span class=\"m-0 p-0\">{{ totalItensLabel }}</span>\r\n <span\r\n class=\"m-0 p-0 cursor-pointer text-right\"\r\n (click)=\"close()\"\r\n >\r\n <em class=\"fas fa-times\"></em>\r\n </span>\r\n </div>\r\n <div\r\n class=\"max-h-[510px] overflow-auto\"\r\n [@expandableContent]=\"expanded\"\r\n >\r\n @for (item of dropdownItens; track item.id) {\r\n <div\r\n class=\"s-object-card-field hover:bg-[#dbe0e4]\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"border-t border-solid border-grayscale-30 h-[50px]\">\r\n <s-button\r\n class=\"flex flex-col\"\r\n (click)=\"showMore()\"\r\n priority=\"link\"\r\n >\r\n {{ showMoreLabel }}\r\n </s-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\r\n <s-empty-state\r\n [title]=\"emptyTitle ?? ''\"\r\n [description]=\"emptyDescription\"\r\n ngClass=\"global-search__empty-state--icon\"\r\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\r\n >\r\n </s-empty-state>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (wasSearched) {\r\n <div\r\n class=\"bg-[rgba(0,0,0,0.4)] cursor-pointer h-[calc(100vh-70px)] left-0 mt-[50px] absolute w-full z-[5]\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n</div>\r\n", styles: [".global-search__input-active{border-bottom:solid 1px #428bca;border-left:solid 1px #428bca;border-top:solid 1px #428bca;cursor:default;width:466px}.global-search__input-active+.global-search__span{border-bottom:solid 1px #428bca;border-right:solid 1px #428bca;border-top:solid 1px #428bca}.global-search__wrapper:has(.global-search__input:focus-visible){border-radius:20px;outline:2px solid var(--s-focus-ring-color);outline-offset:-2px}::ng-deep s-global-search{width:100%}::ng-deep s-global-search .global-search__loader{border-radius:5px!important;width:100%}::ng-deep s-global-search .global-search__empty-state--icon .empty-state .icon{font-size:40px}::ng-deep s-global-search .s-button-priority-link{color:#428bca}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: LoadingStateDirective, selector: "[sLoadingState]", inputs: ["sLoadingState"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
110
105
  trigger('expandableContent', [
111
106
  state('*', style({ height: '0' })),
112
107
  state('false', style({ height: '0' })),
@@ -128,17 +123,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
128
123
  ]),
129
124
  ], standalone: true, imports: [
130
125
  FormsModule,
131
- InputTextDirective,
132
126
  LoadingStateDirective,
133
127
  NgTemplateOutlet,
134
128
  ButtonComponent,
135
129
  EmptyStateComponent,
136
130
  NgClass,
137
- ], template: "<div class=\"group flex max-w-full\">\r\n <input\r\n #globalSearch\r\n sInputText\r\n class=\"global-search__input rounded-tl-[20px] rounded-bl-[20px] rounded-tr-none rounded-br-none border border-solid border-grayscale-30 border-r-0 cursor-pointer h-[25px] min-h-[25px] pl-[15px] text-sm font-open-sans outline-none bg-grayscale-0 transition-all duration-300 w-[136px]\"\r\n [(ngModel)]=\"search\"\r\n (ngModelChange)=\"onChange()\"\r\n [placeholder]=\"placeholder\"\r\n (focus)=\"focusIn()\"\r\n (blur)=\"focusOut()\"\r\n />\r\n <span class=\"global-search__span items-center bg-transparent border border-solid border-grayscale-30 border-l-0 rounded-tr-[20px] rounded-br-[20px] flex h-[25px] justify-center px-2 transition-all duration-300\">\r\n <em class=\"fas fa-search\"></em>\r\n </span>\r\n\r\n @if (wasSearched) {\r\n <div class=\"bg-grayscale-0 rounded-[5px] shadow-[0_2px_8px_0_rgba(0,0,0,0.4)] mt-[60px] min-h-[50px] absolute w-[500px] z-[6]\">\r\n <div\r\n *sLoadingState=\"isLoading && !isModalLoading\"\r\n class=\"global-search__loader\"\r\n >\r\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\r\n <div class=\"min-h-[50px] w-full\">\r\n @if (dropdownItens && dropdownItens.length > 0) {\r\n <div>\r\n <div class=\"border-b border-solid border-grayscale-30 text-grayscale-90 font-semibold h-[50px] p-[15px] flex items-center justify-between\">\r\n <span class=\"m-0 p-0\">{{ totalItensLabel }}</span>\r\n <span\r\n class=\"m-0 p-0 cursor-pointer text-right\"\r\n (click)=\"close()\"\r\n >\r\n <em class=\"fas fa-times\"></em>\r\n </span>\r\n </div>\r\n <div\r\n class=\"max-h-[510px] overflow-auto\"\r\n [@expandableContent]=\"expanded\"\r\n >\r\n @for (item of dropdownItens; track item.id) {\r\n <div\r\n class=\"s-object-card-field hover:bg-[#dbe0e4]\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"border-t border-solid border-grayscale-30 h-[50px]\">\r\n <s-button\r\n class=\"flex flex-col\"\r\n (click)=\"showMore()\"\r\n priority=\"link\"\r\n >\r\n {{ showMoreLabel }}\r\n </s-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\r\n <s-empty-state\r\n [title]=\"emptyTitle ?? ''\"\r\n [description]=\"emptyDescription\"\r\n ngClass=\"global-search__empty-state--icon\"\r\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\r\n >\r\n </s-empty-state>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (wasSearched) {\r\n <div\r\n class=\"bg-[rgba(0,0,0,0.4)] cursor-pointer h-[calc(100vh-70px)] left-0 mt-[50px] absolute w-full z-[5]\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n</div>\r\n", styles: [".global-search__input:active,.global-search__input:focus,.global-search__input-active{border-bottom:solid 1px #428bca;border-left:solid 1px #428bca;border-top:solid 1px #428bca;cursor:default;width:466px}.global-search__input:focus+.global-search__span,.global-search__input:active+.global-search__span{border-bottom:solid 1px #428bca;border-right:solid 1px #428bca;border-top:solid 1px #428bca}::ng-deep s-global-search{width:100%}::ng-deep s-global-search .global-search__loader{border-radius:5px!important;width:100%}::ng-deep s-global-search .global-search__empty-state--icon .empty-state .icon{font-size:40px}::ng-deep s-global-search .s-button-priority-link{color:#428bca}\n"] }]
138
- }], propDecorators: { globalSearch: [{
139
- type: ViewChild,
140
- args: ['globalSearch', { static: false }]
141
- }], id: [{
131
+ ], template: "<div class=\"global-search__wrapper group flex max-w-full\">\r\n <input\r\n class=\"global-search__input rounded-tl-[20px] rounded-bl-[20px] rounded-tr-none rounded-br-none border border-solid border-grayscale-30 border-r-0 cursor-pointer h-[25px] min-h-[25px] pl-[15px] text-sm font-open-sans outline-none bg-grayscale-0 transition-all duration-300 w-[136px]\"\r\n [class.global-search__input-active]=\"isExpanded\"\r\n [(ngModel)]=\"search\"\r\n (ngModelChange)=\"onChange()\"\r\n [placeholder]=\"placeholder\"\r\n (focus)=\"focusIn()\"\r\n (blur)=\"focusOut()\"\r\n />\r\n <span class=\"global-search__span items-center bg-transparent border border-solid border-grayscale-30 border-l-0 rounded-tr-[20px] rounded-br-[20px] flex h-[25px] justify-center px-2 transition-all duration-300\">\r\n <em class=\"fas fa-search\"></em>\r\n </span>\r\n\r\n @if (wasSearched) {\r\n <div class=\"bg-grayscale-0 rounded-[5px] shadow-[0_2px_8px_0_rgba(0,0,0,0.4)] mt-[60px] min-h-[50px] absolute w-[500px] z-[6]\">\r\n <div\r\n *sLoadingState=\"isLoading && !isModalLoading\"\r\n class=\"global-search__loader\"\r\n >\r\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\r\n <div class=\"min-h-[50px] w-full\">\r\n @if (dropdownItens && dropdownItens.length > 0) {\r\n <div>\r\n <div class=\"border-b border-solid border-grayscale-30 text-grayscale-90 font-semibold h-[50px] p-[15px] flex items-center justify-between\">\r\n <span class=\"m-0 p-0\">{{ totalItensLabel }}</span>\r\n <span\r\n class=\"m-0 p-0 cursor-pointer text-right\"\r\n (click)=\"close()\"\r\n >\r\n <em class=\"fas fa-times\"></em>\r\n </span>\r\n </div>\r\n <div\r\n class=\"max-h-[510px] overflow-auto\"\r\n [@expandableContent]=\"expanded\"\r\n >\r\n @for (item of dropdownItens; track item.id) {\r\n <div\r\n class=\"s-object-card-field hover:bg-[#dbe0e4]\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"border-t border-solid border-grayscale-30 h-[50px]\">\r\n <s-button\r\n class=\"flex flex-col\"\r\n (click)=\"showMore()\"\r\n priority=\"link\"\r\n >\r\n {{ showMoreLabel }}\r\n </s-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\r\n <s-empty-state\r\n [title]=\"emptyTitle ?? ''\"\r\n [description]=\"emptyDescription\"\r\n ngClass=\"global-search__empty-state--icon\"\r\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\r\n >\r\n </s-empty-state>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (wasSearched) {\r\n <div\r\n class=\"bg-[rgba(0,0,0,0.4)] cursor-pointer h-[calc(100vh-70px)] left-0 mt-[50px] absolute w-full z-[5]\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n</div>\r\n", styles: [".global-search__input-active{border-bottom:solid 1px #428bca;border-left:solid 1px #428bca;border-top:solid 1px #428bca;cursor:default;width:466px}.global-search__input-active+.global-search__span{border-bottom:solid 1px #428bca;border-right:solid 1px #428bca;border-top:solid 1px #428bca}.global-search__wrapper:has(.global-search__input:focus-visible){border-radius:20px;outline:2px solid var(--s-focus-ring-color);outline-offset:-2px}::ng-deep s-global-search{width:100%}::ng-deep s-global-search .global-search__loader{border-radius:5px!important;width:100%}::ng-deep s-global-search .global-search__empty-state--icon .empty-state .icon{font-size:40px}::ng-deep s-global-search .s-button-priority-link{color:#428bca}\n"] }]
132
+ }], propDecorators: { id: [{
142
133
  type: Input
143
134
  }], delay: [{
144
135
  type: Input
@@ -172,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
172
163
  }], moreShown: [{
173
164
  type: Output
174
165
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFFckY7Ozs7Ozs7Ozs7Ozs7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dHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBpbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBHbG9iYWxTZWFyY2hEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24vZ2xvYmFsLXNlYXJjaC1kcm9wZG93bi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHREaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2lucHV0LXRleHQnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUnO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9lbXB0eS1zdGF0ZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgYnVzY2EgZ2xvYmFsIGNvbSBpbnB1dCwgZHJvcGRvd24gZGUgcmVzdWx0YWRvcywgZXN0YWRvXHJcbiAqIGRlIGNhcnJlZ2FtZW50bywgZW1wdHkgc3RhdGUgZSBzdXBvcnRlIGEgaXRlbnMgY3VzdG9taXrDoXZlaXMgdmlhIGBHbG9iYWxTZWFyY2hEcm9wZG93bkl0ZW1Db21wb25lbnRgLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDxzLWdsb2JhbC1zZWFyY2hcclxuICogICB0b3RhbEl0ZW5zTGFiZWw9XCJyZXN1bHRhZG9zXCJcclxuICogICBzaG93TW9yZUxhYmVsPVwiVmVyIG1haXNcIlxyXG4gKiAgIFt0b3RhbEVsZW1lbnRzXT1cInRvdGFsXCJcclxuICogICAoc2VhcmNoKT1cIm9uQnVzY2EoJGV2ZW50KVwiIC8+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgU3RydWN0dXJlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1nbG9iYWwtc2VhcmNoJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9nbG9iYWwtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2dsb2JhbC1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdleHBhbmRhYmxlQ29udGVudCcsIFtcclxuICAgICAgICAgICAgc3RhdGUoJyonLCBzdHlsZSh7IGhlaWdodDogJzAnIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyBoZWlnaHQ6ICcwJyB9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJyogPT4gdHJ1ZScsIGFuaW1hdGUoJzIwMG1zIGVhc2Utb3V0JykpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdmYWxzZSA8PT4gdHJ1ZScsIGFuaW1hdGUoJzIwMG1zIGVhc2Utb3V0JykpLFxyXG4gICAgICAgIF0pLFxyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0RGlyZWN0aXZlLFxyXG4gICAgICAgIExvYWRpbmdTdGF0ZURpcmVjdGl2ZSxcclxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VhcmNoQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2dsb2JhbFNlYXJjaCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHVibGljIGdsb2JhbFNlYXJjaDogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtZ2xvYmFsLXNlYXJjaC0ke0dsb2JhbFNlYXJjaERyb3Bkb3duSXRlbUNvbXBvbmVudC5uZXh0SWQrK31gO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVGVtcG8gZGUgZGVib3VuY2UgZW0gbXMgYW50ZXMgZGUgZW1pdGlyIG8gZXZlbnRvIGRlIGJ1c2NhLiBAZGVmYXVsdCA1MDAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGVsYXkgPSA1MDA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYWJlbCBxdWUgYWNvbXBhbmhhIG8gdG90YWwgZGUgcmVzdWx0YWRvcy4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyB0b3RhbEl0ZW5zTGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGxpbmsgcGFyYSBleGliaXIgbWFpcyByZXN1bHRhZG9zLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHNob3dNb3JlTGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQbGFjZWhvbGRlciBkbyBpbnB1dCBkZSBidXNjYS4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeGliZSBpbmRpY2Fkb3IgZGUgY2FycmVnYW1lbnRvIG5vIGRyb3Bkb3duLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIE7Dum1lcm8gdG90YWwgZGUgcmVzdWx0YWRvcyBlbmNvbnRyYWRvcy4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdG90YWxFbGVtZW50cz86IG51bWJlcjtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFTDrXR1bG8gZG8gZW1wdHkgc3RhdGUgcXVhbmRvIG7Do28gaMOhIHJlc3VsdGFkb3MuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGVtcHR5VGl0bGU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNjcmnDp8OjbyBkbyBlbXB0eSBzdGF0ZSBleGliaWRhIGFiYWl4byBkbyB0w610dWxvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbXB0eURlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRvIMOtY29uZSBleGliaWRvIG5vIGVtcHR5IHN0YXRlLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbXB0eUljb24/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeGliZSBvIHJvZGFww6kgY29tIG8gbGluayBcInZlciBtYWlzXCIgZSBjb250YWdlbSBkZSByZXN1bHRhZG9zLiBAZGVmYXVsdCB0cnVlICovXHJcbiAgICBASW5wdXQoKSBzaG93Rm9vdGVyID0gdHJ1ZTtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKEdsb2JhbFNlYXJjaERyb3Bkb3duSXRlbUNvbXBvbmVudClcclxuICAgIHB1YmxpYyBkcm9wZG93bkl0ZW5zOiBRdWVyeUxpc3Q8R2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBhbyBkaWdpdGFyIG5vIGNhbXBvIGRlIGJ1c2NhLCBjb20gbyB2YWxvciBhdHVhbCBkYSBwZXNxdWlzYS4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlYXJjaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIGNhbXBvIGRlIGJ1c2NhIGdhbmhhIG91IHBlcmRlIGZvY28gKGB0cnVlYCA9IGZvY2FkbykuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBhbyBjbGljYXIgbm8gbGluayBwYXJhIGV4aWJpciBtYWlzIHJlc3VsdGFkb3MuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBtb3JlU2hvd24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHVibGljIHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwdWJsaWMgd2FzU2VhcmNoZWQgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc01vZGFsTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHVibGljIGV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcbiAgICBwdWJsaWMgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2g7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaCA9PT0gc2VhcmNoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jYW5TaG93R2xvYmFsU2VhcmNoQWN0aXZlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaGVkLmVtaXQodGhpcy5zZWFyY2ggPz8gJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGhpcy5kZWxheSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzSW4oKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzT3V0KCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZC5lbWl0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd01vcmUoKSB7XHJcbiAgICAgICAgdGhpcy5tb3JlU2hvd24uZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZSgpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy53YXNTZWFyY2hlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd25JdGVucyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZUNsYXNzQnlHbG9iYWxTZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZW1vdmVBY3RpdmVDbGFzc0J5R2xvYmFsU2VhcmNoKCkge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmdsb2JhbFNlYXJjaCkpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5nbG9iYWxTZWFyY2gubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdnbG9iYWwtc2VhcmNoX19pbnB1dC1hY3RpdmUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jYW5TaG93R2xvYmFsU2VhcmNoQWN0aXZlKCkge1xyXG4gICAgICAgIHRoaXMud2FzU2VhcmNoZWQgPSAhIXRoaXMuc2VhcmNoO1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaCkge1xyXG4gICAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5nbG9iYWxTZWFyY2gpKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbFNlYXJjaC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2dsb2JhbC1zZWFyY2hfX2lucHV0LWFjdGl2ZScpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZUNsYXNzQnlHbG9iYWxTZWFyY2goKTtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncm91cCBmbGV4IG1heC13LWZ1bGxcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICAgICNnbG9iYWxTZWFyY2hcclxuICAgICAgICBzSW5wdXRUZXh0XHJcbiAgICAgICAgY2xhc3M9XCJnbG9iYWwtc2VhcmNoX19pbnB1dCByb3VuZGVkLXRsLVsyMHB4XSByb3VuZGVkLWJsLVsyMHB4XSByb3VuZGVkLXRyLW5vbmUgcm91bmRlZC1ici1ub25lIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWdyYXlzY2FsZS0zMCBib3JkZXItci0wIGN1cnNvci1wb2ludGVyIGgtWzI1cHhdIG1pbi1oLVsyNXB4XSBwbC1bMTVweF0gdGV4dC1zbSBmb250LW9wZW4tc2FucyBvdXRsaW5lLW5vbmUgYmctZ3JheXNjYWxlLTAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHctWzEzNnB4XVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgKGZvY3VzKT1cImZvY3VzSW4oKVwiXHJcbiAgICAgICAgKGJsdXIpPVwiZm9jdXNPdXQoKVwiXHJcbiAgICAvPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJnbG9iYWwtc2VhcmNoX19zcGFuIGl0ZW1zLWNlbnRlciBiZy10cmFuc3BhcmVudCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ncmF5c2NhbGUtMzAgYm9yZGVyLWwtMCByb3VuZGVkLXRyLVsyMHB4XSByb3VuZGVkLWJyLVsyMHB4XSBmbGV4IGgtWzI1cHhdIGp1c3RpZnktY2VudGVyIHB4LTIgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwXCI+XHJcbiAgICAgICAgPGVtIGNsYXNzPVwiZmFzIGZhLXNlYXJjaFwiPjwvZW0+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgQGlmICh3YXNTZWFyY2hlZCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJiZy1ncmF5c2NhbGUtMCByb3VuZGVkLVs1cHhdIHNoYWRvdy1bMF8ycHhfOHB4XzBfcmdiYSgwLDAsMCwwLjQpXSBtdC1bNjBweF0gbWluLWgtWzUwcHhdIGFic29sdXRlIHctWzUwMHB4XSB6LVs2XVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAqc0xvYWRpbmdTdGF0ZT1cImlzTG9hZGluZyAmJiAhaXNNb2RhbExvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnbG9iYWwtc2VhcmNoX19sb2FkZXJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBAaWYgKChkcm9wZG93bkl0ZW5zICYmIGRyb3Bkb3duSXRlbnMubGVuZ3RoID4gMCkgfHwgaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi1oLVs1MHB4XSB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkcm9wZG93bkl0ZW5zICYmIGRyb3Bkb3duSXRlbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLXNvbGlkIGJvcmRlci1ncmF5c2NhbGUtMzAgdGV4dC1ncmF5c2NhbGUtOTAgZm9udC1zZW1pYm9sZCBoLVs1MHB4XSBwLVsxNXB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLTAgcC0wXCI+e3sgdG90YWxJdGVuc0xhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLTAgcC0wIGN1cnNvci1wb2ludGVyIHRleHQtcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2VtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1heC1oLVs1MTBweF0gb3ZlcmZsb3ctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtAZXhwYW5kYWJsZUNvbnRlbnRdPVwiZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBkcm9wZG93bkl0ZW5zOyB0cmFjayBpdGVtLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzLW9iamVjdC1jYXJkLWZpZWxkIGhvdmVyOmJnLVsjZGJlMGU0XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93Rm9vdGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItdCBib3JkZXItc29saWQgYm9yZGVyLWdyYXlzY2FsZS0zMCBoLVs1MHB4XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd01vcmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzaG93TW9yZUxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIEBpZiAoKCFkcm9wZG93bkl0ZW5zIHx8ICFkcm9wZG93bkl0ZW5zLmxlbmd0aCkgJiYgIWlzTG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzLWVtcHR5LXN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJlbXB0eVRpdGxlID8/ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImVtcHR5RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ0NsYXNzPVwiZ2xvYmFsLXNlYXJjaF9fZW1wdHktc3RhdGUtLWljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImVtcHR5SWNvbiA/IGVtcHR5SWNvbiA6ICdmYXMgZmEtc2VhcmNoJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcy1lbXB0eS1zdGF0ZT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICh3YXNTZWFyY2hlZCkge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJiZy1bcmdiYSgwLDAsMCwwLjQpXSBjdXJzb3ItcG9pbnRlciBoLVtjYWxjKDEwMHZoLTcwcHgpXSBsZWZ0LTAgbXQtWzUwcHhdIGFic29sdXRlIHctZnVsbCB6LVs1XVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDaEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7OztBQUVyRjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQXdCSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FB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QUNyQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixPQUFPO3FCQUNWOzhCQVNNLEVBQUU7c0JBRFIsS0FBSztnQkFLQyxLQUFLO3NCQURYLEtBQUs7Z0JBS0MsZUFBZTtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS2xCLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUtsQixXQUFXO3NCQURqQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFLQyxhQUFhO3NCQURuQixLQUFLO2dCQUtDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBS0MsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdDLGFBQWE7c0JBRG5CLGVBQWU7dUJBQUMsaUNBQWlDO2dCQUszQyxRQUFRO3NCQURkLE1BQU07Z0JBS0EsT0FBTztzQkFEYixNQUFNO2dCQUtBLFNBQVM7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIGluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEdsb2JhbFNlYXJjaERyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcm9wZG93bi9nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExvYWRpbmdTdGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZSc7XHJcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2VtcHR5LXN0YXRlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBidXNjYSBnbG9iYWwgY29tIGlucHV0LCBkcm9wZG93biBkZSByZXN1bHRhZG9zLCBlc3RhZG9cclxuICogZGUgY2FycmVnYW1lbnRvLCBlbXB0eSBzdGF0ZSBlIHN1cG9ydGUgYSBpdGVucyBjdXN0b21pesOhdmVpcyB2aWEgYEdsb2JhbFNlYXJjaERyb3Bkb3duSXRlbUNvbXBvbmVudGAuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtZ2xvYmFsLXNlYXJjaFxyXG4gKiAgIHRvdGFsSXRlbnNMYWJlbD1cInJlc3VsdGFkb3NcIlxyXG4gKiAgIHNob3dNb3JlTGFiZWw9XCJWZXIgbWFpc1wiXHJcbiAqICAgW3RvdGFsRWxlbWVudHNdPVwidG90YWxcIlxyXG4gKiAgIChzZWFyY2gpPVwib25CdXNjYSgkZXZlbnQpXCIgLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBTdHJ1Y3R1cmVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzLWdsb2JhbC1zZWFyY2gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dsb2JhbC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoJ2V4cGFuZGFibGVDb250ZW50JywgW1xyXG4gICAgICAgICAgICBzdGF0ZSgnKicsIHN0eWxlKHsgaGVpZ2h0OiAnMCcgfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IGhlaWdodDogJzAnIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignKiA9PiB0cnVlJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2ZhbHNlIDw9PiB0cnVlJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSksXHJcbiAgICAgICAgXSksXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBMb2FkaW5nU3RhdGVEaXJlY3RpdmUsXHJcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgICAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICAgICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBOZ0NsYXNzLFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbFNlYXJjaENvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNvbXBvbmVudGUgbm8gRE9NLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpZCA9IGBzLWdsb2JhbC1zZWFyY2gtJHtHbG9iYWxTZWFyY2hEcm9wZG93bkl0ZW1Db21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRlbXBvIGRlIGRlYm91bmNlIGVtIG1zIGFudGVzIGRlIGVtaXRpciBvIGV2ZW50byBkZSBidXNjYS4gQGRlZmF1bHQgNTAwICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRlbGF5ID0gNTAwO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGFiZWwgcXVlIGFjb21wYW5oYSBvIHRvdGFsIGRlIHJlc3VsdGFkb3MuIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgdG90YWxJdGVuc0xhYmVsITogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUsOzdHVsbyBkbyBsaW5rIHBhcmEgZXhpYmlyIG1haXMgcmVzdWx0YWRvcy4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBzaG93TW9yZUxhYmVsITogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUGxhY2Vob2xkZXIgZG8gaW5wdXQgZGUgYnVzY2EuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhpYmUgaW5kaWNhZG9yIGRlIGNhcnJlZ2FtZW50byBubyBkcm9wZG93bi4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIHRvdGFsIGRlIHJlc3VsdGFkb3MgZW5jb250cmFkb3MuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRvdGFsRWxlbWVudHM/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUw610dWxvIGRvIGVtcHR5IHN0YXRlIHF1YW5kbyBuw6NvIGjDoSByZXN1bHRhZG9zLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbXB0eVRpdGxlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzY3Jpw6fDo28gZG8gZW1wdHkgc3RhdGUgZXhpYmlkYSBhYmFpeG8gZG8gdMOtdHVsby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZW1wdHlEZXNjcmlwdGlvbj86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIENsYXNzZSBkbyDDrWNvbmUgZXhpYmlkbyBubyBlbXB0eSBzdGF0ZS4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZW1wdHlJY29uPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhpYmUgbyByb2RhcMOpIGNvbSBvIGxpbmsgXCJ2ZXIgbWFpc1wiIGUgY29udGFnZW0gZGUgcmVzdWx0YWRvcy4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KCkgc2hvd0Zvb3RlciA9IHRydWU7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihHbG9iYWxTZWFyY2hEcm9wZG93bkl0ZW1Db21wb25lbnQpXHJcbiAgICBwdWJsaWMgZHJvcGRvd25JdGVuczogUXVlcnlMaXN0PEdsb2JhbFNlYXJjaERyb3Bkb3duSXRlbUNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gYW8gZGlnaXRhciBubyBjYW1wbyBkZSBidXNjYSwgY29tIG8gdmFsb3IgYXR1YWwgZGEgcGVzcXVpc2EuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBzZWFyY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyBjYW1wbyBkZSBidXNjYSBnYW5oYSBvdSBwZXJkZSBmb2NvIChgdHJ1ZWAgPSBmb2NhZG8pLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gYW8gY2xpY2FyIG5vIGxpbmsgcGFyYSBleGliaXIgbWFpcyByZXN1bHRhZG9zLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgbW9yZVNob3duID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2g6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgcHVibGljIHdhc1NlYXJjaGVkID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNNb2RhbExvYWRpbmcgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBleHBhbmRlZCA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb250cm9sYSBhIGxhcmd1cmEgZG8gY2FtcG86IGZpY2EgY29tcGFjdG8gcXVhbmRvIG7Do28gZXN0w6EgZm9jYWRvXHJcbiAgICAgKiBuZW0gdGVtIHRleHRvIGRpZ2l0YWRvLCBlIGV4cGFuZGUgYW8gZm9jYXIgb3UgYW8gdGVyIGNvbnRlw7pkbyAobWVzbW8gc2VtIGZvY28pLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkIHx8ICEhdGhpcy5zZWFyY2g7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2ggPT09IHNlYXJjaCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2FuU2hvd0dsb2JhbFNlYXJjaEFjdGl2ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hlZC5lbWl0KHRoaXMuc2VhcmNoID8/ICcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIHRoaXMuZGVsYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb2N1c0luKCkge1xyXG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXNPdXQoKSB7XHJcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3dNb3JlKCkge1xyXG4gICAgICAgIHRoaXMubW9yZVNob3duLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2UoKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2ggPSBudWxsO1xyXG4gICAgICAgIHRoaXMud2FzU2VhcmNoZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duSXRlbnMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jYW5TaG93R2xvYmFsU2VhcmNoQWN0aXZlKCkge1xyXG4gICAgICAgIHRoaXMud2FzU2VhcmNoZWQgPSAhIXRoaXMuc2VhcmNoO1xyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2gpIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnbG9iYWwtc2VhcmNoX193cmFwcGVyIGdyb3VwIGZsZXggbWF4LXctZnVsbFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJnbG9iYWwtc2VhcmNoX19pbnB1dCByb3VuZGVkLXRsLVsyMHB4XSByb3VuZGVkLWJsLVsyMHB4XSByb3VuZGVkLXRyLW5vbmUgcm91bmRlZC1ici1ub25lIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWdyYXlzY2FsZS0zMCBib3JkZXItci0wIGN1cnNvci1wb2ludGVyIGgtWzI1cHhdIG1pbi1oLVsyNXB4XSBwbC1bMTVweF0gdGV4dC1zbSBmb250LW9wZW4tc2FucyBvdXRsaW5lLW5vbmUgYmctZ3JheXNjYWxlLTAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHctWzEzNnB4XVwiXHJcbiAgICAgICAgW2NsYXNzLmdsb2JhbC1zZWFyY2hfX2lucHV0LWFjdGl2ZV09XCJpc0V4cGFuZGVkXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAoZm9jdXMpPVwiZm9jdXNJbigpXCJcclxuICAgICAgICAoYmx1cik9XCJmb2N1c091dCgpXCJcclxuICAgIC8+XHJcbiAgICA8c3BhbiBjbGFzcz1cImdsb2JhbC1zZWFyY2hfX3NwYW4gaXRlbXMtY2VudGVyIGJnLXRyYW5zcGFyZW50IGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWdyYXlzY2FsZS0zMCBib3JkZXItbC0wIHJvdW5kZWQtdHItWzIwcHhdIHJvdW5kZWQtYnItWzIwcHhdIGZsZXggaC1bMjVweF0ganVzdGlmeS1jZW50ZXIgcHgtMiB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDBcIj5cclxuICAgICAgICA8ZW0gY2xhc3M9XCJmYXMgZmEtc2VhcmNoXCI+PC9lbT5cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICBAaWYgKHdhc1NlYXJjaGVkKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJnLWdyYXlzY2FsZS0wIHJvdW5kZWQtWzVweF0gc2hhZG93LVswXzJweF84cHhfMF9yZ2JhKDAsMCwwLDAuNCldIG10LVs2MHB4XSBtaW4taC1bNTBweF0gYWJzb2x1dGUgdy1bNTAwcHhdIHotWzZdXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpzTG9hZGluZ1N0YXRlPVwiaXNMb2FkaW5nICYmICFpc01vZGFsTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1zZWFyY2hfX2xvYWRlclwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEBpZiAoKGRyb3Bkb3duSXRlbnMgJiYgZHJvcGRvd25JdGVucy5sZW5ndGggPiAwKSB8fCBpc0xvYWRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluLWgtWzUwcHhdIHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRyb3Bkb3duSXRlbnMgJiYgZHJvcGRvd25JdGVucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItYiBib3JkZXItc29saWQgYm9yZGVyLWdyYXlzY2FsZS0zMCB0ZXh0LWdyYXlzY2FsZS05MCBmb250LXNlbWlib2xkIGgtWzUwcHhdIHAtWzE1cHhdIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tMCBwLTBcIj57eyB0b3RhbEl0ZW5zTGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tMCBwLTAgY3Vyc29yLXBvaW50ZXIgdGV4dC1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF4LWgtWzUxMHB4XSBvdmVyZmxvdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0BleHBhbmRhYmxlQ29udGVudF09XCJleHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRyb3Bkb3duSXRlbnM7IHRyYWNrIGl0ZW0uaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInMtb2JqZWN0LWNhcmQtZmllbGQgaG92ZXI6YmctWyNkYmUwZTRdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dGb290ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci10IGJvcmRlci1zb2xpZCBib3JkZXItZ3JheXNjYWxlLTMwIGgtWzUwcHhdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93TW9yZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eT1cImxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNob3dNb3JlTGFiZWwgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGlmICgoIWRyb3Bkb3duSXRlbnMgfHwgIWRyb3Bkb3duSXRlbnMubGVuZ3RoKSAmJiAhaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHMtZW1wdHktc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImVtcHR5VGl0bGUgPz8gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiZW1wdHlEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nQ2xhc3M9XCJnbG9iYWwtc2VhcmNoX19lbXB0eS1zdGF0ZS0taWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiZW1wdHlJY29uID8gZW1wdHlJY29uIDogJ2ZhcyBmYS1zZWFyY2gnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zLWVtcHR5LXN0YXRlPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKHdhc1NlYXJjaGVkKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImJnLVtyZ2JhKDAsMCwwLDAuNCldIGN1cnNvci1wb2ludGVyIGgtW2NhbGMoMTAwdmgtNzBweCldIGxlZnQtMCBtdC1bNTBweF0gYWJzb2x1dGUgdy1mdWxsIHotWzVdXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==