@projectcor/maia-components 2.51.1 → 2.52.1-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 (448) hide show
  1. package/lib/App.js +44 -19
  2. package/lib/components/atoms/ActionableButton.spec.js +111 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +52 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +11 -0
  5. package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.spec.js +63 -0
  6. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +183 -0
  7. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +123 -0
  8. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +3 -1
  9. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +139 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +385 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +3 -1
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +78 -0
  13. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +94 -0
  14. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +24 -14
  15. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +396 -0
  16. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +28 -10
  17. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +80 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +526 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +19 -15
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +169 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +11 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +8 -4
  23. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +77 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.spec.js +28 -0
  25. package/lib/components/atoms/CardMenu/CardMenu.spec.js +56 -0
  26. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +67 -0
  27. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  28. package/lib/components/atoms/Chip/Chip.spec.js +82 -0
  29. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +26 -0
  30. package/lib/components/atoms/ClientSelector/ClientSelector.helpers.spec.js +45 -0
  31. package/lib/components/atoms/ClientSelector/ClientSelector.js +15 -13
  32. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +133 -0
  33. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.spec.js +107 -0
  34. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  35. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +46 -0
  36. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +109 -0
  37. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +81 -0
  38. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +92 -0
  39. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +319 -0
  40. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +107 -0
  41. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +136 -0
  42. package/lib/components/atoms/CopyToClipboard.spec.js +74 -0
  43. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +76 -0
  44. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +86 -0
  45. package/lib/components/atoms/Expand/Expand.spec.js +57 -0
  46. package/lib/components/atoms/Fade/Fade.js +10 -6
  47. package/lib/components/atoms/Fade/Fade.spec.js +66 -0
  48. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +75 -0
  49. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +104 -0
  50. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
  51. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +91 -0
  52. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
  53. package/lib/components/atoms/HelpButton.spec.js +87 -0
  54. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +96 -0
  55. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +54 -0
  56. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +21 -0
  57. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +20 -0
  58. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +26 -0
  59. package/lib/components/atoms/LoadingText/LoadingText.spec.js +25 -0
  60. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  61. package/lib/components/atoms/MAIAError/MAIAError.spec.js +27 -0
  62. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +3 -2
  63. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.spec.js +113 -0
  64. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +3 -2
  65. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +381 -0
  66. package/lib/components/atoms/MAIAInput/MAIAInput.js +123 -99
  67. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +719 -0
  68. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +92 -0
  69. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +193 -0
  70. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +32 -0
  71. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +64 -0
  72. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +43 -0
  73. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +9 -4
  74. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +114 -0
  75. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +51 -0
  76. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +48 -0
  77. package/lib/components/atoms/ModalProject/ModalProject.spec.js +66 -0
  78. package/lib/components/atoms/NextPageLoader.spec.js +37 -0
  79. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +20 -0
  80. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +35 -0
  81. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +47 -0
  82. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +4 -5
  83. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +146 -0
  84. package/lib/components/atoms/PrimaryButton.spec.js +42 -0
  85. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +69 -0
  86. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
  87. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
  88. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +41 -24
  89. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +25 -10
  90. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
  91. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +78 -43
  92. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +170 -0
  93. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +9 -11
  94. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +199 -0
  95. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +70 -0
  96. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +37 -15
  97. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +120 -0
  98. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +8 -0
  99. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +31 -0
  100. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
  101. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
  102. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +29 -0
  103. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +38 -0
  104. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +16 -0
  105. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  106. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +24 -0
  107. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.spec.js +71 -0
  108. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +120 -0
  109. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  110. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +52 -0
  111. package/lib/components/atoms/TextArea/TextArea.helpers.spec.js +25 -0
  112. package/lib/components/atoms/TextArea/TextArea.spec.js +126 -0
  113. package/lib/components/atoms/ThirdButton.spec.js +29 -0
  114. package/lib/components/atoms/VideoModal/VideoModal.spec.js +68 -0
  115. package/lib/components/atoms/WithAppCfg.spec.js +82 -0
  116. package/lib/components/index.js +2 -1
  117. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +53 -0
  118. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +3 -2
  119. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +780 -0
  120. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +107 -0
  121. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +256 -0
  122. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +6 -4
  123. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +175 -0
  124. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +25 -16
  125. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +318 -0
  126. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +50 -0
  127. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +94 -0
  128. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
  129. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
  130. package/lib/components/molecules/AgentInputBlock/index.js +5 -0
  131. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
  132. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
  133. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
  134. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
  135. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
  136. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +66 -0
  137. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  138. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +145 -0
  139. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +204 -0
  140. package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.spec.js +622 -0
  141. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +93 -72
  142. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +264 -0
  143. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +86 -0
  144. package/lib/components/molecules/ChatAIHome/styles.js +85 -78
  145. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  146. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +95 -3
  147. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +967 -0
  148. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +136 -53
  149. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +646 -0
  150. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  151. package/lib/components/molecules/ChatAIMessages/newStyles.js +32 -35
  152. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
  153. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +1395 -0
  154. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +23 -8
  155. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +1434 -0
  156. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +3 -3
  157. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +33 -0
  158. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +116 -0
  159. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
  160. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +134 -0
  161. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
  162. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +142 -0
  163. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +63 -367
  164. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +241 -0
  165. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.js +69 -0
  166. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.spec.js +144 -0
  167. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentDropdown.js +95 -0
  168. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentSelector.js +174 -0
  169. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.js +99 -0
  170. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.spec.js +65 -0
  171. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
  172. package/lib/components/molecules/ChatAIModal/constants.spec.js +16 -0
  173. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +22 -0
  174. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +67 -0
  175. package/lib/components/molecules/ChatAIModal/layout.spec.js +72 -0
  176. package/lib/components/molecules/ChatAIMultipleChoice/ChatAIMultipleChoice.js +108 -0
  177. package/lib/components/molecules/ChatAIMultipleChoice/ChatAIMultipleChoice.spec.js +102 -0
  178. package/lib/components/molecules/ChatAIMultipleChoice/ChatAIMultipleChoice.styles.js +77 -0
  179. package/lib/components/molecules/ChatAIMultipleChoice/ChatAIMultipleChoiceAnswer.js +62 -0
  180. package/lib/components/molecules/ChatAIMultipleChoice/ChatAIMultipleChoiceAnswer.spec.js +49 -0
  181. package/lib/components/molecules/ChatAIMultipleChoice/ChatAIMultipleChoiceAnswer.styles.js +26 -0
  182. package/lib/components/molecules/ChatAIMultipleChoice/index.js +3 -0
  183. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.spec.js +93 -0
  184. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +297 -0
  185. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.spec.js +62 -0
  186. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +221 -0
  187. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +66 -0
  188. package/lib/components/molecules/ChatFooter/ChatFooter.js +91 -5
  189. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +548 -0
  190. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +10 -0
  191. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +104 -0
  192. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +5 -2
  193. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +139 -0
  194. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  195. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  196. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +126 -0
  197. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +115 -0
  198. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +79 -0
  199. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +37 -0
  200. package/lib/components/molecules/Sidebar/Sidebar.helpers.spec.js +119 -0
  201. package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
  202. package/lib/components/molecules/Sidebar/Sidebar.spec.js +526 -0
  203. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +1067 -0
  204. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
  205. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +1236 -0
  206. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +112 -0
  207. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.spec.js +77 -0
  208. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +503 -0
  209. package/lib/components/organisms/ChatAI/ChatAI.spec.js +217 -0
  210. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +525 -0
  211. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +246 -0
  212. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  213. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  214. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +291 -0
  215. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  216. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +284 -0
  217. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +343 -0
  218. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +197 -0
  219. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +94 -0
  220. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +69 -0
  221. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
  222. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  223. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  224. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  225. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +53 -0
  226. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  227. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  228. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  229. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +49 -0
  230. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +67 -0
  231. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +11 -7
  232. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +117 -0
  233. package/lib/components/organisms/SnackBar/Snackbar.spec.js +66 -0
  234. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +19 -0
  235. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +4 -1
  236. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +52 -0
  237. package/lib/constants/formatExtensions.spec.js +15 -0
  238. package/lib/constants/maiaExternalConnectorsAccess.spec.js +29 -0
  239. package/lib/constants/maiaFeatureAccess.spec.js +30 -0
  240. package/lib/constants/maiaHourAgentAccess.spec.js +30 -0
  241. package/lib/constants/maiaTaskPanelAccess.spec.js +41 -0
  242. package/lib/constants/permissions/clientRoleAccess.spec.js +65 -0
  243. package/lib/constants/permissions/index.js +2 -2
  244. package/lib/constants/permissions/utils.js +4 -1
  245. package/lib/constants/permissions/utils.spec.js +128 -0
  246. package/lib/constants/plannerSyncEvents.spec.js +31 -0
  247. package/lib/constants/taskUrls.spec.js +9 -0
  248. package/lib/dev/DevMaiaPage.js +30 -0
  249. package/lib/dev/DevReasoningTimeline.js +68 -37
  250. package/lib/dev/Providers.js +5 -3
  251. package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
  252. package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
  253. package/lib/hooks/useAccessClient/useAccessClient.spec.js +149 -0
  254. package/lib/hooks/useAgentModel/useAgentModel.spec.js +83 -0
  255. package/lib/hooks/useAgentModel/useCreateAgent.helpers.spec.js +268 -0
  256. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +314 -0
  257. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +183 -0
  258. package/lib/hooks/useAgentModel/useUpdateAgent.js +7 -6
  259. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +374 -0
  260. package/lib/hooks/useAgentSuggestions.spec.js +89 -0
  261. package/lib/hooks/useCaretPosition.spec.js +58 -0
  262. package/lib/hooks/useChatManager/useChatManager.helpers.js +8 -5
  263. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +2027 -0
  264. package/lib/hooks/useChatManager/useChatManager.js +53 -35
  265. package/lib/hooks/useChatManager/useChatManager.spec.js +2467 -0
  266. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +491 -0
  267. package/lib/hooks/useChatMessages/useChatMessages.spec.js +729 -0
  268. package/lib/hooks/useChats/useChats.spec.js +208 -0
  269. package/lib/hooks/useClientSearch.helpers.spec.js +52 -0
  270. package/lib/hooks/useClientSearch.spec.js +86 -0
  271. package/lib/hooks/useContextMentions.helpers.spec.js +267 -0
  272. package/lib/hooks/useContextMentions.spec.js +338 -0
  273. package/lib/hooks/useContextPinPopover.helpers.spec.js +183 -0
  274. package/lib/hooks/useContextPinPopover.spec.js +159 -0
  275. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
  276. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
  277. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.spec.js +257 -0
  278. package/lib/hooks/useDebounce.spec.js +42 -0
  279. package/lib/hooks/useEntitySearch.helpers.spec.js +723 -0
  280. package/lib/hooks/useEntitySearch.js +3 -1
  281. package/lib/hooks/useEntitySearch.spec.js +718 -0
  282. package/lib/hooks/useEvent.js +3 -1
  283. package/lib/hooks/useEvent.spec.js +45 -0
  284. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +222 -0
  285. package/lib/hooks/useFrequentlyUsedActions.js +61 -22
  286. package/lib/hooks/useFrequentlyUsedActions.spec.js +293 -0
  287. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  288. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +122 -0
  289. package/lib/hooks/useKnowledge/downloadKnowledge.js +4 -4
  290. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +148 -0
  291. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +104 -0
  292. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +16 -15
  293. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +178 -0
  294. package/lib/hooks/useLatestRef.js +15 -0
  295. package/lib/hooks/useLatestRef.spec.js +50 -0
  296. package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
  297. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
  298. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  299. package/lib/hooks/useMentionPopover.helpers.spec.js +100 -0
  300. package/lib/hooks/useMentionPopover.spec.js +392 -0
  301. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +176 -0
  302. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +89 -0
  303. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
  304. package/lib/hooks/useModal/useModal.spec.js +73 -0
  305. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.js +4 -2
  306. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.spec.js +138 -0
  307. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  308. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +3 -3
  309. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +485 -0
  310. package/lib/hooks/useProjectSearch.helpers.spec.js +89 -0
  311. package/lib/hooks/useProjectSearch.spec.js +91 -0
  312. package/lib/hooks/useProjectSummary.spec.js +193 -0
  313. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +151 -0
  314. package/lib/hooks/useProjectSummaryConfig.js +10 -5
  315. package/lib/hooks/useProjectSummaryConfig.spec.js +133 -0
  316. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +112 -0
  317. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +33 -0
  318. package/lib/hooks/useRecentClientsSearch.spec.js +85 -0
  319. package/lib/hooks/useRecentContexts.spec.js +139 -0
  320. package/lib/hooks/useResize.spec.js +37 -0
  321. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  322. package/lib/hooks/useSlashCommands.spec.js +139 -0
  323. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +101 -0
  324. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  325. package/lib/hooks/useStreamResponse.spec.js +199 -0
  326. package/lib/hooks/useT.spec.js +20 -0
  327. package/lib/hooks/useToggle.spec.js +33 -0
  328. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +171 -0
  329. package/lib/index.js +5 -2
  330. package/lib/lang/br/index.js +32 -1
  331. package/lib/lang/en/index.js +32 -1
  332. package/lib/lang/es/index.js +32 -1
  333. package/lib/lang/fr/index.js +32 -1
  334. package/lib/services/appcues.spec.js +37 -0
  335. package/lib/services/maia/Access/updateAccess.spec.js +137 -0
  336. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  337. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +121 -0
  338. package/lib/services/maia/Actions/getSlashCommands.spec.js +91 -0
  339. package/lib/services/maia/Agents/connectors.js +3 -1
  340. package/lib/services/maia/Agents/connectors.spec.js +496 -0
  341. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  342. package/lib/services/maia/Agents/deleteAgent.spec.js +57 -0
  343. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  344. package/lib/services/maia/Agents/getAgentById.spec.js +190 -0
  345. package/lib/services/maia/Agents/getAgentModels.spec.js +190 -0
  346. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +89 -0
  347. package/lib/services/maia/Agents/getAgents.helpers.spec.js +325 -0
  348. package/lib/services/maia/Agents/getAgents.spec.js +1135 -0
  349. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  350. package/lib/services/maia/Agents/toggleFavorite.spec.js +59 -0
  351. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  352. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  353. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  354. package/lib/services/maia/Chats/getChatsByUserId.spec.js +181 -0
  355. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  356. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  357. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  358. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  359. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  360. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  361. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  362. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +11 -6
  363. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +261 -0
  364. package/lib/services/maia/Orchestrator/orchestrator.js +5 -4
  365. package/lib/services/maia/Orchestrator/orchestrator.spec.js +181 -0
  366. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  367. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +103 -0
  368. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  369. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  370. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  371. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  372. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  373. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  374. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  375. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  376. package/lib/services/maia/client.spec.js +56 -0
  377. package/lib/services/utils/fetchCOR.spec.js +211 -0
  378. package/lib/services/utils/getCookie.spec.js +20 -0
  379. package/lib/services/utils/mapChatMessages.helpers.js +6 -3
  380. package/lib/services/utils/mapChatMessages.helpers.spec.js +336 -0
  381. package/lib/services/utils/mapChatMessages.multipleChoice.spec.js +87 -0
  382. package/lib/services/utils/mapChatMessages.spec.js +254 -0
  383. package/lib/store/chatsSidebarOptimistic.spec.js +145 -0
  384. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  385. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  386. package/lib/store/sessions/sessionNotificationSound.spec.js +145 -0
  387. package/lib/store/sessions/sessionNotifications.helpers.spec.js +63 -0
  388. package/lib/store/sessions/sessionNotifications.spec.js +106 -0
  389. package/lib/store/sessions/sessionStreamManager.helpers.js +7 -1
  390. package/lib/store/sessions/sessionStreamManager.helpers.spec.js +177 -0
  391. package/lib/store/sessions/sessionStreamManager.js +51 -55
  392. package/lib/store/sessions/sessionStreamManager.spec.js +939 -0
  393. package/lib/store/sessions/sessions.types.js +1 -1
  394. package/lib/store/sessions/sessions.types.spec.js +16 -0
  395. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  396. package/lib/store/useChatsStore.js +4 -3
  397. package/lib/store/useChatsStore.spec.js +690 -0
  398. package/lib/store/useFaqsStore.spec.js +57 -0
  399. package/lib/store/useMultipleChoiceStore.js +47 -0
  400. package/lib/store/useMultipleChoiceStore.spec.js +44 -0
  401. package/lib/styles/cascade.js +29 -3
  402. package/lib/styles/transitions.js +3 -1
  403. package/lib/types/Chat.js +3 -1
  404. package/lib/types/global.d.js +1 -1
  405. package/lib/utils/actionCategoryMap.spec.js +18 -0
  406. package/lib/utils/agentDisplayName.spec.js +48 -0
  407. package/lib/utils/autoApproveStorage.spec.js +25 -0
  408. package/lib/utils/chatInputFiles.spec.js +39 -0
  409. package/lib/utils/contextMentionIcons.spec.js +41 -0
  410. package/lib/utils/contextMentionLabel.spec.js +13 -0
  411. package/lib/utils/contextMentionTriggers.spec.js +44 -0
  412. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  413. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  414. package/lib/utils/entityLinkRender.spec.js +72 -0
  415. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  416. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  417. package/lib/utils/formatUnreadCount.spec.js +12 -0
  418. package/lib/utils/getUnitFileSize.spec.js +18 -0
  419. package/lib/utils/hitlAnalytics.spec.js +136 -0
  420. package/lib/utils/hoursPlannerQuickActionType.js +116 -1
  421. package/lib/utils/hoursPlannerQuickActionType.spec.js +124 -0
  422. package/lib/utils/imagePreprocessor.helpers.spec.js +28 -0
  423. package/lib/utils/imagePreprocessor.js +14 -3
  424. package/lib/utils/imagePreprocessor.spec.js +112 -0
  425. package/lib/utils/maiaPageRoute.spec.js +23 -0
  426. package/lib/utils/mapBackendLang.spec.js +19 -0
  427. package/lib/utils/navigateContextEntity.js +2 -2
  428. package/lib/utils/navigateContextEntity.spec.js +50 -0
  429. package/lib/utils/normalizeAgentConnectors.spec.js +98 -0
  430. package/lib/utils/openTaskInCorPanel.js +2 -2
  431. package/lib/utils/openTaskInCorPanel.spec.js +43 -0
  432. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  433. package/lib/utils/reasoningMappers.spec.js +103 -0
  434. package/lib/utils/recentContextsHomeLimit.spec.js +32 -0
  435. package/lib/utils/renderContextMentions.helpers.spec.js +87 -0
  436. package/lib/utils/renderContextMentions.spec.js +268 -0
  437. package/lib/utils/retryCompletion.spec.js +181 -0
  438. package/lib/utils/skillContentSize.spec.js +13 -0
  439. package/lib/utils/slashCommandMarker.spec.js +43 -0
  440. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  441. package/lib/utils/sseStreamContent.spec.js +31 -0
  442. package/lib/utils/streamActivityMessages.helpers.js +5 -4
  443. package/lib/utils/streamActivityMessages.helpers.spec.js +84 -0
  444. package/lib/utils/streamActivityMessages.js +32 -20
  445. package/lib/utils/streamActivityMessages.spec.js +336 -0
  446. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  447. package/package.json +1 -1
  448. package/README.md +0 -2
@@ -0,0 +1,54 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
5
+ import { EVENTS } from '../../../hooks/useEvent';
6
+ import { ListMenuOption } from './ListMenuOption';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ var trackEvent = jest.fn();
9
+ jest.mock('../../../hooks/useEvent', function () {
10
+ return _objectSpread(_objectSpread({}, jest.requireActual('../../../hooks/useEvent')), {}, {
11
+ useEvent: function useEvent() {
12
+ return trackEvent;
13
+ }
14
+ });
15
+ });
16
+ var MockIcon = function MockIcon(_ref) {
17
+ var height = _ref.height,
18
+ width = _ref.width,
19
+ color = _ref.color;
20
+ return /*#__PURE__*/_jsx("svg", {
21
+ "aria-label": "menu-icon",
22
+ width: width,
23
+ height: height,
24
+ "data-color": color
25
+ });
26
+ };
27
+ describe('ListMenuOption', function () {
28
+ it('fires analytics and onClick when selected', function () {
29
+ var onClick = jest.fn();
30
+ renderWithProviders(/*#__PURE__*/_jsx(ListMenuOption, {
31
+ title: "Historial",
32
+ description: "Ver chats",
33
+ onClick: onClick,
34
+ Icon: MockIcon,
35
+ eventKey: EVENTS.pmAiOpenMenu
36
+ }));
37
+ fireEvent.click(screen.getByText('Historial'));
38
+ expect(trackEvent).toHaveBeenCalledWith(EVENTS.pmAiOpenMenu);
39
+ expect(onClick).toHaveBeenCalledTimes(1);
40
+ });
41
+ it('skips analytics when eventKey is omitted', function () {
42
+ var onClick = jest.fn();
43
+ renderWithProviders(/*#__PURE__*/_jsx(ListMenuOption, {
44
+ title: "Opci\xF3n",
45
+ description: "Detalle",
46
+ onClick: onClick,
47
+ Icon: MockIcon
48
+ }));
49
+ fireEvent.click(screen.getByText('Opción'));
50
+ expect(trackEvent).not.toHaveBeenCalled();
51
+ expect(onClick).toHaveBeenCalledTimes(1);
52
+ });
53
+ });
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiRVZFTlRTIiwiTGlzdE1lbnVPcHRpb24iLCJqc3giLCJfanN4IiwidHJhY2tFdmVudCIsImplc3QiLCJmbiIsIm1vY2siLCJfb2JqZWN0U3ByZWFkIiwicmVxdWlyZUFjdHVhbCIsInVzZUV2ZW50IiwiTW9ja0ljb24iLCJfcmVmIiwiaGVpZ2h0Iiwid2lkdGgiLCJjb2xvciIsImRlc2NyaWJlIiwiaXQiLCJvbkNsaWNrIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIkljb24iLCJldmVudEtleSIsInBtQWlPcGVuTWVudSIsImNsaWNrIiwiZ2V0QnlUZXh0IiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJub3QiLCJ0b0hhdmVCZWVuQ2FsbGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTGlzdE1lbnVPcHRpb24vTGlzdE1lbnVPcHRpb24uc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXJXaXRoUHJvdmlkZXJzLCBzY3JlZW4gfSBmcm9tICcuLi8uLi8uLi90ZXN0L3Rlc3QtdXRpbHMnXG5pbXBvcnQgeyBFVkVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IExpc3RNZW51T3B0aW9uIH0gZnJvbSAnLi9MaXN0TWVudU9wdGlvbidcblxuY29uc3QgdHJhY2tFdmVudCA9IGplc3QuZm4oKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50JywgKCkgPT4gKHtcbiAgLi4uamVzdC5yZXF1aXJlQWN0dWFsKCcuLi8uLi8uLi9ob29rcy91c2VFdmVudCcpLFxuICB1c2VFdmVudDogKCkgPT4gdHJhY2tFdmVudCxcbn0pKVxuXG5jb25zdCBNb2NrSWNvbiA9ICh7IGhlaWdodCwgd2lkdGgsIGNvbG9yIH06IHsgaGVpZ2h0OiBudW1iZXI7IHdpZHRoOiBudW1iZXI7IGNvbG9yOiBzdHJpbmcgfSkgPT4gKFxuICA8c3ZnIGFyaWEtbGFiZWw9XCJtZW51LWljb25cIiB3aWR0aD17d2lkdGh9IGhlaWdodD17aGVpZ2h0fSBkYXRhLWNvbG9yPXtjb2xvcn0gLz5cbilcblxuZGVzY3JpYmUoJ0xpc3RNZW51T3B0aW9uJywgKCkgPT4ge1xuICBpdCgnZmlyZXMgYW5hbHl0aWNzIGFuZCBvbkNsaWNrIHdoZW4gc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8TGlzdE1lbnVPcHRpb25cbiAgICAgICAgdGl0bGU9XCJIaXN0b3JpYWxcIlxuICAgICAgICBkZXNjcmlwdGlvbj1cIlZlciBjaGF0c1wiXG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgIEljb249e01vY2tJY29ufVxuICAgICAgICBldmVudEtleT17RVZFTlRTLnBtQWlPcGVuTWVudX1cbiAgICAgIC8+XG4gICAgKVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVRleHQoJ0hpc3RvcmlhbCcpKVxuXG4gICAgZXhwZWN0KHRyYWNrRXZlbnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKEVWRU5UUy5wbUFpT3Blbk1lbnUpXG4gICAgZXhwZWN0KG9uQ2xpY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKVxuICB9KVxuXG4gIGl0KCdza2lwcyBhbmFseXRpY3Mgd2hlbiBldmVudEtleSBpcyBvbWl0dGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxMaXN0TWVudU9wdGlvbiB0aXRsZT1cIk9wY2nDs25cIiBkZXNjcmlwdGlvbj1cIkRldGFsbGVcIiBvbkNsaWNrPXtvbkNsaWNrfSBJY29uPXtNb2NrSWNvbn0gLz4pXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5VGV4dCgnT3BjacOzbicpKVxuXG4gICAgZXhwZWN0KHRyYWNrRXZlbnQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKClcbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxTQUFTLEVBQUVDLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pGLFNBQVNDLE1BQU0sUUFBUSx5QkFBeUI7QUFDaEQsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUVqRCxJQUFNQyxVQUFVLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7QUFFNUJELElBQUksQ0FBQ0UsSUFBSSxDQUFDLHlCQUF5QixFQUFFO0VBQUEsT0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ2hDSCxJQUFJLENBQUNJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztJQUNoREMsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7TUFBQSxPQUFRTixVQUFVO0lBQUE7RUFBQTtBQUFBLENBQzFCLENBQUM7QUFFSCxJQUFNTyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsSUFBQTtFQUFBLElBQU1DLE1BQU0sR0FBQUQsSUFBQSxDQUFOQyxNQUFNO0lBQUVDLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0lBQUVDLEtBQUssR0FBQUgsSUFBQSxDQUFMRyxLQUFLO0VBQUEsb0JBQ3RDWixJQUFBO0lBQUssY0FBVyxXQUFXO0lBQUNXLEtBQUssRUFBRUEsS0FBTTtJQUFDRCxNQUFNLEVBQUVBLE1BQU87SUFBQyxjQUFZRTtFQUFNLENBQUUsQ0FBQztBQUFBLENBQ2hGO0FBRURDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFNO0VBQy9CQyxFQUFFLENBQUMsMkNBQTJDLEVBQUUsWUFBTTtJQUNwRCxJQUFNQyxPQUFPLEdBQUdiLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekJSLG1CQUFtQixjQUNqQkssSUFBQSxDQUFDRixjQUFjO01BQ2JrQixLQUFLLEVBQUMsV0FBVztNQUNqQkMsV0FBVyxFQUFDLFdBQVc7TUFDdkJGLE9BQU8sRUFBRUEsT0FBUTtNQUNqQkcsSUFBSSxFQUFFVixRQUFTO01BQ2ZXLFFBQVEsRUFBRXRCLE1BQU0sQ0FBQ3VCO0lBQWEsQ0FDL0IsQ0FDSCxDQUFDO0lBRUQxQixTQUFTLENBQUMyQixLQUFLLENBQUN6QixNQUFNLENBQUMwQixTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFOUNDLE1BQU0sQ0FBQ3RCLFVBQVUsQ0FBQyxDQUFDdUIsb0JBQW9CLENBQUMzQixNQUFNLENBQUN1QixZQUFZLENBQUM7SUFDNURHLE1BQU0sQ0FBQ1IsT0FBTyxDQUFDLENBQUNVLHFCQUFxQixDQUFDLENBQUMsQ0FBQztFQUMxQyxDQUFDLENBQUM7RUFFRlgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLFlBQU07SUFDbkQsSUFBTUMsT0FBTyxHQUFHYixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCUixtQkFBbUIsY0FBQ0ssSUFBQSxDQUFDRixjQUFjO01BQUNrQixLQUFLLEVBQUMsV0FBUTtNQUFDQyxXQUFXLEVBQUMsU0FBUztNQUFDRixPQUFPLEVBQUVBLE9BQVE7TUFBQ0csSUFBSSxFQUFFVjtJQUFTLENBQUUsQ0FBQyxDQUFDO0lBRTlHZCxTQUFTLENBQUMyQixLQUFLLENBQUN6QixNQUFNLENBQUMwQixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0NDLE1BQU0sQ0FBQ3RCLFVBQVUsQ0FBQyxDQUFDeUIsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDSixNQUFNLENBQUNSLE9BQU8sQ0FBQyxDQUFDVSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7RUFDMUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,21 @@
1
+ import { renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { LoaderFaqs } from './LoadingFaqs';
3
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
4
+ jest.mock('@projectcor/cor-commons/lib/components/spinner-lottie/SpinnerLottie', function () {
5
+ return {
6
+ SpinnerLottie: function SpinnerLottie(_ref) {
7
+ var size = _ref.size;
8
+ return /*#__PURE__*/_jsxs("div", {
9
+ role: "status",
10
+ children: ["spinner-", size]
11
+ });
12
+ }
13
+ };
14
+ });
15
+ describe('LoaderFaqs', function () {
16
+ it('renders the FAQ loading spinner', function () {
17
+ renderWithProviders(/*#__PURE__*/_jsx(LoaderFaqs, {}));
18
+ expect(screen.getByText('spinner-48')).toBeInTheDocument();
19
+ });
20
+ });
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTG9hZGVyRmFxcyIsImpzeHMiLCJfanN4cyIsImpzeCIsIl9qc3giLCJqZXN0IiwibW9jayIsIlNwaW5uZXJMb3R0aWUiLCJfcmVmIiwic2l6ZSIsInJvbGUiLCJjaGlsZHJlbiIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0xvYWRpbmdGYXFzL0xvYWRpbmdGYXFzLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB7IExvYWRlckZhcXMgfSBmcm9tICcuL0xvYWRpbmdGYXFzJ1xuXG5qZXN0Lm1vY2soJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi9jb21wb25lbnRzL3NwaW5uZXItbG90dGllL1NwaW5uZXJMb3R0aWUnLCAoKSA9PiAoe1xuICBTcGlubmVyTG90dGllOiAoeyBzaXplIH06IHsgc2l6ZTogbnVtYmVyIH0pID0+IDxkaXYgcm9sZT1cInN0YXR1c1wiPnNwaW5uZXIte3NpemV9PC9kaXY+LFxufSkpXG5cbmRlc2NyaWJlKCdMb2FkZXJGYXFzJywgKCkgPT4ge1xuICBpdCgncmVuZGVycyB0aGUgRkFRIGxvYWRpbmcgc3Bpbm5lcicsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxMb2FkZXJGYXFzIC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ3NwaW5uZXItNDgnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDdEUsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFBQSxTQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRTFDQyxJQUFJLENBQUNDLElBQUksQ0FBQyxxRUFBcUUsRUFBRTtFQUFBLE9BQU87SUFDdEZDLGFBQWEsRUFBRSxTQUFmQSxhQUFhQSxDQUFBQyxJQUFBO01BQUEsSUFBS0MsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7TUFBQSxvQkFBeUJQLEtBQUE7UUFBS1EsSUFBSSxFQUFDLFFBQVE7UUFBQUMsUUFBQSxHQUFDLFVBQVEsRUFBQ0YsSUFBSTtNQUFBLENBQU0sQ0FBQztJQUFBO0VBQ3hGLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSEcsUUFBUSxDQUFDLFlBQVksRUFBRSxZQUFNO0VBQzNCQyxFQUFFLENBQUMsaUNBQWlDLEVBQUUsWUFBTTtJQUMxQ2YsbUJBQW1CLGNBQUNNLElBQUEsQ0FBQ0osVUFBVSxJQUFFLENBQUMsQ0FBQztJQUVuQ2MsTUFBTSxDQUFDZixNQUFNLENBQUNnQixTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztFQUM1RCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,20 @@
1
+ import { renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { LoaderSearchClients } from './LoadingSearchClients';
3
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
4
+ jest.mock('@projectcor/cor-commons/lib/components/spinner-lottie/SpinnerLottie', function () {
5
+ return {
6
+ SpinnerLottie: function SpinnerLottie(_ref) {
7
+ var size = _ref.size;
8
+ return /*#__PURE__*/_jsxs("div", {
9
+ children: ["spinner-clients-", size]
10
+ });
11
+ }
12
+ };
13
+ });
14
+ describe('LoaderSearchClients', function () {
15
+ it('renders the client search spinner', function () {
16
+ renderWithProviders(/*#__PURE__*/_jsx(LoaderSearchClients, {}));
17
+ expect(screen.getByText('spinner-clients-48')).toBeInTheDocument();
18
+ });
19
+ });
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTG9hZGVyU2VhcmNoQ2xpZW50cyIsImpzeHMiLCJfanN4cyIsImpzeCIsIl9qc3giLCJqZXN0IiwibW9jayIsIlNwaW5uZXJMb3R0aWUiLCJfcmVmIiwic2l6ZSIsImNoaWxkcmVuIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsImdldEJ5VGV4dCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTG9hZGluZ1NlYXJjaENsaWVudHMvTG9hZGluZ1NlYXJjaENsaWVudHMuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgTG9hZGVyU2VhcmNoQ2xpZW50cyB9IGZyb20gJy4vTG9hZGluZ1NlYXJjaENsaWVudHMnXG5cbmplc3QubW9jaygnQHByb2plY3Rjb3IvY29yLWNvbW1vbnMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci1sb3R0aWUvU3Bpbm5lckxvdHRpZScsICgpID0+ICh7XG4gIFNwaW5uZXJMb3R0aWU6ICh7IHNpemUgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gPGRpdj5zcGlubmVyLWNsaWVudHMte3NpemV9PC9kaXY+LFxufSkpXG5cbmRlc2NyaWJlKCdMb2FkZXJTZWFyY2hDbGllbnRzJywgKCkgPT4ge1xuICBpdCgncmVuZGVycyB0aGUgY2xpZW50IHNlYXJjaCBzcGlubmVyJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPExvYWRlclNlYXJjaENsaWVudHMgLz4pXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnc3Bpbm5lci1jbGllbnRzLTQ4JykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLG1CQUFtQixRQUFRLHdCQUF3QjtBQUFBLFNBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFNURDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHFFQUFxRSxFQUFFO0VBQUEsT0FBTztJQUN0RkMsYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUFDLElBQUE7TUFBQSxJQUFLQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtNQUFBLG9CQUF5QlAsS0FBQTtRQUFBUSxRQUFBLEdBQUssa0JBQWdCLEVBQUNELElBQUk7TUFBQSxDQUFNLENBQUM7SUFBQTtFQUNsRixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhFLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxZQUFNO0VBQ3BDQyxFQUFFLENBQUMsbUNBQW1DLEVBQUUsWUFBTTtJQUM1Q2QsbUJBQW1CLGNBQUNNLElBQUEsQ0FBQ0osbUJBQW1CLElBQUUsQ0FBQyxDQUFDO0lBRTVDYSxNQUFNLENBQUNkLE1BQU0sQ0FBQ2UsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztFQUNwRSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,26 @@
1
+ import { renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { LoaderSearchProjects } from './LoadingSearchProjects';
3
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
4
+ jest.mock('@projectcor/cor-commons/lib/components/spinner-lottie/SpinnerLottie', function () {
5
+ return {
6
+ SpinnerLottie: function SpinnerLottie(_ref) {
7
+ var size = _ref.size;
8
+ return /*#__PURE__*/_jsxs("div", {
9
+ children: ["spinner-projects-", size]
10
+ });
11
+ }
12
+ };
13
+ });
14
+ describe('LoaderSearchProjects', function () {
15
+ it('renders the project search spinner', function () {
16
+ renderWithProviders(/*#__PURE__*/_jsx(LoaderSearchProjects, {}));
17
+ expect(screen.getByText('spinner-projects-48')).toBeInTheDocument();
18
+ });
19
+ it('shows optional helper text', function () {
20
+ renderWithProviders(/*#__PURE__*/_jsx(LoaderSearchProjects, {
21
+ text: "Buscando proyectos"
22
+ }));
23
+ expect(screen.getByText('Buscando proyectos')).toBeInTheDocument();
24
+ });
25
+ });
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTG9hZGVyU2VhcmNoUHJvamVjdHMiLCJqc3hzIiwiX2pzeHMiLCJqc3giLCJfanN4IiwiamVzdCIsIm1vY2siLCJTcGlubmVyTG90dGllIiwiX3JlZiIsInNpemUiLCJjaGlsZHJlbiIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInRleHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Mb2FkaW5nU2VhcmNoUHJvamVjdHMvTG9hZGluZ1NlYXJjaFByb2plY3RzLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB7IExvYWRlclNlYXJjaFByb2plY3RzIH0gZnJvbSAnLi9Mb2FkaW5nU2VhcmNoUHJvamVjdHMnXG5cbmplc3QubW9jaygnQHByb2plY3Rjb3IvY29yLWNvbW1vbnMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci1sb3R0aWUvU3Bpbm5lckxvdHRpZScsICgpID0+ICh7XG4gIFNwaW5uZXJMb3R0aWU6ICh7IHNpemUgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gPGRpdj5zcGlubmVyLXByb2plY3RzLXtzaXplfTwvZGl2Pixcbn0pKVxuXG5kZXNjcmliZSgnTG9hZGVyU2VhcmNoUHJvamVjdHMnLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHRoZSBwcm9qZWN0IHNlYXJjaCBzcGlubmVyJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPExvYWRlclNlYXJjaFByb2plY3RzIC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ3NwaW5uZXItcHJvamVjdHMtNDgnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxuXG4gIGl0KCdzaG93cyBvcHRpb25hbCBoZWxwZXIgdGV4dCcsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxMb2FkZXJTZWFyY2hQcm9qZWN0cyB0ZXh0PVwiQnVzY2FuZG8gcHJveWVjdG9zXCIgLz4pXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQnVzY2FuZG8gcHJveWVjdG9zJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUFBLFNBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFOURDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHFFQUFxRSxFQUFFO0VBQUEsT0FBTztJQUN0RkMsYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUFDLElBQUE7TUFBQSxJQUFLQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtNQUFBLG9CQUF5QlAsS0FBQTtRQUFBUSxRQUFBLEdBQUssbUJBQWlCLEVBQUNELElBQUk7TUFBQSxDQUFNLENBQUM7SUFBQTtFQUNuRixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhFLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxZQUFNO0VBQ3JDQyxFQUFFLENBQUMsb0NBQW9DLEVBQUUsWUFBTTtJQUM3Q2QsbUJBQW1CLGNBQUNNLElBQUEsQ0FBQ0osb0JBQW9CLElBQUUsQ0FBQyxDQUFDO0lBRTdDYSxNQUFNLENBQUNkLE1BQU0sQ0FBQ2UsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztFQUNyRSxDQUFDLENBQUM7RUFFRkgsRUFBRSxDQUFDLDRCQUE0QixFQUFFLFlBQU07SUFDckNkLG1CQUFtQixjQUFDTSxJQUFBLENBQUNKLG9CQUFvQjtNQUFDZ0IsSUFBSSxFQUFDO0lBQW9CLENBQUUsQ0FBQyxDQUFDO0lBRXZFSCxNQUFNLENBQUNkLE1BQU0sQ0FBQ2UsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztFQUNwRSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,25 @@
1
+ import { renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { LoadingText } from './LoadingText';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ jest.mock('../Loader', function () {
5
+ return {
6
+ Loader: function Loader(_ref) {
7
+ var className = _ref.className;
8
+ return /*#__PURE__*/_jsx("span", {
9
+ className: className,
10
+ children: "loader"
11
+ });
12
+ }
13
+ };
14
+ });
15
+ describe('LoadingText', function () {
16
+ it('renders helper text with the small loader', function () {
17
+ renderWithProviders(/*#__PURE__*/_jsx(LoadingText, {
18
+ text: "Cargando datos",
19
+ className: "loading-block"
20
+ }));
21
+ expect(screen.getByText('Cargando datos')).toBeInTheDocument();
22
+ expect(document.querySelector('.LoadingText-loader')).toBeInTheDocument();
23
+ });
24
+ });
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTG9hZGluZ1RleHQiLCJqc3giLCJfanN4IiwiamVzdCIsIm1vY2siLCJMb2FkZXIiLCJfcmVmIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJkZXNjcmliZSIsIml0IiwidGV4dCIsImV4cGVjdCIsImdldEJ5VGV4dCIsInRvQmVJblRoZURvY3VtZW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTG9hZGluZ1RleHQvTG9hZGluZ1RleHQuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgTG9hZGluZ1RleHQgfSBmcm9tICcuL0xvYWRpbmdUZXh0J1xuXG5qZXN0Lm1vY2soJy4uL0xvYWRlcicsICgpID0+ICh7XG4gIExvYWRlcjogKHsgY2xhc3NOYW1lIH06IHsgY2xhc3NOYW1lPzogc3RyaW5nIH0pID0+IDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5sb2FkZXI8L3NwYW4+LFxufSkpXG5cbmRlc2NyaWJlKCdMb2FkaW5nVGV4dCcsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgaGVscGVyIHRleHQgd2l0aCB0aGUgc21hbGwgbG9hZGVyJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPExvYWRpbmdUZXh0IHRleHQ9XCJDYXJnYW5kbyBkYXRvc1wiIGNsYXNzTmFtZT1cImxvYWRpbmctYmxvY2tcIiAvPilcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDYXJnYW5kbyBkYXRvcycpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5Mb2FkaW5nVGV4dC1sb2FkZXInKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDdEUsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFM0NDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtFQUFBLE9BQU87SUFDNUJDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFBQyxJQUFBO01BQUEsSUFBS0MsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7TUFBQSxvQkFBK0JMLElBQUE7UUFBTUssU0FBUyxFQUFFQSxTQUFVO1FBQUFDLFFBQUEsRUFBQztNQUFNLENBQU0sQ0FBQztJQUFBO0VBQzlGLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSEMsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFNO0VBQzVCQyxFQUFFLENBQUMsMkNBQTJDLEVBQUUsWUFBTTtJQUNwRFosbUJBQW1CLGNBQUNJLElBQUEsQ0FBQ0YsV0FBVztNQUFDVyxJQUFJLEVBQUMsZ0JBQWdCO01BQUNKLFNBQVMsRUFBQztJQUFlLENBQUUsQ0FBQyxDQUFDO0lBRXBGSyxNQUFNLENBQUNiLE1BQU0sQ0FBQ2MsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUM5REYsTUFBTSxDQUFDRyxRQUFRLENBQUNDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7RUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -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
@@ -0,0 +1,27 @@
1
+ import { renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { MAIAError } from './MAIAError';
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ jest.mock('../ModalInfo', function () {
5
+ return {
6
+ ModalInfo: function ModalInfo(_ref) {
7
+ var title = _ref.title,
8
+ description = _ref.description,
9
+ children = _ref.children;
10
+ return /*#__PURE__*/_jsxs("div", {
11
+ children: [/*#__PURE__*/_jsx("h2", {
12
+ children: title
13
+ }), /*#__PURE__*/_jsx("p", {
14
+ children: description
15
+ }), children]
16
+ });
17
+ }
18
+ };
19
+ });
20
+ describe('MAIAError', function () {
21
+ it('shows translated error copy', function () {
22
+ renderWithProviders(/*#__PURE__*/_jsx(MAIAError, {}));
23
+ expect(screen.getByText('error.title')).toBeInTheDocument();
24
+ expect(screen.getByText('error.description')).toBeInTheDocument();
25
+ });
26
+ });
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTUFJQUVycm9yIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsImplc3QiLCJtb2NrIiwiTW9kYWxJbmZvIiwiX3JlZiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjaGlsZHJlbiIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFFcnJvci9NQUlBRXJyb3Iuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4vTUFJQUVycm9yJ1xuXG5qZXN0Lm1vY2soJy4uL01vZGFsSW5mbycsICgpID0+ICh7XG4gIE1vZGFsSW5mbzogKHsgdGl0bGUsIGRlc2NyaXB0aW9uLCBjaGlsZHJlbiB9OiB7IHRpdGxlOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmc7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkgPT4gKFxuICAgIDxkaXY+XG4gICAgICA8aDI+e3RpdGxlfTwvaDI+XG4gICAgICA8cD57ZGVzY3JpcHRpb259PC9wPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApLFxufSkpXG5cbmRlc2NyaWJlKCdNQUlBRXJyb3InLCAoKSA9PiB7XG4gIGl0KCdzaG93cyB0cmFuc2xhdGVkIGVycm9yIGNvcHknLCAoKSA9PiB7XG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8TUFJQUVycm9yIC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ2Vycm9yLnRpdGxlJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnZXJyb3IuZGVzY3JpcHRpb24nKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDdEUsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRXZDQyxJQUFJLENBQUNDLElBQUksQ0FBQyxjQUFjLEVBQUU7RUFBQSxPQUFPO0lBQy9CQyxTQUFTLEVBQUUsU0FBWEEsU0FBU0EsQ0FBQUMsSUFBQTtNQUFBLElBQUtDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO1FBQUVDLFdBQVcsR0FBQUYsSUFBQSxDQUFYRSxXQUFXO1FBQUVDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO01BQUEsb0JBQ3hDUCxLQUFBO1FBQUFPLFFBQUEsZ0JBQ0VULElBQUE7VUFBQVMsUUFBQSxFQUFLRjtRQUFLLENBQUssQ0FBQyxlQUNoQlAsSUFBQTtVQUFBUyxRQUFBLEVBQUlEO1FBQVcsQ0FBSSxDQUFDLEVBQ25CQyxRQUFRO01BQUEsQ0FDTixDQUFDO0lBQUE7RUFFVixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtFQUMxQkMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLFlBQU07SUFDdENmLG1CQUFtQixjQUFDSSxJQUFBLENBQUNGLFNBQVMsSUFBRSxDQUFDLENBQUM7SUFFbENjLE1BQU0sQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDM0RGLE1BQU0sQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztFQUNuRSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -20,10 +20,11 @@ export var processIncomingChatInputFiles = function processIncomingChatInputFile
20
20
  var exceedsMaxSize = function exceedsMaxSize(extension, size) {
21
21
  return size > options.getMaxSizeMb(extension) * 1024 * 1024;
22
22
  };
23
+ var allowedExtensionSet = new Set(options.allowedExtensions);
23
24
  incoming.forEach(function (file) {
24
25
  var excludedFile = false;
25
26
  var fileExtension = parseChatInputFileExtension(file.name);
26
- if (!options.allowedExtensions.includes(fileExtension)) {
27
+ if (!allowedExtensionSet.has(fileExtension)) {
27
28
  return;
28
29
  }
29
30
  fileSizes[file.name] = file.size;
@@ -71,4 +72,4 @@ export var shouldClearFileDragOverlay = function shouldClearFileDragOverlay(coun
71
72
  export var shouldInterceptWrapperPaste = function shouldInterceptWrapperPaste(isTargetInsideContentEditable, pastedFilesCount) {
72
73
  return !isTargetInsideContentEditable && pastedFilesCount > 0;
73
74
  };
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJORVdfRk9STUFUX0VYVEVOU0lPTlMiLCJPTERfRk9STUFUX0VYVEVOU0lPTlMiLCJBVURJT19GT1JNQVRfRVhURU5TSU9OUyIsInBhcnNlQ2hhdElucHV0RmlsZUV4dGVuc2lvbiIsImZpbGVOYW1lIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpc0tub3duQXR0YWNobWVudEZvcm1hdCIsImV4dGVuc2lvbiIsImluY2x1ZGVzIiwicHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMiLCJpbmNvbWluZyIsIm9wdGlvbnMiLCJleGNlZWRlZEZpbGVzIiwiZXhjbHVkZWRGaWxlcyIsImZpbGVTaXplcyIsImZpbGVzVG9BdHRhY2giLCJmaWxlc0luc2VydGVkIiwiY3VycmVudEF0dGFjaG1lbnRDb3VudCIsImV4Y2VlZHNNYXhTaXplIiwic2l6ZSIsImdldE1heFNpemVNYiIsImZvckVhY2giLCJmaWxlIiwiZXhjbHVkZWRGaWxlIiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJhbGxvd2VkRXh0ZW5zaW9ucyIsInB1c2giLCJtYXhBdHRhY2htZW50cyIsInR5cGVGaWxlIiwidHlwZSIsImZpbGVUeXBlcyIsIkZpbGUiLCJzaG91bGRPcGVuQXR0YWNobWVudFZhbGlkYXRpb25Nb2RhbCIsImlzSW1hZ2VBdHRhY2htZW50RmlsZSIsIm1pbWVUeXBlIiwiQm9vbGVhbiIsInN0YXJ0c1dpdGgiLCJ0ZXN0Iiwic2hvdWxkSGFuZGxlRHJhZ0xlYXZlRXZlbnQiLCJpc0ZpbGVEcmFnQWN0aXZlIiwiaGFzRmlsZXNJblRyYW5zZmVyIiwiZGVjcmVtZW50RmlsZURyYWdDb3VudGVyIiwiY291bnRlciIsIk1hdGgiLCJtYXgiLCJzaG91bGRDbGVhckZpbGVEcmFnT3ZlcmxheSIsImNvdW50ZXJBZnRlckxlYXZlIiwic2hvdWxkSW50ZXJjZXB0V3JhcHBlclBhc3RlIiwiaXNUYXJnZXRJbnNpZGVDb250ZW50RWRpdGFibGUiLCJwYXN0ZWRGaWxlc0NvdW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L01BSUFJbnB1dC5hdHRhY2htZW50cy5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzUmVzdWx0ID0ge1xuICBmaWxlc1RvQXR0YWNoOiBGaWxlW11cbiAgZXhjZWVkZWRGaWxlczogc3RyaW5nW11cbiAgZXhjbHVkZWRGaWxlczogc3RyaW5nW11cbiAgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG59XG5cbmV4cG9ydCB0eXBlIFByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzT3B0aW9ucyA9IHtcbiAgYWxsb3dlZEV4dGVuc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGZpbGVUeXBlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBjdXJyZW50QXR0YWNobWVudENvdW50OiBudW1iZXJcbiAgbWF4QXR0YWNobWVudHM6IG51bWJlclxuICBnZXRNYXhTaXplTWI6IChleHRlbnNpb246IHN0cmluZykgPT4gbnVtYmVyXG59XG5cbmNvbnN0IE5FV19GT1JNQVRfRVhURU5TSU9OUyA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXSBhcyBjb25zdFxuY29uc3QgT0xEX0ZPUk1BVF9FWFRFTlNJT05TID0gWycudHh0JywgJy5tZCcsICcuY3N2JywgJy5kb2MnLCAnLmRvY3gnLCAnLnhsc3gnLCAnLnhscycsICcucHB0JywgJy5wcHR4J10gYXMgY29uc3RcbmNvbnN0IEFVRElPX0ZPUk1BVF9FWFRFTlNJT05TID0gWycuZmxhYycsICcubTRhJywgJy5tcDMnLCAnLm1wNCcsICcub2dhJywgJy5vZ2cnLCAnLndhdicsICcud2VibSddIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24gPSAoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlTmFtZS5zcGxpdCgnLicpXG4gIHJldHVybiBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbn1cblxuY29uc3QgaXNLbm93bkF0dGFjaG1lbnRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpOiBib29sZWFuID0+XG4gIChORVdfRk9STUFUX0VYVEVOU0lPTlMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGV4dGVuc2lvbikgfHxcbiAgKE9MRF9GT1JNQVRfRVhURU5TSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMoZXh0ZW5zaW9uKSB8fFxuICAoQVVESU9fRk9STUFUX0VYVEVOU0lPTlMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGV4dGVuc2lvbilcblxuLyoqIENsYXNpZmljYSBhcmNoaXZvcyBkZWwgaW5wdXQgZGVsIGNoYXQgKHRhbWHDsW8sIGNhbnRpZGFkLCB0aXBvIHBlcm1pdGlkbykuICovXG5leHBvcnQgY29uc3QgcHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMgPSAoXG4gIGluY29taW5nOiBGaWxlW10sXG4gIG9wdGlvbnM6IFByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzT3B0aW9uc1xuKTogUHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXNSZXN1bHQgPT4ge1xuICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gIGNvbnN0IGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgY29uc3QgZmlsZXNUb0F0dGFjaDogRmlsZVtdID0gW11cbiAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBvcHRpb25zLmN1cnJlbnRBdHRhY2htZW50Q291bnRcblxuICBjb25zdCBleGNlZWRzTWF4U2l6ZSA9IChleHRlbnNpb246IHN0cmluZywgc2l6ZTogbnVtYmVyKSA9PiBzaXplID4gb3B0aW9ucy5nZXRNYXhTaXplTWIoZXh0ZW5zaW9uKSAqIDEwMjQgKiAxMDI0XG5cbiAgaW5jb21pbmcuZm9yRWFjaChmaWxlID0+IHtcbiAgICBsZXQgZXhjbHVkZWRGaWxlID0gZmFsc2VcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gcGFyc2VDaGF0SW5wdXRGaWxlRXh0ZW5zaW9uKGZpbGUubmFtZSlcblxuICAgIGlmICghb3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZmlsZVNpemVzW2ZpbGUubmFtZV0gPSBmaWxlLnNpemVcblxuICAgIGlmICghaXNLbm93bkF0dGFjaG1lbnRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChleGNlZWRzTWF4U2l6ZShmaWxlRXh0ZW5zaW9uLCBmaWxlLnNpemUpKSB7XG4gICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IG9wdGlvbnMubWF4QXR0YWNobWVudHMpIHtcbiAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgfVxuXG4gICAgaWYgKCFleGNsdWRlZEZpbGUpIHtcbiAgICAgIGZpbGVzSW5zZXJ0ZWQgKz0gMVxuICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgb3B0aW9ucy5maWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGZpbGVzVG9BdHRhY2gucHVzaChuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KSlcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHsgZmlsZXNUb0F0dGFjaCwgZXhjZWVkZWRGaWxlcywgZXhjbHVkZWRGaWxlcywgZmlsZVNpemVzIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNob3VsZE9wZW5BdHRhY2htZW50VmFsaWRhdGlvbk1vZGFsID0gKGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdLCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4gPT5cbiAgZXhjbHVkZWRGaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMFxuXG5leHBvcnQgY29uc3QgaXNJbWFnZUF0dGFjaG1lbnRGaWxlID0gKG1pbWVUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuID0+XG4gIEJvb2xlYW4obWltZVR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB8fCAvXFwuKHBuZ3xqcGU/Z3xnaWZ8d2VicHxibXB8c3ZnKSQvaS50ZXN0KGZpbGVOYW1lIHx8ICcnKVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkSGFuZGxlRHJhZ0xlYXZlRXZlbnQgPSAoaXNGaWxlRHJhZ0FjdGl2ZTogYm9vbGVhbiwgaGFzRmlsZXNJblRyYW5zZmVyOiBib29sZWFuKTogYm9vbGVhbiA9PlxuICBpc0ZpbGVEcmFnQWN0aXZlIHx8IGhhc0ZpbGVzSW5UcmFuc2ZlclxuXG5leHBvcnQgY29uc3QgZGVjcmVtZW50RmlsZURyYWdDb3VudGVyID0gKGNvdW50ZXI6IG51bWJlcik6IG51bWJlciA9PiBNYXRoLm1heCgwLCBjb3VudGVyIC0gMSlcblxuZXhwb3J0IGNvbnN0IHNob3VsZENsZWFyRmlsZURyYWdPdmVybGF5ID0gKGNvdW50ZXJBZnRlckxlYXZlOiBudW1iZXIpOiBib29sZWFuID0+IGNvdW50ZXJBZnRlckxlYXZlID09PSAwXG5cbmV4cG9ydCBjb25zdCBzaG91bGRJbnRlcmNlcHRXcmFwcGVyUGFzdGUgPSAoXG4gIGlzVGFyZ2V0SW5zaWRlQ29udGVudEVkaXRhYmxlOiBib29sZWFuLFxuICBwYXN0ZWRGaWxlc0NvdW50OiBudW1iZXJcbik6IGJvb2xlYW4gPT4gIWlzVGFyZ2V0SW5zaWRlQ29udGVudEVkaXRhYmxlICYmIHBhc3RlZEZpbGVzQ291bnQgPiAwXG4iXSwibWFwcGluZ3MiOiJBQWVBLElBQU1BLHFCQUFxQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFVO0FBQ3hFLElBQU1DLHFCQUFxQixHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQVU7QUFDakgsSUFBTUMsdUJBQXVCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFVO0FBRTNHLE9BQU8sSUFBTUMsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUEyQkEsQ0FBSUMsUUFBZ0IsRUFBYTtFQUFBLElBQUFDLGtCQUFBO0VBQ3ZFLElBQU1DLGFBQWEsR0FBR0YsUUFBUSxDQUFDRyxLQUFLLENBQUMsR0FBRyxDQUFDO0VBQ3pDLE9BQU9ELGFBQWEsQ0FBQ0UsTUFBTSxHQUFHLENBQUMsT0FBQUMsTUFBQSxFQUFBSixrQkFBQSxHQUFPQyxhQUFhLENBQUNJLEdBQUcsQ0FBQyxDQUFDLGNBQUFMLGtCQUFBLHVCQUFuQkEsa0JBQUEsQ0FBcUJNLFdBQVcsQ0FBQyxDQUFDLElBQUssRUFBRTtBQUNqRixDQUFDO0FBRUQsSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsU0FBaUI7RUFBQSxPQUMvQ2IscUJBQXFCLENBQXVCYyxRQUFRLENBQUNELFNBQVMsQ0FBQyxJQUMvRFoscUJBQXFCLENBQXVCYSxRQUFRLENBQUNELFNBQVMsQ0FBQyxJQUMvRFgsdUJBQXVCLENB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
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJORVdfRk9STUFUX0VYVEVOU0lPTlMiLCJPTERfRk9STUFUX0VYVEVOU0lPTlMiLCJBVURJT19GT1JNQVRfRVhURU5TSU9OUyIsInBhcnNlQ2hhdElucHV0RmlsZUV4dGVuc2lvbiIsImZpbGVOYW1lIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpc0tub3duQXR0YWNobWVudEZvcm1hdCIsImV4dGVuc2lvbiIsImluY2x1ZGVzIiwicHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMiLCJpbmNvbWluZyIsIm9wdGlvbnMiLCJleGNlZWRlZEZpbGVzIiwiZXhjbHVkZWRGaWxlcyIsImZpbGVTaXplcyIsImZpbGVzVG9BdHRhY2giLCJmaWxlc0luc2VydGVkIiwiY3VycmVudEF0dGFjaG1lbnRDb3VudCIsImV4Y2VlZHNNYXhTaXplIiwic2l6ZSIsImdldE1heFNpemVNYiIsImFsbG93ZWRFeHRlbnNpb25TZXQiLCJTZXQiLCJhbGxvd2VkRXh0ZW5zaW9ucyIsImZvckVhY2giLCJmaWxlIiwiZXhjbHVkZWRGaWxlIiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJoYXMiLCJwdXNoIiwibWF4QXR0YWNobWVudHMiLCJ0eXBlRmlsZSIsInR5cGUiLCJmaWxlVHlwZXMiLCJGaWxlIiwic2hvdWxkT3BlbkF0dGFjaG1lbnRWYWxpZGF0aW9uTW9kYWwiLCJpc0ltYWdlQXR0YWNobWVudEZpbGUiLCJtaW1lVHlwZSIsIkJvb2xlYW4iLCJzdGFydHNXaXRoIiwidGVzdCIsInNob3VsZEhhbmRsZURyYWdMZWF2ZUV2ZW50IiwiaXNGaWxlRHJhZ0FjdGl2ZSIsImhhc0ZpbGVzSW5UcmFuc2ZlciIsImRlY3JlbWVudEZpbGVEcmFnQ291bnRlciIsImNvdW50ZXIiLCJNYXRoIiwibWF4Iiwic2hvdWxkQ2xlYXJGaWxlRHJhZ092ZXJsYXkiLCJjb3VudGVyQWZ0ZXJMZWF2ZSIsInNob3VsZEludGVyY2VwdFdyYXBwZXJQYXN0ZSIsImlzVGFyZ2V0SW5zaWRlQ29udGVudEVkaXRhYmxlIiwicGFzdGVkRmlsZXNDb3VudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9NQUlBSW5wdXQuYXR0YWNobWVudHMuaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlc1Jlc3VsdCA9IHtcbiAgZmlsZXNUb0F0dGFjaDogRmlsZVtdXG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPlxufVxuXG5leHBvcnQgdHlwZSBQcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlc09wdGlvbnMgPSB7XG4gIGFsbG93ZWRFeHRlbnNpb25zOiByZWFkb25seSBzdHJpbmdbXVxuICBmaWxlVHlwZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgY3VycmVudEF0dGFjaG1lbnRDb3VudDogbnVtYmVyXG4gIG1heEF0dGFjaG1lbnRzOiBudW1iZXJcbiAgZ2V0TWF4U2l6ZU1iOiAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IG51bWJlclxufVxuXG5jb25zdCBORVdfRk9STUFUX0VYVEVOU0lPTlMgPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcucGRmJ10gYXMgY29uc3RcbmNvbnN0IE9MRF9GT1JNQVRfRVhURU5TSU9OUyA9IFsnLnR4dCcsICcubWQnLCAnLmNzdicsICcuZG9jJywgJy5kb2N4JywgJy54bHN4JywgJy54bHMnLCAnLnBwdCcsICcucHB0eCddIGFzIGNvbnN0XG5jb25zdCBBVURJT19GT1JNQVRfRVhURU5TSU9OUyA9IFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgcGFyc2VDaGF0SW5wdXRGaWxlRXh0ZW5zaW9uID0gKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKVxuICByZXR1cm4gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG59XG5cbmNvbnN0IGlzS25vd25BdHRhY2htZW50Rm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKTogYm9vbGVhbiA9PlxuICAoTkVXX0ZPUk1BVF9FWFRFTlNJT05TIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhleHRlbnNpb24pIHx8XG4gIChPTERfRk9STUFUX0VYVEVOU0lPTlMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGV4dGVuc2lvbikgfHxcbiAgKEFVRElPX0ZPUk1BVF9FWFRFTlNJT05TIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhleHRlbnNpb24pXG5cbi8qKiBDbGFzaWZpY2EgYXJjaGl2b3MgZGVsIGlucHV0IGRlbCBjaGF0ICh0YW1hw7FvLCBjYW50aWRhZCwgdGlwbyBwZXJtaXRpZG8pLiAqL1xuZXhwb3J0IGNvbnN0IHByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzID0gKFxuICBpbmNvbWluZzogRmlsZVtdLFxuICBvcHRpb25zOiBQcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlc09wdGlvbnNcbik6IFByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzUmVzdWx0ID0+IHtcbiAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGNvbnN0IGZpbGVzVG9BdHRhY2g6IEZpbGVbXSA9IFtdXG4gIGxldCBmaWxlc0luc2VydGVkID0gb3B0aW9ucy5jdXJyZW50QXR0YWNobWVudENvdW50XG5cbiAgY29uc3QgZXhjZWVkc01heFNpemUgPSAoZXh0ZW5zaW9uOiBzdHJpbmcsIHNpemU6IG51bWJlcikgPT4gc2l6ZSA+IG9wdGlvbnMuZ2V0TWF4U2l6ZU1iKGV4dGVuc2lvbikgKiAxMDI0ICogMTAyNFxuXG4gIGNvbnN0IGFsbG93ZWRFeHRlbnNpb25TZXQgPSBuZXcgU2V0KG9wdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnMpXG5cbiAgaW5jb21pbmcuZm9yRWFjaChmaWxlID0+IHtcbiAgICBsZXQgZXhjbHVkZWRGaWxlID0gZmFsc2VcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gcGFyc2VDaGF0SW5wdXRGaWxlRXh0ZW5zaW9uKGZpbGUubmFtZSlcblxuICAgIGlmICghYWxsb3dlZEV4dGVuc2lvblNldC5oYXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICBpZiAoIWlzS25vd25BdHRhY2htZW50Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZXhjZWVkc01heFNpemUoZmlsZUV4dGVuc2lvbiwgZmlsZS5zaXplKSkge1xuICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBvcHRpb25zLm1heEF0dGFjaG1lbnRzKSB7XG4gICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmICghZXhjbHVkZWRGaWxlKSB7XG4gICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IG9wdGlvbnMuZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICBmaWxlc1RvQXR0YWNoLnB1c2gobmV3IEZpbGUoW2ZpbGVdLCBmaWxlLm5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSkpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7IGZpbGVzVG9BdHRhY2gsIGV4Y2VlZGVkRmlsZXMsIGV4Y2x1ZGVkRmlsZXMsIGZpbGVTaXplcyB9XG59XG5cbmV4cG9ydCBjb25zdCBzaG91bGRPcGVuQXR0YWNobWVudFZhbGlkYXRpb25Nb2RhbCA9IChleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSwgZXhjZWVkZWRGaWxlczogc3RyaW5nW10pOiBib29sZWFuID0+XG4gIGV4Y2x1ZGVkRmlsZXMubGVuZ3RoID4gMCB8fCBleGNlZWRlZEZpbGVzLmxlbmd0aCA+IDBcblxuZXhwb3J0IGNvbnN0IGlzSW1hZ2VBdHRhY2htZW50RmlsZSA9IChtaW1lVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBCb29sZWFuKG1pbWVUeXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKSkgfHwgL1xcLihwbmd8anBlP2d8Z2lmfHdlYnB8Ym1wfHN2ZykkL2kudGVzdChmaWxlTmFtZSB8fCAnJylcblxuZXhwb3J0IGNvbnN0IHNob3VsZEhhbmRsZURyYWdMZWF2ZUV2ZW50ID0gKGlzRmlsZURyYWdBY3RpdmU6IGJvb2xlYW4sIGhhc0ZpbGVzSW5UcmFuc2ZlcjogYm9vbGVhbik6IGJvb2xlYW4gPT5cbiAgaXNGaWxlRHJhZ0FjdGl2ZSB8fCBoYXNGaWxlc0luVHJhbnNmZXJcblxuZXhwb3J0IGNvbnN0IGRlY3JlbWVudEZpbGVEcmFnQ291bnRlciA9IChjb3VudGVyOiBudW1iZXIpOiBudW1iZXIgPT4gTWF0aC5tYXgoMCwgY291bnRlciAtIDEpXG5cbmV4cG9ydCBjb25zdCBzaG91bGRDbGVhckZpbGVEcmFnT3ZlcmxheSA9IChjb3VudGVyQWZ0ZXJMZWF2ZTogbnVtYmVyKTogYm9vbGVhbiA9PiBjb3VudGVyQWZ0ZXJMZWF2ZSA9PT0gMFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkSW50ZXJjZXB0V3JhcHBlclBhc3RlID0gKFxuICBpc1RhcmdldEluc2lkZUNvbnRlbnRFZGl0YWJsZTogYm9vbGVhbixcbiAgcGFzdGVkRmlsZXNDb3VudDogbnVtYmVyXG4pOiBib29sZWFuID0+ICFpc1RhcmdldEluc2lkZUNvbnRlbnRFZGl0YWJsZSAmJiBwYXN0ZWRGaWxlc0NvdW50ID4gMFxuIl0sIm1hcHBpbmdzIjoiQUFlQSxJQUFNQSxxQkFBcUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBVTtBQUN4RSxJQUFNQyxxQkFBcUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFVO0FBQ2pILElBQU1DLHVCQUF1QixHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBVTtBQUUzRyxPQUFPLElBQU1DLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBMkJBLENBQUlDLFFBQWdCLEVBQWE7RUFBQSxJQUFBQyxrQkFBQTtFQUN2RSxJQUFNQyxhQUFhLEdBQUdGLFFBQVEsQ0FBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUN6QyxPQUFPRCxhQUFhLENBQUNFLE1BQU0sR0FBRyxDQUFDLE9BQUFDLE1BQUEsRUFBQUosa0JBQUEsR0FBT0MsYUFBYSxDQUFDSSxHQUFHLENBQUMsQ0FBQyxjQUFBTCxrQkFBQSx1QkFBbkJBLGtCQUFBLENBQXFCTSxXQUFXLENBQUMsQ0FBQyxJQUFLLEVBQUU7QUFDakYsQ0FBQztBQUVELElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLFNBQWlCO0VBQUEsT0FDL0NiLHFC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
@@ -0,0 +1,113 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { decrementFileDragCounter, isImageAttachmentFile, parseChatInputFileExtension, processIncomingChatInputFiles, shouldClearFileDragOverlay, shouldHandleDragLeaveEvent, shouldInterceptWrapperPaste, shouldOpenAttachmentValidationModal } from './MAIAInput.attachments.helpers';
5
+ describe('MAIAInput.attachments.helpers', function () {
6
+ describe('parseChatInputFileExtension', function () {
7
+ it('returns lowercase extension with dot', function () {
8
+ expect(parseChatInputFileExtension('Brief.PDF')).toBe('.pdf');
9
+ });
10
+ it('returns empty string when there is no extension', function () {
11
+ expect(parseChatInputFileExtension('readme')).toBe('');
12
+ });
13
+ });
14
+ describe('processIncomingChatInputFiles', function () {
15
+ var baseOptions = {
16
+ allowedExtensions: ['.pdf', '.txt', '.mp3'],
17
+ fileTypes: {
18
+ '.pdf': 'application/pdf',
19
+ '.txt': 'text/plain',
20
+ '.mp3': 'audio/mpeg'
21
+ },
22
+ currentAttachmentCount: 0,
23
+ maxAttachments: 2,
24
+ getMaxSizeMb: function getMaxSizeMb() {
25
+ return 10;
26
+ }
27
+ };
28
+ it('skips unsupported extensions', function () {
29
+ var file = new File(['x'], 'image.png', {
30
+ type: 'image/png'
31
+ });
32
+ expect(processIncomingChatInputFiles([file], baseOptions).filesToAttach).toHaveLength(0);
33
+ });
34
+ it('accepts allowed files and resolves mime from fileTypes', function () {
35
+ var file = new File(['content'], 'notes.txt', {
36
+ type: ''
37
+ });
38
+ var result = processIncomingChatInputFiles([file], baseOptions);
39
+ expect(result.filesToAttach).toHaveLength(1);
40
+ expect(result.filesToAttach[0].type).toBe('text/plain');
41
+ expect(result.exceededFiles).toHaveLength(0);
42
+ expect(result.excludedFiles).toHaveLength(0);
43
+ });
44
+ it('marks oversized files as exceeded', function () {
45
+ var file = new File([new ArrayBuffer(11 * 1024 * 1024)], 'big.pdf', {
46
+ type: 'application/pdf'
47
+ });
48
+ var result = processIncomingChatInputFiles([file], _objectSpread(_objectSpread({}, baseOptions), {}, {
49
+ getMaxSizeMb: function getMaxSizeMb() {
50
+ return 10;
51
+ }
52
+ }));
53
+ expect(result.filesToAttach).toHaveLength(0);
54
+ expect(result.exceededFiles).toEqual(['big.pdf']);
55
+ });
56
+ it('marks files beyond max attachment count as excluded', function () {
57
+ var files = [new File(['a'], 'a.txt', {
58
+ type: 'text/plain'
59
+ }), new File(['b'], 'b.txt', {
60
+ type: 'text/plain'
61
+ }), new File(['c'], 'c.txt', {
62
+ type: 'text/plain'
63
+ })];
64
+ var result = processIncomingChatInputFiles(files, baseOptions);
65
+ expect(result.filesToAttach).toHaveLength(2);
66
+ expect(result.excludedFiles).toEqual(['c.txt']);
67
+ });
68
+ it('counts existing attachments toward the limit', function () {
69
+ var file = new File(['a'], 'a.txt', {
70
+ type: 'text/plain'
71
+ });
72
+ var result = processIncomingChatInputFiles([file], _objectSpread(_objectSpread({}, baseOptions), {}, {
73
+ currentAttachmentCount: 2
74
+ }));
75
+ expect(result.filesToAttach).toHaveLength(0);
76
+ expect(result.excludedFiles).toEqual(['a.txt']);
77
+ });
78
+ it('accepts audio extensions', function () {
79
+ var file = new File(['audio'], 'voice.mp3', {
80
+ type: 'audio/mpeg'
81
+ });
82
+ var result = processIncomingChatInputFiles([file], baseOptions);
83
+ expect(result.filesToAttach).toHaveLength(1);
84
+ expect(result.fileSizes['voice.mp3']).toBe(file.size);
85
+ });
86
+ });
87
+ describe('attachment UI helpers', function () {
88
+ it('opens validation modal when excluded or exceeded files exist', function () {
89
+ expect(shouldOpenAttachmentValidationModal([], [])).toBe(false);
90
+ expect(shouldOpenAttachmentValidationModal(['a.pdf'], [])).toBe(true);
91
+ expect(shouldOpenAttachmentValidationModal([], ['big.pdf'])).toBe(true);
92
+ });
93
+ it('detects image attachments by mime or extension', function () {
94
+ expect(isImageAttachmentFile('image/png', 'doc.pdf')).toBe(true);
95
+ expect(isImageAttachmentFile(undefined, 'photo.JPG')).toBe(true);
96
+ expect(isImageAttachmentFile('application/pdf', 'doc.pdf')).toBe(false);
97
+ });
98
+ it('handles drag leave counter and overlay', function () {
99
+ expect(shouldHandleDragLeaveEvent(false, false)).toBe(false);
100
+ expect(shouldHandleDragLeaveEvent(true, false)).toBe(true);
101
+ expect(decrementFileDragCounter(2)).toBe(1);
102
+ expect(decrementFileDragCounter(0)).toBe(0);
103
+ expect(shouldClearFileDragOverlay(0)).toBe(true);
104
+ expect(shouldClearFileDragOverlay(1)).toBe(false);
105
+ });
106
+ it('intercepts wrapper paste only outside the editor with files', function () {
107
+ expect(shouldInterceptWrapperPaste(true, 1)).toBe(false);
108
+ expect(shouldInterceptWrapperPaste(false, 0)).toBe(false);
109
+ expect(shouldInterceptWrapperPaste(false, 2)).toBe(true);
110
+ });
111
+ });
112
+ });
113
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIiLCJpc0ltYWdlQXR0YWNobWVudEZpbGUiLCJwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24iLCJwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyIsInNob3VsZENsZWFyRmlsZURyYWdPdmVybGF5Iiwic2hvdWxkSGFuZGxlRHJhZ0xlYXZlRXZlbnQiLCJzaG91bGRJbnRlcmNlcHRXcmFwcGVyUGFzdGUiLCJzaG91bGRPcGVuQXR0YWNobWVudFZhbGlkYXRpb25Nb2RhbCIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJ0b0JlIiwiYmFzZU9wdGlvbnMiLCJhbGxvd2VkRXh0ZW5zaW9ucyIsImZpbGVUeXBlcyIsImN1cnJlbnRBdHRhY2htZW50Q291bnQiLCJtYXhBdHRhY2htZW50cyIsImdldE1heFNpemVNYiIsImZpbGUiLCJGaWxlIiwidHlwZSIsImZpbGVzVG9BdHRhY2giLCJ0b0hhdmVMZW5ndGgiLCJyZXN1bHQiLCJleGNlZWRlZEZpbGVzIiwiZXhjbHVkZWRGaWxlcyIsIkFycmF5QnVmZmVyIiwiX29iamVjdFNwcmVhZCIsInRvRXF1YWwiLCJmaWxlcyIsImZpbGVTaXplcyIsInNpemUiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LmF0dGFjaG1lbnRzLmhlbHBlcnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIsXG4gIGlzSW1hZ2VBdHRhY2htZW50RmlsZSxcbiAgcGFyc2VDaGF0SW5wdXRGaWxlRXh0ZW5zaW9uLFxuICBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyxcbiAgc2hvdWxkQ2xlYXJGaWxlRHJhZ092ZXJsYXksXG4gIHNob3VsZEhhbmRsZURyYWdMZWF2ZUV2ZW50LFxuICBzaG91bGRJbnRlcmNlcHRXcmFwcGVyUGFzdGUsXG4gIHNob3VsZE9wZW5BdHRhY2htZW50VmFsaWRhdGlvbk1vZGFsLFxufSBmcm9tICcuL01BSUFJbnB1dC5hdHRhY2htZW50cy5oZWxwZXJzJ1xuXG5kZXNjcmliZSgnTUFJQUlucHV0LmF0dGFjaG1lbnRzLmhlbHBlcnMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgbG93ZXJjYXNlIGV4dGVuc2lvbiB3aXRoIGRvdCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChwYXJzZUNoYXRJbnB1dEZpbGVFeHRlbnNpb24oJ0JyaWVmLlBERicpKS50b0JlKCcucGRmJylcbiAgICB9KVxuXG4gICAgaXQoJ3JldHVybnMgZW1wdHkgc3RyaW5nIHdoZW4gdGhlcmUgaXMgbm8gZXh0ZW5zaW9uJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHBhcnNlQ2hhdElucHV0RmlsZUV4dGVuc2lvbigncmVhZG1lJykpLnRvQmUoJycpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgncHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgYmFzZU9wdGlvbnMgPSB7XG4gICAgICBhbGxvd2VkRXh0ZW5zaW9uczogWycucGRmJywgJy50eHQnLCAnLm1wMyddLFxuICAgICAgZmlsZVR5cGVzOiB7ICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsICcudHh0JzogJ3RleHQvcGxhaW4nLCAnLm1wMyc6ICdhdWRpby9tcGVnJyB9LFxuICAgICAgY3VycmVudEF0dGFjaG1lbnRDb3VudDogMCxcbiAgICAgIG1heEF0dGFjaG1lbnRzOiAyLFxuICAgICAgZ2V0TWF4U2l6ZU1iOiAoKSA9PiAxMCxcbiAgICB9XG5cbiAgICBpdCgnc2tpcHMgdW5zdXBwb3J0ZWQgZXh0ZW5zaW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbJ3gnXSwgJ2ltYWdlLnBuZycsIHsgdHlwZTogJ2ltYWdlL3BuZycgfSlcbiAgICAgIGV4cGVjdChwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhbZmlsZV0sIGJhc2VPcHRpb25zKS5maWxlc1RvQXR0YWNoKS50b0hhdmVMZW5ndGgoMClcbiAgICB9KVxuXG4gICAgaXQoJ2FjY2VwdHMgYWxsb3dlZCBmaWxlcyBhbmQgcmVzb2x2ZXMgbWltZSBmcm9tIGZpbGVUeXBlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbJ2NvbnRlbnQnXSwgJ25vdGVzLnR4dCcsIHsgdHlwZTogJycgfSlcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHByb2Nlc3NJbmNvbWluZ0NoYXRJbnB1dEZpbGVzKFtmaWxlXSwgYmFzZU9wdGlvbnMpXG5cbiAgICAgIGV4cGVjdChyZXN1bHQuZmlsZXNUb0F0dGFjaCkudG9IYXZlTGVuZ3RoKDEpXG4gICAgICBleHBlY3QocmVzdWx0LmZpbGVzVG9BdHRhY2hbMF0udHlwZSkudG9CZSgndGV4dC9wbGFpbicpXG4gICAgICBleHBlY3QocmVzdWx0LmV4Y2VlZGVkRmlsZXMpLnRvSGF2ZUxlbmd0aCgwKVxuICAgICAgZXhwZWN0KHJlc3VsdC5leGNsdWRlZEZpbGVzKS50b0hhdmVMZW5ndGgoMClcbiAgICB9KVxuXG4gICAgaXQoJ21hcmtzIG92ZXJzaXplZCBmaWxlcyBhcyBleGNlZWRlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbbmV3IEFycmF5QnVmZmVyKDExICogMTAyNCAqIDEwMjQpXSwgJ2JpZy5wZGYnLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pXG4gICAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhbZmlsZV0sIHtcbiAgICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAgIGdldE1heFNpemVNYjogKCkgPT4gMTAsXG4gICAgICB9KVxuXG4gICAgICBleHBlY3QocmVzdWx0LmZpbGVzVG9BdHRhY2gpLnRvSGF2ZUxlbmd0aCgwKVxuICAgICAgZXhwZWN0KHJlc3VsdC5leGNlZWRlZEZpbGVzKS50b0VxdWFsKFsnYmlnLnBkZiddKVxuICAgIH0pXG5cbiAgICBpdCgnbWFya3MgZmlsZXMgYmV5b25kIG1heCBhdHRhY2htZW50IGNvdW50IGFzIGV4Y2x1ZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmlsZXMgPSBbXG4gICAgICAgIG5ldyBGaWxlKFsnYSddLCAnYS50eHQnLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KSxcbiAgICAgICAgbmV3IEZpbGUoWydiJ10sICdiLnR4dCcsIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pLFxuICAgICAgICBuZXcgRmlsZShbJ2MnXSwgJ2MudHh0JywgeyB0eXBlOiAndGV4dC9wbGFpbicgfSksXG4gICAgICBdXG4gICAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhmaWxlcywgYmFzZU9wdGlvbnMpXG5cbiAgICAgIGV4cGVjdChyZXN1bHQuZmlsZXNUb0F0dGFjaCkudG9IYXZlTGVuZ3RoKDIpXG4gICAgICBleHBlY3QocmVzdWx0LmV4Y2x1ZGVkRmlsZXMpLnRvRXF1YWwoWydjLnR4dCddKVxuICAgIH0pXG5cbiAgICBpdCgnY291bnRzIGV4aXN0aW5nIGF0dGFjaG1lbnRzIHRvd2FyZCB0aGUgbGltaXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoWydhJ10sICdhLnR4dCcsIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pXG4gICAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzSW5jb21pbmdDaGF0SW5wdXRGaWxlcyhbZmlsZV0sIHtcbiAgICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAgIGN1cnJlbnRBdHRhY2htZW50Q291bnQ6IDIsXG4gICAgICB9KVxuXG4gICAgICBleHBlY3QocmVzdWx0LmZpbGVzVG9BdHRhY2gpLnRvSGF2ZUxlbmd0aCgwKVxuICAgICAgZXhwZWN0KHJlc3VsdC5leGNsdWRlZEZpbGVzKS50b0VxdWFsKFsnYS50eHQnXSlcbiAgICB9KVxuXG4gICAgaXQoJ2FjY2VwdHMgYXVkaW8gZXh0ZW5zaW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbJ2F1ZGlvJ10sICd2b2ljZS5tcDMnLCB7IHR5cGU6ICdhdWRpby9tcGVnJyB9KVxuICAgICAgY29uc3QgcmVzdWx0ID0gcHJvY2Vzc0luY29taW5nQ2hhdElucHV0RmlsZXMoW2ZpbGVdLCBiYXNlT3B0aW9ucylcblxuICAgICAgZXhwZWN0KHJlc3VsdC5maWxlc1RvQXR0YWNoKS50b0hhdmVMZW5ndGgoMSlcbiAgICAgIGV4cGVjdChyZXN1bHQuZmlsZVNpemVzWyd2b2ljZS5tcDMnXSkudG9CZShmaWxlLnNpemUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgnYXR0YWNobWVudCBVSSBoZWxwZXJzJywgKCkgPT4ge1xuICAgIGl0KCdvcGVucyB2YWxpZGF0aW9uIG1vZGFsIHdoZW4gZXhjbHVkZWQgb3IgZXhjZWVkZWQgZmlsZXMgZXhpc3QnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkT3BlbkF0dGFjaG1lbnRWYWxpZGF0aW9uTW9kYWwoW10sIFtdKSkudG9CZShmYWxzZSlcbiAgICAgIGV4cGVjdChzaG91bGRPcGVuQXR0YWNobWVudFZhbGlkYXRpb25Nb2RhbChbJ2EucGRmJ10sIFtdKSkudG9CZSh0cnVlKVxuICAgICAgZXhwZWN0KHNob3VsZE9wZW5BdHRhY2htZW50VmFsaWRhdGlvbk1vZGFsKFtdLCBbJ2JpZy5wZGYnXSkpLnRvQmUodHJ1ZSlcbiAgICB9KVxuXG4gICAgaXQoJ2RldGVjdHMgaW1hZ2UgYXR0YWNobWVudHMgYnkgbWltZSBvciBleHRlbnNpb24nLCAoKSA9PiB7XG4gICAgICBleHBlY3QoaXNJbWFnZUF0dGFjaG1lbnRGaWxlKCdpbWFnZS9wbmcnLCAnZG9jLnBkZicpKS50b0JlKHRydWUpXG4gICAgICBleHBlY3QoaXNJbWFnZUF0dGFjaG1lbnRGaWxlKHVuZGVmaW5lZCwgJ3Bob3RvLkpQRycpKS50b0JlKHRydWUpXG4gICAgICBleHBlY3QoaXNJbWFnZUF0dGFjaG1lbnRGaWxlKCdhcHBsaWNhdGlvbi9wZGYnLCAnZG9jLnBkZicpKS50b0JlKGZhbHNlKVxuICAgIH0pXG5cbiAgICBpdCgnaGFuZGxlcyBkcmFnIGxlYXZlIGNvdW50ZXIgYW5kIG92ZXJsYXknLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkSGFuZGxlRHJhZ0xlYXZlRXZlbnQoZmFsc2UsIGZhbHNlKSkudG9CZShmYWxzZSlcbiAgICAgIGV4cGVjdChzaG91bGRIYW5kbGVEcmFnTGVhdmVFdmVudCh0cnVlLCBmYWxzZSkpLnRvQmUodHJ1ZSlcbiAgICAgIGV4cGVjdChkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIoMikpLnRvQmUoMSlcbiAgICAgIGV4cGVjdChkZWNyZW1lbnRGaWxlRHJhZ0NvdW50ZXIoMCkpLnRvQmUoMClcbiAgICAgIGV4cGVjdChzaG91bGRDbGVhckZpbGVEcmFnT3ZlcmxheSgwKSkudG9CZSh0cnVlKVxuICAgICAgZXhwZWN0KHNob3VsZENsZWFyRmlsZURyYWdPdmVybGF5KDEpKS50b0JlKGZhbHNlKVxuICAgIH0pXG5cbiAgICBpdCgnaW50ZXJjZXB0cyB3cmFwcGVyIHBhc3RlIG9ubHkgb3V0c2lkZSB0aGUgZWRpdG9yIHdpdGggZmlsZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkSW50ZXJjZXB0V3JhcHBlclBhc3RlKHRydWUsIDEpKS50b0JlKGZhbHNlKVxuICAgICAgZXhwZWN0KHNob3VsZEludGVyY2VwdFdyYXBwZXJQYXN0ZShmYWxzZSwgMCkpLnRvQmUoZmFsc2UpXG4gICAgICBleHBlY3Qoc2hvdWxkSW50ZXJjZXB0V3JhcHBlclBhc3RlKGZhbHNlLCAyKSkudG9CZSh0cnVlKVxuICAgIH0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUNFQSx3QkFBd0IsRUFDeEJDLHFCQUFxQixFQUNyQkMsMkJBQTJCLEVBQzNC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QUN6RSxDQUFDLENBQUM7SUFFRkYsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLFlBQU07TUFDekRDLE1BQU0sQ0FBQ1QscUJBQXFCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUNVLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDaEVELE1BQU0sQ0FBQ1QscUJBQXFCLENBQUMrQixTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDaEVELE1BQU0sQ0FBQ1QscUJBQXFCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN6RSxDQUFDLENBQUM7SUFFRkYsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLFlBQU07TUFDakRDLE1BQU0sQ0FBQ0wsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUNNLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDNURELE1BQU0sQ0FBQ0wsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUNNLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDMURELE1BQU0sQ0FBQ1Ysd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ1csSUFBSSxDQUFDLENBQUMsQ0FBQztNQUMzQ0QsTUFBTSxDQUFDVix3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDVyxJQUFJLENBQUMsQ0FBQyxDQUFDO01BQzNDRCxNQUFNLENBQUNOLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNPLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDaERELE1BQU0sQ0FBQ04sMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ08sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDLENBQUM7SUFFRkYsRUFBRSxDQUFDLDZEQUE2RCxFQUFFLFlBQU07TUFDdEVDLE1BQU0sQ0FBQ0osMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDeERELE1BQU0sQ0FBQ0osMkJBQTJCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxLQUFLLENBQUM7TUFDekRELE1BQU0sQ0FBQ0osMkJBQTJCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -14,8 +14,9 @@ export var getSkillMentionIds = function getSkillMentionIds(mentions) {
14
14
  });
15
15
  };
16
16
  export var getRemovedSkillMentionIds = function getRemovedSkillMentionIds(previousIds, currentIds) {
17
+ var currentIdSet = new Set(currentIds);
17
18
  return previousIds.filter(function (skillId) {
18
- return !currentIds.includes(skillId);
19
+ return !currentIdSet.has(skillId);
19
20
  });
20
21
  };
21
22
  export var canCreateSkillsFromInput = function canCreateSkillsFromInput(showSkillsButton, companyId) {
@@ -181,4 +182,4 @@ export var shouldObserveMaiaInputLayoutElement = function shouldObserveMaiaInput
181
182
  export var canAttachMoreChatInputFiles = function canAttachMoreChatInputFiles(currentAttachmentCount, maxAttachments) {
182
183
  return currentAttachmentCount < maxAttachments;
183
184
  };
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1NraWxsc1BpbG90Q29tcGFueSIsInJlc29sdmVTbGFzaENvbW1hbmRzQWdlbnRJZCIsImFnZW50IiwidHlwZSIsImVudGl0eSIsImlkIiwidW5kZWZpbmVkIiwiZ2V0U2tpbGxNZW50aW9uSWRzIiwibWVudGlvbnMiLCJmaWx0ZXIiLCJtZW50aW9uIiwibWFwIiwiU3RyaW5nIiwiZ2V0UmVtb3ZlZFNraWxsTWVudGlvbklkcyIsInByZXZpb3VzSWRzIiwiY3VycmVudElkcyIsInNraWxsSWQiLCJpbmNsdWRlcyIsImNhbkNyZWF0ZVNraWxsc0Zyb21JbnB1dCIsInNob3dTa2lsbHNCdXR0b24iLCJjb21wYW55SWQiLCJnZXRBbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQiLCJfYWdlbnQkZW50aXR5IiwiaXNTZW5kRGlzYWJsZWQiLCJoYXNUeXBpbmdQcmVzZW5jZSIsImF0dGFjaG1lbnRDb3VudCIsImNhblN1Ym1pdENoYXRNZXNzYWdlIiwidGV4dCIsIkJvb2xlYW4iLCJ0cmltIiwic2hvdWxkU3VibWl0T25FbnRlciIsImtleSIsInNoaWZ0S2V5IiwicG9wb3Zlck9wZW4iLCJzZW5kRGlzYWJsZWQiLCJkaXNhYmxlZCIsImhhc0VkaXRvclR5cGluZ1ByZXNlbmNlIiwibGVuZ3RoIiwic2hvdWxkT3BlblNsYXNoRHJvcGRvd24iLCJzbGFzaFRyaWdnZXIiLCJzbGFzaENvbW1hbmRzQ291bnQiLCJhY3RpdmUiLCJzaG91bGRPcGVuU2tpbGxzSGFzaERyb3Bkb3duIiwiaGFzaFRyaWdnZXIiLCJyZXNvbHZlU2xhc2hDb21tYW5kSW5zZXJ0Q29udGV4dCIsInNsYXNoUXVlcnkiLCJ0cmlnZ2VyUGFydCIsImNvbmNhdCIsImJlZm9yZVRyaWdnZXIiLCJlbmRzV2l0aCIsInNsaWNlIiwiaXNFbXB0eUJlZm9yZVRyaWdnZXIiLCJzaG91bGRBcHBseUluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdCIsImFscmVhZHlBcHBsaWVkIiwicmVzb2x2ZVNlc3Npb25BdXRvRm9jdXNQbGFuIiwiY3R4IiwiYWdlbnRDaGFuZ2VkIiwicHJldmlvdXNBZ2VudElkIiwiY3VycmVudEFnZW50SWQiLCJjaGF0Q2hhbmdlZCIsInByZXZpb3VzQ2hhdElkIiwiY3VycmVudENoYXRJZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwicHJldmlvdXNOZXdDaGF0S2V5IiwiY3VycmVudE5ld0NoYXRLZXkiLCJpc0luaXRpYWxNb3VudCIsInNob3VsZEZvY3VzIiwiZGVsYXlNcyIsInNob3VsZEF1dG9Gb2N1c09uTGF5b3V0TW9kZUNoYW5nZSIsInByZXZpb3VzTGF5b3V0TW9kZSIsImxheW91dE1vZGUiLCJpc1NwZWNpYWxpc3RDbG9uZUFnZW50Rm9yQXBwY3VlcyIsImFnZW50SGFzQ29yQ29ubmVjdG9yQWNjZXNzIiwiX2FnZW50JGNvbm5lY3RvcnMiLCJjb25uZWN0b3JzIiwic29tZSIsImNvbm5lY3RvciIsImdyb3VwIiwic2x1Z3MiLCJzbHVnIiwiZ2V0Q3VzdG9tQWdlbnRNb2RlbERpc3BsYXlOYW1lIiwiX2FnZW50JG1vZGVsX2Rpc3BsYXlfIiwibW9kZWxfZGlzcGxheV9uYW1lIiwic2hvdWxkU2hvd0N1c3RvbUFnZW50TWV0YUluZGljYXRvcnMiLCJoYXNDb3JBY2Nlc3MiLCJhZ2VudE1vZGVsTmFtZSIsInNob3VsZFNob3dNZW50aW9uVG9vbGJhckJ1dHRvbiIsImFnZW50VHlwZSIsInNob3VsZFNob3dJbnB1dENoaXBzUm93IiwiY29udGV4dEl0ZW1Db3VudCIsInNob3VsZFN0YXJ0VG9vbENoaXBFeGl0IiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJyZXNvbHZlVG9vbENoaXBFeGl0VG9nZ2xlIiwid2FzV2ViIiwid2FzRGVlcCIsInNlYXJjaE1vZGVzIiwid2ViIiwiZGVlcCIsInJlc29sdmVXZWJTZWFyY2hQbHVzTWVudUFjdGlvbiIsImtpbmQiLCJ0dXJuT2ZmRGVlcCIsInJlc29sdmVEZWVwU2VhcmNoUGx1c01lbnVBY3Rpb24iLCJ0dXJuT2ZmV2ViIiwicmVzb2x2ZU1haWFJbnB1dERyb3Bkb3duUG9zaXRpb24iLCJpbnB1dCIsIl9pbnB1dCRjYXJldFRvcCIsIl9pbnB1dCRjYXJldExlZnQiLCJ0b3BTb3VyY2UiLCJjYXJldFRvcCIsIndyYXBwZXJXaWR0aCIsIndyYXBwZXJUb3AiLCJsZWZ0U291cmNlIiwiY2FyZXRMZWZ0Iiwid3JhcHBlckxlZnQiLCJsZWZ0IiwiTWF0aCIsIm1heCIsInZpZXdwb3J0UGFkUHgiLCJtaW4iLCJ2aWV3cG9ydFdpZHRoIiwiZHJvcGRvd25XaWR0aFB4IiwiYXZhaWxhYmxlSGVpZ2h0UHgiLCJnYXBQeCIsIm1heEhlaWdodCIsIm1heERyb3Bkb3duSGVpZ2h0UHgiLCJib3R0b20iLCJ2aWV3cG9ydEhlaWdodCIsInJlc29sdmVNYWlhSW5wdXRTdHJlYW1pbmdEYXRhQXR0ciIsImlzU3RyZWFtaW5nIiwicmVzb2x2ZUFjdGl2ZVRvb2xDaGlwSWNvbk1vZGUiLCJhY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJyZXNvbHZlQWN0aXZlVG9vbENoaXBTZWFyY2hMYWJlbCIsInBhcmFtcyIsIndlYlNlYXJjaExhYmVsIiwiZGVlcFNlYXJjaExhYmVsIiwicmVzb2x2ZU1lYXN1cmVkTGF5b3V0Um93SGVpZ2h0IiwiY3VycmVudCIsIm5leHQiLCJzaG91bGRPYnNlcnZlTWFpYUlucHV0TGF5b3V0RWxlbWVudCIsImVsZW1lbnQiLCJjYW5BdHRhY2hNb3JlQ2hhdElucHV0RmlsZXMiLCJjdXJyZW50QXR0YWNobWVudENvdW50IiwibWF4QXR0YWNobWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LmhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTa2lsbHNQaWxvdENvbXBhbnkgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvcGVybWlzc2lvbnMvdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEFnZW50LCBBZ2VudFR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuLyoqIEFnZW50IGlkIHBhcmEgc2xhc2ggY29tbWFuZHMgKG9yY2hlc3RyYXRvciBnbG9iYWwgbyBjbG9uZSBlc3BlY2lhbGlzdGEpLiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVTbGFzaENvbW1hbmRzQWdlbnRJZCA9IChhZ2VudDogQWdlbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKFxuICAgIChhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcpIHx8XG4gICAgKGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmIGFnZW50Py5lbnRpdHkgIT09ICdnbG9iYWwnKVxuICApIHtcbiAgICByZXR1cm4gYWdlbnQuaWRcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBjb25zdCBnZXRTa2lsbE1lbnRpb25JZHMgPSAobWVudGlvbnM6IENvbnRleHRNZW50aW9uW10pOiBzdHJpbmdbXSA9PlxuICBtZW50aW9ucy5maWx0ZXIobWVudGlvbiA9PiBtZW50aW9uLnR5cGUgPT09ICdza2lsbCcpLm1hcChtZW50aW9uID0+IFN0cmluZyhtZW50aW9uLmlkKSlcblxuZXhwb3J0IGNvbnN0IGdldFJlbW92ZWRTa2lsbE1lbnRpb25JZHMgPSAocHJldmlvdXNJZHM6IHN0cmluZ1tdLCBjdXJyZW50SWRzOiBzdHJpbmdbXSk6IHN0cmluZ1tdID0+XG4gIHByZXZpb3VzSWRzLmZpbHRlcihza2lsbElkID0+ICFjdXJyZW50SWRzLmluY2x1ZGVzKHNraWxsSWQpKVxuXG5leHBvcnQgY29uc3QgY2FuQ3JlYXRlU2tpbGxzRnJvbUlucHV0ID0gKHNob3dTa2lsbHNCdXR0b246IGJvb2xlYW4sIGNvbXBhbnlJZDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgc2hvd1NraWxsc0J1dHRvbiAmJiBpc1NraWxsc1BpbG90Q29tcGFueShjb21wYW55SWQgPz8gdW5kZWZpbmVkKVxuXG5leHBvcnQgY29uc3QgZ2V0QW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkID0gKFxuICBhZ2VudDogUGljazxBZ2VudCwgJ3R5cGUnIHwgJ2VudGl0eSc+IHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogeyBlbnRpdHk6IEFnZW50WydlbnRpdHknXSB8IG51bGwgfSB8IFJlY29yZDxzdHJpbmcsIG5ldmVyPiA9PlxuICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IHsgZW50aXR5OiBhZ2VudC5lbnRpdHkgPz8gbnVsbCB9IDoge31cblxuZXhwb3J0IGNvbnN0IGlzU2VuZERpc2FibGVkID0gKGhhc1R5cGluZ1ByZXNlbmNlOiBib29sZWFuLCBhdHRhY2htZW50Q291bnQ6IG51bWJlcik6IGJvb2xlYW4gPT5cbiAgIWhhc1R5cGluZ1ByZXNlbmNlICYmIGF0dGFjaG1lbnRDb3VudCA9PT0gMFxuXG5leHBvcnQgY29uc3QgY2FuU3VibWl0Q2hhdE1lc3NhZ2UgPSAodGV4dDogc3RyaW5nLCBhdHRhY2htZW50Q291bnQ6IG51bWJlcik6IGJvb2xlYW4gPT5cbiAgQm9vbGVhbih0ZXh0LnRyaW0oKSkgfHwgYXR0YWNobWVudENvdW50ID4gMFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU3VibWl0T25FbnRlciA9IChcbiAga2V5OiBzdHJpbmcsXG4gIHNoaWZ0S2V5OiBib29sZWFuLFxuICBwb3BvdmVyT3BlbjogYm9vbGVhbixcbiAgc2VuZERpc2FibGVkOiBib29sZWFuLFxuICBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiA9PiBrZXkgPT09ICdFbnRlcicgJiYgIXNoaWZ0S2V5ICYmICFwb3BvdmVyT3BlbiAmJiAhc2VuZERpc2FibGVkICYmICFkaXNhYmxlZFxuXG5leHBvcnQgY29uc3QgaGFzRWRpdG9yVHlwaW5nUHJlc2VuY2UgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG5cbmV4cG9ydCBjb25zdCBzaG91bGRPcGVuU2xhc2hEcm9wZG93biA9IChcbiAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9IHwgdW5kZWZpbmVkLFxuICBzbGFzaENvbW1hbmRzQ291bnQ6IG51bWJlclxuKTogYm9vbGVhbiA9PiBCb29sZWFuKHNsYXNoVHJpZ2dlcj8uYWN0aXZlICYmIHNsYXNoQ29tbWFuZHNDb3VudCA+IDApXG5cbmV4cG9ydCBjb25zdCBzaG91bGRPcGVuU2tpbGxzSGFzaERyb3Bkb3duID0gKFxuICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCxcbiAgc2hvd1NraWxsc0J1dHRvbjogYm9vbGVhblxuKTogYm9vbGVhbiA9PiBCb29sZWFuKGhhc2hUcmlnZ2VyPy5hY3RpdmUgJiYgc2hvd1NraWxsc0J1dHRvbilcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVTbGFzaENvbW1hbmRJbnNlcnRDb250ZXh0ID0gKFxuICB0ZXh0OiBzdHJpbmcsXG4gIHNsYXNoUXVlcnk6IHN0cmluZ1xuKTogeyBiZWZvcmVUcmlnZ2VyOiBzdHJpbmc7IGlzRW1wdHlCZWZvcmVUcmlnZ2VyOiBib29sZWFuIH0gPT4ge1xuICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgY29uc3QgYmVmb3JlVHJpZ2dlciA9IHRleHQuZW5kc1dpdGgodHJpZ2dlclBhcnQpID8gdGV4dC5zbGljZSgwLCAtdHJpZ2dlclBhcnQubGVuZ3RoKSA6IHRleHRcbiAgcmV0dXJuIHsgYmVmb3JlVHJpZ2dlciwgaXNFbXB0eUJlZm9yZVRyaWdnZXI6IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJyB9XG59XG5cbmV4cG9ydCBjb25zdCBzaG91bGRBcHBseUluaXRpYWxEcmFmdCA9IChcbiAgaW5pdGlhbERyYWZ0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBhbHJlYWR5QXBwbGllZDogYm9vbGVhbixcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IGJvb2xlYW4gPT4gQm9vbGVhbihpbml0aWFsRHJhZnQ/LnRyaW0oKSAmJiAhYWxyZWFkeUFwcGxpZWQgJiYgIWRpc2FibGVkKVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uQXV0b0ZvY3VzQ29udGV4dCA9IHtcbiAgcHJldmlvdXNBZ2VudElkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgY3VycmVudEFnZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBwcmV2aW91c0NoYXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGN1cnJlbnRDaGF0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBwcmV2aW91c05ld0NoYXRLZXk6IG51bWJlciB8IHVuZGVmaW5lZFxuICBjdXJyZW50TmV3Q2hhdEtleTogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU2Vzc2lvbkF1dG9Gb2N1c1BsYW4gPSAoXG4gIGN0eDogU2Vzc2lvbkF1dG9Gb2N1c0NvbnRleHRcbik6IHsgc2hvdWxkRm9jdXM6IHRydWU7IGRlbGF5TXM6IG51bWJlciB9IHwgeyBzaG91bGRGb2N1czogZmFsc2UgfSA9PiB7XG4gIGNvbnN0IGFnZW50Q2hhbmdlZCA9IGN0eC5wcmV2aW91c0FnZW50SWQgIT09IGN0eC5jdXJyZW50QWdlbnRJZFxuICBjb25zdCBjaGF0Q2hhbmdlZCA9IGN0eC5wcmV2aW91c0NoYXRJZCAhPT0gY3R4LmN1cnJlbnRDaGF0SWRcbiAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAoY3R4LnByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgY3R4LnByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJlxuICAgIGN0eC5jdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiZcbiAgICBjdHguY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICBjb25zdCBuZXdDaGF0U3RhcnRlZCA9IGN0eC5wcmV2aW91c05ld0NoYXRLZXkgIT09IGN0eC5jdXJyZW50TmV3Q2hhdEtleVxuICBjb25zdCBpc0luaXRpYWxNb3VudCA9IGN0eC5wcmV2aW91c0FnZW50SWQgPT09IHVuZGVmaW5lZCAmJiBjdHgucHJldmlvdXNDaGF0SWQgPT09IHVuZGVmaW5lZFxuXG4gIGlmIChcbiAgICAhKGFnZW50Q2hhbmdlZCB8fCBjaGF0Q2hhbmdlZCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgfHwgbmV3Q2hhdFN0YXJ0ZWQgfHwgaXNJbml0aWFsTW91bnQpIHx8XG4gICAgY3R4LmRpc2FibGVkXG4gICkge1xuICAgIHJldHVybiB7IHNob3VsZEZvY3VzOiBmYWxzZSB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNob3VsZEZvY3VzOiB0cnVlLFxuICAgIGRlbGF5TXM6IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMCxcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNYWlhSW5wdXRMYXlvdXRNb2RlID0gJ3NpZGViYXInIHwgJ2Z1bGxzY3JlZW4nIHwgJ2Zsb2F0aW5nJ1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkQXV0b0ZvY3VzT25MYXlvdXRNb2RlQ2hhbmdlID0gKFxuICBwcmV2aW91c0xheW91dE1vZGU6IE1haWFJbnB1dExheW91dE1vZGUgfCB1bmRlZmluZWQsXG4gIGxheW91dE1vZGU6IE1haWFJbnB1dExheW91dE1vZGUgfCB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKCFsYXlvdXRNb2RlIHx8IGRpc2FibGVkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgaWYgKHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gbGF5b3V0TW9kZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBpc1NwZWNpYWxpc3RDbG9uZUFnZW50Rm9yQXBwY3VlcyA9IChhZ2VudDogUGljazxBZ2VudCwgJ3R5cGUnIHwgJ2VudGl0eSc+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JylcblxuZXhwb3J0IGNvbnN0IGFnZW50SGFzQ29yQ29ubmVjdG9yQWNjZXNzID0gKGFnZW50OiBBZ2VudCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcbiAgaWYgKGFnZW50Py50eXBlICE9PSAnY3VzdG9tJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGFnZW50LmNvbm5lY3RvcnM/LnNvbWUoXG4gICAgICBjb25uZWN0b3IgPT5cbiAgICAgICAgY29ubmVjdG9yLmdyb3VwID09PSAnQ09SJyAmJiBjb25uZWN0b3Iuc2x1Z3Muc29tZShzbHVnID0+IHR5cGVvZiBzbHVnID09PSAnc3RyaW5nJyAmJiBzbHVnLnRyaW0oKS5sZW5ndGggPiAwKVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0Q3VzdG9tQWdlbnRNb2RlbERpc3BsYXlOYW1lID0gKGFnZW50OiBBZ2VudCB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKGFnZW50Py50eXBlICE9PSAnY3VzdG9tJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIGFnZW50Lm1vZGVsX2Rpc3BsYXlfbmFtZT8udHJpbSgpIHx8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IHNob3VsZFNob3dDdXN0b21BZ2VudE1ldGFJbmRpY2F0b3JzID0gKGhhc0NvckFjY2VzczogYm9vbGVhbiwgYWdlbnRNb2RlbE5hbWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+XG4gIGhhc0NvckFjY2VzcyB8fCBCb29sZWFuKGFnZW50TW9kZWxOYW1lKVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU2hvd01lbnRpb25Ub29sYmFyQnV0dG9uID0gKGFnZW50VHlwZTogQWdlbnRUeXBlIHwgdW5kZWZpbmVkLCBoYXNDb3JBY2Nlc3M6IGJvb2xlYW4pOiBib29sZWFuID0+XG4gIGFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgfHwgaGFzQ29yQWNjZXNzXG5cbmV4cG9ydCBjb25zdCBzaG91bGRTaG93SW5wdXRDaGlwc1JvdyA9IChjb250ZXh0SXRlbUNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGF0dGFjaG1lbnRDb3VudDogbnVtYmVyKTogYm9vbGVhbiA9PlxuICBCb29sZWFuKGNvbnRleHRJdGVtQ291bnQgfHwgYXR0YWNobWVudENvdW50KVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RhcnRUb29sQ2hpcEV4aXQgPSAoaXNXZWJTZWFyY2hBY3RpdmU6IGJvb2xlYW4sIGlzRGVlcFNlYXJjaEFjdGl2ZTogYm9vbGVhbik6IGJvb2xlYW4gPT5cbiAgaXNXZWJTZWFyY2hBY3RpdmUgfHwgaXNEZWVwU2VhcmNoQWN0aXZlXG5cbmV4cG9ydCB0eXBlIEFjdGl2ZVNlYXJjaE1vZGVzID0geyB3ZWI6IGJvb2xlYW47IGRlZXA6IGJvb2xlYW4gfVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVRvb2xDaGlwRXhpdFRvZ2dsZSA9IChcbiAgd2FzV2ViOiBib29sZWFuLFxuICB3YXNEZWVwOiBib29sZWFuLFxuICBzZWFyY2hNb2RlczogQWN0aXZlU2VhcmNoTW9kZXNcbik6ICd3ZWInIHwgJ2RlZXAnIHwgbnVsbCA9PiB7XG4gIGlmICh3YXNXZWIgJiYgc2VhcmNoTW9kZXMud2ViKSB7XG4gICAgcmV0dXJuICd3ZWInXG4gIH1cbiAgaWYgKHdhc0RlZXAgJiYgc2VhcmNoTW9kZXMuZGVlcCkge1xuICAgIHJldHVybiAnZGVlcCdcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hNb2RlUGx1c01lbnVBY3Rpb24gPVxuICB8IHsga2luZDogJ2RlYWN0aXZhdGVfdmlhX2NoaXBfZXhpdCcgfVxuICB8IHsga2luZDogJ2FjdGl2YXRlX3dlYic7IHR1cm5PZmZEZWVwOiBib29sZWFuIH1cbiAgfCB7IGtpbmQ6ICdhY3RpdmF0ZV9kZWVwJzsgdHVybk9mZldlYjogYm9vbGVhbiB9XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlV2ViU2VhcmNoUGx1c01lbnVBY3Rpb24gPSAoXG4gIGlzV2ViU2VhcmNoQWN0aXZlOiBib29sZWFuLFxuICBpc0RlZXBTZWFyY2hBY3RpdmU6IGJvb2xlYW5cbik6IFNlYXJjaE1vZGVQbHVzTWVudUFjdGlvbiA9PiB7XG4gIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgIHJldHVybiB7IGtpbmQ6ICdkZWFjdGl2YXRlX3ZpYV9jaGlwX2V4aXQnIH1cbiAgfVxuICByZXR1cm4geyBraW5kOiAnYWN0aXZhdGVfd2ViJywgdHVybk9mZkRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRGVlcFNlYXJjaFBsdXNNZW51QWN0aW9uID0gKFxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhbixcbiAgaXNEZWVwU2VhcmNoQWN0aXZlOiBib29sZWFuXG4pOiBTZWFyY2hNb2RlUGx1c01lbnVBY3Rpb24gPT4ge1xuICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgcmV0dXJuIHsga2luZDogJ2RlYWN0aXZhdGVfdmlhX2NoaXBfZXhpdCcgfVxuICB9XG4gIHJldHVybiB7IGtpbmQ6ICdhY3RpdmF0ZV9kZWVwJywgdHVybk9mZldlYjogaXNXZWJTZWFyY2hBY3RpdmUgfVxufVxuXG5leHBvcnQgdHlwZSBNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uSW5wdXQgPSB7XG4gIGNhcmV0VG9wOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gIGNhcmV0TGVmdDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZFxuICB3cmFwcGVyVG9wOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gIHdyYXBwZXJMZWZ0OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gIHdyYXBwZXJXaWR0aDogbnVtYmVyXG4gIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgdmlld3BvcnRXaWR0aDogbnVtYmVyXG4gIGRyb3Bkb3duV2lkdGhQeDogbnVtYmVyXG4gIG1heERyb3Bkb3duSGVpZ2h0UHg6IG51bWJlclxuICBnYXBQeDogbnVtYmVyXG4gIHZpZXdwb3J0UGFkUHg6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uID0ge1xuICBsZWZ0OiBudW1iZXJcbiAgYm90dG9tOiBudW1iZXJcbiAgbWF4SGVpZ2h0OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uID0gKFxuICBpbnB1dDogTWFpYUlucHV0RHJvcGRvd25Qb3NpdGlvbklucHV0XG4pOiBNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHRvcFNvdXJjZSA9IGlucHV0LmNhcmV0VG9wID8/IChpbnB1dC53cmFwcGVyV2lkdGggPiAwICYmIGlucHV0LndyYXBwZXJUb3AgIT0gbnVsbCA/IGlucHV0LndyYXBwZXJUb3AgOiBudWxsKVxuICBjb25zdCBsZWZ0U291cmNlID0gaW5wdXQuY2FyZXRMZWZ0ID8/IChpbnB1dC53cmFwcGVyV2lkdGggPiAwICYmIGlucHV0LndyYXBwZXJMZWZ0ICE9IG51bGwgPyBpbnB1dC53cmFwcGVyTGVmdCA6IG51bGwpXG5cbiAgaWYgKHRvcFNvdXJjZSA9PSBudWxsIHx8IGxlZnRTb3VyY2UgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgaW5wdXQudmlld3BvcnRQYWRQeCxcbiAgICBNYXRoLm1pbihpbnB1dC52aWV3cG9ydFdpZHRoIC0gaW5wdXQuZHJvcGRvd25XaWR0aFB4IC0gaW5wdXQudmlld3BvcnRQYWRQeCwgbGVmdFNvdXJjZSlcbiAgKVxuICBjb25zdCBhdmFpbGFibGVIZWlnaHRQeCA9IHRvcFNvdXJjZSAtIGlucHV0LmdhcFB4IC0gaW5wdXQudmlld3BvcnRQYWRQeFxuICBjb25zdCBtYXhIZWlnaHQgPSBNYXRoLm1pbihpbnB1dC5tYXhEcm9wZG93bkhlaWdodFB4LCBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHRQeCkpXG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0LFxuICAgIGJvdHRvbTogaW5wdXQudmlld3BvcnRIZWlnaHQgLSB0b3BTb3VyY2UgKyBpbnB1dC5nYXBQeCxcbiAgICBtYXhIZWlnaHQsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVNYWlhSW5wdXRTdHJlYW1pbmdEYXRhQXR0ciA9IChpc1N0cmVhbWluZzogYm9vbGVhbik6ICd0cnVlJyB8ICdmYWxzZScgPT5cbiAgaXNTdHJlYW1pbmcgPyAndHJ1ZScgOiAnZmFsc2UnXG5cbmV4cG9ydCB0eXBlIEFjdGl2ZVRvb2xDaGlwSWNvbk1vZGUgPSAnY2xvc2UnIHwgJ3dlYicgfCAnZGVlcCdcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVBY3RpdmVUb29sQ2hpcEljb25Nb2RlID0gKFxuICBhY3RpdmVUb29sQ2hpcEhvdmVyZWQ6IGJvb2xlYW4sXG4gIGlzV2ViU2VhcmNoQWN0aXZlOiBib29sZWFuXG4pOiBBY3RpdmVUb29sQ2hpcEljb25Nb2RlID0+IHtcbiAgaWYgKGFjdGl2ZVRvb2xDaGlwSG92ZXJlZCkgcmV0dXJuICdjbG9zZSdcbiAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSByZXR1cm4gJ3dlYidcbiAgcmV0dXJuICdkZWVwJ1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUFjdGl2ZVRvb2xDaGlwU2VhcmNoTGFiZWwgPSAocGFyYW1zOiB7XG4gIGFjdGl2ZVRvb2xDaGlwSG92ZXJlZDogYm9vbGVhblxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhblxuICB3ZWJTZWFyY2hMYWJlbDogc3RyaW5nXG4gIGRlZXBTZWFyY2hMYWJlbDogc3RyaW5nXG59KTogc3RyaW5nID0+XG4gIHBhcmFtcy5hY3RpdmVUb29sQ2hpcEhvdmVyZWQgfHwgcGFyYW1zLmlzV2ViU2VhcmNoQWN0aXZlID8gcGFyYW1zLndlYlNlYXJjaExhYmVsIDogcGFyYW1zLmRlZXBTZWFyY2hMYWJlbFxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU1lYXN1cmVkTGF5b3V0Um93SGVpZ2h0ID0gKGN1cnJlbnQ6IG51bWJlciwgbmV4dDogbnVtYmVyKTogbnVtYmVyID0+XG4gIGN1cnJlbnQgPT09IG5leHQgPyBjdXJyZW50IDogbmV4dFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkT2JzZXJ2ZU1haWFJbnB1dExheW91dEVsZW1lbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PlxuICBCb29sZWFuKGVsZW1lbnQpXG5cbmV4cG9ydCBjb25zdCBjYW5BdHRhY2hNb3JlQ2hhdElucHV0RmlsZXMgPSAoY3VycmVudEF0dGFjaG1lbnRDb3VudDogbnVtYmVyLCBtYXhBdHRhY2htZW50czogbnVtYmVyKTogYm9vbGVhbiA9PlxuICBjdXJyZW50QXR0YWNobWVudENvdW50IDwgbWF4QXR0YWNobWVudHNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esb0JBQW9CLFFBQVEsc0NBQXNDO0FBSTNFO0FBQ0EsT0FBTyxJQUFNQywyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJQyxLQUErQixFQUF5QjtFQUNsRyxJQUNHLENBQUFBLEtBQUssYUFBTEEsS0FBSyx1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
185
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1NraWxsc1BpbG90Q29tcGFueSIsInJlc29sdmVTbGFzaENvbW1hbmRzQWdlbnRJZCIsImFnZW50IiwidHlwZSIsImVudGl0eSIsImlkIiwidW5kZWZpbmVkIiwiZ2V0U2tpbGxNZW50aW9uSWRzIiwibWVudGlvbnMiLCJmaWx0ZXIiLCJtZW50aW9uIiwibWFwIiwiU3RyaW5nIiwiZ2V0UmVtb3ZlZFNraWxsTWVudGlvbklkcyIsInByZXZpb3VzSWRzIiwiY3VycmVudElkcyIsImN1cnJlbnRJZFNldCIsIlNldCIsInNraWxsSWQiLCJoYXMiLCJjYW5DcmVhdGVTa2lsbHNGcm9tSW5wdXQiLCJzaG93U2tpbGxzQnV0dG9uIiwiY29tcGFueUlkIiwiZ2V0QW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIiwiX2FnZW50JGVudGl0eSIsImlzU2VuZERpc2FibGVkIiwiaGFzVHlwaW5nUHJlc2VuY2UiLCJhdHRhY2htZW50Q291bnQiLCJjYW5TdWJtaXRDaGF0TWVzc2FnZSIsInRleHQiLCJCb29sZWFuIiwidHJpbSIsInNob3VsZFN1Ym1pdE9uRW50ZXIiLCJrZXkiLCJzaGlmdEtleSIsInBvcG92ZXJPcGVuIiwic2VuZERpc2FibGVkIiwiZGlzYWJsZWQiLCJoYXNFZGl0b3JUeXBpbmdQcmVzZW5jZSIsImxlbmd0aCIsInNob3VsZE9wZW5TbGFzaERyb3Bkb3duIiwic2xhc2hUcmlnZ2VyIiwic2xhc2hDb21tYW5kc0NvdW50IiwiYWN0aXZlIiwic2hvdWxkT3BlblNraWxsc0hhc2hEcm9wZG93biIsImhhc2hUcmlnZ2VyIiwicmVzb2x2ZVNsYXNoQ29tbWFuZEluc2VydENvbnRleHQiLCJzbGFzaFF1ZXJ5IiwidHJpZ2dlclBhcnQiLCJjb25jYXQiLCJiZWZvcmVUcmlnZ2VyIiwiZW5kc1dpdGgiLCJzbGljZSIsImlzRW1wdHlCZWZvcmVUcmlnZ2VyIiwic2hvdWxkQXBwbHlJbml0aWFsRHJhZnQiLCJpbml0aWFsRHJhZnQiLCJhbHJlYWR5QXBwbGllZCIsInJlc29sdmVTZXNzaW9uQXV0b0ZvY3VzUGxhbiIsImN0eCIsImFnZW50Q2hhbmdlZCIsInByZXZpb3VzQWdlbnRJZCIsImN1cnJlbnRBZ2VudElkIiwiY2hhdENoYW5nZWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsInByZXZpb3VzTmV3Q2hhdEtleSIsImN1cnJlbnROZXdDaGF0S2V5IiwiaXNJbml0aWFsTW91bnQiLCJzaG91bGRGb2N1cyIsImRlbGF5TXMiLCJzaG91bGRBdXRvRm9jdXNPbkxheW91dE1vZGVDaGFuZ2UiLCJwcmV2aW91c0xheW91dE1vZGUiLCJsYXlvdXRNb2RlIiwiaXNTcGVjaWFsaXN0Q2xvbmVBZ2VudEZvckFwcGN1ZXMiLCJhZ2VudEhhc0NvckNvbm5lY3RvckFjY2VzcyIsIl9hZ2VudCRjb25uZWN0b3JzIiwiY29ubmVjdG9ycyIsInNvbWUiLCJjb25uZWN0b3IiLCJncm91cCIsInNsdWdzIiwic2x1ZyIsImdldEN1c3RvbUFnZW50TW9kZWxEaXNwbGF5TmFtZSIsIl9hZ2VudCRtb2RlbF9kaXNwbGF5XyIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsInNob3VsZFNob3dDdXN0b21BZ2VudE1ldGFJbmRpY2F0b3JzIiwiaGFzQ29yQWNjZXNzIiwiYWdlbnRNb2RlbE5hbWUiLCJzaG91bGRTaG93TWVudGlvblRvb2xiYXJCdXR0b24iLCJhZ2VudFR5cGUiLCJzaG91bGRTaG93SW5wdXRDaGlwc1JvdyIsImNvbnRleHRJdGVtQ291bnQiLCJzaG91bGRTdGFydFRvb2xDaGlwRXhpdCIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwicmVzb2x2ZVRvb2xDaGlwRXhpdFRvZ2dsZSIsIndhc1dlYiIsIndhc0RlZXAiLCJzZWFyY2hNb2RlcyIsIndlYiIsImRlZXAiLCJyZXNvbHZlV2ViU2VhcmNoUGx1c01lbnVBY3Rpb24iLCJraW5kIiwidHVybk9mZkRlZXAiLCJyZXNvbHZlRGVlcFNlYXJjaFBsdXNNZW51QWN0aW9uIiwidHVybk9mZldlYiIsInJlc29sdmVNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uIiwiaW5wdXQiLCJfaW5wdXQkY2FyZXRUb3AiLCJfaW5wdXQkY2FyZXRMZWZ0IiwidG9wU291cmNlIiwiY2FyZXRUb3AiLCJ3cmFwcGVyV2lkdGgiLCJ3cmFwcGVyVG9wIiwibGVmdFNvdXJjZSIsImNhcmV0TGVmdCIsIndyYXBwZXJMZWZ0IiwibGVmdCIsIk1hdGgiLCJtYXgiLCJ2aWV3cG9ydFBhZFB4IiwibWluIiwidmlld3BvcnRXaWR0aCIsImRyb3Bkb3duV2lkdGhQeCIsImF2YWlsYWJsZUhlaWdodFB4IiwiZ2FwUHgiLCJtYXhIZWlnaHQiLCJtYXhEcm9wZG93bkhlaWdodFB4IiwiYm90dG9tIiwidmlld3BvcnRIZWlnaHQiLCJyZXNvbHZlTWFpYUlucHV0U3RyZWFtaW5nRGF0YUF0dHIiLCJpc1N0cmVhbWluZyIsInJlc29sdmVBY3RpdmVUb29sQ2hpcEljb25Nb2RlIiwiYWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwicmVzb2x2ZUFjdGl2ZVRvb2xDaGlwU2VhcmNoTGFiZWwiLCJwYXJhbXMiLCJ3ZWJTZWFyY2hMYWJlbCIsImRlZXBTZWFyY2hMYWJlbCIsInJlc29sdmVNZWFzdXJlZExheW91dFJvd0hlaWdodCIsImN1cnJlbnQiLCJuZXh0Iiwic2hvdWxkT2JzZXJ2ZU1haWFJbnB1dExheW91dEVsZW1lbnQiLCJlbGVtZW50IiwiY2FuQXR0YWNoTW9yZUNoYXRJbnB1dEZpbGVzIiwiY3VycmVudEF0dGFjaG1lbnRDb3VudCIsIm1heEF0dGFjaG1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L01BSUFJbnB1dC5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2tpbGxzUGlsb3RDb21wYW55IH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBBZ2VudCwgQWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgdHlwZSB7IENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5cbi8qKiBBZ2VudCBpZCBwYXJhIHNsYXNoIGNvbW1hbmRzIChvcmNoZXN0cmF0b3IgZ2xvYmFsIG8gY2xvbmUgZXNwZWNpYWxpc3RhKS4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlU2xhc2hDb21tYW5kc0FnZW50SWQgPSAoYWdlbnQ6IEFnZW50IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChcbiAgICAoYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InICYmIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnKSB8fFxuICAgIChhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiBhZ2VudD8uZW50aXR5ICE9PSAnZ2xvYmFsJylcbiAgKSB7XG4gICAgcmV0dXJuIGFnZW50LmlkXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgY29uc3QgZ2V0U2tpbGxNZW50aW9uSWRzID0gKG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdKTogc3RyaW5nW10gPT5cbiAgbWVudGlvbnMuZmlsdGVyKG1lbnRpb24gPT4gbWVudGlvbi50eXBlID09PSAnc2tpbGwnKS5tYXAobWVudGlvbiA9PiBTdHJpbmcobWVudGlvbi5pZCkpXG5cbmV4cG9ydCBjb25zdCBnZXRSZW1vdmVkU2tpbGxNZW50aW9uSWRzID0gKHByZXZpb3VzSWRzOiBzdHJpbmdbXSwgY3VycmVudElkczogc3RyaW5nW10pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRJZFNldCA9IG5ldyBTZXQoY3VycmVudElkcylcbiAgcmV0dXJuIHByZXZpb3VzSWRzLmZpbHRlcihza2lsbElkID0+ICFjdXJyZW50SWRTZXQuaGFzKHNraWxsSWQpKVxufVxuXG5leHBvcnQgY29uc3QgY2FuQ3JlYXRlU2tpbGxzRnJvbUlucHV0ID0gKHNob3dTa2lsbHNCdXR0b246IGJvb2xlYW4sIGNvbXBhbnlJZDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgc2hvd1NraWxsc0J1dHRvbiAmJiBpc1NraWxsc1BpbG90Q29tcGFueShjb21wYW55SWQgPz8gdW5kZWZpbmVkKVxuXG5leHBvcnQgY29uc3QgZ2V0QW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkID0gKFxuICBhZ2VudDogUGljazxBZ2VudCwgJ3R5cGUnIHwgJ2VudGl0eSc+IHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogeyBlbnRpdHk6IEFnZW50WydlbnRpdHknXSB8IG51bGwgfSB8IFJlY29yZDxzdHJpbmcsIG5ldmVyPiA9PlxuICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IHsgZW50aXR5OiBhZ2VudC5lbnRpdHkgPz8gbnVsbCB9IDoge31cblxuZXhwb3J0IGNvbnN0IGlzU2VuZERpc2FibGVkID0gKGhhc1R5cGluZ1ByZXNlbmNlOiBib29sZWFuLCBhdHRhY2htZW50Q291bnQ6IG51bWJlcik6IGJvb2xlYW4gPT5cbiAgIWhhc1R5cGluZ1ByZXNlbmNlICYmIGF0dGFjaG1lbnRDb3VudCA9PT0gMFxuXG5leHBvcnQgY29uc3QgY2FuU3VibWl0Q2hhdE1lc3NhZ2UgPSAodGV4dDogc3RyaW5nLCBhdHRhY2htZW50Q291bnQ6IG51bWJlcik6IGJvb2xlYW4gPT5cbiAgQm9vbGVhbih0ZXh0LnRyaW0oKSkgfHwgYXR0YWNobWVudENvdW50ID4gMFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU3VibWl0T25FbnRlciA9IChcbiAga2V5OiBzdHJpbmcsXG4gIHNoaWZ0S2V5OiBib29sZWFuLFxuICBwb3BvdmVyT3BlbjogYm9vbGVhbixcbiAgc2VuZERpc2FibGVkOiBib29sZWFuLFxuICBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiA9PiBrZXkgPT09ICdFbnRlcicgJiYgIXNoaWZ0S2V5ICYmICFwb3BvdmVyT3BlbiAmJiAhc2VuZERpc2FibGVkICYmICFkaXNhYmxlZFxuXG5leHBvcnQgY29uc3QgaGFzRWRpdG9yVHlwaW5nUHJlc2VuY2UgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG5cbmV4cG9ydCBjb25zdCBzaG91bGRPcGVuU2xhc2hEcm9wZG93biA9IChcbiAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9IHwgdW5kZWZpbmVkLFxuICBzbGFzaENvbW1hbmRzQ291bnQ6IG51bWJlclxuKTogYm9vbGVhbiA9PiBCb29sZWFuKHNsYXNoVHJpZ2dlcj8uYWN0aXZlICYmIHNsYXNoQ29tbWFuZHNDb3VudCA+IDApXG5cbmV4cG9ydCBjb25zdCBzaG91bGRPcGVuU2tpbGxzSGFzaERyb3Bkb3duID0gKFxuICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCxcbiAgc2hvd1NraWxsc0J1dHRvbjogYm9vbGVhblxuKTogYm9vbGVhbiA9PiBCb29sZWFuKGhhc2hUcmlnZ2VyPy5hY3RpdmUgJiYgc2hvd1NraWxsc0J1dHRvbilcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVTbGFzaENvbW1hbmRJbnNlcnRDb250ZXh0ID0gKFxuICB0ZXh0OiBzdHJpbmcsXG4gIHNsYXNoUXVlcnk6IHN0cmluZ1xuKTogeyBiZWZvcmVUcmlnZ2VyOiBzdHJpbmc7IGlzRW1wdHlCZWZvcmVUcmlnZ2VyOiBib29sZWFuIH0gPT4ge1xuICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgY29uc3QgYmVmb3JlVHJpZ2dlciA9IHRleHQuZW5kc1dpdGgodHJpZ2dlclBhcnQpID8gdGV4dC5zbGljZSgwLCAtdHJpZ2dlclBhcnQubGVuZ3RoKSA6IHRleHRcbiAgcmV0dXJuIHsgYmVmb3JlVHJpZ2dlciwgaXNFbXB0eUJlZm9yZVRyaWdnZXI6IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJyB9XG59XG5cbmV4cG9ydCBjb25zdCBzaG91bGRBcHBseUluaXRpYWxEcmFmdCA9IChcbiAgaW5pdGlhbERyYWZ0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBhbHJlYWR5QXBwbGllZDogYm9vbGVhbixcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IGJvb2xlYW4gPT4gQm9vbGVhbihpbml0aWFsRHJhZnQ/LnRyaW0oKSAmJiAhYWxyZWFkeUFwcGxpZWQgJiYgIWRpc2FibGVkKVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uQXV0b0ZvY3VzQ29udGV4dCA9IHtcbiAgcHJldmlvdXNBZ2VudElkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgY3VycmVudEFnZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBwcmV2aW91c0NoYXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGN1cnJlbnRDaGF0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBwcmV2aW91c05ld0NoYXRLZXk6IG51bWJlciB8IHVuZGVmaW5lZFxuICBjdXJyZW50TmV3Q2hhdEtleTogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU2Vzc2lvbkF1dG9Gb2N1c1BsYW4gPSAoXG4gIGN0eDogU2Vzc2lvbkF1dG9Gb2N1c0NvbnRleHRcbik6IHsgc2hvdWxkRm9jdXM6IHRydWU7IGRlbGF5TXM6IG51bWJlciB9IHwgeyBzaG91bGRGb2N1czogZmFsc2UgfSA9PiB7XG4gIGNvbnN0IGFnZW50Q2hhbmdlZCA9IGN0eC5wcmV2aW91c0FnZW50SWQgIT09IGN0eC5jdXJyZW50QWdlbnRJZFxuICBjb25zdCBjaGF0Q2hhbmdlZCA9IGN0eC5wcmV2aW91c0NoYXRJZCAhPT0gY3R4LmN1cnJlbnRDaGF0SWRcbiAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAoY3R4LnByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgY3R4LnByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJlxuICAgIGN0eC5jdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiZcbiAgICBjdHguY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICBjb25zdCBuZXdDaGF0U3RhcnRlZCA9IGN0eC5wcmV2aW91c05ld0NoYXRLZXkgIT09IGN0eC5jdXJyZW50TmV3Q2hhdEtleVxuICBjb25zdCBpc0luaXRpYWxNb3VudCA9IGN0eC5wcmV2aW91c0FnZW50SWQgPT09IHVuZGVmaW5lZCAmJiBjdHgucHJldmlvdXNDaGF0SWQgPT09IHVuZGVmaW5lZFxuXG4gIGlmIChcbiAgICAhKGFnZW50Q2hhbmdlZCB8fCBjaGF0Q2hhbmdlZCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgfHwgbmV3Q2hhdFN0YXJ0ZWQgfHwgaXNJbml0aWFsTW91bnQpIHx8XG4gICAgY3R4LmRpc2FibGVkXG4gICkge1xuICAgIHJldHVybiB7IHNob3VsZEZvY3VzOiBmYWxzZSB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNob3VsZEZvY3VzOiB0cnVlLFxuICAgIGRlbGF5TXM6IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMCxcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNYWlhSW5wdXRMYXlvdXRNb2RlID0gJ3NpZGViYXInIHwgJ2Z1bGxzY3JlZW4nIHwgJ2Zsb2F0aW5nJ1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkQXV0b0ZvY3VzT25MYXlvdXRNb2RlQ2hhbmdlID0gKFxuICBwcmV2aW91c0xheW91dE1vZGU6IE1haWFJbnB1dExheW91dE1vZGUgfCB1bmRlZmluZWQsXG4gIGxheW91dE1vZGU6IE1haWFJbnB1dExheW91dE1vZGUgfCB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKCFsYXlvdXRNb2RlIHx8IGRpc2FibGVkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgaWYgKHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gbGF5b3V0TW9kZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBpc1NwZWNpYWxpc3RDbG9uZUFnZW50Rm9yQXBwY3VlcyA9IChhZ2VudDogUGljazxBZ2VudCwgJ3R5cGUnIHwgJ2VudGl0eSc+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JylcblxuZXhwb3J0IGNvbnN0IGFnZW50SGFzQ29yQ29ubmVjdG9yQWNjZXNzID0gKGFnZW50OiBBZ2VudCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcbiAgaWYgKGFnZW50Py50eXBlICE9PSAnY3VzdG9tJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGFnZW50LmNvbm5lY3RvcnM/LnNvbWUoXG4gICAgICBjb25uZWN0b3IgPT5cbiAgICAgICAgY29ubmVjdG9yLmdyb3VwID09PSAnQ09SJyAmJiBjb25uZWN0b3Iuc2x1Z3Muc29tZShzbHVnID0+IHR5cGVvZiBzbHVnID09PSAnc3RyaW5nJyAmJiBzbHVnLnRyaW0oKS5sZW5ndGggPiAwKVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0Q3VzdG9tQWdlbnRNb2RlbERpc3BsYXlOYW1lID0gKGFnZW50OiBBZ2VudCB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKGFnZW50Py50eXBlICE9PSAnY3VzdG9tJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIGFnZW50Lm1vZGVsX2Rpc3BsYXlfbmFtZT8udHJpbSgpIHx8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IHNob3VsZFNob3dDdXN0b21BZ2VudE1ldGFJbmRpY2F0b3JzID0gKGhhc0NvckFjY2VzczogYm9vbGVhbiwgYWdlbnRNb2RlbE5hbWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+XG4gIGhhc0NvckFjY2VzcyB8fCBCb29sZWFuKGFnZW50TW9kZWxOYW1lKVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU2hvd01lbnRpb25Ub29sYmFyQnV0dG9uID0gKGFnZW50VHlwZTogQWdlbnRUeXBlIHwgdW5kZWZpbmVkLCBoYXNDb3JBY2Nlc3M6IGJvb2xlYW4pOiBib29sZWFuID0+XG4gIGFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgfHwgaGFzQ29yQWNjZXNzXG5cbmV4cG9ydCBjb25zdCBzaG91bGRTaG93SW5wdXRDaGlwc1JvdyA9IChjb250ZXh0SXRlbUNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGF0dGFjaG1lbnRDb3VudDogbnVtYmVyKTogYm9vbGVhbiA9PlxuICBCb29sZWFuKGNvbnRleHRJdGVtQ291bnQgfHwgYXR0YWNobWVudENvdW50KVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RhcnRUb29sQ2hpcEV4aXQgPSAoaXNXZWJTZWFyY2hBY3RpdmU6IGJvb2xlYW4sIGlzRGVlcFNlYXJjaEFjdGl2ZTogYm9vbGVhbik6IGJvb2xlYW4gPT5cbiAgaXNXZWJTZWFyY2hBY3RpdmUgfHwgaXNEZWVwU2VhcmNoQWN0aXZlXG5cbmV4cG9ydCB0eXBlIEFjdGl2ZVNlYXJjaE1vZGVzID0geyB3ZWI6IGJvb2xlYW47IGRlZXA6IGJvb2xlYW4gfVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVRvb2xDaGlwRXhpdFRvZ2dsZSA9IChcbiAgd2FzV2ViOiBib29sZWFuLFxuICB3YXNEZWVwOiBib29sZWFuLFxuICBzZWFyY2hNb2RlczogQWN0aXZlU2VhcmNoTW9kZXNcbik6ICd3ZWInIHwgJ2RlZXAnIHwgbnVsbCA9PiB7XG4gIGlmICh3YXNXZWIgJiYgc2VhcmNoTW9kZXMud2ViKSB7XG4gICAgcmV0dXJuICd3ZWInXG4gIH1cbiAgaWYgKHdhc0RlZXAgJiYgc2VhcmNoTW9kZXMuZGVlcCkge1xuICAgIHJldHVybiAnZGVlcCdcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hNb2RlUGx1c01lbnVBY3Rpb24gPVxuICB8IHsga2luZDogJ2RlYWN0aXZhdGVfdmlhX2NoaXBfZXhpdCcgfVxuICB8IHsga2luZDogJ2FjdGl2YXRlX3dlYic7IHR1cm5PZmZEZWVwOiBib29sZWFuIH1cbiAgfCB7IGtpbmQ6ICdhY3RpdmF0ZV9kZWVwJzsgdHVybk9mZldlYjogYm9vbGVhbiB9XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlV2ViU2VhcmNoUGx1c01lbnVBY3Rpb24gPSAoXG4gIGlzV2ViU2VhcmNoQWN0aXZlOiBib29sZWFuLFxuICBpc0RlZXBTZWFyY2hBY3RpdmU6IGJvb2xlYW5cbik6IFNlYXJjaE1vZGVQbHVzTWVudUFjdGlvbiA9PiB7XG4gIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgIHJldHVybiB7IGtpbmQ6ICdkZWFjdGl2YXRlX3ZpYV9jaGlwX2V4aXQnIH1cbiAgfVxuICByZXR1cm4geyBraW5kOiAnYWN0aXZhdGVfd2ViJywgdHVybk9mZkRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRGVlcFNlYXJjaFBsdXNNZW51QWN0aW9uID0gKFxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhbixcbiAgaXNEZWVwU2VhcmNoQWN0aXZlOiBib29sZWFuXG4pOiBTZWFyY2hNb2RlUGx1c01lbnVBY3Rpb24gPT4ge1xuICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgcmV0dXJuIHsga2luZDogJ2RlYWN0aXZhdGVfdmlhX2NoaXBfZXhpdCcgfVxuICB9XG4gIHJldHVybiB7IGtpbmQ6ICdhY3RpdmF0ZV9kZWVwJywgdHVybk9mZldlYjogaXNXZWJTZWFyY2hBY3RpdmUgfVxufVxuXG5leHBvcnQgdHlwZSBNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uSW5wdXQgPSB7XG4gIGNhcmV0VG9wOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gIGNhcmV0TGVmdDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZFxuICB3cmFwcGVyVG9wOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gIHdyYXBwZXJMZWZ0OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gIHdyYXBwZXJXaWR0aDogbnVtYmVyXG4gIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgdmlld3BvcnRXaWR0aDogbnVtYmVyXG4gIGRyb3Bkb3duV2lkdGhQeDogbnVtYmVyXG4gIG1heERyb3Bkb3duSGVpZ2h0UHg6IG51bWJlclxuICBnYXBQeDogbnVtYmVyXG4gIHZpZXdwb3J0UGFkUHg6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uID0ge1xuICBsZWZ0OiBudW1iZXJcbiAgYm90dG9tOiBudW1iZXJcbiAgbWF4SGVpZ2h0OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uID0gKFxuICBpbnB1dDogTWFpYUlucHV0RHJvcGRvd25Qb3NpdGlvbklucHV0XG4pOiBNYWlhSW5wdXREcm9wZG93blBvc2l0aW9uIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHRvcFNvdXJjZSA9IGlucHV0LmNhcmV0VG9wID8/IChpbnB1dC53cmFwcGVyV2lkdGggPiAwICYmIGlucHV0LndyYXBwZXJUb3AgIT0gbnVsbCA/IGlucHV0LndyYXBwZXJUb3AgOiBudWxsKVxuICBjb25zdCBsZWZ0U291cmNlID0gaW5wdXQuY2FyZXRMZWZ0ID8/IChpbnB1dC53cmFwcGVyV2lkdGggPiAwICYmIGlucHV0LndyYXBwZXJMZWZ0ICE9IG51bGwgPyBpbnB1dC53cmFwcGVyTGVmdCA6IG51bGwpXG5cbiAgaWYgKHRvcFNvdXJjZSA9PSBudWxsIHx8IGxlZnRTb3VyY2UgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgaW5wdXQudmlld3BvcnRQYWRQeCxcbiAgICBNYXRoLm1pbihpbnB1dC52aWV3cG9ydFdpZHRoIC0gaW5wdXQuZHJvcGRvd25XaWR0aFB4IC0gaW5wdXQudmlld3BvcnRQYWRQeCwgbGVmdFNvdXJjZSlcbiAgKVxuICBjb25zdCBhdmFpbGFibGVIZWlnaHRQeCA9IHRvcFNvdXJjZSAtIGlucHV0LmdhcFB4IC0gaW5wdXQudmlld3BvcnRQYWRQeFxuICBjb25zdCBtYXhIZWlnaHQgPSBNYXRoLm1pbihpbnB1dC5tYXhEcm9wZG93bkhlaWdodFB4LCBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHRQeCkpXG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0LFxuICAgIGJvdHRvbTogaW5wdXQudmlld3BvcnRIZWlnaHQgLSB0b3BTb3VyY2UgKyBpbnB1dC5nYXBQeCxcbiAgICBtYXhIZWlnaHQsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVNYWlhSW5wdXRTdHJlYW1pbmdEYXRhQXR0ciA9IChpc1N0cmVhbWluZzogYm9vbGVhbik6ICd0cnVlJyB8ICdmYWxzZScgPT5cbiAgaXNTdHJlYW1pbmcgPyAndHJ1ZScgOiAnZmFsc2UnXG5cbmV4cG9ydCB0eXBlIEFjdGl2ZVRvb2xDaGlwSWNvbk1vZGUgPSAnY2xvc2UnIHwgJ3dlYicgfCAnZGVlcCdcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVBY3RpdmVUb29sQ2hpcEljb25Nb2RlID0gKFxuICBhY3RpdmVUb29sQ2hpcEhvdmVyZWQ6IGJvb2xlYW4sXG4gIGlzV2ViU2VhcmNoQWN0aXZlOiBib29sZWFuXG4pOiBBY3RpdmVUb29sQ2hpcEljb25Nb2RlID0+IHtcbiAgaWYgKGFjdGl2ZVRvb2xDaGlwSG92ZXJlZCkgcmV0dXJuICdjbG9zZSdcbiAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSByZXR1cm4gJ3dlYidcbiAgcmV0dXJuICdkZWVwJ1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUFjdGl2ZVRvb2xDaGlwU2VhcmNoTGFiZWwgPSAocGFyYW1zOiB7XG4gIGFjdGl2ZVRvb2xDaGlwSG92ZXJlZDogYm9vbGVhblxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhblxuICB3ZWJTZWFyY2hMYWJlbDogc3RyaW5nXG4gIGRlZXBTZWFyY2hMYWJlbDogc3RyaW5nXG59KTogc3RyaW5nID0+XG4gIHBhcmFtcy5hY3RpdmVUb29sQ2hpcEhvdmVyZWQgfHwgcGFyYW1zLmlzV2ViU2VhcmNoQWN0aXZlID8gcGFyYW1zLndlYlNlYXJjaExhYmVsIDogcGFyYW1zLmRlZXBTZWFyY2hMYWJlbFxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU1lYXN1cmVkTGF5b3V0Um93SGVpZ2h0ID0gKGN1cnJlbnQ6IG51bWJlciwgbmV4dDogbnVtYmVyKTogbnVtYmVyID0+XG4gIGN1cnJlbnQgPT09IG5leHQgPyBjdXJyZW50IDogbmV4dFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkT2JzZXJ2ZU1haWFJbnB1dExheW91dEVsZW1lbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PlxuICBCb29sZWFuKGVsZW1lbnQpXG5cbmV4cG9ydCBjb25zdCBjYW5BdHRhY2hNb3JlQ2hhdElucHV0RmlsZXMgPSAoY3VycmVudEF0dGFjaG1lbnRDb3VudDogbnVtYmVyLCBtYXhBdHRhY2htZW50czogbnVtYmVyKTogYm9vbGVhbiA9PlxuICBjdXJyZW50QXR0YWNobWVudENvdW50IDwgbWF4QXR0YWNobWVudHNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esb0JBQW9CLFFBQVEsc0NBQXNDO0FBSTNFO0FBQ0EsT0FBTyxJQUFNQywyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJQyxLQUErQixFQUF5QjtFQUNsRyxJQUNHLENBQUFBLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFQyxJQUFJLE1BQUssY0FBYyxJQUFJLENBQUFELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFRSxNQUFNLE1BQUssUUFBUSxJQUM1RCxDQUFBRixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUMsSUFBSSxNQUFLLE9BQU8sSUFBSSxDQUFBRCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUUsTUFBTSxNQUFLLFFBQVMsRUFDdkQ7SUFDQSxPQUFPRixLQUFLLENBQUNHLEVBQUU7RUFDakI7RUFDQSxPQUFPQyxTQUFTO0FBQ2xCLENBQUM7QUFFRCxPQUFPLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLFFBQTBCO0VBQUEsT0FDM0RBLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLFVBQUFDLE9BQU87SUFBQSxPQUFJQSxPQUFPLENBQUNQLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQyxDQUFDUSxHQUFHLENBQUMsVUFBQUQsT0FBTztJQUFBLE9BQUlFLE1BQU0sQ0FBQ0YsT0FBTyxDQUFDTCxFQUFFLENBQUM7RUFBQSxFQUFDO0FBQUE7QUFFekYsT0FBTyxJQUFNUSx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxXQUFxQixFQUFFQyxVQUFvQixFQUFlO0VBQ2xHLElBQU1DLFlBQVksR0FBRyxJQUFJQyxHQUFHLENBQUNGLFVBQVUsQ0FBQztFQUN4QyxPQUFPRCxXQUFXLENBQUNMLE1BQU0sQ0FBQyxVQUFBUyxPQUFPO0lBQUEsT0FBSSxDQUFDRixZQUFZLENBQUNHLEdBQUcsQ0FBQ0QsT0FBTyxDQUFDO0VBQUEsRUFBQztBQUNsRSxDQUFDO0FBRUQsT0FBTyxJQUFNRSx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJQyxnQkFBeUIsRUFBRUMsU0FBb0M7RUFBQSxPQUN0R0QsZ0JBQWdCLElBQUlyQixvQkFBb0IsQ0FBQ3NCLFNBQVMsYUFBVEEsU0FBUyxjQUFUQSxTQUFTLEdBQUloQixTQUFTLENBQUM7QUFBQTtBQUVsRSxPQUFPLElBQU1pQiw4QkFBOEIsR0FBRyxTQUFqQ0EsOEJBQThCQSxDQUN6Q3JCLEtBQXdEO0VBQUEsSUFBQXNCLGFBQUE7RUFBQSxPQUV4RCxDQUFBdEIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVDLElBQUksTUFBSyxPQUFPLEdBQUc7SUFBRUMsTUFBTSxHQUFBb0IsYUFBQSxHQUFFdEIsS0FBSyxDQUFDRSxNQUFNLGNBQUFvQixhQUFBLGNBQUFBLGFBQUEsR0FBSTtFQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFBQTtBQUVqRSxPQUFPLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUMsaUJBQTBCLEVBQUVDLGVBQXVCO0VBQUEsT0FDaEYsQ0FBQ0QsaUJBQWlCLElBQUlDLGVBQWUsS0FBSyxDQUFDO0FBQUE7QUFFN0MsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxJQUFZLEVBQUVGLGVBQXVCO0VBQUEsT0FDeEVHLE9BQU8sQ0FBQ0QsSUFBSSxDQUFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUlKLGVBQWUsR0FBRyxDQUFDO0FBQUE7QUFFN0MsT0FBTyxJQUFNSyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUM5QkMsR0FBVyxFQUNYQyxRQUFpQixFQUNqQkMsV0FBb0IsRUFDcEJDLFlBQXFCLEVBQ3JCQyxRQUE2QjtFQUFBLE9BQ2pCSixHQUFHLEtBQUssT0FBTyxJQUFJLENBQUNDLFFBQVEsSUFBSSxDQUFDQyxXQUFXLElBQUksQ0FBQ0MsWUFBWSxJQUFJLENBQUNDLFFBQVE7QUFBQTtBQUV4RixPQUFPLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlULElBQVk7RUFBQSxPQUFjQSxJQUFJLENBQUNFLElBQUksQ0FBQyxDQUFDLENBQUNRLE1BQU0sR0FBRyxDQUFDO0FBQUE7QUFFeEYsT0FBTyxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUNsQ0MsWUFBNEQsRUFDNURDLGtCQUEwQjtFQUFBLE9BQ2RaLE9BQU8sQ0FBQyxDQUFBVyxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRUUsTUFBTSxLQUFJRCxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFBQTtBQUVyRSxPQUFPLElBQU1FLDRCQUE0QixHQUFHLFNBQS9CQSw0QkFBNEJBLENBQ3ZDQyxXQUEyRCxFQUMzRHhCLGdCQUF5QjtFQUFBLE9BQ2JTLE9BQU8sQ0FBQyxDQUFBZSxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRUYsTUFBTSxLQUFJdEIsZ0JBQWdCLENBQUM7QUFBQTtBQUU5RCxPQUFPLElBQU15QixnQ0FBZ0MsR0FBRyxTQUFuQ0EsZ0NBQWdDQSxDQUMzQ2pCLElBQVksRUFDWmtCLFVBQWtCLEVBQzJDO0VBQzdELElBQU1DLFdBQVcsT0FBQUMsTUFBQSxDQUFPRixVQUFVLENBQUU7RUFDcEMsSUFBTUcsYUFBYSxHQUFHckIsSUFBSSxDQUFDc0IsUUFBUSxDQUFDSCxXQUFXLENBQUMsR0FBR25CLElBQUksQ0FBQ3VCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQ0osV0FBVyxDQUFDVCxNQUFNLENBQUMsR0FBR1YsSUFBSTtFQUM1RixPQUFPO0lBQUVxQixhQUFhLEVBQWJBLGFBQWE7SUFBRUcsb0JBQW9CLEVBQUVILGFBQWEsQ0FBQ25CLElBQUksQ0FBQyxDQUFDLEtBQUs7RUFBRyxDQUFDO0FBQzdFLENBQUM7QUFFRCxPQUFPLElBQU11Qix1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUNsQ0MsWUFBdUMsRUFDdkNDLGNBQXVCLEVBQ3ZCbkIsUUFBNkI7RUFBQSxPQUNqQlAsT0FBTyxDQUFDLENBQUF5QixZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRXhCLElBQUksQ0FBQyxDQUFDLEtBQUksQ0FBQ3lCLGNBQWMsSUFBSSxDQUFDbkIsUUFBUSxDQUFDO0FBQUE7QUFZM0UsT0FBTyxJQUFNb0IsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUEyQkEsQ0FDdENDLEdBQTRCLEVBQ3dDO0VBQ3BFLElBQU1DLFlBQVksR0FBR0QsR0FBRyxDQUFDRSxlQUFlLEtBQUtGLEdBQUcsQ0FBQ0csY0FBYztFQUMvRCxJQUFNQyxXQUFXLEdBQUdKLEdBQUcsQ0FBQ0ssY0FBYyxLQUFLTCxHQUFHLENBQUNNLGFBQWE7RUFDNUQsSUFBTUMsMkJBQTJCLEdBQy9CLENBQUNQLEdBQUcsQ0FBQ0ssY0FBYyxLQUFLekQsU0FBUyxJQUFJb0QsR0FBRyxDQUFDSyxjQUFjLEtBQUssSUFBSSxLQUNoRUwsR0FBRyxDQUFDTSxhQUFhLEtBQUsxRCxTQUFTLElBQy9Cb0QsR0FBRyxDQUFDTSxhQUFhLEtBQUssSUFBSTtFQUM1QixJQUFNRSxjQUFjLEdBQUdSLEdBQUcsQ0FBQ1Msa0JBQWtCLEtBQUtULEdBQUcsQ0FBQ1UsaUJBQWlCO0VBQ3ZFLElBQU1DLGNBQWMsR0FBR1gsR0FBRyxDQUFDRSxlQUFlLEtBQUt0RCxTQUFTLElBQUlvRCxHQUFHLENBQUNLLGNBQWMsS0FBS3pELFNBQVM7RUFFNUYsSUFDRSxFQUFFcUQsWUFBWSxJQUFJRyxXQUFXLElBQUlHLDJCQUEyQixJQUFJQyxjQUFjLElBQUlHLGNBQWMsQ0FBQyxJQUNqR1gsR0FBRyxDQUFDckIsUUFBUSxFQUNaO0lBQ0EsT0FBTztNQUFFaUMsV0FBVyxFQUFFO0lBQU0sQ0FBQztFQUMvQjtFQUVBLE9BQU87SUFDTEEsV0FBVyxFQUFFLElBQUk7SUFDakJDLE9BQU8sRUFBRUYsY0FBYyxJQUFJSiwyQkFBMkIsR0FBRyxHQUFHLEdBQUc7RUFDakUsQ0FBQztBQUNILENBQUM7QUFJRCxPQUFPLElBQU1PLGlDQUFpQyxHQUFHLFNBQXBDQSxpQ0FBaUNBLENBQzVDQyxrQkFBbUQsRUFDbkRDLFVBQTJDLEVBQzNDckMsUUFBNkIsRUFDakI7RUFDWixJQUFJLENBQUNxQyxVQUFVLElBQUlyQyxRQUFRLEVBQUU7SUFDM0IsT0FBTyxLQUFLO0VBQ2Q7RUFDQSxJQUFJb0Msa0JBQWtCLEtBQUtuRSxTQUFTLElBQUltRSxrQkFBa0IsS0FBS0MsVUFBVSxFQUFFO0lBQ3pFLE9BQU8sS0FBSztFQUNkO0VBQ0EsT0FBTyxJQUFJO0FBQ2IsQ0FBQztBQUVELE9BQU8sSUFBTUMsZ0NBQWdDLEdBQUcsU0FBbkNBLGdDQUFnQ0EsQ0FBSXpFLEtBQXdEO0VBQUEsT0FDdkcsQ0FBQUEsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVDLElBQUksTUFBSyxPQUFPLEtBQUssQ0FBQUQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVFLE1BQU0sTUFBSyxTQUFTLElBQUksQ0FBQUYsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVFLE1BQU0sTUFBSyxRQUFRLENBQUM7QUFBQTtBQUV4RixPQUFPLElBQU13RSwwQkFBMEIsR0FBRyxTQUE3QkEsMEJBQTBCQSxDQUFJMUUsS0FBK0IsRUFBYztFQUFBLElBQUEyRSxpQkFBQTtFQUN0RixJQUFJLENBQUEzRSxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUMsSUFBSSxNQUFLLFFBQVEsRUFBRTtJQUM1QixPQUFPLEtBQUs7RUFDZDtFQUNBLE9BQU8yQixPQUFPLEVBQUErQyxpQkFBQSxHQUNaM0UsS0FBSyxDQUFDNEUsVUFBVSxjQUFBRCxpQkFBQSx1QkFBaEJBLGlCQUFBLENBQWtCRSxJQUFJLENBQ3BCLFVBQUFDLFNBQVM7SUFBQSxPQUNQQSxTQUFTLENBQUNDLEtBQUssS0FBSyxLQUFLLElBQUlELFNBQVMsQ0FBQ0UsS0FBSyxDQUFDSCxJQUFJLENBQUMsVUFBQUksSUFBSTtNQUFBLE9BQUksT0FBT0EsSUFBSSxLQUFLLFFBQVEsSUFBSUEsSUFBSSxDQUFDcEQsSUFBSSxDQUFDLENBQUMsQ0FBQ1EsTUFBTSxHQUFHLENBQUM7SUFBQSxFQUFDO0VBQUEsQ0FDakgsQ0FDRixDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sSUFBTTZDLDhCQUE4QixHQUFHLFNBQWpDQSw4QkFBOEJBLENBQUlsRixLQUErQixFQUFvQjtFQUFBLElBQUFtRixxQkFBQTtFQUNoRyxJQUFJLENBQUFuRixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUMsSUFBSSxNQUFLLFFBQVEsRUFBRTtJQUM1QixPQUFPLElBQUk7RUFDYjtFQUNBLE9BQU8sRUFBQWtGLHFCQUFBLEdBQUFuRixLQUFLLENBQUNvRixrQkFBa0IsY0FBQUQscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQnRELElBQUksQ0FBQyxDQUFDLEtBQUksSUFBSTtBQUNqRCxDQUFDO0FBRUQsT0FBTyxJQUFNd0QsbUNBQW1DLEdBQUcsU0FBdENBLG1DQUFtQ0EsQ0FBSUMsWUFBcUIsRUFBRUMsY0FBNkI7RUFBQSxPQUN0R0QsWUFBWSxJQUFJMUQsT0FBTyxDQUFDMkQsY0FBYyxDQUFDO0FBQUE7QUFFekMsT0FBTyxJQUFNQyw4QkFBOEIsR0FBRyxTQUFqQ0EsOEJBQThCQSxDQUFJQyxTQUFnQyxFQUFFSCxZQUFxQjtFQUFBLE9BQ3BHRyxTQUFTLEtBQUssY0FBYyxJQUFJSCxZQUFZO0FBQUE7QUFFOUMsT0FBTyxJQUFNSSx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJQyxnQkFBb0MsRUFBRWxFLGVBQXVCO0VBQUEsT0FDbkdHLE9BQU8sQ0FBQytELGdCQUFnQixJQUFJbEUsZUFBZSxDQUFDO0FBQUE7QUFFOUMsT0FBTyxJQUFNbUUsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsaUJBQTBCLEVBQUVDLGtCQUEyQjtFQUFBLE9BQzdGRCxpQkFBaUIsSUFBSUMsa0JBQWtCO0FBQUE7QUFJekMsT0FBTyxJQUFNQyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUNwQ0MsTUFBZSxFQUNmQyxPQUFnQixFQUNoQkMsV0FBOEIsRUFDSjtFQUMxQixJQUFJRixNQUFNLElBQUlFLFdBQVcsQ0FBQ0MsR0FBRyxFQUFFO0lBQzdCLE9BQU8sS0FBSztFQUNkO0VBQ0EsSUFBSUYsT0FBTyxJQUFJQyxXQUFXLENBQUNFLElBQUksRUFBRTtJQUMvQixPQUFPLE1BQU07RUFDZjtFQUNBLE9BQU8sSUFBSTtBQUNiLENBQUM7QUFPRCxPQUFPLElBQU1DLDhCQUE4QixHQUFHLFNBQWpDQSw4QkFBOEJBLENBQ3pDUixpQkFBMEIsRUFDMUJDLGtCQUEyQixFQUNFO0VBQzdCLElBQUlELGlCQUFpQixFQUFFO0lBQ3JCLE9BQU87TUFBRVMsSUFBSSxFQUFFO0lBQTJCLENBQUM7RUFDN0M7RUFDQSxPQUFPO0lBQUVBLElBQUksRUFBRSxjQUFjO0lBQUVDLFdBQVcsRUFBRVQ7RUFBbUIsQ0FBQztBQUNsRSxDQUFDO0FBRUQsT0FBTyxJQUFNVSwrQkFBK0IsR0FBRyxTQUFsQ0EsK0JBQStCQSxDQUMxQ1gsaUJBQTBCLEVBQzFCQyxrQkFBMkIsRUFDRTtFQUM3QixJQUFJQSxrQkFBa0IsRUFBRTtJQUN0QixPQUFPO01BQUVRLElBQUksRUFBRTtJQUEyQixDQUFDO0VBQzdDO0VBQ0EsT0FBTztJQUFFQSxJQUFJLEVBQUUsZUFBZTtJQUFFRyxVQUFVLEVBQUVaO0VBQWtCLENBQUM7QUFDakUsQ0FBQztBQXNCRCxPQUFPLElBQU1hLGdDQUFnQyxHQUFHLFNBQW5DQSxnQ0FBZ0NBLENBQzNDQyxLQUFxQyxFQUNBO0VBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQTtFQUNyQyxJQUFNQyxTQUFTLElBQUFGLGVBQUEsR0FBR0QsS0FBSyxDQUFDSSxRQUFRLGNBQUFILGVBQUEsY0FBQUEsZUFBQSxHQUFLRCxLQUFLLENBQUNLLFlBQVksR0FBRyxDQUFDLElBQUlMLEtBQUssQ0FBQ00sVUFBVSxJQUFJLElBQUksR0FBR04sS0FBSyxDQUFDTSxVQUFVLEdBQUcsSUFBSztFQUNsSCxJQUFNQyxVQUFVLElBQUFMLGdCQUFBLEdBQUdGLEtBQUssQ0FBQ1EsU0FBUyxjQUFBTixnQkFBQSxjQUFBQSxnQkFBQSxHQUFLRixLQUFLLENBQUNLLFlBQVksR0FBRyxDQUFDLElBQUlMLEtBQUssQ0FBQ1MsV0FBVyxJQUFJLElBQUksR0FBR1QsS0FBSyxDQUFDUyxXQUFXLEdBQUcsSUFBSztFQUV0SCxJQUFJTixTQUFTLElBQUksSUFBSSxJQUFJSSxVQUFVLElBQUksSUFBSSxFQUFFO0lBQzNDLE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBTUcsSUFBSSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FDbkJaLEtBQUssQ0FBQ2EsYUFBYSxFQUNuQkYsSUFBSSxDQUFDRyxHQUFHLENBQUNkLEtBQUssQ0FBQ2UsYUFBYSxHQUFHZixLQUFLLENBQUNnQixlQUFlLEdBQUdoQixLQUFLLENBQUNhLGFBQWEsRUFBRU4sVUFBVSxDQUN4RixDQUFDO0VBQ0QsSUFBTVUsaUJBQWlCLEdBQUdkLFNBQVMsR0FBR0gsS0FBSyxDQUFDa0IsS0FBSyxHQUFHbEIsS0FBSyxDQUFDYSxhQUFhO0VBQ3ZFLElBQU1NLFNBQVMsR0FBR1IsSUFBSSxDQUFDRyxHQUFHLENBQUNkLEtBQUssQ0FBQ29CLG1CQUFtQixFQUFFVCxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVLLGlCQUFpQixDQUFDLENBQUM7RUFFckYsT0FBTztJQUNMUCxJQUFJLEVBQUpBLElBQUk7SUFDSlcsTUFBTSxFQUFFckIsS0FBSyxDQUFDc0IsY0FBYyxHQUFHbkIsU0FBUyxHQUFHSCxLQUFLLENBQUNrQixLQUFLO0lBQ3REQyxTQUFTLEVBQVRBO0VBQ0YsQ0FBQztBQUNILENBQUM7QUFFRCxPQUFPLElBQU1JLGlDQUFpQyxHQUFHLFNBQXBDQSxpQ0FBaUNBLENBQUlDLFdBQW9CO0VBQUEsT0FDcEVBLFdBQVcsR0FBRyxNQUFNLEdBQUcsT0FBTztBQUFBO0FBSWhDLE9BQU8sSUFBTUMsNkJBQTZCLEdBQUcsU0FBaENBLDZCQUE2QkEsQ0FDeENDLHFCQUE4QixFQUM5QnhDLGlCQUEwQixFQUNDO0VBQzNCLElBQUl3QyxxQkFBcUIsRUFBRSxPQUFPLE9BQU87RUFDekMsSUFBSXhDLGlCQUFpQixFQUFFLE9BQU8sS0FBSztFQUNuQyxPQUFPLE1BQU07QUFDZixDQUFDO0FBRUQsT0FBTyxJQUFNeUMsZ0NBQWdDLEdBQUcsU0FBbkNBLGdDQUFnQ0EsQ0FBSUMsTUFLaEQ7RUFBQSxPQUNDQSxNQUFNLENBQUNGLHFCQUFxQixJQUFJRSxNQUFNLENBQUMxQyxpQkFBaUIsR0FBRzBDLE1BQU0sQ0FBQ0MsY0FBYyxHQUFHRCxNQUFNLENBQUNFLGVBQWU7QUFBQTtBQUUzRyxPQUFPLElBQU1DLDhCQUE4QixHQUFHLFNBQWpDQSw4QkFBOEJBLENBQUlDLE9BQWUsRUFBRUMsSUFBWTtFQUFBLE9BQzFFRCxPQUFPLEtBQUtDLElBQUksR0FBR0QsT0FBTyxHQUFHQyxJQUFJO0FBQUE7QUFFbkMsT0FBTyxJQUFNQyxtQ0FBbUMsR0FBRyxTQUF0Q0EsbUNBQW1DQSxDQUFJQyxPQUF1QztFQUFBLE9BQ3pGbEgsT0FBTyxDQUFDa0gsT0FBTyxDQUFDO0FBQUE7QUFFbEIsT0FBTyxJQUFNQywyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJQyxzQkFBOEIsRUFBRUMsY0FBc0I7RUFBQSxPQUNoR0Qsc0JBQXNCLEdBQUdDLGNBQWM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==