payload 2.0.6 → 2.0.8

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 (151) hide show
  1. package/.release-it.js +51 -0
  2. package/components/index.js +1 -1
  3. package/dist/admin/components/elements/Autosave/index.d.ts.map +1 -1
  4. package/dist/admin/components/elements/Autosave/index.js +3 -2
  5. package/dist/admin/components/elements/DocumentControls/index.d.ts +2 -1
  6. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  7. package/dist/admin/components/elements/DocumentControls/index.js +1 -1
  8. package/dist/admin/components/elements/DocumentControls/index.scss +42 -16
  9. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  10. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +6 -2
  11. package/dist/admin/components/elements/DocumentHeader/Tabs/index.scss +18 -0
  12. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
  13. package/dist/admin/components/elements/EditUpload/index.js +7 -3
  14. package/dist/admin/components/elements/EditUpload/index.scss +0 -5
  15. package/dist/admin/components/elements/Hamburger/index.scss +9 -3
  16. package/dist/admin/components/elements/Header/index.d.ts.map +1 -1
  17. package/dist/admin/components/elements/Header/index.js +5 -2
  18. package/dist/admin/components/elements/Header/index.scss +6 -0
  19. package/dist/admin/components/elements/Nav/NavToggler/index.scss +0 -6
  20. package/dist/admin/components/elements/Nav/context.d.ts.map +1 -1
  21. package/dist/admin/components/elements/Nav/context.js +31 -23
  22. package/dist/admin/components/elements/Nav/index.scss +7 -9
  23. package/dist/admin/components/elements/PreviewSizes/index.d.ts +1 -1
  24. package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/PreviewSizes/index.js +9 -14
  26. package/dist/admin/components/elements/PreviewSizes/index.scss +1 -1
  27. package/dist/admin/components/elements/Thumbnail/index.d.ts.map +1 -1
  28. package/dist/admin/components/elements/Thumbnail/index.js +2 -5
  29. package/dist/admin/components/forms/RenderFields/index.d.ts.map +1 -1
  30. package/dist/admin/components/forms/RenderFields/index.js +3 -2
  31. package/dist/admin/components/forms/field-types/Array/ArrayRow.d.ts +1 -0
  32. package/dist/admin/components/forms/field-types/Array/ArrayRow.d.ts.map +1 -1
  33. package/dist/admin/components/forms/field-types/Array/ArrayRow.js +5 -4
  34. package/dist/admin/components/forms/field-types/Array/index.d.ts.map +1 -1
  35. package/dist/admin/components/forms/field-types/Array/index.js +3 -2
  36. package/dist/admin/components/forms/field-types/Array/types.d.ts +1 -0
  37. package/dist/admin/components/forms/field-types/Array/types.d.ts.map +1 -1
  38. package/dist/admin/components/forms/field-types/Blocks/BlockRow.d.ts +1 -0
  39. package/dist/admin/components/forms/field-types/Blocks/BlockRow.d.ts.map +1 -1
  40. package/dist/admin/components/forms/field-types/Blocks/BlockRow.js +3 -2
  41. package/dist/admin/components/forms/field-types/Blocks/index.d.ts.map +1 -1
  42. package/dist/admin/components/forms/field-types/Blocks/index.js +4 -3
  43. package/dist/admin/components/forms/field-types/Blocks/types.d.ts +1 -0
  44. package/dist/admin/components/forms/field-types/Blocks/types.d.ts.map +1 -1
  45. package/dist/admin/components/forms/field-types/Group/index.d.ts.map +1 -1
  46. package/dist/admin/components/forms/field-types/Group/index.js +4 -3
  47. package/dist/admin/components/forms/field-types/Group/types.d.ts +1 -0
  48. package/dist/admin/components/forms/field-types/Group/types.d.ts.map +1 -1
  49. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  50. package/dist/admin/components/forms/field-types/Row/index.js +3 -2
  51. package/dist/admin/components/forms/field-types/Row/types.d.ts +1 -0
  52. package/dist/admin/components/forms/field-types/Row/types.d.ts.map +1 -1
  53. package/dist/admin/components/forms/field-types/Tabs/index.d.ts.map +1 -1
  54. package/dist/admin/components/forms/field-types/Tabs/index.js +4 -4
  55. package/dist/admin/components/forms/field-types/Tabs/types.d.ts +1 -0
  56. package/dist/admin/components/forms/field-types/Tabs/types.d.ts.map +1 -1
  57. package/dist/admin/components/graphics/Account/Default/index.scss +15 -2
  58. package/dist/admin/components/templates/Default/index.d.ts.map +1 -1
  59. package/dist/admin/components/templates/Default/index.js +6 -9
  60. package/dist/admin/components/templates/Default/index.scss +7 -88
  61. package/dist/admin/components/views/Global/Default/index.scss +17 -16
  62. package/dist/admin/components/views/LivePreview/Context/context.d.ts +11 -0
  63. package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
  64. package/dist/admin/components/views/LivePreview/Context/context.js +10 -1
  65. package/dist/admin/components/views/LivePreview/Context/index.d.ts +6 -3
  66. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  67. package/dist/admin/components/views/LivePreview/Context/index.js +65 -6
  68. package/dist/admin/components/views/LivePreview/IFrame/index.scss +1 -0
  69. package/dist/admin/components/views/LivePreview/Preview/index.d.ts +1 -7
  70. package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
  71. package/dist/admin/components/views/LivePreview/Preview/index.js +24 -59
  72. package/dist/admin/components/views/LivePreview/Preview/index.scss +1 -0
  73. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts +2 -2
  74. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  75. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +7 -5
  76. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts +2 -5
  77. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  78. package/dist/admin/components/views/LivePreview/Toolbar/index.js +1 -1
  79. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  80. package/dist/admin/components/views/LivePreview/index.js +50 -33
  81. package/dist/admin/components/views/LivePreview/index.scss +12 -1
  82. package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts +1 -2
  83. package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts.map +1 -1
  84. package/dist/admin/components/views/LivePreview/usePopupWindow.js +4 -23
  85. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  86. package/dist/admin/components/views/collections/Edit/Default/index.js +3 -4
  87. package/dist/admin/components/views/collections/Edit/Default/index.scss +12 -5
  88. package/dist/admin/components/views/collections/Edit/Upload/index.js +2 -3
  89. package/dist/admin/hooks/useIntersect.d.ts +1 -1
  90. package/dist/admin/hooks/useIntersect.d.ts.map +1 -1
  91. package/dist/admin/hooks/useIntersect.js +7 -3
  92. package/dist/admin/scss/app.scss +2 -7
  93. package/dist/admin/utilities/formatDate/index.d.ts +1 -0
  94. package/dist/admin/utilities/formatDate/index.d.ts.map +1 -1
  95. package/dist/admin/utilities/formatDate/index.js +19 -4
  96. package/dist/auth/operations/local/verifyEmail.d.ts +2 -0
  97. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  98. package/dist/auth/operations/local/verifyEmail.js +8 -5
  99. package/dist/bin/build.js +0 -0
  100. package/dist/bin/index.js +0 -0
  101. package/dist/collections/operations/local/findVersions.d.ts +2 -1
  102. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  103. package/dist/collections/operations/local/findVersions.js +3 -2
  104. package/dist/collections/operations/local/restoreVersion.d.ts +2 -1
  105. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  106. package/dist/collections/operations/local/restoreVersion.js +3 -2
  107. package/dist/fields/config/types.d.ts +1 -1
  108. package/dist/fields/config/types.d.ts.map +1 -1
  109. package/dist/fields/config/types.js +1 -1
  110. package/dist/fields/validations.d.ts.map +1 -1
  111. package/dist/fields/validations.js +12 -11
  112. package/dist/globals/operations/local/findVersionByID.d.ts +2 -0
  113. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  114. package/dist/globals/operations/local/findVersionByID.js +3 -2
  115. package/dist/globals/operations/local/findVersions.d.ts +2 -0
  116. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  117. package/dist/globals/operations/local/findVersions.js +3 -2
  118. package/dist/globals/operations/local/restoreVersion.d.ts +2 -0
  119. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  120. package/dist/globals/operations/local/restoreVersion.js +3 -2
  121. package/dist/globals/operations/local/update.d.ts +2 -0
  122. package/dist/globals/operations/local/update.d.ts.map +1 -1
  123. package/dist/globals/operations/local/update.js +3 -2
  124. package/dist/translations/ar.json +2 -2
  125. package/dist/translations/az.json +2 -2
  126. package/dist/translations/bg.json +1 -1
  127. package/dist/translations/cs.json +2 -2
  128. package/dist/translations/de.json +1 -1
  129. package/dist/translations/en.json +1 -1
  130. package/dist/translations/es.json +2 -2
  131. package/dist/translations/fa.json +2 -2
  132. package/dist/translations/fr.json +2 -2
  133. package/dist/translations/hr.json +2 -2
  134. package/dist/translations/hu.json +2 -2
  135. package/dist/translations/it.json +2 -2
  136. package/dist/translations/ja.json +2 -2
  137. package/dist/translations/my.json +2 -2
  138. package/dist/translations/nb.json +2 -2
  139. package/dist/translations/nl.json +2 -2
  140. package/dist/translations/pl.json +2 -2
  141. package/dist/translations/pt.json +2 -2
  142. package/dist/translations/ro.json +2 -2
  143. package/dist/translations/ru.json +1 -1
  144. package/dist/translations/sv.json +2 -2
  145. package/dist/translations/th.json +2 -2
  146. package/dist/translations/tr.json +2 -2
  147. package/dist/translations/ua.json +1 -1
  148. package/dist/translations/vi.json +2 -2
  149. package/dist/translations/zh.json +2 -2
  150. package/dist/uploads/imageResizer.js +5 -5
  151. package/package.json +47 -29
@@ -17,6 +17,24 @@
17
17
  padding: 0;
18
18
  overflow: auto;
19
19
 
20
+ // this container has a gradient overlay as visual indication of `overflow: scroll`
21
+ &::-webkit-scrollbar {
22
+ display: none;
23
+ }
24
+
25
+ &::after {
26
+ content: '';
27
+ display: block;
28
+ position: sticky;
29
+ right: 0;
30
+ width: calc(var(--base) * 2);
31
+ height: calc(var(--base) * 2);
32
+ background: linear-gradient(to right, transparent, var(--theme-bg));
33
+ flex-shrink: 0;
34
+ z-index: 1111;
35
+ pointer-events: none;
36
+ }
37
+
20
38
  &__tabs {
21
39
  padding: 0;
22
40
  margin-left: var(--gutter-h);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAMlD,OAAO,cAAc,CAAA;AAerB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAwNA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAMlD,OAAO,cAAc,CAAA;AAerB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CA+NA,CAAA"}
@@ -91,11 +91,11 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
91
91
  y: uploadEdits?.focalPoint?.y || 50
92
92
  });
93
93
  const [checkBounds, setCheckBounds] = (0, _react.useState)(false);
94
+ const [originalHeight, setOriginalHeight] = (0, _react.useState)(0);
95
+ const [originalWidth, setOriginalWidth] = (0, _react.useState)(0);
94
96
  const focalWrapRef = (0, _react.useRef)();
95
97
  const imageRef = (0, _react.useRef)();
96
98
  const cropRef = (0, _react.useRef)();
97
- const originalHeight = imageRef.current ? imageRef.current.naturalHeight : 0;
98
- const originalWidth = imageRef.current ? imageRef.current.naturalWidth : 0;
99
99
  const fineTuneCrop = ({ dimension, value })=>{
100
100
  const intValue = parseInt(value);
101
101
  if (dimension === 'width' && intValue >= originalWidth) return null;
@@ -185,6 +185,10 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
185
185
  }
186
186
  }, /*#__PURE__*/ _react.default.createElement("img", {
187
187
  alt: t('upload:setCropArea'),
188
+ onLoad: (e)=>{
189
+ setOriginalHeight(e.currentTarget.naturalHeight);
190
+ setOriginalWidth(e.currentTarget.naturalWidth);
191
+ },
188
192
  ref: imageRef,
189
193
  src: fileSrcToUse
190
194
  })) : /*#__PURE__*/ _react.default.createElement("img", {
@@ -375,4 +379,4 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
375
379
  }, children), /*#__PURE__*/ _react.default.createElement("div", null));
376
380
  };
377
381
 
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxuY29uc3QgSW5wdXQ6IFJlYWN0LkZDPHsgbmFtZTogc3RyaW5nOyBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7IHZhbHVlOiBzdHJpbmcgfT4gPSAoe1xuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG59KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dGB9PlxuICAgIHtuYW1lfVxuICAgIDxpbnB1dCBuYW1lPXtuYW1lfSBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0gdHlwZT1cIm51bWJlclwiIHZhbHVlPXt2YWx1ZX0gLz5cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzx7XG4gIGRvYz86IERhdGFcbiAgZmlsZU5hbWU6IHN0cmluZ1xuICBmaWxlU3JjOiBzdHJpbmdcbiAgaW1hZ2VDYWNoZVRhZz86IHN0cmluZ1xuICBzaG93Q3JvcD86IGJvb2xlYW5cbiAgc2hvd0ZvY2FsUG9pbnQ/OiBib29sZWFuXG59PiA9ICh7IGZpbGVOYW1lLCBmaWxlU3JjLCBpbWFnZUNhY2hlVGFnLCBzaG93Q3JvcCwgc2hvd0ZvY2FsUG9pbnQgfSkgPT4ge1xuICBjb25zdCB7IGNsb3NlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2dlbmVyYWwnLCAndXBsb2FkJ10pXG4gIGNvbnN0IHsgZm9ybVF1ZXJ5UGFyYW1zLCBzZXRGb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG4gIGNvbnN0IHsgdXBsb2FkRWRpdHMgfSA9IGZvcm1RdWVyeVBhcmFtcyB8fCB7fVxuICBjb25zdCBbY3JvcCwgc2V0Q3JvcF0gPSB1c2VTdGF0ZTxDcm9wVHlwZT4oe1xuICAgIGhlaWdodDogdXBsb2FkRWRpdHM/LmNyb3A/LmhlaWdodCB8fCAxMDAsXG4gICAgdW5pdDogJyUnLFxuICAgIHdpZHRoOiB1cGxvYWRFZGl0cz8uY3JvcD8ud2lkdGggfHwgMTAwLFxuICAgIHg6IHVwbG9hZEVkaXRzPy5jcm9wPy54IHx8IDAsXG4gICAgeTogdXBsb2FkRWRpdHM/LmNyb3A/LnkgfHwgMCxcbiAgfSlcblxuICBjb25zdCBbcG9pbnRQb3NpdGlvbiwgc2V0UG9pbnRQb3NpdGlvbl0gPSB1c2VTdGF0ZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KHtcbiAgICB4OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueCB8fCA1MCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueSB8fCA1MCxcbiAgfSlcbiAgY29uc3QgW2NoZWNrQm91bmRzLCBzZXRDaGVja0JvdW5kc10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcblxuICBjb25zdCBmb2NhbFdyYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBjcm9wUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3Qgb3JpZ2luYWxIZWlnaHQgPSBpbWFnZVJlZi5jdXJyZW50ID8gaW1hZ2VSZWYuY3VycmVudC5uYXR1cmFsSGVpZ2h0IDogMFxuICBjb25zdCBvcmlnaW5hbFdpZHRoID0gaW1hZ2VSZWYuY3VycmVudCA/IGltYWdlUmVmLmN1cnJlbnQubmF0dXJhbFdpZHRoIDogMFxuXG4gIGNvbnN0IGZpbmVUdW5lQ3JvcCA9ICh7IGRpbWVuc2lvbiwgdmFsdWUgfTogeyBkaW1lbnNpb246ICdoZWlnaHQnIHwgJ3dpZHRoJzsgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBwYXJzZUludCh2YWx1ZSlcbiAgICBpZiAoZGltZW5zaW9uID09PSAnd2lkdGgnICYmIGludFZhbHVlID49IG9yaWdpbmFsV2lkdGgpIHJldHVybiBudWxsXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ2hlaWdodCcgJiYgaW50VmFsdWUgPj0gb3JpZ2luYWxIZWlnaHQpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwZXJjZW50YWdlID0gMTAwICogKGludFZhbHVlIC8gKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyA/IG9yaWdpbmFsV2lkdGggOiBvcmlnaW5hbEhlaWdodCkpXG5cbiAgICBpZiAocGVyY2VudGFnZSA9PT0gMTAwIHx8IHBlcmNlbnRhZ2UgPT09IDApIHJldHVybiBudWxsXG5cbiAgICBzZXRDcm9wKHtcbiAgICAgIC4uLmNyb3AsXG4gICAgICBbZGltZW5zaW9uXTogcGVyY2VudGFnZSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZmluZVR1bmVGb2NhbFBvaW50ID0gKHsgY29vcmRpbmF0ZSwgdmFsdWUgfTogeyBjb29yZGluYXRlOiAneCcgfCAneSc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGludFZhbHVlID49IDAgJiYgaW50VmFsdWUgPD0gMTAwKSB7XG4gICAgICBzZXRQb2ludFBvc2l0aW9uKChwcmV2UG9zaXRpb24pID0+ICh7IC4uLnByZXZQb3NpdGlvbiwgW2Nvb3JkaW5hdGVdOiBpbnRWYWx1ZSB9KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzYXZlRWRpdHMgPSAoKSA9PiB7XG4gICAgc2V0Rm9ybVF1ZXJ5UGFyYW1zKHtcbiAgICAgIC4uLmZvcm1RdWVyeVBhcmFtcyxcbiAgICAgIHVwbG9hZEVkaXRzOiB7XG4gICAgICAgIGNyb3A6IGNyb3AgPyBjcm9wIDogdW5kZWZpbmVkLFxuICAgICAgICBmb2NhbFBvaW50OiBwb2ludFBvc2l0aW9uID8gcG9pbnRQb3NpdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKVxuICB9XG5cbiAgY29uc3Qgb25EcmFnRW5kID0gUmVhY3QudXNlQ2FsbGJhY2soKHsgeCwgeSB9KSA9PiB7XG4gICAgc2V0UG9pbnRQb3NpdGlvbih7IHgsIHkgfSlcbiAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgfSwgW10pXG5cbiAgY29uc3QgY2VudGVyRm9jYWxQb2ludCA9ICgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZm9jYWxXcmFwUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBib3VuZHNSZWN0ID0gY3JvcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgeENlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgKyBib3VuZHNSZWN0LmhlaWdodCAvIDIpIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgc2V0UG9pbnRQb3NpdGlvbih7IHg6IHhDZW50ZXIsIHk6IHlDZW50ZXIgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbGVTcmNUb1VzZSA9IGltYWdlQ2FjaGVUYWcgPyBgJHtmaWxlU3JjfT8ke2ltYWdlQ2FjaGVUYWd9YCA6IGZpbGVTcmNcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8aDIgdGl0bGU9e2Ake3QoJ2dlbmVyYWw6ZWRpdGluZycpfSAke2ZpbGVOYW1lfWB9PlxuICAgICAgICAgIHt0KCdnZW5lcmFsOmVkaXRpbmcnKX0ge2ZpbGVOYW1lfVxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWN0aW9uc2B9PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2NhbmNlbCcpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jYW5jZWxgfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2xvc2VNb2RhbChlZGl0RHJhd2VyU2x1Zyl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6Y2FuY2VsJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NhdmVgfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2F2ZUVkaXRzKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6YXBwbHlDaGFuZ2VzJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9vbFdyYXBgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3BgfT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ZvY2FsLXdyYXBwZXJgfVxuICAgICAgICAgICAgcmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBhc3BlY3RSYXRpbzogYCR7b3JpZ2luYWxXaWR0aCAvIG9yaWdpbmFsSGVpZ2h0fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzaG93Q3JvcCA/IChcbiAgICAgICAgICAgICAgPFJlYWN0Q3JvcFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVhY3RDcm9wYH1cbiAgICAgICAgICAgICAgICBjcm9wPXtjcm9wfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoXywgYykgPT4gc2V0Q3JvcChjKX1cbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlPXsoKSA9PiBzZXRDaGVja0JvdW5kcyh0cnVlKX1cbiAgICAgICAgICAgICAgICByZW5kZXJTZWxlY3Rpb25BZGRvbj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcm9wLXdpbmRvd2B9IHJlZj17Y3JvcFJlZn0gLz5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZyBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfSByZWY9e2ltYWdlUmVmfSBzcmM9e2ZpbGVTcmNUb1VzZX0gLz5cbiAgICAgICAgICAgICAgPC9SZWFjdENyb3A+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8aW1nIGFsdD17dCgndXBsb2FkOnNldEZvY2FsUG9pbnQnKX0gcmVmPXtpbWFnZVJlZn0gc3JjPXtmaWxlU3JjVG9Vc2V9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPERyYWdnYWJsZUVsZW1lbnRcbiAgICAgICAgICAgICAgYm91bmRzUmVmPXtjcm9wUmVmfVxuICAgICAgICAgICAgICBjaGVja0JvdW5kcz17Y2hlY2tCb3VuZHN9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWxQb2ludGB9XG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlZj17Zm9jYWxXcmFwUmVmfVxuICAgICAgICAgICAgICBpbml0aWFsUG9zaXRpb249e3BvaW50UG9zaXRpb259XG4gICAgICAgICAgICAgIG9uRHJhZ0VuZD17b25EcmFnRW5kfVxuICAgICAgICAgICAgICBzZXRDaGVja0JvdW5kcz17c2V0Q2hlY2tCb3VuZHN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxQbHVzIC8+XG4gICAgICAgICAgICA8L0RyYWdnYWJsZUVsZW1lbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7KHNob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50KSAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpZGViYXJgfT5cbiAgICAgICAgICAgIHtzaG93Q3JvcCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ncm91cFdyYXBgfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RpdGxlV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgICA8aDM+e3QoJ3VwbG9hZDpjcm9wJyl9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZXNldGB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENyb3Aoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdDogJyUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Y3JvcFRvb2xEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRzV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake3QoJ3VwbG9hZDp3aWR0aCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnd2lkdGgnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC53aWR0aCAvIDEwMCkgKiBvcmlnaW5hbFdpZHRoKS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6aGVpZ2h0Jyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICdoZWlnaHQnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC5oZWlnaHQgLyAxMDApICogb3JpZ2luYWxIZWlnaHQpLnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtzaG93Rm9jYWxQb2ludCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ncm91cFdyYXBgfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RpdGxlV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgICA8aDM+e3QoJ3VwbG9hZDpmb2NhbFBvaW50Jyl9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZXNldGB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2VudGVyRm9jYWxQb2ludH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdnZW5lcmFsOnJlc2V0Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kZXNjcmlwdGlvbmB9PlxuICAgICAgICAgICAgICAgICAge3QoJ3VwbG9hZDpmb2NhbFBvaW50RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0c1dyYXBgfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiWCAlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVGb2NhbFBvaW50KHsgY29vcmRpbmF0ZTogJ3gnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BvaW50UG9zaXRpb24ueC50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiWSAlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVGb2NhbFBvaW50KHsgY29vcmRpbmF0ZTogJ3knLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BvaW50UG9zaXRpb24ueS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuY29uc3QgRHJhZ2dhYmxlRWxlbWVudCA9ICh7XG4gIGJvdW5kc1JlZixcbiAgY2hlY2tCb3VuZHMsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgaW5pdGlhbFBvc2l0aW9uID0geyB4OiA1MCwgeTogNTAgfSxcbiAgb25EcmFnRW5kLFxuICBzZXRDaGVja0JvdW5kcyxcbn0pID0+IHtcbiAgY29uc3QgW3Bvc2l0aW9uLCBzZXRQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IHg6IGluaXRpYWxQb3NpdGlvbi54LCB5OiBpbml0aWFsUG9zaXRpb24ueSB9KVxuICBjb25zdCBbaXNEcmFnZ2luZywgc2V0SXNEcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgZHJhZ1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuXG4gIGNvbnN0IGdldENvb3JkaW5hdGVzID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG1vdXNlWEFyZz86IG51bWJlciwgbW91c2VZQXJnPzogbnVtYmVyLCByZWNlbnRlcj86IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgYm91bmRzUmVjdCA9IGJvdW5kc1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBtb3VzZVggPSBtb3VzZVhBcmcgPz8gYm91bmRzUmVjdC5sZWZ0XG4gICAgICBjb25zdCBtb3VzZVkgPSBtb3VzZVlBcmcgPz8gYm91bmRzUmVjdC50b3BcblxuICAgICAgY29uc3QgeE91dE9mQm91bmRzID0gbW91c2VYIDwgYm91bmRzUmVjdC5sZWZ0IHx8IG1vdXNlWCA+IGJvdW5kc1JlY3QucmlnaHRcbiAgICAgIGNvbnN0IHlPdXRPZkJvdW5kcyA9IG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wIHx8IG1vdXNlWSA+IGJvdW5kc1JlY3QuYm90dG9tXG5cbiAgICAgIGxldCB4ID0gKChtb3VzZVggLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgIGxldCB5ID0gKChtb3VzZVkgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGNvbnN0IHhDZW50ZXIgPVxuICAgICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wICsgYm91bmRzUmVjdC5oZWlnaHQgLyAyKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgaWYgKHhPdXRPZkJvdW5kcyB8fCB5T3V0T2ZCb3VuZHMpIHtcbiAgICAgICAgc2V0SXNEcmFnZ2luZyhmYWxzZSlcbiAgICAgICAgaWYgKG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCkge1xuICAgICAgICAgIHggPSAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCkgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgICB9IGVsc2UgaWYgKG1vdXNlWCA+IGJvdW5kc1JlY3QucmlnaHQpIHtcbiAgICAgICAgICB4ID1cbiAgICAgICAgICAgICgoY29udGFpbmVyUmVjdC53aWR0aCAtIChjb250YWluZXJSZWN0LnJpZ2h0IC0gYm91bmRzUmVjdC5yaWdodCkpIC9cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVjdC53aWR0aCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW91c2VZIDwgYm91bmRzUmVjdC50b3ApIHtcbiAgICAgICAgICB5ID0gKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgICB9IGVsc2UgaWYgKG1vdXNlWSA+IGJvdW5kc1JlY3QuYm90dG9tKSB7XG4gICAgICAgICAgeSA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gKGNvbnRhaW5lclJlY3QuYm90dG9tIC0gYm91bmRzUmVjdC5ib3R0b20pKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWNlbnRlcikge1xuICAgICAgICAgIHggPSB4T3V0T2ZCb3VuZHMgPyB4Q2VudGVyIDogeFxuICAgICAgICAgIHkgPSB5T3V0T2ZCb3VuZHMgPyB5Q2VudGVyIDogeVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgIH0sXG4gICAgW10sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55XSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFBvc2l0aW9uKHsgeDogaW5pdGlhbFBvc2l0aW9uLngsIHk6IGluaXRpYWxQb3NpdGlvbi55IH0pXG4gIH0sIFtpbml0aWFsUG9zaXRpb24ueCwgaW5pdGlhbFBvc2l0aW9uLnldKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgIGAke2Jhc2VDbGFzc31fX2RyYWdnYWJsZS1jb250YWluZXJgLFxuICAgICAgICBpc0RyYWdnaW5nICYmIGAke2Jhc2VDbGFzc31fX2RyYWdnYWJsZS1jb250YWluZXItLWRyYWdnaW5nYCxcbiAgICAgIF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpfVxuICAgICAgb25Nb3VzZU1vdmU9e2hhbmRsZU1vdXNlTW92ZX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17W2Ake2Jhc2VDbGFzc31fX2RyYWdnYWJsZWAsIGNsYXNzTmFtZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKX1cbiAgICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgICAgb25Nb3VzZVVwPXtvbkRyb3B9XG4gICAgICAgIHJlZj17ZHJhZ1JlZn1cbiAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7cG9zaXRpb24ueH0lYCwgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogYCR7cG9zaXRpb24ueX0lYCB9fVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkVkaXRVcGxvYWQiLCJiYXNlQ2xhc3MiLCJJbnB1dCIsIm5hbWUiLCJvbkNoYW5nZSIsInZhbHVlIiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5wdXQiLCJlIiwidGFyZ2V0IiwidHlwZSIsImZpbGVOYW1lIiwiZmlsZVNyYyIsImltYWdlQ2FjaGVUYWciLCJzaG93Q3JvcCIsInNob3dGb2NhbFBvaW50IiwiY2xvc2VNb2RhbCIsInVzZU1vZGFsIiwidCIsInVzZVRyYW5zbGF0aW9uIiwiZm9ybVF1ZXJ5UGFyYW1zIiwic2V0Rm9ybVF1ZXJ5UGFyYW1zIiwidXNlRm9ybVF1ZXJ5UGFyYW1zIiwidXBsb2FkRWRpdHMiLCJjcm9wIiwic2V0Q3JvcCIsInVzZVN0YXRlIiwiaGVpZ2h0IiwidW5pdCIsIndpZHRoIiwieCIsInkiLCJwb2ludFBvc2l0aW9uIiwic2V0UG9pbnRQb3NpdGlvbiIsImZvY2FsUG9pbnQiLCJjaGVja0JvdW5kcyIsInNldENoZWNrQm91bmRzIiwiZm9jYWxXcmFwUmVmIiwidXNlUmVmIiwiaW1hZ2VSZWYiLCJjcm9wUmVmIiwib3JpZ2luYWxIZWlnaHQiLCJjdXJyZW50IiwibmF0dXJhbEhlaWdodCIsIm9yaWdpbmFsV2lkdGgiLCJuYXR1cmFsV2lkdGgiLCJmaW5lVHVuZUNyb3AiLCJkaW1lbnNpb24iLCJpbnRWYWx1ZSIsInBhcnNlSW50IiwicGVyY2VudGFnZSIsImZpbmVUdW5lRm9jYWxQb2ludCIsImNvb3JkaW5hdGUiLCJwcmV2UG9zaXRpb24iLCJzYXZlRWRpdHMiLCJ1bmRlZmluZWQiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdW5kc1JlY3QiLCJ4Q2VudGVyIiwibGVmdCIsInlDZW50ZXIiLCJ0b3AiLCJmaWxlU3JjVG9Vc2UiLCJoMiIsInRpdGxlIiwiQnV0dG9uIiwiYXJpYS1sYWJlbCIsImJ1dHRvblN0eWxlIiwib25DbGljayIsInJlZiIsInN0eWxlIiwiYXNwZWN0UmF0aW8iLCJSZWFjdENyb3AiLCJfIiwiYyIsIm9uQ29tcGxldGUiLCJyZW5kZXJTZWxlY3Rpb25BZGRvbiIsImltZyIsImFsdCIsInNyYyIsIkRyYWdnYWJsZUVsZW1lbnQiLCJib3VuZHNSZWYiLCJjb250YWluZXJSZWYiLCJpbml0aWFsUG9zaXRpb24iLCJQbHVzIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQmFBOzs7ZUFBQUE7Ozt1QkEzQlk7K0RBQ2U7OEJBQ1Q7dUVBQ2tCO1FBQzFDOzZEQUlVO2lDQUNrQjt3QkFDSjsrREFDWjtRQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRWxCLE1BQU1DLFFBQXNGLENBQUMsRUFDM0ZDLElBQUksRUFDSkMsUUFBUSxFQUNSQyxLQUFLLEVBQ04saUJBQ0MsNkJBQUNDO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE9BQU8sQ0FBQztPQUNsQ0Usb0JBQ0QsNkJBQUNLO1FBQU1MLE1BQU1BO1FBQU1DLFVBQVUsQ0FBQ0ssSUFBTUwsU0FBU0ssRUFBRUMsTUFBTSxDQUFDTCxLQUFLO1FBQUdNLE1BQUs7UUFBU04sT0FBT0E7O0FBSWhGLE1BQU1MLGFBT1IsQ0FBQyxFQUFFWSxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxRQUFRLEVBQUVDLGNBQWMsRUFBRTtJQUNsRSxNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQyxJQUFBQSxlQUFRO0lBQy9CLE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7UUFBQztRQUFXO0tBQVM7SUFDbEQsTUFBTSxFQUFFQyxlQUFlLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdDLElBQUFBLG1DQUFrQjtJQUNsRSxNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFHSCxtQkFBbUIsQ0FBQztJQUM1QyxNQUFNLENBQUNJLE1BQU1DLFFBQVEsR0FBR0MsSUFBQUEsZUFBUSxFQUFXO1FBQ3pDQyxRQUFRSixhQUFhQyxNQUFNRyxVQUFVO1FBQ3JDQyxNQUFNO1FBQ05DLE9BQU9OLGFBQWFDLE1BQU1LLFNBQVM7UUFDbkNDLEdBQUdQLGFBQWFDLE1BQU1NLEtBQUs7UUFDM0JDLEdBQUdSLGFBQWFDLE1BQU1PLEtBQUs7SUFDN0I7SUFFQSxNQUFNLENBQUNDLGVBQWVDLGlCQUFpQixHQUFHUCxJQUFBQSxlQUFRLEVBQTJCO1FBQzNFSSxHQUFHUCxhQUFhVyxZQUFZSixLQUFLO1FBQ2pDQyxHQUFHUixhQUFhVyxZQUFZSCxLQUFLO0lBQ25DO0lBQ0EsTUFBTSxDQUFDSSxhQUFhQyxlQUFlLEdBQUdWLElBQUFBLGVBQVEsRUFBVTtJQUV4RCxNQUFNVyxlQUFlQyxJQUFBQSxhQUFNO0lBQzNCLE1BQU1DLFdBQVdELElBQUFBLGFBQU07SUFDdkIsTUFBTUUsVUFBVUYsSUFBQUEsYUFBTTtJQUV0QixNQUFNRyxpQkFBaUJGLFNBQVNHLE9BQU8sR0FBR0gsU0FBU0csT0FBTyxDQUFDQyxhQUFhLEdBQUc7SUFDM0UsTUFBTUMsZ0JBQWdCTCxTQUFTRyxPQUFPLEdBQUdILFNBQVNHLE9BQU8sQ0FBQ0csWUFBWSxHQUFHO0lBRXpFLE1BQU1DLGVBQWUsQ0FBQyxFQUFFQyxTQUFTLEVBQUUzQyxLQUFLLEVBQW9EO1FBQzFGLE1BQU00QyxXQUFXQyxTQUFTN0M7UUFDMUIsSUFBSTJDLGNBQWMsV0FBV0MsWUFBWUosZUFBZSxPQUFPO1FBQy9ELElBQUlHLGNBQWMsWUFBWUMsWUFBWVAsZ0JBQWdCLE9BQU87UUFFakUsTUFBTVMsYUFBYSxNQUFPRixDQUFBQSxXQUFZRCxDQUFBQSxjQUFjLFVBQVVILGdCQUFnQkgsY0FBYSxDQUFDO1FBRTVGLElBQUlTLGVBQWUsT0FBT0EsZUFBZSxHQUFHLE9BQU87UUFFbkR6QixRQUFRO1lBQ04sR0FBR0QsSUFBSTtZQUNQLENBQUN1QixVQUFVLEVBQUVHO1FBQ2Y7SUFDRjtJQUVBLE1BQU1DLHFCQUFxQixDQUFDLEVBQUVDLFVBQVUsRUFBRWhELEtBQUssRUFBNEM7UUFDekYsTUFBTTRDLFdBQVdDLFNBQVM3QztRQUMxQixJQUFJNEMsWUFBWSxLQUFLQSxZQUFZLEtBQUs7WUFDcENmLGlCQUFpQixDQUFDb0IsZUFBa0IsQ0FBQTtvQkFBRSxHQUFHQSxZQUFZO29CQUFFLENBQUNELFdBQVcsRUFBRUo7Z0JBQVMsQ0FBQTtRQUNoRjtJQUNGO0lBRUEsTUFBTU0sWUFBWTtRQUNoQmpDLG1CQUFtQjtZQUNqQixHQUFHRCxlQUFlO1lBQ2xCRyxhQUFhO2dCQUNYQyxNQUFNQSxPQUFPQSxPQUFPK0I7Z0JBQ3BCckIsWUFBWUYsZ0JBQWdCQSxnQkFBZ0J1QjtZQUM5QztRQUNGO1FBQ0F2QyxXQUFXd0Msc0JBQWM7SUFDM0I7SUFFQSxNQUFNQyxZQUFZQyxjQUFLLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEVBQUU3QixDQUFDLEVBQUVDLENBQUMsRUFBRTtRQUMzQ0UsaUJBQWlCO1lBQUVIO1lBQUdDO1FBQUU7UUFDeEJLLGVBQWU7SUFDakIsR0FBRyxFQUFFO0lBRUwsTUFBTXdCLG1CQUFtQjtRQUN2QixNQUFNQyxnQkFBZ0J4QixhQUFhSyxPQUFPLENBQUNvQixxQkFBcUI7UUFDaEUsTUFBTUMsYUFBYXZCLFFBQVFFLE9BQU8sQ0FBQ29CLHFCQUFxQjtRQUN4RCxNQUFNRSxVQUNKLEFBQUVELENBQUFBLFdBQVdFLElBQUksR0FBR0osY0FBY0ksSUFBSSxHQUFHRixXQUFXbEMsS0FBSyxHQUFHLENBQUEsSUFBS2dDLGNBQWNoQyxLQUFLLEdBQUk7UUFDMUYsTUFBTXFDLFVBQ0osQUFBRUgsQ0FBQUEsV0FBV0ksR0FBRyxHQUFHTixjQUFjTSxHQUFHLEdBQUdKLFdBQVdwQyxNQUFNLEdBQUcsQ0FBQSxJQUFLa0MsY0FBY2xDLE1BQU0sR0FBSTtRQUMxRk0saUJBQWlCO1lBQUVILEdBQUdrQztZQUFTakMsR0FBR21DO1FBQVE7SUFDNUM7SUFFQSxNQUFNRSxlQUFldkQsZ0JBQWdCLENBQUMsRUFBRUQsUUFBUSxDQUFDLEVBQUVDLGNBQWMsQ0FBQyxHQUFHRDtJQUVyRSxxQkFDRSw2QkFBQ1A7UUFBSUMsV0FBV047cUJBQ2QsNkJBQUNLO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFFBQVEsQ0FBQztxQkFDcEMsNkJBQUNxRTtRQUFHQyxPQUFPLENBQUMsRUFBRXBELEVBQUUsbUJBQW1CLENBQUMsRUFBRVAsU0FBUyxDQUFDO09BQzdDTyxFQUFFLG9CQUFtQixLQUFFUCx5QkFFMUIsNkJBQUNOO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFNBQVMsQ0FBQztxQkFDckMsNkJBQUN1RSxlQUFNO1FBQ0xDLGNBQVl0RCxFQUFFO1FBQ2R1RCxhQUFZO1FBQ1puRSxXQUFXLENBQUMsRUFBRU4sVUFBVSxRQUFRLENBQUM7UUFDakMwRSxTQUFTLElBQU0xRCxXQUFXd0Msc0JBQWM7T0FFdkN0QyxFQUFFLGtDQUVMLDZCQUFDcUQsZUFBTTtRQUNMQyxjQUFZdEQsRUFBRTtRQUNkdUQsYUFBWTtRQUNabkUsV0FBVyxDQUFDLEVBQUVOLFVBQVUsTUFBTSxDQUFDO1FBQy9CMEUsU0FBUyxJQUFNcEI7T0FFZHBDLEVBQUUsMENBSVQsNkJBQUNiO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFVBQVUsQ0FBQztxQkFDdEMsNkJBQUNLO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE1BQU0sQ0FBQztxQkFDbEMsNkJBQUNLO1FBQ0NDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLGVBQWUsQ0FBQztRQUN4QzJFLEtBQUt0QztRQUNMdUMsT0FBTztZQUNMQyxhQUFhLENBQUMsRUFBRWpDLGdCQUFnQkgsZUFBZSxDQUFDO1FBQ2xEO09BRUMzQix5QkFDQyw2QkFBQ2dFLHVCQUFTO1FBQ1J4RSxXQUFXLENBQUMsRUFBRU4sVUFBVSxXQUFXLENBQUM7UUFDcEN3QixNQUFNQTtRQUNOckIsVUFBVSxDQUFDNEUsR0FBR0MsSUFBTXZELFFBQVF1RDtRQUM1QkMsWUFBWSxJQUFNN0MsZUFBZTtRQUNqQzhDLHNCQUFzQjtZQUNwQixxQkFBTyw2QkFBQzdFO2dCQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxhQUFhLENBQUM7Z0JBQUUyRSxLQUFLbkM7O1FBQzNEO3FCQUVBLDZCQUFDMkM7UUFBSUMsS0FBS2xFLEVBQUU7UUFBdUJ5RCxLQUFLcEM7UUFBVThDLEtBQUtqQjt3QkFHekQsNkJBQUNlO1FBQUlDLEtBQUtsRSxFQUFFO1FBQXlCeUQsS0FBS3BDO1FBQVU4QyxLQUFLakI7c0JBRTNELDZCQUFDa0I7UUFDQ0MsV0FBVy9DO1FBQ1hMLGFBQWFBO1FBQ2I3QixXQUFXLENBQUMsRUFBRU4sVUFBVSxZQUFZLENBQUM7UUFDckN3RixjQUFjbkQ7UUFDZG9ELGlCQUFpQnpEO1FBQ2pCeUIsV0FBV0E7UUFDWHJCLGdCQUFnQkE7cUJBRWhCLDZCQUFDc0QsYUFBSSxZQUlWLEFBQUM1RSxDQUFBQSxZQUFZQyxjQUFhLG1CQUN6Qiw2QkFBQ1Y7UUFBSUMsV0FBVyxDQUFDLEVBQUVOLFVBQVUsU0FBUyxDQUFDO09BQ3BDYywwQkFDQyw2QkFBQ1Q7UUFBSUMsV0FBVyxDQUFDLEVBQUVOLFVBQVUsV0FBVyxDQUFDO3FCQUN2Qyw2QkFBQ0ssMkJBQ0MsNkJBQUNBO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFdBQVcsQ0FBQztxQkFDdkMsNkJBQUMyRixZQUFJekUsRUFBRSwrQkFDUCw2QkFBQ3FELGVBQU07UUFDTEUsYUFBWTtRQUNabkUsV0FBVyxDQUFDLEVBQUVOLFVBQVUsT0FBTyxDQUFDO1FBQ2hDMEUsU0FBUyxJQUNQakQsUUFBUTtnQkFDTkUsUUFBUTtnQkFDUkMsTUFBTTtnQkFDTkMsT0FBTztnQkFDUEMsR0FBRztnQkFDSEMsR0FBRztZQUNMO09BR0RiLEVBQUUsbUNBSVQsNkJBQUMwRTtRQUFLdEYsV0FBVyxDQUFDLEVBQUVOLFVBQVUsYUFBYSxDQUFDO09BQ3pDa0IsRUFBRSw4Q0FFTCw2QkFBQ2I7UUFBSUMsV0FBVyxDQUFDLEVBQUVOLFVBQVUsWUFBWSxDQUFDO3FCQUN4Qyw2QkFBQ0M7UUFDQ0MsTUFBTSxDQUFDLEVBQUVnQixFQUFFLGdCQUFnQixLQUFLLENBQUM7UUFDakNmLFVBQVUsQ0FBQ0MsUUFBVTBDLGFBQWE7Z0JBQUVDLFdBQVc7Z0JBQVMzQztZQUFNO1FBQzlEQSxPQUFPLEFBQUMsQ0FBQSxBQUFDb0IsS0FBS0ssS0FBSyxHQUFHLE1BQU9lLGFBQVksRUFBR2lELE9BQU8sQ0FBQztzQkFFdEQsNkJBQUM1RjtRQUNDQyxNQUFNLENBQUMsRUFBRWdCLEVBQUUsaUJBQWlCLEtBQUssQ0FBQztRQUNsQ2YsVUFBVSxDQUFDQyxRQUFVMEMsYUFBYTtnQkFBRUMsV0FBVztnQkFBVTNDO1lBQU07UUFDL0RBLE9BQU8sQUFBQyxDQUFBLEFBQUNvQixLQUFLRyxNQUFNLEdBQUcsTUFBT2MsY0FBYSxFQUFHb0QsT0FBTyxDQUFDO1VBTTdEOUUsZ0NBQ0MsNkJBQUNWO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFdBQVcsQ0FBQztxQkFDdkMsNkJBQUNLLDJCQUNDLDZCQUFDQTtRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxXQUFXLENBQUM7cUJBQ3ZDLDZCQUFDMkYsWUFBSXpFLEVBQUUscUNBQ1AsNkJBQUNxRCxlQUFNO1FBQ0xFLGFBQVk7UUFDWm5FLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE9BQU8sQ0FBQztRQUNoQzBFLFNBQVNkO09BRVIxQyxFQUFFLG1DQUlULDZCQUFDMEU7UUFBS3RGLFdBQVcsQ0FBQyxFQUFFTixVQUFVLGFBQWEsQ0FBQztPQUN6Q2tCLEVBQUUsZ0RBRUwsNkJBQUNiO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLFlBQVksQ0FBQztxQkFDeEMsNkJBQUNDO1FBQ0NDLE1BQUs7UUFDTEMsVUFBVSxDQUFDQyxRQUFVK0MsbUJBQW1CO2dCQUFFQyxZQUFZO2dCQUFLaEQ7WUFBTTtRQUNqRUEsT0FBTzRCLGNBQWNGLENBQUMsQ0FBQytELE9BQU8sQ0FBQztzQkFFakMsNkJBQUM1RjtRQUNDQyxNQUFLO1FBQ0xDLFVBQVUsQ0FBQ0MsUUFBVStDLG1CQUFtQjtnQkFBRUMsWUFBWTtnQkFBS2hEO1lBQU07UUFDakVBLE9BQU80QixjQUFjRCxDQUFDLENBQUM4RCxPQUFPLENBQUM7O0FBVW5EO0FBRUEsTUFBTVAsbUJBQW1CLENBQUMsRUFDeEJDLFNBQVMsRUFDVHBELFdBQVcsRUFDWDJELFFBQVEsRUFDUnhGLFNBQVMsRUFDVGtGLFlBQVksRUFDWkMsa0JBQWtCO0lBQUUzRCxHQUFHO0lBQUlDLEdBQUc7QUFBRyxDQUFDLEVBQ2xDMEIsU0FBUyxFQUNUckIsY0FBYyxFQUNmO0lBQ0MsTUFBTSxDQUFDMkQsVUFBVUMsWUFBWSxHQUFHdEUsSUFBQUEsZUFBUSxFQUFDO1FBQUVJLEdBQUcyRCxnQkFBZ0IzRCxDQUFDO1FBQUVDLEdBQUcwRCxnQkFBZ0IxRCxDQUFDO0lBQUM7SUFDdEYsTUFBTSxDQUFDa0UsWUFBWUMsY0FBYyxHQUFHeEUsSUFBQUEsZUFBUSxFQUFDO0lBQzdDLE1BQU15RSxVQUFVN0QsSUFBQUEsYUFBTTtJQUV0QixNQUFNOEQsaUJBQWlCMUMsY0FBSyxDQUFDQyxXQUFXLENBQ3RDLENBQUMwQyxXQUFvQkMsV0FBb0JDO1FBQ3ZDLE1BQU0xQyxnQkFBZ0IyQixhQUFhOUMsT0FBTyxDQUFDb0IscUJBQXFCO1FBQ2hFLE1BQU1DLGFBQWF3QixVQUFVN0MsT0FBTyxDQUFDb0IscUJBQXFCO1FBQzFELE1BQU0wQyxTQUFTSCxhQUFhdEMsV0FBV0UsSUFBSTtRQUMzQyxNQUFNd0MsU0FBU0gsYUFBYXZDLFdBQVdJLEdBQUc7UUFFMUMsTUFBTXVDLGVBQWVGLFNBQVN6QyxXQUFXRSxJQUFJLElBQUl1QyxTQUFTekMsV0FBVzRDLEtBQUs7UUFDMUUsTUFBTUMsZUFBZUgsU0FBUzFDLFdBQVdJLEdBQUcsSUFBSXNDLFNBQVMxQyxXQUFXOEMsTUFBTTtRQUUxRSxJQUFJL0UsSUFBSSxBQUFFMEUsQ0FBQUEsU0FBUzNDLGNBQWNJLElBQUksQUFBRCxJQUFLSixjQUFjaEMsS0FBSyxHQUFJO1FBQ2hFLElBQUlFLElBQUksQUFBRTBFLENBQUFBLFNBQVM1QyxjQUFjTSxHQUFHLEFBQUQsSUFBS04sY0FBY2xDLE1BQU0sR0FBSTtRQUNoRSxNQUFNcUMsVUFDSixBQUFFRCxDQUFBQSxXQUFXRSxJQUFJLEdBQUdKLGNBQWNJLElBQUksR0FBR0YsV0FBV2xDLEtBQUssR0FBRyxDQUFBLElBQUtnQyxjQUFjaEMsS0FBSyxHQUFJO1FBQzFGLE1BQU1xQyxVQUNKLEFBQUVILENBQUFBLFdBQVdJLEdBQUcsR0FBR04sY0FBY00sR0FBRyxHQUFHSixXQUFXcEMsTUFBTSxHQUFHLENBQUEsSUFBS2tDLGNBQWNsQyxNQUFNLEdBQUk7UUFDMUYsSUFBSStFLGdCQUFnQkUsY0FBYztZQUNoQ1YsY0FBYztZQUNkLElBQUlNLFNBQVN6QyxXQUFXRSxJQUFJLEVBQUU7Z0JBQzVCbkMsSUFBSSxBQUFFaUMsQ0FBQUEsV0FBV0UsSUFBSSxHQUFHSixjQUFjSSxJQUFJLEFBQUQsSUFBS0osY0FBY2hDLEtBQUssR0FBSTtZQUN2RSxPQUFPLElBQUkyRSxTQUFTekMsV0FBVzRDLEtBQUssRUFBRTtnQkFDcEM3RSxJQUNFLEFBQUUrQixDQUFBQSxjQUFjaEMsS0FBSyxHQUFJZ0MsQ0FBQUEsY0FBYzhDLEtBQUssR0FBRzVDLFdBQVc0QyxLQUFLLEFBQUQsQ0FBQyxJQUM3RDlDLGNBQWNoQyxLQUFLLEdBQ3JCO1lBQ0o7WUFFQSxJQUFJNEUsU0FBUzFDLFdBQVdJLEdBQUcsRUFBRTtnQkFDM0JwQyxJQUFJLEFBQUVnQyxDQUFBQSxXQUFXSSxHQUFHLEdBQUdOLGNBQWNNLEdBQUcsQUFBRCxJQUFLTixjQUFjbEMsTUFBTSxHQUFJO1lBQ3RFLE9BQU8sSUFBSThFLFNBQVMxQyxXQUFXOEMsTUFBTSxFQUFFO2dCQUNyQzlFLElBQ0UsQUFBRThCLENBQUFBLGNBQWNsQyxNQUFNLEdBQUlrQyxDQUFBQSxjQUFjZ0QsTUFBTSxHQUFHOUMsV0FBVzhDLE1BQU0sQUFBRCxDQUFDLElBQ2hFaEQsY0FBY2xDLE1BQU0sR0FDdEI7WUFDSjtZQUVBLElBQUk0RSxVQUFVO2dCQUNaekUsSUFBSTRFLGVBQWUxQyxVQUFVbEM7Z0JBQzdCQyxJQUFJNkUsZUFBZTFDLFVBQVVuQztZQUMvQjtRQUNGO1FBRUEsT0FBTztZQUFFRDtZQUFHQztRQUFFO0lBQ2hCLEdBQ0EsRUFBRTtJQUdKLE1BQU0rRSxrQkFBa0IsQ0FBQ0M7UUFDdkJBLE1BQU1DLGNBQWM7UUFDcEJkLGNBQWM7SUFDaEI7SUFFQSxNQUFNZSxrQkFBa0IsQ0FBQ0Y7UUFDdkIsSUFBSSxDQUFDZCxZQUFZLE9BQU87UUFDeEIsTUFBTSxFQUFFbkUsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR3FFLGVBQWVXLE1BQU1HLE9BQU8sRUFBRUgsTUFBTUksT0FBTztRQUU1RG5CLFlBQVk7WUFBRWxFO1lBQUdDO1FBQUU7SUFDckI7SUFFQSxNQUFNcUYsU0FBUztRQUNibEIsY0FBYztRQUNkekMsVUFBVXNDO0lBQ1o7SUFFQXJDLGNBQUssQ0FBQzJELFNBQVMsQ0FBQztRQUNkLElBQUlwQixjQUFjLENBQUNFLFFBQVF6RCxPQUFPLEVBQUU7UUFDcEMsSUFBSVAsYUFBYTtZQUNmLE1BQU0sRUFBRVIsTUFBTSxFQUFFc0MsSUFBSSxFQUFFRSxHQUFHLEVBQUV0QyxLQUFLLEVBQUUsR0FBR3NFLFFBQVF6RCxPQUFPLENBQUNvQixxQkFBcUI7WUFDMUUsTUFBTSxFQUFFaEMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR3FFLGVBQWVuQyxPQUFPcEMsUUFBUSxHQUFHc0MsTUFBTXhDLFNBQVMsR0FBRztZQUNwRThCLFVBQVU7Z0JBQUUzQjtnQkFBR0M7WUFBRTtZQUNqQmlFLFlBQVk7Z0JBQUVsRTtnQkFBR0M7WUFBRTtZQUNuQkssZUFBZTtZQUNmO1FBQ0Y7SUFDRixHQUFHO1FBQUNnRTtRQUFnQkg7UUFBWTlEO1FBQWFDO1FBQWdCMkQsU0FBU2pFLENBQUM7UUFBRWlFLFNBQVNoRSxDQUFDO0tBQUM7SUFFcEYyQixjQUFLLENBQUMyRCxTQUFTLENBQUM7UUFDZHJCLFlBQVk7WUFBRWxFLEdBQUcyRCxnQkFBZ0IzRCxDQUFDO1lBQUVDLEdBQUcwRCxnQkFBZ0IxRCxDQUFDO1FBQUM7SUFDM0QsR0FBRztRQUFDMEQsZ0JBQWdCM0QsQ0FBQztRQUFFMkQsZ0JBQWdCMUQsQ0FBQztLQUFDO0lBRXpDLHFCQUNFLDZCQUFDMUI7UUFDQ0MsV0FBVztZQUNULENBQUMsRUFBRU4sVUFBVSxxQkFBcUIsQ0FBQztZQUNuQ2lHLGNBQWMsQ0FBQyxFQUFFakcsVUFBVSwrQkFBK0IsQ0FBQztTQUM1RCxDQUNFc0gsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7UUFDUkMsYUFBYVI7cUJBRWIsNkJBQUM1RztRQUNDQyxXQUFXO1lBQUMsQ0FBQyxFQUFFTixVQUFVLFdBQVcsQ0FBQztZQUFFTTtTQUFVLENBQUNnSCxNQUFNLENBQUNDLFNBQVNDLElBQUksQ0FBQztRQUN2RUUsYUFBYVo7UUFDYmEsV0FBV1A7UUFDWHpDLEtBQUt3QjtRQUNMdkIsT0FBTztZQUFFWCxNQUFNLENBQUMsRUFBRThCLFNBQVNqRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUVpRSxVQUFVO1lBQVk1QixLQUFLLENBQUMsRUFBRTRCLFNBQVNoRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUM7T0FFNUUrRCx5QkFFSCw2QkFBQ3pGO0FBR1AifQ==
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxuY29uc3QgSW5wdXQ6IFJlYWN0LkZDPHsgbmFtZTogc3RyaW5nOyBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7IHZhbHVlOiBzdHJpbmcgfT4gPSAoe1xuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG59KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dGB9PlxuICAgIHtuYW1lfVxuICAgIDxpbnB1dCBuYW1lPXtuYW1lfSBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0gdHlwZT1cIm51bWJlclwiIHZhbHVlPXt2YWx1ZX0gLz5cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzx7XG4gIGRvYz86IERhdGFcbiAgZmlsZU5hbWU6IHN0cmluZ1xuICBmaWxlU3JjOiBzdHJpbmdcbiAgaW1hZ2VDYWNoZVRhZz86IHN0cmluZ1xuICBzaG93Q3JvcD86IGJvb2xlYW5cbiAgc2hvd0ZvY2FsUG9pbnQ/OiBib29sZWFuXG59PiA9ICh7IGZpbGVOYW1lLCBmaWxlU3JjLCBpbWFnZUNhY2hlVGFnLCBzaG93Q3JvcCwgc2hvd0ZvY2FsUG9pbnQgfSkgPT4ge1xuICBjb25zdCB7IGNsb3NlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2dlbmVyYWwnLCAndXBsb2FkJ10pXG4gIGNvbnN0IHsgZm9ybVF1ZXJ5UGFyYW1zLCBzZXRGb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG4gIGNvbnN0IHsgdXBsb2FkRWRpdHMgfSA9IGZvcm1RdWVyeVBhcmFtcyB8fCB7fVxuICBjb25zdCBbY3JvcCwgc2V0Q3JvcF0gPSB1c2VTdGF0ZTxDcm9wVHlwZT4oe1xuICAgIGhlaWdodDogdXBsb2FkRWRpdHM/LmNyb3A/LmhlaWdodCB8fCAxMDAsXG4gICAgdW5pdDogJyUnLFxuICAgIHdpZHRoOiB1cGxvYWRFZGl0cz8uY3JvcD8ud2lkdGggfHwgMTAwLFxuICAgIHg6IHVwbG9hZEVkaXRzPy5jcm9wPy54IHx8IDAsXG4gICAgeTogdXBsb2FkRWRpdHM/LmNyb3A/LnkgfHwgMCxcbiAgfSlcblxuICBjb25zdCBbcG9pbnRQb3NpdGlvbiwgc2V0UG9pbnRQb3NpdGlvbl0gPSB1c2VTdGF0ZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KHtcbiAgICB4OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueCB8fCA1MCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueSB8fCA1MCxcbiAgfSlcbiAgY29uc3QgW2NoZWNrQm91bmRzLCBzZXRDaGVja0JvdW5kc10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW29yaWdpbmFsSGVpZ2h0LCBzZXRPcmlnaW5hbEhlaWdodF0gPSB1c2VTdGF0ZTxudW1iZXI+KDApXG4gIGNvbnN0IFtvcmlnaW5hbFdpZHRoLCBzZXRPcmlnaW5hbFdpZHRoXSA9IHVzZVN0YXRlPG51bWJlcj4oMClcblxuICBjb25zdCBmb2NhbFdyYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBjcm9wUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3QgZmluZVR1bmVDcm9wID0gKHsgZGltZW5zaW9uLCB2YWx1ZSB9OiB7IGRpbWVuc2lvbjogJ2hlaWdodCcgfCAnd2lkdGgnOyB2YWx1ZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBpbnRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKVxuICAgIGlmIChkaW1lbnNpb24gPT09ICd3aWR0aCcgJiYgaW50VmFsdWUgPj0gb3JpZ2luYWxXaWR0aCkgcmV0dXJuIG51bGxcbiAgICBpZiAoZGltZW5zaW9uID09PSAnaGVpZ2h0JyAmJiBpbnRWYWx1ZSA+PSBvcmlnaW5hbEhlaWdodCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAxMDAgKiAoaW50VmFsdWUgLyAoZGltZW5zaW9uID09PSAnd2lkdGgnID8gb3JpZ2luYWxXaWR0aCA6IG9yaWdpbmFsSGVpZ2h0KSlcblxuICAgIGlmIChwZXJjZW50YWdlID09PSAxMDAgfHwgcGVyY2VudGFnZSA9PT0gMCkgcmV0dXJuIG51bGxcblxuICAgIHNldENyb3Aoe1xuICAgICAgLi4uY3JvcCxcbiAgICAgIFtkaW1lbnNpb25dOiBwZXJjZW50YWdlLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBmaW5lVHVuZUZvY2FsUG9pbnQgPSAoeyBjb29yZGluYXRlLCB2YWx1ZSB9OiB7IGNvb3JkaW5hdGU6ICd4JyB8ICd5JzsgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBwYXJzZUludCh2YWx1ZSlcbiAgICBpZiAoaW50VmFsdWUgPj0gMCAmJiBpbnRWYWx1ZSA8PSAxMDApIHtcbiAgICAgIHNldFBvaW50UG9zaXRpb24oKHByZXZQb3NpdGlvbikgPT4gKHsgLi4ucHJldlBvc2l0aW9uLCBbY29vcmRpbmF0ZV06IGludFZhbHVlIH0pKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNhdmVFZGl0cyA9ICgpID0+IHtcbiAgICBzZXRGb3JtUXVlcnlQYXJhbXMoe1xuICAgICAgLi4uZm9ybVF1ZXJ5UGFyYW1zLFxuICAgICAgdXBsb2FkRWRpdHM6IHtcbiAgICAgICAgY3JvcDogY3JvcCA/IGNyb3AgOiB1bmRlZmluZWQsXG4gICAgICAgIGZvY2FsUG9pbnQ6IHBvaW50UG9zaXRpb24gPyBwb2ludFBvc2l0aW9uIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICAgIGNsb3NlTW9kYWwoZWRpdERyYXdlclNsdWcpXG4gIH1cblxuICBjb25zdCBvbkRyYWdFbmQgPSBSZWFjdC51c2VDYWxsYmFjaygoeyB4LCB5IH0pID0+IHtcbiAgICBzZXRQb2ludFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgIHNldENoZWNrQm91bmRzKGZhbHNlKVxuICB9LCBbXSlcblxuICBjb25zdCBjZW50ZXJGb2NhbFBvaW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBmb2NhbFdyYXBSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBjcm9wUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICBzZXRQb2ludFBvc2l0aW9uKHsgeDogeENlbnRlciwgeTogeUNlbnRlciB9KVxuICB9XG5cbiAgY29uc3QgZmlsZVNyY1RvVXNlID0gaW1hZ2VDYWNoZVRhZyA/IGAke2ZpbGVTcmN9PyR7aW1hZ2VDYWNoZVRhZ31gIDogZmlsZVNyY1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgIDxoMiB0aXRsZT17YCR7dCgnZ2VuZXJhbDplZGl0aW5nJyl9ICR7ZmlsZU5hbWV9YH0+XG4gICAgICAgICAge3QoJ2dlbmVyYWw6ZWRpdGluZycpfSB7ZmlsZU5hbWV9XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hY3Rpb25zYH0+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzYXZlRWRpdHMoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b29sV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JvcGB9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWwtd3JhcHBlcmB9XG4gICAgICAgICAgICByZWY9e2ZvY2FsV3JhcFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBgJHtvcmlnaW5hbFdpZHRoIC8gb3JpZ2luYWxIZWlnaHR9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDcm9wID8gKFxuICAgICAgICAgICAgICA8UmVhY3RDcm9wXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZWFjdENyb3BgfVxuICAgICAgICAgICAgICAgIGNyb3A9e2Nyb3B9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhfLCBjKSA9PiBzZXRDcm9wKGMpfVxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9eygpID0+IHNldENoZWNrQm91bmRzKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlbmRlclNlbGVjdGlvbkFkZG9uPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3Atd2luZG93YH0gcmVmPXtjcm9wUmVmfSAvPlxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfVxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbEhlaWdodChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JlYWN0Q3JvcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxpbWcgYWx0PXt0KCd1cGxvYWQ6c2V0Rm9jYWxQb2ludCcpfSByZWY9e2ltYWdlUmVmfSBzcmM9e2ZpbGVTcmNUb1VzZX0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8RHJhZ2dhYmxlRWxlbWVudFxuICAgICAgICAgICAgICBib3VuZHNSZWY9e2Nyb3BSZWZ9XG4gICAgICAgICAgICAgIGNoZWNrQm91bmRzPXtjaGVja0JvdW5kc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19mb2NhbFBvaW50YH1cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbj17cG9pbnRQb3NpdGlvbn1cbiAgICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICAgIHNldENoZWNrQm91bmRzPXtzZXRDaGVja0JvdW5kc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBsdXMgLz5cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlRWxlbWVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoc2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnQpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhcmB9PlxuICAgICAgICAgICAge3Nob3dDcm9wICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwV3JhcGB9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGl0bGVXcmFwYH0+XG4gICAgICAgICAgICAgICAgICAgIDxoMz57dCgndXBsb2FkOmNyb3AnKX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc2V0YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3JvcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0OiAnJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdnZW5lcmFsOnJlc2V0Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kZXNjcmlwdGlvbmB9PlxuICAgICAgICAgICAgICAgICAge3QoJ3VwbG9hZDpjcm9wVG9vbERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOndpZHRoJyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICd3aWR0aCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17KChjcm9wLndpZHRoIC8gMTAwKSAqIG9yaWdpbmFsV2lkdGgpLnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake3QoJ3VwbG9hZDpoZWlnaHQnKX0gKHB4KWB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lQ3JvcCh7IGRpbWVuc2lvbjogJ2hlaWdodCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17KChjcm9wLmhlaWdodCAvIDEwMCkgKiBvcmlnaW5hbEhlaWdodCkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Nob3dGb2NhbFBvaW50ICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwV3JhcGB9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGl0bGVXcmFwYH0+XG4gICAgICAgICAgICAgICAgICAgIDxoMz57dCgndXBsb2FkOmZvY2FsUG9pbnQnKX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc2V0YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjZW50ZXJGb2NhbFBvaW50fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6cmVzZXQnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Rlc2NyaXB0aW9uYH0+XG4gICAgICAgICAgICAgICAgICB7dCgndXBsb2FkOmZvY2FsUG9pbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRzV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJYICVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUZvY2FsUG9pbnQoeyBjb29yZGluYXRlOiAneCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cG9pbnRQb3NpdGlvbi54LnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJZICVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUZvY2FsUG9pbnQoeyBjb29yZGluYXRlOiAneScsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cG9pbnRQb3NpdGlvbi55LnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcmFnZ2FibGVFbGVtZW50ID0gKHtcbiAgYm91bmRzUmVmLFxuICBjaGVja0JvdW5kcyxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBpbml0aWFsUG9zaXRpb24gPSB7IHg6IDUwLCB5OiA1MCB9LFxuICBvbkRyYWdFbmQsXG4gIHNldENoZWNrQm91bmRzLFxufSkgPT4ge1xuICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlKHsgeDogaW5pdGlhbFBvc2l0aW9uLngsIHk6IGluaXRpYWxQb3NpdGlvbi55IH0pXG4gIGNvbnN0IFtpc0RyYWdnaW5nLCBzZXRJc0RyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBkcmFnUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3QgZ2V0Q29vcmRpbmF0ZXMgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAobW91c2VYQXJnPzogbnVtYmVyLCBtb3VzZVlBcmc/OiBudW1iZXIsIHJlY2VudGVyPzogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBib3VuZHNSZWN0ID0gYm91bmRzUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IG1vdXNlWCA9IG1vdXNlWEFyZyA/PyBib3VuZHNSZWN0LmxlZnRcbiAgICAgIGNvbnN0IG1vdXNlWSA9IG1vdXNlWUFyZyA/PyBib3VuZHNSZWN0LnRvcFxuXG4gICAgICBjb25zdCB4T3V0T2ZCb3VuZHMgPSBtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQgfHwgbW91c2VYID4gYm91bmRzUmVjdC5yaWdodFxuICAgICAgY29uc3QgeU91dE9mQm91bmRzID0gbW91c2VZIDwgYm91bmRzUmVjdC50b3AgfHwgbW91c2VZID4gYm91bmRzUmVjdC5ib3R0b21cblxuICAgICAgbGV0IHggPSAoKG1vdXNlWCAtIGNvbnRhaW5lclJlY3QubGVmdCkgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgbGV0IHkgPSAoKG1vdXNlWSAtIGNvbnRhaW5lclJlY3QudG9wKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgY29uc3QgeENlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgIGNvbnN0IHlDZW50ZXIgPVxuICAgICAgICAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgKyBib3VuZHNSZWN0LmhlaWdodCAvIDIpIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBpZiAoeE91dE9mQm91bmRzIHx8IHlPdXRPZkJvdW5kcykge1xuICAgICAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuICAgICAgICBpZiAobW91c2VYIDwgYm91bmRzUmVjdC5sZWZ0KSB7XG4gICAgICAgICAgeCA9ICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICAgIH0gZWxzZSBpZiAobW91c2VYID4gYm91bmRzUmVjdC5yaWdodCkge1xuICAgICAgICAgIHggPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LndpZHRoIC0gKGNvbnRhaW5lclJlY3QucmlnaHQgLSBib3VuZHNSZWN0LnJpZ2h0KSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LndpZHRoKSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCkge1xuICAgICAgICAgIHkgPSAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICAgIH0gZWxzZSBpZiAobW91c2VZID4gYm91bmRzUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICB5ID1cbiAgICAgICAgICAgICgoY29udGFpbmVyUmVjdC5oZWlnaHQgLSAoY29udGFpbmVyUmVjdC5ib3R0b20gLSBib3VuZHNSZWN0LmJvdHRvbSkpIC9cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVjdC5oZWlnaHQpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlY2VudGVyKSB7XG4gICAgICAgICAgeCA9IHhPdXRPZkJvdW5kcyA/IHhDZW50ZXIgOiB4XG4gICAgICAgICAgeSA9IHlPdXRPZkJvdW5kcyA/IHlDZW50ZXIgOiB5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgeCwgeSB9XG4gICAgfSxcbiAgICBbXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBzZXRJc0RyYWdnaW5nKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoIWlzRHJhZ2dpbmcpIHJldHVybiBudWxsXG4gICAgY29uc3QgeyB4LCB5IH0gPSBnZXRDb29yZGluYXRlcyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKVxuXG4gICAgc2V0UG9zaXRpb24oeyB4LCB5IH0pXG4gIH1cblxuICBjb25zdCBvbkRyb3AgPSAoKSA9PiB7XG4gICAgc2V0SXNEcmFnZ2luZyhmYWxzZSlcbiAgICBvbkRyYWdFbmQocG9zaXRpb24pXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0RyYWdnaW5nIHx8ICFkcmFnUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGlmIChjaGVja0JvdW5kcykge1xuICAgICAgY29uc3QgeyBoZWlnaHQsIGxlZnQsIHRvcCwgd2lkdGggfSA9IGRyYWdSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgeyB4LCB5IH0gPSBnZXRDb29yZGluYXRlcyhsZWZ0ICsgd2lkdGggLyAyLCB0b3AgKyBoZWlnaHQgLyAyLCB0cnVlKVxuICAgICAgb25EcmFnRW5kKHsgeCwgeSB9KVxuICAgICAgc2V0UG9zaXRpb24oeyB4LCB5IH0pXG4gICAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSwgW2dldENvb3JkaW5hdGVzLCBpc0RyYWdnaW5nLCBjaGVja0JvdW5kcywgc2V0Q2hlY2tCb3VuZHMsIHBvc2l0aW9uLngsIHBvc2l0aW9uLnldKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCBwb3NpdGlvbjogJ2Fic29sdXRlJywgdG9wOiBgJHtwb3NpdGlvbi55fSVgIH19XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRWRpdFVwbG9hZCIsImJhc2VDbGFzcyIsIklucHV0IiwibmFtZSIsIm9uQ2hhbmdlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsImUiLCJ0YXJnZXQiLCJ0eXBlIiwiZmlsZU5hbWUiLCJmaWxlU3JjIiwiaW1hZ2VDYWNoZVRhZyIsInNob3dDcm9wIiwic2hvd0ZvY2FsUG9pbnQiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJmb3JtUXVlcnlQYXJhbXMiLCJzZXRGb3JtUXVlcnlQYXJhbXMiLCJ1c2VGb3JtUXVlcnlQYXJhbXMiLCJ1cGxvYWRFZGl0cyIsImNyb3AiLCJzZXRDcm9wIiwidXNlU3RhdGUiLCJoZWlnaHQiLCJ1bml0Iiwid2lkdGgiLCJ4IiwieSIsInBvaW50UG9zaXRpb24iLCJzZXRQb2ludFBvc2l0aW9uIiwiZm9jYWxQb2ludCIsImNoZWNrQm91bmRzIiwic2V0Q2hlY2tCb3VuZHMiLCJvcmlnaW5hbEhlaWdodCIsInNldE9yaWdpbmFsSGVpZ2h0Iiwib3JpZ2luYWxXaWR0aCIsInNldE9yaWdpbmFsV2lkdGgiLCJmb2NhbFdyYXBSZWYiLCJ1c2VSZWYiLCJpbWFnZVJlZiIsImNyb3BSZWYiLCJmaW5lVHVuZUNyb3AiLCJkaW1lbnNpb24iLCJpbnRWYWx1ZSIsInBhcnNlSW50IiwicGVyY2VudGFnZSIsImZpbmVUdW5lRm9jYWxQb2ludCIsImNvb3JkaW5hdGUiLCJwcmV2UG9zaXRpb24iLCJzYXZlRWRpdHMiLCJ1bmRlZmluZWQiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJib3VuZHNSZWN0IiwieENlbnRlciIsImxlZnQiLCJ5Q2VudGVyIiwidG9wIiwiZmlsZVNyY1RvVXNlIiwiaDIiLCJ0aXRsZSIsIkJ1dHRvbiIsImFyaWEtbGFiZWwiLCJidXR0b25TdHlsZSIsIm9uQ2xpY2siLCJyZWYiLCJzdHlsZSIsImFzcGVjdFJhdGlvIiwiUmVhY3RDcm9wIiwiXyIsImMiLCJvbkNvbXBsZXRlIiwicmVuZGVyU2VsZWN0aW9uQWRkb24iLCJpbWciLCJhbHQiLCJvbkxvYWQiLCJjdXJyZW50VGFyZ2V0IiwibmF0dXJhbEhlaWdodCIsIm5hdHVyYWxXaWR0aCIsInNyYyIsIkRyYWdnYWJsZUVsZW1lbnQiLCJib3VuZHNSZWYiLCJjb250YWluZXJSZWYiLCJpbml0aWFsUG9zaXRpb24iLCJQbHVzIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQmFBOzs7ZUFBQUE7Ozt1QkEzQlk7K0RBQ2U7OEJBQ1Q7dUVBQ2tCO1FBQzFDOzZEQUlVO2lDQUNrQjt3QkFDSjsrREFDWjtRQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRWxCLE1BQU1DLFFBQXNGLENBQUMsRUFDM0ZDLElBQUksRUFDSkMsUUFBUSxFQUNSQyxLQUFLLEVBQ04saUJBQ0MsNkJBQUNDO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE9BQU8sQ0FBQztPQUNsQ0Usb0JBQ0QsNkJBQUNLO1FBQU1MLE1BQU1BO1FBQU1DLFVBQVUsQ0FBQ0ssSUFBTUwsU0FBU0ssRUFBRUMsTUFBTSxDQUFDTCxLQUFL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
@@ -35,11 +35,6 @@ $header-height: base(5);
35
35
  text-wrap: nowrap;
36
36
  }
37
37
 
38
- &__cancel,
39
- &__save {
40
- width: 50%;
41
- }
42
-
43
38
  &__toolWrap {
44
39
  display: flex;
45
40
  justify-content: flex-end;
@@ -6,16 +6,22 @@
6
6
  cursor: pointer;
7
7
  background-color: transparent;
8
8
  outline: none;
9
- position: absolute;
9
+ position: relative;
10
10
 
11
- --hamburger-padding: 5px;
11
+ --hamburger-padding: 8px;
12
12
  --hamburger-size: 9px;
13
13
  --hamburger-line-gap: 3px;
14
+
14
15
  padding: var(--hamburger-padding);
15
- border: 1px solid var(--theme-elevation-350);
16
+ border: 1px solid var(--theme-elevation-150);
16
17
  color: var(--theme-text);
17
18
  border-radius: 3px;
18
19
 
20
+ &:hover {
21
+ border: 1px solid var(--theme-elevation-500);
22
+ background-color: var(--theme-elevation-100);
23
+ }
24
+
19
25
  &:focus {
20
26
  outline: none;
21
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAyC7B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EA2C7B,CAAA"}
@@ -17,6 +17,7 @@ const _Hamburger = require("../Hamburger");
17
17
  const _Localizer = /*#__PURE__*/ _interop_require_default(require("../Localizer"));
18
18
  const _LocalizerLabel = require("../Localizer/LocalizerLabel");
19
19
  const _NavToggler = require("../Nav/NavToggler");
20
+ const _context = require("../Nav/context");
20
21
  const _StepNav = /*#__PURE__*/ _interop_require_default(require("../StepNav"));
21
22
  require("./index.scss");
22
23
  function _interop_require_default(obj) {
@@ -28,9 +29,11 @@ const baseClass = 'app-header';
28
29
  const AppHeader = (props)=>{
29
30
  const { t } = (0, _reacti18next.useTranslation)();
30
31
  const { localization, routes: { admin: adminRoute } } = (0, _Config.useConfig)();
32
+ const { navOpen } = (0, _context.useNav)();
31
33
  return /*#__PURE__*/ _react.default.createElement("header", {
32
34
  className: [
33
- baseClass
35
+ baseClass,
36
+ navOpen && `${baseClass}--nav-open`
34
37
  ].filter(Boolean).join(' ')
35
38
  }, /*#__PURE__*/ _react.default.createElement("div", {
36
39
  className: `${baseClass}__bg`
@@ -60,4 +63,4 @@ const AppHeader = (props)=>{
60
63
  }));
61
64
  };
62
65
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0hlYWRlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCBBY2NvdW50IGZyb20gJy4uLy4uL2dyYXBoaWNzL0FjY291bnQnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgSGFtYnVyZ2VyIH0gZnJvbSAnLi4vSGFtYnVyZ2VyJ1xuaW1wb3J0IExvY2FsaXplciBmcm9tICcuLi9Mb2NhbGl6ZXInXG5pbXBvcnQgeyBMb2NhbGl6ZXJMYWJlbCB9IGZyb20gJy4uL0xvY2FsaXplci9Mb2NhbGl6ZXJMYWJlbCdcbmltcG9ydCB7IE5hdlRvZ2dsZXIgfSBmcm9tICcuLi9OYXYvTmF2VG9nZ2xlcidcbmltcG9ydCBTdGVwTmF2IGZyb20gJy4uL1N0ZXBOYXYnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2FwcC1oZWFkZXInXG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXI6IFJlYWN0LkZDID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IHtcbiAgICBsb2NhbGl6YXRpb24sXG4gICAgcm91dGVzOiB7IGFkbWluOiBhZG1pblJvdXRlIH0sXG4gIH0gPSB1c2VDb25maWcoKVxuXG4gIHJldHVybiAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9e1tiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2JnYH0gLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb250ZW50YH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwcGVyYH0+XG4gICAgICAgICAgPE5hdlRvZ2dsZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19tb2JpbGUtbmF2LXRvZ2dsZXJgfT5cbiAgICAgICAgICAgIDxIYW1idXJnZXIgLz5cbiAgICAgICAgICA8L05hdlRvZ2dsZXI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRyb2xzLXdyYXBwZXJgfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zdGVwLW5hdi13cmFwcGVyYH0+XG4gICAgICAgICAgICAgIDxTdGVwTmF2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc3RlcC1uYXZgfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY29udHJvbHNgfT5cbiAgICAgICAgICAgICAge2xvY2FsaXphdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgPExvY2FsaXplckxhYmVsXG4gICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJpbnZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sb2NhbGl6ZXItc3BhY2luZ2B9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdhdXRoZW50aWNhdGlvbjphY2NvdW50Jyl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hY2NvdW50YH1cbiAgICAgICAgICAgICAgICB0bz17YCR7YWRtaW5Sb3V0ZX0vYWNjb3VudGB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8QWNjb3VudCAvPlxuICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxMb2NhbGl6ZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sb2NhbGl6ZXJgfSAvPlxuICAgIDwvaGVhZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiQXBwSGVhZGVyIiwiYmFzZUNsYXNzIiwicHJvcHMiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJsb2NhbGl6YXRpb24iLCJyb3V0ZXMiLCJhZG1pbiIsImFkbWluUm91dGUiLCJ1c2VDb25maWciLCJoZWFkZXIiLCJjbGFzc05hbWUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImRpdiIsIk5hdlRvZ2dsZXIiLCJIYW1idXJnZXIiLCJTdGVwTmF2IiwiTG9jYWxpemVyTGFiZWwiLCJhcmlhTGFiZWwiLCJMaW5rIiwiYXJpYS1sYWJlbCIsInRvIiwiQWNjb3VudCIsIkxvY2FsaXplciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFlYUE7OztlQUFBQTs7OzhEQWZLOzhCQUNhO2dDQUNWO2dFQUVEO3dCQUNNOzJCQUNBO2tFQUNKO2dDQUNTOzRCQUNKO2dFQUNQO1FBQ2I7Ozs7OztBQUVQLE1BQU1DLFlBQVk7QUFFWCxNQUFNRCxZQUFzQixDQUFDRTtJQUNsQyxNQUFNLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSw0QkFBYztJQUU1QixNQUFNLEVBQ0pDLFlBQVksRUFDWkMsUUFBUSxFQUFFQyxPQUFPQyxVQUFVLEVBQUUsRUFDOUIsR0FBR0MsSUFBQUEsaUJBQVM7SUFFYixxQkFDRSw2QkFBQ0M7UUFBT0MsV0FBVztZQUFDVjtTQUFVLENBQUNXLE1BQU0sQ0FBQ0MsU0FBU0MsSUFBSSxDQUFDO3FCQUNsRCw2QkFBQ0M7UUFBSUosV0FBVyxDQUFDLEVBQUVWLFVBQVUsSUFBSSxDQUFDO3NCQUNsQyw2QkFBQ2M7UUFBSUosV0FBVyxDQUFDLEVBQUVWLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ2M7UUFBSUosV0FBVyxDQUFDLEVBQUVWLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ2Usc0JBQVU7UUFBQ0wsV0FBVyxDQUFDLEVBQUVWLFVBQVUsb0JBQW9CLENBQUM7cUJBQ3ZELDZCQUFDZ0Isb0JBQVMsd0JBRVosNkJBQUNGO1FBQUlKLFdBQVcsQ0FBQyxFQUFFVixVQUFVLGtCQUFrQixDQUFDO3FCQUM5Qyw2QkFBQ2M7UUFBSUosV0FBVyxDQUFDLEVBQUVWLFVBQVUsa0JBQWtCLENBQUM7cUJBQzlDLDZCQUFDaUIsZ0JBQU87UUFBQ1AsV0FBVyxDQUFDLEVBQUVWLFVBQVUsVUFBVSxDQUFDO3VCQUU5Qyw2QkFBQ2M7UUFBSUosV0FBVyxDQUFDLEVBQUVWLFVBQVUsVUFBVSxDQUFDO09BQ3JDSSw4QkFDQyw2QkFBQ2MsOEJBQWM7UUFDYkMsV0FBVTtRQUNWVCxXQUFXLENBQUMsRUFBRVYsVUFBVSxtQkFBbUIsQ0FBQztzQkFHaEQsNkJBQUNvQixvQkFBSTtRQUNIQyxjQUFZbkIsRUFBRTtRQUNkUSxXQUFXLENBQUMsRUFBRVYsVUFBVSxTQUFTLENBQUM7UUFDbENzQixJQUFJLENBQUMsRUFBRWYsV0FBVyxRQUFRLENBQUM7cUJBRTNCLDZCQUFDZ0IsZ0JBQU8sNEJBTWxCLDZCQUFDQyxrQkFBUztRQUFDZCxXQUFXLENBQUMsRUFBRVYsVUFBVSxXQUFXLENBQUM7O0FBR3JEIn0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0hlYWRlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCBBY2NvdW50IGZyb20gJy4uLy4uL2dyYXBoaWNzL0FjY291bnQnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgSGFtYnVyZ2VyIH0gZnJvbSAnLi4vSGFtYnVyZ2VyJ1xuaW1wb3J0IExvY2FsaXplciBmcm9tICcuLi9Mb2NhbGl6ZXInXG5pbXBvcnQgeyBMb2NhbGl6ZXJMYWJlbCB9IGZyb20gJy4uL0xvY2FsaXplci9Mb2NhbGl6ZXJMYWJlbCdcbmltcG9ydCB7IE5hdlRvZ2dsZXIgfSBmcm9tICcuLi9OYXYvTmF2VG9nZ2xlcidcbmltcG9ydCB7IHVzZU5hdiB9IGZyb20gJy4uL05hdi9jb250ZXh0J1xuaW1wb3J0IFN0ZXBOYXYgZnJvbSAnLi4vU3RlcE5hdidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnYXBwLWhlYWRlcidcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlcjogUmVhY3QuRkMgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG5cbiAgY29uc3Qge1xuICAgIGxvY2FsaXphdGlvbixcbiAgICByb3V0ZXM6IHsgYWRtaW46IGFkbWluUm91dGUgfSxcbiAgfSA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgeyBuYXZPcGVuIH0gPSB1c2VOYXYoKVxuXG4gIHJldHVybiAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9e1tiYXNlQ2xhc3MsIG5hdk9wZW4gJiYgYCR7YmFzZUNsYXNzfS0tbmF2LW9wZW5gXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19iZ2B9IC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY29udGVudGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcHBlcmB9PlxuICAgICAgICAgIDxOYXZUb2dnbGVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbW9iaWxlLW5hdi10b2dnbGVyYH0+XG4gICAgICAgICAgICA8SGFtYnVyZ2VyIC8+XG4gICAgICAgICAgPC9OYXZUb2dnbGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb250cm9scy13cmFwcGVyYH0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc3RlcC1uYXYtd3JhcHBlcmB9PlxuICAgICAgICAgICAgICA8U3RlcE5hdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3N0ZXAtbmF2YH0gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRyb2xzYH0+XG4gICAgICAgICAgICAgIHtsb2NhbGl6YXRpb24gJiYgKFxuICAgICAgICAgICAgICAgIDxMb2NhbGl6ZXJMYWJlbFxuICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiaW52aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbG9jYWxpemVyLXNwYWNpbmdgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnYXV0aGVudGljYXRpb246YWNjb3VudCcpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWNjb3VudGB9XG4gICAgICAgICAgICAgICAgdG89e2Ake2FkbWluUm91dGV9L2FjY291bnRgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEFjY291bnQgLz5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TG9jYWxpemVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbG9jYWxpemVyYH0gLz5cbiAgICA8L2hlYWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkFwcEhlYWRlciIsImJhc2VDbGFzcyIsInByb3BzIiwidCIsInVzZVRyYW5zbGF0aW9uIiwibG9jYWxpemF0aW9uIiwicm91dGVzIiwiYWRtaW4iLCJhZG1pblJvdXRlIiwidXNlQ29uZmlnIiwibmF2T3BlbiIsInVzZU5hdiIsImhlYWRlciIsImNsYXNzTmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZGl2IiwiTmF2VG9nZ2xlciIsIkhhbWJ1cmdlciIsIlN0ZXBOYXYiLCJMb2NhbGl6ZXJMYWJlbCIsImFyaWFMYWJlbCIsIkxpbmsiLCJhcmlhLWxhYmVsIiwidG8iLCJBY2NvdW50IiwiTG9jYWxpemVyIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdCYUE7OztlQUFBQTs7OzhEQWhCSzs4QkFDYTtnQ0FDVjtnRUFFRDt3QkFDTTsyQkFDQTtrRUFDSjtnQ0FDUzs0QkFDSjt5QkFDSjtnRUFDSDtRQUNiOzs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRVgsTUFBTUQsWUFBc0IsQ0FBQ0U7SUFDbEMsTUFBTSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWM7SUFFNUIsTUFBTSxFQUNKQyxZQUFZLEVBQ1pDLFFBQVEsRUFBRUMsT0FBT0MsVUFBVSxFQUFFLEVBQzlCLEdBQUdDLElBQUFBLGlCQUFTO0lBRWIsTUFBTSxFQUFFQyxPQUFPLEVBQUUsR0FBR0MsSUFBQUEsZUFBTTtJQUUxQixxQkFDRSw2QkFBQ0M7UUFBT0MsV0FBVztZQUFDWjtZQUFXUyxXQUFXLENBQUMsRUFBRVQsVUFBVSxVQUFVLENBQUM7U0FBQyxDQUFDYSxNQUFNLENBQUNDLFNBQVNDLElBQUksQ0FBQztxQkFDdkYsNkJBQUNDO1FBQUlKLFdBQVcsQ0FBQyxFQUFFWixVQUFVLElBQUksQ0FBQztzQkFDbEMsNkJBQUNnQjtRQUFJSixXQUFXLENBQUMsRUFBRVosVUFBVSxTQUFTLENBQUM7cUJBQ3JDLDZCQUFDZ0I7UUFBSUosV0FBVyxDQUFDLEVBQUVaLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ2lCLHNCQUFVO1FBQUNMLFdBQVcsQ0FBQyxFQUFFWixVQUFVLG9CQUFvQixDQUFDO3FCQUN2RCw2QkFBQ2tCLG9CQUFTLHdCQUVaLDZCQUFDRjtRQUFJSixXQUFXLENBQUMsRUFBRVosVUFBVSxrQkFBa0IsQ0FBQztxQkFDOUMsNkJBQUNnQjtRQUFJSixXQUFXLENBQUMsRUFBRVosVUFBVSxrQkFBa0IsQ0FBQztxQkFDOUMsNkJBQUNtQixnQkFBTztRQUFDUCxXQUFXLENBQUMsRUFBRVosVUFBVSxVQUFVLENBQUM7dUJBRTlDLDZCQUFDZ0I7UUFBSUosV0FBVyxDQUFDLEVBQUVaLFVBQVUsVUFBVSxDQUFDO09BQ3JDSSw4QkFDQyw2QkFBQ2dCLDhCQUFjO1FBQ2JDLFdBQVU7UUFDVlQsV0FBVyxDQUFDLEVBQUVaLFVBQVUsbUJBQW1CLENBQUM7c0JBR2hELDZCQUFDc0Isb0JBQUk7UUFDSEMsY0FBWXJCLEVBQUU7UUFDZFUsV0FBVyxDQUFDLEVBQUVaLFVBQVUsU0FBUyxDQUFDO1FBQ2xDd0IsSUFBSSxDQUFDLEVBQUVqQixXQUFXLFFBQVEsQ0FBQztxQkFFM0IsNkJBQUNrQixnQkFBTyw0QkFNbEIsNkJBQUNDLGtCQUFTO1FBQUNkLFdBQVcsQ0FBQyxFQUFFWixVQUFVLFdBQVcsQ0FBQzs7QUFHckQifQ==
@@ -92,6 +92,12 @@
92
92
  right: base(2);
93
93
  }
94
94
 
95
+ &--nav-open {
96
+ .app-header__localizer {
97
+ display: none;
98
+ }
99
+ }
100
+
95
101
  &__mobile-nav-toggler {
96
102
  display: flex;
97
103
  align-items: center;
@@ -6,11 +6,5 @@
6
6
  padding: 0;
7
7
  margin: 0;
8
8
  border: 0;
9
- height: var(--app-header-height);
10
- width: var(--gutter-h);
11
9
  cursor: pointer;
12
-
13
- @include small-break {
14
- width: calc(var(--gutter-h) * 2);
15
- }
16
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Nav/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAKhD,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,UAAU,+BAIrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAAqC,CAAA;AAExD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA8EA,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Nav/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAKhD,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,UAAU,+BAIrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAAqC,CAAA;AAYxD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA0EA,CAAA"}
@@ -69,8 +69,17 @@ const NavContext = /*#__PURE__*/ _react.default.createContext({
69
69
  setNavOpen: ()=>{}
70
70
  });
71
71
  const useNav = ()=>_react.default.useContext(NavContext);
72
+ const getNavPreference = async (getPreference)=>{
73
+ const navPrefs = await getPreference('nav');
74
+ const preferredState = navPrefs?.open;
75
+ if (typeof preferredState === 'boolean') {
76
+ return preferredState;
77
+ } else {
78
+ return true;
79
+ }
80
+ };
72
81
  const NavProvider = ({ children })=>{
73
- const { breakpoints: { l: largeBreak } } = (0, _windowinfo.useWindowInfo)();
82
+ const { breakpoints: { l: largeBreak, m: midBreak, s: smallBreak } } = (0, _windowinfo.useWindowInfo)();
74
83
  const { getPreference } = (0, _Preferences.usePreferences)();
75
84
  const history = (0, _reactrouterdom.useHistory)();
76
85
  const navRef = (0, _react.useRef)(null);
@@ -83,15 +92,11 @@ const NavProvider = ({ children })=>{
83
92
  (0, _react.useEffect)(()=>{
84
93
  if (largeBreak === false) {
85
94
  const setNavFromPreferences = async ()=>{
86
- const navPrefs = await getPreference('nav');
87
- const preferredState = navPrefs?.open;
88
- if (typeof preferredState === 'boolean') {
89
- setNavOpen(preferredState);
90
- } else {
91
- setNavOpen(true);
92
- }
95
+ const preferredState = await getNavPreference(getPreference);
96
+ setNavOpen(preferredState);
93
97
  };
94
- setNavFromPreferences();
98
+ setNavFromPreferences() // eslint-disable-line @typescript-eslint/no-floating-promises
99
+ ;
95
100
  }
96
101
  }, [
97
102
  largeBreak,
@@ -102,7 +107,7 @@ const NavProvider = ({ children })=>{
102
107
  // close the nav when the user navigates away
103
108
  (0, _react.useEffect)(()=>{
104
109
  let unlisten;
105
- if (largeBreak) {
110
+ if (midBreak) {
106
111
  unlisten = history.listen(()=>{
107
112
  setNavOpen(false);
108
113
  });
@@ -113,22 +118,13 @@ const NavProvider = ({ children })=>{
113
118
  }, [
114
119
  history,
115
120
  setNavOpen,
116
- largeBreak
117
- ]);
118
- // on smaller screens where the nav is a modal
119
- // close the nav when the user resizes down to a smaller screen
120
- (0, _react.useEffect)(()=>{
121
- if (largeBreak) {
122
- setNavOpen(false);
123
- }
124
- }, [
125
- largeBreak
121
+ midBreak
126
122
  ]);
127
123
  // on open and close, lock the body scroll
128
124
  // do not do this on desktop, the sidebar is not a modal
129
125
  (0, _react.useEffect)(()=>{
130
126
  if (navRef.current) {
131
- if (navOpen && largeBreak) {
127
+ if (navOpen && midBreak) {
132
128
  (0, _bodyscrolllock.disableBodyScroll)(navRef.current);
133
129
  } else {
134
130
  (0, _bodyscrolllock.enableBodyScroll)(navRef.current);
@@ -136,7 +132,19 @@ const NavProvider = ({ children })=>{
136
132
  }
137
133
  }, [
138
134
  navOpen,
139
- largeBreak
135
+ midBreak
136
+ ]);
137
+ // on smaller screens where the nav is a modal
138
+ // close the nav when the user resizes down to mobile
139
+ // the sidebar is a modal on mobile
140
+ (0, _react.useEffect)(()=>{
141
+ if (largeBreak === false || midBreak === false || smallBreak === false) {
142
+ setNavOpen(false);
143
+ }
144
+ }, [
145
+ largeBreak,
146
+ midBreak,
147
+ smallBreak
140
148
  ]);
141
149
  // when the component unmounts, clear all body scroll locks
142
150
  (0, _react.useEffect)(()=>{
@@ -153,4 +161,4 @@ const NavProvider = ({ children })=>{
153
161
  }, children);
154
162
  };
155
163
 
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL05hdi9jb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VXaW5kb3dJbmZvIH0gZnJvbSAnQGZhY2VsZXNzLXVpL3dpbmRvdy1pbmZvJ1xuaW1wb3J0IHsgY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MsIGRpc2FibGVCb2R5U2Nyb2xsLCBlbmFibGVCb2R5U2Nyb2xsIH0gZnJvbSAnYm9keS1zY3JvbGwtbG9jaydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCB7IHVzZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1ByZWZlcmVuY2VzJ1xuXG50eXBlIE5hdkNvbnRleHRUeXBlID0ge1xuICBuYXZPcGVuOiBib29sZWFuXG4gIG5hdlJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxuICBzZXROYXZPcGVuOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IE5hdkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5hdkNvbnRleHRUeXBlPih7XG4gIG5hdk9wZW46IHRydWUsXG4gIG5hdlJlZjogbnVsbCxcbiAgc2V0TmF2T3BlbjogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgY29uc3QgdXNlTmF2ID0gKCkgPT4gUmVhY3QudXNlQ29udGV4dChOYXZDb250ZXh0KVxuXG5leHBvcnQgY29uc3QgTmF2UHJvdmlkZXI6IFJlYWN0LkZDPHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBicmVha3BvaW50czogeyBsOiBsYXJnZUJyZWFrIH0sXG4gIH0gPSB1c2VXaW5kb3dJbmZvKClcblxuICBjb25zdCB7IGdldFByZWZlcmVuY2UgfSA9IHVzZVByZWZlcmVuY2VzKClcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKVxuICBjb25zdCBuYXZSZWYgPSB1c2VSZWYobnVsbClcblxuICAvLyBpbml0aWFsaXplIHRoZSBuYXYgdG8gYmUgY2xvc2VkXG4gIC8vIHRoaXMgaXMgYmVjYXVzZSBnZXR0aW5nIHRoZSBwcmVmZXJlbmNlIGlzIGFzeW5jXG4gIC8vIHNvIGluc3RlYWQgb2YgY2xvc2luZyBpdCBhZnRlciB0aGUgcHJlZmVyZW5jZSBpcyBsb2FkZWRcbiAgLy8gd2Ugd2lsbCBvcGVuIGl0IGFmdGVyIHRoZSBwcmVmZXJlbmNlIGlzIGxvYWRlZFxuICBjb25zdCBbbmF2T3Blbiwgc2V0TmF2T3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSlcblxuICAvLyBvbiBsb2FkIGNoZWNrIHRoZSB1c2VyJ3MgcHJlZmVyZW5jZSBhbmQgc2V0IFwiaW5pdGlhbFwiIHN0YXRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhcmdlQnJlYWsgPT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBzZXROYXZGcm9tUHJlZmVyZW5jZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hdlByZWZzID0gYXdhaXQgZ2V0UHJlZmVyZW5jZSgnbmF2JylcbiAgICAgICAgY29uc3QgcHJlZmVycmVkU3RhdGUgPSBuYXZQcmVmcz8ub3BlblxuICAgICAgICBpZiAodHlwZW9mIHByZWZlcnJlZFN0YXRlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICBzZXROYXZPcGVuKHByZWZlcnJlZFN0YXRlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldE5hdk9wZW4odHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZXROYXZGcm9tUHJlZmVyZW5jZXMoKVxuICAgIH1cbiAgfSwgW2xhcmdlQnJlYWssIGdldFByZWZlcmVuY2UsIHNldE5hdk9wZW5dKVxuXG4gIC8vIG9uIHNtYWxsZXIgc2NyZWVucyB3aGVyZSB0aGUgbmF2IGlzIGEgbW9kYWxcbiAgLy8gY2xvc2UgdGhlIG5hdiB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyBhd2F5XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHVubGlzdGVuOiAoKSA9PiB2b2lkXG5cbiAgICBpZiAobGFyZ2VCcmVhaykge1xuICAgICAgdW5saXN0ZW4gPSBoaXN0b3J5Lmxpc3RlbigoKSA9PiB7XG4gICAgICAgIHNldE5hdk9wZW4oZmFsc2UpXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodW5saXN0ZW4pIHtcbiAgICAgIHVubGlzdGVuKClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4gdW5saXN0ZW4gJiYgdW5saXN0ZW4oKVxuICB9LCBbaGlzdG9yeSwgc2V0TmF2T3BlbiwgbGFyZ2VCcmVha10pXG5cbiAgLy8gb24gc21hbGxlciBzY3JlZW5zIHdoZXJlIHRoZSBuYXYgaXMgYSBtb2RhbFxuICAvLyBjbG9zZSB0aGUgbmF2IHdoZW4gdGhlIHVzZXIgcmVzaXplcyBkb3duIHRvIGEgc21hbGxlciBzY3JlZW5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGFyZ2VCcmVhaykge1xuICAgICAgc2V0TmF2T3BlbihmYWxzZSlcbiAgICB9XG4gIH0sIFtsYXJnZUJyZWFrXSlcblxuICAvLyBvbiBvcGVuIGFuZCBjbG9zZSwgbG9jayB0aGUgYm9keSBzY3JvbGxcbiAgLy8gZG8gbm90IGRvIHRoaXMgb24gZGVza3RvcCwgdGhlIHNpZGViYXIgaXMgbm90IGEgbW9kYWxcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobmF2UmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChuYXZPcGVuICYmIGxhcmdlQnJlYWspIHtcbiAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwobmF2UmVmLmN1cnJlbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmFibGVCb2R5U2Nyb2xsKG5hdlJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW25hdk9wZW4sIGxhcmdlQnJlYWtdKVxuXG4gIC8vIHdoZW4gdGhlIGNvbXBvbmVudCB1bm1vdW50cywgY2xlYXIgYWxsIGJvZHkgc2Nyb2xsIGxvY2tzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyQWxsQm9keVNjcm9sbExvY2tzKClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHJldHVybiAoXG4gICAgPE5hdkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3sgbmF2T3BlbiwgbmF2UmVmLCBzZXROYXZPcGVuIH19PntjaGlsZHJlbn08L05hdkNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJOYXZDb250ZXh0IiwidXNlTmF2IiwiTmF2UHJvdmlkZXIiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJuYXZPcGVuIiwibmF2UmVmIiwic2V0TmF2T3BlbiIsInVzZUNvbnRleHQiLCJjaGlsZHJlbiIsImJyZWFrcG9pbnRzIiwibCIsImxhcmdlQnJlYWsiLCJ1c2VXaW5kb3dJbmZvIiwiZ2V0UHJlZmVyZW5jZSIsInVzZVByZWZlcmVuY2VzIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInNldE5hdkZyb21QcmVmZXJlbmNlcyIsIm5hdlByZWZzIiwicHJlZmVycmVkU3RhdGUiLCJvcGVuIiwidW5saXN0ZW4iLCJsaXN0ZW4iLCJjdXJyZW50IiwiZGlzYWJsZUJvZHlTY3JvbGwiLCJlbmFibGVCb2R5U2Nyb2xsIiwiY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MiLCJQcm92aWRlciIsInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQWFhQSxVQUFVO2VBQVZBOztJQU1BQyxNQUFNO2VBQU5BOztJQUVBQyxXQUFXO2VBQVhBOzs7NEJBckJpQjtnQ0FDK0M7K0RBQ3BDO2dDQUNkOzZCQUVJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXhCLE1BQU1GLDJCQUFhRyxjQUFLLENBQUNDLGFBQWEsQ0FBaUI7SUFDNURDLFNBQVM7SUFDVEMsUUFBUTtJQUNSQyxZQUFZLEtBQU87QUFDckI7QUFFTyxNQUFNTixTQUFTLElBQU1FLGNBQUssQ0FBQ0ssVUFBVSxDQUFDUjtBQUV0QyxNQUFNRSxjQUVSLENBQUMsRUFBRU8sUUFBUSxFQUFFO0lBQ2hCLE1BQU0sRUFDSkMsYUFBYSxFQUFFQyxHQUFHQyxVQUFVLEVBQUUsRUFDL0IsR0FBR0MsSUFBQUEseUJBQWE7SUFFakIsTUFBTSxFQUFFQyxhQUFhLEVBQUUsR0FBR0MsSUFBQUEsMkJBQWM7SUFDeEMsTUFBTUMsVUFBVUMsSUFBQUEsMEJBQVU7SUFDMUIsTUFBTVgsU0FBU1ksSUFBQUEsYUFBTSxFQUFDO0lBRXRCLGtDQUFrQztJQUNsQyxrREFBa0Q7SUFDbEQsMERBQTBEO0lBQzFELGlEQUFpRDtJQUNqRCxNQUFNLENBQUNiLFNBQVNFLFdBQVcsR0FBR0osY0FBSyxDQUFDZ0IsUUFBUSxDQUFDO0lBRTdDLDhEQUE4RDtJQUM5REMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLElBQUlSLGVBQWUsT0FBTztZQUN4QixNQUFNUyx3QkFBd0I7Z0JBQzVCLE1BQU1DLFdBQVcsTUFBTVIsY0FBYztnQkFDckMsTUFBTVMsaUJBQWlCRCxVQUFVRTtnQkFDakMsSUFBSSxPQUFPRCxtQkFBbUIsV0FBVztvQkFDdkNoQixXQUFXZ0I7Z0JBQ2IsT0FBTztvQkFDTGhCLFdBQVc7Z0JBQ2I7WUFDRjtZQUVBYztRQUNGO0lBQ0YsR0FBRztRQUFDVDtRQUFZRTtRQUFlUDtLQUFXO0lBRTFDLDhDQUE4QztJQUM5Qyw2Q0FBNkM7SUFDN0NhLElBQUFBLGdCQUFTLEVBQUM7UUFDUixJQUFJSztRQUVKLElBQUliLFlBQVk7WUFDZGEsV0FBV1QsUUFBUVUsTUFBTSxDQUFDO2dCQUN4Qm5CLFdBQVc7WUFDYjtRQUNGLE9BQU8sSUFBSWtCLFVBQVU7WUFDbkJBO1FBQ0Y7UUFFQSxPQUFPLElBQU1BLFlBQVlBO0lBQzNCLEdBQUc7UUFBQ1Q7UUFBU1Q7UUFBWUs7S0FBVztJQUVwQyw4Q0FBOEM7SUFDOUMsK0RBQStEO0lBQy9EUSxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVIsWUFBWTtZQUNkTCxXQUFXO1FBQ2I7SUFDRixHQUFHO1FBQUNLO0tBQVc7SUFFZiwwQ0FBMEM7SUFDMUMsd0RBQXdEO0lBQ3hEUSxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSWQsT0FBT3FCLE9BQU8sRUFBRTtZQUNsQixJQUFJdEIsV0FBV08sWUFBWTtnQkFDekJnQixJQUFBQSxpQ0FBaUIsRUFBQ3RCLE9BQU9xQixPQUFPO1lBQ2xDLE9BQU87Z0JBQ0xFLElBQUFBLGdDQUFnQixFQUFDdkIsT0FBT3FCLE9BQU87WUFDakM7UUFDRjtJQUNGLEdBQUc7UUFBQ3RCO1FBQVNPO0tBQVc7SUFFeEIsMkRBQTJEO0lBQzNEUSxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsT0FBTztZQUNMVSxJQUFBQSx1Q0FBdUI7UUFDekI7SUFDRixHQUFHLEVBQUU7SUFFTCxxQkFDRSw2QkFBQzlCLFdBQVcrQixRQUFRO1FBQUNDLE9BQU87WUFBRTNCO1lBQVNDO1lBQVFDO1FBQVc7T0FBSUU7QUFFbEUifQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL05hdi9jb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VXaW5kb3dJbmZvIH0gZnJvbSAnQGZhY2VsZXNzLXVpL3dpbmRvdy1pbmZvJ1xuaW1wb3J0IHsgY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MsIGRpc2FibGVCb2R5U2Nyb2xsLCBlbmFibGVCb2R5U2Nyb2xsIH0gZnJvbSAnYm9keS1zY3JvbGwtbG9jaydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCB7IHVzZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1ByZWZlcmVuY2VzJ1xuXG50eXBlIE5hdkNvbnRleHRUeXBlID0ge1xuICBuYXZPcGVuOiBib29sZWFuXG4gIG5hdlJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxuICBzZXROYXZPcGVuOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IE5hdkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5hdkNvbnRleHRUeXBlPih7XG4gIG5hdk9wZW46IHRydWUsXG4gIG5hdlJlZjogbnVsbCxcbiAgc2V0TmF2T3BlbjogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgY29uc3QgdXNlTmF2ID0gKCkgPT4gUmVhY3QudXNlQ29udGV4dChOYXZDb250ZXh0KVxuXG5jb25zdCBnZXROYXZQcmVmZXJlbmNlID0gYXN5bmMgKGdldFByZWZlcmVuY2UpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgbmF2UHJlZnMgPSBhd2FpdCBnZXRQcmVmZXJlbmNlKCduYXYnKVxuICBjb25zdCBwcmVmZXJyZWRTdGF0ZSA9IG5hdlByZWZzPy5vcGVuXG4gIGlmICh0eXBlb2YgcHJlZmVycmVkU3RhdGUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBwcmVmZXJyZWRTdGF0ZVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5hdlByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCB7XG4gICAgYnJlYWtwb2ludHM6IHsgbDogbGFyZ2VCcmVhaywgbTogbWlkQnJlYWssIHM6IHNtYWxsQnJlYWsgfSxcbiAgfSA9IHVzZVdpbmRvd0luZm8oKVxuXG4gIGNvbnN0IHsgZ2V0UHJlZmVyZW5jZSB9ID0gdXNlUHJlZmVyZW5jZXMoKVxuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IG5hdlJlZiA9IHVzZVJlZihudWxsKVxuXG4gIC8vIGluaXRpYWxpemUgdGhlIG5hdiB0byBiZSBjbG9zZWRcbiAgLy8gdGhpcyBpcyBiZWNhdXNlIGdldHRpbmcgdGhlIHByZWZlcmVuY2UgaXMgYXN5bmNcbiAgLy8gc28gaW5zdGVhZCBvZiBjbG9zaW5nIGl0IGFmdGVyIHRoZSBwcmVmZXJlbmNlIGlzIGxvYWRlZFxuICAvLyB3ZSB3aWxsIG9wZW4gaXQgYWZ0ZXIgdGhlIHByZWZlcmVuY2UgaXMgbG9hZGVkXG4gIGNvbnN0IFtuYXZPcGVuLCBzZXROYXZPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuXG4gIC8vIG9uIGxvYWQgY2hlY2sgdGhlIHVzZXIncyBwcmVmZXJlbmNlIGFuZCBzZXQgXCJpbml0aWFsXCIgc3RhdGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGFyZ2VCcmVhayA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHNldE5hdkZyb21QcmVmZXJlbmNlcyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlZmVycmVkU3RhdGUgPSBhd2FpdCBnZXROYXZQcmVmZXJlbmNlKGdldFByZWZlcmVuY2UpXG4gICAgICAgIHNldE5hdk9wZW4ocHJlZmVycmVkU3RhdGUpXG4gICAgICB9XG5cbiAgICAgIHNldE5hdkZyb21QcmVmZXJlbmNlcygpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgfVxuICB9LCBbbGFyZ2VCcmVhaywgZ2V0UHJlZmVyZW5jZSwgc2V0TmF2T3Blbl0pXG5cbiAgLy8gb24gc21hbGxlciBzY3JlZW5zIHdoZXJlIHRoZSBuYXYgaXMgYSBtb2RhbFxuICAvLyBjbG9zZSB0aGUgbmF2IHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIGF3YXlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgdW5saXN0ZW46ICgpID0+IHZvaWRcblxuICAgIGlmIChtaWRCcmVhaykge1xuICAgICAgdW5saXN0ZW4gPSBoaXN0b3J5Lmxpc3RlbigoKSA9PiB7XG4gICAgICAgIHNldE5hdk9wZW4oZmFsc2UpXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodW5saXN0ZW4pIHtcbiAgICAgIHVubGlzdGVuKClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4gdW5saXN0ZW4gJiYgdW5saXN0ZW4oKVxuICB9LCBbaGlzdG9yeSwgc2V0TmF2T3BlbiwgbWlkQnJlYWtdKVxuXG4gIC8vIG9uIG9wZW4gYW5kIGNsb3NlLCBsb2NrIHRoZSBib2R5IHNjcm9sbFxuICAvLyBkbyBub3QgZG8gdGhpcyBvbiBkZXNrdG9wLCB0aGUgc2lkZWJhciBpcyBub3QgYSBtb2RhbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChuYXZSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG5hdk9wZW4gJiYgbWlkQnJlYWspIHtcbiAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwobmF2UmVmLmN1cnJlbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmFibGVCb2R5U2Nyb2xsKG5hdlJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW25hdk9wZW4sIG1pZEJyZWFrXSlcblxuICAvLyBvbiBzbWFsbGVyIHNjcmVlbnMgd2hlcmUgdGhlIG5hdiBpcyBhIG1vZGFsXG4gIC8vIGNsb3NlIHRoZSBuYXYgd2hlbiB0aGUgdXNlciByZXNpemVzIGRvd24gdG8gbW9iaWxlXG4gIC8vIHRoZSBzaWRlYmFyIGlzIGEgbW9kYWwgb24gbW9iaWxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhcmdlQnJlYWsgPT09IGZhbHNlIHx8IG1pZEJyZWFrID09PSBmYWxzZSB8fCBzbWFsbEJyZWFrID09PSBmYWxzZSkge1xuICAgICAgc2V0TmF2T3BlbihmYWxzZSlcbiAgICB9XG4gIH0sIFtsYXJnZUJyZWFrLCBtaWRCcmVhaywgc21hbGxCcmVha10pXG5cbiAgLy8gd2hlbiB0aGUgY29tcG9uZW50IHVubW91bnRzLCBjbGVhciBhbGwgYm9keSBzY3JvbGwgbG9ja3NcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIChcbiAgICA8TmF2Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyBuYXZPcGVuLCBuYXZSZWYsIHNldE5hdk9wZW4gfX0+e2NoaWxkcmVufTwvTmF2Q29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIk5hdkNvbnRleHQiLCJ1c2VOYXYiLCJOYXZQcm92aWRlciIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsIm5hdk9wZW4iLCJuYXZSZWYiLCJzZXROYXZPcGVuIiwidXNlQ29udGV4dCIsImdldE5hdlByZWZlcmVuY2UiLCJnZXRQcmVmZXJlbmNlIiwibmF2UHJlZnMiLCJwcmVmZXJyZWRTdGF0ZSIsIm9wZW4iLCJjaGlsZHJlbiIsImJyZWFrcG9pbnRzIiwibCIsImxhcmdlQnJlYWsiLCJtIiwibWlkQnJlYWsiLCJzIiwic21hbGxCcmVhayIsInVzZVdpbmRvd0luZm8iLCJ1c2VQcmVmZXJlbmNlcyIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJzZXROYXZGcm9tUHJlZmVyZW5jZXMiLCJ1bmxpc3RlbiIsImxpc3RlbiIsImN1cnJlbnQiLCJkaXNhYmxlQm9keVNjcm9sbCIsImVuYWJsZUJvZHlTY3JvbGwiLCJjbGVhckFsbEJvZHlTY3JvbGxMb2NrcyIsIlByb3ZpZGVyIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBYWFBLFVBQVU7ZUFBVkE7O0lBTUFDLE1BQU07ZUFBTkE7O0lBWUFDLFdBQVc7ZUFBWEE7Ozs0QkEvQmlCO2dDQUMrQzsrREFDcEM7Z0NBQ2Q7NkJBRUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFReEIsTUFBTUYsMkJBQWFHLGNBQUssQ0FBQ0MsYUFBYSxDQUFpQjtJQUM1REMsU0FBUztJQUNUQyxRQUFRO0lBQ1JDLFlBQVksS0FBTztBQUNyQjtBQUVPLE1BQU1OLFNBQVMsSUFBTUUsY0FBSyxDQUFDSyxVQUFVLENBQUNSO0FBRTdDLE1BQU1TLG1CQUFtQixPQUFPQztJQUM5QixNQUFNQyxXQUFXLE1BQU1ELGNBQWM7SUFDckMsTUFBTUUsaUJBQWlCRCxVQUFVRTtJQUNqQyxJQUFJLE9BQU9ELG1CQUFtQixXQUFXO1FBQ3ZDLE9BQU9BO0lBQ1QsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sTUFBTVYsY0FFUixDQUFDLEVBQUVZLFFBQVEsRUFBRTtJQUNoQixNQUFNLEVBQ0pDLGFBQWEsRUFBRUMsR0FBR0MsVUFBVSxFQUFFQyxHQUFHQyxRQUFRLEVBQUVDLEdBQUdDLFVBQVUsRUFBRSxFQUMzRCxHQUFHQyxJQUFBQSx5QkFBYTtJQUVqQixNQUFNLEVBQUVaLGFBQWEsRUFBRSxHQUFHYSxJQUFBQSwyQkFBYztJQUN4QyxNQUFNQyxVQUFVQyxJQUFBQSwwQkFBVTtJQUMxQixNQUFNbkIsU0FBU29CLElBQUFBLGFBQU0sRUFBQztJQUV0QixrQ0FBa0M7SUFDbEMsa0RBQWtEO0lBQ2xELDBEQUEwRDtJQUMxRCxpREFBaUQ7SUFDakQsTUFBTSxDQUFDckIsU0FBU0UsV0FBVyxHQUFHSixjQUFLLENBQUN3QixRQUFRLENBQUM7SUFFN0MsOERBQThEO0lBQzlEQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVgsZUFBZSxPQUFPO1lBQ3hCLE1BQU1ZLHdCQUF3QjtnQkFDNUIsTUFBTWpCLGlCQUFpQixNQUFNSCxpQkFBaUJDO2dCQUM5Q0gsV0FBV0s7WUFDYjtZQUVBaUIsd0JBQXdCLDhEQUE4RDs7UUFDeEY7SUFDRixHQUFHO1FBQUNaO1FBQVlQO1FBQWVIO0tBQVc7SUFFMUMsOENBQThDO0lBQzlDLDZDQUE2QztJQUM3Q3FCLElBQUFBLGdCQUFTLEVBQUM7UUFDUixJQUFJRTtRQUVKLElBQUlYLFVBQVU7WUFDWlcsV0FBV04sUUFBUU8sTUFBTSxDQUFDO2dCQUN4QnhCLFdBQVc7WUFDYjtRQUNGLE9BQU8sSUFBSXVCLFVBQVU7WUFDbkJBO1FBQ0Y7UUFFQSxPQUFPLElBQU1BLFlBQVlBO0lBQzNCLEdBQUc7UUFBQ047UUFBU2pCO1FBQVlZO0tBQVM7SUFFbEMsMENBQTBDO0lBQzFDLHdEQUF3RDtJQUN4RFMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLElBQUl0QixPQUFPMEIsT0FBTyxFQUFFO1lBQ2xCLElBQUkzQixXQUFXYyxVQUFVO2dCQUN2QmMsSUFBQUEsaUNBQWlCLEVBQUMzQixPQUFPMEIsT0FBTztZQUNsQyxPQUFPO2dCQUNMRSxJQUFBQSxnQ0FBZ0IsRUFBQzVCLE9BQU8wQixPQUFPO1lBQ2pDO1FBQ0Y7SUFDRixHQUFHO1FBQUMzQjtRQUFTYztLQUFTO0lBRXRCLDhDQUE4QztJQUM5QyxxREFBcUQ7SUFDckQsbUNBQW1DO0lBQ25DUyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVgsZUFBZSxTQUFTRSxhQUFhLFNBQVNFLGVBQWUsT0FBTztZQUN0RWQsV0FBVztRQUNiO0lBQ0YsR0FBRztRQUFDVTtRQUFZRTtRQUFVRTtLQUFXO0lBRXJDLDJEQUEyRDtJQUMzRE8sSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU87WUFDTE8sSUFBQUEsdUNBQXVCO1FBQ3pCO0lBQ0YsR0FBRyxFQUFFO0lBRUwscUJBQ0UsNkJBQUNuQyxXQUFXb0MsUUFBUTtRQUFDQyxPQUFPO1lBQUVoQztZQUFTQztZQUFRQztRQUFXO09BQUlPO0FBRWxFIn0=
@@ -41,7 +41,7 @@
41
41
  height: 100%;
42
42
  display: flex;
43
43
  flex-direction: column;
44
- padding: var(--app-header-height) base(1.5) base(2) base(1.25);
44
+ padding: var(--app-header-height) base(1) base(2) base(1);
45
45
  overflow-y: auto;
46
46
 
47
47
  // remove the scrollbar here to prevent layout shift as nav groups are toggled
@@ -128,12 +128,7 @@
128
128
 
129
129
  @include mid-break {
130
130
  &__scroll {
131
- padding: var(--app-header-height) base(0.75) base(2) base(0.75);
132
- }
133
-
134
- nav a {
135
- font-size: base(0.875);
136
- line-height: base(1.5);
131
+ padding: var(--app-header-height) base(0.5) base(2);
137
132
  }
138
133
  }
139
134
 
@@ -141,9 +136,12 @@
141
136
  &__scroll {
142
137
  padding: var(--app-header-height) var(--gutter-h) base(2);
143
138
  }
144
- }
145
139
 
146
- @include extra-small-break {
140
+ nav a {
141
+ font-size: base(0.875);
142
+ line-height: base(1.5);
143
+ }
144
+
147
145
  &--nav-open {
148
146
  transition: none;
149
147
  }
@@ -8,7 +8,7 @@ declare const PreviewSizes: React.FC<{
8
8
  doc?: Data & {
9
9
  sizes?: FileSizes;
10
10
  };
11
- updatedAt?: string;
11
+ imageCacheTag?: string;
12
12
  }>;
13
13
  export default PreviewSizes;
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/PreviewSizes/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAU,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGlD,OAAO,cAAc,CAAA;AAkBrB,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,CAAC,EAAE,IAAI,GAAG;QACX,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CA2EA,CAAA;AACD,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/PreviewSizes/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAU,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGlD,OAAO,cAAc,CAAA;AAkBrB,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,CAAC,EAAE,IAAI,GAAG;QACX,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAoEA,CAAA;AACD,eAAe,YAAY,CAAA"}
@@ -66,28 +66,22 @@ const sortSizes = (sizes, imageSizes)=>{
66
66
  });
67
67
  return orderedSizes;
68
68
  };
69
- const PreviewSizes = ({ collection, doc, updatedAt })=>{
69
+ const PreviewSizes = ({ collection, doc, imageCacheTag })=>{
70
70
  const { upload: { imageSizes, staticURL } } = collection;
71
71
  const { sizes } = doc;
72
72
  const [orderedSizes, setOrderedSizes] = (0, _react.useState)(()=>sortSizes(sizes, imageSizes));
73
73
  const [selectedSize, setSelectedSize] = (0, _react.useState)(orderedSizes?.[imageSizes[0]?.name]?.filename ? imageSizes[0]?.name : null);
74
- const [appendUrl, setAppendUrl] = (0, _react.useState)(false);
75
74
  const generateImageUrl = (filename)=>{
76
- const query = appendUrl ? `?${Date.now()}` : '';
77
- return `${staticURL}/${filename}${query}`;
75
+ return `${staticURL}/${filename}${imageCacheTag ? `?${imageCacheTag}` : ''}`;
78
76
  };
79
77
  (0, _react.useEffect)(()=>{
80
78
  setOrderedSizes(sortSizes(sizes, imageSizes));
81
79
  }, [
82
80
  sizes,
83
81
  imageSizes,
84
- updatedAt
85
- ]);
86
- (0, _react.useEffect)(()=>{
87
- setAppendUrl(true);
88
- }, [
89
- updatedAt
82
+ imageCacheTag
90
83
  ]);
84
+ const mainPreviewSrc = generateImageUrl(`${orderedSizes[selectedSize]?.filename}`);
91
85
  return /*#__PURE__*/ _react.default.createElement("div", {
92
86
  className: baseClass
93
87
  }, /*#__PURE__*/ _react.default.createElement("div", {
@@ -102,14 +96,15 @@ const PreviewSizes = ({ collection, doc, updatedAt })=>{
102
96
  })), /*#__PURE__*/ _react.default.createElement("img", {
103
97
  alt: doc.filename,
104
98
  className: `${baseClass}__preview`,
105
- src: generateImageUrl(`${orderedSizes[selectedSize]?.filename}`)
99
+ src: mainPreviewSrc
106
100
  })), /*#__PURE__*/ _react.default.createElement("div", {
107
101
  className: `${baseClass}__listWrap`
108
102
  }, /*#__PURE__*/ _react.default.createElement("div", {
109
103
  className: `${baseClass}__list`
110
104
  }, Object.entries(orderedSizes).map(([key, val])=>{
111
105
  const selected = selectedSize === key;
112
- if (val?.filename) {
106
+ const previewSrc = generateImageUrl(val.filename);
107
+ if (previewSrc) {
113
108
  return /*#__PURE__*/ _react.default.createElement("div", {
114
109
  className: [
115
110
  `${baseClass}__sizeOption`,
@@ -128,7 +123,7 @@ const PreviewSizes = ({ collection, doc, updatedAt })=>{
128
123
  className: `${baseClass}__image`
129
124
  }, /*#__PURE__*/ _react.default.createElement("img", {
130
125
  alt: val.filename,
131
- src: generateImageUrl(val.filename)
126
+ src: previewSrc
132
127
  })), /*#__PURE__*/ _react.default.createElement("div", {
133
128
  className: `${baseClass}__sizeMeta`
134
129
  }, /*#__PURE__*/ _react.default.createElement("div", {
@@ -143,4 +138,4 @@ const PreviewSizes = ({ collection, doc, updatedAt })=>{
143
138
  };
144
139
  const _default = PreviewSizes;
145
140
 
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1ByZXZpZXdTaXplcy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZVNpemVzLCBVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi91cGxvYWRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS90eXBlcydcblxuaW1wb3J0IE1ldGEgZnJvbSAnLi4vRmlsZURldGFpbHMvTWV0YSdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncHJldmlldy1zaXplcydcblxuY29uc3Qgc29ydFNpemVzID0gKHNpemVzOiBGaWxlU2l6ZXMsIGltYWdlU2l6ZXM6IFVwbG9hZFsnaW1hZ2VTaXplcyddKSA9PiB7XG4gIGlmICghaW1hZ2VTaXplcyB8fCBpbWFnZVNpemVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHNpemVzXG5cbiAgY29uc3Qgb3JkZXJlZFNpemVzOiBGaWxlU2l6ZXMgPSB7fVxuXG4gIGltYWdlU2l6ZXMuZm9yRWFjaCgoeyBuYW1lIH0pID0+IHtcbiAgICBpZiAoc2l6ZXNbbmFtZV0pIHtcbiAgICAgIG9yZGVyZWRTaXplc1tuYW1lXSA9IHNpemVzW25hbWVdXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBvcmRlcmVkU2l6ZXNcbn1cblxuY29uc3QgUHJldmlld1NpemVzOiBSZWFjdC5GQzx7XG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZG9jPzogRGF0YSAmIHtcbiAgICBzaXplcz86IEZpbGVTaXplc1xuICB9XG4gIHVwZGF0ZWRBdD86IHN0cmluZ1xufT4gPSAoeyBjb2xsZWN0aW9uLCBkb2MsIHVwZGF0ZWRBdCB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICB1cGxvYWQ6IHsgaW1hZ2VTaXplcywgc3RhdGljVVJMIH0sXG4gIH0gPSBjb2xsZWN0aW9uXG4gIGNvbnN0IHsgc2l6ZXMgfSA9IGRvY1xuXG4gIGNvbnN0IFtvcmRlcmVkU2l6ZXMsIHNldE9yZGVyZWRTaXplc10gPSB1c2VTdGF0ZTxGaWxlU2l6ZXM+KCgpID0+IHNvcnRTaXplcyhzaXplcywgaW1hZ2VTaXplcykpXG4gIGNvbnN0IFtzZWxlY3RlZFNpemUsIHNldFNlbGVjdGVkU2l6ZV0gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihcbiAgICBvcmRlcmVkU2l6ZXM/LltpbWFnZVNpemVzWzBdPy5uYW1lXT8uZmlsZW5hbWUgPyBpbWFnZVNpemVzWzBdPy5uYW1lIDogbnVsbCxcbiAgKVxuICBjb25zdCBbYXBwZW5kVXJsLCBzZXRBcHBlbmRVcmxdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgY29uc3QgZ2VuZXJhdGVJbWFnZVVybCA9IChmaWxlbmFtZSkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gYXBwZW5kVXJsID8gYD8ke0RhdGUubm93KCl9YCA6ICcnXG4gICAgcmV0dXJuIGAke3N0YXRpY1VSTH0vJHtmaWxlbmFtZX0ke3F1ZXJ5fWBcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0T3JkZXJlZFNpemVzKHNvcnRTaXplcyhzaXplcywgaW1hZ2VTaXplcykpXG4gIH0sIFtzaXplcywgaW1hZ2VTaXplcywgdXBkYXRlZEF0XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEFwcGVuZFVybCh0cnVlKVxuICB9LCBbdXBkYXRlZEF0XSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbWV0YWB9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntzZWxlY3RlZFNpemV9PC9kaXY+XG4gICAgICAgICAgPE1ldGEgey4uLihzZWxlY3RlZFNpemUgJiYgb3JkZXJlZFNpemVzW3NlbGVjdGVkU2l6ZV0pfSBzdGF0aWNVUkw9e3N0YXRpY1VSTH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBhbHQ9e2RvYy5maWxlbmFtZX1cbiAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3ByZXZpZXdgfVxuICAgICAgICAgIHNyYz17Z2VuZXJhdGVJbWFnZVVybChgJHtvcmRlcmVkU2l6ZXNbc2VsZWN0ZWRTaXplXT8uZmlsZW5hbWV9YCl9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19saXN0V3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGlzdGB9PlxuICAgICAgICAgIHtPYmplY3QuZW50cmllcyhvcmRlcmVkU2l6ZXMpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFNpemUgPT09IGtleVxuICAgICAgICAgICAgaWYgKHZhbD8uZmlsZW5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1tgJHtiYXNlQ2xhc3N9X19zaXplT3B0aW9uYCwgc2VsZWN0ZWQgJiYgYCR7YmFzZUNsYXNzfS0tc2VsZWN0ZWRgXVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyl9XG4gICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkU2l6ZShrZXkpfVxuICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAxMykge1xuICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkU2l6ZShrZXkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbWFnZWB9PlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD17dmFsLmZpbGVuYW1lfSBzcmM9e2dlbmVyYXRlSW1hZ2VVcmwodmFsLmZpbGVuYW1lKX0gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpemVNZXRhYH0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntrZXl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxNZXRhIHsuLi52YWx9IHN0YXRpY1VSTD17c3RhdGljVVJMfSAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuZXhwb3J0IGRlZmF1bHQgUHJldmlld1NpemVzXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwic29ydFNpemVzIiwic2l6ZXMiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwib3JkZXJlZFNpemVzIiwiZm9yRWFjaCIsIm5hbWUiLCJQcmV2aWV3U2l6ZXMiLCJjb2xsZWN0aW9uIiwiZG9jIiwidXBkYXRlZEF0IiwidXBsb2FkIiwic3RhdGljVVJMIiwic2V0T3JkZXJlZFNpemVzIiwidXNlU3RhdGUiLCJzZWxlY3RlZFNpemUiLCJzZXRTZWxlY3RlZFNpemUiLCJmaWxlbmFtZSIsImFwcGVuZFVybCIsInNldEFwcGVuZFVybCIsImdlbmVyYXRlSW1hZ2VVcmwiLCJxdWVyeSIsIkRhdGUiLCJub3ciLCJ1c2VFZmZlY3QiLCJkaXYiLCJjbGFzc05hbWUiLCJNZXRhIiwiaW1nIiwiYWx0Iiwic3JjIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsImtleSIsInZhbCIsInNlbGVjdGVkIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJvbkNsaWNrIiwib25LZXlEb3duIiwiZSIsImtleUNvZGUiLCJyb2xlIiwidGFiSW5kZXgiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMkdBOzs7ZUFBQTs7OytEQTNHMkM7NkRBTTFCO1FBQ1Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsWUFBWSxDQUFDQyxPQUFrQkM7SUFDbkMsSUFBSSxDQUFDQSxjQUFjQSxXQUFXQyxNQUFNLEtBQUssR0FBRyxPQUFPRjtJQUVuRCxNQUFNRyxlQUEwQixDQUFDO0lBRWpDRixXQUFXRyxPQUFPLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEVBQUU7UUFDMUIsSUFBSUwsS0FBSyxDQUFDSyxLQUFLLEVBQUU7WUFDZkYsWUFBWSxDQUFDRSxLQUFLLEdBQUdMLEtBQUssQ0FBQ0ssS0FBSztRQUNsQztJQUNGO0lBRUEsT0FBT0Y7QUFDVDtBQUVBLE1BQU1HLGVBTUQsQ0FBQyxFQUFFQyxVQUFVLEVB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
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1ByZXZpZXdTaXplcy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZVNpemVzLCBVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi91cGxvYWRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS90eXBlcydcblxuaW1wb3J0IE1ldGEgZnJvbSAnLi4vRmlsZURldGFpbHMvTWV0YSdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncHJldmlldy1zaXplcydcblxuY29uc3Qgc29ydFNpemVzID0gKHNpemVzOiBGaWxlU2l6ZXMsIGltYWdlU2l6ZXM6IFVwbG9hZFsnaW1hZ2VTaXplcyddKSA9PiB7XG4gIGlmICghaW1hZ2VTaXplcyB8fCBpbWFnZVNpemVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHNpemVzXG5cbiAgY29uc3Qgb3JkZXJlZFNpemVzOiBGaWxlU2l6ZXMgPSB7fVxuXG4gIGltYWdlU2l6ZXMuZm9yRWFjaCgoeyBuYW1lIH0pID0+IHtcbiAgICBpZiAoc2l6ZXNbbmFtZV0pIHtcbiAgICAgIG9yZGVyZWRTaXplc1tuYW1lXSA9IHNpemVzW25hbWVdXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBvcmRlcmVkU2l6ZXNcbn1cblxuY29uc3QgUHJldmlld1NpemVzOiBSZWFjdC5GQzx7XG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZG9jPzogRGF0YSAmIHtcbiAgICBzaXplcz86IEZpbGVTaXplc1xuICB9XG4gIGltYWdlQ2FjaGVUYWc/OiBzdHJpbmdcbn0+ID0gKHsgY29sbGVjdGlvbiwgZG9jLCBpbWFnZUNhY2hlVGFnIH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHVwbG9hZDogeyBpbWFnZVNpemVzLCBzdGF0aWNVUkwgfSxcbiAgfSA9IGNvbGxlY3Rpb25cbiAgY29uc3QgeyBzaXplcyB9ID0gZG9jXG5cbiAgY29uc3QgW29yZGVyZWRTaXplcywgc2V0T3JkZXJlZFNpemVzXSA9IHVzZVN0YXRlPEZpbGVTaXplcz4oKCkgPT4gc29ydFNpemVzKHNpemVzLCBpbWFnZVNpemVzKSlcbiAgY29uc3QgW3NlbGVjdGVkU2l6ZSwgc2V0U2VsZWN0ZWRTaXplXSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KFxuICAgIG9yZGVyZWRTaXplcz8uW2ltYWdlU2l6ZXNbMF0/Lm5hbWVdPy5maWxlbmFtZSA/IGltYWdlU2l6ZXNbMF0/Lm5hbWUgOiBudWxsLFxuICApXG5cbiAgY29uc3QgZ2VuZXJhdGVJbWFnZVVybCA9IChmaWxlbmFtZSkgPT4ge1xuICAgIHJldHVybiBgJHtzdGF0aWNVUkx9LyR7ZmlsZW5hbWV9JHtpbWFnZUNhY2hlVGFnID8gYD8ke2ltYWdlQ2FjaGVUYWd9YCA6ICcnfWBcbiAgfVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldE9yZGVyZWRTaXplcyhzb3J0U2l6ZXMoc2l6ZXMsIGltYWdlU2l6ZXMpKVxuICB9LCBbc2l6ZXMsIGltYWdlU2l6ZXMsIGltYWdlQ2FjaGVUYWddKVxuXG4gIGNvbnN0IG1haW5QcmV2aWV3U3JjID0gZ2VuZXJhdGVJbWFnZVVybChgJHtvcmRlcmVkU2l6ZXNbc2VsZWN0ZWRTaXplXT8uZmlsZW5hbWV9YClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbWV0YWB9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntzZWxlY3RlZFNpemV9PC9kaXY+XG4gICAgICAgICAgPE1ldGEgey4uLihzZWxlY3RlZFNpemUgJiYgb3JkZXJlZFNpemVzW3NlbGVjdGVkU2l6ZV0pfSBzdGF0aWNVUkw9e3N0YXRpY1VSTH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbWcgYWx0PXtkb2MuZmlsZW5hbWV9IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcHJldmlld2B9IHNyYz17bWFpblByZXZpZXdTcmN9IC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19saXN0V3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGlzdGB9PlxuICAgICAgICAgIHtPYmplY3QuZW50cmllcyhvcmRlcmVkU2l6ZXMpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFNpemUgPT09IGtleVxuICAgICAgICAgICAgY29uc3QgcHJldmlld1NyYyA9IGdlbmVyYXRlSW1hZ2VVcmwodmFsLmZpbGVuYW1lKVxuXG4gICAgICAgICAgICBpZiAocHJldmlld1NyYykge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17W2Ake2Jhc2VDbGFzc31fX3NpemVPcHRpb25gLCBzZWxlY3RlZCAmJiBgJHtiYXNlQ2xhc3N9LS1zZWxlY3RlZGBdXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRTaXplKGtleSl9XG4gICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT09IDEzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRTaXplKGtleSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlYH0+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PXt2YWwuZmlsZW5hbWV9IHNyYz17cHJldmlld1NyY30gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpemVNZXRhYH0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntrZXl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxNZXRhIHsuLi52YWx9IHN0YXRpY1VSTD17c3RhdGljVVJMfSAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuZXhwb3J0IGRlZmF1bHQgUHJldmlld1NpemVzXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwic29ydFNpemVzIiwic2l6ZXMiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwib3JkZXJlZFNpemVzIiwiZm9yRWFjaCIsIm5hbWUiLCJQcmV2aWV3U2l6ZXMiLCJjb2xsZWN0aW9uIiwiZG9jIiwiaW1hZ2VDYWNoZVRhZyIsInVwbG9hZCIsInN0YXRpY1VSTCIsInNldE9yZGVyZWRTaXplcyIsInVzZVN0YXRlIiwic2VsZWN0ZWRTaXplIiwic2V0U2VsZWN0ZWRTaXplIiwiZmlsZW5hbWUiLCJnZW5lcmF0ZUltYWdlVXJsIiwidXNlRWZmZWN0IiwibWFpblByZXZpZXdTcmMiLCJkaXYiLCJjbGFzc05hbWUiLCJNZXRhIiwiaW1nIiwiYWx0Iiwic3JjIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsImtleSIsInZhbCIsInNlbGVjdGVkIiwicHJldmlld1NyYyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25DbGljayIsIm9uS2V5RG93biIsImUiLCJrZXlDb2RlIiwicm9sZSIsInRhYkluZGV4Il0sIm1hcHBpbmdzIjoiOzs7OytCQW9HQTs7O2VBQUE7OzsrREFwRzJDOzZEQU0xQjtRQUNWOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLFlBQVksQ0FBQ0MsT0FBa0JDO0lBQ25DLElBQUksQ0FBQ0EsY0FBY0EsV0FBV0MsTUFBTSxLQUFLLEdBQUcsT0FBT0Y7SUFFbkQsTUFBTUcsZUFBMEIsQ0FBQztJQUVqQ0YsV0FBV0csT0FBTyxDQUFDLENBQUMsRUFBRUMsSUFBSSxFQUFFO1FBQzFCLElBQUlMLEtBQUssQ0FBQ0ssS0FBSyxFQUFFO1lBQ2ZGLFlBQVksQ0FBQ0UsS0FBSyxHQUFHTCxLQUFLLENBQUNLLEtBQUs7UUFDbEM7SUFDRjtJQUVBLE9BQU9GO0FBQ1Q7QUFFQSxNQUFNRyxlQU1ELENBQUMsRUFBRUMsVUFBVSxFQUFFQyxHQUFHLEVBQUVDLGFBQWEsRUFBRTtJQUN0QyxNQUFNLEVBQ0pDLFFBQVEsRUFBRVQsVUFBVSxFQUFFVSxTQUFTLEVBQUUsRUFDbEMsR0FBR0o7SUFDSixNQUFNLEVBQUVQLEtBQUss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
@@ -14,7 +14,7 @@
14
14
  }
15
15
 
16
16
  &__preview {
17
- max-height: calc(100% - base(4));
17
+ max-height: calc(100% - base(6));
18
18
  padding: base(1.5) base(1.5) base(1.5) var(--gutter-h);
19
19
  object-fit: contain;
20
20
  }