@sbb-esta/lyne-elements-experimental-dev 5.0.0-next.1-dev.1777525840 → 5.0.0-next.1-dev.1777528735

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 (35) hide show
  1. package/custom-elements.json +220 -99
  2. package/development/seat-reservation/common/types.d.ts +3 -4
  3. package/development/seat-reservation/common/types.d.ts.map +1 -1
  4. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +38 -7
  5. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  6. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +143 -32
  7. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -13
  8. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  9. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  10. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  11. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  12. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  13. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  14. package/development/seat-reservation-area.component-DlH14rY-.js +94 -0
  15. package/development/seat-reservation-graphic.component-B771YtOf.js +129 -0
  16. package/development/{seat-reservation-navigation-coach.component-cSX-OEsP.js → seat-reservation-navigation-coach.component-CnA9MEBr.js} +3 -3
  17. package/development/seat-reservation.component-CZm8Lsj1.js +472 -0
  18. package/development/seat-reservation.js +4 -4
  19. package/development/seat-reservation.pure.js +4 -4
  20. package/package.json +2 -2
  21. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +130 -77
  22. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  23. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  24. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  25. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  26. package/{seat-reservation-area.component-CVc6uuMG.js → seat-reservation-area.component-B_T7k-dq.js} +1 -1
  27. package/seat-reservation-graphic.component-BNtFgIVM.js +102 -0
  28. package/{seat-reservation-navigation-coach.component-cYSUjsBj.js → seat-reservation-navigation-coach.component-BF2dTeIb.js} +2 -2
  29. package/{seat-reservation.component-80NgYHsf.js → seat-reservation.component-CNtc2Xcr.js} +74 -81
  30. package/seat-reservation.js +4 -4
  31. package/seat-reservation.pure.js +4 -4
  32. package/development/seat-reservation-area.component-BQEtJhk0.js +0 -94
  33. package/development/seat-reservation-graphic.component-XpqxL5nq.js +0 -129
  34. package/development/seat-reservation.component-Dkn66vPo.js +0 -518
  35. package/seat-reservation-graphic.component-Dzkv9tyR.js +0 -102
@@ -11,7 +11,6 @@ export declare class SbbSeatReservationElement extends SeatReservationBaseElemen
11
11
  static styles: CSSResultGroup;
12
12
  private _language;
13
13
  private _coachesHtmlTemplate?;
14
- private _notFixedRotatableAreaIcons;
15
14
  protected willUpdate(changedProperties: PropertyValues<this>): void;
16
15
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
17
16
  protected render(): TemplateResult | null;
@@ -35,18 +34,8 @@ export declare class SbbSeatReservationElement extends SeatReservationBaseElemen
35
34
  private _getRenderedCoachBorders;
36
35
  private _getRenderedRowPlaces;
37
36
  private _getRenderedColumnPlaces;
38
- private _getRenderedGraphicalElements;
39
- /**
40
- * creates a rendered element with an area component
41
- * @param graphicalElement
42
- * @param rotation
43
- * @param coachDimension
44
- * @param coachIndex used to generate a unique id for the popover trigger
45
- * @param coachDeckIndex used to generate a unique id
46
- * @private
47
- */
48
- private _getRenderElementWithArea;
49
- private _getRenderElementWithoutArea;
37
+ private _getRenderedCoachElements;
38
+ private _getRenderedAreaElements;
50
39
  private _getRenderedServiceElements;
51
40
  /**
52
41
  * Manages the selected place event triggered from the place
@@ -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":"AACA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,iCAAiC,CAAC;AAG9F,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAsB1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,0BAA0B;IACvE,gBAAgC,WAAW,EAAE,MAAM,CAA0B;IAC7E,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAQ1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAI3C;IAEF,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAG9C,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;IAwC/C,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,8BAA8B;IA0CtC,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,iBAAiB;IAwCzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAuC3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA0EhC,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,wBAAwB;IA8DhC,OAAO,CAAC,6BAA6B;IAkCrC;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IA4FjC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,2BAA2B;IA0CnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAUxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,yBAAyB;IAuCjC,OAAO,CAAC,8BAA8B;CA2BvC;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":"AACA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,iCAAiC,CAAC;AAG9F,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAqB1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,0BAA0B;IACvE,gBAAgC,WAAW,EAAE,MAAM,CAA0B;IAC7E,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAQ1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAI3C;IAEF,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;cAE3B,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;IAwC/C,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,8BAA8B;IA0CtC,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,iBAAiB;IAwCzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAmC3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,wBAAwB;IA8DhC,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,wBAAwB;IAyDhC,OAAO,CAAC,2BAA2B;IAmCnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAUxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,yBAAyB;IAuCjC,OAAO,CAAC,8BAA8B;CA2BvC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbSeatReservationElement } from "../../seat-reservation.component-Dkn66vPo.js";
1
+ import { t as SbbSeatReservationElement } from "../../seat-reservation.component-CZm8Lsj1.js";
2
2
  export { SbbSeatReservationElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbSeatReservationAreaElement } from "../../seat-reservation-area.component-BQEtJhk0.js";
1
+ import { t as SbbSeatReservationAreaElement } from "../../seat-reservation-area.component-DlH14rY-.js";
2
2
  export { SbbSeatReservationAreaElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbSeatReservationGraphicElement } from "../../seat-reservation-graphic.component-XpqxL5nq.js";
1
+ import { t as SbbSeatReservationGraphicElement } from "../../seat-reservation-graphic.component-B771YtOf.js";
2
2
  export { SbbSeatReservationGraphicElement };
@@ -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":"AAAA,OAAO,EAGL,UAAU,EACV,KAAK,cAAc,EAGpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAKb,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,qBAAa,wCAAyC,SAAQ,UAAU;IACtE,gBAAgC,WAAW,EAAE,MAAM,CAA2C;IAC9F,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAE1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAI3C;IACF,gBAAuB,MAAM;;;MAGlB;IAEX,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,SACgB,gBAAgB,EAAE,gBAAgB,CAAwB;IAE1E,mCAAmC;IACnC,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,6DAA6D;IAC7D,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,+CAA+C;IAC/C,SAEgB,aAAa,EAAE,OAAO,CAAS;IAE/C,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5E;;;;OAIG;cACgB,MAAM,IAAI,cAAc;IAwB3C,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kCAAkC;IA4C1C,OAAO,CAAC,gCAAgC;IAaxC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,2BAA2B;CAOpC;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":"AAAA,OAAO,EAGL,UAAU,EACV,KAAK,cAAc,EAGpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAKb,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,qBAAa,wCAAyC,SAAQ,UAAU;IACtE,gBAAgC,WAAW,EAAE,MAAM,CAA2C;IAC9F,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAE1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAI3C;IACF,gBAAuB,MAAM;;;MAGlB;IAEX,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,SACgB,gBAAgB,EAAE,gBAAgB,CAAwB;IAE1E,mCAAmC;IACnC,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,6DAA6D;IAC7D,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,+CAA+C;IAC/C,SAEgB,aAAa,EAAE,OAAO,CAAS;IAE/C,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5E;;;;OAIG;cACgB,MAAM,IAAI,cAAc;IAwB3C,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kCAAkC;IAyC1C,OAAO,CAAC,gCAAgC;IAaxC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,2BAA2B;CAOpC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uCAAuC,EAAE,wCAAwC,CAAC;KACnF;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbSeatReservationNavigationCoachElement } from "../../seat-reservation-navigation-coach.component-cSX-OEsP.js";
1
+ import { t as SbbSeatReservationNavigationCoachElement } from "../../seat-reservation-navigation-coach.component-CnA9MEBr.js";
2
2
  export { SbbSeatReservationNavigationCoachElement };
@@ -0,0 +1,94 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { SbbElement, boxSizingStyles, forceType } from "@sbb-esta/lyne-elements/core.js";
3
+ import { html, unsafeCSS } from "lit";
4
+ import { property } from "lit/decorators.js";
5
+ //#region src/elements-experimental/seat-reservation/seat-reservation-area/seat-reservation-area.scss?inline
6
+ var seat_reservation_area_default = ":host {\n --sbb-seat-reservation-area-border-radius: var(--sbb-border-width-4x);\n --sbb-seat-reservation-area-rotation: 0;\n --sbb-seat-reservation-area-z-index: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n height: calc(var(--sbb-seat-reservation-area-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n width: calc(var(--sbb-seat-reservation-area-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n border: var(--sbb-border-width-1x) solid var(--sbb-color-graphite);\n border: var(--sbb-border-width-1x) solid light-dark(var(--sbb-color-graphite), var(--sbb-color-granite));\n border-radius: var(--sbb-seat-reservation-area-border-radius);\n position: absolute;\n z-index: var(--sbb-seat-reservation-area-z-index);\n inset-block-start: calc(var(--sbb-seat-reservation-area-top) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-inline-start: calc(var(--sbb-seat-reservation-area-left) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n rotate: calc(var(--sbb-seat-reservation-area-rotation) * 1deg);\n line-height: normal;\n background-color: var(--sbb-background-color-2);\n}\n\n:host([background=dark]) {\n background-color: var(--sbb-color-milk);\n background-color: light-dark(var(--sbb-color-milk), var(--sbb-color-iron));\n}\n\n:host([mounting=upper-border]) {\n border-block-start-width: 0;\n border-radius: 0 0 var(--sbb-seat-reservation-area-border-radius) var(--sbb-seat-reservation-area-border-radius);\n}\n\n:host([mounting=lower-border]) {\n border-block-end-width: 0;\n border-radius: var(--sbb-seat-reservation-area-border-radius) var(--sbb-seat-reservation-area-border-radius) 0 0;\n}\n\n:host([mounting=upper-to-lower-border]) {\n border-block-start: none;\n border-block-end: none;\n border-radius: 0;\n}\n\n:host(.sbb-seat-reservation-area--cursor-pointer) {\n cursor: var(--sbb-cursor-pointer);\n}";
7
+ //#endregion
8
+ //#region src/elements-experimental/seat-reservation/seat-reservation-area/seat-reservation-area.component.ts
9
+ /**
10
+ * Visualize an area with a special meaning within a wagon.
11
+ */
12
+ var SbbSeatReservationAreaElement = (() => {
13
+ let _classSuper = SbbElement;
14
+ let _mounting_decorators;
15
+ let _mounting_initializers = [];
16
+ let _mounting_extraInitializers = [];
17
+ let _background_decorators;
18
+ let _background_initializers = [];
19
+ let _background_extraInitializers = [];
20
+ return class SbbSeatReservationAreaElement extends _classSuper {
21
+ static {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
23
+ _mounting_decorators = [forceType(), property({ reflect: true })];
24
+ _background_decorators = [forceType(), property({ reflect: true })];
25
+ __esDecorate(this, null, _mounting_decorators, {
26
+ kind: "accessor",
27
+ name: "mounting",
28
+ static: false,
29
+ private: false,
30
+ access: {
31
+ has: (obj) => "mounting" in obj,
32
+ get: (obj) => obj.mounting,
33
+ set: (obj, value) => {
34
+ obj.mounting = value;
35
+ }
36
+ },
37
+ metadata: _metadata
38
+ }, _mounting_initializers, _mounting_extraInitializers);
39
+ __esDecorate(this, null, _background_decorators, {
40
+ kind: "accessor",
41
+ name: "background",
42
+ static: false,
43
+ private: false,
44
+ access: {
45
+ has: (obj) => "background" in obj,
46
+ get: (obj) => obj.background,
47
+ set: (obj, value) => {
48
+ obj.background = value;
49
+ }
50
+ },
51
+ metadata: _metadata
52
+ }, _background_initializers, _background_extraInitializers);
53
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true,
57
+ value: _metadata
58
+ });
59
+ }
60
+ static {
61
+ this.elementName = "sbb-seat-reservation-area";
62
+ }
63
+ static {
64
+ this.styles = [boxSizingStyles, unsafeCSS(seat_reservation_area_default)];
65
+ }
66
+ #mounting_accessor_storage = __runInitializers(this, _mounting_initializers, "free");
67
+ /** Mounting Prop */
68
+ get mounting() {
69
+ return this.#mounting_accessor_storage;
70
+ }
71
+ set mounting(value) {
72
+ this.#mounting_accessor_storage = value;
73
+ }
74
+ #background_accessor_storage = (__runInitializers(this, _mounting_extraInitializers), __runInitializers(this, _background_initializers, "light"));
75
+ /** the background of the area */
76
+ get background() {
77
+ return this.#background_accessor_storage;
78
+ }
79
+ set background(value) {
80
+ this.#background_accessor_storage = value;
81
+ }
82
+ render() {
83
+ return html`<slot></slot>`;
84
+ }
85
+ constructor() {
86
+ super(...arguments);
87
+ __runInitializers(this, _background_extraInitializers);
88
+ }
89
+ };
90
+ })();
91
+ //#endregion
92
+ export { SbbSeatReservationAreaElement as t };
93
+
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1hcmVhLmNvbXBvbmVudC1EbEgxNHJZLS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1hcmVhL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLWFyZWEvc2VhdC1yZXNlcnZhdGlvbi1hcmVhLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTR4KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLXJvdGF0aW9uOiAwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtei1pbmRleDogMDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtaGVpZ2h0KSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICB3aWR0aDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLXdpZHRoKSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkXG4gICAgbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLWJvcmRlci1yYWRpdXMpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtei1pbmRleCk7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtdG9wKSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1sZWZ0KSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICByb3RhdGU6IGNhbGModmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1yb3RhdGlvbikgKiAxZGVnKTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG59XG5cbjpob3N0KFtiYWNrZ3JvdW5kPSdkYXJrJ10pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItbWlsayksIHZhcigtLXNiYi1jb2xvci1pcm9uKSk7XG59XG5cbjpob3N0KFttb3VudGluZz0ndXBwZXItYm9yZGVyJ10pIHtcbiAgLy8gRm9yIGFyZWFzIHRoYXQgYXJlIG1vdW50ZWQgZGlyZWN0bHkgb24gdGhlIGJvcmRlciBvZiBjb2FjaCxcbiAgLy8gd2UgcmVtb3ZlIHRoZSBib3JkZXIgdG9wIGZyb20gdGhlIGVsZW1lbnQgd2hlcmUgaXQgaXMgbW91bnRlZCxcbiAgLy8gYXMgdGhlIGJvcmRlcnMgYXJlIGFscmVhZHkgdmlzdWFsbHkgZGlzcGxheWVkIGJ5IHRoZSBjb2FjaC5cbiAgYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoOiAwO1xuICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1ib3JkZXItcmFkaXVzKVxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtYm9yZGVyLXJhZGl1cyk7XG59XG5cbjpob3N0KFttb3VudGluZz0nbG93ZXItYm9yZGVyJ10pIHtcbiAgLy8gRm9yIGFyZWFzIHRoYXQgYXJlIG1vdW50ZWQgZGlyZWN0bHkgb24gdGhlIGJvcmRlciBvZiBjb2FjaCxcbiAgLy8gd2UgcmVtb3ZlIHRoZSBib3JkZXIgYm90dG9tIGZyb20gdGhlIGVsZW1lbnQgd2hlcmUgaXQgaXMgbW91bnRlZCxcbiAgLy8gYXMgdGhlIGJvcmRlcnMgYXJlIGFscmVhZHkgdmlzdWFsbHkgZGlzcGxheWVkIGJ5IHRoZSBjb2FjaC5cbiAgYm9yZGVyLWJsb2NrLWVuZC13aWR0aDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1ib3JkZXItcmFkaXVzKVxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtYm9yZGVyLXJhZGl1cykgMCAwO1xufVxuXG46aG9zdChbbW91bnRpbmc9J3VwcGVyLXRvLWxvd2VyLWJvcmRlciddKSB7XG4gIGJvcmRlci1ibG9jay1zdGFydDogbm9uZTtcbiAgYm9yZGVyLWJsb2NrLWVuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gaG92ZXIgc3RhdGUgd2l0aCBwb2ludGVyIGN1cnNvciBmb3Igc2VydmljZSBpY29ucyBhbmQgcG9wb3ZlclxuOmhvc3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtLWN1cnNvci1wb2ludGVyKSB7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbn1cbiIsImltcG9ydCB7IGJveFNpemluZ1N0eWxlcywgZm9yY2VUeXBlLCBTYmJFbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogVmlzdWFsaXplIGFuIGFyZWEgd2l0aCBhIHNwZWNpYWwgbWVhbmluZyB3aXRoaW4gYSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIE1vdW50aW5nIFByb3AgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1vdW50aW5nOiAnZnJlZScgfCAndXBwZXItYm9yZGVyJyB8ICdsb3dlci1ib3JkZXInIHwgJ3VwcGVyLXRvLWxvd2VyLWJvcmRlcicgPVxuICAgICdmcmVlJztcblxuICAvKiogdGhlIGJhY2tncm91bmQgb2YgdGhlIGFyZWEgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGJhY2tncm91bmQ6ICdsaWdodCcgfCAnZGFyaycgPSAnbGlnaHQnO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxzbG90Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhJzogU2JiU2VhdFJlc2VydmF0aW9uQXJlYUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUNTYSx1Q0FBNkI7bUJBQVM7Ozs7Ozs7Y0FBdEMsc0NBQXNDLFlBQVU7OzsyQkFLMUQsV0FBVyxFQUNYLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBOzZCQUszQixXQUFXLEVBQ1gsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFMNUIsZ0JBQUEsTUFBQSxNQUFBLHNCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFRLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUixXQUFROztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsd0JBQUEsNEJBQUE7QUFNeEIsZ0JBQUEsTUFBQSxNQUFBLHdCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZ0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVYsYUFBVTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDBCQUFBLDhCQUFBOzs7Ozs7Ozs7QUFaTSxRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLDhCQUFNLENBQUM7O0VBS25GLDZCQUFBLGtCQUFBLE1BQUEsd0JBQ0UsT0FBTTs7RUFEUixJQUFnQixXQUFRO0FBQUEsVUFBQSxNQUFBOztFQUF4QixJQUFnQixTQUFRLE9BQUE7QUFBQSxTQUFBLDRCQUFBOztFQU14QixnQ0FBQSxrQkFBQSxNQUFBLDRCQUFBLEVBQUEsa0JBQUEsTUFBQSwwQkFBK0MsUUFBTzs7RUFBdEQsSUFBZ0IsYUFBVTtBQUFBLFVBQUEsTUFBQTs7RUFBMUIsSUFBZ0IsV0FBVSxPQUFBO0FBQUEsU0FBQSw4QkFBQTs7RUFFUCxTQUFNO0FBQ3ZCLFVBQU8sSUFBSSJ9
@@ -0,0 +1,129 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { SbbElement, SbbLanguageController, boxSizingStyles, forceType } from "@sbb-esta/lyne-elements/core.js";
3
+ import { SbbIconElement } from "@sbb-esta/lyne-elements/icon.pure.js";
4
+ import { html, isServer, unsafeCSS } from "lit";
5
+ import { property } from "lit/decorators.js";
6
+ import { classMap } from "lit/directives/class-map.js";
7
+ import { mapIconToSvg } from "./seat-reservation/common/mapper.js";
8
+ import { getI18nSeatReservation } from "./seat-reservation/common/translations.js";
9
+ //#region src/elements-experimental/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.scss?inline
10
+ var seat_reservation_graphic_default = ":host {\n --sbb-seat-reservation-graphic-max-width: auto;\n --sbb-seat-reservation-graphic-max-height: auto;\n --sbb-seat-reservation-graphic-width: 16;\n --sbb-seat-reservation-graphic-height: 16;\n --sbb-seat-reservation-graphic-rotation: 0;\n --sbb-seat-reservation-graphic-inverse-rotation: 0;\n --sbb-seat-reservation-graphic-padding-percent: 1;\n --sbb-seat-reservation-graphic-position: initial;\n --sbb-seat-reservation-graphic-z-index: 0;\n --sbb-seat-reservation-graphic-left: 0;\n --sbb-seat-reservation-graphic-top: 0;\n --sbb-icon-svg-width: calc(\n var(--sbb-seat-reservation-graphic-width) *\n var(--sbb-seat-reservation-one-px-rem, 0.0625rem)\n );\n --sbb-icon-svg-height: calc(\n var(--sbb-seat-reservation-graphic-height) *\n var(--sbb-seat-reservation-one-px-rem, 0.0625rem)\n );\n display: flex;\n justify-content: center;\n align-items: center;\n width: calc(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n height: calc(var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n position: var(--sbb-seat-reservation-graphic-position);\n z-index: var(--sbb-seat-reservation-graphic-z-index);\n inset-inline-start: calc(var(--sbb-seat-reservation-graphic-left) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-block-start: calc(var(--sbb-seat-reservation-graphic-top) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n\n:host(.auto-width) {\n --sbb-icon-svg-width: auto;\n max-width: calc(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n width: auto;\n}\n\n:host(.sbb-sr-graphic__dimension--square-dim) {\n --sbb-icon-svg-width: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n --sbb-icon-svg-height: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n width: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n height: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n}\n\n:host(.sbb-seat-reservation-graphic--cursor-pointer) {\n cursor: var(--sbb-cursor-pointer);\n}\n\n.sbb-sr-icon,\n.sbb-sr-graphic {\n width: inherit;\n height: inherit;\n transform-origin: center;\n rotate: calc(var(--sbb-seat-reservation-graphic-rotation) * 1deg);\n}\n\n.sbb-sr-icon {\n color: var(--sbb-color-granite);\n color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));\n}\n\n.sbb-sr-graphic svg {\n width: 100%;\n height: 100%;\n}\n.sbb-sr-graphic svg .fix-rotation-inverse {\n transform-origin: center;\n rotate: calc(var(--sbb-seat-reservation-graphic-inverse-rotation) * 1deg);\n}\n@media (forced-colors: active) {\n .sbb-sr-graphic svg:not(.color-immutable) [fill]:not([fill=none]) {\n fill: currentcolor;\n }\n .sbb-sr-graphic .no-bg {\n fill: transparent;\n }\n}";
11
+ //#endregion
12
+ //#region src/elements-experimental/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.ts
13
+ /**
14
+ * Output one of the SVG graphics based on its code.
15
+ */
16
+ var SbbSeatReservationGraphicElement = (() => {
17
+ let _classSuper = SbbElement;
18
+ let _name_decorators;
19
+ let _name_initializers = [];
20
+ let _name_extraInitializers = [];
21
+ let _stretch_decorators;
22
+ let _stretch_initializers = [];
23
+ let _stretch_extraInitializers = [];
24
+ return class SbbSeatReservationGraphicElement extends _classSuper {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.#name_accessor_storage = __runInitializers(this, _name_initializers, "");
28
+ this.#stretch_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _stretch_initializers, false));
29
+ this._language = (__runInitializers(this, _stretch_extraInitializers), new SbbLanguageController(this));
30
+ }
31
+ static {
32
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
33
+ _name_decorators = [forceType(), property({ attribute: "name" })];
34
+ _stretch_decorators = [forceType(), property({
35
+ attribute: "stretch",
36
+ type: Boolean
37
+ })];
38
+ __esDecorate(this, null, _name_decorators, {
39
+ kind: "accessor",
40
+ name: "name",
41
+ static: false,
42
+ private: false,
43
+ access: {
44
+ has: (obj) => "name" in obj,
45
+ get: (obj) => obj.name,
46
+ set: (obj, value) => {
47
+ obj.name = value;
48
+ }
49
+ },
50
+ metadata: _metadata
51
+ }, _name_initializers, _name_extraInitializers);
52
+ __esDecorate(this, null, _stretch_decorators, {
53
+ kind: "accessor",
54
+ name: "stretch",
55
+ static: false,
56
+ private: false,
57
+ access: {
58
+ has: (obj) => "stretch" in obj,
59
+ get: (obj) => obj.stretch,
60
+ set: (obj, value) => {
61
+ obj.stretch = value;
62
+ }
63
+ },
64
+ metadata: _metadata
65
+ }, _stretch_initializers, _stretch_extraInitializers);
66
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true,
70
+ value: _metadata
71
+ });
72
+ }
73
+ static {
74
+ this.elementName = "sbb-seat-reservation-graphic";
75
+ }
76
+ static {
77
+ this.elementDependencies = [SbbIconElement];
78
+ }
79
+ static {
80
+ this.styles = [boxSizingStyles, unsafeCSS(seat_reservation_graphic_default)];
81
+ }
82
+ #name_accessor_storage;
83
+ /** Name of the SVG graphic to be displayed. */
84
+ get name() {
85
+ return this.#name_accessor_storage;
86
+ }
87
+ set name(value) {
88
+ this.#name_accessor_storage = value;
89
+ }
90
+ #stretch_accessor_storage;
91
+ /** if true, scale the graphic content of the given element non-uniformly if necessary */
92
+ get stretch() {
93
+ return this.#stretch_accessor_storage;
94
+ }
95
+ set stretch(value) {
96
+ this.#stretch_accessor_storage = value;
97
+ }
98
+ render() {
99
+ const svgObj = mapIconToSvg[this.name];
100
+ if (!svgObj?.svg && !svgObj?.svgName) return null;
101
+ return html`<span
102
+ class="${classMap({
103
+ "sbb-sr-icon": !!svgObj.svgName,
104
+ "sbb-sr-graphic": !!svgObj.svg
105
+ })}"
106
+ >
107
+ ${svgObj.svgName ? html` <sbb-icon
108
+ name="${svgObj.svgName || ""}"
109
+ aria-hidden="false"
110
+ aria-label="${getI18nSeatReservation(svgObj.svgName, this._language.current)}"
111
+ ></sbb-icon>` : html`${this._getSvgElement(svgObj.svg)}`}
112
+ </span>`;
113
+ }
114
+ _getSvgElement(svg) {
115
+ if (!isServer) {
116
+ const parser = new DOMParser();
117
+ const svgString = svg || "<svg></svg>";
118
+ const svgElm = parser.parseFromString(svgString, "image/svg+xml").firstElementChild;
119
+ if (this.stretch && svgElm?.nodeName.toLowerCase() === "svg") svgElm.setAttribute("preserveAspectRatio", "none");
120
+ return svgElm;
121
+ }
122
+ return null;
123
+ }
124
+ };
125
+ })();
126
+ //#endregion
127
+ export { SbbSeatReservationGraphicElement as t };
128
+
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC1CNzcxWXRPZi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtd2lkdGg6IGF1dG87XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtaGVpZ2h0OiBhdXRvO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGg6IDE2O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0OiAxNjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uOiAwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaW52ZXJzZS1yb3RhdGlvbjogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBhZGRpbmctcGVyY2VudDogMTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uOiBpbml0aWFsO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtei1pbmRleDogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWxlZnQ6IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy10b3A6IDA7XG4gIC0tc2JiLWljb24tc3ZnLXdpZHRoOiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCkgKlxuICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tb25lLXB4LXJlbSwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSlcbiAgKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCkgKlxuICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tb25lLXB4LXJlbSwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSlcbiAgKTtcbiAgaGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0KSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1wb3NpdGlvbik7XG4gIHotaW5kZXg6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtei1pbmRleCk7XG4gIGluc2V0LWlubGluZS1zdGFydDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWxlZnQpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtdG9wKSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xufVxuXG4vLyBhdXRvLXdpZHRoIHNldHRpbmdzIGZvciBncmFwaGljc1xuOmhvc3QoLmF1dG8td2lkdGgpIHtcbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6IGF1dG87XG5cbiAgbWF4LXdpZHRoOiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbWF4LXdpZHRoKSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICB3aWR0aDogYXV0bztcbn1cblxuLy8gR3JhcGhpYyBzaXplIGZvciBtYXggc3F1YXJlIGRpbWVuc2lvblxuOmhvc3QoLnNiYi1zci1ncmFwaGljX19kaW1lbnNpb24tLXNxdWFyZS1kaW0pIHtcbiAgJHBhZGRpbmctcGVyY2VudDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1wYWRkaW5nLXBlcmNlbnQpO1xuICAkZ3JhcGhpYy1tYXgtd2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtd2lkdGgpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gICRncmFwaGljLW1heC1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtaGVpZ2h0KSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICAkZ3JhcGhpYy13aWR0aDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoKSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICAkZ3JhcGhpYy1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG5cbiAgLy8gY2FsY3VsYXRlIG1heCBhdmFpbGFibGUgYXJlYSBkaW1lbnNpb25cbiAgJHBhcmVudC1kaW06IGNhbGMobWluKCRncmFwaGljLXdpZHRoLCAkZ3JhcGhpYy1oZWlnaHQpICogJHBhZGRpbmctcGVyY2VudCk7XG4gICRtYXgtcGFyZW50LWRpbTogbWluKCRncmFwaGljLW1heC13aWR0aCwgJGdyYXBoaWMtbWF4LWhlaWdodCk7XG4gICRyZXN1bHQtZGltOiBtaW4oJHBhcmVudC1kaW0sICRtYXgtcGFyZW50LWRpbSk7XG5cbiAgLy8gU2V0IG1heCBkaW1lbnNpb24gZm9yIHN2ZyBpY29uXG4gIC0tc2JiLWljb24tc3ZnLXdpZHRoOiAjeyRyZXN1bHQtZGltfTtcbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiAjeyRyZXN1bHQtZGltfTtcblxuICB3aWR0aDogI3skcmVzdWx0LWRpbX07XG4gIGhlaWdodDogI3skcmVzdWx0LWRpbX07XG59XG5cbi8vIGhvdmVyIHN0YXRlIHdpdGggcG9pbnRlciBjdXJzb3IgZm9yIHNlcnZpY2UgaWNvbnMgYW5kIHBvcG92ZXJcbjpob3N0KC5zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLS1jdXJzb3ItcG9pbnRlcikge1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbi5zYmItc3ItaWNvbixcbi5zYmItc3ItZ3JhcGhpYyB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgcm90YXRlOiBjYWxjKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24pICogMWRlZyk7XG59XG5cbi5zYmItc3ItaWNvbiB7XG4gIC8vIG92ZXJyaWRlIGNvbG9yIGRpcmVjdGx5IHNldCBpbiB0aGUgU1ZHIGZpbGUgY29taW5nIGZyb20gQ0ROXG4gIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG59XG5cbi5zYmItc3ItZ3JhcGhpYyB7XG4gIHN2ZyB7XG4gICAgd2lkdGg6IGNsYW1wKDEwMCUsIDEwMCUsIDEwMCUpO1xuICAgIGhlaWdodDogY2xhbXAoMTAwJSwgMTAwJSwgMTAwJSk7XG5cbiAgICAuZml4LXJvdGF0aW9uLWludmVyc2Uge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgcm90YXRlOiBjYWxjKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaW52ZXJzZS1yb3RhdGlvbikgKiAxZGVnKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgc3ZnOm5vdCguY29sb3ItaW1tdXRhYmxlKSB7XG4gICAgICBbZmlsbF06bm90KFtmaWxsPSdub25lJ10pIHtcbiAgICAgICAgZmlsbDogY3VycmVudGNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uby1iZyB7XG4gICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUuanMnO1xuaW1wb3J0IHsgU2JiSWNvbkVsZW1lbnQgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9pY29uLnB1cmUuanMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgbWFwSWNvblRvU3ZnIH0gZnJvbSAnLi4vY29tbW9uL21hcHBlci50cyc7XG5pbXBvcnQgeyBnZXRJMThuU2VhdFJlc2VydmF0aW9uIH0gZnJvbSAnLi4vY29tbW9uL3RyYW5zbGF0aW9ucy50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogT3V0cHV0IG9uZSBvZiB0aGUgU1ZHIGdyYXBoaWNzIGJhc2VkIG9uIGl0cyBjb2RlLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiSWNvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKiogTmFtZSBvZiB0aGUgU1ZHIGdyYXBoaWMgdG8gYmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbmFtZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBpZiB0cnVlLCBzY2FsZSB0aGUgZ3JhcGhpYyBjb250ZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50IG5vbi11bmlmb3JtbHkgaWYgbmVjZXNzYXJ5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdHJldGNoJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc3RyZXRjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnT2JqID0gbWFwSWNvblRvU3ZnW3RoaXMubmFtZV07XG5cbiAgICBpZiAoIXN2Z09iaj8uc3ZnICYmICFzdmdPYmo/LnN2Z05hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLWljb24nOiAhIXN2Z09iai5zdmdOYW1lLFxuICAgICAgICAnc2JiLXNyLWdyYXBoaWMnOiAhIXN2Z09iai5zdmcsXG4gICAgICB9KX1cIlxuICAgID5cbiAgICAgICR7c3ZnT2JqLnN2Z05hbWVcbiAgICAgICAgPyBodG1sYCA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9XCIke3N2Z09iai5zdmdOYW1lIHx8ICcnfVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oc3ZnT2JqLnN2Z05hbWUsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICA6IGh0bWxgJHt0aGlzLl9nZXRTdmdFbGVtZW50KHN2Z09iai5zdmchKX1gfVxuICAgIDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3ZnRWxlbWVudChzdmc6IHN0cmluZyk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgICBjb25zdCBzdmdTdHJpbmcgPSBzdmcgfHwgJzxzdmc+PC9zdmc+JztcbiAgICAgIGNvbnN0IHN2Z0VsbSA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoc3ZnU3RyaW5nLCAnaW1hZ2Uvc3ZnK3htbCcpLmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgaWYgKHRoaXMuc3RyZXRjaCAmJiBzdmdFbG0/Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnKSB7XG4gICAgICAgIHN2Z0VsbS5zZXRBdHRyaWJ1dGUoJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLCAnbm9uZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN2Z0VsbTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYyc6IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQ29CYSwwQ0FBZ0M7bUJBQVM7Ozs7Ozs7Y0FBekMseUNBQXlDLFlBQVU7OztBQVE5QyxTQUFBLHdCQUFBLGtCQUFBLE1BQUEsb0JBQWUsR0FBRTtBQUtqQixTQUFBLDRCQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLHVCQUFtQixNQUFLO0FBRWhDLFFBQUEsYUFBUyxrQkFBQSxNQUFBLDJCQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSzs7Ozt1QkFUbEQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFFBQVEsQ0FBQyxDQUFBOzBCQUkvQixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBVyxNQUFNO0lBQVMsQ0FBQyxDQUFBO0FBSmxELGdCQUFBLE1BQUEsTUFBQSxrQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUosT0FBSTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLG9CQUFBLHdCQUFBO0FBS3BCLGdCQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGFBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVAsVUFBTzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHVCQUFBLDJCQUFBOzs7Ozs7Ozs7QUFaUyxRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxzQkFBd0MsQ0FBQyxlQUFlOzs7QUFDeEQsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLGlDQUFNLENBQUM7O0VBS25GOztFQUFBLElBQWdCLE9BQUk7QUFBQSxVQUFBLE1BQUE7O0VBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLFNBQUEsd0JBQUE7O0VBS3BCOztFQUFBLElBQWdCLFVBQU87QUFBQSxVQUFBLE1BQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLFNBQUEsMkJBQUE7O0VBSUosU0FBTTtHQUN2QixNQUFNLFNBQVMsYUFBYSxLQUFLO0FBRWpDLE9BQUksQ0FBQyxRQUFRLE9BQU8sQ0FBQyxRQUFRLFFBQzNCLFFBQU87QUFHVCxVQUFPLElBQUk7ZUFDQSxTQUFTO0lBQ2hCLGVBQWUsQ0FBQyxDQUFDLE9BQU87SUFDeEIsa0JBQWtCLENBQUMsQ0FBQyxPQUFPO0lBQzVCLENBQUMsQ0FBQTs7UUFFQSxPQUFPLFVBQ0wsSUFBSTtvQkFDTSxPQUFPLFdBQVcsR0FBRTs7MEJBRWQsdUJBQXVCLE9BQU8sU0FBUyxLQUFLLFVBQVUsUUFBUSxDQUFBOzBCQUU5RSxJQUFJLEdBQUcsS0FBSyxlQUFlLE9BQU8sSUFBSyxHQUFBOzs7RUFJdkMsZUFBZSxLQUFXO0FBQ2hDLE9BQUksQ0FBQyxVQUFVO0lBQ2IsTUFBTSxTQUFTLElBQUksV0FBVztJQUM5QixNQUFNLFlBQVksT0FBTztJQUN6QixNQUFNLFNBQVMsT0FBTyxnQkFBZ0IsV0FBVyxnQkFBZ0IsQ0FBQztBQUNsRSxRQUFJLEtBQUssV0FBVyxRQUFRLFNBQVMsYUFBYSxLQUFLLE1BQ3JELFFBQU8sYUFBYSx1QkFBdUIsT0FBTztBQUVwRCxXQUFPOztBQUdULFVBQU8ifQ==
@@ -383,8 +383,8 @@ var SbbSeatReservationNavigationCoachElement = (() => {
383
383
  `;
384
384
  }
385
385
  _getTitleDescriptionNavCoachButton(serviceClassNumber) {
386
- if (this.coachItemDetails.isDriverArea && !this.coachItemDetails.driverAreaElements?.driverAreaNoVerticalWall) return getI18nSeatReservation("NAVIGATE_COACH_BLOCKED", this._language.current, [this.coachItemDetails.id]);
387
- if (this.coachItemDetails.driverAreaElements?.driverAreaNoVerticalWall) return getI18nSeatReservation("COACH_LOCOMOTIVE", this._language.current);
386
+ if (this.coachItemDetails.isDriverArea && !this.coachItemDetails.isLocomotive) return getI18nSeatReservation("NAVIGATE_COACH_BLOCKED", this._language.current, [this.coachItemDetails.id]);
387
+ if (this.coachItemDetails.isLocomotive) return getI18nSeatReservation("COACH_LOCOMOTIVE", this._language.current);
388
388
  let label = getI18nSeatReservation("NAVIGATE_TO_COACH", this._language.current, [this.coachItemDetails.id]);
389
389
  if (serviceClassNumber) {
390
390
  const serviceClassTranslation = getI18nSeatReservation(serviceClassNumber === 1 ? "SERVICE_CLASS_FIRST" : "SERVICE_CLASS_SECOND", this._language.current);
@@ -427,4 +427,4 @@ var SbbSeatReservationNavigationCoachElement = (() => {
427
427
  //#endregion
428
428
  export { SbbSeatReservationNavigationCoachElement as t };
429
429
 
430
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC1jU1gtT0VzUC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucy5zY3NzJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuJGRpc2FibGVkOiAnW2Rpc2FibGVkXSwgOmRpc2FibGVkJztcblxuOmhvc3Qge1xuICAvLyBmaXhlcyB0aGUga2V5Ym9hcmQgZm9jdXMgYm9yZGVyIHdoaWNoIHdhcyBjdXQgb2ZmIGR1ZSB0byBtaXNzaW5nIG5hdmlnYXRpb24gc2VydmljZSBpY29uc1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgIDQ0XG4gICk7IC8vIGRlZmF1bHQgYnV0dG9uIGhlaWdodCAoMzZweCkgKyAyICogNHB4IGZvY3VzIG91dGxpbmUgb2Zmc2V0XG5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmc6IDEwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWRlZmF1bHRcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKVxuICApO1xuXG4gIC8vIHNlbGVjdGVkIHN0YXRlIHZhcmlhYmxlc1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1zZWxlY3RlZDogMjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1taWxrKSxcbiAgICB2YXIoLS1zYmItY29sb3ItaXJvbilcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gZm9jdXMgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tb3V0bGluZS13aWR0aC1mb2N1c2VkOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLW91dGxpbmUtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1vdXRsaW5lLW9mZnNldC1mb2N1c2VkOiA0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItd2lkdGgtZm9jdXNlZDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWZvY3VzZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gaG92ZXIgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWhvdmVyZWQ6IDI7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjayksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXdoaXRlKVxuICApO1xuXG4gIC8vIGRpc2FibGUgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1wbGF0aW51bSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pXG4gICk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oOCk7XG4gIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmLmZpcnN0LWNvYWNoLFxuICAmLmxhc3QtY29hY2gge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE4KSk7XG4gICAgfVxuICB9XG5cbiAgJi5maXJzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCAyLCAyLCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYubGFzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhKSB7XG4gICAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgOCwgOCwgMik7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIHNhbWUgZm9yIGFsbCBzdGF0ZXNcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmIuYnV0dG9uLXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuXG4gICYuc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEge1xuICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCA4LCA4LCA4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCAyLCAyKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1mb2N1c2VkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdmb2N1c2VkJyk7XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1tZXRhbCksIHZhcigtLXNiYi1jb2xvci1zdG9ybSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWFudGhyYWNpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbiAgfVxufVxuXG4vLyBzZWxlY3RlZCwgaS5lLiB0aGUgY29hY2ggd2l0aGluIHRoZSB0cmFpbiBpcyBzZWxlY3RlZCAoRklHTUEgU3RhdGU6U2VsZWN0ZWQpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYmxhY2spLCB2YXIoLS1zYmItY29sb3Itd2hpdGUpKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ibGFjayksIHZhcigtLXNiYi1jb2xvci13aGl0ZSkpO1xuICB9XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1ob3ZlcmVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItaG92ZXJlZCkgIWltcG9ydGFudDtcbn1cblxuLy8gc2VsZWN0ZWQgQU5EIGZvY3VzIChGSUdNQSBTdGF0ZTpTZWxlY3RlZCArIEZvY3VzZWQpXG4vLyBiYWNrZ3JvdW5kLWNvbG9yIGZyb20gc2VsZWN0ZWQgU3RhdGUgaGFzIG1vcmUgc3BlY2lmaWNpdHksIHNvIHdlIG5lZWQgdG8gb3ZlcnJpZGUgaXQgaGVyZSAoYWdhaW4pXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246Zm9jdXMtdmlzaWJsZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ3NlbGVjdGVkJyk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4vLyBob3ZlciAoRklHTUEgU3RhdGU6aG92ZXIpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOmhvdmVyOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXNtb2tlKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1pcm9uKSwgdmFyKC0tc2JiLWNvbG9yLXNpbHZlcikpO1xuICB9XG59XG5cbi8vIGRpc2FibGVkIChGSUdNQSBTdGF0ZTpkaXNhYmxlZClcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246aXMoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2Rpc2FibGVkJyk7XG5cbiAgY3Vyc29yOiB1bnNldDtcbiAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpKTtcbiAgfVxufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDE7XG4gIGNvbHVtbi1nYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpO1xuICBwYWRkaW5nLWlubGluZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICBmb250LWZhbWlseTogdmFyKC0tc2JiLXR5cG8tZm9udC1mYW1pbHkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiB2YXIoLS1zYmItY29sb3ItbWlsayk7XG4gIH1cbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTItaW52ZXJ0ZWQpO1xuICB9XG59XG5cbi8vIGdyYXBoaWNhbCBvcmllbnRhdGlvbiBvZiBGSVJTVCBjbGFzc1xuLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDMpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuXG4gIC8vIHVzZSBib3JkZXIgaW5zdGVhZCBvZiBoZWlnaHQgdG8gc3VwcG9ydCBmb3JjZS1jb2xvciBtb2Rlc1xuICBib3JkZXI6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDEpIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLWxlbW9uKTtcbn1cblxuLy8gdGV4dHVhbCBvcmllbnRhdGlvbiBvZiB0cmF2ZWwgY2xhc3Ncbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gIG1pbi13aWR0aDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMjApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3Itd2hpdGUpLCB2YXIoLS1zYmItY29sb3ItYmxhY2spKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZDtcbiAgfVxufVxuXG4vLyAjIyMjIyMjIyMjIyMjIyMjIFZFUlRJQ0FMIE1PREUgc2V0dGluZ3MgIyMjIyMjIyMjIyMjIyMjI1xuOmhvc3QoW3ZlcnRpY2FsXSkgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gICAgbWluLXdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzNik7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBwYWRkaW5nLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNik7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdW5zZXQ7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpKTtcbiAgICB3aWR0aDogaW5pdGlhbDtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzKTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICB9XG5cbiAgJi5maXJzdC1jb2FjaCxcbiAgJi5sYXN0LWNvYWNoIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTgpKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGUgYm9yZGVyLXJhZGl1c1xuICAmLmZpcnN0LWNvYWNoOm5vdCgubGFzdC1jb2FjaCkge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246bm90KC5zYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSkge1xuICAgICAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy52aXN1YWxpemUtY29hY2gtYm9yZGVyKDgsIDgsIDIsIDIpO1xuICAgIH1cblxuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbShcbiAgICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi10cmF2ZWxjbGFzcy1zcGFjaW5nKVxuICAgICAgKTtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgJi5sYXN0LWNvYWNoOm5vdCguZmlyc3QtY29hY2gpIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOm5vdCguc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCA4LCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJpdmVyIGFyZWFcbiAgLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhIHtcbiAgICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgwKTtcbiAgICBtaW4td2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaEl0ZW1EZXRhaWxzIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdENvYWNoRXZlbnREZXRhaWxzID0gbnVtYmVyO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uU2VydmljZXNFbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgYm94U2l6aW5nU3R5bGVzLFxuICAgIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0Y29hY2g6ICdzZWxlY3Rjb2FjaCcsXG4gICAgZm9jdXNjb2FjaDogJ2ZvY3VzY29hY2gnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBTZWxlY3QgY29hY2ggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEZvY3VzIGNvYWNoIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEhvdmVyIGNvYWNoIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBob3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE5hdGl2ZSBmb2N1cyBmb3IgdGhpcyBuYXZpZ2F0aW9uIGNvYWNoIGlzIGFsc28gc2V0IHdoZW4gdGhlIGZvY3VzZWQgcHJvcGVydHkgaXMgY2hhbmdlZCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbmF0aXZlRm9jdXNBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluZGV4OiBudW1iZXIgPSAwO1xuXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2NvYWNoLWl0ZW0tZGV0YWlscycsIHR5cGU6IE9iamVjdCB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29hY2hJdGVtRGV0YWlsczogQ29hY2hJdGVtRGV0YWlscyA9IDxDb2FjaEl0ZW1EZXRhaWxzPnt9O1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBjb2FjaCBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggbmF2aWdhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIHZlcnRpY2FsbHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUsIHVzZURlZmF1bHQ6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIERpc2FibGUgdGhlIG1vdXNlIG92ZXIgdGl0bGUgaW5mb3JtYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNob3dUaXRsZUluZm86IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzZWxlY3RlZCcpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNBY3RpdmUpIHtcbiAgICAgICAgICBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICAvKiogRW1pdHMgd2hlbiBhIG5hdiBjb2FjaCBoYXMgdGhlIGZvY3VzICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2ZvY3VzY29hY2gnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmb2N1c2VkJykgJiYgdGhpcy5mb2N1c2VkKSB7XG4gICAgICBjb25zdCBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcblxuICAgICAgaWYgKGZvY3VzZWROYXZCdXR0b25FbGVtZW50ICYmIHRoaXMubmF0aXZlRm9jdXNBY3RpdmUpIHtcbiAgICAgICAgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGEgbGlzdCBvZiBzZXJ2aWNlIGljb25zIHByb3ZpZGVkIGJ5IGEgY2FsbGVyXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCc6IHRydWUsXG4gICAgICAgICAgJ2xhc3QtY29hY2gnOiB0aGlzLmNvYWNoSXRlbURldGFpbHMuZHJpdmVyQXJlYVNpZGU/LnJpZ2h0IHx8IGZhbHNlLFxuICAgICAgICAgICdmaXJzdC1jb2FjaCc6IHRoaXMuY29hY2hJdGVtRGV0YWlscy5kcml2ZXJBcmVhU2lkZT8ubGVmdCB8fCBmYWxzZSxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkJzogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLWZvY3VzZWQnOiB0aGlzLmZvY3VzZWQsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1ob3ZlcmVkJzogdGhpcy5ob3ZlcmVkLFxuICAgICAgICB9KX1cIlxuICAgICAgPlxuICAgICAgICAke3RoaXMuX2dldE5hdmlnYXRpb25CdXR0b24oKX1cbiAgICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHM/Lmxlbmd0aFxuICAgICAgICAgID8gaHRtbGA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlc1xuICAgICAgICAgICAgICA/dmVydGljYWw9XCIke3RoaXMudmVydGljYWx9XCJcbiAgICAgICAgICAgICAgLnByb3BlcnR5SWRzPVwiJHt0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgICAgP3Nob3dUaXRsZUluZm89XCIke3RoaXMuc2hvd1RpdGxlSW5mb31cIlxuICAgICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcz5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hdmlnYXRpb25CdXR0b24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyU2VydmljZUNsYXNzTnVtYmVyID0gdGhpcy5fZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTtcbiAgICBjb25zdCB0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24gPVxuICAgICAgdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpO1xuICAgIGNvbnN0IGFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMgPSB0aGlzLl9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk7XG5cbiAgICByZXR1cm4gaHRtbGAgPGJ1dHRvblxuICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fc2VsZWN0TmF2Q29hY2godGhpcy5pbmRleCl9XG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJzogdHJ1ZSxcbiAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhJzogdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlzRHJpdmVyQXJlYSxcbiAgICAgIH0pfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke3RoaXMuZGlzYWJsZX1cIlxuICAgICAgdGl0bGU9XCIke3RoaXMuc2hvd1RpdGxlSW5mbyA/IHRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbiA6IG5vdGhpbmd9XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCJcbiAgICA+XG4gICAgICAke3RoaXMuX2dldEJ0bkluZm9ybWF0aW9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpfVxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCIgaWQ9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiPlxuICAgICAgICAkeyF0aGlzLnNob3dUaXRsZUluZm8gPyBodG1sYDxkaXY+JHt0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b259PC9kaXY+YCA6IG5vdGhpbmd9XG4gICAgICAgICR7YXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcyA/IGh0bWxgPGRpdj4ke2FyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXN9PC9kaXY+YCA6IG5vdGhpbmd9XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+YDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEJ0bkluZm9ybWF0aW9uKHNlcnZpY2VDbGFzc051bWJlcjogbnVtYmVyIHwgbnVsbCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0RyaXZlckFyZWEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDFcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzXCI+PC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMudHJhdmVsQ2xhc3M/Lmxlbmd0aCA+IDAgfHwgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkXG4gICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb25cIj5cbiAgICAgICAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkXG4gICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtbnVtYmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlscy5pZH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzc1wiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0RyaXZlckFyZWEgJiZcbiAgICAgICF0aGlzLmNvYWNoSXRlbURldGFpbHMuZHJpdmVyQXJlYUVsZW1lbnRzPy5kcml2ZXJBcmVhTm9WZXJ0aWNhbFdhbGxcbiAgICApIHtcbiAgICAgIHJldHVybiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdOQVZJR0FURV9DT0FDSF9CTE9DS0VEJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgICB0aGlzLmNvYWNoSXRlbURldGFpbHMuaWQsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmRyaXZlckFyZWFFbGVtZW50cz8uZHJpdmVyQXJlYU5vVmVydGljYWxXYWxsKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfTE9DT01PVElWRScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIGxldCBsYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX1RPX0NPQUNIJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkLFxuICAgIF0pO1xuXG4gICAgLy9JZiBzZXJ2aWNlIGNsYXNzIGV4aXN0LCB0aGVuIGV4cGFuZCBsYWJlbCB3aXRoIHNlcnZpY2UgY2xhc3MgdHJhbnNsYXRpb25cbiAgICBpZiAoc2VydmljZUNsYXNzTnVtYmVyKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSA9XG4gICAgICAgIHNlcnZpY2VDbGFzc051bWJlciA9PT0gMSA/ICdTRVJWSUNFX0NMQVNTX0ZJUlNUJyA6ICdTRVJWSUNFX0NMQVNTX1NFQ09ORCc7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgIHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5LFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc0xhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgJ05BVklHQVRFX1RPX0NPQUNIX1NFUlZJQ0VfQ0xBU1NfU1VCJyxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgW3NlcnZpY2VDbGFzc1RyYW5zbGF0aW9uXSxcbiAgICAgICk7XG4gICAgICBsYWJlbCA9IGxhYmVsLmNvbmNhdChzZXJ2aWNlQ2xhc3NMYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kcyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzZWF0cyBhbmQgYmljeWNsZSBzcGFjZXMgYXMgaW5mb1xuICAgIGNvbnN0IGZyZWVQbGFjZXNUeHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgJ0NPQUNIX0FWQUlMQUJMRV9OVU1CRVJfT0ZfUExBQ0VTJyxcbiAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICBbdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmZyZWVQbGFjZXM/LnNlYXRzLCB0aGlzLmNvYWNoSXRlbURldGFpbHMuZnJlZVBsYWNlcz8uYmljeWNsZXNdLFxuICAgICk7XG4gICAgbGFiZWwgPSBsYWJlbC5jb25jYXQoJy4gJykuY29uY2F0KGZyZWVQbGFjZXNUeHQpO1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IGFyaWFEZXNjcmlwdGlvbiA9IG51bGw7XG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5wcm9wZXJ0eUlkcz8ubGVuZ3RoKSB7XG4gICAgICBhcmlhRGVzY3JpcHRpb24gPVxuICAgICAgICBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSArICc6ICc7XG4gICAgICBhcmlhRGVzY3JpcHRpb24gKz1cbiAgICAgICAgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzXG4gICAgICAgICAgLm1hcCgocHJvcGVydHlJZCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wZXJ0eUlkLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgICAgICAuam9pbigpICsgJy4nO1xuICAgIH1cbiAgICByZXR1cm4gYXJpYURlc2NyaXB0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgY29hY2ggYXJyYXkgZm9yIHRoZSBtYWluIG5hdmlnYXRpb24uXG4gICAqIEBwYXJhbSBjb2FjaEluZGV4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3ROYXZDb2FjaChjb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+fVxuICAgICAqIEVtaXRzIHdoZW4gYSBjb2FjaCB3aXRoaW4gdGhlIG5hdmlnYXRpb24gd2FzIHNlbGVjdGVkIGFuZCByZXR1cm5zIHRoZSBjbGlja2VkIGNvYWNoIG5hdiBpbmRleC5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+KCdzZWxlY3Rjb2FjaCcsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIGRldGFpbDogY29hY2hJbmRleCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnRyYXZlbENsYXNzPy5pbmNsdWRlcygnRklSU1QnKVxuICAgICAgPyAxXG4gICAgICA6IHRoaXMuY29hY2hJdGVtRGV0YWlscy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ1NFQ09ORCcpXG4gICAgICAgID8gMlxuICAgICAgICA6IG51bGw7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gnOiBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lDOEJhLGtEQUF3QzttQkFBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUFqRCxpREFBaUQsWUFBVTs7O0FBa0J0RCxTQUFBLDRCQUFBLGtCQUFBLE1BQUEsd0JBQW9CLE1BQUs7QUFLekIsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLDRCQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBbUIsTUFBSztBQUt4QixTQUFBLDRCQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLHVCQUFtQixNQUFLO0FBS3hCLFNBQUEsc0NBQUEsa0JBQUEsTUFBQSwyQkFBQSxFQUFBLGtCQUFBLE1BQUEsaUNBQTZCLEtBQUk7QUFJakMsU0FBQSwwQkFBQSxrQkFBQSxNQUFBLHFDQUFBLEVBQUEsa0JBQUEsTUFBQSxxQkFBZ0IsRUFBQztBQUdqQixTQUFBLHFDQUFBLGtCQUFBLE1BQUEseUJBQUEsRUFBQSxrQkFBQSxNQUFBLGdDQUF1RCxFQUFFLENBQUE7QUFLekQsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLG9DQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBbUIsTUFBSztBQUt4QixTQUFBLDZCQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLHdCQUFvQixNQUFLO0FBS3pCLFNBQUEsa0NBQUEsa0JBQUEsTUFBQSw0QkFBQSxFQUFBLGtCQUFBLE1BQUEsNkJBQXlCLE1BQUs7QUFFdEMsUUFBQSxhQUFTLGtCQUFBLE1BQUEsaUNBQUEsRUFBRyxJQUFJLHNCQUFzQixLQUFLOzs7OzJCQXpDbEQsV0FBVyxFQUNYLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBOzBCQUkzQixXQUFXLEVBQ1gsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7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
430
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC1DbkE5TUVCci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucy5zY3NzJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuJGRpc2FibGVkOiAnW2Rpc2FibGVkXSwgOmRpc2FibGVkJztcblxuOmhvc3Qge1xuICAvLyBmaXhlcyB0aGUga2V5Ym9hcmQgZm9jdXMgYm9yZGVyIHdoaWNoIHdhcyBjdXQgb2ZmIGR1ZSB0byBtaXNzaW5nIG5hdmlnYXRpb24gc2VydmljZSBpY29uc1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgIDQ0XG4gICk7IC8vIGRlZmF1bHQgYnV0dG9uIGhlaWdodCAoMzZweCkgKyAyICogNHB4IGZvY3VzIG91dGxpbmUgb2Zmc2V0XG5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmc6IDEwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWRlZmF1bHRcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKVxuICApO1xuXG4gIC8vIHNlbGVjdGVkIHN0YXRlIHZhcmlhYmxlc1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1zZWxlY3RlZDogMjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1taWxrKSxcbiAgICB2YXIoLS1zYmItY29sb3ItaXJvbilcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gZm9jdXMgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tb3V0bGluZS13aWR0aC1mb2N1c2VkOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLW91dGxpbmUtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1vdXRsaW5lLW9mZnNldC1mb2N1c2VkOiA0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItd2lkdGgtZm9jdXNlZDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWZvY3VzZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gaG92ZXIgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWhvdmVyZWQ6IDI7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjayksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXdoaXRlKVxuICApO1xuXG4gIC8vIGRpc2FibGUgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1wbGF0aW51bSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pXG4gICk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oOCk7XG4gIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmLmZpcnN0LWNvYWNoLFxuICAmLmxhc3QtY29hY2gge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE4KSk7XG4gICAgfVxuICB9XG5cbiAgJi5maXJzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCAyLCAyLCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYubGFzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhKSB7XG4gICAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgOCwgOCwgMik7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIHNhbWUgZm9yIGFsbCBzdGF0ZXNcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmIuYnV0dG9uLXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuXG4gICYuc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEge1xuICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCA4LCA4LCA4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCAyLCAyKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1mb2N1c2VkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdmb2N1c2VkJyk7XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1tZXRhbCksIHZhcigtLXNiYi1jb2xvci1zdG9ybSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWFudGhyYWNpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbiAgfVxufVxuXG4vLyBzZWxlY3RlZCwgaS5lLiB0aGUgY29hY2ggd2l0aGluIHRoZSB0cmFpbiBpcyBzZWxlY3RlZCAoRklHTUEgU3RhdGU6U2VsZWN0ZWQpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYmxhY2spLCB2YXIoLS1zYmItY29sb3Itd2hpdGUpKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ibGFjayksIHZhcigtLXNiYi1jb2xvci13aGl0ZSkpO1xuICB9XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1ob3ZlcmVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItaG92ZXJlZCkgIWltcG9ydGFudDtcbn1cblxuLy8gc2VsZWN0ZWQgQU5EIGZvY3VzIChGSUdNQSBTdGF0ZTpTZWxlY3RlZCArIEZvY3VzZWQpXG4vLyBiYWNrZ3JvdW5kLWNvbG9yIGZyb20gc2VsZWN0ZWQgU3RhdGUgaGFzIG1vcmUgc3BlY2lmaWNpdHksIHNvIHdlIG5lZWQgdG8gb3ZlcnJpZGUgaXQgaGVyZSAoYWdhaW4pXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246Zm9jdXMtdmlzaWJsZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ3NlbGVjdGVkJyk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4vLyBob3ZlciAoRklHTUEgU3RhdGU6aG92ZXIpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOmhvdmVyOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXNtb2tlKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1pcm9uKSwgdmFyKC0tc2JiLWNvbG9yLXNpbHZlcikpO1xuICB9XG59XG5cbi8vIGRpc2FibGVkIChGSUdNQSBTdGF0ZTpkaXNhYmxlZClcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246aXMoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2Rpc2FibGVkJyk7XG5cbiAgY3Vyc29yOiB1bnNldDtcbiAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpKTtcbiAgfVxufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDE7XG4gIGNvbHVtbi1nYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpO1xuICBwYWRkaW5nLWlubGluZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICBmb250LWZhbWlseTogdmFyKC0tc2JiLXR5cG8tZm9udC1mYW1pbHkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiB2YXIoLS1zYmItY29sb3ItbWlsayk7XG4gIH1cbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTItaW52ZXJ0ZWQpO1xuICB9XG59XG5cbi8vIGdyYXBoaWNhbCBvcmllbnRhdGlvbiBvZiBGSVJTVCBjbGFzc1xuLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDMpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuXG4gIC8vIHVzZSBib3JkZXIgaW5zdGVhZCBvZiBoZWlnaHQgdG8gc3VwcG9ydCBmb3JjZS1jb2xvciBtb2Rlc1xuICBib3JkZXI6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDEpIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLWxlbW9uKTtcbn1cblxuLy8gdGV4dHVhbCBvcmllbnRhdGlvbiBvZiB0cmF2ZWwgY2xhc3Ncbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gIG1pbi13aWR0aDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMjApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3Itd2hpdGUpLCB2YXIoLS1zYmItY29sb3ItYmxhY2spKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZDtcbiAgfVxufVxuXG4vLyAjIyMjIyMjIyMjIyMjIyMjIFZFUlRJQ0FMIE1PREUgc2V0dGluZ3MgIyMjIyMjIyMjIyMjIyMjI1xuOmhvc3QoW3ZlcnRpY2FsXSkgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gICAgbWluLXdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzNik7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBwYWRkaW5nLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNik7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdW5zZXQ7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpKTtcbiAgICB3aWR0aDogaW5pdGlhbDtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzKTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICB9XG5cbiAgJi5maXJzdC1jb2FjaCxcbiAgJi5sYXN0LWNvYWNoIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTgpKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGUgYm9yZGVyLXJhZGl1c1xuICAmLmZpcnN0LWNvYWNoOm5vdCgubGFzdC1jb2FjaCkge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246bm90KC5zYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSkge1xuICAgICAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy52aXN1YWxpemUtY29hY2gtYm9yZGVyKDgsIDgsIDIsIDIpO1xuICAgIH1cblxuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbShcbiAgICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi10cmF2ZWxjbGFzcy1zcGFjaW5nKVxuICAgICAgKTtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgJi5sYXN0LWNvYWNoOm5vdCguZmlyc3QtY29hY2gpIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOm5vdCguc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCA4LCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJpdmVyIGFyZWFcbiAgLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhIHtcbiAgICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgwKTtcbiAgICBtaW4td2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaEl0ZW1EZXRhaWxzIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdENvYWNoRXZlbnREZXRhaWxzID0gbnVtYmVyO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uU2VydmljZXNFbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgYm94U2l6aW5nU3R5bGVzLFxuICAgIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0Y29hY2g6ICdzZWxlY3Rjb2FjaCcsXG4gICAgZm9jdXNjb2FjaDogJ2ZvY3VzY29hY2gnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBTZWxlY3QgY29hY2ggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEZvY3VzIGNvYWNoIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEhvdmVyIGNvYWNoIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBob3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE5hdGl2ZSBmb2N1cyBmb3IgdGhpcyBuYXZpZ2F0aW9uIGNvYWNoIGlzIGFsc28gc2V0IHdoZW4gdGhlIGZvY3VzZWQgcHJvcGVydHkgaXMgY2hhbmdlZCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbmF0aXZlRm9jdXNBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluZGV4OiBudW1iZXIgPSAwO1xuXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2NvYWNoLWl0ZW0tZGV0YWlscycsIHR5cGU6IE9iamVjdCB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29hY2hJdGVtRGV0YWlsczogQ29hY2hJdGVtRGV0YWlscyA9IDxDb2FjaEl0ZW1EZXRhaWxzPnt9O1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBjb2FjaCBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggbmF2aWdhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIHZlcnRpY2FsbHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUsIHVzZURlZmF1bHQ6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIERpc2FibGUgdGhlIG1vdXNlIG92ZXIgdGl0bGUgaW5mb3JtYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNob3dUaXRsZUluZm86IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzZWxlY3RlZCcpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNBY3RpdmUpIHtcbiAgICAgICAgICBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICAvKiogRW1pdHMgd2hlbiBhIG5hdiBjb2FjaCBoYXMgdGhlIGZvY3VzICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2ZvY3VzY29hY2gnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmb2N1c2VkJykgJiYgdGhpcy5mb2N1c2VkKSB7XG4gICAgICBjb25zdCBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcblxuICAgICAgaWYgKGZvY3VzZWROYXZCdXR0b25FbGVtZW50ICYmIHRoaXMubmF0aXZlRm9jdXNBY3RpdmUpIHtcbiAgICAgICAgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGEgbGlzdCBvZiBzZXJ2aWNlIGljb25zIHByb3ZpZGVkIGJ5IGEgY2FsbGVyXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCc6IHRydWUsXG4gICAgICAgICAgJ2xhc3QtY29hY2gnOiB0aGlzLmNvYWNoSXRlbURldGFpbHMuZHJpdmVyQXJlYVNpZGU/LnJpZ2h0IHx8IGZhbHNlLFxuICAgICAgICAgICdmaXJzdC1jb2FjaCc6IHRoaXMuY29hY2hJdGVtRGV0YWlscy5kcml2ZXJBcmVhU2lkZT8ubGVmdCB8fCBmYWxzZSxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkJzogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLWZvY3VzZWQnOiB0aGlzLmZvY3VzZWQsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1ob3ZlcmVkJzogdGhpcy5ob3ZlcmVkLFxuICAgICAgICB9KX1cIlxuICAgICAgPlxuICAgICAgICAke3RoaXMuX2dldE5hdmlnYXRpb25CdXR0b24oKX1cbiAgICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHM/Lmxlbmd0aFxuICAgICAgICAgID8gaHRtbGA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlc1xuICAgICAgICAgICAgICA/dmVydGljYWw9XCIke3RoaXMudmVydGljYWx9XCJcbiAgICAgICAgICAgICAgLnByb3BlcnR5SWRzPVwiJHt0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgICAgP3Nob3dUaXRsZUluZm89XCIke3RoaXMuc2hvd1RpdGxlSW5mb31cIlxuICAgICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcz5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hdmlnYXRpb25CdXR0b24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyU2VydmljZUNsYXNzTnVtYmVyID0gdGhpcy5fZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTtcbiAgICBjb25zdCB0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24gPVxuICAgICAgdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpO1xuICAgIGNvbnN0IGFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMgPSB0aGlzLl9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk7XG5cbiAgICByZXR1cm4gaHRtbGAgPGJ1dHRvblxuICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fc2VsZWN0TmF2Q29hY2godGhpcy5pbmRleCl9XG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJzogdHJ1ZSxcbiAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhJzogdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlzRHJpdmVyQXJlYSxcbiAgICAgIH0pfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke3RoaXMuZGlzYWJsZX1cIlxuICAgICAgdGl0bGU9XCIke3RoaXMuc2hvd1RpdGxlSW5mbyA/IHRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbiA6IG5vdGhpbmd9XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCJcbiAgICA+XG4gICAgICAke3RoaXMuX2dldEJ0bkluZm9ybWF0aW9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpfVxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCIgaWQ9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiPlxuICAgICAgICAkeyF0aGlzLnNob3dUaXRsZUluZm8gPyBodG1sYDxkaXY+JHt0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b259PC9kaXY+YCA6IG5vdGhpbmd9XG4gICAgICAgICR7YXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcyA/IGh0bWxgPGRpdj4ke2FyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXN9PC9kaXY+YCA6IG5vdGhpbmd9XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+YDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEJ0bkluZm9ybWF0aW9uKHNlcnZpY2VDbGFzc051bWJlcjogbnVtYmVyIHwgbnVsbCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0RyaXZlckFyZWEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDFcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzXCI+PC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMudHJhdmVsQ2xhc3M/Lmxlbmd0aCA+IDAgfHwgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkXG4gICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb25cIj5cbiAgICAgICAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkXG4gICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtbnVtYmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlscy5pZH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzc1wiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNEcml2ZXJBcmVhICYmICF0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNMb2NvbW90aXZlKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfQ09BQ0hfQkxPQ0tFRCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0xvY29tb3RpdmUpIHtcbiAgICAgIHJldHVybiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9MT0NPTU9USVZFJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCk7XG4gICAgfVxuXG4gICAgbGV0IGxhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfVE9fQ09BQ0gnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICB0aGlzLmNvYWNoSXRlbURldGFpbHMuaWQsXG4gICAgXSk7XG5cbiAgICAvL0lmIHNlcnZpY2UgY2xhc3MgZXhpc3QsIHRoZW4gZXhwYW5kIGxhYmVsIHdpdGggc2VydmljZSBjbGFzcyB0cmFuc2xhdGlvblxuICAgIGlmIChzZXJ2aWNlQ2xhc3NOdW1iZXIpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5ID1cbiAgICAgICAgc2VydmljZUNsYXNzTnVtYmVyID09PSAxID8gJ1NFUlZJQ0VfQ0xBU1NfRklSU1QnIDogJ1NFUlZJQ0VfQ0xBU1NfU0VDT05EJztcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgc2VydmljZUNsYXNzVHJhbnNsYXRpb25LZXksXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICApO1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzTGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAnTkFWSUdBVEVfVE9fQ09BQ0hfU0VSVklDRV9DTEFTU19TVUInLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICBbc2VydmljZUNsYXNzVHJhbnNsYXRpb25dLFxuICAgICAgKTtcbiAgICAgIGxhYmVsID0gbGFiZWwuY29uY2F0KHNlcnZpY2VDbGFzc0xhYmVsKTtcbiAgICB9XG5cbiAgICAvLyBFeHBhbmRzIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNlYXRzIGFuZCBiaWN5Y2xlIHNwYWNlcyBhcyBpbmZvXG4gICAgY29uc3QgZnJlZVBsYWNlc1R4dCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAnQ09BQ0hfQVZBSUxBQkxFX05VTUJFUl9PRl9QTEFDRVMnLFxuICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgIFt0aGlzLmNvYWNoSXRlbURldGFpbHMuZnJlZVBsYWNlcz8uc2VhdHMsIHRoaXMuY29hY2hJdGVtRGV0YWlscy5mcmVlUGxhY2VzPy5iaWN5Y2xlc10sXG4gICAgKTtcbiAgICBsYWJlbCA9IGxhYmVsLmNvbmNhdCgnLiAnKS5jb25jYXQoZnJlZVBsYWNlc1R4dCk7XG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBsZXQgYXJpYURlc2NyaXB0aW9uID0gbnVsbDtcbiAgICBpZiAodGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzPy5sZW5ndGgpIHtcbiAgICAgIGFyaWFEZXNjcmlwdGlvbiA9XG4gICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIGFyaWFEZXNjcmlwdGlvbiArPVxuICAgICAgICB0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHNcbiAgICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpKVxuICAgICAgICAgIC5qb2luKCkgKyAnLic7XG4gICAgfVxuICAgIHJldHVybiBhcmlhRGVzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogZW1pdHMgdGhlIGluZGV4IG9mIHRoZSBjb2FjaCBhcnJheSBmb3IgdGhlIG1haW4gbmF2aWdhdGlvbi5cbiAgICogQHBhcmFtIGNvYWNoSW5kZXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX3NlbGVjdE5hdkNvYWNoKGNvYWNoSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDxTZWxlY3RDb2FjaEV2ZW50RGV0YWlscz59XG4gICAgICogRW1pdHMgd2hlbiBhIGNvYWNoIHdpdGhpbiB0aGUgbmF2aWdhdGlvbiB3YXMgc2VsZWN0ZWQgYW5kIHJldHVybnMgdGhlIGNsaWNrZWQgY29hY2ggbmF2IGluZGV4LlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudDxTZWxlY3RDb2FjaEV2ZW50RGV0YWlscz4oJ3NlbGVjdGNvYWNoJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgZGV0YWlsOiBjb2FjaEluZGV4LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvYWNoU2VydmljZUNsYXNzTnVtYmVyKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvYWNoSXRlbURldGFpbHMudHJhdmVsQ2xhc3M/LmluY2x1ZGVzKCdGSVJTVCcpXG4gICAgICA/IDFcbiAgICAgIDogdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnRyYXZlbENsYXNzPy5pbmNsdWRlcygnU0VDT05EJylcbiAgICAgICAgPyAyXG4gICAgICAgIDogbnVsbDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCc6IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRp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