@projectcor/maia-components 2.11.10-2 → 2.11.10-3

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 (58) hide show
  1. package/lib/App.js +10 -28
  2. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +69 -0
  3. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  4. package/lib/components/atoms/Chip/Chip.js +5 -4
  5. package/lib/components/atoms/Chip/styles.js +3 -3
  6. package/lib/components/atoms/EntitySelector/EntitySelector.js +181 -0
  7. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +57 -0
  8. package/lib/components/atoms/EntitySelector/index.js +2 -0
  9. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +5 -3
  10. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +4 -3
  11. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +56 -193
  12. package/lib/components/index.js +2 -1
  13. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +56 -0
  14. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  15. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -1
  16. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -49
  17. package/lib/components/molecules/ChatAIHome/styles.js +13 -25
  18. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +1 -1
  19. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +24 -16
  20. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +7 -10
  21. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -6
  22. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
  23. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  24. package/lib/components/molecules/ChatFooter/ChatFooter.js +25 -51
  25. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +184 -0
  26. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +15 -0
  27. package/lib/components/molecules/ChatFooter/styles.js +9 -8
  28. package/lib/components/organisms/ChatAI/ChatAI.js +15 -18
  29. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +26 -0
  30. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  31. package/lib/constants/config.js +2 -2
  32. package/lib/context/global-context.js +1 -1
  33. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  34. package/lib/hooks/useChatManager/useChatManager.js +72 -68
  35. package/lib/hooks/useChatMessages/useChatMessages.js +72 -38
  36. package/lib/hooks/useChats/useChats.js +1 -6
  37. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -22
  38. package/lib/hooks/useProjectSummaryConfig.js +36 -23
  39. package/lib/hooks/useRecentClientsSearch.js +176 -0
  40. package/lib/lang/br/index.js +25 -7
  41. package/lib/lang/en/index.js +25 -7
  42. package/lib/lang/es/index.js +25 -7
  43. package/lib/lang/fr/index.js +21 -7
  44. package/lib/services/maia/Agents/getAgents.js +6 -4
  45. package/lib/services/maia/Chats/getChatMessages.js +27 -14
  46. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  47. package/lib/services/maia/Orchestrator/orchestrator.js +6 -21
  48. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  49. package/lib/services/maia/RecentClients/index.js +6 -0
  50. package/lib/services/maia/index.js +4 -2
  51. package/lib/services/utils/mapChatMessages.js +12 -4
  52. package/lib/store/chatsStore.types.js +1 -1
  53. package/lib/store/useChatsStore.js +1 -7
  54. package/lib/types/Chat.js +1 -1
  55. package/lib/types/Client.js +2 -0
  56. package/lib/types/agent.js +1 -1
  57. package/package.json +1 -1
  58. package/lib/dev/DevChatAIActionsTasks.js +0 -54
@@ -176,7 +176,7 @@ export var useGetAgents = function useGetAgents(_ref) {
176
176
  var handleGetAgents = useCallback(/*#__PURE__*/function () {
177
177
  var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(agentToSelect) {
178
178
  var _agentToSelect$id;
179
- var requestKey, isMultiAgents, agentParsed, hasMore, nextOffset, cloneAgents, _maiaData$data, maiaResponse, maiaData, _maiaError$response, _maiaError$message, _maiaError$message2, is403Error, customAgents, customHasMore, customNextOffset, customResponse, customData, _customError$response, _customError$message, _customError$message2, _is403Error, queryParams, queryString, path, response, data, _responseError$respon, _responseError$messag, _responseError$messag2, _is403Error2, _agentParsed, _agentParsed2, _lastSelectedAgentRef, _lastSelectedAgentRef2, availableAgents, _availableAgents, firstAgent, _lastSelectedAgentRef3, _availableAgents2, _availableAgents3, firstAvailableAgent, _t, _t2, _t3, _t4;
179
+ var requestKey, isMultiAgents, agentParsed, hasMore, nextOffset, cloneAgents, _maiaData$data, orderParam, maiaResponse, maiaData, _maiaError$response, _maiaError$message, _maiaError$message2, is403Error, customAgents, customHasMore, customNextOffset, customResponse, customData, _customError$response, _customError$message, _customError$message2, _is403Error, queryParams, queryString, path, response, data, _responseError$respon, _responseError$messag, _responseError$messag2, _is403Error2, _agentParsed, _agentParsed2, _lastSelectedAgentRef, _lastSelectedAgentRef2, availableAgents, _availableAgents, firstAgent, _lastSelectedAgentRef3, _availableAgents2, _availableAgents3, firstAvailableAgent, _t, _t2, _t3, _t4;
180
180
  return _regeneratorRuntime.wrap(function (_context) {
181
181
  while (1) switch (_context.prev = _context.next) {
182
182
  case 0:
@@ -213,9 +213,10 @@ export var useGetAgents = function useGetAgents(_ref) {
213
213
  break;
214
214
  }
215
215
  _context.prev = 4;
216
+ orderParam = section === 'client' ? '&order=client,project' : section === 'project' ? '&order=project,client' : '';
216
217
  _context.next = 5;
217
218
  return fetchMaia({
218
- path: "agents?agent_type=clone&lang=".concat(i18n.language),
219
+ path: "agents?agent_type=clone&lang=".concat(i18n.language).concat(orderParam),
219
220
  method: 'GET'
220
221
  });
221
222
  case 5:
@@ -318,9 +319,10 @@ export var useGetAgents = function useGetAgents(_ref) {
318
319
  case 16:
319
320
  // Lógica para project o header sin multiAgents
320
321
  queryParams = new URLSearchParams();
321
- if (section === 'project' || section === 'actionsTasks') {
322
+ if (section === 'project' || section === 'client') {
322
323
  queryParams.append('agent_type', 'clone');
323
324
  queryParams.append('lang', i18n.language);
325
+ queryParams.append('order', section === 'client' ? 'client,project' : 'project,client');
324
326
  } else if (section === 'header' && !isMultiAgents) {
325
327
  // Header sin multiAgents: solo listar agentes clone (Maia)
326
328
  queryParams.append('agent_type', 'clone');
@@ -560,4 +562,4 @@ export var useGetAgents = function useGetAgents(_ref) {
560
562
  sortAgentsList: sortAgentsList
561
563
  };
562
564
  };
563
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJzb3J0QWdlbnRzIiwiYWdlbnRzIiwiY2xvbmVBZ2VudHMiLCJmaWx0ZXIiLCJhZyIsInR5cGUiLCJvdGhlckFnZW50cyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiYWdlbnQiLCJoYW5kbGVHb0hvbWUiLCJ1c2VyIiwiX3VzZVN0YXRlIiwiZGF0YSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldEFnZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmdNb3JlIiwic2V0TG9hZGluZ01vcmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsImFkZEFnZW50IiwibmV3QWdlbnQiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsImlkIiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwibWFwIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsIm1lc3NhZ2UiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJjdXJyZW50IiwiaGFuZGxlR2V0QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsIl9tYWlhRGF0YSRkYXRhIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJfbWFpYUVycm9yJHJlc3BvbnNlIiwiX21haWFFcnJvciRtZXNzYWdlIiwiX21haWFFcnJvciRtZXNzYWdlMiIsImlzNDAzRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJjdXN0b21IYXNNb3JlIiwiY3VzdG9tTmV4dE9mZnNldCIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl9jdXN0b21FcnJvciRyZXNwb25zZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UyIiwiX2lzNDAzRXJyb3IiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsIl9pczQwM0Vycm9yMiIsIl9hZ2VudFBhcnNlZCIsIl9hZ2VudFBhcnNlZDIiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYyIiwiYXZhaWxhYmxlQWdlbnRzIiwiX2F2YWlsYWJsZUFnZW50cyIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjMiLCJfYXZhaWxhYmxlQWdlbnRzMiIsIl9hdmFpbGFibGVBZ2VudHMzIiwiZmlyc3RBdmFpbGFibGVBZ2VudCIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwic3RhdHVzIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWUyIiwiY2FuTG9hZE1vcmUiLCJfdDUiLCJfY29udGV4dDIiLCJleGlzdGluZ0Nsb25lQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJuZXdBZ2VudHMiLCJoYXMiLCJoYXNOb0FnZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlVXNlciwgQ09SVXNlclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogYWdlbnRlcyBjbG9uZSBwcmltZXJvIChzaSBleGlzdGVuKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIC8vIFNlcGFyYXIgYWdlbnRlcyBjbG9uZSBkZWwgcmVzdG9cbiAgY29uc3QgY2xvbmVBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlICE9PSAnY2xvbmUnKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICAvLyBDb21iaW5hcjogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcywgbHVlZ28gbm8gZmF2b3JpdG9zXG4gIHJldHVybiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnYWN0aW9uc1Rhc2tzJ1xuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgdXNlR2V0QWdlbnRzID0gKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWUgfTogVXNlR2V0QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBbYWdlbnRzLCBzZXRBZ2VudHNdID0gdXNlU3RhdGU8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9Pih7IGRhdGE6IFtdIH0pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01vcmUsIHNldExvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbignY2hhdF9haV9zZWN0aW9uJylcbiAgY29uc3QgbGFzdFNlbGVjdGVkQWdlbnRSZWYgPSB1c2VSZWY8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1JlZnJlc2hpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGxhc3RSZXF1ZXN0UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgYWRkQWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3QWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBhZ2VudGUgeWEgZXhpc3RlIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgYWdlbnRFeGlzdHMgPSBwcmV2LmRhdGEuc29tZShleGlzdGluZ0FnZW50ID0+IGV4aXN0aW5nQWdlbnQuaWQgPT09IG5ld0FnZW50LmlkKVxuICAgICAgICBpZiAoYWdlbnRFeGlzdHMpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCBuZXdBZ2VudF1cbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBoYW5kbGVHb0hvbWUoKVxuICAgIH0sXG4gICAgW2hhbmRsZUdvSG9tZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SWQ6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgZGF0YTogcHJldi5kYXRhLmZpbHRlcihhID0+IGEuaWQgIT09IGFnZW50SWQudG9TdHJpbmcoKSksXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PlxuICAgICAgICBleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQgPyB1cGRhdGVkQWdlbnQgOiBleGlzdGluZ0FnZW50XG4gICAgICApXG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyh1cGRhdGVkRGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnRGYXZvcml0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh1cGRhdGVkQWdlbnQ6IEFnZW50LCBzaG91bGRTb3J0OiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT4ge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkQWdlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQWdlbnRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb2xvIG9yZGVuYXIgc2kgc2hvdWxkU29ydCBlcyB0cnVlXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0YSA9IHNob3VsZFNvcnQgPyBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKSA6IHVwZGF0ZWREYXRhXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gQWN0dWFsaXphciBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIHNpIGVzIGVsIHF1ZSBzZSBlc3TDoSBhY3R1YWxpemFuZG9cbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0FnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhID0+IGEuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZClcbiAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICBzZWxlY3RBZ2VudChtZXJnZWRBZ2VudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRGaWVsZHMgYXMgQWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50cy5kYXRhXVxuICApXG5cbiAgY29uc3Qgc29ydEFnZW50c0xpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMocHJldi5kYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RGaXJzdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChhZ2VudHMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmRJbmRleChhZ2VudERhdGEgPT4gYWdlbnREYXRhLmlkID09PSBhZ2VudElkKVxuICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXVxuICAgICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50cy5kYXRhLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudFRvU2VsZWN0PzogQWdlbnQpID0+IHtcbiAgICAgIGlmIChpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdEtleSA9IGFnZW50VG9TZWxlY3Q/LmlkPy50b1N0cmluZygpIHx8ICdkZWZhdWx0J1xuICAgICAgaWYgKGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPT09IHJlcXVlc3RLZXkgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IHJlcXVlc3RLZXlcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG5cbiAgICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgYWdlbnRQYXJzZWQ6IEFnZW50W10gPSBbXVxuICAgICAgICBsZXQgaGFzTW9yZSA9IGZhbHNlXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgIC8vIFNpIHRpZW5lIGZlYXR1cmUgYWNjZXNzIG11bHRpIGFnZW50cywgaGFjZXIgZG9zIHF1ZXJpZXMgKE1haWEgKyBjdXN0b20pIGVuIGN1YWxxdWllciBzZWNjacOzblxuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIFF1ZXJ5IDE6IEFnZW50ZXMgY2xvbmUgKE1haWEpIC0gU29sbyBwYXJhIHJvbGVzIHBlcm1pdGlkb3MuIFB1ZWRlbiB2ZW5pciBtw7psdGlwbGVzIGFnZW50ZXMgdGlwbyBjbG9uZVxuICAgICAgICAgIGxldCBjbG9uZUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgaWYgKCF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBtYWlhUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7aTE4bi5sYW5ndWFnZX1gLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnN0IG1haWFEYXRhID0gYXdhaXQgbWFpYVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICBjbG9uZUFnZW50cyA9IG1haWFEYXRhLmRhdGE/LmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKSB8fCBbXVxuICAgICAgICAgICAgfSBjYXRjaCAobWFpYUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGNsb25lQWdlbnRzXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgICB0aHJvdyBtYWlhRXJyb3JcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFF1ZXJ5IDI6IEFnZW50ZXMgY3VzdG9tIGNvbiBwYWdpbmFjacOzblxuICAgICAgICAgIGxldCBjdXN0b21BZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGxldCBjdXN0b21IYXNNb3JlID0gZmFsc2VcbiAgICAgICAgICBsZXQgY3VzdG9tTmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21SZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgIHBhdGg6ICdhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9MCcsXG4gICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgY3VzdG9tRGF0YSA9IGF3YWl0IGN1c3RvbVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgY3VzdG9tQWdlbnRzID0gY3VzdG9tRGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICBjdXN0b21IYXNNb3JlID0gY3VzdG9tRGF0YS5oYXNfbW9yZSB8fCBmYWxzZVxuICAgICAgICAgICAgY3VzdG9tTmV4dE9mZnNldCA9IGN1c3RvbURhdGEubmV4dF9vZmZzZXQgfHwgbnVsbFxuICAgICAgICAgIH0gY2F0Y2ggKGN1c3RvbUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY3VzdG9tQWdlbnRzIChjdXN0b21BZ2VudHMgcXVlZGEgY29tbyBhcnJheSB2YWPDrW8pXG4gICAgICAgICAgICAgIC8vIEVzdG8gcHVlZGUgb2N1cnJpciBlbiBkb3MgZXNjZW5hcmlvczpcbiAgICAgICAgICAgICAgLy8gMS4gVXN1YXJpbyBOTyBlcyBkZSB1c2VyUm9sZXNEaXNhYmxlZDogdGVuZHLDoSBzb2xvIGxvcyBjbG9uZUFnZW50cyAoc2kgbGEgcXVlcnkgY2xvbmUgZnVlIGV4aXRvc2EpXG4gICAgICAgICAgICAgIC8vIDIuIFVzdWFyaW8gU8ONIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiBlbCBsaXN0YWRvIHF1ZWRhcsOhIHZhY8OtbyAocG9ycXVlIG5vIGhheSBjbG9uZUFnZW50cylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IGN1c3RvbUVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ29tYmluYXI6IGFnZW50ZXMgY2xvbmUgcHJpbWVybywgbHVlZ28gbG9zIGN1c3RvbSAoc2kgZXhpc3RlbilcbiAgICAgICAgICAvLyBTaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHJvbCBkZXNoYWJpbGl0YWRvLCBubyBpbmNsdWlyIGNsb25lQWdlbnRzXG4gICAgICAgICAgaWYgKHVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZCkpIHtcbiAgICAgICAgICAgIC8vIFVzdWFyaW8gZGUgcm9sZXMgZGlzYWJsZWQ6IHNvbG8gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAvLyBTaSBjdXN0b21BZ2VudHMgZXN0w6EgdmFjw61vIChwb3IgNDAzKSwgYWdlbnRQYXJzZWQgc2Vyw6EgW10geSBzZSBtb3N0cmFyw6EgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBjdXN0b21BZ2VudHNcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBub3JtYWw6IGNsb25lQWdlbnRzICsgY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAvLyBTaSBjdXN0b21BZ2VudHMgZXN0w6EgdmFjw61vIChwb3IgNDAzKSBwZXJvIGhheSBjbG9uZUFnZW50cywgYWdlbnRQYXJzZWQgdGVuZHLDoSBsb3MgY2xvbmVzXG4gICAgICAgICAgICAvLyBTaSBubyBoYXkgY2xvbmVBZ2VudHMgbmkgY3VzdG9tQWdlbnRzLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGNsb25lQWdlbnRzLmxlbmd0aCA/IFsuLi5jbG9uZUFnZW50cywgLi4uY3VzdG9tQWdlbnRzXSA6IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICBoYXNNb3JlID0gY3VzdG9tSGFzTW9yZVxuICAgICAgICAgIG5leHRPZmZzZXQgPSBjdXN0b21OZXh0T2Zmc2V0XG5cbiAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICBoYXNfbW9yZTogaGFzTW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBuZXh0T2Zmc2V0LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBTaSBubyBoYXkgYWdlbnRlcyBkZXNwdcOpcyBkZSBwcm9jZXNhciBsYXMgcXVlcmllcywgbGltcGlhciBlbCBlcnJvclxuICAgICAgICAgIC8vIHBhcmEgcXVlIGhhc05vQWdlbnRzIHB1ZWRhIHNlciB0cnVlIHkgc2UgbXVlc3RyZSBlbCBlbXB0eVN0YXRlXG4gICAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIHByb2plY3QgbyBoZWFkZXIgc2luIG11bHRpQWdlbnRzXG4gICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgICAgICBpZiAoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICdhY3Rpb25zVGFza3MnKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnY2xvbmUnKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsYW5nJywgaTE4bi5sYW5ndWFnZSlcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICFpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgICAvLyBIZWFkZXIgc2luIG11bHRpQWdlbnRzOiBzb2xvIGxpc3RhciBhZ2VudGVzIGNsb25lIChNYWlhKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCAnMCcpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVBhcmFtcy50b1N0cmluZygpXG4gICAgICAgICAgY29uc3QgcGF0aCA9IGBhZ2VudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgLy8gZGF0YS5kYXRhIHlhIGNvbnRpZW5lIHRvZG9zIGxvcyBhZ2VudGVzIGNsb25lIGRlIGxhIHF1ZXJ5IGFnZW50X3R5cGU9Y2xvbmVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gZGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgICAgaGFzTW9yZSA9IGRhdGEuaGFzX21vcmVcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBkYXRhLm5leHRfb2Zmc2V0XG5cbiAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGNhdGNoIChyZXNwb25zZUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBlc3RhYmxlY2VyIGFnZW50ZXMgdmFjw61vcyB5IGNvbnRpbnVhclxuICAgICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgICAgICAgIGhhc19tb3JlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLy8gTGltcGlhciBlbCBlcnJvciBwYXJhIHF1ZSBoYXNOb0FnZW50cyBwdWVkYSBzZXIgdHJ1ZSB5IHNlIG11ZXN0cmUgZWwgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VFcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEzDs2dpY2EgZGUgc2VsZWN0IGFnZW50IC0gU29sbyBzZWxlY2Npb25hciBzaSBoYXkgYWdlbnRlcyBkaXNwb25pYmxlc1xuICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkLmZpbmQoKGFnZW50VG9SZXF1ZXN0OiBBZ2VudCkgPT4gYWdlbnRUb1JlcXVlc3QuaWQgPT09IGFnZW50VG9TZWxlY3QuaWQpKSB7XG4gICAgICAgICAgICBpZiAobGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudD8uaWQgIT09IGFnZW50VG9TZWxlY3QuaWQpIHtcbiAgICAgICAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50VG9TZWxlY3RcbiAgICAgICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRUb1NlbGVjdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGFnZW50UGFyc2VkPy5bMF0gJiYgKCFhZ2VudCB8fCAhYWdlbnRQYXJzZWQuZmluZCgoYTogQWdlbnQpID0+IGEuaWQgPT09IGFnZW50LmlkKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIXVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlICE9PSAnY2xvbmUnKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIXVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlICE9PSAnY2xvbmUnKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBdmFpbGFibGVBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEF2YWlsYWJsZUFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEF2YWlsYWJsZUFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEF2YWlsYWJsZUFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QXZhaWxhYmxlQWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnKVxuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWlzUmVmcmVzaGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgbG9hZGluZ11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNb3JlQWdlbnRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICAgIC8vIENhcmdhciBtw6FzOiBlbiBoZWFkZXIgc2llbXByZTsgZW4gcHJvamVjdCBzb2xvIHNpIGlzTXVsdGlBZ2VudHMgKHBvcnF1ZSBzb2xvIGVudG9uY2VzIGhheSBwYWdpbmFjacOzbiBkZSBjdXN0b20pXG4gICAgY29uc3QgY2FuTG9hZE1vcmUgPSBzZWN0aW9uID09PSAnaGVhZGVyJyB8fCBpc011bHRpQWdlbnRzXG4gICAgaWYgKCFjYW5Mb2FkTW9yZSB8fCAhYWdlbnRzLmhhc19tb3JlIHx8ICFhZ2VudHMubmV4dF9vZmZzZXQgfHwgbG9hZGluZ01vcmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmdNb3JlKHRydWUpXG4gICAgc2V0RXJyb3IobnVsbClcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcGF0aDogc3RyaW5nXG5cbiAgICAgIC8vIFNpIGVzIG11bHRpQWdlbnRzLCBzb2xvIGNhcmdhciBhZ2VudHMgY3VzdG9tIChNYWlhIHlhIGVzdMOhIGNhcmdhZG8pXG4gICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICBwYXRoID0gYGFnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0ke2FnZW50cy5uZXh0X29mZnNldH1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaSBubyBlcyBtdWx0aUFnZW50cywgY2FyZ2FyIG3DoXMgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsYW5nJywgaTE4bi5sYW5ndWFnZSlcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCBhZ2VudHMubmV4dF9vZmZzZXQudG9TdHJpbmcoKSlcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWBcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gICAgICAvLyBBY3VtdWxhciBhZ2VudGVzLCBleGNsdXllbmRvIGR1cGxpY2Fkb3NcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgbXVsdGlBZ2VudHM6IHNlcGFyYXIgY2xvbmUgeSBjdXN0b21cbiAgICAgICAgICAvLyBNYW50ZW5lciB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBleGlzdGVudGVzIGFsIGluaWNpb1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ2xvbmVBZ2VudHMgPSBwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG5cbiAgICAgICAgICAvLyBPYnRlbmVyIElEcyBleGlzdGVudGVzIChleGNsdXllbmRvIGNsb25lcylcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuXG4gICAgICAgICAgLy8gRmlsdHJhciBudWV2b3MgYWdlbnRzIHF1ZSBubyBlc3TDqW4geWEgZW4gbGEgbGlzdGEgKHkgcXVlIG5vIHNlYW4gY2xvbmUpXG4gICAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gZGF0YS5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnICYmICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuXG4gICAgICAgICAgLy8gQ29uc3RydWlyIGVsIG51ZXZvIGFycmF5OiBjbG9uZXMgcHJpbWVybywgbHVlZ28gbG9zIGFnZW50cyBleGlzdGVudGVzIHF1ZSBubyBzZWFuIGNsb25lLCBsdWVnbyBsb3MgbnVldm9zXG4gICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGV4aXN0aW5nQ2xvbmVBZ2VudHMubGVuZ3RoXG4gICAgICAgICAgICA/IFsuLi5leGlzdGluZ0Nsb25lQWdlbnRzLCAuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLCAuLi5uZXdBZ2VudHNdXG4gICAgICAgICAgICA6IFsuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEzDs2dpY2EgcGFyYSAhaXNNdWx0aUFnZW50czogdG9kb3MgbG9zIGFnZW50ZXMgc29uIGNsb25lLCBzaW1wbGVtZW50ZSBhZ3JlZ2FyIGV2aXRhbmRvIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSAoZGF0YS5kYXRhIHx8IFtdKS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgaGFzX21vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5sb2FkTW9yZUFnZW50cy5lcnJvcicpKVxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgYWdlbnRzLmhhc19tb3JlLCBhZ2VudHMubmV4dF9vZmZzZXQsIGxvYWRpbmdNb3JlLCBpMThuLmxhbmd1YWdlXSlcblxuICBjb25zdCBoYXNOb0FnZW50cyA9ICFsb2FkaW5nICYmICFsb2FkaW5nTW9yZSAmJiAhZXJyb3IgJiYgYWdlbnRzLmRhdGEubGVuZ3RoID09PSAwXG5cbiAgcmV0dXJuIHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcixcbiAgICBoYXNOb0FnZW50cyxcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICAgIHNvcnRBZ2VudHNMaXN0LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxRQUFR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
565
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJzb3J0QWdlbnRzIiwiYWdlbnRzIiwiY2xvbmVBZ2VudHMiLCJmaWx0ZXIiLCJhZyIsInR5cGUiLCJvdGhlckFnZW50cyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiYWdlbnQiLCJoYW5kbGVHb0hvbWUiLCJ1c2VyIiwiX3VzZVN0YXRlIiwiZGF0YSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldEFnZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmdNb3JlIiwic2V0TG9hZGluZ01vcmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsImFkZEFnZW50IiwibmV3QWdlbnQiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsImlkIiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwibWFwIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsIm1lc3NhZ2UiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJjdXJyZW50IiwiaGFuZGxlR2V0QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsIl9tYWlhRGF0YSRkYXRhIiwib3JkZXJQYXJhbSIsIm1haWFSZXNwb25zZSIsIm1haWFEYXRhIiwiX21haWFFcnJvciRyZXNwb25zZSIsIl9tYWlhRXJyb3IkbWVzc2FnZSIsIl9tYWlhRXJyb3IkbWVzc2FnZTIiLCJpczQwM0Vycm9yIiwiY3VzdG9tQWdlbnRzIiwiY3VzdG9tSGFzTW9yZSIsImN1c3RvbU5leHRPZmZzZXQiLCJjdXN0b21SZXNwb25zZSIsImN1c3RvbURhdGEiLCJfY3VzdG9tRXJyb3IkcmVzcG9uc2UiLCJfY3VzdG9tRXJyb3IkbWVzc2FnZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlMiIsIl9pczQwM0Vycm9yIiwicXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsInBhdGgiLCJyZXNwb25zZSIsIl9yZXNwb25zZUVycm9yJHJlc3BvbiIsIl9yZXNwb25zZUVycm9yJG1lc3NhZyIsIl9yZXNwb25zZUVycm9yJG1lc3NhZzIiLCJfaXM0MDNFcnJvcjIiLCJfYWdlbnRQYXJzZWQiLCJfYWdlbnRQYXJzZWQyIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMiIsImF2YWlsYWJsZUFnZW50cyIsIl9hdmFpbGFibGVBZ2VudHMiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYzIiwiX2F2YWlsYWJsZUFnZW50czIiLCJfYXZhaWxhYmxlQWdlbnRzMyIsImZpcnN0QXZhaWxhYmxlQWdlbnQiLCJfdCIsIl90MiIsIl90MyIsIl90NCIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJhYnJ1cHQiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiaW5jbHVkZXMiLCJyb2xlX2lkIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsInN0YXR1cyIsImhhc19tb3JlIiwibmV4dF9vZmZzZXQiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJhZ2VudFRvUmVxdWVzdCIsImFnZW50SXRlbSIsIkVycm9yIiwic2V0VGltZW91dCIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwibG9hZE1vcmVBZ2VudHMiLCJfY2FsbGVlMiIsImNhbkxvYWRNb3JlIiwiX3Q1IiwiX2NvbnRleHQyIiwiZXhpc3RpbmdDbG9uZUFnZW50cyIsImV4aXN0aW5nSWRzIiwiU2V0IiwibmV3QWdlbnRzIiwiaGFzIiwiaGFzTm9BZ2VudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuLyoqXG4gKiBPcmRlbmEgbG9zIGFnZW50ZXM6IGFnZW50ZXMgY2xvbmUgcHJpbWVybyAoc2kgZXhpc3RlbiksIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICovXG5jb25zdCBzb3J0QWdlbnRzID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICAvLyBTZXBhcmFyIGFnZW50ZXMgY2xvbmUgZGVsIHJlc3RvXG4gIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICBjb25zdCBvdGhlckFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWcgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJylcblxuICAvLyBTZXBhcmFyIGZhdm9yaXRvcyB5IG5vIGZhdm9yaXRvc1xuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG5cbiAgLy8gQ29tYmluYXI6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MsIGx1ZWdvIG5vIGZhdm9yaXRvc1xuICByZXR1cm4gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbnR5cGUgVXNlR2V0QWdlbnRzUHJvcHMgPSB7XG4gIHNlbGVjdEFnZW50OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCdcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGFuZGxlR29Ib21lKClcbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBRdWVyeSAxOiBBZ2VudGVzIGNsb25lIChNYWlhKSAtIFNvbG8gcGFyYSByb2xlcyBwZXJtaXRpZG9zLiBQdWVkZW4gdmVuaXIgbcO6bHRpcGxlcyBhZ2VudGVzIHRpcG8gY2xvbmVcbiAgICAgICAgICBsZXQgY2xvbmVBZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGlmICghdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JkZXJQYXJhbSA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnJm9yZGVyPWNsaWVudCxwcm9qZWN0JyA6IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/ICcmb3JkZXI9cHJvamVjdCxjbGllbnQnIDogJydcbiAgICAgICAgICAgICAgY29uc3QgbWFpYVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke2kxOG4ubGFuZ3VhZ2V9JHtvcmRlclBhcmFtfWAsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgbWFpYURhdGEgPSBhd2FpdCBtYWlhUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIGNsb25lQWdlbnRzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpIHx8IFtdXG4gICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY2xvbmVBZ2VudHNcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICAgIHRocm93IG1haWFFcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUXVlcnkgMjogQWdlbnRlcyBjdXN0b20gY29uIHBhZ2luYWNpw7NuXG4gICAgICAgICAgbGV0IGN1c3RvbUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgbGV0IGN1c3RvbUhhc01vcmUgPSBmYWxzZVxuICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICBjdXN0b21BZ2VudHMgPSBjdXN0b21EYXRhLmRhdGEgfHwgW11cbiAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICAgICAgfSBjYXRjaCAoY3VzdG9tRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKGN1c3RvbUFnZW50cyBxdWVkYSBjb21vIGFycmF5IHZhY8OtbylcbiAgICAgICAgICAgICAgLy8gRXN0byBwdWVkZSBvY3VycmlyIGVuIGRvcyBlc2NlbmFyaW9zOlxuICAgICAgICAgICAgICAvLyAxLiBVc3VhcmlvIE5PIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiB0ZW5kcsOhIHNvbG8gbG9zIGNsb25lQWdlbnRzIChzaSBsYSBxdWVyeSBjbG9uZSBmdWUgZXhpdG9zYSlcbiAgICAgICAgICAgICAgLy8gMi4gVXN1YXJpbyBTw40gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IGVsIGxpc3RhZG8gcXVlZGFyw6EgdmFjw61vIChwb3JxdWUgbm8gaGF5IGNsb25lQWdlbnRzKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDb21iaW5hcjogYWdlbnRlcyBjbG9uZSBwcmltZXJvLCBsdWVnbyBsb3MgY3VzdG9tIChzaSBleGlzdGVuKVxuICAgICAgICAgIC8vIFNpIGVsIHVzdWFyaW8gdGllbmUgdW4gcm9sIGRlc2hhYmlsaXRhZG8sIG5vIGluY2x1aXIgY2xvbmVBZ2VudHNcbiAgICAgICAgICBpZiAodXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBkZSByb2xlcyBkaXNhYmxlZDogc29sbyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdIHkgc2UgbW9zdHJhcsOhIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgLy8gcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgcHJvamVjdCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvcmRlcicsIHNlY3Rpb24gPT09ICdjbGllbnQnID8gJ2NsaWVudCxwcm9qZWN0JyA6ICdwcm9qZWN0LGNsaWVudCcpXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAhaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gSGVhZGVyIHNpbiBtdWx0aUFnZW50czogc29sbyBsaXN0YXIgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPWNsb25lXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gZGF0YS5uZXh0X29mZnNldFxuXG4gICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIExpbXBpYXIgZWwgZXJyb3IgcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIGNsb25lIHkgY3VzdG9tXG4gICAgICAgICAgLy8gTWFudGVuZXIgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZXhpc3RlbnRlcyBhbCBpbmljaW9cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0Nsb25lQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBjbG9uZXMpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJykubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcblxuICAgICAgICAgIC8vIEZpbHRyYXIgbnVldm9zIGFnZW50cyBxdWUgbm8gZXN0w6luIHlhIGVuIGxhIGxpc3RhICh5IHF1ZSBubyBzZWFuIGNsb25lKVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IGRhdGEuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcblxuICAgICAgICAgIC8vIENvbnN0cnVpciBlbCBudWV2byBhcnJheTogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGxvcyBhZ2VudHMgZXhpc3RlbnRlcyBxdWUgbm8gc2VhbiBjbG9uZSwgbHVlZ28gbG9zIG51ZXZvc1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBleGlzdGluZ0Nsb25lQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdDbG9uZUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IHRvZG9zIGxvcyBhZ2VudGVzIHNvbiBjbG9uZSwgc2ltcGxlbWVudGUgYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgY29uc3QgaGFzTm9BZ2VudHMgPSAhbG9hZGluZyAmJiAhbG9hZGluZ01vcmUgJiYgIWVycm9yICYmIGFnZW50cy5kYXRhLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxNQUFlLEVBQWM7RUFDL0M7RUFDQSxJQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQztFQUM1RCxJQUFNQyxXQUFXLEdBQUdMLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQzs7RUFFNUQ7RUFDQSxJQUFNRSxTQUFTLEdBQUdELFdBQVcsQ0FBQ0gsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNJLFdBQVc7RUFBQSxFQUFDLENBQUNDLElBQUksQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUM7SUFBQSxPQUFLRCxDQUFDLENBQUNFLElBQUksQ0FBQ0MsYUFBYSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQztFQUFBLEVBQUM7RUFDdkcsSUFBTUUsWUFB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
@@ -7,7 +7,7 @@ import { fetchMaia } from '../client';
7
7
  export var getChatMessages = /*#__PURE__*/function () {
8
8
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
9
9
  var _data$data;
10
- var chatId, _ref$offset, offset, currentUser, cancelledText, response, data, agentIsDeleted, firstMessage, agentNoPermission, projectId, projectName, projectDeleted, normalizeProjectId, i, _message$project_meta, message, rawId, normalized;
10
+ var chatId, _ref$offset, offset, currentUser, cancelledText, response, data, agentIsDeleted, firstMessage, agentNoPermission, projectId, projectName, projectDeleted, clientId, clientName, normalizeId, i, _message$project_meta, _message$client_metad, _message$client_metad2, message, rawProjectId, normalized, rawClientId, _normalized;
11
11
  return _regeneratorRuntime.wrap(function (_context) {
12
12
  while (1) switch (_context.prev = _context.next) {
13
13
  case 0:
@@ -31,10 +31,9 @@ export var getChatMessages = /*#__PURE__*/function () {
31
31
  name: firstMessage.agent_name,
32
32
  emoji: firstMessage.emoji || '🤖',
33
33
  type: firstMessage.agent_type || 'custom'
34
- } : undefined; // Buscar project_metadata en todos los mensajes, desde el más reciente hacia atrás
35
- // Esto asegura que encontremos el contexto del proyecto incluso si el último mensaje no lo tiene
36
- // project_metadata.id puede venir como string o number desde el backend; normalizamos a number
37
- normalizeProjectId = function normalizeProjectId(id) {
34
+ } : undefined; // Buscar project_metadata y client_metadata en todos los mensajes, desde el más reciente hacia atrás
35
+ // project_metadata.id / client_metadata.id pueden venir como string o number desde el backend
36
+ normalizeId = function normalizeId(id) {
38
37
  if (id == null) return undefined;
39
38
  var num = typeof id === 'number' ? id : parseInt(String(id), 10);
40
39
  return Number.isNaN(num) ? undefined : num;
@@ -42,16 +41,16 @@ export var getChatMessages = /*#__PURE__*/function () {
42
41
  i = data.data.length - 1;
43
42
  case 3:
44
43
  if (!(i >= 0)) {
45
- _context.next = 5;
44
+ _context.next = 6;
46
45
  break;
47
46
  }
48
47
  message = data.data[i];
49
- rawId = message === null || message === void 0 || (_message$project_meta = message.project_metadata) === null || _message$project_meta === void 0 ? void 0 : _message$project_meta.id;
50
- if (!(rawId != null)) {
48
+ rawProjectId = message === null || message === void 0 || (_message$project_meta = message.project_metadata) === null || _message$project_meta === void 0 ? void 0 : _message$project_meta.id;
49
+ if (!(rawProjectId != null)) {
51
50
  _context.next = 4;
52
51
  break;
53
52
  }
54
- normalized = normalizeProjectId(rawId);
53
+ normalized = normalizeId(rawProjectId);
55
54
  if (normalized !== undefined) {
56
55
  projectId = normalized;
57
56
  projectName = message.project_metadata.name;
@@ -61,12 +60,24 @@ export var getChatMessages = /*#__PURE__*/function () {
61
60
  };
62
61
  }
63
62
  }
64
- return _context.abrupt("continue", 5);
63
+ return _context.abrupt("continue", 6);
65
64
  case 4:
65
+ rawClientId = message === null || message === void 0 || (_message$client_metad = message.client_metadata) === null || _message$client_metad === void 0 ? void 0 : _message$client_metad.id;
66
+ if (!(rawClientId != null && message !== null && message !== void 0 && (_message$client_metad2 = message.client_metadata) !== null && _message$client_metad2 !== void 0 && _message$client_metad2.name)) {
67
+ _context.next = 5;
68
+ break;
69
+ }
70
+ _normalized = normalizeId(rawClientId);
71
+ if (_normalized !== undefined) {
72
+ clientId = _normalized;
73
+ clientName = message.client_metadata.name;
74
+ }
75
+ return _context.abrupt("continue", 6);
76
+ case 5:
66
77
  i -= 1;
67
78
  _context.next = 3;
68
79
  break;
69
- case 5:
80
+ case 6:
70
81
  return _context.abrupt("return", {
71
82
  items: mapChatMessages(data.data, currentUser, cancelledText),
72
83
  nextItem: data.next_offset,
@@ -82,9 +93,11 @@ export var getChatMessages = /*#__PURE__*/function () {
82
93
  hasAgentPermission: data.has_agent_permission,
83
94
  projectId: projectId,
84
95
  projectName: projectName,
85
- projectDeleted: projectDeleted
96
+ projectDeleted: projectDeleted,
97
+ clientId: clientId,
98
+ clientName: clientName
86
99
  });
87
- case 6:
100
+ case 7:
88
101
  case "end":
89
102
  return _context.stop();
90
103
  }
@@ -94,4 +107,4 @@ export var getChatMessages = /*#__PURE__*/function () {
94
107
  return _ref2.apply(this, arguments);
95
108
  };
96
109
  }();
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDaGF0TWVzc2FnZXMiLCJmZXRjaE1haWEiLCJnZXRDaGF0TWVzc2FnZXMiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZiIsIl9kYXRhJGRhdGEiLCJjaGF0SWQiLCJfcmVmJG9mZnNldCIsIm9mZnNldCIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsInJlc3BvbnNlIiwiZGF0YSIsImFnZW50SXNEZWxldGVkIiwiZmlyc3RNZXNzYWdlIiwiYWdlbnROb1Blcm1pc3Npb24iLCJwcm9qZWN0SWQiLCJwcm9qZWN0TmFtZSIsInByb2plY3REZWxldGVkIiwibm9ybWFsaXplUHJvamVjdElkIiwiaSIsIl9tZXNzYWdlJHByb2plY3RfbWV0YSIsIm1lc3NhZ2UiLCJyYXdJZCIsIm5vcm1hbGl6ZWQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJjb25jYXQiLCJzZW50IiwianNvbiIsImZpbmQiLCJpdGVtIiwiYWdlbnRfaXNfZGVsZXRlZCIsImFnZW50X2lkIiwiYWdlbnRfbmFtZSIsImlkIiwibmFtZSIsImVtb2ppIiwidHlwZSIsImFnZW50X3R5cGUiLCJ1bmRlZmluZWQiLCJudW0iLCJwYXJzZUludCIsIlN0cmluZyIsIk51bWJlciIsImlzTmFOIiwibGVuZ3RoIiwicHJvamVjdF9tZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJhYnJ1cHQiLCJpdGVtcyIsIm5leHRJdGVtIiwibmV4dF9vZmZzZXQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJhZ2VudERlbGV0ZWQiLCJkZWxldGVkQXQiLCJhZ2VudF9kZWxldGVkX2F0IiwiaGFzQWdlbnRBY2Nlc3MiLCJoYXNfYWdlbnRfYWNjZXNzIiwiaGFzQWdlbnRQZXJtaXNzaW9uIiwiaGFzX2FnZW50X3Blcm1pc3Npb24iLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0NoYXRzL2dldENoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IG1hcENoYXRNZXNzYWdlcyB9IGZyb20gJy4uLy4uL3V0aWxzL21hcENoYXRNZXNzYWdlcydcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcblxudHlwZSBHZXRDaGF0TWVzc2FnZXNQYXJhbXMgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIG9mZnNldD86IG51bWJlclxuICBjdXJyZW50VXNlcjogQ2hhdE1lc3NhZ2VVc2VyXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGdldENoYXRNZXNzYWdlcyA9IGFzeW5jICh7XG4gIGNoYXRJZCxcbiAgb2Zmc2V0ID0gMCxcbiAgY3VycmVudFVzZXIsXG4gIGNhbmNlbGxlZFRleHQsXG59OiBHZXRDaGF0TWVzc2FnZXNQYXJhbXMpOiBQcm9taXNlPHtcbiAgaXRlbXM6IENoYXRNZXNzYWdlW11cbiAgbmV4dEl0ZW06IG51bWJlclxuICBoYXNNb3JlOiBib29sZWFuXG4gIGFnZW50RGVsZXRlZD86IHtcbiAgICBpZDogc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gICAgZW1vamk6IHN0cmluZ1xuICAgIGRlbGV0ZWRBdDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIGFnZW50Tm9QZXJtaXNzaW9uPzoge1xuICAgIGlkOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBlbW9qaTogc3RyaW5nXG4gICAgdHlwZTogc3RyaW5nXG4gIH1cbiAgaGFzQWdlbnRBY2Nlc3M/OiBib29sZWFuXG4gIGhhc0FnZW50UGVybWlzc2lvbj86IGJvb2xlYW5cbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIHByb2plY3REZWxldGVkPzogeyBuYW1lOiBzdHJpbmcgfVxufT4gPT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYHNlc3Npb25zLyR7Y2hhdElkfT9saW1pdD0yMCZvZmZzZXQ9JHtvZmZzZXR9YCxcbiAgfSlcblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgY29uc3QgYWdlbnRJc0RlbGV0ZWQgPSBkYXRhLmRhdGEuZmluZChpdGVtID0+ICEhaXRlbT8uYWdlbnRfaXNfZGVsZXRlZClcblxuICAvLyBFeHRyYWVyIGRhdGEgZGVsIGFnZW50ZSBkZWwgcHJpbWVyIG1lbnNhamUgcGFyYSBjYXNvcyBzaW4gcGVybWlzb3NcbiAgY29uc3QgZmlyc3RNZXNzYWdlID0gZGF0YS5kYXRhPy5bMF1cbiAgY29uc3QgYWdlbnROb1Blcm1pc3Npb24gPVxuICAgIGZpcnN0TWVzc2FnZT8uYWdlbnRfaWQgJiYgZmlyc3RNZXNzYWdlPy5hZ2VudF9uYW1lXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogZmlyc3RNZXNzYWdlLmFnZW50X2lkLFxuICAgICAgICAgIG5hbWU6IGZpcnN0TWVzc2FnZS5hZ2VudF9uYW1lLFxuICAgICAgICAgIGVtb2ppOiBmaXJzdE1lc3NhZ2UuZW1vamkgfHwgJ/CfpJYnLFxuICAgICAgICAgIHR5cGU6IGZpcnN0TWVzc2FnZS5hZ2VudF90eXBlIHx8ICdjdXN0b20nLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuXG4gIC8vIEJ1c2NhciBwcm9qZWN0X21ldGFkYXRhIGVuIHRvZG9zIGxvcyBtZW5zYWplcywgZGVzZGUgZWwgbcOhcyByZWNpZW50ZSBoYWNpYSBhdHLDoXNcbiAgLy8gRXN0byBhc2VndXJhIHF1ZSBlbmNvbnRyZW1vcyBlbCBjb250ZXh0byBkZWwgcHJveWVjdG8gaW5jbHVzbyBzaSBlbCDDumx0aW1vIG1lbnNhamUgbm8gbG8gdGllbmVcbiAgLy8gcHJvamVjdF9tZXRhZGF0YS5pZCBwdWVkZSB2ZW5pciBjb21vIHN0cmluZyBvIG51bWJlciBkZXNkZSBlbCBiYWNrZW5kOyBub3JtYWxpemFtb3MgYSBudW1iZXJcbiAgbGV0IHByb2plY3RJZDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGxldCBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGxldCBwcm9qZWN0RGVsZXRlZDogeyBuYW1lOiBzdHJpbmcgfSB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0IG5vcm1hbGl6ZVByb2plY3RJZCA9IChpZDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoaWQgPT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IG51bSA9IHR5cGVvZiBpZCA9PT0gJ251bWJlcicgPyBpZCA6IHBhcnNlSW50KFN0cmluZyhpZCksIDEwKVxuICAgIHJldHVybiBOdW1iZXIuaXNOYU4obnVtKSA/IHVuZGVmaW5lZCA6IG51bVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IGRhdGEuZGF0YS5sZW5ndGggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhLmRhdGFbaV1cbiAgICBjb25zdCByYXdJZCA9IG1lc3NhZ2U/LnByb2plY3RfbWV0YWRhdGE/LmlkXG4gICAgaWYgKHJhd0lkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVQcm9qZWN0SWQocmF3SWQpXG4gICAgICBpZiAobm9ybWFsaXplZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb2plY3RJZCA9IG5vcm1hbGl6ZWRcbiAgICAgICAgcHJvamVjdE5hbWUgPSBtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLm5hbWVcbiAgICAgICAgaWYgKG1lc3NhZ2UucHJvamVjdF9tZXRhZGF0YSEuaXNfZGVsZXRlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHByb2plY3REZWxldGVkID0geyBuYW1lOiBtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLm5hbWUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaXRlbXM6IG1hcENoYXRNZXNzYWdlcyhkYXRhLmRhdGEsIGN1cnJlbnRVc2VyLCBjYW5jZWxsZWRUZXh0KSxcbiAgICBuZXh0SXRlbTogZGF0YS5uZXh0X29mZnNldCxcbiAgICBoYXNNb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgIGFnZW50RGVsZXRlZDogYWdlbnRJc0RlbGV0ZWQ/LmFnZW50X2lzX2RlbGV0ZWRcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBhZ2VudElzRGVsZXRlZC5hZ2VudF9pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudElzRGVsZXRlZC5hZ2VudF9uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudElzRGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICBkZWxldGVkQXQ6IGFnZW50SXNEZWxldGVkLmFnZW50X2RlbGV0ZWRfYXQsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgIGhhc0FnZW50QWNjZXNzOiBkYXRhLmhhc19hZ2VudF9hY2Nlc3MsXG4gICAgaGFzQWdlbnRQZXJtaXNzaW9uOiBkYXRhLmhhc19hZ2VudF9wZXJtaXNzaW9uLFxuICAgIHByb2plY3RJZCxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBwcm9qZWN0RGVsZXRlZCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBLFNBQVNBLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFTckMsT0FBTyxJQUFNQyxlQUFlO0VBQUEsSUFBQUMsS0FBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFBQUMsSUFBQTtJQUFBLElBQUFDLFVBQUE7SUFBQSxJQUFBQyxNQUFBLEVBQUFDLFdBQUEsRUFBQUMsTUFBQSxFQUFBQyxXQUFBLEVBQUFDLGFBQUEsRUFBQUMsUUFBQSxFQUFBQyxJQUFBLEVBQUFDLGNBQUEsRUFBQUMsWUFBQSxFQUFBQyxpQkFBQSxFQUFBQyxTQUFBLEVBQUFDLFdBQUEsRUFBQUMsY0FBQSxFQUFBQyxrQkFBQSxFQUFBQyxDQUFBLEVBQUFDLHFCQUFBLEVBQUFDLE9BQUEsRUFBQUMsS0FBQSxFQUFBQyxVQUFBO0lBQUEsT0FBQXZCLG1CQUFBLENBQUF3QixJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQzdCdEIsTUFBTSxHQUFBRixJQUFBLENBQU5FLE1BQU0sRUFBQUMsV0FBQSxHQUFBSCxJQUFBLENBQ05JLE1BQU0sRUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUcsQ0FBQyxHQUFBQSxXQUFBLEVBQ1ZFLFdBQVcsR0FBQUwsSUFBQSxDQUFYSyxXQUFXLEVBQ1hDLGFBQWEsR0FBQU4sSUFBQSxDQUFiTSxhQUFhO1VBQUFnQixRQUFBLENBQUFFLElBQUE7VUFBQSxPQXVCVS9CLFNBQVMsQ0FBQztZQUMvQmdDLElBQUksY0FBQUMsTUFBQSxDQUFjeEIsTUFBTSx1QkFBQXdCLE1BQUEsQ0FBb0J0QixNQUFNO1VBQ3BELENBQUMsQ0FBQztRQUFBO1VBRklHLFFBQVEsR0FBQWUsUUFBQSxDQUFBSyxJQUFBO1VBQUFMLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BSUtqQixRQUFRLENBQUNxQixJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTVCcEIsSUFBSSxHQUFBYyxRQUFBLENBQUFLLElBQUE7VUFFSmxCLGNBQWMsR0FBR0QsSUFBSSxDQUFDQSxJQUFJLENBQUNxQixJQUFJLENBQUMsVUFBQUMsSUFBSTtZQUFBLE9BQUksQ0FBQyxFQUFDQSxJQUFJLGFBQUpBLElBQUksZUFBSkEsSUFBSSxDQUFFQyxnQkFBZ0I7VUFBQSxFQUFDLEVBRXZFO1VBQ01yQixZQUFZLElBQUFULFVBQUEsR0FBR08sSUFBSSxDQUFDQSxJQUFJLGNBQUFQLFVBQUEsdUJBQVRBLFVBQUEsQ0FBWSxDQUFDLENBQUM7VUFDN0JVLGlCQUFpQixHQUNyQkQsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRXNCLFFBQVEsSUFBSXRCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUV1QixVQUFVLEdBQzlDO1lBQ0VDLEVBQUUsRUFBRXhCLFlBQVksQ0FBQ3NCLFFBQVE7WUFDekJHLElBQUksRUFBRXpCLFlBQVksQ0FBQ3VCLFVBQVU7WUFDN0JHLEtBQUssRUFBRTFCLFlBQVksQ0FBQzBCLEtBQUssSUFBSSxJQUFJO1lBQ2pDQyxJQUFJLEVBQUUzQixZQUFZLENBQUM0QixVQUFVLElBQUk7VUFDbkMsQ0FBQyxHQUNEQyxTQUFTLEVBRWY7VUFDQTtVQUNBO1VBS014QixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJbUIsRUFBK0IsRUFBeUI7WUFDbEYsSUFBSUEsRUFBRSxJQUFJLElBQUksRUFBRSxPQUFPSyxTQUFTO1lBQ2hDLElBQU1DLEdBQUcsR0FBRyxPQUFPTixFQUFFLEtBQUssUUFBUSxHQUFHQSxFQUFFLEdBQUdPLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDUixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEUsT0FBT1MsTUFBTSxDQUFDQyxLQUFLLENBQUNKLEdBQUcsQ0FBQyxHQUFHRCxTQUFTLEdBQUdDLEdBQUc7VUFDNUMsQ0FBQztVQUVReEIsQ0FBQyxHQUFHUixJQUFJLENBQUNBLElBQUksQ0FBQ3FDLE1BQU0sR0FBRyxDQUFDO1FBQUE7VUFBQSxNQUFFN0IsQ0FBQyxJQUFJLENBQUM7WUFBQU0sUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUNqQ04sT0FBTyxHQUFHVixJQUFJLENBQUNBLElBQUksQ0FBQ1EsQ0FBQyxDQUFDO1VBQ3RCRyxLQUFLLEdBQUdELE9BQU8sYUFBUEEsT0FBTyxnQkFBQUQscUJBQUEsR0FBUEMsT0FBTyxDQUFFNEIsZ0JBQWdCLGNBQUE3QixxQkFBQSx1QkFBekJBLHFCQUFBLENBQTJCaUIsRUFBRTtVQUFBLE1BQ3ZDZixLQUFLLElBQUksSUFBSTtZQUFBRyxRQUFBLENBQUFFLElBQUE7WUFBQTtVQUFBO1VBQ1RKLFVBQVUsR0FBR0wsa0JBQWtCLENBQUNJLEtBQUssQ0FBQztVQUM1QyxJQUFJQyxVQUFVLEtBQUttQixTQUFTLEVBQUU7WUFDNUIzQixTQUFTLEdBQUdRLFVBQVU7WUFDdEJQLFdBQVcsR0FBR0ssT0FBTyxDQUFDNEIsZ0JBQWdCLENBQUVYLElBQUk7WUFDNUMsSUFBSWpCLE9BQU8sQ0FBQzRCLGdCQUFnQixDQUFFQyxVQUFVLEtBQUssSUFBSSxFQUFFO2NBQ2pEakMsY0FBYyxHQUFHO2dCQUFFcUIsSUFBSSxFQUFFakIsT0FBTyxDQUFDNEIsZ0JBQWdCLENBQUVYO2NBQUssQ0FBQztZQUMzRDtVQUNGO1VBQUMsT0FBQWIsUUFBQSxDQUFBMEIsTUFBQTtRQUFBO1VBWHNDaEMsQ0FBQyxJQUFJLENBQUM7VUFBQU0sUUFBQSxDQUFBRSxJQUFBO1VBQUE7UUFBQTtVQUFBLE9BQUFGLFFBQUEsQ0FBQTBCLE1BQUEsV0FnQjFDO1lBQ0xDLEtBQUssRUFBRXpELGVBQWUsQ0FBQ2dCLElBQUksQ0FBQ0EsSUFBSSxFQUFFSCxXQUFXLEVBQUVDLGFBQWEsQ0FBQztZQUM3RDRDLFFBQVEsRUFBRTFDLElBQUksQ0FBQzJDLFdBQVc7WUFDMUJDLE9BQU8sRUFBRTVDLElBQUksQ0FBQzZDLFFBQVE7WUFDdEJDLFlBQVksRUFBRTdDLGNBQWMsYUFBZEEsY0FBYyxlQUFkQSxjQUFjLENBQUVzQixnQkFBZ0IsR0FDMUM7Y0FDRUcsRUFBRSxFQUFFekIsY0FBYyxDQUFDdUIsUUFBUTtjQUMzQkcsSUFBSSxFQUFFMUIsY0FBYyxDQUFDd0IsVUFBVTtjQUMvQkcsS0FBSyxFQUFFM0IsY0FBYyxDQUFDMkIsS0FBSztjQUMzQm1CLFNBQVMsRUFBRTlDLGNBQWMsQ0FBQytDO1lBQzVCLENBQUMsR0FDRGpCLFNBQVM7WUFDYjVCLGlCQUFpQixFQUFqQkEsaUJBQWlCO1lBQ2pCOEMsY0FBYyxFQUFFakQsSUFBSSxDQUFDa0QsZ0JBQWdCO1lBQ3JDQyxrQkFBa0IsRUFBRW5ELElBQUksQ0FBQ29ELG9CQUFvQjtZQUM3Q2hELFNBQVMsRUFBVEEsU0FBUztZQUNUQyxXQUFXLEVBQVhBLFdBQVc7WUFDWEMsY0FBYyxFQUFkQTtVQUNGLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQVEsUUFBQSxDQUFBdUMsSUFBQTtNQUFBO0lBQUEsR0FBQTlELE9BQUE7RUFBQSxDQUNGO0VBQUEsZ0JBL0ZZTCxlQUFlQSxDQUFBb0UsRUFBQTtJQUFBLE9BQUFuRSxLQUFBLENBQUFvRSxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBK0YzQiIsImlnbm9yZUxpc3QiOltdfQ==
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDaGF0TWVzc2FnZXMiLCJmZXRjaE1haWEiLCJnZXRDaGF0TWVzc2FnZXMiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZiIsIl9kYXRhJGRhdGEiLCJjaGF0SWQiLCJfcmVmJG9mZnNldCIsIm9mZnNldCIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsInJlc3BvbnNlIiwiZGF0YSIsImFnZW50SXNEZWxldGVkIiwiZmlyc3RNZXNzYWdlIiwiYWdlbnROb1Blcm1pc3Npb24iLCJwcm9qZWN0SWQiLCJwcm9qZWN0TmFtZSIsInByb2plY3REZWxldGVkIiwiY2xpZW50SWQiLCJjbGllbnROYW1lIiwibm9ybWFsaXplSWQiLCJpIiwiX21lc3NhZ2UkcHJvamVjdF9tZXRhIiwiX21lc3NhZ2UkY2xpZW50X21ldGFkIiwiX21lc3NhZ2UkY2xpZW50X21ldGFkMiIsIm1lc3NhZ2UiLCJyYXdQcm9qZWN0SWQiLCJub3JtYWxpemVkIiwicmF3Q2xpZW50SWQiLCJfbm9ybWFsaXplZCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicGF0aCIsImNvbmNhdCIsInNlbnQiLCJqc29uIiwiZmluZCIsIml0ZW0iLCJhZ2VudF9pc19kZWxldGVkIiwiYWdlbnRfaWQiLCJhZ2VudF9uYW1lIiwiaWQiLCJuYW1lIiwiZW1vamkiLCJ0eXBlIiwiYWdlbnRfdHlwZSIsInVuZGVmaW5lZCIsIm51bSIsInBhcnNlSW50IiwiU3RyaW5nIiwiTnVtYmVyIiwiaXNOYU4iLCJsZW5ndGgiLCJwcm9qZWN0X21ldGFkYXRhIiwiaXNfZGVsZXRlZCIsImFicnVwdCIsImNsaWVudF9tZXRhZGF0YSIsIml0ZW1zIiwibmV4dEl0ZW0iLCJuZXh0X29mZnNldCIsImhhc01vcmUiLCJoYXNfbW9yZSIsImFnZW50RGVsZXRlZCIsImRlbGV0ZWRBdCIsImFnZW50X2RlbGV0ZWRfYXQiLCJoYXNBZ2VudEFjY2VzcyIsImhhc19hZ2VudF9hY2Nlc3MiLCJoYXNBZ2VudFBlcm1pc3Npb24iLCJoYXNfYWdlbnRfcGVybWlzc2lvbiIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQ2hhdHMvZ2V0Q2hhdE1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZVVzZXIgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgbWFwQ2hhdE1lc3NhZ2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWFwQ2hhdE1lc3NhZ2VzJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuXG50eXBlIEdldENoYXRNZXNzYWdlc1BhcmFtcyA9IHtcbiAgY2hhdElkOiBzdHJpbmdcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIGN1cnJlbnRVc2VyOiBDaGF0TWVzc2FnZVVzZXJcbiAgY2FuY2VsbGVkVGV4dD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q2hhdE1lc3NhZ2VzID0gYXN5bmMgKHtcbiAgY2hhdElkLFxuICBvZmZzZXQgPSAwLFxuICBjdXJyZW50VXNlcixcbiAgY2FuY2VsbGVkVGV4dCxcbn06IEdldENoYXRNZXNzYWdlc1BhcmFtcyk6IFByb21pc2U8e1xuICBpdGVtczogQ2hhdE1lc3NhZ2VbXVxuICBuZXh0SXRlbTogbnVtYmVyXG4gIGhhc01vcmU6IGJvb2xlYW5cbiAgYWdlbnREZWxldGVkPzoge1xuICAgIGlkOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBlbW9qaTogc3RyaW5nXG4gICAgZGVsZXRlZEF0OiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgYWdlbnROb1Blcm1pc3Npb24/OiB7XG4gICAgaWQ6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIGVtb2ppOiBzdHJpbmdcbiAgICB0eXBlOiBzdHJpbmdcbiAgfVxuICBoYXNBZ2VudEFjY2Vzcz86IGJvb2xlYW5cbiAgaGFzQWdlbnRQZXJtaXNzaW9uPzogYm9vbGVhblxuICBwcm9qZWN0SWQ/OiBudW1iZXJcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgcHJvamVjdERlbGV0ZWQ/OiB7IG5hbWU6IHN0cmluZyB9XG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbn0+ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgIHBhdGg6IGBzZXNzaW9ucy8ke2NoYXRJZH0/bGltaXQ9MjAmb2Zmc2V0PSR7b2Zmc2V0fWAsXG4gIH0pXG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gIGNvbnN0IGFnZW50SXNEZWxldGVkID0gZGF0YS5kYXRhLmZpbmQoaXRlbSA9PiAhIWl0ZW0/LmFnZW50X2lzX2RlbGV0ZWQpXG5cbiAgLy8gRXh0cmFlciBkYXRhIGRlbCBhZ2VudGUgZGVsIHByaW1lciBtZW5zYWplIHBhcmEgY2Fzb3Mgc2luIHBlcm1pc29zXG4gIGNvbnN0IGZpcnN0TWVzc2FnZSA9IGRhdGEuZGF0YT8uWzBdXG4gIGNvbnN0IGFnZW50Tm9QZXJtaXNzaW9uID1cbiAgICBmaXJzdE1lc3NhZ2U/LmFnZW50X2lkICYmIGZpcnN0TWVzc2FnZT8uYWdlbnRfbmFtZVxuICAgICAgPyB7XG4gICAgICAgICAgaWQ6IGZpcnN0TWVzc2FnZS5hZ2VudF9pZCxcbiAgICAgICAgICBuYW1lOiBmaXJzdE1lc3NhZ2UuYWdlbnRfbmFtZSxcbiAgICAgICAgICBlbW9qaTogZmlyc3RNZXNzYWdlLmVtb2ppIHx8ICfwn6SWJyxcbiAgICAgICAgICB0eXBlOiBmaXJzdE1lc3NhZ2UuYWdlbnRfdHlwZSB8fCAnY3VzdG9tJyxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcblxuICAvLyBCdXNjYXIgcHJvamVjdF9tZXRhZGF0YSB5IGNsaWVudF9tZXRhZGF0YSBlbiB0b2RvcyBsb3MgbWVuc2FqZXMsIGRlc2RlIGVsIG3DoXMgcmVjaWVudGUgaGFjaWEgYXRyw6FzXG4gIC8vIHByb2plY3RfbWV0YWRhdGEuaWQgLyBjbGllbnRfbWV0YWRhdGEuaWQgcHVlZGVuIHZlbmlyIGNvbW8gc3RyaW5nIG8gbnVtYmVyIGRlc2RlIGVsIGJhY2tlbmRcbiAgbGV0IHByb2plY3RJZDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGxldCBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGxldCBwcm9qZWN0RGVsZXRlZDogeyBuYW1lOiBzdHJpbmcgfSB8IHVuZGVmaW5lZFxuICBsZXQgY2xpZW50SWQ6IG51bWJlciB8IHVuZGVmaW5lZFxuICBsZXQgY2xpZW50TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgY29uc3Qgbm9ybWFsaXplSWQgPSAoaWQ6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKGlkID09IG51bGwpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBudW0gPSB0eXBlb2YgaWQgPT09ICdudW1iZXInID8gaWQgOiBwYXJzZUludChTdHJpbmcoaWQpLCAxMClcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKG51bSkgPyB1bmRlZmluZWQgOiBudW1cbiAgfVxuXG4gIGZvciAobGV0IGkgPSBkYXRhLmRhdGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZGF0YS5kYXRhW2ldXG4gICAgY29uc3QgcmF3UHJvamVjdElkID0gbWVzc2FnZT8ucHJvamVjdF9tZXRhZGF0YT8uaWRcbiAgICBpZiAocmF3UHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVJZChyYXdQcm9qZWN0SWQpXG4gICAgICBpZiAobm9ybWFsaXplZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb2plY3RJZCA9IG5vcm1hbGl6ZWRcbiAgICAgICAgcHJvamVjdE5hbWUgPSBtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLm5hbWVcbiAgICAgICAgaWYgKG1lc3NhZ2UucHJvamVjdF9tZXRhZGF0YSEuaXNfZGVsZXRlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHByb2plY3REZWxldGVkID0geyBuYW1lOiBtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLm5hbWUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjb25zdCByYXdDbGllbnRJZCA9IG1lc3NhZ2U/LmNsaWVudF9tZXRhZGF0YT8uaWRcbiAgICBpZiAocmF3Q2xpZW50SWQgIT0gbnVsbCAmJiBtZXNzYWdlPy5jbGllbnRfbWV0YWRhdGE/Lm5hbWUpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVJZChyYXdDbGllbnRJZClcbiAgICAgIGlmIChub3JtYWxpemVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2xpZW50SWQgPSBub3JtYWxpemVkXG4gICAgICAgIGNsaWVudE5hbWUgPSBtZXNzYWdlLmNsaWVudF9tZXRhZGF0YS5uYW1lXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaXRlbXM6IG1hcENoYXRNZXNzYWdlcyhkYXRhLmRhdGEsIGN1cnJlbnRVc2VyLCBjYW5jZWxsZWRUZXh0KSxcbiAgICBuZXh0SXRlbTogZGF0YS5uZXh0X29mZnNldCxcbiAgICBoYXNNb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgIGFnZW50RGVsZXRlZDogYWdlbnRJc0RlbGV0ZWQ/LmFnZW50X2lzX2RlbGV0ZWRcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBhZ2VudElzRGVsZXRlZC5hZ2VudF9pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudElzRGVsZXRlZC5hZ2VudF9uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudElzRGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICBkZWxldGVkQXQ6IGFnZW50SXNEZWxldGVkLmFnZW50X2RlbGV0ZWRfYXQsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgIGhhc0FnZW50QWNjZXNzOiBkYXRhLmhhc19hZ2VudF9hY2Nlc3MsXG4gICAgaGFzQWdlbnRQZXJtaXNzaW9uOiBkYXRhLmhhc19hZ2VudF9wZXJtaXNzaW9uLFxuICAgIHByb2plY3RJZCxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBwcm9qZWN0RGVsZXRlZCxcbiAgICBjbGllbnRJZCxcbiAgICBjbGllbnROYW1lLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUEsU0FBU0EsZUFBZSxRQUFRLDZCQUE2QjtBQUM3RCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQVNyQyxPQUFPLElBQU1DLGVBQWU7RUFBQSxJQUFBQyxLQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFBQyxJQUFBO0lBQUEsSUFBQUMsVUFBQTtJQUFBLElBQUFDLE1BQUEsRUFBQUMsV0FBQSxFQUFBQyxNQUFBLEVBQUFDLFdBQUEsRUFBQUMsYUFBQSxFQUFBQyxRQUFBLEVBQUFDLElBQUEsRUFBQUMsY0FBQSxFQUFBQyxZQUFBLEVBQUFDLGlCQUFBLEVBQUFDLFNBQUEsRUFBQUMsV0FBQSxFQUFBQyxjQUFBLEVBQUFDLFFBQUEsRUFBQUMsVUFBQSxFQUFBQyxXQUFBLEVBQUFDLENBQUEsRUFBQUMscUJBQUEsRUFBQUMscUJBQUEsRUFBQUMsc0JBQUEsRUFBQUMsT0FBQSxFQUFBQyxZQUFBLEVBQUFDLFVBQUEsRUFBQUMsV0FBQSxFQUFBQyxXQUFBO0lBQUEsT0FBQTdCLG1CQUFBLENBQUE4QixJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUs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
@@ -68,4 +68,4 @@ export var getChatsByUserId = /*#__PURE__*/function () {
68
68
  return _ref.apply(this, arguments);
69
69
  };
70
70
  }();
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJtYXBSZXNwb25zZSIsIml0ZW1zIiwibWFwIiwiaXRlbSIsIl9pdGVtJHByb2plY3RfbWV0YWRhdCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDIiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEyIiwiaWQiLCJzZXNzaW9uX2V4dGVybmFsX2lkIiwidGl0bGUiLCJsYXN0X3F1ZXN0aW9uIiwiZGF0ZSIsIkRhdGUiLCJsYXN0X3F1ZXN0aW9uX2RhdGUiLCJhZ2VudCIsImFnZW50X25hbWUiLCJhZ2VudElkIiwiYWdlbnRfaWQiLCJhZ2VudFR5cGUiLCJhZ2VudF90eXBlIiwiZW1vamkiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsImF0dGFjaG1lbnRzIiwicHJvamVjdElkIiwicHJvamVjdF9tZXRhZGF0YSIsInByb2plY3ROYW1lIiwibmFtZSIsImNsaWVudElkIiwiY2xpZW50X21ldGFkYXRhIiwiY2xpZW50TmFtZSIsImdldEFnZW50VHlwZVBhcmFtIiwiaGFzRmVhdHVyZUFjY2Vzc0Nsb25lIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiaGFzTXVsdGlBZ2VudHNDdXN0b20iLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiZ2V0Q2hhdHNCeVVzZXJJZCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInBhcmFtcyIsIl9wYXJhbXMkYWdlbnQiLCJhZ2VudFR5cGVQYXJhbSIsInJlc3BvbnNlIiwiZGF0YSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicGF0aCIsImNvbmNhdCIsImxpbWl0Iiwib2Zmc2V0IiwibWV0aG9kIiwiaGVhZGVycyIsInRvU3RyaW5nIiwic2VudCIsImpzb24iLCJhYnJ1cHQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJuZXh0SXRlbSIsIm5leHRfb2Zmc2V0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9DaGF0cy9nZXRDaGF0c0J5VXNlcklkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG5pbXBvcnQgeyBDaGF0LCBDaGF0SXRlbVJlc3BvbnNlLCBDaGF0c1Jlc3BvbnNlU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5cbnR5cGUgR2V0Q2hhdHNCeVVzZXJJZFBhcmFtcyA9IHtcbiAgdXNlcklkPzogc3RyaW5nXG4gIGxhc3RFdmFsdWF0ZWRLZXk/OiBzdHJpbmdcbiAgZXhjbHVkZVN0YXR1c2VzPzogc3RyaW5nW11cbiAgbGltaXQ/OiBudW1iZXJcbiAgYWdlbnQ/OiBBZ2VudCB8IG51bGxcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIHNlY3Rpb24/OiAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdhY3Rpb25zVGFza3MnXG59XG5cbmNvbnN0IG1hcFJlc3BvbnNlID0gKGl0ZW1zOiBDaGF0SXRlbVJlc3BvbnNlW10pOiBDaGF0W10gPT4ge1xuICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogaXRlbS5zZXNzaW9uX2V4dGVybmFsX2lkLFxuICAgICAgdGl0bGU6IGl0ZW0udGl0bGUgfHwgaXRlbS5sYXN0X3F1ZXN0aW9uLFxuICAgICAgZGF0ZTogbmV3IERhdGUoaXRlbS5sYXN0X3F1ZXN0aW9uX2RhdGUpLFxuICAgICAgYWdlbnQ6IGl0ZW0uYWdlbnRfbmFtZSxcbiAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICBhZ2VudFR5cGU6IGl0ZW0uYWdlbnRfdHlwZSxcbiAgICAgIGVtb2ppOiBpdGVtLmVtb2ppLFxuICAgICAgc2Vzc2lvbkV4dGVybmFsSWQ6IGl0ZW0uc2Vzc2lvbl9leHRlcm5hbF9pZCxcbiAgICAgIGF0dGFjaG1lbnRzOiBpdGVtLmF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICB9XG4gIH0pXG59XG5cbmNvbnN0IGdldEFnZW50VHlwZVBhcmFtID0gKCk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGhhc0ZlYXR1cmVBY2Nlc3NDbG9uZSA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU1xuICBjb25zdCBoYXNNdWx0aUFnZW50c0N1c3RvbSA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgaWYgKGhhc0ZlYXR1cmVBY2Nlc3NDbG9uZSAmJiBoYXNNdWx0aUFnZW50c0N1c3RvbSkgcmV0dXJuICcnXG4gIGlmIChoYXNGZWF0dXJlQWNjZXNzQ2xvbmUpIHJldHVybiAnJmFnZW50X3R5cGU9Y2xvbmUnXG4gIGlmIChoYXNNdWx0aUFnZW50c0N1c3RvbSkgcmV0dXJuICcmYWdlbnRfdHlwZT1jdXN0b20nXG4gIHJldHVybiAnJ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q2hhdHNCeVVzZXJJZCA9IGFzeW5jIChcbiAgcGFyYW1zPzogR2V0Q2hhdHNCeVVzZXJJZFBhcmFtc1xuKTogUHJvbWlzZTx7IGl0ZW1zOiBDaGF0W107IG5leHRJdGVtOiBzdHJpbmcgfCBudWxsOyBoYXNNb3JlOiBib29sZWFuIH0+ID0+IHtcbiAgY29uc3QgYWdlbnRUeXBlUGFyYW0gPSBnZXRBZ2VudFR5cGVQYXJhbSgpXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgc2Vzc2lvbnM/bGltaXQ9JHtwYXJhbXM/LmxpbWl0fSR7cGFyYW1zPy5vZmZzZXQgPyBgJm9mZnNldD0ke3BhcmFtcz8ub2Zmc2V0fWAgOiAnJ30ke2FnZW50VHlwZVBhcmFtfWAsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1BZ2VudC1JZCc6IHBhcmFtcz8uYWdlbnQ/LmlkLnRvU3RyaW5nKCkgfHwgJzEnLFxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIENoYXRzUmVzcG9uc2VTY2hlbWFcblxuICByZXR1cm4ge1xuICAgIGhhc01vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgbmV4dEl0ZW06IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgaXRlbXM6IG1hcFJlc3BvbnNlKGRhdGEuZGF0YSksXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFFQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQWFyQyxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBeUIsRUFBYTtFQUN6RCxPQUFPQSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxVQUFBQyxJQUFJLEVBQUk7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtJQUN2QixPQUFPO01BQ0xDLEVBQUUsRUFBRUwsSUFBSSxDQUFDTSxtQkFBbUI7TUFDNUJDLEtBQUssRUFBRVAsSUFBSSxDQUFDTyxLQUFLLElBQUlQLElBQUksQ0FBQ1EsYUFBYTtNQUN2Q0MsSUFBSSxFQUFFLElBQUlDLElBQUksQ0FBQ1YsSUFBSSxDQUFDVyxrQkFBa0IsQ0FBQztNQUN2Q0MsS0FBSyxFQUFFWixJQUFJLENBQUNhLFVBQVU7TUFDdEJDLE9BQU8sRUFBRWQsSUFBSSxDQUFDZSxRQUFRO01BQ3RCQyxTQUFTLEVBQUVoQixJQUFJLENBQUNpQixVQUFVO01BQzFCQyxLQUFLLEVBQUVsQixJQUFJLENBQUNrQixLQUFLO01BQ2pCQyxpQkFBaUIsRUFBRW5CLElBQUksQ0FBQ00sbUJBQW1CO01BQzNDYyxXQUFXLEVBQUVwQixJQUFJLENBQUNvQixXQUFXLElBQUksRUFBRTtNQUNuQ0MsU0FBUyxHQUFBcEIscUJBQUEsR0FBRUQsSUFBSSxDQUFDc0IsZ0JBQWdCLGNBQUFyQixxQkFBQSx1QkFBckJBLHFCQUFBLENBQXVCSSxFQUFFO01BQ3BDa0IsV0FBVyxHQUFBckIsc0JBQUEsR0FBRUYsSUFBSSxDQUFDc0IsZ0JBQWdCLGNBQUFwQixzQkFBQSx1QkFBckJBLHNCQUFBLENBQXVCc0IsSUFBSTtNQUN4Q0MsUUFBUSxHQUFBdEIscUJBQUEsR0FBRUgsSUFBSSxDQUFDMEIsZUFBZSxjQUFBdkIscUJBQUEsdUJBQXBCQSxxQkFBQSxDQUFzQkUsRUFBRTtNQUNsQ3NCLFVBQVUsR0FBQXZCLHNCQUFBLEdBQUVKLElBQUksQ0FBQzBCLGVBQWUsY0FBQXRCLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0JvQjtJQUNwQyxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELElBQU1JLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBaUI7RUFDdEMsSUFBTUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDQyxNQUFNLENBQUNDLDJCQUEyQjtFQUNsRSxJQUFNQyxvQkFBb0IsR0FBRyxDQUFDLENBQUNGLE1BQU0sQ0FBQ0csd0NBQXdDO0VBQzlFLElBQUlKLHFCQUFxQixJQUFJRyxvQkFBb0IsRUFBRSxPQUFPLEVBQUU7RUFDNUQsSUFBSUgscUJBQXFCLEVBQUUsT0FBTyxtQkFBbUI7RUFDckQsSUFBSUcsb0JBQW9CLEVBQUUsT0FBTyxvQkFBb0I7RUFDckQsT0FBTyxFQUFFO0FBQ1gsQ0FBQztBQUVELE9BQU8sSUFBTUUsZ0JBQWdCO0VBQUEsSUFBQUMsSUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFDOUJDLE1BQStCO0lBQUEsSUFBQUMsYUFBQTtJQUFBLElBQUFDLGNBQUEsRUFBQUMsUUFBQSxFQUFBQyxJQUFBO0lBQUEsT0FBQVAsbUJBQUEsQ0FBQVEsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUV6Qk4sY0FBYyxHQUFHZCxpQkFBaUIsQ0FBQyxDQUFDO1VBQUFrQixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUNuQnBELFNBQVMsQ0FBQztZQUMvQnFELElBQUksb0JBQUFDLE1BQUEsQ0FBb0JWLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFVyxLQUFLLEVBQUFELE1BQUEsQ0FBR1YsTUFBTSxhQUFOQSxNQUFNLGVBQU5BLE1BQU0sQ0FBRVksTUFBTSxjQUFBRixNQUFBLENBQWNWLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFWSxNQUFNLElBQUssRUFBRSxFQUFBRixNQUFBLENBQUdSLGNBQWMsQ0FBRTtZQUM1R1csTUFBTSxFQUFFLEtBQUs7WUFDYkMsT0FBTyxFQUFFO2NBQ1AsWUFBWSxFQUFFLENBQUFkLE1BQU0sYUFBTkEsTUFBTSxnQkFBQUMsYUFBQSxHQUFORCxNQUFNLENBQUU1QixLQUFLLGNBQUE2QixhQUFBLHVCQUFiQSxhQUFBLENBQWVwQyxFQUFFLENBQUNrRCxRQUFRLENBQUMsQ0FBQyxLQUFJO1lBQ2hEO1VBQ0YsQ0FBQyxDQUFDO1FBQUE7VUFOSVosUUFBUSxHQUFBRyxRQUFBLENBQUFVLElBQUE7VUFBQVYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FRTUwsUUFBUSxDQUFDYyxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTdCYixJQUFJLEdBQUFFLFFBQUEsQ0FBQVUsSUFBQTtVQUFBLE9BQUFWLFFBQUEsQ0FBQVksTUFBQSxXQUVIO1lBQ0xDLE9BQU8sRUFBRWYsSUFBSSxDQUFDZ0IsUUFBUTtZQUN0QkMsUUFBUSxFQUFFakIsSUFBSSxDQUFDa0IsV0FBVztZQUMxQmhFLEtBQUssRUFBRUQsV0FBVyxDQUFDK0MsSUFBSSxDQUFDQSxJQUFJO1VBQzlCLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQUUsUUFBQSxDQUFBaUIsSUFBQTtNQUFBO0lBQUEsR0FBQXhCLE9BQUE7RUFBQSxDQUNGO0VBQUEsZ0JBbkJZTCxnQkFBZ0JBLENBQUE4QixFQUFBO0lBQUEsT0FBQTdCLElBQUEsQ0FBQThCLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FtQjVCIiwiaWdub3JlTGlzdCI6W119
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJtYXBSZXNwb25zZSIsIml0ZW1zIiwibWFwIiwiaXRlbSIsIl9pdGVtJHByb2plY3RfbWV0YWRhdCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDIiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEyIiwiaWQiLCJzZXNzaW9uX2V4dGVybmFsX2lkIiwidGl0bGUiLCJsYXN0X3F1ZXN0aW9uIiwiZGF0ZSIsIkRhdGUiLCJsYXN0X3F1ZXN0aW9uX2RhdGUiLCJhZ2VudCIsImFnZW50X25hbWUiLCJhZ2VudElkIiwiYWdlbnRfaWQiLCJhZ2VudFR5cGUiLCJhZ2VudF90eXBlIiwiZW1vamkiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsImF0dGFjaG1lbnRzIiwicHJvamVjdElkIiwicHJvamVjdF9tZXRhZGF0YSIsInByb2plY3ROYW1lIiwibmFtZSIsImNsaWVudElkIiwiY2xpZW50X21ldGFkYXRhIiwiY2xpZW50TmFtZSIsImdldEFnZW50VHlwZVBhcmFtIiwiaGFzRmVhdHVyZUFjY2Vzc0Nsb25lIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiaGFzTXVsdGlBZ2VudHNDdXN0b20iLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiZ2V0Q2hhdHNCeVVzZXJJZCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInBhcmFtcyIsIl9wYXJhbXMkYWdlbnQiLCJhZ2VudFR5cGVQYXJhbSIsInJlc3BvbnNlIiwiZGF0YSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicGF0aCIsImNvbmNhdCIsImxpbWl0Iiwib2Zmc2V0IiwibWV0aG9kIiwiaGVhZGVycyIsInRvU3RyaW5nIiwic2VudCIsImpzb24iLCJhYnJ1cHQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJuZXh0SXRlbSIsIm5leHRfb2Zmc2V0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9DaGF0cy9nZXRDaGF0c0J5VXNlcklkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG5pbXBvcnQgeyBDaGF0LCBDaGF0SXRlbVJlc3BvbnNlLCBDaGF0c1Jlc3BvbnNlU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5cbnR5cGUgR2V0Q2hhdHNCeVVzZXJJZFBhcmFtcyA9IHtcbiAgdXNlcklkPzogc3RyaW5nXG4gIGxhc3RFdmFsdWF0ZWRLZXk/OiBzdHJpbmdcbiAgZXhjbHVkZVN0YXR1c2VzPzogc3RyaW5nW11cbiAgbGltaXQ/OiBudW1iZXJcbiAgYWdlbnQ/OiBBZ2VudCB8IG51bGxcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIHNlY3Rpb24/OiAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnXG59XG5cbmNvbnN0IG1hcFJlc3BvbnNlID0gKGl0ZW1zOiBDaGF0SXRlbVJlc3BvbnNlW10pOiBDaGF0W10gPT4ge1xuICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogaXRlbS5zZXNzaW9uX2V4dGVybmFsX2lkLFxuICAgICAgdGl0bGU6IGl0ZW0udGl0bGUgfHwgaXRlbS5sYXN0X3F1ZXN0aW9uLFxuICAgICAgZGF0ZTogbmV3IERhdGUoaXRlbS5sYXN0X3F1ZXN0aW9uX2RhdGUpLFxuICAgICAgYWdlbnQ6IGl0ZW0uYWdlbnRfbmFtZSxcbiAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICBhZ2VudFR5cGU6IGl0ZW0uYWdlbnRfdHlwZSxcbiAgICAgIGVtb2ppOiBpdGVtLmVtb2ppLFxuICAgICAgc2Vzc2lvbkV4dGVybmFsSWQ6IGl0ZW0uc2Vzc2lvbl9leHRlcm5hbF9pZCxcbiAgICAgIGF0dGFjaG1lbnRzOiBpdGVtLmF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICB9XG4gIH0pXG59XG5cbmNvbnN0IGdldEFnZW50VHlwZVBhcmFtID0gKCk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGhhc0ZlYXR1cmVBY2Nlc3NDbG9uZSA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU1xuICBjb25zdCBoYXNNdWx0aUFnZW50c0N1c3RvbSA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgaWYgKGhhc0ZlYXR1cmVBY2Nlc3NDbG9uZSAmJiBoYXNNdWx0aUFnZW50c0N1c3RvbSkgcmV0dXJuICcnXG4gIGlmIChoYXNGZWF0dXJlQWNjZXNzQ2xvbmUpIHJldHVybiAnJmFnZW50X3R5cGU9Y2xvbmUnXG4gIGlmIChoYXNNdWx0aUFnZW50c0N1c3RvbSkgcmV0dXJuICcmYWdlbnRfdHlwZT1jdXN0b20nXG4gIHJldHVybiAnJ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q2hhdHNCeVVzZXJJZCA9IGFzeW5jIChcbiAgcGFyYW1zPzogR2V0Q2hhdHNCeVVzZXJJZFBhcmFtc1xuKTogUHJvbWlzZTx7IGl0ZW1zOiBDaGF0W107IG5leHRJdGVtOiBzdHJpbmcgfCBudWxsOyBoYXNNb3JlOiBib29sZWFuIH0+ID0+IHtcbiAgY29uc3QgYWdlbnRUeXBlUGFyYW0gPSBnZXRBZ2VudFR5cGVQYXJhbSgpXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgc2Vzc2lvbnM/bGltaXQ9JHtwYXJhbXM/LmxpbWl0fSR7cGFyYW1zPy5vZmZzZXQgPyBgJm9mZnNldD0ke3BhcmFtcz8ub2Zmc2V0fWAgOiAnJ30ke2FnZW50VHlwZVBhcmFtfWAsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1BZ2VudC1JZCc6IHBhcmFtcz8uYWdlbnQ/LmlkLnRvU3RyaW5nKCkgfHwgJzEnLFxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIENoYXRzUmVzcG9uc2VTY2hlbWFcblxuICByZXR1cm4ge1xuICAgIGhhc01vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgbmV4dEl0ZW06IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgaXRlbXM6IG1hcFJlc3BvbnNlKGRhdGEuZGF0YSksXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFFQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQWFyQyxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBeUIsRUFBYTtFQUN6RCxPQUFPQSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxVQUFBQyxJQUFJLEVBQUk7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtJQUN2QixPQUFPO01BQ0xDLEVBQUUsRUFBRUwsSUFBSSxDQUFDTSxtQkFBbUI7TUFDNUJDLEtBQUssRUFBRVAsSUFBSSxDQUFDTyxLQUFLLElBQUlQLElBQUksQ0FBQ1EsYUFBYTtNQUN2Q0MsSUFBSSxFQUFFLElBQUlDLElBQUksQ0FBQ1YsSUFBSSxDQUFDVyxrQkFBa0IsQ0FBQztNQUN2Q0MsS0FBSyxFQUFFWixJQUFJLENBQUNhLFVBQVU7TUFDdEJDLE9BQU8sRUFBRWQsSUFBSSxDQUFDZSxRQUFRO01BQ3RCQyxTQUFTLEVBQUVoQixJQUFJLENBQUNpQixVQUFVO01BQzFCQyxLQUFLLEVBQUVsQixJQUFJLENBQUNrQixLQUFLO01BQ2pCQyxpQkFBaUIsRUFBRW5CLElBQUksQ0FBQ00sbUJBQW1CO01BQzNDYyxXQUFXLEVBQUVwQixJQUFJLENBQUNvQixXQUFXLElBQUksRUFBRTtNQUNuQ0MsU0FBUyxHQUFBcEIscUJBQUEsR0FBRUQsSUFBSSxDQUFDc0IsZ0JBQWdCLGNBQUFyQixxQkFBQSx1QkFBckJBLHFCQUFBLENBQXVCSSxFQUFFO01BQ3BDa0IsV0FBVyxHQUFBckIsc0JBQUEsR0FBRUYsSUFBSSxDQUFDc0IsZ0JBQWdCLGNBQUFwQixzQkFBQSx1QkFBckJBLHNCQUFBLENBQXVCc0IsSUFBSTtNQUN4Q0MsUUFBUSxHQUFBdEIscUJBQUEsR0FBRUgsSUFBSSxDQUFDMEIsZUFBZSxjQUFBdkIscUJBQUEsdUJBQXBCQSxxQkFBQSxDQUFzQkUsRUFBRTtNQUNsQ3NCLFVBQVUsR0FBQXZCLHNCQUFBLEdBQUVKLElBQUksQ0FBQzBCLGVBQWUsY0FBQXRCLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0JvQjtJQUNwQyxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELElBQU1JLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBaUI7RUFDdEMsSUFBTUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDQyxNQUFNLENBQUNDLDJCQUEyQjtFQUNsRSxJQUFNQyxvQkFBb0IsR0FBRyxDQUFDLENBQUNGLE1BQU0sQ0FBQ0csd0NBQXdDO0VBQzlFLElBQUlKLHFCQUFxQixJQUFJRyxvQkFBb0IsRUFBRSxPQUFPLEVBQUU7RUFDNUQsSUFBSUgscUJBQXFCLEVBQUUsT0FBTyxtQkFBbUI7RUFDckQsSUFBSUcsb0JBQW9CLEVBQUUsT0FBTyxvQkFBb0I7RUFDckQsT0FBTyxFQUFFO0FBQ1gsQ0FBQztBQUVELE9BQU8sSUFBTUUsZ0JBQWdCO0VBQUEsSUFBQUMsSUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFDOUJDLE1BQStCO0lBQUEsSUFBQUMsYUFBQTtJQUFBLElBQUFDLGNBQUEsRUFBQUMsUUFBQSxFQUFBQyxJQUFBO0lBQUEsT0FBQVAsbUJBQUEsQ0FBQVEsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUV6Qk4sY0FBYyxHQUFHZCxpQkFBaUIsQ0FBQyxDQUFDO1VBQUFrQixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUNuQnBELFNBQVMsQ0FBQztZQUMvQnFELElBQUksb0JBQUFDLE1BQUEsQ0FBb0JWLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFVyxLQUFLLEVBQUFELE1BQUEsQ0FBR1YsTUFBTSxhQUFOQSxNQUFNLGVBQU5BLE1BQU0sQ0FBRVksTUFBTSxjQUFBRixNQUFBLENBQWNWLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFWSxNQUFNLElBQUssRUFBRSxFQUFBRixNQUFBLENBQUdSLGNBQWMsQ0FBRTtZQUM1R1csTUFBTSxFQUFFLEtBQUs7WUFDYkMsT0FBTyxFQUFFO2NBQ1AsWUFBWSxFQUFFLENBQUFkLE1BQU0sYUFBTkEsTUFBTSxnQkFBQUMsYUFBQSxHQUFORCxNQUFNLENBQUU1QixLQUFLLGNBQUE2QixhQUFBLHVCQUFiQSxhQUFBLENBQWVwQyxFQUFFLENBQUNrRCxRQUFRLENBQUMsQ0FBQyxLQUFJO1lBQ2hEO1VBQ0YsQ0FBQyxDQUFDO1FBQUE7VUFOSVosUUFBUSxHQUFBRyxRQUFBLENBQUFVLElBQUE7VUFBQVYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FRTUwsUUFBUSxDQUFDYyxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTdCYixJQUFJLEdBQUFFLFFBQUEsQ0FBQVUsSUFBQTtVQUFBLE9BQUFWLFFBQUEsQ0FBQVksTUFBQSxXQUVIO1lBQ0xDLE9BQU8sRUFBRWYsSUFBSSxDQUFDZ0IsUUFBUTtZQUN0QkMsUUFBUSxFQUFFakIsSUFBSSxDQUFDa0IsV0FBVztZQUMxQmhFLEtBQUssRUFBRUQsV0FBVyxDQUFDK0MsSUFBSSxDQUFDQSxJQUFJO1VBQzlCLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQUUsUUFBQSxDQUFBaUIsSUFBQTtNQUFBO0lBQUEsR0FBQXhCLE9BQUE7RUFBQSxDQUNGO0VBQUEsZ0JBbkJZTCxnQkFBZ0JBLENBQUE4QixFQUFBO0lBQUEsT0FBQTdCLElBQUEsQ0FBQThCLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FtQjVCIiwiaWdub3JlTGlzdCI6W119
@@ -82,11 +82,11 @@ export var continueThread = /*#__PURE__*/function () {
82
82
  }();
83
83
  export var orchestrator = /*#__PURE__*/function () {
84
84
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(body, signal) {
85
- var input, projectId, lang, chatId, clientId, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, actionsTasksId, taskId, taskName, formData, metadata, path, headers;
85
+ var input, projectId, lang, chatId, clientId, clientName, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, formData, metadata, path, headers;
86
86
  return _regeneratorRuntime.wrap(function (_context2) {
87
87
  while (1) switch (_context2.prev = _context2.next) {
88
88
  case 0:
89
- input = body.input, projectId = body.projectId, lang = body.lang, chatId = body.chatId, clientId = body.clientId, agentId = body.agentId, isWebSearchActive = body.isWebSearchActive, isDeepSearchActive = body.isDeepSearchActive, attachments = body.attachments, projectName = body.projectName, faqId = body.faqId, actionsTasksId = body.actionsTasksId, taskId = body.taskId, taskName = body.taskName;
89
+ input = body.input, projectId = body.projectId, lang = body.lang, chatId = body.chatId, clientId = body.clientId, clientName = body.clientName, agentId = body.agentId, isWebSearchActive = body.isWebSearchActive, isDeepSearchActive = body.isDeepSearchActive, attachments = body.attachments, projectName = body.projectName, faqId = body.faqId;
90
90
  formData = new FormData();
91
91
  formData.append('input', input);
92
92
  formData.append('session_id', chatId);
@@ -98,18 +98,16 @@ export var orchestrator = /*#__PURE__*/function () {
98
98
  formData.append('files', fileToSend);
99
99
  });
100
100
  }
101
- metadata = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
101
+ metadata = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
102
102
  lang: mapCORLang(lang)
103
103
  }, clientId ? {
104
104
  client_id: clientId
105
+ } : {}), clientName ? {
106
+ client_name: clientName
105
107
  } : {}), projectId ? {
106
108
  project_id: projectId
107
109
  } : {}), projectName ? {
108
110
  project_name: projectName
109
- } : {}), taskId ? {
110
- task_id: taskId
111
- } : {}), taskName ? {
112
- task_name: taskName
113
111
  } : {}), {}, {
114
112
  subdomain: window.location.hostname.split('.')[0]
115
113
  });
@@ -127,19 +125,6 @@ export var orchestrator = /*#__PURE__*/function () {
127
125
  if (faqId) {
128
126
  headers['X-Faq-Id'] = faqId;
129
127
  }
130
- if (actionsTasksId) {
131
- headers['X-actionTasks-Id'] = actionsTasksId;
132
- }
133
- console.info('[Maia][Orchestrator] Sending request', {
134
- path: path,
135
- hasProjectId: !!projectId,
136
- hasClientId: !!clientId,
137
- hasProjectName: !!projectName,
138
- hasFaqId: !!faqId,
139
- hasActionsTasksId: !!actionsTasksId,
140
- hasTaskId: !!taskId,
141
- hasTaskName: !!taskName
142
- });
143
128
  return _context2.abrupt("return", fetchMaia({
144
129
  path: path,
145
130
  method: 'POST',
@@ -157,4 +142,4 @@ export var orchestrator = /*#__PURE__*/function () {
157
142
  return _ref2.apply(this, arguments);
158
143
  };
159
144
  }();
160
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMiLCJGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TIiwiTUFYX0ZJTEVTIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX05FVyIsIk1BWF9GSUxFX1NJWkVfTUJfQVVESU8iLCJNQVhfRklMRV9TSVpFX0JZVEVTX09MRCIsIk1BWF9GSUxFX1NJWkVfQllURVNfTkVXIiwiTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTyIsIkFMTE9XRURfRklMRV9FWFRFTlNJT05TIiwidmFsaWRhdGVBdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiRXJyb3IiLCJjb25jYXQiLCJmb3JFYWNoIiwiYXR0YWNobWVudCIsImZpbGVFeHRlbnNpb24iLCJuYW1lIiwidG9Mb3dlckNhc2UiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImluY2x1ZGVzIiwiam9pbiIsImZpbGVTaXplIiwic2l6ZSIsIk51bWJlciIsImNvbnRpbnVlVGhyZWFkIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiYm9keSIsInNpZ25hbCIsInRocmVhZElkIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJyZXF1ZXN0Qm9keSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidGhyZWFkX2lkIiwic2Vzc2lvbl9pZCIsImVkaXRlZF9hY3Rpb25zIiwiYWJydXB0IiwicGF0aCIsIm1ldGhvZCIsImhlYWRlcnMiLCJ0b1N0cmluZyIsInN0b3AiLCJfeCIsIl94MiIsImFwcGx5IiwiYXJndW1lbnRzIiwib3JjaGVzdHJhdG9yIiwiX3JlZjIiLCJfY2FsbGVlMiIsImlucHV0IiwicHJvamVjdElkIiwiY2hhdElkIiwiY2xpZW50SWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInByb2plY3ROYW1lIiwiZmFxSWQiLCJhY3Rpb25zVGFza3NJZCIsInRhc2tJZCIsInRhc2tOYW1lIiwiZm9ybURhdGEiLCJtZXRhZGF0YSIsIl9jb250ZXh0MiIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZmlsZVRvU2VuZCIsIm9yaWdpbmFsRmlsZSIsImZpbGUiLCJfb2JqZWN0U3ByZWFkIiwiY2xpZW50X2lkIiwicHJvamVjdF9pZCIsInByb2plY3RfbmFtZSIsInRhc2tfaWQiLCJ0YXNrX25hbWUiLCJzdWJkb21haW4iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwic3BsaXQiLCJKU09OIiwic3RyaW5naWZ5IiwiY29uc29sZSIsImluZm8iLCJoYXNQcm9qZWN0SWQiLCJoYXNDbGllbnRJZCIsImhhc1Byb2plY3ROYW1lIiwiaGFzRmFxSWQiLCJoYXNBY3Rpb25zVGFza3NJZCIsImhhc1Rhc2tJZCIsImhhc1Rhc2tOYW1lIiwiX3gzIiwiX3g0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvT3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBDaGF0SGlzdG9yeSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQge1xuICBGSUxFX0ZPUk1BVF9FWFRFTlNJT05TLFxuICBGSUxFX01BSUFfVklTSU9OX0ZPUk1BVF9FWFRFTlNJT05TLFxuICBGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcblxudHlwZSBPcmNoZXN0cmF0b3JSZXF1ZXN0ID0ge1xuICBpbnB1dDogc3RyaW5nXG4gIHByb2plY3RJZD86IG51bWJlclxuICBsYW5nOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgY29tcGFueUlkOiBzdHJpbmdcbiAgY2hhdElkOiBzdHJpbmdcbiAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBhZ2VudE5hbWU6IHN0cmluZ1xuICBhZ2VudElkOiBudW1iZXIgfCBzdHJpbmdcbiAgaXNXZWJTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGZhcUlkPzogc3RyaW5nXG4gIGFjdGlvbnNUYXNrc0lkPzogc3RyaW5nXG4gIHRhc2tJZD86IHN0cmluZ1xuICB0YXNrTmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCBNQVhfRklMRVMgPSA1XG5jb25zdCBNQVhfRklMRV9TSVpFX01CX09MRCA9IDFcbmNvbnN0IE1BWF9GSUxFX1NJWkVfTUJfTkVXID0gMTVcbmNvbnN0IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gPSAxMFxuY29uc3QgTUFYX0ZJTEVfU0laRV9CWVRFU19PTEQgPSBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX05FVyA9IE1BWF9GSUxFX1NJWkVfTUJfTkVXICogMTAyNCAqIDEwMjRcbmNvbnN0IE1BWF9GSUxFX1NJWkVfQllURVNfQVVESU8gPSBNQVhfRklMRV9TSVpFX01CX0FVRElPICogMTAyNCAqIDEwMjRcbmNvbnN0IEFMTE9XRURfRklMRV9FWFRFTlNJT05TID0gW1xuICAnLnR4dCcsXG4gICcubWQnLFxuICAnLmNzdicsXG4gICcuZG9jJyxcbiAgJy5kb2N4JyxcbiAgJy5wbmcnLFxuICAnLmpwZycsXG4gICcuanBlZycsXG4gICcucGRmJyxcbiAgJy54bHN4JyxcbiAgJy54bHMnLFxuICAnLmZsYWMnLFxuICAnLm00YScsXG4gICcubXAzJyxcbiAgJy5tcDQnLFxuICAnLm9nYScsXG4gICcub2dnJyxcbiAgJy53YXYnLFxuICAnLndlYm0nLFxuXVxuXG5jb25zdCB2YWxpZGF0ZUF0dGFjaG1lbnRzID0gKGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdKTogdm9pZCA9PiB7XG4gIGlmIChhdHRhY2htZW50cy5sZW5ndGggPiBNQVhfRklMRVMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE3DoXhpbW8gJHtNQVhfRklMRVN9IGFyY2hpdm9zIHBlcm1pdGlkb3NgKVxuICB9XG5cbiAgYXR0YWNobWVudHMuZm9yRWFjaChhdHRhY2htZW50ID0+IHtcbiAgICAvLyBWYWxpZGFyIGV4dGVuc2nDs24gZGVsIGFyY2hpdm9cbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gYXR0YWNobWVudC5uYW1lLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKGF0dGFjaG1lbnQubmFtZS5sYXN0SW5kZXhPZignLicpKVxuICAgIGlmICghQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBubyB0aWVuZSB1biBmb3JtYXRvIHNvcG9ydGFkby4gRm9ybWF0b3MgcGVybWl0aWRvczogJHtBTExPV0VEX0ZJTEVfRVhURU5TSU9OUy5qb2luKCcsICcpfWBcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBWYWxpZGFyIHRhbWHDsW8gZGVsIGFyY2hpdm8gc2Vnw7puIGVsIHRpcG9cbiAgICBjb25zdCBmaWxlU2l6ZSA9IHR5cGVvZiBhdHRhY2htZW50LnNpemUgPT09ICdudW1iZXInID8gYXR0YWNobWVudC5zaXplIDogTnVtYmVyKGF0dGFjaG1lbnQuc2l6ZSlcbiAgICBpZiAoRklMRV9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGZpbGVTaXplID4gTUFYX0ZJTEVfU0laRV9CWVRFU19PTEQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke01BWF9GSUxFX1NJWkVfTUJfT0xEfU1CYClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKEZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChmaWxlU2l6ZSA+IE1BWF9GSUxFX1NJWkVfQllURVNfTkVXKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIGV4Y2VkZSBlbCB0YW1hw7FvIG3DoXhpbW8gZGUgJHtNQVhfRklMRV9TSVpFX01CX05FV31NQmApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIGV4Y2VkZSBlbCB0YW1hw7FvIG3DoXhpbW8gZGUgJHtNQVhfRklMRV9TSVpFX01CX0FVRElPfU1CYClcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbnR5cGUgQ29udGludWVUaHJlYWRSZXF1ZXN0ID0ge1xuICB0aHJlYWRJZDogc3RyaW5nXG4gIHNlc3Npb25JZDogc3RyaW5nXG4gIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAnZWRpdCcgfCAncmVqZWN0J1xuICBlZGl0ZWRBY3Rpb25zPzogQXJyYXk8eyB0b29sX25hbWU6IHN0cmluZzsgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfT5cbiAgYWdlbnRJZDogbnVtYmVyIHwgc3RyaW5nXG4gIGxhbmc6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgY29udGludWVUaHJlYWQgPSBhc3luYyAoYm9keTogQ29udGludWVUaHJlYWRSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgeyB0aHJlYWRJZCwgc2Vzc2lvbklkLCBkZWNpc2lvbiwgZWRpdGVkQWN0aW9ucywgYWdlbnRJZCwgbGFuZyB9ID0gYm9keVxuXG4gIGNvbnN0IHJlcXVlc3RCb2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICB0aHJlYWRfaWQ6IHRocmVhZElkLFxuICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZCxcbiAgICBkZWNpc2lvbixcbiAgfVxuXG4gIGlmIChkZWNpc2lvbiA9PT0gJ2VkaXQnICYmIGVkaXRlZEFjdGlvbnMpIHtcbiAgICByZXF1ZXN0Qm9keS5lZGl0ZWRfYWN0aW9ucyA9IGVkaXRlZEFjdGlvbnNcbiAgfVxuXG4gIHJldHVybiBmZXRjaE1haWEoe1xuICAgIHBhdGg6ICdvcmNoZXN0cmF0b3IvY29udGludWUtdGhyZWFkP21vZGU9c3RyZWFtJyxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1BZ2VudC1JZCc6IGFnZW50SWQudG9TdHJpbmcoKSxcbiAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBtYXBDT1JMYW5nKGxhbmcpLFxuICAgIH0sXG4gICAgYm9keTogcmVxdWVzdEJvZHksXG4gICAgc2lnbmFsLFxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgb3JjaGVzdHJhdG9yID0gYXN5bmMgKGJvZHk6IE9yY2hlc3RyYXRvclJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZXNwb25zZT4gPT4ge1xuICBjb25zdCB7XG4gICAgaW5wdXQsXG4gICAgcHJvamVjdElkLFxuICAgIGxhbmcsXG4gICAgY2hhdElkLFxuICAgIGNsaWVudElkLFxuICAgIGFnZW50SWQsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIHByb2plY3ROYW1lLFxuICAgIGZhcUlkLFxuICAgIGFjdGlvbnNUYXNrc0lkLFxuICAgIHRhc2tJZCxcbiAgICB0YXNrTmFtZSxcbiAgfSA9IGJvZHlcblxuICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gIGZvcm1EYXRhLmFwcGVuZCgnaW5wdXQnLCBpbnB1dClcbiAgZm9ybURhdGEuYXBwZW5kKCdzZXNzaW9uX2lkJywgY2hhdElkKVxuXG4gIGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgdmFsaWRhdGVBdHRhY2htZW50cyhhdHRhY2htZW50cylcblxuICAgIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgICAvLyBVc2FyIGVsIGFyY2hpdm8gb3JpZ2luYWwgc2kgZXhpc3RlIChwYXJhIGltw6FnZW5lcyBwcm9jZXNhZGFzKSwgc2lubyB1c2FyIGVsIGFyY2hpdm8gbm9ybWFsXG4gICAgICBjb25zdCBmaWxlVG9TZW5kID0gYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgfHwgYXR0YWNobWVudC5maWxlXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzJywgZmlsZVRvU2VuZClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgbGFuZzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICAuLi4oY2xpZW50SWQgPyB7IGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAuLi4ocHJvamVjdElkID8geyBwcm9qZWN0X2lkOiBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAuLi4odGFza0lkID8geyB0YXNrX2lkOiB0YXNrSWQgfSA6IHt9KSxcbiAgICAuLi4odGFza05hbWUgPyB7IHRhc2tfbmFtZTogdGFza05hbWUgfSA6IHt9KSxcbiAgICBzdWJkb21haW46IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgnLicpWzBdLFxuICB9XG4gIGZvcm1EYXRhLmFwcGVuZCgnbWV0YWRhdGEnLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpXG5cbiAgbGV0IHBhdGggPSAnb3JjaGVzdHJhdG9yP21vZGU9c3RyZWFtJ1xuICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJ1xuICB9XG4gIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJmRlcHRoPXRydWUnXG4gIH1cblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICdYLUFnZW50LUlkJzogYWdlbnRJZC50b1N0cmluZygpLFxuICB9XG5cbiAgaWYgKGZhcUlkKSB7XG4gICAgaGVhZGVyc1snWC1GYXEtSWQnXSA9IGZhcUlkXG4gIH1cblxuICBpZiAoYWN0aW9uc1Rhc2tzSWQpIHtcbiAgICBoZWFkZXJzWydYLWFjdGlvblRhc2tzLUlkJ10gPSBhY3Rpb25zVGFza3NJZFxuICB9XG5cbiAgY29uc29sZS5pbmZvKCdbTWFpYV1bT3JjaGVzdHJhdG9yXSBTZW5kaW5nIHJlcXVlc3QnLCB7XG4gICAgcGF0aCxcbiAgICBoYXNQcm9qZWN0SWQ6ICEhcHJvamVjdElkLFxuICAgIGhhc0NsaWVudElkOiAhIWNsaWVudElkLFxuICAgIGhhc1Byb2plY3ROYW1lOiAhIXByb2plY3ROYW1lLFxuICAgIGhhc0ZhcUlkOiAhIWZhcUlkLFxuICAgIGhhc0FjdGlvbnNUYXNrc0lkOiAhIWFjdGlvbnNUYXNrc0lkLFxuICAgIGhhc1Rhc2tJZDogISF0YXNrSWQsXG4gICAgaGFzVGFza05hbWU6ICEhdGFza05hbWUsXG4gIH0pXG5cbiAgcmV0dXJuIGZldGNoTWFpYSh7XG4gICAgcGF0aCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBOztBQUVBLFNBQVNBLFVBQVUsUUFBUSxxQkFBcUI7QUFFaEQsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFDckMsU0FDRUMsc0JBQXNCLEVBQ3RCQyxrQ0FBa0MsRUFDbENDLDRCQUE0QixRQUN2QixxQ0FBcUM7QUF3QjVDLElBQU1DLFNBQVMsR0FBRyxDQUFDO0FBQ25CLElBQU1DLG9CQUFvQixHQUFHLENBQUM7QUFDOUIsSUFBTUMsb0JBQW9CLEdBQUcsRUFBRTtBQUMvQixJQUFNQyxzQkFBc0IsR0FBRyxFQUFFO0FBQ2pDLElBQU1DLHVCQUF1QixHQUFHSCxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsSUFBSTtBQUNsRSxJQUFNSSx1QkFBdUIsR0FBR0gsb0JBQW9CLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFDbEUsSUFBTUkseUJBQXlCLEdBQUdILHNCQUFzQixHQUFHLElBQUksR0FBRyxJQUFJO0FBQ3RFLElBQU1JLHVCQUF1QixHQUFHLENBQzlCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNO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
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMiLCJGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TIiwiTUFYX0ZJTEVTIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX05FVyIsIk1BWF9GSUxFX1NJWkVfTUJfQVVESU8iLCJNQVhfRklMRV9TSVpFX0JZVEVTX09MRCIsIk1BWF9GSUxFX1NJWkVfQllURVNfTkVXIiwiTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTyIsIkFMTE9XRURfRklMRV9FWFRFTlNJT05TIiwidmFsaWRhdGVBdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiRXJyb3IiLCJjb25jYXQiLCJmb3JFYWNoIiwiYXR0YWNobWVudCIsImZpbGVFeHRlbnNpb24iLCJuYW1lIiwidG9Mb3dlckNhc2UiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImluY2x1ZGVzIiwiam9pbiIsImZpbGVTaXplIiwic2l6ZSIsIk51bWJlciIsImNvbnRpbnVlVGhyZWFkIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiYm9keSIsInNpZ25hbCIsInRocmVhZElkIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJyZXF1ZXN0Qm9keSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidGhyZWFkX2lkIiwic2Vzc2lvbl9pZCIsImVkaXRlZF9hY3Rpb25zIiwiYWJydXB0IiwicGF0aCIsIm1ldGhvZCIsImhlYWRlcnMiLCJ0b1N0cmluZyIsInN0b3AiLCJfeCIsIl94MiIsImFwcGx5IiwiYXJndW1lbnRzIiwib3JjaGVzdHJhdG9yIiwiX3JlZjIiLCJfY2FsbGVlMiIsImlucHV0IiwicHJvamVjdElkIiwiY2hhdElkIiwiY2xpZW50SWQiLCJjbGllbnROYW1lIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJwcm9qZWN0TmFtZSIsImZhcUlkIiwiZm9ybURhdGEiLCJtZXRhZGF0YSIsIl9jb250ZXh0MiIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZmlsZVRvU2VuZCIsIm9yaWdpbmFsRmlsZSIsImZpbGUiLCJfb2JqZWN0U3ByZWFkIiwiY2xpZW50X2lkIiwiY2xpZW50X25hbWUiLCJwcm9qZWN0X2lkIiwicHJvamVjdF9uYW1lIiwic3ViZG9tYWluIiwid2luZG93IiwibG9jYXRpb24iLCJob3N0bmFtZSIsInNwbGl0IiwiSlNPTiIsInN0cmluZ2lmeSIsIl94MyIsIl94NCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL09yY2hlc3RyYXRvci9vcmNoZXN0cmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgQ2hhdEhpc3RvcnkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHtcbiAgRklMRV9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9BVURJT19GT1JNQVRfRVhURU5TSU9OUyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5cbnR5cGUgT3JjaGVzdHJhdG9yUmVxdWVzdCA9IHtcbiAgaW5wdXQ6IHN0cmluZ1xuICBwcm9qZWN0SWQ/OiBudW1iZXJcbiAgbGFuZzogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIGNvbXBhbnlJZDogc3RyaW5nXG4gIGNoYXRJZDogc3RyaW5nXG4gIGhpc3Rvcnk6IENoYXRIaXN0b3J5W11cbiAgbWVzc2FnZUlkOiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXJcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICBhZ2VudE5hbWU6IHN0cmluZ1xuICBhZ2VudElkOiBudW1iZXIgfCBzdHJpbmdcbiAgaXNXZWJTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGZhcUlkPzogc3RyaW5nXG59XG5cbmNvbnN0IE1BWF9GSUxFUyA9IDVcbmNvbnN0IE1BWF9GSUxFX1NJWkVfTUJfT0xEID0gMVxuY29uc3QgTUFYX0ZJTEVfU0laRV9NQl9ORVcgPSAxNVxuY29uc3QgTUFYX0ZJTEVfU0laRV9NQl9BVURJTyA9IDEwXG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX09MRCA9IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjRcbmNvbnN0IE1BWF9GSUxFX1NJWkVfQllURVNfTkVXID0gTUFYX0ZJTEVfU0laRV9NQl9ORVcgKiAxMDI0ICogMTAyNFxuY29uc3QgTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTyA9IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNFxuY29uc3QgQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMgPSBbXG4gICcudHh0JyxcbiAgJy5tZCcsXG4gICcuY3N2JyxcbiAgJy5kb2MnLFxuICAnLmRvY3gnLFxuICAnLnBuZycsXG4gICcuanBnJyxcbiAgJy5qcGVnJyxcbiAgJy5wZGYnLFxuICAnLnhsc3gnLFxuICAnLnhscycsXG4gICcuZmxhYycsXG4gICcubTRhJyxcbiAgJy5tcDMnLFxuICAnLm1wNCcsXG4gICcub2dhJyxcbiAgJy5vZ2cnLFxuICAnLndhdicsXG4gICcud2VibScsXG5dXG5cbmNvbnN0IHZhbGlkYXRlQXR0YWNobWVudHMgPSAoYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW10pOiB2b2lkID0+IHtcbiAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCA+IE1BWF9GSUxFUykge1xuICAgIHRocm93IG5ldyBFcnJvcihgTcOheGltbyAke01BWF9GSUxFU30gYXJjaGl2b3MgcGVybWl0aWRvc2ApXG4gIH1cblxuICBhdHRhY2htZW50cy5mb3JFYWNoKGF0dGFjaG1lbnQgPT4ge1xuICAgIC8vIFZhbGlkYXIgZXh0ZW5zacOzbiBkZWwgYXJjaGl2b1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBhdHRhY2htZW50Lm5hbWUudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoYXR0YWNobWVudC5uYW1lLmxhc3RJbmRleE9mKCcuJykpXG4gICAgaWYgKCFBTExPV0VEX0ZJTEVfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIG5vIHRpZW5lIHVuIGZvcm1hdG8gc29wb3J0YWRvLiBGb3JtYXRvcyBwZXJtaXRpZG9zOiAke0FMTE9XRURfRklMRV9FWFRFTlNJT05TLmpvaW4oJywgJyl9YFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXIgdGFtYcOxbyBkZWwgYXJjaGl2byBzZWfDum4gZWwgdGlwb1xuICAgIGNvbnN0IGZpbGVTaXplID0gdHlwZW9mIGF0dGFjaG1lbnQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHRhY2htZW50LnNpemUgOiBOdW1iZXIoYXR0YWNobWVudC5zaXplKVxuICAgIGlmIChGSUxFX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX09MRCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9PTER9TUJgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGZpbGVTaXplID4gTUFYX0ZJTEVfU0laRV9CWVRFU19ORVcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke01BWF9GSUxFX1NJWkVfTUJfTkVXfU1CYClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChmaWxlU2l6ZSA+IE1BWF9GSUxFX1NJWkVfQllURVNfQVVESU8pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke01BWF9GSUxFX1NJWkVfTUJfQVVESU99TUJgKVxuICAgICAgfVxuICAgIH1cbiAgfSlcbn1cblxudHlwZSBDb250aW51ZVRocmVhZFJlcXVlc3QgPSB7XG4gIHRocmVhZElkOiBzdHJpbmdcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdlZGl0JyB8ICdyZWplY3QnXG4gIGVkaXRlZEFjdGlvbnM/OiBBcnJheTx7IHRvb2xfbmFtZTogc3RyaW5nOyBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PlxuICBhZ2VudElkOiBudW1iZXIgfCBzdHJpbmdcbiAgbGFuZzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBjb250aW51ZVRocmVhZCA9IGFzeW5jIChib2R5OiBDb250aW51ZVRocmVhZFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZXNwb25zZT4gPT4ge1xuICBjb25zdCB7IHRocmVhZElkLCBzZXNzaW9uSWQsIGRlY2lzaW9uLCBlZGl0ZWRBY3Rpb25zLCBhZ2VudElkLCBsYW5nIH0gPSBib2R5XG5cbiAgY29uc3QgcmVxdWVzdEJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHRocmVhZF9pZDogdGhyZWFkSWQsXG4gICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkLFxuICAgIGRlY2lzaW9uLFxuICB9XG5cbiAgaWYgKGRlY2lzaW9uID09PSAnZWRpdCcgJiYgZWRpdGVkQWN0aW9ucykge1xuICAgIHJlcXVlc3RCb2R5LmVkaXRlZF9hY3Rpb25zID0gZWRpdGVkQWN0aW9uc1xuICB9XG5cbiAgcmV0dXJuIGZldGNoTWFpYSh7XG4gICAgcGF0aDogJ29yY2hlc3RyYXRvci9jb250aW51ZS10aHJlYWQ/bW9kZT1zdHJlYW0nLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdYLUFnZW50LUlkJzogYWdlbnRJZC50b1N0cmluZygpLFxuICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgfSxcbiAgICBib2R5OiByZXF1ZXN0Qm9keSxcbiAgICBzaWduYWwsXG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCBvcmNoZXN0cmF0b3IgPSBhc3luYyAoYm9keTogT3JjaGVzdHJhdG9yUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBpbnB1dCxcbiAgICBwcm9qZWN0SWQsXG4gICAgbGFuZyxcbiAgICBjaGF0SWQsXG4gICAgY2xpZW50SWQsXG4gICAgY2xpZW50TmFtZSxcbiAgICBhZ2VudElkLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBhdHRhY2htZW50cyxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBmYXFJZCxcbiAgfSA9IGJvZHlcblxuICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gIGZvcm1EYXRhLmFwcGVuZCgnaW5wdXQnLCBpbnB1dClcbiAgZm9ybURhdGEuYXBwZW5kKCdzZXNzaW9uX2lkJywgY2hhdElkKVxuXG4gIGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgdmFsaWRhdGVBdHRhY2htZW50cyhhdHRhY2htZW50cylcblxuICAgIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgICAvLyBVc2FyIGVsIGFyY2hpdm8gb3JpZ2luYWwgc2kgZXhpc3RlIChwYXJhIGltw6FnZW5lcyBwcm9jZXNhZGFzKSwgc2lubyB1c2FyIGVsIGFyY2hpdm8gbm9ybWFsXG4gICAgICBjb25zdCBmaWxlVG9TZW5kID0gYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgfHwgYXR0YWNobWVudC5maWxlXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzJywgZmlsZVRvU2VuZClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgbGFuZzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICAuLi4oY2xpZW50SWQgPyB7IGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAuLi4oY2xpZW50TmFtZSA/IHsgY2xpZW50X25hbWU6IGNsaWVudE5hbWUgfSA6IHt9KSxcbiAgICAuLi4ocHJvamVjdElkID8geyBwcm9qZWN0X2lkOiBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICBzdWJkb21haW46IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgnLicpWzBdLFxuICB9XG4gIGZvcm1EYXRhLmFwcGVuZCgnbWV0YWRhdGEnLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpXG5cbiAgbGV0IHBhdGggPSAnb3JjaGVzdHJhdG9yP21vZGU9c3RyZWFtJ1xuICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJ1xuICB9XG4gIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJmRlcHRoPXRydWUnXG4gIH1cblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICdYLUFnZW50LUlkJzogYWdlbnRJZC50b1N0cmluZygpLFxuICB9XG5cbiAgaWYgKGZhcUlkKSB7XG4gICAgaGVhZGVyc1snWC1GYXEtSWQnXSA9IGZhcUlkXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keTogZm9ybURhdGEsXG4gICAgc2lnbmFsLFxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBU0EsVUFBVSxRQUFRLHFCQUFxQjtBQUVoRCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUNFQyxzQkFBc0IsRUFDdEJDLGtDQUFrQyxFQUNsQ0MsNEJBQTRCLFFBQ3ZCLHFDQUFxQztBQXNCNUMsSUFBTUMsU0FBUyxHQUFHLENBQUM7QUFDbkIsSUFBTUMsb0JBQW9CLEdBQUcsQ0FBQztBQUM5QixJQUFNQyxvQkFBb0IsR0FBRyxFQUFFO0FBQy9CLElBQU1DLHNCQUFzQixHQUFHLEVBQUU7QUFDakMsSUFBTUMsdUJBQXVCLEdB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