@sbb-esta/lyne-elements 1.9.0 → 1.10.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 (291) hide show
  1. package/accordion/accordion.d.ts +5 -5
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +17 -17
  4. package/action-group/action-group.d.ts +1 -1
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +3 -3
  7. package/alert/alert/alert.d.ts +1 -1
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert.js +3 -3
  10. package/autocomplete/autocomplete-base-element.d.ts +1 -1
  11. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  12. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
  13. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  14. package/autocomplete-grid/autocomplete-grid-option.js +1 -1
  15. package/autocomplete-grid/autocomplete-grid.js +18 -18
  16. package/autocomplete.js +9 -9
  17. package/button/button.js +9 -9
  18. package/button/common.js +5 -5
  19. package/button/mini-button/mini-button.d.ts.map +1 -1
  20. package/button/mini-button.js +17 -15
  21. package/button/secondary-button.js +6 -6
  22. package/button/tertiary-button.js +13 -13
  23. package/button/transparent-button.js +8 -8
  24. package/calendar/calendar.d.ts +2 -2
  25. package/calendar/calendar.d.ts.map +1 -1
  26. package/calendar.js +5 -4
  27. package/clock/clock.d.ts +2 -2
  28. package/clock/clock.d.ts.map +1 -1
  29. package/core/a11y/focus-visible-within-controller.d.ts +1 -1
  30. package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  31. package/core/a11y/input-modality-detector.d.ts +2 -2
  32. package/core/a11y/input-modality-detector.d.ts.map +1 -1
  33. package/core/a11y.js +3 -3
  34. package/core/base-elements/action-base-element.d.ts +1 -0
  35. package/core/base-elements/action-base-element.d.ts.map +1 -1
  36. package/core/base-elements/button-base-element.d.ts +1 -1
  37. package/core/base-elements/button-base-element.d.ts.map +1 -1
  38. package/core/base-elements/link-base-element.d.ts.map +1 -1
  39. package/core/base-elements.js +47 -45
  40. package/core/controllers/slot-state-controller.d.ts +1 -1
  41. package/core/controllers/slot-state-controller.d.ts.map +1 -1
  42. package/core/mixins/disabled-mixin.d.ts +8 -0
  43. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  44. package/core/mixins.js +97 -89
  45. package/core/styles/mixins/panel.scss +0 -2
  46. package/core/styles/mixins/table.scss +11 -0
  47. package/core/styles/mixins/typo.scss +0 -30
  48. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +1 -0
  49. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +2 -1
  50. package/core/styles/table.scss +6 -1
  51. package/core.css +2 -14
  52. package/custom-elements.json +370 -298
  53. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  54. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
  55. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  56. package/datepicker/datepicker-toggle.js +56 -46
  57. package/datepicker/datepicker.js +1 -0
  58. package/development/accordion/accordion.d.ts +5 -5
  59. package/development/accordion/accordion.d.ts.map +1 -1
  60. package/development/accordion.js +25 -38
  61. package/development/action-group/action-group.d.ts +1 -1
  62. package/development/action-group/action-group.d.ts.map +1 -1
  63. package/development/action-group.js +8 -21
  64. package/development/alert/alert/alert.d.ts +1 -1
  65. package/development/alert/alert/alert.d.ts.map +1 -1
  66. package/development/alert/alert-group.js +2 -15
  67. package/development/alert/alert.js +6 -19
  68. package/development/autocomplete/autocomplete-base-element.d.ts +1 -1
  69. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  70. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
  71. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  72. package/development/autocomplete-grid/autocomplete-grid-button.js +2 -15
  73. package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -15
  74. package/development/autocomplete-grid/autocomplete-grid-option.js +4 -17
  75. package/development/autocomplete-grid/autocomplete-grid-row.js +2 -15
  76. package/development/autocomplete-grid/autocomplete-grid.js +6 -6
  77. package/development/autocomplete.js +7 -20
  78. package/development/breadcrumb/breadcrumb-group.js +2 -15
  79. package/development/breadcrumb/breadcrumb.js +2 -15
  80. package/development/button/button.js +3 -3
  81. package/development/button/common.js +2 -17
  82. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  83. package/development/button/mini-button-group.js +2 -15
  84. package/development/button/mini-button.js +6 -17
  85. package/development/button/secondary-button.js +3 -3
  86. package/development/button/tertiary-button.js +3 -3
  87. package/development/button/transparent-button.js +3 -3
  88. package/development/calendar/calendar.d.ts +2 -2
  89. package/development/calendar/calendar.d.ts.map +1 -1
  90. package/development/calendar.js +7 -19
  91. package/development/card/card-badge.js +2 -15
  92. package/development/card/card.js +2 -15
  93. package/development/card/common.js +2 -15
  94. package/development/checkbox/checkbox-group.js +2 -15
  95. package/development/checkbox/checkbox.js +2 -15
  96. package/development/checkbox/common.js +1 -14
  97. package/development/chip.js +2 -15
  98. package/development/clock/clock.d.ts +2 -2
  99. package/development/clock/clock.d.ts.map +1 -1
  100. package/development/clock.js +2 -15
  101. package/development/container/container.js +1 -14
  102. package/development/container/sticky-bar.js +2 -15
  103. package/development/core/a11y/focus-visible-within-controller.d.ts +1 -1
  104. package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  105. package/development/core/a11y/input-modality-detector.d.ts +2 -2
  106. package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
  107. package/development/core/a11y.js +6 -6
  108. package/development/core/base-elements/action-base-element.d.ts +1 -0
  109. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  110. package/development/core/base-elements/button-base-element.d.ts +1 -1
  111. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  112. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  113. package/development/core/base-elements.js +11 -2
  114. package/development/core/controllers/slot-state-controller.d.ts +1 -1
  115. package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
  116. package/development/core/controllers.js +1 -1
  117. package/development/core/mixins/disabled-mixin.d.ts +8 -0
  118. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  119. package/development/core/mixins.js +24 -15
  120. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  121. package/development/datepicker/datepicker-next-day.js +2 -15
  122. package/development/datepicker/datepicker-previous-day.js +2 -15
  123. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
  124. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  125. package/development/datepicker/datepicker-toggle.js +20 -22
  126. package/development/datepicker/datepicker.js +3 -15
  127. package/development/dialog/dialog-actions.js +2 -15
  128. package/development/dialog/dialog-content.js +2 -15
  129. package/development/dialog/dialog-title.js +2 -15
  130. package/development/dialog/dialog.js +3 -16
  131. package/development/divider.js +2 -15
  132. package/development/expansion-panel/expansion-panel-content.js +2 -15
  133. package/development/expansion-panel/expansion-panel-header.js +5 -17
  134. package/development/expansion-panel/expansion-panel.js +2 -15
  135. package/development/file-selector/file-selector.d.ts +4 -4
  136. package/development/file-selector/file-selector.d.ts.map +1 -1
  137. package/development/file-selector.js +2 -17
  138. package/development/flip-card/flip-card-details.js +2 -15
  139. package/development/flip-card/flip-card-summary.js +2 -15
  140. package/development/flip-card/flip-card.js +2 -15
  141. package/development/footer.js +2 -15
  142. package/development/form-error.js +2 -15
  143. package/development/form-field/form-field-clear.js +2 -15
  144. package/development/form-field/form-field.js +1 -14
  145. package/development/header/common.js +2 -15
  146. package/development/header/header.js +2 -15
  147. package/development/icon/icon.d.ts +6 -0
  148. package/development/icon/icon.d.ts.map +1 -1
  149. package/development/icon.js +10 -15
  150. package/development/image.js +4 -17
  151. package/development/journey-header.js +2 -15
  152. package/development/lead-container.js +2 -15
  153. package/development/link/block-link-button.js +3 -3
  154. package/development/link/common.js +4 -43
  155. package/development/link/link-button.js +3 -3
  156. package/development/link-list/common.js +2 -15
  157. package/development/link-list/link-list-anchor.js +2 -15
  158. package/development/link-list/link-list.js +2 -15
  159. package/development/loading-indicator.js +2 -15
  160. package/development/logo.js +2 -15
  161. package/development/map-container.js +2 -15
  162. package/development/menu/common.js +2 -15
  163. package/development/menu/menu/menu.d.ts.map +1 -1
  164. package/development/menu/menu-button.js +3 -3
  165. package/development/menu/menu.js +3 -18
  166. package/development/message.js +2 -15
  167. package/development/navigation/common.js +2 -17
  168. package/development/navigation/navigation-list.js +2 -15
  169. package/development/navigation/navigation-marker.js +2 -17
  170. package/development/navigation/navigation-section.js +2 -19
  171. package/development/navigation/navigation.js +2 -15
  172. package/development/notification.js +2 -15
  173. package/development/option/optgroup/optgroup-base-element.d.ts +2 -2
  174. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  175. package/development/option/optgroup.js +2 -15
  176. package/development/option/option/option-base-element.d.ts +14 -4
  177. package/development/option/option/option-base-element.d.ts.map +1 -1
  178. package/development/option/option.js +15 -21
  179. package/development/overlay/overlay-base-element.d.ts +1 -1
  180. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  181. package/development/overlay.js +2 -15
  182. package/development/popover/popover-trigger.js +4 -17
  183. package/development/popover/popover.js +2 -15
  184. package/development/radio-button/common.js +2 -15
  185. package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  186. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  187. package/development/radio-button/radio-button-group.js +9 -22
  188. package/development/radio-button/radio-button.js +2 -15
  189. package/development/screen-reader-only.js +2 -15
  190. package/development/select/select.d.ts.map +1 -1
  191. package/development/select.js +30 -43
  192. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
  193. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  194. package/development/selection-expansion-panel.js +38 -18
  195. package/development/signet.js +2 -15
  196. package/development/skiplink-list.js +2 -15
  197. package/development/slider/slider.d.ts.map +1 -1
  198. package/development/slider.js +10 -16
  199. package/development/status.js +2 -15
  200. package/development/stepper/step-label/step-label.d.ts +6 -6
  201. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  202. package/development/stepper/step-label.js +31 -44
  203. package/development/stepper/step.js +2 -15
  204. package/development/stepper/stepper/stepper.d.ts +3 -3
  205. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  206. package/development/stepper/stepper.js +2 -15
  207. package/development/table/table-wrapper.js +2 -15
  208. package/development/tabs/tab-group/tab-group.d.ts +4 -4
  209. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  210. package/development/tabs/tab-group.js +22 -35
  211. package/development/tabs/tab-label.js +2 -19
  212. package/development/tabs/tab.js +1 -14
  213. package/development/tag/tag-group.js +2 -15
  214. package/development/tag/tag.js +4 -17
  215. package/development/teaser-hero.js +3 -23
  216. package/development/teaser-product/common.js +2 -15
  217. package/development/teaser-product/teaser-product.js +3 -16
  218. package/development/teaser.js +2 -15
  219. package/development/time-input.js +2 -15
  220. package/development/timetable-occupancy-icon.js +2 -15
  221. package/development/timetable-occupancy.js +2 -15
  222. package/development/title.js +3 -41
  223. package/development/toast.js +2 -17
  224. package/development/toggle/toggle/toggle.d.ts +2 -2
  225. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  226. package/development/toggle/toggle-option.js +2 -15
  227. package/development/toggle/toggle.js +23 -36
  228. package/development/toggle-check.js +1 -14
  229. package/development/train/train-blocked-passage.js +2 -15
  230. package/development/train/train-formation.js +2 -15
  231. package/development/train/train-wagon.js +2 -17
  232. package/development/train/train.js +2 -15
  233. package/development/visual-checkbox.js +2 -15
  234. package/dialog/dialog.js +1 -1
  235. package/expansion-panel/expansion-panel-header.js +5 -5
  236. package/file-selector/file-selector.d.ts +4 -4
  237. package/file-selector/file-selector.d.ts.map +1 -1
  238. package/file-selector.js +1 -1
  239. package/icon/icon.d.ts +6 -0
  240. package/icon/icon.d.ts.map +1 -1
  241. package/icon.js +27 -19
  242. package/image.js +2 -2
  243. package/link/block-link-button.js +10 -10
  244. package/link/link-button.js +4 -4
  245. package/lists.css +0 -13
  246. package/menu/menu/menu.d.ts.map +1 -1
  247. package/menu/menu-button.js +13 -13
  248. package/menu/menu.js +7 -9
  249. package/navigation/common.js +1 -1
  250. package/navigation/navigation-marker.js +1 -1
  251. package/navigation/navigation-section.js +1 -1
  252. package/option/optgroup/optgroup-base-element.d.ts +2 -2
  253. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  254. package/option/option/option-base-element.d.ts +14 -4
  255. package/option/option/option-base-element.d.ts.map +1 -1
  256. package/option/option.js +32 -25
  257. package/overlay/overlay-base-element.d.ts +1 -1
  258. package/overlay/overlay-base-element.d.ts.map +1 -1
  259. package/package.json +1 -1
  260. package/popover/popover-trigger.js +1 -1
  261. package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  262. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  263. package/radio-button/radio-button-group.js +5 -5
  264. package/select/select.d.ts.map +1 -1
  265. package/select.js +23 -23
  266. package/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
  267. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  268. package/selection-expansion-panel.js +70 -49
  269. package/slider/slider.d.ts.map +1 -1
  270. package/slider.js +2 -2
  271. package/standard-theme.css +35 -23
  272. package/stepper/step-label/step-label.d.ts +6 -6
  273. package/stepper/step-label/step-label.d.ts.map +1 -1
  274. package/stepper/step-label.js +20 -20
  275. package/stepper/stepper/stepper.d.ts +3 -3
  276. package/stepper/stepper/stepper.d.ts.map +1 -1
  277. package/tabs/tab-group/tab-group.d.ts +4 -4
  278. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  279. package/tabs/tab-group.js +15 -15
  280. package/tabs/tab-label.js +12 -12
  281. package/tag/tag.js +19 -19
  282. package/teaser-hero.js +13 -13
  283. package/teaser-product/teaser-product.js +5 -5
  284. package/teaser.js +15 -15
  285. package/title.js +23 -23
  286. package/toast.js +4 -4
  287. package/toggle/toggle/toggle.d.ts +2 -2
  288. package/toggle/toggle/toggle.d.ts.map +1 -1
  289. package/toggle/toggle.js +10 -10
  290. package/train/train-wagon.js +7 -7
  291. package/typography.css +0 -13
@@ -8,21 +8,9 @@ import { i18nShowCalendar } from "../core/i18n.js";
8
8
  import { SbbNegativeMixin, SbbHydrationMixin } from "../core/mixins.js";
9
9
  import { getDatePicker, datepickerControlRegisteredEventFactory } from "./datepicker.js";
10
10
  import "../calendar.js";
11
- import "../popover.js";
12
- const style = css`/**
13
- * Better font rendering (on OS X)
14
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
15
- *
16
- * Usage:
17
- *
18
- * .var_dark_on_light {
19
- * @include font-smoothing;
20
- * }
21
- * .var_light_on_dark {
22
- * @include font-smoothing-reset;
23
- * }
24
- */
25
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
11
+ import "../popover/popover.js";
12
+ import "../button/mini-button.js";
13
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
26
14
  /*
27
15
  * SBB table mixin
28
16
  * Notes:
@@ -41,7 +29,7 @@ const style = css`/**
41
29
  display: inline-flex;
42
30
  }
43
31
 
44
- sbb-popover-trigger {
32
+ .sbb-datepicker-toggle__trigger {
45
33
  color: var(--sbb-datepicker-control-color);
46
34
  height: unset;
47
35
  }
@@ -80,7 +68,7 @@ let SbbDatepickerToggleElement = class extends SbbNegativeMixin(
80
68
  */
81
69
  open() {
82
70
  if (!this._triggerElement) {
83
- this._triggerElement = this.shadowRoot.querySelector("sbb-popover-trigger");
71
+ this._triggerElement = this.shadowRoot.querySelector("sbb-mini-button");
84
72
  }
85
73
  this._triggerElement.click();
86
74
  }
@@ -115,6 +103,12 @@ let SbbDatepickerToggleElement = class extends SbbNegativeMixin(
115
103
  super.disconnectedCallback();
116
104
  (_a = this._datePickerController) == null ? void 0 : _a.abort();
117
105
  }
106
+ firstUpdated(changedProperties) {
107
+ super.firstUpdated(changedProperties);
108
+ this._triggerElement.updateComplete.then(() => {
109
+ this._triggerElement.tabIndex = this._isDisabled() ? -1 : 0;
110
+ });
111
+ }
118
112
  _init(datePicker) {
119
113
  var _a, _b, _c, _d, _e;
120
114
  (_a = this._datePickerController) == null ? void 0 : _a.abort();
@@ -187,17 +181,21 @@ let SbbDatepickerToggleElement = class extends SbbNegativeMixin(
187
181
  var _a;
188
182
  return ((_a = this._datePickerElement) == null ? void 0 : _a.hasCustomNow()) ? this._datePickerElement.now : void 0;
189
183
  }
184
+ _isDisabled() {
185
+ return !isServer && (!this._datePickerElement || this._disabled);
186
+ }
190
187
  render() {
191
188
  var _a, _b;
192
189
  return html`
193
- <sbb-popover-trigger
190
+ <sbb-mini-button
191
+ class="sbb-datepicker-toggle__trigger"
194
192
  icon-name="calendar-small"
195
193
  aria-label=${i18nShowCalendar[this._language.current]}
196
- ?disabled=${!isServer && (!this._datePickerElement || this._disabled)}
194
+ ?disabled=${this._isDisabled()}
195
+ tabindex=${this._isDisabled() ? -1 : 0}
197
196
  ?negative=${this.negative}
198
- data-icon-small
199
197
  ${ref((el) => this._triggerElement = el)}
200
- ></sbb-popover-trigger>
198
+ ></sbb-mini-button>
201
199
  <sbb-popover
202
200
  @willOpen=${() => this._calendarElement.resetPosition()}
203
201
  @didOpen=${() => {
@@ -258,4 +256,4 @@ SbbDatepickerToggleElement = __decorateClass([
258
256
  export {
259
257
  SbbDatepickerToggleElement
260
258
  };
261
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IENhbGVuZGFyVmlldywgU2JiQ2FsZW5kYXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY2FsZW5kYXIuanMnO1xuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCwgU2JiUG9wb3ZlclRyaWdnZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50LCBTYmJJbnB1dFVwZGF0ZUV2ZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnksIGdldERhdGVQaWNrZXIgfSBmcm9tICcuLi9kYXRlcGlja2VyLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGF0ZXBpY2tlci10b2dnbGUuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgJy4uLy4uL3BvcG92ZXIuanMnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWRhdGVwaWNrZXJgLCBpdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBgc2JiLWNhbGVuZGFyYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kYXRlcGlja2VyLXRvZ2dsZScpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICBzbG90OiAncHJlZml4Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VCA9IERhdGU+IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIERhdGVwaWNrZXIgcmVmZXJlbmNlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkYXRlLXBpY2tlcicgfSkgcHVibGljIGRhdGVQaWNrZXI/OiBzdHJpbmcgfCBTYmJEYXRlcGlja2VyRWxlbWVudDtcblxuICAvKiogVGhlIGluaXRpYWwgdmlldyBvZiBjYWxlbmRhciB3aGljaCBzaG91bGQgYmUgZGlzcGxheWVkIG9uIG9wZW5pbmcuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB2aWV3OiBDYWxlbmRhclZpZXcgPSAnZGF5JztcblxuICBAc3RhdGUoKSBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgX21pbjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfbWF4OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9yZW5kZXJDYWxlbmRhciA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2RhdGVQaWNrZXJFbGVtZW50OiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2NhbGVuZGFyRWxlbWVudCE6IFNiYkNhbGVuZGFyRWxlbWVudDxUPjtcbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQhOiBTYmJQb3BvdmVyVHJpZ2dlckVsZW1lbnQ7XG4gIHByaXZhdGUgX3BvcG92ZXJFbGVtZW50ITogU2JiUG9wb3ZlckVsZW1lbnQ7XG4gIHByaXZhdGUgX2RhdGVQaWNrZXJDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gKHRoaXMuX3JlbmRlckNhbGVuZGFyID0gdHJ1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3Rvcignc2JiLXBvcG92ZXItdHJpZ2dlcicpITtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmICghdGhpcy5kYXRlUGlja2VyKSB7XG4gICAgICB0aGlzLl9pbml0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJykgPz8gdGhpcy5jbG9zZXN0Py4oJ1tkYXRhLWZvcm0tZmllbGRdJyk7XG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IGZvcm1GaWVsZC5oYXNBdHRyaWJ1dGUoJ25lZ2F0aXZlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gPT09IHRoaXMpIHtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl9hYm9ydC5zaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkYXRlUGlja2VyJykpIHtcbiAgICAgIHRoaXMuX2luaXQodGhpcy5kYXRlUGlja2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXQoZGF0ZVBpY2tlcj86IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBnZXREYXRlUGlja2VyPFQ+KHRoaXMsIGRhdGVQaWNrZXIpO1xuICAgIGlmICghdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQpIHtcbiAgICAgIC8vIElmIHRoZSBjb21wb25lbnQgaXMgYXR0YWNoZWQgdG8gdGhlIERPTSBiZWZvcmUgdGhlIGRhdGVwaWNrZXIsIGl0IGhhcyB0byBsaXN0ZW4gZm9yIHRoZSBkYXRlcGlja2VyIGluaXQsXG4gICAgICAvLyBhc3N1bWluZyB0aGF0IHRoZSB0d28gY29tcG9uZW50cyBzaGFyZSB0aGUgc2FtZSBwYXJlbnQgZWxlbWVudC5cbiAgICAgIHRoaXMucGFyZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2lucHV0VXBkYXRlZCcsXG4gICAgICAgIChlOiBFdmVudCkgPT4gdGhpcy5faW5pdChlLnRhcmdldCBhcyBTYmJEYXRlcGlja2VyRWxlbWVudCksXG4gICAgICAgIHsgb25jZTogdHJ1ZSwgc2lnbmFsOiB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlci5zaWduYWwgfSxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXRVcGRhdGVkJyxcbiAgICAgIChldmVudDogQ3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD4pID0+IHtcbiAgICAgICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD47XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gISEoZXZlbnQuZGV0YWlsLmRpc2FibGVkIHx8IGV2ZW50LmRldGFpbC5yZWFkb25seSk7XG4gICAgICAgIHRoaXMuX21pbiA9IGV2ZW50LmRldGFpbC5taW47XG4gICAgICAgIHRoaXMuX21heCA9IGV2ZW50LmRldGFpbC5tYXg7XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChldmVudDogRXZlbnQpID0+IHRoaXMuX2RhdGVQaWNrZXJDaGFuZ2VkKGV2ZW50KSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnZGF0ZVBpY2tlclVwZGF0ZWQnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT5cbiAgICAgICAgdGhpcy5fY29uZmlndXJlQ2FsZW5kYXIodGhpcy5fY2FsZW5kYXJFbGVtZW50LCBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4pLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnkoKSk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVDYWxlbmRhcihcbiAgICBjYWxlbmRhcjogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+LFxuICAgIGRhdGVwaWNrZXI6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+LFxuICApOiB2b2lkIHtcbiAgICBpZiAoIWNhbGVuZGFyIHx8ICFkYXRlcGlja2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhbGVuZGFyLndpZGUgPSBkYXRlcGlja2VyLndpZGU7XG4gICAgY2FsZW5kYXIubm93ID0gdGhpcy5fbm93T3JVbmRlZmluZWQoKTtcbiAgICBjYWxlbmRhci5kYXRlRmlsdGVyID0gZGF0ZXBpY2tlci5kYXRlRmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckNoYW5nZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD47XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCkge1xuICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQudmFsdWVBc0RhdGUgfHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnbkNhbGVuZGFyKGNhbGVuZGFyOiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY2FsZW5kYXJFbGVtZW50ICYmIHRoaXMuX2NhbGVuZGFyRWxlbWVudCA9PT0gY2FsZW5kYXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50ID0gY2FsZW5kYXI7XG4gICAgaWYgKFxuICAgICAgISgndmFsdWVBc0RhdGUnIGluICh0aGlzLl9kYXRlUGlja2VyRWxlbWVudCA/PyB7fSkpIHx8XG4gICAgICAhdGhpcy5fY2FsZW5kYXJFbGVtZW50Py5yZXNldFBvc2l0aW9uXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IHRoaXMuX2RhdGVQaWNrZXJFbGVtZW50IS52YWx1ZUFzRGF0ZSA/PyB1bmRlZmluZWQ7XG4gICAgdGhpcy5fY29uZmlndXJlQ2FsZW5kYXIodGhpcy5fY2FsZW5kYXJFbGVtZW50LCB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCEpO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5yZXNldFBvc2l0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3BvcG92ZXJFbGVtZW50LnRyaWdnZXIgPSB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgX25vd09yVW5kZWZpbmVkKCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uaGFzQ3VzdG9tTm93KCkgPyB0aGlzLl9kYXRlUGlja2VyRWxlbWVudC5ub3cgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItcG9wb3Zlci10cmlnZ2VyXG4gICAgICAgIGljb24tbmFtZT1cImNhbGVuZGFyLXNtYWxsXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5TaG93Q2FsZW5kYXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9kaXNhYmxlZD0keyFpc1NlcnZlciAmJiAoIXRoaXMuX2RhdGVQaWNrZXJFbGVtZW50IHx8IHRoaXMuX2Rpc2FibGVkKX1cbiAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgZGF0YS1pY29uLXNtYWxsXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGVsIGFzIFNiYlBvcG92ZXJUcmlnZ2VyRWxlbWVudCkpfVxuICAgICAgPjwvc2JiLXBvcG92ZXItdHJpZ2dlcj5cbiAgICAgIDxzYmItcG9wb3ZlclxuICAgICAgICBAd2lsbE9wZW49JHsoKSA9PiB0aGlzLl9jYWxlbmRhckVsZW1lbnQucmVzZXRQb3NpdGlvbigpfVxuICAgICAgICBAZGlkT3Blbj0keygpID0+IHtcbiAgICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAudHJpZ2dlcj0ke3RoaXMuX3RyaWdnZXJFbGVtZW50fVxuICAgICAgICBoaWRlLWNsb3NlLWJ1dHRvblxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fcG9wb3ZlckVsZW1lbnQgPSBlbCBhcyBTYmJQb3BvdmVyRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX3JlbmRlckNhbGVuZGFyXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FsZW5kYXJcbiAgICAgICAgICAgICAgLnZpZXc9JHt0aGlzLnZpZXd9XG4gICAgICAgICAgICAgIC5taW49JHt0aGlzLl9taW59XG4gICAgICAgICAgICAgIC5tYXg9JHt0aGlzLl9tYXh9XG4gICAgICAgICAgICAgIC5ub3c9JHt0aGlzLl9ub3dPclVuZGVmaW5lZCgpfVxuICAgICAgICAgICAgICA/d2lkZT0ke3RoaXMuX2RhdGVQaWNrZXJFbGVtZW50Py53aWRlfVxuICAgICAgICAgICAgICAuZGF0ZUZpbHRlcj0ke3RoaXMuX2RhdGVQaWNrZXJFbGVtZW50Py5kYXRlRmlsdGVyfVxuICAgICAgICAgICAgICBAZGF0ZVNlbGVjdGVkPSR7KGQ6IEN1c3RvbUV2ZW50PFQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gZC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RhdGVQaWNrZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudC52YWx1ZUFzRGF0ZSA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgJHtyZWYoKGNhbGVuZGFyPzogRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25DYWxlbmRhcihjYWxlbmRhciBhcyBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pLFxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPjwvc2JiLWNhbGVuZGFyPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L3NiYi1wb3BvdmVyPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlcGlja2VyLXRvZ2dsZSc6IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCTyxJQUFNLDZCQUFOLGNBQW1EO0FBQUEsRUFDeEQsa0JBQWtCLFVBQVU7QUFDOUIsRUFBRTtBQUFBLEVBeUJPLGNBQWM7QUFDYjtBQW5CSSxTQUFPLE9BQXFCO0FBRS9C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
259
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyLCBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5TaG93Q2FsZW5kYXIgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4sIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlBvcG92ZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci9wb3BvdmVyLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlckVsZW1lbnQsIFNiYklucHV0VXBkYXRlRXZlbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLmpzJztcbmltcG9ydCB7IGRhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZEV2ZW50RmFjdG9yeSwgZ2V0RGF0ZVBpY2tlciB9IGZyb20gJy4uL2RhdGVwaWNrZXIuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlcGlja2VyLXRvZ2dsZS5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2NhbGVuZGFyLmpzJztcbmltcG9ydCAnLi4vLi4vcG9wb3Zlci9wb3BvdmVyLmpzJztcbmltcG9ydCAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi1kYXRlcGlja2VyYCwgaXQgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IGEgZGF0ZSBmcm9tIGEgYHNiYi1jYWxlbmRhcmAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ3ByZWZpeCcsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBEYXRlcGlja2VyIHJlZmVyZW5jZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGF0ZS1waWNrZXInIH0pIHB1YmxpYyBkYXRlUGlja2VyPzogc3RyaW5nIHwgU2JiRGF0ZXBpY2tlckVsZW1lbnQ7XG5cbiAgLyoqIFRoZSBpbml0aWFsIHZpZXcgb2YgY2FsZW5kYXIgd2hpY2ggc2hvdWxkIGJlIGRpc3BsYXllZCBvbiBvcGVuaW5nLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgdmlldzogQ2FsZW5kYXJWaWV3ID0gJ2RheSc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9taW46IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgX21heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfcmVuZGVyQ2FsZW5kYXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kYXRlUGlja2VyRWxlbWVudDogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jYWxlbmRhckVsZW1lbnQhOiBTYmJDYWxlbmRhckVsZW1lbnQ8VD47XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50ITogU2JiTWluaUJ1dHRvbkVsZW1lbnQ7XG4gIHByaXZhdGUgX3BvcG92ZXJFbGVtZW50ITogU2JiUG9wb3ZlckVsZW1lbnQ7XG4gIHByaXZhdGUgX2RhdGVQaWNrZXJDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gKHRoaXMuX3JlbmRlckNhbGVuZGFyID0gdHJ1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3Rvcignc2JiLW1pbmktYnV0dG9uJykhO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgaWYgKCF0aGlzLmRhdGVQaWNrZXIpIHtcbiAgICAgIHRoaXMuX2luaXQoKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtRmllbGQgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKSA/PyB0aGlzLmNsb3Nlc3Q/LignW2RhdGEtZm9ybS1maWVsZF0nKTtcbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gZm9ybUZpZWxkLmhhc0F0dHJpYnV0ZSgnbmVnYXRpdmUnKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2xpY2snLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5jb21wb3NlZFBhdGgoKVswXSA9PT0gdGhpcykge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2Fib3J0LnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2RhdGVQaWNrZXInKSkge1xuICAgICAgdGhpcy5faW5pdCh0aGlzLmRhdGVQaWNrZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gV2UgaGF2ZSB0byByZXdyaXRlIHRoZSB0YWJpbmRleCBvZiB0aGUgbWluaS1idXR0b24gYXMgdGhlIHBvcG92ZXIgdHJpZ2dlciBpdHNlbGYgc2V0cyB0aGUgdGFiaW5kZXggdG8gYWx3YXlzIDAuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC50YWJJbmRleCA9IHRoaXMuX2lzRGlzYWJsZWQoKSA/IC0xIDogMDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXQoZGF0ZVBpY2tlcj86IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBnZXREYXRlUGlja2VyPFQ+KHRoaXMsIGRhdGVQaWNrZXIpO1xuICAgIGlmICghdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQpIHtcbiAgICAgIC8vIElmIHRoZSBjb21wb25lbnQgaXMgYXR0YWNoZWQgdG8gdGhlIERPTSBiZWZvcmUgdGhlIGRhdGVwaWNrZXIsIGl0IGhhcyB0byBsaXN0ZW4gZm9yIHRoZSBkYXRlcGlja2VyIGluaXQsXG4gICAgICAvLyBhc3N1bWluZyB0aGF0IHRoZSB0d28gY29tcG9uZW50cyBzaGFyZSB0aGUgc2FtZSBwYXJlbnQgZWxlbWVudC5cbiAgICAgIHRoaXMucGFyZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2lucHV0VXBkYXRlZCcsXG4gICAgICAgIChlOiBFdmVudCkgPT4gdGhpcy5faW5pdChlLnRhcmdldCBhcyBTYmJEYXRlcGlja2VyRWxlbWVudCksXG4gICAgICAgIHsgb25jZTogdHJ1ZSwgc2lnbmFsOiB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlci5zaWduYWwgfSxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXRVcGRhdGVkJyxcbiAgICAgIChldmVudDogQ3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD4pID0+IHtcbiAgICAgICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD47XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gISEoZXZlbnQuZGV0YWlsLmRpc2FibGVkIHx8IGV2ZW50LmRldGFpbC5yZWFkb25seSk7XG4gICAgICAgIHRoaXMuX21pbiA9IGV2ZW50LmRldGFpbC5taW47XG4gICAgICAgIHRoaXMuX21heCA9IGV2ZW50LmRldGFpbC5tYXg7XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChldmVudDogRXZlbnQpID0+IHRoaXMuX2RhdGVQaWNrZXJDaGFuZ2VkKGV2ZW50KSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnZGF0ZVBpY2tlclVwZGF0ZWQnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT5cbiAgICAgICAgdGhpcy5fY29uZmlndXJlQ2FsZW5kYXIodGhpcy5fY2FsZW5kYXJFbGVtZW50LCBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4pLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnkoKSk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVDYWxlbmRhcihcbiAgICBjYWxlbmRhcjogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+LFxuICAgIGRhdGVwaWNrZXI6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+LFxuICApOiB2b2lkIHtcbiAgICBpZiAoIWNhbGVuZGFyIHx8ICFkYXRlcGlja2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhbGVuZGFyLndpZGUgPSBkYXRlcGlja2VyLndpZGU7XG4gICAgY2FsZW5kYXIubm93ID0gdGhpcy5fbm93T3JVbmRlZmluZWQoKTtcbiAgICBjYWxlbmRhci5kYXRlRmlsdGVyID0gZGF0ZXBpY2tlci5kYXRlRmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckNoYW5nZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD47XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCkge1xuICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQudmFsdWVBc0RhdGUgfHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnbkNhbGVuZGFyKGNhbGVuZGFyOiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY2FsZW5kYXJFbGVtZW50ICYmIHRoaXMuX2NhbGVuZGFyRWxlbWVudCA9PT0gY2FsZW5kYXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50ID0gY2FsZW5kYXI7XG4gICAgaWYgKFxuICAgICAgISgndmFsdWVBc0RhdGUnIGluICh0aGlzLl9kYXRlUGlja2VyRWxlbWVudCA/PyB7fSkpIHx8XG4gICAgICAhdGhpcy5fY2FsZW5kYXJFbGVtZW50Py5yZXNldFBvc2l0aW9uXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IHRoaXMuX2RhdGVQaWNrZXJFbGVtZW50IS52YWx1ZUFzRGF0ZSA/PyB1bmRlZmluZWQ7XG4gICAgdGhpcy5fY29uZmlndXJlQ2FsZW5kYXIodGhpcy5fY2FsZW5kYXJFbGVtZW50LCB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCEpO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5yZXNldFBvc2l0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3BvcG92ZXJFbGVtZW50LnRyaWdnZXIgPSB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgX25vd09yVW5kZWZpbmVkKCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uaGFzQ3VzdG9tTm93KCkgPyB0aGlzLl9kYXRlUGlja2VyRWxlbWVudC5ub3cgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9pc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgKCF0aGlzLl9kYXRlUGlja2VyRWxlbWVudCB8fCB0aGlzLl9kaXNhYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItbWluaS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJzYmItZGF0ZXBpY2tlci10b2dnbGVfX3RyaWdnZXJcIlxuICAgICAgICBpY29uLW5hbWU9XCJjYWxlbmRhci1zbWFsbFwiXG4gICAgICAgIGFyaWEtbGFiZWw9JHtpMThuU2hvd0NhbGVuZGFyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLl9pc0Rpc2FibGVkKCl9XG4gICAgICAgIHRhYmluZGV4PSR7dGhpcy5faXNEaXNhYmxlZCgpID8gLTEgOiAwfVxuICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBlbCBhcyBTYmJNaW5pQnV0dG9uRWxlbWVudCkpfVxuICAgICAgPjwvc2JiLW1pbmktYnV0dG9uPlxuICAgICAgPHNiYi1wb3BvdmVyXG4gICAgICAgIEB3aWxsT3Blbj0keygpID0+IHRoaXMuX2NhbGVuZGFyRWxlbWVudC5yZXNldFBvc2l0aW9uKCl9XG4gICAgICAgIEBkaWRPcGVuPSR7KCkgPT4ge1xuICAgICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAgIC50cmlnZ2VyPSR7dGhpcy5fdHJpZ2dlckVsZW1lbnR9XG4gICAgICAgIGhpZGUtY2xvc2UtYnV0dG9uXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9wb3BvdmVyRWxlbWVudCA9IGVsIGFzIFNiYlBvcG92ZXJFbGVtZW50KSl9XG4gICAgICA+XG4gICAgICAgICR7dGhpcy5fcmVuZGVyQ2FsZW5kYXJcbiAgICAgICAgICA/IGh0bWxgPHNiYi1jYWxlbmRhclxuICAgICAgICAgICAgICAudmlldz0ke3RoaXMudmlld31cbiAgICAgICAgICAgICAgLm1pbj0ke3RoaXMuX21pbn1cbiAgICAgICAgICAgICAgLm1heD0ke3RoaXMuX21heH1cbiAgICAgICAgICAgICAgLm5vdz0ke3RoaXMuX25vd09yVW5kZWZpbmVkKCl9XG4gICAgICAgICAgICAgID93aWRlPSR7dGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LndpZGV9XG4gICAgICAgICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/LmRhdGVGaWx0ZXJ9XG4gICAgICAgICAgICAgIEBkYXRlU2VsZWN0ZWQ9JHsoZDogQ3VzdG9tRXZlbnQ8VD4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuc2VsZWN0ZWQgPSBkLmRldGFpbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVQaWNrZXJFbGVtZW50LnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAke3JlZigoY2FsZW5kYXI/OiBFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbkNhbGVuZGFyKGNhbGVuZGFyIGFzIFNiYkNhbGVuZGFyRWxlbWVudDxUPiksXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA+PC9zYmItY2FsZW5kYXI+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvc2JiLXBvcG92ZXI+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJzogU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkJPLElBQU0sNkJBQU4sY0FBbUQ7QUFBQSxFQUN4RCxrQkFBa0IsVUFBVTtBQUM5QixFQUFFO0FBQUEsRUF5Qk8sY0FBYztBQUNiO0FBbkJJLFNBQU8sT0FBcUI7QUFFL0IsU0FBUSxZQUFZO0FBRXBCLFNBQVEsT0FBMkM7QUFFbkQsU0FBUSxPQUEyQztBQUVuRCxTQUFRLGtCQUFrQjtBQU8zQixTQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUMxQyxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUluRCxRQUFJLENBQUMsVUFBVTtBQUNiLFdBQUssa0JBQWtCLEtBQUssTUFBTyxLQUFLLGtCQUFrQixJQUFLO0FBQUEsSUFDakU7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxPQUFhO0FBQ2QsUUFBQSxDQUFDLEtBQUssaUJBQWlCO0FBQ3pCLFdBQUssa0JBQWtCLEtBQUss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
@@ -7,20 +7,7 @@ import { findReferencedElement, findInput } from "../core/dom.js";
7
7
  import { EventEmitter } from "../core/eventing.js";
8
8
  import { i18nDatePickerPlaceholder, i18nDateChangedTo } from "../core/i18n.js";
9
9
  import { AgnosticMutationObserver } from "../core/observers.js";
10
- const style = css`/**
11
- * Better font rendering (on OS X)
12
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
13
- *
14
- * Usage:
15
- *
16
- * .var_dark_on_light {
17
- * @include font-smoothing;
18
- * }
19
- * .var_light_on_dark {
20
- * @include font-smoothing-reset;
21
- * }
22
- */
23
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
10
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
24
11
  /*
25
12
  * SBB table mixin
26
13
  * Notes:
@@ -313,6 +300,7 @@ let SbbDatepickerElement = class extends LitElement {
313
300
  render() {
314
301
  return html`<p id="status-container" role="status"></p>`;
315
302
  }
303
+ /* eslint-enable @typescript-eslint/member-ordering */
316
304
  };
317
305
  SbbDatepickerElement.styles = style;
318
306
  SbbDatepickerElement.events = {
@@ -358,4 +346,4 @@ export {
358
346
  getDatePicker,
359
347
  isDateAvailable
360
348
  };
361
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlnLmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyB0eXBlIERhdGVBZGFwdGVyLCBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IGZpbmRJbnB1dCwgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbywgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlciB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlLCBTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXIuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJJbnB1dFVwZGF0ZUV2ZW50IHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIG1pbj86IHN0cmluZyB8IG51bWJlcjtcbiAgbWF4Pzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IElubGluZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiBTYmJEYXRlcGlja2VyRWxlbWVudCBhcyBwdWJsaWMgbWV0aG9kc1xuLy8gd2hlcmUgcG9zc2libGUgYW5kIHVzZSB0aGVzZSBtZXRob2RzIHdoZXJlIHRoZSBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1c2VkLlxuXG4vKipcbiAqIEdpdmVuIGEgU2JiRGF0ZXBpY2tlclByZXZpb3VzRGF5RWxlbWVudCwgYSBTYmJEYXRlcGlja2VyTmV4dERheUVsZW1lbnQgb3IgYSBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCBjb21wb25lbnQsXG4gKiBpdCByZXR1cm5zIHRoZSByZWxhdGVkIFNiYkRhdGVwaWNrZXJFbGVtZW50IHJlZmVyZW5jZSwgaWYgZXhpc3RzLlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgcG90ZW50aWFsbHkgY29ubmVjdGVkIHRvIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBTYmJEYXRlUGlja2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBpY2tlcjxUID0gRGF0ZT4oXG4gIGVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJCdXR0b248VD4gfCBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDxUPixcbiAgdHJpZ2dlcj86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgICAgIC5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJylcbiAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyJyk7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pih0cmlnZ2VyKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhdmFpbGFibGUgZGF0ZSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbiBvbmUsIGNvbnNpZGVyaW5nIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudCBgZGF0ZUZpbHRlcmAgcHJvcGVydHkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRlbHRhIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQvc3VidHJhY3QgZnJvbSB0aGUgc3RhcnRpbmcgb25lLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGVsdGE6IG51bWJlcixcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbik6IFQge1xuICBsZXQgYXZhaWxhYmxlRGF0ZSA9IGRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhkYXRlLCBkZWx0YSk7XG5cbiAgaWYgKGRhdGVGaWx0ZXIpIHtcbiAgICB3aGlsZSAoIWRhdGVGaWx0ZXIoYXZhaWxhYmxlRGF0ZSkpIHtcbiAgICAgIGF2YWlsYWJsZURhdGUgPSBkYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXMoYXZhaWxhYmxlRGF0ZSwgZGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhdmFpbGFibGVEYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSB0aGUgZ2l2ZW4gb25lLFxuICogY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eSBhbmQgYG1pbmAgcGFyYW1ldGVyIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGUpLlxuICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUgZm9yIGNhbGN1bGF0aW9ucy5cbiAqIEBwYXJhbSBkYXRlRmlsdGVyIFRoZSBkYXRlRmlsdGVyIGZ1bmN0aW9uIGZyb20gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIGRhdGVBZGFwdGVyIFRoZSBhZGFwdGVyIGNsYXNzLlxuICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUHJldmlvdXNBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLFxuKTogVCB7XG4gIGNvbnN0IHByZXZpb3VzRGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgLTEsIGRhdGVGaWx0ZXIsIGRhdGVBZGFwdGVyKTtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG5cbiAgaWYgKFxuICAgICFkYXRlTWluIHx8XG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1pbikgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUocHJldmlvdXNEYXRlLCBkYXRlTWluKSA+PSAwKVxuICApIHtcbiAgICByZXR1cm4gcHJldmlvdXNEYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGFmdGVyIHRoZSBnaXZlbiBvbmUsXG4gKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWF4YCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXh0QXZhaWxhYmxlRGF0ZTxUID0gRGF0ZT4oXG4gIGRhdGU6IFQsXG4gIGRhdGVGaWx0ZXI6ICgoZGF0ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsLFxuICBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4sXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCxcbik6IFQge1xuICBjb25zdCBuZXh0RGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgMSwgZGF0ZUZpbHRlciwgZGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBkYXRlTWF4ID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWF4KTtcblxuICBpZiAoXG4gICAgIWRhdGVNYXggfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShuZXh0RGF0ZSwgZGF0ZU1heCkgPD0gMClcbiAgKSB7XG4gICAgcmV0dXJuIG5leHREYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBhIHZhbGlkIG9uZSwgY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eVxuICogYW5kIGBtaW5gIGFuZCBgbWF4YCBwYXJhbWV0ZXJzIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGVzKS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gY29uc2lkZXIgaW4gY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVBdmFpbGFibGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBtYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgLy8gVE9ETzogR2V0IGRhdGUgYWRhcHRlciBmcm9tIGNvbmZpZ1xuICBjb25zdCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG4gIGNvbnN0IGRhdGVNYXggPSBkYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShtYXgpO1xuXG4gIGlmIChcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWluKSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCBkYXRlTWluISkgPCAwKSB8fFxuICAgIChkYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNYXgpICYmIGRhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKGRhdGUsIGRhdGVNYXghKSA+IDApXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBkYXRlRmlsdGVyID8gZGF0ZUZpbHRlcihkYXRlKSA6IHRydWU7XG59XG5cbmV4cG9ydCBjb25zdCBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnkgPSAoKTogQ3VzdG9tRXZlbnQgPT5cbiAgbmV3IEN1c3RvbUV2ZW50KCdkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWQnLCB7XG4gICAgYnViYmxlczogZmFsc2UsXG4gICAgY29tcG9zZWQ6IHRydWUsXG4gIH0pO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIHRoZSBpbnB1dCdzIHZhbHVlIGFzIGEgZm9ybWF0dGVkIGRhdGUuXG4gKlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGNoYW5nZSAtIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD59IGlucHV0VXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkYXRlUGlja2VyVXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+fSB2YWxpZGF0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kYXRlcGlja2VyJylcbmV4cG9ydCBjbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT4gZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGRpZENoYW5nZTogJ2RpZENoYW5nZScsXG4gICAgY2hhbmdlOiAnY2hhbmdlJyxcbiAgICBpbnB1dFVwZGF0ZWQ6ICdpbnB1dFVwZGF0ZWQnLFxuICAgIGRhdGVQaWNrZXJVcGRhdGVkOiAnZGF0ZVBpY2tlclVwZGF0ZWQnLFxuICAgIHZhbGlkYXRpb25DaGFuZ2U6ICd2YWxpZGF0aW9uQ2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIHR3byBtb250aHMgYXJlIGRpc3BsYXllZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgd2lkZSA9IGZhbHNlO1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIG91dCBkYXRlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgZGF0ZUZpbHRlcjogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIHBhcnNlIHN0cmluZyB2YWx1ZSBpbnRvIGRhdGVzLlxuICAgKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pIHB1YmxpYyBkYXRlUGFyc2VyPzogKHZhbHVlOiBzdHJpbmcpID0+IFQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdXNlZCB0byBmb3JtYXQgZGF0ZXMgaW50byB0aGUgcHJlZmVycmVkIHN0cmluZyBmb3JtYXQuXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSkgcHVibGljIGZvcm1hdD86IChkYXRlOiBUKSA9PiBzdHJpbmc7XG5cbiAgLyoqIFJlZmVyZW5jZSBvZiB0aGUgbmF0aXZlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlci4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGlucHV0Pzogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgLy8gVE9ETzogQ2hhbmdlIHVuZGVmaW5lZCB0byBudWxsIGFzIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAvKiogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLiBSZWNvbW1lbmRlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IFNiYkRhdGVMaWtlPFQ+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbm93ID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gIH1cbiAgcHVibGljIGdldCBub3coKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdyA/PyB0aGlzLl9kYXRlQWRhcHRlci50b2RheSgpO1xuICB9XG4gIHByaXZhdGUgX25vdz86IFQgfCBudWxsO1xuXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgYXMgYSBEYXRlIG9yIGN1c3RvbSBkYXRlIHByb3ZpZGVyIGluc3RhbmNlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0RhdGUodmFsdWU6IFNiYkRhdGVMaWtlPFQ+IHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgaWYgKHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpKSB7XG4gICAgICAvKiBFbWl0IGJsdXIgZXZlbnQgd2hlbiB2YWx1ZSBpcyBjaGFuZ2VkIHByb2dyYW1tYXRpY2FsbHkgdG8gbm90aWZ5XG4gICAgICBmcmFtZXdvcmtzIHRoYXQgcmVseSBvbiB0aGF0IGV2ZW50IHRvIHVwZGF0ZSBmb3JtIHN0YXR1cy4gKi9cbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudCEuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JsdXInLCB7IGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNEYXRlID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWVBc0RhdGU/OiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBjb25uZWN0ZWQgaW5wdXQgaGFzIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2NoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuY2hhbmdlLCB7XG4gICAgYnViYmxlczogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2lucHV0VXBkYXRlZDogRXZlbnRFbWl0dGVyPFNiYklucHV0VXBkYXRlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5pbnB1dFVwZGF0ZWQsXG4gICAgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9kYXRlUGlja2VyVXBkYXRlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5kYXRlUGlja2VyVXBkYXRlZCxcbiAgICB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICB9LFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgdmFsaWRhdGlvbiBzdGF0ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF92YWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMudmFsaWRhdGlvbkNoYW5nZSxcbiAgKTtcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG5cbiAgcHJpdmF0ZSBfaW5wdXRPYnNlcnZlciA9IG5ldyBBZ25vc3RpY011dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uc0xpc3QpID0+IHtcbiAgICB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCk7XG4gICAgLy8gVE9ETzogRGVjaWRlIHdoZXRoZXIgdG8gcmVtb3ZlIHRoaXMgbG9naWMgYnkgYWRkaW5nIGEgdmFsdWUgcHJvcGVydHkgdG8gdGhlIGRhdGVwaWNrZXIuXG4gICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudCAmJiBtdXRhdGlvbnNMaXN0Py5zb21lKChlKSA9PiBlLmF0dHJpYnV0ZU5hbWUgPT09ICd2YWx1ZScpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2lucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgICB0aGlzLnZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodmFsdWUsIHRoaXMubm93KSA/PyB2YWx1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuXG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpLndpdGhIYW5kbGVyKCgpID0+IHtcbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlKSB7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZUFzRGF0ZSkge1xuICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLl9mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZCcsICgpID0+IHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydC5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5fYXR0YWNoSW5wdXQoKTtcbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpbnB1dCcpKSB7XG4gICAgICB0aGlzLl9hdHRhY2hJbnB1dCgpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3dpZGUnKSB8fFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkYXRlRmlsdGVyJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbm93JylcbiAgICApIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJVcGRhdGVkLmVtaXQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWVBc0RhdGUnKSkge1xuICAgICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5faW5wdXRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX3NldEFyaWFMaXZlTWVzc2FnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlucHV0IHZhbHVlIHdpdGggdGhlIGNvcnJlY3QgZGF0ZSBmb3JtYXQuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBwcm9wZXJ0eSB2YWx1ZUFzRGF0ZSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlQXNEYXRlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQXNEYXRlID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGlucHV0IHZhbHVlIHRvIHRoZSBjb3JyZWN0bHkgZm9ybWF0dGVkIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgcHJvcGVydHkgdmFsdWVBc0RhdGUgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZXRWYWx1ZUFzRGF0ZShkYXRlOiBTYmJEYXRlTGlrZTxUPik6IHZvaWQge1xuICAgIHRoaXMudmFsdWVBc0RhdGUgPSBkYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBXaGV0aGVyIGEgY3VzdG9tIG5vdyBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHVibGljIGhhc0N1c3RvbU5vdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9ub3c7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hJbnB1dCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGZpbmRJbnB1dCh0aGlzLCB0aGlzLmlucHV0KTtcbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50ID09PSBpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2lucHV0T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSBpbnB1dDtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgdGhpcy5faW5wdXRPYnNlcnZlci5vYnNlcnZlKGlucHV0LCB7XG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydkaXNhYmxlZCcsICdyZWFkb25seScsICdtaW4nLCAnbWF4JywgJ3ZhbHVlJ10sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5faW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlID0gIWlucHV0LnBsYWNlaG9sZGVyO1xuICAgICAgaW5wdXQudHlwZSA9ICd0ZXh0JztcbiAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgaW5wdXQucGxhY2Vob2xkZXIgPSBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IHsgc2lnbmFsOiB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlci5zaWduYWwgfTtcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4gdGhpcy5fcGFyc2VJbnB1dCgpLCBvcHRpb25zKTtcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHRoaXMuX2hhbmRsZUlucHV0Q2hhbmdlKCksIG9wdGlvbnMpO1xuICAgICAgdGhpcy5fcGFyc2VJbnB1dCh0cnVlKTtcbiAgICAgIHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpO1xuICAgICAgdGhpcy5fdmFsaWRhdGVEYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdElucHV0VXBkYXRlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGRpc2FibGVkLCByZWFkT25seTogcmVhZG9ubHksIG1pbiwgbWF4IH0gPSB0aGlzLl9pbnB1dEVsZW1lbnQgPz8ge307XG4gICAgdGhpcy5faW5wdXRVcGRhdGVkLmVtaXQoeyBkaXNhYmxlZCwgcmVhZG9ubHksIG1pbiwgbWF4IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlSW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3ZhbGlkYXRlRGF0ZSgpO1xuICAgIHRoaXMuX3NldEFyaWFMaXZlTWVzc2FnZSgpO1xuICAgIHRoaXMuX2NoYW5nZS5lbWl0KCk7XG4gICAgdGhpcy5fZGlkQ2hhbmdlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLnZhbHVlQXNEYXRlID8gdGhpcy5fZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUhKSA6ICcnO1xuICAgIGlmIChmb3JtYXR0ZWREYXRlICYmIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSAhPT0gZm9ybWF0dGVkRGF0ZSkge1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkRGF0ZTtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbGlkYXRlRGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRW1wdHlPclZhbGlkID1cbiAgICAgICF0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgfHxcbiAgICAgICghIXRoaXMudmFsdWVBc0RhdGUgJiZcbiAgICAgICAgaXNEYXRlQXZhaWxhYmxlKFxuICAgICAgICAgIHRoaXMudmFsdWVBc0RhdGUsXG4gICAgICAgICAgdGhpcy5kYXRlRmlsdGVyLFxuICAgICAgICAgIHRoaXMuX2lucHV0RWxlbWVudD8ubWluLFxuICAgICAgICAgIHRoaXMuX2lucHV0RWxlbWVudD8ubWF4LFxuICAgICAgICApKTtcbiAgICBjb25zdCB3YXNWYWxpZCA9ICF0aGlzLl9pbnB1dEVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcsICFpc0VtcHR5T3JWYWxpZCk7XG4gICAgaWYgKHdhc1ZhbGlkICE9PSBpc0VtcHR5T3JWYWxpZCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbkNoYW5nZS5lbWl0KHsgdmFsaWQ6IGlzRW1wdHlPclZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlSW5wdXQoZGVzZXJpYWxpemVBc0ZhbGxiYWNrID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2lucHV0RWxlbWVudCEudmFsdWU7XG4gICAgY29uc3QgcGFyc2UgPSB0aGlzLmRhdGVQYXJzZXIgPz8gKCh2OiBzdHJpbmcpID0+IHRoaXMuX2RhdGVBZGFwdGVyLnBhcnNlKHYsIHRoaXMubm93KSk7XG4gICAgLy8gV2UgYXJlIGFzc2lnbmluZyBkaXJlY3RseSB0byB0aGUgcHJpdmF0ZSBiYWNraW5nIHByb3BlcnR5IG9mIHZhbHVlQXNEYXRlXG4gICAgLy8gYXMgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgYmx1ciBldmVudCBkdXJpbmcgdGhpcyB0aW1lLlxuICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHBhcnNlKHZhbHVlKSk7XG4gICAgaWYgKGRlc2VyaWFsaXplQXNGYWxsYmFjayAmJiAhdGhpcy5fdmFsdWVBc0RhdGUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdChkYXRlOiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQgPyB0aGlzLmZvcm1hdChkYXRlKSA6IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEFyaWFMaXZlTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50OiBIVE1MUGFyYWdyYXBoRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPy48SFRNTFBhcmFncmFwaEVsZW1lbnQ+KCcjc3RhdHVzLWNvbnRhaW5lcicpO1xuXG4gICAgaWYgKCFjb250YWluZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICghdGhpcy52YWx1ZUFzRGF0ZSkge1xuICAgICAgY29udGFpbmVyRWxlbWVudC5pbm5lclRleHQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLnZhbHVlQXNEYXRlLCB7IHdlZWtkYXlTdHlsZTogJ2xvbmcnIH0pO1xuICAgICAgY29udGFpbmVyRWxlbWVudC5pbm5lclRleHQgPSBgJHtpMThuRGF0ZUNoYW5nZWRUb1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtkYXRlfWA7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHAgaWQ9XCJzdGF0dXMtY29udGFpbmVyXCIgcm9sZT1cInN0YXR1c1wiPjwvcD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgaW5wdXRVcGRhdGVkOiBDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50PjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUNnQixTQUFBLGNBQ2QsU0FDQSxTQUM0Qzs7QUFDNUMsTUFBSSxDQUFDLFNBQVM7QUFDWixZQUFPLG1CQUNKLFlBREksaUNBQ00sc0JBRE4sbUJBRUgsY0FB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
349
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlnLmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyB0eXBlIERhdGVBZGFwdGVyLCBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IGZpbmRJbnB1dCwgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbywgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlciB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlLCBTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXIuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJJbnB1dFVwZGF0ZUV2ZW50IHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIG1pbj86IHN0cmluZyB8IG51bWJlcjtcbiAgbWF4Pzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IElubGluZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiBTYmJEYXRlcGlja2VyRWxlbWVudCBhcyBwdWJsaWMgbWV0aG9kc1xuLy8gd2hlcmUgcG9zc2libGUgYW5kIHVzZSB0aGVzZSBtZXRob2RzIHdoZXJlIHRoZSBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1c2VkLlxuXG4vKipcbiAqIEdpdmVuIGEgU2JiRGF0ZXBpY2tlclByZXZpb3VzRGF5RWxlbWVudCwgYSBTYmJEYXRlcGlja2VyTmV4dERheUVsZW1lbnQgb3IgYSBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCBjb21wb25lbnQsXG4gKiBpdCByZXR1cm5zIHRoZSByZWxhdGVkIFNiYkRhdGVwaWNrZXJFbGVtZW50IHJlZmVyZW5jZSwgaWYgZXhpc3RzLlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgcG90ZW50aWFsbHkgY29ubmVjdGVkIHRvIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBTYmJEYXRlUGlja2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBpY2tlcjxUID0gRGF0ZT4oXG4gIGVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJCdXR0b248VD4gfCBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDxUPixcbiAgdHJpZ2dlcj86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgICAgIC5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJylcbiAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyJyk7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pih0cmlnZ2VyKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhdmFpbGFibGUgZGF0ZSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbiBvbmUsIGNvbnNpZGVyaW5nIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudCBgZGF0ZUZpbHRlcmAgcHJvcGVydHkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRlbHRhIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQvc3VidHJhY3QgZnJvbSB0aGUgc3RhcnRpbmcgb25lLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGVsdGE6IG51bWJlcixcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbik6IFQge1xuICBsZXQgYXZhaWxhYmxlRGF0ZSA9IGRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhkYXRlLCBkZWx0YSk7XG5cbiAgaWYgKGRhdGVGaWx0ZXIpIHtcbiAgICB3aGlsZSAoIWRhdGVGaWx0ZXIoYXZhaWxhYmxlRGF0ZSkpIHtcbiAgICAgIGF2YWlsYWJsZURhdGUgPSBkYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXMoYXZhaWxhYmxlRGF0ZSwgZGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhdmFpbGFibGVEYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSB0aGUgZ2l2ZW4gb25lLFxuICogY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eSBhbmQgYG1pbmAgcGFyYW1ldGVyIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGUpLlxuICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUgZm9yIGNhbGN1bGF0aW9ucy5cbiAqIEBwYXJhbSBkYXRlRmlsdGVyIFRoZSBkYXRlRmlsdGVyIGZ1bmN0aW9uIGZyb20gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIGRhdGVBZGFwdGVyIFRoZSBhZGFwdGVyIGNsYXNzLlxuICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUHJldmlvdXNBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLFxuKTogVCB7XG4gIGNvbnN0IHByZXZpb3VzRGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgLTEsIGRhdGVGaWx0ZXIsIGRhdGVBZGFwdGVyKTtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG5cbiAgaWYgKFxuICAgICFkYXRlTWluIHx8XG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1pbikgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUocHJldmlvdXNEYXRlLCBkYXRlTWluKSA+PSAwKVxuICApIHtcbiAgICByZXR1cm4gcHJldmlvdXNEYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGFmdGVyIHRoZSBnaXZlbiBvbmUsXG4gKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWF4YCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXh0QXZhaWxhYmxlRGF0ZTxUID0gRGF0ZT4oXG4gIGRhdGU6IFQsXG4gIGRhdGVGaWx0ZXI6ICgoZGF0ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsLFxuICBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4sXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCxcbik6IFQge1xuICBjb25zdCBuZXh0RGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgMSwgZGF0ZUZpbHRlciwgZGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBkYXRlTWF4ID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWF4KTtcblxuICBpZiAoXG4gICAgIWRhdGVNYXggfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShuZXh0RGF0ZSwgZGF0ZU1heCkgPD0gMClcbiAgKSB7XG4gICAgcmV0dXJuIG5leHREYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBhIHZhbGlkIG9uZSwgY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eVxuICogYW5kIGBtaW5gIGFuZCBgbWF4YCBwYXJhbWV0ZXJzIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGVzKS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gY29uc2lkZXIgaW4gY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVBdmFpbGFibGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBtYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgLy8gVE9ETzogR2V0IGRhdGUgYWRhcHRlciBmcm9tIGNvbmZpZ1xuICBjb25zdCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG4gIGNvbnN0IGRhdGVNYXggPSBkYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShtYXgpO1xuXG4gIGlmIChcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWluKSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCBkYXRlTWluISkgPCAwKSB8fFxuICAgIChkYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNYXgpICYmIGRhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKGRhdGUsIGRhdGVNYXghKSA+IDApXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBkYXRlRmlsdGVyID8gZGF0ZUZpbHRlcihkYXRlKSA6IHRydWU7XG59XG5cbmV4cG9ydCBjb25zdCBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnkgPSAoKTogQ3VzdG9tRXZlbnQgPT5cbiAgbmV3IEN1c3RvbUV2ZW50KCdkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWQnLCB7XG4gICAgYnViYmxlczogZmFsc2UsXG4gICAgY29tcG9zZWQ6IHRydWUsXG4gIH0pO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIHRoZSBpbnB1dCdzIHZhbHVlIGFzIGEgZm9ybWF0dGVkIGRhdGUuXG4gKlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGNoYW5nZSAtIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD59IGlucHV0VXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkYXRlUGlja2VyVXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+fSB2YWxpZGF0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kYXRlcGlja2VyJylcbmV4cG9ydCBjbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT4gZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAtLVxuICAgKiBXZSBkZWFjdGl2YXRlIG1lbWJlci1vcmRlcmluZyBiZWNhdXNlIG9mIHRoZSBAcHJvcGVydHkgZGVjb3JhdGVkIG1ldGhvZHMgZGF0ZUZpbHRlciwgZGF0ZVBhcnNlciBhbmQgZm9ybWF0LlxuICAgKi9cblxuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICBjaGFuZ2U6ICdjaGFuZ2UnLFxuICAgIGlucHV0VXBkYXRlZDogJ2lucHV0VXBkYXRlZCcsXG4gICAgZGF0ZVBpY2tlclVwZGF0ZWQ6ICdkYXRlUGlja2VyVXBkYXRlZCcsXG4gICAgdmFsaWRhdGlvbkNoYW5nZTogJ3ZhbGlkYXRpb25DaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyB3aWRlID0gZmFsc2U7XG5cbiAgLyoqIEEgZnVuY3Rpb24gdXNlZCB0byBmaWx0ZXIgb3V0IGRhdGVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pIHB1YmxpYyBkYXRlRmlsdGVyOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gcGFyc2Ugc3RyaW5nIHZhbHVlIGludG8gZGF0ZXMuXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSkgcHVibGljIGRhdGVQYXJzZXI/OiAodmFsdWU6IHN0cmluZykgPT4gVCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbnRvIHRoZSBwcmVmZXJyZWQgc3RyaW5nIGZvcm1hdC5cbiAgICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHJlcXVpcmVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgZm9ybWF0PzogKGRhdGU6IFQpID0+IHN0cmluZztcblxuICAvKiogUmVmZXJlbmNlIG9mIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgaW5wdXQ/OiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxuICAvLyBUT0RPOiBDaGFuZ2UgdW5kZWZpbmVkIHRvIG51bGwgYXMgYSBicmVha2luZyBjaGFuZ2UuXG4gIC8qKiBBIGNvbmZpZ3VyZWQgZGF0ZSB3aGljaCBhY3RzIGFzIHRoZSBjdXJyZW50IGRhdGUgaW5zdGVhZCBvZiB0aGUgcmVhbCBjdXJyZW50IGRhdGUuIFJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG5vdyh2YWx1ZTogU2JiRGF0ZUxpa2U8VD4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ub3cgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fbm93ID8/IHRoaXMuX2RhdGVBZGFwdGVyLnRvZGF5KCk7XG4gIH1cbiAgcHJpdmF0ZSBfbm93PzogVCB8IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBhcyBhIERhdGUgb3IgY3VzdG9tIGRhdGUgcHJvdmlkZXIgaW5zdGFuY2UuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCB2YWx1ZUFzRGF0ZSh2YWx1ZTogU2JiRGF0ZUxpa2U8VD4gfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICBpZiAodGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCkpIHtcbiAgICAgIC8qIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLiAqL1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50IS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlQXNEYXRlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZUFzRGF0ZT86IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBvbmx5IHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9kaWRDaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmRpZENoYW5nZSwge1xuICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfY2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5jaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICB9KTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfaW5wdXRVcGRhdGVkOiBFdmVudEVtaXR0ZXI8U2JiSW5wdXRVcGRhdGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmlucHV0VXBkYXRlZCxcbiAgICB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2RhdGVQaWNrZXJVcGRhdGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmRhdGVQaWNrZXJVcGRhdGVkLFxuICAgIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX3ZhbGlkYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy52YWxpZGF0aW9uQ2hhbmdlLFxuICApO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kYXRlUGlja2VyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcblxuICBwcml2YXRlIF9pbnB1dE9ic2VydmVyID0gbmV3IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT4ge1xuICAgIHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKTtcbiAgICAvLyBUT0RPOiBEZWNpZGUgd2hldGhlciB0byByZW1vdmUgdGhpcyBsb2dpYyBieSBhZGRpbmcgYSB2YWx1ZSBwcm9wZXJ0eSB0byB0aGUgZGF0ZXBpY2tlci5cbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50ICYmIG11dGF0aW9uc0xpc3Q/LnNvbWUoKGUpID0+IGUuYXR0cmlidXRlTmFtZSA9PT0gJ3ZhbHVlJykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRFbGVtZW50LmdldEF0dHJpYnV0ZSgndmFsdWUnKTtcbiAgICAgIHRoaXMudmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZSwgdGhpcy5ub3cpID8/IHZhbHVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+ID0gcmVhZENvbmZpZygpLmRhdGV0aW1lPy5kYXRlQWRhcHRlciA/PyBkZWZhdWx0RGF0ZUFkYXB0ZXI7XG5cbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcykud2l0aEhhbmRsZXIoKCkgPT4ge1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdCh0aGlzLnZhbHVlQXNEYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZGF0ZXBpY2tlckNvbnRyb2xSZWdpc3RlcmVkJywgKCkgPT4gdGhpcy5fZW1pdElucHV0VXBkYXRlZCgpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0LnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLl9hdHRhY2hJbnB1dCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2lucHV0JykpIHtcbiAgICAgIHRoaXMuX2F0dGFjaElucHV0KCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnd2lkZScpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2RhdGVGaWx0ZXInKSB8fFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdub3cnKVxuICAgICkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlclVwZGF0ZWQuZW1pdCgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZUFzRGF0ZScpKSB7XG4gICAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5wdXQgdmFsdWUgd2l0aCB0aGUgY29ycmVjdCBkYXRlIGZvcm1hdC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5IHZhbHVlQXNEYXRlIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWVBc0RhdGUoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVBc0RhdGUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW5wdXQgdmFsdWUgdG8gdGhlIGNvcnJlY3RseSBmb3JtYXR0ZWQgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBwcm9wZXJ0eSB2YWx1ZUFzRGF0ZSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlQXNEYXRlKGRhdGU6IFNiYkRhdGVMaWtlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUFzRGF0ZSA9IGRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFdoZXRoZXIgYSBjdXN0b20gbm93IGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwdWJsaWMgaGFzQ3VzdG9tTm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX25vdztcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaElucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZmluZElucHV0KHRoaXMsIHRoaXMuaW5wdXQpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQgPT09IGlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5faW5wdXRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0O1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLl9pbnB1dE9ic2VydmVyLm9ic2VydmUoaW5wdXQsIHtcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ21pbicsICdtYXgnLCAndmFsdWUnXSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSAhaW5wdXQucGxhY2Vob2xkZXI7XG4gICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICBpbnB1dC5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0geyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9O1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLl9wYXJzZUlucHV0KCksIG9wdGlvbnMpO1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXRDaGFuZ2UoKSwgb3B0aW9ucyk7XG4gICAgICB0aGlzLl9wYXJzZUlucHV0KHRydWUpO1xuICAgICAgdGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk7XG4gICAgICB0aGlzLl92YWxpZGF0ZURhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0SW5wdXRVcGRhdGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkb25seSwgbWluLCBtYXggfSA9IHRoaXMuX2lucHV0RWxlbWVudCA/PyB7fTtcbiAgICB0aGlzLl9pbnB1dFVwZGF0ZWQuZW1pdCh7IGRpc2FibGVkLCByZWFkb25seSwgbWluLCBtYXggfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVJbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdmFsaWRhdGVEYXRlKCk7XG4gICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gICAgdGhpcy5fY2hhbmdlLmVtaXQoKTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMudmFsdWVBc0RhdGUgPyB0aGlzLl9mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSEpIDogJyc7XG4gICAgaWYgKGZvcm1hdHRlZERhdGUgJiYgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlICE9PSBmb3JtYXR0ZWREYXRlKSB7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSBmb3JtYXR0ZWREYXRlO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGVEYXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNFbXB0eU9yVmFsaWQgPVxuICAgICAgIXRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSB8fFxuICAgICAgKCEhdGhpcy52YWx1ZUFzRGF0ZSAmJlxuICAgICAgICBpc0RhdGVBdmFpbGFibGUoXG4gICAgICAgICAgdGhpcy52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB0aGlzLmRhdGVGaWx0ZXIsXG4gICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py5taW4sXG4gICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py5tYXgsXG4gICAgICAgICkpO1xuICAgIGNvbnN0IHdhc1ZhbGlkID0gIXRoaXMuX2lucHV0RWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJywgIWlzRW1wdHlPclZhbGlkKTtcbiAgICBpZiAod2FzVmFsaWQgIT09IGlzRW1wdHlPclZhbGlkKSB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uQ2hhbmdlLmVtaXQoeyB2YWxpZDogaXNFbXB0eU9yVmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFyc2VJbnB1dChkZXNlcmlhbGl6ZUFzRmFsbGJhY2sgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZTtcbiAgICBjb25zdCBwYXJzZSA9IHRoaXMuZGF0ZVBhcnNlciA/PyAoKHY6IHN0cmluZykgPT4gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodiwgdGhpcy5ub3cpKTtcbiAgICAvLyBXZSBhcmUgYXNzaWduaW5nIGRpcmVjdGx5IHRvIHRoZSBwcml2YXRlIGJhY2tpbmcgcHJvcGVydHkgb2YgdmFsdWVBc0RhdGVcbiAgICAvLyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSBibHVyIGV2ZW50IGR1cmluZyB0aGlzIHRpbWUuXG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwocGFyc2UodmFsdWUpKTtcbiAgICBpZiAoZGVzZXJpYWxpemVBc0ZhbGxiYWNrICYmICF0aGlzLl92YWx1ZUFzRGF0ZSkge1xuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoXG4gICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0KGRhdGU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdCA/IHRoaXMuZm9ybWF0KGRhdGUpIDogdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QXJpYUxpdmVNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxQYXJhZ3JhcGhFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LjxIVE1MUGFyYWdyYXBoRWxlbWVudD4oJyNzdGF0dXMtY29udGFpbmVyJyk7XG5cbiAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICBjb250YWluZXJFbGVtZW50LmlubmVyVGV4dCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUsIHsgd2Vla2RheVN0eWxlOiAnbG9uZycgfSk7XG4gICAgICBjb250YWluZXJFbGVtZW50LmlubmVyVGV4dCA9IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2RhdGV9YDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPmA7XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgaW5wdXRVcGRhdGVkOiBDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50PjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQ2dCLFNBQUEsY0FDZCxTQUNBLFNBQzRDOztBQUM1QyxNQUFJLENBQUMsU0FBUztBQUNaLFlBQU8sbUJBQ0osWUFESSxpQ0FDTSxzQkFETixtQkFFSCxjQUF1QztBQUFBLEVBQzdDO0FBRUEsU0FBTyxzQkFBK0MsT0FBTztBQUMvRDtBQVdPLFNBQVMsaUJBQ2QsTUFDQSxPQUNBLFlBQ0EsYUFDRztBQUNILE1BQUksZ0JBQWdCLFlBQVksZ0JBQWdCLE1BQU0sS0FBSztBQUUzRCxNQUFJLFlBQVk7QUFDUCxXQUFBLENBQUMsV0FBVyxhQUFhLEdBQUc7QUFDakIsc0JBQUEsWUFBWSxnQkFBZ0IsZUFBZSxLQUFLO0FBQUEsSUFDbEU7QUFBQSxFQUNGO0FBRU8sU0FBQTtBQUNUO0FBWU8sU0FBUywwQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUNHO0FBQ0gsUUFBTSxlQUFlLGlCQUFpQixNQUFNLElBQUksWUFBWSxXQUFXO0FBQ2pFLFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxjQUFjLE9BQU8sS0FBSyxHQUNuRjtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ08sU0FBQTtBQUNUO0FBWU8sU0FBUyxzQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUNHO0FBQ0gsUUFBTSxXQUFXLGlCQUFpQixNQUFNLEdBQUcsWUFBWSxXQUFXO0FBQzVELFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxVQUFVLE9BQU8sS0FBSyxHQUMvRTtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ08sU0FBQTtBQUNUO0FBWU8sU0FB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
@@ -1,20 +1,7 @@
1
1
  import { css, html } from "lit";
2
2
  import { customElement } from "lit/decorators.js";
3
3
  import { SbbActionGroupElement } from "../action-group.js";
4
- const style = css`/**
5
- * Better font rendering (on OS X)
6
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
7
- *
8
- * Usage:
9
- *
10
- * .var_dark_on_light {
11
- * @include font-smoothing;
12
- * }
13
- * .var_light_on_dark {
14
- * @include font-smoothing-reset;
15
- * }
16
- */
17
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
4
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
18
5
  /*
19
6
  * SBB table mixin
20
7
  * Notes:
@@ -68,4 +55,4 @@ SbbDialogActionsElement = __decorateClass([
68
55
  export {
69
56
  SbbDialogActionsElement
70
57
  };
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWFjdGlvbnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kaWFsb2cvZGlhbG9nLWFjdGlvbnMvZGlhbG9nLWFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tZ3JvdXAuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctYWN0aW9ucy5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCB0byBkaXNwbGF5IGEgZm9vdGVyIGludG8gYW4gYHNiYi1kaWFsb2dgIHdpdGggYW4gYWN0aW9uIGdyb3VwLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYmxvY2stbGlua2Agb3IgYHNiYi1idXR0b25gIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWRpYWxvZy1hY3Rpb25zYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kaWFsb2ctYWN0aW9ucycpXG5leHBvcnQgY2xhc3MgU2JiRGlhbG9nQWN0aW9uc0VsZW1lbnQgZXh0ZW5kcyBTYmJBY3Rpb25Hcm91cEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiQWN0aW9uR3JvdXBFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwic2JiLWRpYWxvZy1hY3Rpb25zXCI+JHtzdXBlci5yZW5kZXIoKX08L2Rpdj4gYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy1hY3Rpb25zJzogU2JiRGlhbG9nQWN0aW9uc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY2EsSUFBQSwwQkFBTixjQUFzQyxzQkFBc0I7QUFBQSxFQUc5QyxTQUF5QjtBQUNuQyxXQUFBLHdDQUF3QyxNQUFNLE9BQVEsQ0FBQTtBQUFBLEVBQy9EO0FBQ0Y7QUFOYSx3QkFDWSxTQUF5QixDQUFDLHNCQUFzQixRQUFRLEtBQUs7QUFEekUsMEJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsb0JBQW9CO0FBQUEsR0FDdEIsdUJBQUE7In0=
58
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWFjdGlvbnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kaWFsb2cvZGlhbG9nLWFjdGlvbnMvZGlhbG9nLWFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tZ3JvdXAuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctYWN0aW9ucy5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCB0byBkaXNwbGF5IGEgZm9vdGVyIGludG8gYW4gYHNiYi1kaWFsb2dgIHdpdGggYW4gYWN0aW9uIGdyb3VwLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYmxvY2stbGlua2Agb3IgYHNiYi1idXR0b25gIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWRpYWxvZy1hY3Rpb25zYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kaWFsb2ctYWN0aW9ucycpXG5leHBvcnQgY2xhc3MgU2JiRGlhbG9nQWN0aW9uc0VsZW1lbnQgZXh0ZW5kcyBTYmJBY3Rpb25Hcm91cEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiQWN0aW9uR3JvdXBFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwic2JiLWRpYWxvZy1hY3Rpb25zXCI+JHtzdXBlci5yZW5kZXIoKX08L2Rpdj4gYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy1hY3Rpb25zJzogU2JiRGlhbG9nQWN0aW9uc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjYSxJQUFBLDBCQUFOLGNBQXNDLHNCQUFzQjtBQUFBLEVBRzlDLFNBQXlCO0FBQ25DLFdBQUEsd0NBQXdDLE1BQU0sT0FBUSxDQUFBO0FBQUEsRUFDL0Q7QUFDRjtBQU5hLHdCQUNZLFNBQXlCLENBQUMsc0JBQXNCLFFBQVEsS0FBSztBQUR6RSwwQkFBTixnQkFBQTtBQUFBLEVBRE4sY0FBYyxvQkFBb0I7QUFBQSxHQUN0Qix1QkFBQTsifQ==
@@ -1,19 +1,6 @@
1
1
  import { css, LitElement, html } from "lit";
2
2
  import { customElement } from "lit/decorators.js";
3
- const style = css`/**
4
- * Better font rendering (on OS X)
5
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
6
- *
7
- * Usage:
8
- *
9
- * .var_dark_on_light {
10
- * @include font-smoothing;
11
- * }
12
- * .var_light_on_dark {
13
- * @include font-smoothing-reset;
14
- * }
15
- */
16
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
3
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
17
4
  /*
18
5
  * SBB table mixin
19
6
  * Notes:
@@ -95,4 +82,4 @@ SbbDialogContentElement = __decorateClass([
95
82
  export {
96
83
  SbbDialogContentElement
97
84
  };
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRlbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kaWFsb2cvZGlhbG9nLWNvbnRlbnQvZGlhbG9nLWNvbnRlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctY29udGVudC5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCB0byBwcm92aWRlIGEgY29udGVudCBmb3IgYW4gYHNiYi1kaWFsb2dgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGRpYWxvZyBjb250ZW50LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZy1jb250ZW50JylcbmV4cG9ydCBjbGFzcyBTYmJEaWFsb2dDb250ZW50RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZGlhbG9nLWNvbnRlbnRcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy1jb250ZW50JzogU2JiRGlhbG9nQ29udGVudEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZYSxJQUFBLDBCQUFOLGNBQXNDLFdBQVc7QUFBQSxFQUduQyxTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtUO0FBQ0Y7QUFWYSx3QkFDWSxTQUF5QjtBQURyQywwQkFBTixnQkFBQTtBQUFBLEVBRE4sY0FBYyxvQkFBb0I7QUFBQSxHQUN0Qix1QkFBQTsifQ==
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRlbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kaWFsb2cvZGlhbG9nLWNvbnRlbnQvZGlhbG9nLWNvbnRlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctY29udGVudC5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCB0byBwcm92aWRlIGEgY29udGVudCBmb3IgYW4gYHNiYi1kaWFsb2dgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGRpYWxvZyBjb250ZW50LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZy1jb250ZW50JylcbmV4cG9ydCBjbGFzcyBTYmJEaWFsb2dDb250ZW50RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZGlhbG9nLWNvbnRlbnRcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy1jb250ZW50JzogU2JiRGlhbG9nQ29udGVudEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlhLElBQUEsMEJBQU4sY0FBc0MsV0FBVztBQUFBLEVBR25DLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS1Q7QUFDRjtBQVZhLHdCQUNZLFNBQXlCO0FBRHJDLDBCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLG9CQUFvQjtBQUFBLEdBQ3RCLHVCQUFBOyJ9
@@ -8,20 +8,7 @@ import { i18nCloseDialog, i18nGoBack } from "../core/i18n.js";
8
8
  import { SbbTitleBase } from "../title.js";
9
9
  import "../button/secondary-button.js";
10
10
  import "../button/transparent-button.js";
11
- const style = css`/**
12
- * Better font rendering (on OS X)
13
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
14
- *
15
- * Usage:
16
- *
17
- * .var_dark_on_light {
18
- * @include font-smoothing;
19
- * }
20
- * .var_light_on_dark {
21
- * @include font-smoothing-reset;
22
- * }
23
- */
24
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
11
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
25
12
  /*
26
13
  * SBB table mixin
27
14
  * Notes:
@@ -170,4 +157,4 @@ SbbDialogTitleElement = __decorateClass([
170
157
  export {
171
158
  SbbDialogTitleElement
172
159
  };
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRpdGxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy10aXRsZS9kaWFsb2ctdGl0bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBTYmJGb2N1c1Zpc2libGVXaXRoaW5Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBCcmVha3BvaW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VEaWFsb2csIGkxOG5Hb0JhY2sgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiVGl0bGVCYXNlIH0gZnJvbSAnLi4vLi4vdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctdGl0bGUuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi90cmFuc3BhcmVudC1idXR0b24uanMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdGl0bGUgaW5zaWRlIGEgZGlhbG9nIGhlYWRlci5cbiAqXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSByZXF1ZXN0QmFja0FjdGlvbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZy10aXRsZScpXG5leHBvcnQgY2xhc3MgU2JiRGlhbG9nVGl0bGVFbGVtZW50IGV4dGVuZHMgU2JiVGl0bGVCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1NiYlRpdGxlQmFzZS5zdHlsZXMsIHN0eWxlXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgYmFja0NsaWNrOiAncmVxdWVzdEJhY2tBY3Rpb24nLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgYmFjayBidXR0b24gaXMgZGlzcGxheWVkIG5leHQgdG8gdGhlIHRpdGxlLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFjay1idXR0b24nLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBiYWNrQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWNsb3NlLWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBiYWNrIGJ1dHRvbiBlbGVtZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1iYWNrLWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUJhY2tMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIHRpdGxlIHVwIHRvIGEgY2VydGFpbiBicmVha3BvaW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGlkZS1vbi1zY3JvbGwnIH0pXG4gIHB1YmxpYyBzZXQgaGlkZU9uU2Nyb2xsKHZhbHVlOiAnJyB8IEJyZWFrcG9pbnQgfCBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZU9uU2Nyb2xsID0gdmFsdWUgPT09ICcnID8gdHJ1ZSA6IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgaGlkZU9uU2Nyb2xsKCk6IEJyZWFrcG9pbnQgfCBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZU9uU2Nyb2xsO1xuICB9XG4gIHByaXZhdGUgX2hpZGVPblNjcm9sbDogQnJlYWtwb2ludCB8IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9iYWNrQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRpYWxvZ1RpdGxlRWxlbWVudC5ldmVudHMuYmFja0NsaWNrLFxuICApO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sZXZlbCA9ICcyJztcbiAgICB0aGlzLnZpc3VhbExldmVsID0gJzMnO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgbmV3IFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2JhY2tCdXR0b24nKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2FjY2Vzc2liaWxpdHlCYWNrTGFiZWwnKSkge1xuICAgICAgdGhpcy5iYWNrQnV0dG9uID0gIXRoaXMuYmFja0J1dHRvbiAmJiAhIXRoaXMuYWNjZXNzaWJpbGl0eUJhY2tMYWJlbCA/IHRydWUgOiB0aGlzLmJhY2tCdXR0b247XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHX05BTUUgPSB0aGlzLm5lZ2F0aXZlID8gJ3NiYi10cmFuc3BhcmVudC1idXR0b24nIDogJ3NiYi1zZWNvbmRhcnktYnV0dG9uJztcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRSl9XG4gICAgICAgIGNsYXNzPVwic2JiLWRpYWxvZ19fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VEaWFsb2dbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLWRpYWxvZy1jbG9zZVxuICAgICAgPjwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUpfT5cbiAgICBgO1xuXG4gICAgY29uc3QgYmFja0J1dHRvbiA9IGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUpfVxuICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dfX2JhY2tcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNoZXZyb24tc21hbGwtbGVmdC1zbWFsbFwiXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX2JhY2tDbGljay5lbWl0KCl9XG4gICAgICA+PC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRSl9PlxuICAgIGA7XG4gICAgLyogZXNsaW50LWVuYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1kaWFsb2dfX2hlYWRlclwiPlxuICAgICAgICAke3RoaXMuYmFja0J1dHRvbiA/IGJhY2tCdXR0b24gOiBub3RoaW5nfSAke3N1cGVyLnJlbmRlcigpfSAke2Nsb3NlQnV0dG9ufVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy10aXRsZSc6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
160
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRpdGxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy10aXRsZS9kaWFsb2ctdGl0bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBTYmJGb2N1c1Zpc2libGVXaXRoaW5Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBCcmVha3BvaW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VEaWFsb2csIGkxOG5Hb0JhY2sgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiVGl0bGVCYXNlIH0gZnJvbSAnLi4vLi4vdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctdGl0bGUuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi90cmFuc3BhcmVudC1idXR0b24uanMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdGl0bGUgaW5zaWRlIGEgZGlhbG9nIGhlYWRlci5cbiAqXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSByZXF1ZXN0QmFja0FjdGlvbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZy10aXRsZScpXG5leHBvcnQgY2xhc3MgU2JiRGlhbG9nVGl0bGVFbGVtZW50IGV4dGVuZHMgU2JiVGl0bGVCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1NiYlRpdGxlQmFzZS5zdHlsZXMsIHN0eWxlXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgYmFja0NsaWNrOiAncmVxdWVzdEJhY2tBY3Rpb24nLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgYmFjayBidXR0b24gaXMgZGlzcGxheWVkIG5leHQgdG8gdGhlIHRpdGxlLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFjay1idXR0b24nLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBiYWNrQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWNsb3NlLWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBiYWNrIGJ1dHRvbiBlbGVtZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1iYWNrLWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUJhY2tMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIHRpdGxlIHVwIHRvIGEgY2VydGFpbiBicmVha3BvaW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGlkZS1vbi1zY3JvbGwnIH0pXG4gIHB1YmxpYyBzZXQgaGlkZU9uU2Nyb2xsKHZhbHVlOiAnJyB8IEJyZWFrcG9pbnQgfCBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZU9uU2Nyb2xsID0gdmFsdWUgPT09ICcnID8gdHJ1ZSA6IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgaGlkZU9uU2Nyb2xsKCk6IEJyZWFrcG9pbnQgfCBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZU9uU2Nyb2xsO1xuICB9XG4gIHByaXZhdGUgX2hpZGVPblNjcm9sbDogQnJlYWtwb2ludCB8IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9iYWNrQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRpYWxvZ1RpdGxlRWxlbWVudC5ldmVudHMuYmFja0NsaWNrLFxuICApO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sZXZlbCA9ICcyJztcbiAgICB0aGlzLnZpc3VhbExldmVsID0gJzMnO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgbmV3IFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2JhY2tCdXR0b24nKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2FjY2Vzc2liaWxpdHlCYWNrTGFiZWwnKSkge1xuICAgICAgdGhpcy5iYWNrQnV0dG9uID0gIXRoaXMuYmFja0J1dHRvbiAmJiAhIXRoaXMuYWNjZXNzaWJpbGl0eUJhY2tMYWJlbCA/IHRydWUgOiB0aGlzLmJhY2tCdXR0b247XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHX05BTUUgPSB0aGlzLm5lZ2F0aXZlID8gJ3NiYi10cmFuc3BhcmVudC1idXR0b24nIDogJ3NiYi1zZWNvbmRhcnktYnV0dG9uJztcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRSl9XG4gICAgICAgIGNsYXNzPVwic2JiLWRpYWxvZ19fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VEaWFsb2dbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLWRpYWxvZy1jbG9zZVxuICAgICAgPjwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUpfT5cbiAgICBgO1xuXG4gICAgY29uc3QgYmFja0J1dHRvbiA9IGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUpfVxuICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dfX2JhY2tcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNoZXZyb24tc21hbGwtbGVmdC1zbWFsbFwiXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX2JhY2tDbGljay5lbWl0KCl9XG4gICAgICA+PC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRSl9PlxuICAgIGA7XG4gICAgLyogZXNsaW50LWVuYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1kaWFsb2dfX2hlYWRlclwiPlxuICAgICAgICAke3RoaXMuYmFja0J1dHRvbiA/IGJhY2tCdXR0b24gOiBub3RoaW5nfSAke3N1cGVyLnJlbmRlcigpfSAke2Nsb3NlQnV0dG9ufVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy10aXRsZSc6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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