@agilemotion/oui-react-js 2.0.15 → 2.0.17

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 (36) hide show
  1. package/README.TXT +2 -2
  2. package/dist/components/Calender.css +1 -1
  3. package/dist/components/TableCellContent.js +8 -18
  4. package/dist/components/dashboard/FoldingSideTabDashboard.css +1 -1
  5. package/dist/components/dashboard/FoldingSideTabDashboard.js +10 -7
  6. package/dist/components/form/LookupField.js +27 -3
  7. package/dist/components/layout/Layout.js +15 -3
  8. package/dist/components/layout/ViewPort.js +2 -2
  9. package/dist/components/layout/Window.css +4 -1
  10. package/dist/components/layout/Window.js +147 -29
  11. package/dist/components/layout/WindowDialog.js +8 -5
  12. package/dist/components/layout/WindowViewPort.js +8 -2
  13. package/dist/components/media/Chat.js +4 -2
  14. package/dist/components/media/ClosablePanel.js +55 -27
  15. package/dist/components/media/MediaSoupHelper.js +13 -1
  16. package/dist/components/media/SideBarContent.js +22 -8
  17. package/dist/components/media/TrainingRoom.js +32 -5
  18. package/dist/components/media/VCEventType.js +3 -1
  19. package/dist/components/media/VCParticipantList.js +53 -27
  20. package/dist/components/media/VCRoom.css +22 -0
  21. package/dist/components/media/VCRoom.js +34 -15
  22. package/dist/components/media/VCRoomParticipant.css +3 -2
  23. package/dist/components/media/VCRoomParticipant.js +140 -48
  24. package/dist/components/media/VCRoomRecorder.js +117 -40
  25. package/dist/components/media/VCRoomWorkspace.css +0 -1
  26. package/dist/components/media/VCRoomWorkspace.js +158 -23
  27. package/dist/components/media/VCSettings.js +462 -0
  28. package/dist/components/media/VideoPlayer.js +4 -1
  29. package/dist/components/media/audioLevelMeter.js +96 -0
  30. package/dist/components/media/chat/ChatRoom.js +13 -9
  31. package/dist/components/media/chat/ChatRoomItem.js +3 -2
  32. package/dist/components/media/chat/ChatRoomWrapper.js +4 -1
  33. package/dist/components/media/chat/ChatRooms.scss +5 -3
  34. package/dist/hooks/useContainerWidth.js +44 -0
  35. package/dist/view/security/RegisterInteractionPortal.js +101 -3
  36. package/package.json +1 -1
@@ -16,6 +16,10 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
17
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
18
18
  const minimizeWidth = '848';
19
+ // Below this viewport width a 320px pinned window swallows the whole phone
20
+ // screen, so pinning collapses to a small floating pill (unpin icon only).
21
+ const MOBILE_BREAKPOINT = 600;
22
+ const isMobileWidth = () => typeof window !== 'undefined' && window.innerWidth < MOBILE_BREAKPOINT;
19
23
  const PaperComponent = props => {
20
24
  const nodeRef = (0, _react.useRef)(null);
21
25
  const [bounds, setBounds] = (0, _react.useState)({
@@ -62,6 +66,28 @@ const Window = props => {
62
66
  } = props;
63
67
  const [displayState, setDisplayState] = (0, _react.useState)(props.displayState);
64
68
  const [windowTransformValue, setWindowTransformValue] = (0, _react.useState)(null);
69
+ const [isMobile, setIsMobile] = (0, _react.useState)(isMobileWidth());
70
+
71
+ // Track viewport width so a pinned window collapses/expands on rotate/resize.
72
+ (0, _react.useEffect)(() => {
73
+ const onResize = () => setIsMobile(isMobileWidth());
74
+ window.addEventListener('resize', onResize);
75
+ return () => window.removeEventListener('resize', onResize);
76
+ }, []);
77
+
78
+ // Collapsed = pinned on a phone: shrink to a pill, keep everything mounted.
79
+ const collapsed = isMobile && displayState === 'PINNED';
80
+
81
+ // The context subscription below is registered ONCE on mount, so the
82
+ // maximize/minimize/pin closures it calls would otherwise capture mount-time
83
+ // props/state. Mirror the live values into refs so those imperative handlers
84
+ // always read the CURRENT drawer offset + display state. (Without this,
85
+ // pin -> close drawer -> unpin restores the window to the stale open-drawer
86
+ // left offset instead of the collapsed mini-drawer position.)
87
+ const leftOffsetRef = (0, _react.useRef)(props.leftOffset);
88
+ leftOffsetRef.current = props.leftOffset;
89
+ const displayStateRef = (0, _react.useRef)(displayState);
90
+ displayStateRef.current = displayState;
65
91
  (0, _react.useEffect)(() => {
66
92
  if (props.displayState) {
67
93
  setDisplayState(props.displayState);
@@ -102,7 +128,15 @@ const Window = props => {
102
128
  } else {
103
129
  pinView(null);
104
130
  }
105
- }, [displayState]);
131
+ // After the Paper resizes, nudge the content to re-measure. The CDUI
132
+ // view lays out against the available width once and only recomputes on
133
+ // a window resize — so MIN→MAX (or a drawer fold) otherwise leaves it
134
+ // sized to the previous dimensions. rAF lets the new size settle first.
135
+ const raf = requestAnimationFrame(() => window.dispatchEvent(new Event('resize')));
136
+ return () => cancelAnimationFrame(raf);
137
+ // Re-run on leftOffset too so a maximized window re-aligns when the
138
+ // menu drawer folds/expands (drawer width changes → reposition).
139
+ }, [displayState, props.leftOffset]);
106
140
  const getMinimizedStyle = () => {
107
141
  return {
108
142
  transform: 'translate(0, 0)',
@@ -117,13 +151,50 @@ const Window = props => {
117
151
  return {
118
152
  transform: 'translate(0, 0)',
119
153
  backgroundColor: '#FFFFFF',
120
- width: 'calc(100% - ' + props.leftOffset + ' )',
154
+ position: 'absolute',
155
+ // Sit just below the fixed dashboard header (64px) so the window
156
+ // doesn't encroach on it. Declared here because getMaximizedStyle is
157
+ // the authoritative inline style — a render with no `top` would clear
158
+ // any imperatively-set value and fall back to the 40px class.
159
+ top: '64px',
160
+ left: props.leftOffset,
161
+ right: 'unset',
162
+ // Mirror the main ViewPort: start at the drawer width, leave a 12px
163
+ // right gap. Explicit width (not 'unset') so the content always
164
+ // reflows to full size — fixes the MIN→MAX "stuck shrunk" bug.
165
+ width: 'calc(100% - ' + props.leftOffset + ' - 12px)',
121
166
  maxWidth: 'unset',
122
167
  height: 'calc(100% - 88px)',
123
- margin: '0 8px'
168
+ margin: '0'
169
+ };
170
+ };
171
+
172
+ // A small floating pill in the bottom-right that shows only the unpin icon.
173
+ // Nothing is unmounted — the meeting content (and its media streams + event
174
+ // subscriptions) stays in the DOM behind it, just hidden via display:none.
175
+ const getCollapsedStyle = () => {
176
+ return {
177
+ transform: 'translate(0, 0)',
178
+ backgroundColor: '#FFFFFF',
179
+ position: 'absolute',
180
+ top: 'unset',
181
+ left: 'unset',
182
+ right: '12px',
183
+ bottom: '12px',
184
+ width: '56px',
185
+ minWidth: '56px',
186
+ maxWidth: '56px',
187
+ height: '56px',
188
+ borderRadius: '28px',
189
+ margin: '0',
190
+ overflow: 'hidden',
191
+ boxShadow: '0 4px 16px rgba(0,0,0,0.32)'
124
192
  };
125
193
  };
126
194
  const getPinnedStyle = () => {
195
+ if (isMobile) {
196
+ return getCollapsedStyle();
197
+ }
127
198
  return {
128
199
  transform: 'translate(0, 0)',
129
200
  backgroundColor: '#FFFFFF',
@@ -140,19 +211,38 @@ const Window = props => {
140
211
  if (windowTransformValue) {
141
212
  paper.style.transform = windowTransformValue;
142
213
  }
143
- paper.style.width = '320px';
144
- paper.style.height = 'calc(100% - 80px)';
145
- paper.style.boxShadow = 'unset';
146
- paper.style.borderRadius = '4px';
147
- paper.style.left = 'unset';
148
- paper.style.right = '4px';
149
- paper.style.position = 'absolute';
150
- paper.style.top = '44px';
151
- paper.style.margin = '32px 0';
152
- paper.style.maxWidth = 'unset';
214
+ if (isMobileWidth()) {
215
+ // Collapse to a bottom-right pill. Content stays mounted (hidden
216
+ // via display:none in render), so streams/listeners are untouched.
217
+ paper.style.width = '56px';
218
+ paper.style.minWidth = '56px';
219
+ paper.style.maxWidth = '56px';
220
+ paper.style.height = '56px';
221
+ paper.style.borderRadius = '28px';
222
+ paper.style.boxShadow = '0 4px 16px rgba(0,0,0,0.32)';
223
+ paper.style.left = 'unset';
224
+ paper.style.right = '12px';
225
+ paper.style.top = 'unset';
226
+ paper.style.bottom = '12px';
227
+ paper.style.position = 'absolute';
228
+ paper.style.margin = '0';
229
+ paper.style.overflow = 'hidden';
230
+ } else {
231
+ paper.style.width = '322px';
232
+ paper.style.height = 'calc(100% - 80px)';
233
+ paper.style.boxShadow = 'unset';
234
+ paper.style.borderRadius = '4px';
235
+ paper.style.left = 'unset';
236
+ paper.style.right = '4px';
237
+ paper.style.position = 'absolute';
238
+ paper.style.top = '32px';
239
+ paper.style.bottom = 'unset';
240
+ paper.style.margin = '32px 0';
241
+ paper.style.maxWidth = 'unset';
242
+ }
153
243
  let header = document.getElementsByClassName('dialogHeader')[0];
154
244
  header.getElementsByTagName('button')[0].style.color = '#000000';
155
- if (displayState !== 'PINNED') {
245
+ if (displayStateRef.current !== 'PINNED') {
156
246
  setDisplayState('PINNED');
157
247
  }
158
248
  if (updateContext) {
@@ -179,10 +269,14 @@ const Window = props => {
179
269
  paper.style.margin = '0 16px 16px 16px';
180
270
  paper.style.position = 'relative';
181
271
  paper.style.border = 'unset';
272
+ // Clear leftover mobile collapsed-pill styles.
273
+ paper.style.removeProperty('min-width');
274
+ paper.style.removeProperty('border-radius');
275
+ paper.style.removeProperty('bottom');
182
276
  let header = document.getElementsByClassName('dialogHeader')[0];
183
277
  header.getElementsByTagName('button')[0].style.color = '#000000';
184
278
  document.getElementById('meeting-window-header').style.cursor = 'move';
185
- if (displayState !== 'MINIMIZED') {
279
+ if (displayStateRef.current !== 'MINIMIZED') {
186
280
  setDisplayState('MINIMIZED');
187
281
  }
188
282
  if (updateContext) {
@@ -193,33 +287,38 @@ const Window = props => {
193
287
  }
194
288
  }
195
289
  };
196
- function getLeftOffset() {
197
- let sidebarWidth = parseInt(document.getElementsByClassName('sidebar')[0].style.width.replace('px', ''));
198
- return sidebarWidth + (sidebarWidth === 0 ? 16 : 36);
199
- }
200
290
  const maximizeView = function (e) {
201
291
  let updateContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
202
292
  let paper = document.getElementById('meetingDialogPaper');
203
293
  if (paper) {
204
- let sidebar = document.getElementsByClassName('sidebar')[0];
205
- let sidebarTransform = window.getComputedStyle(sidebar, null).transform;
206
294
  setWindowTransformValue(paper.style.transform);
207
295
  paper.style.removeProperty('--Paper-shadow');
208
296
  paper.style.boxShadow = 'unset';
209
297
  paper.style.transform = 'translate(0, 0)';
210
298
  paper.style.backgroundColor = '#FFFFFF';
211
- paper.style.width = 'unset';
299
+ // Explicit width tied to the drawer offset (mirrors the main
300
+ // ViewPort). NOT 'unset' — a content-sized auto width is what keeps
301
+ // the window shrunk after MIN→MAX.
302
+ paper.style.width = 'calc(100% - ' + leftOffsetRef.current + ' - 12px)';
212
303
  paper.style.maxWidth = 'unset';
213
304
  paper.style.height = 'calc(100% - 88px)';
214
- paper.style.margin = '8px';
215
- paper.style.right = '4px';
305
+ paper.style.margin = '0';
306
+ paper.style.right = 'unset';
216
307
  paper.style.position = 'absolute';
217
- paper.style.top = '72px';
218
- paper.style.left = (isNaN(getLeftOffset()) ? '328' : getLeftOffset()) + 'px';
308
+ paper.style.top = '64px';
309
+ // Left edge = the menu drawer width (folds in real time, read from a
310
+ // ref so the once-registered context subscription isn't stale), not
311
+ // the static .sidebar lookup.
312
+ paper.style.left = leftOffsetRef.current;
313
+ // Clear any leftover styles from the mobile collapsed pill so the
314
+ // restored window isn't stuck rounded/tiny.
315
+ paper.style.removeProperty('min-width');
316
+ paper.style.removeProperty('border-radius');
317
+ paper.style.removeProperty('bottom');
219
318
  let header = document.getElementsByClassName('dialogHeader')[0];
220
319
  header.getElementsByTagName('button')[0].style.color = 'rgba(0, 0, 0, 0.54)';
221
320
  document.getElementById('meeting-window-header').style.cursor = 'default';
222
- if (displayState !== 'MAXIMIZED') {
321
+ if (displayStateRef.current !== 'MAXIMIZED') {
223
322
  setDisplayState('MAXIMIZED');
224
323
  }
225
324
  if (updateContext) {
@@ -264,6 +363,25 @@ const Window = props => {
264
363
  overflow: 'hidden'
265
364
  },
266
365
  className: "".concat((displayState === 'PINNED' ? 'window-pinned ' : '') + 'w-100 h-100')
366
+ },
367
+ // Collapsed pill: the ONLY visible control is unpin (restores
368
+ // the window). Everything else stays mounted below, hidden.
369
+ collapsed && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
370
+ onClick: e => props.onPin(),
371
+ "aria-label": "Unpin meeting",
372
+ style: {
373
+ width: '56px',
374
+ height: '56px',
375
+ color: '#000000'
376
+ }
377
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
378
+ id: 'MAXIMIZE'
379
+ })), /*#__PURE__*/_react.default.createElement("div", {
380
+ style: {
381
+ width: '100%',
382
+ height: '100%',
383
+ display: collapsed ? 'none' : 'block'
384
+ }
267
385
  }, /*#__PURE__*/_react.default.createElement("div", {
268
386
  className: 'meeting-window-header',
269
387
  id: "meeting-window-header"
@@ -307,7 +425,7 @@ const Window = props => {
307
425
  }
308
426
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
309
427
  id: 'MAXIMIZE'
310
- }))))))), children))));
428
+ }))))))), children)))));
311
429
  };
312
430
  var _default = exports.default = Window;
313
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REcmFnZ2FibGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BhcGVyIiwiX0ljb24iLCJfSWNvbkJ1dHRvbiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfV2luZG93RGlhbG9nIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJtaW5pbWl6ZVdpZHRoIiwiUGFwZXJDb21wb25lbnQiLCJwcm9wcyIsIm5vZGVSZWYiLCJ1c2VSZWYiLCJib3VuZHMiLCJzZXRCb3VuZHMiLCJ1c2VTdGF0ZSIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhhbmRsZVN0YXJ0IiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJub2RlIiwib2Zmc2V0VG9wIiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiV2luZG93IiwiY2hpbGRyZW4iLCJvcGVuIiwibWluaW1pemFibGUiLCJkaXNwbGF5U3RhdGUiLCJzZXREaXNwbGF5U3RhdGUiLCJ3aW5kb3dUcmFuc2Zvcm1WYWx1ZSIsInNldFdpbmRvd1RyYW5zZm9ybVZhbHVlIiwidXNlRWZmZWN0IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwidXBkYXRlQ29udGV4dCIsIndpbmRvd0Rpc3BsYXlTdGF0ZSIsImFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiIsImhhbmRsZXIiLCJpZCIsIm9uQ29udGV4dENoYW5nZSIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJrZXlzIiwiZmluZCIsImtleSIsIm1heGltaXplVmlldyIsIm1pbmltaXplVmlldyIsInBpblZpZXciLCJ0aGVuIiwiaW5pdGlhbENvbnRleHQiLCJnZXRNaW5pbWl6ZWRTdHlsZSIsInRyYW5zZm9ybSIsImJhY2tncm91bmRDb2xvciIsIndpZHRoIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJtYXJnaW4iLCJnZXRNYXhpbWl6ZWRTdHlsZSIsImxlZnRPZmZzZXQiLCJnZXRQaW5uZWRTdHlsZSIsInVuZGVmaW5lZCIsInBpbm5hYmxlIiwicGFwZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic3R5bGUiLCJib3hTaGFkb3ciLCJib3JkZXJSYWRpdXMiLCJwb3NpdGlvbiIsImhlYWRlciIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImNvbG9yIiwib25QaW5uZWQiLCJyZW1vdmVQcm9wZXJ0eSIsImJvcmRlciIsImN1cnNvciIsImdldExlZnRPZmZzZXQiLCJzaWRlYmFyV2lkdGgiLCJwYXJzZUludCIsInJlcGxhY2UiLCJzaWRlYmFyIiwic2lkZWJhclRyYW5zZm9ybSIsImdldENvbXB1dGVkU3R5bGUiLCJpc05hTiIsIkZyYWdtZW50IiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIiwiZGlzcGxheSIsImRpc2FibGVFbmZvcmNlRm9jdXMiLCJvbkNsb3NlIiwia2VlcE1vdW50ZWQiLCJoaWRlQmFja2Ryb3AiLCJjbGFzc05hbWUiLCJjb250YWluZXJDbGFzc05hbWUiLCJQYXBlclByb3BzIiwiZGlzYWJsZWQiLCJvdmVyZmxvdyIsImNvbmNhdCIsIm1hcmdpblRvcCIsIm9uQ2xpY2siLCJtYXJnaW5SaWdodCIsIm9uUGluIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9XaW5kb3cuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICcuL1dpbmRvdy5jc3MnO1xuaW1wb3J0IERyYWdnYWJsZSBmcm9tICdyZWFjdC1kcmFnZ2FibGUnO1xuaW1wb3J0IFBhcGVyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvUGFwZXInO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IFdpbmRvd0RpYWxvZyBmcm9tIFwiLi9XaW5kb3dEaWFsb2dcIjtcblxuY29uc3QgbWluaW1pemVXaWR0aCA9ICc4NDgnO1xuY29uc3QgUGFwZXJDb21wb25lbnQgPSAocHJvcHMpID0+IHtcblxuICAgIGNvbnN0IG5vZGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW2JvdW5kcywgc2V0Qm91bmRzXSA9IHVzZVN0YXRlKHtcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgYm90dG9tOiAwXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVTdGFydCA9IChlLCBkYXRhKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRFJBRyBTVEFSVFwiKTtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvL2NvbnN0IHggPSBkYXRhLm5vZGUub2Zmc2V0TGVmdCAtIGRhdGEubm9kZS5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3QgdG9wID0gLWRhdGEubm9kZS5vZmZzZXRUb3AgKyA2NDtcbiAgICAgICAgY29uc3QgYm90dG9tID0gd2luZG93LmlubmVySGVpZ2h0IC0gKGRhdGEubm9kZS5vZmZzZXRUb3AgKyA2NCk7XG5cbiAgICAgICAgc2V0Qm91bmRzKHtcbiAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgIHRvcDogdG9wLFxuICAgICAgICAgICAgYm90dG9tOiBib3R0b21cbiAgICAgICAgfSk7XG5cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFBhcGVyIHsuLi5wcm9wc30gcmVmPXtub2RlUmVmfS8+XG4gICAgICAgIC8qPERyYWdnYWJsZVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgYm91bmRzPXtib3VuZHN9XG4gICAgICAgICAgICBvblN0YXJ0PXtoYW5kbGVTdGFydH1cbiAgICAgICAgICAgIGhhbmRsZT1cIiNtZWV0aW5nLXdpbmRvdy1oZWFkZXJcIlxuICAgICAgICAgICAgY2FuY2VsPXsnW2NsYXNzKj1cIk11aURpYWxvZ0NvbnRlbnQtcm9vdFwiXSd9XG4gICAgICAgICAgICBub2RlUmVmPXtub2RlUmVmfVxuICAgICAgICA+XG4gICAgICAgICAgICA8UGFwZXIgey4uLnByb3BzfSByZWY9e25vZGVSZWZ9IHN0eWxlPXt7bWluV2lkdGg6ICczMjBweCd9fS8+XG4gICAgICAgIDwvRHJhZ2dhYmxlPiovXG4gICAgKTtcbn07XG5cbmNvbnN0IFdpbmRvdyA9IChwcm9wcykgPT4ge1xuXG4gICAgY29uc3Qge1xuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgb3BlbixcbiAgICAgICAgbWluaW1pemFibGVcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2Rpc3BsYXlTdGF0ZSwgc2V0RGlzcGxheVN0YXRlXSA9IHVzZVN0YXRlKHByb3BzLmRpc3BsYXlTdGF0ZSk7XG4gICAgY29uc3QgW3dpbmRvd1RyYW5zZm9ybVZhbHVlLCBzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5kaXNwbGF5U3RhdGUpIHtcbiAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZShwcm9wcy5kaXNwbGF5U3RhdGUpO1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogcHJvcHMuZGlzcGxheVN0YXRlfSk7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMuZGlzcGxheVN0YXRlXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkQXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uKHtcbiAgICAgICAgICAgIGhhbmRsZXI6IHtcbiAgICAgICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnd2luZG93JztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uQ29udGV4dENoYW5nZTogKGNvbnRleHQsIG5ld1ZhbHVlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobmV3VmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKGtleSkgPT4ga2V5ID09PSAnd2luZG93RGlzcGxheVN0YXRlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdNSU4gOiAnICsgbmV3VmFsdWVzLndpbmRvd0Rpc3BsYXlTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWVzLndpbmRvd0Rpc3BsYXlTdGF0ZSA9PT0gJ01BWElNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZVZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZXMud2luZG93RGlzcGxheVN0YXRlID09PSAnTUlOSU1JWkVEJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltaXplVmlldyhudWxsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUgPT09ICdQSU5ORUQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluVmlldyhudWxsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKGluaXRpYWxDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBzZXREaXNwbGF5U3RhdGUoaW5pdGlhbENvbnRleHQgPyBpbml0aWFsQ29udGV4dC53aW5kb3dEaXNwbGF5U3RhdGUgOiAnTUFYSU1JWkVEJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGRpc3BsYXlTdGF0ZSA9PT0gJ01BWElNSVpFRCcpIHtcbiAgICAgICAgICAgIG1heGltaXplVmlldyhudWxsKTtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5U3RhdGUgPT09ICdNSU5JTUlaRUQnKSB7XG4gICAgICAgICAgICBtaW5pbWl6ZVZpZXcobnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwaW5WaWV3KG51bGwpXG4gICAgICAgIH1cbiAgICB9LCBbZGlzcGxheVN0YXRlXSk7XG5cbiAgICBjb25zdCBnZXRNaW5pbWl6ZWRTdHlsZSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAwKScsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZGRkZGJyxcbiAgICAgICAgICAgIHdpZHRoOiBtaW5pbWl6ZVdpZHRoICsgJ3B4JyxcbiAgICAgICAgICAgIG1heFdpZHRoOiAndW5zZXQnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnNTAwcHgnLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCAxNnB4IDE2cHggMTZweCdcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0TWF4aW1pemVkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogJ2NhbGMoMTAwJSAtICcgKyBwcm9wcy5sZWZ0T2Zmc2V0ICsgJyApJyxcbiAgICAgICAgICAgIG1heFdpZHRoOiAndW5zZXQnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDAlIC0gODhweCknLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCA4cHgnXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFBpbm5lZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDAsIDApJyxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICAgICAgd2lkdGg6ICczMjBweCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA4OHB4KScsXG4gICAgICAgICAgICBtYXJnaW46ICcwIDhweCdcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgcGluVmlldyA9IChlLCB1cGRhdGVDb250ZXh0ID0gdHJ1ZSkgPT4ge1xuICAgICAgICBpZiAocHJvcHMucGlubmFibGUpIHtcbiAgICAgICAgICAgIGxldCBwYXBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWV0aW5nRGlhbG9nUGFwZXInKTtcbiAgICAgICAgICAgIGlmIChwYXBlcikge1xuICAgICAgICAgICAgICAgIGlmICh3aW5kb3dUcmFuc2Zvcm1WYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS50cmFuc2Zvcm0gPSB3aW5kb3dUcmFuc2Zvcm1WYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICczMjBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuaGVpZ2h0ID0gJ2NhbGMoMTAwJSAtIDgwcHgpJztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5ib3hTaGFkb3cgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICc0cHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnJpZ2h0ID0gJzRweCc7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnRvcCA9ICc0NHB4JztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5tYXJnaW4gPSAnMzJweCAwJztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5tYXhXaWR0aCA9ICd1bnNldCc7XG5cbiAgICAgICAgICAgICAgICBsZXQgaGVhZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZGlhbG9nSGVhZGVyJylbMF07XG4gICAgICAgICAgICAgICAgaGVhZGVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdidXR0b24nKVswXS5zdHlsZS5jb2xvciA9ICcjMDAwMDAwJztcblxuICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhdGUgIT09ICdQSU5ORUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnUElOTkVEJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ1BJTk5FRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcHJvcHMub25QaW5uZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBtaW5pbWl6ZVZpZXcgPSAoZSwgdXBkYXRlQ29udGV4dCA9IHRydWUpID0+IHtcbiAgICAgICAgaWYgKG1pbmltaXphYmxlKSB7XG4gICAgICAgICAgICBsZXQgcGFwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVldGluZ0RpYWxvZ1BhcGVyJyk7XG4gICAgICAgICAgICBpZiAocGFwZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93VHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gd2luZG93VHJhbnNmb3JtVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9IG1pbmltaXplV2lkdGggKyAncHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICc1MDBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWFyZ2luID0gJzAgMTZweCAxNnB4IDE2cHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5ib3JkZXIgPSAndW5zZXQnO1xuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcblxuICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhdGUgIT09ICdNSU5JTUlaRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnTUlOSU1JWkVEJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ01JTklNSVpFRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldExlZnRPZmZzZXQoKSB7XG4gICAgICAgIGxldCBzaWRlYmFyV2lkdGggPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzaWRlYmFyJylbMF0uc3R5bGUud2lkdGgucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgICByZXR1cm4gc2lkZWJhcldpZHRoICsgKHNpZGViYXJXaWR0aCA9PT0gMCA/IDE2IDogMzYpO1xuICAgIH1cblxuICAgIGNvbnN0IG1heGltaXplVmlldyA9IChlLCB1cGRhdGVDb250ZXh0ID0gdHJ1ZSkgPT4ge1xuICAgICAgICBsZXQgcGFwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVldGluZ0RpYWxvZ1BhcGVyJyk7XG4gICAgICAgIGlmIChwYXBlcikge1xuICAgICAgICAgICAgbGV0IHNpZGViYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzaWRlYmFyJylbMF07XG4gICAgICAgICAgICBsZXQgc2lkZWJhclRyYW5zZm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNpZGViYXIsIG51bGwpLnRyYW5zZm9ybTtcblxuICAgICAgICAgICAgc2V0V2luZG93VHJhbnNmb3JtVmFsdWUocGFwZXIuc3R5bGUudHJhbnNmb3JtKTtcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLVBhcGVyLXNoYWRvdycpO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoMCwgMCknO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNGRkZGRkYnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUud2lkdGggPSAndW5zZXQnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUubWF4V2lkdGggPSAndW5zZXQnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUuaGVpZ2h0ID0gJ2NhbGMoMTAwJSAtIDg4cHgpJztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICc4cHgnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmlnaHQgPSAnNHB4JztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLnRvcCA9ICc3MnB4JztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSAoaXNOYU4oZ2V0TGVmdE9mZnNldCgpKSA/ICczMjgnIDogZ2V0TGVmdE9mZnNldCgpKSArICdweCc7XG5cbiAgICAgICAgICAgIGxldCBoZWFkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdkaWFsb2dIZWFkZXInKVswXTtcbiAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAncmdiYSgwLCAwLCAwLCAwLjU0KSc7XG4gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVldGluZy13aW5kb3ctaGVhZGVyJykuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnO1xuXG4gICAgICAgICAgICBpZiAoZGlzcGxheVN0YXRlICE9PSAnTUFYSU1JWkVEJykge1xuICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnTUFYSU1JWkVEJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ01BWElNSVpFRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMDAwMCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxXaW5kb3dEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgbGVmdE9mZnNldD17cHJvcHMubGVmdE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgICAgICBvcGVuPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25DbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZWVwTW91bnRlZFxuICAgICAgICAgICAgICAgICAgICBoaWRlQmFja2Ryb3A9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm1lZXRpbmctd2luZG93LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm1lZXRpbmctd2luZG93LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwcm9wcy5jb250YWluZXJDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIFBhcGVyQ29tcG9uZW50PXtQYXBlckNvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdtZWV0aW5nRGlhbG9nUGFwZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBkaXNwbGF5U3RhdGUgPT09ICdNSU5JTUlaRUQnID8gJ3dpbmRvdy1wYXBlci1taW4nIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/ICd3aW5kb3ctcGFwZXItbWF4JyA6ICd3aW5kb3ctcGFwZXItcGlubmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGRpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcgPyBnZXRNaW5pbWl6ZWRTdHlsZSgpIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/IGdldE1heGltaXplZFN0eWxlKCkgOiBnZXRQaW5uZWRTdHlsZSgpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXsnd2luZG93LWNvbnRlbnQnfSBzdHlsZT17e292ZXJmbG93OiAnaGlkZGVuJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHsoZGlzcGxheVN0YXRlID09PSAnUElOTkVEJyA/ICd3aW5kb3ctcGlubmVkICcgOiAnJykgKyAndy0xMDAgaC0xMDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtZWV0aW5nLXdpbmRvdy1oZWFkZXInfSBpZD1cIm1lZXRpbmctd2luZG93LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAnLTJweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGlhbG9nSGVhZGVyIHJvdyd9IHN0eWxlPXt7bWFyZ2luVG9wOiAnMjRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemVWaWV3KGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICc0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01JTklNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZVZpZXcoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucGlubmFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uUGluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L1dpbmRvd0RpYWxvZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgV2luZG93O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdB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LGlCQUNYNUQsTUFBQSxDQUFBWSxPQUFBLENBQUEyQyxhQUFBLGNBRVFNLFlBQVksS0FBSyxXQUFXLGdCQUN4QjdELE1BQUEsQ0FBQVksT0FBQSxDQUFBMkMsYUFBQSxDQUFDaEQsV0FBQSxDQUFBSyxPQUFVO0lBQ1AwSCxPQUFPLEVBQUc1SCxDQUFDLElBQUs7TUFDWnFFLFlBQVksQ0FBQ3JFLENBQUMsQ0FBQztJQUNuQixDQUFFO0lBQ0Z3RixLQUFLLEVBQUU7TUFDSHFDLFdBQVcsRUFBRTtJQUNqQjtFQUFFLGdCQUVGdkksTUFBQSxDQUFBWSxPQUFBLENBQUEyQyxhQUFBLENBQUNqRCxLQUFBLENBQUFNLE9BQUk7SUFBQzJELEVBQUUsRUFBRTtFQUFXLENBQUMsQ0FDZCxDQUFDLGdCQUVidkUsTUFBQSxDQUFBWSxPQUFBLENBQUEyQyxhQUFBLENBQUNoRCxXQUFBLENBQUFLLE9BQVU7SUFDUDBILE9BQU8sRUFBRzVILENBQUMsSUFBSztNQUNab0UsWUFBWSxDQUFDcEUsQ0FBQyxDQUFDO0lBQ25CLENBQUU7SUFDRndGLEtBQUssRUFBRTtNQUNIcUMsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZ2SSxNQUFBLENBQUFZLE9BQUEsQ0FBQTJDLGFBQUEsQ0FBQ2pELEtBQUEsQ0FBQU0sT0FBSTtJQUFDMkQsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBRW5CLENBQUMsRUFHTmxDLEtBQUssQ0FBQ3lELFFBQVEsaUJBQ2Q5RixNQUFBLENBQUFZLE9BQUEsQ0FBQTJDLGFBQUEsMkJBQ0l2RCxNQUFBLENBQUFZLE9BQUEsQ0FBQTJDLGFBQUEsQ0FBQ2hELFdBQUEsQ0FBQUssT0FBVTtJQUNQMEgsT0FBTyxFQUFHNUgsQ0FBQyxJQUFLO01BQ1oyQixLQUFLLENBQUNtRyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFFO0lBQ0Z0QyxLQUFLLEVBQUU7TUFDSHFDLFdBQVcsRUFBRTtJQUNqQjtFQUFFLGdCQUVGdkksTUFBQSxDQUFBWSxPQUFBLENBQUEyQyxhQUFBLENBQUNqRCxLQUFBLENBQUFNLE9BQUk7SUFBQzJELEVBQUUsRUFBRTtFQUFXLENBQUMsQ0FDZCxDQUNYLENBRVIsQ0FDSixDQUVSLENBQ0osQ0FBQyxFQUVGYixRQUVILENBQ0ssQ0FDYixDQUNQLENBQUM7QUFFWCxDQUFDO0FBQUMsSUFBQStFLFFBQUEsR0FBQUMsT0FBQSxDQUFBOUgsT0FBQSxHQUVhNkMsTUFBTSIsImlnbm9yZUxpc3QiOltdfQ==
431
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REcmFnZ2FibGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BhcGVyIiwiX0ljb24iLCJfSWNvbkJ1dHRvbiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfV2luZG93RGlhbG9nIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJtaW5pbWl6ZVdpZHRoIiwiTU9CSUxFX0JSRUFLUE9JTlQiLCJpc01vYmlsZVdpZHRoIiwid2luZG93IiwiaW5uZXJXaWR0aCIsIlBhcGVyQ29tcG9uZW50IiwicHJvcHMiLCJub2RlUmVmIiwidXNlUmVmIiwiYm91bmRzIiwic2V0Qm91bmRzIiwidXNlU3RhdGUiLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJoYW5kbGVTdGFydCIsImRhdGEiLCJjb25zb2xlIiwibG9nIiwibm9kZSIsIm9mZnNldFRvcCIsImlubmVySGVpZ2h0IiwiY3JlYXRlRWxlbWVudCIsInJlZiIsIldpbmRvdyIsImNoaWxkcmVuIiwib3BlbiIsIm1pbmltaXphYmxlIiwiZGlzcGxheVN0YXRlIiwic2V0RGlzcGxheVN0YXRlIiwid2luZG93VHJhbnNmb3JtVmFsdWUiLCJzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZSIsImlzTW9iaWxlIiwic2V0SXNNb2JpbGUiLCJ1c2VFZmZlY3QiLCJvblJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29sbGFwc2VkIiwibGVmdE9mZnNldFJlZiIsImxlZnRPZmZzZXQiLCJjdXJyZW50IiwiZGlzcGxheVN0YXRlUmVmIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwidXBkYXRlQ29udGV4dCIsIndpbmRvd0Rpc3BsYXlTdGF0ZSIsImFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiIsImhhbmRsZXIiLCJpZCIsIm9uQ29udGV4dENoYW5nZSIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJrZXlzIiwiZmluZCIsImtleSIsIm1heGltaXplVmlldyIsIm1pbmltaXplVmlldyIsInBpblZpZXciLCJ0aGVuIiwiaW5pdGlhbENvbnRleHQiLCJyYWYiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImdldE1pbmltaXplZFN0eWxlIiwidHJhbnNmb3JtIiwiYmFja2dyb3VuZENvbG9yIiwid2lkdGgiLCJtYXhXaWR0aCIsImhlaWdodCIsIm1hcmdpbiIsImdldE1heGltaXplZFN0eWxlIiwicG9zaXRpb24iLCJnZXRDb2xsYXBzZWRTdHlsZSIsIm1pbldpZHRoIiwiYm9yZGVyUmFkaXVzIiwib3ZlcmZsb3ciLCJib3hTaGFkb3ciLCJnZXRQaW5uZWRTdHlsZSIsInVuZGVmaW5lZCIsInBpbm5hYmxlIiwicGFwZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic3R5bGUiLCJoZWFkZXIiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJjb2xvciIsIm9uUGlubmVkIiwicmVtb3ZlUHJvcGVydHkiLCJib3JkZXIiLCJjdXJzb3IiLCJGcmFnbWVudCIsIm1heEhlaWdodCIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsImRpc3BsYXkiLCJkaXNhYmxlRW5mb3JjZUZvY3VzIiwib25DbG9zZSIsImtlZXBNb3VudGVkIiwiaGlkZUJhY2tkcm9wIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyQ2xhc3NOYW1lIiwiUGFwZXJQcm9wcyIsImRpc2FibGVkIiwiY29uY2F0Iiwib25DbGljayIsIm9uUGluIiwibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L1dpbmRvdy5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4vV2luZG93LmNzcyc7XG5pbXBvcnQgRHJhZ2dhYmxlIGZyb20gJ3JlYWN0LWRyYWdnYWJsZSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgV2luZG93RGlhbG9nIGZyb20gXCIuL1dpbmRvd0RpYWxvZ1wiO1xuXG5jb25zdCBtaW5pbWl6ZVdpZHRoID0gJzg0OCc7XG4vLyBCZWxvdyB0aGlzIHZpZXdwb3J0IHdpZHRoIGEgMzIwcHggcGlubmVkIHdpbmRvdyBzd2FsbG93cyB0aGUgd2hvbGUgcGhvbmVcbi8vIHNjcmVlbiwgc28gcGlubmluZyBjb2xsYXBzZXMgdG8gYSBzbWFsbCBmbG9hdGluZyBwaWxsICh1bnBpbiBpY29uIG9ubHkpLlxuY29uc3QgTU9CSUxFX0JSRUFLUE9JTlQgPSA2MDA7XG5jb25zdCBpc01vYmlsZVdpZHRoID0gKCkgPT4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPCBNT0JJTEVfQlJFQUtQT0lOVDtcbmNvbnN0IFBhcGVyQ29tcG9uZW50ID0gKHByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBub2RlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtib3VuZHMsIHNldEJvdW5kc10gPSB1c2VTdGF0ZSh7XG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGJvdHRvbTogMFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlU3RhcnQgPSAoZSwgZGF0YSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkRSQUcgU1RBUlRcIik7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9jb25zdCB4ID0gZGF0YS5ub2RlLm9mZnNldExlZnQgLSBkYXRhLm5vZGUub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHRvcCA9IC1kYXRhLm5vZGUub2Zmc2V0VG9wICsgNjQ7XG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIChkYXRhLm5vZGUub2Zmc2V0VG9wICsgNjQpO1xuXG4gICAgICAgIHNldEJvdW5kcyh7XG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgICAgIGJvdHRvbTogYm90dG9tXG4gICAgICAgIH0pO1xuXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQYXBlciB7Li4ucHJvcHN9IHJlZj17bm9kZVJlZn0vPlxuICAgICAgICAvKjxEcmFnZ2FibGVcbiAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgIGJvdW5kcz17Ym91bmRzfVxuICAgICAgICAgICAgb25TdGFydD17aGFuZGxlU3RhcnR9XG4gICAgICAgICAgICBoYW5kbGU9XCIjbWVldGluZy13aW5kb3ctaGVhZGVyXCJcbiAgICAgICAgICAgIGNhbmNlbD17J1tjbGFzcyo9XCJNdWlEaWFsb2dDb250ZW50LXJvb3RcIl0nfVxuICAgICAgICAgICAgbm9kZVJlZj17bm9kZVJlZn1cbiAgICAgICAgPlxuICAgICAgICAgICAgPFBhcGVyIHsuLi5wcm9wc30gcmVmPXtub2RlUmVmfSBzdHlsZT17e21pbldpZHRoOiAnMzIwcHgnfX0vPlxuICAgICAgICA8L0RyYWdnYWJsZT4qL1xuICAgICk7XG59O1xuXG5jb25zdCBXaW5kb3cgPSAocHJvcHMpID0+IHtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIG9wZW4sXG4gICAgICAgIG1pbmltaXphYmxlXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtkaXNwbGF5U3RhdGUsIHNldERpc3BsYXlTdGF0ZV0gPSB1c2VTdGF0ZShwcm9wcy5kaXNwbGF5U3RhdGUpO1xuICAgIGNvbnN0IFt3aW5kb3dUcmFuc2Zvcm1WYWx1ZSwgc2V0V2luZG93VHJhbnNmb3JtVmFsdWVdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2lzTW9iaWxlLCBzZXRJc01vYmlsZV0gPSB1c2VTdGF0ZShpc01vYmlsZVdpZHRoKCkpO1xuXG4gICAgLy8gVHJhY2sgdmlld3BvcnQgd2lkdGggc28gYSBwaW5uZWQgd2luZG93IGNvbGxhcHNlcy9leHBhbmRzIG9uIHJvdGF0ZS9yZXNpemUuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgb25SZXNpemUgPSAoKSA9PiBzZXRJc01vYmlsZShpc01vYmlsZVdpZHRoKCkpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xuICAgICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKTtcbiAgICB9LCBbXSk7XG5cbiAgICAvLyBDb2xsYXBzZWQgPSBwaW5uZWQgb24gYSBwaG9uZTogc2hyaW5rIHRvIGEgcGlsbCwga2VlcCBldmVyeXRoaW5nIG1vdW50ZWQuXG4gICAgY29uc3QgY29sbGFwc2VkID0gaXNNb2JpbGUgJiYgZGlzcGxheVN0YXRlID09PSAnUElOTkVEJztcblxuICAgIC8vIFRoZSBjb250ZXh0IHN1YnNjcmlwdGlvbiBiZWxvdyBpcyByZWdpc3RlcmVkIE9OQ0Ugb24gbW91bnQsIHNvIHRoZVxuICAgIC8vIG1heGltaXplL21pbmltaXplL3BpbiBjbG9zdXJlcyBpdCBjYWxscyB3b3VsZCBvdGhlcndpc2UgY2FwdHVyZSBtb3VudC10aW1lXG4gICAgLy8gcHJvcHMvc3RhdGUuIE1pcnJvciB0aGUgbGl2ZSB2YWx1ZXMgaW50byByZWZzIHNvIHRob3NlIGltcGVyYXRpdmUgaGFuZGxlcnNcbiAgICAvLyBhbHdheXMgcmVhZCB0aGUgQ1VSUkVOVCBkcmF3ZXIgb2Zmc2V0ICsgZGlzcGxheSBzdGF0ZS4gKFdpdGhvdXQgdGhpcyxcbiAgICAvLyBwaW4gLT4gY2xvc2UgZHJhd2VyIC0+IHVucGluIHJlc3RvcmVzIHRoZSB3aW5kb3cgdG8gdGhlIHN0YWxlIG9wZW4tZHJhd2VyXG4gICAgLy8gbGVmdCBvZmZzZXQgaW5zdGVhZCBvZiB0aGUgY29sbGFwc2VkIG1pbmktZHJhd2VyIHBvc2l0aW9uLilcbiAgICBjb25zdCBsZWZ0T2Zmc2V0UmVmID0gdXNlUmVmKHByb3BzLmxlZnRPZmZzZXQpO1xuICAgIGxlZnRPZmZzZXRSZWYuY3VycmVudCA9IHByb3BzLmxlZnRPZmZzZXQ7XG4gICAgY29uc3QgZGlzcGxheVN0YXRlUmVmID0gdXNlUmVmKGRpc3BsYXlTdGF0ZSk7XG4gICAgZGlzcGxheVN0YXRlUmVmLmN1cnJlbnQgPSBkaXNwbGF5U3RhdGU7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZGlzcGxheVN0YXRlKSB7XG4gICAgICAgICAgICBzZXREaXNwbGF5U3RhdGUocHJvcHMuZGlzcGxheVN0YXRlKTtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci51cGRhdGVDb250ZXh0KHt3aW5kb3dEaXNwbGF5U3RhdGU6IHByb3BzLmRpc3BsYXlTdGF0ZX0pO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmRpc3BsYXlTdGF0ZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiB7XG4gICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dpbmRvdyc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2U6IChjb250ZXh0LCBuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5ld1ZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChrZXkpID0+IGtleSA9PT0gJ3dpbmRvd0Rpc3BsYXlTdGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTUlOIDogJyArIG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemVWaWV3KG51bGwsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWVzLndpbmRvd0Rpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbWl6ZVZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZXMud2luZG93RGlzcGxheVN0YXRlID09PSAnUElOTkVEJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpblZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKChpbml0aWFsQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlzcGxheVN0YXRlKGluaXRpYWxDb250ZXh0ID8gaW5pdGlhbENvbnRleHQud2luZG93RGlzcGxheVN0YXRlIDogJ01BWElNSVpFRCcpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnKSB7XG4gICAgICAgICAgICBtYXhpbWl6ZVZpZXcobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVN0YXRlID09PSAnTUlOSU1JWkVEJykge1xuICAgICAgICAgICAgbWluaW1pemVWaWV3KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGluVmlldyhudWxsKVxuICAgICAgICB9XG4gICAgICAgIC8vIEFmdGVyIHRoZSBQYXBlciByZXNpemVzLCBudWRnZSB0aGUgY29udGVudCB0byByZS1tZWFzdXJlLiBUaGUgQ0RVSVxuICAgICAgICAvLyB2aWV3IGxheXMgb3V0IGFnYWluc3QgdGhlIGF2YWlsYWJsZSB3aWR0aCBvbmNlIGFuZCBvbmx5IHJlY29tcHV0ZXMgb25cbiAgICAgICAgLy8gYSB3aW5kb3cgcmVzaXplIOKAlCBzbyBNSU7ihpJNQVggKG9yIGEgZHJhd2VyIGZvbGQpIG90aGVyd2lzZSBsZWF2ZXMgaXRcbiAgICAgICAgLy8gc2l6ZWQgdG8gdGhlIHByZXZpb3VzIGRpbWVuc2lvbnMuIHJBRiBsZXRzIHRoZSBuZXcgc2l6ZSBzZXR0bGUgZmlyc3QuXG4gICAgICAgIGNvbnN0IHJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKSk7XG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyYWYpO1xuICAgICAgICAvLyBSZS1ydW4gb24gbGVmdE9mZnNldCB0b28gc28gYSBtYXhpbWl6ZWQgd2luZG93IHJlLWFsaWducyB3aGVuIHRoZVxuICAgICAgICAvLyBtZW51IGRyYXdlciBmb2xkcy9leHBhbmRzIChkcmF3ZXIgd2lkdGggY2hhbmdlcyDihpIgcmVwb3NpdGlvbikuXG4gICAgfSwgW2Rpc3BsYXlTdGF0ZSwgcHJvcHMubGVmdE9mZnNldF0pO1xuXG4gICAgY29uc3QgZ2V0TWluaW1pemVkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogbWluaW1pemVXaWR0aCArICdweCcsXG4gICAgICAgICAgICBtYXhXaWR0aDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIGhlaWdodDogJzUwMHB4JyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgMTZweCAxNnB4IDE2cHgnXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldE1heGltaXplZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDAsIDApJyxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAvLyBTaXQganVzdCBiZWxvdyB0aGUgZml4ZWQgZGFzaGJvYXJkIGhlYWRlciAoNjRweCkgc28gdGhlIHdpbmRvd1xuICAgICAgICAgICAgLy8gZG9lc24ndCBlbmNyb2FjaCBvbiBpdC4gRGVjbGFyZWQgaGVyZSBiZWNhdXNlIGdldE1heGltaXplZFN0eWxlIGlzXG4gICAgICAgICAgICAvLyB0aGUgYXV0aG9yaXRhdGl2ZSBpbmxpbmUgc3R5bGUg4oCUIGEgcmVuZGVyIHdpdGggbm8gYHRvcGAgd291bGQgY2xlYXJcbiAgICAgICAgICAgIC8vIGFueSBpbXBlcmF0aXZlbHktc2V0IHZhbHVlIGFuZCBmYWxsIGJhY2sgdG8gdGhlIDQwcHggY2xhc3MuXG4gICAgICAgICAgICB0b3A6ICc2NHB4JyxcbiAgICAgICAgICAgIGxlZnQ6IHByb3BzLmxlZnRPZmZzZXQsXG4gICAgICAgICAgICByaWdodDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIC8vIE1pcnJvciB0aGUgbWFpbiBWaWV3UG9ydDogc3RhcnQgYXQgdGhlIGRyYXdlciB3aWR0aCwgbGVhdmUgYSAxMnB4XG4gICAgICAgICAgICAvLyByaWdodCBnYXAuIEV4cGxpY2l0IHdpZHRoIChub3QgJ3Vuc2V0Jykgc28gdGhlIGNvbnRlbnQgYWx3YXlzXG4gICAgICAgICAgICAvLyByZWZsb3dzIHRvIGZ1bGwgc2l6ZSDigJQgZml4ZXMgdGhlIE1JTuKGkk1BWCBcInN0dWNrIHNocnVua1wiIGJ1Zy5cbiAgICAgICAgICAgIHdpZHRoOiAnY2FsYygxMDAlIC0gJyArIHByb3BzLmxlZnRPZmZzZXQgKyAnIC0gMTJweCknLFxuICAgICAgICAgICAgbWF4V2lkdGg6ICd1bnNldCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA4OHB4KScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvLyBBIHNtYWxsIGZsb2F0aW5nIHBpbGwgaW4gdGhlIGJvdHRvbS1yaWdodCB0aGF0IHNob3dzIG9ubHkgdGhlIHVucGluIGljb24uXG4gICAgLy8gTm90aGluZyBpcyB1bm1vdW50ZWQg4oCUIHRoZSBtZWV0aW5nIGNvbnRlbnQgKGFuZCBpdHMgbWVkaWEgc3RyZWFtcyArIGV2ZW50XG4gICAgLy8gc3Vic2NyaXB0aW9ucykgc3RheXMgaW4gdGhlIERPTSBiZWhpbmQgaXQsIGp1c3QgaGlkZGVuIHZpYSBkaXNwbGF5Om5vbmUuXG4gICAgY29uc3QgZ2V0Q29sbGFwc2VkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHRvcDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIGxlZnQ6ICd1bnNldCcsXG4gICAgICAgICAgICByaWdodDogJzEycHgnLFxuICAgICAgICAgICAgYm90dG9tOiAnMTJweCcsXG4gICAgICAgICAgICB3aWR0aDogJzU2cHgnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICc1NnB4JyxcbiAgICAgICAgICAgIG1heFdpZHRoOiAnNTZweCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICc1NnB4JyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzI4cHgnLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICBib3hTaGFkb3c6ICcwIDRweCAxNnB4IHJnYmEoMCwwLDAsMC4zMiknXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFBpbm5lZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb2xsYXBzZWRTdHlsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogJzMyMHB4JyxcbiAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDg4cHgpJyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgOHB4J1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBwaW5WaWV3ID0gKGUsIHVwZGF0ZUNvbnRleHQgPSB0cnVlKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5waW5uYWJsZSkge1xuICAgICAgICAgICAgbGV0IHBhcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmdEaWFsb2dQYXBlcicpO1xuICAgICAgICAgICAgaWYgKHBhcGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvd1RyYW5zZm9ybVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnRyYW5zZm9ybSA9IHdpbmRvd1RyYW5zZm9ybVZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc01vYmlsZVdpZHRoKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGFwc2UgdG8gYSBib3R0b20tcmlnaHQgcGlsbC4gQ29udGVudCBzdGF5cyBtb3VudGVkIChoaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gdmlhIGRpc3BsYXk6bm9uZSBpbiByZW5kZXIpLCBzbyBzdHJlYW1zL2xpc3RlbmVycyBhcmUgdW50b3VjaGVkLlxuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICc1NnB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWluV2lkdGggPSAnNTZweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1heFdpZHRoID0gJzU2cHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5oZWlnaHQgPSAnNTZweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICcyOHB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJzAgNHB4IDE2cHggcmdiYSgwLDAsMCwwLjMyKSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5yaWdodCA9ICcxMnB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudG9wID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm90dG9tID0gJzEycHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICcwJztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICczMjJweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSA4MHB4KSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJveFNoYWRvdyA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICc0cHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5sZWZ0ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmlnaHQgPSAnNHB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS50b3AgPSAnMzJweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvdHRvbSA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICczMnB4IDAnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5tYXhXaWR0aCA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGlzcGxheVN0YXRlUmVmLmN1cnJlbnQgIT09ICdQSU5ORUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnUElOTkVEJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ1BJTk5FRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcHJvcHMub25QaW5uZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBtaW5pbWl6ZVZpZXcgPSAoZSwgdXBkYXRlQ29udGV4dCA9IHRydWUpID0+IHtcbiAgICAgICAgaWYgKG1pbmltaXphYmxlKSB7XG4gICAgICAgICAgICBsZXQgcGFwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVldGluZ0RpYWxvZ1BhcGVyJyk7XG4gICAgICAgICAgICBpZiAocGFwZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93VHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gd2luZG93VHJhbnNmb3JtVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9IG1pbmltaXplV2lkdGggKyAncHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICc1MDBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWFyZ2luID0gJzAgMTZweCAxNnB4IDE2cHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5ib3JkZXIgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgIC8vIENsZWFyIGxlZnRvdmVyIG1vYmlsZSBjb2xsYXBzZWQtcGlsbCBzdHlsZXMuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ21pbi13aWR0aCcpO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdib3JkZXItcmFkaXVzJyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvdHRvbScpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcblxuICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhdGVSZWYuY3VycmVudCAhPT0gJ01JTklNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RGlzcGxheVN0YXRlKCdNSU5JTUlaRUQnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIudXBkYXRlQ29udGV4dCh7d2luZG93RGlzcGxheVN0YXRlOiAnTUlOSU1JWkVEJ30sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWF4aW1pemVWaWV3ID0gKGUsIHVwZGF0ZUNvbnRleHQgPSB0cnVlKSA9PiB7XG4gICAgICAgIGxldCBwYXBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWV0aW5nRGlhbG9nUGFwZXInKTtcbiAgICAgICAgaWYgKHBhcGVyKSB7XG4gICAgICAgICAgICBzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZShwYXBlci5zdHlsZS50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5ib3hTaGFkb3cgPSAndW5zZXQnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgwLCAwKSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI0ZGRkZGRic7XG4gICAgICAgICAgICAvLyBFeHBsaWNpdCB3aWR0aCB0aWVkIHRvIHRoZSBkcmF3ZXIgb2Zmc2V0IChtaXJyb3JzIHRoZSBtYWluXG4gICAgICAgICAgICAvLyBWaWV3UG9ydCkuIE5PVCAndW5zZXQnIOKAlCBhIGNvbnRlbnQtc2l6ZWQgYXV0byB3aWR0aCBpcyB3aGF0IGtlZXBzXG4gICAgICAgICAgICAvLyB0aGUgd2luZG93IHNocnVuayBhZnRlciBNSU7ihpJNQVguXG4gICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICdjYWxjKDEwMCUgLSAnICsgbGVmdE9mZnNldFJlZi5jdXJyZW50ICsgJyAtIDEycHgpJztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1heFdpZHRoID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSA4OHB4KSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5tYXJnaW4gPSAnMCc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yaWdodCA9ICd1bnNldCc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS50b3AgPSAnNjRweCc7XG4gICAgICAgICAgICAvLyBMZWZ0IGVkZ2UgPSB0aGUgbWVudSBkcmF3ZXIgd2lkdGggKGZvbGRzIGluIHJlYWwgdGltZSwgcmVhZCBmcm9tIGFcbiAgICAgICAgICAgIC8vIHJlZiBzbyB0aGUgb25jZS1yZWdpc3RlcmVkIGNvbnRleHQgc3Vic2NyaXB0aW9uIGlzbid0IHN0YWxlKSwgbm90XG4gICAgICAgICAgICAvLyB0aGUgc3RhdGljIC5zaWRlYmFyIGxvb2t1cC5cbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSBsZWZ0T2Zmc2V0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAvLyBDbGVhciBhbnkgbGVmdG92ZXIgc3R5bGVzIGZyb20gdGhlIG1vYmlsZSBjb2xsYXBzZWQgcGlsbCBzbyB0aGVcbiAgICAgICAgICAgIC8vIHJlc3RvcmVkIHdpbmRvdyBpc24ndCBzdHVjayByb3VuZGVkL3RpbnkuXG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbWluLXdpZHRoJyk7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycpO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvdHRvbScpO1xuXG4gICAgICAgICAgICBsZXQgaGVhZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZGlhbG9nSGVhZGVyJylbMF07XG4gICAgICAgICAgICBoZWFkZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2J1dHRvbicpWzBdLnN0eWxlLmNvbG9yID0gJ3JnYmEoMCwgMCwgMCwgMC41NCknO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JztcblxuICAgICAgICAgICAgaWYgKGRpc3BsYXlTdGF0ZVJlZi5jdXJyZW50ICE9PSAnTUFYSU1JWkVEJykge1xuICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnTUFYSU1JWkVEJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ01BWElNSVpFRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMDAwMCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxXaW5kb3dEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgbGVmdE9mZnNldD17cHJvcHMubGVmdE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgICAgICBvcGVuPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25DbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZWVwTW91bnRlZFxuICAgICAgICAgICAgICAgICAgICBoaWRlQmFja2Ryb3A9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm1lZXRpbmctd2luZG93LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm1lZXRpbmctd2luZG93LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwcm9wcy5jb250YWluZXJDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIFBhcGVyQ29tcG9uZW50PXtQYXBlckNvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdtZWV0aW5nRGlhbG9nUGFwZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBkaXNwbGF5U3RhdGUgPT09ICdNSU5JTUlaRUQnID8gJ3dpbmRvdy1wYXBlci1taW4nIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/ICd3aW5kb3ctcGFwZXItbWF4JyA6ICd3aW5kb3ctcGFwZXItcGlubmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGRpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcgPyBnZXRNaW5pbWl6ZWRTdHlsZSgpIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/IGdldE1heGltaXplZFN0eWxlKCkgOiBnZXRQaW5uZWRTdHlsZSgpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXsnd2luZG93LWNvbnRlbnQnfSBzdHlsZT17e292ZXJmbG93OiAnaGlkZGVuJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHsoZGlzcGxheVN0YXRlID09PSAnUElOTkVEJyA/ICd3aW5kb3ctcGlubmVkICcgOiAnJykgKyAndy0xMDAgaC0xMDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbGxhcHNlZCBwaWxsOiB0aGUgT05MWSB2aXNpYmxlIGNvbnRyb2wgaXMgdW5waW4gKHJlc3RvcmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHdpbmRvdykuIEV2ZXJ5dGhpbmcgZWxzZSBzdGF5cyBtb3VudGVkIGJlbG93LCBoaWRkZW4uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHByb3BzLm9uUGluKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJVbnBpbiBtZWV0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzU2cHgnLCBoZWlnaHQ6ICc1NnB4JywgY29sb3I6ICcjMDAwMDAwJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01BWElNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3t3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJywgZGlzcGxheTogY29sbGFwc2VkID8gJ25vbmUnIDogJ2Jsb2NrJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtZWV0aW5nLXdpbmRvdy1oZWFkZXInfSBpZD1cIm1lZXRpbmctd2luZG93LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAnLTJweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGlhbG9nSGVhZGVyIHJvdyd9IHN0eWxlPXt7bWFyZ2luVG9wOiAnMjRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemVWaWV3KGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICc0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01JTklNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZVZpZXcoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucGlubmFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uUGluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvV2luZG93RGlhbG9nPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5l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QU07RUFBRSxHQUV2RG5GLFdBQVcsaUJBQ1gvRCxNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsY0FFUU0sWUFBWSxLQUFLLFdBQVcsZ0JBQ3hCaEUsTUFBQSxDQUFBWSxPQUFBLENBQUE4QyxhQUFBLENBQUNuRCxXQUFBLENBQUFLLE9BQVU7SUFDUG9JLE9BQU8sRUFBR3RJLENBQUMsSUFBSztNQUNaa0YsWUFBWSxDQUFDbEYsQ0FBQyxDQUFDO0lBQ25CLENBQUU7SUFDRitHLEtBQUssRUFBRTtNQUNIMEIsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZuSixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ3BELEtBQUEsQ0FBQU0sT0FBSTtJQUFDd0UsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBQUMsZ0JBRWJwRixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ25ELFdBQUEsQ0FBQUssT0FBVTtJQUNQb0ksT0FBTyxFQUFHdEksQ0FBQyxJQUFLO01BQ1ppRixZQUFZLENBQUNqRixDQUFDLENBQUM7SUFDbkIsQ0FBRTtJQUNGK0csS0FBSyxFQUFFO01BQ0gwQixXQUFXLEVBQUU7SUFDakI7RUFBRSxnQkFFRm5KLE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSxDQUFDcEQsS0FBQSxDQUFBTSxPQUFJO0lBQUN3RSxFQUFFLEVBQUU7RUFBVyxDQUFDLENBQ2QsQ0FFbkIsQ0FBQyxFQUdOM0MsS0FBSyxDQUFDNEUsUUFBUSxpQkFDZHJILE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSwyQkFDSTFELE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSxDQUFDbkQsV0FBQSxDQUFBSyxPQUFVO0lBQ1BvSSxPQUFPLEVBQUd0SSxDQUFDLElBQUs7TUFDWitCLEtBQUssQ0FBQ3dHLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUU7SUFDRnhCLEtBQUssRUFBRTtNQUNIMEIsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZuSixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ3BELEtBQUEsQ0FBQU0sT0FBSTtJQUFDd0UsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBQ1gsQ0FFUixDQUNKLENBRVIsQ0FDSixDQUFDLEVBRUZ2QixRQUVDLENBQ0osQ0FDSyxDQUNiLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFBQyxJQUFBdUYsUUFBQSxHQUFBQyxPQUFBLENBQUF6SSxPQUFBLEdBRWFnRCxNQUFNIiwiaWdub3JlTGlzdCI6W119
@@ -25,13 +25,16 @@ const withStyledDialog = Component => (0, _withStyles.default)(theme => ({
25
25
  pointerEvents: "auto",
26
26
  width: "100%",
27
27
  maxWidth: "100%",
28
- height: "calc(100% - 112px)",
28
+ height: "calc(100% - 108px)",
29
29
  position: "absolute",
30
30
  overflow: 'hidden',
31
- margin: "8px",
31
+ marginLeft: "4px !important",
32
32
  bottom: 0,
33
- left: '164px',
34
- top: '40px',
33
+ // Left edge tracks the menu drawer width (passed through from
34
+ // WindowViewPort → Window). Falls back to the old static value if a
35
+ // caller doesn't supply leftOffset.
36
+ left: props.leftOffset != null ? props.leftOffset : '164px',
37
+ top: '64px',
35
38
  boxShadow: "none",
36
39
  zIndex: 0,
37
40
  "@media (max-width:991px)": {
@@ -57,4 +60,4 @@ const WindowDialog = props => {
57
60
  return /*#__PURE__*/_react.default.createElement(StyledDialog, props);
58
61
  };
59
62
  var _default = exports.default = WindowDialog;
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfd2l0aFN0eWxlcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRGlhbG9nIiwiX2V4Y2x1ZGVkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIndpdGhTdHlsZWREaWFsb2ciLCJDb21wb25lbnQiLCJ3aXRoU3R5bGVzIiwidGhlbWUiLCJyb290IiwicG9pbnRlckV2ZW50cyIsInpJbmRleCIsImxlZnQiLCJib3JkZXJSYWRpdXMiLCJwb3NpdGlvbiIsInBhcGVyIiwicHJvcHMiLCJ3aWR0aCIsIm1heFdpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJtYXJnaW4iLCJib3R0b20iLCJ0b3AiLCJib3hTaGFkb3ciLCJfcmVmIiwiY2xhc3NlcyIsImxlZnRPZmZzZXQiLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVkRGlhbG9nIiwiRGlhbG9nIiwiV2luZG93RGlhbG9nIiwidXNlRWZmZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9XaW5kb3dEaWFsb2cuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tICdAbXVpL3N0eWxlcy93aXRoU3R5bGVzJztcbmltcG9ydCBEaWFsb2cgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nXCI7XG5cbmNvbnN0IHdpdGhTdHlsZWREaWFsb2cgPSAoQ29tcG9uZW50KSA9PlxuICAgIHdpdGhTdHlsZXMoKHRoZW1lKSA9PiAoe1xuICAgICAgICByb290OiB7XG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgICAgIHpJbmRleDogMCxcbiAgICAgICAgICAgIGxlZnQ6ICd1bnNldCcsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgcG9zaXRpb246ICd1bnNldCdcbiAgICAgICAgfSxcbiAgICAgICAgcGFwZXI6IChwcm9wcykgPT4gKHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwiYXV0b1wiLFxuICAgICAgICAgICAgd2lkdGg6IGAxMDAlYCxcbiAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgIGhlaWdodDogXCJjYWxjKDEwMCUgLSAxMTJweClcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICBtYXJnaW46IFwiOHB4XCIsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICBsZWZ0OiAnMTY0cHgnLFxuICAgICAgICAgICAgdG9wOiAnNDBweCcsXG4gICAgICAgICAgICBib3hTaGFkb3c6IFwibm9uZVwiLFxuICAgICAgICAgICAgekluZGV4OiAwLFxuICAgICAgICAgICAgXCJAbWVkaWEgKG1heC13aWR0aDo5OTFweClcIjoge1xuICAgICAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH0pKSgoeyBjbGFzc2VzLCBsZWZ0T2Zmc2V0LCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgIGNsYXNzZXM9e3sgcGFwZXI6IGNsYXNzZXMucGFwZXIsIHJvb3Q6IGNsYXNzZXMucm9vdCB9fVxuICAgICAgICAvPlxuICAgICkpO1xuXG5jb25zdCBTdHlsZWREaWFsb2cgPSB3aXRoU3R5bGVkRGlhbG9nKERpYWxvZyk7XG5cbmNvbnN0IFdpbmRvd0RpYWxvZyA9IChwcm9wcykgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiA8U3R5bGVkRGlhbG9nIHsuLi5wcm9wc30gLz47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBXaW5kb3dEaWFsb2c7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUEwQyxNQUFBSSxTQUFBO0FBQUEsU0FBQUYsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBTix3QkFBQU0sQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVYsdUJBQUEsWUFBQUEsQ0FBQU0sQ0FBQSxFQUFBRyxDQUFBLFNBQUFBLENBQUEsSUFBQUgsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsU0FBQUQsQ0FBQSxNQUFBTyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFSLE9BQUEsRUFBQUYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5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
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfd2l0aFN0eWxlcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRGlhbG9nIiwiX2V4Y2x1ZGVkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIndpdGhTdHlsZWREaWFsb2ciLCJDb21wb25lbnQiLCJ3aXRoU3R5bGVzIiwidGhlbWUiLCJyb290IiwicG9pbnRlckV2ZW50cyIsInpJbmRleCIsImxlZnQiLCJib3JkZXJSYWRpdXMiLCJwb3NpdGlvbiIsInBhcGVyIiwicHJvcHMiLCJ3aWR0aCIsIm1heFdpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJtYXJnaW5MZWZ0IiwiYm90dG9tIiwibGVmdE9mZnNldCIsInRvcCIsImJveFNoYWRvdyIsIl9yZWYiLCJjbGFzc2VzIiwiY3JlYXRlRWxlbWVudCIsIlN0eWxlZERpYWxvZyIsIkRpYWxvZyIsIldpbmRvd0RpYWxvZyIsInVzZUVmZmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvV2luZG93RGlhbG9nLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3R9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHdpdGhTdHlsZXMgZnJvbSAnQG11aS9zdHlsZXMvd2l0aFN0eWxlcyc7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJAbXVpL21hdGVyaWFsL0RpYWxvZ1wiO1xuXG5jb25zdCB3aXRoU3R5bGVkRGlhbG9nID0gKENvbXBvbmVudCkgPT5cbiAgICB3aXRoU3R5bGVzKCh0aGVtZSkgPT4gKHtcbiAgICAgICAgcm9vdDoge1xuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgICB6SW5kZXg6IDAsXG4gICAgICAgICAgICBsZWZ0OiAndW5zZXQnLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgIHBvc2l0aW9uOiAndW5zZXQnXG4gICAgICAgIH0sXG4gICAgICAgIHBhcGVyOiAocHJvcHMpID0+ICh7XG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBcImF1dG9cIixcbiAgICAgICAgICAgIHdpZHRoOiBgMTAwJWAsXG4gICAgICAgICAgICBtYXhXaWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICBoZWlnaHQ6IFwiY2FsYygxMDAlIC0gMTA4cHgpXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgbWFyZ2luTGVmdDogXCI0cHggIWltcG9ydGFudFwiLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgLy8gTGVmdCBlZGdlIHRyYWNrcyB0aGUgbWVudSBkcmF3ZXIgd2lkdGggKHBhc3NlZCB0aHJvdWdoIGZyb21cbiAgICAgICAgICAgIC8vIFdpbmRvd1ZpZXdQb3J0IOKGkiBXaW5kb3cpLiBGYWxscyBiYWNrIHRvIHRoZSBvbGQgc3RhdGljIHZhbHVlIGlmIGFcbiAgICAgICAgICAgIC8vIGNhbGxlciBkb2Vzbid0IHN1cHBseSBsZWZ0T2Zmc2V0LlxuICAgICAgICAgICAgbGVmdDogcHJvcHMubGVmdE9mZnNldCAhPSBudWxsID8gcHJvcHMubGVmdE9mZnNldCA6ICcxNjRweCcsXG4gICAgICAgICAgICB0b3A6ICc2NHB4JyxcbiAgICAgICAgICAgIGJveFNoYWRvdzogXCJub25lXCIsXG4gICAgICAgICAgICB6SW5kZXg6IDAsXG4gICAgICAgICAgICBcIkBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KVwiOiB7XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfSkpKCh7IGNsYXNzZXMsIGxlZnRPZmZzZXQsIC4uLnByb3BzIH0pID0+IChcbiAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgY2xhc3Nlcz17eyBwYXBlcjogY2xhc3Nlcy5wYXBlciwgcm9vdDogY2xhc3Nlcy5yb290IH19XG4gICAgICAgIC8+XG4gICAgKSk7XG5cbmNvbnN0IFN0eWxlZERpYWxvZyA9IHdpdGhTdHlsZWREaWFsb2coRGlhbG9nKTtcblxuY29uc3QgV2luZG93RGlhbG9nID0gKHByb3BzKSA9PiB7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIDxTdHlsZWREaWFsb2cgey4uLnByb3BzfSAvPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFdpbmRvd0RpYWxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQTBDLE1BQUFJLFNBQUE7QUFBQSxTQUFBRix1QkFBQUcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtB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QkFBVSxFQUFFQyxLQUFLLEtBQU07RUFDbkJDLElBQUksRUFBRTtJQUNGQyxhQUFhLEVBQUUsTUFBTTtJQUNyQkMsTUFBTSxFQUFFLENBQUM7SUFDVEMsSUFBSSxFQUFFLE9BQU87SUFDYkMsWUFBWSxFQUFFLEtBQUs7SUFDbkJDLFFBQVEsRUFBRTtFQUNkLENBQUM7RUFDREMsS0FBSyxFQUFHQyxLQUFLLEtBQU07SUFDZk4sYUFBYSxFQUFFLE1BQU07SUFDckJPLEtBQUssUUFBUTtJQUNiQyxRQUFRLEVBQUUsTUFBTTtJQUNoQkMsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QkwsUUFBUSxFQUFFLFVBQVU7SUFDcEJNLFFBQVEsRUFBRSxRQUFRO0lBQ2xCQyxVQUFVLEVBQUUsZ0JBQWdCO0lBQzVCQyxNQUFNLEVBQUUsQ0FBQztJQUNUO0lBQ0E7SUFDQTtJQUNBVixJQUFJLEVBQUVJLEtBQUssQ0FBQ08sVUFBVSxJQUFJLElBQUksR0FBR1AsS0FBSyxDQUFDTyxVQUFVLEdBQUcsT0FBTztJQUMzREMsR0FBRyxFQUFFLE1BQU07SUFDWEMsU0FBUyxFQUFFLE1BQU07SUFDakJkLE1BQU0sRUFBRSxDQUFDO0lBQ1QsMEJBQTBCLEVBQUU7TUFDeEJPLFFBQVEsRUFBRTtJQUNkO0VBQ0osQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUNRLElBQUE7RUFBQSxJQUFDO01BQUVDLE9BQU87TUFBRUo7SUFBcUIsQ0FBQyxHQUFBRyxJQUFBO0lBQVBWLEtBQUssR0FBQWhCLHdCQUFBLENBQUEwQixJQUFBLEVBQUFwRCxTQUFBO0VBQUEsb0JBQ2hDTixNQUFBLENBQUFTLE9BQUEsQ0FBQW1ELGFBQUEsQ0FBQ3RCLFNBQVMsRUFBQVosUUFBQSxLQUNGc0IsS0FBSztJQUNUVyxPQUFPLEVBQUU7TUFBRVosS0FBSyxFQUFFWSxPQUFPLENBQUNaLEtBQUs7TUFBRU4sSUFBSSxFQUFFa0IsT0FBTyxDQUFDbEI7SUFBSztFQUFFLEVBQ3pELENBQUM7QUFBQSxDQUNMLENBQUM7QUFFTixNQUFNb0IsWUFBWSxHQUFHeEIsZ0JBQWdCLENBQUN5QixlQUFNLENBQUM7QUFFN0MsTUFBTUMsWUFBWSxHQUFJZixLQUFLLElBQUs7RUFDNUIsSUFBQWdCLGdCQUFTLEVBQUMsTUFBTSxDQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQ04sb0JBQU9oRSxNQUFBLENBQUFTLE9BQUEsQ0FBQW1ELGFBQUEsQ0FBQ0MsWUFBWSxFQUFLYixLQUFRLENBQUM7QUFDdEMsQ0FBQztBQUFDLElBQUFpQixRQUFBLEdBQUFDLE9BQUEsQ0FBQXpELE9BQUEsR0FFYXNELFlBQVkiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -63,12 +63,18 @@ const WindowViewContainer = props => {
63
63
  windowLeftOffset = windowLeftOffsetParam.value;
64
64
  }
65
65
  }
66
+
67
+ // Track the menu drawer width (passed from the dashboard: DRAWER_WIDTH
68
+ // open / MINI_WIDTH collapsed) so the overlay aligns with the main
69
+ // ViewPort instead of sitting at a static offset. A per-view
70
+ // windowLeftOffset parameter still wins when present.
71
+ const drawerOffset = props.menuOffset != null ? props.menuOffset + 'px' : '320px';
66
72
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, view && /*#__PURE__*/_react.default.createElement(_Window.default, {
67
73
  pinnable: true,
68
74
  minimizable: false,
69
75
  open: true,
70
76
  displayState: defaultDisplayState,
71
- leftOffset: windowLeftOffset || '344px',
77
+ leftOffset: windowLeftOffset || drawerOffset,
72
78
  onPinned: () => {
73
79
  if (!pinned) {
74
80
  setPinned(true);
@@ -93,4 +99,4 @@ const WindowViewContainer = props => {
93
99
  return renderView();
94
100
  };
95
101
  var _default = exports.default = WindowViewContainer;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfV2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9WaWV3IiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9JY29uIiwiX0ljb25CdXR0b24iLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJXaW5kb3dWaWV3Q29udGFpbmVyIiwicHJvcHMiLCJ2aWV3Iiwic2V0VmlldyIsIlJlYWN0IiwidXNlU3RhdGUiLCJwaW5uZWQiLCJzZXRQaW5uZWQiLCJkZWZhdWx0RGlzcGxheVN0YXRlIiwic2V0RGVmYXVsdERpc3BsYXlTdGF0ZSIsImNvdW50ZXIiLCJ1c2VSZWYiLCJsb2FkVmlldyIsImNvbnRleHQiLCJrZXlzIiwiZmluZCIsImtleSIsIndpbmRvd1ZpZXciLCJVdGlscyIsImlzTnVsbCIsInVzZUVmZmVjdCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiIsImhhbmRsZXIiLCJpZCIsIm9uQ29udGV4dENoYW5nZSIsIm5ld1ZhbHVlcyIsInRoZW4iLCJpbml0aWFsQ29udGV4dCIsInN0YXRlQ2hhbmdlSGFuZGxlciIsInJlbmRlclZpZXciLCJ3aW5kb3dMZWZ0T2Zmc2V0IiwiX3ZpZXckcGFyYW1ldGVycyIsIndpbmRvd0xlZnRPZmZzZXRQYXJhbSIsInBhcmFtZXRlcnMiLCJwIiwibmFtZSIsInZhbHVlIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwicGlubmFibGUiLCJtaW5pbWl6YWJsZSIsIm9wZW4iLCJkaXNwbGF5U3RhdGUiLCJsZWZ0T2Zmc2V0Iiwib25QaW5uZWQiLCJvblBpbiIsInVwZGF0ZUNvbnRleHQiLCJ3aW5kb3dEaXNwbGF5U3RhdGUiLCJvbkNsb3NlIiwiVmlldyIsImNvbmZpZyIsImhhbmRsZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvV2luZG93Vmlld1BvcnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4vVmlld0NvbnRhaW5lci5jc3MnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICcuL1dpbmRvdyc7XG5pbXBvcnQge1ZpZXd9IGZyb20gJy4vVmlldyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5cbmNvbnN0IFdpbmRvd1ZpZXdDb250YWluZXIgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdmlldywgc2V0Vmlld10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcGlubmVkLCBzZXRQaW5uZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtkZWZhdWx0RGlzcGxheVN0YXRlLCBzZXREZWZhdWx0RGlzcGxheVN0YXRlXSA9IFJlYWN0LnVzZVN0YXRlKCdNQVhJTUlaRUQnKTtcbiAgICBjb25zdCBjb3VudGVyID0gdXNlUmVmKDApO1xuXG4gICAgZnVuY3Rpb24gbG9hZFZpZXcoY29udGV4dCkge1xuICAgICAgICBpZiAoY29udGV4dCkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNvbnRleHQpXG4gICAgICAgICAgICAgICAgLmZpbmQoKGtleSkgPT4ga2V5ID09PSAnd2luZG93VmlldycpKSB7XG4gICAgICAgICAgICAgICAgc2V0Vmlldyhjb250ZXh0LndpbmRvd1ZpZXcpO1xuXG4gICAgICAgICAgICAgICAgaWYoIVV0aWxzLmlzTnVsbChjb250ZXh0LnBpbm5lZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UGlubmVkKGNvbnRleHQucGlubmVkKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZihVdGlscy5pc051bGwoY29udGV4dC53aW5kb3dWaWV3KSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRQaW5uZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmKCFVdGlscy5pc051bGwoY29udGV4dC5kZWZhdWx0RGlzcGxheVN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXREZWZhdWx0RGlzcGxheVN0YXRlKGNvbnRleHQuZGVmYXVsdERpc3BsYXlTdGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiB7XG4gICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dpbmRvdy12aWV3LXBvcnQnO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25Db250ZXh0Q2hhbmdlOiAoY29udGV4dCwgbmV3VmFsdWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRWaWV3KG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKGluaXRpYWxDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgbG9hZFZpZXcoaW5pdGlhbENvbnRleHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuc3RhdGVDaGFuZ2VIYW5kbGVyKHtwaW5uZWR9KTtcbiAgICB9LCBbcGlubmVkXSk7XG5cbiAgICBjb25zdCByZW5kZXJWaWV3ID0gKCkgPT4ge1xuICAgICAgICBsZXQgd2luZG93TGVmdE9mZnNldDtcbiAgICAgICAgaWYodmlldykge1xuICAgICAgICAgICAgbGV0IHdpbmRvd0xlZnRPZmZzZXRQYXJhbSA9IHZpZXcucGFyYW1ldGVycz8uZmluZCgocCkgPT4gcC5uYW1lID09PSAnd2luZG93TGVmdE9mZnNldCcpO1xuICAgICAgICAgICAgaWYod2luZG93TGVmdE9mZnNldFBhcmFtKSB7XG4gICAgICAgICAgICAgICAgd2luZG93TGVmdE9mZnNldCA9IHdpbmRvd0xlZnRPZmZzZXRQYXJhbS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiA8PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZpZXcgJiZcbiAgICAgICAgICAgICAgICA8V2luZG93IHBpbm5hYmxlPXt0cnVlfSBtaW5pbWl6YWJsZT17ZmFsc2V9IG9wZW49e3RydWV9IGRpc3BsYXlTdGF0ZT17ZGVmYXVsdERpc3BsYXlTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRPZmZzZXQ9e3dpbmRvd0xlZnRPZmZzZXQgfHwgJzM0NHB4J31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUGlubmVkPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGlubmVkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvblBpbj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci51cGRhdGVDb250ZXh0KHt3aW5kb3dEaXNwbGF5U3RhdGU6IHBpbm5lZCA/ICdNQVhJTUlaRUQnIDogJ1BJTk5FRCd9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQaW5uZWQoIXBpbm5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fSBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGlubmVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPFZpZXcgY29uZmlnPXt2aWV3LmNvbmZpZ30ga2V5PXt2aWV3LmNvbmZpZy5pZH0gcGFyYW1ldGVycz17dmlldy5wYXJhbWV0ZXJzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e3ZpZXcuaGFuZGxlfS8+XG4gICAgICAgICAgICAgICAgPC9XaW5kb3c+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvPjtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbmRlclZpZXcoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFdpbmRvd1ZpZXdDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksbUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQUosc0JBQUEs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
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfV2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9WaWV3IiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9JY29uIiwiX0ljb25CdXR0b24iLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJXaW5kb3dWaWV3Q29udGFpbmVyIiwicHJvcHMiLCJ2aWV3Iiwic2V0VmlldyIsIlJlYWN0IiwidXNlU3RhdGUiLCJwaW5uZWQiLCJzZXRQaW5uZWQiLCJkZWZhdWx0RGlzcGxheVN0YXRlIiwic2V0RGVmYXVsdERpc3BsYXlTdGF0ZSIsImNvdW50ZXIiLCJ1c2VSZWYiLCJsb2FkVmlldyIsImNvbnRleHQiLCJrZXlzIiwiZmluZCIsImtleSIsIndpbmRvd1ZpZXciLCJVdGlscyIsImlzTnVsbCIsInVzZUVmZmVjdCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiIsImhhbmRsZXIiLCJpZCIsIm9uQ29udGV4dENoYW5nZSIsIm5ld1ZhbHVlcyIsInRoZW4iLCJpbml0aWFsQ29udGV4dCIsInN0YXRlQ2hhbmdlSGFuZGxlciIsInJlbmRlclZpZXciLCJ3aW5kb3dMZWZ0T2Zmc2V0IiwiX3ZpZXckcGFyYW1ldGVycyIsIndpbmRvd0xlZnRPZmZzZXRQYXJhbSIsInBhcmFtZXRlcnMiLCJwIiwibmFtZSIsInZhbHVlIiwiZHJhd2VyT2Zmc2V0IiwibWVudU9mZnNldCIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsInBpbm5hYmxlIiwibWluaW1pemFibGUiLCJvcGVuIiwiZGlzcGxheVN0YXRlIiwibGVmdE9mZnNldCIsIm9uUGlubmVkIiwib25QaW4iLCJ1cGRhdGVDb250ZXh0Iiwid2luZG93RGlzcGxheVN0YXRlIiwib25DbG9zZSIsIlZpZXciLCJjb25maWciLCJoYW5kbGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L1dpbmRvd1ZpZXdQb3J0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICcuL1ZpZXdDb250YWluZXIuY3NzJztcbmltcG9ydCBXaW5kb3cgZnJvbSAnLi9XaW5kb3cnO1xuaW1wb3J0IHtWaWV3fSBmcm9tICcuL1ZpZXcnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBXaW5kb3dWaWV3Q29udGFpbmVyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3ZpZXcsIHNldFZpZXddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Bpbm5lZCwgc2V0UGlubmVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbZGVmYXVsdERpc3BsYXlTdGF0ZSwgc2V0RGVmYXVsdERpc3BsYXlTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSgnTUFYSU1JWkVEJyk7XG4gICAgY29uc3QgY291bnRlciA9IHVzZVJlZigwKTtcblxuICAgIGZ1bmN0aW9uIGxvYWRWaWV3KGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGNvbnRleHQpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhjb250ZXh0KVxuICAgICAgICAgICAgICAgIC5maW5kKChrZXkpID0+IGtleSA9PT0gJ3dpbmRvd1ZpZXcnKSkge1xuICAgICAgICAgICAgICAgIHNldFZpZXcoY29udGV4dC53aW5kb3dWaWV3KTtcblxuICAgICAgICAgICAgICAgIGlmKCFVdGlscy5pc051bGwoY29udGV4dC5waW5uZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFBpbm5lZChjb250ZXh0LnBpbm5lZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYoVXRpbHMuaXNOdWxsKGNvbnRleHQud2luZG93VmlldykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UGlubmVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZighVXRpbHMuaXNOdWxsKGNvbnRleHQuZGVmYXVsdERpc3BsYXlTdGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RGVmYXVsdERpc3BsYXlTdGF0ZShjb250ZXh0LmRlZmF1bHREaXNwbGF5U3RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5hZGRBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24oe1xuICAgICAgICAgICAgaGFuZGxlcjoge1xuICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd3aW5kb3ctdmlldy1wb3J0JztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uQ29udGV4dENoYW5nZTogKGNvbnRleHQsIG5ld1ZhbHVlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsb2FkVmlldyhuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChpbml0aWFsQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIGxvYWRWaWV3KGluaXRpYWxDb250ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLnN0YXRlQ2hhbmdlSGFuZGxlcih7cGlubmVkfSk7XG4gICAgfSwgW3Bpbm5lZF0pO1xuXG4gICAgY29uc3QgcmVuZGVyVmlldyA9ICgpID0+IHtcbiAgICAgICAgbGV0IHdpbmRvd0xlZnRPZmZzZXQ7XG4gICAgICAgIGlmKHZpZXcpIHtcbiAgICAgICAgICAgIGxldCB3aW5kb3dMZWZ0T2Zmc2V0UGFyYW0gPSB2aWV3LnBhcmFtZXRlcnM/LmZpbmQoKHApID0+IHAubmFtZSA9PT0gJ3dpbmRvd0xlZnRPZmZzZXQnKTtcbiAgICAgICAgICAgIGlmKHdpbmRvd0xlZnRPZmZzZXRQYXJhbSkge1xuICAgICAgICAgICAgICAgIHdpbmRvd0xlZnRPZmZzZXQgPSB3aW5kb3dMZWZ0T2Zmc2V0UGFyYW0udmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcmFjayB0aGUgbWVudSBkcmF3ZXIgd2lkdGggKHBhc3NlZCBmcm9tIHRoZSBkYXNoYm9hcmQ6IERSQVdFUl9XSURUSFxuICAgICAgICAvLyBvcGVuIC8gTUlOSV9XSURUSCBjb2xsYXBzZWQpIHNvIHRoZSBvdmVybGF5IGFsaWducyB3aXRoIHRoZSBtYWluXG4gICAgICAgIC8vIFZpZXdQb3J0IGluc3RlYWQgb2Ygc2l0dGluZyBhdCBhIHN0YXRpYyBvZmZzZXQuIEEgcGVyLXZpZXdcbiAgICAgICAgLy8gd2luZG93TGVmdE9mZnNldCBwYXJhbWV0ZXIgc3RpbGwgd2lucyB3aGVuIHByZXNlbnQuXG4gICAgICAgIGNvbnN0IGRyYXdlck9mZnNldCA9IHByb3BzLm1lbnVPZmZzZXQgIT0gbnVsbCA/IHByb3BzLm1lbnVPZmZzZXQgKyAncHgnIDogJzMyMHB4JztcblxuICAgICAgICByZXR1cm4gPD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2aWV3ICYmXG4gICAgICAgICAgICAgICAgPFdpbmRvdyBwaW5uYWJsZT17dHJ1ZX0gbWluaW1pemFibGU9e2ZhbHNlfSBvcGVuPXt0cnVlfSBkaXNwbGF5U3RhdGU9e2RlZmF1bHREaXNwbGF5U3RhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0T2Zmc2V0PXt3aW5kb3dMZWZ0T2Zmc2V0IHx8IGRyYXdlck9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUGlubmVkPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGlubmVkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvblBpbj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci51cGRhdGVDb250ZXh0KHt3aW5kb3dEaXNwbGF5U3RhdGU6IHBpbm5lZCA/ICdNQVhJTUlaRUQnIDogJ1BJTk5FRCd9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQaW5uZWQoIXBpbm5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fSBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGlubmVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPFZpZXcgY29uZmlnPXt2aWV3LmNvbmZpZ30ga2V5PXt2aWV3LmNvbmZpZy5pZH0gcGFyYW1ldGVycz17dmlldy5wYXJhbWV0ZXJzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e3ZpZXcuaGFuZGxlfS8+XG4gICAgICAgICAgICAgICAgPC9XaW5kb3c+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvPjtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbmRlclZpZXcoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFdpbmRvd1ZpZXdDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksbUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUFnQyxTQUFBRSx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFULHdCQUFBUyxDQUFBLEVBQUFHLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBYix1QkFBQSxZQUFBQSxDQUFBUyxDQUFBLEVBQUFHLENBQUEsU0FBQUEsQ0FBQSxJQUFBSCxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLE1BQUFPLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQVIsT0FBQSxFQUFBRixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFTLENBQUEsTUFBQUYsQ0FBQSxHQUFBSixDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FB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