@projectcor/maia-components 2.11.31-2 → 2.11.31-4
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/ChatConversation.js +40 -0
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
- package/lib/components/atoms/icons/index.js +3 -1
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +31 -3
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +41 -10
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -4
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +16 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +54 -44
- package/lib/components/molecules/ChatAIHome/styles.js +43 -35
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +204 -205
- package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.js +43 -0
- package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.styles.js +11 -0
- package/lib/components/molecules/ChatAIMessages/chatMessageUtils.js +5 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +341 -91
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +91 -18
- 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 +10 -9
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +37 -6
- package/lib/components/molecules/Sidebar/Sidebar.js +269 -323
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +18 -23
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +54 -37
- package/lib/components/molecules/Sidebar/SidebarChats.styles.js +73 -0
- package/lib/components/molecules/Sidebar/SidebarChatsSection.js +69 -0
- package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +150 -0
- package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +238 -0
- package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +70 -0
- package/lib/components/molecules/Sidebar/sidebarChats.types.js +14 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +45 -3
- package/lib/dev/Providers.js +2 -2
- package/lib/dev/fixtures/devUser.js +173 -0
- package/lib/dev/fixtures/mockedUser.js +169 -0
- package/lib/hooks/useChatManager/useChatManager.js +35 -85
- package/lib/hooks/useChats/useChats.js +12 -4
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +76 -142
- package/lib/hooks/useProjectSearch.js +11 -4
- package/lib/lang/br/index.js +19 -2
- package/lib/lang/en/index.js +19 -2
- package/lib/lang/es/index.js +19 -2
- package/lib/lang/fr/index.js +19 -2
- package/lib/services/maia/Chats/getChatMessagesV2.js +114 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +14 -8
- package/lib/services/maia/Chats/getSessionByAgent.js +66 -0
- package/lib/services/maia/Chats/getSessionsGroupedV2.js +70 -0
- package/lib/services/maia/Chats/index.js +7 -1
- package/lib/services/maia/Orchestrator/orchestrator.js +6 -4
- package/lib/services/maia/client.js +44 -9
- package/lib/services/query/projectSearchByValueQuery.js +2 -2
- package/lib/store/chatsStore.types.js +10 -2
- package/lib/store/useChatsStore.js +75 -37
- package/lib/types/Chat.js +3 -1
- package/lib/types/Project.js +1 -1
- package/package.json +1 -1
- package/lib/hooks/useSmoothStreamText/index.js +0 -2
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +0 -303
- package/lib/hooks/useStreamingMessage/index.js +0 -3
- package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +0 -22
- package/lib/mocks/mockChats.js +0 -395
- package/lib/mocks/mockedUser.js +0 -169
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* eslint-disable react/function-component-definition */
|
|
2
|
+
|
|
3
|
+
import { SCDaySeparatorChip, SCDaySeparatorRow } from './ChatDaySeparator.styles';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export function getLocalDayKey(d) {
|
|
6
|
+
if (!d || Number.isNaN(d.getTime())) return null;
|
|
7
|
+
var y = d.getFullYear();
|
|
8
|
+
var m = String(d.getMonth() + 1).padStart(2, '0');
|
|
9
|
+
var day = String(d.getDate()).padStart(2, '0');
|
|
10
|
+
return "".concat(y, "-").concat(m, "-").concat(day);
|
|
11
|
+
}
|
|
12
|
+
function isSameLocalDay(a, b) {
|
|
13
|
+
var ka = getLocalDayKey(a);
|
|
14
|
+
var kb = getLocalDayKey(b);
|
|
15
|
+
return ka !== null && kb !== null && ka === kb;
|
|
16
|
+
}
|
|
17
|
+
export function formatChatDaySeparatorLabel(date, t, language) {
|
|
18
|
+
var now = new Date();
|
|
19
|
+
if (isSameLocalDay(date, now)) return t('chat.daySeparator.today');
|
|
20
|
+
var yesterday = new Date(now);
|
|
21
|
+
yesterday.setDate(yesterday.getDate() - 1);
|
|
22
|
+
if (isSameLocalDay(date, yesterday)) return t('chat.daySeparator.yesterday');
|
|
23
|
+
try {
|
|
24
|
+
return new Intl.DateTimeFormat(language, {
|
|
25
|
+
dateStyle: 'medium'
|
|
26
|
+
}).format(date);
|
|
27
|
+
} catch (_unused) {
|
|
28
|
+
return new Intl.DateTimeFormat('es', {
|
|
29
|
+
dateStyle: 'medium'
|
|
30
|
+
}).format(date);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export var ChatDaySeparator = function ChatDaySeparator(_ref) {
|
|
34
|
+
var label = _ref.label;
|
|
35
|
+
return /*#__PURE__*/_jsx(SCDaySeparatorRow, {
|
|
36
|
+
role: "separator",
|
|
37
|
+
"aria-label": label,
|
|
38
|
+
children: /*#__PURE__*/_jsx(SCDaySeparatorChip, {
|
|
39
|
+
children: label
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQ0RheVNlcGFyYXRvckNoaXAiLCJTQ0RheVNlcGFyYXRvclJvdyIsImpzeCIsIl9qc3giLCJnZXRMb2NhbERheUtleSIsImQiLCJOdW1iZXIiLCJpc05hTiIsImdldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiU3RyaW5nIiwiZ2V0TW9udGgiLCJwYWRTdGFydCIsImRheSIsImdldERhdGUiLCJjb25jYXQiLCJpc1NhbWVMb2NhbERheSIsImEiLCJiIiwia2EiLCJrYiIsImZvcm1hdENoYXREYXlTZXBhcmF0b3JMYWJlbCIsImRhdGUiLCJ0IiwibGFuZ3VhZ2UiLCJub3ciLCJEYXRlIiwieWVzdGVyZGF5Iiwic2V0RGF0ZSIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRhdGVTdHlsZSIsImZvcm1hdCIsIl91bnVzZWQiLCJDaGF0RGF5U2VwYXJhdG9yIiwiX3JlZiIsImxhYmVsIiwicm9sZSIsImNoaWxkcmVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL0NoYXREYXlTZXBhcmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgdHlwZSB7IFRGdW5jdGlvbiB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IEZDIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBTQ0RheVNlcGFyYXRvckNoaXAsIFNDRGF5U2VwYXJhdG9yUm93IH0gZnJvbSAnLi9DaGF0RGF5U2VwYXJhdG9yLnN0eWxlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsRGF5S2V5KGQ6IERhdGUpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFkIHx8IE51bWJlci5pc05hTihkLmdldFRpbWUoKSkpIHJldHVybiBudWxsXG4gIGNvbnN0IHkgPSBkLmdldEZ1bGxZZWFyKClcbiAgY29uc3QgbSA9IFN0cmluZyhkLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IGRheSA9IFN0cmluZyhkLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKVxuICByZXR1cm4gYCR7eX0tJHttfS0ke2RheX1gXG59XG5cbmZ1bmN0aW9uIGlzU2FtZUxvY2FsRGF5KGE6IERhdGUsIGI6IERhdGUpOiBib29sZWFuIHtcbiAgY29uc3Qga2EgPSBnZXRMb2NhbERheUtleShhKVxuICBjb25zdCBrYiA9IGdldExvY2FsRGF5S2V5KGIpXG4gIHJldHVybiBrYSAhPT0gbnVsbCAmJiBrYiAhPT0gbnVsbCAmJiBrYSA9PT0ga2Jcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENoYXREYXlTZXBhcmF0b3JMYWJlbChkYXRlOiBEYXRlLCB0OiBURnVuY3Rpb24sIGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpXG4gIGlmIChpc1NhbWVMb2NhbERheShkYXRlLCBub3cpKSByZXR1cm4gdCgnY2hhdC5kYXlTZXBhcmF0b3IudG9kYXknKVxuICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZShub3cpXG4gIHllc3RlcmRheS5zZXREYXRlKHllc3RlcmRheS5nZXREYXRlKCkgLSAxKVxuICBpZiAoaXNTYW1lTG9jYWxEYXkoZGF0ZSwgeWVzdGVyZGF5KSkgcmV0dXJuIHQoJ2NoYXQuZGF5U2VwYXJhdG9yLnllc3RlcmRheScpXG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxhbmd1YWdlLCB7IGRhdGVTdHlsZTogJ21lZGl1bScgfSkuZm9ybWF0KGRhdGUpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZXMnLCB7IGRhdGVTdHlsZTogJ21lZGl1bScgfSkuZm9ybWF0KGRhdGUpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYXREYXlTZXBhcmF0b3I6IEZDPHsgbGFiZWw6IHN0cmluZyB9PiA9ICh7IGxhYmVsIH0pID0+IChcbiAgPFNDRGF5U2VwYXJhdG9yUm93IHJvbGU9XCJzZXBhcmF0b3JcIiBhcmlhLWxhYmVsPXtsYWJlbH0+XG4gICAgPFNDRGF5U2VwYXJhdG9yQ2hpcD57bGFiZWx9PC9TQ0RheVNlcGFyYXRvckNoaXA+XG4gIDwvU0NEYXlTZXBhcmF0b3JSb3c+XG4pXG4iXSwibWFwcGluZ3MiOiJBQUFBOztBQUdBLFNBQVNBLGtCQUFrQixFQUFFQyxpQkFBaUIsUUFBUSwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFakYsT0FBTyxTQUFTQyxjQUFjQSxDQUFDQyxDQUFPLEVBQWlCO0VBQ3JELElBQUksQ0FBQ0EsQ0FBQyxJQUFJQyxNQUFNLENBQUNDLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJO0VBQ2hELElBQU1DLENBQUMsR0FBR0osQ0FBQyxDQUFDSyxXQUFXLENBQUMsQ0FBQztFQUN6QixJQUFNQyxDQUFDLEdBQUdDLE1BQU0sQ0FBQ1AsQ0FBQyxDQUFDUSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztFQUNuRCxJQUFNQyxHQUFHLEdBQUdILE1BQU0sQ0FBQ1AsQ0FBQyxDQUFDVyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNGLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO0VBQ2hELFVBQUFHLE1BQUEsQ0FBVVIsQ0FBQyxPQUFBUSxNQUFBLENBQUlOLENBQUMsT0FBQU0sTUFBQSxDQUFJRixHQUFHO0FBQ3pCO0FBRUEsU0FBU0csY0FBY0EsQ0FBQ0MsQ0FBTyxFQUFFQyxDQUFPLEVBQVc7RUFDakQsSUFBTUMsRUFBRSxHQUFHakIsY0FBYyxDQUFDZSxDQUFDLENBQUM7RUFDNUIsSUFBTUcsRUFBRSxHQUFHbEIsY0FBYyxDQUFDZ0IsQ0FBQyxDQUFDO0VBQzVCLE9BQU9DLEVBQUUsS0FBSyxJQUFJLElBQUlDLEVBQUUsS0FBSyxJQUFJLElBQUlELEVBQUUsS0FBS0MsRUFBRTtBQUNoRDtBQUVBLE9BQU8sU0FBU0MsMkJBQTJCQSxDQUFDQyxJQUFVLEVBQUVDLENBQVksRUFBRUMsUUFBZ0IsRUFBVTtFQUM5RixJQUFNQyxHQUFHLEdBQUcsSUFBSUMsSUFBSSxDQUFDLENBQUM7RUFDdEIsSUFBSVYsY0FBYyxDQUFDTSxJQUFJLEVBQUVHLEdBQUcsQ0FBQyxFQUFFLE9BQU9GLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztFQUNsRSxJQUFNSSxTQUFTLEdBQUcsSUFBSUQsSUFBSSxDQUFDRCxHQUFHLENBQUM7RUFDL0JFLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDRCxTQUFTLENBQUNiLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQzFDLElBQUlFLGNBQWMsQ0FBQ00sSUFBSSxFQUFFSyxTQUFTLENBQUMsRUFBRSxPQUFPSixDQUFDLENBQUMsNkJBQTZCLENBQUM7RUFDNUUsSUFBSTtJQUNGLE9BQU8sSUFBSU0sSUFBSSxDQUFDQyxjQUFjLENBQUNOLFFBQVEsRUFBRTtNQUFFTyxTQUFTLEVBQUU7SUFBUyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDVixJQUFJLENBQUM7RUFDaEYsQ0FBQyxDQUFDLE9BQUFXLE9BQUEsRUFBTTtJQUNOLE9BQU8sSUFBSUosSUFBSSxDQUFDQyxjQUFjLENBQUMsSUFBSSxFQUFFO01BQUVDLFNBQVMsRUFBRTtJQUFTLENBQUMsQ0FBQyxDQUFDQyxNQUFNLENBQUNWLElBQUksQ0FBQztFQUM1RTtBQUNGO0FBRUEsT0FBTyxJQUFNWSxnQkFBdUMsR0FBRyxTQUExQ0EsZ0JBQXVDQSxDQUFBQyxJQUFBO0VBQUEsSUFBTUMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7RUFBQSxvQkFDN0RuQyxJQUFBLENBQUNGLGlCQUFpQjtJQUFDc0MsSUFBSSxFQUFDLFdBQVc7SUFBQyxjQUFZRCxLQUFNO0lBQUFFLFFBQUEsZUFDcERyQyxJQUFBLENBQUNILGtCQUFrQjtNQUFBd0MsUUFBQSxFQUFFRjtJQUFLLENBQXFCO0VBQUMsQ0FDL0IsQ0FBQztBQUFBLENBQ3JCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import colors from '@projectcor/theme/lib/base/colors';
|
|
3
|
+
export var SCDaySeparatorRow = styled.div.withConfig({
|
|
4
|
+
displayName: "ChatDaySeparatorstyles__SCDaySeparatorRow",
|
|
5
|
+
componentId: "sc-1jz4nos-0"
|
|
6
|
+
})(["display:flex;justify-content:center;align-items:center;width:100%;"]);
|
|
7
|
+
export var SCDaySeparatorChip = styled.span.withConfig({
|
|
8
|
+
displayName: "ChatDaySeparatorstyles__SCDaySeparatorChip",
|
|
9
|
+
componentId: "sc-1jz4nos-1"
|
|
10
|
+
})(["display:inline-flex;align-items:center;justify-content:center;border:0.5px solid #bfbfbf;border-radius:20px;padding:6px 12px;font-size:12px;line-height:130%;color:", ";font-weight:500;"], colors.secondary);
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTQ0RheVNlcGFyYXRvclJvdyIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NEYXlTZXBhcmF0b3JDaGlwIiwic3BhbiIsInNlY29uZGFyeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9DaGF0RGF5U2VwYXJhdG9yLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBTQ0RheVNlcGFyYXRvclJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRGF5U2VwYXJhdG9yQ2hpcCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMC41cHggc29saWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIGNvbG9yOiAke2NvbG9ycy5zZWNvbmRhcnl9O1xuICBmb250LXdlaWdodDogNTAwO1xuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFFdEQsT0FBTyxJQUFNQyxpQkFBaUIsR0FBR0YsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMEVBSzFDO0FBRUQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBR1AsTUFBTSxDQUFDUSxJQUFJLENBQUFKLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaU1BU2xDTCxNQUFNLENBQUNRLFNBQVMsQ0FFMUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export function isRenderableChatMessage(message) {
|
|
2
|
+
var _message$attachments, _message$sources, _message$project;
|
|
3
|
+
return !!((_message$attachments = message.attachments) !== null && _message$attachments !== void 0 && _message$attachments.length || (_message$sources = message.sources) !== null && _message$sources !== void 0 && _message$sources.length || message.message || (_message$project = message.project) !== null && _message$project !== void 0 && _message$project.name || message.approval);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlbmRlcmFibGVDaGF0TWVzc2FnZSIsIm1lc3NhZ2UiLCJfbWVzc2FnZSRhdHRhY2htZW50cyIsIl9tZXNzYWdlJHNvdXJjZXMiLCJfbWVzc2FnZSRwcm9qZWN0IiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJzb3VyY2VzIiwicHJvamVjdCIsIm5hbWUiLCJhcHByb3ZhbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9jaGF0TWVzc2FnZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZW5kZXJhYmxlQ2hhdE1lc3NhZ2UobWVzc2FnZTogQ2hhdE1lc3NhZ2UpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhKFxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aCB8fFxuICAgIG1lc3NhZ2Uuc291cmNlcz8ubGVuZ3RoIHx8XG4gICAgbWVzc2FnZS5tZXNzYWdlIHx8XG4gICAgbWVzc2FnZS5wcm9qZWN0Py5uYW1lIHx8XG4gICAgbWVzc2FnZS5hcHByb3ZhbFxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBU0EsdUJBQXVCQSxDQUFDQyxPQUFvQixFQUFXO0VBQUEsSUFBQUMsb0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUE7RUFDckUsT0FBTyxDQUFDLEVBQ04sQ0FBQUYsb0JBQUEsR0FBQUQsT0FBTyxDQUFDSSxXQUFXLGNBQUFILG9CQUFBLGVBQW5CQSxvQkFBQSxDQUFxQkksTUFBTSxLQUFBSCxnQkFBQSxHQUMzQkYsT0FBTyxDQUFDTSxPQUFPLGNBQUFKLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCRyxNQUFNLElBQ3ZCTCxPQUFPLENBQUNBLE9BQU8sS0FBQUcsZ0JBQUEsR0FDZkgsT0FBTyxDQUFDTyxPQUFPLGNBQUFKLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCSyxJQUFJLElBQ3JCUixPQUFPLENBQUNTLFFBQVEsQ0FDakI7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|