@sbb-esta/lyne-elements 0.53.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/button/common/button-common.d.ts.map +1 -1
  2. package/button/mini-button.js +5 -5
  3. package/calendar/calendar.d.ts +3 -1
  4. package/calendar/calendar.d.ts.map +1 -1
  5. package/calendar.js +62 -52
  6. package/card/common/card-action-common.d.ts.map +1 -1
  7. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  8. package/clock/clock.d.ts.map +1 -1
  9. package/clock.js +45 -50
  10. package/core/decorators/host-attributes.d.ts.map +1 -1
  11. package/core/eventing/throttle.d.ts.map +1 -1
  12. package/core/i18n/i18n.d.ts +1 -3
  13. package/core/i18n/i18n.d.ts.map +1 -1
  14. package/core/i18n.js +91 -127
  15. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  16. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  17. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  18. package/core/mixins/hydration-mixin.d.ts +2 -8
  19. package/core/mixins/hydration-mixin.d.ts.map +1 -1
  20. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  21. package/core/mixins/negative-mixin.d.ts.map +1 -1
  22. package/core/mixins/panel-mixin.d.ts.map +1 -1
  23. package/core/mixins/required-mixin.d.ts.map +1 -1
  24. package/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  25. package/core/mixins.js +90 -99
  26. package/core/observers/intersection-observer.d.ts +1 -1
  27. package/core/styles/_index.scss +1 -0
  28. package/core/styles/mixins/buttons.scss +1 -1
  29. package/core/styles/mixins/table.scss +148 -0
  30. package/core/styles/standard-theme.scss +1 -0
  31. package/core/styles/table.scss +56 -0
  32. package/core/testing/private.d.ts +0 -1
  33. package/core/testing/private.d.ts.map +1 -1
  34. package/core/testing/wait-for-render.d.ts +1 -1
  35. package/core/testing/wait-for-render.d.ts.map +1 -1
  36. package/core/testing.js +40 -37
  37. package/custom-elements.json +557 -864
  38. package/datepicker/datepicker-next-day.js +5 -5
  39. package/datepicker/datepicker-previous-day.js +1 -1
  40. package/datepicker/datepicker-toggle.js +7 -7
  41. package/development/accordion.js +7 -1
  42. package/development/action-group.js +7 -1
  43. package/development/alert/alert-group.js +7 -1
  44. package/development/alert/alert.js +7 -1
  45. package/development/autocomplete.js +7 -1
  46. package/development/breadcrumb/breadcrumb-group.js +7 -1
  47. package/development/breadcrumb/breadcrumb.js +7 -1
  48. package/development/button/common/button-common.d.ts.map +1 -1
  49. package/development/button/common.js +7 -1
  50. package/development/button/mini-button.js +8 -2
  51. package/development/calendar/calendar.d.ts +3 -1
  52. package/development/calendar/calendar.d.ts.map +1 -1
  53. package/development/calendar.js +18 -2
  54. package/development/card/card-badge.js +7 -1
  55. package/development/card/card.js +7 -1
  56. package/development/card/common/card-action-common.d.ts.map +1 -1
  57. package/development/card/common.js +7 -1
  58. package/development/checkbox/checkbox-group.js +7 -1
  59. package/development/checkbox/checkbox.js +7 -1
  60. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  61. package/development/checkbox/common.js +7 -1
  62. package/development/chip.js +7 -1
  63. package/development/clock/clock.d.ts.map +1 -1
  64. package/development/clock.js +35 -31
  65. package/development/container/container.js +7 -1
  66. package/development/container/sticky-bar.js +7 -1
  67. package/development/core/decorators/host-attributes.d.ts.map +1 -1
  68. package/development/core/eventing/throttle.d.ts.map +1 -1
  69. package/development/core/i18n/i18n.d.ts +1 -3
  70. package/development/core/i18n/i18n.d.ts.map +1 -1
  71. package/development/core/i18n.js +5 -43
  72. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  73. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  74. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  75. package/development/core/mixins/hydration-mixin.d.ts +2 -8
  76. package/development/core/mixins/hydration-mixin.d.ts.map +1 -1
  77. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  78. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  79. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  80. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  81. package/development/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  82. package/development/core/mixins.js +26 -36
  83. package/development/core/observers/intersection-observer.d.ts +1 -1
  84. package/development/core/testing/private.d.ts +0 -1
  85. package/development/core/testing/private.d.ts.map +1 -1
  86. package/development/core/testing/wait-for-render.d.ts +1 -1
  87. package/development/core/testing/wait-for-render.d.ts.map +1 -1
  88. package/development/core/testing.js +6 -2
  89. package/development/datepicker/datepicker-next-day.js +8 -2
  90. package/development/datepicker/datepicker-previous-day.js +8 -2
  91. package/development/datepicker/datepicker-toggle.js +7 -2
  92. package/development/datepicker/datepicker.js +7 -1
  93. package/development/dialog/dialog-actions.js +7 -1
  94. package/development/dialog/dialog-content.js +7 -1
  95. package/development/dialog/dialog-title.js +7 -1
  96. package/development/dialog/dialog.js +7 -1
  97. package/development/divider.js +7 -1
  98. package/development/expansion-panel/expansion-panel-content.js +7 -1
  99. package/development/expansion-panel/expansion-panel-header.js +7 -1
  100. package/development/expansion-panel/expansion-panel.js +7 -1
  101. package/development/file-selector.js +7 -1
  102. package/development/footer.js +7 -1
  103. package/development/form-error.js +7 -1
  104. package/development/form-field/form-field-clear.js +8 -2
  105. package/development/form-field/form-field.js +7 -1
  106. package/development/header/common/header-action-common.d.ts.map +1 -1
  107. package/development/header/common.js +7 -1
  108. package/development/header/header.js +7 -1
  109. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  110. package/development/icon/icon-request.d.ts.map +1 -1
  111. package/development/icon.js +7 -1
  112. package/development/image.js +7 -1
  113. package/development/journey-header.js +7 -1
  114. package/development/lead-container.js +7 -1
  115. package/development/link/common/block-link-common.d.ts.map +1 -1
  116. package/development/link/common/inline-link-common.d.ts.map +1 -1
  117. package/development/link/common/link-common.d.ts.map +1 -1
  118. package/development/link/common.js +19 -1
  119. package/development/link-list.js +7 -1
  120. package/development/loading-indicator.js +7 -1
  121. package/development/logo.js +7 -1
  122. package/development/map-container.js +7 -1
  123. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  124. package/development/menu/common.js +7 -1
  125. package/development/menu/menu.js +7 -1
  126. package/development/message.js +7 -1
  127. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  128. package/development/navigation/common.js +7 -1
  129. package/development/navigation/navigation-list.js +7 -1
  130. package/development/navigation/navigation-marker.js +7 -1
  131. package/development/navigation/navigation-section.js +7 -1
  132. package/development/navigation/navigation.js +7 -1
  133. package/development/notification.js +8 -1
  134. package/development/option/optgroup/optgroup.d.ts +2 -0
  135. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  136. package/development/option/optgroup.js +21 -4
  137. package/development/option/option/option.d.ts +6 -5
  138. package/development/option/option/option.d.ts.map +1 -1
  139. package/development/option/option.js +53 -29
  140. package/development/overlay.js +7 -1
  141. package/development/popover/popover-trigger.js +8 -2
  142. package/development/popover/popover.js +7 -1
  143. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  144. package/development/radio-button/common.js +7 -1
  145. package/development/radio-button/radio-button-group.js +7 -1
  146. package/development/radio-button/radio-button.js +7 -1
  147. package/development/screen-reader-only.js +7 -1
  148. package/development/select.js +7 -1
  149. package/development/selection-expansion-panel.js +7 -1
  150. package/development/signet.js +7 -1
  151. package/development/skiplink-list.js +7 -1
  152. package/development/slider.js +7 -1
  153. package/development/status.js +7 -1
  154. package/development/stepper/step-label.js +7 -1
  155. package/development/stepper/step.js +7 -1
  156. package/development/stepper/stepper.js +7 -1
  157. package/development/table/table-wrapper/table-wrapper.d.ts +24 -0
  158. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -0
  159. package/development/table/table-wrapper.d.ts +2 -0
  160. package/development/table/table-wrapper.d.ts.map +1 -0
  161. package/development/table/table-wrapper.js +130 -0
  162. package/development/table.d.ts +2 -0
  163. package/development/table.d.ts.map +1 -0
  164. package/development/table.js +2 -0
  165. package/development/tabs/tab-group/tab-group.d.ts +4 -7
  166. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  167. package/development/tabs/tab-group.js +69 -73
  168. package/development/tabs/tab-label.js +7 -1
  169. package/development/tabs/tab.js +7 -1
  170. package/development/tag/tag-group.js +7 -1
  171. package/development/tag/tag.js +7 -1
  172. package/development/teaser.js +7 -1
  173. package/development/time-input.js +7 -1
  174. package/development/timetable-occupancy-icon.js +7 -1
  175. package/development/timetable-occupancy.js +7 -1
  176. package/development/title.js +13 -1
  177. package/development/toast.js +7 -1
  178. package/development/toggle/toggle-option.js +7 -1
  179. package/development/toggle/toggle.js +7 -1
  180. package/development/toggle-check.js +7 -1
  181. package/development/train/train-blocked-passage.js +7 -1
  182. package/development/train/train-formation.js +7 -1
  183. package/development/train/train-wagon.js +7 -1
  184. package/development/train/train.js +7 -1
  185. package/development/visual-checkbox.js +7 -1
  186. package/form-field/form-field-clear.js +1 -1
  187. package/header/common/header-action-common.d.ts.map +1 -1
  188. package/icon/icon-name-mixin.d.ts.map +1 -1
  189. package/icon/icon-request.d.ts.map +1 -1
  190. package/index.d.ts +2 -0
  191. package/index.js +2 -0
  192. package/link/common/block-link-common.d.ts.map +1 -1
  193. package/link/common/inline-link-common.d.ts.map +1 -1
  194. package/link/common/link-common.d.ts.map +1 -1
  195. package/menu/common/menu-action-common.d.ts.map +1 -1
  196. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  197. package/notification.js +1 -1
  198. package/option/optgroup/optgroup.d.ts +2 -0
  199. package/option/optgroup/optgroup.d.ts.map +1 -1
  200. package/option/optgroup.js +24 -21
  201. package/option/option/option.d.ts +6 -5
  202. package/option/option/option.d.ts.map +1 -1
  203. package/option/option.js +72 -69
  204. package/package.json +11 -1
  205. package/popover/popover-trigger.js +1 -1
  206. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  207. package/standard-theme.css +196 -0
  208. package/table/table-wrapper/table-wrapper.d.ts +24 -0
  209. package/table/table-wrapper/table-wrapper.d.ts.map +1 -0
  210. package/table/table-wrapper.d.ts +2 -0
  211. package/table/table-wrapper.d.ts.map +1 -0
  212. package/table/table-wrapper.js +39 -0
  213. package/table.d.ts +2 -0
  214. package/table.d.ts.map +1 -0
  215. package/table.js +1 -0
  216. package/tabs/tab-group/tab-group.d.ts +4 -7
  217. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  218. package/tabs/tab-group.js +80 -81
@@ -1,11 +1,11 @@
1
1
  import { customElement as i } from "lit/decorators.js";
2
- import { hostAttributes as d } from "../core/decorators.js";
3
- import { i18nNextDay as l, i18nSelectNextDay as c } from "../core/i18n.js";
2
+ import { hostAttributes as l } from "../core/decorators.js";
3
+ import { i18nNextDay as d, i18nSelectNextDay as c } from "../core/i18n.js";
4
4
  import { SbbDatepickerButton as u } from "./common.js";
5
5
  import { findNextAvailableDate as v } from "./datepicker.js";
6
6
  import "../icon.js";
7
7
  import { css as h } from "lit";
8
- const f = h`*,:before,:after{box-sizing:border-box}:host{display:flex;outline:none!important}:host{display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host{--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host .sbb-datepicker-next-day{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:var(--sbb-button-display)}:host .sbb-datepicker-next-day:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host(:is([disabled],[data-disabled])){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host(:is([disabled],[data-disabled])){--sbb-button-color-disabled-text: GrayText !important}}:host(:is([disabled],[data-disabled])) .sbb-datepicker-next-day{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host(:is([disabled],[data-disabled])) .sbb-datepicker-next-day:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-datepicker-next-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-next-day:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-next-day{color:var(--sbb-button-color-hover-text)}}:host(:not([disabled],[data-disabled]):is(:active,[data-active])) .sbb-datepicker-next-day:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}.sbb-datepicker-next-day{margin:auto;-webkit-tap-highlight-color:transparent}`;
8
+ const f = h`*,:before,:after{box-sizing:border-box}:host{display:flex;outline:none!important}:host{display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host{--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host .sbb-datepicker-next-day{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}:host .sbb-datepicker-next-day:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host(:is([disabled],[data-disabled])){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host(:is([disabled],[data-disabled])){--sbb-button-color-disabled-text: GrayText !important}}:host(:is([disabled],[data-disabled])) .sbb-datepicker-next-day{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host(:is([disabled],[data-disabled])) .sbb-datepicker-next-day:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-datepicker-next-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-next-day:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-next-day{color:var(--sbb-button-color-hover-text)}}:host(:not([disabled],[data-disabled]):is(:active,[data-active])) .sbb-datepicker-next-day:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}.sbb-datepicker-next-day{margin:auto;-webkit-tap-highlight-color:transparent}`;
9
9
  var m = Object.defineProperty, p = Object.getOwnPropertyDescriptor, x = (t, b, a, r) => {
10
10
  for (var o = r > 1 ? void 0 : r ? p(b, a) : b, e = t.length - 1, s; e >= 0; e--)
11
11
  (s = t[e]) && (o = (r ? s(b, a, o) : s(o)) || o);
@@ -13,7 +13,7 @@ var m = Object.defineProperty, p = Object.getOwnPropertyDescriptor, x = (t, b, a
13
13
  };
14
14
  let n = class extends u {
15
15
  constructor() {
16
- super(...arguments), this.iconName = "chevron-small-right-small", this.i18nOffBoundaryDay = l, this.i18nSelectOffBoundaryDay = c, this.findAvailableDate = v;
16
+ super(...arguments), this.iconName = "chevron-small-right-small", this.i18nOffBoundaryDay = d, this.i18nSelectOffBoundaryDay = c, this.findAvailableDate = v;
17
17
  }
18
18
  onInputUpdated(t) {
19
19
  this.boundary !== t.detail.max && (this.boundary = t.detail.max, this.setDisabledState(this.datePickerElement));
@@ -22,7 +22,7 @@ let n = class extends u {
22
22
  n.styles = f;
23
23
  n = x([
24
24
  i("sbb-datepicker-next-day"),
25
- d({
25
+ l({
26
26
  slot: "suffix"
27
27
  })
28
28
  ], n);
@@ -5,7 +5,7 @@ import { SbbDatepickerButton as u } from "./common.js";
5
5
  import { findPreviousAvailableDate as v } from "./datepicker.js";
6
6
  import "../icon.js";
7
7
  import { css as h } from "lit";
8
- const p = h`*,:before,:after{box-sizing:border-box}:host{display:flex;outline:none!important}:host{display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host{--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host .sbb-datepicker-previous-day{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:var(--sbb-button-display)}:host .sbb-datepicker-previous-day:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host(:is([disabled],[data-disabled])){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host(:is([disabled],[data-disabled])){--sbb-button-color-disabled-text: GrayText !important}}:host(:is([disabled],[data-disabled])) .sbb-datepicker-previous-day{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host(:is([disabled],[data-disabled])) .sbb-datepicker-previous-day:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-datepicker-previous-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-previous-day:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-previous-day{color:var(--sbb-button-color-hover-text)}}:host(:not([disabled],[data-disabled]):is(:active,[data-active])) .sbb-datepicker-previous-day:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}.sbb-datepicker-previous-day{margin:auto;-webkit-tap-highlight-color:transparent}`;
8
+ const p = h`*,:before,:after{box-sizing:border-box}:host{display:flex;outline:none!important}:host{display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host{--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host .sbb-datepicker-previous-day{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}:host .sbb-datepicker-previous-day:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host(:is([disabled],[data-disabled])){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host(:is([disabled],[data-disabled])){--sbb-button-color-disabled-text: GrayText !important}}:host(:is([disabled],[data-disabled])) .sbb-datepicker-previous-day{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host(:is([disabled],[data-disabled])) .sbb-datepicker-previous-day:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-datepicker-previous-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-previous-day:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-datepicker-previous-day{color:var(--sbb-button-color-hover-text)}}:host(:not([disabled],[data-disabled]):is(:active,[data-active])) .sbb-datepicker-previous-day:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}.sbb-datepicker-previous-day{margin:auto;-webkit-tap-highlight-color:transparent}`;
9
9
  var f = Object.defineProperty, m = Object.getOwnPropertyDescriptor, k = (t, r, a, b) => {
10
10
  for (var o = b > 1 ? void 0 : b ? m(r, a) : r, e = t.length - 1, s; e >= 0; e--)
11
11
  (s = t[e]) && (o = (b ? s(r, a, o) : s(o)) || o);
@@ -1,4 +1,4 @@
1
- import { css as _, LitElement as b, isServer as h, html as m, nothing as p } from "lit";
1
+ import { css as _, LitElement as p, isServer as h, html as m, nothing as b } from "lit";
2
2
  import { property as g, state as d, customElement as E } from "lit/decorators.js";
3
3
  import { ref as c } from "lit/directives/ref.js";
4
4
  import { sbbInputModalityDetector as u } from "../core/a11y.js";
@@ -9,13 +9,13 @@ import { SbbNegativeMixin as C, SbbHydrationMixin as v } from "../core/mixins.js
9
9
  import { getDatePicker as w, datepickerControlRegisteredEventFactory as y } from "./datepicker.js";
10
10
  import "../calendar.js";
11
11
  import "../popover.js";
12
- const x = _`*,:before,:after{box-sizing:border-box}:host{--sbb-datepicker-control-radius: var(--sbb-border-radius-4x);--sbb-datepicker-control-color: var(--sbb-color-black);display:inline-flex}sbb-popover-trigger{--sbb-button-display: flex;color:var(--sbb-datepicker-control-color);height:unset}sbb-icon{color:var(--sbb-color-graphite)}`;
13
- var $ = Object.defineProperty, D = Object.getOwnPropertyDescriptor, o = (e, t, i, n) => {
12
+ const $ = _`*,:before,:after{box-sizing:border-box}:host{--sbb-datepicker-control-radius: var(--sbb-border-radius-4x);--sbb-datepicker-control-color: var(--sbb-color-black);display:inline-flex}sbb-popover-trigger{color:var(--sbb-datepicker-control-color);height:unset}sbb-icon{color:var(--sbb-color-graphite)}`;
13
+ var x = Object.defineProperty, D = Object.getOwnPropertyDescriptor, o = (e, t, i, n) => {
14
14
  for (var a = n > 1 ? void 0 : n ? D(t, i) : t, l = e.length - 1, r; l >= 0; l--)
15
15
  (r = e[l]) && (a = (n ? r(t, i, a) : r(a)) || a);
16
- return n && a && $(t, i, a), a;
16
+ return n && a && x(t, i, a), a;
17
17
  };
18
- let s = class extends C(v(b)) {
18
+ let s = class extends C(v(p)) {
19
19
  constructor() {
20
20
  super(), this._disabled = !1, this._min = null, this._max = null, this._renderCalendar = !1, this._language = new f(this), h || this.hydrationComplete.then(() => this._renderCalendar = !0);
21
21
  }
@@ -115,12 +115,12 @@ let s = class extends C(v(b)) {
115
115
  this._calendarElement.selected = n, (a = this._datePickerElement) == null || a.setValueAsDate(n);
116
116
  }}
117
117
  ${c((i) => this._assignCalendar(i))}
118
- ></sbb-calendar>` : p}
118
+ ></sbb-calendar>` : b}
119
119
  </sbb-popover>
120
120
  `;
121
121
  }
122
122
  };
123
- s.styles = x;
123
+ s.styles = $;
124
124
  o([
125
125
  g({ attribute: "date-picker" })
126
126
  ], s.prototype, "datePicker", 2);
@@ -17,6 +17,12 @@ const style = css`/**
17
17
  * }
18
18
  */
19
19
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
20
+ /*
21
+ * SBB table mixin
22
+ * Notes:
23
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
24
+ * Therefore, we have to build the grid avoiding double borders.
25
+ */
20
26
  *,
21
27
  ::before,
22
28
  ::after {
@@ -131,4 +137,4 @@ SbbAccordionElement = __decorateClass([
131
137
  export {
132
138
  SbbAccordionElement
133
139
  };
134
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi90aXRsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2FjY29yZGlvbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBlbGVtZW50cy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hY2NvcmRpb24nKVxuZXhwb3J0IGNsYXNzIFNiYkFjY29yZGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBsZXZlbCBmb3IgdGhlIHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVycyB3aXRoaW4gdGhlIGNvbXBvbmVudC5cbiAgICogQGNvbnRyb2xzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC50aXRsZUxldmVsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1sZXZlbCcgfSlcbiAgcHVibGljIHNldCB0aXRsZUxldmVsKHZhbHVlOiBTYmJUaXRsZUxldmVsIHwgbnVsbCkge1xuICAgIHRoaXMuX3RpdGxlTGV2ZWwgPSB2YWx1ZTtcbiAgICB0aGlzLl9zZXRUaXRsZUxldmVsT25DaGlsZHJlbigpO1xuICB9XG4gIHB1YmxpYyBnZXQgdGl0bGVMZXZlbCgpOiBTYmJUaXRsZUxldmVsIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlTGV2ZWw7XG4gIH1cbiAgcHJpdmF0ZSBfdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIG1vcmUgdGhhbiBvbmUgc2JiLWV4cGFuc2lvbi1wYW5lbCBjYW4gYmUgb3BlbiBhdCB0aGUgc2FtZSB0aW1lLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgbXVsdGkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX211bHRpO1xuICAgIHRoaXMuX211bHRpID0gdmFsdWU7XG4gICAgdGhpcy5fcmVzZXRFeHBhbnNpb25QYW5lbHModGhpcy5fbXVsdGksIG9sZFZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG11bHRpKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aTtcbiAgfVxuICBwcml2YXRlIF9tdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsIG9yIHM7IG92ZXJyaWRlcyB0aGUgc2l6ZSBvbiBhbnkgcHJvamVjdGVkIGBzYmItZXhwYW5zaW9uLXBhbmVsYC4gYCovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIHNpemU6ICdzJyB8ICdsJyA9ICdsJztcblxuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfY2xvc2VQYW5lbHMoZTogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ubG9jYWxOYW1lICE9PSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcgfHwgdGhpcy5tdWx0aSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVsc1xuICAgICAgLmZpbHRlcigocGFuZWwpID0+IHBhbmVsICE9PSBlLnRhcmdldClcbiAgICAgIC5mb3JFYWNoKChwYW5lbCkgPT4gKHBhbmVsLmV4cGFuZGVkID0gZmFsc2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0RXhwYW5zaW9uUGFuZWxzKG5ld1ZhbHVlOiBib29sZWFuLCBvbGRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIElmIGl0J3MgY2hhbmdpbmcgZnJvbSBcIm11bHRpID0gdHJ1ZVwiIHRvIFwibXVsdGkgPSBmYWxzZVwiLCBvcGVuIHRoZSBmaXJzdCBwYW5lbCBhbmQgY2xvc2UgYWxsIHRoZSBvdGhlcnMuXG4gICAgY29uc3QgZXhwYW5zaW9uUGFuZWxzID0gdGhpcy5fZXhwYW5zaW9uUGFuZWxzO1xuICAgIGlmIChleHBhbnNpb25QYW5lbHMubGVuZ3RoID4gMSAmJiBvbGRWYWx1ZSAmJiAhbmV3VmFsdWUpIHtcbiAgICAgIGV4cGFuc2lvblBhbmVsc1swXS5leHBhbmRlZCA9IHRydWU7XG4gICAgICBleHBhbnNpb25QYW5lbHNcbiAgICAgICAgLmZpbHRlcigoXywgaW5kZXg6IG51bWJlcikgPT4gaW5kZXggPiAwKVxuICAgICAgICAuZm9yRWFjaCgocGFuZWwpID0+IChwYW5lbC5leHBhbmRlZCA9IGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VGl0bGVMZXZlbE9uQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fZXhwYW5zaW9uUGFuZWxzLmZvckVhY2goXG4gICAgICAocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCkgPT4gKHBhbmVsLnRpdGxlTGV2ZWwgPSB0aGlzLnRpdGxlTGV2ZWwpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZXhwYW5zaW9uUGFuZWxzKCk6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWV4cGFuc2lvbi1wYW5lbCcpID8/IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICAgICAgKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KSA9PiB0aGlzLl9jbG9zZVBhbmVscyhlKSxcbiAgICAgIHsgc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9leHBhbnNpb25QYW5lbHMuZm9yRWFjaCgocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCkgPT4gKHBhbmVsLnNpemUgPSB0aGlzLnNpemUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscy5mb3JFYWNoKFxuICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBwYW5lbC50aXRsZUxldmVsID0gdGhpcy50aXRsZUxldmVsO1xuICAgICAgICBwYW5lbC5zaXplID0gdGhpcy5zaXplO1xuICAgICAgICBwYW5lbC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWNjb3JkaW9uLWZpcnN0JywgaW5kZXggPT09IDApO1xuICAgICAgICBwYW5lbC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWNjb3JkaW9uLWxhc3QnLCBpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWNjb3JkaW9uXCI+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWFjY29yZGlvbic6IFNiYkFjY29yZGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCTyxJQUFNLHNCQUFOLGNBQWtDLGtCQUFrQixVQUFVLEVBQUU7QUFBQSxFQUFoRSxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFlTCxTQUFRLGNBQW9DO0FBWTVDLFNBQVEsU0FBa0I7QUFHRyxTQUFPLE9BQWtCO0FBRTlDLFNBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBeEJyRCxJQUFXLFdBQVcsT0FBNkI7QUFDakQsU0FBSyxjQUFjO0FBQ25CLFNBQUsseUJBQXlCO0FBQUEsRUFDaEM7QUFBQSxFQUNBLElBQVcsYUFBbUM7QUFDNUMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBS0EsSUFBVyxNQUFNLE9BQWdCO0FBQy9CLFVBQU0sV0FBVyxLQUFLO0FBQ3RCLFNBQUssU0FBUztBQUNULFNBQUEsc0JBQXNCLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFDbEQ7QUFBQSxFQUNBLElBQVcsUUFBaUI7QUFDMUIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBUVEsYUFBYSxHQUFzQjs7QUFDekMsVUFBSyxPQUFFLFdBQUYsbUJBQTBCLGVBQWMseUJBQXlCLEtBQUssT0FBTztBQUNoRjtBQUFBLElBQ0Y7QUFFQSxTQUFLLGlCQUNGLE9BQU8sQ0FBQyxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQ3BDLFFBQVEsQ0FBQyxVQUFXLE1BQU0sV0FBVyxLQUFNO0FBQUEsRUFDaEQ7QUFBQSxFQUVRLHNCQUFzQixVQUFtQixVQUF5QjtBQUV4RSxVQUFNLGtCQUFrQixLQUFLO0FBQzdCLFFBQUksZ0JBQWdCLFNBQVMsS0FBSyxZQUFZLENBQUMsVUFBVTtBQUN2QyxzQkFBQSxDQUFDLEVBQUUsV0FBVztBQUM5QixzQkFDRyxPQUFPLENBQUMsR0FBRyxVQUFrQixRQUFRLENBQUMsRUFDdEMsUUFBUSxDQUFDLFVBQVcsTUFBTSxXQUFXLEtBQU07QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFBQSxFQUVRLDJCQUFpQztBQUN2QyxTQUFLLGlCQUFpQjtBQUFBLE1BQ3BCLENBQUMsVUFBcUMsTUFBTSxhQUFhLEtBQUs7QUFBQSxJQUFBO0FBQUEsRUFFbEU7QUFBQSxFQUVBLElBQVksbUJBQStDOztBQUN6RCxXQUFPLE1BQU0sT0FBSyxVQUFLLHFCQUFMLDhCQUF3QiwyQkFBMEIsQ0FBQSxDQUFFO0FBQUEsRUFDeEU7QUFBQSxFQUVnQixvQkFBMEI7QUFDeEMsVUFBTSxrQkFBa0I7QUFDbEIsVUFBQSxTQUFTLEtBQUssT0FBTztBQUN0QixTQUFBO0FBQUEsTUFDSCx5QkFBeUIsT0FBTztBQUFBLE1BQ2hDLENBQUMsTUFBeUIsS0FBSyxhQUFhLENBQUM7QUFBQSxNQUM3QyxFQUFFLE9BQU87QUFBQSxJQUFBO0FBQUEsRUFFYjtBQUFBLEVBRW1CLFdBQVcsbUJBQStDO0FBQzNFLFVBQU0sV0FBVyxpQkFBaUI7QUFFOUIsUUFBQSxrQkFBa0IsSUFBSSxNQUFNLEdBQUc7QUFDakMsV0FBSyxpQkFBaUIsUUFBUSxDQUFDLFVBQXFDLE1BQU0sT0FBTyxLQUFLLElBQUs7QUFBQSxJQUM3RjtBQUFBLEVBQ0Y7QUFBQSxFQUVRLG9CQUEwQjtBQUNoQyxTQUFLLGlCQUFpQjtBQUFBLE1BQ3BCLENBQUMsT0FBaUMsT0FBZSxVQUFzQztBQUNyRixjQUFNLGFBQWEsS0FBSztBQUN4QixjQUFNLE9BQU8sS0FBSztBQUNaLGNBQUEsZ0JBQWdCLHdCQUF3QixVQUFVLENBQUM7QUFDekQsY0FBTSxnQkFBZ0IsdUJBQXVCLFVBQVUsTUFBTSxTQUFTLENBQUM7QUFBQSxNQUN6RTtBQUFBLElBQUE7QUFBQSxFQUVKO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUEsNEJBRWlCLEtBQUssaUJBQWlCO0FBQUE7QUFBQTtBQUFBLEVBR2hEO0FBQ0Y7QUFyR2Esb0JBQ1ksU0FBeUI7QUFPckMsZ0JBQUE7QUFBQSxFQURWLFNBQVMsRUFBRSxXQUFXLGVBQWU7QUFBQSxHQVAzQixvQkFRQSxXQUFBLGNBQUEsQ0FBQTtBQVdBLGdCQUFBO0FBQUEsRUFEVixTQUFTLEVBQUUsTUFBTSxTQUFTO0FBQUEsR0FsQmhCLG9CQW1CQSxXQUFBLFNBQUEsQ0FBQTtBQVd5QixnQkFBQTtBQUFBLEVBQW5DLFNBQVMsRUFBRSxTQUFTLE1BQU07QUFBQSxHQTlCaEIsb0JBOEJ5QixXQUFBLFFBQUEsQ0FBQTtBQTlCekIsc0JBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsZUFBZTtBQUFBLEdBQ2pCLG1CQUFBOyJ9
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi90aXRsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2FjY29yZGlvbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBlbGVtZW50cy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hY2NvcmRpb24nKVxuZXhwb3J0IGNsYXNzIFNiYkFjY29yZGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBsZXZlbCBmb3IgdGhlIHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVycyB3aXRoaW4gdGhlIGNvbXBvbmVudC5cbiAgICogQGNvbnRyb2xzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC50aXRsZUxldmVsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1sZXZlbCcgfSlcbiAgcHVibGljIHNldCB0aXRsZUxldmVsKHZhbHVlOiBTYmJUaXRsZUxldmVsIHwgbnVsbCkge1xuICAgIHRoaXMuX3RpdGxlTGV2ZWwgPSB2YWx1ZTtcbiAgICB0aGlzLl9zZXRUaXRsZUxldmVsT25DaGlsZHJlbigpO1xuICB9XG4gIHB1YmxpYyBnZXQgdGl0bGVMZXZlbCgpOiBTYmJUaXRsZUxldmVsIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlTGV2ZWw7XG4gIH1cbiAgcHJpdmF0ZSBfdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIG1vcmUgdGhhbiBvbmUgc2JiLWV4cGFuc2lvbi1wYW5lbCBjYW4gYmUgb3BlbiBhdCB0aGUgc2FtZSB0aW1lLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgbXVsdGkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX211bHRpO1xuICAgIHRoaXMuX211bHRpID0gdmFsdWU7XG4gICAgdGhpcy5fcmVzZXRFeHBhbnNpb25QYW5lbHModGhpcy5fbXVsdGksIG9sZFZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG11bHRpKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aTtcbiAgfVxuICBwcml2YXRlIF9tdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsIG9yIHM7IG92ZXJyaWRlcyB0aGUgc2l6ZSBvbiBhbnkgcHJvamVjdGVkIGBzYmItZXhwYW5zaW9uLXBhbmVsYC4gYCovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIHNpemU6ICdzJyB8ICdsJyA9ICdsJztcblxuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfY2xvc2VQYW5lbHMoZTogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ubG9jYWxOYW1lICE9PSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcgfHwgdGhpcy5tdWx0aSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVsc1xuICAgICAgLmZpbHRlcigocGFuZWwpID0+IHBhbmVsICE9PSBlLnRhcmdldClcbiAgICAgIC5mb3JFYWNoKChwYW5lbCkgPT4gKHBhbmVsLmV4cGFuZGVkID0gZmFsc2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0RXhwYW5zaW9uUGFuZWxzKG5ld1ZhbHVlOiBib29sZWFuLCBvbGRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIElmIGl0J3MgY2hhbmdpbmcgZnJvbSBcIm11bHRpID0gdHJ1ZVwiIHRvIFwibXVsdGkgPSBmYWxzZVwiLCBvcGVuIHRoZSBmaXJzdCBwYW5lbCBhbmQgY2xvc2UgYWxsIHRoZSBvdGhlcnMuXG4gICAgY29uc3QgZXhwYW5zaW9uUGFuZWxzID0gdGhpcy5fZXhwYW5zaW9uUGFuZWxzO1xuICAgIGlmIChleHBhbnNpb25QYW5lbHMubGVuZ3RoID4gMSAmJiBvbGRWYWx1ZSAmJiAhbmV3VmFsdWUpIHtcbiAgICAgIGV4cGFuc2lvblBhbmVsc1swXS5leHBhbmRlZCA9IHRydWU7XG4gICAgICBleHBhbnNpb25QYW5lbHNcbiAgICAgICAgLmZpbHRlcigoXywgaW5kZXg6IG51bWJlcikgPT4gaW5kZXggPiAwKVxuICAgICAgICAuZm9yRWFjaCgocGFuZWwpID0+IChwYW5lbC5leHBhbmRlZCA9IGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VGl0bGVMZXZlbE9uQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fZXhwYW5zaW9uUGFuZWxzLmZvckVhY2goXG4gICAgICAocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCkgPT4gKHBhbmVsLnRpdGxlTGV2ZWwgPSB0aGlzLnRpdGxlTGV2ZWwpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZXhwYW5zaW9uUGFuZWxzKCk6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWV4cGFuc2lvbi1wYW5lbCcpID8/IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICAgICAgKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KSA9PiB0aGlzLl9jbG9zZVBhbmVscyhlKSxcbiAgICAgIHsgc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9leHBhbnNpb25QYW5lbHMuZm9yRWFjaCgocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCkgPT4gKHBhbmVsLnNpemUgPSB0aGlzLnNpemUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscy5mb3JFYWNoKFxuICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBwYW5lbC50aXRsZUxldmVsID0gdGhpcy50aXRsZUxldmVsO1xuICAgICAgICBwYW5lbC5zaXplID0gdGhpcy5zaXplO1xuICAgICAgICBwYW5lbC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWNjb3JkaW9uLWZpcnN0JywgaW5kZXggPT09IDApO1xuICAgICAgICBwYW5lbC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWNjb3JkaW9uLWxhc3QnLCBpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWNjb3JkaW9uXCI+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWFjY29yZGlvbic6IFNiYkFjY29yZGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdz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
@@ -14,6 +14,12 @@ const style = css`/**
14
14
  * }
15
15
  */
16
16
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
17
+ /*
18
+ * SBB table mixin
19
+ * Notes:
20
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
21
+ * Therefore, we have to build the grid avoiding double borders.
22
+ */
17
23
  *,
18
24
  ::before,
19
25
  ::after {
@@ -339,4 +345,4 @@ SbbActionGroupElement = __decorateClass([
339
345
  export {
340
346
  SbbActionGroupElement
341
347
  };
342
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWN0aW9uLWdyb3VwL2FjdGlvbi1ncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJCdXR0b25Db21tb25FbGVtZW50LCBTYmJCdXR0b25TaXplIH0gZnJvbSAnLi4vYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20sIFNiYk9yaWVudGF0aW9uIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU2JiQmxvY2tMaW5rQnV0dG9uRWxlbWVudCxcbiAgU2JiQmxvY2tMaW5rRWxlbWVudCxcbiAgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudCxcbiAgU2JiTGlua1NpemUsXG59IGZyb20gJy4uL2xpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9hY3Rpb24tZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYWN0aW9uIGVsZW1lbnQsIGxpa2UgYHNiYi1idXR0b25gIG9yIGBzYmItYmxvY2stbGlua2AuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYCBvciBgc2JiLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWN0aW9uLWdyb3VwYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hY3Rpb24tZ3JvdXAnKVxuZXhwb3J0IGNsYXNzIFNiYkFjdGlvbkdyb3VwRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogU2V0IHRoZSBzbG90dGVkIGA8c2JiLWFjdGlvbi1ncm91cD5gIGNoaWxkcmVuJ3MgYWxpZ25tZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxpZ24tZ3JvdXAnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhbGlnbkdyb3VwOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnc3RyZXRjaCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYmVoYXZpb3VyIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBob3Jpem9udGFsRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gPSAnbWVkaXVtJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY29tcG9uZW50cyBpbnNpZGUgdGhlIGA8c2JiLWFjdGlvbi1ncm91cD5gLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBuZXN0ZWQgc2JiLWJ1dHRvbiBpbnN0YW5jZXMuIFRoaXMgd2lsbCBvdmVyd3JpdGUgdGhlIHNpemUgYXR0cmlidXRlIG9mIG5lc3RlZFxuICAgKiBzYmItYnV0dG9uIGluc3RhbmNlcy5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2J1dHRvbi1zaXplJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYnV0dG9uU2l6ZTogU2JiQnV0dG9uU2l6ZSA9ICdsJztcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgbmVzdGVkIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy4gVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkXG4gICAqIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2xpbmstc2l6ZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGxpbmtTaXplOiBTYmJMaW5rU2l6ZSA9ICdtJztcblxuICBwcml2YXRlIF9zeW5jQnV0dG9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJCdXR0b25Db21tb25FbGVtZW50PignW2RhdGEtc2JiLWJ1dHRvbl0nKS5mb3JFYWNoKFxuICAgICAgKGIpID0+IChiLnNpemUgPSB0aGlzLmJ1dHRvblNpemUpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2J1dHRvblNpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0J1dHRvbnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlua1NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0xpbmtzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0xpbmtzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFxuICAgICAgU2JiQmxvY2tMaW5rRWxlbWVudCB8IFNiYkJsb2NrTGlua0J1dHRvbkVsZW1lbnQgfCBTYmJCbG9ja0xpbmtTdGF0aWNFbGVtZW50XG4gICAgPignc2JiLWJsb2NrLWxpbmssIHNiYi1ibG9jay1saW5rLWJ1dHRvbiwgc2JiLWJsb2NrLWxpbmstc3RhdGljJykuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgbGluay5zaXplID0gdGhpcy5saW5rU2l6ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hY3Rpb24tZ3JvdXBcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWFjdGlvbi1ncm91cCc6IFNiYkFjdGlvbkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJhLElBQUEsd0JBQU4sY0FBb0MsV0FBVztBQUFBLEVBQS9DLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQU9MLFNBQU8sYUFBcUQ7QUFNNUQsU0FBTyxpQkFBb0M7QUFNM0MsU0FBTyxjQUE4QjtBQU9yQyxTQUFPLGFBQTRCO0FBT25DLFNBQU8sV0FBd0I7QUFBQSxFQUFBO0FBQUEsRUFFdkIsZUFBcUI7O0FBQ3RCLGVBQUEscUJBQUEsOEJBQTJDLHFCQUFxQjtBQUFBLE1BQ25FLENBQUMsTUFBTyxFQUFFLE9BQU8sS0FBSztBQUFBO0FBQUEsRUFFMUI7QUFBQSxFQUVtQixXQUFXLG1CQUErQztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksWUFBWSxHQUFHO0FBQ3ZDLFdBQUssYUFBYTtBQUFBLElBQ3BCO0FBQ0ksUUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDckMsV0FBSyxXQUFXO0FBQUEsSUFDbEI7QUFBQSxFQUNGO0FBQUEsRUFFUSxhQUFtQjs7QUFDekIsZUFBSyxxQkFBTCw4QkFFRSxnRUFBZ0UsUUFBUSxDQUFDLFNBQVM7QUFDbEYsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUEsRUFFckI7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtUO0FBQ0Y7QUFuRWEsc0JBQ1ksU0FBeUI7QUFNekMsZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxXQUFXLGVBQWUsU0FBUyxNQUFNO0FBQUEsR0FOMUMsc0JBT0osV0FBQSxjQUFBLENBQUE7QUFNQSxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsbUJBQW1CLFNBQVMsTUFBTTtBQUFBLEdBWjlDLHNCQWFKLFdBQUEsa0JBQUEsQ0FBQTtBQU1BLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsR0FsQmhCLHNCQW1CSixXQUFBLGVBQUEsQ0FBQTtBQU9BLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsV0FBVyxlQUFlLFNBQVMsTUFBTTtBQUFBLEdBekIxQyxzQkEwQkosV0FBQSxjQUFBLENBQUE7QUFPQSxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsYUFBYSxTQUFTLE1BQU07QUFBQSxHQWhDeEMsc0JBaUNKLFdBQUEsWUFBQSxDQUFBO0FBakNJLHdCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLGtCQUFrQjtBQUFBLEdBQ3BCLHFCQUFBOyJ9
348
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWN0aW9uLWdyb3VwL2FjdGlvbi1ncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJCdXR0b25Db21tb25FbGVtZW50LCBTYmJCdXR0b25TaXplIH0gZnJvbSAnLi4vYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20sIFNiYk9yaWVudGF0aW9uIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU2JiQmxvY2tMaW5rQnV0dG9uRWxlbWVudCxcbiAgU2JiQmxvY2tMaW5rRWxlbWVudCxcbiAgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudCxcbiAgU2JiTGlua1NpemUsXG59IGZyb20gJy4uL2xpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9hY3Rpb24tZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYWN0aW9uIGVsZW1lbnQsIGxpa2UgYHNiYi1idXR0b25gIG9yIGBzYmItYmxvY2stbGlua2AuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYCBvciBgc2JiLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWN0aW9uLWdyb3VwYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hY3Rpb24tZ3JvdXAnKVxuZXhwb3J0IGNsYXNzIFNiYkFjdGlvbkdyb3VwRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogU2V0IHRoZSBzbG90dGVkIGA8c2JiLWFjdGlvbi1ncm91cD5gIGNoaWxkcmVuJ3MgYWxpZ25tZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxpZ24tZ3JvdXAnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhbGlnbkdyb3VwOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnc3RyZXRjaCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYmVoYXZpb3VyIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBob3Jpem9udGFsRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gPSAnbWVkaXVtJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY29tcG9uZW50cyBpbnNpZGUgdGhlIGA8c2JiLWFjdGlvbi1ncm91cD5gLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBuZXN0ZWQgc2JiLWJ1dHRvbiBpbnN0YW5jZXMuIFRoaXMgd2lsbCBvdmVyd3JpdGUgdGhlIHNpemUgYXR0cmlidXRlIG9mIG5lc3RlZFxuICAgKiBzYmItYnV0dG9uIGluc3RhbmNlcy5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2J1dHRvbi1zaXplJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYnV0dG9uU2l6ZTogU2JiQnV0dG9uU2l6ZSA9ICdsJztcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgbmVzdGVkIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy4gVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkXG4gICAqIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2xpbmstc2l6ZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGxpbmtTaXplOiBTYmJMaW5rU2l6ZSA9ICdtJztcblxuICBwcml2YXRlIF9zeW5jQnV0dG9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJCdXR0b25Db21tb25FbGVtZW50PignW2RhdGEtc2JiLWJ1dHRvbl0nKS5mb3JFYWNoKFxuICAgICAgKGIpID0+IChiLnNpemUgPSB0aGlzLmJ1dHRvblNpemUpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2J1dHRvblNpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0J1dHRvbnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlua1NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0xpbmtzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0xpbmtzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFxuICAgICAgU2JiQmxvY2tMaW5rRWxlbWVudCB8IFNiYkJsb2NrTGlua0J1dHRvbkVsZW1lbnQgfCBTYmJCbG9ja0xpbmtTdGF0aWNFbGVtZW50XG4gICAgPignc2JiLWJsb2NrLWxpbmssIHNiYi1ibG9jay1saW5rLWJ1dHRvbiwgc2JiLWJsb2NrLWxpbmstc3RhdGljJykuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgbGluay5zaXplID0gdGhpcy5saW5rU2l6ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hY3Rpb24tZ3JvdXBcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWFjdGlvbi1ncm91cCc6IFNiYkFjdGlvbkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJhLElBQUEsd0JBQU4sY0FBb0MsV0FBVztBQUFBLEVBQS9DLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQU9MLFNBQU8sYUFBcUQ7QUFNNUQsU0FBTyxpQkFBb0M7QUFNM0MsU0FBTyxjQUE4QjtBQU9yQyxTQUFPLGFBQTRCO0FBT25DLFNBQU8sV0FBd0I7QUFBQSxFQUFBO0FBQUEsRUFFdkIsZUFBcUI7O0FBQ3RCLGVBQUEscUJBQUEsOEJBQTJDLHFCQUFxQjtBQUFBLE1BQ25FLENBQUMsTUFBTyxFQUFFLE9BQU8sS0FBSztBQUFBO0FBQUEsRUFFMUI7QUFBQSxFQUVtQixXQUFXLG1CQUErQztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksWUFBWSxHQUFHO0FBQ3ZDLFdBQUssYUFBYTtBQUFBLElBQ3BCO0FBQ0ksUUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDckMsV0FBSyxXQUFXO0FBQUEsSUFDbEI7QUFBQSxFQUNGO0FBQUEsRUFFUSxhQUFtQjs7QUFDekIsZUFBSyxxQkFBTCw4QkFFRSxnRUFBZ0UsUUFBUSxDQUFDLFNBQVM7QUFDbEYsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUEsRUFFckI7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtUO0FBQ0Y7QUFuRWEsc0JBQ1ksU0FBeUI7QUFNekMsZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxXQUFXLGVBQWUsU0FBUyxNQUFNO0FBQUEsR0FOMUMsc0JBT0osV0FBQSxjQUFBLENBQUE7QUFNQSxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsbUJBQW1CLFNBQVMsTUFBTTtBQUFBLEdBWjlDLHNCQWFKLFdBQUEsa0JBQUEsQ0FBQTtBQU1BLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsR0FsQmhCLHNCQW1CSixXQUFBLGVBQUEsQ0FBQTtBQU9BLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsV0FBVyxlQUFlLFNBQVMsTUFBTTtBQUFBLEdBekIxQyxzQkEwQkosV0FBQSxjQUFBLENBQUE7QUFPQSxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsYUFBYSxTQUFTLE1BQU07QUFBQSxHQWhDeEMsc0JBaUNKLFdBQUEsWUFBQSxDQUFBO0FBakNJLHdCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLGtCQUFrQjtBQUFBLEdBQ3BCLHFCQUFBOyJ9
@@ -19,6 +19,12 @@ const style = css`/**
19
19
  * }
20
20
  */
21
21
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
22
+ /*
23
+ * SBB table mixin
24
+ * Notes:
25
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
26
+ * Therefore, we have to build the grid avoiding double borders.
27
+ */
22
28
  *,
23
29
  ::before,
24
30
  ::after {
@@ -140,4 +146,4 @@ SbbAlertGroupElement = __decorateClass([
140
146
  export {
141
147
  SbbAlertGroupElement
142
148
  };
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZ3JvdXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uLy4uL3RpdGxlLmpzJztcbmltcG9ydCB7IFNiYkFsZXJ0RWxlbWVudCB9IGZyb20gJy4uL2FsZXJ0LmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWxlcnQtZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1hbGVydGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYWxlcnRgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWFsZXJ0LWdyb3VwYC5cbiAqIEBzbG90IGFjY2Vzc2liaWxpdHktdGl0bGUgLSB0aXRsZSBmb3IgdGhpcyBgc2JiLWFsZXJ0LWdyb3VwYCB3aGljaCBpcyBvbmx5IHZpc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYkFsZXJ0RWxlbWVudD59IGRpZERpc21pc3NBbGVydCAtIEVtaXRzIHdoZW4gYW4gYWxlcnQgd2FzIHJlbW92ZWQgZnJvbSBET00uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBlbXB0eSAtIEVtaXRzIHdoZW4gYHNiYi1hbGVydC1ncm91cGAgYmVjb21lcyBlbXB0eS5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hbGVydC1ncm91cCcpXG5leHBvcnQgY2xhc3MgU2JiQWxlcnRHcm91cEVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWREaXNtaXNzQWxlcnQ6ICdkaWREaXNtaXNzQWxlcnQnLFxuICAgIGVtcHR5OiAnZW1wdHknLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSBhdHRyaWJ1dGUgZGVmaW5lcyBob3cgdG8gYW5ub3VuY2UgYWxlcnRzIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiAnc3RhdHVzJzogc2V0cyBhcmlhLWxpdmUgdG8gcG9saXRlIGFuZCBhcmlhLWF0b21pYyB0byB0cnVlLlxuICAgKiAnYWxlcnQnOiBzZXRzIGFyaWEtbGl2ZSB0byBhc3NlcnRpdmUgYW5kIGFyaWEtYXRvbWljIHRvIHRydWUuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSByb2xlOiAnYWxlcnQnIHwgJ3N0YXR1cycgfCBzdHJpbmcgPSAnc3RhdHVzJztcblxuICAvKiogVGl0bGUgZm9yIHRoaXMgYWxlcnQgZ3JvdXAgd2hpY2ggaXMgb25seSB2aXNpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eVRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKiBMZXZlbCBvZiB0aGUgYWNjZXNzaWJpbGl0eSB0aXRsZSwgd2lsbCBiZSByZW5kZXJlZCBhcyBoZWFkaW5nIHRhZyAoZS5nLiBoMikuIERlZmF1bHRzIHRvIGxldmVsIDIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktdGl0bGUtbGV2ZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NpYmlsaXR5VGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCA9ICcyJztcblxuICAvKiogV2hldGhlciB0aGUgZ3JvdXAgY3VycmVudGx5IGhhcyBhbnkgYWxlcnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIF9oYXNBbGVydHM/OiBib29sZWFuO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIGFsZXJ0IHdhcyByZW1vdmVkIGZyb20gRE9NLiAqL1xuICBwcml2YXRlIF9kaWREaXNtaXNzQWxlcnQ6IEV2ZW50RW1pdHRlcjxTYmJBbGVydEVsZW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkFsZXJ0R3JvdXBFbGVtZW50LmV2ZW50cy5kaWREaXNtaXNzQWxlcnQsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYHNiYi1hbGVydC1ncm91cGAgYmVjb21lcyBlbXB0eS4gKi9cbiAgcHJpdmF0ZSBfZW1wdHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiQWxlcnRHcm91cEVsZW1lbnQuZXZlbnRzLmVtcHR5KTtcblxuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQWxlcnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIFNiYkFsZXJ0RWxlbWVudDtcbiAgICBjb25zdCBoYXNGb2N1c0luc2lkZUFsZXJ0R3JvdXAgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0YXJnZXQ7XG5cbiAgICB0YXJnZXQucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQodGFyZ2V0KTtcbiAgICB0aGlzLl9kaWREaXNtaXNzQWxlcnQuZW1pdCh0YXJnZXQpO1xuXG4gICAgLy8gUmVzdG9yZSBmb2N1c1xuICAgIGlmIChoYXNGb2N1c0luc2lkZUFsZXJ0R3JvdXApIHtcbiAgICAgIC8vIFNldCB0YWJpbmRleCB0byAwIHRoZSBtYWtlIGl0IGZvY3VzYWJsZSBhbmQgYWZ0ZXJ3YXJkcyBmb2N1cyBpdC5cbiAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgY29tcGxldGVseSBsb3NlIGZvY3VzIGFmdGVyIHJlbW92YWwgb2YgYW4gYWxlcnQuXG4gICAgICAvLyBPbmNlIHRoZSBzYmItYWxlcnQtZ3JvdXAgd2FzIGJsdXJyZWQsIG1ha2UgdGhlIGFsZXJ0IGdyb3VwIG5vdCBmb2N1c2FibGUgYWdhaW4uXG4gICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFNiYkFsZXJ0RWxlbWVudC5ldmVudHMuZGlzbWlzc2FsUmVxdWVzdGVkLCAoZSkgPT4gdGhpcy5fcmVtb3ZlQWxlcnQoZSksIHtcbiAgICAgIHNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Nsb3RDaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGhhZEFsZXJ0cyA9IHRoaXMuX2hhc0FsZXJ0cztcbiAgICB0aGlzLl9oYXNBbGVydHMgPVxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpXG4gICAgICAgIC5hc3NpZ25lZEVsZW1lbnRzKClcbiAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgZS5sb2NhbE5hbWUgPT09ICdzYmItYWxlcnQnKS5sZW5ndGggPiAwO1xuICAgIGlmICghdGhpcy5faGFzQWxlcnRzICYmIGhhZEFsZXJ0cykge1xuICAgICAgdGhpcy5fZW1wdHkuZW1pdCgpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWVtcHR5JywgIXRoaXMuX2hhc0FsZXJ0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZUxldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9oYXNBbGVydHNcbiAgICAgICAgICA/IGh0bWxgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJhY2Nlc3NpYmlsaXR5LXRpdGxlXCI+JHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZX08L3Nsb3Q+XG4gICAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9zbG90Q2hhbmdlZChldmVudCl9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hbGVydC1ncm91cCc6IFNiYkFsZXJ0R3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JPLElBQU0sdUJBQU4sY0FBbUMsa0JBQWtCLFVBQVUsRUFBRTtBQUFBLEVBQWpFLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQWNMLFNBQWdCLE9BQW9DO0FBT3BELFNBQU8sMEJBQXlDO0FBTWhELFNBQVEsbUJBQWtELElBQUk7QUFBQSxNQUM1RDtBQUFBLE1BQ0EscUJBQXFCLE9BQU87QUFBQSxJQUFBO0FBSTlCLFNBQVEsU0FBNkIsSUFBSSxhQUFhLE1BQU0scUJBQXFCLE9BQU8sS0FBSztBQUVyRixTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUU3QyxhQUFhLE9BQW9COztBQUN2QyxVQUFNLFNBQVMsTUFBTTtBQUNmLFVBQUEsMkJBQTJCLFNBQVMsa0JBQWtCO0FBRXJELGlCQUFBLGVBQUEsbUJBQVksWUFBWTtBQUMxQixTQUFBLGlCQUFpQixLQUFLLE1BQU07QUFHakMsUUFBSSwwQkFBMEI7QUFJNUIsV0FBSyxXQUFXO0FBQ2hCLFdBQUssTUFBTTtBQUNYLFdBQUssaUJBQWlCLFFBQVEsTUFBTSxLQUFLLGdCQUFnQixVQUFVLEdBQUc7QUFBQSxRQUNwRSxNQUFNO0FBQUEsTUFBQSxDQUNQO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFBQSxFQUVnQixvQkFBMEI7QUFDeEMsVUFBTSxrQkFBa0I7QUFDbEIsVUFBQSxTQUFTLEtBQUssT0FBTztBQUN0QixTQUFBLGlCQUFpQixnQkFBZ0IsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLEdBQUc7QUFBQSxNQUM1RjtBQUFBLElBQUEsQ0FDRDtBQUFBLEVBQ0g7QUFBQSxFQUVRLGFBQWEsT0FBb0I7QUFDdkMsVUFBTSxZQUFZLEtBQUs7QUFDdkIsU0FBSyxhQUNGLE1BQU0sT0FDSixpQkFBQSxFQUNBLE9BQU8sQ0FBQyxNQUFNLGFBQWEsV0FBVyxFQUFFLGNBQWMsV0FBVyxFQUFFLFNBQVM7QUFDN0UsUUFBQSxDQUFDLEtBQUssY0FBYyxXQUFXO0FBQ2pDLFdBQUssT0FBTztJQUNkO0FBRUEsU0FBSyxnQkFBZ0IsY0FBYyxDQUFDLEtBQUssVUFBVTtBQUFBLEVBQ3JEO0FBQUEsRUFFbUIsU0FBeUI7QUFDcEMsVUFBQSxpQkFBaUIsSUFBSSxLQUFLLHVCQUF1QjtBQUdoRCxXQUFBO0FBQUE7QUFBQSxVQUVELEtBQUssYUFDSCxRQUFRLGFBQWEsY0FBYyxDQUFDO0FBQUEsaURBQ0MsS0FBSyxrQkFBa0I7QUFBQSxnQkFDeEQsYUFBYSxjQUFjLENBQUMsTUFDaEMsT0FBTztBQUFBLDRCQUNTLENBQUMsVUFBaUIsS0FBSyxhQUFhLEtBQUssQ0FBQztBQUFBO0FBQUE7QUFBQSxFQUdwRTtBQUNGO0FBN0ZhLHFCQUNZLFNBQXlCO0FBRHJDLHFCQUVZLFNBQVM7QUFBQSxFQUM5QixpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQ1Q7QUFTZ0IsZ0JBQUE7QUFBQSxFQURmLFNBQVMsRUFBRSxTQUFTLE1BQU07QUFBQSxHQWJoQixxQkFjSyxXQUFBLFFBQUEsQ0FBQTtBQUd1QyxnQkFBQTtBQUFBLEVBQXRELFNBQVMsRUFBRSxXQUFXLHVCQUF1QjtBQUFBLEdBakJuQyxxQkFpQjRDLFdBQUEsc0JBQUEsQ0FBQTtBQUloRCxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsNkJBQTZCO0FBQUEsR0FwQnpDLHFCQXFCSixXQUFBLDJCQUFBLENBQUE7QUFHVSxnQkFBQTtBQUFBLEVBQWhCLE1BQU07QUFBQSxHQXhCSSxxQkF3Qk0sV0FBQSxjQUFBLENBQUE7QUF4Qk4sdUJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsaUJBQWlCO0FBQUEsR0FDbkIsb0JBQUE7In0=
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZ3JvdXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uLy4uL3RpdGxlLmpzJztcbmltcG9ydCB7IFNiYkFsZXJ0RWxlbWVudCB9IGZyb20gJy4uL2FsZXJ0LmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWxlcnQtZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1hbGVydGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYWxlcnRgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWFsZXJ0LWdyb3VwYC5cbiAqIEBzbG90IGFjY2Vzc2liaWxpdHktdGl0bGUgLSB0aXRsZSBmb3IgdGhpcyBgc2JiLWFsZXJ0LWdyb3VwYCB3aGljaCBpcyBvbmx5IHZpc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYkFsZXJ0RWxlbWVudD59IGRpZERpc21pc3NBbGVydCAtIEVtaXRzIHdoZW4gYW4gYWxlcnQgd2FzIHJlbW92ZWQgZnJvbSBET00uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBlbXB0eSAtIEVtaXRzIHdoZW4gYHNiYi1hbGVydC1ncm91cGAgYmVjb21lcyBlbXB0eS5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hbGVydC1ncm91cCcpXG5leHBvcnQgY2xhc3MgU2JiQWxlcnRHcm91cEVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWREaXNtaXNzQWxlcnQ6ICdkaWREaXNtaXNzQWxlcnQnLFxuICAgIGVtcHR5OiAnZW1wdHknLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSBhdHRyaWJ1dGUgZGVmaW5lcyBob3cgdG8gYW5ub3VuY2UgYWxlcnRzIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiAnc3RhdHVzJzogc2V0cyBhcmlhLWxpdmUgdG8gcG9saXRlIGFuZCBhcmlhLWF0b21pYyB0byB0cnVlLlxuICAgKiAnYWxlcnQnOiBzZXRzIGFyaWEtbGl2ZSB0byBhc3NlcnRpdmUgYW5kIGFyaWEtYXRvbWljIHRvIHRydWUuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSByb2xlOiAnYWxlcnQnIHwgJ3N0YXR1cycgfCBzdHJpbmcgPSAnc3RhdHVzJztcblxuICAvKiogVGl0bGUgZm9yIHRoaXMgYWxlcnQgZ3JvdXAgd2hpY2ggaXMgb25seSB2aXNpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eVRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKiBMZXZlbCBvZiB0aGUgYWNjZXNzaWJpbGl0eSB0aXRsZSwgd2lsbCBiZSByZW5kZXJlZCBhcyBoZWFkaW5nIHRhZyAoZS5nLiBoMikuIERlZmF1bHRzIHRvIGxldmVsIDIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktdGl0bGUtbGV2ZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NpYmlsaXR5VGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCA9ICcyJztcblxuICAvKiogV2hldGhlciB0aGUgZ3JvdXAgY3VycmVudGx5IGhhcyBhbnkgYWxlcnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIF9oYXNBbGVydHM/OiBib29sZWFuO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIGFsZXJ0IHdhcyByZW1vdmVkIGZyb20gRE9NLiAqL1xuICBwcml2YXRlIF9kaWREaXNtaXNzQWxlcnQ6IEV2ZW50RW1pdHRlcjxTYmJBbGVydEVsZW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkFsZXJ0R3JvdXBFbGVtZW50LmV2ZW50cy5kaWREaXNtaXNzQWxlcnQsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYHNiYi1hbGVydC1ncm91cGAgYmVjb21lcyBlbXB0eS4gKi9cbiAgcHJpdmF0ZSBfZW1wdHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiQWxlcnRHcm91cEVsZW1lbnQuZXZlbnRzLmVtcHR5KTtcblxuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQWxlcnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIFNiYkFsZXJ0RWxlbWVudDtcbiAgICBjb25zdCBoYXNGb2N1c0luc2lkZUFsZXJ0R3JvdXAgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0YXJnZXQ7XG5cbiAgICB0YXJnZXQucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQodGFyZ2V0KTtcbiAgICB0aGlzLl9kaWREaXNtaXNzQWxlcnQuZW1pdCh0YXJnZXQpO1xuXG4gICAgLy8gUmVzdG9yZSBmb2N1c1xuICAgIGlmIChoYXNGb2N1c0luc2lkZUFsZXJ0R3JvdXApIHtcbiAgICAgIC8vIFNldCB0YWJpbmRleCB0byAwIHRoZSBtYWtlIGl0IGZvY3VzYWJsZSBhbmQgYWZ0ZXJ3YXJkcyBmb2N1cyBpdC5cbiAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgY29tcGxldGVseSBsb3NlIGZvY3VzIGFmdGVyIHJlbW92YWwgb2YgYW4gYWxlcnQuXG4gICAgICAvLyBPbmNlIHRoZSBzYmItYWxlcnQtZ3JvdXAgd2FzIGJsdXJyZWQsIG1ha2UgdGhlIGFsZXJ0IGdyb3VwIG5vdCBmb2N1c2FibGUgYWdhaW4uXG4gICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFNiYkFsZXJ0RWxlbWVudC5ldmVudHMuZGlzbWlzc2FsUmVxdWVzdGVkLCAoZSkgPT4gdGhpcy5fcmVtb3ZlQWxlcnQoZSksIHtcbiAgICAgIHNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Nsb3RDaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGhhZEFsZXJ0cyA9IHRoaXMuX2hhc0FsZXJ0cztcbiAgICB0aGlzLl9oYXNBbGVydHMgPVxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpXG4gICAgICAgIC5hc3NpZ25lZEVsZW1lbnRzKClcbiAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgZS5sb2NhbE5hbWUgPT09ICdzYmItYWxlcnQnKS5sZW5ndGggPiAwO1xuICAgIGlmICghdGhpcy5faGFzQWxlcnRzICYmIGhhZEFsZXJ0cykge1xuICAgICAgdGhpcy5fZW1wdHkuZW1pdCgpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWVtcHR5JywgIXRoaXMuX2hhc0FsZXJ0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZUxldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9oYXNBbGVydHNcbiAgICAgICAgICA/IGh0bWxgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJhY2Nlc3NpYmlsaXR5LXRpdGxlXCI+JHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZX08L3Nsb3Q+XG4gICAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9zbG90Q2hhbmdlZChldmVudCl9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hbGVydC1ncm91cCc6IFNiYkFsZXJ0R3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JPLElBQU0sdUJBQU4sY0FBbUMsa0JBQWtCLFVBQVUsRUFBRTtBQUFBLEVBQWpFLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQWNMLFNBQWdCLE9BQW9DO0FBT3BELFNBQU8sMEJBQXlDO0FBTWhELFNBQVEsbUJBQWtELElBQUk7QUFBQSxNQUM1RDtBQUFBLE1BQ0EscUJBQXFCLE9BQU87QUFBQSxJQUFBO0FBSTlCLFNBQVEsU0FBNkIsSUFBSSxhQUFhLE1BQU0scUJBQXFCLE9BQU8sS0FBSztBQUVyRixTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUU3QyxhQUFhLE9BQW9COztBQUN2QyxVQUFNLFNBQVMsTUFBTTtBQUNmLFVBQUEsMkJBQTJCLFNBQVMsa0JBQWtCO0FBRXJELGlCQUFBLGVBQUEsbUJBQVksWUFBWTtBQUMxQixTQUFBLGlCQUFpQixLQUFLLE1BQU07QUFHakMsUUFBSSwwQkFBMEI7QUFJNUIsV0FBSyxXQUFXO0FBQ2hCLFdBQUssTUFBTTtBQUNYLFdBQUssaUJBQWlCLFFBQVEsTUFBTSxLQUFLLGdCQUFnQixVQUFVLEdBQUc7QUFBQSxRQUNwRSxNQUFNO0FBQUEsTUFBQSxDQUNQO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFBQSxFQUVnQixvQkFBMEI7QUFDeEMsVUFBTSxrQkFBa0I7QUFDbEIsVUFBQSxTQUFTLEtBQUssT0FBTztBQUN0QixTQUFBLGlCQUFpQixnQkFBZ0IsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLEdBQUc7QUFBQSxNQUM1RjtBQUFBLElBQUEsQ0FDRDtBQUFBLEVBQ0g7QUFBQSxFQUVRLGFBQWEsT0FBb0I7QUFDdkMsVUFBTSxZQUFZLEtBQUs7QUFDdkIsU0FBSyxhQUNGLE1BQU0sT0FDSixpQkFBQSxFQUNBLE9BQU8sQ0FBQyxNQUFNLGFBQWEsV0FBVyxFQUFFLGNBQWMsV0FBVyxFQUFFLFNBQVM7QUFDN0UsUUFBQSxDQUFDLEtBQUssY0FBYyxXQUFXO0FBQ2pDLFdBQUssT0FBTztJQUNkO0FBRUEsU0FBSyxnQkFBZ0IsY0FBYyxDQUFDLEtBQUssVUFBVTtBQUFBLEVBQ3JEO0FBQUEsRUFFbUIsU0FBeUI7QUFDcEMsVUFBQSxpQkFBaUIsSUFBSSxLQUFLLHVCQUF1QjtBQUdoRCxXQUFBO0FBQUE7QUFBQSxVQUVELEtBQUssYUFDSCxRQUFRLGFBQWEsY0FBYyxDQUFDO0FBQUEsaURBQ0MsS0FBSyxrQkFBa0I7QUFBQSxnQkFDeEQsYUFBYSxjQUFjLENBQUMsTUFDaEMsT0FBTztBQUFBLDRCQUNTLENBQUMsVUFBaUIsS0FBSyxhQUFhLEtBQUssQ0FBQztBQUFBO0FBQUE7QUFBQSxFQUdwRTtBQUNGO0FBN0ZhLHFCQUNZLFNBQXlCO0FBRHJDLHFCQUVZLFNBQVM7QUFBQSxFQUM5QixpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQ1Q7QUFTZ0IsZ0JBQUE7QUFBQSxFQURmLFNBQVMsRUFBRSxTQUFTLE1BQU07QUFBQSxHQWJoQixxQkFjSyxXQUFBLFFBQUEsQ0FBQTtBQUd1QyxnQkFBQTtBQUFBLEVBQXRELFNBQVMsRUFBRSxXQUFXLHVCQUF1QjtBQUFBLEdBakJuQyxxQkFpQjRDLFdBQUEsc0JBQUEsQ0FBQTtBQUloRCxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsNkJBQTZCO0FBQUEsR0FwQnpDLHFCQXFCSixXQUFBLDJCQUFBLENBQUE7QUFHVSxnQkFBQTtBQUFBLEVBQWhCLE1BQU07QUFBQSxHQXhCSSxxQkF3Qk0sV0FBQSxjQUFBLENBQUE7QUF4Qk4sdUJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsaUJBQWlCO0FBQUEsR0FDbkIsb0JBQUE7In0=
@@ -22,6 +22,12 @@ const style = css`/**
22
22
  * }
23
23
  */
24
24
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
25
+ /*
26
+ * SBB table mixin
27
+ * Notes:
28
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
29
+ * Therefore, we have to build the grid avoiding double borders.
30
+ */
25
31
  *,
26
32
  ::before,
27
33
  ::after {
@@ -338,4 +344,4 @@ SbbAlertElement = __decorateClass([
338
344
  export {
339
345
  SbbAlertElement
340
346
  };
341
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC9hbGVydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgTGlua1RhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZUFsZXJ0LCBpMThuRmluZE91dE1vcmUgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2FsZXJ0LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3RyYW5zcGFyZW50LWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuaW1wb3J0ICcuLi8uLi9saW5rLmpzJztcbmltcG9ydCAnLi4vLi4vdGl0bGUuanMnO1xuXG50eXBlIFNiYkFsZXJ0U3RhdGUgPSBFeGNsdWRlPFNiYk9wZW5lZENsb3NlZFN0YXRlLCAnY2xvc2luZyc+O1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIG1lc3NhZ2VzIHdoaWNoIHJlcXVpcmUgdXNlcidzIGF0dGVudGlvbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWFsZXJ0YC5cbiAqIEBzbG90IGljb24gLSBTaG91bGQgYmUgYSBgc2JiLWljb25gIHdoaWNoIGlzIGRpc3BsYXllZCBuZXh0IHRvIHRoZSB0aXRsZS4gU3R5bGluZyBpcyBvcHRpbWl6ZWQgZm9yIGljb25zIG9mIHR5cGUgSElNLUNVUy5cbiAqIEBzbG90IHRpdGxlIC0gVGl0bGUgY29udGVudC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbiB0aGUgZmFkZSBpbiBhbmltYXRpb24gc3RhcnRzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW4gdGhlIGZhZGUgaW4gYW5pbWF0aW9uIGVuZHMgYW5kIHRoZSBidXR0b24gaXMgZGlzcGxheWVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlzbWlzc2FsUmVxdWVzdGVkIC0gRW1pdHMgd2hlbiBkaXNtaXNzYWwgb2YgYW4gYWxlcnQgd2FzIHJlcXVlc3RlZC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hbGVydCcpXG5leHBvcnQgY2xhc3MgU2JiQWxlcnRFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgZGlzbWlzc2FsUmVxdWVzdGVkOiAnZGlzbWlzc2FsUmVxdWVzdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWxlcnQgaXMgcmVhZG9ubHkuXG4gICAqIEluIHJlYWRvbmx5IG1vZGUsIHRoZXJlIGlzIG5vIGRpc21pc3MgYnV0dG9uIG9mZmVyZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuXG4gIC8qKiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIGBtYCBvciBgbGAgc2l6ZS4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgc2l6ZTogJ3MnIHwgJ20nIHwgJ2wnID0gJ20nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpY29uIHdoaWNoIHdpbGwgYmUgZm9yd2FyZCB0byB0aGUgbmVzdGVkIGBzYmItaWNvbmAuXG4gICAqIENob29zZSB0aGUgaWNvbnMgZnJvbSBodHRwczovL2ljb25zLmFwcC5zYmIuY2guXG4gICAqIFN0eWxpbmcgaXMgb3B0aW1pemVkIGZvciBpY29ucyBvZiB0eXBlIEhJTS1DVVMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpY29uLW5hbWUnIH0pIHB1YmxpYyBvdmVycmlkZSBpY29uTmFtZTogc3RyaW5nID0gJ2luZm8nO1xuXG4gIC8qKiBDb250ZW50IG9mIHRpdGxlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KSBwdWJsaWMgdGl0bGVDb250ZW50Pzogc3RyaW5nO1xuXG4gIC8qKiBMZXZlbCBvZiB0aXRsZSwgd2lsbCBiZSByZW5kZXJlZCBhcyBoZWFkaW5nIHRhZyAoZS5nLiBoMykuIERlZmF1bHRzIHRvIGxldmVsIDMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KSBwdWJsaWMgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCA9ICczJztcblxuICAvKiogQ29udGVudCBvZiB0aGUgbGluay4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbGluay1jb250ZW50JyB9KSBwdWJsaWMgbGlua0NvbnRlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBocmVmOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0YXJnZXQ6IExpbmtUYXJnZXRUeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgcmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgcmVsZXZhbnQgbmVzdGVkIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVGhlIGVuYWJsZWQgYW5pbWF0aW9ucy4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYW5pbWF0aW9uOiAnb3BlbicgfCAnbm9uZScgPSAnb3Blbic7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgYWxlcnQuICovXG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJBbGVydFN0YXRlIHtcbiAgICByZXR1cm4gKHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiQWxlcnRTdGF0ZSB8IG51bGwpID8/ICdjbG9zZWQnO1xuICB9XG4gIHByaXZhdGUgc2V0IF9zdGF0ZSh2YWx1ZTogU2JiQWxlcnRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGZhZGUgaW4gYW5pbWF0aW9uIHN0YXJ0cy4gKi9cbiAgcHJpdmF0ZSBfd2lsbE9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiQWxlcnRFbGVtZW50LmV2ZW50cy53aWxsT3Blbik7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGZhZGUgaW4gYW5pbWF0aW9uIGVuZHMgYW5kIHRoZSBidXR0b24gaXMgZGlzcGxheWVkLiAqL1xuICBwcml2YXRlIF9kaWRPcGVuOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkFsZXJ0RWxlbWVudC5ldmVudHMuZGlkT3Blbik7XG5cbiAgLyoqIEVtaXRzIHdoZW4gZGlzbWlzc2FsIG9mIGFuIGFsZXJ0IHdhcyByZXF1ZXN0ZWQuICovXG4gIHByaXZhdGUgX2Rpc21pc3NhbFJlcXVlc3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkFsZXJ0RWxlbWVudC5ldmVudHMuZGlzbWlzc2FsUmVxdWVzdGVkLFxuICApO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9vcGVuKCk7XG4gIH1cblxuICAvKiogUmVxdWVzdHMgZGlzbWlzc2FsIG9mIHRoZSBhbGVydC4gKi9cbiAgcHVibGljIHJlcXVlc3REaXNtaXNzYWwoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzbWlzc2FsUmVxdWVzdGVkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBPcGVuIHRoZSBhbGVydC4gKi9cbiAgcHJpdmF0ZSBfb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl93aWxsT3Blbi5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJyAmJiBldmVudC5hbmltYXRpb25OYW1lID09PSAnb3Blbi1vcGFjaXR5Jykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi13cmFwcGVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPCEtLSBzdWIgd3JhcHBlciBuZWVkZWQgdG8gcHJvcGVybHkgc3VwcG9ydCBmYWRlIGluIGFuaW1hdGlvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi1zdWItd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWFsZXJ0X19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1hbGVydF9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2JiLXRpdGxlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYWxlcnRfX3RpdGxlXCJcbiAgICAgICAgICAgICAgICBsZXZlbD0ke3RoaXMudGl0bGVMZXZlbH1cbiAgICAgICAgICAgICAgICB2aXN1YWwtbGV2ZWw9JHt0aGlzLnNpemUgPT09ICdsJyA/ICczJyA6ICc1J31cbiAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc2JiLXRpdGxlPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInNiYi1hbGVydF9fY29udGVudC1zbG90XCI+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICR7dGhpcy5ocmVmXG4gICAgICAgICAgICAgICAgPyBodG1sYCA8c2JiLWxpbmtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsID8/IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9JHt0aGlzLmhyZWYgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSR7dGhpcy50YXJnZXQgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgcmVsPSR7dGhpcy5yZWwgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmxpbmtDb250ZW50ID8gdGhpcy5saW5rQ29udGVudCA6IGkxOG5GaW5kT3V0TW9yZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIDwvc2JiLWxpbms+YFxuICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICR7IXRoaXMucmVhZG9ubHlcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLWFsZXJ0X19jbG9zZS1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgPHNiYi1kaXZpZGVyXG4gICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi1hbGVydF9fY2xvc2UtYnV0dG9uLWRpdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgPjwvc2JiLWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplID09PSAnbCcgPyAnbScgOiB0aGlzLnNpemV9XG4gICAgICAgICAgICAgICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5yZXF1ZXN0RGlzbWlzc2FsKCl9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtpMThuQ2xvc2VBbGVydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYWxlcnRfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWxlcnQnOiBTYmJBbGVydEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNDTyxJQUFNLGtCQUFOLGNBQThCLGlCQUFpQixVQUFVLEVBQUU7QUFBQSxFQUEzRCxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFZdUMsU0FBTyxXQUFXO0FBR2pDLFNBQU8sT0FBd0I7QUFPdEIsU0FBZ0IsV0FBbUI7QUFNakMsU0FBTyxhQUE0QjtBQWtCOUMsU0FBTyxZQUE2QjtBQVdqRSxTQUFRLFlBQWdDLElBQUksYUFBYSxNQUFNLGdCQUFnQixPQUFPLFFBQVE7QUFHOUYsU0FBUSxXQUErQixJQUFJLGFBQWEsTUFBTSxnQkFBZ0IsT0FBTyxPQUFPO0FBRzVGLFNBQVEsc0JBQTBDLElBQUk7QUFBQSxNQUNwRDtBQUFBLE1BQ0EsZ0JBQWdCLE9BQU87QUFBQSxJQUFBO0FBR2pCLFNBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBQUEsRUFBQTtBQUFBO0FBQUEsRUFuQmxELElBQVksU0FBd0I7QUFDMUIsV0FBQSxLQUFLLGFBQWEsWUFBWSxLQUE4QjtBQUFBLEVBQ3RFO0FBQUEsRUFDQSxJQUFZLE9BQU8sT0FBc0I7QUFDbEMsU0FBQSxhQUFhLGNBQWMsS0FBSztB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
347
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC9hbGVydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgTGlua1RhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZUFsZXJ0LCBpMThuRmluZE91dE1vcmUgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2FsZXJ0LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3RyYW5zcGFyZW50LWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuaW1wb3J0ICcuLi8uLi9saW5rLmpzJztcbmltcG9ydCAnLi4vLi4vdGl0bGUuanMnO1xuXG50eXBlIFNiYkFsZXJ0U3RhdGUgPSBFeGNsdWRlPFNiYk9wZW5lZENsb3NlZFN0YXRlLCAnY2xvc2luZyc+O1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIG1lc3NhZ2VzIHdoaWNoIHJlcXVpcmUgdXNlcidzIGF0dGVudGlvbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWFsZXJ0YC5cbiAqIEBzbG90IGljb24gLSBTaG91bGQgYmUgYSBgc2JiLWljb25gIHdoaWNoIGlzIGRpc3BsYXllZCBuZXh0IHRvIHRoZSB0aXRsZS4gU3R5bGluZyBpcyBvcHRpbWl6ZWQgZm9yIGljb25zIG9mIHR5cGUgSElNLUNVUy5cbiAqIEBzbG90IHRpdGxlIC0gVGl0bGUgY29udGVudC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbiB0aGUgZmFkZSBpbiBhbmltYXRpb24gc3RhcnRzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW4gdGhlIGZhZGUgaW4gYW5pbWF0aW9uIGVuZHMgYW5kIHRoZSBidXR0b24gaXMgZGlzcGxheWVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlzbWlzc2FsUmVxdWVzdGVkIC0gRW1pdHMgd2hlbiBkaXNtaXNzYWwgb2YgYW4gYWxlcnQgd2FzIHJlcXVlc3RlZC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hbGVydCcpXG5leHBvcnQgY2xhc3MgU2JiQWxlcnRFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgZGlzbWlzc2FsUmVxdWVzdGVkOiAnZGlzbWlzc2FsUmVxdWVzdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWxlcnQgaXMgcmVhZG9ubHkuXG4gICAqIEluIHJlYWRvbmx5IG1vZGUsIHRoZXJlIGlzIG5vIGRpc21pc3MgYnV0dG9uIG9mZmVyZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuXG4gIC8qKiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIGBtYCBvciBgbGAgc2l6ZS4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgc2l6ZTogJ3MnIHwgJ20nIHwgJ2wnID0gJ20nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpY29uIHdoaWNoIHdpbGwgYmUgZm9yd2FyZCB0byB0aGUgbmVzdGVkIGBzYmItaWNvbmAuXG4gICAqIENob29zZSB0aGUgaWNvbnMgZnJvbSBodHRwczovL2ljb25zLmFwcC5zYmIuY2guXG4gICAqIFN0eWxpbmcgaXMgb3B0aW1pemVkIGZvciBpY29ucyBvZiB0eXBlIEhJTS1DVVMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpY29uLW5hbWUnIH0pIHB1YmxpYyBvdmVycmlkZSBpY29uTmFtZTogc3RyaW5nID0gJ2luZm8nO1xuXG4gIC8qKiBDb250ZW50IG9mIHRpdGxlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KSBwdWJsaWMgdGl0bGVDb250ZW50Pzogc3RyaW5nO1xuXG4gIC8qKiBMZXZlbCBvZiB0aXRsZSwgd2lsbCBiZSByZW5kZXJlZCBhcyBoZWFkaW5nIHRhZyAoZS5nLiBoMykuIERlZmF1bHRzIHRvIGxldmVsIDMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KSBwdWJsaWMgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCA9ICczJztcblxuICAvKiogQ29udGVudCBvZiB0aGUgbGluay4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbGluay1jb250ZW50JyB9KSBwdWJsaWMgbGlua0NvbnRlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBocmVmOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0YXJnZXQ6IExpbmtUYXJnZXRUeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgcmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgcmVsZXZhbnQgbmVzdGVkIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVGhlIGVuYWJsZWQgYW5pbWF0aW9ucy4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYW5pbWF0aW9uOiAnb3BlbicgfCAnbm9uZScgPSAnb3Blbic7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgYWxlcnQuICovXG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJBbGVydFN0YXRlIHtcbiAgICByZXR1cm4gKHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiQWxlcnRTdGF0ZSB8IG51bGwpID8/ICdjbG9zZWQnO1xuICB9XG4gIHByaXZhdGUgc2V0IF9zdGF0ZSh2YWx1ZTogU2JiQWxlcnRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGZhZGUgaW4gYW5pbWF0aW9uIHN0YXJ0cy4gKi9cbiAgcHJpdmF0ZSBfd2lsbE9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiQWxlcnRFbGVtZW50LmV2ZW50cy53aWxsT3Blbik7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGZhZGUgaW4gYW5pbWF0aW9uIGVuZHMgYW5kIHRoZSBidXR0b24gaXMgZGlzcGxheWVkLiAqL1xuICBwcml2YXRlIF9kaWRPcGVuOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkFsZXJ0RWxlbWVudC5ldmVudHMuZGlkT3Blbik7XG5cbiAgLyoqIEVtaXRzIHdoZW4gZGlzbWlzc2FsIG9mIGFuIGFsZXJ0IHdhcyByZXF1ZXN0ZWQuICovXG4gIHByaXZhdGUgX2Rpc21pc3NhbFJlcXVlc3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkFsZXJ0RWxlbWVudC5ldmVudHMuZGlzbWlzc2FsUmVxdWVzdGVkLFxuICApO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9vcGVuKCk7XG4gIH1cblxuICAvKiogUmVxdWVzdHMgZGlzbWlzc2FsIG9mIHRoZSBhbGVydC4gKi9cbiAgcHVibGljIHJlcXVlc3REaXNtaXNzYWwoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzbWlzc2FsUmVxdWVzdGVkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBPcGVuIHRoZSBhbGVydC4gKi9cbiAgcHJpdmF0ZSBfb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl93aWxsT3Blbi5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJyAmJiBldmVudC5hbmltYXRpb25OYW1lID09PSAnb3Blbi1vcGFjaXR5Jykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi13cmFwcGVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPCEtLSBzdWIgd3JhcHBlciBuZWVkZWQgdG8gcHJvcGVybHkgc3VwcG9ydCBmYWRlIGluIGFuaW1hdGlvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi1zdWItd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWFsZXJ0X19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1hbGVydF9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2JiLXRpdGxlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYWxlcnRfX3RpdGxlXCJcbiAgICAgICAgICAgICAgICBsZXZlbD0ke3RoaXMudGl0bGVMZXZlbH1cbiAgICAgICAgICAgICAgICB2aXN1YWwtbGV2ZWw9JHt0aGlzLnNpemUgPT09ICdsJyA/ICczJyA6ICc1J31cbiAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc2JiLXRpdGxlPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInNiYi1hbGVydF9fY29udGVudC1zbG90XCI+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICR7dGhpcy5ocmVmXG4gICAgICAgICAgICAgICAgPyBodG1sYCA8c2JiLWxpbmtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsID8/IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9JHt0aGlzLmhyZWYgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSR7dGhpcy50YXJnZXQgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgcmVsPSR7dGhpcy5yZWwgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmxpbmtDb250ZW50ID8gdGhpcy5saW5rQ29udGVudCA6IGkxOG5GaW5kT3V0TW9yZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIDwvc2JiLWxpbms+YFxuICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICR7IXRoaXMucmVhZG9ubHlcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLWFsZXJ0X19jbG9zZS1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgPHNiYi1kaXZpZGVyXG4gICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi1hbGVydF9fY2xvc2UtYnV0dG9uLWRpdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgPjwvc2JiLWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplID09PSAnbCcgPyAnbScgOiB0aGlzLnNpemV9XG4gICAgICAgICAgICAgICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5yZXF1ZXN0RGlzbWlzc2FsKCl9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtpMThuQ2xvc2VBbGVydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYWxlcnRfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWxlcnQnOiBTYmJBbGVydEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNDTyxJQUFNLGtCQUFOLGNBQThCLGlCQUFpQixVQUFVLEVBQUU7QUFBQSxFQUEzRCxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFZdUMsU0FBTyxXQUFXO0FBR2pDLFNBQU8sT0FBd0I7QUFPdEIsU0FBZ0IsV0FBbUI7QUFNakMsU0FBTyxhQUE0QjtBQWtCOUMsU0FBTyxZQUE2QjtBQVdqRSxTQUFRLFlBQWdDLElBQUksYUFBYSxNQUFNLGdCQUFnQixPQUFPLFFBQVE7QUFHOUYsU0FBUSxXQUErQixJQUFJLGFBQWEsTUFBTSxnQkFBZ0IsT0FBTyxPQUFPO0FBRzVGLFNBQVEsc0JBQTBDLElBQUk7QUFBQSxNQUNwRDtBQUFBLE1BQ0EsZ0JBQWdCLE9BQU87QUFBQSxJQUFBO0FBR2pCLFNBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBQUEsRUFBQTtBQUFBO0FBQUEsRUFuQmxELElBQVksU0FBd0I7QUFDMUIsV0FBQSxLQUFLLGFBQWEsWUFBWSxLQUE4QjtBQUFBLEVBQ3RFO0FBQUEsRUFDQSxJQUFZLE9BQU8sT0FBc0I7QUFDbEMsU0FBQSxhQUFhLGNBQWMs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
@@ -22,6 +22,12 @@ const style = css`/**
22
22
  * }
23
23
  */
24
24
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
25
+ /*
26
+ * SBB table mixin
27
+ * Notes:
28
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
29
+ * Therefore, we have to build the grid avoiding double borders.
30
+ */
25
31
  *,
26
32
  ::before,
27
33
  ::after {
@@ -716,4 +722,4 @@ SbbAutocompleteElement = __decorateClass([
716
722
  export {
717
723
  SbbAutocompleteElement
718
724
  };
719
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50LCBnZXREb2N1bWVudFdyaXRpbmdNb2RlLCBpc1NhZmFyaSB9IGZyb20gJy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHtcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgb3ZlcmxheUdhcEZpeENvcm5lcnMsXG4gIHJlbW92ZUFyaWFDb21ib0JveEF0dHJpYnV0ZXMsXG4gIHNldEFyaWFDb21ib0JveEF0dHJpYnV0ZXMsXG4gIHNldE92ZXJsYXlQb3NpdGlvbixcbn0gZnJvbSAnLi4vY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0R3JvdXBFbGVtZW50LCBTYmJPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLnNjc3M/bGl0JmlubGluZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgXCJjbG9zZXJcIiB0byB0aGUgb3B0aW9ucywgb3IgZWxzZSBvcHRncm91cHMgd29uJ3Qgd29yay5cbiAqL1xuY29uc3QgYXJpYVJvbGVPbkhvc3QgPSBpc1NhZmFyaTtcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgbmF0aXZlIGlucHV0LCBpdCBkaXNwbGF5cyBhIHBhbmVsIHdpdGggYSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItb3B0aW9uYCBvciBgc2JiLW9wdGdyb3VwYCBlbGVtZW50cyB0byB0aGUgYHNiYi1hdXRvY29tcGxldGVgLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgaXMgY2xvc2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLWF1dG9jb21wbGV0ZS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItYXV0b2NvbXBsZXRlJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIGRpcjogZ2V0RG9jdW1lbnRXcml0aW5nTW9kZSgpLFxuICByb2xlOiBhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG51bGwsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFxuICBTYmJIeWRyYXRpb25NaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBhdHRhY2g7IGFjY2VwdHMgYm90aCBhbiBlbGVtZW50J3MgaWQgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIElmIG5vdCBzZXQsIHdpbGwgc2VhcmNoIGZvciB0aGUgZmlyc3QgJ3NiYi1mb3JtLWZpZWxkJyBhbmNlc3Rvci5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBvcmlnaW4/OiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGlucHV0IGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIGF1dG9jb21wbGV0ZSBvcGVuaW5nOyBhY2NlcHRzIGJvdGggYW4gZWxlbWVudCdzIGlkIG9yIGFuIEhUTUxFbGVtZW50LlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgYXV0b2NvbXBsZXRlIHdpbGwgb3BlbiBvbiBmb2N1cywgY2xpY2ssIGlucHV0IG9yIGBBcnJvd0Rvd25gIGtleXByZXNzIG9mIHRoZSAndHJpZ2dlcicgZWxlbWVudC5cbiAgICogSWYgbm90IHNldCwgd2lsbCBzZWFyY2ggZm9yIHRoZSBmaXJzdCAnaW5wdXQnIGNoaWxkIG9mIGEgJ3NiYi1mb3JtLWZpZWxkJyBhbmNlc3Rvci5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTElucHV0RWxlbWVudDtcblxuICAvKiogV2hldGhlciB0aGUgaWNvbiBzcGFjZSBpcyBwcmVzZXJ2ZWQgd2hlbiBubyBpY29uIGlzIHNldC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJlc2VydmUtaWNvbi1zcGFjZScsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIHByZXNlcnZlSWNvblNwYWNlPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX29wdGlvbkNvbnRhaW5lciE6IEhUTUxFbGVtZW50O1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIGF1dG9jb21wbGV0ZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvLiAqL1xuICBwdWJsaWMgZ2V0IG9yaWdpbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGlmICghdGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHRoaXMuX2ZpbmRPcmlnaW5FbGVtZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5FbGVtZW50O1xuICB9XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBlbGVtZW50LiAqL1xuICBwdWJsaWMgZ2V0IHRyaWdnZXJFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIF90cmlnZ2VyRXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKiBUaGUgYXV0b2NvbXBsZXRlIHNob3VsZCBpbmhlcml0ICdyZWFkb25seScgc3RhdGUgZnJvbSB0aGUgdHJpZ2dlci4gKi9cbiAgcHJpdmF0ZSBnZXQgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldCBfb3B0aW9ucygpOiBTYmJPcHRpb25FbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItb3B0aW9uJykgPz8gW10pO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5fb3ZlcmxheSB8fCB0aGlzLl9vcHRpb25zLmxlbmd0aCA9PT0gMCB8fCB0aGlzLl9yZWFkb25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5hYm9ydCgpO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgdHJpZ2dlciBjbGljayBsaXN0ZW5lciBvbiB0cmlnZ2VyIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBfcmVzZXRPcmlnaW5DbGlja0xpc3RlbmVyKFxuICAgIG5ld1ZhbHVlPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4gICAgb2xkVmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLiAqL1xuICBwcml2YXRlIF9yZXNldFRyaWdnZXJDbGlja0xpc3RlbmVyKFxuICAgIG5ld1ZhbHVlPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4gICAgb2xkVmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQsIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgYW5kIGNsb3NlIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHByaXZhdGUgX29uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZXNlbGVjdCB0aGUgcHJldmlvdXMgb3B0aW9uc1xuICAgIHRoaXMuX29wdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmlkICE9PSB0YXJnZXQuaWQgJiYgb3B0aW9uLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlKSk7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyRWxlbWVudCkge1xuICAgICAgLy8gU2V0IHRoZSBvcHRpb24gdmFsdWVcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQudmFsdWUgPSB0YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uT3B0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmxvY2FsTmFtZSAhPT0gJ3NiYi1vcHRpb24nIHx8XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkVsZW1lbnQpLmRpc2FibGVkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmIChhcmlhUm9sZU9uSG9zdCkge1xuICAgICAgdGhpcy5pZCB8fD0gdGhpcy5fb3ZlcmxheUlkO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICBjb25zdCBmb3JtRmllbGQgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKSA/PyB0aGlzLmNsb3Nlc3Q/LignW2RhdGEtZm9ybS1maWVsZF0nKTtcblxuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdvcHRpb25TZWxlY3Rpb25DaGFuZ2UnLFxuICAgICAgKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KSA9PiB0aGlzLl9vbk9wdGlvblNlbGVjdGVkKGUpLFxuICAgICAgeyBzaWduYWwgfSxcbiAgICApO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5fb25PcHRpb25DbGljayhlKSwgeyBzaWduYWwgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWdpbicpKSB7XG4gICAgICB0aGlzLl9yZXNldE9yaWdpbkNsaWNrTGlzdGVuZXIodGhpcy5vcmlnaW4sIGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnb3JpZ2luJykpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0cmlnZ2VyJykpIHtcbiAgICAgIHRoaXMuX3Jlc2V0VHJpZ2dlckNsaWNrTGlzdGVuZXIodGhpcy50cmlnZ2VyLCBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3RyaWdnZXInKSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIHRoaXMuX2RpZExvYWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItZGl2aWRlcicpLmZvckVhY2goKGRpdmlkZXIpID0+IChkaXZpZGVyLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZSkpO1xuXG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiT3B0aW9uRWxlbWVudCB8IFNiYk9wdEdyb3VwRWxlbWVudD4oXG4gICAgICAnc2JiLW9wdGlvbiwgc2JiLW9wdGdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBvbmVudFNldHVwKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuXG4gICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW9wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsXG4gICAgICAhIXRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5oYXNBdHRyaWJ1dGUoJ2JvcmRlcmxlc3MnKSxcbiAgICApO1xuXG4gICAgdGhpcy5fYmluZFRvKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgJ29yaWdpbicgb3IgdGhlIGZpcnN0ICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBwcml2YXRlIF9maW5kT3JpZ2luRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgcmVzdWx0ID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LignI292ZXJsYXktYW5jaG9yJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0aGlzLm9yaWdpbik7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIHJlYWQgdGhlIFwib3JpZ2luXCIgcHJvcCBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEByZXR1cm5zICd0cmlnZ2VyJyBvciB0aGUgZmlyc3QgJ2lucHV0JyBpbnNpZGUgdGhlIG9yaWdpbiBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8ucXVlcnlTZWxlY3RvcignaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0aGlzLnRyaWdnZXIpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFBsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZWxlbWVudCBvciByZWFkIHRoZSBcInRyaWdnZXJcIiBwcm9wIGRvY3VtZW50YXRpb24nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYmluZFRvKHRyaWdnZXJFbGVtOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGF0dHJpYnV0ZXMgdG8gdGhlIG9sZCB0cmlnZ2VyIGFuZCBhZGQgdGhlbSB0byB0aGUgbmV3IG9uZVxuICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3NldFRyaWdnZXJBdHRyaWJ1dGVzKHRyaWdnZXJFbGVtKTtcblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlckVsZW07XG5cbiAgICB0aGlzLl9zZXR1cFRyaWdnZXJFdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwVHJpZ2dlckV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIE9wZW4gdGhlIG92ZXJsYXkgb24gZm9jdXMsIGNsaWNrLCBpbnB1dCBhbmQgYEFycm93RG93bmAgZXZlbnRcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2lucHV0JyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucygoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQpLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICAvLyBTZXQgb3ZlcmxheSBwb3NpdGlvbiwgd2lkdGggYW5kIG1heCBoZWlnaHRcbiAgcHJpdmF0ZSBfc2V0T3ZlcmxheVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHNldE92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMuX292ZXJsYXksXG4gICAgICB0aGlzLm9yaWdpbkVsZW1lbnQsXG4gICAgICB0aGlzLl9vcHRpb25Db250YWluZXIsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItYXV0b2NvbXBsZXRlX19jb250YWluZXInKSEsXG4gICAgICB0aGlzLFxuICAgICk7XG4gIH1cblxuICAvKiogT24gb3Blbi9jbG9zZSBhbmltYXRpb24gZW5kLlxuICAgKiAgSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgICogIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgICovXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9vbk9wZW5BbmltYXRpb25FbmQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9vbkNsb3NlQW5pbWF0aW9uRW5kKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25PcGVuQW5pbWF0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNsb3NlQW5pbWF0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICB0aGlzLl9yZXNldEFjdGl2ZUVsZW1lbnQoKTtcbiAgICB0aGlzLl9vcHRpb25Db250YWluZXIuc2Nyb2xsVG9wID0gMDtcbiAgICB0aGlzLmRpZENsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gUmVjYWxjdWxhdGUgdGhlIG92ZXJsYXkgcG9zaXRpb24gb24gc2Nyb2xsIGFuZCB3aW5kb3cgcmVzaXplXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBhdXRvY29tcGxldGUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoZXYpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXYpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCAoZXYpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIEtleWJvYXJkIGludGVyYWN0aW9uc1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCk7XG4gIH07XG5cbiAgLy8gSWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgdGhlIGF1dG9jb21wbGV0ZSwgY2xvc2VzIHRoZSBwYW5lbC5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICB0aGlzLl9zZWxlY3RCeUtleWJvYXJkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RCeUtleWJvYXJkKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMuX29wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIGlmIChhY3RpdmVPcHRpb24pIHtcbiAgICAgIGFjdGl2ZU9wdGlvbi5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5fb3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgKTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dF07XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cbiAgICAvLyBSZXNldCB0aGUgcHJldmlvdXMgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IGxhc3RBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZU9wdGlvbikge1xuICAgICAgbGFzdEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSBuZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLl9vcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gLTE7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghc2VhcmNoVGVybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLmhpZ2hsaWdodChzZWFyY2hUZXJtKSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50LCB0aGlzLmlkIHx8IHRoaXMuX292ZXJsYXlJZCwgZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckF0dHJpYnV0ZXMoZWxlbWVudD86IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKHRoaXMudHJpZ2dlckVsZW1lbnQ/LnZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj4ke292ZXJsYXlHYXBGaXhDb3JuZXJzKCl9PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19wYW5lbFwiXG4gICAgICAgICAgJHtyZWYoKG92ZXJsYXlSZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fb3ZlcmxheSA9IG92ZXJsYXlSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fb3B0aW9uc1wiXG4gICAgICAgICAgICAgIHJvbGU9JHshYXJpYVJvbGVPbkhvc3QgPyAnbGlzdGJveCcgOiBub3RoaW5nfVxuICAgICAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMuX292ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYXV0b2NvbXBsZXRlJzogU2JiQXV0b2NvbXBsZXRlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBSSxTQUFTO0FBTWIsTUFBTSxpQkFBaUI7QUFtQmhCLElBQU0seUJBQU4sY0FBcUM7QUFBQSxFQUMxQyxrQkFBa0IsdUJBQXVCO0FBQzNDLEVBQUU7QUFBQSxFQUZLLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQTBDRyxTQUFBLGFBQWEsb0JBQW9CLEVBQUUsTUFBTTtBQUNq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
725
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50LCBnZXREb2N1bWVudFdyaXRpbmdNb2RlLCBpc1NhZmFyaSB9IGZyb20gJy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHtcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgb3ZlcmxheUdhcEZpeENvcm5lcnMsXG4gIHJlbW92ZUFyaWFDb21ib0JveEF0dHJpYnV0ZXMsXG4gIHNldEFyaWFDb21ib0JveEF0dHJpYnV0ZXMsXG4gIHNldE92ZXJsYXlQb3NpdGlvbixcbn0gZnJvbSAnLi4vY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0R3JvdXBFbGVtZW50LCBTYmJPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLnNjc3M/bGl0JmlubGluZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgXCJjbG9zZXJcIiB0byB0aGUgb3B0aW9ucywgb3IgZWxzZSBvcHRncm91cHMgd29uJ3Qgd29yay5cbiAqL1xuY29uc3QgYXJpYVJvbGVPbkhvc3QgPSBpc1NhZmFyaTtcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgbmF0aXZlIGlucHV0LCBpdCBkaXNwbGF5cyBhIHBhbmVsIHdpdGggYSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItb3B0aW9uYCBvciBgc2JiLW9wdGdyb3VwYCBlbGVtZW50cyB0byB0aGUgYHNiYi1hdXRvY29tcGxldGVgLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgaXMgY2xvc2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLWF1dG9jb21wbGV0ZS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItYXV0b2NvbXBsZXRlJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIGRpcjogZ2V0RG9jdW1lbnRXcml0aW5nTW9kZSgpLFxuICByb2xlOiBhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG51bGwsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFxuICBTYmJIeWRyYXRpb25NaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBhdHRhY2g7IGFjY2VwdHMgYm90aCBhbiBlbGVtZW50J3MgaWQgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIElmIG5vdCBzZXQsIHdpbGwgc2VhcmNoIGZvciB0aGUgZmlyc3QgJ3NiYi1mb3JtLWZpZWxkJyBhbmNlc3Rvci5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBvcmlnaW4/OiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGlucHV0IGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIGF1dG9jb21wbGV0ZSBvcGVuaW5nOyBhY2NlcHRzIGJvdGggYW4gZWxlbWVudCdzIGlkIG9yIGFuIEhUTUxFbGVtZW50LlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgYXV0b2NvbXBsZXRlIHdpbGwgb3BlbiBvbiBmb2N1cywgY2xpY2ssIGlucHV0IG9yIGBBcnJvd0Rvd25gIGtleXByZXNzIG9mIHRoZSAndHJpZ2dlcicgZWxlbWVudC5cbiAgICogSWYgbm90IHNldCwgd2lsbCBzZWFyY2ggZm9yIHRoZSBmaXJzdCAnaW5wdXQnIGNoaWxkIG9mIGEgJ3NiYi1mb3JtLWZpZWxkJyBhbmNlc3Rvci5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTElucHV0RWxlbWVudDtcblxuICAvKiogV2hldGhlciB0aGUgaWNvbiBzcGFjZSBpcyBwcmVzZXJ2ZWQgd2hlbiBubyBpY29uIGlzIHNldC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJlc2VydmUtaWNvbi1zcGFjZScsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIHByZXNlcnZlSWNvblNwYWNlPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX29wdGlvbkNvbnRhaW5lciE6IEhUTUxFbGVtZW50O1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIGF1dG9jb21wbGV0ZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvLiAqL1xuICBwdWJsaWMgZ2V0IG9yaWdpbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGlmICghdGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHRoaXMuX2ZpbmRPcmlnaW5FbGVtZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5FbGVtZW50O1xuICB9XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBlbGVtZW50LiAqL1xuICBwdWJsaWMgZ2V0IHRyaWdnZXJFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIF90cmlnZ2VyRXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKiBUaGUgYXV0b2NvbXBsZXRlIHNob3VsZCBpbmhlcml0ICdyZWFkb25seScgc3RhdGUgZnJvbSB0aGUgdHJpZ2dlci4gKi9cbiAgcHJpdmF0ZSBnZXQgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldCBfb3B0aW9ucygpOiBTYmJPcHRpb25FbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItb3B0aW9uJykgPz8gW10pO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5fb3ZlcmxheSB8fCB0aGlzLl9vcHRpb25zLmxlbmd0aCA9PT0gMCB8fCB0aGlzLl9yZWFkb25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5hYm9ydCgpO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgdHJpZ2dlciBjbGljayBsaXN0ZW5lciBvbiB0cmlnZ2VyIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBfcmVzZXRPcmlnaW5DbGlja0xpc3RlbmVyKFxuICAgIG5ld1ZhbHVlPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4gICAgb2xkVmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLiAqL1xuICBwcml2YXRlIF9yZXNldFRyaWdnZXJDbGlja0xpc3RlbmVyKFxuICAgIG5ld1ZhbHVlPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4gICAgb2xkVmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQsIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgYW5kIGNsb3NlIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHByaXZhdGUgX29uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZXNlbGVjdCB0aGUgcHJldmlvdXMgb3B0aW9uc1xuICAgIHRoaXMuX29wdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmlkICE9PSB0YXJnZXQuaWQgJiYgb3B0aW9uLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlKSk7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyRWxlbWVudCkge1xuICAgICAgLy8gU2V0IHRoZSBvcHRpb24gdmFsdWVcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQudmFsdWUgPSB0YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uT3B0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmxvY2FsTmFtZSAhPT0gJ3NiYi1vcHRpb24nIHx8XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkVsZW1lbnQpLmRpc2FibGVkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmIChhcmlhUm9sZU9uSG9zdCkge1xuICAgICAgdGhpcy5pZCB8fD0gdGhpcy5fb3ZlcmxheUlkO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICBjb25zdCBmb3JtRmllbGQgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKSA/PyB0aGlzLmNsb3Nlc3Q/LignW2RhdGEtZm9ybS1maWVsZF0nKTtcblxuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdvcHRpb25TZWxlY3Rpb25DaGFuZ2UnLFxuICAgICAgKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KSA9PiB0aGlzLl9vbk9wdGlvblNlbGVjdGVkKGUpLFxuICAgICAgeyBzaWduYWwgfSxcbiAgICApO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5fb25PcHRpb25DbGljayhlKSwgeyBzaWduYWwgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWdpbicpKSB7XG4gICAgICB0aGlzLl9yZXNldE9yaWdpbkNsaWNrTGlzdGVuZXIodGhpcy5vcmlnaW4sIGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnb3JpZ2luJykpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0cmlnZ2VyJykpIHtcbiAgICAgIHRoaXMuX3Jlc2V0VHJpZ2dlckNsaWNrTGlzdGVuZXIodGhpcy50cmlnZ2VyLCBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3RyaWdnZXInKSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIHRoaXMuX2RpZExvYWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItZGl2aWRlcicpLmZvckVhY2goKGRpdmlkZXIpID0+IChkaXZpZGVyLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZSkpO1xuXG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiT3B0aW9uRWxlbWVudCB8IFNiYk9wdEdyb3VwRWxlbWVudD4oXG4gICAgICAnc2JiLW9wdGlvbiwgc2JiLW9wdGdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBvbmVudFNldHVwKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuXG4gICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW9wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsXG4gICAgICAhIXRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5oYXNBdHRyaWJ1dGUoJ2JvcmRlcmxlc3MnKSxcbiAgICApO1xuXG4gICAgdGhpcy5fYmluZFRvKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgJ29yaWdpbicgb3IgdGhlIGZpcnN0ICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBwcml2YXRlIF9maW5kT3JpZ2luRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgcmVzdWx0ID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LignI292ZXJsYXktYW5jaG9yJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0aGlzLm9yaWdpbik7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIHJlYWQgdGhlIFwib3JpZ2luXCIgcHJvcCBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEByZXR1cm5zICd0cmlnZ2VyJyBvciB0aGUgZmlyc3QgJ2lucHV0JyBpbnNpZGUgdGhlIG9yaWdpbiBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8ucXVlcnlTZWxlY3RvcignaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0aGlzLnRyaWdnZXIpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFBsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZWxlbWVudCBvciByZWFkIHRoZSBcInRyaWdnZXJcIiBwcm9wIGRvY3VtZW50YXRpb24nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYmluZFRvKHRyaWdnZXJFbGVtOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGF0dHJpYnV0ZXMgdG8gdGhlIG9sZCB0cmlnZ2VyIGFuZCBhZGQgdGhlbSB0byB0aGUgbmV3IG9uZVxuICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3NldFRyaWdnZXJBdHRyaWJ1dGVzKHRyaWdnZXJFbGVtKTtcblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlckVsZW07XG5cbiAgICB0aGlzLl9zZXR1cFRyaWdnZXJFdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwVHJpZ2dlckV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIE9wZW4gdGhlIG92ZXJsYXkgb24gZm9jdXMsIGNsaWNrLCBpbnB1dCBhbmQgYEFycm93RG93bmAgZXZlbnRcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2lucHV0JyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucygoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQpLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICAvLyBTZXQgb3ZlcmxheSBwb3NpdGlvbiwgd2lkdGggYW5kIG1heCBoZWlnaHRcbiAgcHJpdmF0ZSBfc2V0T3ZlcmxheVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHNldE92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMuX292ZXJsYXksXG4gICAgICB0aGlzLm9yaWdpbkVsZW1lbnQsXG4gICAgICB0aGlzLl9vcHRpb25Db250YWluZXIsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItYXV0b2NvbXBsZXRlX19jb250YWluZXInKSEsXG4gICAgICB0aGlzLFxuICAgICk7XG4gIH1cblxuICAvKiogT24gb3Blbi9jbG9zZSBhbmltYXRpb24gZW5kLlxuICAgKiAgSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgICogIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgICovXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9vbk9wZW5BbmltYXRpb25FbmQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9vbkNsb3NlQW5pbWF0aW9uRW5kKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25PcGVuQW5pbWF0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNsb3NlQW5pbWF0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICB0aGlzLl9yZXNldEFjdGl2ZUVsZW1lbnQoKTtcbiAgICB0aGlzLl9vcHRpb25Db250YWluZXIuc2Nyb2xsVG9wID0gMDtcbiAgICB0aGlzLmRpZENsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gUmVjYWxjdWxhdGUgdGhlIG92ZXJsYXkgcG9zaXRpb24gb24gc2Nyb2xsIGFuZCB3aW5kb3cgcmVzaXplXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBhdXRvY29tcGxldGUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoZXYpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXYpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCAoZXYpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIEtleWJvYXJkIGludGVyYWN0aW9uc1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCk7XG4gIH07XG5cbiAgLy8gSWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgdGhlIGF1dG9jb21wbGV0ZSwgY2xvc2VzIHRoZSBwYW5lbC5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICB0aGlzLl9zZWxlY3RCeUtleWJvYXJkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RCeUtleWJvYXJkKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMuX29wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIGlmIChhY3RpdmVPcHRpb24pIHtcbiAgICAgIGFjdGl2ZU9wdGlvbi5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5fb3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgKTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dF07XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cbiAgICAvLyBSZXNldCB0aGUgcHJldmlvdXMgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IGxhc3RBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZU9wdGlvbikge1xuICAgICAgbGFzdEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSBuZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLl9vcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gLTE7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghc2VhcmNoVGVybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLmhpZ2hsaWdodChzZWFyY2hUZXJtKSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50LCB0aGlzLmlkIHx8IHRoaXMuX292ZXJsYXlJZCwgZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckF0dHJpYnV0ZXMoZWxlbWVudD86IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKHRoaXMudHJpZ2dlckVsZW1lbnQ/LnZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj4ke292ZXJsYXlHYXBGaXhDb3JuZXJzKCl9PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19wYW5lbFwiXG4gICAgICAgICAgJHtyZWYoKG92ZXJsYXlSZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fb3ZlcmxheSA9IG92ZXJsYXlSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fb3B0aW9uc1wiXG4gICAgICAgICAgICAgIHJvbGU9JHshYXJpYVJvbGVPbkhvc3QgPyAnbGlzdGJveCcgOiBub3RoaW5nfVxuICAgICAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMuX292ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYXV0b2NvbXBsZXRlJzogU2JiQXV0b2NvbXBsZXRlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBSSxTQUFTO0FBTWIsTUFBTSxpQkFBaUI7QUFtQmhCLElBQU0seUJBQU4sY0FBcUM7QUFBQSxFQUMxQyxrQkFBa0IsdUJBQXVCO0FBQzNDLEVBQUU7QUFBQSxFQUZLLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQTBDRyxTQUFBLGFBQWEsb0JBQW9CLEVBQUUsTUFB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