@sbb-esta/lyne-elements-experimental 2.11.0 → 2.11.2

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 (142) hide show
  1. package/core/datetime/date-helper.js +142 -142
  2. package/core/timetable/access-leg-helper.js +49 -52
  3. package/core/timetable/timetable-helper.js +7 -8
  4. package/custom-elements.json +106 -35
  5. package/development/core/datetime/date-helper.js +10 -10
  6. package/development/core/timetable/access-leg-helper.js +12 -15
  7. package/development/core/timetable/timetable-helper.js +6 -7
  8. package/development/{differenceInMinutes-CHSyWiQs.js → differenceInMinutes-D5Nj8Stc.js} +3 -3
  9. package/development/{format-D0-yhzi4.js → format-BQfaa1ZT.js} +22 -26
  10. package/development/{isValid-Bo4R7iA7.js → isValid-DvieCZVi.js} +3 -3
  11. package/development/journey-summary/journey-summary.component.js +4 -5
  12. package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -1
  13. package/development/pearl-chain/pearl-chain.component.js +28 -39
  14. package/development/pearl-chain-time/pearl-chain-time.component.js +5 -6
  15. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  16. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  17. package/development/seat-reservation/common/mapper/icon-mapper.js +1 -1
  18. package/development/seat-reservation/common/mapper/mapper.d.ts +5 -5
  19. package/development/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  20. package/development/seat-reservation/common/mapper/mapper.js +17 -19
  21. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +1 -1
  22. package/development/seat-reservation/common/svgs.js +1 -1
  23. package/development/seat-reservation/common/translations/i18n.js +2 -3
  24. package/development/seat-reservation/common/types.d.ts +71 -0
  25. package/development/seat-reservation/common/types.d.ts.map +1 -0
  26. package/development/seat-reservation/common/types.js +2 -0
  27. package/development/seat-reservation/common.d.ts +6 -3
  28. package/development/seat-reservation/common.d.ts.map +1 -1
  29. package/development/seat-reservation/common.js +3 -7
  30. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +4 -3
  31. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  32. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +27 -38
  33. package/development/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  34. package/development/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.js +6 -7
  35. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts +5 -0
  36. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
  37. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.js +5 -0
  38. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +4 -4
  39. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  40. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +20 -27
  41. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  42. package/development/seat-reservation/seat-reservation-area.d.ts +3 -0
  43. package/development/seat-reservation/seat-reservation-area.d.ts.map +1 -1
  44. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +2 -3
  45. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +7 -8
  46. package/development/seat-reservation/seat-reservation-graphic.d.ts +3 -0
  47. package/development/seat-reservation/seat-reservation-graphic.d.ts.map +1 -1
  48. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +6 -5
  49. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  50. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +7 -11
  51. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts +3 -0
  52. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts.map +1 -1
  53. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +2 -3
  54. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts +3 -0
  55. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts.map +1 -1
  56. package/development/seat-reservation/seat-reservation-navigation.d.ts +6 -0
  57. package/development/seat-reservation/seat-reservation-navigation.d.ts.map +1 -0
  58. package/development/seat-reservation/seat-reservation-navigation.js +7 -0
  59. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +2 -2
  60. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  61. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +5 -6
  62. package/development/seat-reservation/seat-reservation-place-control.d.ts +3 -0
  63. package/development/seat-reservation/seat-reservation-place-control.d.ts.map +1 -1
  64. package/development/seat-reservation/seat-reservation.d.ts +5 -71
  65. package/development/seat-reservation/seat-reservation.d.ts.map +1 -1
  66. package/development/seat-reservation/seat-reservation.js +4 -2
  67. package/development/seat-reservation.d.ts +5 -0
  68. package/development/seat-reservation.d.ts.map +1 -1
  69. package/development/seat-reservation.js +26 -3
  70. package/development/timetable-duration/timetable-duration.component.js +1 -1
  71. package/development/timetable-row/timetable-row.component.js +58 -89
  72. package/differenceInMinutes-CP_C5onR.js +23 -0
  73. package/{format-Dg8rkk7h.js → format-lqeCzmzS.js} +438 -442
  74. package/index.d.ts +1 -1
  75. package/index.js +1 -1
  76. package/isValid-Ceq2O0NQ.js +45 -0
  77. package/journey-summary/journey-summary.component.js +3 -4
  78. package/package.json +47 -2
  79. package/pearl-chain/pearl-chain.component.d.ts.map +1 -1
  80. package/pearl-chain/pearl-chain.component.js +78 -95
  81. package/pearl-chain-time/pearl-chain-time.component.js +44 -45
  82. package/seat-reservation/common/mapper/mapper.d.ts +5 -5
  83. package/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  84. package/seat-reservation/common/mapper/mapper.js +50 -54
  85. package/seat-reservation/common/translations/i18n.js +5 -6
  86. package/seat-reservation/common/types.d.ts +71 -0
  87. package/seat-reservation/common/types.d.ts.map +1 -0
  88. package/seat-reservation/common/types.js +1 -0
  89. package/seat-reservation/common.d.ts +6 -3
  90. package/seat-reservation/common.d.ts.map +1 -1
  91. package/seat-reservation/common.js +11 -15
  92. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +4 -3
  93. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  94. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +107 -118
  95. package/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  96. package/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.js +40 -41
  97. package/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts +5 -0
  98. package/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
  99. package/seat-reservation/seat-reservation/{seat-reservation-scoped-component.js → seat-reservation-scoped.js} +1 -1
  100. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts +4 -4
  101. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  102. package/seat-reservation/seat-reservation/seat-reservation.component.js +82 -91
  103. package/seat-reservation/seat-reservation-area.d.ts +3 -0
  104. package/seat-reservation/seat-reservation-area.d.ts.map +1 -1
  105. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +15 -18
  106. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +58 -59
  107. package/seat-reservation/seat-reservation-graphic.d.ts +3 -0
  108. package/seat-reservation/seat-reservation-graphic.d.ts.map +1 -1
  109. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +6 -5
  110. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  111. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +71 -75
  112. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts +3 -0
  113. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts.map +1 -1
  114. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +12 -13
  115. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts +3 -0
  116. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts.map +1 -1
  117. package/seat-reservation/seat-reservation-navigation.d.ts +6 -0
  118. package/seat-reservation/seat-reservation-navigation.d.ts.map +1 -0
  119. package/seat-reservation/seat-reservation-navigation.js +6 -0
  120. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +2 -2
  121. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  122. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +24 -25
  123. package/seat-reservation/seat-reservation-place-control.d.ts +3 -0
  124. package/seat-reservation/seat-reservation-place-control.d.ts.map +1 -1
  125. package/seat-reservation/seat-reservation.d.ts +5 -71
  126. package/seat-reservation/seat-reservation.d.ts.map +1 -1
  127. package/seat-reservation/seat-reservation.js +6 -4
  128. package/seat-reservation.d.ts +5 -0
  129. package/seat-reservation.d.ts.map +1 -1
  130. package/seat-reservation.js +27 -4
  131. package/timetable-row/timetable-row.component.js +207 -247
  132. package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component/seat-reservation-scoped.component.d.ts.map +0 -1
  133. package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts +0 -2
  134. package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts.map +0 -1
  135. package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component.js +0 -5
  136. package/differenceInMinutes-BMqUZdhj.js +0 -23
  137. package/isValid-DJ69OMZJ.js +0 -45
  138. package/seat-reservation/seat-reservation/seat-reservation-scoped-component/seat-reservation-scoped.component.d.ts.map +0 -1
  139. package/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts +0 -2
  140. package/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts.map +0 -1
  141. /package/development/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.d.ts +0 -0
  142. /package/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.d.ts +0 -0
@@ -3,33 +3,30 @@ import { nothing, html } from "lit";
3
3
  import { isRideLeg, isConnectionLeg, extractTimeAndStringFromNoticeText } from "./timetable-helper.js";
4
4
  import "@sbb-esta/lyne-elements/icon.js";
5
5
  function getPTConnectionAttribute(leg, connectionLegNotice) {
6
- var _a, _b;
7
6
  const connectionFirstLeg = isConnectionLeg(leg) ? leg : null;
8
- const connectionFirstLegNotice = connectionFirstLeg ? (_a = connectionFirstLeg == null ? void 0 : connectionFirstLeg.notices) == null ? void 0 : _a.filter((notice) => connectionLegNotice.includes(notice.name))[0] : null;
7
+ const connectionFirstLegNotice = connectionFirstLeg ? connectionFirstLeg?.notices?.filter((notice) => connectionLegNotice.includes(notice.name))[0] : null;
9
8
  return connectionFirstLegNotice ? {
10
- duration: (connectionFirstLeg == null ? void 0 : connectionFirstLeg.duration) || 0,
11
- text: ((_b = connectionFirstLegNotice == null ? void 0 : connectionFirstLegNotice.text) == null ? void 0 : _b.template) || "",
9
+ duration: connectionFirstLeg?.duration || 0,
10
+ text: connectionFirstLegNotice?.text?.template || "",
12
11
  icon: "walk-small"
13
12
  } : null;
14
13
  }
15
14
  function getFirstExtendedLegAttribute(leg, departureWalk, a11yFootpath, currentLanguage) {
16
- var _a, _b, _c;
17
- const extendedFirstLeg = isRideLeg(leg) ? (_b = (_a = leg == null ? void 0 : leg.serviceJourney) == null ? void 0 : _a.notices) == null ? void 0 : _b.filter((notice) => ["CI"].includes(notice.name))[0] : null;
15
+ const extendedFirstLeg = isRideLeg(leg) ? leg?.serviceJourney?.notices?.filter((notice) => ["CI"].includes(notice.name))[0] : null;
18
16
  const extractTimeAndString = extendedFirstLeg && extractTimeAndStringFromNoticeText(extendedFirstLeg);
19
17
  return extendedFirstLeg ? {
20
- duration: ((extractTimeAndString == null ? void 0 : extractTimeAndString.duration) || 0) + (departureWalk || 0),
21
- text: a11yFootpath ? i18nWalkingDistanceDeparture[currentLanguage] : (extractTimeAndString == null ? void 0 : extractTimeAndString.text) || "",
22
- icon: a11yFootpath ? "wheelchair-small" : `sa-${(_c = extendedFirstLeg == null ? void 0 : extendedFirstLeg.name) == null ? void 0 : _c.toLowerCase()}`
18
+ duration: (extractTimeAndString?.duration || 0) + (departureWalk || 0),
19
+ text: a11yFootpath ? i18nWalkingDistanceDeparture[currentLanguage] : extractTimeAndString?.text || "",
20
+ icon: a11yFootpath ? "wheelchair-small" : `sa-${extendedFirstLeg?.name?.toLowerCase()}`
23
21
  } : null;
24
22
  }
25
23
  function getLastExtendedLegAttribute(leg, arrivalWalk, a11yFootpath, currentLanguage) {
26
- var _a, _b, _c;
27
- const extendedLastLeg = isRideLeg(leg) ? (_b = (_a = leg == null ? void 0 : leg.serviceJourney) == null ? void 0 : _a.notices) == null ? void 0 : _b.filter((notice) => ["CO"].includes(notice.name))[0] : null;
24
+ const extendedLastLeg = isRideLeg(leg) ? leg?.serviceJourney?.notices?.filter((notice) => ["CO"].includes(notice.name))[0] : null;
28
25
  const extractTimeAndString = extendedLastLeg && extractTimeAndStringFromNoticeText(extendedLastLeg);
29
26
  return extendedLastLeg ? {
30
- duration: ((extractTimeAndString == null ? void 0 : extractTimeAndString.duration) || 0) + (arrivalWalk || 0),
31
- text: a11yFootpath ? i18nWalkingDistanceArrival[currentLanguage] : (extractTimeAndString == null ? void 0 : extractTimeAndString.text) || "",
32
- icon: a11yFootpath ? "wheelchair-small" : `sa-${(_c = extendedLastLeg == null ? void 0 : extendedLastLeg.name) == null ? void 0 : _c.toLowerCase()}`
27
+ duration: (extractTimeAndString?.duration || 0) + (arrivalWalk || 0),
28
+ text: a11yFootpath ? i18nWalkingDistanceArrival[currentLanguage] : extractTimeAndString?.text || "",
29
+ icon: a11yFootpath ? "wheelchair-small" : `sa-${extendedLastLeg?.name?.toLowerCase()}`
33
30
  } : null;
34
31
  }
35
32
  function renderTransferTime(duration, icon, currentLanguage, label, type) {
@@ -125,4 +122,4 @@ function getDepartureArrivalTimeAttribute(legs, departureWalk, arrivalWalk, curr
125
122
  export {
126
123
  getDepartureArrivalTimeAttribute
127
124
  };
128
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWxlZy1oZWxwZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvY29yZS90aW1ldGFibGUvYWNjZXNzLWxlZy1oZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBoZWxwZXIgZmlsZSBjb250YWlucyBzZXZlcmFsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIGFjY2Vzc2luZyBhdHRyaWJ1dGVzIGZvciB0aGUgY29ubmVjdGlvbnMuXG5cbmltcG9ydCB7XG4gIGkxOG5XYWxraW5nRGlzdGFuY2VBcnJpdmFsLFxuICBpMThuV2Fsa2luZ0Rpc3RhbmNlRGVwYXJ0dXJlLFxufSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHtcbiAgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dCxcbiAgaXNDb25uZWN0aW9uTGVnLFxuICBpc1JpZGVMZWcsXG59IGZyb20gJy4vdGltZXRhYmxlLWhlbHBlci5qcyc7XG5pbXBvcnQgdHlwZSB7IExlZywgUHRDb25uZWN0aW9uTGVnLCBQdFJpZGVMZWcgfSBmcm9tICcuL3RpbWV0YWJsZS1wcm9wZXJ0aWVzLmpzJztcblxuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9pY29uLmpzJztcblxuaW50ZXJmYWNlIElBY2Nlc3NBdHRyaWJ1dGUge1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB0aGUgYXR0cmlidXRlIG9mIGEgQ29ubmVjdGlvbkxlZ1xuICovXG5mdW5jdGlvbiBnZXRQVENvbm5lY3Rpb25BdHRyaWJ1dGUoXG4gIGxlZzogUHRSaWRlTGVnIHwgUHRDb25uZWN0aW9uTGVnLFxuICBjb25uZWN0aW9uTGVnTm90aWNlOiBzdHJpbmdbXSxcbik6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsIHtcbiAgY29uc3QgY29ubmVjdGlvbkZpcnN0TGVnID0gaXNDb25uZWN0aW9uTGVnKGxlZykgPyAobGVnIGFzIFB0Q29ubmVjdGlvbkxlZykgOiBudWxsO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb25GaXJzdExlZ05vdGljZSA9IGNvbm5lY3Rpb25GaXJzdExlZ1xuICAgID8gY29ubmVjdGlvbkZpcnN0TGVnPy5ub3RpY2VzPy5maWx0ZXIoKG5vdGljZSkgPT4gY29ubmVjdGlvbkxlZ05vdGljZS5pbmNsdWRlcyhub3RpY2UubmFtZSkpWzBdXG4gICAgOiBudWxsO1xuXG4gIHJldHVybiBjb25uZWN0aW9uRmlyc3RMZWdOb3RpY2VcbiAgICA/IHtcbiAgICAgICAgZHVyYXRpb246IGNvbm5lY3Rpb25GaXJzdExlZz8uZHVyYXRpb24gfHwgMCxcbiAgICAgICAgdGV4dDogY29ubmVjdGlvbkZpcnN0TGVnTm90aWNlPy50ZXh0Py50ZW1wbGF0ZSB8fCAnJyxcbiAgICAgICAgaWNvbjogJ3dhbGstc21hbGwnLFxuICAgICAgfVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB0aGUgZXh0ZW5kZWQgZW50ZXIgYXR0cmlidXRlIG9mIHRoZSBQVFJpZGVMZWdcbiAqL1xuZnVuY3Rpb24gZ2V0Rmlyc3RFeHRlbmRlZExlZ0F0dHJpYnV0ZShcbiAgbGVnOiBQdFJpZGVMZWcgfCBQdENvbm5lY3Rpb25MZWcsXG4gIGRlcGFydHVyZVdhbGs6IG51bWJlcixcbiAgYTExeUZvb3RwYXRoOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyxcbik6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsIHtcbiAgLy8gRXh0ZW5kZWQgZW50ZXJcbiAgY29uc3QgZXh0ZW5kZWRGaXJzdExlZyA9IGlzUmlkZUxlZyhsZWcpXG4gICAgPyAobGVnIGFzIFB0UmlkZUxlZyk/LnNlcnZpY2VKb3VybmV5Py5ub3RpY2VzPy5maWx0ZXIoKG5vdGljZSkgPT5cbiAgICAgICAgWydDSSddLmluY2x1ZGVzKG5vdGljZS5uYW1lKSxcbiAgICAgIClbMF1cbiAgICA6IG51bGw7XG5cbiAgY29uc3QgZXh0cmFjdFRpbWVBbmRTdHJpbmcgPVxuICAgIGV4dGVuZGVkRmlyc3RMZWcgJiYgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dChleHRlbmRlZEZpcnN0TGVnKTtcblxuICByZXR1cm4gZXh0ZW5kZWRGaXJzdExlZ1xuICAgID8ge1xuICAgICAgICBkdXJhdGlvbjogKGV4dHJhY3RUaW1lQW5kU3RyaW5nPy5kdXJhdGlvbiB8fCAwKSArIChkZXBhcnR1cmVXYWxrIHx8IDApLFxuICAgICAgICB0ZXh0OiBhMTF5Rm9vdHBhdGhcbiAgICAgICAgICA/IGkxOG5XYWxraW5nRGlzdGFuY2VEZXBhcnR1cmVbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgIDogZXh0cmFjdFRpbWVBbmRTdHJpbmc/LnRleHQgfHwgJycsXG4gICAgICAgIGljb246IGExMXlGb290cGF0aCA/ICd3aGVlbGNoYWlyLXNtYWxsJyA6IGBzYS0ke2V4dGVuZGVkRmlyc3RMZWc/Lm5hbWU/LnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgIH1cbiAgICA6IG51bGw7XG59XG5cbi8qKlxuICogQHJldHVybnMgdGhlIGV4dGVuZGVkIGV4aXQgYXR0cmlidXRlIG9mIHRoZSBQVFJpZGVMZWdcbiAqL1xuZnVuY3Rpb24gZ2V0TGFzdEV4dGVuZGVkTGVnQXR0cmlidXRlKFxuICBsZWc6IExlZyxcbiAgYXJyaXZhbFdhbGs6IG51bWJlcixcbiAgYTExeUZvb3RwYXRoOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyxcbik6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsIHtcbiAgLy8gRXh0ZW5kZWQgZXhpdFxuICBjb25zdCBleHRlbmRlZExhc3RMZWcgPSBpc1JpZGVMZWcobGVnKVxuICAgID8gKGxlZyBhcyBQdFJpZGVMZWcpPy5zZXJ2aWNlSm91cm5leT8ubm90aWNlcz8uZmlsdGVyKChub3RpY2UpID0+XG4gICAgICAgIFsnQ08nXS5pbmNsdWRlcyhub3RpY2UubmFtZSksXG4gICAgICApWzBdXG4gICAgOiBudWxsO1xuXG4gIGNvbnN0IGV4dHJhY3RUaW1lQW5kU3RyaW5nID1cbiAgICBleHRlbmRlZExhc3RMZWcgJiYgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dChleHRlbmRlZExhc3RMZWcpO1xuXG4gIHJldHVybiBleHRlbmRlZExhc3RMZWdcbiAgICA/IHtcbiAgICAgICAgZHVyYXRpb246IChleHRyYWN0VGltZUFuZFN0cmluZz8uZHVyYXRpb24gfHwgMCkgKyAoYXJyaXZhbFdhbGsgfHwgMCksXG4gICAgICAgIHRleHQ6IGExMXlGb290cGF0aFxuICAgICAgICAgID8gaTE4bldhbGtpbmdEaXN0YW5jZUFycml2YWxbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgIDogZXh0cmFjdFRpbWVBbmRTdHJpbmc/LnRleHQgfHwgJycsXG4gICAgICAgIGljb246IGExMXlGb290cGF0aCA/ICd3aGVlbGNoYWlyLXNtYWxsJyA6IGBzYS0ke2V4dGVuZGVkTGFzdExlZz8ubmFtZT8udG9Mb3dlckNhc2UoKX1gLFxuICAgICAgfVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiByZW5kZXJzIHRoZSBleHRlbmRlZCBleGl0L2VudGVyIGljb24gd2l0aCB0aGUgZHVyYXRpb25cbiAqL1xuZnVuY3Rpb24gcmVuZGVyVHJhbnNmZXJUaW1lKFxuICBkdXJhdGlvbjogbnVtYmVyIHwgc3RyaW5nLFxuICBpY29uOiBzdHJpbmcsXG4gIGN1cnJlbnRMYW5ndWFnZTogc3RyaW5nLFxuICBsYWJlbD86IHN0cmluZyxcbiAgdHlwZT86ICdkZXBhcnR1cmUnIHwgJ2Fycml2YWwnLFxuKTogVGVtcGxhdGVSZXN1bHQge1xuICByZXR1cm4gaHRtbGBcbiAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fdGltZS10cmFuc2ZlciBzYmItcGVhcmwtY2hhaW5fX3RpbWUtdHJhbnNmZXItLSR7aWNvbn0tJHt0eXBlfVwiPlxuICAgICAgPHNiYi1pY29uIG5hbWU9JHtpY29ufT48L3NiYi1pY29uPlxuICAgICAgPHRpbWUgZGF0ZXRpbWU9JHtkdXJhdGlvbiArICdNJ30+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICR7IWxhYmVsICYmIHR5cGVcbiAgICAgICAgICAgID8gdHlwZSA9PT0gJ2RlcGFydHVyZSdcbiAgICAgICAgICAgICAgPyBpMThuV2Fsa2luZ0Rpc3RhbmNlRGVwYXJ0dXJlW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgICAgICAgOiBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbFtjdXJyZW50TGFuZ3VhZ2VdXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgJHtsYWJlbCA/IGh0bWxgPHNwYW4+JHtsYWJlbH08L3NwYW4+YCA6IG5vdGhpbmd9Jm5ic3A7XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgJHtkdXJhdGlvbn1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX3RpbWUtd2Fsa3RpbWUtcHJpbWUtc3ltYm9sXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Jzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+bWluPC9zcGFuPlxuICAgICAgPC90aW1lPlxuICAgIDwvc3Bhbj5cbiAgYDtcbn1cblxuLyoqXG4gKiByZW5kZXJzIGEgd2Fsay10aW1lIGljb24gd2l0aCB0aGUgd2FsayBkdXJhdGlvblxuICovXG5mdW5jdGlvbiByZW5kZXJXYWxrVGltZShcbiAgZHVyYXRpb246IG51bWJlciB8IHN0cmluZyxcbiAgbGFiZWw6IHN0cmluZyxcbiAgdmFyaWFudDogJ2xlZnQnIHwgJ3JpZ2h0JyxcbiAgaWNvbjogc3RyaW5nLFxuKTogVGVtcGxhdGVSZXN1bHQge1xuICByZXR1cm4gaHRtbGBcbiAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fdGltZS13YWxrdGltZSBzYmItcGVhcmwtY2hhaW5fX3RpbWUtd2Fsa3RpbWUtLSR7aWNvbn0tJHt2YXJpYW50fVwiPlxuICAgICAgPHNiYi1pY29uIG5hbWU9JHtpY29ufT48L3NiYi1pY29uPlxuICAgICAgPHRpbWUgZGF0ZXRpbWU9JHtkdXJhdGlvbiArICdNJ30+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWx9PC9zcGFuPlxuICAgICAgICAke2R1cmF0aW9ufVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fdGltZS13YWxrdGltZS1wcmltZS1zeW1ib2xcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4nPC9zcGFuPlxuICAgICAgPC90aW1lPlxuICAgIDwvc3Bhbj5cbiAgYDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gbGVnczogQW4gYXJyYXkgb2YgTGVnIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBqb3VybmV5IGxlZ3MuXG4gKiBAcGFyYW0gZGVwYXJ0dXJlV2FsazogVGhlIHdhbGtpbmcgZGlzdGFuY2UgaW4gbWludXRlcyBmcm9tIHRoZSBkZXBhcnR1cmUgcG9pbnQgdG8gdGhlIGZpcnN0IGxlZy5cbiAqIEBwYXJhbSBhcnJpdmFsV2FsazogVGhlIHdhbGtpbmcgZGlzdGFuY2UgaW4gbWludXRlcyBmcm9tIHRoZSBsYXN0IGxlZyB0byB0aGUgYXJyaXZhbCBwb2ludC5cbiAqIEBwYXJhbSBjdXJyZW50TGFuZ3VhZ2U6IFRoZSBjdXJyZW50IGxhbmd1YWdlIGZvciBsb2NhbGl6YXRpb24uXG4gKiBAcGFyYW0gYTExeUZvb3RwYXRoOiBXaGV0aGVyIHRoZSBhMTF5LWljb24gc2hvdWxkIGJlIHNob3duLlxuICogQHJldHVybnMgcmVuZGVyRGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogQSBmdW5jdGlvbiB0aGF0IHJlbmRlcnMgdGhlIGVsZW1lbnQgZm9yIHRoZSBkZXBhcnR1cmUgdGltZSBhdHRyaWJ1dGUuXG4gKiBAcmV0dXJucyByZW5kZXJBcnJpdmFsVGltZUF0dHJpYnV0ZTogQSBmdW5jdGlvbiB0aGF0IHJlbmRlcnMgdGhlIGVsZW1lbnQgZm9yIHRoZSBhcnJpdmFsIHRpbWUgYXR0cmlidXRlLlxuICogQHJldHVybnMgYXJyaXZhbFRpbWVBdHRyaWJ1dGU6IFRoZSBhY2Nlc3MgYXR0cmlidXRlIGZvciB0aGUgYXJyaXZhbCB0aW1lLlxuICogQHJldHVybnMgZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogVGhlIGFjY2VzcyBhdHRyaWJ1dGUgZm9yIHRoZSBkZXBhcnR1cmUgdGltZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlcGFydHVyZUFycml2YWxUaW1lQXR0cmlidXRlKFxuICBsZWdzOiBMZWdbXSxcbiAgZGVwYXJ0dXJlV2FsazogbnVtYmVyLFxuICBhcnJpdmFsV2FsazogbnVtYmVyLFxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyxcbiAgYTExeUZvb3RwYXRoPzogYm9vbGVhbixcbik6IHtcbiAgcmVuZGVyRGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogKCkgPT4gVGVtcGxhdGVSZXN1bHQ7XG4gIHJlbmRlckFycml2YWxUaW1lQXR0cmlidXRlOiAoKSA9PiBUZW1wbGF0ZVJlc3VsdDtcbiAgZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogSUFjY2Vzc0F0dHJpYnV0ZSB8IG51bGw7XG4gIGFycml2YWxUaW1lQXR0cmlidXRlOiBJQWNjZXNzQXR0cmlidXRlIHwgbnVsbDtcbn0ge1xuICBjb25zdCBjb25uZWN0aW9uUmlkZUxlZyA9XG4gICAgbGVncyAmJlxuICAgIChsZWdzLmZpbHRlcigobGVnKSA9PiBpc1JpZGVMZWcobGVnKSB8fCBpc0Nvbm5lY3Rpb25MZWcobGVnKSlbMF0gYXNcbiAgICAgIHwgUHRSaWRlTGVnXG4gICAgICB8IFB0Q29ubmVjdGlvbkxlZyk7XG5cbiAgY29uc3QgY29ubmVjdGlvbkxlZ05vdGljZSA9IFsnWU0nLCAnWUInLCAnWScsICdZVCddO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb25GaXJzdExlZyA9IGdldFBUQ29ubmVjdGlvbkF0dHJpYnV0ZShjb25uZWN0aW9uUmlkZUxlZywgY29ubmVjdGlvbkxlZ05vdGljZSk7XG4gIGNvbnN0IGV4dGVuZGVkRmlyc3RMZWcgPSBnZXRGaXJzdEV4dGVuZGVkTGVnQXR0cmlidXRlKFxuICAgIGNvbm5lY3Rpb25SaWRlTGVnLFxuICAgIGRlcGFydHVyZVdhbGssXG4gICAgYTExeUZvb3RwYXRoLFxuICAgIGN1cnJlbnRMYW5ndWFnZSxcbiAgKTtcbiAgY29uc3QgZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZSA9IGRlcGFydHVyZVdhbGtcbiAgICA/IHtcbiAgICAgICAgdGV4dDogaTE4bldhbGtpbmdEaXN0YW5jZURlcGFydHVyZVtjdXJyZW50TGFuZ3VhZ2VdLFxuICAgICAgICBkdXJhdGlvbjogZGVwYXJ0dXJlV2FsayxcbiAgICAgICAgaWNvbjogYTExeUZvb3RwYXRoID8gJ3doZWVsY2hhaXItc21hbGwnIDogJ3dhbGstc21hbGwnLFxuICAgICAgfVxuICAgIDogbnVsbDtcblxuICBjb25zdCBnZXREZXBhcnR1cmVUeXBlID0gKCk6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsID0+IHtcbiAgICBpZiAoY29ubmVjdGlvbkZpcnN0TGVnKSB7XG4gICAgICByZXR1cm4gY29ubmVjdGlvbkZpcnN0TGVnO1xuICAgIH0gZWxzZSBpZiAoZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZSAmJiAhZXh0ZW5kZWRGaXJzdExlZyAmJiAhY29ubmVjdGlvbkZpcnN0TGVnKSB7XG4gICAgICByZXR1cm4gZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZTtcbiAgICB9IGVsc2UgaWYgKGV4dGVuZGVkRmlyc3RMZWcpIHtcbiAgICAgIHJldHVybiBleHRlbmRlZEZpcnN0TGVnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gcmVuZGVyRGVwYXJ0dXJlVGltZUF0dHJpYnV0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke2Nvbm5lY3Rpb25GaXJzdExlZ1xuICAgICAgICA/IHJlbmRlcldhbGtUaW1lKFxuICAgICAgICAgICAgY29ubmVjdGlvbkZpcnN0TGVnLmR1cmF0aW9uLFxuICAgICAgICAgICAgY29ubmVjdGlvbkZpcnN0TGVnLnRleHQsXG4gICAgICAgICAgICAnbGVmdCcsXG4gICAgICAgICAgICBjb25uZWN0aW9uRmlyc3RMZWcuaWNvbixcbiAgICAgICAgICApXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgICR7ZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZSAmJiAhZXh0ZW5kZWRGaXJzdExlZyAmJiAhY29ubmVjdGlvbkZpcnN0TGVnXG4gICAgICAgID8gcmVuZGVyV2Fsa1RpbWUoXG4gICAgICAgICAgICBkZXBhcnR1cmVXYWxrQXR0cmlidXRlLmR1cmF0aW9uLFxuICAgICAgICAgICAgZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZS50ZXh0LFxuICAgICAgICAgICAgJ2xlZnQnLFxuICAgICAgICAgICAgZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZS5pY29uLFxuICAgICAgICAgIClcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHtleHRlbmRlZEZpcnN0TGVnXG4gICAgICAgID8gYTExeUZvb3RwYXRoXG4gICAgICAgICAgPyByZW5kZXJXYWxrVGltZShcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy50ZXh0LFxuICAgICAgICAgICAgICAnbGVmdCcsXG4gICAgICAgICAgICAgIGV4dGVuZGVkRmlyc3RMZWcuaWNvbixcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHJlbmRlclRyYW5zZmVyVGltZShcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy5pY29uLFxuICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIGV4dGVuZGVkRmlyc3RMZWcudGV4dCxcbiAgICAgICAgICAgICAgJ2RlcGFydHVyZScsXG4gICAgICAgICAgICApXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgY29uc3QgbGFzdExlZyA9IGxlZ3MgJiYgbGVnc1tsZWdzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBsYXN0Q29ubmVjdGlvblJpZGVMZWcgPVxuICAgIChpc0Nvbm5lY3Rpb25MZWcobGFzdExlZykgfHwgaXNSaWRlTGVnKGxhc3RMZWcpKSAmJiAobGFzdExlZyBhcyBQdENvbm5lY3Rpb25MZWcgfCBQdFJpZGVMZWcpO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb25MYXN0TGVnID1cbiAgICBsYXN0Q29ubmVjdGlvblJpZGVMZWcgJiYgZ2V0UFRDb25uZWN0aW9uQXR0cmlidXRlKGxhc3RDb25uZWN0aW9uUmlkZUxlZywgY29ubmVjdGlvbkxlZ05vdGljZSk7XG4gIGNvbnN0IGV4dGVuZGVkTGFzdExlZyA9XG4gICAgbGFzdENvbm5lY3Rpb25SaWRlTGVnICYmXG4gICAgZ2V0TGFzdEV4dGVuZGVkTGVnQXR0cmlidXRlKGxhc3RDb25uZWN0aW9uUmlkZUxlZywgYXJyaXZhbFdhbGssIGExMXlGb290cGF0aCwgY3VycmVudExhbmd1YWdlKTtcbiAgY29uc3QgYXJyaXZhbFdhbGtBdHRyaWJ1dGUgPSBhcnJpdmFsV2Fsa1xuICAgID8ge1xuICAgICAgICB0ZXh0OiBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbFtjdXJyZW50TGFuZ3VhZ2VdLFxuICAgICAgICBkdXJhdGlvbjogYXJyaXZhbFdhbGssXG4gICAgICAgIGljb246IGExMXlGb290cGF0aCA/ICd3aGVlbGNoYWlyLXNtYWxsJyA6ICd3YWxrLXNtYWxsJyxcbiAgICAgIH1cbiAgICA6IG51bGw7XG5cbiAgY29uc3QgZ2V0QXJyaXZhbFR5cGUgPSAoKTogSUFjY2Vzc0F0dHJpYnV0ZSB8IG51bGwgPT4ge1xuICAgIGlmIChjb25uZWN0aW9uTGFzdExlZykge1xuICAgICAgcmV0dXJuIGNvbm5lY3Rpb25MYXN0TGVnO1xuICAgIH0gZWxzZSBpZiAoYXJyaXZhbFdhbGtBdHRyaWJ1dGUgJiYgIWV4dGVuZGVkTGFzdExlZyAmJiAhY29ubmVjdGlvbkxhc3RMZWcpIHtcbiAgICAgIHJldHVybiBhcnJpdmFsV2Fsa0F0dHJpYnV0ZTtcbiAgICB9IGVsc2UgaWYgKGV4dGVuZGVkTGFzdExlZykge1xuICAgICAgcmV0dXJuIGV4dGVuZGVkTGFzdExlZztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHJlbmRlckFycml2YWxUaW1lQXR0cmlidXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7Y29ubmVjdGlvbkxhc3RMZWdcbiAgICAgICAgPyByZW5kZXJXYWxrVGltZShcbiAgICAgICAgICAgIGNvbm5lY3Rpb25MYXN0TGVnLmR1cmF0aW9uLFxuICAgICAgICAgICAgY29ubmVjdGlvbkxhc3RMZWcudGV4dCxcbiAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICBjb25uZWN0aW9uTGFzdExlZy5pY29uLFxuICAgICAgICAgIClcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHthcnJpdmFsV2Fsa0F0dHJpYnV0ZSAmJiAhZXh0ZW5kZWRMYXN0TGVnICYmICFjb25uZWN0aW9uTGFzdExlZ1xuICAgICAgICA/IHJlbmRlcldhbGtUaW1lKFxuICAgICAgICAgICAgYXJyaXZhbFdhbGtBdHRyaWJ1dGUuZHVyYXRpb24sXG4gICAgICAgICAgICBhcnJpdmFsV2Fsa0F0dHJpYnV0ZS50ZXh0LFxuICAgICAgICAgICAgJ3JpZ2h0JyxcbiAgICAgICAgICAgIGFycml2YWxXYWxrQXR0cmlidXRlLmljb24sXG4gICAgICAgICAgKVxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAke2V4dGVuZGVkTGFzdExlZ1xuICAgICAgICA/IGExMXlGb290cGF0aFxuICAgICAgICAgID8gcmVuZGVyV2Fsa1RpbWUoXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgZXh0ZW5kZWRMYXN0TGVnLnRleHQsXG4gICAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy5pY29uLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogcmVuZGVyVHJhbnNmZXJUaW1lKFxuICAgICAgICAgICAgICBleHRlbmRlZExhc3RMZWcuZHVyYXRpb24sXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy5pY29uLFxuICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy50ZXh0LFxuICAgICAgICAgICAgICAnYXJyaXZhbCcsXG4gICAgICAgICAgICApXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW5kZXJEZXBhcnR1cmVUaW1lQXR0cmlidXRlLFxuICAgIHJlbmRlckFycml2YWxUaW1lQXR0cmlidXRlLFxuICAgIGRlcGFydHVyZVRpbWVBdHRyaWJ1dGU6IGdldERlcGFydHVyZVR5cGUoKSxcbiAgICBhcnJpdmFsVGltZUF0dHJpYnV0ZTogZ2V0QXJyaXZhbFR5cGUoKSxcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBMkJBLFNBQVMseUJBQ1AsS0FDQSxxQkFBNkI7O0FBRTdCLFFBQU0scUJBQXFCLGdCQUFnQixHQUFHLElBQUssTUFBMEI7QUFFN0UsUUFBTSwyQkFBMkIsc0JBQzdCLDhEQUFvQixZQUFwQixtQkFBNkIsT0FBTyxDQUFD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
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWxlZy1oZWxwZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvY29yZS90aW1ldGFibGUvYWNjZXNzLWxlZy1oZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBoZWxwZXIgZmlsZSBjb250YWlucyBzZXZlcmFsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIGFjY2Vzc2luZyBhdHRyaWJ1dGVzIGZvciB0aGUgY29ubmVjdGlvbnMuXG5cbmltcG9ydCB7XG4gIGkxOG5XYWxraW5nRGlzdGFuY2VBcnJpdmFsLFxuICBpMThuV2Fsa2luZ0Rpc3RhbmNlRGVwYXJ0dXJlLFxufSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHtcbiAgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dCxcbiAgaXNDb25uZWN0aW9uTGVnLFxuICBpc1JpZGVMZWcsXG59IGZyb20gJy4vdGltZXRhYmxlLWhlbHBlci5qcyc7XG5pbXBvcnQgdHlwZSB7IExlZywgUHRDb25uZWN0aW9uTGVnLCBQdFJpZGVMZWcgfSBmcm9tICcuL3RpbWV0YWJsZS1wcm9wZXJ0aWVzLmpzJztcblxuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9pY29uLmpzJztcblxuaW50ZXJmYWNlIElBY2Nlc3NBdHRyaWJ1dGUge1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB0aGUgYXR0cmlidXRlIG9mIGEgQ29ubmVjdGlvbkxlZ1xuICovXG5mdW5jdGlvbiBnZXRQVENvbm5lY3Rpb25BdHRyaWJ1dGUoXG4gIGxlZzogUHRSaWRlTGVnIHwgUHRDb25uZWN0aW9uTGVnLFxuICBjb25uZWN0aW9uTGVnTm90aWNlOiBzdHJpbmdbXSxcbik6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsIHtcbiAgY29uc3QgY29ubmVjdGlvbkZpcnN0TGVnID0gaXNDb25uZWN0aW9uTGVnKGxlZykgPyAobGVnIGFzIFB0Q29ubmVjdGlvbkxlZykgOiBudWxsO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb25GaXJzdExlZ05vdGljZSA9IGNvbm5lY3Rpb25GaXJzdExlZ1xuICAgID8gY29ubmVjdGlvbkZpcnN0TGVnPy5ub3RpY2VzPy5maWx0ZXIoKG5vdGljZSkgPT4gY29ubmVjdGlvbkxlZ05vdGljZS5pbmNsdWRlcyhub3RpY2UubmFtZSkpWzBdXG4gICAgOiBudWxsO1xuXG4gIHJldHVybiBjb25uZWN0aW9uRmlyc3RMZWdOb3RpY2VcbiAgICA/IHtcbiAgICAgICAgZHVyYXRpb246IGNvbm5lY3Rpb25GaXJzdExlZz8uZHVyYXRpb24gfHwgMCxcbiAgICAgICAgdGV4dDogY29ubmVjdGlvbkZpcnN0TGVnTm90aWNlPy50ZXh0Py50ZW1wbGF0ZSB8fCAnJyxcbiAgICAgICAgaWNvbjogJ3dhbGstc21hbGwnLFxuICAgICAgfVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB0aGUgZXh0ZW5kZWQgZW50ZXIgYXR0cmlidXRlIG9mIHRoZSBQVFJpZGVMZWdcbiAqL1xuZnVuY3Rpb24gZ2V0Rmlyc3RFeHRlbmRlZExlZ0F0dHJpYnV0ZShcbiAgbGVnOiBQdFJpZGVMZWcgfCBQdENvbm5lY3Rpb25MZWcsXG4gIGRlcGFydHVyZVdhbGs6IG51bWJlcixcbiAgYTExeUZvb3RwYXRoOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyxcbik6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsIHtcbiAgLy8gRXh0ZW5kZWQgZW50ZXJcbiAgY29uc3QgZXh0ZW5kZWRGaXJzdExlZyA9IGlzUmlkZUxlZyhsZWcpXG4gICAgPyAobGVnIGFzIFB0UmlkZUxlZyk/LnNlcnZpY2VKb3VybmV5Py5ub3RpY2VzPy5maWx0ZXIoKG5vdGljZSkgPT5cbiAgICAgICAgWydDSSddLmluY2x1ZGVzKG5vdGljZS5uYW1lKSxcbiAgICAgIClbMF1cbiAgICA6IG51bGw7XG5cbiAgY29uc3QgZXh0cmFjdFRpbWVBbmRTdHJpbmcgPVxuICAgIGV4dGVuZGVkRmlyc3RMZWcgJiYgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dChleHRlbmRlZEZpcnN0TGVnKTtcblxuICByZXR1cm4gZXh0ZW5kZWRGaXJzdExlZ1xuICAgID8ge1xuICAgICAgICBkdXJhdGlvbjogKGV4dHJhY3RUaW1lQW5kU3RyaW5nPy5kdXJhdGlvbiB8fCAwKSArIChkZXBhcnR1cmVXYWxrIHx8IDApLFxuICAgICAgICB0ZXh0OiBhMTF5Rm9vdHBhdGhcbiAgICAgICAgICA/IGkxOG5XYWxraW5nRGlzdGFuY2VEZXBhcnR1cmVbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgIDogZXh0cmFjdFRpbWVBbmRTdHJpbmc/LnRleHQgfHwgJycsXG4gICAgICAgIGljb246IGExMXlGb290cGF0aCA/ICd3aGVlbGNoYWlyLXNtYWxsJyA6IGBzYS0ke2V4dGVuZGVkRmlyc3RMZWc/Lm5hbWU/LnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgIH1cbiAgICA6IG51bGw7XG59XG5cbi8qKlxuICogQHJldHVybnMgdGhlIGV4dGVuZGVkIGV4aXQgYXR0cmlidXRlIG9mIHRoZSBQVFJpZGVMZWdcbiAqL1xuZnVuY3Rpb24gZ2V0TGFzdEV4dGVuZGVkTGVnQXR0cmlidXRlKFxuICBsZWc6IExlZyxcbiAgYXJyaXZhbFdhbGs6IG51bWJlcixcbiAgYTExeUZvb3RwYXRoOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyxcbik6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsIHtcbiAgLy8gRXh0ZW5kZWQgZXhpdFxuICBjb25zdCBleHRlbmRlZExhc3RMZWcgPSBpc1JpZGVMZWcobGVnKVxuICAgID8gKGxlZyBhcyBQdFJpZGVMZWcpPy5zZXJ2aWNlSm91cm5leT8ubm90aWNlcz8uZmlsdGVyKChub3RpY2UpID0+XG4gICAgICAgIFsnQ08nXS5pbmNsdWRlcyhub3RpY2UubmFtZSksXG4gICAgICApWzBdXG4gICAgOiBudWxsO1xuXG4gIGNvbnN0IGV4dHJhY3RUaW1lQW5kU3RyaW5nID1cbiAgICBleHRlbmRlZExhc3RMZWcgJiYgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dChleHRlbmRlZExhc3RMZWcpO1xuXG4gIHJldHVybiBleHRlbmRlZExhc3RMZWdcbiAgICA/IHtcbiAgICAgICAgZHVyYXRpb246IChleHRyYWN0VGltZUFuZFN0cmluZz8uZHVyYXRpb24gfHwgMCkgKyAoYXJyaXZhbFdhbGsgfHwgMCksXG4gICAgICAgIHRleHQ6IGExMXlGb290cGF0aFxuICAgICAgICAgID8gaTE4bldhbGtpbmdEaXN0YW5jZUFycml2YWxbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgIDogZXh0cmFjdFRpbWVBbmRTdHJpbmc/LnRleHQgfHwgJycsXG4gICAgICAgIGljb246IGExMXlGb290cGF0aCA/ICd3aGVlbGNoYWlyLXNtYWxsJyA6IGBzYS0ke2V4dGVuZGVkTGFzdExlZz8ubmFtZT8udG9Mb3dlckNhc2UoKX1gLFxuICAgICAgfVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiByZW5kZXJzIHRoZSBleHRlbmRlZCBleGl0L2VudGVyIGljb24gd2l0aCB0aGUgZHVyYXRpb25cbiAqL1xuZnVuY3Rpb24gcmVuZGVyVHJhbnNmZXJUaW1lKFxuICBkdXJhdGlvbjogbnVtYmVyIHwgc3RyaW5nLFxuICBpY29uOiBzdHJpbmcsXG4gIGN1cnJlbnRMYW5ndWFnZTogc3RyaW5nLFxuICBsYWJlbD86IHN0cmluZyxcbiAgdHlwZT86ICdkZXBhcnR1cmUnIHwgJ2Fycml2YWwnLFxuKTogVGVtcGxhdGVSZXN1bHQge1xuICByZXR1cm4gaHRtbGBcbiAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fdGltZS10cmFuc2ZlciBzYmItcGVhcmwtY2hhaW5fX3RpbWUtdHJhbnNmZXItLSR7aWNvbn0tJHt0eXBlfVwiPlxuICAgICAgPHNiYi1pY29uIG5hbWU9JHtpY29ufT48L3NiYi1pY29uPlxuICAgICAgPHRpbWUgZGF0ZXRpbWU9JHtkdXJhdGlvbiArICdNJ30+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICR7IWxhYmVsICYmIHR5cGVcbiAgICAgICAgICAgID8gdHlwZSA9PT0gJ2RlcGFydHVyZSdcbiAgICAgICAgICAgICAgPyBpMThuV2Fsa2luZ0Rpc3RhbmNlRGVwYXJ0dXJlW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgICAgICAgOiBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbFtjdXJyZW50TGFuZ3VhZ2VdXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgJHtsYWJlbCA/IGh0bWxgPHNwYW4+JHtsYWJlbH08L3NwYW4+YCA6IG5vdGhpbmd9Jm5ic3A7XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgJHtkdXJhdGlvbn1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX3RpbWUtd2Fsa3RpbWUtcHJpbWUtc3ltYm9sXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Jzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+bWluPC9zcGFuPlxuICAgICAgPC90aW1lPlxuICAgIDwvc3Bhbj5cbiAgYDtcbn1cblxuLyoqXG4gKiByZW5kZXJzIGEgd2Fsay10aW1lIGljb24gd2l0aCB0aGUgd2FsayBkdXJhdGlvblxuICovXG5mdW5jdGlvbiByZW5kZXJXYWxrVGltZShcbiAgZHVyYXRpb246IG51bWJlciB8IHN0cmluZyxcbiAgbGFiZWw6IHN0cmluZyxcbiAgdmFyaWFudDogJ2xlZnQnIHwgJ3JpZ2h0JyxcbiAgaWNvbjogc3RyaW5nLFxuKTogVGVtcGxhdGVSZXN1bHQge1xuICByZXR1cm4gaHRtbGBcbiAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fdGltZS13YWxrdGltZSBzYmItcGVhcmwtY2hhaW5fX3RpbWUtd2Fsa3RpbWUtLSR7aWNvbn0tJHt2YXJpYW50fVwiPlxuICAgICAgPHNiYi1pY29uIG5hbWU9JHtpY29ufT48L3NiYi1pY29uPlxuICAgICAgPHRpbWUgZGF0ZXRpbWU9JHtkdXJhdGlvbiArICdNJ30+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWx9PC9zcGFuPlxuICAgICAgICAke2R1cmF0aW9ufVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fdGltZS13YWxrdGltZS1wcmltZS1zeW1ib2xcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4nPC9zcGFuPlxuICAgICAgPC90aW1lPlxuICAgIDwvc3Bhbj5cbiAgYDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gbGVnczogQW4gYXJyYXkgb2YgTGVnIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBqb3VybmV5IGxlZ3MuXG4gKiBAcGFyYW0gZGVwYXJ0dXJlV2FsazogVGhlIHdhbGtpbmcgZGlzdGFuY2UgaW4gbWludXRlcyBmcm9tIHRoZSBkZXBhcnR1cmUgcG9pbnQgdG8gdGhlIGZpcnN0IGxlZy5cbiAqIEBwYXJhbSBhcnJpdmFsV2FsazogVGhlIHdhbGtpbmcgZGlzdGFuY2UgaW4gbWludXRlcyBmcm9tIHRoZSBsYXN0IGxlZyB0byB0aGUgYXJyaXZhbCBwb2ludC5cbiAqIEBwYXJhbSBjdXJyZW50TGFuZ3VhZ2U6IFRoZSBjdXJyZW50IGxhbmd1YWdlIGZvciBsb2NhbGl6YXRpb24uXG4gKiBAcGFyYW0gYTExeUZvb3RwYXRoOiBXaGV0aGVyIHRoZSBhMTF5LWljb24gc2hvdWxkIGJlIHNob3duLlxuICogQHJldHVybnMgcmVuZGVyRGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogQSBmdW5jdGlvbiB0aGF0IHJlbmRlcnMgdGhlIGVsZW1lbnQgZm9yIHRoZSBkZXBhcnR1cmUgdGltZSBhdHRyaWJ1dGUuXG4gKiBAcmV0dXJucyByZW5kZXJBcnJpdmFsVGltZUF0dHJpYnV0ZTogQSBmdW5jdGlvbiB0aGF0IHJlbmRlcnMgdGhlIGVsZW1lbnQgZm9yIHRoZSBhcnJpdmFsIHRpbWUgYXR0cmlidXRlLlxuICogQHJldHVybnMgYXJyaXZhbFRpbWVBdHRyaWJ1dGU6IFRoZSBhY2Nlc3MgYXR0cmlidXRlIGZvciB0aGUgYXJyaXZhbCB0aW1lLlxuICogQHJldHVybnMgZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogVGhlIGFjY2VzcyBhdHRyaWJ1dGUgZm9yIHRoZSBkZXBhcnR1cmUgdGltZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlcGFydHVyZUFycml2YWxUaW1lQXR0cmlidXRlKFxuICBsZWdzOiBMZWdbXSxcbiAgZGVwYXJ0dXJlV2FsazogbnVtYmVyLFxuICBhcnJpdmFsV2FsazogbnVtYmVyLFxuICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyxcbiAgYTExeUZvb3RwYXRoPzogYm9vbGVhbixcbik6IHtcbiAgcmVuZGVyRGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogKCkgPT4gVGVtcGxhdGVSZXN1bHQ7XG4gIHJlbmRlckFycml2YWxUaW1lQXR0cmlidXRlOiAoKSA9PiBUZW1wbGF0ZVJlc3VsdDtcbiAgZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZTogSUFjY2Vzc0F0dHJpYnV0ZSB8IG51bGw7XG4gIGFycml2YWxUaW1lQXR0cmlidXRlOiBJQWNjZXNzQXR0cmlidXRlIHwgbnVsbDtcbn0ge1xuICBjb25zdCBjb25uZWN0aW9uUmlkZUxlZyA9XG4gICAgbGVncyAmJlxuICAgIChsZWdzLmZpbHRlcigobGVnKSA9PiBpc1JpZGVMZWcobGVnKSB8fCBpc0Nvbm5lY3Rpb25MZWcobGVnKSlbMF0gYXNcbiAgICAgIHwgUHRSaWRlTGVnXG4gICAgICB8IFB0Q29ubmVjdGlvbkxlZyk7XG5cbiAgY29uc3QgY29ubmVjdGlvbkxlZ05vdGljZSA9IFsnWU0nLCAnWUInLCAnWScsICdZVCddO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb25GaXJzdExlZyA9IGdldFBUQ29ubmVjdGlvbkF0dHJpYnV0ZShjb25uZWN0aW9uUmlkZUxlZywgY29ubmVjdGlvbkxlZ05vdGljZSk7XG4gIGNvbnN0IGV4dGVuZGVkRmlyc3RMZWcgPSBnZXRGaXJzdEV4dGVuZGVkTGVnQXR0cmlidXRlKFxuICAgIGNvbm5lY3Rpb25SaWRlTGVnLFxuICAgIGRlcGFydHVyZVdhbGssXG4gICAgYTExeUZvb3RwYXRoLFxuICAgIGN1cnJlbnRMYW5ndWFnZSxcbiAgKTtcbiAgY29uc3QgZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZSA9IGRlcGFydHVyZVdhbGtcbiAgICA/IHtcbiAgICAgICAgdGV4dDogaTE4bldhbGtpbmdEaXN0YW5jZURlcGFydHVyZVtjdXJyZW50TGFuZ3VhZ2VdLFxuICAgICAgICBkdXJhdGlvbjogZGVwYXJ0dXJlV2FsayxcbiAgICAgICAgaWNvbjogYTExeUZvb3RwYXRoID8gJ3doZWVsY2hhaXItc21hbGwnIDogJ3dhbGstc21hbGwnLFxuICAgICAgfVxuICAgIDogbnVsbDtcblxuICBjb25zdCBnZXREZXBhcnR1cmVUeXBlID0gKCk6IElBY2Nlc3NBdHRyaWJ1dGUgfCBudWxsID0+IHtcbiAgICBpZiAoY29ubmVjdGlvbkZpcnN0TGVnKSB7XG4gICAgICByZXR1cm4gY29ubmVjdGlvbkZpcnN0TGVnO1xuICAgIH0gZWxzZSBpZiAoZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZSAmJiAhZXh0ZW5kZWRGaXJzdExlZyAmJiAhY29ubmVjdGlvbkZpcnN0TGVnKSB7XG4gICAgICByZXR1cm4gZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZTtcbiAgICB9IGVsc2UgaWYgKGV4dGVuZGVkRmlyc3RMZWcpIHtcbiAgICAgIHJldHVybiBleHRlbmRlZEZpcnN0TGVnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gcmVuZGVyRGVwYXJ0dXJlVGltZUF0dHJpYnV0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke2Nvbm5lY3Rpb25GaXJzdExlZ1xuICAgICAgICA/IHJlbmRlcldhbGtUaW1lKFxuICAgICAgICAgICAgY29ubmVjdGlvbkZpcnN0TGVnLmR1cmF0aW9uLFxuICAgICAgICAgICAgY29ubmVjdGlvbkZpcnN0TGVnLnRleHQsXG4gICAgICAgICAgICAnbGVmdCcsXG4gICAgICAgICAgICBjb25uZWN0aW9uRmlyc3RMZWcuaWNvbixcbiAgICAgICAgICApXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgICR7ZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZSAmJiAhZXh0ZW5kZWRGaXJzdExlZyAmJiAhY29ubmVjdGlvbkZpcnN0TGVnXG4gICAgICAgID8gcmVuZGVyV2Fsa1RpbWUoXG4gICAgICAgICAgICBkZXBhcnR1cmVXYWxrQXR0cmlidXRlLmR1cmF0aW9uLFxuICAgICAgICAgICAgZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZS50ZXh0LFxuICAgICAgICAgICAgJ2xlZnQnLFxuICAgICAgICAgICAgZGVwYXJ0dXJlV2Fsa0F0dHJpYnV0ZS5pY29uLFxuICAgICAgICAgIClcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHtleHRlbmRlZEZpcnN0TGVnXG4gICAgICAgID8gYTExeUZvb3RwYXRoXG4gICAgICAgICAgPyByZW5kZXJXYWxrVGltZShcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy50ZXh0LFxuICAgICAgICAgICAgICAnbGVmdCcsXG4gICAgICAgICAgICAgIGV4dGVuZGVkRmlyc3RMZWcuaWNvbixcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHJlbmRlclRyYW5zZmVyVGltZShcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgZXh0ZW5kZWRGaXJzdExlZy5pY29uLFxuICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIGV4dGVuZGVkRmlyc3RMZWcudGV4dCxcbiAgICAgICAgICAgICAgJ2RlcGFydHVyZScsXG4gICAgICAgICAgICApXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgY29uc3QgbGFzdExlZyA9IGxlZ3MgJiYgbGVnc1tsZWdzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBsYXN0Q29ubmVjdGlvblJpZGVMZWcgPVxuICAgIChpc0Nvbm5lY3Rpb25MZWcobGFzdExlZykgfHwgaXNSaWRlTGVnKGxhc3RMZWcpKSAmJiAobGFzdExlZyBhcyBQdENvbm5lY3Rpb25MZWcgfCBQdFJpZGVMZWcpO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb25MYXN0TGVnID1cbiAgICBsYXN0Q29ubmVjdGlvblJpZGVMZWcgJiYgZ2V0UFRDb25uZWN0aW9uQXR0cmlidXRlKGxhc3RDb25uZWN0aW9uUmlkZUxlZywgY29ubmVjdGlvbkxlZ05vdGljZSk7XG4gIGNvbnN0IGV4dGVuZGVkTGFzdExlZyA9XG4gICAgbGFzdENvbm5lY3Rpb25SaWRlTGVnICYmXG4gICAgZ2V0TGFzdEV4dGVuZGVkTGVnQXR0cmlidXRlKGxhc3RDb25uZWN0aW9uUmlkZUxlZywgYXJyaXZhbFdhbGssIGExMXlGb290cGF0aCwgY3VycmVudExhbmd1YWdlKTtcbiAgY29uc3QgYXJyaXZhbFdhbGtBdHRyaWJ1dGUgPSBhcnJpdmFsV2Fsa1xuICAgID8ge1xuICAgICAgICB0ZXh0OiBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbFtjdXJyZW50TGFuZ3VhZ2VdLFxuICAgICAgICBkdXJhdGlvbjogYXJyaXZhbFdhbGssXG4gICAgICAgIGljb246IGExMXlGb290cGF0aCA/ICd3aGVlbGNoYWlyLXNtYWxsJyA6ICd3YWxrLXNtYWxsJyxcbiAgICAgIH1cbiAgICA6IG51bGw7XG5cbiAgY29uc3QgZ2V0QXJyaXZhbFR5cGUgPSAoKTogSUFjY2Vzc0F0dHJpYnV0ZSB8IG51bGwgPT4ge1xuICAgIGlmIChjb25uZWN0aW9uTGFzdExlZykge1xuICAgICAgcmV0dXJuIGNvbm5lY3Rpb25MYXN0TGVnO1xuICAgIH0gZWxzZSBpZiAoYXJyaXZhbFdhbGtBdHRyaWJ1dGUgJiYgIWV4dGVuZGVkTGFzdExlZyAmJiAhY29ubmVjdGlvbkxhc3RMZWcpIHtcbiAgICAgIHJldHVybiBhcnJpdmFsV2Fsa0F0dHJpYnV0ZTtcbiAgICB9IGVsc2UgaWYgKGV4dGVuZGVkTGFzdExlZykge1xuICAgICAgcmV0dXJuIGV4dGVuZGVkTGFzdExlZztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHJlbmRlckFycml2YWxUaW1lQXR0cmlidXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7Y29ubmVjdGlvbkxhc3RMZWdcbiAgICAgICAgPyByZW5kZXJXYWxrVGltZShcbiAgICAgICAgICAgIGNvbm5lY3Rpb25MYXN0TGVnLmR1cmF0aW9uLFxuICAgICAgICAgICAgY29ubmVjdGlvbkxhc3RMZWcudGV4dCxcbiAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICBjb25uZWN0aW9uTGFzdExlZy5pY29uLFxuICAgICAgICAgIClcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHthcnJpdmFsV2Fsa0F0dHJpYnV0ZSAmJiAhZXh0ZW5kZWRMYXN0TGVnICYmICFjb25uZWN0aW9uTGFzdExlZ1xuICAgICAgICA/IHJlbmRlcldhbGtUaW1lKFxuICAgICAgICAgICAgYXJyaXZhbFdhbGtBdHRyaWJ1dGUuZHVyYXRpb24sXG4gICAgICAgICAgICBhcnJpdmFsV2Fsa0F0dHJpYnV0ZS50ZXh0LFxuICAgICAgICAgICAgJ3JpZ2h0JyxcbiAgICAgICAgICAgIGFycml2YWxXYWxrQXR0cmlidXRlLmljb24sXG4gICAgICAgICAgKVxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAke2V4dGVuZGVkTGFzdExlZ1xuICAgICAgICA/IGExMXlGb290cGF0aFxuICAgICAgICAgID8gcmVuZGVyV2Fsa1RpbWUoXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy5kdXJhdGlvbixcbiAgICAgICAgICAgICAgZXh0ZW5kZWRMYXN0TGVnLnRleHQsXG4gICAgICAgICAgICAgICdyaWdodCcsXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy5pY29uLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogcmVuZGVyVHJhbnNmZXJUaW1lKFxuICAgICAgICAgICAgICBleHRlbmRlZExhc3RMZWcuZHVyYXRpb24sXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy5pY29uLFxuICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIGV4dGVuZGVkTGFzdExlZy50ZXh0LFxuICAgICAgICAgICAgICAnYXJyaXZhbCcsXG4gICAgICAgICAgICApXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW5kZXJEZXBhcnR1cmVUaW1lQXR0cmlidXRlLFxuICAgIHJlbmRlckFycml2YWxUaW1lQXR0cmlidXRlLFxuICAgIGRlcGFydHVyZVRpbWVBdHRyaWJ1dGU6IGdldERlcGFydHVyZVR5cGUoKSxcbiAgICBhcnJpdmFsVGltZUF0dHJpYnV0ZTogZ2V0QXJyaXZhbFR5cGUoKSxcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBMkJBLFNBQVMseUJBQ1AsS0FDQSxxQkFBNkI7QUFFN0IsUUFBTSxxQkFBcUIsZ0JBQWdCLEdBQUcsSUFBSyxNQUEwQjtBQUU3RSxRQUFNLDJCQUEyQixxQkFDN0Isb0JBQW9CLFNBQVMsT0FBTyxDQUFDLFdBQVcsb0JB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
@@ -1,16 +1,15 @@
1
1
  const isRideLeg = (leg) => {
2
- return (leg == null ? void 0 : leg.__typename) === "PTRideLeg";
2
+ return leg?.__typename === "PTRideLeg";
3
3
  };
4
4
  const isConnectionLeg = (leg) => {
5
- return (leg == null ? void 0 : leg.__typename) === "PTConnectionLeg";
5
+ return leg?.__typename === "PTConnectionLeg";
6
6
  };
7
7
  const extractTimeAndStringFromNoticeText = (notice) => {
8
- var _a, _b, _c, _d, _e, _f;
9
- const firstIndex = ((_a = notice == null ? void 0 : notice.text) == null ? void 0 : _a.template) && notice.text.template.indexOf("(") + 1;
10
- const noticeDuration = (_d = (_b = notice == null ? void 0 : notice.text) == null ? void 0 : _b.template) == null ? void 0 : _d.substring(firstIndex || 0, (_c = notice == null ? void 0 : notice.text) == null ? void 0 : _c.template.indexOf(")"));
8
+ const firstIndex = notice?.text?.template && notice.text.template.indexOf("(") + 1;
9
+ const noticeDuration = notice?.text?.template?.substring(firstIndex || 0, notice?.text?.template.indexOf(")"));
11
10
  return {
12
11
  duration: noticeDuration && +noticeDuration.substring(0, noticeDuration.length - 1) || 0,
13
- text: ((_f = (_e = notice == null ? void 0 : notice.text) == null ? void 0 : _e.template) == null ? void 0 : _f.split("(")[0]) || ""
12
+ text: notice?.text?.template?.split("(")[0] || ""
14
13
  };
15
14
  };
16
15
  export {
@@ -18,4 +17,4 @@ export {
18
17
  isConnectionLeg,
19
18
  isRideLeg
20
19
  };
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLWhlbHBlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9jb3JlL3RpbWV0YWJsZS90aW1ldGFibGUtaGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuXG5pbXBvcnQgdHlwZSB7IExlZywgTm90aWNlIH0gZnJvbSAnLi90aW1ldGFibGUtcHJvcGVydGllcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBpc1JpZGVMZWcgPSAobGVnOiBhbnkpOiBsZWcgaXMgRXh0cmFjdDxMZWcsIHsgX190eXBlbmFtZTogJ1BUUmlkZUxlZycgfT4gPT4ge1xuICByZXR1cm4gbGVnPy5fX3R5cGVuYW1lID09PSAnUFRSaWRlTGVnJztcbn07XG5cbmV4cG9ydCBjb25zdCBpc0Nvbm5lY3Rpb25MZWcgPSAoXG4gIGxlZzogYW55LFxuKTogbGVnIGlzIEV4dHJhY3Q8TGVnLCB7IF9fdHlwZW5hbWU6ICdQVENvbm5lY3Rpb25MZWcnIH0+ID0+IHtcbiAgcmV0dXJuIGxlZz8uX190eXBlbmFtZSA9PT0gJ1BUQ29ubmVjdGlvbkxlZyc7XG59O1xuXG5leHBvcnQgY29uc3QgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dCA9IChcbiAgbm90aWNlPzogTm90aWNlLFxuKTogeyBkdXJhdGlvbjogbnVtYmVyOyB0ZXh0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGZpcnN0SW5kZXggPSBub3RpY2U/LnRleHQ/LnRlbXBsYXRlICYmIG5vdGljZS50ZXh0LnRlbXBsYXRlLmluZGV4T2YoJygnKSArIDE7XG4gIGNvbnN0IG5vdGljZUR1cmF0aW9uID0gbm90aWNlPy50ZXh0Py50ZW1wbGF0ZT8uc3Vic3RyaW5nKFxuICAgIGZpcnN0SW5kZXggfHwgMCxcbiAgICBub3RpY2U/LnRleHQ/LnRlbXBsYXRlLmluZGV4T2YoJyknKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGR1cmF0aW9uOiAobm90aWNlRHVyYXRpb24gJiYgK25vdGljZUR1cmF0aW9uLnN1YnN0cmluZygwLCBub3RpY2VEdXJhdGlvbi5sZW5ndGggLSAxKSkgfHwgMCxcbiAgICB0ZXh0OiBub3RpY2U/LnRleHQ/LnRlbXBsYXRlPy5zcGxpdCgnKCcpWzBdIHx8ICcnLFxuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJYSxNQUFBLFlBQVksQ0FBQyxRQUE4RDtBQUN0RixVQUFPLDJCQUFLLGdCQUFlO0FBQzdCO0FBRWEsTUFBQSxrQkFBa0IsQ0FDN0IsUUFDMEQ7QUFDMUQsVUFBTywyQkFBSyxnQkFBZTtBQUM3QjtBQUVhLE1BQUEscUNBQXFDLENBQ2hELFdBQ3NDO0FBWjNCO0FBYUwsUUFBQSxlQUFhLHNDQUFRLFNBQVIsbUJBQWMsYUFBWSxPQUFPLEtBQUssU0FBUyxRQUFRLEdBQUcsSUFBSTtBQUNqRixRQUFNLGtCQUFpQiw0Q0FBUSxTQUFSLG1CQUFjLGFBQWQsbUJBQXdCLFVBQzdDLGNBQWMsSUFDZCxzQ0FBUSxTQUFSLG1CQUFjLFNBQVMsUUFBUTtBQUcxQixTQUFBO0FBQUEsSUFDTCxVQUFXLGtCQUFrQixDQUFDLGVBQWUsVUFBVSxHQUFHLGVBQWUsU0FBUyxDQUFDLEtBQU07QUFBQSxJQUN6RixRQUFNLDRDQUFRLFNBQVIsbUJBQWMsYUFBZCxtQkFBd0IsTUFBTSxLQUFLLE9BQU07QUFBQTtBQUVuRDsifQ==
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLWhlbHBlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9jb3JlL3RpbWV0YWJsZS90aW1ldGFibGUtaGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuXG5pbXBvcnQgdHlwZSB7IExlZywgTm90aWNlIH0gZnJvbSAnLi90aW1ldGFibGUtcHJvcGVydGllcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBpc1JpZGVMZWcgPSAobGVnOiBhbnkpOiBsZWcgaXMgRXh0cmFjdDxMZWcsIHsgX190eXBlbmFtZTogJ1BUUmlkZUxlZycgfT4gPT4ge1xuICByZXR1cm4gbGVnPy5fX3R5cGVuYW1lID09PSAnUFRSaWRlTGVnJztcbn07XG5cbmV4cG9ydCBjb25zdCBpc0Nvbm5lY3Rpb25MZWcgPSAoXG4gIGxlZzogYW55LFxuKTogbGVnIGlzIEV4dHJhY3Q8TGVnLCB7IF9fdHlwZW5hbWU6ICdQVENvbm5lY3Rpb25MZWcnIH0+ID0+IHtcbiAgcmV0dXJuIGxlZz8uX190eXBlbmFtZSA9PT0gJ1BUQ29ubmVjdGlvbkxlZyc7XG59O1xuXG5leHBvcnQgY29uc3QgZXh0cmFjdFRpbWVBbmRTdHJpbmdGcm9tTm90aWNlVGV4dCA9IChcbiAgbm90aWNlPzogTm90aWNlLFxuKTogeyBkdXJhdGlvbjogbnVtYmVyOyB0ZXh0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGZpcnN0SW5kZXggPSBub3RpY2U/LnRleHQ/LnRlbXBsYXRlICYmIG5vdGljZS50ZXh0LnRlbXBsYXRlLmluZGV4T2YoJygnKSArIDE7XG4gIGNvbnN0IG5vdGljZUR1cmF0aW9uID0gbm90aWNlPy50ZXh0Py50ZW1wbGF0ZT8uc3Vic3RyaW5nKFxuICAgIGZpcnN0SW5kZXggfHwgMCxcbiAgICBub3RpY2U/LnRleHQ/LnRlbXBsYXRlLmluZGV4T2YoJyknKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGR1cmF0aW9uOiAobm90aWNlRHVyYXRpb24gJiYgK25vdGljZUR1cmF0aW9uLnN1YnN0cmluZygwLCBub3RpY2VEdXJhdGlvbi5sZW5ndGggLSAxKSkgfHwgMCxcbiAgICB0ZXh0OiBub3RpY2U/LnRleHQ/LnRlbXBsYXRlPy5zcGxpdCgnKCcpWzBdIHx8ICcnLFxuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJTyxNQUFNLFlBQVksQ0FBQyxRQUE4RDtBQUN0RixTQUFPLEtBQUssZUFBZTtBQUM3QjtBQUVPLE1BQU0sa0JBQWtCLENBQzdCLFFBQzBEO0FBQzFELFNBQU8sS0FBSyxlQUFlO0FBQzdCO0FBRU8sTUFBTSxxQ0FBcUMsQ0FDaEQsV0FDc0M7QUFDdEMsUUFBTSxhQUFhLFFBQVEsTUFBTSxZQUFZLE9BQU8sS0FBSyxTQUFTLFFBQVEsR0FBRyxJQUFJO0FBQ2pGLFFBQU0saUJBQWlCLFFBQVEsTUFBTSxVQUFVLFVBQzdDLGNBQWMsR0FDZCxRQUFRLE1BQU0sU0FBUyxRQUFRLEdBQUcsQ0FBQztBQUdyQyxTQUFPO0FBQUEsSUFDTCxVQUFXLGtCQUFrQixDQUFDLGVBQWUsVUFBVSxHQUFHLGVBQWUsU0FBUyxDQUFDLEtBQU07QUFBQSxJQUN6RixNQUFNLFFBQVEsTUFBTSxVQUFVLE1BQU0sR0FBRyxFQUFFLENBQUMsS0FBSztBQUFBLEVBQUE7QUFFbkQ7In0=
@@ -1,6 +1,6 @@
1
1
  import { t as toDate, m as millisecondsInMinute } from "./toDate-D_Vjps95.js";
2
2
  function addMinutes(date, amount, options) {
3
- const _date = toDate(date, options == null ? void 0 : options.in);
3
+ const _date = toDate(date, options?.in);
4
4
  _date.setTime(_date.getTime() + amount * millisecondsInMinute);
5
5
  return _date;
6
6
  }
@@ -16,11 +16,11 @@ function differenceInMilliseconds(laterDate, earlierDate) {
16
16
  }
17
17
  function differenceInMinutes(dateLeft, dateRight, options) {
18
18
  const diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;
19
- return getRoundingMethod(options == null ? void 0 : options.roundingMethod)(diff);
19
+ return getRoundingMethod(options?.roundingMethod)(diff);
20
20
  }
21
21
  export {
22
22
  addMinutes as a,
23
23
  differenceInMinutes as d,
24
24
  getRoundingMethod as g
25
25
  };
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW5jZUluTWludXRlcy1DSFN5V2lRcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZE1pbnV0ZXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluTWludXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNJbk1pbnV0ZSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkTWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWludXRlcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbnV0ZXMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgbWludXRlcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMzAgbWludXRlcyB0byAxMCBKdWx5IDIwMTQgMTI6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNaW51dGVzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgMCksIDMwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MzA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1pbnV0ZXMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0VGltZShfZGF0ZS5nZXRUaW1lKCkgKyBhbW91bnQgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGRNaW51dGVzO1xuIiwiZXhwb3J0IGZ1bmN0aW9uIGdldFJvdW5kaW5nTWV0aG9kKG1ldGhvZCkge1xuICByZXR1cm4gKG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvdW5kID0gbWV0aG9kID8gTWF0aFttZXRob2RdIDogTWF0aC50cnVuYztcbiAgICBjb25zdCByZXN1bHQgPSByb3VuZChudW1iZXIpO1xuICAgIC8vIFByZXZlbnQgbmVnYXRpdmUgemVyb1xuICAgIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbGxpc2Vjb25kcyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTQgMTI6MzA6MjAuNjAwIGFuZCAyIEp1bHkgMjAxNCAxMjozMDoyMS43MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjEsIDcwMCksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjAsIDYwMClcbiAqIClcbiAqIC8vPT4gMTEwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgcmV0dXJuICt0b0RhdGUobGF0ZXJEYXRlKSAtICt0b0RhdGUoZWFybGllckRhdGUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcztcbiIsImltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluTWludXRlc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbk1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgc2lnbmVkIG51bWJlciBvZiBmdWxsIChyb3VuZGVkIHRvd2FyZHMgMCkgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gZGF0ZUxlZnQgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGRhdGVSaWdodCAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbnV0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWludXRlcyBhcmUgYmV0d2VlbiAyIEp1bHkgMjAxNCAxMjowNzo1OSBhbmQgMiBKdWx5IDIwMTQgMTI6MjA6MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgMjAsIDApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgNywgNTkpXG4gKiApXG4gKiAvLz0+IDEyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbnV0ZXMgYXJlIGJldHdlZW4gMTA6MDE6NTkgYW5kIDEwOjAwOjAwXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDAwLCAwLCAxLCAxMCwgMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMDAsIDAsIDEsIDEwLCAxLCA1OSlcbiAqIClcbiAqIC8vPT4gLTFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZUxlZnQsIGRhdGVSaWdodCwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID1cbiAgICBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoZGF0ZUxlZnQsIGRhdGVSaWdodCkgLyBtaWxsaXNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kKShkaWZmKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5NaW51dGVzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUE2Qk8sU0FBUyxXQUFXLE1BQU0sUUFBUSxTQUFTO0FBQ2hELFFBQU0sUUFBUSxPQUFPLE1BQU0sbUNBQVMsRUFBRTtBQUN0QyxRQUFNLFFBQVEsTUFBTSxRQUFPLElBQUssU0FBUyxvQkFBb0I7QUFDN0QsU0FBTztBQUNUO0FDakNPLFNBQVMsa0JBQWtCLFFBQVE7QUFDeEMsU0FBTyxDQUFDLFdBQVc7QUFDakIsVUFBTSxRQUFRLFNBQVMsS0FBSyxNQUFNLElBQUksS0FBSztBQUMzQyxVQUFNLFNBQVMsTUFBTSxNQUFNO0FBRTNCLFdBQU8sV0FBVyxJQUFJLElBQUk7QUFBQSxFQUMzQjtBQUNIO0FDaUJPLFNBQVMseUJBQXlCLFdBQVcsYUFBYTtBQUMvRCxTQUFPLENBQUMsT0FBTyxTQUFTLElBQUksQ0FBQyxPQUFPLFdBQVc7QUFDakQ7QUNZTyxTQUFTLG9CQUFvQixVQUFVLFdBQVcsU0FBUztBQUNoRSxRQUFNLE9BQ0oseUJBQXlCLFVBQVUsU0FBUyxJQUFJO0FBQ2xELFNBQU8sa0JBQWtCLG1DQUFTLGNBQWMsRUFBRSxJQUFJO0FBQ3hEOyIsInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDEsMiwzXX0=
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW5jZUluTWludXRlcy1ENU5qOFN0Yy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZE1pbnV0ZXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluTWludXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNJbk1pbnV0ZSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkTWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWludXRlcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbnV0ZXMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgbWludXRlcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMzAgbWludXRlcyB0byAxMCBKdWx5IDIwMTQgMTI6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNaW51dGVzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgMCksIDMwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MzA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1pbnV0ZXMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0VGltZShfZGF0ZS5nZXRUaW1lKCkgKyBhbW91bnQgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGRNaW51dGVzO1xuIiwiZXhwb3J0IGZ1bmN0aW9uIGdldFJvdW5kaW5nTWV0aG9kKG1ldGhvZCkge1xuICByZXR1cm4gKG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvdW5kID0gbWV0aG9kID8gTWF0aFttZXRob2RdIDogTWF0aC50cnVuYztcbiAgICBjb25zdCByZXN1bHQgPSByb3VuZChudW1iZXIpO1xuICAgIC8vIFByZXZlbnQgbmVnYXRpdmUgemVyb1xuICAgIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbGxpc2Vjb25kcyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTQgMTI6MzA6MjAuNjAwIGFuZCAyIEp1bHkgMjAxNCAxMjozMDoyMS43MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjEsIDcwMCksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjAsIDYwMClcbiAqIClcbiAqIC8vPT4gMTEwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgcmV0dXJuICt0b0RhdGUobGF0ZXJEYXRlKSAtICt0b0RhdGUoZWFybGllckRhdGUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcztcbiIsImltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluTWludXRlc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbk1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgc2lnbmVkIG51bWJlciBvZiBmdWxsIChyb3VuZGVkIHRvd2FyZHMgMCkgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gZGF0ZUxlZnQgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGRhdGVSaWdodCAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbnV0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWludXRlcyBhcmUgYmV0d2VlbiAyIEp1bHkgMjAxNCAxMjowNzo1OSBhbmQgMiBKdWx5IDIwMTQgMTI6MjA6MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgMjAsIDApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgNywgNTkpXG4gKiApXG4gKiAvLz0+IDEyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbnV0ZXMgYXJlIGJldHdlZW4gMTA6MDE6NTkgYW5kIDEwOjAwOjAwXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDAwLCAwLCAxLCAxMCwgMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMDAsIDAsIDEsIDEwLCAxLCA1OSlcbiAqIClcbiAqIC8vPT4gLTFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZUxlZnQsIGRhdGVSaWdodCwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID1cbiAgICBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoZGF0ZUxlZnQsIGRhdGVSaWdodCkgLyBtaWxsaXNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kKShkaWZmKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5NaW51dGVzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUE2Qk8sU0FBUyxXQUFXLE1BQU0sUUFBUSxTQUFTO0FBQ2hELFFBQU0sUUFBUSxPQUFPLE1BQU0sU0FBUyxFQUFFO0FBQ3RDLFFBQU0sUUFBUSxNQUFNLFFBQU8sSUFBSyxTQUFTLG9CQUFvQjtBQUM3RCxTQUFPO0FBQ1Q7QUNqQ08sU0FBUyxrQkFBa0IsUUFBUTtBQUN4QyxTQUFPLENBQUMsV0FBVztBQUNqQixVQUFNLFFBQVEsU0FBUyxLQUFLLE1BQU0sSUFBSSxLQUFLO0FBQzNDLFVBQU0sU0FBUyxNQUFNLE1BQU07QUFFM0IsV0FBTyxXQUFXLElBQUksSUFBSTtBQUFBLEVBQzlCO0FBQ0E7QUNpQk8sU0FBUyx5QkFBeUIsV0FBVyxhQUFhO0FBQy9ELFNBQU8sQ0FBQyxPQUFPLFNBQVMsSUFBSSxDQUFDLE9BQU8sV0FBVztBQUNqRDtBQ1lPLFNBQVMsb0JBQW9CLFVBQVUsV0FBVyxTQUFTO0FBQ2hFLFFBQU0sT0FDSix5QkFBeUIsVUFBVSxTQUFTLElBQUk7QUFDbEQsU0FBTyxrQkFBa0IsU0FBUyxjQUFjLEVBQUUsSUFBSTtBQUN4RDsiLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDIsM119