@projectcor/maia-components 2.11.31-4 → 2.11.32-0

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 (55) hide show
  1. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +2 -2
  2. package/lib/components/atoms/icons/index.js +2 -3
  3. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +10 -41
  4. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +4 -7
  5. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -16
  6. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +44 -54
  7. package/lib/components/molecules/ChatAIHome/styles.js +35 -43
  8. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +200 -203
  9. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +34 -149
  10. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +9 -10
  11. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +6 -37
  12. package/lib/components/molecules/Sidebar/Sidebar.js +323 -269
  13. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +23 -18
  14. package/lib/components/molecules/Sidebar/Sidebar.styles.js +37 -54
  15. package/lib/dev/Providers.js +2 -2
  16. package/lib/hooks/useChatManager/useChatManager.js +85 -35
  17. package/lib/hooks/useChats/useChats.js +4 -12
  18. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +142 -76
  19. package/lib/hooks/useProjectSearch.js +4 -11
  20. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  21. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +189 -0
  22. package/lib/hooks/useStreamingMessage/index.js +3 -0
  23. package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
  24. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +22 -0
  25. package/lib/lang/br/index.js +2 -15
  26. package/lib/lang/en/index.js +2 -15
  27. package/lib/lang/es/index.js +2 -15
  28. package/lib/lang/fr/index.js +2 -15
  29. package/lib/mocks/mockChats.js +395 -0
  30. package/lib/mocks/mockedUser.js +169 -0
  31. package/lib/services/maia/Chats/getChatsByUserId.js +8 -14
  32. package/lib/services/maia/Chats/index.js +1 -7
  33. package/lib/services/maia/Orchestrator/orchestrator.js +4 -6
  34. package/lib/services/maia/client.js +9 -44
  35. package/lib/services/query/projectSearchByValueQuery.js +2 -2
  36. package/lib/store/chatsStore.types.js +2 -10
  37. package/lib/store/useChatsStore.js +37 -75
  38. package/lib/types/Chat.js +1 -3
  39. package/lib/types/Project.js +1 -1
  40. package/package.json +1 -1
  41. package/lib/components/atoms/icons/ChatConversation.js +0 -40
  42. package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.js +0 -43
  43. package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.styles.js +0 -11
  44. package/lib/components/molecules/ChatAIMessages/chatMessageUtils.js +0 -5
  45. package/lib/components/molecules/Sidebar/SidebarChats.styles.js +0 -73
  46. package/lib/components/molecules/Sidebar/SidebarChatsSection.js +0 -69
  47. package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +0 -150
  48. package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +0 -238
  49. package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +0 -70
  50. package/lib/components/molecules/Sidebar/sidebarChats.types.js +0 -14
  51. package/lib/dev/fixtures/devUser.js +0 -173
  52. package/lib/dev/fixtures/mockedUser.js +0 -169
  53. package/lib/services/maia/Chats/getChatMessagesV2.js +0 -114
  54. package/lib/services/maia/Chats/getSessionByAgent.js +0 -66
  55. package/lib/services/maia/Chats/getSessionsGroupedV2.js +0 -70
@@ -1,70 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import { fetchMaiaV2 } from '../client';
4
- import { getAgentTypeParamForSessionsList, mapChatsResponseItems } from './getChatsByUserId';
5
- import { SIDEBAR_SESSIONS_PAGE_LIMIT } from '../../../store/chatsStore.types';
6
- /** Orden al aplanar: coincide con el orden de secciones del sidebar. */
7
- var SESSIONS_V2_GROUP_ORDER = ['clients', 'projects', 'custom_agents'];
8
-
9
- /** Une los tres grupos v2 en un solo array para el store (el sidebar vuelve a agrupar con `groupChatsBySidebarSection`). */
10
- export function flattenSessionsGroupedV2(groups) {
11
- var byKey = new Map(groups.map(function (g) {
12
- return [g.group, g.items];
13
- }));
14
- return SESSIONS_V2_GROUP_ORDER.flatMap(function (key) {
15
- var _byKey$get;
16
- return (_byKey$get = byKey.get(key)) !== null && _byKey$get !== void 0 ? _byKey$get : [];
17
- });
18
- }
19
- /**
20
- * `GET /v2/sessions` — listado agrupado (clientes, proyectos, custom_agents).
21
- * Reemplazará el flujo v1 + `groupChatsBySidebarSection` cuando se integre en el store.
22
- */
23
- export var getSessionsGroupedV2 = /*#__PURE__*/function () {
24
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) {
25
- var _params$limit, _params$agent, _groups;
26
- var agentTypeParam, langParam, limit, offset, response, parsed, raw;
27
- return _regeneratorRuntime.wrap(function (_context) {
28
- while (1) switch (_context.prev = _context.next) {
29
- case 0:
30
- agentTypeParam = getAgentTypeParamForSessionsList();
31
- langParam = params !== null && params !== void 0 && params.lang ? "&lang=".concat(params.lang) : '';
32
- limit = (_params$limit = params === null || params === void 0 ? void 0 : params.limit) !== null && _params$limit !== void 0 ? _params$limit : SIDEBAR_SESSIONS_PAGE_LIMIT;
33
- offset = (params === null || params === void 0 ? void 0 : params.offset) != null ? "&offset=".concat(params.offset) : '';
34
- _context.next = 1;
35
- return fetchMaiaV2({
36
- path: "sessions?limit=".concat(limit).concat(offset).concat(agentTypeParam).concat(langParam),
37
- method: 'GET',
38
- headers: {
39
- 'X-Agent-Id': (params === null || params === void 0 || (_params$agent = params.agent) === null || _params$agent === void 0 ? void 0 : _params$agent.id) != null ? String(params.agent.id) : '1'
40
- }
41
- });
42
- case 1:
43
- response = _context.sent;
44
- _context.next = 2;
45
- return response.json();
46
- case 2:
47
- parsed = _context.sent;
48
- raw = Array.isArray(parsed) ? parsed : (_groups = parsed.groups) !== null && _groups !== void 0 ? _groups : [];
49
- return _context.abrupt("return", {
50
- groups: raw.map(function (g) {
51
- var _g$data;
52
- return {
53
- group: g.group,
54
- items: mapChatsResponseItems((_g$data = g.data) !== null && _g$data !== void 0 ? _g$data : []),
55
- hasMore: g.has_more,
56
- nextOffset: g.next_offset
57
- };
58
- })
59
- });
60
- case 3:
61
- case "end":
62
- return _context.stop();
63
- }
64
- }, _callee);
65
- }));
66
- return function getSessionsGroupedV2(_x) {
67
- return _ref.apply(this, arguments);
68
- };
69
- }();
70
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWFWMiIsImdldEFnZW50VHlwZVBhcmFtRm9yU2Vzc2lvbnNMaXN0IiwibWFwQ2hhdHNSZXNwb25zZUl0ZW1zIiwiU0lERUJBUl9TRVNTSU9OU19QQUdFX0xJTUlUIiwiU0VTU0lPTlNfVjJfR1JPVVBfT1JERVIiLCJmbGF0dGVuU2Vzc2lvbnNHcm91cGVkVjIiLCJncm91cHMiLCJieUtleSIsIk1hcCIsIm1hcCIsImciLCJncm91cCIsIml0ZW1zIiwiZmxhdE1hcCIsImtleSIsIl9ieUtleSRnZXQiLCJnZXQiLCJnZXRTZXNzaW9uc0dyb3VwZWRWMiIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInBhcmFtcyIsIl9wYXJhbXMkbGltaXQiLCJfcGFyYW1zJGFnZW50IiwiX2dyb3VwcyIsImFnZW50VHlwZVBhcmFtIiwibGFuZ1BhcmFtIiwibGltaXQiLCJvZmZzZXQiLCJyZXNwb25zZSIsInBhcnNlZCIsInJhdyIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGFuZyIsImNvbmNhdCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwiYWdlbnQiLCJpZCIsIlN0cmluZyIsInNlbnQiLCJqc29uIiwiQXJyYXkiLCJpc0FycmF5IiwiYWJydXB0IiwiX2ckZGF0YSIsImRhdGEiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJuZXh0T2Zmc2V0IiwibmV4dF9vZmZzZXQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0NoYXRzL2dldFNlc3Npb25zR3JvdXBlZFYyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHR5cGUgeyBTZXNzaW9uc0dyb3VwZWRWMkFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBmZXRjaE1haWFWMiB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7IGdldEFnZW50VHlwZVBhcmFtRm9yU2Vzc2lvbnNMaXN0LCBtYXBDaGF0c1Jlc3BvbnNlSXRlbXMgfSBmcm9tICcuL2dldENoYXRzQnlVc2VySWQnXG5pbXBvcnQgeyBTSURFQkFSX1NFU1NJT05TX1BBR0VfTElNSVQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9jaGF0c1N0b3JlLnR5cGVzJ1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uc0dyb3VwZWRWMkdyb3VwID0ge1xuICBncm91cDogJ2NsaWVudHMnIHwgJ3Byb2plY3RzJyB8ICdjdXN0b21fYWdlbnRzJ1xuICBpdGVtczogQ2hhdFtdXG4gIGhhc01vcmU6IGJvb2xlYW5cbiAgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbFxufVxuXG4vKiogT3JkZW4gYWwgYXBsYW5hcjogY29pbmNpZGUgY29uIGVsIG9yZGVuIGRlIHNlY2Npb25lcyBkZWwgc2lkZWJhci4gKi9cbmNvbnN0IFNFU1NJT05TX1YyX0dST1VQX09SREVSOiBTZXNzaW9uc0dyb3VwZWRWMkdyb3VwWydncm91cCddW10gPSBbJ2NsaWVudHMnLCAncHJvamVjdHMnLCAnY3VzdG9tX2FnZW50cyddXG5cbi8qKiBVbmUgbG9zIHRyZXMgZ3J1cG9zIHYyIGVuIHVuIHNvbG8gYXJyYXkgcGFyYSBlbCBzdG9yZSAoZWwgc2lkZWJhciB2dWVsdmUgYSBhZ3J1cGFyIGNvbiBgZ3JvdXBDaGF0c0J5U2lkZWJhclNlY3Rpb25gKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuU2Vzc2lvbnNHcm91cGVkVjIoZ3JvdXBzOiBTZXNzaW9uc0dyb3VwZWRWMkdyb3VwW10pOiBDaGF0W10ge1xuICBjb25zdCBieUtleSA9IG5ldyBNYXAoZ3JvdXBzLm1hcChnID0+IFtnLmdyb3VwLCBnLml0ZW1zXSkpXG4gIHJldHVybiBTRVNTSU9OU19WMl9HUk9VUF9PUkRFUi5mbGF0TWFwKGtleSA9PiBieUtleS5nZXQoa2V5KSA/PyBbXSlcbn1cblxudHlwZSBHZXRTZXNzaW9uc0dyb3VwZWRWMlBhcmFtcyA9IHtcbiAgbGltaXQ/OiBudW1iZXJcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIGFnZW50PzogQWdlbnQgfCBudWxsXG4gIGxhbmc/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBgR0VUIC92Mi9zZXNzaW9uc2Ag4oCUIGxpc3RhZG8gYWdydXBhZG8gKGNsaWVudGVzLCBwcm95ZWN0b3MsIGN1c3RvbV9hZ2VudHMpLlxuICogUmVlbXBsYXphcsOhIGVsIGZsdWpvIHYxICsgYGdyb3VwQ2hhdHNCeVNpZGViYXJTZWN0aW9uYCBjdWFuZG8gc2UgaW50ZWdyZSBlbiBlbCBzdG9yZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFNlc3Npb25zR3JvdXBlZFYyID0gYXN5bmMgKFxuICBwYXJhbXM/OiBHZXRTZXNzaW9uc0dyb3VwZWRWMlBhcmFtc1xuKTogUHJvbWlzZTx7IGdyb3VwczogU2Vzc2lvbnNHcm91cGVkVjJHcm91cFtdIH0+ID0+IHtcbiAgY29uc3QgYWdlbnRUeXBlUGFyYW0gPSBnZXRBZ2VudFR5cGVQYXJhbUZvclNlc3Npb25zTGlzdCgpXG4gIGNvbnN0IGxhbmdQYXJhbSA9IHBhcmFtcz8ubGFuZyA/IGAmbGFuZz0ke3BhcmFtcy5sYW5nfWAgOiAnJ1xuICBjb25zdCBsaW1pdCA9IHBhcmFtcz8ubGltaXQgPz8gU0lERUJBUl9TRVNTSU9OU19QQUdFX0xJTUlUXG4gIGNvbnN0IG9mZnNldCA9IHBhcmFtcz8ub2Zmc2V0ICE9IG51bGwgPyBgJm9mZnNldD0ke3BhcmFtcy5vZmZzZXR9YCA6ICcnXG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWFWMih7XG4gICAgcGF0aDogYHNlc3Npb25zP2xpbWl0PSR7bGltaXR9JHtvZmZzZXR9JHthZ2VudFR5cGVQYXJhbX0ke2xhbmdQYXJhbX1gLFxuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtQWdlbnQtSWQnOiBwYXJhbXM/LmFnZW50Py5pZCAhPSBudWxsID8gU3RyaW5nKHBhcmFtcy5hZ2VudC5pZCkgOiAnMScsXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCBwYXJzZWQgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgY29uc3QgcmF3OiBTZXNzaW9uc0dyb3VwZWRWMkFwaVJlc3BvbnNlID0gQXJyYXkuaXNBcnJheShwYXJzZWQpXG4gICAgPyBwYXJzZWRcbiAgICA6ICgocGFyc2VkIGFzIHsgZ3JvdXBzPzogU2Vzc2lvbnNHcm91cGVkVjJBcGlSZXNwb25zZSB9KS5ncm91cHMgPz8gW10pXG5cbiAgcmV0dXJuIHtcbiAgICBncm91cHM6IHJhdy5tYXAoZyA9PiAoe1xuICAgICAgZ3JvdXA6IGcuZ3JvdXAsXG4gICAgICBpdGVtczogbWFwQ2hhdHNSZXNwb25zZUl0ZW1zKGcuZGF0YSA/PyBbXSksXG4gICAgICBoYXNNb3JlOiBnLmhhc19tb3JlLFxuICAgICAgbmV4dE9mZnNldDogZy5uZXh0X29mZnNldCxcbiAgICB9KSksXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFHQSxTQUFTQSxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxnQ0FBZ0MsRUFBRUMscUJBQXFCLFFBQVEsb0JBQW9CO0FBQzVGLFNBQVNDLDJCQUEyQixRQUFRLGlDQUFpQztBQVM3RTtBQUNBLElBQU1DLHVCQUEwRCxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUM7O0FBRTNHO0FBQ0EsT0FBTyxTQUFTQyx3QkFBd0JBLENBQUNDLE1BQWdDLEVBQVU7RUFDakYsSUFBTUMsS0FBSyxHQUFHLElBQUlDLEdBQUcsQ0FBQ0YsTUFBTSxDQUFDRyxHQUFHLENBQUMsVUFBQUMsQ0FBQztJQUFBLE9BQUksQ0FBQ0EsQ0FBQyxDQUFDQyxLQUFLLEVBQUVELENBQUMsQ0FBQ0UsS0FBSyxDQUFDO0VBQUEsRUFBQyxDQUFDO0VBQzFELE9BQU9SLHVCQUF1QixDQUFDUyxPQUFPLENBQUMsVUFBQUMsR0FBRztJQUFBLElBQUFDLFVBQUE7SUFBQSxRQUFBQSxVQUFBLEdBQUlSLEtBQUssQ0FBQ1MsR0FBRyxDQUFDRixHQUFHLENBQUMsY0FBQUMsVUFBQSxjQUFBQSxVQUFBLEdBQUksRUFBRTtFQUFBLEVBQUM7QUFDckU7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUUsb0JBQW9CO0VBQUEsSUFBQUMsSUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFDbENDLE1BQW1DO0lBQUEsSUFBQUMsYUFBQSxFQUFBQyxhQUFBLEVBQUFDLE9BQUE7SUFBQSxJQUFBQyxjQUFBLEVBQUFDLFNBQUEsRUFBQUMsS0FBQSxFQUFBQyxNQUFBLEVBQUFDLFFBQUEsRUFBQUMsTUFBQSxFQUFBQyxHQUFBO0lBQUEsT0FBQWIsbUJBQUEsQ0FBQWMsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUU3QlYsY0FBYyxHQUFHMUIsZ0NBQWdDLENBQUMsQ0FBQztVQUNuRDJCLFNBQVMsR0FBR0wsTUFBTSxhQUFOQSxNQUFNLGVBQU5BLE1BQU0sQ0FBRWUsSUFBSSxZQUFBQyxNQUFBLENBQVloQixNQUFNLENBQUNlLElBQUksSUFBSyxFQUFFO1VBQ3REVCxLQUFLLElBQUFMLGFBQUEsR0FBR0QsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVNLEtBQUssY0FBQUwsYUFBQSxjQUFBQSxhQUFBLEdBQUlyQiwyQkFBMkI7VUFDcEQyQixNQUFNLEdBQUcsQ0FBQVAsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVPLE1BQU0sS0FBSSxJQUFJLGNBQUFTLE1BQUEsQ0FBY2hCLE1BQU0sQ0FBQ08sTUFBTSxJQUFLLEVBQUU7VUFBQUssUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FFaERyQyxXQUFXLENBQUM7WUFDakN3QyxJQUFJLG9CQUFBRCxNQUFBLENBQW9CVixLQUFLLEVBQUFVLE1BQUEsQ0FBR1QsTUFBTSxFQUFBUyxNQUFBLENBQUdaLGNBQWMsRUFBQVksTUFBQSxDQUFHWCxTQUFTLENBQUU7WUFDckVhLE1BQU0sRUFBRSxLQUFLO1lBQ2JDLE9BQU8sRUFBRTtjQUNQLFlBQVksRUFBRSxDQUFBbkIsTUFBTSxhQUFOQSxNQUFNLGdCQUFBRSxhQUFBLEdBQU5GLE1BQU0sQ0FBRW9CLEtBQUssY0FBQWxCLGFBQUEsdUJBQWJBLGFBQUEsQ0FBZW1CLEVBQUUsS0FBSSxJQUFJLEdBQUdDLE1BQU0sQ0FBQ3RCLE1BQU0sQ0FBQ29CLEtBQUssQ0FBQ0MsRUFBRSxDQUFDLEdBQUc7WUFDdEU7VUFDRixDQUFDLENBQUM7UUFBQTtVQU5JYixRQUFRLEdBQUFJLFFBQUEsQ0FBQVcsSUFBQTtVQUFBWCxRQUFBLENBQUFFLElBQUE7VUFBQSxPQVFPTixRQUFRLENBQUNnQixJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTlCZixNQUFNLEdBQUFHLFFBQUEsQ0FBQVcsSUFBQTtVQUNOYixHQUFpQyxHQUFHZSxLQUFLLENBQUNDLE9BQU8sQ0FBQ2pCLE1BQU0sQ0FBQyxHQUMzREEsTUFBTSxJQUFBTixPQUFBLEdBQ0pNLE1BQU0sQ0FBK0MxQixNQUFNLGNBQUFvQixPQUFBLGNBQUFBLE9BQUEsR0FBSSxFQUFHO1VBQUEsT0FBQVMsUUFBQSxDQUFBZSxNQUFBLFdBRWpFO1lBQ0w1QyxNQUFNLEVBQUUyQixHQUFHLENBQUN4QixHQUFHLENBQUMsVUFBQUMsQ0FBQztjQUFBLElBQUF5QyxPQUFBO2NBQUEsT0FBSztnQkFDcEJ4QyxLQUFLLEVBQUVELENBQUMsQ0FBQ0MsS0FBSztnQkFDZEMsS0FBSyxFQUFFVixxQkFBcUIsRUFBQWlELE9BQUEsR0FBQ3pDLENBQUMsQ0FBQzBDLElBQUksY0FBQUQsT0FBQSxjQUFBQSxPQUFBLEdBQUksRUFBRSxDQUFDO2dCQUMxQ0UsT0FBTyxFQUFFM0MsQ0FBQyxDQUFDNEMsUUFBUTtnQkFDbkJDLFVBQVUsRUFBRTdDLENBQUMsQ0FBQzhDO2NBQ2hCLENBQUM7WUFBQSxDQUFDO1VBQ0osQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBckIsUUFBQSxDQUFBc0IsSUFBQTtNQUFBO0lBQUEsR0FBQW5DLE9BQUE7RUFBQSxDQUNGO0VBQUEsZ0JBN0JZTCxvQkFBb0JBLENBQUF5QyxFQUFBO0lBQUEsT0FBQXhDLElBQUEsQ0FBQXlDLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0E2QmhDIiwiaWdub3JlTGlzdCI6W119