@projectcor/maia-components 2.29.0 → 2.30.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 (669) hide show
  1. package/CHANGELOG.md +656 -0
  2. package/lib/App.js +55 -0
  3. package/lib/components/atoms/ActionableButton.js +60 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  6. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  7. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  9. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  10. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  16. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  17. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  23. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  25. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  26. package/lib/components/atoms/Backdrop/index.js +2 -0
  27. package/lib/components/atoms/CardItem.js +7 -0
  28. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  29. package/lib/components/atoms/CardMenu/index.js +2 -0
  30. package/lib/components/atoms/CardMenu/styles.js +21 -0
  31. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  32. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  35. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  36. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  37. package/lib/components/atoms/Checkbox/index.js +2 -0
  38. package/lib/components/atoms/Checkbox/styles.js +39 -0
  39. package/lib/components/atoms/Chip/Chip.js +150 -0
  40. package/lib/components/atoms/Chip/index.js +2 -0
  41. package/lib/components/atoms/Chip/styles.js +43 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  43. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  44. package/lib/components/atoms/ChipLlm/index.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  47. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  48. package/lib/components/atoms/ChipStatus/index.js +2 -0
  49. package/lib/components/atoms/ClearButton.js +6 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  51. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  52. package/lib/components/atoms/ClientSelector/index.js +2 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  54. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  55. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  56. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +445 -0
  57. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +533 -0
  59. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  60. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +282 -0
  62. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +148 -0
  63. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +290 -0
  65. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  66. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  67. package/lib/components/atoms/CopyToClipboard.js +70 -0
  68. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  69. package/lib/components/atoms/EditableLabel/index.js +2 -0
  70. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  72. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  73. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  75. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  76. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  79. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  80. package/lib/components/atoms/EntitySelector/index.js +2 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  82. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  85. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  87. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  88. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  89. package/lib/components/atoms/Expand/Expand.js +32 -0
  90. package/lib/components/atoms/Expand/index.js +2 -0
  91. package/lib/components/atoms/Fade/Fade.js +56 -0
  92. package/lib/components/atoms/Fade/index.js +2 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  94. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  95. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  99. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  103. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  104. package/lib/components/atoms/GoBackButton.js +24 -0
  105. package/lib/components/atoms/HelpButton.js +44 -0
  106. package/lib/components/atoms/IconButton.js +56 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  108. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  109. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  110. package/lib/components/atoms/Input/CustomInput.js +91 -0
  111. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  112. package/lib/components/atoms/Input/index.js +2 -0
  113. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  114. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  115. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  116. package/lib/components/atoms/Loader.js +41 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  118. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  119. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  121. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  122. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  124. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  125. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  126. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  127. package/lib/components/atoms/LoadingText/index.js +2 -0
  128. package/lib/components/atoms/LoadingText/styles.js +7 -0
  129. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  130. package/lib/components/atoms/MAIAButton/index.js +2 -0
  131. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  132. package/lib/components/atoms/MAIAError/index.js +2 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInput.js +1233 -0
  134. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  135. package/lib/components/atoms/MAIAInput/index.js +2 -0
  136. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  137. package/lib/components/atoms/MAIAInput/styles.js +186 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  139. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  140. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  141. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  145. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  146. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  148. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  149. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  150. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  151. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  154. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  155. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  157. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  158. package/lib/components/atoms/ModalInfo/index.js +3 -0
  159. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  162. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  163. package/lib/components/atoms/ModalProject/index.js +2 -0
  164. package/lib/components/atoms/NextPageLoader.js +33 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  167. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  168. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  170. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  171. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  173. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  174. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  175. package/lib/components/atoms/PrimaryButton.js +31 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  177. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  178. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  179. package/lib/components/atoms/SecondaryButton.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  182. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  183. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  184. package/lib/components/atoms/Skeleton/index.js +2 -0
  185. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
  186. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
  187. package/lib/components/atoms/SkillsDropdown/index.js +2 -0
  188. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  189. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  190. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  191. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  192. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  193. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  194. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  195. package/lib/components/atoms/Switch/Switch.js +27 -0
  196. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  197. package/lib/components/atoms/Switch/index.js +2 -0
  198. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  199. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  200. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  201. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  202. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  203. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  204. package/lib/components/atoms/TextArea/index.js +2 -0
  205. package/lib/components/atoms/ThirdButton.js +19 -0
  206. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  207. package/lib/components/atoms/VideoModal/index.js +2 -0
  208. package/lib/components/atoms/WithAppCfg.js +26 -0
  209. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  210. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  211. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  212. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  213. package/lib/components/atoms/icons/AIIcon.js +23 -0
  214. package/lib/components/atoms/icons/AacFile.js +39 -0
  215. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  216. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  217. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  218. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  219. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  220. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  221. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  222. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  223. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  224. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  225. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  226. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  227. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  228. package/lib/components/atoms/icons/Brain.js +77 -0
  229. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  230. package/lib/components/atoms/icons/CorLogo.js +76 -0
  231. package/lib/components/atoms/icons/CsvFile.js +41 -0
  232. package/lib/components/atoms/icons/DocFile.js +41 -0
  233. package/lib/components/atoms/icons/DocxFile.js +41 -0
  234. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  235. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  236. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  237. package/lib/components/atoms/icons/EmptyState.js +84 -0
  238. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  239. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  240. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  241. package/lib/components/atoms/icons/ErrorState.js +51 -0
  242. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  243. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  244. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  245. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  246. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  247. package/lib/components/atoms/icons/ImageFile.js +46 -0
  248. package/lib/components/atoms/icons/M4aFile.js +39 -0
  249. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  250. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  251. package/lib/components/atoms/icons/MDFile.js +41 -0
  252. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  253. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  254. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  256. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  257. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  259. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  260. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  261. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  262. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  263. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  264. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  265. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  266. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  267. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  268. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  269. package/lib/components/atoms/icons/Mp3File.js +39 -0
  270. package/lib/components/atoms/icons/Mp4File.js +39 -0
  271. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  272. package/lib/components/atoms/icons/NewChat.js +29 -0
  273. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  274. package/lib/components/atoms/icons/OgaFile.js +39 -0
  275. package/lib/components/atoms/icons/OggFile.js +39 -0
  276. package/lib/components/atoms/icons/PdfFile.js +39 -0
  277. package/lib/components/atoms/icons/PlusIcon.js +29 -0
  278. package/lib/components/atoms/icons/PptFile.js +47 -0
  279. package/lib/components/atoms/icons/PptxFile.js +49 -0
  280. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  281. package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
  282. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  283. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
  284. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
  285. package/lib/components/atoms/icons/SkillsNavIcon.js +24 -0
  286. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  287. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  288. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  289. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  290. package/lib/components/atoms/icons/TextFile.js +41 -0
  291. package/lib/components/atoms/icons/WavFile.js +39 -0
  292. package/lib/components/atoms/icons/WebmFile.js +50 -0
  293. package/lib/components/atoms/icons/XlsFile.js +42 -0
  294. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  295. package/lib/components/atoms/icons/index.js +54 -0
  296. package/lib/components/atoms/index.js +42 -0
  297. package/lib/components/index.js +11 -0
  298. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  299. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +236 -0
  300. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  301. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  302. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  303. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  304. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  305. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  306. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  307. package/lib/components/molecules/AbmSection/index.js +4 -0
  308. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  309. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  310. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +119 -0
  311. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  312. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  313. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  314. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  315. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  316. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  317. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  318. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  319. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  320. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  321. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  322. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  323. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  324. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  325. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  326. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  327. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  328. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  329. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  330. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1254 -0
  331. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  333. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  334. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  335. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  336. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  337. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  338. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +453 -0
  339. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  340. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  341. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  342. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  343. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  344. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  345. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  346. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  347. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  348. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  349. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  350. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  351. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  352. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  353. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  354. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +430 -0
  355. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +169 -0
  356. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  357. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  358. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  359. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  360. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  361. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  362. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  363. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  364. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  365. package/lib/components/molecules/ChatFooter/index.js +2 -0
  366. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  367. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +60 -0
  368. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  369. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  370. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  371. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  372. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  373. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  374. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  376. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  377. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  378. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  379. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  380. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  381. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  382. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  383. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  384. package/lib/components/molecules/Sidebar/Sidebar.js +716 -0
  385. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  386. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  387. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  388. package/lib/components/molecules/Sidebar/index.js +2 -0
  389. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1449 -0
  390. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  391. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  392. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +182 -0
  393. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  394. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  395. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +585 -0
  396. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +154 -0
  397. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  398. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  399. package/lib/components/organisms/ChatAI/index.js +2 -0
  400. package/lib/components/organisms/ChatAI/styles.js +7 -0
  401. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  402. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  403. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  404. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  405. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  406. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  407. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  408. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  409. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  410. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  411. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  412. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  413. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  414. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  415. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  416. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  417. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  418. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  419. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  420. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  421. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  422. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  423. package/lib/components/organisms/SnackBar/index.js +2 -0
  424. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  425. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  426. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  427. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  428. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  429. package/lib/constants/config.js +10 -0
  430. package/lib/constants/formatExtensions.js +55 -0
  431. package/lib/constants/gqlClient.js +4 -0
  432. package/lib/constants/maiaHourAgentAccess.js +15 -0
  433. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  434. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  435. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  436. package/lib/constants/permissions/config.js +72 -0
  437. package/lib/constants/permissions/index.js +3 -0
  438. package/lib/constants/permissions/types.js +2 -0
  439. package/lib/constants/permissions/utils.js +18 -0
  440. package/lib/constants/plannerSyncEvents.js +15 -0
  441. package/lib/constants/taskLinkIcon.js +15 -0
  442. package/lib/constants/taskUrls.js +11 -0
  443. package/lib/context/cor-user.js +31 -0
  444. package/lib/context/global-context.js +39 -0
  445. package/lib/dev/DevChatAI.js +101 -0
  446. package/lib/dev/DevContextMentionInput.js +67 -0
  447. package/lib/dev/ProjectSummary.js +9 -0
  448. package/lib/dev/Providers.js +27 -0
  449. package/lib/exports.js +2 -0
  450. package/lib/hooks/README.md +192 -0
  451. package/lib/hooks/index.js +30 -0
  452. package/lib/hooks/useAccessClient/index.js +2 -0
  453. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  454. package/lib/hooks/useAgentModel/index.js +2 -0
  455. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  456. package/lib/hooks/useAgentModel/useCreateAgent.js +175 -0
  457. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  458. package/lib/hooks/useAgentModel/useUpdateAgent.js +176 -0
  459. package/lib/hooks/useAgentSuggestions.js +60 -0
  460. package/lib/hooks/useCaretPosition.js +65 -0
  461. package/lib/hooks/useChatManager/index.js +2 -0
  462. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  463. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  464. package/lib/hooks/useChatMessages/index.js +2 -0
  465. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  466. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  467. package/lib/hooks/useChats/index.js +2 -0
  468. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  469. package/lib/hooks/useChats/useChats.js +187 -0
  470. package/lib/hooks/useClientSearch.js +163 -0
  471. package/lib/hooks/useContextMentions.js +500 -0
  472. package/lib/hooks/useContextPinPopover.js +228 -0
  473. package/lib/hooks/useDebounce.js +18 -0
  474. package/lib/hooks/useEntitySearch.js +1053 -0
  475. package/lib/hooks/useEvent.js +94 -0
  476. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  477. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  478. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  479. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  480. package/lib/hooks/useKnowledge/index.js +4 -0
  481. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  482. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  483. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  484. package/lib/hooks/useMentionAllowedTypes.js +120 -0
  485. package/lib/hooks/useMentionPopover.js +342 -0
  486. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  487. package/lib/hooks/useModal/index.js +2 -0
  488. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  489. package/lib/hooks/useModal/useModal.js +47 -0
  490. package/lib/hooks/useOnboardingNavigation.js +20 -0
  491. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  492. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  493. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  494. package/lib/hooks/useProjectSearch.js +183 -0
  495. package/lib/hooks/useProjectSummary.js +101 -0
  496. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  497. package/lib/hooks/useProjects.js +46 -0
  498. package/lib/hooks/useRecentClientsSearch.js +150 -0
  499. package/lib/hooks/useRecentContexts.js +86 -0
  500. package/lib/hooks/useResize.js +29 -0
  501. package/lib/hooks/useSkillsCatalog.js +66 -0
  502. package/lib/hooks/useSlashCommands.js +84 -0
  503. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  504. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  505. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  506. package/lib/hooks/useStreamResponse.js +112 -0
  507. package/lib/hooks/useStreamdownStyles.js +13 -0
  508. package/lib/hooks/useStreamingMessage/index.js +2 -0
  509. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  510. package/lib/hooks/useT.js +17 -0
  511. package/lib/hooks/useTabTaskDefault.js +33 -0
  512. package/lib/hooks/useTaskPanel.js +22 -0
  513. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  514. package/lib/hooks/useToggle.js +19 -0
  515. package/lib/hooks/useToggleFavorite/index.js +2 -0
  516. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  517. package/lib/index.css +76 -0
  518. package/lib/index.js +30 -0
  519. package/lib/lang/br/index.js +793 -0
  520. package/lib/lang/en/index.js +793 -0
  521. package/lib/lang/es/index.js +794 -0
  522. package/lib/lang/fr/index.js +614 -0
  523. package/lib/lang/index.js +24 -0
  524. package/lib/lang/utils.js +33 -0
  525. package/lib/mocks/mockChats.js +395 -0
  526. package/lib/mocks/mockOrchestrator.js +5 -0
  527. package/lib/mocks/mockProject.js +11 -0
  528. package/lib/mocks/mockProjectSummary.js +6 -0
  529. package/lib/mocks/mockedUser.js +169 -0
  530. package/lib/services/apolloClient.js +3 -0
  531. package/lib/services/appcues.js +19 -0
  532. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  533. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  534. package/lib/services/corpilot/client.js +27 -0
  535. package/lib/services/corpilot/index.js +5 -0
  536. package/lib/services/maia/Access/updateAccess.js +59 -0
  537. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  538. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  539. package/lib/services/maia/Actions/index.js +7 -0
  540. package/lib/services/maia/Agents/connectors.js +250 -0
  541. package/lib/services/maia/Agents/createAgent.js +39 -0
  542. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  543. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  544. package/lib/services/maia/Agents/getAgentById.js +162 -0
  545. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  546. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  547. package/lib/services/maia/Agents/getAgents.js +718 -0
  548. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  549. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  550. package/lib/services/maia/Agents/updateAgent.js +39 -0
  551. package/lib/services/maia/Chats/deleteChat.js +32 -0
  552. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  553. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  554. package/lib/services/maia/Chats/index.js +15 -0
  555. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  556. package/lib/services/maia/Chats/patchChat.js +43 -0
  557. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  558. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  559. package/lib/services/maia/Faqs/index.js +5 -0
  560. package/lib/services/maia/Knowledge/delete.js +41 -0
  561. package/lib/services/maia/Knowledge/download.js +48 -0
  562. package/lib/services/maia/Knowledge/index.js +3 -0
  563. package/lib/services/maia/Knowledge/save.js +43 -0
  564. package/lib/services/maia/Orchestrator/index.js +7 -0
  565. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  566. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  567. package/lib/services/maia/RecentClients/index.js +6 -0
  568. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  569. package/lib/services/maia/RecentContexts/index.js +6 -0
  570. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  571. package/lib/services/maia/RecentProjects/index.js +6 -0
  572. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  573. package/lib/services/maia/RecentTasks/index.js +6 -0
  574. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  575. package/lib/services/maia/RecentUsers/index.js +6 -0
  576. package/lib/services/maia/Skills/createSkill.js +39 -0
  577. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  578. package/lib/services/maia/Skills/generateSkill.js +41 -0
  579. package/lib/services/maia/Skills/getSkills.js +120 -0
  580. package/lib/services/maia/Skills/updateSkill.js +39 -0
  581. package/lib/services/maia/client.js +27 -0
  582. package/lib/services/maia/index.js +17 -0
  583. package/lib/services/query/ClientSearchQuery.js +5 -0
  584. package/lib/services/query/entitySearchQuery.js +18 -0
  585. package/lib/services/query/index.js +2 -0
  586. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  587. package/lib/services/query/taskUserTabQuery.js +8 -0
  588. package/lib/services/query/usersDirectoryQuery.js +19 -0
  589. package/lib/services/types.js +6 -0
  590. package/lib/services/utils/fetchCOR.js +117 -0
  591. package/lib/services/utils/getCookie.js +10 -0
  592. package/lib/services/utils/index.js +3 -0
  593. package/lib/services/utils/mapChatMessages.js +287 -0
  594. package/lib/services/utils/validateIsMaia.js +4 -0
  595. package/lib/store/chatsSidebarOptimistic.js +92 -0
  596. package/lib/store/chatsStore.types.js +2 -0
  597. package/lib/store/chatsStoreLifecycle.js +8 -0
  598. package/lib/store/faqsStore.types.js +2 -0
  599. package/lib/store/index.js +4 -0
  600. package/lib/store/maiaLastChatPersistence.js +35 -0
  601. package/lib/store/sessions/activeView.js +22 -0
  602. package/lib/store/sessions/index.js +9 -0
  603. package/lib/store/sessions/sessionHitlContext.js +15 -0
  604. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  605. package/lib/store/sessions/sessionNotifications.js +110 -0
  606. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  607. package/lib/store/sessions/sessionStreamManager.js +715 -0
  608. package/lib/store/sessions/sessionStreamingText.js +80 -0
  609. package/lib/store/sessions/sessions.types.js +35 -0
  610. package/lib/store/sessions/useSessionMeta.js +39 -0
  611. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  612. package/lib/store/sessions/useSessionsStore.js +197 -0
  613. package/lib/store/useChatsStore.js +387 -0
  614. package/lib/store/useFaqsStore.js +27 -0
  615. package/lib/streamdownStyles.js +9 -0
  616. package/lib/styles/StyledCleanContainer.js +7 -0
  617. package/lib/styles/cascade.js +14 -0
  618. package/lib/styles/config.js +47 -0
  619. package/lib/styles/shared/scrollable.js +3 -0
  620. package/lib/styles/transitions.js +21 -0
  621. package/lib/types/Action.js +2 -0
  622. package/lib/types/AgentSuggestion.js +2 -0
  623. package/lib/types/Chat.js +10 -0
  624. package/lib/types/Client.js +2 -0
  625. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  626. package/lib/types/Project.js +2 -0
  627. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  628. package/lib/types/Task.js +2 -0
  629. package/lib/types/agent.js +2 -0
  630. package/lib/types/agentModal.js +2 -0
  631. package/lib/types/contextMention.js +37 -0
  632. package/lib/types/global.d.js +2 -0
  633. package/lib/types/skill.js +2 -0
  634. package/lib/types/streamActivity.js +2 -0
  635. package/lib/types/userType.d.js +2 -0
  636. package/lib/utils/actionCategoryMap.js +37 -0
  637. package/lib/utils/actionIconMap.js +61 -0
  638. package/lib/utils/agentDisplayName.js +42 -0
  639. package/lib/utils/chatInputFiles.js +52 -0
  640. package/lib/utils/contextMentionIcons.js +134 -0
  641. package/lib/utils/contextMentionLabel.js +4 -0
  642. package/lib/utils/contextMentionTriggers.js +51 -0
  643. package/lib/utils/contextMentionTypeLabel.js +17 -0
  644. package/lib/utils/corConnectorMentionTypes.js +41 -0
  645. package/lib/utils/ensureStreamdownStyles.js +21 -0
  646. package/lib/utils/entityLinkRender.js +135 -0
  647. package/lib/utils/fileDownloadHelper.js +40 -0
  648. package/lib/utils/formatQuickActionMessage.js +16 -0
  649. package/lib/utils/formatUnreadCount.js +6 -0
  650. package/lib/utils/getUnitFileSize.js +13 -0
  651. package/lib/utils/hitlAnalytics.js +65 -0
  652. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  653. package/lib/utils/imagePreprocessor.js +108 -0
  654. package/lib/utils/index.js +3 -0
  655. package/lib/utils/maiaHostOpen.js +19 -0
  656. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  657. package/lib/utils/mapBackendLang.js +8 -0
  658. package/lib/utils/normalizeAgentConnectors.js +95 -0
  659. package/lib/utils/openTaskInCorPanel.js +22 -0
  660. package/lib/utils/orchestratorSubagents.js +11 -0
  661. package/lib/utils/renderContextMentions.js +420 -0
  662. package/lib/utils/retryCompletion.js +85 -0
  663. package/lib/utils/slashCommandMarker.js +30 -0
  664. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  665. package/lib/utils/sseStreamContent.js +17 -0
  666. package/lib/utils/streamActivityMessages.js +359 -0
  667. package/lib/utils/validateTrimmedFields.js +8 -0
  668. package/package.json +1 -1
  669. package/README.md +0 -2
@@ -0,0 +1,793 @@
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 { SECTIONS } from '../../constants/config';
5
+ import { ProjectSummaryConfigKeys } from '../../types/ProjectSummaryConfigKeys';
6
+ var globals = {
7
+ close: 'Fechar',
8
+ minimize: 'Minimizar',
9
+ howWorks: 'Como funciona?',
10
+ brandName: 'MAIA',
11
+ expand: 'Expandir',
12
+ collapse: 'Recolher',
13
+ goBack: 'Voltar ao início',
14
+ copy: 'Copiar',
15
+ copied: 'Copiado',
16
+ saved: 'Salvo',
17
+ selectProject: 'Selecionar projeto',
18
+ save: 'Salvar',
19
+ cancel: 'Cancelar'
20
+ };
21
+ var error = {
22
+ title: 'Ocorreu um problema',
23
+ description: 'No momento, estamos enfrentando alguns problemas, por favor, tente novamente em alguns minutos.',
24
+ tryAgain: 'Tentar novamente'
25
+ };
26
+ var genericSection = {
27
+ error: error,
28
+ globals: globals
29
+ };
30
+ var projectSummarySection = {
31
+ resume: 'Resumir',
32
+ hello: 'Olá, {{name}}!',
33
+ welcome: 'Sou a MAIA, sua assistente na COR',
34
+ feedback: {
35
+ thumbsUp: 'Foi útil para mim',
36
+ thumbsDown: 'Não foi útil para mim',
37
+ sources: 'Fuentes'
38
+ },
39
+ config: {
40
+ projectSummary: 'Resumir projeto',
41
+ projectSummaryTitle: 'Resumo de projetos',
42
+ goBack: 'Voltar ao início',
43
+ selectedProject: 'Projeto selecionado',
44
+ selectProject: 'Selecionar projeto',
45
+ configureResume: 'Configurações avançadas',
46
+ generatingResume: 'Gerando resumo',
47
+ generateResume: 'Gerar',
48
+ hideConfig: 'Ocultar configurações'
49
+ },
50
+ configureSettings: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProjectSummaryConfigKeys.GENERAL_STATUS, 'Datas e prazos'), ProjectSummaryConfigKeys.INCOME_COSTS, 'Rentabilidade'), ProjectSummaryConfigKeys.TIME_HOURS, 'Estimativa de horas e uso'), ProjectSummaryConfigKeys.TASKS_PROGRESS, 'Tarefas e avanços'), ProjectSummaryConfigKeys.REWORKS, 'Retrabalho')
51
+ };
52
+ var homeMenu = {
53
+ projectSummary: {
54
+ title: 'Resumo do projeto',
55
+ description: 'Elabore relatórios com IA com base no seu projeto'
56
+ },
57
+ faq: {
58
+ title: 'Perguntas Frequentes',
59
+ startTitle: 'Você pode começar por...',
60
+ empty: 'Não há perguntas frequentes',
61
+ error: 'Ops! Tivemos um problema ao carregar as perguntas frequentes. Por favor, tente novamente em alguns minutos.',
62
+ categories: {
63
+ projects: 'Projeto',
64
+ tasks: 'Tarefas',
65
+ hours: 'Horas',
66
+ reworks: 'Retrabalhos',
67
+ undefined: 'Sem categoria'
68
+ }
69
+ },
70
+ fua: {
71
+ title: 'Ações frequentes',
72
+ newBadge: 'Novo',
73
+ error: 'Ops! Tivemos um problema ao carregar as ações frequentes. Por favor, tente novamente em alguns minutos.'
74
+ },
75
+ recentContexts: {
76
+ title: 'Escolha um contexto recente para uma resposta mais precisa:',
77
+ types: {
78
+ client: 'Cliente',
79
+ project: 'Projeto',
80
+ task: 'Tarefa'
81
+ }
82
+ },
83
+ contextHome: {
84
+ greeting: 'Olá, {{name}} 👋',
85
+ subtitle: 'Sou MAIA, sua assistente em tarefas, projetos e clientes.\nSeguimos com algo recente?',
86
+ subtitleCollaborator: 'Sou MAIA, sua assistente em tarefas. Seguimos com algo recente?',
87
+ subtitleCollaboratorWithHours: 'Registre suas horas ou comece um chat sobre uma tarefa.',
88
+ subtitleManagerWithHours: 'Por onde você quer começar?',
89
+ hoursSection: {
90
+ title: 'Registrar horas'
91
+ },
92
+ recentTasksSection: {
93
+ title: 'Consultar sobre uma tarefa',
94
+ subtitle: 'Escolha uma tarefa recente para usar como contexto.'
95
+ },
96
+ recentContextsSectionManager: {
97
+ title: 'Ou retome algo recente',
98
+ subtitle: 'Escolha uma tarefa, projeto ou cliente para usar como contexto'
99
+ },
100
+ contextGreeting: {
101
+ project: 'O que você quer que analisemos? Horas, estimativas, retrabalhos? Você escolhe!',
102
+ task: 'Estou aqui para ajudá-lo com esta tarefa. Use uma das funções para começar.',
103
+ client: 'O que você quer que analisemos? Rentabilidade, avanços, deadlines? Você escolhe!'
104
+ }
105
+ },
106
+ plannerHome: {
107
+ title: 'Vamos começar a registrar suas horas',
108
+ subtitle: 'Por onde começamos?'
109
+ },
110
+ action: {
111
+ categories: {
112
+ tasks: 'Ações sobre tarefas',
113
+ collaborators: 'Colaboradores e responsáveis',
114
+ labels: 'Etiquetas e tipos',
115
+ checklists: 'Checklists',
116
+ deliverables: 'Entregáveis',
117
+ reworks: 'Retrabalhos',
118
+ hours: 'Lançamento de horas'
119
+ }
120
+ },
121
+ createdBy: 'por',
122
+ createdByTooltip: 'Usuário criador do agente',
123
+ createdByTooltipDeleted: 'Usuário excluído. Seu nome é mantido para referência.',
124
+ taskGreeting: 'Estou aqui para ajudá-lo com esta tarefa. Use uma das funções para começar.',
125
+ hello: {
126
+ title: 'Pronto! Já estou usando o projeto',
127
+ title_1: 'Antecipe desvios. Vamos analisar este projeto.',
128
+ title_2: 'O que você quer que analisemos? Horas, estimativas, retrabalhos? Você escolhe!',
129
+ title_3: 'Vamos revisar o andamento deste projeto.',
130
+ subtitle: 'Para começar, posso te ajudar com essas opções. Ou, se preferir, escreva diretamente sua pergunta!',
131
+ titlePm: 'Olá, {{name}}! Sou {{agent}}, sua assistente',
132
+ subtitlePm: 'Para te dar respostas precisas, preciso saber sobre qual projeto vamos conversar. Qual você escolhe?'
133
+ },
134
+ maiaker: {
135
+ title: 'Transforme processos repetitivos em agentes inteligentes',
136
+ description: 'Crie agentes que analisem e gerem conteúdo de acordo com as suas necessidades.',
137
+ createManualAgent: 'Criar agente manualmente',
138
+ badgeNew: 'Novo',
139
+ briefCard: {
140
+ title: 'Agente especialista em brief',
141
+ description: 'Crie e melhore briefs para que estejam prontos para usar em tarefas.',
142
+ prompt: 'Quero criar um agente especialista em brief.'
143
+ },
144
+ comingSoonCard: {
145
+ title: 'Em breve, mais novidades',
146
+ description: 'Estamos trabalhando para oferecer mais agentes'
147
+ }
148
+ }
149
+ };
150
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
151
+ homeMenu: homeMenu,
152
+ contextMention: {
153
+ keyboardHint: 'Navegação entre abas: @, @@… em ordem. Também Alt/Cmd + ←/→',
154
+ recentsTitle: 'Recentes',
155
+ userNoPosition: 'Sem cargo',
156
+ me: 'Yo',
157
+ tabs: {
158
+ client: 'Cliente',
159
+ project: 'Projeto',
160
+ task: 'Tarefa',
161
+ user: 'Usuário',
162
+ mcp: 'Conectores',
163
+ skill: 'Habilidades'
164
+ },
165
+ loading: 'Buscando...',
166
+ error: 'Tivemos um problema. Tente novamente.',
167
+ empty: {
168
+ recents: 'Comece a digitar para buscar',
169
+ withQuery: 'Sem resultados para "{{query}}"'
170
+ },
171
+ counters: {
172
+ projects: 'projetos',
173
+ tasks: 'tarefas'
174
+ }
175
+ },
176
+ contextPin: {
177
+ addContext: 'Contexto global',
178
+ searchPlaceholder: 'Buscar contexto…',
179
+ remove: 'Remover contexto'
180
+ },
181
+ button: 'IA',
182
+ title: 'Olá, {{name}}!',
183
+ newChat: 'Novo chat',
184
+ description: 'Sou a MAIA, sua assistente, e estou aqui para te ajudar com as suas dúvidas.',
185
+ openAgentCreator: 'Criar agente',
186
+ openMarketplace: 'Marketplace de agentes',
187
+ history: {
188
+ tooltip: 'Histórico',
189
+ title: 'Histórico vazio',
190
+ description: 'Nenhuma conversa encontrada',
191
+ item: {
192
+ date: 'Última atualização {{date}}'
193
+ },
194
+ menu: {
195
+ rename: 'Renomear',
196
+ "delete": 'Excluir'
197
+ },
198
+ loadingMore: 'Carregando mais conversas'
199
+ },
200
+ onboarding: {
201
+ maia: 'MAIA',
202
+ agentCustom: 'Agentes custom',
203
+ howCreateAgent: 'Como criar um agente?',
204
+ tooltip: 'Como funciona?',
205
+ howItWorks: 'Como funciona?'
206
+ },
207
+ qa: {
208
+ title: 'Perguntas Frequentes',
209
+ items: {
210
+ rentabilidad_proyecto: 'Qual é a rentabilidade deste projeto?',
211
+ avance_proyecto: 'Quais são os avanços deste projeto?',
212
+ tareas_proyecto: 'Quais são as próximas tarefas a vencer?'
213
+ }
214
+ },
215
+ chat: {
216
+ generating: 'Pensando',
217
+ generatingAttachment: 'Analisando adjunto',
218
+ generatingDeepSearch: 'Iniciando a pesquisa',
219
+ generatingWebSearch: 'Pesquisando na web',
220
+ suggestionsTitle: 'Respostas sugeridas',
221
+ createAgentActionsTitle: 'Próximo passo',
222
+ createAgentActionStartChat: 'Iniciar conversa com o novo agente',
223
+ createAgentActionKnowledge: 'Enviar arquivos para a base de conhecimento',
224
+ createAgentActionLoadError: 'Não foi possível carregar o agente. Tente novamente.',
225
+ writing: 'Escrevendo a resposta',
226
+ executingAction: 'Executando ação',
227
+ processing: 'Processando',
228
+ activity: {
229
+ generating: {
230
+ preparing: 'Preparando sua resposta',
231
+ considering: 'Revisando sua consulta',
232
+ almostReady: 'Definindo a abordagem'
233
+ },
234
+ thinking: {
235
+ analyzing: 'Analisando sua consulta',
236
+ reviewing: 'Revisando o contexto',
237
+ planning: 'Montando a resposta'
238
+ },
239
+ search: {
240
+ scanning: 'Buscando na web',
241
+ summarizing: 'Revisando resultados'
242
+ },
243
+ deepSearch: {
244
+ exploring: 'Explorando fontes',
245
+ crossChecking: 'Verificando informações'
246
+ },
247
+ attachment: {
248
+ reading: 'Lendo o anexo',
249
+ extracting: 'Extraindo o que importa',
250
+ readingPlural: 'Lendo os anexos',
251
+ extractingPlural: 'Extraindo o que importa'
252
+ },
253
+ writing: {
254
+ composing: 'Escrevendo a resposta'
255
+ },
256
+ dynamicContextTooltip: 'Este contexto foi gerado dinamicamente e pode mudar ao longo da conversa.',
257
+ creatingTask: 'Criando tarefa',
258
+ creatingTasksBatch: 'Criando tarefas',
259
+ creatingAgent: 'Criando agente',
260
+ editingAgent: 'Editando agente',
261
+ editingTask: 'Editando tarefa',
262
+ editingTasksBatch: 'Editando tarefas',
263
+ deletingTask: 'Excluindo tarefa',
264
+ deletingTasksBatch: 'Excluindo tarefas',
265
+ assigningUser: 'Atribuindo usuário',
266
+ unassigningUser: 'Removendo usuário',
267
+ assigningLabel: 'Atribuindo etiqueta',
268
+ updatingTaskType: 'Atualizando tipo de tarefa',
269
+ updatingEstimatedHours: 'Atualizando horas estimadas',
270
+ updatingDeliverable: 'Atualizando entregável',
271
+ loggingHours: 'Registrando horas',
272
+ creatingChecklist: 'Criando checklist',
273
+ creatingLabel: 'Criando etiqueta',
274
+ editingProject: 'Editando projeto',
275
+ creatingChecklistItem: 'Adicionando item ao checklist',
276
+ queryingHours: 'Consultando horas',
277
+ configuringAgentAccess: 'Alterando visibilidade do agente',
278
+ sendingTaskMessage: 'Enviando mensagem na tarefa',
279
+ deletingChecklistItem: 'Excluindo item do checklist',
280
+ removingTaskType: 'Removendo tipo de tarefa',
281
+ removingLabel: 'Removendo etiqueta',
282
+ updatingDeliverableCount: 'Atualizando contador de entregáveis',
283
+ creatingRework: 'Criando retrabalho',
284
+ updatingRework: 'Atualizando retrabalho',
285
+ generatingFile: 'Gerando arquivo',
286
+ resumingAction: 'Executando ação aprovada'
287
+ },
288
+ loadingMore: 'Carregando mais mensagens',
289
+ footer: {
290
+ placeholder: 'Escreva sua pergunta aqui…',
291
+ orchestratorPlaceholder: 'Pergunte à Maia, @ para mencionar ou / para ações rápidas',
292
+ agentLabel: 'O Agente',
293
+ disclaimer: '{{agentName}} pode cometer erros. Verifique as informações importantes.',
294
+ disclaimerAgent: 'Modelos de IA podem cometer erros. Verifique as informações importantes.',
295
+ corAccessLabel: 'Acesso ao COR',
296
+ corAccessTooltip: 'Acesso aos dados do COR'
297
+ },
298
+ error: 'Ocorreu um erro ao gerar sua resposta, por favor, tente novamente.',
299
+ retry: 'Tentar novamente',
300
+ errorAccessDenied: 'Você não tem acesso para interagir com este agente. É possível que suas configurações de acessibilidade tenham mudado. Por favor, contate a pessoa na sua organização que gerencia agentes para obter mais informações.',
301
+ errorPromptTooLong: 'Você excedeu o limite de contexto {{used}} tokens. Por favor, tente novamente ou continue em outro chat',
302
+ changeProject: 'Detectei que você quer mudar de Projeto.\n\n**Selecione o projeto para continuar:**',
303
+ searchWeb: 'Pesquisar na web',
304
+ deepSearch: 'Busca avançada na internet (acesso a mais fontes)',
305
+ attachFile: 'Anexar arquivo',
306
+ plusMenuAttach: 'Anexar arquivos',
307
+ dropFilesHere: 'Solte os arquivos aqui',
308
+ plusMenuDeepInvestigation: 'Investigar a fundo',
309
+ plusMenuQuickActions: 'Ações rápidas',
310
+ openPlusMenuAria: 'Anexos e opções de pesquisa',
311
+ openMentionAria: 'Mencionar',
312
+ removeAttachmentAria: 'Remover arquivo',
313
+ removeActiveToolAria: 'Remover modo de pesquisa',
314
+ send: 'Enviar',
315
+ limitFiles: 'Você excedeu o limite de anexos',
316
+ stop: 'Interromper resposta',
317
+ cancelled: 'A pesquisa foi cancelada.',
318
+ tooManyActiveSessions: 'Há muitas conversas gerando ao mesmo tempo. Aguarde uma terminar antes de iniciar outra.',
319
+ attachmentPreviewModal: {
320
+ loading: 'Carregando...',
321
+ unsupportedFileMessage: 'Tivemos um problema ao carregar a pré-visualização. Por favor, tente novamente em alguns minutos.',
322
+ typeLabel: 'Tipo:',
323
+ unknown: 'Desconhecido',
324
+ sizeLabel: 'Tamanho:',
325
+ excel: {
326
+ sheetSelectorLabel: 'Planilha:',
327
+ loadError: 'Não foi possível carregar o conteúdo do arquivo Excel.',
328
+ fileReadError: 'Erro ao ler o arquivo.',
329
+ sheetLoadError: 'Erro ao carregar a planilha selecionada.'
330
+ },
331
+ word: {
332
+ loadError: 'Não foi possível carregar o conteúdo do documento Word.',
333
+ legacyDocUnsupported: 'A visualização de arquivos .doc não está disponível. Use o formato .docx.'
334
+ },
335
+ ppt: {
336
+ loadError: 'Não foi possível carregar o conteúdo da apresentação.',
337
+ legacyPptUnsupported: 'A visualização de arquivos .ppt não está disponível. Use o formato .pptx.',
338
+ slideLabel: 'Slide {{number}}',
339
+ emptySlide: 'Este slide não tem texto nem imagens para visualizar.'
340
+ }
341
+ }
342
+ },
343
+ deleteQuestionModal: {
344
+ title: 'Deseja excluir esta conversa?',
345
+ firstPart: 'Você está prestes a excluir',
346
+ secondPart: 'Esta ação é irreversível.',
347
+ cancel: 'Cancelar',
348
+ "delete": 'Excluir'
349
+ },
350
+ deleteSkillModal: {
351
+ title: 'Deseja excluir esta skill?',
352
+ firstPart: 'Você está prestes a excluir',
353
+ secondPart: 'Esta ação é irreversível.',
354
+ cancel: 'Cancelar',
355
+ "delete": 'Excluir'
356
+ },
357
+ editQuestionModal: {
358
+ newName: 'Novo nome',
359
+ title: 'Renomear conversa',
360
+ rename: 'Renomear',
361
+ cancel: 'Cancelar',
362
+ maxLength: 'Você atingiu o limite de 140 caracteres.'
363
+ },
364
+ modalFileExceeds: {
365
+ limitFilesTitle: 'Máx. Anexos excedidos.',
366
+ limitSizeTitle: 'Você excedeu o limite de tamanho permitido',
367
+ limitFilesDescription: 'Você pode anexar no máximo 5 arquivos por mensagem. Os seguintes arquivos não puderam ser anexados:',
368
+ limitSizeDescription: 'Um ou mais arquivos excedem o tamanho máximo permitido por tipo. Os seguintes arquivos não puderam ser anexados:',
369
+ accept: 'Aceitar',
370
+ limit: 'limite'
371
+ },
372
+ sourcesInformationModal: {
373
+ title: 'Fuentes:'
374
+ },
375
+ agents: {
376
+ title: 'Agentes',
377
+ newAgent: 'Novo agente',
378
+ createAgent: 'Criar Agente',
379
+ edit: 'Editar',
380
+ maia: '(Especialista de projeto)',
381
+ addFavorite: 'Adicionar aos favoritos',
382
+ removeFavorite: 'Remover dos favoritos',
383
+ favoriteToggledAddedSuccess: 'Agente adicionado aos favoritos',
384
+ favoriteToggledRemovedSuccess: 'Agente removido de favoritos',
385
+ favoriteToggledError: 'Não foi possível salvar seu favorito. Tente novamente.',
386
+ favoriteToggledRemovedError: 'Não foi possível remover o favorito. Tente novamente.',
387
+ maiaIntroduction: 'Bem-vindo à MAIA, sua assistente para melhorar o seu dia a dia.'
388
+ },
389
+ conversations: {
390
+ title: 'Minhas conversas',
391
+ agentsSectionTitle: 'Agentes',
392
+ maiakerNav: 'Criador de agentes',
393
+ myAgentsNav: 'Meus agentes',
394
+ mySkillsNav: 'Skills',
395
+ error: 'Ocorreu um erro ao carregar o histórico de conversas',
396
+ empty: 'Todas as suas conversas com os agentes serão exibidas aqui',
397
+ emptyLabel: 'Mensagem com anexos',
398
+ unreadLabel: 'Não lido',
399
+ minimizedOpen: 'Abrir MAIA',
400
+ minimizedSeeAnswer: 'Ver resposta',
401
+ collapse: 'Recolher',
402
+ expand: 'Expandir',
403
+ newChat: 'Novo chat',
404
+ generating: 'Gerando resposta',
405
+ sessionFinished: '{{title}} terminou de responder',
406
+ sessionFinishedApproval: '{{title}} requer sua aprovação',
407
+ sessionFinishedError: '{{title}} teve um erro ao responder',
408
+ openAgentCreator: 'Criar agente',
409
+ openMarketplace: 'Marketplace de agentes'
410
+ },
411
+ marketplace: {
412
+ back: 'Voltar',
413
+ title: 'Ideias para criar agentes',
414
+ description: 'Escolha uma sugestão bem construída e abra o editor com o agente já preenchido para adaptar ao seu caso.',
415
+ myAgentsTitle: 'Meus agentes',
416
+ myAgentsReadyTitle: 'Seus agentes estao prontos para ajudar voce em tarefas',
417
+ myAgentsDescription: 'Estes sao seus agentes custom. Selecione um para iniciar a conversa com esse perfil.',
418
+ myAgentsEmptyStateTitle: 'Voce ainda nao tem agentes criados',
419
+ myAgentsEmptyStateDescription: 'Clique no botao abaixo para comecar a criar agentes sob medida.',
420
+ myAgentsEmptyStateDescriptionNoPerm: 'Quando alguem com permissao para cria-los configurar, voce podera acessa-los por aqui.',
421
+ myAgentsEmptyStateButton: 'Criar agente',
422
+ myAgentsFallbackIntro: 'Agente personalizado pronto para ajudar no seu fluxo de trabalho.',
423
+ myAgentsFallbackDescription: 'Clique em usar agente para iniciar uma conversa com este agente.',
424
+ myAgentsFallbackDate: 'Ha alguns dias',
425
+ myAgentsToday: 'Hoje',
426
+ myAgentsOneDayAgo: 'Ha 1 dia',
427
+ myAgentsDaysAgo: 'Ha {{days}} dias',
428
+ cardMenuAriaLabel: 'Menu de acoes do agente',
429
+ use: 'Usar',
430
+ createAgent: 'Criar agente manualmente',
431
+ searchAgentPlaceholder: 'Buscar agente...',
432
+ searchMinLength: 'mín. 3 caracteres',
433
+ searchNoResults: 'Nenhum resultado encontrado.',
434
+ searchNoResultsSubtitle: 'Crie um agente de IA que possa pensar, agir e automatizar o trabalho para você',
435
+ useTemplate: 'Criar com esta ideia',
436
+ useMyAgent: 'Usar agente',
437
+ badges: {
438
+ branding: 'Branding',
439
+ linkedin: 'LinkedIn',
440
+ marketing: 'Marketing'
441
+ }
442
+ },
443
+ mySkills: {
444
+ title: 'Especialize a MAIA com suas proprias regras',
445
+ subtitle: 'As skills sao globais: estao disponiveis para todos os seus agentes.',
446
+ tabMySkills: 'Minhas skills',
447
+ tabSharedSkills: 'Skills compartilhadas',
448
+ dropdownButton: 'Skills',
449
+ dropdownCreate: 'Criar nova skill',
450
+ dropdownEmpty: 'Ainda nao ha skills',
451
+ dropdownError: 'Ocorreu um problema. Tente novamente.',
452
+ mySkillsDescription: 'Habilidades criadas por voce.',
453
+ sharedSkillsDescription: 'Habilidades compartilhadas por outros membros da sua equipe.',
454
+ searchPlaceholder: 'Buscar habilidades...',
455
+ createManually: 'Criar manualmente',
456
+ visibilityOnlyMe: 'Somente eu',
457
+ visibilityEveryone: 'Visivel para todos',
458
+ sharedEmptyStateTitle: 'Ainda nao compartilharam skills com voce.',
459
+ sharedEmptyStateDescription: 'Quando sua empresa compartilhar skills, elas aparecerao aqui.',
460
+ createSkill: 'Criar skill',
461
+ preview: 'Pre-visualizacao',
462
+ previewEmpty: 'Nada para pre-visualizar ainda.',
463
+ uploadMd: 'Enviar .md',
464
+ uploadError: 'Apenas arquivos .md sao permitidos',
465
+ createWithMaia: 'Criar com Maia',
466
+ writeInstructions: 'Escrever instrucoes',
467
+ uploadSkill: 'Enviar uma skill',
468
+ generatePlaceholder: 'Quero uma Skill para criar meus projetos',
469
+ generateWithMaia: 'Criar a Skill com Maia',
470
+ generateNeedsName: 'Escreva um nome primeiro para descrever a skill',
471
+ generateSuccess: 'Skill gerada com Maia',
472
+ generateError: 'Nao foi possivel gerar a skill. Tente novamente.',
473
+ cardMenuAriaLabel: 'Menu de acoes da skill',
474
+ edit: 'Editar',
475
+ "delete": 'Excluir',
476
+ cancel: 'Cancelar',
477
+ save: 'Salvar',
478
+ close: 'Fechar',
479
+ createTitle: 'Criacao de skill',
480
+ editTitle: 'Editar skill',
481
+ viewTitle: 'Skill compartilhada',
482
+ useSkill: 'Usar skill',
483
+ infoTooltip: 'As skills sao instrucoes que voce da a um agente para que ele resolva uma tarefa sempre da mesma forma. Mencione-a com # no chat e o agente seguira esse passo a passo.',
484
+ sharedCreatedBy: 'Criada por {{name}}',
485
+ nameLabel: 'Nome',
486
+ namePlaceholder: 'Nome da skill',
487
+ descriptionLabel: 'Descricao',
488
+ descriptionPlaceholder: 'Descreva brevemente para que serve a skill',
489
+ instructionsLabel: 'Instrucoes',
490
+ shareWithCompany: 'Habilitar para toda a empresa',
491
+ createdBy: 'Criado por',
492
+ lastUpdated: 'Ultima atualizacao',
493
+ saveAndUse: 'Salvar e usar skill',
494
+ contentLabel: 'Skill',
495
+ contentPlaceholder: 'Escreva a skill...',
496
+ emptyStateTitle: 'Voce ainda nao tem skills criadas',
497
+ emptyStateDescription: 'Clique no botao abaixo para comecar a criar skills sob medida.',
498
+ emptyStateDescriptionNoPerm: 'Quando alguem com permissao para cria-las configurar, voce podera acessa-las por aqui.',
499
+ emptyStateButton: 'Criar skill',
500
+ searchEmptyStateTitle: 'Nao encontramos nenhuma skill',
501
+ searchEmptyStateDescription: 'Tente outro termo ou revise sua busca.',
502
+ createSuccess: 'Skill criada com sucesso',
503
+ createError: 'Nao foi possivel criar a skill. Tente novamente.',
504
+ updateSuccess: 'Skill atualizada com sucesso',
505
+ updateError: 'Nao foi possivel atualizar a skill. Tente novamente.',
506
+ deleteSuccess: 'Skill excluida com sucesso',
507
+ deleteError: 'Nao foi possivel excluir a skill. Tente novamente.'
508
+ },
509
+ snackbar: {
510
+ deleteChat: {
511
+ success: 'Sua conversa foi excluída com sucesso.',
512
+ error: 'Ocorreu um erro inesperado. Por favor tente novamente.'
513
+ },
514
+ renamedChat: {
515
+ success: 'Conversa renomeada com sucesso',
516
+ error: 'Ocorreu um erro inesperado. Por favor tente novamente.'
517
+ },
518
+ loadMoreAgents: {
519
+ error: 'Ocorreu um erro inesperado. Por favor tente novamente.'
520
+ }
521
+ },
522
+ approvalBox: {
523
+ untitledAgent: 'Agente sem nome',
524
+ actions: {
525
+ create_task: 'Criação de tarefa',
526
+ create_tasks_batch: 'Criação de tarefas',
527
+ create_agent: 'Criar agente',
528
+ edit_agent: 'Edição de agente',
529
+ edit_project: 'Edição de projeto',
530
+ edit_task: 'Edição de tarefa',
531
+ edit_tasks_batch: 'Edição de tarefas',
532
+ delete_task: 'Exclusão de tarefa',
533
+ delete_tasks_batch: 'Exclusão de tarefas',
534
+ task_assign: 'Atribuição de usuário',
535
+ task_unassign: 'Remoção de usuário',
536
+ assign_task_label: 'Atribuição de etiqueta',
537
+ create_labels: 'Criação de etiqueta',
538
+ update_task_type: 'Atualização de tipo de tarefa',
539
+ update_estimated_hours: 'Atualização de horas estimadas',
540
+ update_deliverable: 'Atualização de entregável',
541
+ create_hour: 'Registro de horas',
542
+ create_checklist: 'Criação de checklist',
543
+ create_checklist_item: 'Criação de item do checklist',
544
+ clone_task: 'Clonar tarefa',
545
+ get_task_date_hours: 'Consulta de horas por data',
546
+ configure_agent_access: 'Alterar visibilidade do agente',
547
+ send_task_message: 'Envio de mensagem na tarefa',
548
+ delete_checklist_item: 'Exclusão de item do checklist',
549
+ remove_task_type: 'Remoção do tipo de tarefa',
550
+ remove_task_label: 'Remoção de etiqueta',
551
+ count_deliverable: 'Atualização da contagem de entregáveis',
552
+ create_rework: 'Criação de retrabalho',
553
+ update_rework: 'Atualização de retrabalho',
554
+ delete_agent: 'Exclusão de agente',
555
+ unknown: 'Ação desconhecida'
556
+ },
557
+ special: {
558
+ createRework: {
559
+ title: 'Criar retrabalho',
560
+ description: 'Será criado um retrabalho na tarefa com as informações indicadas.'
561
+ },
562
+ updateDeliverableChildren: {
563
+ title: 'Atualizar progresso dos entregáveis',
564
+ description: 'Será atualizado o progresso dos subentregáveis vinculados a esta tarefa.'
565
+ }
566
+ },
567
+ fields: {
568
+ name: 'Nome',
569
+ emoji: 'Emoji',
570
+ introduction: 'Introdução',
571
+ input_placeholder: 'Placeholder',
572
+ user_prompt: 'Prompt principal',
573
+ language: 'Idioma',
574
+ provider: 'Provider',
575
+ model_name: 'Modelo',
576
+ api_key: 'API key'
577
+ },
578
+ title: 'Confirmação requerida',
579
+ description: 'Você precisa aprovar a seguinte ação:',
580
+ approve: 'Aprovar',
581
+ deny: 'Negar',
582
+ manualApprovalWarning: 'Maia detectou que a solicitação foi aprovada manualmente',
583
+ status: {
584
+ approved: 'Solicitação Aprovada',
585
+ denied: 'Solicitação Negada'
586
+ }
587
+ },
588
+ chipLlm: {
589
+ tooltip: 'Modelo: {{model}}'
590
+ },
591
+ clientSelector: {
592
+ project: 'projeto',
593
+ projects: 'projetos'
594
+ }
595
+ })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
596
+ legendDeletedAgent: 'Este agente foi excluído no dia',
597
+ legendProjectDeleted: 'O projeto {{name}} foi excluído. Não é possível continuar a conversa',
598
+ legendNoAccess: 'Você não tem mais acesso para interagir com o agente {{name}}',
599
+ legendNoPermissions: 'Você não tem mais permissão para visualizar ou interagir com o agente {{name}}',
600
+ legendLegacyContextSession: 'Esta conversa pertence a um contexto anterior. Você pode continuar com {{name}} em um novo chat.',
601
+ continueInNewChat: 'Continuar em um novo chat',
602
+ legendModelDeprecated: 'O modelo selecionado para este agente não está mais disponível. Troque para outro modelo para continuar usando-o.',
603
+ legendProviderStatus: 'O modelo usado por este agente está enfrentando problemas temporários. Você pode aguardar a recuperação ou trocar para outro modelo.',
604
+ changeModel: 'Trocar modelo',
605
+ agents: 'Agentes',
606
+ layoutMenuTooltip: 'Layout do chat',
607
+ layoutSidebar: 'Chat paralelo',
608
+ layoutFullscreen: 'Chat completo',
609
+ layoutFloating: 'Chat flutuante',
610
+ back: 'Voltar',
611
+ addAgent: 'Adicionar novo agente',
612
+ newAgent: 'Novo agente',
613
+ createAgent: 'Criar Agente',
614
+ editAgent: 'Editar agente',
615
+ cancel: 'Cancelar',
616
+ accept: 'Aceitar',
617
+ deleteAgent: 'Excluir agente',
618
+ "continue": 'Continuar',
619
+ edit: 'Editar',
620
+ "delete": 'Excluir',
621
+ feedback: 'Enviar Feedback',
622
+ sendFeedback: 'Enviar feedback',
623
+ saveChanges: 'Salvar alterações',
624
+ createAgentLabelButton: 'Criar agente',
625
+ openAgentCreator: 'Criar agente',
626
+ openMarketplace: 'Marketplace de agentes',
627
+ confirmAgentCreated: 'O agente foi criado com sucesso',
628
+ confirmAgentUpdatedWithFilesError: 'O agente foi editado com sucesso, mas alguns arquivos não puderam ser processados.',
629
+ confirmAgentWithFilesError: 'O agente foi criado com sucesso, mas alguns arquivos não puderam ser processados.',
630
+ confirmAgentDeleted: 'O agente foi excluído com sucesso',
631
+ confirmAgentUpdated: 'O agente foi atualizado com sucesso',
632
+ confirmCloseCreateAgent: 'Tem certeza que deseja fechar? As alterações serão perdidas.',
633
+ confirmCloseEditAgent: 'Tem certeza que deseja fechar? As alterações serão perdidas.',
634
+ confirmReloadBrowser: 'Tem certeza que deseja recarregar a página? As alterações serão perdidas.',
635
+ errorAccessDenied: 'Você não tem permissão para acessar este agente. Contate o suporte.',
636
+ errorAgentCreated: 'Ocorreu um erro inesperado. Por favor tente novamente.',
637
+ attachmentCard: {
638
+ download: 'Descarregar',
639
+ "delete": 'Excluir'
640
+ },
641
+ generalSection: {
642
+ title: 'Geral',
643
+ generalSettings: 'Configuração geral',
644
+ requiredFieldsLabel: '*obrigatórios',
645
+ infoLabel: 'Adicione todas as informações para personalizar o comportamento do seu agente.',
646
+ optionalLabel: 'Opcional',
647
+ basicSettings: 'Configuração básica',
648
+ selectEmoji: 'Selecionar emoji',
649
+ name: 'Qual é o nome do seu agente?',
650
+ namePlaceholder: 'Dê um nome ao seu agente',
651
+ behaviorSettings: 'Configuração de comportamento',
652
+ initialPrompt: 'Quais são as instruções?',
653
+ initialPromptPlaceholder: 'Exemplo: Você é um redator de mídias sociais que escreve e adapta mensagens para diferentes redes, garantindo consistência no tom, na personalidade e nos valores da marca.',
654
+ modelAiLabel: 'Modelo de IA',
655
+ noModelsAvailable: 'Não há modelos disponíveis',
656
+ inputPlaceholderTitle: 'O que o usuário verá no campo de chat antes de escrever?',
657
+ inputPlaceholder: 'Pergunte o que precisar…',
658
+ introduction: 'Como o seu agente vai se apresentar?',
659
+ introductionPlaceholder: 'Exemplo: Olá! 👋 Vou te ajudar a criar, adaptar e revisar textos para diferentes plataformas, garantindo que mantenham a voz, o tom e a personalidade da sua marca. Você pode me pedir ideias para campanhas, adaptar um texto para outro canal ou revisar a coerência da mensagem.',
660
+ addFavorite: 'Adicionar aos favoritos',
661
+ removeFavorite: 'Remover dos favoritos',
662
+ error: {
663
+ maxCaracterName: 'Você atingiu o limite de 150 caracteres.',
664
+ maxCaracterInitialPrompt: 'Você atingiu o limite de 5000 caracteres.',
665
+ maxInputPlaceholder: 'Você atingiu o limite de 100 caracteres.',
666
+ maxCaracterIntroduction: 'Você atingiu o limite de 400 caracteres.'
667
+ },
668
+ howToWritePrompt: 'Como escrever um prompt',
669
+ whatIsModelAiTitle: 'Qual modelo de IA você vai usar?',
670
+ whatIsModelAi: 'O que é um modelo de IA?',
671
+ createdBy: 'Por',
672
+ createdByTooltip: 'Usuário criador do agente',
673
+ createdByTooltipDeleted: 'Usuário excluído. Seu nome é mantido para referência.'
674
+ },
675
+ knowledgeSection: {
676
+ title: 'Conhecimento',
677
+ knowledgeTab: 'Base de conhecimentos',
678
+ infoLabel: 'Carregue os arquivos que seu agente usará como fonte para suas respostas.',
679
+ selectFileTitle: 'SELECIONAR ARQUIVOS',
680
+ attachFiles: 'Anexar arquivos',
681
+ dropZoneText: {
682
+ 1: 'Clique aqui para carregar',
683
+ 2: 'ou arraste os arquivos'
684
+ },
685
+ infoFileTypes: '.md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx (máx. total de 5MB)',
686
+ error: {
687
+ maxFilesTitle: 'Limite de tamanho total excedido.',
688
+ maxFilesDescription: 'Você pode anexar arquivos até um total de 5 MB. Os seguintes arquivos não puderam ser anexados:',
689
+ maxSizeTitle: 'Você excedeu o limite de tamanho permitido',
690
+ maxSizeDescription: {
691
+ 1: 'O limite máximo de 5 MB foi atingido.',
692
+ 2: 'Esses arquivos não foram carregados porque excedem o espaço disponível:'
693
+ },
694
+ invalidExtensionDescription: {
695
+ 1: 'Somente arquivos com as seguintes extensões são aceitos: .md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx',
696
+ 2: 'Estes arquivos não foram carregados porque sua extensão não é permitida:'
697
+ }
698
+ },
699
+ moreInfo: 'Veja como funciona aqui'
700
+ },
701
+ accessibilitySection: {
702
+ titleTab: 'Permissões',
703
+ titleSection: 'Visibilidade e permissões do agente',
704
+ subtitleSection: 'Defina quem pode usar este agente e se ele pode acessar dados do COR.',
705
+ corPermissionsTitle: 'Permissões de acesso aos dados do COR',
706
+ corPermissionsSubtitle: 'A que este agente tem acesso?',
707
+ taskAccessTitle: 'Acesso a tarefas',
708
+ taskAccessDescription: 'O agente poderá ler, criar, modificar e excluir tarefas de acordo com as permissões do usuário.',
709
+ mcpPermissionsTitle: 'Conectores externos',
710
+ mcpPermissionsSubtitle: 'A quais ferramentas externas este agente tem acesso?',
711
+ netsuiteAccessTitle: 'NetSuite',
712
+ netsuiteAccessDescription: 'O agente poderá ler e atualizar registros do NetSuite. Ao salvar, pediremos autorização de acesso.',
713
+ connectorAccessDescription: 'O agente poderá usar {{name}}. Ao salvar, pediremos autorização de acesso.',
714
+ connectorAuthFailed: 'Não foi possível abrir o login do conector. Tente novamente ou revise a configuração OAuth.',
715
+ connectorAuthIncomplete: 'O login do NetSuite não foi concluído. Salve de novo, toque em Permitir e espere a janela fechar.',
716
+ netsuiteAuthSetupRequired: 'O NetSuite não registra o app sozinho. Um admin precisa criar uma Integration (Public Client, scope AI Connector, Redirect URI do MAIA). Depois o login aparece no popup.',
717
+ visibilityTitle: 'Visibilidade do agente',
718
+ whoCanAccess: 'Quem pode usar este agente?',
719
+ allCompanyTitle: 'Toda a empresa',
720
+ allCompanyDescription: 'Todos os usuários da sua organização poderão ver e usar este agente.',
721
+ clientTitle: 'Para clientes específicos',
722
+ clientDescription: 'Associe este agente a um ou mais clientes. Todos os usuários poderão ver com quais clientes ele está vinculado.',
723
+ ownTitle: 'Somente eu',
724
+ ownDescription: 'Este agente será privado e não estará disponível para outros usuários.',
725
+ clientsSelected: 'Clientes selecionados:',
726
+ searchError: 'Ops! Tivemos um problema ao carregar os clientes. Pode tentar novamente em instantes?',
727
+ searchEmpty: 'Ops! Não encontramos clientes com esse nome. Tente outra busca.',
728
+ searchInitial: 'Comece a digitar o nome de um cliente para associá-lo',
729
+ searchPlaceholder: 'Buscar cliente',
730
+ clientInactive: 'Este cliente está inativo. Recomendamos removê-lo da lista.',
731
+ clientDeletedTooltip: 'Este cliente foi excluído. Recomendamos removê-lo da lista.',
732
+ clientDeleted: 'Cliente excluído',
733
+ clientsError: 'Verifique os clientes associados'
734
+ },
735
+ processingKnowledge: {
736
+ descriptionCreate: 'Estamos criando o Agente e sua base de conhecimento. Isso pode levar alguns instantes. Por favor, não feche esta janela até que o processo seja concluído.',
737
+ descriptionUpdate: 'Estamos atualizando o Agente e sua base de conhecimento. Isso pode levar alguns instantes. Por favor, não feche esta janela até que o processo seja concluído.',
738
+ fileRow: 'Arquivo',
739
+ statusRow: 'Status',
740
+ pending: 'Pendente',
741
+ processing: 'Processando',
742
+ failed: 'Falha',
743
+ done: 'Completado',
744
+ loadingFiles: 'Carregando arquivos...',
745
+ error: {}
746
+ },
747
+ deleteAgentModal: {
748
+ title: 'Deseja excluir este agente?',
749
+ firstPart: 'Você está prestes a excluir ',
750
+ secondPart: 'Esta ação não pode ser desfeita.',
751
+ cancel: 'Cancelar',
752
+ "delete": 'Excluir'
753
+ }
754
+ })), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
755
+ projectSelector: {
756
+ title: 'Em qual projeto você gostaria de ajuda?',
757
+ hello: {
758
+ title: 'Sou MAIA, sua especialista em projetos.',
759
+ subtitle: 'Para te dar respostas precisas, preciso saber sobre qual projeto vamos conversar. Qual você escolhe?'
760
+ },
761
+ subtitle: 'Selecione o projeto para que a MAIA responda com base em um contexto.',
762
+ labelProject: 'Selecione um projeto',
763
+ placeholder: 'Busque um projeto pelo nome',
764
+ changeProject: 'Mudar de projeto',
765
+ recentProjects: 'Recentes',
766
+ searchingProjects: 'Buscando seus projetos...',
767
+ errorMessage: 'Ops! Tivemos um problema ao carregar os projetos. Por favor, tente novamente em alguns minutos.',
768
+ emptyRecentProjects: 'Você não tem projetos recentes. Digite o nome de um projeto na busca para encontrá-lo.',
769
+ emptyState: 'Ops! Não encontramos projetos com esse nome. Tente outra busca.',
770
+ withoutClient: 'Sem cliente',
771
+ withoutTitle: 'Sem título'
772
+ }
773
+ })), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
774
+ clientSelector: {
775
+ title: 'Em qual cliente você gostaria de ajuda?',
776
+ hello: {
777
+ title: 'Sou MAIA, sua especialista em clientes.',
778
+ subtitle: 'Para te dar respostas precisas, preciso saber sobre qual cliente vamos conversar. Qual você escolhe?'
779
+ },
780
+ subtitle: 'Selecione o cliente para que a MAIA responda com base em um contexto.',
781
+ labelClient: 'Selecione um cliente',
782
+ placeholder: 'Buscar cliente pelo nome',
783
+ changeClient: 'Mudar de cliente',
784
+ recentClients: 'Recentes',
785
+ searchingClients: 'Buscando seus clientes...',
786
+ errorMessage: 'Tivemos um problema ao carregar os clientes. Por favor, tente novamente em alguns minutos.',
787
+ emptyRecentClients: 'Você não tem clientes recentes. Digite o nome de um cliente na busca para encontrá-lo.',
788
+ emptyState: 'Ops! Não encontramos clientes com esse nome. Tente outra busca.',
789
+ project: 'projeto',
790
+ projects: 'projetos'
791
+ }
792
+ }));
793
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwicHJvamVjdFN1bW1hcnlUaXRsZSIsInNlbGVjdGVkUHJvamVjdCIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiZmFxIiwic3RhcnRUaXRsZSIsImVtcHR5IiwiY2F0ZWdvcmllcyIsInByb2plY3RzIiwidGFza3MiLCJob3VycyIsInJld29ya3MiLCJ1bmRlZmluZWQiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJjb2xsYWJvcmF0b3JzIiwibGFiZWxzIiwiY2hlY2tsaXN0cyIsImRlbGl2ZXJhYmxlcyIsImNyZWF0ZWRCeSIsImNyZWF0ZWRCeVRvb2x0aXAiLCJjcmVhdGVkQnlUb29sdGlwRGVsZXRlZCIsInRhc2tHcmVldGluZyIsInRpdGxlXzEiLCJ0aXRsZV8yIiwidGl0bGVfMyIsInRpdGxlUG0iLCJzdWJ0aXRsZVBtIiwibWFpYWtlciIsImNyZWF0ZU1hbnVhbEFnZW50IiwiYmFkZ2VOZXciLCJicmllZkNhcmQiLCJwcm9tcHQiLCJjb21pbmdTb29uQ2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QUkiLCJjb250ZXh0TWVudGlvbiIsImtleWJvYXJkSGludCIsInJlY2VudHNUaXRsZSIsInVzZXJOb1Bvc2l0aW9uIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsInJlY2VudHMiLCJ3aXRoUXVlcnkiLCJjb3VudGVycyIsImNvbnRleHRQaW4iLCJhZGRDb250ZXh0Iiwic2VhcmNoUGxhY2Vob2xkZXIiLCJyZW1vdmUiLCJidXR0b24iLCJuZXdDaGF0Iiwib3BlbkFnZW50Q3JlYXRvciIsIm9wZW5NYXJrZXRwbGFjZSIsImhpc3RvcnkiLCJ0b29sdGlwIiwiaXRlbSIsImRhdGUiLCJtZW51IiwicmVuYW1lIiwibG9hZGluZ01vcmUiLCJvbmJvYXJkaW5nIiwibWFpYSIsImFnZW50Q3VzdG9tIiwiaG93Q3JlYXRlQWdlbnQiLCJob3dJdFdvcmtzIiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJnZW5lcmF0aW5nRGVlcFNlYXJjaCIsImdlbmVyYXRpbmdXZWJTZWFyY2giLCJzdWdnZXN0aW9uc1RpdGxlIiwiY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdCIsImNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlIiwiY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3IiLCJ3cml0aW5nIiwiZXhlY3V0aW5nQWN0aW9uIiwicHJvY2Vzc2luZyIsImFjdGl2aXR5IiwicHJlcGFyaW5nIiwiY29uc2lkZXJpbmciLCJhbG1vc3RSZWFkeSIsInRoaW5raW5nIiwiYW5hbHl6aW5nIiwicmV2aWV3aW5nIiwicGxhbm5pbmciLCJzZWFyY2giLCJzY2FubmluZyIsInN1bW1hcml6aW5nIiwiZGVlcFNlYXJjaCIsImV4cGxvcmluZyIsImNyb3NzQ2hlY2tpbmciLCJhdHRhY2htZW50IiwicmVhZGluZyIsImV4dHJhY3RpbmciLCJyZWFkaW5nUGx1cmFsIiwiZXh0cmFjdGluZ1BsdXJhbCIsImNvbXBvc2luZyIsImR5bmFtaWNDb250ZXh0VG9vbHRpcCIsImNyZWF0aW5nVGFzayIsImNyZWF0aW5nVGFza3NCYXRjaCIsImNyZWF0aW5nQWdlbnQiLCJlZGl0aW5nQWdlbnQiLCJlZGl0aW5nVGFzayIsImVkaXRpbmdUYXNrc0JhdGNoIiwiZGVsZXRpbmdUYXNrIiwiZGVsZXRpbmdUYXNrc0JhdGNoIiwiYXNzaWduaW5nVXNlciIsInVuYXNzaWduaW5nVXNlciIsImFzc2lnbmluZ0xhYmVsIiwidXBkYXRpbmdUYXNrVHlwZSIsInVwZGF0aW5nRXN0aW1hdGVkSG91cnMiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlIiwibG9nZ2luZ0hvdXJzIiwiY3JlYXRpbmdDaGVja2xpc3QiLCJjcmVhdGluZ0xhYmVsIiwiZWRpdGluZ1Byb2plY3QiLCJjcmVhdGluZ0NoZWNrbGlzdEl0ZW0iLCJxdWVyeWluZ0hvdXJzIiwiY29uZmlndXJpbmdBZ2VudEFjY2VzcyIsInNlbmRpbmdUYXNrTWVzc2FnZSIsImRlbGV0aW5nQ2hlY2tsaXN0SXRlbSIsInJlbW92aW5nVGFza1R5cGUiLCJyZW1vdmluZ0xhYmVsIiwidXBkYXRpbmdEZWxpdmVyYWJsZUNvdW50IiwiY3JlYXRpbmdSZXdvcmsiLCJ1cGRhdGluZ1Jld29yayIsImdlbmVyYXRpbmdGaWxlIiwicmVzdW1pbmdBY3Rpb24iLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsIm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyIiwiYWdlbnRMYWJlbCIsImRpc2NsYWltZXIiLCJkaXNjbGFpbWVyQWdlbnQiLCJjb3JBY2Nlc3NMYWJlbCIsImNvckFjY2Vzc1Rvb2x0aXAiLCJyZXRyeSIsImVycm9yQWNjZXNzRGVuaWVkIiwiZXJyb3JQcm9tcHRUb29Mb25nIiwiY2hhbmdlUHJvamVjdCIsInNlYXJjaFdlYiIsImF0dGFjaEZpbGUiLCJwbHVzTWVudUF0dGFjaCIsImRyb3BGaWxlc0hlcmUiLCJwbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uIiwicGx1c01lbnVRdWlja0FjdGlvbnMiLCJvcGVuUGx1c01lbnVBcmlhIiwib3Blbk1lbnRpb25BcmlhIiwicmVtb3ZlQXR0YWNobWVudEFyaWEiLCJyZW1vdmVBY3RpdmVUb29sQXJpYSIsInNlbmQiLCJsaW1pdEZpbGVzIiwic3RvcCIsImNhbmNlbGxlZCIsInRvb01hbnlBY3RpdmVTZXNzaW9ucyIsImF0dGFjaG1lbnRQcmV2aWV3TW9kYWwiLCJ1bnN1cHBvcnRlZEZpbGVNZXNzYWdlIiwidHlwZUxhYmVsIiwidW5rbm93biIsInNpemVMYWJlbCIsImV4Y2VsIiwic2hlZXRTZWxlY3RvckxhYmVsIiwibG9hZEVycm9yIiwiZmlsZVJlYWRFcnJvciIsInNoZWV0TG9hZEVycm9yIiwid29yZCIsImxlZ2FjeURvY1Vuc3VwcG9ydGVkIiwicHB0IiwibGVnYWN5UHB0VW5zdXBwb3J0ZWQiLCJzbGlkZUxhYmVsIiwiZW1wdHlTbGlkZSIsImRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJmaXJzdFBhcnQiLCJzZWNvbmRQYXJ0IiwiZGVsZXRlU2tpbGxNb2RhbCIsImVkaXRRdWVzdGlvbk1vZGFsIiwibmV3TmFtZSIsIm1heExlbmd0aCIsIm1vZGFsRmlsZUV4Y2VlZHMiLCJsaW1pdEZpbGVzVGl0bGUiLCJsaW1pdFNpemVUaXRsZSIsImxpbWl0RmlsZXNEZXNjcmlwdGlvbiIsImxpbWl0U2l6ZURlc2NyaXB0aW9uIiwiYWNjZXB0IiwibGltaXQiLCJzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCIsImFnZW50cyIsIm5ld0FnZW50IiwiY3JlYXRlQWdlbnQiLCJlZGl0IiwiYWRkRmF2b3JpdGUiLCJyZW1vdmVGYXZvcml0ZSIsImZhdm9yaXRlVG9nZ2xlZEFkZGVkU3VjY2VzcyIsImZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkRXJyb3IiLCJmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkRXJyb3IiLCJtYWlhSW50cm9kdWN0aW9uIiwiY29udmVyc2F0aW9ucyIsImFnZW50c1NlY3Rpb25UaXRsZSIsIm1haWFrZXJOYXYiLCJteUFnZW50c05hdiIsIm15U2tpbGxzTmF2IiwiZW1wdHlMYWJlbCIsInVucmVhZExhYmVsIiwibWluaW1pemVkT3BlbiIsIm1pbmltaXplZFNlZUFuc3dlciIsInNlc3Npb25GaW5pc2hlZCIsInNlc3Npb25GaW5pc2hlZEFwcHJvdmFsIiwic2Vzc2lvbkZpbmlzaGVkRXJyb3IiLCJtYXJrZXRwbGFjZSIsImJhY2siLCJteUFnZW50c1RpdGxlIiwibXlBZ2VudHNSZWFkeVRpdGxlIiwibXlBZ2VudHNEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlIiwibXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb24iLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybSIsIm15QWdlbnRzRW1wdHlTdGF0ZUJ1dHRvbiIsIm15QWdlbnRzRmFsbGJhY2tJbnRybyIsIm15QWdlbnRzRmFsbGJhY2tEZXNjcmlwdGlvbiIsIm15QWdlbnRzRmFsbGJhY2tEYXRlIiwibXlBZ2VudHNUb2RheSIsIm15QWdlbnRzT25lRGF5QWdvIiwibXlBZ2VudHNEYXlzQWdvIiwiY2FyZE1lbnVBcmlhTGFiZWwiLCJ1c2UiLCJzZWFyY2hBZ2VudFBsYWNlaG9sZGVyIiwic2VhcmNoTWluTGVuZ3RoIiwic2VhcmNoTm9SZXN1bHRzIiwic2VhcmNoTm9SZXN1bHRzU3VidGl0bGUiLCJ1c2VUZW1wbGF0ZSIsInVzZU15QWdlbnQiLCJiYWRnZXMiLCJicmFuZGluZyIsImxpbmtlZGluIiwibWFya2V0aW5nIiwibXlTa2lsbHMiLCJ0YWJNeVNraWxscyIsInRhYlNoYXJlZFNraWxscyIsImRyb3Bkb3duQnV0dG9uIiwiZHJvcGRvd25DcmVhdGUiLCJkcm9wZG93bkVtcHR5IiwiZHJvcGRvd25FcnJvciIsIm15U2tpbGxzRGVzY3JpcHRpb24iLCJzaGFyZWRTa2lsbHNEZXNjcmlwdGlvbiIsImNyZWF0ZU1hbnVhbGx5IiwidmlzaWJpbGl0eU9ubHlNZSIsInZpc2liaWxpdHlFdmVyeW9uZSIsInNoYXJlZEVtcHR5U3RhdGVUaXRsZSIsInNoYXJlZEVtcHR5U3RhdGVEZXNjcmlwdGlvbiIsImNyZWF0ZVNraWxsIiwicHJldmlldyIsInByZXZpZXdFbXB0eSIsInVwbG9hZE1kIiwidXBsb2FkRXJyb3IiLCJjcmVhdGVXaXRoTWFpYSIsIndyaXRlSW5zdHJ1Y3Rpb25zIiwidXBsb2FkU2tpbGwiLCJnZW5lcmF0ZVBsYWNlaG9sZGVyIiwiZ2VuZXJhdGVXaXRoTWFpYSIsImdlbmVyYXRlTmVlZHNOYW1lIiwiZ2VuZXJhdGVTdWNjZXNzIiwiZ2VuZXJhdGVFcnJvciIsImNyZWF0ZVRpdGxlIiwiZWRpdFRpdGxlIiwidmlld1RpdGxlIiwidXNlU2tpbGwiLCJpbmZvVG9vbHRpcCIsInNoYXJlZENyZWF0ZWRCeSIsIm5hbWVMYWJlbCIsIm5hbWVQbGFjZWhvbGRlciIsImRlc2NyaXB0aW9uTGFiZWwiLCJkZXNjcmlwdGlvblBsYWNlaG9sZGVyIiwiaW5zdHJ1Y3Rpb25zTGFiZWwiLCJzaGFyZVdpdGhDb21wYW55IiwibGFzdFVwZGF0ZWQiLCJzYXZlQW5kVXNlIiwiY29udGVudExhYmVsIiwiY29udGVudFBsYWNlaG9sZGVyIiwiZW1wdHlTdGF0ZVRpdGxlIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwiZW1wdHlTdGF0ZUJ1dHRvbiIsInNlYXJjaEVtcHR5U3RhdGVUaXRsZSIsInNlYXJjaEVtcHR5U3RhdGVEZXNjcmlwdGlvbiIsImNyZWF0ZVN1Y2Nlc3MiLCJjcmVhdGVFcnJvciIsInVwZGF0ZVN1Y2Nlc3MiLCJ1cGRhdGVFcnJvciIsImRlbGV0ZVN1Y2Nlc3MiLCJkZWxldGVFcnJvciIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImxvYWRNb3JlQWdlbnRzIiwiYXBwcm92YWxCb3giLCJ1bnRpdGxlZEFnZW50IiwiYWN0aW9ucyIsImNyZWF0ZV90YXNrIiwiY3JlYXRlX3Rhc2tzX2JhdGNoIiwiY3JlYXRlX2FnZW50IiwiZWRpdF9hZ2VudCIsImVkaXRfcHJvamVjdCIsImVkaXRfdGFzayIsImVkaXRfdGFza3NfYmF0Y2giLCJkZWxldGVfdGFzayIsImRlbGV0ZV90YXNrc19iYXRjaCIsInRhc2tfYXNzaWduIiwidGFza191bmFzc2lnbiIsImFzc2lnbl90YXNrX2xhYmVsIiwiY3JlYXRlX2xhYmVscyIsInVwZGF0ZV90YXNrX3R5cGUiLCJ1cGRhdGVfZXN0aW1hdGVkX2hvdXJzIiwidXBkYXRlX2RlbGl2ZXJhYmxlIiwiY3JlYXRlX2hvdXIiLCJjcmVhdGVfY2hlY2tsaXN0IiwiY3JlYXRlX2NoZWNrbGlzdF9pdGVtIiwiY2xvbmVfdGFzayIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiZGVsZXRlX2FnZW50Iiwic3BlY2lhbCIsImNyZWF0ZVJld29yayIsInVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4iLCJmaWVsZHMiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwibGFuZ3VhZ2UiLCJwcm92aWRlciIsIm1vZGVsX25hbWUiLCJhcGlfa2V5IiwiYXBwcm92ZSIsImRlbnkiLCJtYW51YWxBcHByb3ZhbFdhcm5pbmciLCJzdGF0dXMiLCJhcHByb3ZlZCIsImRlbmllZCIsImNoaXBMbG0iLCJjbGllbnRTZWxlY3RvciIsImFibUFnZW50IiwibGVnZW5kRGVsZXRlZEFnZW50IiwibGVnZW5kUHJvamVjdERlbGV0ZWQiLCJsZWdlbmROb0FjY2VzcyIsImxlZ2VuZE5vUGVybWlzc2lvbnMiLCJsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbiIsImNvbnRpbnVlSW5OZXdDaGF0IiwibGVnZW5kTW9kZWxEZXByZWNhdGVkIiwibGVnZW5kUHJvdmlkZXJTdGF0dXMiLCJjaGFuZ2VNb2RlbCIsImxheW91dE1lbnVUb29sdGlwIiwibGF5b3V0U2lkZWJhciIsImxheW91dEZ1bGxzY3JlZW4iLCJsYXlvdXRGbG9hdGluZyIsImFkZEFnZW50IiwiZWRpdEFnZW50IiwiZGVsZXRlQWdlbnQiLCJzZW5kRmVlZGJhY2siLCJzYXZlQ2hhbmdlcyIsImNyZWF0ZUFnZW50TGFiZWxCdXR0b24iLCJjb25maXJtQWdlbnRDcmVhdGVkIiwiY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yIiwiY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3IiLCJjb25maXJtQWdlbnREZWxldGVkIiwiY29uZmlybUFnZW50VXBkYXRlZCIsImNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50IiwiY29uZmlybUNsb3NlRWRpdEFnZW50IiwiY29uZmlybVJlbG9hZEJyb3dzZXIiLCJlcnJvckFnZW50Q3JlYXRlZCIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJnZW5lcmFsU2VjdGlvbiIsImdlbmVyYWxTZXR0aW5ncyIsInJlcXVpcmVkRmllbGRzTGFiZWwiLCJpbmZvTGFiZWwiLCJvcHRpb25hbExhYmVsIiwiYmFzaWNTZXR0aW5ncyIsInNlbGVjdEVtb2ppIiwiYmVoYXZpb3JTZXR0aW5ncyIsImluaXRpYWxQcm9tcHQiLCJpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXIiLCJtb2RlbEFpTGFiZWwiLCJub01vZGVsc0F2YWlsYWJsZSIsImlucHV0UGxhY2Vob2xkZXJUaXRsZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlciIsIm1heENhcmFjdGVyTmFtZSIsIm1heENhcmFjdGVySW5pdGlhbFByb21wdCIsIm1heElucHV0UGxhY2Vob2xkZXIiLCJtYXhDYXJhY3RlckludHJvZHVjdGlvbiIsImhvd1RvV3JpdGVQcm9tcHQiLCJ3aGF0SXNNb2RlbEFpVGl0bGUiLCJ3aGF0SXNNb2RlbEFpIiwia25vd2xlZGdlU2VjdGlvbiIsImtub3dsZWRnZVRhYiIsInNlbGVjdEZpbGVUaXRsZSIsImF0dGFjaEZpbGVzIiwiZHJvcFpvbmVUZXh0IiwiaW5mb0ZpbGVUeXBlcyIsIm1heEZpbGVzVGl0bGUiLCJtYXhGaWxlc0Rlc2NyaXB0aW9uIiwibWF4U2l6ZVRpdGxlIiwibWF4U2l6ZURlc2NyaXB0aW9uIiwiaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uIiwibW9yZUluZm8iLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwiY29yUGVybWlzc2lvbnNUaXRsZSIsImNvclBlcm1pc3Npb25zU3VidGl0bGUiLCJ0YXNrQWNjZXNzVGl0bGUiLCJ0YXNrQWNjZXNzRGVzY3JpcHRpb24iLCJtY3BQZXJtaXNzaW9uc1RpdGxlIiwibWNwUGVybWlzc2lvbnNTdWJ0aXRsZSIsIm5ldHN1aXRlQWNjZXNzVGl0bGUiLCJuZXRzdWl0ZUFjY2Vzc0Rlc2NyaXB0aW9uIiwiY29ubmVjdG9yQWNjZXNzRGVzY3JpcHRpb24iLCJjb25uZWN0b3JBdXRoRmFpbGVkIiwiY29ubmVjdG9yQXV0aEluY29tcGxldGUiLCJuZXRzdWl0ZUF1dGhTZXR1cFJlcXVpcmVkIiwidmlzaWJpbGl0eVRpdGxlIiwid2hvQ2FuQWNjZXNzIiwiYWxsQ29tcGFueVRpdGxlIiwiYWxsQ29tcGFueURlc2NyaXB0aW9uIiwiY2xpZW50VGl0bGUiLCJjbGllbnREZXNjcmlwdGlvbiIsIm93blRpdGxlIiwib3duRGVzY3JpcHRpb24iLCJjbGllbnRzU2VsZWN0ZWQiLCJzZWFyY2hFcnJvciIsInNlYXJjaEVtcHR5Iiwic2VhcmNoSW5pdGlhbCIsImNsaWVudEluYWN0aXZlIiwiY2xpZW50RGVsZXRlZFRvb2x0aXAiLCJjbGllbnREZWxldGVkIiwiY2xpZW50c0Vycm9yIiwicHJvY2Vzc2luZ0tub3dsZWRnZSIsImRlc2NyaXB0aW9uQ3JlYXRlIiwiZGVzY3JpcHRpb25VcGRhdGUiLCJmaWxlUm93Iiwic3RhdHVzUm93IiwicGVuZGluZyIsImZhaWxlZCIsImRvbmUiLCJsb2FkaW5nRmlsZXMiLCJkZWxldGVBZ2VudE1vZGFsIiwicHJvamVjdFNlbGVjdG9yIiwibGFiZWxQcm9qZWN0IiwicmVjZW50UHJvamVjdHMiLCJzZWFyY2hpbmdQcm9qZWN0cyIsImVycm9yTWVzc2FnZSIsImVtcHR5UmVjZW50UHJvamVjdHMiLCJlbXB0eVN0YXRlIiwid2l0aG91dENsaWVudCIsIndpdGhvdXRUaXRsZSIsImxhYmVsQ2xpZW50IiwiY2hhbmdlQ2xpZW50IiwicmVjZW50Q2xpZW50cyIsInNlYXJjaGluZ0NsaWVudHMiLCJlbXB0eVJlY2VudENsaWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFuZy9ici9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMgfSBmcm9tICcuLi8uLi90eXBlcy9Qcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMnXG5cbmNvbnN0IGdsb2JhbHMgPSB7XG4gIGNsb3NlOiAnRmVjaGFyJyxcbiAgbWluaW1pemU6ICdNaW5pbWl6YXInLFxuICBob3dXb3JrczogJ0NvbW8gZnVuY2lvbmE/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZGlyJyxcbiAgY29sbGFwc2U6ICdSZWNvbGhlcicsXG4gIGdvQmFjazogJ1ZvbHRhciBhbyBpbsOtY2lvJyxcbiAgY29weTogJ0NvcGlhcicsXG4gIGNvcGllZDogJ0NvcGlhZG8nLFxuICBzYXZlZDogJ1NhbHZvJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjaW9uYXIgcHJvamV0bycsXG4gIHNhdmU6ICdTYWx2YXInLFxuICBjYW5jZWw6ICdDYW5jZWxhcicsXG59XG5cbmNvbnN0IGVycm9yID0ge1xuICB0aXRsZTogJ09jb3JyZXUgdW0gcHJvYmxlbWEnLFxuICBkZXNjcmlwdGlvbjogJ05vIG1vbWVudG8sIGVzdGFtb3MgZW5mcmVudGFuZG8gYWxndW5zIHByb2JsZW1hcywgcG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgdHJ5QWdhaW46ICdUZW50YXIgbm92YW1lbnRlJyxcbn1cblxuY29uc3QgZ2VuZXJpY1NlY3Rpb24gPSB7XG4gIGVycm9yLFxuICBnbG9iYWxzLFxufVxuXG5jb25zdCBwcm9qZWN0U3VtbWFyeVNlY3Rpb24gPSB7XG4gIHJlc3VtZTogJ1Jlc3VtaXInLFxuICBoZWxsbzogJ09sw6EsIHt7bmFtZX19IScsXG4gIHdlbGNvbWU6ICdTb3UgYSBNQUlBLCBzdWEgYXNzaXN0ZW50ZSBuYSBDT1InLFxuXG4gIGZlZWRiYWNrOiB7XG4gICAgdGh1bWJzVXA6ICdGb2kgw7p0aWwgcGFyYSBtaW0nLFxuICAgIHRodW1ic0Rvd246ICdOw6NvIGZvaSDDunRpbCBwYXJhIG1pbScsXG4gICAgc291cmNlczogJ0Z1ZW50ZXMnLFxuICB9LFxuXG4gIGNvbmZpZzoge1xuICAgIHByb2plY3RTdW1tYXJ5OiAnUmVzdW1pciBwcm9qZXRvJyxcbiAgICBwcm9qZWN0U3VtbWFyeVRpdGxlOiAnUmVzdW1vIGRlIHByb2pldG9zJyxcbiAgICBnb0JhY2s6ICdWb2x0YXIgYW8gaW7DrWNpbycsXG4gICAgc2VsZWN0ZWRQcm9qZWN0OiAnUHJvamV0byBzZWxlY2lvbmFkbycsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjaW9uYXIgcHJvamV0bycsXG4gICAgY29uZmlndXJlUmVzdW1lOiAnQ29uZmlndXJhw6fDtWVzIGF2YW7Dp2FkYXMnLFxuICAgIGdlbmVyYXRpbmdSZXN1bWU6ICdHZXJhbmRvIHJlc3VtbycsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZXJhcicsXG4gICAgaGlkZUNvbmZpZzogJ09jdWx0YXIgY29uZmlndXJhw6fDtWVzJyxcbiAgfSxcblxuICBjb25maWd1cmVTZXR0aW5nczoge1xuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuR0VORVJBTF9TVEFUVVNdOiAnRGF0YXMgZSBwcmF6b3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuSU5DT01FX0NPU1RTXTogJ1JlbnRhYmlsaWRhZGUnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuVElNRV9IT1VSU106ICdFc3RpbWF0aXZhIGRlIGhvcmFzIGUgdXNvJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRBU0tTX1BST0dSRVNTXTogJ1RhcmVmYXMgZSBhdmFuw6dvcycsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5SRVdPUktTXTogJ1JldHJhYmFsaG8nLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1Jlc3VtbyBkbyBwcm9qZXRvJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VsYWJvcmUgcmVsYXTDs3Jpb3MgY29tIElBIGNvbSBiYXNlIG5vIHNldSBwcm9qZXRvJyxcbiAgfSxcbiAgZmFxOiB7XG4gICAgdGl0bGU6ICdQZXJndW50YXMgRnJlcXVlbnRlcycsXG4gICAgc3RhcnRUaXRsZTogJ1ZvY8OqIHBvZGUgY29tZcOnYXIgcG9yLi4uJyxcbiAgICBlbXB0eTogJ07Do28gaMOhIHBlcmd1bnRhcyBmcmVxdWVudGVzJyxcbiAgICBlcnJvcjpcbiAgICAgICdPcHMhIFRpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgYXMgcGVyZ3VudGFzIGZyZXF1ZW50ZXMuIFBvciBmYXZvciwgdGVudGUgbm92YW1lbnRlIGVtIGFsZ3VucyBtaW51dG9zLicsXG4gICAgY2F0ZWdvcmllczoge1xuICAgICAgcHJvamVjdHM6ICdQcm9qZXRvJyxcbiAgICAgIHRhc2tzOiAnVGFyZWZhcycsXG4gICAgICBob3VyczogJ0hvcmFzJyxcbiAgICAgIHJld29ya3M6ICdSZXRyYWJhbGhvcycsXG4gICAgICB1bmRlZmluZWQ6ICdTZW0gY2F0ZWdvcmlhJyxcbiAgICB9LFxuICB9LFxuICBmdWE6IHtcbiAgICB0aXRsZTogJ0HDp8O1ZXMgZnJlcXVlbnRlcycsXG4gICAgbmV3QmFkZ2U6ICdOb3ZvJyxcbiAgICBlcnJvcjogJ09wcyEgVGl2ZW1vcyB1bSBwcm9ibGVtYSBhbyBjYXJyZWdhciBhcyBhw6fDtWVzIGZyZXF1ZW50ZXMuIFBvciBmYXZvciwgdGVudGUgbm92YW1lbnRlIGVtIGFsZ3VucyBtaW51dG9zLicsXG4gIH0sXG4gIHJlY2VudENvbnRleHRzOiB7XG4gICAgdGl0bGU6ICdFc2NvbGhhIHVtIGNvbnRleHRvIHJlY2VudGUgcGFyYSB1bWEgcmVzcG9zdGEgbWFpcyBwcmVjaXNhOicsXG4gICAgdHlwZXM6IHtcbiAgICAgIGNsaWVudDogJ0NsaWVudGUnLFxuICAgICAgcHJvamVjdDogJ1Byb2pldG8nLFxuICAgICAgdGFzazogJ1RhcmVmYScsXG4gICAgfSxcbiAgfSxcbiAgY29udGV4dEhvbWU6IHtcbiAgICBncmVldGluZzogJ09sw6EsIHt7bmFtZX19IPCfkYsnLFxuICAgIHN1YnRpdGxlOiAnU291IE1BSUEsIHN1YSBhc3Npc3RlbnRlIGVtIHRhcmVmYXMsIHByb2pldG9zIGUgY2xpZW50ZXMuXFxuU2VndWltb3MgY29tIGFsZ28gcmVjZW50ZT8nLFxuICAgIHN1YnRpdGxlQ29sbGFib3JhdG9yOiAnU291IE1BSUEsIHN1YSBhc3Npc3RlbnRlIGVtIHRhcmVmYXMuIFNlZ3VpbW9zIGNvbSBhbGdvIHJlY2VudGU/JyxcbiAgICBzdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VyczogJ1JlZ2lzdHJlIHN1YXMgaG9yYXMgb3UgY29tZWNlIHVtIGNoYXQgc29icmUgdW1hIHRhcmVmYS4nLFxuICAgIHN1YnRpdGxlTWFuYWdlcldpdGhIb3VyczogJ1BvciBvbmRlIHZvY8OqIHF1ZXIgY29tZcOnYXI/JyxcbiAgICBob3Vyc1NlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnUmVnaXN0cmFyIGhvcmFzJyxcbiAgICB9LFxuICAgIHJlY2VudFRhc2tzU2VjdGlvbjoge1xuICAgICAgdGl0bGU6ICdDb25zdWx0YXIgc29icmUgdW1hIHRhcmVmYScsXG4gICAgICBzdWJ0aXRsZTogJ0VzY29saGEgdW1hIHRhcmVmYSByZWNlbnRlIHBhcmEgdXNhciBjb21vIGNvbnRleHRvLicsXG4gICAgfSxcbiAgICByZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyOiB7XG4gICAgICB0aXRsZTogJ091IHJldG9tZSBhbGdvIHJlY2VudGUnLFxuICAgICAgc3VidGl0bGU6ICdFc2NvbGhhIHVtYSB0YXJlZmEsIHByb2pldG8gb3UgY2xpZW50ZSBwYXJhIHVzYXIgY29tbyBjb250ZXh0bycsXG4gICAgfSxcbiAgICBjb250ZXh0R3JlZXRpbmc6IHtcbiAgICAgIHByb2plY3Q6ICdPIHF1ZSB2b2PDqiBxdWVyIHF1ZSBhbmFsaXNlbW9zPyBIb3JhcywgZXN0aW1hdGl2YXMsIHJldHJhYmFsaG9zPyBWb2PDqiBlc2NvbGhlIScsXG4gICAgICB0YXNrOiAnRXN0b3UgYXF1aSBwYXJhIGFqdWTDoS1sbyBjb20gZXN0YSB0YXJlZmEuIFVzZSB1bWEgZGFzIGZ1bsOnw7VlcyBwYXJhIGNvbWXDp2FyLicsXG4gICAgICBjbGllbnQ6ICdPIHF1ZSB2b2PDqiBxdWVyIHF1ZSBhbmFsaXNlbW9zPyBSZW50YWJpbGlkYWRlLCBhdmFuw6dvcywgZGVhZGxpbmVzPyBWb2PDqiBlc2NvbGhlIScsXG4gICAgfSxcbiAgfSxcbiAgcGxhbm5lckhvbWU6IHtcbiAgICB0aXRsZTogJ1ZhbW9zIGNvbWXDp2FyIGEgcmVnaXN0cmFyIHN1YXMgaG9yYXMnLFxuICAgIHN1YnRpdGxlOiAnUG9yIG9uZGUgY29tZcOnYW1vcz8nLFxuICB9LFxuICBhY3Rpb246IHtcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICB0YXNrczogJ0HDp8O1ZXMgc29icmUgdGFyZWZhcycsXG4gICAgICBjb2xsYWJvcmF0b3JzOiAnQ29sYWJvcmFkb3JlcyBlIHJlc3BvbnPDoXZlaXMnLFxuICAgICAgbGFiZWxzOiAnRXRpcXVldGFzIGUgdGlwb3MnLFxuICAgICAgY2hlY2tsaXN0czogJ0NoZWNrbGlzdHMnLFxuICAgICAgZGVsaXZlcmFibGVzOiAnRW50cmVnw6F2ZWlzJyxcbiAgICAgIHJld29ya3M6ICdSZXRyYWJhbGhvcycsXG4gICAgICBob3VyczogJ0xhbsOnYW1lbnRvIGRlIGhvcmFzJyxcbiAgICB9LFxuICB9LFxuICBjcmVhdGVkQnk6ICdwb3InLFxuICBjcmVhdGVkQnlUb29sdGlwOiAnVXN1w6FyaW8gY3JpYWRvciBkbyBhZ2VudGUnLFxuICBjcmVhdGVkQnlUb29sdGlwRGVsZXRlZDogJ1VzdcOhcmlvIGV4Y2x1w61kby4gU2V1IG5vbWUgw6kgbWFudGlkbyBwYXJhIHJlZmVyw6puY2lhLicsXG4gIHRhc2tHcmVldGluZzogJ0VzdG91IGFxdWkgcGFyYSBhanVkw6EtbG8gY29tIGVzdGEgdGFyZWZhLiBVc2UgdW1hIGRhcyBmdW7Dp8O1ZXMgcGFyYSBjb21lw6dhci4nLFxuICBoZWxsbzoge1xuICAgIHRpdGxlOiAnUHJvbnRvISBKw6EgZXN0b3UgdXNhbmRvIG8gcHJvamV0bycsXG4gICAgdGl0bGVfMTogJ0FudGVjaXBlIGRlc3Zpb3MuIFZhbW9zIGFuYWxpc2FyIGVzdGUgcHJvamV0by4nLFxuICAgIHRpdGxlXzI6ICdPIHF1ZSB2b2PDqiBxdWVyIHF1ZSBhbmFsaXNlbW9zPyBIb3JhcywgZXN0aW1hdGl2YXMsIHJldHJhYmFsaG9zPyBWb2PDqiBlc2NvbGhlIScsXG4gICAgdGl0bGVfMzogJ1ZhbW9zIHJldmlzYXIgbyBhbmRhbWVudG8gZGVzdGUgcHJvamV0by4nLFxuICAgIHN1YnRpdGxlOiAnUGFyYSBjb21lw6dhciwgcG9zc28gdGUgYWp1ZGFyIGNvbSBlc3NhcyBvcMOnw7Vlcy4gT3UsIHNlIHByZWZlcmlyLCBlc2NyZXZhIGRpcmV0YW1lbnRlIHN1YSBwZXJndW50YSEnLFxuICAgIHRpdGxlUG06ICdPbMOhLCB7e25hbWV9fSEgU291IHt7YWdlbnR9fSwgc3VhIGFzc2lzdGVudGUnLFxuICAgIHN1YnRpdGxlUG06ICdQYXJhIHRlIGRhciByZXNwb3N0YXMgcHJlY2lzYXMsIHByZWNpc28gc2FiZXIgc29icmUgcXVhbCBwcm9qZXRvIHZhbW9zIGNvbnZlcnNhci4gUXVhbCB2b2PDqiBlc2NvbGhlPycsXG4gIH0sXG4gIG1haWFrZXI6IHtcbiAgICB0aXRsZTogJ1RyYW5zZm9ybWUgcHJvY2Vzc29zIHJlcGV0aXRpdm9zIGVtIGFnZW50ZXMgaW50ZWxpZ2VudGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyaWUgYWdlbnRlcyBxdWUgYW5hbGlzZW0gZSBnZXJlbSBjb250ZcO6ZG8gZGUgYWNvcmRvIGNvbSBhcyBzdWFzIG5lY2Vzc2lkYWRlcy4nLFxuICAgIGNyZWF0ZU1hbnVhbEFnZW50OiAnQ3JpYXIgYWdlbnRlIG1hbnVhbG1lbnRlJyxcbiAgICBiYWRnZU5ldzogJ05vdm8nLFxuICAgIGJyaWVmQ2FyZDoge1xuICAgICAgdGl0bGU6ICdBZ2VudGUgZXNwZWNpYWxpc3RhIGVtIGJyaWVmJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3JpZSBlIG1lbGhvcmUgYnJpZWZzIHBhcmEgcXVlIGVzdGVqYW0gcHJvbnRvcyBwYXJhIHVzYXIgZW0gdGFyZWZhcy4nLFxuICAgICAgcHJvbXB0OiAnUXVlcm8gY3JpYXIgdW0gYWdlbnRlIGVzcGVjaWFsaXN0YSBlbSBicmllZi4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnRW0gYnJldmUsIG1haXMgbm92aWRhZGVzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXN0YW1vcyB0cmFiYWxoYW5kbyBwYXJhIG9mZXJlY2VyIG1haXMgYWdlbnRlcycsXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGNvbnRleHRNZW50aW9uOiB7XG4gICAgICBrZXlib2FyZEhpbnQ6ICdOYXZlZ2HDp8OjbyBlbnRyZSBhYmFzOiBALCBAQOKApiBlbSBvcmRlbS4gVGFtYsOpbSBBbHQvQ21kICsg4oaQL+KGkicsXG4gICAgICByZWNlbnRzVGl0bGU6ICdSZWNlbnRlcycsXG4gICAgICB1c2VyTm9Qb3NpdGlvbjogJ1NlbSBjYXJnbycsXG4gICAgICBtZTogJ1lvJyxcbiAgICAgIHRhYnM6IHtcbiAgICAgICAgY2xpZW50OiAnQ2xpZW50ZScsXG4gICAgICAgIHByb2plY3Q6ICdQcm9qZXRvJyxcbiAgICAgICAgdGFzazogJ1RhcmVmYScsXG4gICAgICAgIHVzZXI6ICdVc3XDoXJpbycsXG4gICAgICAgIG1jcDogJ0NvbmVjdG9yZXMnLFxuICAgICAgICBza2lsbDogJ0hhYmlsaWRhZGVzJyxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiAnQnVzY2FuZG8uLi4nLFxuICAgICAgZXJyb3I6ICdUaXZlbW9zIHVtIHByb2JsZW1hLiBUZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIGVtcHR5OiB7XG4gICAgICAgIHJlY2VudHM6ICdDb21lY2UgYSBkaWdpdGFyIHBhcmEgYnVzY2FyJyxcbiAgICAgICAgd2l0aFF1ZXJ5OiAnU2VtIHJlc3VsdGFkb3MgcGFyYSBcInt7cXVlcnl9fVwiJyxcbiAgICAgIH0sXG4gICAgICBjb3VudGVyczoge1xuICAgICAgICBwcm9qZWN0czogJ3Byb2pldG9zJyxcbiAgICAgICAgdGFza3M6ICd0YXJlZmFzJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250ZXh0UGluOiB7XG4gICAgICBhZGRDb250ZXh0OiAnQ29udGV4dG8gZ2xvYmFsJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnQnVzY2FyIGNvbnRleHRv4oCmJyxcbiAgICAgIHJlbW92ZTogJ1JlbW92ZXIgY29udGV4dG8nLFxuICAgIH0sXG4gICAgYnV0dG9uOiAnSUEnLFxuICAgIHRpdGxlOiAnT2zDoSwge3tuYW1lfX0hJyxcbiAgICBuZXdDaGF0OiAnTm92byBjaGF0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1NvdSBhIE1BSUEsIHN1YSBhc3Npc3RlbnRlLCBlIGVzdG91IGFxdWkgcGFyYSB0ZSBhanVkYXIgY29tIGFzIHN1YXMgZMO6dmlkYXMuJyxcbiAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JpYXIgYWdlbnRlJyxcbiAgICBvcGVuTWFya2V0cGxhY2U6ICdNYXJrZXRwbGFjZSBkZSBhZ2VudGVzJyxcbiAgICBoaXN0b3J5OiB7XG4gICAgICB0b29sdGlwOiAnSGlzdMOzcmljbycsXG4gICAgICB0aXRsZTogJ0hpc3TDs3JpY28gdmF6aW8nLFxuICAgICAgZGVzY3JpcHRpb246ICdOZW5odW1hIGNvbnZlcnNhIGVuY29udHJhZGEnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnw5psdGltYSBhdHVhbGl6YcOnw6NvIHt7ZGF0ZX19JyxcbiAgICAgIH0sXG4gICAgICBtZW51OiB7XG4gICAgICAgIHJlbmFtZTogJ1Jlbm9tZWFyJyxcbiAgICAgICAgZGVsZXRlOiAnRXhjbHVpcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDYXJyZWdhbmRvIG1haXMgY29udmVyc2FzJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQWdlbnRlcyBjdXN0b20nLFxuICAgICAgaG93Q3JlYXRlQWdlbnQ6ICdDb21vIGNyaWFyIHVtIGFnZW50ZT8nLFxuICAgICAgdG9vbHRpcDogJ0NvbW8gZnVuY2lvbmE/JyxcbiAgICAgIGhvd0l0V29ya3M6ICdDb21vIGZ1bmNpb25hPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdQZXJndW50YXMgRnJlcXVlbnRlcycsXG4gICAgICBpdGVtczoge1xuICAgICAgICByZW50YWJpbGlkYWRfcHJveWVjdG86ICdRdWFsIMOpIGEgcmVudGFiaWxpZGFkZSBkZXN0ZSBwcm9qZXRvPycsXG4gICAgICAgIGF2YW5jZV9wcm95ZWN0bzogJ1F1YWlzIHPDo28gb3MgYXZhbsOnb3MgZGVzdGUgcHJvamV0bz8nLFxuICAgICAgICB0YXJlYXNfcHJveWVjdG86ICdRdWFpcyBzw6NvIGFzIHByw7N4aW1hcyB0YXJlZmFzIGEgdmVuY2VyPycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hhdDoge1xuICAgICAgZ2VuZXJhdGluZzogJ1BlbnNhbmRvJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiAnQW5hbGlzYW5kbyBhZGp1bnRvJyxcbiAgICAgIGdlbmVyYXRpbmdEZWVwU2VhcmNoOiAnSW5pY2lhbmRvIGEgcGVzcXVpc2EnLFxuICAgICAgZ2VuZXJhdGluZ1dlYlNlYXJjaDogJ1Blc3F1aXNhbmRvIG5hIHdlYicsXG4gICAgICBzdWdnZXN0aW9uc1RpdGxlOiAnUmVzcG9zdGFzIHN1Z2VyaWRhcycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZTogJ1Byw7N4aW1vIHBhc3NvJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0OiAnSW5pY2lhciBjb252ZXJzYSBjb20gbyBub3ZvIGFnZW50ZScsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbktub3dsZWRnZTogJ0VudmlhciBhcnF1aXZvcyBwYXJhIGEgYmFzZSBkZSBjb25oZWNpbWVudG8nLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgY2FycmVnYXIgbyBhZ2VudGUuIFRlbnRlIG5vdmFtZW50ZS4nLFxuICAgICAgd3JpdGluZzogJ0VzY3JldmVuZG8gYSByZXNwb3N0YScsXG4gICAgICBleGVjdXRpbmdBY3Rpb246ICdFeGVjdXRhbmRvIGHDp8OjbycsXG4gICAgICBwcm9jZXNzaW5nOiAnUHJvY2Vzc2FuZG8nLFxuICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgZ2VuZXJhdGluZzoge1xuICAgICAgICAgIHByZXBhcmluZzogJ1ByZXBhcmFuZG8gc3VhIHJlc3Bvc3RhJyxcbiAgICAgICAgICBjb25zaWRlcmluZzogJ1JldmlzYW5kbyBzdWEgY29uc3VsdGEnLFxuICAgICAgICAgIGFsbW9zdFJlYWR5OiAnRGVmaW5pbmRvIGEgYWJvcmRhZ2VtJyxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpbmtpbmc6IHtcbiAgICAgICAgICBhbmFseXppbmc6ICdBbmFsaXNhbmRvIHN1YSBjb25zdWx0YScsXG4gICAgICAgICAgcmV2aWV3aW5nOiAnUmV2aXNhbmRvIG8gY29udGV4dG8nLFxuICAgICAgICAgIHBsYW5uaW5nOiAnTW9udGFuZG8gYSByZXNwb3N0YScsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDoge1xuICAgICAgICAgIHNjYW5uaW5nOiAnQnVzY2FuZG8gbmEgd2ViJyxcbiAgICAgICAgICBzdW1tYXJpemluZzogJ1JldmlzYW5kbyByZXN1bHRhZG9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVlcFNlYXJjaDoge1xuICAgICAgICAgIGV4cGxvcmluZzogJ0V4cGxvcmFuZG8gZm9udGVzJyxcbiAgICAgICAgICBjcm9zc0NoZWNraW5nOiAnVmVyaWZpY2FuZG8gaW5mb3JtYcOnw7VlcycsXG4gICAgICAgIH0sXG4gICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICByZWFkaW5nOiAnTGVuZG8gbyBhbmV4bycsXG4gICAgICAgICAgZXh0cmFjdGluZzogJ0V4dHJhaW5kbyBvIHF1ZSBpbXBvcnRhJyxcbiAgICAgICAgICByZWFkaW5nUGx1cmFsOiAnTGVuZG8gb3MgYW5leG9zJyxcbiAgICAgICAgICBleHRyYWN0aW5nUGx1cmFsOiAnRXh0cmFpbmRvIG8gcXVlIGltcG9ydGEnLFxuICAgICAgICB9LFxuICAgICAgICB3cml0aW5nOiB7XG4gICAgICAgICAgY29tcG9zaW5nOiAnRXNjcmV2ZW5kbyBhIHJlc3Bvc3RhJyxcbiAgICAgICAgfSxcbiAgICAgICAgZHluYW1pY0NvbnRleHRUb29sdGlwOiAnRXN0ZSBjb250ZXh0byBmb2kgZ2VyYWRvIGRpbmFtaWNhbWVudGUgZSBwb2RlIG11ZGFyIGFvIGxvbmdvIGRhIGNvbnZlcnNhLicsXG4gICAgICAgIGNyZWF0aW5nVGFzazogJ0NyaWFuZG8gdGFyZWZhJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrc0JhdGNoOiAnQ3JpYW5kbyB0YXJlZmFzJyxcbiAgICAgICAgY3JlYXRpbmdBZ2VudDogJ0NyaWFuZG8gYWdlbnRlJyxcbiAgICAgICAgZWRpdGluZ0FnZW50OiAnRWRpdGFuZG8gYWdlbnRlJyxcbiAgICAgICAgZWRpdGluZ1Rhc2s6ICdFZGl0YW5kbyB0YXJlZmEnLFxuICAgICAgICBlZGl0aW5nVGFza3NCYXRjaDogJ0VkaXRhbmRvIHRhcmVmYXMnLFxuICAgICAgICBkZWxldGluZ1Rhc2s6ICdFeGNsdWluZG8gdGFyZWZhJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrc0JhdGNoOiAnRXhjbHVpbmRvIHRhcmVmYXMnLFxuICAgICAgICBhc3NpZ25pbmdVc2VyOiAnQXRyaWJ1aW5kbyB1c3XDoXJpbycsXG4gICAgICAgIHVuYXNzaWduaW5nVXNlcjogJ1JlbW92ZW5kbyB1c3XDoXJpbycsXG4gICAgICAgIGFzc2lnbmluZ0xhYmVsOiAnQXRyaWJ1aW5kbyBldGlxdWV0YScsXG4gICAgICAgIHVwZGF0aW5nVGFza1R5cGU6ICdBdHVhbGl6YW5kbyB0aXBvIGRlIHRhcmVmYScsXG4gICAgICAgIHVwZGF0aW5nRXN0aW1hdGVkSG91cnM6ICdBdHVhbGl6YW5kbyBob3JhcyBlc3RpbWFkYXMnLFxuICAgICAgICB1cGRhdGluZ0RlbGl2ZXJhYmxlOiAnQXR1YWxpemFuZG8gZW50cmVnw6F2ZWwnLFxuICAgICAgICBsb2dnaW5nSG91cnM6ICdSZWdpc3RyYW5kbyBob3JhcycsXG4gICAgICAgIGNyZWF0aW5nQ2hlY2tsaXN0OiAnQ3JpYW5kbyBjaGVja2xpc3QnLFxuICAgICAgICBjcmVhdGluZ0xhYmVsOiAnQ3JpYW5kbyBldGlxdWV0YScsXG4gICAgICAgIGVkaXRpbmdQcm9qZWN0OiAnRWRpdGFuZG8gcHJvamV0bycsXG4gICAgICAgIGNyZWF0aW5nQ2hlY2tsaXN0SXRlbTogJ0FkaWNpb25hbmRvIGl0ZW0gYW8gY2hlY2tsaXN0JyxcbiAgICAgICAgcXVlcnlpbmdIb3VyczogJ0NvbnN1bHRhbmRvIGhvcmFzJyxcbiAgICAgICAgY29uZmlndXJpbmdBZ2VudEFjY2VzczogJ0FsdGVyYW5kbyB2aXNpYmlsaWRhZGUgZG8gYWdlbnRlJyxcbiAgICAgICAgc2VuZGluZ1Rhc2tNZXNzYWdlOiAnRW52aWFuZG8gbWVuc2FnZW0gbmEgdGFyZWZhJyxcbiAgICAgICAgZGVsZXRpbmdDaGVja2xpc3RJdGVtOiAnRXhjbHVpbmRvIGl0ZW0gZG8gY2hlY2tsaXN0JyxcbiAgICAgICAgcmVtb3ZpbmdUYXNrVHlwZTogJ1JlbW92ZW5kbyB0aXBvIGRlIHRhcmVmYScsXG4gICAgICAgIHJlbW92aW5nTGFiZWw6ICdSZW1vdmVuZG8gZXRpcXVldGEnLFxuICAgICAgICB1cGRhdGluZ0RlbGl2ZXJhYmxlQ291bnQ6ICdBdHVhbGl6YW5kbyBjb250YWRvciBkZSBlbnRyZWfDoXZlaXMnLFxuICAgICAgICBjcmVhdGluZ1Jld29yazogJ0NyaWFuZG8gcmV0cmFiYWxobycsXG4gICAgICAgIHVwZGF0aW5nUmV3b3JrOiAnQXR1YWxpemFuZG8gcmV0cmFiYWxobycsXG4gICAgICAgIGdlbmVyYXRpbmdGaWxlOiAnR2VyYW5kbyBhcnF1aXZvJyxcbiAgICAgICAgcmVzdW1pbmdBY3Rpb246ICdFeGVjdXRhbmRvIGHDp8OjbyBhcHJvdmFkYScsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDYXJyZWdhbmRvIG1haXMgbWVuc2FnZW5zJyxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJ0VzY3JldmEgc3VhIHBlcmd1bnRhIGFxdWnigKYnLFxuICAgICAgICBvcmNoZXN0cmF0b3JQbGFjZWhvbGRlcjogJ1Blcmd1bnRlIMOgIE1haWEsIEAgcGFyYSBtZW5jaW9uYXIgb3UgLyBwYXJhIGHDp8O1ZXMgcsOhcGlkYXMnLFxuICAgICAgICBhZ2VudExhYmVsOiAnTyBBZ2VudGUnLFxuICAgICAgICBkaXNjbGFpbWVyOiAne3thZ2VudE5hbWV9fSBwb2RlIGNvbWV0ZXIgZXJyb3MuIFZlcmlmaXF1ZSBhcyBpbmZvcm1hw6fDtWVzIGltcG9ydGFudGVzLicsXG4gICAgICAgIGRpc2NsYWltZXJBZ2VudDogJ01vZGVsb3MgZGUgSUEgcG9kZW0gY29tZXRlciBlcnJvcy4gVmVyaWZpcXVlIGFzIGluZm9ybWHDp8O1ZXMgaW1wb3J0YW50ZXMuJyxcbiAgICAgICAgY29yQWNjZXNzTGFiZWw6ICdBY2Vzc28gYW8gQ09SJyxcbiAgICAgICAgY29yQWNjZXNzVG9vbHRpcDogJ0FjZXNzbyBhb3MgZGFkb3MgZG8gQ09SJyxcbiAgICAgIH0sXG4gICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBhbyBnZXJhciBzdWEgcmVzcG9zdGEsIHBvciBmYXZvciwgdGVudGUgbm92YW1lbnRlLicsXG4gICAgICByZXRyeTogJ1RlbnRhciBub3ZhbWVudGUnLFxuICAgICAgZXJyb3JBY2Nlc3NEZW5pZWQ6XG4gICAgICAgICdWb2PDqiBuw6NvIHRlbSBhY2Vzc28gcGFyYSBpbnRlcmFnaXIgY29tIGVzdGUgYWdlbnRlLiDDiSBwb3Nzw612ZWwgcXVlIHN1YXMgY29uZmlndXJhw6fDtWVzIGRlIGFjZXNzaWJpbGlkYWRlIHRlbmhhbSBtdWRhZG8uIFBvciBmYXZvciwgY29udGF0ZSBhIHBlc3NvYSBuYSBzdWEgb3JnYW5pemHDp8OjbyBxdWUgZ2VyZW5jaWEgYWdlbnRlcyBwYXJhIG9idGVyIG1haXMgaW5mb3JtYcOnw7Vlcy4nLFxuICAgICAgZXJyb3JQcm9tcHRUb29Mb25nOlxuICAgICAgICAnVm9jw6ogZXhjZWRldSBvIGxpbWl0ZSBkZSBjb250ZXh0byB7e3VzZWR9fSB0b2tlbnMuIFBvciBmYXZvciwgdGVudGUgbm92YW1lbnRlIG91IGNvbnRpbnVlIGVtIG91dHJvIGNoYXQnLFxuICAgICAgY2hhbmdlUHJvamVjdDogJ0RldGVjdGVpIHF1ZSB2b2PDqiBxdWVyIG11ZGFyIGRlIFByb2pldG8uXFxuXFxuKipTZWxlY2lvbmUgbyBwcm9qZXRvIHBhcmEgY29udGludWFyOioqJyxcbiAgICAgIHNlYXJjaFdlYjogJ1Blc3F1aXNhciBuYSB3ZWInLFxuICAgICAgZGVlcFNlYXJjaDogJ0J1c2NhIGF2YW7Dp2FkYSBuYSBpbnRlcm5ldCAoYWNlc3NvIGEgbWFpcyBmb250ZXMpJyxcbiAgICAgIGF0dGFjaEZpbGU6ICdBbmV4YXIgYXJxdWl2bycsXG4gICAgICBwbHVzTWVudUF0dGFjaDogJ0FuZXhhciBhcnF1aXZvcycsXG4gICAgICBkcm9wRmlsZXNIZXJlOiAnU29sdGUgb3MgYXJxdWl2b3MgYXF1aScsXG4gICAgICBwbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uOiAnSW52ZXN0aWdhciBhIGZ1bmRvJyxcbiAgICAgIHBsdXNNZW51UXVpY2tBY3Rpb25zOiAnQcOnw7VlcyByw6FwaWRhcycsXG4gICAgICBvcGVuUGx1c01lbnVBcmlhOiAnQW5leG9zIGUgb3DDp8O1ZXMgZGUgcGVzcXVpc2EnLFxuICAgICAgb3Blbk1lbnRpb25BcmlhOiAnTWVuY2lvbmFyJyxcbiAgICAgIHJlbW92ZUF0dGFjaG1lbnRBcmlhOiAnUmVtb3ZlciBhcnF1aXZvJyxcbiAgICAgIHJlbW92ZUFjdGl2ZVRvb2xBcmlhOiAnUmVtb3ZlciBtb2RvIGRlIHBlc3F1aXNhJyxcbiAgICAgIHNlbmQ6ICdFbnZpYXInLFxuICAgICAgbGltaXRGaWxlczogJ1ZvY8OqIGV4Y2VkZXUgbyBsaW1pdGUgZGUgYW5leG9zJyxcbiAgICAgIHN0b3A6ICdJbnRlcnJvbXBlciByZXNwb3N0YScsXG4gICAgICBjYW5jZWxsZWQ6ICdBIHBlc3F1aXNhIGZvaSBjYW5jZWxhZGEuJyxcbiAgICAgIHRvb01hbnlBY3RpdmVTZXNzaW9uczogJ0jDoSBtdWl0YXMgY29udmVyc2FzIGdlcmFuZG8gYW8gbWVzbW8gdGVtcG8uIEFndWFyZGUgdW1hIHRlcm1pbmFyIGFudGVzIGRlIGluaWNpYXIgb3V0cmEuJyxcbiAgICAgIGF0dGFjaG1lbnRQcmV2aWV3TW9kYWw6IHtcbiAgICAgICAgbG9hZGluZzogJ0NhcnJlZ2FuZG8uLi4nLFxuICAgICAgICB1bnN1cHBvcnRlZEZpbGVNZXNzYWdlOlxuICAgICAgICAgICdUaXZlbW9zIHVtIHByb2JsZW1hIGFvIGNhcnJlZ2FyIGEgcHLDqS12aXN1YWxpemHDp8Ojby4gUG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgICAgICAgdHlwZUxhYmVsOiAnVGlwbzonLFxuICAgICAgICB1bmtub3duOiAnRGVzY29uaGVjaWRvJyxcbiAgICAgICAgc2l6ZUxhYmVsOiAnVGFtYW5obzonLFxuICAgICAgICBleGNlbDoge1xuICAgICAgICAgIHNoZWV0U2VsZWN0b3JMYWJlbDogJ1BsYW5pbGhhOicsXG4gICAgICAgICAgbG9hZEVycm9yOiAnTsOjbyBmb2kgcG9zc8OtdmVsIGNhcnJlZ2FyIG8gY29udGXDumRvIGRvIGFycXVpdm8gRXhjZWwuJyxcbiAgICAgICAgICBmaWxlUmVhZEVycm9yOiAnRXJybyBhbyBsZXIgbyBhcnF1aXZvLicsXG4gICAgICAgICAgc2hlZXRMb2FkRXJyb3I6ICdFcnJvIGFvIGNhcnJlZ2FyIGEgcGxhbmlsaGEgc2VsZWNpb25hZGEuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd29yZDoge1xuICAgICAgICAgIGxvYWRFcnJvcjogJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvIGNvbnRlw7pkbyBkbyBkb2N1bWVudG8gV29yZC4nLFxuICAgICAgICAgIGxlZ2FjeURvY1Vuc3VwcG9ydGVkOiAnQSB2aXN1YWxpemHDp8OjbyBkZSBhcnF1aXZvcyAuZG9jIG7Do28gZXN0w6EgZGlzcG9uw612ZWwuIFVzZSBvIGZvcm1hdG8gLmRvY3guJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHB0OiB7XG4gICAgICAgICAgbG9hZEVycm9yOiAnTsOjbyBmb2kgcG9zc8OtdmVsIGNhcnJlZ2FyIG8gY29udGXDumRvIGRhIGFwcmVzZW50YcOnw6NvLicsXG4gICAgICAgICAgbGVnYWN5UHB0VW5zdXBwb3J0ZWQ6ICdBIHZpc3VhbGl6YcOnw6NvIGRlIGFycXVpdm9zIC5wcHQgbsOjbyBlc3TDoSBkaXNwb27DrXZlbC4gVXNlIG8gZm9ybWF0byAucHB0eC4nLFxuICAgICAgICAgIHNsaWRlTGFiZWw6ICdTbGlkZSB7e251bWJlcn19JyxcbiAgICAgICAgICBlbXB0eVNsaWRlOiAnRXN0ZSBzbGlkZSBuw6NvIHRlbSB0ZXh0byBuZW0gaW1hZ2VucyBwYXJhIHZpc3VhbGl6YXIuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWxldGVRdWVzdGlvbk1vZGFsOiB7XG4gICAgICB0aXRsZTogJ0Rlc2VqYSBleGNsdWlyIGVzdGEgY29udmVyc2E/JyxcbiAgICAgIGZpcnN0UGFydDogJ1ZvY8OqIGVzdMOhIHByZXN0ZXMgYSBleGNsdWlyJyxcbiAgICAgIHNlY29uZFBhcnQ6ICdFc3RhIGHDp8OjbyDDqSBpcnJldmVyc8OtdmVsLicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgICBkZWxldGU6ICdFeGNsdWlyJyxcbiAgICB9LFxuICAgIGRlbGV0ZVNraWxsTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRGVzZWphIGV4Y2x1aXIgZXN0YSBza2lsbD8nLFxuICAgICAgZmlyc3RQYXJ0OiAnVm9jw6ogZXN0w6EgcHJlc3RlcyBhIGV4Y2x1aXInLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYcOnw6NvIMOpIGlycmV2ZXJzw612ZWwuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOb3ZvIG5vbWUnLFxuICAgICAgdGl0bGU6ICdSZW5vbWVhciBjb252ZXJzYScsXG4gICAgICByZW5hbWU6ICdSZW5vbWVhcicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgICBtYXhMZW5ndGg6ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDE0MCBjYXJhY3RlcmVzLicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNw6F4LiBBbmV4b3MgZXhjZWRpZG9zLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogJ1ZvY8OqIGV4Y2VkZXUgbyBsaW1pdGUgZGUgdGFtYW5obyBwZXJtaXRpZG8nLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnVm9jw6ogcG9kZSBhbmV4YXIgbm8gbcOheGltbyA1IGFycXVpdm9zIHBvciBtZW5zYWdlbS4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnVW0gb3UgbWFpcyBhcnF1aXZvcyBleGNlZGVtIG8gdGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbyBwb3IgdGlwby4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgIGFjY2VwdDogJ0FjZWl0YXInLFxuICAgICAgbGltaXQ6ICdsaW1pdGUnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRnVlbnRlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50ZXMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3ZvIGFnZW50ZScsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyaWFyIEFnZW50ZScsXG4gICAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICAgIG1haWE6ICcoRXNwZWNpYWxpc3RhIGRlIHByb2pldG8pJyxcbiAgICAgIGFkZEZhdm9yaXRlOiAnQWRpY2lvbmFyIGFvcyBmYXZvcml0b3MnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmVyIGRvcyBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnRlIGFkaWNpb25hZG8gYW9zIGZhdm9yaXRvcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzczogJ0FnZW50ZSByZW1vdmlkbyBkZSBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgc2FsdmFyIHNldSBmYXZvcml0by4gVGVudGUgbm92YW1lbnRlLicsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgcmVtb3ZlciBvIGZhdm9yaXRvLiBUZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIG1haWFJbnRyb2R1Y3Rpb246ICdCZW0tdmluZG8gw6AgTUFJQSwgc3VhIGFzc2lzdGVudGUgcGFyYSBtZWxob3JhciBvIHNldSBkaWEgYSBkaWEuJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnTWluaGFzIGNvbnZlcnNhcycsXG4gICAgICBhZ2VudHNTZWN0aW9uVGl0bGU6ICdBZ2VudGVzJyxcbiAgICAgIG1haWFrZXJOYXY6ICdDcmlhZG9yIGRlIGFnZW50ZXMnLFxuICAgICAgbXlBZ2VudHNOYXY6ICdNZXVzIGFnZW50ZXMnLFxuICAgICAgbXlTa2lsbHNOYXY6ICdTa2lsbHMnLFxuICAgICAgZXJyb3I6ICdPY29ycmV1IHVtIGVycm8gYW8gY2FycmVnYXIgbyBoaXN0w7NyaWNvIGRlIGNvbnZlcnNhcycsXG4gICAgICBlbXB0eTogJ1RvZGFzIGFzIHN1YXMgY29udmVyc2FzIGNvbSBvcyBhZ2VudGVzIHNlcsOjbyBleGliaWRhcyBhcXVpJyxcbiAgICAgIGVtcHR5TGFiZWw6ICdNZW5zYWdlbSBjb20gYW5leG9zJyxcbiAgICAgIHVucmVhZExhYmVsOiAnTsOjbyBsaWRvJyxcbiAgICAgIG1pbmltaXplZE9wZW46ICdBYnJpciBNQUlBJyxcbiAgICAgIG1pbmltaXplZFNlZUFuc3dlcjogJ1ZlciByZXNwb3N0YScsXG4gICAgICBjb2xsYXBzZTogJ1JlY29saGVyJyxcbiAgICAgIGV4cGFuZDogJ0V4cGFuZGlyJyxcbiAgICAgIG5ld0NoYXQ6ICdOb3ZvIGNoYXQnLFxuICAgICAgZ2VuZXJhdGluZzogJ0dlcmFuZG8gcmVzcG9zdGEnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkOiAne3t0aXRsZX19IHRlcm1pbm91IGRlIHJlc3BvbmRlcicsXG4gICAgICBzZXNzaW9uRmluaXNoZWRBcHByb3ZhbDogJ3t7dGl0bGV9fSByZXF1ZXIgc3VhIGFwcm92YcOnw6NvJyxcbiAgICAgIHNlc3Npb25GaW5pc2hlZEVycm9yOiAne3t0aXRsZX19IHRldmUgdW0gZXJybyBhbyByZXNwb25kZXInLFxuICAgICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyaWFyIGFnZW50ZScsXG4gICAgICBvcGVuTWFya2V0cGxhY2U6ICdNYXJrZXRwbGFjZSBkZSBhZ2VudGVzJyxcbiAgICB9LFxuICAgIG1hcmtldHBsYWNlOiB7XG4gICAgICBiYWNrOiAnVm9sdGFyJyxcbiAgICAgIHRpdGxlOiAnSWRlaWFzIHBhcmEgY3JpYXIgYWdlbnRlcycsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0VzY29saGEgdW1hIHN1Z2VzdMOjbyBiZW0gY29uc3RydcOtZGEgZSBhYnJhIG8gZWRpdG9yIGNvbSBvIGFnZW50ZSBqw6EgcHJlZW5jaGlkbyBwYXJhIGFkYXB0YXIgYW8gc2V1IGNhc28uJyxcbiAgICAgIG15QWdlbnRzVGl0bGU6ICdNZXVzIGFnZW50ZXMnLFxuICAgICAgbXlBZ2VudHNSZWFkeVRpdGxlOiAnU2V1cyBhZ2VudGVzIGVzdGFvIHByb250b3MgcGFyYSBhanVkYXIgdm9jZSBlbSB0YXJlZmFzJyxcbiAgICAgIG15QWdlbnRzRGVzY3JpcHRpb246ICdFc3RlcyBzYW8gc2V1cyBhZ2VudGVzIGN1c3RvbS4gU2VsZWNpb25lIHVtIHBhcmEgaW5pY2lhciBhIGNvbnZlcnNhIGNvbSBlc3NlIHBlcmZpbC4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlVGl0bGU6ICdWb2NlIGFpbmRhIG5hbyB0ZW0gYWdlbnRlcyBjcmlhZG9zJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnQ2xpcXVlIG5vIGJvdGFvIGFiYWl4byBwYXJhIGNvbWVjYXIgYSBjcmlhciBhZ2VudGVzIHNvYiBtZWRpZGEuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtOlxuICAgICAgICAnUXVhbmRvIGFsZ3VlbSBjb20gcGVybWlzc2FvIHBhcmEgY3JpYS1sb3MgY29uZmlndXJhciwgdm9jZSBwb2RlcmEgYWNlc3NhLWxvcyBwb3IgYXF1aS4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uOiAnQ3JpYXIgYWdlbnRlJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tJbnRybzogJ0FnZW50ZSBwZXJzb25hbGl6YWRvIHByb250byBwYXJhIGFqdWRhciBubyBzZXUgZmx1eG8gZGUgdHJhYmFsaG8uJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEZXNjcmlwdGlvbjogJ0NsaXF1ZSBlbSB1c2FyIGFnZW50ZSBwYXJhIGluaWNpYXIgdW1hIGNvbnZlcnNhIGNvbSBlc3RlIGFnZW50ZS4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0RhdGU6ICdIYSBhbGd1bnMgZGlhcycsXG4gICAgICBteUFnZW50c1RvZGF5OiAnSG9qZScsXG4gICAgICBteUFnZW50c09uZURheUFnbzogJ0hhIDEgZGlhJyxcbiAgICAgIG15QWdlbnRzRGF5c0FnbzogJ0hhIHt7ZGF5c319IGRpYXMnLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6ICdNZW51IGRlIGFjb2VzIGRvIGFnZW50ZScsXG4gICAgICB1c2U6ICdVc2FyJyxcbiAgICAgIGNyZWF0ZUFnZW50OiAnQ3JpYXIgYWdlbnRlIG1hbnVhbG1lbnRlJyxcbiAgICAgIHNlYXJjaEFnZW50UGxhY2Vob2xkZXI6ICdCdXNjYXIgYWdlbnRlLi4uJyxcbiAgICAgIHNlYXJjaE1pbkxlbmd0aDogJ23DrW4uIDMgY2FyYWN0ZXJlcycsXG4gICAgICBzZWFyY2hOb1Jlc3VsdHM6ICdOZW5odW0gcmVzdWx0YWRvIGVuY29udHJhZG8uJyxcbiAgICAgIHNlYXJjaE5vUmVzdWx0c1N1YnRpdGxlOiAnQ3JpZSB1bSBhZ2VudGUgZGUgSUEgcXVlIHBvc3NhIHBlbnNhciwgYWdpciBlIGF1dG9tYXRpemFyIG8gdHJhYmFsaG8gcGFyYSB2b2PDqicsXG4gICAgICB1c2VUZW1wbGF0ZTogJ0NyaWFyIGNvbSBlc3RhIGlkZWlhJyxcbiAgICAgIHVzZU15QWdlbnQ6ICdVc2FyIGFnZW50ZScsXG4gICAgICBiYWRnZXM6IHtcbiAgICAgICAgYnJhbmRpbmc6ICdCcmFuZGluZycsXG4gICAgICAgIGxpbmtlZGluOiAnTGlua2VkSW4nLFxuICAgICAgICBtYXJrZXRpbmc6ICdNYXJrZXRpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG15U2tpbGxzOiB7XG4gICAgICB0aXRsZTogJ0VzcGVjaWFsaXplIGEgTUFJQSBjb20gc3VhcyBwcm9wcmlhcyByZWdyYXMnLFxuICAgICAgc3VidGl0bGU6ICdBcyBza2lsbHMgc2FvIGdsb2JhaXM6IGVzdGFvIGRpc3Bvbml2ZWlzIHBhcmEgdG9kb3Mgb3Mgc2V1cyBhZ2VudGVzLicsXG4gICAgICB0YWJNeVNraWxsczogJ01pbmhhcyBza2lsbHMnLFxuICAgICAgdGFiU2hhcmVkU2tpbGxzOiAnU2tpbGxzIGNvbXBhcnRpbGhhZGFzJyxcbiAgICAgIGRyb3Bkb3duQnV0dG9uOiAnU2tpbGxzJyxcbiAgICAgIGRyb3Bkb3duQ3JlYXRlOiAnQ3JpYXIgbm92YSBza2lsbCcsXG4gICAgICBkcm9wZG93bkVtcHR5OiAnQWluZGEgbmFvIGhhIHNraWxscycsXG4gICAgICBkcm9wZG93bkVycm9yOiAnT2NvcnJldSB1bSBwcm9ibGVtYS4gVGVudGUgbm92YW1lbnRlLicsXG4gICAgICBteVNraWxsc0Rlc2NyaXB0aW9uOiAnSGFiaWxpZGFkZXMgY3JpYWRhcyBwb3Igdm9jZS4nLFxuICAgICAgc2hhcmVkU2tpbGxzRGVzY3JpcHRpb246ICdIYWJpbGlkYWRlcyBjb21wYXJ0aWxoYWRhcyBwb3Igb3V0cm9zIG1lbWJyb3MgZGEgc3VhIGVxdWlwZS4nLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdCdXNjYXIgaGFiaWxpZGFkZXMuLi4nLFxuICAgICAgY3JlYXRlTWFudWFsbHk6ICdDcmlhciBtYW51YWxtZW50ZScsXG4gICAgICB2aXNpYmlsaXR5T25seU1lOiAnU29tZW50ZSBldScsXG4gICAgICB2aXNpYmlsaXR5RXZlcnlvbmU6ICdWaXNpdmVsIHBhcmEgdG9kb3MnLFxuICAgICAgc2hhcmVkRW1wdHlTdGF0ZVRpdGxlOiAnQWluZGEgbmFvIGNvbXBhcnRpbGhhcmFtIHNraWxscyBjb20gdm9jZS4nLFxuICAgICAgc2hhcmVkRW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnUXVhbmRvIHN1YSBlbXByZXNhIGNvbXBhcnRpbGhhciBza2lsbHMsIGVsYXMgYXBhcmVjZXJhbyBhcXVpLicsXG4gICAgICBjcmVhdGVTa2lsbDogJ0NyaWFyIHNraWxsJyxcbiAgICAgIHByZXZpZXc6ICdQcmUtdmlzdWFsaXphY2FvJyxcbiAgICAgIHByZXZpZXdFbXB0eTogJ05hZGEgcGFyYSBwcmUtdmlzdWFsaXphciBhaW5kYS4nLFxuICAgICAgdXBsb2FkTWQ6ICdFbnZpYXIgLm1kJyxcbiAgICAgIHVwbG9hZEVycm9yOiAnQXBlbmFzIGFycXVpdm9zIC5tZCBzYW8gcGVybWl0aWRvcycsXG4gICAgICBjcmVhdGVXaXRoTWFpYTogJ0NyaWFyIGNvbSBNYWlhJyxcbiAgICAgIHdyaXRlSW5zdHJ1Y3Rpb25zOiAnRXNjcmV2ZXIgaW5zdHJ1Y29lcycsXG4gICAgICB1cGxvYWRTa2lsbDogJ0VudmlhciB1bWEgc2tpbGwnLFxuICAgICAgZ2VuZXJhdGVQbGFjZWhvbGRlcjogJ1F1ZXJvIHVtYSBTa2lsbCBwYXJhIGNyaWFyIG1ldXMgcHJvamV0b3MnLFxuICAgICAgZ2VuZXJhdGVXaXRoTWFpYTogJ0NyaWFyIGEgU2tpbGwgY29tIE1haWEnLFxuICAgICAgZ2VuZXJhdGVOZWVkc05hbWU6ICdFc2NyZXZhIHVtIG5vbWUgcHJpbWVpcm8gcGFyYSBkZXNjcmV2ZXIgYSBza2lsbCcsXG4gICAgICBnZW5lcmF0ZVN1Y2Nlc3M6ICdTa2lsbCBnZXJhZGEgY29tIE1haWEnLFxuICAgICAgZ2VuZXJhdGVFcnJvcjogJ05hbyBmb2kgcG9zc2l2ZWwgZ2VyYXIgYSBza2lsbC4gVGVudGUgbm92YW1lbnRlLicsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogJ01lbnUgZGUgYWNvZXMgZGEgc2tpbGwnLFxuICAgICAgZWRpdDogJ0VkaXRhcicsXG4gICAgICBkZWxldGU6ICdFeGNsdWlyJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIHNhdmU6ICdTYWx2YXInLFxuICAgICAgY2xvc2U6ICdGZWNoYXInLFxuICAgICAgY3JlYXRlVGl0bGU6ICdDcmlhY2FvIGRlIHNraWxsJyxcbiAgICAgIGVkaXRUaXRsZTogJ0VkaXRhciBza2lsbCcsXG4gICAgICB2aWV3VGl0bGU6ICdTa2lsbCBjb21wYXJ0aWxoYWRhJyxcbiAgICAgIHVzZVNraWxsOiAnVXNhciBza2lsbCcsXG4gICAgICBpbmZvVG9vbHRpcDpcbiAgICAgICAgJ0FzIHNraWxscyBzYW8gaW5zdHJ1Y29lcyBxdWUgdm9jZSBkYSBhIHVtIGFnZW50ZSBwYXJhIHF1ZSBlbGUgcmVzb2x2YSB1bWEgdGFyZWZhIHNlbXByZSBkYSBtZXNtYSBmb3JtYS4gTWVuY2lvbmUtYSBjb20gIyBubyBjaGF0IGUgbyBhZ2VudGUgc2VndWlyYSBlc3NlIHBhc3NvIGEgcGFzc28uJyxcbiAgICAgIHNoYXJlZENyZWF0ZWRCeTogJ0NyaWFkYSBwb3Ige3tuYW1lfX0nLFxuICAgICAgbmFtZUxhYmVsOiAnTm9tZScsXG4gICAgICBuYW1lUGxhY2Vob2xkZXI6ICdOb21lIGRhIHNraWxsJyxcbiAgICAgIGRlc2NyaXB0aW9uTGFiZWw6ICdEZXNjcmljYW8nLFxuICAgICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogJ0Rlc2NyZXZhIGJyZXZlbWVudGUgcGFyYSBxdWUgc2VydmUgYSBza2lsbCcsXG4gICAgICBpbnN0cnVjdGlvbnNMYWJlbDogJ0luc3RydWNvZXMnLFxuICAgICAgc2hhcmVXaXRoQ29tcGFueTogJ0hhYmlsaXRhciBwYXJhIHRvZGEgYSBlbXByZXNhJyxcbiAgICAgIGNyZWF0ZWRCeTogJ0NyaWFkbyBwb3InLFxuICAgICAgbGFzdFVwZGF0ZWQ6ICdVbHRpbWEgYXR1YWxpemFjYW8nLFxuICAgICAgc2F2ZUFuZFVzZTogJ1NhbHZhciBlIHVzYXIgc2tpbGwnLFxuICAgICAgY29udGVudExhYmVsOiAnU2tpbGwnLFxuICAgICAgY29udGVudFBsYWNlaG9sZGVyOiAnRXNjcmV2YSBhIHNraWxsLi4uJyxcbiAgICAgIGVtcHR5U3RhdGVUaXRsZTogJ1ZvY2UgYWluZGEgbmFvIHRlbSBza2lsbHMgY3JpYWRhcycsXG4gICAgICBlbXB0eVN0YXRlRGVzY3JpcHRpb246ICdDbGlxdWUgbm8gYm90YW8gYWJhaXhvIHBhcmEgY29tZWNhciBhIGNyaWFyIHNraWxscyBzb2IgbWVkaWRhLicsXG4gICAgICBlbXB0eVN0YXRlRGVzY3JpcHRpb25Ob1Blcm06XG4gICAgICAgICdRdWFuZG8gYWxndWVtIGNvbSBwZXJtaXNzYW8gcGFyYSBjcmlhLWxhcyBjb25maWd1cmFyLCB2b2NlIHBvZGVyYSBhY2Vzc2EtbGFzIHBvciBhcXVpLicsXG4gICAgICBlbXB0eVN0YXRlQnV0dG9uOiAnQ3JpYXIgc2tpbGwnLFxuICAgICAgc2VhcmNoRW1wdHlTdGF0ZVRpdGxlOiAnTmFvIGVuY29udHJhbW9zIG5lbmh1bWEgc2tpbGwnLFxuICAgICAgc2VhcmNoRW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnVGVudGUgb3V0cm8gdGVybW8gb3UgcmV2aXNlIHN1YSBidXNjYS4nLFxuICAgICAgY3JlYXRlU3VjY2VzczogJ1NraWxsIGNyaWFkYSBjb20gc3VjZXNzbycsXG4gICAgICBjcmVhdGVFcnJvcjogJ05hbyBmb2kgcG9zc2l2ZWwgY3JpYXIgYSBza2lsbC4gVGVudGUgbm92YW1lbnRlLicsXG4gICAgICB1cGRhdGVTdWNjZXNzOiAnU2tpbGwgYXR1YWxpemFkYSBjb20gc3VjZXNzbycsXG4gICAgICB1cGRhdGVFcnJvcjogJ05hbyBmb2kgcG9zc2l2ZWwgYXR1YWxpemFyIGEgc2tpbGwuIFRlbnRlIG5vdmFtZW50ZS4nLFxuICAgICAgZGVsZXRlU3VjY2VzczogJ1NraWxsIGV4Y2x1aWRhIGNvbSBzdWNlc3NvJyxcbiAgICAgIGRlbGV0ZUVycm9yOiAnTmFvIGZvaSBwb3NzaXZlbCBleGNsdWlyIGEgc2tpbGwuIFRlbnRlIG5vdmFtZW50ZS4nLFxuICAgIH0sXG4gICAgc25hY2tiYXI6IHtcbiAgICAgIGRlbGV0ZUNoYXQ6IHtcbiAgICAgICAgc3VjY2VzczogJ1N1YSBjb252ZXJzYSBmb2kgZXhjbHXDrWRhIGNvbSBzdWNlc3NvLicsXG4gICAgICAgIGVycm9yOiAnT2NvcnJldSB1bSBlcnJvIGluZXNwZXJhZG8uIFBvciBmYXZvciB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIH0sXG4gICAgICByZW5hbWVkQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ29udmVyc2EgcmVub21lYWRhIGNvbSBzdWNlc3NvJyxcbiAgICAgICAgZXJyb3I6ICdPY29ycmV1IHVtIGVycm8gaW5lc3BlcmFkby4gUG9yIGZhdm9yIHRlbnRlIG5vdmFtZW50ZS4nLFxuICAgICAgfSxcbiAgICAgIGxvYWRNb3JlQWdlbnRzOiB7XG4gICAgICAgIGVycm9yOiAnT2NvcnJldSB1bSBlcnJvIGluZXNwZXJhZG8uIFBvciBmYXZvciB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhcHByb3ZhbEJveDoge1xuICAgICAgdW50aXRsZWRBZ2VudDogJ0FnZW50ZSBzZW0gbm9tZScsXG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIGNyZWF0ZV90YXNrOiAnQ3JpYcOnw6NvIGRlIHRhcmVmYScsXG4gICAgICAgIGNyZWF0ZV90YXNrc19iYXRjaDogJ0NyaWHDp8OjbyBkZSB0YXJlZmFzJyxcbiAgICAgICAgY3JlYXRlX2FnZW50OiAnQ3JpYXIgYWdlbnRlJyxcbiAgICAgICAgZWRpdF9hZ2VudDogJ0VkacOnw6NvIGRlIGFnZW50ZScsXG4gICAgICAgIGVkaXRfcHJvamVjdDogJ0VkacOnw6NvIGRlIHByb2pldG8nLFxuICAgICAgICBlZGl0X3Rhc2s6ICdFZGnDp8OjbyBkZSB0YXJlZmEnLFxuICAgICAgICBlZGl0X3Rhc2tzX2JhdGNoOiAnRWRpw6fDo28gZGUgdGFyZWZhcycsXG4gICAgICAgIGRlbGV0ZV90YXNrOiAnRXhjbHVzw6NvIGRlIHRhcmVmYScsXG4gICAgICAgIGRlbGV0ZV90YXNrc19iYXRjaDogJ0V4Y2x1c8OjbyBkZSB0YXJlZmFzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBdHJpYnVpw6fDo28gZGUgdXN1w6FyaW8nLFxuICAgICAgICB0YXNrX3VuYXNzaWduOiAnUmVtb8Onw6NvIGRlIHVzdcOhcmlvJyxcbiAgICAgICAgYXNzaWduX3Rhc2tfbGFiZWw6ICdBdHJpYnVpw6fDo28gZGUgZXRpcXVldGEnLFxuICAgICAgICBjcmVhdGVfbGFiZWxzOiAnQ3JpYcOnw6NvIGRlIGV0aXF1ZXRhJyxcbiAgICAgICAgdXBkYXRlX3Rhc2tfdHlwZTogJ0F0dWFsaXphw6fDo28gZGUgdGlwbyBkZSB0YXJlZmEnLFxuICAgICAgICB1cGRhdGVfZXN0aW1hdGVkX2hvdXJzOiAnQXR1YWxpemHDp8OjbyBkZSBob3JhcyBlc3RpbWFkYXMnLFxuICAgICAgICB1cGRhdGVfZGVsaXZlcmFibGU6ICdBdHVhbGl6YcOnw6NvIGRlIGVudHJlZ8OhdmVsJyxcbiAgICAgICAgY3JlYXRlX2hvdXI6ICdSZWdpc3RybyBkZSBob3JhcycsXG4gICAgICAgIGNyZWF0ZV9jaGVja2xpc3Q6ICdDcmlhw6fDo28gZGUgY2hlY2tsaXN0JyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdF9pdGVtOiAnQ3JpYcOnw6NvIGRlIGl0ZW0gZG8gY2hlY2tsaXN0JyxcbiAgICAgICAgY2xvbmVfdGFzazogJ0Nsb25hciB0YXJlZmEnLFxuICAgICAgICBnZXRfdGFza19kYXRlX2hvdXJzOiAnQ29uc3VsdGEgZGUgaG9yYXMgcG9yIGRhdGEnLFxuICAgICAgICBjb25maWd1cmVfYWdlbnRfYWNjZXNzOiAnQWx0ZXJhciB2aXNpYmlsaWRhZGUgZG8gYWdlbnRlJyxcbiAgICAgICAgc2VuZF90YXNrX21lc3NhZ2U6ICdFbnZpbyBkZSBtZW5zYWdlbSBuYSB0YXJlZmEnLFxuICAgICAgICBkZWxldGVfY2hlY2tsaXN0X2l0ZW06ICdFeGNsdXPDo28gZGUgaXRlbSBkbyBjaGVja2xpc3QnLFxuICAgICAgICByZW1vdmVfdGFza190eXBlOiAnUmVtb8Onw6NvIGRvIHRpcG8gZGUgdGFyZWZhJyxcbiAgICAgICAgcmVtb3ZlX3Rhc2tfbGFiZWw6ICdSZW1vw6fDo28gZGUgZXRpcXVldGEnLFxuICAgICAgICBjb3VudF9kZWxpdmVyYWJsZTogJ0F0dWFsaXphw6fDo28gZGEgY29udGFnZW0gZGUgZW50cmVnw6F2ZWlzJyxcbiAgICAgICAgY3JlYXRlX3Jld29yazogJ0NyaWHDp8OjbyBkZSByZXRyYWJhbGhvJyxcbiAgICAgICAgdXBkYXRlX3Jld29yazogJ0F0dWFsaXphw6fDo28gZGUgcmV0cmFiYWxobycsXG4gICAgICAgIGRlbGV0ZV9hZ2VudDogJ0V4Y2x1c8OjbyBkZSBhZ2VudGUnLFxuICAgICAgICB1bmtub3duOiAnQcOnw6NvIGRlc2NvbmhlY2lkYScsXG4gICAgICB9LFxuICAgICAgc3BlY2lhbDoge1xuICAgICAgICBjcmVhdGVSZXdvcms6IHtcbiAgICAgICAgICB0aXRsZTogJ0NyaWFyIHJldHJhYmFsaG8nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2Vyw6EgY3JpYWRvIHVtIHJldHJhYmFsaG8gbmEgdGFyZWZhIGNvbSBhcyBpbmZvcm1hw6fDtWVzIGluZGljYWRhcy4nLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuOiB7XG4gICAgICAgICAgdGl0bGU6ICdBdHVhbGl6YXIgcHJvZ3Jlc3NvIGRvcyBlbnRyZWfDoXZlaXMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2Vyw6EgYXR1YWxpemFkbyBvIHByb2dyZXNzbyBkb3Mgc3ViZW50cmVnw6F2ZWlzIHZpbmN1bGFkb3MgYSBlc3RhIHRhcmVmYS4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBuYW1lOiAnTm9tZScsXG4gICAgICAgIGVtb2ppOiAnRW1vamknLFxuICAgICAgICBpbnRyb2R1Y3Rpb246ICdJbnRyb2R1w6fDo28nLFxuICAgICAgICBpbnB1dF9wbGFjZWhvbGRlcjogJ1BsYWNlaG9sZGVyJyxcbiAgICAgICAgdXNlcl9wcm9tcHQ6ICdQcm9tcHQgcHJpbmNpcGFsJyxcbiAgICAgICAgbGFuZ3VhZ2U6ICdJZGlvbWEnLFxuICAgICAgICBwcm92aWRlcjogJ1Byb3ZpZGVyJyxcbiAgICAgICAgbW9kZWxfbmFtZTogJ01vZGVsbycsXG4gICAgICAgIGFwaV9rZXk6ICdBUEkga2V5JyxcbiAgICAgIH0sXG4gICAgICB0aXRsZTogJ0NvbmZpcm1hw6fDo28gcmVxdWVyaWRhJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVm9jw6ogcHJlY2lzYSBhcHJvdmFyIGEgc2VndWludGUgYcOnw6NvOicsXG4gICAgICBhcHByb3ZlOiAnQXByb3ZhcicsXG4gICAgICBkZW55OiAnTmVnYXInLFxuICAgICAgbWFudWFsQXBwcm92YWxXYXJuaW5nOiAnTWFpYSBkZXRlY3RvdSBxdWUgYSBzb2xpY2l0YcOnw6NvIGZvaSBhcHJvdmFkYSBtYW51YWxtZW50ZScsXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgYXBwcm92ZWQ6ICdTb2xpY2l0YcOnw6NvIEFwcm92YWRhJyxcbiAgICAgICAgZGVuaWVkOiAnU29saWNpdGHDp8OjbyBOZWdhZGEnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoaXBMbG06IHtcbiAgICAgIHRvb2x0aXA6ICdNb2RlbG86IHt7bW9kZWx9fScsXG4gICAgfSxcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgcHJvamVjdDogJ3Byb2pldG8nLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRvcycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGxlZ2VuZERlbGV0ZWRBZ2VudDogJ0VzdGUgYWdlbnRlIGZvaSBleGNsdcOtZG8gbm8gZGlhJyxcbiAgICBsZWdlbmRQcm9qZWN0RGVsZXRlZDogJ08gcHJvamV0byB7e25hbWV9fSBmb2kgZXhjbHXDrWRvLiBOw6NvIMOpIHBvc3PDrXZlbCBjb250aW51YXIgYSBjb252ZXJzYScsXG4gICAgbGVnZW5kTm9BY2Nlc3M6ICdWb2PDqiBuw6NvIHRlbSBtYWlzIGFjZXNzbyBwYXJhIGludGVyYWdpciBjb20gbyBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZE5vUGVybWlzc2lvbnM6ICdWb2PDqiBuw6NvIHRlbSBtYWlzIHBlcm1pc3PDo28gcGFyYSB2aXN1YWxpemFyIG91IGludGVyYWdpciBjb20gbyBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZExlZ2FjeUNvbnRleHRTZXNzaW9uOlxuICAgICAgJ0VzdGEgY29udmVyc2EgcGVydGVuY2UgYSB1bSBjb250ZXh0byBhbnRlcmlvci4gVm9jw6ogcG9kZSBjb250aW51YXIgY29tIHt7bmFtZX19IGVtIHVtIG5vdm8gY2hhdC4nLFxuICAgIGNvbnRpbnVlSW5OZXdDaGF0OiAnQ29udGludWFyIGVtIHVtIG5vdm8gY2hhdCcsXG4gICAgbGVnZW5kTW9kZWxEZXByZWNhdGVkOlxuICAgICAgJ08gbW9kZWxvIHNlbGVjaW9uYWRvIHBhcmEgZXN0ZSBhZ2VudGUgbsOjbyBlc3TDoSBtYWlzIGRpc3BvbsOtdmVsLiBUcm9xdWUgcGFyYSBvdXRybyBtb2RlbG8gcGFyYSBjb250aW51YXIgdXNhbmRvLW8uJyxcbiAgICBsZWdlbmRQcm92aWRlclN0YXR1czpcbiAgICAgICdPIG1vZGVsbyB1c2FkbyBwb3IgZXN0ZSBhZ2VudGUgZXN0w6EgZW5mcmVudGFuZG8gcHJvYmxlbWFzIHRlbXBvcsOhcmlvcy4gVm9jw6ogcG9kZSBhZ3VhcmRhciBhIHJlY3VwZXJhw6fDo28gb3UgdHJvY2FyIHBhcmEgb3V0cm8gbW9kZWxvLicsXG4gICAgY2hhbmdlTW9kZWw6ICdUcm9jYXIgbW9kZWxvJyxcbiAgICBhZ2VudHM6ICdBZ2VudGVzJyxcbiAgICBsYXlvdXRNZW51VG9vbHRpcDogJ0xheW91dCBkbyBjaGF0JyxcbiAgICBsYXlvdXRTaWRlYmFyOiAnQ2hhdCBwYXJhbGVsbycsXG4gICAgbGF5b3V0RnVsbHNjcmVlbjogJ0NoYXQgY29tcGxldG8nLFxuICAgIGxheW91dEZsb2F0aW5nOiAnQ2hhdCBmbHV0dWFudGUnLFxuICAgIGJhY2s6ICdWb2x0YXInLFxuICAgIGFkZEFnZW50OiAnQWRpY2lvbmFyIG5vdm8gYWdlbnRlJyxcbiAgICBuZXdBZ2VudDogJ05vdm8gYWdlbnRlJyxcbiAgICBjcmVhdGVBZ2VudDogJ0NyaWFyIEFnZW50ZScsXG4gICAgZWRpdEFnZW50OiAnRWRpdGFyIGFnZW50ZScsXG4gICAgY2FuY2VsOiAnQ2FuY2VsYXInLFxuICAgIGFjY2VwdDogJ0FjZWl0YXInLFxuICAgIGRlbGV0ZUFnZW50OiAnRXhjbHVpciBhZ2VudGUnLFxuICAgIGNvbnRpbnVlOiAnQ29udGludWFyJyxcbiAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICBkZWxldGU6ICdFeGNsdWlyJyxcbiAgICBmZWVkYmFjazogJ0VudmlhciBGZWVkYmFjaycsXG4gICAgc2VuZEZlZWRiYWNrOiAnRW52aWFyIGZlZWRiYWNrJyxcbiAgICBzYXZlQ2hhbmdlczogJ1NhbHZhciBhbHRlcmHDp8O1ZXMnLFxuICAgIGNyZWF0ZUFnZW50TGFiZWxCdXR0b246ICdDcmlhciBhZ2VudGUnLFxuICAgIG9wZW5BZ2VudENyZWF0b3I6ICdDcmlhciBhZ2VudGUnLFxuICAgIG9wZW5NYXJrZXRwbGFjZTogJ01hcmtldHBsYWNlIGRlIGFnZW50ZXMnLFxuICAgIGNvbmZpcm1BZ2VudENyZWF0ZWQ6ICdPIGFnZW50ZSBmb2kgY3JpYWRvIGNvbSBzdWNlc3NvJyxcbiAgICBjb25maXJtQWdlbnRVcGRhdGVkV2l0aEZpbGVzRXJyb3I6XG4gICAgICAnTyBhZ2VudGUgZm9pIGVkaXRhZG8gY29tIHN1Y2Vzc28sIG1hcyBhbGd1bnMgYXJxdWl2b3MgbsOjbyBwdWRlcmFtIHNlciBwcm9jZXNzYWRvcy4nLFxuICAgIGNvbmZpcm1BZ2VudFdpdGhGaWxlc0Vycm9yOiAnTyBhZ2VudGUgZm9pIGNyaWFkbyBjb20gc3VjZXNzbywgbWFzIGFsZ3VucyBhcnF1aXZvcyBuw6NvIHB1ZGVyYW0gc2VyIHByb2Nlc3NhZG9zLicsXG4gICAgY29uZmlybUFnZW50RGVsZXRlZDogJ08gYWdlbnRlIGZvaSBleGNsdcOtZG8gY29tIHN1Y2Vzc28nLFxuICAgIGNvbmZpcm1BZ2VudFVwZGF0ZWQ6ICdPIGFnZW50ZSBmb2kgYXR1YWxpemFkbyBjb20gc3VjZXNzbycsXG4gICAgY29uZmlybUNsb3NlQ3JlYXRlQWdlbnQ6ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGZlY2hhcj8gQXMgYWx0ZXJhw6fDtWVzIHNlcsOjbyBwZXJkaWRhcy4nLFxuICAgIGNvbmZpcm1DbG9zZUVkaXRBZ2VudDogJ1RlbSBjZXJ0ZXphIHF1ZSBkZXNlamEgZmVjaGFyPyBBcyBhbHRlcmHDp8O1ZXMgc2Vyw6NvIHBlcmRpZGFzLicsXG4gICAgY29uZmlybVJlbG9hZEJyb3dzZXI6ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIHJlY2FycmVnYXIgYSBww6FnaW5hPyBBcyBhbHRlcmHDp8O1ZXMgc2Vyw6NvIHBlcmRpZGFzLicsXG4gICAgZXJyb3JBY2Nlc3NEZW5pZWQ6ICdWb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgYWNlc3NhciBlc3RlIGFnZW50ZS4gQ29udGF0ZSBvIHN1cG9ydGUuJyxcbiAgICBlcnJvckFnZW50Q3JlYXRlZDogJ09jb3JyZXUgdW0gZXJybyBpbmVzcGVyYWRvLiBQb3IgZmF2b3IgdGVudGUgbm92YW1lbnRlLicsXG4gICAgYXR0YWNobWVudENhcmQ6IHtcbiAgICAgIGRvd25sb2FkOiAnRGVzY2FycmVnYXInLFxuICAgICAgZGVsZXRlOiAnRXhjbHVpcicsXG4gICAgfSxcbiAgICBnZW5lcmFsU2VjdGlvbjoge1xuICAgICAgdGl0bGU6ICdHZXJhbCcsXG4gICAgICBnZW5lcmFsU2V0dGluZ3M6ICdDb25maWd1cmHDp8OjbyBnZXJhbCcsXG4gICAgICByZXF1aXJlZEZpZWxkc0xhYmVsOiAnKm9icmlnYXTDs3Jpb3MnLFxuICAgICAgaW5mb0xhYmVsOiAnQWRpY2lvbmUgdG9kYXMgYXMgaW5mb3JtYcOnw7VlcyBwYXJhIHBlcnNvbmFsaXphciBvIGNvbXBvcnRhbWVudG8gZG8gc2V1IGFnZW50ZS4nLFxuICAgICAgb3B0aW9uYWxMYWJlbDogJ09wY2lvbmFsJyxcbiAgICAgIGJhc2ljU2V0dGluZ3M6ICdDb25maWd1cmHDp8OjbyBiw6FzaWNhJyxcbiAgICAgIHNlbGVjdEVtb2ppOiAnU2VsZWNpb25hciBlbW9qaScsXG4gICAgICBuYW1lOiAnUXVhbCDDqSBvIG5vbWUgZG8gc2V1IGFnZW50ZT8nLFxuICAgICAgbmFtZVBsYWNlaG9sZGVyOiAnRMOqIHVtIG5vbWUgYW8gc2V1IGFnZW50ZScsXG4gICAgICBiZWhhdmlvclNldHRpbmdzOiAnQ29uZmlndXJhw6fDo28gZGUgY29tcG9ydGFtZW50bycsXG4gICAgICBpbml0aWFsUHJvbXB0OiAnUXVhaXMgc8OjbyBhcyBpbnN0cnXDp8O1ZXM/JyxcbiAgICAgIGluaXRpYWxQcm9tcHRQbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V4ZW1wbG86IFZvY8OqIMOpIHVtIHJlZGF0b3IgZGUgbcOtZGlhcyBzb2NpYWlzIHF1ZSBlc2NyZXZlIGUgYWRhcHRhIG1lbnNhZ2VucyBwYXJhIGRpZmVyZW50ZXMgcmVkZXMsIGdhcmFudGluZG8gY29uc2lzdMOqbmNpYSBubyB0b20sIG5hIHBlcnNvbmFsaWRhZGUgZSBub3MgdmFsb3JlcyBkYSBtYXJjYS4nLFxuICAgICAgbW9kZWxBaUxhYmVsOiAnTW9kZWxvIGRlIElBJyxcbiAgICAgIG5vTW9kZWxzQXZhaWxhYmxlOiAnTsOjbyBow6EgbW9kZWxvcyBkaXNwb27DrXZlaXMnLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlclRpdGxlOiAnTyBxdWUgbyB1c3XDoXJpbyB2ZXLDoSBubyBjYW1wbyBkZSBjaGF0IGFudGVzIGRlIGVzY3JldmVyPycsXG4gICAgICBpbnB1dFBsYWNlaG9sZGVyOiAnUGVyZ3VudGUgbyBxdWUgcHJlY2lzYXLigKYnLFxuICAgICAgaW50cm9kdWN0aW9uOiAnQ29tbyBvIHNldSBhZ2VudGUgdmFpIHNlIGFwcmVzZW50YXI/JyxcbiAgICAgIGludHJvZHVjdGlvblBsYWNlaG9sZGVyOlxuICAgICAgICAnRXhlbXBsbzogT2zDoSEg8J+RiyBWb3UgdGUgYWp1ZGFyIGEgY3JpYXIsIGFkYXB0YXIgZSByZXZpc2FyIHRleHRvcyBwYXJhIGRpZmVyZW50ZXMgcGxhdGFmb3JtYXMsIGdhcmFudGluZG8gcXVlIG1hbnRlbmhhbSBhIHZveiwgbyB0b20gZSBhIHBlcnNvbmFsaWRhZGUgZGEgc3VhIG1hcmNhLiBWb2PDqiBwb2RlIG1lIHBlZGlyIGlkZWlhcyBwYXJhIGNhbXBhbmhhcywgYWRhcHRhciB1bSB0ZXh0byBwYXJhIG91dHJvIGNhbmFsIG91IHJldmlzYXIgYSBjb2Vyw6puY2lhIGRhIG1lbnNhZ2VtLicsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkaWNpb25hciBhb3MgZmF2b3JpdG9zJyxcbiAgICAgIHJlbW92ZUZhdm9yaXRlOiAnUmVtb3ZlciBkb3MgZmF2b3JpdG9zJyxcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIG1heENhcmFjdGVyTmFtZTogJ1ZvY8OqIGF0aW5naXUgbyBsaW1pdGUgZGUgMTUwIGNhcmFjdGVyZXMuJyxcbiAgICAgICAgbWF4Q2FyYWN0ZXJJbml0aWFsUHJvbXB0OiAnVm9jw6ogYXRpbmdpdSBvIGxpbWl0ZSBkZSA1MDAwIGNhcmFjdGVyZXMuJyxcbiAgICAgICAgbWF4SW5wdXRQbGFjZWhvbGRlcjogJ1ZvY8OqIGF0aW5naXUgbyBsaW1pdGUgZGUgMTAwIGNhcmFjdGVyZXMuJyxcbiAgICAgICAgbWF4Q2FyYWN0ZXJJbnRyb2R1Y3Rpb246ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDQwMCBjYXJhY3RlcmVzLicsXG4gICAgICB9LFxuICAgICAgaG93VG9Xcml0ZVByb21wdDogJ0NvbW8gZXNjcmV2ZXIgdW0gcHJvbXB0JyxcbiAgICAgIHdoYXRJc01vZGVsQWlUaXRsZTogJ1F1YWwgbW9kZWxvIGRlIElBIHZvY8OqIHZhaSB1c2FyPycsXG4gICAgICB3aGF0SXNNb2RlbEFpOiAnTyBxdWUgw6kgdW0gbW9kZWxvIGRlIElBPycsXG4gICAgICBjcmVhdGVkQnk6ICdQb3InLFxuICAgICAgY3JlYXRlZEJ5VG9vbHRpcDogJ1VzdcOhcmlvIGNyaWFkb3IgZG8gYWdlbnRlJyxcbiAgICAgIGNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkOiAnVXN1w6FyaW8gZXhjbHXDrWRvLiBTZXUgbm9tZSDDqSBtYW50aWRvIHBhcmEgcmVmZXLDqm5jaWEuJyxcbiAgICB9LFxuICAgIGtub3dsZWRnZVNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnQ29uaGVjaW1lbnRvJyxcbiAgICAgIGtub3dsZWRnZVRhYjogJ0Jhc2UgZGUgY29uaGVjaW1lbnRvcycsXG4gICAgICBpbmZvTGFiZWw6ICdDYXJyZWd1ZSBvcyBhcnF1aXZvcyBxdWUgc2V1IGFnZW50ZSB1c2Fyw6EgY29tbyBmb250ZSBwYXJhIHN1YXMgcmVzcG9zdGFzLicsXG4gICAgICBzZWxlY3RGaWxlVGl0bGU6ICdTRUxFQ0lPTkFSIEFSUVVJVk9TJyxcbiAgICAgIGF0dGFjaEZpbGVzOiAnQW5leGFyIGFycXVpdm9zJyxcbiAgICAgIGRyb3Bab25lVGV4dDoge1xuICAgICAgICAxOiAnQ2xpcXVlIGFxdWkgcGFyYSBjYXJyZWdhcicsXG4gICAgICAgIDI6ICdvdSBhcnJhc3RlIG9zIGFycXVpdm9zJyxcbiAgICAgIH0sXG4gICAgICBpbmZvRmlsZVR5cGVzOlxuICAgICAgICAnLm1kLCAucGRmLCAuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCAgKG3DoXguIHRvdGFsIGRlIDVNQiknLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4RmlsZXNUaXRsZTogJ0xpbWl0ZSBkZSB0YW1hbmhvIHRvdGFsIGV4Y2VkaWRvLicsXG4gICAgICAgIG1heEZpbGVzRGVzY3JpcHRpb246XG4gICAgICAgICAgJ1ZvY8OqIHBvZGUgYW5leGFyIGFycXVpdm9zIGF0w6kgdW0gdG90YWwgZGUgNSBNQi4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgICAgbWF4U2l6ZVRpdGxlOiAnVm9jw6ogZXhjZWRldSBvIGxpbWl0ZSBkZSB0YW1hbmhvIHBlcm1pdGlkbycsXG4gICAgICAgIG1heFNpemVEZXNjcmlwdGlvbjoge1xuICAgICAgICAgIDE6ICdPIGxpbWl0ZSBtw6F4aW1vIGRlIDUgTUIgZm9pIGF0aW5naWRvLicsXG4gICAgICAgICAgMjogJ0Vzc2VzIGFycXVpdm9zIG7Do28gZm9yYW0gY2FycmVnYWRvcyBwb3JxdWUgZXhjZWRlbSBvIGVzcGHDp28gZGlzcG9uw612ZWw6JyxcbiAgICAgICAgfSxcbiAgICAgICAgaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgMTogJ1NvbWVudGUgYXJxdWl2b3MgY29tIGFzIHNlZ3VpbnRlcyBleHRlbnPDtWVzIHPDo28gYWNlaXRvczogLm1kLCAucGRmLCAuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCcsXG4gICAgICAgICAgMjogJ0VzdGVzIGFycXVpdm9zIG7Do28gZm9yYW0gY2FycmVnYWRvcyBwb3JxdWUgc3VhIGV4dGVuc8OjbyBuw6NvIMOpIHBlcm1pdGlkYTonLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG1vcmVJbmZvOiAnVmVqYSBjb21vIGZ1bmNpb25hIGFxdWknLFxuICAgIH0sXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnUGVybWlzc8O1ZXMnLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnVmlzaWJpbGlkYWRlIGUgcGVybWlzc8O1ZXMgZG8gYWdlbnRlJyxcbiAgICAgIHN1YnRpdGxlU2VjdGlvbjogJ0RlZmluYSBxdWVtIHBvZGUgdXNhciBlc3RlIGFnZW50ZSBlIHNlIGVsZSBwb2RlIGFjZXNzYXIgZGFkb3MgZG8gQ09SLicsXG4gICAgICBjb3JQZXJtaXNzaW9uc1RpdGxlOiAnUGVybWlzc8O1ZXMgZGUgYWNlc3NvIGFvcyBkYWRvcyBkbyBDT1InLFxuICAgICAgY29yUGVybWlzc2lvbnNTdWJ0aXRsZTogJ0EgcXVlIGVzdGUgYWdlbnRlIHRlbSBhY2Vzc28/JyxcbiAgICAgIHRhc2tBY2Nlc3NUaXRsZTogJ0FjZXNzbyBhIHRhcmVmYXMnLFxuICAgICAgdGFza0FjY2Vzc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnTyBhZ2VudGUgcG9kZXLDoSBsZXIsIGNyaWFyLCBtb2RpZmljYXIgZSBleGNsdWlyIHRhcmVmYXMgZGUgYWNvcmRvIGNvbSBhcyBwZXJtaXNzw7VlcyBkbyB1c3XDoXJpby4nLFxuICAgICAgbWNwUGVybWlzc2lvbnNUaXRsZTogJ0NvbmVjdG9yZXMgZXh0ZXJub3MnLFxuICAgICAgbWNwUGVybWlzc2lvbnNTdWJ0aXRsZTogJ0EgcXVhaXMgZmVycmFtZW50YXMgZXh0ZXJuYXMgZXN0ZSBhZ2VudGUgdGVtIGFjZXNzbz8nLFxuICAgICAgbmV0c3VpdGVBY2Nlc3NUaXRsZTogJ05ldFN1aXRlJyxcbiAgICAgIG5ldHN1aXRlQWNjZXNzRGVzY3JpcHRpb246XG4gICAgICAgICdPIGFnZW50ZSBwb2RlcsOhIGxlciBlIGF0dWFsaXphciByZWdpc3Ryb3MgZG8gTmV0U3VpdGUuIEFvIHNhbHZhciwgcGVkaXJlbW9zIGF1dG9yaXphw6fDo28gZGUgYWNlc3NvLicsXG4gICAgICBjb25uZWN0b3JBY2Nlc3NEZXNjcmlwdGlvbjpcbiAgICAgICAgJ08gYWdlbnRlIHBvZGVyw6EgdXNhciB7e25hbWV9fS4gQW8gc2FsdmFyLCBwZWRpcmVtb3MgYXV0b3JpemHDp8OjbyBkZSBhY2Vzc28uJyxcbiAgICAgIGNvbm5lY3RvckF1dGhGYWlsZWQ6ICdOw6NvIGZvaSBwb3Nzw612ZWwgYWJyaXIgbyBsb2dpbiBkbyBjb25lY3Rvci4gVGVudGUgbm92YW1lbnRlIG91IHJldmlzZSBhIGNvbmZpZ3VyYcOnw6NvIE9BdXRoLicsXG4gICAgICBjb25uZWN0b3JBdXRoSW5jb21wbGV0ZTogJ08gbG9naW4gZG8gTmV0U3VpdGUgbsOjbyBmb2kgY29uY2x1w61kby4gU2FsdmUgZGUgbm92bywgdG9xdWUgZW0gUGVybWl0aXIgZSBlc3BlcmUgYSBqYW5lbGEgZmVjaGFyLicsXG4gICAgICBuZXRzdWl0ZUF1dGhTZXR1cFJlcXVpcmVkOlxuICAgICAgICAnTyBOZXRTdWl0ZSBuw6NvIHJlZ2lzdHJhIG8gYXBwIHNvemluaG8uIFVtIGFkbWluIHByZWNpc2EgY3JpYXIgdW1hIEludGVncmF0aW9uIChQdWJsaWMgQ2xpZW50LCBzY29wZSBBSSBDb25uZWN0b3IsIFJlZGlyZWN0IFVSSSBkbyBNQUlBKS4gRGVwb2lzIG8gbG9naW4gYXBhcmVjZSBubyBwb3B1cC4nLFxuICAgICAgdmlzaWJpbGl0eVRpdGxlOiAnVmlzaWJpbGlkYWRlIGRvIGFnZW50ZScsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdRdWVtIHBvZGUgdXNhciBlc3RlIGFnZW50ZT8nLFxuICAgICAgYWxsQ29tcGFueVRpdGxlOiAnVG9kYSBhIGVtcHJlc2EnLFxuICAgICAgYWxsQ29tcGFueURlc2NyaXB0aW9uOiAnVG9kb3Mgb3MgdXN1w6FyaW9zIGRhIHN1YSBvcmdhbml6YcOnw6NvIHBvZGVyw6NvIHZlciBlIHVzYXIgZXN0ZSBhZ2VudGUuJyxcbiAgICAgIGNsaWVudFRpdGxlOiAnUGFyYSBjbGllbnRlcyBlc3BlY8OtZmljb3MnLFxuICAgICAgY2xpZW50RGVzY3JpcHRpb246XG4gICAgICAgICdBc3NvY2llIGVzdGUgYWdlbnRlIGEgdW0gb3UgbWFpcyBjbGllbnRlcy4gVG9kb3Mgb3MgdXN1w6FyaW9zIHBvZGVyw6NvIHZlciBjb20gcXVhaXMgY2xpZW50ZXMgZWxlIGVzdMOhIHZpbmN1bGFkby4nLFxuICAgICAgb3duVGl0bGU6ICdTb21lbnRlIGV1JyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnRXN0ZSBhZ2VudGUgc2Vyw6EgcHJpdmFkbyBlIG7Do28gZXN0YXLDoSBkaXNwb27DrXZlbCBwYXJhIG91dHJvcyB1c3XDoXJpb3MuJyxcbiAgICAgIGNsaWVudHNTZWxlY3RlZDogJ0NsaWVudGVzIHNlbGVjaW9uYWRvczonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdPcHMhIFRpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgb3MgY2xpZW50ZXMuIFBvZGUgdGVudGFyIG5vdmFtZW50ZSBlbSBpbnN0YW50ZXM/JyxcbiAgICAgIHNlYXJjaEVtcHR5OiAnT3BzISBOw6NvIGVuY29udHJhbW9zIGNsaWVudGVzIGNvbSBlc3NlIG5vbWUuIFRlbnRlIG91dHJhIGJ1c2NhLicsXG4gICAgICBzZWFyY2hJbml0aWFsOiAnQ29tZWNlIGEgZGlnaXRhciBvIG5vbWUgZGUgdW0gY2xpZW50ZSBwYXJhIGFzc29jacOhLWxvJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnQnVzY2FyIGNsaWVudGUnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdFc3RlIGNsaWVudGUgZXN0w6EgaW5hdGl2by4gUmVjb21lbmRhbW9zIHJlbW92w6otbG8gZGEgbGlzdGEuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnRXN0ZSBjbGllbnRlIGZvaSBleGNsdcOtZG8uIFJlY29tZW5kYW1vcyByZW1vdsOqLWxvIGRhIGxpc3RhLicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50ZSBleGNsdcOtZG8nLFxuICAgICAgY2xpZW50c0Vycm9yOiAnVmVyaWZpcXVlIG9zIGNsaWVudGVzIGFzc29jaWFkb3MnLFxuICAgIH0sXG4gICAgcHJvY2Vzc2luZ0tub3dsZWRnZToge1xuICAgICAgZGVzY3JpcHRpb25DcmVhdGU6XG4gICAgICAgICdFc3RhbW9zIGNyaWFuZG8gbyBBZ2VudGUgZSBzdWEgYmFzZSBkZSBjb25oZWNpbWVudG8uIElzc28gcG9kZSBsZXZhciBhbGd1bnMgaW5zdGFudGVzLiBQb3IgZmF2b3IsIG7Do28gZmVjaGUgZXN0YSBqYW5lbGEgYXTDqSBxdWUgbyBwcm9jZXNzbyBzZWphIGNvbmNsdcOtZG8uJyxcbiAgICAgIGRlc2NyaXB0aW9uVXBkYXRlOlxuICAgICAgICAnRXN0YW1vcyBhdHVhbGl6YW5kbyBvIEFnZW50ZSBlIHN1YSBiYXNlIGRlIGNvbmhlY2ltZW50by4gSXNzbyBwb2RlIGxldmFyIGFsZ3VucyBpbnN0YW50ZXMuIFBvciBmYXZvciwgbsOjbyBmZWNoZSBlc3RhIGphbmVsYSBhdMOpIHF1ZSBvIHByb2Nlc3NvIHNlamEgY29uY2x1w61kby4nLFxuICAgICAgZmlsZVJvdzogJ0FycXVpdm8nLFxuICAgICAgc3RhdHVzUm93OiAnU3RhdHVzJyxcbiAgICAgIHBlbmRpbmc6ICdQZW5kZW50ZScsXG4gICAgICBwcm9jZXNzaW5nOiAnUHJvY2Vzc2FuZG8nLFxuICAgICAgZmFpbGVkOiAnRmFsaGEnLFxuICAgICAgZG9uZTogJ0NvbXBsZXRhZG8nLFxuICAgICAgbG9hZGluZ0ZpbGVzOiAnQ2FycmVnYW5kbyBhcnF1aXZvcy4uLicsXG4gICAgICBlcnJvcjoge30sXG4gICAgfSxcbiAgICBkZWxldGVBZ2VudE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ0Rlc2VqYSBleGNsdWlyIGVzdGUgYWdlbnRlPycsXG4gICAgICBmaXJzdFBhcnQ6ICdWb2PDqiBlc3TDoSBwcmVzdGVzIGEgZXhjbHVpciAnLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYcOnw6NvIG7Do28gcG9kZSBzZXIgZGVzZmVpdGEuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ0VtIHF1YWwgcHJvamV0byB2b2PDqiBnb3N0YXJpYSBkZSBhanVkYT8nLFxuICAgICAgaGVsbG86IHtcbiAgICAgICAgdGl0bGU6ICdTb3UgTUFJQSwgc3VhIGVzcGVjaWFsaXN0YSBlbSBwcm9qZXRvcy4nLFxuICAgICAgICBzdWJ0aXRsZTpcbiAgICAgICAgICAnUGFyYSB0ZSBkYXIgcmVzcG9zdGFzIHByZWNpc2FzLCBwcmVjaXNvIHNhYmVyIHNvYnJlIHF1YWwgcHJvamV0byB2YW1vcyBjb252ZXJzYXIuIFF1YWwgdm9jw6ogZXNjb2xoZT8nLFxuICAgICAgfSxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWNpb25lIG8gcHJvamV0byBwYXJhIHF1ZSBhIE1BSUEgcmVzcG9uZGEgY29tIGJhc2UgZW0gdW0gY29udGV4dG8uJyxcbiAgICAgIGxhYmVsUHJvamVjdDogJ1NlbGVjaW9uZSB1bSBwcm9qZXRvJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQnVzcXVlIHVtIHByb2pldG8gcGVsbyBub21lJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdNdWRhciBkZSBwcm9qZXRvJyxcbiAgICAgIHJlY2VudFByb2plY3RzOiAnUmVjZW50ZXMnLFxuICAgICAgc2VhcmNoaW5nUHJvamVjdHM6ICdCdXNjYW5kbyBzZXVzIHByb2pldG9zLi4uJyxcbiAgICAgIGVycm9yTWVzc2FnZTogJ09wcyEgVGl2ZW1vcyB1bSBwcm9ibGVtYSBhbyBjYXJyZWdhciBvcyBwcm9qZXRvcy4gUG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdWb2PDqiBuw6NvIHRlbSBwcm9qZXRvcyByZWNlbnRlcy4gRGlnaXRlIG8gbm9tZSBkZSB1bSBwcm9qZXRvIG5hIGJ1c2NhIHBhcmEgZW5jb250csOhLWxvLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT3BzISBOw6NvIGVuY29udHJhbW9zIHByb2pldG9zIGNvbSBlc3NlIG5vbWUuIFRlbnRlIG91dHJhIGJ1c2NhLicsXG4gICAgICB3aXRob3V0Q2xpZW50OiAnU2VtIGNsaWVudGUnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnU2VtIHTDrXR1bG8nLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5jbGllbnRTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgdGl0bGU6ICdFbSBxdWFsIGNsaWVudGUgdm9jw6ogZ29zdGFyaWEgZGUgYWp1ZGE/JyxcbiAgICAgIGhlbGxvOiB7XG4gICAgICAgIHRpdGxlOiAnU291IE1BSUEsIHN1YSBlc3BlY2lhbGlzdGEgZW0gY2xpZW50ZXMuJyxcbiAgICAgICAgc3VidGl0bGU6XG4gICAgICAgICAgJ1BhcmEgdGUgZGFyIHJlc3Bvc3RhcyBwcmVjaXNhcywgcHJlY2lzbyBzYWJlciBzb2JyZSBxdWFsIGNsaWVudGUgdmFtb3MgY29udmVyc2FyLiBRdWFsIHZvY8OqIGVzY29saGU/JyxcbiAgICAgIH0sXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjaW9uZSBvIGNsaWVudGUgcGFyYSBxdWUgYSBNQUlBIHJlc3BvbmRhIGNvbSBiYXNlIGVtIHVtIGNvbnRleHRvLicsXG4gICAgICBsYWJlbENsaWVudDogJ1NlbGVjaW9uZSB1bSBjbGllbnRlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQnVzY2FyIGNsaWVudGUgcGVsbyBub21lJyxcbiAgICAgIGNoYW5nZUNsaWVudDogJ011ZGFyIGRlIGNsaWVudGUnLFxuICAgICAgcmVjZW50Q2xpZW50czogJ1JlY2VudGVzJyxcbiAgICAgIHNlYXJjaGluZ0NsaWVudHM6ICdCdXNjYW5kbyBzZXVzIGNsaWVudGVzLi4uJyxcbiAgICAgIGVycm9yTWVzc2FnZTogJ1RpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgb3MgY2xpZW50ZXMuIFBvciBmYXZvciwgdGVudGUgbm92YW1lbnRlIGVtIGFsZ3VucyBtaW51dG9zLicsXG4gICAgICBlbXB0eVJlY2VudENsaWVudHM6ICdWb2PDqiBuw6NvIHRlbSBjbGllbnRlcyByZWNlbnRlcy4gRGlnaXRlIG8gbm9tZSBkZSB1bSBjbGllbnRlIG5hIGJ1c2NhIHBhcmEgZW5jb250csOhLWxvLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT3BzISBOw6NvIGVuY29udHJhbW9zIGNsaWVudGVzIGNvbSBlc3NlIG5vbWUuIFRlbnRlIG91dHJhIGJ1c2NhLicsXG4gICAgICBwcm9qZWN0OiAncHJvamV0bycsXG4gICAgICBwcm9qZWN0czogJ3Byb2pldG9zJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLFFBQVE7RUFDZkMsUUFBUSxFQUFFLFdBQVc7RUFDckJDLFFBQVEsRUFBRSxnQkFBZ0I7RUFDMUJDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxNQUFNLEVBQUUsVUFBVTtFQUNsQkMsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLE1BQU0sRUFBRSxrQkFBa0I7RUFDMUJDLElBQUksRUFBRSxRQUFRO0VBQ2RDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxhQUFhLEVBQUUsb0JBQW9CO0VBQ25DQyxJQUFJLEVBQUUsUUFBUTtFQUNkQyxNQUFNLEVBQUU7QUFDVixDQUFDO0FBRUQsSUFBTUMsS0FBSyxHQUFHO0VBQ1pDLEtBQUssRUFBRSxxQkFBcUI7RUFDNUJDLFdBQVcsRUFBRSxpR0FBaUc7RUFDOUdDLFFBQVEsRUFBRTtBQUNaLENBQUM7QUFFRCxJQUFNQyxjQUFjLEdBQUc7RUFDckJKLEtBQUssRUFBTEEsS0FBSztFQUNMZCxPQUFPLEVBQVBBO0FBQ0YsQ0FBQztBQUVELElBQU1tQixxQkFBcUIsR0FBRztFQUM1QkMsTUFBTSxFQUFFLFNBQVM7RUFDakJDLEtBQUssRUFBRSxnQkFBZ0I7RUFDdkJDLE9B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