@projectcor/maia-components 2.35.3 → 2.35.4-1

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 (187) hide show
  1. package/CHANGELOG.md +727 -0
  2. package/lib/App.js +44 -19
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +107 -0
  4. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  5. package/lib/components/atoms/Chip/Chip.spec.js +32 -0
  6. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  7. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  8. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +4 -20
  9. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -18
  10. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  11. package/lib/components/atoms/MAIAInput/MAIAInput.js +10 -26
  12. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +201 -0
  13. package/lib/components/atoms/MAIAInput/styles.js +27 -34
  14. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +68 -0
  15. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
  16. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  17. package/lib/components/index.js +2 -1
  18. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  19. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -16
  20. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +2 -23
  21. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +5 -33
  22. package/lib/components/molecules/ChatAIHome/styles.js +2 -11
  23. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +20 -31
  24. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  25. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +6 -2
  26. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
  27. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  28. package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
  29. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +4 -2
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  31. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -8
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +9 -15
  33. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -14
  34. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  35. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +67 -74
  36. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -14
  37. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  38. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +2 -12
  39. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  40. package/lib/components/molecules/ChatFooter/ChatFooter.js +48 -64
  41. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +112 -0
  42. package/lib/components/molecules/ChatFooter/styles.js +6 -12
  43. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  44. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  45. package/lib/components/molecules/Sidebar/Sidebar.js +27 -22
  46. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  47. package/lib/components/molecules/Sidebar/Sidebar.spec.js +203 -0
  48. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +12 -37
  49. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
  50. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +237 -0
  51. package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
  52. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  53. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +484 -0
  54. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
  55. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  56. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  57. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  58. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  59. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +217 -0
  60. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +102 -0
  61. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +147 -0
  62. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  63. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  64. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  65. package/lib/components/organisms/ChatAIPage/pageHomeMockCards.js +17 -0
  66. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  67. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  68. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  69. package/lib/constants/permissions/index.js +2 -2
  70. package/lib/constants/permissions/utils.js +4 -1
  71. package/lib/dev/DevMaiaPage.js +30 -0
  72. package/lib/hooks/useCaretPosition.spec.js +58 -0
  73. package/lib/hooks/useChatManager/useChatManager.js +8 -16
  74. package/lib/hooks/useDebounce.spec.js +42 -0
  75. package/lib/hooks/useEvent.spec.js +35 -0
  76. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  77. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  78. package/lib/hooks/useMentionAllowedTypes.spec.js +100 -0
  79. package/lib/hooks/useModal/useModal.spec.js +73 -0
  80. package/lib/hooks/useResize.spec.js +37 -0
  81. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  82. package/lib/hooks/useT.spec.js +20 -0
  83. package/lib/hooks/useToggle.spec.js +33 -0
  84. package/lib/index.js +5 -2
  85. package/lib/lang/br/index.js +24 -4
  86. package/lib/lang/en/index.js +24 -4
  87. package/lib/lang/es/index.js +24 -4
  88. package/lib/lang/fr/index.js +25 -5
  89. package/lib/services/maia/Access/updateAccess.spec.js +108 -0
  90. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
  91. package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
  92. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  93. package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
  94. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  95. package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
  96. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
  97. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  98. package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
  99. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  100. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  101. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  102. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  103. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  104. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  105. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  106. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  107. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  108. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  109. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  110. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  111. package/lib/services/maia/Orchestrator/orchestrator.js +11 -5
  112. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  113. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
  114. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  115. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  116. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  117. package/lib/services/maia/Skills/createSkill.spec.js +59 -0
  118. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  119. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  120. package/lib/services/maia/Skills/updateSkill.spec.js +55 -0
  121. package/lib/services/maia/client.spec.js +56 -0
  122. package/lib/services/maia/index.js +2 -4
  123. package/lib/services/utils/fetchCOR.js +57 -106
  124. package/lib/services/utils/fetchCOR.spec.js +211 -0
  125. package/lib/services/utils/getCookie.spec.js +20 -0
  126. package/lib/services/utils/index.js +1 -2
  127. package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
  128. package/lib/store/faqsStore.types.js +1 -1
  129. package/lib/store/index.js +1 -2
  130. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  131. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  132. package/lib/store/sessions/sessionStreamManager.js +7 -24
  133. package/lib/store/sessions/sessions.types.spec.js +16 -0
  134. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  135. package/lib/store/useChatsStore.js +3 -3
  136. package/lib/store/useChatsStore.spec.js +619 -0
  137. package/lib/store/useFaqsStore.spec.js +57 -0
  138. package/lib/styles/cascade.js +29 -3
  139. package/lib/styles/transitions.js +3 -1
  140. package/lib/test/buttonMock.js +22 -0
  141. package/lib/test/fetchPolyfill.js +160 -0
  142. package/lib/test/fileMock.js +2 -0
  143. package/lib/test/global-context.js +49 -0
  144. package/lib/test/iconMock.js +19 -0
  145. package/lib/test/mockFetch.js +49 -0
  146. package/lib/test/portalRoot.js +13 -0
  147. package/lib/test/styleMock.js +2 -0
  148. package/lib/test/test-utils.js +26 -0
  149. package/lib/test/tooltipMock.js +11 -0
  150. package/lib/types/Chat.js +1 -1
  151. package/lib/types/FrequentlyAskedQuestion.js +1 -1
  152. package/lib/types/global.d.js +1 -1
  153. package/lib/utils/agentDisplayName.spec.js +44 -0
  154. package/lib/utils/autoApproveStorage.spec.js +25 -0
  155. package/lib/utils/chatInputFiles.spec.js +39 -0
  156. package/lib/utils/contextMentionLabel.spec.js +13 -0
  157. package/lib/utils/contextMentionTriggers.spec.js +36 -0
  158. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  159. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  160. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  161. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  162. package/lib/utils/formatUnreadCount.spec.js +12 -0
  163. package/lib/utils/getUnitFileSize.spec.js +18 -0
  164. package/lib/utils/hitlAnalytics.spec.js +100 -0
  165. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  166. package/lib/utils/maiaPageRoute.js +24 -0
  167. package/lib/utils/maiaPageRoute.spec.js +23 -0
  168. package/lib/utils/mapBackendLang.spec.js +19 -0
  169. package/lib/utils/normalizeAgentConnectors.spec.js +59 -0
  170. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  171. package/lib/utils/reasoningMappers.spec.js +103 -0
  172. package/lib/utils/retryCompletion.spec.js +99 -0
  173. package/lib/utils/skillContentSize.spec.js +13 -0
  174. package/lib/utils/slashCommandMarker.spec.js +43 -0
  175. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  176. package/lib/utils/sseStreamContent.spec.js +31 -0
  177. package/lib/utils/streamActivityMessages.spec.js +98 -0
  178. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  179. package/package.json +9 -6
  180. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -33
  181. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -47
  182. package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
  183. package/lib/services/maia/Usage/getUsage.js +0 -45
  184. package/lib/services/maia/Usage/index.js +0 -6
  185. package/lib/services/utils/MaiaApiError.js +0 -34
  186. package/lib/store/useUsageStore.js +0 -108
  187. package/lib/types/usage.js +0 -9
@@ -0,0 +1,42 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { MAIAButton } from './MAIAButton';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ var triggerEvent = jest.fn();
5
+ jest.mock('../../../hooks/useEvent', function () {
6
+ return {
7
+ useEvent: function useEvent() {
8
+ return triggerEvent;
9
+ }
10
+ };
11
+ });
12
+ describe('MAIAButton', function () {
13
+ beforeEach(function () {
14
+ triggerEvent.mockClear();
15
+ });
16
+ it('renders the label and calls onClick', function () {
17
+ var onClick = jest.fn();
18
+ renderWithProviders(/*#__PURE__*/_jsx(MAIAButton, {
19
+ onClick: onClick,
20
+ children: "Abrir MAIA"
21
+ }));
22
+ fireEvent.click(screen.getByRole('button', {
23
+ name: /Abrir MAIA/
24
+ }));
25
+ expect(onClick).toHaveBeenCalledTimes(1);
26
+ expect(triggerEvent).not.toHaveBeenCalled();
27
+ });
28
+ it('tracks the event key before clicking', function () {
29
+ var onClick = jest.fn();
30
+ renderWithProviders(/*#__PURE__*/_jsx(MAIAButton, {
31
+ eventKey: "AI_CHAT_OPEN",
32
+ onClick: onClick,
33
+ children: "Abrir"
34
+ }));
35
+ fireEvent.click(screen.getByRole('button', {
36
+ name: /Abrir/
37
+ }));
38
+ expect(triggerEvent).toHaveBeenCalledWith('AI_CHAT_OPEN');
39
+ expect(onClick).toHaveBeenCalled();
40
+ });
41
+ });
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTUFJQUJ1dHRvbiIsImpzeCIsIl9qc3giLCJ0cmlnZ2VyRXZlbnQiLCJqZXN0IiwiZm4iLCJtb2NrIiwidXNlRXZlbnQiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJpdCIsIm9uQ2xpY2siLCJjaGlsZHJlbiIsImNsaWNrIiwiZ2V0QnlSb2xlIiwibmFtZSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJldmVudEtleSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUJ1dHRvbi9NQUlBQnV0dG9uLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgTUFJQUJ1dHRvbiB9IGZyb20gJy4vTUFJQUJ1dHRvbidcblxuY29uc3QgdHJpZ2dlckV2ZW50ID0gamVzdC5mbigpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnLCAoKSA9PiAoe1xuICB1c2VFdmVudDogKCkgPT4gdHJpZ2dlckV2ZW50LFxufSkpXG5cbmRlc2NyaWJlKCdNQUlBQnV0dG9uJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0cmlnZ2VyRXZlbnQubW9ja0NsZWFyKClcbiAgfSlcblxuICBpdCgncmVuZGVycyB0aGUgbGFiZWwgYW5kIGNhbGxzIG9uQ2xpY2snLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPE1BSUFCdXR0b24gb25DbGljaz17b25DbGlja30+QWJyaXIgTUFJQTwvTUFJQUJ1dHRvbj4pXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvQWJyaXIgTUFJQS8gfSkpXG5cbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gICAgZXhwZWN0KHRyaWdnZXJFdmVudCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCd0cmFja3MgdGhlIGV2ZW50IGtleSBiZWZvcmUgY2xpY2tpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8TUFJQUJ1dHRvbiBldmVudEtleT1cIkFJX0NIQVRfT1BFTlwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICBBYnJpclxuICAgICAgPC9NQUlBQnV0dG9uPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6IC9BYnJpci8gfSkpXG5cbiAgICBleHBlY3QodHJpZ2dlckV2ZW50KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnQUlfQ0hBVF9PUEVOJylcbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZCgpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pGLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXpDLElBQU1DLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztBQUU5QkQsSUFBSSxDQUFDRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7RUFBQSxPQUFPO0lBQzFDQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVFKLFlBQVk7SUFBQTtFQUM5QixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhLLFFBQVEsQ0FBQyxZQUFZLEVBQUUsWUFBTTtFQUMzQkMsVUFBVSxDQUFDLFlBQU07SUFDZk4sWUFBWSxDQUFDTyxTQUFTLENBQUMsQ0FBQztFQUMxQixDQUFDLENBQUM7RUFFRkMsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLFlBQU07SUFDOUMsSUFBTUMsT0FBTyxHQUFHUixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCUCxtQkFBbUIsY0FBQ0ksSUFBQSxDQUFDRixVQUFVO01BQUNZLE9BQU8sRUFBRUEsT0FBUTtNQUFBQyxRQUFBLEVBQUM7SUFBVSxDQUFZLENBQUMsQ0FBQztJQUUxRWhCLFNBQVMsQ0FBQ2lCLEtBQUssQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLFFBQVEsRUFBRTtNQUFFQyxJQUFJLEVBQUU7SUFBYSxDQUFDLENBQUMsQ0FBQztJQUVuRUMsTUFBTSxDQUFDTCxPQUFPLENBQUMsQ0FBQ00scUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hDRCxNQUFNLENBQUNkLFlBQVksQ0FBQyxDQUFDZ0IsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQyxDQUFDO0VBQzdDLENBQUMsQ0FBQztFQUVGVCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsWUFBTTtJQUMvQyxJQUFNQyxPQUFPLEdBQUdSLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekJQLG1CQUFtQixjQUNqQkksSUFBQSxDQUFDRixVQUFVO01BQUNxQixRQUFRLEVBQUMsY0FBYztNQUFDVCxPQUFPLEVBQUVBLE9BQVE7TUFBQUMsUUFBQSxFQUFDO0lBRXRELENBQVksQ0FDZCxDQUFDO0lBRURoQixTQUFTLENBQUNpQixLQUFLLENBQUNmLE1BQU0sQ0FBQ2dCLFNBQVMsQ0FBQyxRQUFRLEVBQUU7TUFBRUMsSUFBSSxFQUFFO0lBQVEsQ0FBQyxDQUFDLENBQUM7SUFFOURDLE1BQU0sQ0FBQ2QsWUFBWSxDQUFDLENBQUNtQixvQkFBb0IsQ0FBQyxjQUFjLENBQUM7SUFDekRMLE1BQU0sQ0FBQ0wsT0FBTyxDQUFDLENBQUNRLGdCQUFnQixDQUFDLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119