@projectcor/maia-components 2.11.32-2 → 2.11.32-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.
- package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +2 -2
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
- package/lib/components/atoms/icons/index.js +2 -2
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +10 -41
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -8
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -16
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +6 -2
- package/lib/components/molecules/ChatAIHome/styles.js +14 -7
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +178 -165
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +254 -347
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +81 -16
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +17 -2
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
- package/lib/components/molecules/ChatAIModal/layout.js +35 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +9 -10
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +6 -37
- package/lib/components/molecules/Sidebar/Sidebar.js +323 -269
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +22 -17
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +37 -54
- package/lib/dev/Providers.js +2 -2
- package/lib/hooks/useChatManager/useChatManager.js +121 -65
- package/lib/hooks/useChats/useChats.js +4 -12
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +145 -73
- package/lib/hooks/useProjectSearch.js +11 -4
- package/lib/hooks/useSmoothStreamText/index.js +2 -0
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +189 -0
- package/lib/hooks/useStreamingMessage/index.js +3 -0
- package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +22 -0
- package/lib/lang/br/index.js +6 -11
- package/lib/lang/en/index.js +6 -11
- package/lib/lang/es/index.js +6 -11
- package/lib/lang/fr/index.js +6 -11
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +8 -14
- package/lib/services/maia/Chats/index.js +1 -7
- package/lib/services/maia/Orchestrator/orchestrator.js +6 -4
- package/lib/services/maia/RecentProjects/getRecentProjects.js +2 -2
- package/lib/services/maia/client.js +9 -44
- package/lib/services/query/projectSearchByValueQuery.js +2 -2
- package/lib/store/chatsStore.types.js +2 -10
- package/lib/store/useChatsStore.js +37 -75
- package/lib/types/Chat.js +1 -3
- package/lib/types/Project.js +1 -1
- package/package.json +1 -1
- package/lib/components/atoms/icons/ChatConversation.js +0 -40
- package/lib/components/molecules/Sidebar/SidebarChats.styles.js +0 -73
- package/lib/components/molecules/Sidebar/SidebarChatsSection.js +0 -69
- package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +0 -150
- package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +0 -238
- package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +0 -70
- package/lib/components/molecules/Sidebar/sidebarChats.types.js +0 -14
- package/lib/dev/fixtures/devUser.js +0 -173
- package/lib/dev/fixtures/mockedUser.js +0 -169
- package/lib/services/maia/Chats/getChatMessagesV2.js +0 -114
- package/lib/services/maia/Chats/getSessionByAgent.js +0 -66
- 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
|