@projectcor/maia-components 2.11.104-0 → 2.11.104

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.
@@ -17,7 +17,7 @@ import { getAtRunTabTypes, getTriggerSequenceFromType, getTypeFromTriggerSequenc
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
18
  var MENTION_POPOVER_GAP_PX = 4;
19
19
  var MENTION_POPOVER_VIEWPORT_PAD_PX = 8;
20
- var MENTION_POPOVER_PREFERRED_WIDTH_PX = 360;
20
+ var MENTION_POPOVER_FALLBACK_WIDTH_PX = 320;
21
21
  /**
22
22
  * Deriva clientId, projectId, agentEntity y MCP desde el contexto global (incl.
23
23
  * `entityValues` y `chipsProject`) para filtrar recents y búsqueda GraphQL.
@@ -121,20 +121,20 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
121
121
  }
122
122
  }, [allowedTypes, activeType, defaultType]);
123
123
  var positionPopover = useCallback(function () {
124
- var _popoverAnchorRef$cur, _editorRef$current$ge, _editorRef$current, _editorRef$current$ge2, _caret$left, _caret$top;
124
+ var _popoverAnchorRef$cur, _editorRef$current$ge, _editorRef$current, _editorRef$current$ge2, _caret$top;
125
125
  var fromAnchor = popoverAnchorRef === null || popoverAnchorRef === void 0 || (_popoverAnchorRef$cur = popoverAnchorRef.current) === null || _popoverAnchorRef$cur === void 0 ? void 0 : _popoverAnchorRef$cur.getBoundingClientRect();
126
126
  var fromEditor = (_editorRef$current$ge = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current$ge2 = _editorRef$current.getEditorClientRect) === null || _editorRef$current$ge2 === void 0 ? void 0 : _editorRef$current$ge2.call(_editorRef$current)) !== null && _editorRef$current$ge !== void 0 ? _editorRef$current$ge : null;
127
127
  var widthRect = fromAnchor !== null && fromAnchor !== void 0 ? fromAnchor : fromEditor;
128
128
  var caret = getCaretRect('@');
129
- var width = widthRect && widthRect.width > 0 ? Math.min(widthRect.width, MENTION_POPOVER_PREFERRED_WIDTH_PX) : MENTION_POPOVER_PREFERRED_WIDTH_PX;
130
- var leftSource = (_caret$left = caret === null || caret === void 0 ? void 0 : caret.left) !== null && _caret$left !== void 0 ? _caret$left : widthRect && widthRect.width > 0 ? widthRect.left : null;
129
+ var width = widthRect && widthRect.width > 0 ? widthRect.width : MENTION_POPOVER_FALLBACK_WIDTH_PX;
130
+ var leftSource = widthRect && widthRect.width > 0 ? widthRect.left : caret === null || caret === void 0 ? void 0 : caret.left;
131
131
  var topSource = (_caret$top = caret === null || caret === void 0 ? void 0 : caret.top) !== null && _caret$top !== void 0 ? _caret$top : widthRect && widthRect.width > 0 ? widthRect.top : null;
132
132
  if (leftSource == null || topSource == null) return;
133
133
  var viewportW = window.innerWidth;
134
134
  var viewportH = window.innerHeight;
135
135
  var left = Math.max(MENTION_POPOVER_VIEWPORT_PAD_PX, Math.min(viewportW - width - MENTION_POPOVER_VIEWPORT_PAD_PX, leftSource));
136
136
 
137
- /** Borde inferior del popover ~4px por encima del `@` que abre las menciones. */
137
+ /** Ancho del input; borde inferior ~4px por encima del `@` que abre las menciones. */
138
138
  setPopoverPos({
139
139
  width: width,
140
140
  left: left,
@@ -363,4 +363,4 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
363
363
  close: close
364
364
  };
365
365
  };
366
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwidXNlTWVudGlvbkFsbG93ZWRUeXBlcyIsInVzZUNhcmV0UG9zaXRpb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF0UnVuVGFiVHlwZXMiLCJnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSIsImdldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlIiwianN4IiwiX2pzeCIsIk1FTlRJT05fUE9QT1ZFUl9HQVBfUFgiLCJNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYIiwiTUVOVElPTl9QT1BPVkVSX1BSRUZFUlJFRF9XSURUSF9QWCIsInVzZURlcml2ZWRTY29wZSIsIl9yZWYiLCJfY3R4JGNsaWVudCRpZCIsIl9jdHgkY2xpZW50IiwiX2N0eCRlbnRpdHlWYWx1ZXMiLCJfcmVmMiIsIl9yZWYzIiwiX2N0eCRwcm9qZWN0JGlkIiwiX2N0eCRwcm9qZWN0IiwiX2N0eCRlbnRpdHlWYWx1ZXMyIiwiX2N0eCRjaGlwc1Byb2plY3QiLCJfY3R4JGFnZW50JGVudGl0eSIsIl9jdHgkYWdlbnQiLCJfY3R4JGFnZW50JGNvbm5lY3RvcnMiLCJfY3R4JGFnZW50MiIsImN0eCIsImNsaWVudElkIiwiY2xpZW50IiwiaWQiLCJlbnRpdHlWYWx1ZXMiLCJwcm9qZWN0SWQiLCJwcm9qZWN0IiwiY2hpcHNQcm9qZWN0IiwiYWdlbnRFbnRpdHkiLCJhZ2VudCIsImVudGl0eSIsIm1jcFNsdWdzS2V5IiwiY29ubmVjdG9ycyIsImZpbmQiLCJjIiwiZ3JvdXAiLCJzbHVncyIsImpvaW4iLCJtY3BTbHVncyIsIl9jdHgkYWdlbnQkY29ubmVjdG9yczIiLCJfY3R4JGFnZW50MyIsInJhdyIsIl90b0NvbnN1bWFibGVBcnJheSIsIlNldCIsImZpbHRlciIsInMiLCJ0cmltIiwibGVuZ3RoIiwic29ydCIsInVzZU1lbnRpb25Qb3BvdmVyIiwiX3JlZjQiLCJlZGl0b3JSZWYiLCJwb3BvdmVyQW5jaG9yUmVmIiwiZW5hYmxlZFR5cGVzIiwic2tpbGxzIiwib25NZW50aW9uQWRkZWQiLCJfdXNlVCIsInQiLCJldmVudCIsIl91c2VNZW50aW9uQWxsb3dlZFR5cCIsImFsbG93ZWRUeXBlcyIsImRlZmF1bHRUeXBlIiwibWVudGlvblBvcG92ZXJaSW5kZXgiLCJ0b29sdGlwWkluZGV4IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWN0aXZlVHlwZSIsInNldEFjdGl2ZVR5cGUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBvcG92ZXJPcGVuIiwic2V0UG9wb3Zlck9wZW4iLCJfdXNlU3RhdGU1IiwiYm90dG9tIiwibGVmdCIsIndpZHRoIiwiX3VzZVN0YXRlNiIsInBvcG92ZXJQb3MiLCJzZXRQb3BvdmVyUG9zIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJpc0tleWJvYXJkTmF2QWN0aXZlIiwic2V0SXNLZXlib2FyZE5hdkFjdGl2ZSIsImhhc0VtaXR0ZWRPcGVuIiwicG9wb3ZlclJlZiIsImdldENhcmV0UmVjdCIsImRlcml2ZWRTY29wZSIsInNjb3BlIiwiX29iamVjdFNwcmVhZCIsIl91c2VFbnRpdHlTZWFyY2giLCJpdGVtcyIsImxvYWRpbmciLCJlcnJvciIsImhpZGVSZWNlbnRzTGFiZWwiLCJoYXNNb3JlIiwiaXNMb2FkaW5nTW9yZSIsImxvYWRNb3JlIiwic2VhcmNoVmFsdWUiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsInNraWxsc0NhdGFsb2dFbXB0eSIsImluY2x1ZGVzIiwicG9zaXRpb25Qb3BvdmVyIiwiX3BvcG92ZXJBbmNob3JSZWYkY3VyIiwiX2VkaXRvclJlZiRjdXJyZW50JGdlIiwiX2VkaXRvclJlZiRjdXJyZW50IiwiX2VkaXRvclJlZiRjdXJyZW50JGdlMiIsIl9jYXJldCRsZWZ0IiwiX2NhcmV0JHRvcCIsImZyb21BbmNob3IiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZnJvbUVkaXRvciIsImdldEVkaXRvckNsaWVudFJlY3QiLCJjYWxsIiwid2lkdGhSZWN0IiwiY2FyZXQiLCJNYXRoIiwibWluIiwibGVmdFNvdXJjZSIsInRvcFNvdXJjZSIsInRvcCIsInZpZXdwb3J0VyIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJ2aWV3cG9ydEgiLCJpbm5lckhlaWdodCIsIm1heCIsInJlc2V0TWVudGlvbk9wZW5UcmFja2luZyIsImNsb3NlIiwiaGFuZGxlVHJpZ2dlciIsInRyaWdnZXIiLCJhY3RpdmUiLCJpc1NraWxsVHJpZ2dlciIsImF0UnVuTGVuZ3RoIiwiYXRSdW5UYWJUeXBlcyIsImF0UnVuVHlwZXNPckFsbCIsInR5cGUiLCJpc1NsYXNoVHJpZ2dlciIsInR5cGVGcm9tQXQiLCJlZmZlY3RpdmVRdWVyeSIsInF1ZXJ5Iiwib3ZlcmZsb3dBdENvdW50IiwiZWZmZWN0aXZlQXRSdW5MZW5ndGgiLCJjb25jYXQiLCJyZXBlYXQiLCJhaUNoYXRNZW50aW9uT3BlbiIsImluc2VydFNlbGVjdGVkSXRlbSIsIml0ZW0iLCJfaXRlbSRyYXckY2xpZW50SWQiLCJfaXRlbSRyYXckY2xpZW50TmFtZSIsIl9pdGVtJHJhdyRwcm9qZWN0TmFtZSIsIl9pdGVtJHJhdyRmZWVJZCIsIl9pdGVtJHJhdyRmYXRoZXJJZCIsIl9pdGVtJHJhdyRmYXRoZXJUaXRsZSIsIl9pdGVtJHJhdyR0b3RhbFByb3llYyIsIl9pdGVtJHJhdyRuYW1lIiwiX2l0ZW0kcmF3JHBpY3R1cmUiLCJfaXRlbSRyYXckcG9zaXRpb25OYW0iLCJfaXRlbSRyYXckZW1haWwiLCJfZWRpdG9yUmVmJGN1cnJlbnQyIiwibWVudGlvbiIsImxhYmVsIiwicHJpbWFyeSIsIm1ldGFkYXRhIiwiY2xpZW50TmFtZSIsInByb2plY3ROYW1lIiwiZmVlSWQiLCJmYXRoZXJJZCIsImZhdGhlclRpdGxlIiwidG90YWxQcm95ZWN0b3MiLCJuYW1lIiwicGljdHVyZSIsInBvc2l0aW9uTmFtZSIsImVtYWlsIiwiaW5zZXJ0TWVudGlvbiIsImFpQ2hhdE1lbnRpb25TZWxlY3QiLCJTdHJpbmciLCJoYW5kbGVUeXBlQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50MyIsInN5bmNTa2lsbFRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwibmV4dFJ1bkxlbmd0aCIsImVudGl0eVR5cGUiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwiYWlDaGF0TWVudGlvblR5cGVTd2l0Y2giLCJoYW5kbGVLZXlEb3duIiwiZSIsImtleSIsInByZXZlbnREZWZhdWx0IiwibWV0YUtleSIsImFsdEtleSIsImlkeCIsImluZGV4T2YiLCJkZWx0YSIsIm5leHRJZHgiLCJwcmV2IiwidW5kZWZpbmVkIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlIiwibW91c2VFdmVudCIsIl9wb3BvdmVyUmVmJGN1cnJlbnQiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIyIiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsInByZXZJc0xvYWRpbmdNb3JlUmVmIiwicG9wb3Zlck5vZGUiLCJyZWYiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJjaGlsZHJlbiIsIm9uVHlwZUNoYW5nZSIsIm9uUmVhY2hMaXN0RW5kIiwia2V5Ym9hcmRIaW50IiwiZGVmYXVsdFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJvbkFjdGl2ZUluZGV4Q2hhbmdlIiwib25Nb3VzZU1vdmVJbkxpc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVudGlvblBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHtcbiAgQ29udGV4dE1lbnRpb25Qb3BvdmVyLFxuICBNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSLFxuICBTQ01QQW5jaG9yLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuL3VzZVQnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBFbnRpdHlTZWFyY2hTY29wZSwgdXNlRW50aXR5U2VhcmNoIH0gZnJvbSAnLi91c2VFbnRpdHlTZWFyY2gnXG5pbXBvcnQgeyB1c2VNZW50aW9uQWxsb3dlZFR5cGVzIH0gZnJvbSAnLi91c2VNZW50aW9uQWxsb3dlZFR5cGVzJ1xuaW1wb3J0IHsgdXNlQ2FyZXRQb3NpdGlvbiB9IGZyb20gJy4vdXNlQ2FyZXRQb3NpdGlvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB0eXBlIHsgU2tpbGwgfSBmcm9tICcuLi90eXBlcy9za2lsbCdcbmltcG9ydCB7XG4gIGdldEF0UnVuVGFiVHlwZXMsXG4gIGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlLFxuICBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSxcbn0gZnJvbSAnLi4vdXRpbHMvY29udGV4dE1lbnRpb25UcmlnZ2VycydcblxuY29uc3QgTUVOVElPTl9QT1BPVkVSX0dBUF9QWCA9IDRcbmNvbnN0IE1FTlRJT05fUE9QT1ZFUl9WSUVXUE9SVF9QQURfUFggPSA4XG5jb25zdCBNRU5USU9OX1BPUE9WRVJfUFJFRkVSUkVEX1dJRFRIX1BYID0gMzYwXG5cbmV4cG9ydCB0eXBlIFVzZU1lbnRpb25Qb3BvdmVyT3B0aW9ucyA9IHtcbiAgZWRpdG9yUmVmOiBSZWZPYmplY3Q8Q29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGU+XG4gIC8qKlxuICAgKiBOb2RvIHF1ZSBsaW1pdGEgZWwgYW5jaG8gbcOheGltbyBkZWwgcG9wb3ZlciAocC4gZWouIHdyYXBwZXIgZGVsIGlucHV0IGVuIE1BSUEpLlxuICAgKiBFbCBhbmNsYSB2ZXJ0aWNhbCB5IGhvcml6b250YWwgZXMgZWwgdGV4dG8vY2FyZXQgZGVsIHRyaWdnZXIgYEBgLlxuICAgKiBTaSBubyBoYXkgY2FyZXQsIHNlIHVzYSBlbCBib3JkZSBzdXBlcmlvciBlIGl6cXVpZXJkbyBkZSBlc3RlIG5vZG8uXG4gICAqL1xuICBwb3BvdmVyQW5jaG9yUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIE92ZXJyaWRlIGRlbCBzZXQgZGUgdGFicyBwZXJtaXRpZGFzOyBzaSBubyBzZSBwYXNhIHNlIGRlcml2YSBkZWwgYWdlbnQuICovXG4gIGVuYWJsZWRUeXBlcz86IENvbnRleHRFbnRpdHlUeXBlW11cbiAgLyoqIFNraWxscyBpbnllY3RhZGFzIGRpcmVjdGFtZW50ZSAoZGV2L3Rlc3RpbmcpLiBTaSBzZSBwcm92ZWVuLCBzZSBvbWl0ZSBlbCBmZXRjaCBSRVNULiAqL1xuICBza2lsbHM/OiBTa2lsbFtdXG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gZWwgdXN1YXJpbyBpbnNlcnRhIHVuYSBtZW50aW9uIHbDrWEgY2xpY2svdGVjbGFkby4gKi9cbiAgb25NZW50aW9uQWRkZWQ/OiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPSB7XG4gIHBvcG92ZXJPcGVuOiBib29sZWFuXG4gIC8qKlxuICAgKiBSZWluaWNpYSBlbCB0cmFja2luZyBkZSBgQUlfQ0hBVF9NRU5USU9OX09QRU5gIChwcmltZXJhIGFwZXJ0dXJhIHBvciBtZW5zYWplKS5cbiAgICogTGxhbWFyIHRyYXMgZW52aWFyIGVsIG1lbnNhamUgbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gICAqL1xuICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmc6ICgpID0+IHZvaWRcbiAgLyoqIFByb2Nlc2EgZWwgdHJpZ2dlciBwcm92ZW5pZW50ZSBkZWwgYENvbnRleHRNZW50aW9uRWRpdG9yLm9uSW5wdXRgLiAqL1xuICBoYW5kbGVUcmlnZ2VyOiAodHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfSkgPT4gdm9pZFxuICAvKipcbiAgICogTWFuZWpvIGRlIHRlY2xhcyByZWxhdGl2YXMgYWwgcG9wb3ZlciAobmF2ZWdhY2nDs24sIHNlbGVjY2nDs24sIGNhbWJpbyBkZVxuICAgKiB0YWIgeSBlc2NhcGUpLiBEZXZ1ZWx2ZSBgdHJ1ZWAgc2kgY29uc3VtacOzIGxhIGtleSwgcGFyYSBxdWUgZWwgY29uc3VtZXJcbiAgICogcHVlZGEgZGVjaWRpciBzaSBzZWd1aXIgcHJvY2VzYW5kbyBvdHJhcyB0ZWNsYXMgKHAuZWouIEVudGVyIHBhcmEgZW52aWFyKS5cbiAgICovXG4gIGhhbmRsZUtleURvd246IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gYm9vbGVhblxuICAvKiogTm9kbyBkZWwgcG9wb3ZlcjsgZWwgY29uc3VtZXIgZGViZSBwb3J0YXJsbyBjb24gYGNyZWF0ZVBvcnRhbGAuICovXG4gIHBvcG92ZXJOb2RlOiBSZWFjdE5vZGUgfCBudWxsXG4gIC8qKiBDaWVycmEgZWwgcG9wb3ZlciB5IGxpbXBpYSBlbCBxdWVyeS4gKi9cbiAgY2xvc2U6ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBEZXJpdmEgY2xpZW50SWQsIHByb2plY3RJZCwgYWdlbnRFbnRpdHkgeSBNQ1AgZGVzZGUgZWwgY29udGV4dG8gZ2xvYmFsIChpbmNsLlxuICogYGVudGl0eVZhbHVlc2AgeSBgY2hpcHNQcm9qZWN0YCkgcGFyYSBmaWx0cmFyIHJlY2VudHMgeSBiw7pzcXVlZGEgR3JhcGhRTC5cbiAqL1xuY29uc3QgdXNlRGVyaXZlZFNjb3BlID0gKCk6IEVudGl0eVNlYXJjaFNjb3BlID0+IHtcbiAgY29uc3QgY3R4ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGNsaWVudElkID0gY3R4LmNsaWVudD8uaWQgPz8gY3R4LmVudGl0eVZhbHVlcz8uY2xpZW50SWQgPz8gbnVsbFxuICBjb25zdCBwcm9qZWN0SWQgPSBjdHgucHJvamVjdD8uaWQgPz8gY3R4LmVudGl0eVZhbHVlcz8ucHJvamVjdElkID8/IGN0eC5jaGlwc1Byb2plY3Q/LnByb2plY3RJZCA/PyBudWxsXG4gIGNvbnN0IGFnZW50RW50aXR5ID0gY3R4LmFnZW50Py5lbnRpdHkgPz8gbnVsbFxuICBjb25zdCBtY3BTbHVnc0tleSA9IChjdHguYWdlbnQ/LmNvbm5lY3RvcnM/LmZpbmQoYyA9PiBjLmdyb3VwID09PSAnTUNQJyk/LnNsdWdzID8/IFtdKS5qb2luKCd8JylcblxuICBjb25zdCBtY3BTbHVncyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHJhdyA9IGN0eC5hZ2VudD8uY29ubmVjdG9ycz8uZmluZChjID0+IGMuZ3JvdXAgPT09ICdNQ1AnKT8uc2x1Z3MgPz8gW11cbiAgICByZXR1cm4gWy4uLm5ldyBTZXQocmF3LmZpbHRlcigocyk6IHMgaXMgc3RyaW5nID0+IHR5cGVvZiBzID09PSAnc3RyaW5nJyAmJiBzLnRyaW0oKS5sZW5ndGggPiAwKSldLnNvcnQoKVxuICB9LCBbbWNwU2x1Z3NLZXldKVxuXG4gIHJldHVybiB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoeyBjbGllbnRJZCwgcHJvamVjdElkLCBtY3BTbHVncywgYWdlbnRFbnRpdHkgfSksXG4gICAgW2NsaWVudElkLCBwcm9qZWN0SWQsIG1jcFNsdWdzLCBhZ2VudEVudGl0eV0gLy8gc2tpbGxzIHNlIGlueWVjdGEgZW4gdXNlTWVudGlvblBvcG92ZXJcbiAgKVxufVxuXG4vKipcbiAqIEVuY2Fwc3VsYSBsYSBsw7NnaWNhIGRlbCBwb3BvdmVyIGRlIEAtbWVudGlvbnMgKGVzdGFkbywgZmV0Y2ggcG9yIHRhYiwgYW5hbHl0aWNzLFxuICogcG9zaWNpb25hbWllbnRvKS4gRWwgY29uc3VtZXIgbWFudGllbmUgZWwgZWRpdG9yIHkgZWwgZW52w61vIGRlbCBtZW5zYWplLlxuICogTG9zIGZpbHRyb3MgZGUgYsO6c3F1ZWRhIHVzYW4gYHVzZURlcml2ZWRTY29wZWA6IGVzcGVjaWFsaXN0YSBwcm95ZWN0byBhY290YSB0YXJlYXNcbiAqIGFsIGBwcm9qZWN0SWRgIGRlbCBjb250ZXh0bzsgZXNwZWNpYWxpc3RhIGNsaWVudGUsIHByb3llY3RvcyBhbCBgY2xpZW50SWRgIChlbiBgZXh0cmFgIGRlIHNlYXJjaCkuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZW50aW9uUG9wb3ZlciA9ICh7XG4gIGVkaXRvclJlZixcbiAgcG9wb3ZlckFuY2hvclJlZixcbiAgZW5hYmxlZFR5cGVzLFxuICBza2lsbHMsXG4gIG9uTWVudGlvbkFkZGVkLFxufTogVXNlTWVudGlvblBvcG92ZXJPcHRpb25zKTogVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlIH0gPSB1c2VNZW50aW9uQWxsb3dlZFR5cGVzKGVuYWJsZWRUeXBlcylcbiAgY29uc3QgbWVudGlvblBvcG92ZXJaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDEyMDAsICdvdmVybGF5JylcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oZGVmYXVsdFR5cGUpXG4gIGNvbnN0IFtwb3BvdmVyT3Blbiwgc2V0UG9wb3Zlck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwb3BvdmVyUG9zLCBzZXRQb3BvdmVyUG9zXSA9IHVzZVN0YXRlPHsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9Pih7XG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgd2lkdGg6IDAsXG4gIH0pXG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzS2V5Ym9hcmROYXZBY3RpdmUsIHNldElzS2V5Ym9hcmROYXZBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhc0VtaXR0ZWRPcGVuID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwb3BvdmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZ2V0Q2FyZXRSZWN0ID0gdXNlQ2FyZXRQb3NpdGlvbigpXG5cbiAgY29uc3QgZGVyaXZlZFNjb3BlID0gdXNlRGVyaXZlZFNjb3BlKClcbiAgY29uc3Qgc2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoc2tpbGxzID8geyAuLi5kZXJpdmVkU2NvcGUsIHNraWxscyB9IDogZGVyaXZlZFNjb3BlKSxcbiAgICBbZGVyaXZlZFNjb3BlLCBza2lsbHNdXG4gIClcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgc2tpbGxzQ2F0YWxvZ0VtcHR5LFxuICB9ID0gdXNlRW50aXR5U2VhcmNoKGFjdGl2ZVR5cGUsIHNjb3BlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoYWN0aXZlVHlwZSkpIHtcbiAgICAgIHNldEFjdGl2ZVR5cGUoZGVmYXVsdFR5cGUpXG4gICAgfVxuICB9LCBbYWxsb3dlZFR5cGVzLCBhY3RpdmVUeXBlLCBkZWZhdWx0VHlwZV0pXG5cbiAgY29uc3QgcG9zaXRpb25Qb3BvdmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGZyb21BbmNob3IgPSBwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGZyb21FZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudD8uZ2V0RWRpdG9yQ2xpZW50UmVjdD8uKCkgPz8gbnVsbFxuICAgIGNvbnN0IHdpZHRoUmVjdCA9IGZyb21BbmNob3IgPz8gZnJvbUVkaXRvclxuICAgIGNvbnN0IGNhcmV0ID0gZ2V0Q2FyZXRSZWN0KCdAJylcblxuICAgIGNvbnN0IHdpZHRoID1cbiAgICAgIHdpZHRoUmVjdCAmJiB3aWR0aFJlY3Qud2lkdGggPiAwXG4gICAgICAgID8gTWF0aC5taW4od2lkdGhSZWN0LndpZHRoLCBNRU5USU9OX1BPUE9WRVJfUFJFRkVSUkVEX1dJRFRIX1BYKVxuICAgICAgICA6IE1FTlRJT05fUE9QT1ZFUl9QUkVGRVJSRURfV0lEVEhfUFhcbiAgICBjb25zdCBsZWZ0U291cmNlID0gY2FyZXQ/LmxlZnQgPz8gKHdpZHRoUmVjdCAmJiB3aWR0aFJlY3Qud2lkdGggPiAwID8gd2lkdGhSZWN0LmxlZnQgOiBudWxsKVxuICAgIGNvbnN0IHRvcFNvdXJjZSA9IGNhcmV0Py50b3AgPz8gKHdpZHRoUmVjdCAmJiB3aWR0aFJlY3Qud2lkdGggPiAwID8gd2lkdGhSZWN0LnRvcCA6IG51bGwpXG5cbiAgICBpZiAobGVmdFNvdXJjZSA9PSBudWxsIHx8IHRvcFNvdXJjZSA9PSBudWxsKSByZXR1cm5cblxuICAgIGNvbnN0IHZpZXdwb3J0VyA9IHdpbmRvdy5pbm5lcldpZHRoXG4gICAgY29uc3Qgdmlld3BvcnRIID0gd2luZG93LmlubmVySGVpZ2h0XG4gICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KFxuICAgICAgTUVOVElPTl9QT1BPVkVSX1ZJRVdQT1JUX1BBRF9QWCxcbiAgICAgIE1hdGgubWluKHZpZXdwb3J0VyAtIHdpZHRoIC0gTUVOVElPTl9QT1BPVkVSX1ZJRVdQT1JUX1BBRF9QWCwgbGVmdFNvdXJjZSlcbiAgICApXG5cbiAgICAvKiogQm9yZGUgaW5mZXJpb3IgZGVsIHBvcG92ZXIgfjRweCBwb3IgZW5jaW1hIGRlbCBgQGAgcXVlIGFicmUgbGFzIG1lbmNpb25lcy4gKi9cbiAgICBzZXRQb3BvdmVyUG9zKHtcbiAgICAgIHdpZHRoLFxuICAgICAgbGVmdCxcbiAgICAgIGJvdHRvbTogdmlld3BvcnRIIC0gdG9wU291cmNlICsgTUVOVElPTl9QT1BPVkVSX0dBUF9QWCxcbiAgICB9KVxuICB9LCBbcG9wb3ZlckFuY2hvclJlZiwgZWRpdG9yUmVmLCBnZXRDYXJldFJlY3RdKVxuXG4gIGNvbnN0IHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gZmFsc2VcbiAgfSwgW10pXG5cbiAgY29uc3QgY2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UG9wb3Zlck9wZW4oZmFsc2UpXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUoJycpXG4gIH0sIFt1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgaGFuZGxlVHJpZ2dlciA9IHVzZUNhbGxiYWNrKFxuICAgICh0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9KSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAocG9wb3Zlck9wZW4pIGNsb3NlKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0cmlnZ2VyLmFjdGl2ZSkge1xuICAgICAgICAvLyBkZXRlY3RNZW50aW9uVHJpZ2dlciBtYXJjYSBALyBjb21vIGF0UnVuTGVuZ3RoID09PSAtMSAoc2xhc2ggY29uc3VtaWRvLCBubyBxdWVkYSBlbiBxdWVyeSlcbiAgICAgICAgY29uc3QgaXNTa2lsbFRyaWdnZXIgPSBhbGxvd2VkVHlwZXMuaW5jbHVkZXMoJ3NraWxsJykgJiYgdHJpZ2dlci5hdFJ1bkxlbmd0aCA9PT0gLTFcbiAgICAgICAgY29uc3QgYXRSdW5UYWJUeXBlcyA9IGdldEF0UnVuVGFiVHlwZXMoYWxsb3dlZFR5cGVzKVxuICAgICAgICBjb25zdCBhdFJ1blR5cGVzT3JBbGwgPSBhdFJ1blRhYlR5cGVzLmxlbmd0aCA+IDAgPyBhdFJ1blRhYlR5cGVzIDogYWxsb3dlZFR5cGVzLmZpbHRlcih0eXBlID0+IHR5cGUgIT09ICdza2lsbCcpXG4gICAgICAgIGNvbnN0IGlzU2xhc2hUcmlnZ2VyID0gdHJpZ2dlci5hdFJ1bkxlbmd0aCA8IDBcblxuICAgICAgICBsZXQgdHlwZUZyb21BdDogQ29udGV4dEVudGl0eVR5cGVcbiAgICAgICAgbGV0IGVmZmVjdGl2ZVF1ZXJ5OiBzdHJpbmdcblxuICAgICAgICBpZiAoaXNTa2lsbFRyaWdnZXIpIHtcbiAgICAgICAgICB0eXBlRnJvbUF0ID0gJ3NraWxsJ1xuICAgICAgICAgIGVmZmVjdGl2ZVF1ZXJ5ID0gdHJpZ2dlci5xdWVyeVxuICAgICAgICB9IGVsc2UgaWYgKGlzU2xhc2hUcmlnZ2VyKSB7XG4gICAgICAgICAgdHlwZUZyb21BdCA9IGdldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlKHRyaWdnZXIuYXRSdW5MZW5ndGgsIGFsbG93ZWRUeXBlcywgZGVmYXVsdFR5cGUpXG4gICAgICAgICAgZWZmZWN0aXZlUXVlcnkgPSB0cmlnZ2VyLnF1ZXJ5XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgb3ZlcmZsb3dBdENvdW50ID0gTWF0aC5tYXgoMCwgdHJpZ2dlci5hdFJ1bkxlbmd0aCAtIGF0UnVuVGFiVHlwZXMubGVuZ3RoKVxuICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZUF0UnVuTGVuZ3RoID0gTWF0aC5taW4odHJpZ2dlci5hdFJ1bkxlbmd0aCwgYXRSdW5UeXBlc09yQWxsLmxlbmd0aClcbiAgICAgICAgICBlZmZlY3RpdmVRdWVyeSA9IGAkeydAJy5yZXBlYXQob3ZlcmZsb3dBdENvdW50KX0ke3RyaWdnZXIucXVlcnl9YFxuICAgICAgICAgIHR5cGVGcm9tQXQgPSBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZShlZmZlY3RpdmVBdFJ1bkxlbmd0aCwgYXRSdW5UeXBlc09yQWxsLCBkZWZhdWx0VHlwZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcG9wb3Zlck9wZW4pIHtcbiAgICAgICAgICBzZXRQb3BvdmVyT3Blbih0cnVlKVxuICAgICAgICAgIHNldEFjdGl2ZVR5cGUodHlwZUZyb21BdClcbiAgICAgICAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgICAgICAgIGlmICghaGFzRW1pdHRlZE9wZW4uY3VycmVudCkge1xuICAgICAgICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdE1lbnRpb25PcGVuLCB7IHR5cGU6IHR5cGVGcm9tQXQgfSlcbiAgICAgICAgICAgIGhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldEFjdGl2ZVR5cGUodHlwZUZyb21BdClcbiAgICAgICAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVNlYXJjaFZhbHVlKGVmZmVjdGl2ZVF1ZXJ5KVxuICAgICAgfSBlbHNlIGlmIChwb3BvdmVyT3Blbikge1xuICAgICAgICBjbG9zZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbYWxsb3dlZFR5cGVzLCBkZWZhdWx0VHlwZSwgcG9wb3Zlck9wZW4sIHBvc2l0aW9uUG9wb3ZlciwgdXBkYXRlU2VhcmNoVmFsdWUsIGV2ZW50LCBjbG9zZV1cbiAgKVxuXG4gIGNvbnN0IGluc2VydFNlbGVjdGVkSXRlbSA9IHVzZUNhbGxiYWNrKFxuICAgIChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG1lbnRpb246IENvbnRleHRNZW50aW9uID0ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgICAgICBsYWJlbDogaXRlbS5wcmltYXJ5LFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGNsaWVudElkOiBpdGVtLnJhdy5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGl0ZW0ucmF3LmNsaWVudE5hbWUgPz8gbnVsbCxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogaXRlbS5yYXcucHJvamVjdE5hbWUgPz8gbnVsbCxcbiAgICAgICAgICBmZWVJZDogaXRlbS5yYXcuZmVlSWQgPz8gbnVsbCxcbiAgICAgICAgICBmYXRoZXJJZDogaXRlbS5yYXcuZmF0aGVySWQgPz8gbnVsbCxcbiAgICAgICAgICBmYXRoZXJUaXRsZTogaXRlbS5yYXcuZmF0aGVyVGl0bGUgPz8gbnVsbCxcbiAgICAgICAgICB0b3RhbFByb3llY3RvczogaXRlbS5yYXcudG90YWxQcm95ZWN0b3MgPz8gbnVsbCxcbiAgICAgICAgICBuYW1lOiBpdGVtLnJhdy5uYW1lID8/IG51bGwsXG4gICAgICAgICAgcGljdHVyZTogaXRlbS5yYXcucGljdHVyZSA/PyBudWxsLFxuICAgICAgICAgIHBvc2l0aW9uTmFtZTogaXRlbS5yYXcucG9zaXRpb25OYW1lID8/IG51bGwsXG4gICAgICAgICAgZW1haWw6IGl0ZW0ucmF3LmVtYWlsID8/IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0TWVudGlvbihtZW50aW9uKVxuICAgICAgb25NZW50aW9uQWRkZWQ/LihtZW50aW9uKVxuICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdE1lbnRpb25TZWxlY3QsIHsgdHlwZTogbWVudGlvbi50eXBlLCBpZDogU3RyaW5nKG1lbnRpb24uaWQpIH0pXG4gICAgICBjbG9zZSgpXG4gICAgfSxcbiAgICBbZWRpdG9yUmVmLCBvbk1lbnRpb25BZGRlZCwgZXZlbnQsIGNsb3NlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlVHlwZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICAgICAgc2V0QWN0aXZlVHlwZSh0eXBlKVxuICAgICAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnN5bmNTa2lsbFRyaWdnZXIoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV4dFJ1bkxlbmd0aCA9IGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlKFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgYWxsb3dlZFR5cGVzLmZpbHRlcihlbnRpdHlUeXBlID0+IGVudGl0eVR5cGUgIT09ICdza2lsbCcpXG4gICAgICAgIClcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgobmV4dFJ1bkxlbmd0aClcbiAgICAgIH1cbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uVHlwZVN3aXRjaCwgeyB0eXBlIH0pXG4gICAgfSxcbiAgICBbYWxsb3dlZFR5cGVzLCBlZGl0b3JSZWYsIGV2ZW50XVxuICApXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKCFwb3BvdmVyT3BlbiB8fCBhbGxvd2VkVHlwZXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY2xvc2UoKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnKSAmJiAoZS5tZXRhS2V5IHx8IGUuYWx0S2V5KSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY29uc3QgaWR4ID0gYWxsb3dlZFR5cGVzLmluZGV4T2YoYWN0aXZlVHlwZSlcbiAgICAgICAgY29uc3QgZGVsdGEgPSBlLmtleSA9PT0gJ0Fycm93UmlnaHQnID8gMSA6IC0xXG4gICAgICAgIGNvbnN0IG5leHRJZHggPSAoaWR4ICsgZGVsdGEgKyBhbGxvd2VkVHlwZXMubGVuZ3RoKSAlIGFsbG93ZWRUeXBlcy5sZW5ndGhcbiAgICAgICAgaGFuZGxlVHlwZUNoYW5nZShhbGxvd2VkVHlwZXNbbmV4dElkeF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRJc0tleWJvYXJkTmF2QWN0aXZlKHRydWUpXG4gICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYgPT4gKGl0ZW1zLmxlbmd0aCA+IDAgPyBNYXRoLm1pbihwcmV2ICsgMSwgaXRlbXMubGVuZ3RoIC0gMSkgOiAwKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRJc0tleWJvYXJkTmF2QWN0aXZlKHRydWUpXG4gICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYgPT4gTWF0aC5tYXgocHJldiAtIDEsIDApKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnVGFiJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaW5zZXJ0U2VsZWN0ZWRJdGVtKGl0ZW1zW2FjdGl2ZUluZGV4XSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sXG4gICAgW3BvcG92ZXJPcGVuLCBpdGVtcywgYWxsb3dlZFR5cGVzLCBhY3RpdmVUeXBlLCBhY3RpdmVJbmRleCwgaW5zZXJ0U2VsZWN0ZWRJdGVtLCBjbG9zZSwgaGFuZGxlVHlwZUNoYW5nZV1cbiAgKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIHBvc2l0aW9uUG9wb3ZlcigpXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHBvc2l0aW9uUG9wb3ZlcigpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZXIsIHRydWUpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZXIpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZXIpXG4gICAgfVxuICB9LCBbcG9wb3Zlck9wZW4sIHBvc2l0aW9uUG9wb3Zlcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXBvcG92ZXJPcGVuKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUgPSAobW91c2VFdmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbW91c2VFdmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGxcbiAgICAgIGlmICghdGFyZ2V0KSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVyblxuICAgICAgaWYgKHBvcG92ZXJBbmNob3JSZWY/LmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVyblxuICAgICAgY2xvc2UoKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlKVxuICB9LCBbcG9wb3Zlck9wZW4sIGNsb3NlLCBwb3BvdmVyQW5jaG9yUmVmXSlcblxuICBjb25zdCBwcmV2SXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IGlzTG9hZGluZ01vcmVcbiAgICB9XG4gIH0sIFtpc0xvYWRpbmdNb3JlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcmV2SXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBzZXRBY3RpdmVJbmRleCgwKVxuICB9LCBbaXRlbXMubGVuZ3RoLCBhY3RpdmVUeXBlXSlcblxuICBjb25zdCBwb3BvdmVyTm9kZSA9IHVzZU1lbW88UmVhY3ROb2RlIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICghcG9wb3Zlck9wZW4pIHJldHVybiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01QQW5jaG9yXG4gICAgICAgIHJlZj17cG9wb3ZlclJlZn1cbiAgICAgICAgey4uLnsgW01BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFJdOiAnJyB9fVxuICAgICAgICAkYm90dG9tPXtwb3BvdmVyUG9zLmJvdHRvbX1cbiAgICAgICAgJGxlZnQ9e3BvcG92ZXJQb3MubGVmdH1cbiAgICAgICAgJHdpZHRoPXtwb3BvdmVyUG9zLndpZHRofVxuICAgICAgICAkekluZGV4PXttZW50aW9uUG9wb3ZlclpJbmRleH1cbiAgICAgICAgb25Nb3VzZURvd249e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgID5cbiAgICAgICAgPENvbnRleHRNZW50aW9uUG9wb3ZlclxuICAgICAgICAgIGFsbG93ZWRUeXBlcz17YWxsb3dlZFR5cGVzfVxuICAgICAgICAgIGFjdGl2ZVR5cGU9e2FjdGl2ZVR5cGV9XG4gICAgICAgICAgb25UeXBlQ2hhbmdlPXtoYW5kbGVUeXBlQ2hhbmdlfVxuICAgICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBoaWRlUmVjZW50c0xhYmVsPXtoaWRlUmVjZW50c0xhYmVsfVxuICAgICAgICAgIHNraWxsc0NhdGFsb2dFbXB0eT17c2tpbGxzQ2F0YWxvZ0VtcHR5fVxuICAgICAgICAgIGhhc01vcmU9e2hhc01vcmV9XG4gICAgICAgICAgaXNMb2FkaW5nTW9yZT17aXNMb2FkaW5nTW9yZX1cbiAgICAgICAgICBvblJlYWNoTGlzdEVuZD17bG9hZE1vcmV9XG4gICAgICAgICAgc2VhcmNoVmFsdWU9e3NlYXJjaFZhbHVlfVxuICAgICAgICAgIGtleWJvYXJkSGludD17dCgnY29udGV4dE1lbnRpb24ua2V5Ym9hcmRIaW50Jywge1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAnTmF2ZWdhY2nDs24gZW50cmUgcGVzdGHDsWFzOiBALCBAQCwgQEBA4oCmIGVuIG9yZGVuLiBUYW1iacOpbiBBbHQvQ21kICsg4oaQL+KGkicsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICBvbkl0ZW1TZWxlY3RlZD17aW5zZXJ0U2VsZWN0ZWRJdGVtfVxuICAgICAgICAgIGFjdGl2ZUluZGV4PXthY3RpdmVJbmRleH1cbiAgICAgICAgICBvbkFjdGl2ZUluZGV4Q2hhbmdlPXtzZXRBY3RpdmVJbmRleH1cbiAgICAgICAgICBpc0tleWJvYXJkTmF2QWN0aXZlPXtpc0tleWJvYXJkTmF2QWN0aXZlfVxuICAgICAgICAgIG9uTW91c2VNb3ZlSW5MaXN0PXsoKSA9PiBzZXRJc0tleWJvYXJkTmF2QWN0aXZlKGZhbHNlKX1cbiAgICAgICAgLz5cbiAgICAgIDwvU0NNUEFuY2hvcj5cbiAgICApXG4gIH0sIFtcbiAgICBwb3BvdmVyT3BlbixcbiAgICBwb3BvdmVyUG9zLFxuICAgIG1lbnRpb25Qb3BvdmVyWkluZGV4LFxuICAgIGFsbG93ZWRUeXBlcyxcbiAgICBhY3RpdmVUeXBlLFxuICAgIGhhbmRsZVR5cGVDaGFuZ2UsXG4gICAgaXRlbXMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgIHNraWxsc0NhdGFsb2dFbXB0eSxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdG9vbHRpcFpJbmRleCxcbiAgICBpbnNlcnRTZWxlY3RlZEl0ZW0sXG4gICAgYWN0aXZlSW5kZXgsXG4gICAgaXNLZXlib2FyZE5hdkFjdGl2ZSxcbiAgXSlcblxuICByZXR1cm4geyBwb3BvdmVyT3BlbiwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nLCBoYW5kbGVUcmlnZ2VyLCBoYW5kbGVLZXlEb3duLCBwb3BvdmVyTm9kZSwgY2xvc2UgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBSUVBLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxlQUFlLEVBQ2ZDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUVkLFNBQ0VDLHFCQUFxQixFQUNyQkMsNEJBQTRCLEVBQzVCQyxVQUFVLFFBQ0wsMkNBQTJDO0FBQ2xELFNBQVNDLHNCQUFzQixRQUFRLDBCQUEwQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSwyQkFBMkI7QUFDNUQsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFDN0I7QUFDQSxTQUE0QkMsZUFBZSxRQUFRLG1CQUFtQjtBQUN0RSxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFlBQVk7QUFHN0MsU0FDRUMsZ0JBQWdCLEVBQ2hCQywwQkFBMEIsRUFDMUJDLDBCQUEwQixRQUNyQixpQ0FBaUM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFeEMsSUFBTUMsc0JBQXNCLEdBQUcsQ0FBQztBQUNoQyxJQUFNQywrQkFBK0IsR0FBRyxDQUFDO0FBQ3pDLElBQU1DLGtD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
366
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwidXNlTWVudGlvbkFsbG93ZWRUeXBlcyIsInVzZUNhcmV0UG9zaXRpb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF0UnVuVGFiVHlwZXMiLCJnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSIsImdldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlIiwianN4IiwiX2pzeCIsIk1FTlRJT05fUE9QT1ZFUl9HQVBfUFgiLCJNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYIiwiTUVOVElPTl9QT1BPVkVSX0ZBTExCQUNLX1dJRFRIX1BYIiwidXNlRGVyaXZlZFNjb3BlIiwiX3JlZiIsIl9jdHgkY2xpZW50JGlkIiwiX2N0eCRjbGllbnQiLCJfY3R4JGVudGl0eVZhbHVlcyIsIl9yZWYyIiwiX3JlZjMiLCJfY3R4JHByb2plY3QkaWQiLCJfY3R4JHByb2plY3QiLCJfY3R4JGVudGl0eVZhbHVlczIiLCJfY3R4JGNoaXBzUHJvamVjdCIsIl9jdHgkYWdlbnQkZW50aXR5IiwiX2N0eCRhZ2VudCIsIl9jdHgkYWdlbnQkY29ubmVjdG9ycyIsIl9jdHgkYWdlbnQyIiwiY3R4IiwiY2xpZW50SWQiLCJjbGllbnQiLCJpZCIsImVudGl0eVZhbHVlcyIsInByb2plY3RJZCIsInByb2plY3QiLCJjaGlwc1Byb2plY3QiLCJhZ2VudEVudGl0eSIsImFnZW50IiwiZW50aXR5IiwibWNwU2x1Z3NLZXkiLCJjb25uZWN0b3JzIiwiZmluZCIsImMiLCJncm91cCIsInNsdWdzIiwiam9pbiIsIm1jcFNsdWdzIiwiX2N0eCRhZ2VudCRjb25uZWN0b3JzMiIsIl9jdHgkYWdlbnQzIiwicmF3IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiU2V0IiwiZmlsdGVyIiwicyIsInRyaW0iLCJsZW5ndGgiLCJzb3J0IiwidXNlTWVudGlvblBvcG92ZXIiLCJfcmVmNCIsImVkaXRvclJlZiIsInBvcG92ZXJBbmNob3JSZWYiLCJlbmFibGVkVHlwZXMiLCJza2lsbHMiLCJvbk1lbnRpb25BZGRlZCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZU1lbnRpb25BbGxvd2VkVHlwIiwiYWxsb3dlZFR5cGVzIiwiZGVmYXVsdFR5cGUiLCJtZW50aW9uUG9wb3ZlclpJbmRleCIsInRvb2x0aXBaSW5kZXgiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicG9wb3Zlck9wZW4iLCJzZXRQb3BvdmVyT3BlbiIsIl91c2VTdGF0ZTUiLCJib3R0b20iLCJsZWZ0Iiwid2lkdGgiLCJfdXNlU3RhdGU2IiwicG9wb3ZlclBvcyIsInNldFBvcG92ZXJQb3MiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzS2V5Ym9hcmROYXZBY3RpdmUiLCJzZXRJc0tleWJvYXJkTmF2QWN0aXZlIiwiaGFzRW1pdHRlZE9wZW4iLCJwb3BvdmVyUmVmIiwiZ2V0Q2FyZXRSZWN0IiwiZGVyaXZlZFNjb3BlIiwic2NvcGUiLCJfb2JqZWN0U3ByZWFkIiwiX3VzZUVudGl0eVNlYXJjaCIsIml0ZW1zIiwibG9hZGluZyIsImVycm9yIiwiaGlkZVJlY2VudHNMYWJlbCIsImhhc01vcmUiLCJpc0xvYWRpbmdNb3JlIiwibG9hZE1vcmUiLCJzZWFyY2hWYWx1ZSIsInVwZGF0ZVNlYXJjaFZhbHVlIiwic2tpbGxzQ2F0YWxvZ0VtcHR5IiwiaW5jbHVkZXMiLCJwb3NpdGlvblBvcG92ZXIiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UyIiwiX2NhcmV0JHRvcCIsImZyb21BbmNob3IiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZnJvbUVkaXRvciIsImdldEVkaXRvckNsaWVudFJlY3QiLCJjYWxsIiwid2lkdGhSZWN0IiwiY2FyZXQiLCJsZWZ0U291cmNlIiwidG9wU291cmNlIiwidG9wIiwidmlld3BvcnRXIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInZpZXdwb3J0SCIsImlubmVySGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsInJlc2V0TWVudGlvbk9wZW5UcmFja2luZyIsImNsb3NlIiwiaGFuZGxlVHJpZ2dlciIsInRyaWdnZXIiLCJhY3RpdmUiLCJpc1NraWxsVHJpZ2dlciIsImF0UnVuTGVuZ3RoIiwiYXRSdW5UYWJUeXBlcyIsImF0UnVuVHlwZXNPckFsbCIsInR5cGUiLCJpc1NsYXNoVHJpZ2dlciIsInR5cGVGcm9tQXQiLCJlZmZlY3RpdmVRdWVyeSIsInF1ZXJ5Iiwib3ZlcmZsb3dBdENvdW50IiwiZWZmZWN0aXZlQXRSdW5MZW5ndGgiLCJjb25jYXQiLCJyZXBlYXQiLCJhaUNoYXRNZW50aW9uT3BlbiIsImluc2VydFNlbGVjdGVkSXRlbSIsIml0ZW0iLCJfaXRlbSRyYXckY2xpZW50SWQiLCJfaXRlbSRyYXckY2xpZW50TmFtZSIsIl9pdGVtJHJhdyRwcm9qZWN0TmFtZSIsIl9pdGVtJHJhdyRmZWVJZCIsIl9pdGVtJHJhdyRmYXRoZXJJZCIsIl9pdGVtJHJhdyRmYXRoZXJUaXRsZSIsIl9pdGVtJHJhdyR0b3RhbFByb3llYyIsIl9pdGVtJHJhdyRuYW1lIiwiX2l0ZW0kcmF3JHBpY3R1cmUiLCJfaXRlbSRyYXckcG9zaXRpb25OYW0iLCJfaXRlbSRyYXckZW1haWwiLCJfZWRpdG9yUmVmJGN1cnJlbnQyIiwibWVudGlvbiIsImxhYmVsIiwicHJpbWFyeSIsIm1ldGFkYXRhIiwiY2xpZW50TmFtZSIsInByb2plY3ROYW1lIiwiZmVlSWQiLCJmYXRoZXJJZCIsImZhdGhlclRpdGxlIiwidG90YWxQcm95ZWN0b3MiLCJuYW1lIiwicGljdHVyZSIsInBvc2l0aW9uTmFtZSIsImVtYWlsIiwiaW5zZXJ0TWVudGlvbiIsImFpQ2hhdE1lbnRpb25TZWxlY3QiLCJTdHJpbmciLCJoYW5kbGVUeXBlQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50MyIsInN5bmNTa2lsbFRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwibmV4dFJ1bkxlbmd0aCIsImVudGl0eVR5cGUiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwiYWlDaGF0TWVudGlvblR5cGVTd2l0Y2giLCJoYW5kbGVLZXlEb3duIiwiZSIsImtleSIsInByZXZlbnREZWZhdWx0IiwibWV0YUtleSIsImFsdEtleSIsImlkeCIsImluZGV4T2YiLCJkZWx0YSIsIm5leHRJZHgiLCJwcmV2IiwidW5kZWZpbmVkIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlIiwibW91c2VFdmVudCIsIl9wb3BvdmVyUmVmJGN1cnJlbnQiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIyIiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsInByZXZJc0xvYWRpbmdNb3JlUmVmIiwicG9wb3Zlck5vZGUiLCJyZWYiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJjaGlsZHJlbiIsIm9uVHlwZUNoYW5nZSIsIm9uUmVhY2hMaXN0RW5kIiwia2V5Ym9hcmRIaW50IiwiZGVmYXVsdFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJvbkFjdGl2ZUluZGV4Q2hhbmdlIiwib25Nb3VzZU1vdmVJbkxpc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVudGlvblBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHtcbiAgQ29udGV4dE1lbnRpb25Qb3BvdmVyLFxuICBNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSLFxuICBTQ01QQW5jaG9yLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuL3VzZVQnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBFbnRpdHlTZWFyY2hTY29wZSwgdXNlRW50aXR5U2VhcmNoIH0gZnJvbSAnLi91c2VFbnRpdHlTZWFyY2gnXG5pbXBvcnQgeyB1c2VNZW50aW9uQWxsb3dlZFR5cGVzIH0gZnJvbSAnLi91c2VNZW50aW9uQWxsb3dlZFR5cGVzJ1xuaW1wb3J0IHsgdXNlQ2FyZXRQb3NpdGlvbiB9IGZyb20gJy4vdXNlQ2FyZXRQb3NpdGlvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB0eXBlIHsgU2tpbGwgfSBmcm9tICcuLi90eXBlcy9za2lsbCdcbmltcG9ydCB7XG4gIGdldEF0UnVuVGFiVHlwZXMsXG4gIGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlLFxuICBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSxcbn0gZnJvbSAnLi4vdXRpbHMvY29udGV4dE1lbnRpb25UcmlnZ2VycydcblxuY29uc3QgTUVOVElPTl9QT1BPVkVSX0dBUF9QWCA9IDRcbmNvbnN0IE1FTlRJT05fUE9QT1ZFUl9WSUVXUE9SVF9QQURfUFggPSA4XG5jb25zdCBNRU5USU9OX1BPUE9WRVJfRkFMTEJBQ0tfV0lEVEhfUFggPSAzMjBcblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJPcHRpb25zID0ge1xuICBlZGl0b3JSZWY6IFJlZk9iamVjdDxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT5cbiAgLyoqXG4gICAqIE5vZG8gY3V5byBhbmNobyB5IGFsaW5lYWNpw7NuIGhvcml6b250YWwgZGVmaW5lbiBlbCBwb3BvdmVyIChwLiBlai4gd3JhcHBlciBkZWwgaW5wdXQgZW4gTUFJQSkuXG4gICAqIEVsIGFuY2xhIHZlcnRpY2FsIGVzIGVsIGNhcmV0IC8gdGV4dG8gZGVsIHRyaWdnZXIgYEBgLiBTaSBubyBoYXkgY2FyZXQsIHNlIHVzYSBlbCBib3JkZSBzdXBlcmlvciBkZSBlc3RlIG5vZG8uXG4gICAqL1xuICBwb3BvdmVyQW5jaG9yUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIE92ZXJyaWRlIGRlbCBzZXQgZGUgdGFicyBwZXJtaXRpZGFzOyBzaSBubyBzZSBwYXNhIHNlIGRlcml2YSBkZWwgYWdlbnQuICovXG4gIGVuYWJsZWRUeXBlcz86IENvbnRleHRFbnRpdHlUeXBlW11cbiAgLyoqIFNraWxscyBpbnllY3RhZGFzIGRpcmVjdGFtZW50ZSAoZGV2L3Rlc3RpbmcpLiBTaSBzZSBwcm92ZWVuLCBzZSBvbWl0ZSBlbCBmZXRjaCBSRVNULiAqL1xuICBza2lsbHM/OiBTa2lsbFtdXG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gZWwgdXN1YXJpbyBpbnNlcnRhIHVuYSBtZW50aW9uIHbDrWEgY2xpY2svdGVjbGFkby4gKi9cbiAgb25NZW50aW9uQWRkZWQ/OiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPSB7XG4gIHBvcG92ZXJPcGVuOiBib29sZWFuXG4gIC8qKlxuICAgKiBSZWluaWNpYSBlbCB0cmFja2luZyBkZSBgQUlfQ0hBVF9NRU5USU9OX09QRU5gIChwcmltZXJhIGFwZXJ0dXJhIHBvciBtZW5zYWplKS5cbiAgICogTGxhbWFyIHRyYXMgZW52aWFyIGVsIG1lbnNhamUgbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gICAqL1xuICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmc6ICgpID0+IHZvaWRcbiAgLyoqIFByb2Nlc2EgZWwgdHJpZ2dlciBwcm92ZW5pZW50ZSBkZWwgYENvbnRleHRNZW50aW9uRWRpdG9yLm9uSW5wdXRgLiAqL1xuICBoYW5kbGVUcmlnZ2VyOiAodHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfSkgPT4gdm9pZFxuICAvKipcbiAgICogTWFuZWpvIGRlIHRlY2xhcyByZWxhdGl2YXMgYWwgcG9wb3ZlciAobmF2ZWdhY2nDs24sIHNlbGVjY2nDs24sIGNhbWJpbyBkZVxuICAgKiB0YWIgeSBlc2NhcGUpLiBEZXZ1ZWx2ZSBgdHJ1ZWAgc2kgY29uc3VtacOzIGxhIGtleSwgcGFyYSBxdWUgZWwgY29uc3VtZXJcbiAgICogcHVlZGEgZGVjaWRpciBzaSBzZWd1aXIgcHJvY2VzYW5kbyBvdHJhcyB0ZWNsYXMgKHAuZWouIEVudGVyIHBhcmEgZW52aWFyKS5cbiAgICovXG4gIGhhbmRsZUtleURvd246IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gYm9vbGVhblxuICAvKiogTm9kbyBkZWwgcG9wb3ZlcjsgZWwgY29uc3VtZXIgZGViZSBwb3J0YXJsbyBjb24gYGNyZWF0ZVBvcnRhbGAuICovXG4gIHBvcG92ZXJOb2RlOiBSZWFjdE5vZGUgfCBudWxsXG4gIC8qKiBDaWVycmEgZWwgcG9wb3ZlciB5IGxpbXBpYSBlbCBxdWVyeS4gKi9cbiAgY2xvc2U6ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBEZXJpdmEgY2xpZW50SWQsIHByb2plY3RJZCwgYWdlbnRFbnRpdHkgeSBNQ1AgZGVzZGUgZWwgY29udGV4dG8gZ2xvYmFsIChpbmNsLlxuICogYGVudGl0eVZhbHVlc2AgeSBgY2hpcHNQcm9qZWN0YCkgcGFyYSBmaWx0cmFyIHJlY2VudHMgeSBiw7pzcXVlZGEgR3JhcGhRTC5cbiAqL1xuY29uc3QgdXNlRGVyaXZlZFNjb3BlID0gKCk6IEVudGl0eVNlYXJjaFNjb3BlID0+IHtcbiAgY29uc3QgY3R4ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGNsaWVudElkID0gY3R4LmNsaWVudD8uaWQgPz8gY3R4LmVudGl0eVZhbHVlcz8uY2xpZW50SWQgPz8gbnVsbFxuICBjb25zdCBwcm9qZWN0SWQgPSBjdHgucHJvamVjdD8uaWQgPz8gY3R4LmVudGl0eVZhbHVlcz8ucHJvamVjdElkID8/IGN0eC5jaGlwc1Byb2plY3Q/LnByb2plY3RJZCA/PyBudWxsXG4gIGNvbnN0IGFnZW50RW50aXR5ID0gY3R4LmFnZW50Py5lbnRpdHkgPz8gbnVsbFxuICBjb25zdCBtY3BTbHVnc0tleSA9IChjdHguYWdlbnQ/LmNvbm5lY3RvcnM/LmZpbmQoYyA9PiBjLmdyb3VwID09PSAnTUNQJyk/LnNsdWdzID8/IFtdKS5qb2luKCd8JylcblxuICBjb25zdCBtY3BTbHVncyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHJhdyA9IGN0eC5hZ2VudD8uY29ubmVjdG9ycz8uZmluZChjID0+IGMuZ3JvdXAgPT09ICdNQ1AnKT8uc2x1Z3MgPz8gW11cbiAgICByZXR1cm4gWy4uLm5ldyBTZXQocmF3LmZpbHRlcigocyk6IHMgaXMgc3RyaW5nID0+IHR5cGVvZiBzID09PSAnc3RyaW5nJyAmJiBzLnRyaW0oKS5sZW5ndGggPiAwKSldLnNvcnQoKVxuICB9LCBbbWNwU2x1Z3NLZXldKVxuXG4gIHJldHVybiB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoeyBjbGllbnRJZCwgcHJvamVjdElkLCBtY3BTbHVncywgYWdlbnRFbnRpdHkgfSksXG4gICAgW2NsaWVudElkLCBwcm9qZWN0SWQsIG1jcFNsdWdzLCBhZ2VudEVudGl0eV0gLy8gc2tpbGxzIHNlIGlueWVjdGEgZW4gdXNlTWVudGlvblBvcG92ZXJcbiAgKVxufVxuXG4vKipcbiAqIEVuY2Fwc3VsYSBsYSBsw7NnaWNhIGRlbCBwb3BvdmVyIGRlIEAtbWVudGlvbnMgKGVzdGFkbywgZmV0Y2ggcG9yIHRhYiwgYW5hbHl0aWNzLFxuICogcG9zaWNpb25hbWllbnRvKS4gRWwgY29uc3VtZXIgbWFudGllbmUgZWwgZWRpdG9yIHkgZWwgZW52w61vIGRlbCBtZW5zYWplLlxuICogTG9zIGZpbHRyb3MgZGUgYsO6c3F1ZWRhIHVzYW4gYHVzZURlcml2ZWRTY29wZWA6IGVzcGVjaWFsaXN0YSBwcm95ZWN0byBhY290YSB0YXJlYXNcbiAqIGFsIGBwcm9qZWN0SWRgIGRlbCBjb250ZXh0bzsgZXNwZWNpYWxpc3RhIGNsaWVudGUsIHByb3llY3RvcyBhbCBgY2xpZW50SWRgIChlbiBgZXh0cmFgIGRlIHNlYXJjaCkuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZW50aW9uUG9wb3ZlciA9ICh7XG4gIGVkaXRvclJlZixcbiAgcG9wb3ZlckFuY2hvclJlZixcbiAgZW5hYmxlZFR5cGVzLFxuICBza2lsbHMsXG4gIG9uTWVudGlvbkFkZGVkLFxufTogVXNlTWVudGlvblBvcG92ZXJPcHRpb25zKTogVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlIH0gPSB1c2VNZW50aW9uQWxsb3dlZFR5cGVzKGVuYWJsZWRUeXBlcylcbiAgY29uc3QgbWVudGlvblBvcG92ZXJaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDEyMDAsICdvdmVybGF5JylcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oZGVmYXVsdFR5cGUpXG4gIGNvbnN0IFtwb3BvdmVyT3Blbiwgc2V0UG9wb3Zlck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwb3BvdmVyUG9zLCBzZXRQb3BvdmVyUG9zXSA9IHVzZVN0YXRlPHsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9Pih7XG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgd2lkdGg6IDAsXG4gIH0pXG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzS2V5Ym9hcmROYXZBY3RpdmUsIHNldElzS2V5Ym9hcmROYXZBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhc0VtaXR0ZWRPcGVuID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwb3BvdmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZ2V0Q2FyZXRSZWN0ID0gdXNlQ2FyZXRQb3NpdGlvbigpXG5cbiAgY29uc3QgZGVyaXZlZFNjb3BlID0gdXNlRGVyaXZlZFNjb3BlKClcbiAgY29uc3Qgc2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoc2tpbGxzID8geyAuLi5kZXJpdmVkU2NvcGUsIHNraWxscyB9IDogZGVyaXZlZFNjb3BlKSxcbiAgICBbZGVyaXZlZFNjb3BlLCBza2lsbHNdXG4gIClcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgc2tpbGxzQ2F0YWxvZ0VtcHR5LFxuICB9ID0gdXNlRW50aXR5U2VhcmNoKGFjdGl2ZVR5cGUsIHNjb3BlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoYWN0aXZlVHlwZSkpIHtcbiAgICAgIHNldEFjdGl2ZVR5cGUoZGVmYXVsdFR5cGUpXG4gICAgfVxuICB9LCBbYWxsb3dlZFR5cGVzLCBhY3RpdmVUeXBlLCBkZWZhdWx0VHlwZV0pXG5cbiAgY29uc3QgcG9zaXRpb25Qb3BvdmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGZyb21BbmNob3IgPSBwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGZyb21FZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudD8uZ2V0RWRpdG9yQ2xpZW50UmVjdD8uKCkgPz8gbnVsbFxuICAgIGNvbnN0IHdpZHRoUmVjdCA9IGZyb21BbmNob3IgPz8gZnJvbUVkaXRvclxuICAgIGNvbnN0IGNhcmV0ID0gZ2V0Q2FyZXRSZWN0KCdAJylcblxuICAgIGNvbnN0IHdpZHRoID0gd2lkdGhSZWN0ICYmIHdpZHRoUmVjdC53aWR0aCA+IDAgPyB3aWR0aFJlY3Qud2lkdGggOiBNRU5USU9OX1BPUE9WRVJfRkFMTEJBQ0tfV0lEVEhfUFhcbiAgICBjb25zdCBsZWZ0U291cmNlID0gd2lkdGhSZWN0ICYmIHdpZHRoUmVjdC53aWR0aCA+IDAgPyB3aWR0aFJlY3QubGVmdCA6IGNhcmV0Py5sZWZ0XG4gICAgY29uc3QgdG9wU291cmNlID0gY2FyZXQ/LnRvcCA/PyAod2lkdGhSZWN0ICYmIHdpZHRoUmVjdC53aWR0aCA+IDAgPyB3aWR0aFJlY3QudG9wIDogbnVsbClcblxuICAgIGlmIChsZWZ0U291cmNlID09IG51bGwgfHwgdG9wU291cmNlID09IG51bGwpIHJldHVyblxuXG4gICAgY29uc3Qgdmlld3BvcnRXID0gd2luZG93LmlubmVyV2lkdGhcbiAgICBjb25zdCB2aWV3cG9ydEggPSB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgICBNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYLFxuICAgICAgTWF0aC5taW4odmlld3BvcnRXIC0gd2lkdGggLSBNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYLCBsZWZ0U291cmNlKVxuICAgIClcblxuICAgIC8qKiBBbmNobyBkZWwgaW5wdXQ7IGJvcmRlIGluZmVyaW9yIH40cHggcG9yIGVuY2ltYSBkZWwgYEBgIHF1ZSBhYnJlIGxhcyBtZW5jaW9uZXMuICovXG4gICAgc2V0UG9wb3ZlclBvcyh7XG4gICAgICB3aWR0aCxcbiAgICAgIGxlZnQsXG4gICAgICBib3R0b206IHZpZXdwb3J0SCAtIHRvcFNvdXJjZSArIE1FTlRJT05fUE9QT1ZFUl9HQVBfUFgsXG4gICAgfSlcbiAgfSwgW3BvcG92ZXJBbmNob3JSZWYsIGVkaXRvclJlZiwgZ2V0Q2FyZXRSZWN0XSlcblxuICBjb25zdCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaGFzRW1pdHRlZE9wZW4uY3VycmVudCA9IGZhbHNlXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFBvcG92ZXJPcGVuKGZhbHNlKVxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlKCcnKVxuICB9LCBbdXBkYXRlU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IGhhbmRsZVRyaWdnZXIgPSB1c2VDYWxsYmFjayhcbiAgICAodHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfSkgPT4ge1xuICAgICAgaWYgKGFsbG93ZWRUeXBlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKHBvcG92ZXJPcGVuKSBjbG9zZSgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHJpZ2dlci5hY3RpdmUpIHtcbiAgICAgICAgLy8gZGV0ZWN0TWVudGlvblRyaWdnZXIgbWFyY2EgQC8gY29tbyBhdFJ1bkxlbmd0aCA9PT0gLTEgKHNsYXNoIGNvbnN1bWlkbywgbm8gcXVlZGEgZW4gcXVlcnkpXG4gICAgICAgIGNvbnN0IGlzU2tpbGxUcmlnZ2VyID0gYWxsb3dlZFR5cGVzLmluY2x1ZGVzKCdza2lsbCcpICYmIHRyaWdnZXIuYXRSdW5MZW5ndGggPT09IC0xXG4gICAgICAgIGNvbnN0IGF0UnVuVGFiVHlwZXMgPSBnZXRBdFJ1blRhYlR5cGVzKGFsbG93ZWRUeXBlcylcbiAgICAgICAgY29uc3QgYXRSdW5UeXBlc09yQWxsID0gYXRSdW5UYWJUeXBlcy5sZW5ndGggPiAwID8gYXRSdW5UYWJUeXBlcyA6IGFsbG93ZWRUeXBlcy5maWx0ZXIodHlwZSA9PiB0eXBlICE9PSAnc2tpbGwnKVxuICAgICAgICBjb25zdCBpc1NsYXNoVHJpZ2dlciA9IHRyaWdnZXIuYXRSdW5MZW5ndGggPCAwXG5cbiAgICAgICAgbGV0IHR5cGVGcm9tQXQ6IENvbnRleHRFbnRpdHlUeXBlXG4gICAgICAgIGxldCBlZmZlY3RpdmVRdWVyeTogc3RyaW5nXG5cbiAgICAgICAgaWYgKGlzU2tpbGxUcmlnZ2VyKSB7XG4gICAgICAgICAgdHlwZUZyb21BdCA9ICdza2lsbCdcbiAgICAgICAgICBlZmZlY3RpdmVRdWVyeSA9IHRyaWdnZXIucXVlcnlcbiAgICAgICAgfSBlbHNlIGlmIChpc1NsYXNoVHJpZ2dlcikge1xuICAgICAgICAgIHR5cGVGcm9tQXQgPSBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSh0cmlnZ2VyLmF0UnVuTGVuZ3RoLCBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlKVxuICAgICAgICAgIGVmZmVjdGl2ZVF1ZXJ5ID0gdHJpZ2dlci5xdWVyeVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG92ZXJmbG93QXRDb3VudCA9IE1hdGgubWF4KDAsIHRyaWdnZXIuYXRSdW5MZW5ndGggLSBhdFJ1blRhYlR5cGVzLmxlbmd0aClcbiAgICAgICAgICBjb25zdCBlZmZlY3RpdmVBdFJ1bkxlbmd0aCA9IE1hdGgubWluKHRyaWdnZXIuYXRSdW5MZW5ndGgsIGF0UnVuVHlwZXNPckFsbC5sZW5ndGgpXG4gICAgICAgICAgZWZmZWN0aXZlUXVlcnkgPSBgJHsnQCcucmVwZWF0KG92ZXJmbG93QXRDb3VudCl9JHt0cmlnZ2VyLnF1ZXJ5fWBcbiAgICAgICAgICB0eXBlRnJvbUF0ID0gZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UoZWZmZWN0aXZlQXRSdW5MZW5ndGgsIGF0UnVuVHlwZXNPckFsbCwgZGVmYXVsdFR5cGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgc2V0UG9wb3Zlck9wZW4odHJ1ZSlcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgICBpZiAoIWhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uT3BlbiwgeyB0eXBlOiB0eXBlRnJvbUF0IH0pXG4gICAgICAgICAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTZWFyY2hWYWx1ZShlZmZlY3RpdmVRdWVyeSlcbiAgICAgIH0gZWxzZSBpZiAocG9wb3Zlck9wZW4pIHtcbiAgICAgICAgY2xvc2UoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZGVmYXVsdFR5cGUsIHBvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXIsIHVwZGF0ZVNlYXJjaFZhbHVlLCBldmVudCwgY2xvc2VdXG4gIClcblxuICBjb25zdCBpbnNlcnRTZWxlY3RlZEl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW50aW9uOiBDb250ZXh0TWVudGlvbiA9IHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgICAgICAgbGFiZWw6IGl0ZW0ucHJpbWFyeSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBjbGllbnRJZDogaXRlbS5yYXcuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgICAgICBjbGllbnROYW1lOiBpdGVtLnJhdy5jbGllbnROYW1lID8/IG51bGwsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucmF3LnByb2plY3ROYW1lID8/IG51bGwsXG4gICAgICAgICAgZmVlSWQ6IGl0ZW0ucmF3LmZlZUlkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVySWQ6IGl0ZW0ucmF3LmZhdGhlcklkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVyVGl0bGU6IGl0ZW0ucmF3LmZhdGhlclRpdGxlID8/IG51bGwsXG4gICAgICAgICAgdG90YWxQcm95ZWN0b3M6IGl0ZW0ucmF3LnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gICAgICAgICAgbmFtZTogaXRlbS5yYXcubmFtZSA/PyBudWxsLFxuICAgICAgICAgIHBpY3R1cmU6IGl0ZW0ucmF3LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgICAgICBwb3NpdGlvbk5hbWU6IGl0ZW0ucmF3LnBvc2l0aW9uTmFtZSA/PyBudWxsLFxuICAgICAgICAgIGVtYWlsOiBpdGVtLnJhdy5lbWFpbCA/PyBudWxsLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/Lmluc2VydE1lbnRpb24obWVudGlvbilcbiAgICAgIG9uTWVudGlvbkFkZGVkPy4obWVudGlvbilcbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uU2VsZWN0LCB7IHR5cGU6IG1lbnRpb24udHlwZSwgaWQ6IFN0cmluZyhtZW50aW9uLmlkKSB9KVxuICAgICAgY2xvc2UoKVxuICAgIH0sXG4gICAgW2VkaXRvclJlZiwgb25NZW50aW9uQWRkZWQsIGV2ZW50LCBjbG9zZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVR5cGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodHlwZTogQ29udGV4dEVudGl0eVR5cGUpID0+IHtcbiAgICAgIHNldEFjdGl2ZVR5cGUodHlwZSlcbiAgICAgIGlmICh0eXBlID09PSAnc2tpbGwnKSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jU2tpbGxUcmlnZ2VyKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5leHRSdW5MZW5ndGggPSBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZShcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGFsbG93ZWRUeXBlcy5maWx0ZXIoZW50aXR5VHlwZSA9PiBlbnRpdHlUeXBlICE9PSAnc2tpbGwnKVxuICAgICAgICApXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jVHJpZ2dlckF0UnVuTGVuZ3RoKG5leHRSdW5MZW5ndGgpXG4gICAgICB9XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0TWVudGlvblR5cGVTd2l0Y2gsIHsgdHlwZSB9KVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZWRpdG9yUmVmLCBldmVudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pOiBib29sZWFuID0+IHtcbiAgICAgIGlmICghcG9wb3Zlck9wZW4gfHwgYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNsb3NlKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JykgJiYgKGUubWV0YUtleSB8fCBlLmFsdEtleSkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNvbnN0IGlkeCA9IGFsbG93ZWRUeXBlcy5pbmRleE9mKGFjdGl2ZVR5cGUpXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyA/IDEgOiAtMVxuICAgICAgICBjb25zdCBuZXh0SWR4ID0gKGlkeCArIGRlbHRhICsgYWxsb3dlZFR5cGVzLmxlbmd0aCkgJSBhbGxvd2VkVHlwZXMubGVuZ3RoXG4gICAgICAgIGhhbmRsZVR5cGVDaGFuZ2UoYWxsb3dlZFR5cGVzW25leHRJZHhdKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IChpdGVtcy5sZW5ndGggPiAwID8gTWF0aC5taW4ocHJldiArIDEsIGl0ZW1zLmxlbmd0aCAtIDEpIDogMCkpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IE1hdGgubWF4KHByZXYgLSAxLCAwKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGluc2VydFNlbGVjdGVkSXRlbShpdGVtc1thY3RpdmVJbmRleF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LFxuICAgIFtwb3BvdmVyT3BlbiwgaXRlbXMsIGFsbG93ZWRUeXBlcywgYWN0aXZlVHlwZSwgYWN0aXZlSW5kZXgsIGluc2VydFNlbGVjdGVkSXRlbSwgY2xvc2UsIGhhbmRsZVR5cGVDaGFuZ2VdXG4gIClcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9wb3Zlck9wZW4pIHJldHVybiB1bmRlZmluZWRcbiAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBwb3NpdGlvblBvcG92ZXIoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIH1cbiAgfSwgW3BvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXJdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlID0gKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG1vdXNlRXZlbnQudGFyZ2V0IGFzIE5vZGUgfCBudWxsXG4gICAgICBpZiAoIXRhcmdldCkgcmV0dXJuXG4gICAgICBpZiAocG9wb3ZlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGNsb3NlKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSlcbiAgfSwgW3BvcG92ZXJPcGVuLCBjbG9zZSwgcG9wb3ZlckFuY2hvclJlZl0pXG5cbiAgY29uc3QgcHJldklzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlXG4gICAgfVxuICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgc2V0QWN0aXZlSW5kZXgoMClcbiAgfSwgW2l0ZW1zLmxlbmd0aCwgYWN0aXZlVHlwZV0pXG5cbiAgY29uc3QgcG9wb3Zlck5vZGUgPSB1c2VNZW1vPFJlYWN0Tm9kZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXBvcG92ZXJPcGVuKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8U0NNUEFuY2hvclxuICAgICAgICByZWY9e3BvcG92ZXJSZWZ9XG4gICAgICAgIHsuLi57IFtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSXTogJycgfX1cbiAgICAgICAgJGJvdHRvbT17cG9wb3ZlclBvcy5ib3R0b219XG4gICAgICAgICRsZWZ0PXtwb3BvdmVyUG9zLmxlZnR9XG4gICAgICAgICR3aWR0aD17cG9wb3ZlclBvcy53aWR0aH1cbiAgICAgICAgJHpJbmRleD17bWVudGlvblBvcG92ZXJaSW5kZXh9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIDxDb250ZXh0TWVudGlvblBvcG92ZXJcbiAgICAgICAgICBhbGxvd2VkVHlwZXM9e2FsbG93ZWRUeXBlc31cbiAgICAgICAgICBhY3RpdmVUeXBlPXthY3RpdmVUeXBlfVxuICAgICAgICAgIG9uVHlwZUNoYW5nZT17aGFuZGxlVHlwZUNoYW5nZX1cbiAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaGlkZVJlY2VudHNMYWJlbD17aGlkZVJlY2VudHNMYWJlbH1cbiAgICAgICAgICBza2lsbHNDYXRhbG9nRW1wdHk9e3NraWxsc0NhdGFsb2dFbXB0eX1cbiAgICAgICAgICBoYXNNb3JlPXtoYXNNb3JlfVxuICAgICAgICAgIGlzTG9hZGluZ01vcmU9e2lzTG9hZGluZ01vcmV9XG4gICAgICAgICAgb25SZWFjaExpc3RFbmQ9e2xvYWRNb3JlfVxuICAgICAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICBrZXlib2FyZEhpbnQ9e3QoJ2NvbnRleHRNZW50aW9uLmtleWJvYXJkSGludCcsIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ05hdmVnYWNpw7NuIGVudHJlIHBlc3Rhw7FhczogQCwgQEAsIEBAQOKApiBlbiBvcmRlbi4gVGFtYmnDqW4gQWx0L0NtZCArIOKGkC/ihpInLFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2luc2VydFNlbGVjdGVkSXRlbX1cbiAgICAgICAgICBhY3RpdmVJbmRleD17YWN0aXZlSW5kZXh9XG4gICAgICAgICAgb25BY3RpdmVJbmRleENoYW5nZT17c2V0QWN0aXZlSW5kZXh9XG4gICAgICAgICAgaXNLZXlib2FyZE5hdkFjdGl2ZT17aXNLZXlib2FyZE5hdkFjdGl2ZX1cbiAgICAgICAgICBvbk1vdXNlTW92ZUluTGlzdD17KCkgPT4gc2V0SXNLZXlib2FyZE5hdkFjdGl2ZShmYWxzZSl9XG4gICAgICAgIC8+XG4gICAgICA8L1NDTVBBbmNob3I+XG4gICAgKVxuICB9LCBbXG4gICAgcG9wb3Zlck9wZW4sXG4gICAgcG9wb3ZlclBvcyxcbiAgICBtZW50aW9uUG9wb3ZlclpJbmRleCxcbiAgICBhbGxvd2VkVHlwZXMsXG4gICAgYWN0aXZlVHlwZSxcbiAgICBoYW5kbGVUeXBlQ2hhbmdlLFxuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBza2lsbHNDYXRhbG9nRW1wdHksXG4gICAgaGFzTW9yZSxcbiAgICBpc0xvYWRpbmdNb3JlLFxuICAgIGxvYWRNb3JlLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIHRvb2x0aXBaSW5kZXgsXG4gICAgaW5zZXJ0U2VsZWN0ZWRJdGVtLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIGlzS2V5Ym9hcmROYXZBY3RpdmUsXG4gIF0pXG5cbiAgcmV0dXJuIHsgcG9wb3Zlck9wZW4sIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZywgaGFuZGxlVHJpZ2dlciwgaGFuZGxlS2V5RG93biwgcG9wb3Zlck5vZGUsIGNsb3NlIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUlFQSxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsUUFBUSxRQUNILE9BQU87QUFFZCxTQUNFQyxxQkFBcUIsRUFDckJDLDRCQUE0QixFQUM1QkMsVUFBVSxRQUNMLDJDQUEyQztBQUNsRCxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTJCO0FBQzVELFNBQVNDLElBQUksUUFBUSxRQUFRO0FBQzdCO0FBQ0EsU0FBNEJDLGVBQWUsUUFBUSxtQkFBbUI7QUFDdEUsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxZQUFZO0FBRzdDLFNBQ0VDLGdCQUFnQixFQUNoQkMsMEJBQTBCLEVBQzFCQywwQkFBMEIsUUFDckIsaUNBQWlDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXhDLElBQU1DLHNCQUFzQixHQUFHLENBQUM7QUFDaEMsSUFBTUMsK0JBQStCLEdBQUcsQ0FBQztBQUN6QyxJQUFNQyxpQ0FBaUMsR0FBRyxHQUFHO0FBc0M3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUE0QjtFQUFBLElBQUFDLElBQUEsRUFBQUMsY0FB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.104-0",
3
+ "version": "2.11.104",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {