@projectcor/maia-components 2.11.21 → 2.11.23-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 (48) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +16 -2
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +6 -5
  3. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  4. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  5. package/lib/components/atoms/icons/index.js +3 -1
  6. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +24 -5
  7. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +26 -61
  8. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +130 -0
  9. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +91 -0
  10. package/lib/components/molecules/ChatAIHome/styles.js +37 -43
  11. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  12. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +58 -4
  13. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +43 -0
  14. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  15. package/lib/components/molecules/ChatAIMessages/newStyles.js +24 -21
  16. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +184 -14
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +20 -42
  18. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -13
  19. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  20. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +328 -0
  21. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +178 -0
  22. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -3
  23. package/lib/components/molecules/Sidebar/Sidebar.js +138 -198
  24. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +123 -0
  25. package/lib/components/molecules/Sidebar/Sidebar.styles.js +13 -1
  26. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +99 -52
  27. package/lib/hooks/index.js +4 -1
  28. package/lib/hooks/useAgentSuggestions.js +60 -0
  29. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  30. package/lib/hooks/useChatManager/useChatManager.js +245 -85
  31. package/lib/hooks/useEvent.js +5 -2
  32. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  33. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +19 -7
  34. package/lib/lang/br/index.js +75 -9
  35. package/lib/lang/en/index.js +75 -9
  36. package/lib/lang/es/index.js +73 -7
  37. package/lib/lang/fr/index.js +100 -4
  38. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  39. package/lib/services/maia/Agents/getAgentById.js +9 -5
  40. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  41. package/lib/services/maia/Agents/getAgents.js +9 -10
  42. package/lib/services/maia/Orchestrator/orchestrator.js +29 -22
  43. package/lib/services/utils/mapChatMessages.js +2 -1
  44. package/lib/types/AgentSuggestion.js +2 -0
  45. package/lib/types/Chat.js +1 -1
  46. package/lib/types/agent.js +1 -1
  47. package/lib/types/agentModal.js +1 -1
  48. package/package.json +1 -1
@@ -5,16 +5,14 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
6
6
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
7
7
  import { useT } from '../../../hooks/useT';
8
- import { useUser } from '../../../context/cor-user';
9
- import { SCCAIHomeContainer, SCCAIHomeContent, SCCAIHomeContentInner, SCCAIHomeGradientTop, SCCAIHomeGradientBottom, SCCAIHomeHeader, SCCAIHomeGreeting, SCCAIHomeAgentInfoContainer, SCCAIHomeAgentInfo, SCCAIHomeProjectSummary, SCCAIHomeProjectSummaryContent, SCCAIHomeProjectSummaryTitle, SCCAIHomeProjectSummaryDescription, SCCAHWrapperSummaryProject, SCCAIHomeIntroduction, SCCAIHomeCreatedByContainer, SCCAIHomeCreatedByText, SCCAIHomeCreatedByTextName, SCCAIHomeEmptyContainer, SCCAIHomeEmptyTextContainer, SCCAIHomeEmptyDescription, SCCAIHomeEmptyButton, SCCAIHomeIconContainer, SCCAIHomeLogoWrapper } from './styles';
8
+ import { SCCAIHomeContainer, SCCAIHomeContent, SCCAIHomeContentInner, SCCAIHomeGradientTop, SCCAIHomeGradientBottom, SCCAIHomeHeader, SCCAIHomeGreeting, SCCAIHomeAgentInfoContainer, SCCAIHomeAgentInfo, SCCAIHomeProjectSummary, SCCAIHomeProjectSummaryContent, SCCAIHomeProjectSummaryTitle, SCCAIHomeProjectSummaryDescription, SCCAHWrapperSummaryProject, SCCAIHomeIntroduction, SCCAIHomeCreatedByContainer, SCCAIHomeCreatedByText, SCCAIHomeCreatedByTextName, SCCAIHomeIconContainer, SCCAIHomeLogoWrapper, SCCAIHomeMaiaHeaderStack } from './styles';
10
9
  import { useGlobalContext } from '../../../context/global-context';
11
10
  import { validateIsMaia } from '../../../services/utils/validateIsMaia';
12
11
  import { FrequentlyAskedQuestions } from '../../atoms/FrequentlyAskedQuestions';
13
- import { EmptyStateAgents } from '../../atoms/icons/EmptyStateAgents';
14
- import { EVENTS, useEvent } from '../../../hooks/useEvent';
15
12
  import { MAIAIsologo } from '../../atoms/icons/MAIAIsologo';
16
13
  import { TemplateGradientIcon } from '../../atoms/icons/TemplateGradientIcon';
17
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { ChatAIHomeMaiaker } from './ChatAIHomeMaiaker';
15
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
18
16
  export var FrequentQuestions = /*#__PURE__*/function (FrequentQuestions) {
19
17
  FrequentQuestions["rentabilidad_proyecto"] = "rentabilidad_proyecto";
20
18
  FrequentQuestions["avance_proyecto"] = "avance_proyecto";
@@ -23,22 +21,21 @@ export var FrequentQuestions = /*#__PURE__*/function (FrequentQuestions) {
23
21
  export var ChatAIHome = function ChatAIHome(_ref) {
24
22
  var handlers = _ref.handlers,
25
23
  onStartChat = _ref.onStartChat,
26
- expanded = _ref.expanded,
27
- hasNoAgents = _ref.hasNoAgents;
24
+ expanded = _ref.expanded;
28
25
  var _useT = useT(),
29
26
  t = _useT.t,
30
27
  i18n = _useT.i18n;
31
28
  var _useGlobalContext = useGlobalContext(),
32
29
  agent = _useGlobalContext.agent,
33
30
  section = _useGlobalContext.section;
34
- var user = useUser();
35
- var event = useEvent();
36
31
  var isMAIA = validateIsMaia(agent);
37
32
  var lang = i18n.language === 'br' ? 'pt' : i18n.language;
38
33
  var summaryProjectAccess = typeof window !== 'undefined' && (String(window.MAIA_PROJECT_SUMMARY_FEATURE_ACCESS).toLowerCase() === 'true' || String(window.maiaProjectSummaryAccess).toLowerCase() === 'true');
39
34
  var faqsAccess = true;
40
35
  var showProjectSummary = !!(isMAIA && summaryProjectAccess);
41
- var showFAQs = !!(isMAIA && faqsAccess);
36
+ var isMaiaker = (agent === null || agent === void 0 ? void 0 : agent.entity) === 'global' && /(maiaker|marketplace)/i.test((agent === null || agent === void 0 ? void 0 : agent.name) || '');
37
+ var showFAQs = !!(isMAIA && faqsAccess && !isMaiaker);
38
+ var homeScrollableLayout = showFAQs || isMaiaker;
42
39
 
43
40
  // Lógica del scroll con gradientes
44
41
  var contentContainerRef = useRef(null);
@@ -56,18 +53,19 @@ export var ChatAIHome = function ChatAIHome(_ref) {
56
53
  setIsScrolling = _useState6[1];
57
54
  var scrollTimeoutRef = useRef(null);
58
55
 
59
- // Saludo aleatorio desde agent.introduction (array con 3 variantes del back)
56
+ // Saludo aleatorio desde agent.introduction (array con 3 variantes del back). Maiaker usa solo el bloque propio, sin intro del agente.
60
57
  var greeting = useMemo(function () {
58
+ if (isMaiaker) return '';
61
59
  var intro = agent === null || agent === void 0 ? void 0 : agent.introduction;
62
60
  if (!intro) return '';
63
61
  if (Array.isArray(intro) && intro.length > 0) {
64
62
  return intro[Math.floor(Math.random() * intro.length)];
65
63
  }
66
64
  return typeof intro === 'string' ? intro : '';
67
- }, [agent === null || agent === void 0 ? void 0 : agent.id, agent === null || agent === void 0 ? void 0 : agent.introduction, section]);
65
+ }, [agent === null || agent === void 0 ? void 0 : agent.id, agent === null || agent === void 0 ? void 0 : agent.introduction, section, isMaiaker]);
68
66
  var checkScroll = useCallback(function () {
69
67
  var container = contentContainerRef.current;
70
- if (!container || !showFAQs) return;
68
+ if (!container || !homeScrollableLayout) return;
71
69
  var scrollTop = container.scrollTop,
72
70
  scrollHeight = container.scrollHeight,
73
71
  clientHeight = container.clientHeight;
@@ -83,9 +81,9 @@ export var ChatAIHome = function ChatAIHome(_ref) {
83
81
  scrollTimeoutRef.current = setTimeout(function () {
84
82
  setIsScrolling(false);
85
83
  }, 150);
86
- }, [showFAQs]);
84
+ }, [homeScrollableLayout]);
87
85
  useEffect(function () {
88
- if (!showFAQs) {
86
+ if (!homeScrollableLayout) {
89
87
  setShowTopGradient(false);
90
88
  setShowBottomGradient(false);
91
89
  return undefined;
@@ -104,37 +102,7 @@ export var ChatAIHome = function ChatAIHome(_ref) {
104
102
  clearTimeout(scrollTimeoutRef.current);
105
103
  }
106
104
  };
107
- }, [showFAQs, checkScroll]);
108
- if (hasNoAgents) {
109
- var _user$permissions, _user$permissions2;
110
- return /*#__PURE__*/_jsx(SCCAIHomeContainer, {
111
- children: /*#__PURE__*/_jsx(SCCAIHomeContent, {
112
- children: /*#__PURE__*/_jsxs(SCCAIHomeEmptyContainer, {
113
- children: [/*#__PURE__*/_jsx(EmptyStateAgents, {}), /*#__PURE__*/_jsxs(SCCAIHomeEmptyTextContainer, {
114
- children: [/*#__PURE__*/_jsx(SCCAIHomeGreeting, {
115
- children: t('homeMenu.noAgents.title')
116
- }), /*#__PURE__*/_jsx(SCCAIHomeEmptyDescription, {
117
- children: (_user$permissions = user.permissions) !== null && _user$permissions !== void 0 && (_user$permissions = _user$permissions.ai_agents) !== null && _user$permissions !== void 0 && _user$permissions.create ? t('homeMenu.noAgents.descriptionCreate') : t('homeMenu.noAgents.description')
118
- })]
119
- }), ((_user$permissions2 = user.permissions) === null || _user$permissions2 === void 0 || (_user$permissions2 = _user$permissions2.ai_agents) === null || _user$permissions2 === void 0 ? void 0 : _user$permissions2.create) && window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS && /*#__PURE__*/_jsx(SCCAIHomeEmptyButton, {
120
- onClick: function onClick() {
121
- event(EVENTS.openModal, {
122
- option: 'new_agent'
123
- });
124
- document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
125
- detail: {
126
- agentValues: {
127
- isOpen: true
128
- }
129
- }
130
- }));
131
- },
132
- children: t('homeMenu.noAgents.createAgent')
133
- })]
134
- })
135
- })
136
- });
137
- }
105
+ }, [homeScrollableLayout, checkScroll]);
138
106
  var renderHeaderContent = function renderHeaderContent() {
139
107
  if (!isMAIA) {
140
108
  var _agent$created_by, _agent$created_by2;
@@ -153,32 +121,27 @@ export var ChatAIHome = function ChatAIHome(_ref) {
153
121
  })]
154
122
  });
155
123
  }
156
- return /*#__PURE__*/_jsxs("div", {
157
- style: {
158
- display: 'flex',
159
- flexDirection: 'column',
160
- alignItems: 'center',
161
- gap: '8px'
162
- },
124
+ return /*#__PURE__*/_jsxs(SCCAIHomeMaiaHeaderStack, {
125
+ $noGap: !greeting,
163
126
  children: [/*#__PURE__*/_jsx(SCCAIHomeIconContainer, {
164
127
  children: /*#__PURE__*/_jsx(SCCAIHomeLogoWrapper, {
165
128
  children: /*#__PURE__*/_jsx(MAIAIsologo, {})
166
129
  })
167
- }), /*#__PURE__*/_jsx(SCCAIHomeGreeting, {
130
+ }), greeting ? /*#__PURE__*/_jsx(SCCAIHomeGreeting, {
168
131
  children: greeting
169
- })]
132
+ }) : null]
170
133
  });
171
134
  };
172
135
  return /*#__PURE__*/_jsx(SCCAIHomeContainer, {
173
136
  showFAQs: showFAQs,
174
137
  children: /*#__PURE__*/_jsxs(SCCAIHomeContent, {
175
138
  ref: contentContainerRef,
176
- showFAQs: showFAQs,
139
+ showFAQs: homeScrollableLayout,
177
140
  $isAgentView: !isMAIA,
178
- children: [showFAQs && /*#__PURE__*/_jsx(SCCAIHomeGradientTop, {
141
+ children: [homeScrollableLayout && /*#__PURE__*/_jsx(SCCAIHomeGradientTop, {
179
142
  $show: showTopGradient
180
143
  }), /*#__PURE__*/_jsxs(SCCAIHomeContentInner, {
181
- showFAQs: showFAQs,
144
+ showFAQs: homeScrollableLayout,
182
145
  $isAgentView: !isMAIA,
183
146
  children: [/*#__PURE__*/_jsxs(SCCAIHomeHeader, {
184
147
  $gap: isMAIA && section !== 'project' ? '8px' : '20px',
@@ -209,11 +172,13 @@ export var ChatAIHome = function ChatAIHome(_ref) {
209
172
  agentId: agent === null || agent === void 0 ? void 0 : agent.id,
210
173
  lang: lang,
211
174
  isScrolling: isScrolling
212
- })]
213
- }), showFAQs && /*#__PURE__*/_jsx(SCCAIHomeGradientBottom, {
175
+ }), isMaiaker ? /*#__PURE__*/_jsx(ChatAIHomeMaiaker, {
176
+ onStartChat: onStartChat
177
+ }) : null]
178
+ }), homeScrollableLayout && /*#__PURE__*/_jsx(SCCAIHomeGradientBottom, {
214
179
  $show: showBottomGradient
215
180
  })]
216
181
  })
217
182
  });
218
183
  };
219
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJ1c2VUIiwidXNlVXNlciIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24iLCJTQ0NBSUhvbWVFbXB0eUJ1dHRvbiIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkVtcHR5U3RhdGVBZ2VudHMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk1BSUFJc29sb2dvIiwiVGVtcGxhdGVHcmFkaWVudEljb24iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJlcXVlbnRRdWVzdGlvbnMiLCJDaGF0QUlIb21lIiwiX3JlZiIsImhhbmRsZXJzIiwib25TdGFydENoYXQiLCJleHBhbmRlZCIsImhhc05vQWdlbnRzIiwiX3VzZVQiLCJ0IiwiaTE4biIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJzZWN0aW9uIiwidXNlciIsImV2ZW50IiwiaXNNQUlBIiwibGFuZyIsImxhbmd1YWdlIiwic3VtbWFyeVByb2plY3RBY2Nlc3MiLCJ3aW5kb3ciLCJTdHJpbmciLCJNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUyIsInRvTG93ZXJDYXNlIiwibWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzIiwiZmFxc0FjY2VzcyIsInNob3dQcm9qZWN0U3VtbWFyeSIsInNob3dGQVFzIiwiY29udGVudENvbnRhaW5lclJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dUb3BHcmFkaWVudCIsInNldFNob3dUb3BHcmFkaWVudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd0JvdHRvbUdyYWRpZW50Iiwic2V0U2hvd0JvdHRvbUdyYWRpZW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwic2Nyb2xsVGltZW91dFJlZiIsImdyZWV0aW5nIiwiaW50cm8iLCJpbnRyb2R1Y3Rpb24iLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJpZCIsImNoZWNrU2Nyb2xsIiwiY29udGFpbmVyIiwiY3VycmVudCIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImlzU2Nyb2xsYWJsZSIsImlzQXRUb3AiLCJpc0F0Qm90dG9tIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0aW1lb3V0SWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJfdXNlciRwZXJtaXNzaW9uczIiLCJjaGlsZHJlbiIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsIm9uQ2xpY2siLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwiaXNPcGVuIiwicmVuZGVySGVhZGVyQ29udGVudCIsIl9hZ2VudCRjcmVhdGVkX2J5IiwiX2FnZW50JGNyZWF0ZWRfYnkyIiwiZW1vamkiLCJuYW1lIiwiY3JlYXRlZF9ieSIsInRpdGxlIiwiaXNfZGVsZXRlZCIsInN0eWxlIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwiZ2FwIiwicmVmIiwiJGlzQWdlbnRWaWV3IiwiJHNob3ciLCIkZ2FwIiwiJG1heFdpZHRoIiwiZW50aXR5IiwicHJvamVjdFN1bW1hcnkiLCJoZWlnaHQiLCJ3aWR0aCIsImFnZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJSG9tZS9DaGF0QUlIb21lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lcixcbiAgU0NDQUlIb21lRW1wdHlUZXh0Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVFbXB0eURlc2NyaXB0aW9uLFxuICBTQ0NBSUhvbWVFbXB0eUJ1dHRvbixcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lTG9nb1dyYXBwZXIsXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUFnZW50cyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0VtcHR5U3RhdGVBZ2VudHMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL01BSUFJc29sb2dvJ1xuaW1wb3J0IHsgVGVtcGxhdGVHcmFkaWVudEljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9UZW1wbGF0ZUdyYWRpZW50SWNvbidcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBoYXNOb0FnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgaGFzTm9BZ2VudHMgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICBjb25zdCBzaG93RkFRcyA9ICEhKGlzTUFJQSAmJiBmYXFzQWNjZXNzKVxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaylcbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uXSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhc2hvd0ZBUXMpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtzaG93RkFRc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dGQVFzKSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2hvd0ZBUXMsIGNoZWNrU2Nyb2xsXSlcblxuICBpZiAoaGFzTm9BZ2VudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICAgICAgPFNDQ0FJSG9tZUVtcHR5Q29udGFpbmVyPlxuICAgICAgICAgICAgPEVtcHR5U3RhdGVBZ2VudHMgLz5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eVRleHRDb250YWluZXI+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57dCgnaG9tZU1lbnUubm9BZ2VudHMudGl0bGUnKX08L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICAgICAgICA8U0NDQUlIb21lRW1wdHlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICB7dXNlci5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGVcbiAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUubm9BZ2VudHMuZGVzY3JpcHRpb25DcmVhdGUnKVxuICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5ub0FnZW50cy5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lcj5cbiAgICAgICAgICAgIHt1c2VyLnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eUJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnbmV3X2FnZW50JyB9KVxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51Lm5vQWdlbnRzLmNyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlDb250YWluZXI+XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICA8U0NDQUlIb21lR3JlZXRpbmc+e2dyZWV0aW5nfTwvU0NDQUlIb21lR3JlZXRpbmc+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVDb250YWluZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfT5cbiAgICAgIDxTQ0NBSUhvbWVDb250ZW50IHJlZj17Y29udGVudENvbnRhaW5lclJlZn0gc2hvd0ZBUXM9e3Nob3dGQVFzfSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICB7c2hvd0ZBUXMgJiYgPFNDQ0FJSG9tZUdyYWRpZW50VG9wICRzaG93PXtzaG93VG9wR3JhZGllbnR9IC8+fVxuICAgICAgICA8U0NDQUlIb21lQ29udGVudElubmVyIHNob3dGQVFzPXtzaG93RkFRc30gJGlzQWdlbnRWaWV3PXshaXNNQUlBfT5cbiAgICAgICAgICA8U0NDQUlIb21lSGVhZGVyXG4gICAgICAgICAgICAkZ2FwPXtpc01BSUEgJiYgc2VjdGlvbiAhPT0gJ3Byb2plY3QnID8gJzhweCcgOiAnMjBweCd9XG4gICAgICAgICAgICAkbWF4V2lkdGg9e2lzTUFJQSA/ICcxMDAlJyA6ICczODBweCd9XG4gICAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlckhlYWRlckNvbnRlbnQoKX1cblxuICAgICAgICAgICAge3NlY3Rpb24gIT09ICdwcm9qZWN0JyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24gZXhwYW5kZWQ9e2V4cGFuZGVkfT57IWlzTUFJQSAmJiBhZ2VudD8uaW50cm9kdWN0aW9ufTwvU0NDQUlIb21lSW50cm9kdWN0aW9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUhlYWRlcj5cbiAgICAgICAgICB7c2hvd1Byb2plY3RTdW1tYXJ5ICYmIGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyAmJiAoXG4gICAgICAgICAgICA8U0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Qgb25DbGljaz17aGFuZGxlcnMucHJvamVjdFN1bW1hcnl9PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgICAgPFRlbXBsYXRlR3JhZGllbnRJY29uIGhlaWdodD17MjR9IHdpZHRoPXsyNH0gLz5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT57dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkudGl0bGUnKX08L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkuZGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgPC9TQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtzaG93RkFRcyAmJiAoXG4gICAgICAgICAgICA8RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXG4gICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgc2hvd0ZBUXM9e3Nob3dGQVFzfVxuICAgICAgICAgICAgICBzaG93UHJvamVjdFN1bW1hcnk9e3Nob3dQcm9qZWN0U3VtbWFyeX1cbiAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICBsYW5nPXtsYW5nfVxuICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudElubmVyPlxuICAgICAgICB7c2hvd0ZBUXMgJiYgPFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tICRzaG93PXtzaG93Qm90dG9tR3JhZGllbnR9IC8+fVxuICAgICAgPC9TQ0NBSUhvbWVDb250ZW50PlxuICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXpFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBSW5ELFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsRUFDckJDLG9CQUFvQixFQUNwQkMsdUJBQXVCLEVBQ3ZCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsMkJBQTJCLEVBQzNCQyxrQkFBa0IsRUFDbEJDLHVCQUF1QixFQUN2QkMsOEJBQThCLEVBQzlCQyw0QkFBNEIsRUFDNUJDLGtDQUFrQyxFQUNsQ0MsMEJBQTBCLEVBQzFCQyxxQkFBcUIsRUFDckJDLDJCQUEyQixFQUMzQkMsc0JBQXNCLEVBQ3RCQywwQkFBMEIsRUFDMUJDLHVCQUF1QixFQUN2QkMsMkJBQTJCLEVBQzNCQyx5QkFBeUIsRUFDekJDLG9CQUFvQixFQUNwQkMsc0JBQXNCLEVBQ3RCQyxvQkFBb0IsUUFDZixVQUFVO0FBQ2pCLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxjQUFjLFFBQVEsd0NBQXdD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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJ1c2VUIiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIk1BSUFJc29sb2dvIiwiVGVtcGxhdGVHcmFkaWVudEljb24iLCJDaGF0QUlIb21lTWFpYWtlciIsImpzeHMiLCJfanN4cyIsImpzeCIsIl9qc3giLCJGcmVxdWVudFF1ZXN0aW9ucyIsIkNoYXRBSUhvbWUiLCJfcmVmIiwiaGFuZGxlcnMiLCJvblN0YXJ0Q2hhdCIsImV4cGFuZGVkIiwiX3VzZVQiLCJ0IiwiaTE4biIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJzZWN0aW9uIiwiaXNNQUlBIiwibGFuZyIsImxhbmd1YWdlIiwic3VtbWFyeVByb2plY3RBY2Nlc3MiLCJ3aW5kb3ciLCJTdHJpbmciLCJNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUyIsInRvTG93ZXJDYXNlIiwibWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzIiwiZmFxc0FjY2VzcyIsInNob3dQcm9qZWN0U3VtbWFyeSIsImlzTWFpYWtlciIsImVudGl0eSIsInRlc3QiLCJuYW1lIiwic2hvd0ZBUXMiLCJob21lU2Nyb2xsYWJsZUxheW91dCIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaWQiLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImNoaWxkcmVuIiwiZW1vamkiLCJjcmVhdGVkX2J5IiwidGl0bGUiLCJpc19kZWxldGVkIiwiJG5vR2FwIiwicmVmIiwiJGlzQWdlbnRWaWV3IiwiJHNob3ciLCIkZ2FwIiwiJG1heFdpZHRoIiwib25DbGljayIsInByb2plY3RTdW1tYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJhZ2VudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcblxuaW1wb3J0IHtcbiAgU0NDQUlIb21lQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVDb250ZW50LFxuICBTQ0NBSUhvbWVDb250ZW50SW5uZXIsXG4gIFNDQ0FJSG9tZUdyYWRpZW50VG9wLFxuICBTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSxcbiAgU0NDQUlIb21lSGVhZGVyLFxuICBTQ0NBSUhvbWVHcmVldGluZyxcbiAgU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVBZ2VudEluZm8sXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24sXG4gIFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0LFxuICBTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24sXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCxcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUsXG4gIFNDQ0FJSG9tZUljb25Db250YWluZXIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxuICBTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2ssXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcbmltcG9ydCB7IFRlbXBsYXRlR3JhZGllbnRJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGVtcGxhdGVHcmFkaWVudEljb24nXG5pbXBvcnQgeyBDaGF0QUlIb21lTWFpYWtlciB9IGZyb20gJy4vQ2hhdEFJSG9tZU1haWFrZXInXG5cbnR5cGUgQ2hhdEFJSG9tZVByb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBGcmVxdWVudFF1ZXN0aW9ucyB7XG4gIHJlbnRhYmlsaWRhZF9wcm95ZWN0byA9ICdyZW50YWJpbGlkYWRfcHJveWVjdG8nLFxuICBhdmFuY2VfcHJveWVjdG8gPSAnYXZhbmNlX3Byb3llY3RvJyxcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWUgPSAoeyBoYW5kbGVycywgb25TdGFydENoYXQsIGV4cGFuZGVkIH06IENoYXRBSUhvbWVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQnIDogaTE4bi5sYW5ndWFnZVxuXG4gIGNvbnN0IHN1bW1hcnlQcm9qZWN0QWNjZXNzID1cbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIChTdHJpbmcod2luZG93Lk1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgfHxcbiAgICAgIFN0cmluZyh3aW5kb3cubWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpXG4gIGNvbnN0IGZhcXNBY2Nlc3MgPSB0cnVlXG4gIGNvbnN0IHNob3dQcm9qZWN0U3VtbWFyeSA9ICEhKGlzTUFJQSAmJiBzdW1tYXJ5UHJvamVjdEFjY2VzcylcbiAgY29uc3QgaXNNYWlha2VyID0gYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYWdlbnQ/Lm5hbWUgfHwgJycpXG4gIGNvbnN0IHNob3dGQVFzID0gISEoaXNNQUlBICYmIGZhcXNBY2Nlc3MgJiYgIWlzTWFpYWtlcilcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBhbGVhdG9yaW8gZGVzZGUgYWdlbnQuaW50cm9kdWN0aW9uIChhcnJheSBjb24gMyB2YXJpYW50ZXMgZGVsIGJhY2spLiBNYWlha2VyIHVzYSBzb2xvIGVsIGJsb3F1ZSBwcm9waW8sIHNpbiBpbnRybyBkZWwgYWdlbnRlLlxuICBjb25zdCBncmVldGluZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc01haWFrZXIpIHJldHVybiAnJ1xuICAgIGNvbnN0IGludHJvID0gYWdlbnQ/LmludHJvZHVjdGlvblxuICAgIGlmICghaW50cm8pIHJldHVybiAnJ1xuICAgIGlmIChBcnJheS5pc0FycmF5KGludHJvKSAmJiBpbnRyby5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW50cm9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaW50cm8ubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpbnRybyA9PT0gJ3N0cmluZycgPyBpbnRybyA6ICcnXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py5pbnRyb2R1Y3Rpb24sIHNlY3Rpb24sIGlzTWFpYWtlcl0pXG5cbiAgY29uc3QgY2hlY2tTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgY29uc3QgaXNTY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaXNBdFRvcCA9IHNjcm9sbFRvcCA9PT0gMFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMVxuXG4gICAgc2V0U2hvd1RvcEdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdFRvcClcbiAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0Qm90dG9tKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoY2hlY2tTY3JvbGwsIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrICRub0dhcD17IWdyZWV0aW5nfT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICB7Z3JlZXRpbmcgPyA8U0NDQUlIb21lR3JlZXRpbmc+e2dyZWV0aW5nfTwvU0NDQUlIb21lR3JlZXRpbmc+IDogbnVsbH1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfSBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnkgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGVHcmFkaWVudEljb24gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dGQVFzICYmIChcbiAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7aXNNYWlha2VyID8gPENoYXRBSUhvbWVNYWlha2VyIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUV6RSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFJMUMsU0FDRUMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyx1QkFBdUIsRUFDdkJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQywyQkFBMkIsRUFDM0JDLGtCQUFrQixFQUNsQkMsdUJBQXVCLEVBQ3ZCQyw4QkFBOEIsRUFDOUJDLDRCQUE0QixFQUM1QkMsa0NBQWtDLEVBQ2xDQywwQkFBMEIsRUFDMUJDLHFCQUFxQixFQUNyQkMsMkJBQTJC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
@@ -0,0 +1,130 @@
1
+ /* eslint-disable react/function-component-definition */
2
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
3
+ import { useT } from '../../../hooks/useT';
4
+ import { useUser } from '../../../context/cor-user';
5
+ import { useAgentSuggestions } from '../../../hooks/useAgentSuggestions';
6
+ import { EVENTS, useEvent } from '../../../hooks/useEvent';
7
+ import { mapCORLang } from '../../../lang/utils';
8
+ import { Loader } from '../../atoms/Loader';
9
+ import { SCMAActionsRow, SCMACreateManualButton, SCMACreateManualButtonText } from '../ChatAIMyAgents/ChatAIMyAgents.styles';
10
+ import { SCCAIHomeMaiakerRoot, SCCAIHomeMaiakerIntroColumn, SCCAIHomeMaiakerIntroBlock, SCCAIHomeMaiakerTitle, SCCAIHomeMaiakerSubtitle, SCCAIHomeMaiakerCardsRow, SCCAIHomeMaiakerCardsLoaderCell, SCCAIHomeMaiakerCardButton, SCCAIHomeMaiakerCardTopRow, SCCAIHomeMaiakerBadgeNew, SCCAIHomeMaiakerCardTitleEmoji, SCCAIHomeMaiakerCardTitleName, SCCAIHomeMaiakerCardBody, SCCAIHomeMaiakerCardSubtitle, SCCAIHomeMaiakerCustomAgentHintButton, SCCAIHomeMaiakerCustomAgentHintMaiaIconWrap, SCCAIHomeMaiakerCustomAgentHintContent, SCCAIHomeMaiakerCustomAgentHintTitle, SCCAIHomeMaiakerCustomAgentHintSubtitle } from './ChatAIHomeMaiaker.styles';
11
+ import { MAIAIcon } from '../../atoms/icons/MAIAIcon';
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ export var ChatAIHomeMaiaker = function ChatAIHomeMaiaker(_ref) {
14
+ var _user$permissions;
15
+ var onStartChat = _ref.onStartChat;
16
+ var _useT = useT(),
17
+ t = _useT.t,
18
+ i18n = _useT.i18n;
19
+ var user = useUser();
20
+ var eventAmplitude = useEvent();
21
+ var lang = mapCORLang(i18n.language);
22
+ var _useAgentSuggestions = useAgentSuggestions(lang),
23
+ suggestions = _useAgentSuggestions.suggestions,
24
+ loading = _useAgentSuggestions.loading,
25
+ error = _useAgentSuggestions.error,
26
+ handleGetAgentSuggestions = _useAgentSuggestions.handleGetAgentSuggestions;
27
+ var lastFetchRef = useRef(null);
28
+ var userPermissions = user === null || user === void 0 || (_user$permissions = user.permissions) === null || _user$permissions === void 0 ? void 0 : _user$permissions.ai_agents;
29
+ var canCreateAgent = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.create) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
30
+ var suggestionWithoutCategory = useMemo(function () {
31
+ return suggestions.find(function (suggestion) {
32
+ return suggestion.category === null;
33
+ });
34
+ }, [suggestions]);
35
+ var categorizedSuggestions = useMemo(function () {
36
+ return suggestions.filter(function (suggestion) {
37
+ return suggestion.category !== null;
38
+ });
39
+ }, [suggestions]);
40
+ var handleOpenCreateAgent = useCallback(function () {
41
+ eventAmplitude(EVENTS.openModal, {
42
+ option: 'create_agent'
43
+ });
44
+ document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
45
+ detail: {
46
+ agentValues: {
47
+ values: {
48
+ isEditing: false
49
+ },
50
+ isOpen: true
51
+ }
52
+ }
53
+ }));
54
+ }, [eventAmplitude]);
55
+ useEffect(function () {
56
+ if (lastFetchRef.current !== lang) {
57
+ lastFetchRef.current = lang;
58
+ handleGetAgentSuggestions();
59
+ }
60
+ }, [lang, handleGetAgentSuggestions]);
61
+ return /*#__PURE__*/_jsxs(SCCAIHomeMaiakerRoot, {
62
+ children: [/*#__PURE__*/_jsxs(SCCAIHomeMaiakerIntroColumn, {
63
+ children: [/*#__PURE__*/_jsx(SCCAIHomeMaiakerIntroBlock, {
64
+ children: /*#__PURE__*/_jsx(SCCAIHomeMaiakerTitle, {
65
+ children: t('homeMenu.maiaker.title')
66
+ })
67
+ }), /*#__PURE__*/_jsx(SCCAIHomeMaiakerIntroBlock, {
68
+ children: /*#__PURE__*/_jsx(SCCAIHomeMaiakerSubtitle, {
69
+ children: t('homeMenu.maiaker.description')
70
+ })
71
+ }), canCreateAgent ? /*#__PURE__*/_jsx(SCMAActionsRow, {
72
+ children: /*#__PURE__*/_jsx(SCMACreateManualButton, {
73
+ type: "button",
74
+ onClick: handleOpenCreateAgent,
75
+ children: /*#__PURE__*/_jsx(SCMACreateManualButtonText, {
76
+ children: t('homeMenu.maiaker.createManualAgent')
77
+ })
78
+ })
79
+ }) : null]
80
+ }), /*#__PURE__*/_jsxs(SCCAIHomeMaiakerCardsRow, {
81
+ children: [loading && !error ? /*#__PURE__*/_jsx(SCCAIHomeMaiakerCardsLoaderCell, {
82
+ children: /*#__PURE__*/_jsx(Loader, {})
83
+ }) : null, !loading && !error && categorizedSuggestions.map(function (suggestion) {
84
+ var _suggestion$emoji;
85
+ return /*#__PURE__*/_jsxs(SCCAIHomeMaiakerCardButton, {
86
+ type: "button",
87
+ onClick: function onClick() {
88
+ eventAmplitude(EVENTS.aiChatMpSelectAgent, {
89
+ agent_title: suggestion.title
90
+ });
91
+ onStartChat(suggestion.title, null, undefined, suggestion.id);
92
+ },
93
+ children: [/*#__PURE__*/_jsxs(SCCAIHomeMaiakerCardTopRow, {
94
+ children: [/*#__PURE__*/_jsx(SCCAIHomeMaiakerCardTitleEmoji, {
95
+ "aria-hidden": true,
96
+ children: (_suggestion$emoji = suggestion.emoji) !== null && _suggestion$emoji !== void 0 && _suggestion$emoji.trim() ? suggestion.emoji : "\xA0"
97
+ }), /*#__PURE__*/_jsx(SCCAIHomeMaiakerBadgeNew, {
98
+ children: t('homeMenu.maiaker.badgeNew')
99
+ })]
100
+ }), /*#__PURE__*/_jsx(SCCAIHomeMaiakerCardTitleName, {
101
+ children: suggestion.title
102
+ }), /*#__PURE__*/_jsx(SCCAIHomeMaiakerCardBody, {
103
+ children: /*#__PURE__*/_jsx(SCCAIHomeMaiakerCardSubtitle, {
104
+ children: suggestion.subtitle
105
+ })
106
+ })]
107
+ }, suggestion.id);
108
+ })]
109
+ }), !loading && !error && suggestionWithoutCategory ? /*#__PURE__*/_jsxs(SCCAIHomeMaiakerCustomAgentHintButton, {
110
+ type: "button",
111
+ onClick: function onClick() {
112
+ eventAmplitude(EVENTS.aiChatMpSelectAgent, {
113
+ agent_title: suggestionWithoutCategory.title
114
+ });
115
+ onStartChat(suggestionWithoutCategory.title, null, undefined, suggestionWithoutCategory.id);
116
+ },
117
+ children: [/*#__PURE__*/_jsx(SCCAIHomeMaiakerCustomAgentHintMaiaIconWrap, {
118
+ "aria-hidden": true,
119
+ children: /*#__PURE__*/_jsx(MAIAIcon, {})
120
+ }), /*#__PURE__*/_jsxs(SCCAIHomeMaiakerCustomAgentHintContent, {
121
+ children: [/*#__PURE__*/_jsx(SCCAIHomeMaiakerCustomAgentHintTitle, {
122
+ children: suggestionWithoutCategory.title
123
+ }), /*#__PURE__*/_jsx(SCCAIHomeMaiakerCustomAgentHintSubtitle, {
124
+ children: suggestionWithoutCategory.subtitle
125
+ })]
126
+ })]
127
+ }) : null]
128
+ });
129
+ };
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VUIiwidXNlVXNlciIsInVzZUFnZW50U3VnZ2VzdGlvbnMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIm1hcENPUkxhbmciLCJMb2FkZXIiLCJTQ01BQWN0aW9uc1JvdyIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b24iLCJTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCIsIlNDQ0FJSG9tZU1haWFrZXJSb290IiwiU0NDQUlIb21lTWFpYWtlckludHJvQ29sdW1uIiwiU0NDQUlIb21lTWFpYWtlckludHJvQmxvY2siLCJTQ0NBSUhvbWVNYWlha2VyVGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyU3VidGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZHNSb3ciLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZHNMb2FkZXJDZWxsIiwiU0NDQUlIb21lTWFpYWtlckNhcmRCdXR0b24iLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZFRvcFJvdyIsIlNDQ0FJSG9tZU1haWFrZXJCYWRnZU5ldyIsIlNDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVFbW9qaSIsIlNDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVOYW1lIiwiU0NDQUlIb21lTWFpYWtlckNhcmRCb2R5IiwiU0NDQUlIb21lTWFpYWtlckNhcmRTdWJ0aXRsZSIsIlNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRCdXR0b24iLCJTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50TWFpYUljb25XcmFwIiwiU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludENvbnRlbnQiLCJTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50VGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50U3VidGl0bGUiLCJNQUlBSWNvbiIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlIb21lTWFpYWtlciIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uU3RhcnRDaGF0IiwiX3VzZVQiLCJ0IiwiaTE4biIsInVzZXIiLCJldmVudEFtcGxpdHVkZSIsImxhbmciLCJsYW5ndWFnZSIsIl91c2VBZ2VudFN1Z2dlc3Rpb25zIiwic3VnZ2VzdGlvbnMiLCJsb2FkaW5nIiwiZXJyb3IiLCJoYW5kbGVHZXRBZ2VudFN1Z2dlc3Rpb25zIiwibGFzdEZldGNoUmVmIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGVBZ2VudCIsImNyZWF0ZSIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJzdWdnZXN0aW9uV2l0aG91dENhdGVnb3J5IiwiZmluZCIsInN1Z2dlc3Rpb24iLCJjYXRlZ29yeSIsImNhdGVnb3JpemVkU3VnZ2VzdGlvbnMiLCJmaWx0ZXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwiaXNPcGVuIiwiY3VycmVudCIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJtYXAiLCJfc3VnZ2VzdGlvbiRlbW9qaSIsImFpQ2hhdE1wU2VsZWN0QWdlbnQiLCJhZ2VudF90aXRsZSIsInRpdGxlIiwidW5kZWZpbmVkIiwiaWQiLCJlbW9qaSIsInRyaW0iLCJzdWJ0aXRsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWVNYWlha2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlQWdlbnRTdWdnZXN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUFnZW50U3VnZ2VzdGlvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHtcbiAgU0NNQUFjdGlvbnNSb3csXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b24sXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0LFxufSBmcm9tICcuLi9DaGF0QUlNeUFnZW50cy9DaGF0QUlNeUFnZW50cy5zdHlsZXMnXG5pbXBvcnQge1xuICBTQ0NBSUhvbWVNYWlha2VyUm9vdCxcbiAgU0NDQUlIb21lTWFpYWtlckludHJvQ29sdW1uLFxuICBTQ0NBSUhvbWVNYWlha2VySW50cm9CbG9jayxcbiAgU0NDQUlIb21lTWFpYWtlclRpdGxlLFxuICBTQ0NBSUhvbWVNYWlha2VyU3VidGl0bGUsXG4gIFNDQ0FJSG9tZU1haWFrZXJDYXJkc1JvdyxcbiAgU0NDQUlIb21lTWFpYWtlckNhcmRzTG9hZGVyQ2VsbCxcbiAgU0NDQUlIb21lTWFpYWtlckNhcmRCdXR0b24sXG4gIFNDQ0FJSG9tZU1haWFrZXJDYXJkVG9wUm93LFxuICBTQ0NBSUhvbWVNYWlha2VyQmFkZ2VOZXcsXG4gIFNDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVFbW9qaSxcbiAgU0NDQUlIb21lTWFpYWtlckNhcmRUaXRsZU5hbWUsXG4gIFNDQ0FJSG9tZU1haWFrZXJDYXJkQm9keSxcbiAgU0NDQUlIb21lTWFpYWtlckNhcmRTdWJ0aXRsZSxcbiAgU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludEJ1dHRvbixcbiAgU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludE1haWFJY29uV3JhcCxcbiAgU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludENvbnRlbnQsXG4gIFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRUaXRsZSxcbiAgU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludFN1YnRpdGxlLFxufSBmcm9tICcuL0NoYXRBSUhvbWVNYWlha2VyLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvTUFJQUljb24nXG5cbnR5cGUgQ2hhdEFJSG9tZU1haWFrZXJQcm9wcyA9IHtcbiAgb25TdGFydENoYXQ6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICApID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWVNYWlha2VyID0gKHsgb25TdGFydENoYXQgfTogQ2hhdEFJSG9tZU1haWFrZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBsYW5nID0gbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKVxuICBjb25zdCB7IHN1Z2dlc3Rpb25zLCBsb2FkaW5nLCBlcnJvciwgaGFuZGxlR2V0QWdlbnRTdWdnZXN0aW9ucyB9ID0gdXNlQWdlbnRTdWdnZXN0aW9ucyhsYW5nKVxuICBjb25zdCBsYXN0RmV0Y2hSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gIGNvbnN0IHN1Z2dlc3Rpb25XaXRob3V0Q2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IHN1Z2dlc3Rpb25zLmZpbmQoc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLmNhdGVnb3J5ID09PSBudWxsKSxcbiAgICBbc3VnZ2VzdGlvbnNdXG4gIClcbiAgY29uc3QgY2F0ZWdvcml6ZWRTdWdnZXN0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc3VnZ2VzdGlvbnMuZmlsdGVyKHN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbi5jYXRlZ29yeSAhPT0gbnVsbCksXG4gICAgW3N1Z2dlc3Rpb25zXVxuICApXG5cbiAgY29uc3QgaGFuZGxlT3BlbkNyZWF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnY3JlYXRlX2FnZW50JyB9KVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgfSwgW2V2ZW50QW1wbGl0dWRlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsYXN0RmV0Y2hSZWYuY3VycmVudCAhPT0gbGFuZykge1xuICAgICAgbGFzdEZldGNoUmVmLmN1cnJlbnQgPSBsYW5nXG4gICAgICBoYW5kbGVHZXRBZ2VudFN1Z2dlc3Rpb25zKClcbiAgICB9XG4gIH0sIFtsYW5nLCBoYW5kbGVHZXRBZ2VudFN1Z2dlc3Rpb25zXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVNYWlha2VyUm9vdD5cbiAgICAgIDxTQ0NBSUhvbWVNYWlha2VySW50cm9Db2x1bW4+XG4gICAgICAgIDxTQ0NBSUhvbWVNYWlha2VySW50cm9CbG9jaz5cbiAgICAgICAgICA8U0NDQUlIb21lTWFpYWtlclRpdGxlPnt0KCdob21lTWVudS5tYWlha2VyLnRpdGxlJyl9PC9TQ0NBSUhvbWVNYWlha2VyVGl0bGU+XG4gICAgICAgIDwvU0NDQUlIb21lTWFpYWtlckludHJvQmxvY2s+XG4gICAgICAgIDxTQ0NBSUhvbWVNYWlha2VySW50cm9CbG9jaz5cbiAgICAgICAgICA8U0NDQUlIb21lTWFpYWtlclN1YnRpdGxlPnt0KCdob21lTWVudS5tYWlha2VyLmRlc2NyaXB0aW9uJyl9PC9TQ0NBSUhvbWVNYWlha2VyU3VidGl0bGU+XG4gICAgICAgIDwvU0NDQUlIb21lTWFpYWtlckludHJvQmxvY2s+XG4gICAgICAgIHtjYW5DcmVhdGVBZ2VudCA/IChcbiAgICAgICAgICA8U0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICA8U0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlT3BlbkNyZWF0ZUFnZW50fT5cbiAgICAgICAgICAgICAgPFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0Pnt0KCdob21lTWVudS5tYWlha2VyLmNyZWF0ZU1hbnVhbEFnZW50Jyl9PC9TQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD5cbiAgICAgICAgICAgIDwvU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbj5cbiAgICAgICAgICA8L1NDTUFBY3Rpb25zUm93PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NDQUlIb21lTWFpYWtlckludHJvQ29sdW1uPlxuICAgICAgPFNDQ0FJSG9tZU1haWFrZXJDYXJkc1Jvdz5cbiAgICAgICAge2xvYWRpbmcgJiYgIWVycm9yID8gKFxuICAgICAgICAgIDxTQ0NBSUhvbWVNYWlha2VyQ2FyZHNMb2FkZXJDZWxsPlxuICAgICAgICAgICAgPExvYWRlciAvPlxuICAgICAgICAgIDwvU0NDQUlIb21lTWFpYWtlckNhcmRzTG9hZGVyQ2VsbD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHshbG9hZGluZyAmJlxuICAgICAgICAgICFlcnJvciAmJlxuICAgICAgICAgIGNhdGVnb3JpemVkU3VnZ2VzdGlvbnMubWFwKHN1Z2dlc3Rpb24gPT4gKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZU1haWFrZXJDYXJkQnV0dG9uXG4gICAgICAgICAgICAgIGtleT17c3VnZ2VzdGlvbi5pZH1cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBTZWxlY3RBZ2VudCwgeyBhZ2VudF90aXRsZTogc3VnZ2VzdGlvbi50aXRsZSB9KVxuICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0KHN1Z2dlc3Rpb24udGl0bGUsIG51bGwsIHVuZGVmaW5lZCwgc3VnZ2VzdGlvbi5pZClcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZU1haWFrZXJDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVNYWlha2VyQ2FyZFRpdGxlRW1vamkgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgICAgICB7c3VnZ2VzdGlvbi5lbW9qaT8udHJpbSgpID8gc3VnZ2VzdGlvbi5lbW9qaSA6ICdcXHUwMGEwJ31cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVFbW9qaT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lTWFpYWtlckJhZGdlTmV3Pnt0KCdob21lTWVudS5tYWlha2VyLmJhZGdlTmV3Jyl9PC9TQ0NBSUhvbWVNYWlha2VyQmFkZ2VOZXc+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lTWFpYWtlckNhcmRUb3BSb3c+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVNYWlha2VyQ2FyZFRpdGxlTmFtZT57c3VnZ2VzdGlvbi50aXRsZX08L1NDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICA8U0NDQUlIb21lTWFpYWtlckNhcmRCb2R5PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVNYWlha2VyQ2FyZFN1YnRpdGxlPntzdWdnZXN0aW9uLnN1YnRpdGxlfTwvU0NDQUlIb21lTWFpYWtlckNhcmRTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVNYWlha2VyQ2FyZEJvZHk+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZU1haWFrZXJDYXJkQnV0dG9uPlxuICAgICAgICAgICkpfVxuICAgICAgPC9TQ0NBSUhvbWVNYWlha2VyQ2FyZHNSb3c+XG4gICAgICB7IWxvYWRpbmcgJiYgIWVycm9yICYmIHN1Z2dlc3Rpb25XaXRob3V0Q2F0ZWdvcnkgPyAoXG4gICAgICAgIDxTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50QnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wU2VsZWN0QWdlbnQsIHsgYWdlbnRfdGl0bGU6IHN1Z2dlc3Rpb25XaXRob3V0Q2F0ZWdvcnkudGl0bGUgfSlcbiAgICAgICAgICAgIG9uU3RhcnRDaGF0KHN1Z2dlc3Rpb25XaXRob3V0Q2F0ZWdvcnkudGl0bGUsIG51bGwsIHVuZGVmaW5lZCwgc3VnZ2VzdGlvbldpdGhvdXRDYXRlZ29yeS5pZClcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRNYWlhSWNvbldyYXAgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICA8TUFJQUljb24gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRNYWlhSWNvbldyYXA+XG4gICAgICAgICAgPFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRDb250ZW50PlxuICAgICAgICAgICAgPFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRUaXRsZT5cbiAgICAgICAgICAgICAge3N1Z2dlc3Rpb25XaXRob3V0Q2F0ZWdvcnkudGl0bGV9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50U3VidGl0bGU+XG4gICAgICAgICAgICAgIHtzdWdnZXN0aW9uV2l0aG91dENhdGVnb3J5LnN1YnRpdGxlfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50U3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50Q29udGVudD5cbiAgICAgICAgPC9TQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50QnV0dG9uPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TQ0NBSUhvbWVNYWlha2VyUm9vdD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQy9ELFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsT0FBTyxR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
@@ -0,0 +1,91 @@
1
+ import styled from 'styled-components';
2
+ var MAIAKER_CARDS_MAX_WIDTH_PX = 696;
3
+ export var SCCAIHomeMaiakerRoot = styled.div.withConfig({
4
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerRoot",
5
+ componentId: "sc-bixdoo-0"
6
+ })(["display:flex;flex:1 1 auto;flex-direction:column;align-items:center;align-self:stretch;gap:8px;width:100%;min-height:0;font-family:'Work Sans',sans-serif;"]);
7
+ export var SCCAIHomeMaiakerIntroColumn = styled.div.withConfig({
8
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerIntroColumn",
9
+ componentId: "sc-bixdoo-1"
10
+ })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
11
+ export var SCCAIHomeMaiakerIntroBlock = styled.div.withConfig({
12
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerIntroBlock",
13
+ componentId: "sc-bixdoo-2"
14
+ })(["display:flex;flex-direction:column;align-items:center;gap:8px;align-self:stretch;"]);
15
+ export var SCCAIHomeMaiakerTitle = styled.p.withConfig({
16
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerTitle",
17
+ componentId: "sc-bixdoo-3"
18
+ })(["width:100%;max-width:374px;margin:0;color:#20201f;text-align:center;font-size:20px;font-weight:500;line-height:122%;letter-spacing:-0.2px;"]);
19
+ export var SCCAIHomeMaiakerSubtitle = styled.p.withConfig({
20
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerSubtitle",
21
+ componentId: "sc-bixdoo-4"
22
+ })(["width:100%;max-width:432px;margin:0;color:#20201f;text-align:center;font-size:14px;font-weight:400;line-height:140%;letter-spacing:-0.21px;"]);
23
+ export var SCCAIHomeMaiakerCardsRow = styled.div.withConfig({
24
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardsRow",
25
+ componentId: "sc-bixdoo-5"
26
+ })(["display:grid;width:100%;max-width:min(100%,", "px);margin-inline:auto;align-self:center;grid-template-columns:repeat(auto-fill,216px);gap:8px;align-items:stretch;justify-content:center;"], MAIAKER_CARDS_MAX_WIDTH_PX);
27
+ export var SCCAIHomeMaiakerCardsLoaderCell = styled.div.withConfig({
28
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardsLoaderCell",
29
+ componentId: "sc-bixdoo-6"
30
+ })(["grid-column:1 / -1;display:flex;justify-content:center;width:100%;padding-bottom:8px;"]);
31
+ export var SCCAIHomeMaiakerCardButton = styled.button.withConfig({
32
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardButton",
33
+ componentId: "sc-bixdoo-7"
34
+ })(["display:flex;width:216px;height:132px;min-height:132px;max-height:132px;padding:12px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;border-radius:8px;border:1px solid #d9d9d9;background:#fff;cursor:pointer;text-align:left;box-sizing:border-box;font:inherit;color:inherit;overflow:hidden;flex-shrink:0;:hover{cursor:pointer;box-shadow:0 4px 16px 0 rgba(111,121,136,0.08);}"]);
35
+ export var SCCAIHomeMaiakerCardTopRow = styled.div.withConfig({
36
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardTopRow",
37
+ componentId: "sc-bixdoo-8"
38
+ })(["display:flex;justify-content:space-between;align-items:flex-start;align-self:stretch;gap:8px;min-height:1.4em;"]);
39
+ export var SCCAIHomeMaiakerCardTitleEmoji = styled.span.withConfig({
40
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardTitleEmoji",
41
+ componentId: "sc-bixdoo-9"
42
+ })(["flex-shrink:0;line-height:1.4;font-size:1em;min-width:1.4em;text-align:left;"]);
43
+ export var SCCAIHomeMaiakerCardTitleName = styled.span.withConfig({
44
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardTitleName",
45
+ componentId: "sc-bixdoo-10"
46
+ })(["align-self:stretch;color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:140%;letter-spacing:-0.21px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;"]);
47
+ export var SCCAIHomeMaiakerBadgeNew = styled.span.withConfig({
48
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerBadgeNew",
49
+ componentId: "sc-bixdoo-11"
50
+ })(["display:flex;padding:4px 8px;justify-content:center;align-items:center;flex-shrink:0;border-radius:14px;background:linear-gradient(180deg,#4d3569 0%,#2d77bd 100%);color:#fff;font-size:10px;font-weight:600;line-height:100%;letter-spacing:-0.1px;text-transform:uppercase;"]);
51
+ export var SCCAIHomeMaiakerCardBody = styled.div.withConfig({
52
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardBody",
53
+ componentId: "sc-bixdoo-12"
54
+ })(["display:flex;flex-direction:column;flex:1;min-height:0;justify-content:flex-start;align-items:flex-start;gap:4px;align-self:stretch;"]);
55
+ export var SCCAIHomeMaiakerCardSubtitle = styled.span.withConfig({
56
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCardSubtitle",
57
+ componentId: "sc-bixdoo-13"
58
+ })(["align-self:stretch;color:#666;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;line-height:130%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;"]);
59
+ export var SCCAIHomeMaiakerCustomAgentHintButton = styled.button.withConfig({
60
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCustomAgentHintButton",
61
+ componentId: "sc-bixdoo-14"
62
+ })(["position:sticky;bottom:16px;z-index:12;display:flex;width:100%;max-width:min(100%,500px);margin-top:auto;margin-inline:auto;padding:16px;align-items:center;gap:12px;align-self:stretch;border:0;border-radius:8px;background:linear-gradient(90deg,#fafcfe 0%,#f4f9fe 100%);cursor:pointer;font:inherit;color:inherit;text-align:left;transition:box-shadow 160ms ease,background 160ms ease;&:hover{box-shadow:0 4px 16px 0 rgba(111,121,136,0.12);background:linear-gradient(90deg,#f5f9fd 0%,#edf5fd 100%);}&:focus-visible{outline:2px solid #2d77bd;outline-offset:2px;}"]);
63
+ export var SCCAIHomeMaiakerCustomAgentHintMaiaIconWrap = styled.span.withConfig({
64
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCustomAgentHintMaiaIconWrap",
65
+ componentId: "sc-bixdoo-15"
66
+ })(["display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;line-height:0;transform:scale(1.6);transform-origin:center center;"]);
67
+ export var SCCAIHomeMaiakerCustomAgentHintIcon = styled.span.withConfig({
68
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCustomAgentHintIcon",
69
+ componentId: "sc-bixdoo-16"
70
+ })(["position:relative;width:25px;height:25px;flex-shrink:0;&::before{content:'+';position:absolute;inset:0;display:grid;place-items:center;font-size:22px;line-height:1;font-weight:600;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}&::after{content:'\u2022';position:absolute;top:1px;right:0;font-size:10px;line-height:1;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}"]);
71
+ export var SCCAIHomeMaiakerCustomAgentHintContent = styled.div.withConfig({
72
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCustomAgentHintContent",
73
+ componentId: "sc-bixdoo-17"
74
+ })(["display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 0 0;"]);
75
+ export var SCCAIHomeMaiakerCustomAgentHintTitle = styled.span.withConfig({
76
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCustomAgentHintTitle",
77
+ componentId: "sc-bixdoo-18"
78
+ })(["font-family:'Work Sans',sans-serif;font-size:14px;font-style:normal;font-weight:500;line-height:140%;letter-spacing:-0.21px;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;"]);
79
+ export var SCCAIHomeMaiakerCustomAgentHintSubtitle = styled.span.withConfig({
80
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerCustomAgentHintSubtitle",
81
+ componentId: "sc-bixdoo-19"
82
+ })(["align-self:stretch;color:#000;font-family:'Work Sans',sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:130%;"]);
83
+ export var SCCAIHomeMaiakerComingSoonCard = styled.div.withConfig({
84
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerComingSoonCard",
85
+ componentId: "sc-bixdoo-20"
86
+ })(["display:flex;width:216px;padding:12px;flex-direction:column;align-items:flex-start;gap:4px;align-self:stretch;border-radius:8px;border:1px solid #d9d9d9;background:#fff;box-sizing:border-box;"]);
87
+ export var SCCAIHomeMaiakerIconRow = styled.div.withConfig({
88
+ displayName: "ChatAIHomeMaiakerstyles__SCCAIHomeMaiakerIconRow",
89
+ componentId: "sc-bixdoo-21"
90
+ })(["display:flex;align-items:flex-start;gap:4px;align-self:stretch;"]);
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJNQUlBS0VSX0NBUkRTX01BWF9XSURUSF9QWCIsIlNDQ0FJSG9tZU1haWFrZXJSb290IiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJTQ0NBSUhvbWVNYWlha2VySW50cm9Db2x1bW4iLCJTQ0NBSUhvbWVNYWlha2VySW50cm9CbG9jayIsIlNDQ0FJSG9tZU1haWFrZXJUaXRsZSIsInAiLCJTQ0NBSUhvbWVNYWlha2VyU3VidGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZHNSb3ciLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZHNMb2FkZXJDZWxsIiwiU0NDQUlIb21lTWFpYWtlckNhcmRCdXR0b24iLCJidXR0b24iLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZFRvcFJvdyIsIlNDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVFbW9qaSIsInNwYW4iLCJTQ0NBSUhvbWVNYWlha2VyQ2FyZFRpdGxlTmFtZSIsIlNDQ0FJSG9tZU1haWFrZXJCYWRnZU5ldyIsIlNDQ0FJSG9tZU1haWFrZXJDYXJkQm9keSIsIlNDQ0FJSG9tZU1haWFrZXJDYXJkU3VidGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50QnV0dG9uIiwiU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludE1haWFJY29uV3JhcCIsIlNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRJY29uIiwiU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludENvbnRlbnQiLCJTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50VGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyQ3VzdG9tQWdlbnRIaW50U3VidGl0bGUiLCJTQ0NBSUhvbWVNYWlha2VyQ29taW5nU29vbkNhcmQiLCJTQ0NBSUhvbWVNYWlha2VySWNvblJvdyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWVNYWlha2VyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5jb25zdCBNQUlBS0VSX0NBUkRTX01BWF9XSURUSF9QWCA9IDY5NlxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lTWFpYWtlclJvb3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDEgYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VySW50cm9Db2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VySW50cm9CbG9jayA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lTWFpYWtlclRpdGxlID0gc3R5bGVkLnBgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDM3NHB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMjAyMDFmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMiU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4ycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VyU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDMycHg7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VyQ2FyZHNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgJHtNQUlBS0VSX0NBUkRTX01BWF9XSURUSF9QWH1weCk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCAyMTZweCk7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VyQ2FyZHNMb2FkZXJDZWxsID0gc3R5bGVkLmRpdmBcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lTWFpYWtlckNhcmRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMjE2cHg7XG4gIGhlaWdodDogMTMycHg7XG4gIG1pbi1oZWlnaHQ6IDEzMnB4O1xuICBtYXgtaGVpZ2h0OiAxMzJweDtcbiAgcGFkZGluZzogMTJweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggMCByZ2JhKDExMSwgMTIxLCAxMzYsIDAuMDgpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VyQ2FyZFRvcFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogOHB4O1xuICBtaW4taGVpZ2h0OiAxLjRlbTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDYXJkVGl0bGVFbW9qaSA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1pbi13aWR0aDogMS40ZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VyQ2FyZFRpdGxlTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VyQmFkZ2VOZXcgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTAwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDYXJkQm9keSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lTWFpYWtlckNhcmRTdWJ0aXRsZSA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMzAlO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDE2cHg7XG4gIHotaW5kZXg6IDEyO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgNTAwcHgpO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICBwYWRkaW5nOiAxNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmYWZjZmUgMCUsICNmNGY5ZmUgMTAwJSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zaXRpb246XG4gICAgYm94LXNoYWRvdyAxNjBtcyBlYXNlLFxuICAgIGJhY2tncm91bmQgMTYwbXMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IDAgcmdiYSgxMTEsIDEyMSwgMTM2LCAwLjEyKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmNWY5ZmQgMCUsICNlZGY1ZmQgMTAwJSk7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMmQ3N2JkO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRNYWlhSWNvbldyYXAgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS42KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzRkMzU2OSAwJSwgIzJkNzdiZCAxMDAlKTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJ+KAoic7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzRkMzU2OSAwJSwgIzJkNzdiZCAxMDAlKTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMnB4O1xuICBmbGV4OiAxIDAgMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDdXN0b21BZ2VudEhpbnRUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lTWFpYWtlckN1c3RvbUFnZW50SGludFN1YnRpdGxlID0gc3R5bGVkLnNwYW5gXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTMwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZU1haWFrZXJDb21pbmdTb29uQ2FyZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAyMTZweDtcbiAgcGFkZGluZzogMTJweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlha2VySWNvblJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUV0QyxJQUFNQywwQkFBMEIsR0FBRyxHQUFHO0FBRXRDLE9BQU8sSUFBTUMsb0JBQW9CLEdBQUdGLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGtLQVU3QztBQUVELE9BQU8sSUFBTUMsMkJBQTJCLEdBQUdQLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZGQU1wRDtBQUVELE9BQU8sSUFBTUUsMEJBQTBCLEdBQUdSLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHlGQU1uRDtBQUVELE9BQU8sSUFBTUcscUJBQXFCLEdBQUdULE1BQU0sQ0FBQ1UsQ0FBQyxDQUFBTixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGtKQVU1QztBQUVELE9BQU8sSUFBTUssd0JBQXdCLEdBQUdYLE1BQU0sQ0FBQ1UsQ0FBQyxDQUFBTixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1KQVUvQztBQUVELE9BQU8sSUFBTU0sd0JBQXdCLEdBQUdaLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGtNQUd6QkwsMEJBQTBCLENBT2xEO0FBRUQsT0FBTyxJQUFNWSwrQkFBK0IsR0FBR2IsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkZBTXhEO0FBRUQsT0FBTyxJQUFNUSwwQkFBMEIsR0FBR2QsTUFBTSxDQUFDZSxNQUFNLENBQUFYLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNFpBeUJ0RDtBQUVELE9BQU8sSUFBTVUsMEJBQTBCLEdBQUdoQixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzSEFPbkQ7QUFFRCxPQUFPLElBQU1XLDhCQUE4QixHQUFHakIsTUFBTSxDQUFDa0IsSUFBSSxDQUFBZCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9GQU14RDtBQUVELE9BQU8sSUFBTWEsNkJBQTZCLEdBQUduQixNQUFNLENBQUNrQixJQUFJLENBQUFkLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEscVJBY3ZEO0FBRUQsT0FBTyxJQUFNYyx3QkFBd0IsR0FBR3BCLE1BQU0sQ0FBQ2tCLElBQUksQ0FBQWQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxUkFjbEQ7QUFFRCxPQUFPLElBQU1lLHdCQUF3QixHQUFHckIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNElBU2pEO0FBRUQsT0FBTyxJQUFNZ0IsNEJBQTRCLEdBQUd0QixNQUFNLENBQUNrQixJQUFJLENBQUFkLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMlBBYXREO0FBRUQsT0FBTyxJQUFNaUIscUNBQXFDLEdBQUd2QixNQUFNLENBQUNlLE1BQU0sQ0FBQVgsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzakJBaUNqRTtBQUVELE9BQU8sSUFBTWtCLDJDQUEyQyxHQUFHeEIsTUFBTSxDQUFDa0IsSUFBSSxDQUFBZCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNKQVFyRTtBQUVELE9BQU8sSUFBTW1CLG1DQUFtQyxHQUFHekIsTUFBTSxDQUFDa0IsSUFBSSxDQUFBZCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDJnQkErQjdEO0FBRUQsT0FBTyxJQUFNb0Isc0NBQXNDLEdBQUcxQixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxRkFNL0Q7QUFFRCxPQUFPLElBQU1xQixvQ0FBb0MsR0FBRzNCLE1BQU0sQ0FBQ2tCLElBQUksQ0FBQWQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4UEFVOUQ7QUFFRCxPQUFPLElBQU1zQix1Q0FBdUMsR0FBRzVCLE1BQU0sQ0FBQ2tCLElBQUksQ0FBQWQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwySUFRakU7QUFFRCxPQUFPLElBQU11Qiw4QkFBOEIsR0FBRzdCLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVNQVl2RDtBQUVELE9BQU8sSUFBTXdCLHVCQUF1QixHQUFHOUIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUVBS2hEIiwiaWdub3JlTGlzdCI6W119