@sbb-esta/lyne-elements-experimental 4.0.0-next.2 → 4.0.0-next.4

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 (179) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +38 -0
  2. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -0
  3. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +89 -0
  4. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +31 -0
  5. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -0
  6. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +54 -0
  7. package/autocomplete-grid/autocomplete-grid-button.d.ts +5 -0
  8. package/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -0
  9. package/autocomplete-grid/autocomplete-grid-button.js +4 -0
  10. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +19 -0
  11. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -0
  12. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +25 -0
  13. package/autocomplete-grid/autocomplete-grid-cell.d.ts +5 -0
  14. package/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -0
  15. package/autocomplete-grid/autocomplete-grid-cell.js +4 -0
  16. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +19 -0
  17. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +1 -0
  18. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +29 -0
  19. package/autocomplete-grid/autocomplete-grid-optgroup.d.ts +5 -0
  20. package/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -0
  21. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -0
  22. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +26 -0
  23. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -0
  24. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +41 -0
  25. package/autocomplete-grid/autocomplete-grid-option.d.ts +5 -0
  26. package/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -0
  27. package/autocomplete-grid/autocomplete-grid-option.js +5 -0
  28. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +20 -0
  29. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -0
  30. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +28 -0
  31. package/autocomplete-grid/autocomplete-grid-row.d.ts +5 -0
  32. package/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -0
  33. package/autocomplete-grid/autocomplete-grid-row.js +4 -0
  34. package/autocomplete-grid/autocomplete-grid.d.ts +5 -0
  35. package/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  36. package/autocomplete-grid/autocomplete-grid.js +4 -0
  37. package/autocomplete-grid.d.ts +10 -0
  38. package/autocomplete-grid.d.ts.map +1 -0
  39. package/autocomplete-grid.js +15 -0
  40. package/core/datetime.d.ts +1 -1
  41. package/core/timetable/access-leg-helper.d.ts +6 -6
  42. package/core/timetable/timetable-helper.d.ts +1 -1
  43. package/core/timetable.d.ts +3 -3
  44. package/custom-elements.json +936 -136
  45. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +38 -0
  46. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -0
  47. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +140 -0
  48. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +31 -0
  49. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -0
  50. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +82 -0
  51. package/development/autocomplete-grid/autocomplete-grid-button.d.ts +5 -0
  52. package/development/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -0
  53. package/development/autocomplete-grid/autocomplete-grid-button.js +5 -0
  54. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +19 -0
  55. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -0
  56. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +40 -0
  57. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts +5 -0
  58. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -0
  59. package/development/autocomplete-grid/autocomplete-grid-cell.js +5 -0
  60. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +19 -0
  61. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +1 -0
  62. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +40 -0
  63. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts +5 -0
  64. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -0
  65. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +5 -0
  66. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +26 -0
  67. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -0
  68. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +134 -0
  69. package/development/autocomplete-grid/autocomplete-grid-option.d.ts +5 -0
  70. package/development/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -0
  71. package/development/autocomplete-grid/autocomplete-grid-option.js +6 -0
  72. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +20 -0
  73. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -0
  74. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +115 -0
  75. package/development/autocomplete-grid/autocomplete-grid-row.d.ts +5 -0
  76. package/development/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -0
  77. package/development/autocomplete-grid/autocomplete-grid-row.js +5 -0
  78. package/development/autocomplete-grid/autocomplete-grid.d.ts +5 -0
  79. package/development/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  80. package/development/autocomplete-grid/autocomplete-grid.js +5 -0
  81. package/development/autocomplete-grid.d.ts +10 -0
  82. package/development/autocomplete-grid.d.ts.map +1 -0
  83. package/development/autocomplete-grid.js +16 -0
  84. package/development/core/datetime.d.ts +1 -1
  85. package/development/core/timetable/access-leg-helper.d.ts +6 -6
  86. package/development/core/timetable/access-leg-helper.js +1 -1
  87. package/development/core/timetable/timetable-helper.d.ts +1 -1
  88. package/development/core/timetable/timetable-helper.js +1 -1
  89. package/development/core/timetable.d.ts +3 -3
  90. package/development/journey-summary/journey-summary.component.d.ts +1 -1
  91. package/development/journey-summary/journey-summary.component.js +1 -1
  92. package/development/journey-summary.d.ts +1 -1
  93. package/development/pearl-chain/pearl-chain.component.d.ts +1 -1
  94. package/development/pearl-chain/pearl-chain.component.js +1 -1
  95. package/development/pearl-chain-time/pearl-chain-time.component.d.ts +1 -1
  96. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  97. package/development/pearl-chain-time.d.ts +1 -1
  98. package/development/pearl-chain-vertical-item.d.ts +1 -1
  99. package/development/pearl-chain-vertical.d.ts +1 -1
  100. package/development/pearl-chain.d.ts +1 -1
  101. package/development/seat-reservation/common/mapper/icon-mapper.js +1 -1
  102. package/development/seat-reservation/common/mapper/mapper.d.ts +4 -2
  103. package/development/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  104. package/development/seat-reservation/common/mapper/mapper.js +1 -1
  105. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +0 -88
  106. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  107. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +1 -815
  108. package/development/seat-reservation/common/mapper.d.ts +2 -2
  109. package/development/seat-reservation/common/translations.d.ts +1 -1
  110. package/development/seat-reservation/common.d.ts +4 -4
  111. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +5 -4
  112. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  113. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +16 -10
  114. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -2
  115. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  116. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +13 -10
  117. package/development/seat-reservation/seat-reservation-area.d.ts +1 -1
  118. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  119. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  120. package/development/seat-reservation/seat-reservation-graphic.d.ts +1 -1
  121. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +8 -4
  122. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  123. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +57 -22
  124. package/development/seat-reservation/seat-reservation-navigation-coach.d.ts +1 -1
  125. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  126. package/development/seat-reservation/seat-reservation-navigation-services.d.ts +1 -1
  127. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +1 -1
  128. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  129. package/development/seat-reservation/seat-reservation-place-control.d.ts +1 -1
  130. package/development/seat-reservation/seat-reservation-scoped.d.ts +1 -1
  131. package/development/seat-reservation/seat-reservation.d.ts +2 -2
  132. package/development/seat-reservation.d.ts +8 -8
  133. package/development/timetable-duration.d.ts +1 -1
  134. package/development/timetable-row/timetable-row.component.d.ts +1 -1
  135. package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
  136. package/development/timetable-row/timetable-row.component.js +7 -7
  137. package/development/timetable-row.d.ts +1 -1
  138. package/index.d.ts +12 -0
  139. package/index.js +12 -0
  140. package/journey-summary/journey-summary.component.d.ts +1 -1
  141. package/journey-summary.d.ts +1 -1
  142. package/package.json +37 -2
  143. package/pearl-chain/pearl-chain.component.d.ts +1 -1
  144. package/pearl-chain-time/pearl-chain-time.component.d.ts +1 -1
  145. package/pearl-chain-time.d.ts +1 -1
  146. package/pearl-chain-vertical-item.d.ts +1 -1
  147. package/pearl-chain-vertical.d.ts +1 -1
  148. package/pearl-chain.d.ts +1 -1
  149. package/seat-reservation/common/mapper/mapper.d.ts +4 -2
  150. package/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  151. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +0 -88
  152. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  153. package/seat-reservation/common/mapper/seat-reservation-sample-data.js +2 -815
  154. package/seat-reservation/common/mapper.d.ts +2 -2
  155. package/seat-reservation/common/translations.d.ts +1 -1
  156. package/seat-reservation/common.d.ts +4 -4
  157. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +5 -4
  158. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  159. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +31 -30
  160. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -2
  161. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  162. package/seat-reservation/seat-reservation/seat-reservation.component.js +40 -41
  163. package/seat-reservation/seat-reservation-area.d.ts +1 -1
  164. package/seat-reservation/seat-reservation-graphic.d.ts +1 -1
  165. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +8 -4
  166. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  167. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +148 -127
  168. package/seat-reservation/seat-reservation-navigation-coach.d.ts +1 -1
  169. package/seat-reservation/seat-reservation-navigation-services.d.ts +1 -1
  170. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +1 -1
  171. package/seat-reservation/seat-reservation-place-control.d.ts +1 -1
  172. package/seat-reservation/seat-reservation-scoped.d.ts +1 -1
  173. package/seat-reservation/seat-reservation.d.ts +2 -2
  174. package/seat-reservation.d.ts +8 -8
  175. package/timetable-duration.d.ts +1 -1
  176. package/timetable-row/timetable-row.component.d.ts +1 -1
  177. package/timetable-row/timetable-row.component.d.ts.map +1 -1
  178. package/timetable-row/timetable-row.component.js +18 -18
  179. package/timetable-row.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
- import { SeatReservationBaseElement } from './seat-reservation-base-element.js';
2
+ import { SeatReservationBaseElement } from './seat-reservation-base-element.ts';
3
3
  /**
4
4
  * Main component for the seat reservation.
5
5
  *
@@ -21,7 +21,7 @@ export declare class SbbSeatReservationElement extends SeatReservationBaseElemen
21
21
  *
22
22
  * @returns
23
23
  * @param seatReservation
24
- * @param deckIndex
24
+ * @param coachDeckIndex
25
25
  */
26
26
  private _renderCoaches;
27
27
  private _renderCoachElement;
@@ -1 +1 @@
1
- {"version":3,"file":"seat-reservation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.component.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAgB1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,mCAAmC,CAAC;AAC3C,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+BAA+B,CAAC;AACvC,OAAO,4CAA4C,CAAC;AAEpD;;;GAGG;AACH,qBAEM,yBAA0B,SAAQ,0BAA0B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAE9C,OAAO,CAAC,gBAAgB,CAQtB;IAGF,OAAO,CAAC,2BAA2B,CAAkB;cAElC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAgBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAS3D,MAAM,IAAI,cAAc,GAAG,IAAI;IAKlD,OAAO,CAAC,uCAAuC;IAoD/C,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,8BAA8B;IAmCtC,OAAO,CAAC,iBAAiB;IAwCzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAsC3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA8BhC,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,wBAAwB;IAsDhC,OAAO,CAAC,6BAA6B;IAgCrC;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAgFjC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,2BAA2B;IAwCnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IASxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,8BAA8B;CAyBvC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
1
+ {"version":3,"file":"seat-reservation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.component.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAgB1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,mCAAmC,CAAC;AAC3C,OAAO,+CAA+C,CAAC;AACvD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+BAA+B,CAAC;AAEvC;;;GAGG;AACH,qBAEM,yBAA0B,SAAQ,0BAA0B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAE9C,OAAO,CAAC,gBAAgB,CAQtB;IAGF,OAAO,CAAC,2BAA2B,CAAkB;cAElC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAgBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAS3D,MAAM,IAAI,cAAc,GAAG,IAAI;IAKlD,OAAO,CAAC,uCAAuC;IAoD/C,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,8BAA8B;IAmCtC,OAAO,CAAC,iBAAiB;IAsCzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAsC3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA8BhC,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,wBAAwB;IAsDhC,OAAO,CAAC,6BAA6B;IAgCrC;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAgFjC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,2BAA2B;IAwCnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,gBAAgB;IASxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,8BAA8B;CAyBvC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
@@ -9,12 +9,12 @@ import { getI18nSeatReservation } from "../common.js";
9
9
  import { SeatReservationBaseElement } from "./seat-reservation-base-element.js";
10
10
  import "@sbb-esta/lyne-elements/button.js";
11
11
  import "@sbb-esta/lyne-elements/screen-reader-only.js";
12
+ import "@sbb-esta/lyne-elements/popover.js";
12
13
  import "../seat-reservation-area.js";
13
14
  import "../seat-reservation-graphic.js";
14
15
  import "../seat-reservation-place-control.js";
15
16
  import "../seat-reservation-navigation-coach.js";
16
17
  import "../seat-reservation-scoped.js";
17
- import "@sbb-esta/lyne-elements/popover/popover.js";
18
18
  const style = css`:host {
19
19
  --sbb-seat-reservation-grid-size: 16px;
20
20
  --sbb-seat-reservation-height: 0;
@@ -555,14 +555,13 @@ let SbbSeatReservationElement = (() => {
555
555
  <sbb-seat-reservation-navigation-coach
556
556
  @selectcoach=${(event) => this._onSelectNavCoach(event)}
557
557
  @focuscoach=${() => this._onFocusNavCoach()}
558
- class="${classMap({
559
- "sbb-sr__navigation-coach--hover-scroll": this.hoveredScrollCoachIndex === index
560
- })}"
561
558
  index="${index}"
562
559
  coach-id="${navigationCoach.id}"
563
560
  .freePlacesByType="${navigationCoach.freePlaces}"
564
561
  .selected=${this.selectedCoachIndex === index}
565
562
  .focused=${this.focusedCoachIndex === index}
563
+ .hovered=${this.hoveredScrollCoachIndex === index}
564
+ .nativeFocusActive=${this.hasSeatReservationNativeFocus}
566
565
  .propertyIds="${navigationCoach.propertyIds}"
567
566
  .travelClass="${navigationCoach.travelClass}"
568
567
  ?driver-area="${navigationCoach.isDriverArea}"
@@ -581,7 +580,7 @@ let SbbSeatReservationElement = (() => {
581
580
  *
582
581
  * @returns
583
582
  * @param seatReservation
584
- * @param deckIndex
583
+ * @param coachDeckIndex
585
584
  */
586
585
  _renderCoaches(seatReservation, coachDeckIndex) {
587
586
  const coaches = JSON.parse(JSON.stringify(seatReservation?.coachItems));
@@ -835,6 +834,9 @@ let SbbSeatReservationElement = (() => {
835
834
  const selectedPlace = selectPlaceEvent.detail;
836
835
  this.preventCoachScrollByPlaceClick = true;
837
836
  this.isCoachGridFocusable = false;
837
+ if (!this.hasSeatReservationNativeFocus) {
838
+ this.hasSeatReservationNativeFocus = true;
839
+ }
838
840
  if (!this.preventPlaceClick) {
839
841
  this.updateSelectedSeatReservationPlaces(selectedPlace);
840
842
  this.updateCurrentSelectedPlaceInCoach(selectedPlace);
@@ -843,6 +845,7 @@ let SbbSeatReservationElement = (() => {
843
845
  _onSelectNavCoach(event) {
844
846
  const selectedNavCoachIndex = event.detail;
845
847
  this.isKeyboardNavigation = false;
848
+ this.preventCoachScrollByPlaceClick = false;
846
849
  if (selectedNavCoachIndex !== null && selectedNavCoachIndex !== this.currSelectedCoachIndex) {
847
850
  this.unfocusPlaceElement();
848
851
  this.scrollToSelectedNavCoach(selectedNavCoachIndex);
@@ -878,7 +881,7 @@ let SbbSeatReservationElement = (() => {
878
881
  * @private
879
882
  */
880
883
  _closePopover() {
881
- this.shadowRoot?.querySelectorAll('sbb-popover[data-state="opened"]').forEach((popover) => popover.setAttribute("data-state", "closed"));
884
+ this.shadowRoot?.querySelectorAll("sbb-popover:is(:state(state-opened),[state--state-opened])").forEach((popover) => popover.close());
882
885
  }
883
886
  _getDescriptionTableCoach(coachItem) {
884
887
  if (!coachItem.places?.length) {
@@ -909,13 +912,13 @@ let SbbSeatReservationElement = (() => {
909
912
  const icon = descriptionElement.icon;
910
913
  if (!icon)
911
914
  return null;
912
- const descriptionAlreayExist = uniqueDescriptions.indexOf(icon) > -1;
915
+ const descriptionAlreadyExist = uniqueDescriptions.indexOf(icon) > -1;
913
916
  const translation = getI18nSeatReservation(descriptionElement.icon, this._language.current);
914
917
  const isValidDescription = this._notFixedRotatableAreaIcons.indexOf(icon) === -1 && this._notAreaElements.indexOf(icon) === -1;
915
- if (!descriptionAlreayExist) {
918
+ if (!descriptionAlreadyExist) {
916
919
  uniqueDescriptions.push(descriptionElement.icon);
917
920
  }
918
- return !!translation && !descriptionAlreayExist && isValidDescription ? translation : null;
921
+ return !!translation && !descriptionAlreadyExist && isValidDescription ? translation : null;
919
922
  }).filter((description) => !!description).join(", ");
920
923
  }
921
924
  }, _classThis = _a, (() => {
@@ -929,4 +932,4 @@ let SbbSeatReservationElement = (() => {
929
932
  export {
930
933
  SbbSeatReservationElement
931
934
  };
932
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMuanMnO1xuaW1wb3J0IHsgaHRtbCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvYWNoSXRlbSxcbiAgUGxhY2UsXG4gIEVsZW1lbnREaW1lbnNpb24sXG4gIEJhc2VFbGVtZW50LFxuICBQbGFjZVNlbGVjdGlvbixcbiAgU2VhdFJlc2VydmF0aW9uLFxuICBOYXZpZ2F0aW9uQ29hY2hJdGVtLFxufSBmcm9tICcuLi9jb21tb24uanMnO1xuXG5pbXBvcnQgeyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2J1dHRvbi5qcyc7XG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLmpzJztcbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvcG9wb3Zlci9wb3BvdmVyLmpzJztcblxuLyoqXG4gKiBNYWluIGNvbXBvbmVudCBmb3IgdGhlIHNlYXQgcmVzZXJ2YXRpb24uXG4gKlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbicpXG5jbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25FbGVtZW50IGV4dGVuZHMgU2VhdFJlc2VydmF0aW9uQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9jb2FjaGVzSHRtbFRlbXBsYXRlPzogVGVtcGxhdGVSZXN1bHQ7XG4gIC8vIEdyYXBoaWNzIHRoYXQgc2hvdWxkIG5vdCBiZSByZW5kZXJlZCB3aXRoIGFuIGFyZWFcbiAgcHJpdmF0ZSBfbm90QXJlYUVsZW1lbnRzID0gW1xuICAgICdEUklWRVJfQVJFQScsXG4gICAgJ0NPQUNIX1BBU1NBR0UnLFxuICAgICdDT0FDSF9XQUxMX05PX1BBU1NBR0UnLFxuICAgICdDT01QQVJUTUVOVF9QQVNTQUdFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRV9ISUdIJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRV9NSURETEUnLFxuICAgICdDT01QQVJUTUVOVF9QQVNTQUdFX0xPVycsXG4gIF07XG5cbiAgLy8gQXJlYSBpY29ucyB0aGF0IHNob3VsZCBub3QgYmUgZml4ZWQgZHVyaW5nIHJvdGF0aW9uIHdoZW4gdmVydGljYWwgbW9kZSBpcyBzZWxlY3RlZFxuICBwcml2YXRlIF9ub3RGaXhlZFJvdGF0YWJsZUFyZWFJY29ucyA9IFsnRU5UUllfRVhJVCddO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaGFzTmF2aWdhdGlvbicpKSB7XG4gICAgICBpZiAodGhpcy5oYXNOYXZpZ2F0aW9uKSB7XG4gICAgICAgIHRoaXMuc2hhZG93Um9vdFxuICAgICAgICAgID8ucXVlcnlTZWxlY3RvckFsbCgndGFibGUnKVxuICAgICAgICAgIC5mb3JFYWNoKCh0YWJsZSkgPT4gdGFibGUucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hhZG93Um9vdFxuICAgICAgICAgID8ucXVlcnlTZWxlY3RvckFsbCgndGFibGUnKVxuICAgICAgICAgIC5mb3JFYWNoKCh0YWJsZSkgPT4gdGFibGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCB0aGUgZmlyc3QgdXBkYXRlIGlzIGNvbXBsZXRlIHRvIGluaXQgZGlmZmVyZW50IGh0bWwgZWxlbWVudCBkaW1lbnNpb25zXG4gICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuaW5pdE5hdmlnYXRpb25TZWxlY3Rpb25CeVNjcm9sbEV2ZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgdGhpcy5faW5pdFZlaGljbGVTZWF0UmVzZXJ2YXRpb25Db25zdHJ1Y3Rpb24oKTtcbiAgICByZXR1cm4gdGhpcy5fY29hY2hlc0h0bWxUZW1wbGF0ZSB8fCBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFZlaGljbGVTZWF0UmVzZXJ2YXRpb25Db25zdHJ1Y3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fY29hY2hlc0h0bWxUZW1wbGF0ZSA9IGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNyX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zciBzYmItc3JfX2dyaWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24tZmlyc3QtZ3JpZFwiPlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJOYXZpZ2F0aW9uQ29udHJvbEJ1dHRvbignRElSRUNUSU9OX0xFRlQnKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1zcl9fY29tcG9uZW50XCJcbiAgICAgICAgICAgIEBrZXlkb3duPSR7KGV2dDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50KGV2dCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zci1ncmlkLWlubmVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtZ3JpZFwiPiR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbigpfTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29hY2hlcy1ncmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrc1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zcl9fd3JhcHBlci1kZWNrLWxhYmVsc1wiPiR7dGhpcy5fcmVuZGVyRGVja0xhYmVscygpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBpZD1cInNiYi1zcl9fd3JhcHBlci1zY3JvbGxhcmVhXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICBAc2Nyb2xsPSR7KCkgPT4gdGhpcy5jb2FjaEFyZWFTY3JvbGxlbmQoKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInNiYi1zcl9fcGFyZW50LWFyZWFcIiBjbGFzcz1cInNiYi1zcl9fcGFyZW50XCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NiYi1zcl9fbGlzdC1kZWNrcyc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzYmItc3JfX2xpc3QtZGVja3MtLWdhcCc6IHRoaXMuaGFzTXVsdGlwbGVEZWNrcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlYXRSZXNlcnZhdGlvbnM/Lm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlYXRSZXNlcnZhdGlvbjogU2VhdFJlc2VydmF0aW9uLCBjb2FjaERlY2tJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGxpIGNsYXNzPVwic2JiLXNyX19saXN0LWl0ZW0tZGVja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic2JiLXNyX19saXN0LWNvYWNoZXNcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ29hY2hlcyhzZWF0UmVzZXJ2YXRpb24sIGNvYWNoRGVja0luZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbi1sYXN0LWdyaWRcIj5cbiAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oJ0RJUkVDVElPTl9SSUdIVCcpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEZWNrTGFiZWxzKCk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaGFzTXVsdGlwbGVEZWNrcykgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5zZWF0UmVzZXJ2YXRpb25zLm1hcCgoc2VhdFJlc2VydmF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBkZWNrRGVzY3JpcHRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICBzZWF0UmVzZXJ2YXRpb24uZGVja0NvYWNoTGV2ZWwsXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGh0bWxgPGIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JHtkZWNrRGVzY3JpcHRpb259PC9iPmA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJOYXZpZ2F0aW9uQ29udHJvbEJ1dHRvbihidG5EaXJlY3Rpb246IHN0cmluZyk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmhhc05hdmlnYXRpb24gfHwgIXRoaXMuc2VhdFJlc2VydmF0aW9ucykgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBidG5JZCA9IGJ0bkRpcmVjdGlvbiA9PSAnRElSRUNUSU9OX1JJR0hUJyA/ICdsYXN0LXRhYi1lbGVtZW50JyA6ICdmaXJzdC10YWItZWxlbWVudCc7XG4gICAgY29uc3QgYnRuSWNvbiA9XG4gICAgICBidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9SSUdIVCcgPyAnY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbCcgOiAnY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsJztcbiAgICBjb25zdCBidG5BcmlhRGVzY3JpcHRpb24gPVxuICAgICAgYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fUklHSFQnXG4gICAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9FTkQnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KVxuICAgICAgICA6IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1NFQVRfUkVTRVJWQVRJT05fQkVHSU4nLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KTtcbiAgICBsZXQgYnRuRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgaWYgKGJ0bkRpcmVjdGlvbiA9PSAnRElSRUNUSU9OX0xFRlQnICYmIHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4ID4gMCkge1xuICAgICAgYnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fUklHSFQnICYmXG4gICAgICB0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA8XG4gICAgICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uc1t0aGlzLmN1cnJTZWxlY3RlZERlY2tJbmRleF0uY29hY2hJdGVtcy5sZW5ndGggLSAxXG4gICAgKSB7XG4gICAgICBidG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgQGNsaWNrPVwiJHsoKSA9PiB0aGlzLm5hdmlnYXRlQnlEaXJlY3Rpb25CdG4oYnRuRGlyZWN0aW9uKX1cIlxuICAgICAgaWQ9XCIke2J0bklkfVwiXG4gICAgICBjbGFzcz1cInNiYi1zcl9fbmF2aWdhdGlvbi1jb250cm9sLWJ1dHRvblwiXG4gICAgICBzaXplPVwic1wiXG4gICAgICBpY29uLW5hbWU9XCIke2J0bkljb259XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgYXJpYS1sYWJlbD1cIiR7YnRuQXJpYURlc2NyaXB0aW9ufVwiXG4gICAgICByb2xlPVwiY29udGVudGluZm9cIlxuICAgICAgLmRpc2FibGVkSW50ZXJhY3RpdmU9XCIke2J0bkRpc2FibGVkIHx8IG5vdGhpbmd9XCJcbiAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTmF2aWdhdGlvbigpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uIHx8ICF0aGlzLnNlYXRSZXNlcnZhdGlvbnMpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLXdyYXBwZXJcIj5cbiAgICAgIDxuYXYgaWQ9XCJzYmItc3ItbmF2aWdhdGlvblwiIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25cIj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgaWQ9XCJzYmItc3JfX25hdmlnYXRpb24tbGlzdC1jb2FjaGVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19saXN0LWNvYWNoZXNcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgICAgICAnU0VBVF9SRVNFUlZBVElPTl9OQVZJR0FUSU9OJyxcbiAgICAgICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICAgICAgKX1cIlxuICAgICAgICA+XG4gICAgICAgICAgJHt0aGlzLmNvYWNoTmF2RGF0YS5tYXAoKG5hdmlnYXRpb25Db2FjaDogTmF2aWdhdGlvbkNvYWNoSXRlbSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGxpPlxuICAgICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaFxuICAgICAgICAgICAgICAgIEBzZWxlY3Rjb2FjaD0keyhldmVudDogQ3VzdG9tRXZlbnQ8bnVtYmVyPikgPT4gdGhpcy5fb25TZWxlY3ROYXZDb2FjaChldmVudCl9XG4gICAgICAgICAgICAgICAgQGZvY3VzY29hY2g9JHsoKSA9PiB0aGlzLl9vbkZvY3VzTmF2Q29hY2goKX1cbiAgICAgICAgICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICAgICAgICAgJ3NiYi1zcl9fbmF2aWdhdGlvbi1jb2FjaC0taG92ZXItc2Nyb2xsJzogdGhpcy5ob3ZlcmVkU2Nyb2xsQ29hY2hJbmRleCA9PT0gaW5kZXgsXG4gICAgICAgICAgICAgICAgfSl9XCJcbiAgICAgICAgICAgICAgICBpbmRleD1cIiR7aW5kZXh9XCJcbiAgICAgICAgICAgICAgICBjb2FjaC1pZD1cIiR7bmF2aWdhdGlvbkNvYWNoLmlkfVwiXG4gICAgICAgICAgICAgICAgLmZyZWVQbGFjZXNCeVR5cGU9XCIke25hdmlnYXRpb25Db2FjaC5mcmVlUGxhY2VzfVwiXG4gICAgICAgICAgICAgICAgLnNlbGVjdGVkPSR7dGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgICAgIC5mb2N1c2VkPSR7dGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgICAgLnByb3BlcnR5SWRzPVwiJHtuYXZpZ2F0aW9uQ29hY2gucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgICAgICAudHJhdmVsQ2xhc3M9XCIke25hdmlnYXRpb25Db2FjaC50cmF2ZWxDbGFzc31cIlxuICAgICAgICAgICAgICAgID9kcml2ZXItYXJlYT1cIiR7bmF2aWdhdGlvbkNvYWNoLmlzRHJpdmVyQXJlYX1cIlxuICAgICAgICAgICAgICAgID9maXJzdD1cIiR7bmF2aWdhdGlvbkNvYWNoPy5kcml2ZXJBcmVhU2lkZT8ubGVmdH1cIlxuICAgICAgICAgICAgICAgID9sYXN0PVwiJHtuYXZpZ2F0aW9uQ29hY2g/LmRyaXZlckFyZWFTaWRlPy5yaWdodH1cIlxuICAgICAgICAgICAgICAgID92ZXJ0aWNhbD1cIiR7dGhpcy5hbGlnblZlcnRpY2FsfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoPlxuICAgICAgICAgICAgPC9saT5gO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9uYXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHJldHVybnNcbiAgICogQHBhcmFtIHNlYXRSZXNlcnZhdGlvblxuICAgKiBAcGFyYW0gZGVja0luZGV4XG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJDb2FjaGVzKFxuICAgIHNlYXRSZXNlcnZhdGlvbjogU2VhdFJlc2VydmF0aW9uLFxuICAgIGNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBjb25zdCBjb2FjaGVzOiBDb2FjaEl0ZW1bXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc2VhdFJlc2VydmF0aW9uPy5jb2FjaEl0ZW1zKSk7XG5cbiAgICBpZiAoIWNvYWNoZXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY29hY2hlcy5tYXAoKGNvYWNoSXRlbTogQ29hY2hJdGVtLCBjb2FjaEluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8bGkgY2xhc3M9XCJzYmItc3JfX2l0ZW0tY29hY2hcIj5cbiAgICAgICAgICAke3RoaXMuX3JlbmRlckNvYWNoRWxlbWVudChcbiAgICAgICAgICAgIGNvYWNoSXRlbSxcbiAgICAgICAgICAgIGNvYWNoSW5kZXgsXG4gICAgICAgICAgICBjb2FjaERlY2tJbmRleCxcbiAgICAgICAgICAgIHNlYXRSZXNlcnZhdGlvbi5kZWNrQ29hY2hJbmRleCxcbiAgICAgICAgICApfVxuICAgICAgICA8L2xpPlxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckNvYWNoRWxlbWVudChcbiAgICBjb2FjaEl0ZW06IENvYWNoSXRlbSxcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBwbGFjZUNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjYWxjdWxhdGVkQ29hY2hEaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24oY29hY2hJdGVtLmRpbWVuc2lvbik7XG4gICAgY29uc3QgZGVzY3JpcHRpb25UYWJsZUNvYWNoV2l0aFNlcnZpY2VzID0gdGhpcy5fZ2V0RGVzY3JpcHRpb25UYWJsZUNvYWNoKGNvYWNoSXRlbSk7XG5cbiAgICByZXR1cm4gaHRtbGA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLXdpZHRoJzogY2FsY3VsYXRlZENvYWNoRGltZW5zaW9uLncsXG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC1oZWlnaHQnOiBjYWxjdWxhdGVkQ29hY2hEaW1lbnNpb24uaCxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2FjaEJvcmRlcnMoY29hY2hJdGVtKX1cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRHcmFwaGljYWxFbGVtZW50cyhcbiAgICAgICAgY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cyB8fCBbXSxcbiAgICAgICAgY29hY2hJdGVtLmRpbWVuc2lvbixcbiAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgY29hY2hEZWNrSW5kZXgsXG4gICAgICApfVxuICAgICAgJHt0aGlzLl9nZXRSZW5kZXJlZFNlcnZpY2VFbGVtZW50cyhjb2FjaEluZGV4LCBjb2FjaERlY2tJbmRleCwgY29hY2hJdGVtLnNlcnZpY2VFbGVtZW50cyl9XG5cbiAgICAgIDx0YWJsZVxuICAgICAgICBAZm9jdXM9JHsoKSA9PiB0aGlzLm9uRm9jdXNUYWJsZUNvYWNoQW5kUHJlc2VsZWN0UGxhY2UoY29hY2hJbmRleCl9XG4gICAgICAgIGlkPVwic2JiLXNyLWNvYWNoLSR7Y29hY2hJbmRleH1cIlxuICAgICAgICBjbGFzcz1cInNiYi1zci1jb2FjaC13cmFwcGVyX190YWJsZVwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJzYmItc3ItY29hY2gtY2FwdGlvbi0ke2NvYWNoSW5kZXh9XCJcbiAgICAgID5cbiAgICAgICAgPGNhcHRpb24gaWQ9XCJzYmItc3ItY29hY2gtY2FwdGlvbi0ke2NvYWNoSW5kZXh9XCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PiR7ZGVzY3JpcHRpb25UYWJsZUNvYWNoV2l0aFNlcnZpY2VzfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgPC9jYXB0aW9uPlxuICAgICAgICAke3RoaXMuX2dldFJlbmRlcmVkUm93UGxhY2VzKGNvYWNoSXRlbSwgY29hY2hJbmRleCwgY29hY2hEZWNrSW5kZXgsIHBsYWNlQ29hY2hEZWNrSW5kZXgpfVxuICAgICAgPC90YWJsZT5cbiAgICA8L3NiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZD5gO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFJldHVybnMgdGhlIGJvcmRlciBncmFwaGljIChDT0FDSF9CT1JERVJfTUlERExFKSBvZiBhIGNvYWNoIHdpdGggY2FsY3VsYXRlZCBib3JkZXIgZ2FwIGFuZCBjb2FjaCB3aWR0aCxcbiAgICogZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGNvYWNoIGlzIHdpdGggYSBkcml2ZXIgYXJlYSBvciB3aXRob3V0LlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRDb2FjaEJvcmRlcnMoY29hY2hJdGVtOiBDb2FjaEl0ZW0pOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cykgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBDT0FDSF9QQVNTQUdFX1dJRFRIID0gMTtcbiAgICBjb25zdCBhbGxFbGVtZW50cyA9IGNvYWNoSXRlbS5ncmFwaGljRWxlbWVudHM7XG4gICAgY29uc3QgZHJpdmVyQXJlYSA9IGFsbEVsZW1lbnRzPy5maW5kKChlbGVtZW50OiBCYXNlRWxlbWVudCkgPT4gZWxlbWVudC5pY29uID09PSAnRFJJVkVSX0FSRUEnKTtcbiAgICBjb25zdCBib3JkZXJXaWR0aCA9IGRyaXZlckFyZWFcbiAgICAgID8gY29hY2hJdGVtLmRpbWVuc2lvbi53IC0gZHJpdmVyQXJlYS5kaW1lbnNpb24udyAtIENPQUNIX1BBU1NBR0VfV0lEVEhcbiAgICAgIDogY29hY2hJdGVtLmRpbWVuc2lvbi53IC0gQ09BQ0hfUEFTU0FHRV9XSURUSCAqIDI7XG4gICAgY29uc3QgYm9yZGVySGVpZ2h0ID0gKGNvYWNoSXRlbS5kaW1lbnNpb24uaCArIHRoaXMuY29hY2hCb3JkZXJPZmZzZXQgKiAyKSAqIHRoaXMuYmFzZUdyaWRTaXplO1xuICAgIGNvbnN0IGJvcmRlck9mZnNldFggPVxuICAgICAgZHJpdmVyQXJlYSAmJiBkcml2ZXJBcmVhLnBvc2l0aW9uLnggPT09IDBcbiAgICAgICAgPyBkcml2ZXJBcmVhPy5kaW1lbnNpb24udyAqIHRoaXMuYmFzZUdyaWRTaXplXG4gICAgICAgIDogdGhpcy5iYXNlR3JpZFNpemU7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogYm9yZGVyV2lkdGggKiB0aGlzLmJhc2VHcmlkU2l6ZSxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCc6IGJvcmRlckhlaWdodCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IHRoaXMuY29hY2hCb3JkZXJQYWRkaW5nICogLTEsXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1sZWZ0JzogYm9yZGVyT2Zmc2V0WCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgfSl9XG4gICAgICAgIG5hbWU9XCJDT0FDSF9CT1JERVJfTUlERExFXCJcbiAgICAgICAgP3N0cmV0Y2g9JHt0cnVlfVxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkUm93UGxhY2VzKFxuICAgIGNvYWNoOiBDb2FjaEl0ZW0sXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICAgcGxhY2VDb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICApOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgaWYgKCFjb2FjaC5wbGFjZXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFByZXBhaXIgcm93cyB3aXRoIHRoZSBwbGFjZXMgdG8gcmVuZGVyIGEgdGFibGVcbiAgICBjb25zdCB0YWJsZVJvd1BsYWNlczogUmVjb3JkPG51bWJlciwgUGxhY2VbXT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHBsYWNlIG9mIGNvYWNoLnBsYWNlcykge1xuICAgICAgaWYgKCF0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSkge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSA9IFtwbGFjZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XS5wdXNoKHBsYWNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0YWJsZVJvd1BsYWNlcylcbiAgICAgIC5tYXAoKHJvd1BsYWNlczogUGxhY2VbXSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHRyIGlkPVwicm93LSR7Y29hY2hJbmRleH0tJHtyb3dQbGFjZXNbMF0ucG9zaXRpb24ueX1cIiBkYXRhLXJvdy1pbmRleD0ke2luZGV4fT5cbiAgICAgICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2x1bW5QbGFjZXMoXG4gICAgICAgICAgICAgIHJvd1BsYWNlcyxcbiAgICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICAgICAgY29hY2hEZWNrSW5kZXgsXG4gICAgICAgICAgICAgIHBsYWNlQ29hY2hEZWNrSW5kZXgsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIGA7XG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKHJvd1RlbXBsYXRlKSA9PiByb3dUZW1wbGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvbHVtblBsYWNlcyhcbiAgICBwbGFjZXM6IFBsYWNlW10sXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICAgIGRlY2tJbmRleDogbnVtYmVyLFxuICAgIHBsYWNlQ29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIC8vU29ydHMgZWFjaCBwbGFjZSBieSBpdHMgYXNjZW5kaW5nIHggY29vcmRpbmF0ZVxuICAgIHBsYWNlcy5zb3J0KFxuICAgICAgKHBsYWNlQTogUGxhY2UsIHBsYWNlQjogUGxhY2UpID0+IE51bWJlcihwbGFjZUEucG9zaXRpb24ueCkgLSBOdW1iZXIocGxhY2VCLnBvc2l0aW9uLngpLFxuICAgICk7XG5cbiAgICByZXR1cm4gcGxhY2VzPy5tYXAoKHBsYWNlOiBQbGFjZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2FsY3VsYXRlZERpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihwbGFjZS5kaW1lbnNpb24pO1xuICAgICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24ocGxhY2UucG9zaXRpb24pO1xuICAgICAgY29uc3Qgcm90YXRpb24gPSBwbGFjZS5yb3RhdGlvbiB8fCAwO1xuICAgICAgY29uc3QgdGV4dFJvdGF0aW9uID0gdGhpcy5hbGlnblZlcnRpY2FsID8gLTkwIDogMDtcbiAgICAgIGNvbnN0IHBsYWNlSWQgPSB0aGlzLmdldFBsYWNlRWxlbWVudElkKGRlY2tJbmRleCwgY29hY2hJbmRleCwgcGxhY2UubnVtYmVyKTtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8dGRcbiAgICAgICAgICBpZD1cImNlbGwtJHtkZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtwbGFjZS5wb3NpdGlvbi55fS0ke2luZGV4fVwiXG4gICAgICAgICAgY2xhc3M9XCJncmFwaGljYWwtZWxlbWVudFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbFxuICAgICAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtdGV4dC1zY2FsZS12YWx1ZSc6IE1hdGgubWluKFxuICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAgICAgICBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgnOiBjYWxjdWxhdGVkRGltZW5zaW9uLncsXG4gICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtaGVpZ2h0JzogY2FsY3VsYXRlZERpbWVuc2lvbi5oLFxuICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi55LFxuICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWxlZnQnOiBjYWxjdWxhdGVkUG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24nOiB0ZXh0Um90YXRpb24sXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIEBzZWxlY3RwbGFjZT0keyhzZWxlY3RQbGFjZUV2ZW50OiBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4pID0+XG4gICAgICAgICAgICAgIHRoaXMuX29uU2VsZWN0UGxhY2Uoc2VsZWN0UGxhY2VFdmVudCl9XG4gICAgICAgICAgICBleHBvcnRwYXJ0cz1cInNiYi1zci1wbGFjZS1wYXJ0XCJcbiAgICAgICAgICAgIGlkPSR7cGxhY2VJZH1cbiAgICAgICAgICAgIGNsYXNzPVwic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sXCJcbiAgICAgICAgICAgIHRleHQ9JHtwbGFjZS5udW1iZXJ9XG4gICAgICAgICAgICB0eXBlPSR7cGxhY2UudHlwZX1cbiAgICAgICAgICAgIHN0YXRlPSR7cGxhY2Uuc3RhdGV9XG4gICAgICAgICAgICBjb2FjaC1pbmRleD0ke2NvYWNoSW5kZXh9XG4gICAgICAgICAgICBkZWNrLWluZGV4PSR7cGxhY2VDb2FjaERlY2tJbmRleH1cbiAgICAgICAgICAgIGRhdGEtZGVjay1pbmRleD0ke2RlY2tJbmRleH1cbiAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz0ke3BsYWNlLnByb3BlcnR5SWRzfVxuICAgICAgICAgICAgLnByZXZlbnRDbGljaz0ke3RoaXMucHJldmVudFBsYWNlQ2xpY2t9XG4gICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbD5cbiAgICAgICAgPC90ZD5cbiAgICAgIGA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZEdyYXBoaWNhbEVsZW1lbnRzKFxuICAgIGdyYXBoaWNhbEVsZW1lbnRzOiBCYXNlRWxlbWVudFtdLFxuICAgIGNvYWNoRGltZW5zaW9uOiBFbGVtZW50RGltZW5zaW9uLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICApOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgaWYgKCFncmFwaGljYWxFbGVtZW50cykgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gZ3JhcGhpY2FsRWxlbWVudHM/Lm1hcCgoZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGljb24gPSBncmFwaGljYWxFbGVtZW50Lmljb24gPz8gJyc7XG4gICAgICBjb25zdCBlbGVtZW50Um90YXRpb24gPSBncmFwaGljYWxFbGVtZW50LnJvdGF0aW9uIHx8IDA7XG4gICAgICBjb25zdCBpc05vdEZpeGVkUm90YXRpb25HcmFwaGljYWxFbGVtZW50ID1cbiAgICAgICAgdGhpcy5fbm90Rml4ZWRSb3RhdGFibGVBcmVhSWNvbnMuaW5kZXhPZihncmFwaGljYWxFbGVtZW50Lmljb24hKSA9PT0gLTE7XG4gICAgICBjb25zdCBlbGVtZW50Rml4ZWRSb3RhdGlvbiA9XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbCAmJiBpc05vdEZpeGVkUm90YXRpb25HcmFwaGljYWxFbGVtZW50XG4gICAgICAgICAgPyBlbGVtZW50Um90YXRpb24gLSA5MFxuICAgICAgICAgIDogZWxlbWVudFJvdGF0aW9uO1xuXG4gICAgICAvL2NoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGFuIGFyZWEgZWxlbWVudCwgc2luY2UgdGhpcyBlbGVtZW50IGlzIGRyYXduIHdpdGhvdXQgYW4gYXJlYSBjb21wb25lbnRcbiAgICAgIGlmICh0aGlzLl9ub3RBcmVhRWxlbWVudHMuZmluZEluZGV4KChub3RBcmVhRWxlbWVudCkgPT4gbm90QXJlYUVsZW1lbnQgPT09IGljb24pID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFJlbmRlckVsZW1lbnRXaXRob3V0QXJlYShncmFwaGljYWxFbGVtZW50LCBlbGVtZW50Um90YXRpb24sIGNvYWNoRGltZW5zaW9uKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9nZXRSZW5kZXJFbGVtZW50V2l0aEFyZWEoXG4gICAgICAgIGdyYXBoaWNhbEVsZW1lbnQsXG4gICAgICAgIGVsZW1lbnRGaXhlZFJvdGF0aW9uLFxuICAgICAgICBjb2FjaERpbWVuc2lvbixcbiAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgY29hY2hEZWNrSW5kZXgsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZXMgYSByZW5kZXJlZCBlbGVtZW50IHdpdGggYW4gYXJlYSBjb21wb25lbnRcbiAgICogQHBhcmFtIGdyYXBoaWNhbEVsZW1lbnRcbiAgICogQHBhcmFtIHJvdGF0aW9uXG4gICAqIEBwYXJhbSBjb2FjaERpbWVuc2lvblxuICAgKiBAcGFyYW0gY29hY2hJbmRleCB1c2VkIHRvIGdlbmVyYXRlIGEgdW5pcXVlIGlkIGZvciB0aGUgcG9wb3ZlciB0cmlnZ2VyXG4gICAqIEBwYXJhbSBjb2FjaERlY2tJbmRleCB1c2VkIHRvIGdlbmVyYXRlIGEgdW5pcXVlIGlkXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9nZXRSZW5kZXJFbGVtZW50V2l0aEFyZWEoXG4gICAgZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQsXG4gICAgcm90YXRpb246IG51bWJlcixcbiAgICBjb2FjaERpbWVuc2lvbjogRWxlbWVudERpbWVuc2lvbixcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIGZvciBUQUJMRSwgd2UgdXNlIHRoZSBhcmVhIGNvbXBvbmVudCBpdHNlbGYgdG8gZGlzcGxheSB0aGUgdGFibGUgaW5zdGVhZCBvZiB0aGUgU1ZHIGdyYXBoaWMuXG4gICAgLy8gRHVlIHRvIGRpZmZlcmVudCBoZWlnaHRzIGFuZCB3aWR0aHMsIGl0IHdvdWxkbid0IHNob3cgY29ycmVjdGx5LiBUbyBjb3JyZWN0IHRoaXMsIHdlIHdvdWxkXG4gICAgLy8gbmVlZCBkaWZmaWN1bHQgY2FsY3VsYXRpb25zIGZvciBwb3NpdGlvbiwgcm90YXRpb24gYW5kIGRpbWVuc2lvbi5cbiAgICBjb25zdCBpc05vdFRhYmxlR3JhcGhpYyA9IGdyYXBoaWNhbEVsZW1lbnQuaWNvbj8uaW5kZXhPZignVEFCTEUnKSA9PT0gLTE7XG4gICAgY29uc3QgYXJlYVByb3BlcnR5ID0gZ3JhcGhpY2FsRWxlbWVudC5pY29uICYmIGlzTm90VGFibGVHcmFwaGljID8gZ3JhcGhpY2FsRWxlbWVudC5pY29uIDogbnVsbDtcbiAgICBjb25zdCBzdHJldGNoSGVpZ2h0ID1cbiAgICAgIHRoaXMuaXNFbGVtZW50RGlyZWN0bHlPbkJvcmRlcihncmFwaGljYWxFbGVtZW50LCBjb2FjaERpbWVuc2lvbikgJiZcbiAgICAgIGFyZWFQcm9wZXJ0eSAhPT0gJ0VOVFJZX0VYSVQnO1xuICAgIGNvbnN0IGFyaWFMYWJlbEZvckFyZWEgPSBncmFwaGljYWxFbGVtZW50Lmljb25cbiAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihncmFwaGljYWxFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICA6IG5vdGhpbmc7XG5cbiAgICBjb25zdCBjYWxjdWxhdGVkRGltZW5zaW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5kaW1lbnNpb24sXG4gICAgICBjb2FjaERpbWVuc2lvbixcbiAgICAgIHRydWUsXG4gICAgICBzdHJldGNoSGVpZ2h0LFxuICAgICk7XG5cbiAgICBjb25zdCBjYWxjdWxhdGVkUG9zaXRpb24gPSB0aGlzLmdldENhbGN1bGF0ZWRQb3NpdGlvbihcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQucG9zaXRpb24sXG4gICAgICBncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbixcbiAgICAgIGNvYWNoRGltZW5zaW9uLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuXG4gICAgLy9nZW5lcmF0ZSB1bmlxdWUgaW5kZXggbnVtYmVyIGZvciB0aGUgdHJpZ2dlciBlbGVtZW50XG4gICAgY29uc3QgdHJpZ2dlcklkID0gYHBvcG92ZXItdHJpZ2dlci0ke2NvYWNoRGVja0luZGV4fS0ke2NvYWNoSW5kZXh9LSR7Y2FsY3VsYXRlZFBvc2l0aW9uLnh9LSR7Y2FsY3VsYXRlZFBvc2l0aW9uLnl9YDtcbiAgICBsZXQgZWxlbWVudE1vdW50aW5nID0gJ2ZyZWUnO1xuXG4gICAgaWYgKGdyYXBoaWNhbEVsZW1lbnQucG9zaXRpb24ueSA9PT0gdGhpcy5jb2FjaEJvcmRlck9mZnNldCAqIC0xKSB7XG4gICAgICBlbGVtZW50TW91bnRpbmcgPSAndXBwZXItYm9yZGVyJztcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbi55ICsgZ3JhcGhpY2FsRWxlbWVudC5kaW1lbnNpb24uaCA9PT1cbiAgICAgIGNvYWNoRGltZW5zaW9uLmggKyB0aGlzLmNvYWNoQm9yZGVyT2Zmc2V0XG4gICAgKSB7XG4gICAgICBlbGVtZW50TW91bnRpbmcgPSAnbG93ZXItYm9yZGVyJztcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhXG4gICAgICAgIGlkPVwiJHt0cmlnZ2VySWR9XCJcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ3NiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtLWN1cnNvci1wb2ludGVyJzogYXJlYVByb3BlcnR5ICE9PSBudWxsIH0pfVwiXG4gICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtd2lkdGgnOiBjYWxjdWxhdGVkRGltZW5zaW9uLncsXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1oZWlnaHQnOiBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS10b3AnOiBjYWxjdWxhdGVkUG9zaXRpb24ueSxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLWxlZnQnOiBjYWxjdWxhdGVkUG9zaXRpb24ueCxcbiAgICAgICAgfSl9XG4gICAgICAgIG1vdW50aW5nPSR7ZWxlbWVudE1vdW50aW5nfVxuICAgICAgICBiYWNrZ3JvdW5kPVwiZGFya1wiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgICR7YXJlYVByb3BlcnR5XG4gICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtd2lkdGgnOiBjYWxjdWxhdGVkRGltZW5zaW9uLncsXG4gICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCc6IHRoaXMuYmFzZUdyaWRTaXplLFxuICAgICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIG5hbWU9JHthcmVhUHJvcGVydHl9XG4gICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG8td2lkdGhcIlxuICAgICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICAgICAgYFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYT5cbiAgICAgICR7YXJlYVByb3BlcnR5ID8gdGhpcy5fcG9wb3Zlcih0cmlnZ2VySWQsIGFyaWFMYWJlbEZvckFyZWEpIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyRWxlbWVudFdpdGhvdXRBcmVhKFxuICAgIGdyYXBoaWNhbEVsZW1lbnQ6IEJhc2VFbGVtZW50LFxuICAgIHJvdGF0aW9uOiBudW1iZXIsXG4gICAgY29hY2hEaW1lbnNpb246IEVsZW1lbnREaW1lbnNpb24sXG4gICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjYWxjdWxhdGVkRGltZW5zaW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5kaW1lbnNpb24sXG4gICAgICBjb2FjaERpbWVuc2lvbixcbiAgICApO1xuICAgIGNvbnN0IGNhbGN1bGF0ZWRQb3NpdGlvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZFBvc2l0aW9uKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbixcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgY29hY2hEaW1lbnNpb24sXG4gICAgKTtcblxuICAgIC8vIElmIHRoZSBpY29uIGlzIHRoZSBkcml2ZXIgYXJlYSwgdGhlbiBoZXJlIGNvbmNhdCB0aGUgdmVoaWNsZSB0eXBlIHRvIGdldCB0aGUgcmlnaHQgdmVoaWNsZSBjaGFzc2llIGljb25cbiAgICBjb25zdCBpY29uID1cbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuaWNvbiAmJiBncmFwaGljYWxFbGVtZW50Lmljb24uaW5kZXhPZignRFJJVkVSX0FSRUEnKSA9PT0gLTFcbiAgICAgICAgPyBncmFwaGljYWxFbGVtZW50Lmljb25cbiAgICAgICAgOiBncmFwaGljYWxFbGVtZW50Lmljb24/LmNvbmNhdChcbiAgICAgICAgICAgICdfJyxcbiAgICAgICAgICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uc1t0aGlzLmN1cnJTZWxlY3RlZERlY2tJbmRleF0udmVoaWNsZVR5cGUsXG4gICAgICAgICAgKTtcblxuICAgIHJldHVybiBodG1sYCA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnOiBjYWxjdWxhdGVkRGltZW5zaW9uLncsXG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogY2FsY3VsYXRlZERpbWVuc2lvbi5oLFxuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi55LFxuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWxlZnQnOiBjYWxjdWxhdGVkUG9zaXRpb24ueCxcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1wb3NpdGlvbic6ICdhYnNvbHV0ZScsXG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiByb3RhdGlvbixcbiAgICAgIH0pfVxuICAgICAgbmFtZT0ke2ljb24gPz8gbm90aGluZ31cbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRTZXJ2aWNlRWxlbWVudHMoXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICAgc2VydmljZUVsZW1lbnRzPzogQmFzZUVsZW1lbnRbXSxcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGlmICghc2VydmljZUVsZW1lbnRzKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBzZXJ2aWNlRWxlbWVudHM/Lm1hcCgoc2VydmljZUVsZW1lbnQ6IEJhc2VFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCB0aXRsZURlc2NyaXB0aW9uID0gc2VydmljZUVsZW1lbnQuaWNvblxuICAgICAgICA/IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oc2VydmljZUVsZW1lbnQuaWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgOiBudWxsO1xuICAgICAgY29uc3QgY2FsY3VsYXRlZERpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihzZXJ2aWNlRWxlbWVudC5kaW1lbnNpb24pO1xuICAgICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oc2VydmljZUVsZW1lbnQucG9zaXRpb24pO1xuICAgICAgY29uc3QgZWxlbWVudFJvdGF0aW9uID0gc2VydmljZUVsZW1lbnQucm90YXRpb24gfHwgMDtcbiAgICAgIGNvbnN0IGVsZW1lbnRGaXhlZFJvdGF0aW9uID0gdGhpcy5hbGlnblZlcnRpY2FsID8gZWxlbWVudFJvdGF0aW9uIC0gOTAgOiBlbGVtZW50Um90YXRpb247XG5cbiAgICAgIC8vZ2VuZXJhdGUgdW5pcXVlIGluZGV4IG51bWJlciBmb3IgdGhlIHRyaWdnZXIgZWxlbWVudFxuICAgICAgY29uc3QgdHJpZ2dlcklkID0gYHBvcG92ZXItdHJpZ2dlci0ke2NvYWNoRGVja0luZGV4fS0ke2NvYWNoSW5kZXh9LSR7Y2FsY3VsYXRlZFBvc2l0aW9uLnh9LSR7Y2FsY3VsYXRlZFBvc2l0aW9uLnl9YDtcblxuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgaWQ9XCIke3RyaWdnZXJJZH1cIlxuICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogY2FsY3VsYXRlZERpbWVuc2lvbi5oLFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy10b3AnOiBjYWxjdWxhdGVkUG9zaXRpb24ueSxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi54LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1wb3NpdGlvbic6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uJzogZWxlbWVudEZpeGVkUm90YXRpb24sXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLS1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgbmFtZT0ke3NlcnZpY2VFbGVtZW50Lmljb24gPz8gbm90aGluZ31cbiAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICAke3RoaXMuX3BvcG92ZXIodHJpZ2dlcklkLCB0aXRsZURlc2NyaXB0aW9uKX1cbiAgICAgIGA7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFuYWdlcyB0aGUgc2VsZWN0ZWQgcGxhY2UgZXZlbnQgdHJpZ2dlcmVkIGZyb20gdGhlIHBsYWNlXG4gICAqIEVhY2ggc2VsZWN0aW9uIGVtaXRzIGFuIGFycmF5IG9mIGFsbCBzZWxlY3RlZCBwbGFjZXNcbiAgICogQHBhcmFtIHNlbGVjdFBsYWNlRXZlbnRcbiAgICovXG4gIHByaXZhdGUgX29uU2VsZWN0UGxhY2Uoc2VsZWN0UGxhY2VFdmVudDogQ3VzdG9tRXZlbnQ8UGxhY2VTZWxlY3Rpb24+KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZSA9IHNlbGVjdFBsYWNlRXZlbnQuZGV0YWlsO1xuICAgIC8vIFdlIGhhdmUgdG8gc2V0IHByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayB0byB0cnVlLCB0byBwcmV2ZW50IGF1dG9tYXRpYyBzY3JvbGxpbmcgdG8gdGhlIG5ldyBmb2N1c2VkIHBsYWNlXG4gICAgdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2sgPSB0cnVlO1xuICAgIHRoaXMuaXNDb2FjaEdyaWRGb2N1c2FibGUgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5wcmV2ZW50UGxhY2VDbGljaykge1xuICAgICAgLy8gQWRkIHBsYWNlIHRvIHBsYWNlIGNvbGxlY3Rpb25cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMoc2VsZWN0ZWRQbGFjZSk7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZFBsYWNlSW5Db2FjaChzZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdE5hdkNvYWNoKGV2ZW50OiBDdXN0b21FdmVudDxudW1iZXI+KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWROYXZDb2FjaEluZGV4ID0gZXZlbnQuZGV0YWlsO1xuICAgIHRoaXMuaXNLZXlib2FyZE5hdmlnYXRpb24gPSBmYWxzZTtcblxuICAgIGlmIChzZWxlY3RlZE5hdkNvYWNoSW5kZXggIT09IG51bGwgJiYgc2VsZWN0ZWROYXZDb2FjaEluZGV4ICE9PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMudW5mb2N1c1BsYWNlRWxlbWVudCgpO1xuICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkTmF2Q29hY2goc2VsZWN0ZWROYXZDb2FjaEluZGV4KTtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkTmF2Q29hY2hJbmRleCA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4KSB7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZENvYWNoKCk7XG4gICAgICB0aGlzLnByZXNlbGVjdFBsYWNlSW5Db2FjaCgpO1xuICAgIH1cblxuICAgIC8vY2xvc2UgYWxsIG9wZW5lZCBwb3BvdmVyc1xuICAgIHRoaXMuX2Nsb3NlUG9wb3ZlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Gb2N1c05hdkNvYWNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2spIHtcbiAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNQbGFjZUVsZW1lbnQodGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSk7XG4gICAgfVxuICAgIHRoaXMuaXNBdXRvU2Nyb2xsaW5nID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBvcG92ZXIgZm9yIGV4dHJhIHNlcnZpY2UgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHRyaWdnZXJJZFxuICAgKiBAcGFyYW0gcG9wb3ZlckNvbnRlbnRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX3BvcG92ZXIoXG4gICAgdHJpZ2dlcklkOiBzdHJpbmcsXG4gICAgcG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IG51bGwgfCB0eXBlb2Ygbm90aGluZyxcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1wb3BvdmVyIHRyaWdnZXI9XCIke3RyaWdnZXJJZH1cIiBob3Zlci10cmlnZ2VyPVwiXCI+XG4gICAgICAgIDxwIGNsYXNzPVwic2JiLXRleHQtcyBzYmItc3ItcG9wb3ZlclwiPiR7cG9wb3ZlckNvbnRlbnR9PC9wPlxuICAgICAgPC9zYmItcG9wb3Zlcj5cbiAgICBgO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXIgdG8gY2xvc2UgYWxsIG9wZW5lZCBwb3BvdmVycyAobm9ybWFsbHkgb25seSBvbmUgaXMgb3BlbmVkIGF0IGEgdGltZSlcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2Nsb3NlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3RcbiAgICAgID8ucXVlcnlTZWxlY3RvckFsbCgnc2JiLXBvcG92ZXJbZGF0YS1zdGF0ZT1cIm9wZW5lZFwiXScpXG4gICAgICAuZm9yRWFjaCgocG9wb3ZlcikgPT4gcG9wb3Zlci5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCAnY2xvc2VkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGVzY3JpcHRpb25UYWJsZUNvYWNoKGNvYWNoSXRlbTogQ29hY2hJdGVtKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvYWNoSXRlbS5wbGFjZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0JMT0NLRURfVEFCTEVfQ0FQVElPTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgY29hY2hJdGVtLmlkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgbGV0IHRhYmxlQ29hY2hEZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGNvbnN0IGFyZWFEZXNjcmlwdGlvbnMgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhjb2FjaEl0ZW0uZ3JhcGhpY0VsZW1lbnRzISk7XG4gICAgY29uc3Qgc2VydmljZURlc2NyaXB0aW9ucyA9IHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25MaXN0U3RyaW5nKGNvYWNoSXRlbS5zZXJ2aWNlRWxlbWVudHMhKTtcblxuICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX1RBQkxFX0NBUFRJT04nLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICBjb2FjaEl0ZW0uaWQsXG4gICAgXSk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTmF2aWdhdGlvbikge1xuICAgICAgLy8gRXhwYW5kcyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzZWF0cyBhbmQgYmljeWNsZSBzcGFjZXMgYXMgaW5mb1xuICAgICAgY29uc3QgZnJlZVBsYWNlcyA9IHRoaXMuZ2V0QXZhaWxhYmxlRnJlZVBsYWNlc051bUZyb21Db2FjaChjb2FjaEl0ZW0ucGxhY2VzKTtcbiAgICAgIGNvbnN0IGZyZWVQbGFjZXNUeHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAnQ09BQ0hfQVZBSUxBQkxFX05VTUJFUl9PRl9QTEFDRVMnLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICBbZnJlZVBsYWNlcy5zZWF0cywgZnJlZVBsYWNlcy5iaWN5Y2xlc10sXG4gICAgICApO1xuICAgICAgdGFibGVDb2FjaERlc2NyaXB0aW9uID0gdGFibGVDb2FjaERlc2NyaXB0aW9uLmNvbmNhdCgnLiAnKS5jb25jYXQoZnJlZVBsYWNlc1R4dCkuY29uY2F0KCcuICcpO1xuICAgIH1cblxuICAgIGlmICghIWFyZWFEZXNjcmlwdGlvbnMgfHwgISFzZXJ2aWNlRGVzY3JpcHRpb25zKSB7XG4gICAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gKz1cbiAgICAgICAgJy4gJyArIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiArPSBzZXJ2aWNlRGVzY3JpcHRpb25zICsgJywgJyArIGFyZWFEZXNjcmlwdGlvbnMgKyAnLic7XG4gICAgfVxuICAgIHJldHVybiB0YWJsZUNvYWNoRGVzY3JpcHRpb247XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhkZXNjcmlwdGlvbnNFbGVtZW50czogQmFzZUVsZW1lbnRbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdW5pcXVlRGVzY3JpcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uc0VsZW1lbnRzXG4gICAgICA/Lm1hcCgoZGVzY3JpcHRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGljb24gPSBkZXNjcmlwdGlvbkVsZW1lbnQuaWNvbjtcbiAgICAgICAgaWYgKCFpY29uKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkFscmVheUV4aXN0ID0gdW5pcXVlRGVzY3JpcHRpb25zLmluZGV4T2YoaWNvbikgPiAtMTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISxcbiAgICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBpc1ZhbGlkRGVzY3JpcHRpb24gPVxuICAgICAgICAgIHRoaXMuX25vdEZpeGVkUm90YXRhYmxlQXJlYUljb25zLmluZGV4T2YoaWNvbikgPT09IC0xICYmXG4gICAgICAgICAgdGhpcy5fbm90QXJlYUVsZW1lbnRzLmluZGV4T2YoaWNvbikgPT09IC0xO1xuXG4gICAgICAgIGlmICghZGVzY3JpcHRpb25BbHJlYXlFeGlzdCkge1xuICAgICAgICAgIHVuaXF1ZURlc2NyaXB0aW9ucy5wdXNoKGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhdHJhbnNsYXRpb24gJiYgIWRlc2NyaXB0aW9uQWxyZWF5RXhpc3QgJiYgaXNWYWxpZERlc2NyaXB0aW9uID8gdHJhbnNsYXRpb24gOiBudWxsO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGRlc2NyaXB0aW9uKSA9PiAhIWRlc2NyaXB0aW9uKVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uJzogU2JiU2VhdFJlc2VydmF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBcUNNLDZCQUF5QixNQUFBOzswQkFEOUIs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
935
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3BvcG92ZXIuanMnO1xuaW1wb3J0IHsgaHRtbCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvYWNoSXRlbSxcbiAgUGxhY2UsXG4gIEVsZW1lbnREaW1lbnNpb24sXG4gIEJhc2VFbGVtZW50LFxuICBQbGFjZVNlbGVjdGlvbixcbiAgU2VhdFJlc2VydmF0aW9uLFxuICBOYXZpZ2F0aW9uQ29hY2hJdGVtLFxufSBmcm9tICcuLi9jb21tb24udHMnO1xuXG5pbXBvcnQgeyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1iYXNlLWVsZW1lbnQudHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2J1dHRvbi5qcyc7XG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3BvcG92ZXIuanMnO1xuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLWFyZWEudHMnO1xuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMudHMnO1xuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wudHMnO1xuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gudHMnO1xuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC50cyc7XG5cbi8qKlxuICogTWFpbiBjb21wb25lbnQgZm9yIHRoZSBzZWF0IHJlc2VydmF0aW9uLlxuICpcbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlYXQtcmVzZXJ2YXRpb24nKVxuY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uRWxlbWVudCBleHRlbmRzIFNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfY29hY2hlc0h0bWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVzdWx0O1xuICAvLyBHcmFwaGljcyB0aGF0IHNob3VsZCBub3QgYmUgcmVuZGVyZWQgd2l0aCBhbiBhcmVhXG4gIHByaXZhdGUgX25vdEFyZWFFbGVtZW50cyA9IFtcbiAgICAnRFJJVkVSX0FSRUEnLFxuICAgICdDT0FDSF9QQVNTQUdFJyxcbiAgICAnQ09BQ0hfV0FMTF9OT19QQVNTQUdFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRScsXG4gICAgJ0NPTVBBUlRNRU5UX1BBU1NBR0VfSElHSCcsXG4gICAgJ0NPTVBBUlRNRU5UX1BBU1NBR0VfTUlERExFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRV9MT1cnLFxuICBdO1xuXG4gIC8vIEFyZWEgaWNvbnMgdGhhdCBzaG91bGQgbm90IGJlIGZpeGVkIGR1cmluZyByb3RhdGlvbiB3aGVuIHZlcnRpY2FsIG1vZGUgaXMgc2VsZWN0ZWRcbiAgcHJpdmF0ZSBfbm90Rml4ZWRSb3RhdGFibGVBcmVhSWNvbnMgPSBbJ0VOVFJZX0VYSVQnXTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2hhc05hdmlnYXRpb24nKSkge1xuICAgICAgaWYgKHRoaXMuaGFzTmF2aWdhdGlvbikge1xuICAgICAgICB0aGlzLnNoYWRvd1Jvb3RcbiAgICAgICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlJylcbiAgICAgICAgICAuZm9yRWFjaCgodGFibGUpID0+IHRhYmxlLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNoYWRvd1Jvb3RcbiAgICAgICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlJylcbiAgICAgICAgICAuZm9yRWFjaCgodGFibGUpID0+IHRhYmxlLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvLyBXZSBuZWVkIHRvIHdhaXQgdW50aWwgdGhlIGZpcnN0IHVwZGF0ZSBpcyBjb21wbGV0ZSB0byBpbml0IGRpZmZlcmVudCBodG1sIGVsZW1lbnQgZGltZW5zaW9uc1xuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmluaXROYXZpZ2F0aW9uU2VsZWN0aW9uQnlTY3JvbGxFdmVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIHRoaXMuX2luaXRWZWhpY2xlU2VhdFJlc2VydmF0aW9uQ29uc3RydWN0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMuX2NvYWNoZXNIdG1sVGVtcGxhdGUgfHwgbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRWZWhpY2xlU2VhdFJlc2VydmF0aW9uQ29uc3RydWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvYWNoZXNIdG1sVGVtcGxhdGUgPSBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zcl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3Igc2JiLXNyX19ncmlkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLWZpcnN0LWdyaWRcIj5cbiAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oJ0RJUkVDVElPTl9MRUZUJyl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzYmItc3JfX2NvbXBvbmVudFwiXG4gICAgICAgICAgICBAa2V5ZG93bj0keyhldnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuaGFuZGxlS2V5Ym9hcmRFdmVudChldnQpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3ItZ3JpZC1pbm5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWdyaWRcIj4ke3RoaXMuX3JlbmRlck5hdmlnYXRpb24oKX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvYWNoZXMtZ3JpZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXItY29hY2gtZGVja3NcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXItZGVjay1sYWJlbHNcIj4ke3RoaXMuX3JlbmRlckRlY2tMYWJlbHMoKX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzYmItc3JfX3dyYXBwZXItc2Nyb2xsYXJlYVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXNyX193cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgQHNjcm9sbD0keygpID0+IHRoaXMuY29hY2hBcmVhU2Nyb2xsZW5kKCl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzYmItc3JfX3BhcmVudC1hcmVhXCIgY2xhc3M9XCJzYmItc3JfX3BhcmVudFwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzYmItc3JfX2xpc3QtZGVja3MnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2JiLXNyX19saXN0LWRlY2tzLS1nYXAnOiB0aGlzLmhhc011bHRpcGxlRGVja3MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZWF0UmVzZXJ2YXRpb25zPy5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzZWF0UmVzZXJ2YXRpb246IFNlYXRSZXNlcnZhdGlvbiwgY29hY2hEZWNrSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sYDxsaSBjbGFzcz1cInNiYi1zcl9fbGlzdC1pdGVtLWRlY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNiYi1zcl9fbGlzdC1jb2FjaGVzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlckNvYWNoZXMoc2VhdFJlc2VydmF0aW9uLCBjb2FjaERlY2tJbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24tbGFzdC1ncmlkXCI+XG4gICAgICAgICAgICAke3RoaXMuX3JlbmRlck5hdmlnYXRpb25Db250cm9sQnV0dG9uKCdESVJFQ1RJT05fUklHSFQnKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyRGVja0xhYmVscygpOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmhhc011bHRpcGxlRGVja3MpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXMuc2VhdFJlc2VydmF0aW9ucy5tYXAoKHNlYXRSZXNlcnZhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZGVja0Rlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgc2VhdFJlc2VydmF0aW9uLmRlY2tDb2FjaExldmVsLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybiBodG1sYDxiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7ZGVja0Rlc2NyaXB0aW9ufTwvYj5gO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oYnRuRGlyZWN0aW9uOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uIHx8ICF0aGlzLnNlYXRSZXNlcnZhdGlvbnMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgYnRuSWQgPSBidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9SSUdIVCcgPyAnbGFzdC10YWItZWxlbWVudCcgOiAnZmlyc3QtdGFiLWVsZW1lbnQnO1xuICAgIGNvbnN0IGJ0bkljb24gPVxuICAgICAgYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fUklHSFQnID8gJ2NoZXZyb24tc21hbGwtcmlnaHQtc21hbGwnIDogJ2NoZXZyb24tc21hbGwtbGVmdC1zbWFsbCc7XG4gICAgY29uc3QgYnRuQXJpYURlc2NyaXB0aW9uID1cbiAgICAgIGJ0bkRpcmVjdGlvbiA9PSAnRElSRUNUSU9OX1JJR0hUJ1xuICAgICAgICA/IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1NFQVRfUkVTRVJWQVRJT05fRU5EJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgOiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdTRUFUX1JFU0VSVkFUSU9OX0JFR0lOJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCk7XG4gICAgbGV0IGJ0bkRpc2FibGVkID0gdHJ1ZTtcblxuICAgIGlmIChidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9MRUZUJyAmJiB0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA+IDApIHtcbiAgICAgIGJ0bkRpc2FibGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGJ0bkRpcmVjdGlvbiA9PSAnRElSRUNUSU9OX1JJR0hUJyAmJlxuICAgICAgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPFxuICAgICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvbnNbdGhpcy5jdXJyU2VsZWN0ZWREZWNrSW5kZXhdLmNvYWNoSXRlbXMubGVuZ3RoIC0gMVxuICAgICkge1xuICAgICAgYnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGA8c2JiLXNlY29uZGFyeS1idXR0b25cbiAgICAgIEBjbGljaz1cIiR7KCkgPT4gdGhpcy5uYXZpZ2F0ZUJ5RGlyZWN0aW9uQnRuKGJ0bkRpcmVjdGlvbil9XCJcbiAgICAgIGlkPVwiJHtidG5JZH1cIlxuICAgICAgY2xhc3M9XCJzYmItc3JfX25hdmlnYXRpb24tY29udHJvbC1idXR0b25cIlxuICAgICAgc2l6ZT1cInNcIlxuICAgICAgaWNvbi1uYW1lPVwiJHtidG5JY29ufVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtbGFiZWw9XCIke2J0bkFyaWFEZXNjcmlwdGlvbn1cIlxuICAgICAgcm9sZT1cImNvbnRlbnRpbmZvXCJcbiAgICAgIC5kaXNhYmxlZEludGVyYWN0aXZlPVwiJHtidG5EaXNhYmxlZCB8fCBub3RoaW5nfVwiXG4gICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+YDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlck5hdmlnYXRpb24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaGFzTmF2aWdhdGlvbiB8fCAhdGhpcy5zZWF0UmVzZXJ2YXRpb25zKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24td3JhcHBlclwiPlxuICAgICAgPG5hdiBpZD1cInNiYi1zci1uYXZpZ2F0aW9uXCIgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvblwiPlxuICAgICAgICA8dWxcbiAgICAgICAgICBpZD1cInNiYi1zcl9fbmF2aWdhdGlvbi1saXN0LWNvYWNoZXNcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2xpc3QtY29hY2hlc1wiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgICAgICdTRUFUX1JFU0VSVkFUSU9OX05BVklHQVRJT04nLFxuICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgICApfVwiXG4gICAgICAgID5cbiAgICAgICAgICAke3RoaXMuY29hY2hOYXZEYXRhLm1hcCgobmF2aWdhdGlvbkNvYWNoOiBOYXZpZ2F0aW9uQ29hY2hJdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaHRtbGA8bGk+XG4gICAgICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoXG4gICAgICAgICAgICAgICAgQHNlbGVjdGNvYWNoPSR7KGV2ZW50OiBDdXN0b21FdmVudDxudW1iZXI+KSA9PiB0aGlzLl9vblNlbGVjdE5hdkNvYWNoKGV2ZW50KX1cbiAgICAgICAgICAgICAgICBAZm9jdXNjb2FjaD0keygpID0+IHRoaXMuX29uRm9jdXNOYXZDb2FjaCgpfVxuICAgICAgICAgICAgICAgIGluZGV4PVwiJHtpbmRleH1cIlxuICAgICAgICAgICAgICAgIGNvYWNoLWlkPVwiJHtuYXZpZ2F0aW9uQ29hY2guaWR9XCJcbiAgICAgICAgICAgICAgICAuZnJlZVBsYWNlc0J5VHlwZT1cIiR7bmF2aWdhdGlvbkNvYWNoLmZyZWVQbGFjZXN9XCJcbiAgICAgICAgICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgICAgLmZvY3VzZWQ9JHt0aGlzLmZvY3VzZWRDb2FjaEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgICAgICAgICAuaG92ZXJlZD0ke3RoaXMuaG92ZXJlZFNjcm9sbENvYWNoSW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgICAgIC5uYXRpdmVGb2N1c0FjdGl2ZT0ke3RoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXN9XG4gICAgICAgICAgICAgICAgLnByb3BlcnR5SWRzPVwiJHtuYXZpZ2F0aW9uQ29hY2gucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgICAgICAudHJhdmVsQ2xhc3M9XCIke25hdmlnYXRpb25Db2FjaC50cmF2ZWxDbGFzc31cIlxuICAgICAgICAgICAgICAgID9kcml2ZXItYXJlYT1cIiR7bmF2aWdhdGlvbkNvYWNoLmlzRHJpdmVyQXJlYX1cIlxuICAgICAgICAgICAgICAgID9maXJzdD1cIiR7bmF2aWdhdGlvbkNvYWNoPy5kcml2ZXJBcmVhU2lkZT8ubGVmdH1cIlxuICAgICAgICAgICAgICAgID9sYXN0PVwiJHtuYXZpZ2F0aW9uQ29hY2g/LmRyaXZlckFyZWFTaWRlPy5yaWdodH1cIlxuICAgICAgICAgICAgICAgID92ZXJ0aWNhbD1cIiR7dGhpcy5hbGlnblZlcnRpY2FsfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoPlxuICAgICAgICAgICAgPC9saT5gO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9uYXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHJldHVybnNcbiAgICogQHBhcmFtIHNlYXRSZXNlcnZhdGlvblxuICAgKiBAcGFyYW0gY29hY2hEZWNrSW5kZXhcbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckNvYWNoZXMoXG4gICAgc2VhdFJlc2VydmF0aW9uOiBTZWF0UmVzZXJ2YXRpb24sXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGNvbnN0IGNvYWNoZXM6IENvYWNoSXRlbVtdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXMpKTtcblxuICAgIGlmICghY29hY2hlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjb2FjaGVzLm1hcCgoY29hY2hJdGVtOiBDb2FjaEl0ZW0sIGNvYWNoSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxsaSBjbGFzcz1cInNiYi1zcl9faXRlbS1jb2FjaFwiPlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ29hY2hFbGVtZW50KFxuICAgICAgICAgICAgY29hY2hJdGVtLFxuICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICAgIGNvYWNoRGVja0luZGV4LFxuICAgICAgICAgICAgc2VhdFJlc2VydmF0aW9uLmRlY2tDb2FjaEluZGV4LFxuICAgICAgICAgICl9XG4gICAgICAgIDwvbGk+XG4gICAgICBgO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29hY2hFbGVtZW50KFxuICAgIGNvYWNoSXRlbTogQ29hY2hJdGVtLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICAgIHBsYWNlQ29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNhbGN1bGF0ZWRDb2FjaERpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihjb2FjaEl0ZW0uZGltZW5zaW9uKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvblRhYmxlQ29hY2hXaXRoU2VydmljZXMgPSB0aGlzLl9nZXREZXNjcmlwdGlvblRhYmxlQ29hY2goY29hY2hJdGVtKTtcblxuICAgIHJldHVybiBodG1sYDxzYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWRcbiAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQtd2lkdGgnOiBjYWxjdWxhdGVkQ29hY2hEaW1lbnNpb24udyxcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLWhlaWdodCc6IGNhbGN1bGF0ZWRDb2FjaERpbWVuc2lvbi5oLFxuICAgICAgfSl9XG4gICAgPlxuICAgICAgJHt0aGlzLl9nZXRSZW5kZXJlZENvYWNoQm9yZGVycyhjb2FjaEl0ZW0pfVxuICAgICAgJHt0aGlzLl9nZXRSZW5kZXJlZEdyYXBoaWNhbEVsZW1lbnRzKFxuICAgICAgICBjb2FjaEl0ZW0uZ3JhcGhpY0VsZW1lbnRzIHx8IFtdLFxuICAgICAgICBjb2FjaEl0ZW0uZGltZW5zaW9uLFxuICAgICAgICBjb2FjaEluZGV4LFxuICAgICAgICBjb2FjaERlY2tJbmRleCxcbiAgICAgICl9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkU2VydmljZUVsZW1lbnRzKGNvYWNoSW5kZXgsIGNvYWNoRGVja0luZGV4LCBjb2FjaEl0ZW0uc2VydmljZUVsZW1lbnRzKX1cblxuICAgICAgPHRhYmxlXG4gICAgICAgIEBmb2N1cz0keygpID0+IHRoaXMub25Gb2N1c1RhYmxlQ29hY2hBbmRQcmVzZWxlY3RQbGFjZShjb2FjaEluZGV4KX1cbiAgICAgICAgaWQ9XCJzYmItc3ItY29hY2gtJHtjb2FjaEluZGV4fVwiXG4gICAgICAgIGNsYXNzPVwic2JiLXNyLWNvYWNoLXdyYXBwZXJfX3RhYmxlXCJcbiAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cInNiYi1zci1jb2FjaC1jYXB0aW9uLSR7Y29hY2hJbmRleH1cIlxuICAgICAgPlxuICAgICAgICA8Y2FwdGlvbiBpZD1cInNiYi1zci1jb2FjaC1jYXB0aW9uLSR7Y29hY2hJbmRleH1cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+JHtkZXNjcmlwdGlvblRhYmxlQ29hY2hXaXRoU2VydmljZXN9PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICA8L2NhcHRpb24+XG4gICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRSb3dQbGFjZXMoY29hY2hJdGVtLCBjb2FjaEluZGV4LCBjb2FjaERlY2tJbmRleCwgcGxhY2VDb2FjaERlY2tJbmRleCl9XG4gICAgICA8L3RhYmxlPlxuICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPmA7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgYm9yZGVyIGdyYXBoaWMgKENPQUNIX0JPUkRFUl9NSURETEUpIG9mIGEgY29hY2ggd2l0aCBjYWxjdWxhdGVkIGJvcmRlciBnYXAgYW5kIGNvYWNoIHdpZHRoLFxuICAgKiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY29hY2ggaXMgd2l0aCBhIGRyaXZlciBhcmVhIG9yIHdpdGhvdXQuXG4gICAqL1xuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvYWNoQm9yZGVycyhjb2FjaEl0ZW06IENvYWNoSXRlbSk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKCFjb2FjaEl0ZW0uZ3JhcGhpY0VsZW1lbnRzKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IENPQUNIX1BBU1NBR0VfV0lEVEggPSAxO1xuICAgIGNvbnN0IGFsbEVsZW1lbnRzID0gY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cztcbiAgICBjb25zdCBkcml2ZXJBcmVhID0gYWxsRWxlbWVudHM/LmZpbmQoKGVsZW1lbnQ6IEJhc2VFbGVtZW50KSA9PiBlbGVtZW50Lmljb24gPT09ICdEUklWRVJfQVJFQScpO1xuICAgIGNvbnN0IGJvcmRlcldpZHRoID0gZHJpdmVyQXJlYVxuICAgICAgPyBjb2FjaEl0ZW0uZGltZW5zaW9uLncgLSBkcml2ZXJBcmVhLmRpbWVuc2lvbi53IC0gQ09BQ0hfUEFTU0FHRV9XSURUSFxuICAgICAgOiBjb2FjaEl0ZW0uZGltZW5zaW9uLncgLSBDT0FDSF9QQVNTQUdFX1dJRFRIICogMjtcbiAgICBjb25zdCBib3JkZXJIZWlnaHQgPSAoY29hY2hJdGVtLmRpbWVuc2lvbi5oICsgdGhpcy5jb2FjaEJvcmRlck9mZnNldCAqIDIpICogdGhpcy5iYXNlR3JpZFNpemU7XG4gICAgY29uc3QgYm9yZGVyT2Zmc2V0WCA9XG4gICAgICBkcml2ZXJBcmVhICYmIGRyaXZlckFyZWEucG9zaXRpb24ueCA9PT0gMFxuICAgICAgICA/IGRyaXZlckFyZWE/LmRpbWVuc2lvbi53ICogdGhpcy5iYXNlR3JpZFNpemVcbiAgICAgICAgOiB0aGlzLmJhc2VHcmlkU2l6ZTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnOiBib3JkZXJXaWR0aCAqIHRoaXMuYmFzZUdyaWRTaXplLFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogYm9yZGVySGVpZ2h0LFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtdG9wJzogdGhpcy5jb2FjaEJvcmRlclBhZGRpbmcgKiAtMSxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWxlZnQnOiBib3JkZXJPZmZzZXRYLFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcG9zaXRpb24nOiAnYWJzb2x1dGUnLFxuICAgICAgICB9KX1cbiAgICAgICAgbmFtZT1cIkNPQUNIX0JPUkRFUl9NSURETEVcIlxuICAgICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRSb3dQbGFjZXMoXG4gICAgY29hY2g6IENvYWNoSXRlbSxcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBwbGFjZUNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWNvYWNoLnBsYWNlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gUHJlcGFyZSByb3dzIHdpdGggdGhlIHBsYWNlcyB0byByZW5kZXIgYSB0YWJsZVxuICAgIGNvbnN0IHRhYmxlUm93UGxhY2VzOiBSZWNvcmQ8bnVtYmVyLCBQbGFjZVtdPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcGxhY2Ugb2YgY29hY2gucGxhY2VzKSB7XG4gICAgICBpZiAoIXRhYmxlUm93UGxhY2VzW3BsYWNlLnBvc2l0aW9uLnldKSB7XG4gICAgICAgIHRhYmxlUm93UGxhY2VzW3BsYWNlLnBvc2l0aW9uLnldID0gW3BsYWNlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYmxlUm93UGxhY2VzW3BsYWNlLnBvc2l0aW9uLnldLnB1c2gocGxhY2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRhYmxlUm93UGxhY2VzKVxuICAgICAgLm1hcCgocm93UGxhY2VzOiBQbGFjZVtdLCBpbmRleCkgPT4ge1xuICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICA8dHIgaWQ9XCJyb3ctJHtjb2FjaEluZGV4fS0ke3Jvd1BsYWNlc1swXS5wb3NpdGlvbi55fVwiIGRhdGEtcm93LWluZGV4PSR7aW5kZXh9PlxuICAgICAgICAgICAgJHt0aGlzLl9nZXRSZW5kZXJlZENvbHVtblBsYWNlcyhcbiAgICAgICAgICAgICAgcm93UGxhY2VzLFxuICAgICAgICAgICAgICBjb2FjaEluZGV4LFxuICAgICAgICAgICAgICBjb2FjaERlY2tJbmRleCxcbiAgICAgICAgICAgICAgcGxhY2VDb2FjaERlY2tJbmRleCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgYDtcbiAgICAgIH0pXG4gICAgICAuZmxhdE1hcCgocm93VGVtcGxhdGUpID0+IHJvd1RlbXBsYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkQ29sdW1uUGxhY2VzKFxuICAgIHBsYWNlczogUGxhY2VbXSxcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgZGVja0luZGV4OiBudW1iZXIsXG4gICAgcGxhY2VDb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICApOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgLy9Tb3J0cyBlYWNoIHBsYWNlIGJ5IGl0cyBhc2NlbmRpbmcgeCBjb29yZGluYXRlXG4gICAgcGxhY2VzLnNvcnQoXG4gICAgICAocGxhY2VBOiBQbGFjZSwgcGxhY2VCOiBQbGFjZSkgPT4gTnVtYmVyKHBsYWNlQS5wb3NpdGlvbi54KSAtIE51bWJlcihwbGFjZUIucG9zaXRpb24ueCksXG4gICAgKTtcblxuICAgIHJldHVybiBwbGFjZXM/Lm1hcCgocGxhY2U6IFBsYWNlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkRGltZW5zaW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKHBsYWNlLmRpbWVuc2lvbik7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkUG9zaXRpb24gPSB0aGlzLmdldENhbGN1bGF0ZWRQb3NpdGlvbihwbGFjZS5wb3NpdGlvbik7XG4gICAgICBjb25zdCByb3RhdGlvbiA9IHBsYWNlLnJvdGF0aW9uIHx8IDA7XG4gICAgICBjb25zdCB0ZXh0Um90YXRpb24gPSB0aGlzLmFsaWduVmVydGljYWwgPyAtOTAgOiAwO1xuICAgICAgY29uc3QgcGxhY2VJZCA9IHRoaXMuZ2V0UGxhY2VFbGVtZW50SWQoZGVja0luZGV4LCBjb2FjaEluZGV4LCBwbGFjZS5udW1iZXIpO1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDx0ZFxuICAgICAgICAgIGlkPVwiY2VsbC0ke2RlY2tJbmRleH0tJHtjb2FjaEluZGV4fS0ke3BsYWNlLnBvc2l0aW9uLnl9LSR7aW5kZXh9XCJcbiAgICAgICAgICBjbGFzcz1cImdyYXBoaWNhbC1lbGVtZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sXG4gICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlJzogTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgY2FsY3VsYXRlZERpbWVuc2lvbi53LFxuICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWREaW1lbnNpb24uaCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC13aWR0aCc6IGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnOiBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtdG9wJzogY2FsY3VsYXRlZFBvc2l0aW9uLnksXG4gICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtbGVmdCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi54LFxuICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXJvdGF0aW9uJzogcm90YXRpb24sXG4gICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtdGV4dC1yb3RhdGlvbic6IHRleHRSb3RhdGlvbixcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgQHNlbGVjdHBsYWNlPSR7KHNlbGVjdFBsYWNlRXZlbnQ6IEN1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPikgPT5cbiAgICAgICAgICAgICAgdGhpcy5fb25TZWxlY3RQbGFjZShzZWxlY3RQbGFjZUV2ZW50KX1cbiAgICAgICAgICAgIGV4cG9ydHBhcnRzPVwic2JiLXNyLXBsYWNlLXBhcnRcIlxuICAgICAgICAgICAgaWQ9JHtwbGFjZUlkfVxuICAgICAgICAgICAgY2xhc3M9XCJzZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2xcIlxuICAgICAgICAgICAgdGV4dD0ke3BsYWNlLm51bWJlcn1cbiAgICAgICAgICAgIHR5cGU9JHtwbGFjZS50eXBlfVxuICAgICAgICAgICAgc3RhdGU9JHtwbGFjZS5zdGF0ZX1cbiAgICAgICAgICAgIGNvYWNoLWluZGV4PSR7Y29hY2hJbmRleH1cbiAgICAgICAgICAgIGRlY2staW5kZXg9JHtwbGFjZUNvYWNoRGVja0luZGV4fVxuICAgICAgICAgICAgZGF0YS1kZWNrLWluZGV4PSR7ZGVja0luZGV4fVxuICAgICAgICAgICAgLnByb3BlcnR5SWRzPSR7cGxhY2UucHJvcGVydHlJZHN9XG4gICAgICAgICAgICAucHJldmVudENsaWNrPSR7dGhpcy5wcmV2ZW50UGxhY2VDbGlja31cbiAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sPlxuICAgICAgICA8L3RkPlxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkR3JhcGhpY2FsRWxlbWVudHMoXG4gICAgZ3JhcGhpY2FsRWxlbWVudHM6IEJhc2VFbGVtZW50W10sXG4gICAgY29hY2hEaW1lbnNpb246IEVsZW1lbnREaW1lbnNpb24sXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWdyYXBoaWNhbEVsZW1lbnRzKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBncmFwaGljYWxFbGVtZW50cz8ubWFwKChncmFwaGljYWxFbGVtZW50OiBCYXNlRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgaWNvbiA9IGdyYXBoaWNhbEVsZW1lbnQuaWNvbiA/PyAnJztcbiAgICAgIGNvbnN0IGVsZW1lbnRSb3RhdGlvbiA9IGdyYXBoaWNhbEVsZW1lbnQucm90YXRpb24gfHwgMDtcbiAgICAgIGNvbnN0IGlzTm90Rml4ZWRSb3RhdGlvbkdyYXBoaWNhbEVsZW1lbnQgPVxuICAgICAgICB0aGlzLl9ub3RGaXhlZFJvdGF0YWJsZUFyZWFJY29ucy5pbmRleE9mKGdyYXBoaWNhbEVsZW1lbnQuaWNvbiEpID09PSAtMTtcbiAgICAgIGNvbnN0IGVsZW1lbnRGaXhlZFJvdGF0aW9uID1cbiAgICAgICAgdGhpcy5hbGlnblZlcnRpY2FsICYmIGlzTm90Rml4ZWRSb3RhdGlvbkdyYXBoaWNhbEVsZW1lbnRcbiAgICAgICAgICA/IGVsZW1lbnRSb3RhdGlvbiAtIDkwXG4gICAgICAgICAgOiBlbGVtZW50Um90YXRpb247XG5cbiAgICAgIC8vY2hlY2sgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBub3QgYW4gYXJlYSBlbGVtZW50LCBzaW5jZSB0aGlzIGVsZW1lbnQgaXMgZHJhd24gd2l0aG91dCBhbiBhcmVhIGNvbXBvbmVudFxuICAgICAgaWYgKHRoaXMuX25vdEFyZWFFbGVtZW50cy5maW5kSW5kZXgoKG5vdEFyZWFFbGVtZW50KSA9PiBub3RBcmVhRWxlbWVudCA9PT0gaWNvbikgPiAtMSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UmVuZGVyRWxlbWVudFdpdGhvdXRBcmVhKGdyYXBoaWNhbEVsZW1lbnQsIGVsZW1lbnRSb3RhdGlvbiwgY29hY2hEaW1lbnNpb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuX2dldFJlbmRlckVsZW1lbnRXaXRoQXJlYShcbiAgICAgICAgZ3JhcGhpY2FsRWxlbWVudCxcbiAgICAgICAgZWxlbWVudEZpeGVkUm90YXRpb24sXG4gICAgICAgIGNvYWNoRGltZW5zaW9uLFxuICAgICAgICBjb2FjaEluZGV4LFxuICAgICAgICBjb2FjaERlY2tJbmRleCxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlcyBhIHJlbmRlcmVkIGVsZW1lbnQgd2l0aCBhbiBhcmVhIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZ3JhcGhpY2FsRWxlbWVudFxuICAgKiBAcGFyYW0gcm90YXRpb25cbiAgICogQHBhcmFtIGNvYWNoRGltZW5zaW9uXG4gICAqIEBwYXJhbSBjb2FjaEluZGV4IHVzZWQgdG8gZ2VuZXJhdGUgYSB1bmlxdWUgaWQgZm9yIHRoZSBwb3BvdmVyIHRyaWdnZXJcbiAgICogQHBhcmFtIGNvYWNoRGVja0luZGV4IHVzZWQgdG8gZ2VuZXJhdGUgYSB1bmlxdWUgaWRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldFJlbmRlckVsZW1lbnRXaXRoQXJlYShcbiAgICBncmFwaGljYWxFbGVtZW50OiBCYXNlRWxlbWVudCxcbiAgICByb3RhdGlvbjogbnVtYmVyLFxuICAgIGNvYWNoRGltZW5zaW9uOiBFbGVtZW50RGltZW5zaW9uLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICApOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gZm9yIFRBQkxFLCB3ZSB1c2UgdGhlIGFyZWEgY29tcG9uZW50IGl0c2VsZiB0byBkaXNwbGF5IHRoZSB0YWJsZSBpbnN0ZWFkIG9mIHRoZSBTVkcgZ3JhcGhpYy5cbiAgICAvLyBEdWUgdG8gZGlmZmVyZW50IGhlaWdodHMgYW5kIHdpZHRocywgaXQgd291bGRuJ3Qgc2hvdyBjb3JyZWN0bHkuIFRvIGNvcnJlY3QgdGhpcywgd2Ugd291bGRcbiAgICAvLyBuZWVkIGRpZmZpY3VsdCBjYWxjdWxhdGlvbnMgZm9yIHBvc2l0aW9uLCByb3RhdGlvbiBhbmQgZGltZW5zaW9uLlxuICAgIGNvbnN0IGlzTm90VGFibGVHcmFwaGljID0gZ3JhcGhpY2FsRWxlbWVudC5pY29uPy5pbmRleE9mKCdUQUJMRScpID09PSAtMTtcbiAgICBjb25zdCBhcmVhUHJvcGVydHkgPSBncmFwaGljYWxFbGVtZW50Lmljb24gJiYgaXNOb3RUYWJsZUdyYXBoaWMgPyBncmFwaGljYWxFbGVtZW50Lmljb24gOiBudWxsO1xuICAgIGNvbnN0IHN0cmV0Y2hIZWlnaHQgPVxuICAgICAgdGhpcy5pc0VsZW1lbnREaXJlY3RseU9uQm9yZGVyKGdyYXBoaWNhbEVsZW1lbnQsIGNvYWNoRGltZW5zaW9uKSAmJlxuICAgICAgYXJlYVByb3BlcnR5ICE9PSAnRU5UUllfRVhJVCc7XG4gICAgY29uc3QgYXJpYUxhYmVsRm9yQXJlYSA9IGdyYXBoaWNhbEVsZW1lbnQuaWNvblxuICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKGdyYXBoaWNhbEVsZW1lbnQuaWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgIDogbm90aGluZztcblxuICAgIGNvbnN0IGNhbGN1bGF0ZWREaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbixcbiAgICAgIGNvYWNoRGltZW5zaW9uLFxuICAgICAgdHJ1ZSxcbiAgICAgIHN0cmV0Y2hIZWlnaHQsXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGN1bGF0ZWRQb3NpdGlvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZFBvc2l0aW9uKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbixcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgY29hY2hEaW1lbnNpb24sXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICAvL2dlbmVyYXRlIHVuaXF1ZSBpbmRleCBudW1iZXIgZm9yIHRoZSB0cmlnZ2VyIGVsZW1lbnRcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBgcG9wb3Zlci10cmlnZ2VyLSR7Y29hY2hEZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtjYWxjdWxhdGVkUG9zaXRpb24ueH0tJHtjYWxjdWxhdGVkUG9zaXRpb24ueX1gO1xuICAgIGxldCBlbGVtZW50TW91bnRpbmcgPSAnZnJlZSc7XG5cbiAgICBpZiAoZ3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbi55ID09PSB0aGlzLmNvYWNoQm9yZGVyT2Zmc2V0ICogLTEpIHtcbiAgICAgIGVsZW1lbnRNb3VudGluZyA9ICd1cHBlci1ib3JkZXInO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBncmFwaGljYWxFbGVtZW50LnBvc2l0aW9uLnkgKyBncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbi5oID09PVxuICAgICAgY29hY2hEaW1lbnNpb24uaCArIHRoaXMuY29hY2hCb3JkZXJPZmZzZXRcbiAgICApIHtcbiAgICAgIGVsZW1lbnRNb3VudGluZyA9ICdsb3dlci1ib3JkZXInO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWFcbiAgICAgICAgaWQ9XCIke3RyaWdnZXJJZH1cIlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoeyAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS0tY3Vyc29yLXBvaW50ZXInOiBhcmVhUHJvcGVydHkgIT09IG51bGwgfSl9XCJcbiAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS13aWR0aCc6IGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLWhlaWdodCc6IGNhbGN1bGF0ZWREaW1lbnNpb24uaCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLXRvcCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi55LFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtbGVmdCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi54LFxuICAgICAgICB9KX1cbiAgICAgICAgbW91bnRpbmc9JHtlbGVtZW50TW91bnRpbmd9XG4gICAgICAgIGJhY2tncm91bmQ9XCJkYXJrXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgICAgJHthcmVhUHJvcGVydHlcbiAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLW1heC13aWR0aCc6IGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogdGhpcy5iYXNlR3JpZFNpemUsXG4gICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uJzogcm90YXRpb24sXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgbmFtZT0ke2FyZWFQcm9wZXJ0eX1cbiAgICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0by13aWR0aFwiXG4gICAgICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhPlxuICAgICAgJHthcmVhUHJvcGVydHkgPyB0aGlzLl9wb3BvdmVyKHRyaWdnZXJJZCwgYXJpYUxhYmVsRm9yQXJlYSkgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJFbGVtZW50V2l0aG91dEFyZWEoXG4gICAgZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQsXG4gICAgcm90YXRpb246IG51bWJlcixcbiAgICBjb2FjaERpbWVuc2lvbjogRWxlbWVudERpbWVuc2lvbixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNhbGN1bGF0ZWREaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbixcbiAgICAgIGNvYWNoRGltZW5zaW9uLFxuICAgICk7XG4gICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LnBvc2l0aW9uLFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5kaW1lbnNpb24sXG4gICAgICBjb2FjaERpbWVuc2lvbixcbiAgICApO1xuXG4gICAgLy8gSWYgdGhlIGljb24gaXMgdGhlIGRyaXZlciBhcmVhLCB0aGVuIGhlcmUgY29uY2F0IHRoZSB2ZWhpY2xlIHR5cGUgdG8gZ2V0IHRoZSByaWdodCB2ZWhpY2xlIGNoYXNzaXMgaWNvblxuICAgIGNvbnN0IGljb24gPVxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5pY29uICYmIGdyYXBoaWNhbEVsZW1lbnQuaWNvbi5pbmRleE9mKCdEUklWRVJfQVJFQScpID09PSAtMVxuICAgICAgICA/IGdyYXBoaWNhbEVsZW1lbnQuaWNvblxuICAgICAgICA6IGdyYXBoaWNhbEVsZW1lbnQuaWNvbj8uY29uY2F0KFxuICAgICAgICAgICAgJ18nLFxuICAgICAgICAgICAgdGhpcy5zZWF0UmVzZXJ2YXRpb25zW3RoaXMuY3VyclNlbGVjdGVkRGVja0luZGV4XS52ZWhpY2xlVHlwZSxcbiAgICAgICAgICApO1xuXG4gICAgcmV0dXJuIGh0bWxgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtdG9wJzogY2FsY3VsYXRlZFBvc2l0aW9uLnksXG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi54LFxuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgfSl9XG4gICAgICBuYW1lPSR7aWNvbiA/PyBub3RoaW5nfVxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID9zdHJldGNoPSR7dHJ1ZX1cbiAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZFNlcnZpY2VFbGVtZW50cyhcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBzZXJ2aWNlRWxlbWVudHM/OiBCYXNlRWxlbWVudFtdLFxuICApOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgaWYgKCFzZXJ2aWNlRWxlbWVudHMpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHNlcnZpY2VFbGVtZW50cz8ubWFwKChzZXJ2aWNlRWxlbWVudDogQmFzZUVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlRGVzY3JpcHRpb24gPSBzZXJ2aWNlRWxlbWVudC5pY29uXG4gICAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihzZXJ2aWNlRWxlbWVudC5pY29uLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KVxuICAgICAgICA6IG51bGw7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkRGltZW5zaW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKHNlcnZpY2VFbGVtZW50LmRpbWVuc2lvbik7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkUG9zaXRpb24gPSB0aGlzLmdldENhbGN1bGF0ZWRQb3NpdGlvbihzZXJ2aWNlRWxlbWVudC5wb3NpdGlvbik7XG4gICAgICBjb25zdCBlbGVtZW50Um90YXRpb24gPSBzZXJ2aWNlRWxlbWVudC5yb3RhdGlvbiB8fCAwO1xuICAgICAgY29uc3QgZWxlbWVudEZpeGVkUm90YXRpb24gPSB0aGlzLmFsaWduVmVydGljYWwgPyBlbGVtZW50Um90YXRpb24gLSA5MCA6IGVsZW1lbnRSb3RhdGlvbjtcblxuICAgICAgLy9nZW5lcmF0ZSB1bmlxdWUgaW5kZXggbnVtYmVyIGZvciB0aGUgdHJpZ2dlciBlbGVtZW50XG4gICAgICBjb25zdCB0cmlnZ2VySWQgPSBgcG9wb3Zlci10cmlnZ2VyLSR7Y29hY2hEZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtjYWxjdWxhdGVkUG9zaXRpb24ueH0tJHtjYWxjdWxhdGVkUG9zaXRpb24ueX1gO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICBpZD1cIiR7dHJpZ2dlcklkfVwiXG4gICAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogY2FsY3VsYXRlZERpbWVuc2lvbi53LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IGNhbGN1bGF0ZWRQb3NpdGlvbi55LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1sZWZ0JzogY2FsY3VsYXRlZFBvc2l0aW9uLngsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiBlbGVtZW50Rml4ZWRSb3RhdGlvbixcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtLWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICBuYW1lPSR7c2VydmljZUVsZW1lbnQuaWNvbiA/PyBub3RoaW5nfVxuICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgICR7dGhpcy5fcG9wb3Zlcih0cmlnZ2VySWQsIHRpdGxlRGVzY3JpcHRpb24pfVxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VzIHRoZSBzZWxlY3RlZCBwbGFjZSBldmVudCB0cmlnZ2VyZWQgZnJvbSB0aGUgcGxhY2VcbiAgICogRWFjaCBzZWxlY3Rpb24gZW1pdHMgYW4gYXJyYXkgb2YgYWxsIHNlbGVjdGVkIHBsYWNlc1xuICAgKiBAcGFyYW0gc2VsZWN0UGxhY2VFdmVudFxuICAgKi9cbiAgcHJpdmF0ZSBfb25TZWxlY3RQbGFjZShzZWxlY3RQbGFjZUV2ZW50OiBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4pOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFBsYWNlID0gc2VsZWN0UGxhY2VFdmVudC5kZXRhaWw7XG4gICAgLy8gV2UgaGF2ZSB0byBzZXQgcHJldmVudENvYWNoU2Nyb2xsQnlQbGFjZUNsaWNrIHRvIHRydWUsIHRvIHByZXZlbnQgYXV0b21hdGljIHNjcm9sbGluZyB0byB0aGUgbmV3IGZvY3VzZWQgcGxhY2VcbiAgICB0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayA9IHRydWU7XG4gICAgdGhpcy5pc0NvYWNoR3JpZEZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgYW55IGtleWJvYXJkIGV2ZW50IHdhcyB0cmlnZ2VyZWQgaW5zaWRlIHRoZSBzZWF0IHJlc2VydmF0aW9uIGNvbXBvbmVudCxcbiAgICAvLyBzbyB3ZSBjYW4gc2F5IHRoZSBuYXRpdmUgYnJvd3NlciBmb2N1cyBsaWVzIG9uIHRoZSBjb21wb25lbnRcbiAgICBpZiAoIXRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMpIHtcbiAgICAgIHRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcmV2ZW50UGxhY2VDbGljaykge1xuICAgICAgLy8gQWRkIHBsYWNlIHRvIHBsYWNlIGNvbGxlY3Rpb25cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMoc2VsZWN0ZWRQbGFjZSk7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZFBsYWNlSW5Db2FjaChzZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdE5hdkNvYWNoKGV2ZW50OiBDdXN0b21FdmVudDxudW1iZXI+KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWROYXZDb2FjaEluZGV4ID0gZXZlbnQuZGV0YWlsO1xuICAgIHRoaXMuaXNLZXlib2FyZE5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayA9IGZhbHNlO1xuXG4gICAgaWYgKHNlbGVjdGVkTmF2Q29hY2hJbmRleCAhPT0gbnVsbCAmJiBzZWxlY3RlZE5hdkNvYWNoSW5kZXggIT09IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCkge1xuICAgICAgdGhpcy51bmZvY3VzUGxhY2VFbGVtZW50KCk7XG4gICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWROYXZDb2FjaChzZWxlY3RlZE5hdkNvYWNoSW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWROYXZDb2FjaEluZGV4ID09PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMudXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTtcbiAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgfVxuXG4gICAgLy9jbG9zZSBhbGwgb3BlbmVkIHBvcG92ZXJzXG4gICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkZvY3VzTmF2Q29hY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljaykge1xuICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c1BsYWNlRWxlbWVudCh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gICAgdGhpcy5pc0F1dG9TY3JvbGxpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcG9wb3ZlciBmb3IgZXh0cmEgc2VydmljZSBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gdHJpZ2dlcklkXG4gICAqIEBwYXJhbSBwb3BvdmVyQ29udGVudFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfcG9wb3ZlcihcbiAgICB0cmlnZ2VySWQ6IHN0cmluZyxcbiAgICBwb3BvdmVyQ29udGVudDogc3RyaW5nIHwgbnVsbCB8IHR5cGVvZiBub3RoaW5nLFxuICApOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXBvcG92ZXIgdHJpZ2dlcj1cIiR7dHJpZ2dlcklkfVwiIGhvdmVyLXRyaWdnZXI9XCJcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzYmItdGV4dC1zIHNiYi1zci1wb3BvdmVyXCI+JHtwb3BvdmVyQ29udGVudH08L3A+XG4gICAgICA8L3NiYi1wb3BvdmVyPlxuICAgIGA7XG4gIH1cblxuICAvKipcbiAgICogdHJpZ2dlciB0byBjbG9zZSBhbGwgb3BlbmVkIHBvcG92ZXJzIChub3JtYWxseSBvbmx5IG9uZSBpcyBvcGVuZWQgYXQgYSB0aW1lKVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfY2xvc2VQb3BvdmVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdFxuICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsPFNiYlBvcG92ZXJFbGVtZW50Pignc2JiLXBvcG92ZXI6c3RhdGUoc3RhdGUtb3BlbmVkKScpXG4gICAgICAuZm9yRWFjaCgocG9wb3ZlcikgPT4gcG9wb3Zlci5jbG9zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERlc2NyaXB0aW9uVGFibGVDb2FjaChjb2FjaEl0ZW06IENvYWNoSXRlbSk6IHN0cmluZyB7XG4gICAgaWYgKCFjb2FjaEl0ZW0ucGxhY2VzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9CTE9DS0VEX1RBQkxFX0NBUFRJT04nLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICAgIGNvYWNoSXRlbS5pZCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGxldCB0YWJsZUNvYWNoRGVzY3JpcHRpb246IHN0cmluZztcbiAgICBjb25zdCBhcmVhRGVzY3JpcHRpb25zID0gdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbkxpc3RTdHJpbmcoY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cyEpO1xuICAgIGNvbnN0IHNlcnZpY2VEZXNjcmlwdGlvbnMgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhjb2FjaEl0ZW0uc2VydmljZUVsZW1lbnRzISk7XG5cbiAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9UQUJMRV9DQVBUSU9OJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgY29hY2hJdGVtLmlkLFxuICAgIF0pO1xuXG4gICAgaWYgKCF0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgIC8vIEV4cGFuZHMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2VhdHMgYW5kIGJpY3ljbGUgc3BhY2VzIGFzIGluZm9cbiAgICAgIGNvbnN0IGZyZWVQbGFjZXMgPSB0aGlzLmdldEF2YWlsYWJsZUZyZWVQbGFjZXNOdW1Gcm9tQ29hY2goY29hY2hJdGVtLnBsYWNlcyk7XG4gICAgICBjb25zdCBmcmVlUGxhY2VzVHh0ID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgJ0NPQUNIX0FWQUlMQUJMRV9OVU1CRVJfT0ZfUExBQ0VTJyxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgW2ZyZWVQbGFjZXMuc2VhdHMsIGZyZWVQbGFjZXMuYmljeWNsZXNdLFxuICAgICAgKTtcbiAgICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiA9IHRhYmxlQ29hY2hEZXNjcmlwdGlvbi5jb25jYXQoJy4gJykuY29uY2F0KGZyZWVQbGFjZXNUeHQpLmNvbmNhdCgnLiAnKTtcbiAgICB9XG5cbiAgICBpZiAoISFhcmVhRGVzY3JpcHRpb25zIHx8ICEhc2VydmljZURlc2NyaXB0aW9ucykge1xuICAgICAgdGFibGVDb2FjaERlc2NyaXB0aW9uICs9XG4gICAgICAgICcuICcgKyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSArICc6ICc7XG4gICAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gKz0gc2VydmljZURlc2NyaXB0aW9ucyArICcsICcgKyBhcmVhRGVzY3JpcHRpb25zICsgJy4nO1xuICAgIH1cbiAgICByZXR1cm4gdGFibGVDb2FjaERlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvbkxpc3RTdHJpbmcoZGVzY3JpcHRpb25zRWxlbWVudHM6IEJhc2VFbGVtZW50W10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXF1ZURlc2NyaXB0aW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgIHJldHVybiBkZXNjcmlwdGlvbnNFbGVtZW50c1xuICAgICAgPy5tYXAoKGRlc2NyaXB0aW9uRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBpY29uID0gZGVzY3JpcHRpb25FbGVtZW50Lmljb247XG4gICAgICAgIGlmICghaWNvbikgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb25BbHJlYWR5RXhpc3QgPSB1bmlxdWVEZXNjcmlwdGlvbnMuaW5kZXhPZihpY29uKSA+IC0xO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50Lmljb24hLFxuICAgICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGlzVmFsaWREZXNjcmlwdGlvbiA9XG4gICAgICAgICAgdGhpcy5fbm90Rml4ZWRSb3RhdGFibGVBcmVhSWNvbnMuaW5kZXhPZihpY29uKSA9PT0gLTEgJiZcbiAgICAgICAgICB0aGlzLl9ub3RBcmVhRWxlbWVudHMuaW5kZXhPZihpY29uKSA9PT0gLTE7XG5cbiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbkFscmVhZHlFeGlzdCkge1xuICAgICAgICAgIHVuaXF1ZURlc2NyaXB0aW9ucy5wdXNoKGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhdHJhbnNsYXRpb24gJiYgIWRlc2NyaXB0aW9uQWxyZWFkeUV4aXN0ICYmIGlzVmFsaWREZXNjcmlwdGlvbiA/IHRyYW5zbGF0aW9uIDogbnVsbDtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChkZXNjcmlwdGlvbikgPT4gISFkZXNjcmlwdGlvbilcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbic6IFNiYlNlYXRSZXNlcnZhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXNDTSw2QkFBeUIsTUFBQTs7MEJBRDlCLGNBQWMsc0JBQXNCLENBQUM7Ozs7b0JBQ0U7QUFBUixFQUFBLG1CQUFRLFlBQTBCO0FBQUE7O0FBR3hELFdBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBRzFDLFdBQUEsbUJBQW1CO0FBQUEsUUFDekI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUFBO0FBSU0sV0FBQSw4QkFBOEIsQ0FBQyxZQUFZO0FBQUEsSUF3ckJyRDtBQUFBLElBdHJCcUIsV0FBVyxtQkFBdUM7QUFDbkUsWUFBTSxXQUFXLGlCQUFpQjtBQUVsQyxVQUFJLGtCQUFrQixJQUFJLGVBQWUsR0FBRztBQUMxQyxZQUFJLEtBQUssZUFBZTtBQUN0QixlQUFLLFlBQ0QsaUJBQWlCLE9BQU8sRUFDekIsUUFBUSxDQUFDLFVBQVUsTUFBTSxnQkFBZ0IsVUFBVSxDQUFDO0FBQUEsUUFDekQsT0FBTztBQUNMLGVBQUssWUFDRCxpQkFBaUIsT0FBTyxFQUN6QixRQUFRLENBQUMsVUFBVSxNQUFNLGFBQWEsWUFBWSxHQUFHLENBQUM7QUFBQSxRQUMzRDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFFbUIsYUFBYSxtQkFBdUM7QUFDckUsWUFBTSxhQUFhLGlCQUFpQjtBQUdwQyxXQUFLLGVBQWUsS0FBSyxNQUFLO0FBQzVCLGFBQUsscUNBQUE7QUFBQSxNQUNQLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFFbUIsU0FBTTtBQUN2QixXQUFLLHdDQUFBO0FBQ0wsYUFBTyxLQUFLLHdCQUF3QjtBQUFBLElBQ3RDO0FBQUEsSUFFUSwwQ0FBdUM7QUFDN0MsV0FBSyx1QkFBdUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQUlsQixLQUFLLCtCQUErQixnQkFBZ0IsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUk1QyxDQUFDLFFBQXVCLEtBQUssb0JBQW9CLEdBQUcsQ0FBQztBQUFBO0FBQUE7QUFBQSxzQ0FHdEMsS0FBSyxtQkFBbUI7QUFBQTtBQUFBO0FBQUEsNkRBR0QsS0FBSyxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQSw4QkFJdkQsTUFBTSxLQUFLLG1CQUFBLENBQW9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUNBSTVCLFNBQVM7QUFBQSxRQUNoQixzQkFBc0I7QUFBQSxRQUN0QiwyQkFBMkIsS0FBSztBQUFBLE1BQUEsQ0FDakMsQ0FBQztBQUFBO0FBQUEsMEJBRUEsS0FBSyxrQkFBa0IsSUFDdkIsQ0FBQyxpQkFBa0MsbUJBQTBCO0FBQzNELGVBQU87QUFBQTtBQUFBLGtDQUVELEtBQUssZUFBZSxpQkFBaUIsY0FBYyxDQUFDO0FBQUE7QUFBQTtBQUFBLE1BRzVELENBQUMsQ0FDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQVNYLEtBQUssK0JBQStCLGlCQUFpQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUtsRTtBQUFBLElBRVEsb0JBQWlCO0FBQ3ZCLFVBQUksQ0FBQyxLQUFLO0FBQWtCLGVBQU87QUFFbkMsYUFBTyxLQUFLLGlCQUFpQixJQUFJLENBQUMsb0JBQW1CO0FBQ25ELGNBQU0sa0JBQWtCLHVCQUN0QixnQkFBZ0IsZ0JBQ2hCLEtBQUssVUFBVSxPQUFPO0FBRXhCLGVBQU8sNkJBQTZCLGVBQWU7QUFBQSxNQUNyRCxDQUFDO0FBQUEsSUFDSDtBQUFBLElBRVEsK0JBQStCLGNBQW9CO0FBQ3pELFVBQUksQ0FBQyxLQUFLLGlCQUFpQixDQUFDLEtBQUs7QUFBa0IsZUFBTztBQUUxRCxZQUFNLFFBQVEsZ0JBQWdCLG9CQUFvQixxQkFBcUI7QUFDdkUsWUFBTSxVQUNKLGdCQUFnQixvQkFBb0IsOEJBQThCO0FBQ3BFLFlBQU0scUJBQ0osZ0JBQWdCLG9CQUNaLHVCQUF1Qix3QkFBd0IsS0FBSyxVQUFVLE9BQU8sSUFDckUsdUJBQXVCLDBCQUEwQixLQUFLLFVBQVUsT0FBTztBQUM3RSxVQUFJLGNBQWM7QUFFbEIsVUFBSSxnQkFBZ0Isb0JBQW9CLEtBQUsscUJBQXFCLEdBQUc7QUFDbkUsc0JBQWM7QUFBQSxNQUNoQixXQUNFLGdCQUFnQixxQkFDaEIsS0FBSyxxQkFDSCxLQUFLLGlCQUFpQixLQUFLLHFCQUFxQixFQUFFLFdBQVcsU0FBUyxHQUN4RTtBQUNBLHNCQUFjO0FBQUEsTUFDaEI7QUFFQSxhQUFPO0FBQUEsZ0JBQ0ssTUFBTSxLQUFLLHVCQUF1QixZQUFZLENBQUM7QUFBQSxZQUNuRCxLQUFLO0FBQUE7QUFBQTtBQUFBLG1CQUdFLE9BQU87QUFBQTtBQUFBLG9CQUVOLGtCQUFrQjtBQUFBO0FBQUEsOEJBRVIsZUFBZSxPQUFPO0FBQUE7QUFBQSxJQUVsRDtBQUFBLElBRVEsb0JBQWlCO0FBQ3ZCLFVBQUksQ0FBQyxLQUFLLGlCQUFpQixDQUFDLEtBQUs7QUFBa0IsZUFBTztBQUMxRCxhQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx3QkFLYSx1QkFDWiwrQkFDQSxLQUFLLFVBQVUsT0FBTyxDQUN2QjtBQUFBO0FBQUEsWUFFQyxLQUFLLGFBQWEsSUFBSSxDQUFDLGlCQUFzQyxVQUFpQjtBQUM5RSxlQUFPO0FBQUE7QUFBQSwrQkFFWSxDQUFDLFVBQStCLEtBQUssa0JBQWtCLEtBQUssQ0FBQztBQUFBLDhCQUM5RCxNQUFNLEtBQUssaUJBQUEsQ0FBa0I7QUFBQSx5QkFDbEMsS0FBSztBQUFBLDRCQUNGLGdCQUFnQixFQUFFO0FBQUEscUNBQ1QsZ0JBQWdCLFVBQVU7QUFBQSw0QkFDbkMsS0FBSyx1QkFBdUIsS0FBSztBQUFBLDJCQUNsQyxLQUFLLHNCQUFzQixLQUFLO0FBQUEsMkJBQ2hDLEtBQUssNEJBQTRCLEtBQUs7QUFBQSxxQ0FDNUIsS0FBSyw2QkFBNkI7QUFBQSxnQ0FDdkMsZ0JBQWdCLFdBQVc7QUFBQSxnQ0FDM0IsZ0JBQWdCLFdBQVc7QUFBQSxnQ0FDM0IsZ0JBQWdCLFlBQVk7QUFBQSwwQkFDbEMsaUJBQWlCLGdCQUFnQixJQUFJO0FBQUEseUJBQ3RDLGlCQUFpQixnQkFBZ0IsS0FBSztBQUFBLDZCQUNsQyxLQUFLLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUlyQyxDQUFDLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUlWO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFPUSxlQUNOLGlCQUNBLGdCQUFzQjtBQUV0QixZQUFNLFVBQXVCLEtBQUssTUFBTSxLQUFLLFVBQVUsaUJBQWlCLFVBQVUsQ0FBQztBQUVuRixVQUFJLENBQUMsU0FBUztBQUNaLGVBQU87QUFBQSxNQUNUO0FBQ0EsYUFBTyxRQUFRLElBQUksQ0FBQyxXQUFzQixlQUFzQjtBQUM5RCxlQUFPO0FBQUE7QUFBQSxZQUVELEtBQUssb0JBQ0wsV0FDQSxZQUNBLGdCQUNBLGdCQUFnQixjQUFjLENBQy9CO0FBQUE7QUFBQTtBQUFBLE1BR1AsQ0FBQztBQUFBLElBQ0g7QUFBQSxJQUVRLG9CQUNOLFdBQ0EsWUFDQSxnQkFDQSxxQkFBMkI7QUFFM0IsWUFBTSwyQkFBMkIsS0FBSyx1QkFBdUIsVUFBVSxTQUFTO0FBQ2hGLFlBQU0sb0NBQW9DLEtBQUssMEJBQTBCLFNBQVM7QUFFbEYsYUFBTztBQUFBLGNBQ0csU0FBUztBQUFBLFFBQ2YsdUNBQXVDLHlCQUF5QjtBQUFBLFFBQ2hFLHdDQUF3Qyx5QkFBeUI7QUFBQSxNQUFBLENBQ2xFLENBQUM7QUFBQTtBQUFBLFFBRUEsS0FBSyx5QkFBeUIsU0FBUyxDQUFDO0FBQUEsUUFDeEMsS0FBSyw4QkFDTCxVQUFVLG1CQUFtQixDQUFBLEdBQzdCLFVBQVUsV0FDVixZQUNBLGNBQWMsQ0FDZjtBQUFBLFFBQ0MsS0FBSyw0QkFBNEIsWUFBWSxnQkFBZ0IsVUFBVSxlQUFlLENBQUM7QUFBQTtBQUFBO0FBQUEsaUJBRzlFLE1BQU0sS0FBSyxtQ0FBbUMsVUFBVSxDQUFDO0FBQUEsMkJBQy9DLFVBQVU7QUFBQTtBQUFBLGlEQUVZLFVBQVU7QUFBQTtBQUFBLDRDQUVmLFVBQVU7QUFBQSxvQ0FDbEIsaUNBQWlDO0FBQUE7QUFBQSxVQUUzRCxLQUFLLHNCQUFzQixXQUFXLFlBQVksZ0JBQWdCLG1CQUFtQixDQUFDO0FBQUE7QUFBQTtBQUFBLElBRzlGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU1RLHlCQUF5QixXQUFvQjtBQUNuRCxVQUFJLENBQUMsVUFBVTtBQUFpQixlQUFPO0FBRXZDLFlBQU0sc0JBQXNCO0FBQzVCLFlBQU0sY0FBYyxVQUFVO0FBQzlCLFlBQU0sYUFBYSxhQUFhLEtBQUssQ0FBQyxZQUF5QixRQUFRLFNBQVMsYUFBYTtBQUM3RixZQUFNLGNBQWMsYUFDaEIsVUFBVSxVQUFVLElBQUksV0FBVyxVQUFVLElBQUksc0JBQ2pELFVBQVUsVUFBVSxJQUFJLHNCQUFzQjtBQUNsRCxZQUFNLGdCQUFnQixVQUFVLFVBQVUsSUFBSSxLQUFLLG9CQUFvQixLQUFLLEtBQUs7QUFDakYsWUFBTSxnQkFDSixjQUFjLFdBQVcsU0FBUyxNQUFNLElBQ3BDLFlBQVksVUFBVSxJQUFJLEtBQUssZUFDL0IsS0FBSztBQUNYLGFBQU87QUFBQTtBQUFBLGdCQUVLLFNBQVM7QUFBQSxRQUNmLHdDQUF3QyxjQUFjLEtBQUs7QUFBQSxRQUMzRCx5Q0FBeUM7QUFBQSxRQUN6QyxzQ0FBc0MsS0FBSyxxQkFBcUI7QUFBQSxRQUNoRSx1Q0FBdUM7QUFBQSxRQUN2QywyQ0FBMkM7QUFBQSxNQUFBLENBQzVDLENBQUM7QUFBQTtBQUFBLG1CQUVTLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUlyQjtBQUFBLElBRVEsc0JBQ04sT0FDQSxZQUNBLGdCQUNBLHFCQUEyQjtBQUUzQixVQUFJLENBQUMsTUFBTSxRQUFRO0FBQ2pCLGVBQU87QUFBQSxNQUNUO0FBR0EsWUFBTSxpQkFBMEMsQ0FBQTtBQUNoRCxpQkFBVyxTQUFTLE1BQU0sUUFBUTtBQUNoQyxZQUFJLENBQUMsZUFBZSxNQUFNLFNBQVMsQ0FBQyxHQUFHO0FBQ3JDLHlCQUFlLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLO0FBQUEsUUFDM0MsT0FBTztBQUNMLHlCQUFlLE1BQU0sU0FBUyxDQUFDLEVBQUUsS0FBSyxLQUFLO0FBQUEsUUFDN0M7QUFBQSxNQUNGO0FBRUEsYUFBTyxPQUFPLE9BQU8sY0FBYyxFQUNoQyxJQUFJLENBQUMsV0FBb0IsVUFBUztBQUNqQyxlQUFPO0FBQUEsd0JBQ1MsVUFBVSxJQUFJLFVBQVUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxvQkFBb0IsS0FBSztBQUFBLGNBQ3hFLEtBQUsseUJBQ0wsV0FDQSxZQUNBLGdCQUNBLG1CQUFtQixDQUNwQjtBQUFBO0FBQUE7QUFBQSxNQUdQLENBQUMsRUFDQSxRQUFRLENBQUMsZ0JBQWdCLFdBQVc7QUFBQSxJQUN6QztBQUFBLElBRVEseUJBQ04sUUFDQSxZQUNBLFdBQ0EscUJBQTJCO0FBRzNCLGFBQU8sS0FDTCxDQUFDLFFBQWUsV0FBa0IsT0FBTyxPQUFPLFNBQVMsQ0FBQyxJQUFJLE9BQU8sT0FBTyxTQUFTLENBQUMsQ0FBQztBQUd6RixhQUFPLFFBQVEsSUFBSSxDQUFDLE9BQWMsVUFBaUI7QUFDakQsY0FBTSxzQkFBc0IsS0FBSyx1QkFBdUIsTUFBTSxTQUFTO0FBQ3ZFLGNBQU0scUJBQXFCLEtBQUssc0JBQXNCLE1BQU0sUUFBUTtBQUNwRSxjQUFNLFdBQVcsTUFBTSxZQUFZO0FBQ25DLGNBQU0sZUFBZSxLQUFLLGdCQUFnQixNQUFNO0FBQ2hELGNBQU0sVUFBVSxLQUFLLGtCQUFrQixXQUFXLFlBQVksTUFBTSxNQUFNO0FBQzFFLGVBQU87QUFBQTtBQUFBLHFCQUVRLFNBQVMsSUFBSSxVQUFVLElBQUksTUFBTSxTQUFTLENBQUMsSUFBSSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUEsb0JBSXJELFNBQVM7QUFBQSxVQUNmLHlEQUF5RCxLQUFLLElBQzVELG9CQUFvQixHQUNwQixvQkFBb0IsQ0FBQztBQUFBLFVBRXZCLDhDQUE4QyxvQkFBb0I7QUFBQSxVQUNsRSwrQ0FBK0Msb0JBQW9CO0FBQUEsVUFDbkUsNENBQTRDLG1CQUFtQjtBQUFBLFVBQy9ELDZDQUE2QyxtQkFBbUI7QUFBQSxVQUNoRSxpREFBaUQ7QUFBQSxVQUNqRCxzREFBc0Q7QUFBQSxRQUFBLENBQ3ZELENBQUM7QUFBQSwyQkFDYSxDQUFDLHFCQUNkLEtBQUssZUFBZSxnQkFBZ0IsQ0FBQztBQUFBO0FBQUEsaUJBRWxDLE9BQU87QUFBQTtBQUFBLG1CQUVMLE1BQU0sTUFBTTtBQUFBLG1CQUNaLE1BQU0sSUFBSTtBQUFBLG9CQUNULE1BQU0sS0FBSztBQUFBLDBCQUNMLFVBQVU7QUFBQSx5QkFDWCxtQkFBbUI7QUFBQSw4QkFDZCxTQUFTO0FBQUEsMkJBQ1osTUFBTSxXQUFXO0FBQUEsNEJBQ2hCLEtBQUssaUJBQWlCO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFJOUMsQ0FBQztBQUFBLElBQ0g7QUFBQSxJQUVRLDhCQUNOLG1CQUNBLGdCQUNBLFlBQ0EsZ0JBQXNCO0FBRXRCLFVBQUksQ0FBQztBQUFtQixlQUFPO0FBRS9CLGFBQU8sbUJBQW1CLElBQUksQ0FBQyxxQkFBaUM7QUFDOUQsY0FBTSxPQUFPLGlCQUFpQixRQUFRO0FBQ3RDLGNBQU0sa0JBQWtCLGlCQUFpQixZQUFZO0FBQ3JELGNBQU0scUNBQ0osS0FBSyw0QkFBNEIsUUFBUSxpQkFBaUIsSUFBSyxNQUFNO0FBQ3ZFLGNBQU0sdUJBQ0osS0FBSyxpQkFBaUIscUNBQ2xCLGtCQUFrQixLQUNsQjtBQUdOLFlBQUksS0FBSyxpQkFBaUIsVUFBVSxDQUFDLG1CQUFtQixtQkFBbUIsSUFBSSxJQUFJLElBQUk7QUFDckYsaUJBQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixjQUFjO0FBQUEsUUFDNUY7QUFDQSxlQUFPLEtBQUssMEJBQ1Ysa0JBQ0Esc0JBQ0EsZ0JBQ0EsWUFDQSxjQUFjO0FBQUEsTUFFbEIsQ0FBQztBQUFBLElBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQVdRLDBCQUNOLGtCQUNBLFVBQ0EsZ0JBQ0EsWUFDQSxnQkFBc0I7QUFLdEIsWUFBTSxvQkFBb0IsaUJBQWlCLE1BQU0sUUFBUSxPQUFPLE1BQU07QUFDdEUsWUFBTSxlQUFlLGlCQUFpQixRQUFRLG9CQUFvQixpQkFBaUIsT0FBTztBQUMxRixZQUFNLGdCQUNKLEtBQUssMEJBQTBCLGtCQUFrQixjQUFjLEtBQy9ELGlCQUFpQjtBQUNuQixZQUFNLG1CQUFtQixpQkFBaUIsT0FDdEMsdUJBQXVCLGlCQUFpQixNQUFNLEtBQUssVUFBVSxPQUFPLElBQ3BFO0FBRUosWUFBTSxzQkFBc0IsS0FBSyx1QkFDL0IsaUJBQWlCLFdBQ2pCLGdCQUNBLE1BQ0EsYUFBYTtBQUdmLFlBQU0scUJBQXFCLEtBQUssc0JBQzlCLGlCQUFpQixVQUNqQixpQkFBaUIsV0FDakIsZ0JBQ0EsSUFBSTtBQUlOLFlBQU0sWUFBWSxtQkFBbUIsY0FBYyxJQUFJLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLG1CQUFtQixDQUFDO0FBQ2pILFVBQUksa0JBQWtCO0FBRXRCLFVBQUksaUJBQWlCLFNBQVMsTUFBTSxLQUFLLG9CQUFvQixJQUFJO0FBQy9ELDBCQUFrQjtBQUFBLE1BQ3BCLFdBQ0UsaUJBQWlCLFNBQVMsSUFBSSxpQkFBaUIsVUFBVSxNQUN6RCxlQUFlLElBQUksS0FBSyxtQkFDeEI7QUFDQSwwQkFBa0I7QUFBQSxNQUNwQjtBQUVBLGFBQU87QUFBQTtBQUFBLGNBRUcsU0FBUztBQUFBLGlCQUNOLFNBQVMsRUFBRSw2Q0FBNkMsaUJBQWlCLEtBQUEsQ0FBTSxDQUFDO0FBQUEsZ0JBQ2pGLFNBQVM7QUFBQSxRQUNmLHFDQUFxQyxvQkFBb0I7QUFBQSxRQUN6RCxzQ0FBc0Msb0JBQW9CO0FBQUEsUUFDMUQsbUNBQW1DLG1CQUFtQjtBQUFBLFFBQ3RELG9DQUFvQyxtQkFBbUI7QUFBQSxNQUFBLENBQ3hELENBQUM7QUFBQSxtQkFDUyxlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJeEIsZUFDRTtBQUFBO0FBQUEsd0JBRVksU0FBUztBQUFBLFFBQ2YsNENBQTRDLG9CQUFvQjtBQUFBLFFBQ2hFLHlDQUF5QyxLQUFLO0FBQUEsUUFDOUMsMkNBQTJDO0FBQUEsTUFBQSxDQUM1QyxDQUFDO0FBQUEsdUJBQ0ssWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBTXZCLE9BQU87QUFBQTtBQUFBLFFBRVgsZUFBZSxLQUFLLFNBQVMsV0FBVyxnQkFBZ0IsSUFBSSxPQUFPO0FBQUE7QUFBQSxJQUV6RTtBQUFBLElBRVEsNkJBQ04sa0JBQ0EsVUFDQSxnQkFBZ0M7QUFFaEMsWUFBTSxzQkFBc0IsS0FBSyx1QkFDL0IsaUJBQWlCLFdBQ2pCLGNBQWM7QUFFaEIsWUFBTSxxQkFBcUIsS0FBSyxzQkFDOUIsaUJBQWlCLFVBQ2pCLGlCQUFpQixXQUNqQixjQUFjO0FBSWhCLFlBQU0sT0FDSixpQkFBaUIsUUFBUSxpQkFBaUIsS0FBSyxRQUFRLGFBQWEsTUFBTSxLQUN0RSxpQkFBaUIsT0FDakIsaUJBQWlCLE1BQU0sT0FDckIsS0FDQSxLQUFLLGlCQUFpQixLQUFLLHFCQUFxQixFQUFFLFdBQVc7QUFHckUsYUFBTztBQUFBLGNBQ0csU0FBUztBQUFBLFFBQ2Ysd0NBQXdDLG9CQUFvQjtBQUFBLFFBQzVELHlDQUF5QyxvQkFBb0I7QUFBQSxRQUM3RCxzQ0FBc0MsbUJBQW1CO0FBQUEsUUFDekQsdUNBQXVDLG1CQUFtQjtBQUFBLFFBQzFELDJDQUEyQztBQUFBLFFBQzNDLDJDQUEyQztBQUFBLE1BQUEsQ0FDNUMsQ0FBQztBQUFBLGFBQ0ssUUFBUSxPQUFPO0FBQUE7QUFBQSxpQkFFWCxJQUFJO0FBQUE7QUFBQSxJQUVuQjtBQUFBLElBRVEsNEJBQ04sWUFDQSxnQkFDQSxpQkFBK0I7QUFFL0IsVUFBSSxDQUFDO0FBQWlCLGVBQU87QUFFN0IsYUFBTyxpQkFBaUIsSUFBSSxDQUFDLG1CQUErQjtBQUMxRCxjQUFNLG1CQUFtQixlQUFlLE9BQ3BDLHVCQUF1QixlQUFlLE1BQU0sS0FBSyxVQUFVLE9BQU8sSUFDbEU7QUFDSixjQUFNLHNCQUFzQixLQUFLLHVCQUF1QixlQUFlLFNBQVM7QUFDaEYsY0FBTSxxQkFBcUIsS0FBSyxzQkFBc0IsZUFBZSxRQUFRO0FBQzdFLGNBQU0sa0JBQWtCLGVBQWUsWUFBWTtBQUNuRCxjQUFNLHVCQUF1QixLQUFLLGdCQUFnQixrQkFBa0IsS0FBSztBQUd6RSxjQUFNLFlBQVksbUJBQW1CLGNBQWMsSUFBSSxVQUFVLElBQUksbUJBQW1CLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztBQUVqSCxlQUFPO0FBQUE7QUFBQSxnQkFFRyxTQUFTO0FBQUEsa0JBQ1AsU0FBUztBQUFBLFVBQ2Ysd0NBQXdDLG9CQUFvQjtBQUFBLFVBQzVELHlDQUF5QyxvQkFBb0I7QUFBQSxVQUM3RCxzQ0FBc0MsbUJBQW1CO0FBQUEsVUFDekQsdUNBQXVDLG1CQUFtQjtBQUFBLFVBQzFELDJDQUEyQztBQUFBLFVBQzNDLDJDQUEyQztBQUFBLFFBQUEsQ0FDNUMsQ0FBQztBQUFBO0FBQUEsaUJBRUssZUFBZSxRQUFRLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlyQyxLQUFLLFNBQVMsV0FBVyxnQkFBZ0IsQ0FBQztBQUFBO0FBQUEsTUFFaEQsQ0FBQztBQUFBLElBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFPUSxlQUFlLGtCQUE2QztBQUNsRSxZQUFNLGdCQUFnQixpQkFBaUI7QUFFdkMsV0FBSyxpQ0FBaUM7QUFDdEMsV0FBSyx1QkFBdUI7QUFJNUIsVUFBSSxDQUFDLEtBQUssK0JBQStCO0FBQ3ZDLGFBQUssZ0NBQWdDO0FBQUEsTUFDdkM7QUFFQSxVQUFJLENBQUMsS0FBSyxtQkFBbUI7QUFFM0IsYUFBSyxvQ0FBb0MsYUFBYTtBQUN0RCxhQUFLLGtDQUFrQyxhQUFhO0FBQUEsTUFDdEQ7QUFBQSxJQUNGO0FBQUEsSUFFUSxrQkFBa0IsT0FBMEI7QUFDbEQsWUFBTSx3QkFBd0IsTUFBTTtBQUNwQyxXQUFLLHVCQUF1QjtBQUM1QixXQUFLLGlDQUFpQztBQUV0QyxVQUFJLDBCQUEwQixRQUFRLDBCQUEwQixLQUFLLHdCQUF3QjtBQUMzRixhQUFLLG9CQUFBO0FBQ0wsYUFBSyx5QkFBeUIscUJBQXFCO0FBQUEsTUFDckQsV0FBVywwQkFBMEIsS0FBSyx3QkFBd0I7QUFDaEUsYUFBSywyQkFBQTtBQUNMLGFBQUssc0JBQUE7QUFBQSxNQUNQO0FBR0EsV0FBSyxjQUFBO0FBQUEsSUFDUDtBQUFBLElBRVEsbUJBQWdCO0FBQ3RCLFVBQUksQ0FBQyxLQUFLLGdDQUFnQztBQUN4QyxhQUFLLHNCQUFBO0FBQUEsTUFDUCxPQUFPO0FBQ0wsYUFBSyxrQkFBa0IsS0FBSyxpQkFBaUI7QUFBQSxNQUMvQztBQUNBLFdBQUssa0JBQWtCO0FBQUEsSUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQVFRLFNBQ04sV0FDQSxnQkFBOEM7QUFFOUMsYUFBTztBQUFBLDhCQUNtQixTQUFTO0FBQUEsK0NBQ1EsY0FBYztBQUFBO0FBQUE7QUFBQSxJQUczRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNUSxnQkFBYTtBQUNuQixXQUFLLFlBQ0QsaUJBQW9DLDREQUFpQyxFQUN0RSxRQUFRLENBQUMsWUFBWSxRQUFRLE9BQU87QUFBQSxJQUN6QztBQUFBLElBRVEsMEJBQTBCLFdBQW9CO0FBQ3BELFVBQUksQ0FBQyxVQUFVLFFBQVEsUUFBUTtBQUM3QixlQUFPLHVCQUF1QiwrQkFBK0IsS0FBSyxVQUFVLFNBQVM7QUFBQSxVQUNuRixVQUFVO0FBQUEsUUFBQSxDQUNYO0FBQUEsTUFDSDtBQUVBLFVBQUk7QUFDSixZQUFNLG1CQUFtQixLQUFLLCtCQUErQixVQUFVLGVBQWdCO0FBQ3ZGLFlBQU0sc0JBQXNCLEtBQUssK0JBQStCLFVBQVUsZUFBZ0I7QUFFMUYsOEJBQXdCLHVCQUF1Qix1QkFBdUIsS0FBSyxVQUFVLFNBQVM7QUFBQSxRQUM1RixVQUFVO0FBQUEsTUFBQSxDQUNYO0FBRUQsVUFBSSxDQUFDLEtBQUssZUFBZTtBQUV2QixjQUFNLGFBQWEsS0FBSyxtQ0FBbUMsVUFBVSxNQUFNO0FBQzNFLGNBQU0sZ0JBQWdCLHVCQUNwQixvQ0FDQSxLQUFLLFVBQVUsU0FDZixDQUFDLFdBQVcsT0FBTyxXQUFXLFFBQVEsQ0FBQztBQUV6QyxnQ0FBd0Isc0JBQXNCLE9BQU8sSUFBSSxFQUFFLE9BQU8sYUFBYSxFQUFFLE9BQU8sSUFBSTtBQUFBLE1BQzlGO0FBRUEsVUFBSSxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxxQkFBcUI7QUFDL0MsaUNBQ0UsT0FBTyx1QkFBdUIsNEJBQTRCLEtBQUssVUFBVSxPQUFPLElBQUk7QUFDdEYsaUNBQXlCLHNCQUFzQixPQUFPLG1CQUFtQjtBQUFBLE1BQzNFO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUVRLCtCQUErQixzQkFBbUM7QUFDeEUsWUFBTSxxQkFBK0IsQ0FBQTtBQUVyQyxhQUFPLHNCQUNILElBQUksQ0FBQyx1QkFBc0I7QUFDM0IsY0FBTSxPQUFPLG1CQUFtQjtBQUNoQyxZQUFJLENBQUM7QUFBTSxpQkFBTztBQUVsQixjQUFNLDBCQUEwQixtQkFBbUIsUUFBUSxJQUFJLElBQUk7QUFDbkUsY0FBTSxjQUFjLHVCQUNsQixtQkFBbUIsTUFDbkIsS0FBSyxVQUFVLE9BQU87QUFFeEIsY0FBTSxxQkFDSixLQUFLLDRCQUE0QixRQUFRLElBQUksTUFBTSxNQUNuRCxLQUFLLGlCQUFpQixRQUFRLElBQUksTUFBTTtBQUUxQyxZQUFJLENBQUMseUJBQXlCO0FBQzVCLDZCQUFtQixLQUFLLG1CQUFtQixJQUFLO0FBQUEsUUFDbEQ7QUFDQSxlQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLHFCQUFxQixjQUFjO0FBQUEsTUFDekYsQ0FBQyxFQUNBLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFdBQVcsRUFDckMsS0FBSyxJQUFJO0FBQUEsSUFDZDtBQUFBOztBQXhzQkYsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUN5QixHQUFBLFNBQXlCLENBQUMsaUJBQWlCLEtBQUssR0FEbkUsa0JBQUEsWUFBQSx1QkFBQSxHQUEwQjs7OyJ9
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * @entrypoint
3
3
  */
4
- export * from './seat-reservation-area/seat-reservation-area.component.js';
4
+ export * from './seat-reservation-area/seat-reservation-area.component.ts';
5
5
  //# sourceMappingURL=seat-reservation-area.d.ts.map
@@ -300,4 +300,4 @@ export {
300
300
  assetsTemplate,
301
301
  svgImageByOSDMCode
302
302
  };
303
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1hc3NldHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1hc3NldHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyB1bnNhZmVIVE1MIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBtYXBJY29uVG9TdmcgfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3RhYmxlLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1hcmVhL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS5jb21wb25lbnQuanMnO1xuXG5jb25zdCBzdmdJbWFnZSA9IChzcmM6IHN0cmluZyk6IFRlbXBsYXRlUmVzdWx0ID0+IHtcbiAgcmV0dXJuIGh0bWxgXG4gICAgPGRpdiBjbGFzcz1cInN0b3J5LWFzc2V0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInN0b3J5LWFzc2V0X19wcmV2aWV3XCI+JHt1bnNhZmVIVE1MKHNyYyl9PC9zcGFuPlxuICAgIDwvZGl2PlxuICBgO1xufTtcblxuLyoqXG4gKiBzdmdJbWFnZUJ5T1NETUNvZGUgRnVuY3Rpb24gcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBzdmcgaW1hZ2UgYnkgT1NETSBDb2RlXG4gKiBAcGFyYW0gb3NkbUNvZGVcbiAqIEByZXR1cm5zIFRoZSBTVkcgSW1hZ2UgYXMgVGVtcGxhdGVSZXN1bHQgaWYgaXQgbWF0Y2hlcyB0aGUgT1NETSBjb2RlLCBvciBudWxsIGlmIGl0J3Mgbm90IGZvdW5kLlxuICovXG5leHBvcnQgY29uc3Qgc3ZnSW1hZ2VCeU9TRE1Db2RlID0gKG9zZG1Db2RlOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwgPT4ge1xuICByZXR1cm4gbWFwSWNvblRvU3ZnW29zZG1Db2RlXT8uc3ZnXG4gICAgPyBzdmdJbWFnZShtYXBJY29uVG9Tdmdbb3NkbUNvZGVdLnN2ZylcbiAgICA6IG1hcEljb25Ub1N2Z1tvc2RtQ29kZV0/LnN2Z05hbWVcbiAgICAgID8gaHRtbGA8c2JiLWljb24gbmFtZT1cIiR7bWFwSWNvblRvU3ZnW29zZG1Db2RlXS5zdmdOYW1lfVwiPjwvc2JiLWljb24+YFxuICAgICAgOiBudWxsO1xufTtcblxuY29uc3QgaW50ZXJpb3JUYWJsZSA9IGh0bWxgXG4gIDxzYmItdGFibGUtd3JhcHBlcj5cbiAgICA8dGFibGUgY2xhc3M9XCJzYmItdGFibGVcIj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlNWRzwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+RmlnbWE8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkNvZGU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUExBQ0VfQklDWUNMRV9GUkVFJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UGxhY2UtQmlrZTogQXZhaWxhYmxlPC90ZD5cbiAgICAgICAgICA8dGQ+UExBQ0VfQklDWUNMRV9GUkVFPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUExBQ0VfQklDWUNMRV9TRUxFQ1RFRCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLUJpa2U6IFNlbGVjdGVkPC90ZD5cbiAgICAgICAgICA8dGQ+UExBQ0VfQklDWUNMRV9TRUxFQ1RFRDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX0JJQ1lDTEVfQUxMT0NBVEVEJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UGxhY2UtQmlrZTogVW5hdmFpbGFibGU8L3RkPlxuICAgICAgICAgIDx0ZD5QTEFDRV9CSUNZQ0xFX0FMTE9DQVRFRDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX0JJQ1lDTEVfUkVTVFJJQ1RFRCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLUJpa2U6IE5vdCBib29rYWJsZTwvdGQ+XG4gICAgICAgICAgPHRkPlBMQUNFX0JJQ1lDTEVfUkVTVFJJQ1RFRDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX1NFQVRfRlJFRScpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLVNlYXQ6IEF2YWlsYWJsZTwvdGQ+XG4gICAgICAgICAgPHRkPlBMQUNFX1NFQVRfRlJFRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX1NFQVRfU0VMRUNURUQnKX08L3RkPlxuICAgICAgICAgIDx0ZD5QbGFjZS1TZWF0OiBTZWxlY3RlZDwvdGQ+XG4gICAgICAgICAgPHRkPlBMQUNFX1NFQVRfU0VMRUNURUQ8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFDRV9TRUFUX0FMTE9DQVRFRCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLVNlYXQ6IFVuYXZhaWxhYmxlPC90ZD5cbiAgICAgICAgICA8dGQ+UExBQ0VfU0VBVF9BTExPQ0FURUQ8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFDRV9TRUFUX1JFU1RSSUNURUQnKX08L3RkPlxuICAgICAgICAgIDx0ZD5QbGFjZS1TZWF0OiBOb3QgYm9va2FibGU8L3RkPlxuICAgICAgICAgIDx0ZD5QTEFDRV9TRUFUX1JFU1RSSUNURUQ8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L3NiYi10YWJsZS13cmFwcGVyPlxuYDtcbmNvbnN0IGxheW91dEl0ZW1zVGFibGUgPSBodG1sYFxuICA8c2JiLXRhYmxlLXdyYXBwZXI+XG4gICAgPHRhYmxlIGNsYXNzPVwic2JiLXRhYmxlXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5TVkc8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkZpZ21hPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5PU0RNIENvZGU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnRUFTWV9BQ0NFU1NfQVJFQScpfTwvdGQ+XG4gICAgICAgICAgPHRkPkVhc3kgQWNjZXNzIEFyZWE8L3RkPlxuICAgICAgICAgIDx0ZD5FQVNZX0FDQ0VTU19BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnRU5UUllfRVhJVCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPkVudHJhbmNlPC90ZD5cbiAgICAgICAgICA8dGQ+RU5UUllfRVhJVDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0xVR0dBR0VfQVJFQScpfTwvdGQ+XG4gICAgICAgICAgPHRkPkx1Z2dhZ2U8L3RkPlxuICAgICAgICAgIDx0ZD5MVUdHQUdFX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdNVUxUSV9GVU5DVElPTl9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+TXVsdGkgRnVuY3Rpb24gQXJlYTwvdGQ+XG4gICAgICAgICAgPHRkPk1VTFRJX0ZVTkNUSU9OX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFZR1JPVU5EX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5QbGF5Z3JvdW5kPC90ZD5cbiAgICAgICAgICA8dGQ+UExBWUdST1VORF9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUFJBTV9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UHJhbTwvdGQ+XG4gICAgICAgICAgPHRkPlBSQU1fQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1NLSV9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+U2tpPC90ZD5cbiAgICAgICAgICA8dGQ+U0tJX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdTVEFJUl9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+U3RhaXI8L3RkPlxuICAgICAgICAgIDx0ZD5TVEFJUl9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnVE9JTEVUX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Ub2lsZXQ8L3RkPlxuICAgICAgICAgIDx0ZD5UT0lMRVRfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1RPSUxFVF9XSEVFTENIQUlSX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Ub2lsZXQtSGFuZGljYXA8L3RkPlxuICAgICAgICAgIDx0ZD5UT0lMRVRfV0hFRUxDSEFJUl9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnV0FSRFJPQkVfQVJFQScpfTwvdGQ+XG4gICAgICAgICAgPHRkPldhcmRyb2JlPC90ZD5cbiAgICAgICAgICA8dGQ+V0FSRFJPQkVfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvc2JiLXRhYmxlLXdyYXBwZXI+XG5gO1xuY29uc3Qgc2VydmljZUljb25UYWJsZSA9IGh0bWxgXG4gIDxzYmItdGFibGUtd3JhcHBlcj5cbiAgICA8dGFibGUgYXJpYS1sYWJlbD1cIkF2YWlsYWJsZSBTZXJ2aWNlIEljb25zXCIgY2xhc3M9XCJzYmItdGFibGVcIj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlNWRzwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+RmlnbWE8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPk9TRE0gQ29kZTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdCSVNUUk8nKX08L3RkPlxuICAgICAgICAgIDx0ZD5CaXN0cm88L3RkPlxuICAgICAgICAgIDx0ZD5CSVNUUk88L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdCVVNJTkVTUycpfTwvdGQ+XG4gICAgICAgICAgPHRkPkJ1c2luZXNzPC90ZD5cbiAgICAgICAgICA8dGQ+QlVTSU5FU1M8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFZR1JPVU5EX0lDT04nKX08L3RkPlxuICAgICAgICAgIDx0ZD5GYW1pbHk8L3RkPlxuICAgICAgICAgIDx0ZD5QTEFZR1JPVU5EX0lDT048L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdMVUdHQUdFX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5MdWdnYWdlPC90ZD5cbiAgICAgICAgICA8dGQ+TFVHR0FHRV9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUFJBTV9JQ09OJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UHJhbTwvdGQ+XG4gICAgICAgICAgPHRkPlBSQU1fSUNPTjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0VBU1lfQUNDRVNTX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5FYXN5IEFjY2VzcyBBcmVhPC90ZD5cbiAgICAgICAgICA8dGQ+RUFTWV9BQ0NFU1NfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1JFU1RBVVJBTlRfSUNPTicpfTwvdGQ+XG4gICAgICAgICAgPHRkPlJlc3RhdXJhbnQ8L3RkPlxuICAgICAgICAgIDx0ZD5SRVNUQVVSQU5UX0lDT048L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdTSUxFTkNFX0FSRUFfSUNPTicpfTwvdGQ+XG4gICAgICAgICAgPHRkPlNpbGVuY2U8L3RkPlxuICAgICAgICAgIDx0ZD5TSUxFTkNFX0FSRUFfSUNPTjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1RPSUxFVF9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+VG9pbGV0PC90ZD5cbiAgICAgICAgICA8dGQ+VE9JTEVUX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdUT0lMRVRfV0hFRUxDSEFJUl9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+VG9pbGV0LVBSTTwvdGQ+XG4gICAgICAgICAgPHRkPlRPSUxFVF9XSEVFTENIQUlSX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdXSEVFTENIQUlSX0lDT04nKX08L3RkPlxuICAgICAgICAgIDx0ZD5XaGVlbGNoYWlyPC90ZD5cbiAgICAgICAgICA8dGQ+V0hFRUxDSEFJUl9JQ09OPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnV0lGSScpfTwvdGQ+XG4gICAgICAgICAgPHRkPldpZmk8L3RkPlxuICAgICAgICAgIDx0ZD5XSUZJPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9zYmItdGFibGUtd3JhcHBlcj5cbmA7XG5jb25zdCBjaGFzc2lzVGFibGUgPSBodG1sYFxuICA8c2JiLXRhYmxlLXdyYXBwZXI+XG4gICAgPHRhYmxlIGNsYXNzPVwic2JiLXRhYmxlXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5TVkc8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkZpZ21hPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5PU0RNIENvZGU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnRFJJVkVSX0FSRUFfVFJBSU4nKX08L3RkPlxuICAgICAgICAgIDx0ZD5Ecml2ZXIgQXJlYTxiciAvPihEZXBlbmRlbnQgb24gVmVoaWNsZS1UeXBlOiBUUkFJTik8L3RkPlxuICAgICAgICAgIDx0ZD5EUklWRVJfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0RSSVZFUl9BUkVBX0JVUycpfTwvdGQ+XG4gICAgICAgICAgPHRkPkRyaXZlciBBcmVhPGJyIC8+KERlcGVuZGVudCBvbiBWZWhpY2xlLVR5cGU6IEJVUyk8L3RkPlxuICAgICAgICAgIDx0ZD5EUklWRVJfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1BBU1NBR0VfSElHSCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPkNvbXBhcnRtZW50IFBhc3NhZ2UgSGlnaDwvdGQ+XG4gICAgICAgICAgPHRkPkNPTVBBUlRNRU5UX1BBU1NBR0VfSElHSDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1BBU1NBR0UnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Db21wYXJ0bWVudCBQYXNzYWdlPC90ZD5cbiAgICAgICAgICA8dGQ+Q09NUEFSVE1FTlRfUEFTU0FHRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1BBU1NBR0VfTE9XJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+Q29tcGFydG1lbnQgUGFzc2FnZSBMb3c8L3RkPlxuICAgICAgICAgIDx0ZD5DT01QQVJUTUVOVF9QQVNTQUdFX0xPVzwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPQUNIX1BBU1NBR0UnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Db2FjaCBQYXNzYWdlPC90ZD5cbiAgICAgICAgICA8dGQ+Q09BQ0hfUEFTU0FHRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1dBTEwnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Db21wYXJ0bWVudCBXYWxsPC90ZD5cbiAgICAgICAgICA8dGQ+Q09NUEFSVE1FTlRfV0FMTDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYVxuICAgICAgICAgICAgICBzdHlsZT1cIi0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS13aWR0aDogMTAwOyAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtaGVpZ2h0OiA1MDsgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNiYi1jb2xvci1taWxrKVwiXG4gICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlRhYmxlIFJlc3RhdXJhbnQ8YnIgLz4oV2lsbCBiZSByZW5kZXJlZCBhcyBDU1MpPC90ZD5cbiAgICAgICAgICA8dGQ+VEFCTEVfUkVTVEFVUkFOVDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPQUNIX1dBTExfTk9fUEFTU0FHRScpfTwvdGQ+XG4gICAgICAgICAgPHRkPkNvYWNoIFdhbGwgTm8gUGFzc2FnZTwvdGQ+XG4gICAgICAgICAgPHRkPkNPQUNIX1dBTExfTk9fUEFTU0FHRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvc2JiLXRhYmxlLXdyYXBwZXI+XG5gO1xuXG5leHBvcnQgY29uc3QgYXNzZXRzVGVtcGxhdGU6IFRlbXBsYXRlUmVzdWx0ID0gaHRtbGBcbiAgPHN0eWxlPlxuICAgIC5zdG9yeS1hc3NldCB7XG4gICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itd2hpdGUpO1xuICAgIH1cbiAgPC9zdHlsZT5cbiAgPGgxPkxpc3Qgb2YgYWxsIGN1cnJlbnRseSBhdmFpbGFibGUgYXNzZXRzLjwvaDE+XG4gIDxoMj5JbnRlcmlvcjwvaDI+XG4gICR7aW50ZXJpb3JUYWJsZX1cbiAgPGgyPkxheW91dDwvaDI+XG4gICR7bGF5b3V0SXRlbXNUYWJsZX1cbiAgPGgyPlNlcnZpY2UgSWNvbnM8L2gyPlxuICAke3NlcnZpY2VJY29uVGFibGV9XG4gIDxoMj5DaGFzc2lzPC9oMj5cbiAgJHtjaGFzc2lzVGFibGV9XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQVNBLE1BQU0sV0FBVyxDQUFDLFFBQStCO0FBQy9DLFNBQU87QUFBQTtBQUFBLDJDQUVrQyxXQUFXLEdBQUcsQ0FB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
303
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1hc3NldHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1hc3NldHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyB1bnNhZmVIVE1MIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBtYXBJY29uVG9TdmcgfSBmcm9tICcuLi9jb21tb24udHMnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3RhYmxlLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLnRzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1hcmVhL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS5jb21wb25lbnQudHMnO1xuXG5jb25zdCBzdmdJbWFnZSA9IChzcmM6IHN0cmluZyk6IFRlbXBsYXRlUmVzdWx0ID0+IHtcbiAgcmV0dXJuIGh0bWxgXG4gICAgPGRpdiBjbGFzcz1cInN0b3J5LWFzc2V0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInN0b3J5LWFzc2V0X19wcmV2aWV3XCI+JHt1bnNhZmVIVE1MKHNyYyl9PC9zcGFuPlxuICAgIDwvZGl2PlxuICBgO1xufTtcblxuLyoqXG4gKiBzdmdJbWFnZUJ5T1NETUNvZGUgRnVuY3Rpb24gcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBzdmcgaW1hZ2UgYnkgT1NETSBDb2RlXG4gKiBAcGFyYW0gb3NkbUNvZGVcbiAqIEByZXR1cm5zIFRoZSBTVkcgSW1hZ2UgYXMgVGVtcGxhdGVSZXN1bHQgaWYgaXQgbWF0Y2hlcyB0aGUgT1NETSBjb2RlLCBvciBudWxsIGlmIGl0J3Mgbm90IGZvdW5kLlxuICovXG5leHBvcnQgY29uc3Qgc3ZnSW1hZ2VCeU9TRE1Db2RlID0gKG9zZG1Db2RlOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwgPT4ge1xuICByZXR1cm4gbWFwSWNvblRvU3ZnW29zZG1Db2RlXT8uc3ZnXG4gICAgPyBzdmdJbWFnZShtYXBJY29uVG9Tdmdbb3NkbUNvZGVdLnN2ZylcbiAgICA6IG1hcEljb25Ub1N2Z1tvc2RtQ29kZV0/LnN2Z05hbWVcbiAgICAgID8gaHRtbGA8c2JiLWljb24gbmFtZT1cIiR7bWFwSWNvblRvU3ZnW29zZG1Db2RlXS5zdmdOYW1lfVwiPjwvc2JiLWljb24+YFxuICAgICAgOiBudWxsO1xufTtcblxuY29uc3QgaW50ZXJpb3JUYWJsZSA9IGh0bWxgXG4gIDxzYmItdGFibGUtd3JhcHBlcj5cbiAgICA8dGFibGUgY2xhc3M9XCJzYmItdGFibGVcIj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlNWRzwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+RmlnbWE8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkNvZGU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUExBQ0VfQklDWUNMRV9GUkVFJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UGxhY2UtQmlrZTogQXZhaWxhYmxlPC90ZD5cbiAgICAgICAgICA8dGQ+UExBQ0VfQklDWUNMRV9GUkVFPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUExBQ0VfQklDWUNMRV9TRUxFQ1RFRCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLUJpa2U6IFNlbGVjdGVkPC90ZD5cbiAgICAgICAgICA8dGQ+UExBQ0VfQklDWUNMRV9TRUxFQ1RFRDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX0JJQ1lDTEVfQUxMT0NBVEVEJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UGxhY2UtQmlrZTogVW5hdmFpbGFibGU8L3RkPlxuICAgICAgICAgIDx0ZD5QTEFDRV9CSUNZQ0xFX0FMTE9DQVRFRDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX0JJQ1lDTEVfUkVTVFJJQ1RFRCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLUJpa2U6IE5vdCBib29rYWJsZTwvdGQ+XG4gICAgICAgICAgPHRkPlBMQUNFX0JJQ1lDTEVfUkVTVFJJQ1RFRDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX1NFQVRfRlJFRScpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLVNlYXQ6IEF2YWlsYWJsZTwvdGQ+XG4gICAgICAgICAgPHRkPlBMQUNFX1NFQVRfRlJFRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1BMQUNFX1NFQVRfU0VMRUNURUQnKX08L3RkPlxuICAgICAgICAgIDx0ZD5QbGFjZS1TZWF0OiBTZWxlY3RlZDwvdGQ+XG4gICAgICAgICAgPHRkPlBMQUNFX1NFQVRfU0VMRUNURUQ8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFDRV9TRUFUX0FMTE9DQVRFRCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPlBsYWNlLVNlYXQ6IFVuYXZhaWxhYmxlPC90ZD5cbiAgICAgICAgICA8dGQ+UExBQ0VfU0VBVF9BTExPQ0FURUQ8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFDRV9TRUFUX1JFU1RSSUNURUQnKX08L3RkPlxuICAgICAgICAgIDx0ZD5QbGFjZS1TZWF0OiBOb3QgYm9va2FibGU8L3RkPlxuICAgICAgICAgIDx0ZD5QTEFDRV9TRUFUX1JFU1RSSUNURUQ8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L3NiYi10YWJsZS13cmFwcGVyPlxuYDtcbmNvbnN0IGxheW91dEl0ZW1zVGFibGUgPSBodG1sYFxuICA8c2JiLXRhYmxlLXdyYXBwZXI+XG4gICAgPHRhYmxlIGNsYXNzPVwic2JiLXRhYmxlXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5TVkc8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkZpZ21hPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5PU0RNIENvZGU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnRUFTWV9BQ0NFU1NfQVJFQScpfTwvdGQ+XG4gICAgICAgICAgPHRkPkVhc3kgQWNjZXNzIEFyZWE8L3RkPlxuICAgICAgICAgIDx0ZD5FQVNZX0FDQ0VTU19BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnRU5UUllfRVhJVCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPkVudHJhbmNlPC90ZD5cbiAgICAgICAgICA8dGQ+RU5UUllfRVhJVDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0xVR0dBR0VfQVJFQScpfTwvdGQ+XG4gICAgICAgICAgPHRkPkx1Z2dhZ2U8L3RkPlxuICAgICAgICAgIDx0ZD5MVUdHQUdFX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdNVUxUSV9GVU5DVElPTl9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+TXVsdGkgRnVuY3Rpb24gQXJlYTwvdGQ+XG4gICAgICAgICAgPHRkPk1VTFRJX0ZVTkNUSU9OX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFZR1JPVU5EX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5QbGF5Z3JvdW5kPC90ZD5cbiAgICAgICAgICA8dGQ+UExBWUdST1VORF9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUFJBTV9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UHJhbTwvdGQ+XG4gICAgICAgICAgPHRkPlBSQU1fQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1NLSV9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+U2tpPC90ZD5cbiAgICAgICAgICA8dGQ+U0tJX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdTVEFJUl9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+U3RhaXI8L3RkPlxuICAgICAgICAgIDx0ZD5TVEFJUl9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnVE9JTEVUX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Ub2lsZXQ8L3RkPlxuICAgICAgICAgIDx0ZD5UT0lMRVRfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1RPSUxFVF9XSEVFTENIQUlSX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Ub2lsZXQtSGFuZGljYXA8L3RkPlxuICAgICAgICAgIDx0ZD5UT0lMRVRfV0hFRUxDSEFJUl9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnV0FSRFJPQkVfQVJFQScpfTwvdGQ+XG4gICAgICAgICAgPHRkPldhcmRyb2JlPC90ZD5cbiAgICAgICAgICA8dGQ+V0FSRFJPQkVfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvc2JiLXRhYmxlLXdyYXBwZXI+XG5gO1xuY29uc3Qgc2VydmljZUljb25UYWJsZSA9IGh0bWxgXG4gIDxzYmItdGFibGUtd3JhcHBlcj5cbiAgICA8dGFibGUgYXJpYS1sYWJlbD1cIkF2YWlsYWJsZSBTZXJ2aWNlIEljb25zXCIgY2xhc3M9XCJzYmItdGFibGVcIj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlNWRzwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+RmlnbWE8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPk9TRE0gQ29kZTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdCSVNUUk8nKX08L3RkPlxuICAgICAgICAgIDx0ZD5CaXN0cm88L3RkPlxuICAgICAgICAgIDx0ZD5CSVNUUk88L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdCVVNJTkVTUycpfTwvdGQ+XG4gICAgICAgICAgPHRkPkJ1c2luZXNzPC90ZD5cbiAgICAgICAgICA8dGQ+QlVTSU5FU1M8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdQTEFZR1JPVU5EX0lDT04nKX08L3RkPlxuICAgICAgICAgIDx0ZD5GYW1pbHk8L3RkPlxuICAgICAgICAgIDx0ZD5QTEFZR1JPVU5EX0lDT048L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdMVUdHQUdFX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5MdWdnYWdlPC90ZD5cbiAgICAgICAgICA8dGQ+TFVHR0FHRV9BUkVBPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnUFJBTV9JQ09OJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+UHJhbTwvdGQ+XG4gICAgICAgICAgPHRkPlBSQU1fSUNPTjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0VBU1lfQUNDRVNTX0FSRUEnKX08L3RkPlxuICAgICAgICAgIDx0ZD5FYXN5IEFjY2VzcyBBcmVhPC90ZD5cbiAgICAgICAgICA8dGQ+RUFTWV9BQ0NFU1NfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1JFU1RBVVJBTlRfSUNPTicpfTwvdGQ+XG4gICAgICAgICAgPHRkPlJlc3RhdXJhbnQ8L3RkPlxuICAgICAgICAgIDx0ZD5SRVNUQVVSQU5UX0lDT048L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdTSUxFTkNFX0FSRUFfSUNPTicpfTwvdGQ+XG4gICAgICAgICAgPHRkPlNpbGVuY2U8L3RkPlxuICAgICAgICAgIDx0ZD5TSUxFTkNFX0FSRUFfSUNPTjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ1RPSUxFVF9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+VG9pbGV0PC90ZD5cbiAgICAgICAgICA8dGQ+VE9JTEVUX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdUT0lMRVRfV0hFRUxDSEFJUl9BUkVBJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+VG9pbGV0LVBSTTwvdGQ+XG4gICAgICAgICAgPHRkPlRPSUxFVF9XSEVFTENIQUlSX0FSRUE8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPiR7c3ZnSW1hZ2VCeU9TRE1Db2RlKCdXSEVFTENIQUlSX0lDT04nKX08L3RkPlxuICAgICAgICAgIDx0ZD5XaGVlbGNoYWlyPC90ZD5cbiAgICAgICAgICA8dGQ+V0hFRUxDSEFJUl9JQ09OPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnV0lGSScpfTwvdGQ+XG4gICAgICAgICAgPHRkPldpZmk8L3RkPlxuICAgICAgICAgIDx0ZD5XSUZJPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9zYmItdGFibGUtd3JhcHBlcj5cbmA7XG5jb25zdCBjaGFzc2lzVGFibGUgPSBodG1sYFxuICA8c2JiLXRhYmxlLXdyYXBwZXI+XG4gICAgPHRhYmxlIGNsYXNzPVwic2JiLXRhYmxlXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5TVkc8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkZpZ21hPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5PU0RNIENvZGU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD4ke3N2Z0ltYWdlQnlPU0RNQ29kZSgnRFJJVkVSX0FSRUFfVFJBSU4nKX08L3RkPlxuICAgICAgICAgIDx0ZD5Ecml2ZXIgQXJlYTxiciAvPihEZXBlbmRlbnQgb24gVmVoaWNsZS1UeXBlOiBUUkFJTik8L3RkPlxuICAgICAgICAgIDx0ZD5EUklWRVJfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0RSSVZFUl9BUkVBX0JVUycpfTwvdGQ+XG4gICAgICAgICAgPHRkPkRyaXZlciBBcmVhPGJyIC8+KERlcGVuZGVudCBvbiBWZWhpY2xlLVR5cGU6IEJVUyk8L3RkPlxuICAgICAgICAgIDx0ZD5EUklWRVJfQVJFQTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1BBU1NBR0VfSElHSCcpfTwvdGQ+XG4gICAgICAgICAgPHRkPkNvbXBhcnRtZW50IFBhc3NhZ2UgSGlnaDwvdGQ+XG4gICAgICAgICAgPHRkPkNPTVBBUlRNRU5UX1BBU1NBR0VfSElHSDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1BBU1NBR0UnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Db21wYXJ0bWVudCBQYXNzYWdlPC90ZD5cbiAgICAgICAgICA8dGQ+Q09NUEFSVE1FTlRfUEFTU0FHRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1BBU1NBR0VfTE9XJyl9PC90ZD5cbiAgICAgICAgICA8dGQ+Q29tcGFydG1lbnQgUGFzc2FnZSBMb3c8L3RkPlxuICAgICAgICAgIDx0ZD5DT01QQVJUTUVOVF9QQVNTQUdFX0xPVzwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPQUNIX1BBU1NBR0UnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Db2FjaCBQYXNzYWdlPC90ZD5cbiAgICAgICAgICA8dGQ+Q09BQ0hfUEFTU0FHRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPTVBBUlRNRU5UX1dBTEwnKX08L3RkPlxuICAgICAgICAgIDx0ZD5Db21wYXJ0bWVudCBXYWxsPC90ZD5cbiAgICAgICAgICA8dGQ+Q09NUEFSVE1FTlRfV0FMTDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYVxuICAgICAgICAgICAgICBzdHlsZT1cIi0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS13aWR0aDogMTAwOyAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtaGVpZ2h0OiA1MDsgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNiYi1jb2xvci1taWxrKVwiXG4gICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlRhYmxlIFJlc3RhdXJhbnQ8YnIgLz4oV2lsbCBiZSByZW5kZXJlZCBhcyBDU1MpPC90ZD5cbiAgICAgICAgICA8dGQ+VEFCTEVfUkVTVEFVUkFOVDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+JHtzdmdJbWFnZUJ5T1NETUNvZGUoJ0NPQUNIX1dBTExfTk9fUEFTU0FHRScpfTwvdGQ+XG4gICAgICAgICAgPHRkPkNvYWNoIFdhbGwgTm8gUGFzc2FnZTwvdGQ+XG4gICAgICAgICAgPHRkPkNPQUNIX1dBTExfTk9fUEFTU0FHRTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvc2JiLXRhYmxlLXdyYXBwZXI+XG5gO1xuXG5leHBvcnQgY29uc3QgYXNzZXRzVGVtcGxhdGU6IFRlbXBsYXRlUmVzdWx0ID0gaHRtbGBcbiAgPHN0eWxlPlxuICAgIC5zdG9yeS1hc3NldCB7XG4gICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itd2hpdGUpO1xuICAgIH1cbiAgPC9zdHlsZT5cbiAgPGgxPkxpc3Qgb2YgYWxsIGN1cnJlbnRseSBhdmFpbGFibGUgYXNzZXRzLjwvaDE+XG4gIDxoMj5JbnRlcmlvcjwvaDI+XG4gICR7aW50ZXJpb3JUYWJsZX1cbiAgPGgyPkxheW91dDwvaDI+XG4gICR7bGF5b3V0SXRlbXNUYWJsZX1cbiAgPGgyPlNlcnZpY2UgSWNvbnM8L2gyPlxuICAke3NlcnZpY2VJY29uVGFibGV9XG4gIDxoMj5DaGFzc2lzPC9oMj5cbiAgJHtjaGFzc2lzVGFibGV9XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQVNBLE1BQU0sV0FBVyxDQUFDLFFBQStCO0FBQy9DLFNBQU87QUFBQTtBQUFBLDJDQUVrQyxXQUFXLEdBQUcsQ0FBQztBQUFBO0FBQUE7QUFHMUQ7QUFPTyxNQUFNLHFCQUFxQixDQUFDLGFBQTJDO0FBQzVFLFNBQU8sYUFBYSxRQUFRLEdBQUcsTUFDM0IsU0FBUyxhQUFhLFFBQVEsRUFBRSxHQUFHLElBQ25DLGFBQWEsUUFBUSxHQUFHLFVBQ3RCLHVCQUF1QixhQUFhLFFBQVEsRUFBRSxPQUFPLGtCQUNyRDtBQUNSO0FBRUEsTUFBTSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBWU4sbUJBQW1CLG9CQUFvQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLeEMsbUJBQW1CLHdCQUF3QixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLNUMsbUJBQW1CLHlCQUF5QixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLN0MsbUJBQW1CLDBCQUEwQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLOUMsbUJBQW1CLGlCQUFpQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLckMsbUJBQW1CLHFCQUFxQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLekMsbUJBQW1CLHNCQUFzQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLMUMsbUJBQW1CLHVCQUF1QixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRM0QsTUFBTSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBWVQsbUJBQW1CLGtCQUFrQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLdEMsbUJBQW1CLFlBQVksQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBS2hDLG1CQUFtQixjQUFjLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUtsQyxtQkFBbUIscUJBQXFCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUt6QyxtQkFBbUIsaUJBQWlCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUtyQyxtQkFBbUIsV0FBVyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLL0IsbUJBQW1CLFVBQVUsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBSzlCLG1CQUFtQixZQUFZLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUtoQyxtQkFBbUIsYUFBYSxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLakMsbUJBQW1CLHdCQUF3QixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLNUMsbUJBQW1CLGVBQWUsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUW5ELE1BQU0sbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQVlULG1CQUFtQixRQUFRLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUs1QixtQkFBbUIsVUFBVSxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLOUIsbUJBQW1CLGlCQUFpQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLckMsbUJBQW1CLGNBQWMsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBS2xDLG1CQUFtQixXQUFXLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUsvQixtQkFBbUIsa0JBQWtCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUt0QyxtQkFBbUIsaUJBQWlCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUtyQyxtQkFBbUIsbUJBQW1CLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUt2QyxtQkFBbUIsYUFBYSxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLakMsbUJBQW1CLHdCQUF3QixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLNUMsbUJBQW1CLGlCQUFpQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLckMsbUJBQW1CLE1BQU0sQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUTFDLE1BQU0sZUFBZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFZTCxtQkFBbUIsbUJBQW1CLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUt2QyxtQkFBbUIsaUJBQWlCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUtyQyxtQkFBbUIsMEJBQTBCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUs5QyxtQkFBbUIscUJBQXFCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUt6QyxtQkFBbUIseUJBQXlCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUs3QyxtQkFBbUIsZUFBZSxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFLbkMsbUJBQW1CLGtCQUFrQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQWV0QyxtQkFBbUIsdUJBQXVCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNwRCxNQUFNLGlCQUFpQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQVMxQyxhQUFhO0FBQUE7QUFBQSxJQUViLGdCQUFnQjtBQUFBO0FBQUEsSUFFaEIsZ0JBQWdCO0FBQUE7QUFBQSxJQUVoQixZQUFZO0FBQUE7In0=
@@ -161,4 +161,4 @@ let SbbSeatReservationGraphicElement = (() => {
161
161
  export {
162
162
  SbbSeatReservationGraphicElement
163
163
  };
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiwgbWFwSWNvblRvU3ZnIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvaWNvbi5qcyc7XG5cbi8qKlxuICogT3V0cHV0IG9uZSBvZiB0aGUgU1ZHIGdyYXBoaWNzIGJhc2VkIG9uIGl0cyBjb2RlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcblxuICAvKiogTmFtZSBvZiB0aGUgU1ZHIGdyYXBoaWMgdG8gYmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbmFtZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBpZiB0cnVlLCBzY2FsZSB0aGUgZ3JhcGhpYyBjb250ZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50IG5vbi11bmlmb3JtbHkgaWYgbmVjZXNzYXJ5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdHJldGNoJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc3RyZXRjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnT2JqID0gbWFwSWNvblRvU3ZnW3RoaXMubmFtZV07XG5cbiAgICBpZiAoIXN2Z09iaj8uc3ZnICYmICFzdmdPYmo/LnN2Z05hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLWljb24nOiAhIXN2Z09iai5zdmdOYW1lLFxuICAgICAgICAnc2JiLXNyLWdyYXBoaWMnOiAhIXN2Z09iai5zdmcsXG4gICAgICB9KX1cIlxuICAgID5cbiAgICAgICR7c3ZnT2JqLnN2Z05hbWVcbiAgICAgICAgPyBodG1sYCA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9XCIke3N2Z09iai5zdmdOYW1lIHx8ICcnfVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oc3ZnT2JqLnN2Z05hbWUsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICA6IGh0bWxgJHt0aGlzLl9nZXRTdmdFbGVtZW50KHN2Z09iai5zdmchKX1gfVxuICAgIDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3ZnRWxlbWVudChzdmc6IHN0cmluZyk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgY29uc3Qgc3ZnU3RyaW5nID0gc3ZnIHx8ICc8c3ZnPjwvc3ZnPic7XG4gICAgY29uc3Qgc3ZnRWxtID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhzdmdTdHJpbmcsICdpbWFnZS9zdmcreG1sJykuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRoaXMuc3RyZXRjaCAmJiBzdmdFbG0/Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnKSB7XG4gICAgICBzdmdFbG0uc2V0QXR0cmlidXRlKCdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywgJ25vbmUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN2Z0VsbTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYyc6IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBbUJNLG9DQUFnQyxNQUFBOzswQkFEckMsY0FBYyw4QkFBOEIsQ0FBQzs7OztvQkFDQzs7Ozs7OztBQUFSLEVBQUEsbUJBQVEsWUFBVTtBQUFBOztBQU12RDtBQUtBO0FBTGdCLHlCQUFBLHdCQUFBLGtCQUFBLE1BQUEsb0JBQWUsRUFBRTtBQUtqQix5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztBQUVoQyxXQUFBLGtFQUFZLElBQUksc0JBQXNCLElBQUk7QUFBQSxJQWtDcEQ7QUFBQTtBQUFBLElBekNFLElBQWdCLE9BQUk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLcEIsSUFBZ0IsVUFBTztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0FBQUEseUJBQUEsMkJBQUE7QUFBQSxJQUFBO0FBQUEsSUFJSixTQUFNO0FBQ3ZCLFlBQU0sU0FBUyxhQUFhLEtBQUssSUFBSTtBQUVyQyxVQUFJLENBQUMsUUFBUSxPQUFPLENBQUMsUUFBUSxTQUFTO0FBQ3BDLGVBQU87QUFBQSxNQUNUO0FBRUEsYUFBTztBQUFBLGVBQ0ksU0FBUztBQUFBLFFBQ2hCLGVBQWUsQ0FBQyxDQUFDLE9BQU87QUFBQSxRQUN4QixrQkFBa0IsQ0FBQyxDQUFDLE9BQU87QUFBQSxNQUFBLENBQzVCLENBQUM7QUFBQTtBQUFBLFFBRUEsT0FBTyxVQUNMO0FBQUEsb0JBQ1UsT0FBTyxXQUFXLEVBQUU7QUFBQTtBQUFBLDBCQUVkLHVCQUF1QixPQUFPLFNBQVMsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBLDBCQUU5RSxPQUFPLEtBQUssZUFBZSxPQUFPLEdBQUksQ0FBQyxFQUFFO0FBQUE7QUFBQSxJQUVqRDtBQUFBLElBRVEsZUFBZSxLQUFXO0FBQ2hDLFlBQU0sU0FBUyxJQUFJLFVBQUE7QUFDbkIsWUFBTSxZQUFZLE9BQU87QUFDekIsWUFBTSxTQUFTLE9BQU8sZ0JBQWdCLFdBQVcsZUFBZSxFQUFFO0FBQ2xFLFVBQUksS0FBSyxXQUFXLFFBQVEsU0FBUyxZQUFBLE1BQWtCLE9BQU87QUFDNUQsZUFBTyxhQUFhLHVCQUF1QixNQUFNO0FBQUEsTUFDbkQ7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEtBeENBLHdDQUtBOzt3QkFQQyxhQUNBLFNBQVMsRUFBRSxXQUFXLE9BQUEsQ0FBUSxDQUFDO0FBSS9CLDBCQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLFdBQVcsTUFBTSxRQUFBLENBQVMsQ0FBQztBQUpsRCxpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixNQUFJLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsb0JBQUEsdUJBQUE7QUFLcEIsaUJBQUEsSUFBQSxNQUFBLHFCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsV0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxhQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsU0FBTyxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLHVCQUFBLDBCQUFBO0FBWHpCLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLGlCQUFpQixLQUFLLEdBRG5FLGtCQUFBLFlBQUEsdUJBQUEsR0FBaUM7OzsifQ==
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiwgbWFwSWNvblRvU3ZnIH0gZnJvbSAnLi4vY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvaWNvbi5qcyc7XG5cbi8qKlxuICogT3V0cHV0IG9uZSBvZiB0aGUgU1ZHIGdyYXBoaWNzIGJhc2VkIG9uIGl0cyBjb2RlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcblxuICAvKiogTmFtZSBvZiB0aGUgU1ZHIGdyYXBoaWMgdG8gYmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbmFtZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBpZiB0cnVlLCBzY2FsZSB0aGUgZ3JhcGhpYyBjb250ZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50IG5vbi11bmlmb3JtbHkgaWYgbmVjZXNzYXJ5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdHJldGNoJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc3RyZXRjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnT2JqID0gbWFwSWNvblRvU3ZnW3RoaXMubmFtZV07XG5cbiAgICBpZiAoIXN2Z09iaj8uc3ZnICYmICFzdmdPYmo/LnN2Z05hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLWljb24nOiAhIXN2Z09iai5zdmdOYW1lLFxuICAgICAgICAnc2JiLXNyLWdyYXBoaWMnOiAhIXN2Z09iai5zdmcsXG4gICAgICB9KX1cIlxuICAgID5cbiAgICAgICR7c3ZnT2JqLnN2Z05hbWVcbiAgICAgICAgPyBodG1sYCA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9XCIke3N2Z09iai5zdmdOYW1lIHx8ICcnfVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oc3ZnT2JqLnN2Z05hbWUsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICA6IGh0bWxgJHt0aGlzLl9nZXRTdmdFbGVtZW50KHN2Z09iai5zdmchKX1gfVxuICAgIDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3ZnRWxlbWVudChzdmc6IHN0cmluZyk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgY29uc3Qgc3ZnU3RyaW5nID0gc3ZnIHx8ICc8c3ZnPjwvc3ZnPic7XG4gICAgY29uc3Qgc3ZnRWxtID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhzdmdTdHJpbmcsICdpbWFnZS9zdmcreG1sJykuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRoaXMuc3RyZXRjaCAmJiBzdmdFbG0/Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnKSB7XG4gICAgICBzdmdFbG0uc2V0QXR0cmlidXRlKCdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywgJ25vbmUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN2Z0VsbTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYyc6IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBbUJNLG9DQUFnQyxNQUFBOzswQkFEckMsY0FBYyw4QkFBOEIsQ0FBQzs7OztvQkFDQzs7Ozs7OztBQUFSLEVBQUEsbUJBQVEsWUFBVTtBQUFBOztBQU12RDtBQUtBO0FBTGdCLHlCQUFBLHdCQUFBLGtCQUFBLE1BQUEsb0JBQWUsRUFBRTtBQUtqQix5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztBQUVoQyxXQUFBLGtFQUFZLElBQUksc0JBQXNCLElBQUk7QUFBQSxJQWtDcEQ7QUFBQTtBQUFBLElBekNFLElBQWdCLE9BQUk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLcEIsSUFBZ0IsVUFBTztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0FBQUEseUJBQUEsMkJBQUE7QUFBQSxJQUFBO0FBQUEsSUFJSixTQUFNO0FBQ3ZCLFlBQU0sU0FBUyxhQUFhLEtBQUssSUFBSTtBQUVyQyxVQUFJLENBQUMsUUFBUSxPQUFPLENBQUMsUUFBUSxTQUFTO0FBQ3BDLGVBQU87QUFBQSxNQUNUO0FBRUEsYUFBTztBQUFBLGVBQ0ksU0FBUztBQUFBLFFBQ2hCLGVBQWUsQ0FBQyxDQUFDLE9BQU87QUFBQSxRQUN4QixrQkFBa0IsQ0FBQyxDQUFDLE9BQU87QUFBQSxNQUFBLENBQzVCLENBQUM7QUFBQTtBQUFBLFFBRUEsT0FBTyxVQUNMO0FBQUEsb0JBQ1UsT0FBTyxXQUFXLEVBQUU7QUFBQTtBQUFBLDBCQUVkLHVCQUF1QixPQUFPLFNBQVMsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBLDBCQUU5RSxPQUFPLEtBQUssZUFBZSxPQUFPLEdBQUksQ0FBQyxFQUFFO0FBQUE7QUFBQSxJQUVqRDtBQUFBLElBRVEsZUFBZSxLQUFXO0FBQ2hDLFlBQU0sU0FBUyxJQUFJLFVBQUE7QUFDbkIsWUFBTSxZQUFZLE9BQU87QUFDekIsWUFBTSxTQUFTLE9BQU8sZ0JBQWdCLFdBQVcsZUFBZSxFQUFFO0FBQ2xFLFVBQUksS0FBSyxXQUFXLFFBQVEsU0FBUyxZQUFBLE1BQWtCLE9BQU87QUFDNUQsZUFBTyxhQUFhLHVCQUF1QixNQUFNO0FBQUEsTUFDbkQ7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEtBeENBLHdDQUtBOzt3QkFQQyxhQUNBLFNBQVMsRUFBRSxXQUFXLE9BQUEsQ0FBUSxDQUFDO0FBSS9CLDBCQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLFdBQVcsTUFBTSxRQUFBLENBQVMsQ0FBQztBQUpsRCxpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixNQUFJLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsb0JBQUEsdUJBQUE7QUFLcEIsaUJBQUEsSUFBQSxNQUFBLHFCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsV0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxhQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsU0FBTyxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLHVCQUFBLDBCQUFBO0FBWHpCLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLGlCQUFpQixLQUFLLEdBRG5FLGtCQUFBLFlBQUEsdUJBQUEsR0FBaUM7OzsifQ==
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * @entrypoint
3
3
  */
4
- export * from './seat-reservation-graphic/seat-reservation-graphic.component.js';
4
+ export * from './seat-reservation-graphic/seat-reservation-graphic.component.ts';
5
5
  //# sourceMappingURL=seat-reservation-graphic.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
2
- import { CoachNumberOfFreePlaces, PlaceTravelClass } from '../common.js';
2
+ import { CoachNumberOfFreePlaces, PlaceTravelClass } from '../common.ts';
3
3
  export type SelectCoachEventDetails = number;
4
4
  /**
5
5
  * This component will display the navigation coach item for Seat reservation.
@@ -14,12 +14,16 @@ export declare class SbbSeatReservationNavigationCoachElement extends LitElement
14
14
  accessor coachId: string;
15
15
  /** Coach service property ids, which are used to display the services in the navigation */
16
16
  accessor propertyIds: string[];
17
- /** Pre-selected coach index property */
17
+ /** Select coach property */
18
18
  accessor selected: boolean;
19
- /** Focused coach index property */
19
+ /** Focus coach property */
20
20
  accessor focused: boolean;
21
+ /** Hover coach property */
22
+ accessor hovered: boolean;
23
+ /** Native focus for this navigation coach is also set when the focused property is changed */
24
+ accessor nativeFocusActive: boolean;
21
25
  accessor index: number;
22
- /** Representation of places available for selecting, counting seat places and bicycle places separetely */
26
+ /** Representation of places available for selecting, counting seat places and bicycle places separately */
23
27
  accessor freePlacesByType: CoachNumberOfFreePlaces;
24
28
  /** Travel class of the coach */
25
29
  accessor travelClass: PlaceTravelClass[];
@@ -1 +1 @@
1
- {"version":3,"file":"seat-reservation-navigation-coach.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAW,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC7F,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI9E,OAAO,+CAA+C,CAAC;AACvD,OAAO,4CAA4C,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,qBAEM,wCAAyC,SAAQ,UAAU;IAC/D,OAAuB,MAAM,EAAE,cAAc,CAA4B;IACzE,gBAAuB,MAAM;;;MAGlB;IAEX,sEAAsE;IACtE,SAEgB,OAAO,EAAE,MAAM,CAAM;IAErC,2FAA2F;IAC3F,SACgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,wCAAwC;IACxC,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,mCAAmC;IACnC,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,SAEgB,KAAK,EAAE,MAAM,CAAK;IAElC,2GAA2G;IAC3G,SACgB,gBAAgB,EAAE,uBAAuB,CAA6B;IAEtF,gCAAgC;IAChC,SACgB,WAAW,EAAE,gBAAgB,EAAE,CAAiB;IAEhE,+CAA+C;IAC/C,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C,kDAAkD;IAClD,SAEgB,KAAK,EAAE,OAAO,CAAS;IAEvC,iDAAiD;IACjD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC,mCAAmC;IACnC,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,6DAA6D;IAC7D,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAwB5E;;;;OAIG;cACgB,MAAM,IAAI,cAAc;IAqB3C,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kCAAkC;IAmC1C,OAAO,CAAC,gCAAgC;IAYxC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,2BAA2B;CASpC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uCAAuC,EAAE,wCAAwC,CAAC;KACnF;CACF"}
1
+ {"version":3,"file":"seat-reservation-navigation-coach.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAW,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC7F,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI9E,OAAO,+CAA+C,CAAC;AACvD,OAAO,4CAA4C,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,qBAEM,wCAAyC,SAAQ,UAAU;IAC/D,OAAuB,MAAM,EAAE,cAAc,CAA4B;IACzE,gBAAuB,MAAM;;;MAGlB;IAEX,sEAAsE;IACtE,SAEgB,OAAO,EAAE,MAAM,CAAM;IAErC,2FAA2F;IAC3F,SACgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,4BAA4B;IAC5B,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,2BAA2B;IAC3B,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,2BAA2B;IAC3B,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,8FAA8F;IAC9F,SAEgB,iBAAiB,EAAE,OAAO,CAAQ;IAElD,SAEgB,KAAK,EAAE,MAAM,CAAK;IAElC,2GAA2G;IAC3G,SACgB,gBAAgB,EAAE,uBAAuB,CAA6B;IAEtF,gCAAgC;IAChC,SACgB,WAAW,EAAE,gBAAgB,EAAE,CAAiB;IAEhE,+CAA+C;IAC/C,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C,kDAAkD;IAClD,SAEgB,KAAK,EAAE,OAAO,CAAS;IAEvC,iDAAiD;IACjD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC,mCAAmC;IACnC,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,6DAA6D;IAC7D,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5E;;;;OAIG;cACgB,MAAM,IAAI,cAAc;IAsB3C,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kCAAkC;IAmC1C,OAAO,CAAC,gCAAgC;IAYxC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,2BAA2B;CASpC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uCAAuC,EAAE,wCAAwC,CAAC;KACnF;CACF"}