@projectcor/maia-components 2.35.1 → 2.35.3-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.
- package/CHANGELOG.md +718 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +59 -4
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +16 -4
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +12 -1
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +127 -5
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +2 -19
- package/lib/components/atoms/MAIAInput/MAIAInput.js +193 -21
- package/lib/components/atoms/MAIAInput/styles.js +40 -43
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
- package/lib/components/atoms/SkillsDropdown/index.js +2 -0
- package/lib/components/atoms/icons/PlusIcon.js +29 -0
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +4 -7
- package/lib/components/atoms/icons/index.js +5 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +34 -11
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -3
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +18 -56
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +59 -20
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +2 -11
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +10 -5
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +315 -239
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +131 -104
- package/lib/components/molecules/ChatFooter/ChatFooter.js +34 -46
- package/lib/components/molecules/ChatFooter/styles.js +6 -12
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
- package/lib/components/molecules/Sidebar/Sidebar.js +5 -4
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +3 -3
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +10 -6
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +8 -1
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +411 -192
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +133 -66
- package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
- package/lib/constants/config.js +1 -4
- package/lib/constants/permissions/utils.js +3 -3
- package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
- package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
- package/lib/hooks/useChatManager/useChatManager.js +12 -19
- package/lib/hooks/useContextMentions.js +96 -56
- package/lib/hooks/useEntitySearch.js +92 -278
- package/lib/hooks/useMentionAllowedTypes.js +9 -25
- package/lib/hooks/useMentionPopover.js +9 -33
- package/lib/hooks/useSkillsCatalog.js +66 -0
- package/lib/lang/br/index.js +42 -12
- package/lib/lang/en/index.js +42 -12
- package/lib/lang/es/index.js +43 -13
- package/lib/lang/fr/index.js +43 -13
- package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
- package/lib/services/maia/Orchestrator/orchestrator.js +16 -7
- package/lib/services/maia/Skills/createSkill.js +1 -1
- package/lib/services/maia/Skills/getSkills.js +70 -40
- package/lib/services/maia/Skills/updateSkill.js +1 -1
- package/lib/services/maia/index.js +2 -4
- package/lib/services/utils/fetchCOR.js +57 -106
- package/lib/services/utils/index.js +1 -2
- package/lib/store/index.js +1 -2
- package/lib/store/sessions/sessionStreamManager.js +7 -24
- package/lib/types/agentModal.js +1 -1
- package/lib/types/skill.js +1 -1
- package/lib/utils/contextMentionTriggers.js +2 -5
- package/lib/utils/normalizeAgentConnectors.js +44 -16
- package/lib/utils/renderContextMentions.js +39 -18
- package/lib/utils/skillContentSize.js +9 -0
- package/package.json +1 -1
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -26
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -24
- package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
- package/lib/services/maia/Usage/getUsage.js +0 -45
- package/lib/services/maia/Usage/index.js +0 -6
- package/lib/services/utils/MaiaApiError.js +0 -34
- package/lib/store/useUsageStore.js +0 -108
- package/lib/types/usage.js +0 -9
|
@@ -18,14 +18,13 @@ import { MAIAInput } from '../../atoms/MAIAInput';
|
|
|
18
18
|
import { useGlobalContext } from '../../../context/global-context';
|
|
19
19
|
import { useT } from '../../../hooks/useT';
|
|
20
20
|
import { EVENTS, useEvent } from '../../../hooks/useEvent';
|
|
21
|
-
import {
|
|
21
|
+
import { StyledChatFooter } from './styles';
|
|
22
22
|
import { TaskLinkIcon } from '../../atoms/icons/TaskLinkIcon';
|
|
23
23
|
import { CsvFileIcon, MDFileIcon, DocFileIcon, DocxFileIcon, PptFileIcon, PptxFileIcon, TextFileIcon, PdfFileIcon, ImageFileIcon, XlsxFileIcon, XlsFileIcon, Mp3FileIcon, WavFileIcon, FlacFileIcon, M4aFileIcon, Mp4FileIcon, OgaFileIcon, OggFileIcon, WebmFileIcon } from '../../atoms/icons';
|
|
24
24
|
import { preprocessImageForBackend } from '../../../utils/imagePreprocessor';
|
|
25
25
|
import { validateIsMaia } from '../../../services/utils/validateIsMaia';
|
|
26
26
|
import { isMaiakerAgent } from '../../../utils/agentDisplayName';
|
|
27
27
|
import { ChatDisclaimerMessage } from '../../atoms/ChatDisclaimerMessage';
|
|
28
|
-
import { UsageBlockedBanner } from '../UsageBlockedBanner';
|
|
29
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
29
|
export var IconByFileType = {
|
|
31
30
|
'text/plain': /*#__PURE__*/_jsx(TextFileIcon, {}),
|
|
@@ -54,10 +53,6 @@ export function ChatFooter(_ref) {
|
|
|
54
53
|
var onSendMessage = _ref.onSendMessage,
|
|
55
54
|
items = _ref.items,
|
|
56
55
|
disabled = _ref.disabled,
|
|
57
|
-
_ref$usageBlocked = _ref.usageBlocked,
|
|
58
|
-
usageBlocked = _ref$usageBlocked === void 0 ? false : _ref$usageBlocked,
|
|
59
|
-
_ref$usageBlockedMess = _ref.usageBlockedMessage,
|
|
60
|
-
usageBlockedMessage = _ref$usageBlockedMess === void 0 ? null : _ref$usageBlockedMess,
|
|
61
56
|
isStreaming = _ref.isStreaming,
|
|
62
57
|
isWriting = _ref.isWriting,
|
|
63
58
|
onStopGeneration = _ref.onStopGeneration,
|
|
@@ -302,48 +297,41 @@ export function ChatFooter(_ref) {
|
|
|
302
297
|
}) : undefined
|
|
303
298
|
};
|
|
304
299
|
}, [isMAIA, loadingMessages, chipItems, chipType]);
|
|
305
|
-
var isComposerDisabled = Boolean(disabled || usageBlocked);
|
|
306
|
-
var composerInput = /*#__PURE__*/_jsx(MAIAInput, {
|
|
307
|
-
popoverAnchorRef: inputPopoverAnchorRef,
|
|
308
|
-
onSendMessage: handleSendMessage,
|
|
309
|
-
className: MODAL_ELEMENTS,
|
|
310
|
-
disabled: isComposerDisabled,
|
|
311
|
-
usageBlocked: usageBlocked,
|
|
312
|
-
placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
|
|
313
|
-
onChange: onChange,
|
|
314
|
-
onFocus: onInputFocus,
|
|
315
|
-
onFileAttach: handleFileAttach,
|
|
316
|
-
onDeleteAttachment: handleDeleteAttachment,
|
|
317
|
-
attachments: attachments.filter(function (att) {
|
|
318
|
-
return !!att.file;
|
|
319
|
-
}).map(function (att) {
|
|
320
|
-
return {
|
|
321
|
-
file: att.file,
|
|
322
|
-
originalFile: att.originalFile,
|
|
323
|
-
id: att.id,
|
|
324
|
-
name: att.name,
|
|
325
|
-
size: typeof att.size === 'number' ? att.size : Number(att.size) || 0,
|
|
326
|
-
type: att.type,
|
|
327
|
-
icon: att.icon
|
|
328
|
-
};
|
|
329
|
-
}),
|
|
330
|
-
isStreaming: isStreaming,
|
|
331
|
-
isWriting: isWriting,
|
|
332
|
-
onStopGeneration: onStopGeneration,
|
|
333
|
-
chatId: chatId || undefined,
|
|
334
|
-
newChatKey: newChatKey,
|
|
335
|
-
tooltipZIndex: tooltipZIndex,
|
|
336
|
-
layoutMode: layoutMode,
|
|
337
|
-
contextChip: contextChip
|
|
338
|
-
});
|
|
339
300
|
return /*#__PURE__*/_jsxs(StyledChatFooter, {
|
|
340
|
-
children: [
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
301
|
+
children: [/*#__PURE__*/_jsx(MAIAInput, {
|
|
302
|
+
popoverAnchorRef: inputPopoverAnchorRef,
|
|
303
|
+
onSendMessage: handleSendMessage,
|
|
304
|
+
className: MODAL_ELEMENTS,
|
|
305
|
+
disabled: disabled,
|
|
306
|
+
placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
|
|
307
|
+
onChange: onChange,
|
|
308
|
+
onFocus: onInputFocus,
|
|
309
|
+
onFileAttach: handleFileAttach,
|
|
310
|
+
onDeleteAttachment: handleDeleteAttachment,
|
|
311
|
+
attachments: attachments.filter(function (att) {
|
|
312
|
+
return !!att.file;
|
|
313
|
+
}).map(function (att) {
|
|
314
|
+
return {
|
|
315
|
+
file: att.file,
|
|
316
|
+
originalFile: att.originalFile,
|
|
317
|
+
id: att.id,
|
|
318
|
+
name: att.name,
|
|
319
|
+
size: typeof att.size === 'number' ? att.size : Number(att.size) || 0,
|
|
320
|
+
type: att.type,
|
|
321
|
+
icon: att.icon
|
|
322
|
+
};
|
|
323
|
+
}),
|
|
324
|
+
isStreaming: isStreaming,
|
|
325
|
+
isWriting: isWriting,
|
|
326
|
+
onStopGeneration: onStopGeneration,
|
|
327
|
+
chatId: chatId || undefined,
|
|
328
|
+
newChatKey: newChatKey,
|
|
329
|
+
tooltipZIndex: tooltipZIndex,
|
|
330
|
+
layoutMode: layoutMode,
|
|
331
|
+
contextChip: contextChip
|
|
332
|
+
}), /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
|
|
345
333
|
message: disclaimerMessage
|
|
346
334
|
})]
|
|
347
335
|
});
|
|
348
336
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrIiwiU3R5bGVkQ2hhdEZvb3RlciIsIlRhc2tMaW5rSWNvbiIsIkNzdkZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiUHB0RmlsZUljb24iLCJQcHR4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiVXNhZ2VCbG9ja2VkQmFubmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkljb25CeUZpbGVUeXBlIiwiQ2hhdEZvb3RlciIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiaXRlbXMiLCJkaXNhYmxlZCIsIl9yZWYkdXNhZ2VCbG9ja2VkIiwidXNhZ2VCbG9ja2VkIiwiX3JlZiR1c2FnZUJsb2NrZWRNZXNzIiwidXNhZ2VCbG9ja2VkTWVzc2FnZSIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwibGF5b3V0TW9kZSIsIm9uSW5wdXRGb2N1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsImFnZW50IiwiY2hpcHNQcm9qZWN0IiwiY2xpZW50IiwidGFzayIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJfdXNlVCIsInQiLCJldmVudCIsImlucHV0UG9wb3ZlckFuY2hvclJlZiIsImlzT3JjaGVzdHJhdG9yIiwidHlwZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQiLCJoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UiLCJlIiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVNlc3Npb25DaGFuZ2UiLCJjdXJyZW50IiwiX3VzZU1lbW8iLCJjaGlwSXRlbXMiLCJuYW1lIiwiY2hpcFR5cGUiLCJwcm9qZWN0TmFtZSIsImVudGl0eSIsIm9uQ2hhbmdlIiwicG1BaVR5cGVkVGV4dCIsImFnZW50X3R5cGUiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIm1lc3NhZ2UiLCJuZXdBdHRhY2htZW50cyIsIm1lbnRpb25zIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImZyb21EZWVwTGluayIsIkJvb2xlYW4iLCJhaUNoYXRTZW5kIiwiX29iamVjdFNwcmVhZCIsImFnZW50X2lkIiwiaWQiLCJhZ2VudF9uYW1lIiwic291cmNlIiwiaGFuZGxlU2VsZWN0RmFxIiwidW5kZWZpbmVkIiwiaGFuZGxlRmlsZUF0dGFjaCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsImZpbGVFeHRlbnNpb24iLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwiaXNJbWFnZSIsImV4dGVuc2lvblRvSWNvbiIsImljb24iLCJleHRlbnNpb25Ub01pbWVUeXBlIiwibWltZVR5cGVCeUV4dGVuc2lvbiIsInByb2Nlc3NlZEZpbGUiLCJuZXdBdHRhY2htZW50IiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0Iiwic2VudCIsImNvbnNvbGUiLCJlcnJvciIsIm9yaWdpbmFsRmlsZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic2l6ZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImZpbHRlciIsImF0dGFjaG1lbnQiLCJpc01BSUEiLCJkaXNjbGFpbWVyTWVzc2FnZSIsImFnZW50TmFtZSIsImNvbnRleHRDaGlwIiwibGVhZGluZ0ljb24iLCJpc0NvbXBvc2VyRGlzYWJsZWQiLCJjb21wb3NlcklucHV0IiwicG9wb3ZlckFuY2hvclJlZiIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZvY3VzIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyBSZWFjdE5vZGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgTUFJQUlucHV0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUlucHV0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgU0NDb21wb3NlckJsb2NrZWRTdGFjaywgU3R5bGVkQ2hhdEZvb3RlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgVGFza0xpbmtJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGFza0xpbmtJY29uJ1xuaW1wb3J0IHtcbiAgQ3N2RmlsZUljb24sXG4gIE1ERmlsZUljb24sXG4gIERvY0ZpbGVJY29uLFxuICBEb2N4RmlsZUljb24sXG4gIFBwdEZpbGVJY29uLFxuICBQcHR4RmlsZUljb24sXG4gIFRleHRGaWxlSWNvbixcbiAgUGRmRmlsZUljb24sXG4gIEltYWdlRmlsZUljb24sXG4gIFhsc3hGaWxlSWNvbixcbiAgWGxzRmlsZUljb24sXG4gIE1wM0ZpbGVJY29uLFxuICBXYXZGaWxlSWNvbixcbiAgRmxhY0ZpbGVJY29uLFxuICBNNGFGaWxlSWNvbixcbiAgTXA0RmlsZUljb24sXG4gIE9nYUZpbGVJY29uLFxuICBPZ2dGaWxlSWNvbixcbiAgV2VibUZpbGVJY29uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVByZXByb2Nlc3NvcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuaW1wb3J0IHsgVXNhZ2VCbG9ja2VkQmFubmVyIH0gZnJvbSAnLi4vVXNhZ2VCbG9ja2VkQmFubmVyJ1xuaW1wb3J0IHR5cGUgeyBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2xheW91dCdcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudEZpbGUgPSB7XG4gIGZpbGU6IEZpbGVcbiAgb3JpZ2luYWxGaWxlPzogRmlsZVxuICB1cmxfdGh1bWJuYWlsPzogc3RyaW5nXG4gIHVybF9vcmlnaW5hbD86IHN0cmluZ1xuICB1cmxfZmlsZT86IHN0cmluZ1xuICByb2xlPzogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG4gIGV4dD86IHN0cmluZ1xuICBzdGF0dXM/OiAncGVuZGluZycgfCAncHJvY2Vzc2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8ICdzdGFydGVkJ1xufVxuXG50eXBlIENoYXRGb290ZXJQcm9wcyA9IHtcbiAgaXRlbXM/OiBzdHJpbmdbXVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgLyoqIFBvb2wgZGUgdXNvcyBhZ290YWRvOiBiYW5uZXIgQmxvcXVlbyArIGNvbXBvc2VyIGRlc2hhYmlsaXRhZG8uICovXG4gIHVzYWdlQmxvY2tlZD86IGJvb2xlYW5cbiAgLyoqIE1lbnNhamUgZGVsIDQwMiB1c2FnZV9xdW90YV9leGNlZWRlZCAoeWEgbG9jYWxpemFkbykuICovXG4gIHVzYWdlQmxvY2tlZE1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBsYXlvdXRNb2RlPzogTWFpYUNoYXRNb2RhbExheW91dE1vZGVcbiAgb25JbnB1dEZvY3VzPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nOiA8UHB0eEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vcGRmJzogPFBkZkZpbGVJY29uIC8+LFxuICAnaW1hZ2UvcG5nJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGVnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogPFhsc3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6IDxYbHNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wZWcnOiA8TXAzRmlsZUljb24gLz4sXG4gICdhdWRpby9mbGFjJzogPEZsYWNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL200YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dhdic6IDxXYXZGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dlYm0nOiA8V2VibUZpbGVJY29uIC8+LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3Rlcih7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGl0ZW1zLFxuICBkaXNhYmxlZCxcbiAgdXNhZ2VCbG9ja2VkID0gZmFsc2UsXG4gIHVzYWdlQmxvY2tlZE1lc3NhZ2UgPSBudWxsLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG4gIHRvb2x0aXBaSW5kZXgsXG4gIGxheW91dE1vZGUsXG4gIG9uSW5wdXRGb2N1cyxcbn06IENoYXRGb290ZXJQcm9wcykge1xuICBjb25zdCB7IHByb2plY3QsIGFnZW50LCBjaGlwc1Byb2plY3QsIGNsaWVudCwgdGFzaywgZGVlcExpbmtTZW5kUGVuZGluZ1JlZiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBpbnB1dFBvcG92ZXJBbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9yID0gYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIGNvbnN0IFthdHRhY2htZW50cywgc2V0QXR0YWNobWVudHNdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGVbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCByZXBvcnRlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPSBpc01haWFrZXJBZ2VudChhZ2VudClcblxuICAvLyB1c2VFZmZlY3QgdG8gbGlzdGVuIGxvYWRpbmdNZXNzYWdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSA9IChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGUuZGV0YWlsLmxvYWRpbmdNZXNzYWdlcylcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBDbGVhciBhdHRhY2htZW50cyB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgICAgc2V0QXR0YWNobWVudHMoW10pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtkZWVwTGlua1NlbmRQZW5kaW5nUmVmXSlcblxuICBjb25zdCB7IGNoaXBJdGVtcywgY2hpcFR5cGUgfSA9IHVzZU1lbW88eyBjaGlwSXRlbXM6IHN0cmluZ1tdOyBjaGlwVHlwZT86IENvbnRleHRFbnRpdHlUeXBlIH0+KCgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHJldHVybiB7IGNoaXBJdGVtczogaXRlbXMgfVxuXG4gICAgLy8gTW9uby1jb250ZXh0bzogc29sbyBsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgKHNpbiBhbmlkYXIgY2xpZW50ZS9wcm95ZWN0by90YXJlYSkuXG4gICAgaWYgKGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJykge1xuICAgICAgaWYgKHRhc2s/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Rhc2submFtZV0sIGNoaXBUeXBlOiAndGFzaycgfVxuICAgICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgICAgaWYgKGNsaWVudD8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gICAgfVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnICYmIGNsaWVudD8ubmFtZSkge1xuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgIH1cbiAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgIGlmIChwcm9qZWN0Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtwcm9qZWN0Lm5hbWVdLCBjaGlwVHlwZTogJ3Byb2plY3QnIH1cblxuICAgIHJldHVybiB7IGNoaXBJdGVtczogW10gfVxuICB9LCBbaXRlbXMsIHByb2plY3QsIGNoaXBzUHJvamVjdCwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGNsaWVudCwgdGFzaz8ubmFtZV0pXG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHJlcG9ydGVkRXZlbnQuY3VycmVudCkgcmV0dXJuXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICB9KVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgZnJvbURlZXBMaW5rID0gQm9vbGVhbihkZWVwTGlua1NlbmRQZW5kaW5nUmVmPy5jdXJyZW50KVxuICAgIGlmIChkZWVwTGlua1NlbmRQZW5kaW5nUmVmKSB7XG4gICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH1cbiAgICBldmVudChFVkVOVFMuYWlDaGF0U2VuZCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgICAgLi4uKGZyb21EZWVwTGluayA/IHsgc291cmNlOiAnZGVlcF9saW5rJyB9IDoge30pLFxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCBuZXdBdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQsIHNjSWQpXG4gICAgc2V0QXR0YWNobWVudHMoW10pXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RGYXEgPSAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB7XG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIGZhcUlkLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGaWxlQXR0YWNoID0gYXN5bmMgKGZpbGU6IEZpbGUpID0+IHtcbiAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG4gICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzSW1hZ2VCeU1pbWUgPSBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAvLyBTaSBlbCBNSU1FIG5vIGRpc3Rpbmd1ZSBiaWVuIGxhIGV4dGVuc2nDs24gKGF1ZGlvL29nZywgYXVkaW8vbXA0LCBQb3dlclBvaW50KSwgdXNhciBlbCBpY29ubyBwb3IgZXh0ZW5zacOzblxuICAgIGNvbnN0IGV4dGVuc2lvblRvSWNvbjogUmVjb3JkPHN0cmluZywgUmVhY3ROb2RlPiA9IHtcbiAgICAgICcub2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAgICAgJy5vZ2EnOiA8T2dhRmlsZUljb24gLz4sXG4gICAgICAnLm1wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgICAgICcubTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAgICAgJy5wcHQnOiA8UHB0RmlsZUljb24gLz4sXG4gICAgICAnLnBwdHgnOiA8UHB0eEZpbGVJY29uIC8+LFxuICAgIH1cblxuICAgIGxldCBpY29uID0gSWNvbkJ5RmlsZVR5cGVbZmlsZS50eXBlXVxuXG4gICAgLy8gU2kgZWwgdGlwbyBlcyBhdWRpby9vZ2csIGF1ZGlvL21wNCBvIFBvd2VyUG9pbnQgZ2Vuw6lyaWNvLCB1c2FyIGxhIGV4dGVuc2nDs24gcGFyYSBlbCBpY29ub1xuICAgIGlmIChcbiAgICAgIChmaWxlLnR5cGUgPT09ICdhdWRpby9vZ2cnIHx8IGZpbGUudHlwZSA9PT0gJ2F1ZGlvL21wNCcgfHwgZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnKSAmJlxuICAgICAgZmlsZUV4dGVuc2lvblxuICAgICkge1xuICAgICAgaWNvbiA9IGV4dGVuc2lvblRvSWNvbltmaWxlRXh0ZW5zaW9uXSB8fCBpY29uXG4gICAgfVxuXG4gICAgaWYgKCFpY29uKSB7XG4gICAgICBjb25zdCBleHRlbnNpb25Ub01pbWVUeXBlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAnLnR4dCc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgJy5tZCc6ICd0ZXh0L3gtbWFya2Rvd24nLFxuICAgICAgICAnLmNzdic6ICd0ZXh0L2NzdicsXG4gICAgICAgICcuZG9jJzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgICAgICcuZG9jeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAgICcucHB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbiAgICAgICAgJy5wcHR4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAgICAgICAnLnBkZic6ICdhcHBsaWNhdGlvbi9wZGYnLFxuICAgICAgICAnLnhsc3gnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgICAgICAnLnhscyc6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgICAnLmZsYWMnOiAnYXVkaW8vZmxhYycsXG4gICAgICAgICcubTRhJzogJ2F1ZGlvL200YScsXG4gICAgICAgICcubXAzJzogJ2F1ZGlvL21wZWcnLFxuICAgICAgICAnLm1wNCc6ICdhdWRpby9tcDQnLFxuICAgICAgICAnLm9nYSc6ICdhdWRpby9vZ2EnLFxuICAgICAgICAnLm9nZyc6ICdhdWRpby9vZ2cnLFxuICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAnLndlYm0nOiAnYXVkaW8vd2VibScsXG4gICAgICB9XG4gICAgICBjb25zdCBtaW1lVHlwZUJ5RXh0ZW5zaW9uID0gZXh0ZW5zaW9uVG9NaW1lVHlwZVtmaWxlRXh0ZW5zaW9uXVxuICAgICAgaWYgKG1pbWVUeXBlQnlFeHRlbnNpb24pIHtcbiAgICAgICAgaWNvbiA9IEljb25CeUZpbGVUeXBlW21pbWVUeXBlQnlFeHRlbnNpb25dXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpY29uID0gPEF0dGFjaCBjb2xvcj1cInJnYmEoMTM1LCA2NCwgMTkxLCAxKVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHByb2Nlc3NlZEZpbGUgPSBmaWxlXG5cbiAgICAvLyBTaSBlcyB1bmEgaW1hZ2VuLCBwcmUtcHJvY2VzYXJsYSBwYXJhIGVsIGJhY2tlbmQgKGVsIGNoaXAgZGVsIGlucHV0IHVzYSBlbCDDrWNvbm8gZGUgdGlwbykuXG4gICAgaWYgKGlzSW1hZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByb2Nlc3NlZEZpbGUgPSBhd2FpdCBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kKGZpbGUpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcmUtcHJvY2VzYW5kbyBpbWFnZW46JywgZXJyb3IpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3QXR0YWNobWVudDogQXR0YWNobWVudEZpbGUgPSB7XG4gICAgICBmaWxlOiBwcm9jZXNzZWRGaWxlLFxuICAgICAgb3JpZ2luYWxGaWxlOiBpc0ltYWdlID8gZmlsZSA6IHVuZGVmaW5lZCxcbiAgICAgIGlkOiBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IHByb2Nlc3NlZEZpbGUuc2l6ZSxcbiAgICAgIHR5cGU6IHByb2Nlc3NlZEZpbGUudHlwZSxcbiAgICAgIGljb24sXG4gICAgfVxuXG4gICAgc2V0QXR0YWNobWVudHMocHJldiA9PiBbLi4ucHJldiwgbmV3QXR0YWNobWVudF0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbmV3QXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5maWx0ZXIoYXR0YWNobWVudCA9PiBhdHRhY2htZW50LmlkICE9PSBmaWxlSWQpXG4gICAgc2V0QXR0YWNobWVudHMobmV3QXR0YWNobWVudHMpXG4gIH1cblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgZGlzY2xhaW1lck1lc3NhZ2UgPSBpc01BSUFcbiAgICA/IHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXInLCB7IGFnZW50TmFtZTogdCgnZ2xvYmFscy5icmFuZE5hbWUnKSB9KVxuICAgIDogdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lckFnZW50JylcblxuICBjb25zdCBjb250ZXh0Q2hpcCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghaXNNQUlBIHx8IGxvYWRpbmdNZXNzYWdlcyB8fCAhY2hpcEl0ZW1zLmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogY2hpcEl0ZW1zLFxuICAgICAgdHlwZTogY2hpcFR5cGUsXG4gICAgICBsZWFkaW5nSWNvbjogY2hpcFR5cGUgPT09ICd0YXNrJyA/IDxUYXNrTGlua0ljb24gd2lkdGg9ezE1fSBoZWlnaHQ9ezE1fSBjb2xvcj1cIiM4MDgwODBcIiAvPiA6IHVuZGVmaW5lZCxcbiAgICB9XG4gIH0sIFtpc01BSUEsIGxvYWRpbmdNZXNzYWdlcywgY2hpcEl0ZW1zLCBjaGlwVHlwZV0pXG5cbiAgY29uc3QgaXNDb21wb3NlckRpc2FibGVkID0gQm9vbGVhbihkaXNhYmxlZCB8fCB1c2FnZUJsb2NrZWQpXG5cbiAgY29uc3QgY29tcG9zZXJJbnB1dCA9IChcbiAgICA8TUFJQUlucHV0XG4gICAgICBwb3BvdmVyQW5jaG9yUmVmPXtpbnB1dFBvcG92ZXJBbmNob3JSZWZ9XG4gICAgICBvblNlbmRNZXNzYWdlPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9XG4gICAgICBkaXNhYmxlZD17aXNDb21wb3NlckRpc2FibGVkfVxuICAgICAgdXNhZ2VCbG9ja2VkPXt1c2FnZUJsb2NrZWR9XG4gICAgICBwbGFjZWhvbGRlcj17XG4gICAgICAgIGFnZW50Py5pbnB1dF9wbGFjZWhvbGRlciB8fFxuICAgICAgICAoaXNPcmNoZXN0cmF0b3IgPyB0KCdjaGF0LmZvb3Rlci5vcmNoZXN0cmF0b3JQbGFjZWhvbGRlcicpIDogdCgnY2hhdC5mb290ZXIucGxhY2Vob2xkZXInKSlcbiAgICAgIH1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uSW5wdXRGb2N1c31cbiAgICAgIG9uRmlsZUF0dGFjaD17aGFuZGxlRmlsZUF0dGFjaH1cbiAgICAgIG9uRGVsZXRlQXR0YWNobWVudD17aGFuZGxlRGVsZXRlQXR0YWNobWVudH1cbiAgICAgIGF0dGFjaG1lbnRzPXthdHRhY2htZW50c1xuICAgICAgICAuZmlsdGVyKGF0dCA9PiAhIWF0dC5maWxlKVxuICAgICAgICAubWFwKGF0dCA9PiAoe1xuICAgICAgICAgIGZpbGU6IGF0dC5maWxlISxcbiAgICAgICAgICBvcmlnaW5hbEZpbGU6IGF0dC5vcmlnaW5hbEZpbGUsXG4gICAgICAgICAgaWQ6IGF0dC5pZCxcbiAgICAgICAgICBuYW1lOiBhdHQubmFtZSxcbiAgICAgICAgICBzaXplOiB0eXBlb2YgYXR0LnNpemUgPT09ICdudW1iZXInID8gYXR0LnNpemUgOiBOdW1iZXIoYXR0LnNpemUpIHx8IDAsXG4gICAgICAgICAgdHlwZTogYXR0LnR5cGUsXG4gICAgICAgICAgaWNvbjogYXR0Lmljb24sXG4gICAgICAgIH0pKX1cbiAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgb25TdG9wR2VuZXJhdGlvbj17b25TdG9wR2VuZXJhdGlvbn1cbiAgICAgIGNoYXRJZD17Y2hhdElkIHx8IHVuZGVmaW5lZH1cbiAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICB0b29sdGlwWkluZGV4PXt0b29sdGlwWkluZGV4fVxuICAgICAgbGF5b3V0TW9kZT17bGF5b3V0TW9kZX1cbiAgICAgIGNvbnRleHRDaGlwPXtjb250ZXh0Q2hpcH1cbiAgICAvPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ2hhdEZvb3Rlcj5cbiAgICAgIHt1c2FnZUJsb2NrZWQgPyAoXG4gICAgICAgIDxTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrPlxuICAgICAgICAgIDxVc2FnZUJsb2NrZWRCYW5uZXIgbWVzc2FnZT17dXNhZ2VCbG9ja2VkTWVzc2FnZX0gLz5cbiAgICAgICAgICB7Y29tcG9zZXJJbnB1dH1cbiAgICAgICAgPC9TQ0NvbXBvc2VyQmxvY2tlZFN0YWNrPlxuICAgICAgKSA6IChcbiAgICAgICAgY29tcG9zZXJJbnB1dFxuICAgICAgKX1cbiAgICAgIDxDaGF0RGlzY2xhaW1lck1lc3NhZ2UgbWVzc2FnZT17ZGlzY2xhaW1lck1lc3NhZ2V9IC8+XG4gICAgPC9TdHlsZWRDaGF0Rm9vdGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQW9CQSxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUN2RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7O0FBRWpFO0FBQ0EsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUNqRCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFFMUQsU0FBU0Msc0JBQXNCLEVBQUVDLGdCQUFnQixRQUFRLFVBQVU7QUFDbkUsU0FBU0MsWUFBWSxRQUFRLGdDQUFnQztBQUM3RCxTQUNFQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxZQUFZ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
|
|
337
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiVGFza0xpbmtJY29uIiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJQcHRGaWxlSWNvbiIsIlBwdHhGaWxlSWNvbiIsIlRleHRGaWxlSWNvbiIsIlBkZkZpbGVJY29uIiwiSW1hZ2VGaWxlSWNvbiIsIlhsc3hGaWxlSWNvbiIsIlhsc0ZpbGVJY29uIiwiTXAzRmlsZUljb24iLCJXYXZGaWxlSWNvbiIsIkZsYWNGaWxlSWNvbiIsIk00YUZpbGVJY29uIiwiTXA0RmlsZUljb24iLCJPZ2FGaWxlSWNvbiIsIk9nZ0ZpbGVJY29uIiwiV2VibUZpbGVJY29uIiwicHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZCIsInZhbGlkYXRlSXNNYWlhIiwiaXNNYWlha2VyQWdlbnQiLCJDaGF0RGlzY2xhaW1lck1lc3NhZ2UiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiSWNvbkJ5RmlsZVR5cGUiLCJDaGF0Rm9vdGVyIiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJpdGVtcyIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsInRvb2x0aXBaSW5kZXgiLCJsYXlvdXRNb2RlIiwib25JbnB1dEZvY3VzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJwcm9qZWN0IiwiYWdlbnQiLCJjaGlwc1Byb2plY3QiLCJjbGllbnQiLCJ0YXNrIiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsIl91c2VUIiwidCIsImV2ZW50IiwiaW5wdXRQb3BvdmVyQW5jaG9yUmVmIiwiaXNPcmNoZXN0cmF0b3IiLCJ0eXBlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYXR0YWNobWVudHMiLCJzZXRBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwicmVwb3J0ZWRFdmVudCIsImlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCIsImhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSIsImUiLCJkZXRhaWwiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImN1cnJlbnQiLCJfdXNlTWVtbyIsImNoaXBJdGVtcyIsIm5hbWUiLCJjaGlwVHlwZSIsInByb2plY3ROYW1lIiwiZW50aXR5Iiwib25DaGFuZ2UiLCJwbUFpVHlwZWRUZXh0IiwiYWdlbnRfdHlwZSIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVzc2FnZSIsIm5ld0F0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiZnVhSWQiLCJzY0lkIiwiZnJvbURlZXBMaW5rIiwiQm9vbGVhbiIsImFpQ2hhdFNlbmQiLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfaWQiLCJpZCIsImFnZW50X25hbWUiLCJzb3VyY2UiLCJoYW5kbGVTZWxlY3RGYXEiLCJ1bmRlZmluZWQiLCJoYW5kbGVGaWxlQXR0YWNoIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJpc0ltYWdlIiwiZXh0ZW5zaW9uVG9JY29uIiwiaWNvbiIsImV4dGVuc2lvblRvTWltZVR5cGUiLCJtaW1lVHlwZUJ5RXh0ZW5zaW9uIiwicHJvY2Vzc2VkRmlsZSIsIm5ld0F0dGFjaG1lbnQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3BsaXQiLCJsZW5ndGgiLCJjb25jYXQiLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwic3RhcnRzV2l0aCIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJzZW50IiwiY29uc29sZSIsImVycm9yIiwib3JpZ2luYWxGaWxlIiwiRGF0ZSIsIm5vdyIsIk1hdGgiLCJyYW5kb20iLCJzaXplIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVEZWxldGVBdHRhY2htZW50IiwiZmlsZUlkIiwiZmlsdGVyIiwiYXR0YWNobWVudCIsImlzTUFJQSIsImRpc2NsYWltZXJNZXNzYWdlIiwiYWdlbnROYW1lIiwiY29udGV4dENoaXAiLCJsZWFkaW5nSWNvbiIsImNoaWxkcmVuIiwicG9wb3ZlckFuY2hvclJlZiIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZvY3VzIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IE1BSUFJbnB1dCB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFJbnB1dCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IFN0eWxlZENoYXRGb290ZXIgfSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IFRhc2tMaW5rSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1Rhc2tMaW5rSWNvbidcbmltcG9ydCB7XG4gIENzdkZpbGVJY29uLFxuICBNREZpbGVJY29uLFxuICBEb2NGaWxlSWNvbixcbiAgRG9jeEZpbGVJY29uLFxuICBQcHRGaWxlSWNvbixcbiAgUHB0eEZpbGVJY29uLFxuICBUZXh0RmlsZUljb24sXG4gIFBkZkZpbGVJY29uLFxuICBJbWFnZUZpbGVJY29uLFxuICBYbHN4RmlsZUljb24sXG4gIFhsc0ZpbGVJY29uLFxuICBNcDNGaWxlSWNvbixcbiAgV2F2RmlsZUljb24sXG4gIEZsYWNGaWxlSWNvbixcbiAgTTRhRmlsZUljb24sXG4gIE1wNEZpbGVJY29uLFxuICBPZ2FGaWxlSWNvbixcbiAgT2dnRmlsZUljb24sXG4gIFdlYm1GaWxlSWNvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VQcmVwcm9jZXNzb3InXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgaXNNYWlha2VyQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4uLy4uL2F0b21zL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmltcG9ydCB0eXBlIHsgTWFpYUNoYXRNb2RhbExheW91dE1vZGUgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9sYXlvdXQnXG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgdXJsX3RodW1ibmFpbD86IHN0cmluZ1xuICB1cmxfb3JpZ2luYWw/OiBzdHJpbmdcbiAgdXJsX2ZpbGU/OiBzdHJpbmdcbiAgcm9sZT86ICd1c2VyJyB8ICdhc3Npc3RhbnQnXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxuICBleHQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ3Byb2Nlc3NpbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCcgfCAnc3RhcnRlZCdcbn1cblxudHlwZSBDaGF0Rm9vdGVyUHJvcHMgPSB7XG4gIGl0ZW1zPzogc3RyaW5nW11cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBsYXlvdXRNb2RlPzogTWFpYUNoYXRNb2RhbExheW91dE1vZGVcbiAgb25JbnB1dEZvY3VzPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nOiA8UHB0eEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vcGRmJzogPFBkZkZpbGVJY29uIC8+LFxuICAnaW1hZ2UvcG5nJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGVnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogPFhsc3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6IDxYbHNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wZWcnOiA8TXAzRmlsZUljb24gLz4sXG4gICdhdWRpby9mbGFjJzogPEZsYWNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL200YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dhdic6IDxXYXZGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dlYm0nOiA8V2VibUZpbGVJY29uIC8+LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3Rlcih7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGl0ZW1zLFxuICBkaXNhYmxlZCxcbiAgaXNTdHJlYW1pbmcsXG4gIGlzV3JpdGluZyxcbiAgb25TdG9wR2VuZXJhdGlvbixcbiAgY2hhdElkLFxuICBuZXdDaGF0S2V5LFxuICB0b29sdGlwWkluZGV4LFxuICBsYXlvdXRNb2RlLFxuICBvbklucHV0Rm9jdXMsXG59OiBDaGF0Rm9vdGVyUHJvcHMpIHtcbiAgY29uc3QgeyBwcm9qZWN0LCBhZ2VudCwgY2hpcHNQcm9qZWN0LCBjbGllbnQsIHRhc2ssIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgaW5wdXRQb3BvdmVyQW5jaG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBpc09yY2hlc3RyYXRvciA9IGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICBjb25zdCBbYXR0YWNobWVudHMsIHNldEF0dGFjaG1lbnRzXSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlW10+KFtdKVxuICBjb25zdCBbbG9hZGluZ01lc3NhZ2VzLCBzZXRMb2FkaW5nTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgcmVwb3J0ZWRFdmVudCA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID0gaXNNYWlha2VyQWdlbnQoYWdlbnQpXG5cbiAgLy8gdXNlRWZmZWN0IHRvIGxpc3RlbiBsb2FkaW5nTWVzc2FnZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgPSAoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhlLmRldGFpbC5sb2FkaW5nTWVzc2FnZXMpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgYXMgRXZlbnRMaXN0ZW5lcilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gQ2xlYXIgYXR0YWNobWVudHMgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgaWYgKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYpIHtcbiAgICAgICAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIH1cbiAgICAgIHNldEF0dGFjaG1lbnRzKFtdKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gICAgfVxuICB9LCBbZGVlcExpbmtTZW5kUGVuZGluZ1JlZl0pXG5cbiAgY29uc3QgeyBjaGlwSXRlbXMsIGNoaXBUeXBlIH0gPSB1c2VNZW1vPHsgY2hpcEl0ZW1zOiBzdHJpbmdbXTsgY2hpcFR5cGU/OiBDb250ZXh0RW50aXR5VHlwZSB9PigoKSA9PiB7XG4gICAgaWYgKGl0ZW1zKSByZXR1cm4geyBjaGlwSXRlbXM6IGl0ZW1zIH1cblxuICAgIC8vIE1vbm8tY29udGV4dG86IHNvbG8gbGEgZW50aWRhZCBtw6FzIGVzcGVjw61maWNhIChzaW4gYW5pZGFyIGNsaWVudGUvcHJveWVjdG8vdGFyZWEpLlxuICAgIGlmIChhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpIHtcbiAgICAgIGlmICh0YXNrPy5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFt0YXNrLm5hbWVdLCBjaGlwVHlwZTogJ3Rhc2snIH1cbiAgICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3ROYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtjaGlwc1Byb2plY3QucHJvamVjdE5hbWVdLCBjaGlwVHlwZTogJ3Byb2plY3QnIH1cbiAgICAgIGlmIChjbGllbnQ/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NsaWVudC5uYW1lXSwgY2hpcFR5cGU6ICdjbGllbnQnIH1cbiAgICAgIHJldHVybiB7IGNoaXBJdGVtczogW10gfVxuICAgIH1cblxuICAgIGlmIChhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JyAmJiBjbGllbnQ/Lm5hbWUpIHtcbiAgICAgIHJldHVybiB7IGNoaXBJdGVtczogW2NsaWVudC5uYW1lXSwgY2hpcFR5cGU6ICdjbGllbnQnIH1cbiAgICB9XG4gICAgaWYgKHRhc2s/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Rhc2submFtZV0sIGNoaXBUeXBlOiAndGFzaycgfVxuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3ROYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtjaGlwc1Byb2plY3QucHJvamVjdE5hbWVdLCBjaGlwVHlwZTogJ3Byb2plY3QnIH1cbiAgICBpZiAocHJvamVjdD8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbcHJvamVjdC5uYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG5cbiAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtdIH1cbiAgfSwgW2l0ZW1zLCBwcm9qZWN0LCBjaGlwc1Byb2plY3QsIGFnZW50Py5lbnRpdHksIGFnZW50Py50eXBlLCBjbGllbnQsIHRhc2s/Lm5hbWVdKVxuXG4gIGNvbnN0IG9uQ2hhbmdlID0gKCkgPT4ge1xuICAgIGlmIChyZXBvcnRlZEV2ZW50LmN1cnJlbnQpIHJldHVyblxuICAgIGV2ZW50KEVWRU5UUy5wbUFpVHlwZWRUZXh0LCB7XG4gICAgICBhZ2VudF90eXBlOiBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPyAnbWFya2V0cGxhY2UnIDogYWdlbnQ/LnR5cGUsXG4gICAgfSlcbiAgICByZXBvcnRlZEV2ZW50LmN1cnJlbnQgPSB0cnVlXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgbmV3QXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4ge1xuICAgIGNvbnN0IGZyb21EZWVwTGluayA9IEJvb2xlYW4oZGVlcExpbmtTZW5kUGVuZGluZ1JlZj8uY3VycmVudClcbiAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG4gICAgZXZlbnQoRVZFTlRTLmFpQ2hhdFNlbmQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICAgIGFnZW50X2lkOiBhZ2VudD8uaWQsXG4gICAgICBhZ2VudF9uYW1lOiBhZ2VudD8ubmFtZSxcbiAgICAgIC4uLihmcm9tRGVlcExpbmsgPyB7IHNvdXJjZTogJ2RlZXBfbGluaycgfSA6IHt9KSxcbiAgICB9KVxuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgbmV3QXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkLCBzY0lkKVxuICAgIHNldEF0dGFjaG1lbnRzKFtdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0RmFxID0gKG1lc3NhZ2U6IHN0cmluZywgZmFxSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgdW5kZWZpbmVkLCBmYXFJZCwgdW5kZWZpbmVkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZUF0dGFjaCA9IGFzeW5jIChmaWxlOiBGaWxlKSA9PiB7XG4gICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgLy8gU2kgZWwgTUlNRSBubyBkaXN0aW5ndWUgYmllbiBsYSBleHRlbnNpw7NuIChhdWRpby9vZ2csIGF1ZGlvL21wNCwgUG93ZXJQb2ludCksIHVzYXIgZWwgaWNvbm8gcG9yIGV4dGVuc2nDs25cbiAgICBjb25zdCBleHRlbnNpb25Ub0ljb246IFJlY29yZDxzdHJpbmcsIFJlYWN0Tm9kZT4gPSB7XG4gICAgICAnLm9nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgICAgICcub2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAgICAgJy5tcDQnOiA8TXA0RmlsZUljb24gLz4sXG4gICAgICAnLm00YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgICAgICcucHB0JzogPFBwdEZpbGVJY29uIC8+LFxuICAgICAgJy5wcHR4JzogPFBwdHhGaWxlSWNvbiAvPixcbiAgICB9XG5cbiAgICBsZXQgaWNvbiA9IEljb25CeUZpbGVUeXBlW2ZpbGUudHlwZV1cblxuICAgIC8vIFNpIGVsIHRpcG8gZXMgYXVkaW8vb2dnLCBhdWRpby9tcDQgbyBQb3dlclBvaW50IGdlbsOpcmljbywgdXNhciBsYSBleHRlbnNpw7NuIHBhcmEgZWwgaWNvbm9cbiAgICBpZiAoXG4gICAgICAoZmlsZS50eXBlID09PSAnYXVkaW8vb2dnJyB8fCBmaWxlLnR5cGUgPT09ICdhdWRpby9tcDQnIHx8IGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JykgJiZcbiAgICAgIGZpbGVFeHRlbnNpb25cbiAgICApIHtcbiAgICAgIGljb24gPSBleHRlbnNpb25Ub0ljb25bZmlsZUV4dGVuc2lvbl0gfHwgaWNvblxuICAgIH1cblxuICAgIGlmICghaWNvbikge1xuICAgICAgY29uc3QgZXh0ZW5zaW9uVG9NaW1lVHlwZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgJy50eHQnOiAndGV4dC9wbGFpbicsXG4gICAgICAgICcubWQnOiAndGV4dC94LW1hcmtkb3duJyxcbiAgICAgICAgJy5jc3YnOiAndGV4dC9jc3YnLFxuICAgICAgICAnLmRvYyc6ICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAgICAgICAnLmRvY3gnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAgICAgICAnLnBwdCc6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgICAgICcucHB0eCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyxcbiAgICAgICAgJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAgICAgJy54bHN4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICAgJy54bHMnOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICAgJy5mbGFjJzogJ2F1ZGlvL2ZsYWMnLFxuICAgICAgICAnLm00YSc6ICdhdWRpby9tNGEnLFxuICAgICAgICAnLm1wMyc6ICdhdWRpby9tcGVnJyxcbiAgICAgICAgJy5tcDQnOiAnYXVkaW8vbXA0JyxcbiAgICAgICAgJy5vZ2EnOiAnYXVkaW8vb2dhJyxcbiAgICAgICAgJy5vZ2cnOiAnYXVkaW8vb2dnJyxcbiAgICAgICAgJy53YXYnOiAnYXVkaW8vd2F2JyxcbiAgICAgICAgJy53ZWJtJzogJ2F1ZGlvL3dlYm0nLFxuICAgICAgfVxuICAgICAgY29uc3QgbWltZVR5cGVCeUV4dGVuc2lvbiA9IGV4dGVuc2lvblRvTWltZVR5cGVbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGlmIChtaW1lVHlwZUJ5RXh0ZW5zaW9uKSB7XG4gICAgICAgIGljb24gPSBJY29uQnlGaWxlVHlwZVttaW1lVHlwZUJ5RXh0ZW5zaW9uXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWNvbiA9IDxBdHRhY2ggY29sb3I9XCJyZ2JhKDEzNSwgNjQsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBwcm9jZXNzZWRGaWxlID0gZmlsZVxuXG4gICAgLy8gU2kgZXMgdW5hIGltYWdlbiwgcHJlLXByb2Nlc2FybGEgcGFyYSBlbCBiYWNrZW5kIChlbCBjaGlwIGRlbCBpbnB1dCB1c2EgZWwgw61jb25vIGRlIHRpcG8pLlxuICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBwcm9jZXNzZWRGaWxlID0gYXdhaXQgcHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZChmaWxlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJlLXByb2Nlc2FuZG8gaW1hZ2VuOicsIGVycm9yKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnQ6IEF0dGFjaG1lbnRGaWxlID0ge1xuICAgICAgZmlsZTogcHJvY2Vzc2VkRmlsZSxcbiAgICAgIG9yaWdpbmFsRmlsZTogaXNJbWFnZSA/IGZpbGUgOiB1bmRlZmluZWQsXG4gICAgICBpZDogYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsXG4gICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICBzaXplOiBwcm9jZXNzZWRGaWxlLnNpemUsXG4gICAgICB0eXBlOiBwcm9jZXNzZWRGaWxlLnR5cGUsXG4gICAgICBpY29uLFxuICAgIH1cblxuICAgIHNldEF0dGFjaG1lbnRzKHByZXYgPT4gWy4uLnByZXYsIG5ld0F0dGFjaG1lbnRdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQXR0YWNobWVudCA9IChmaWxlSWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4gYXR0YWNobWVudC5pZCAhPT0gZmlsZUlkKVxuICAgIHNldEF0dGFjaG1lbnRzKG5ld0F0dGFjaG1lbnRzKVxuICB9XG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGRpc2NsYWltZXJNZXNzYWdlID0gaXNNQUlBXG4gICAgPyB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyJywgeyBhZ2VudE5hbWU6IHQoJ2dsb2JhbHMuYnJhbmROYW1lJykgfSlcbiAgICA6IHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXJBZ2VudCcpXG5cbiAgY29uc3QgY29udGV4dENoaXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgIWNoaXBJdGVtcy5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IGNoaXBJdGVtcyxcbiAgICAgIHR5cGU6IGNoaXBUeXBlLFxuICAgICAgbGVhZGluZ0ljb246IGNoaXBUeXBlID09PSAndGFzaycgPyA8VGFza0xpbmtJY29uIHdpZHRoPXsxNX0gaGVpZ2h0PXsxNX0gY29sb3I9XCIjODA4MDgwXCIgLz4gOiB1bmRlZmluZWQsXG4gICAgfVxuICB9LCBbaXNNQUlBLCBsb2FkaW5nTWVzc2FnZXMsIGNoaXBJdGVtcywgY2hpcFR5cGVdKVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENoYXRGb290ZXI+XG4gICAgICA8TUFJQUlucHV0XG4gICAgICAgIHBvcG92ZXJBbmNob3JSZWY9e2lucHV0UG9wb3ZlckFuY2hvclJlZn1cbiAgICAgICAgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgIGFnZW50Py5pbnB1dF9wbGFjZWhvbGRlciB8fFxuICAgICAgICAgIChpc09yY2hlc3RyYXRvciA/IHQoJ2NoYXQuZm9vdGVyLm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyJykgOiB0KCdjaGF0LmZvb3Rlci5wbGFjZWhvbGRlcicpKVxuICAgICAgICB9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17b25JbnB1dEZvY3VzfVxuICAgICAgICBvbkZpbGVBdHRhY2g9e2hhbmRsZUZpbGVBdHRhY2h9XG4gICAgICAgIG9uRGVsZXRlQXR0YWNobWVudD17aGFuZGxlRGVsZXRlQXR0YWNobWVudH1cbiAgICAgICAgYXR0YWNobWVudHM9e2F0dGFjaG1lbnRzXG4gICAgICAgICAgLmZpbHRlcihhdHQgPT4gISFhdHQuZmlsZSlcbiAgICAgICAgICAubWFwKGF0dCA9PiAoe1xuICAgICAgICAgICAgZmlsZTogYXR0LmZpbGUhLFxuICAgICAgICAgICAgb3JpZ2luYWxGaWxlOiBhdHQub3JpZ2luYWxGaWxlLFxuICAgICAgICAgICAgaWQ6IGF0dC5pZCxcbiAgICAgICAgICAgIG5hbWU6IGF0dC5uYW1lLFxuICAgICAgICAgICAgc2l6ZTogdHlwZW9mIGF0dC5zaXplID09PSAnbnVtYmVyJyA/IGF0dC5zaXplIDogTnVtYmVyKGF0dC5zaXplKSB8fCAwLFxuICAgICAgICAgICAgdHlwZTogYXR0LnR5cGUsXG4gICAgICAgICAgICBpY29uOiBhdHQuaWNvbixcbiAgICAgICAgICB9KSl9XG4gICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICAgIG9uU3RvcEdlbmVyYXRpb249e29uU3RvcEdlbmVyYXRpb259XG4gICAgICAgIGNoYXRJZD17Y2hhdElkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgbGF5b3V0TW9kZT17bGF5b3V0TW9kZX1cbiAgICAgICAgY29udGV4dENoaXA9e2NvbnRleHRDaGlwfVxuICAgICAgLz5cbiAgICAgIDxDaGF0RGlzY2xhaW1lck1lc3NhZ2UgbWVzc2FnZT17ZGlzY2xhaW1lck1lc3NhZ2V9IC8+XG4gICAgPC9TdHlsZWRDaGF0Rm9vdGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQW9CQSxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUN2RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7O0FBRWpFO0FBQ0EsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUNqRCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFFMUQsU0FBU0MsZ0JBQWdCLFFBQVEsVUFBVTtBQUMzQyxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQ0VDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksUUFDUCxtQkFBbUI7QUFDMUIsU0FBU0MseUJBQXlCLFFBQVEsa0NBQWtDO0FBQzVFLFNBQVNDLGNBQWMsUUFBUSx3Q0FBd0M7QUFDdkUsU0FBU0MsY0FBYyxRQUFRLGlDQUFpQztBQUVoRSxTQUFTQyxxQkFBcUIsUUFBUSxtQ0FBbUM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBeUN6RSxPQUFPLElBQU1DLGNBQWMsR0FBRztFQUM1QixZQUFZLGVBQUVILElBQUEsQ0FBQ2xCLFlBQVksSUFBRSxDQUFDO0VBQzlCLGlCQUFpQixlQUFFa0IsSUFBQSxDQUFDdkIsVUFBVSxJQUFFLENBQUM7RUFDakMsVUFBVSxlQUFFdUIsSUFBQSxDQUFDeEIsV0FBVyxJQUFFLENBQUM7RUFDM0Isb0JBQW9CLGVBQUV3QixJQUFBLENBQUN0QixXQUFXLElBQUUsQ0FBQztFQUNyQyx5RUFBeUUsZUFBRXNCLElBQUEsQ0FBQ3JCLFlBQVksSUFBRSxDQUFDO0VBQzNGLCtCQUErQixlQUFFcUIsSUFBQSxDQUFDcEIsV0FBVyxJQUFFLENBQUM7RUFDaEQsMkVBQTJFLGVBQUVvQixJQUFBLENBQUNuQixZQUFZLElBQUUsQ0FBQztFQUM3RixpQkFBaUIsZUFBRW1CLElBQUEsQ0FBQ2pCLFdBQVcsSUFBRSxDQUFDO0VBQ2xDLFdBQVcsZUFBRWlCLElBQUEsQ0FBQ2hCLGFBQWEsSUFBRSxDQUFDO0VBQzlCLFlBQVksZUFBRWdCLElBQUEsQ0FBQ2hCLGFBQWEsSUFBRSxDQUFDO0VBQy9CLFdBQVcsZUFBRWdCLElBQUEsQ0FBQ2hCLGFBQWEsSUFBRSxDQUFDO0VBQzlCLG1FQUFtRSxlQUFFZ0IsSUFBQSxDQUFDZixZQUFZLElBQUUsQ0FBQztFQUNyRiwwQkFBMEIsZUFBRWUsSUFBQSxDQUFDZCxXQUFXLElBQUUsQ0FBQztFQUMzQyxZQUFZLGVBQUVjLElBQUEsQ0FBQ2IsV0FBVyxJQUFFLENBQUM7RUFDN0IsWUFBWSxlQUFFYSxJQUFBLENBQUNYLFlBQVksSUFBRSxDQUFDO0VBQzlCLFdBQVcsZUFBRVcsSUFBQSxDQUFDVCxXQUFXLElBQUUsQ0FBQztFQUM1QixXQUFXLGVBQUVTLElBQUEsQ0FBQ1YsV0FBVyxJQUFFLENBQUM7RUFDNUIsV0FBVyxlQUFFVSxJQUFBLENBQUNQLFdBQVcsSUFBRSxDQUFDO0VBQzVCLFdBQVcsZUFBRU8sSUFBQSxDQUFDUixXQUFXLElBQUUsQ0FBQztFQUM1QixXQUFXLGVBQUVRLElBQUEsQ0FBQ1osV0FBVyxJQUFFLENBQUM7RUFDNUIsWUFBWSxlQUFFWSxJQUFBLENBQUNOLFlBQVksSUFBRTtBQUMvQixDQUFDO0FBRUQsT0FBTyxTQUFTVSxVQUFVQSxDQUFBQyxJQUFBLEVBWU47RUFBQSxJQVhsQkMsYUFBYSxHQUFBRCxJQUFBLENBQWJDLGFBQWE7SUFDYkMsS0FBSyxHQUFBRixJQUFBLENBQUxFLEtBQUs7SUFDTEMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7SUFDUkMsV0FBVyxHQUFBSixJQUFBLENBQVhJLFdBQVc7SUFDWEMsU0FBUyxHQUFBTCxJQUFBLENBQVRLLFNBQVM7SUFDVEMsZ0JBQWdCLEdBQUFOLElBQUEsQ0FBaEJNLGdCQUFnQjtJQUNoQkMsTUFBTSxHQUFBUCxJQUFBLENBQU5PLE1BQU07SUFDTkMsVUFBVSxHQUFBUixJQUFBLENBQVZRLFVBQVU7SUFDVkMsYUFBYSxHQUFBVCxJQUFBLENBQWJTLGFBQWE7SUFDYkMsVUFBVSxHQUFBVixJQUFBLENBQVZVLFVBQVU7SUFDVkMsWUFBWSxHQUFBWCxJQUFBLENBQVpXLFlBQVk7RUFFWixJQUFBQyxpQkFBQSxHQUErRS9DLGdCQUFnQixDQUFDLENBQUM7SUFBekZnRCxPQUFPLEdBQUFELGlCQUFBLENBQVBDLE9BQU87SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0lBQUVDLFlBQVksR0FBQUgsaUJBQUEsQ0FBWkcsWUFBWTtJQUFFQyxNQUFNLEdBQUFKLGlCQUFBLENBQU5JLE1BQU07SUFBRUMsSUFBSSxHQUFBTCxpQkFBQSxDQUFKSyxJQUFJO0lBQUVDLHNCQUFzQixHQUFBTixpQkFBQSxDQUF0Qk0sc0JBQXNCO0VBQzFFLElBQUFDLEtBQUEsR0FBY3JELElBQUksQ0FBQyxDQUFDO0lBQVpzRCxDQUFDLEdBQUFELEtBQUEsQ0FBREMsQ0FBQztFQUNULElBQU1DLEtBQUssR0FBR3JELFFBQVEsQ0FBQyxDQUFDO0VBQ3hCLElBQU1zRCxxQkFBcUIsR0FBRy9ELE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBQzFELElBQU1nRSxjQUFjLEdBQUcsQ0FBQVQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVVLElBQUksTUFBSyxjQUFjO0VBQ3JELElBQUFDLFNBQUEsR0FBc0NqRSxRQUFRLENBQW1CLEVBQUUsQ0FBQztJQUFBa0UsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBN0RHLFdBQVcsR0FBQUYsVUFBQTtJQUFFRyxjQUFjLEdBQUFILFVBQUE7RUFDbEMsSUFBQUksVUFBQSxHQUE4Q3RFLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXVFLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQXRERSxlQUFlLEdBQUFELFVBQUE7SUFBRUUsa0JBQWtCLEdBQUFGLFVBQUE7RUFFMUMsSUFBTUcsYUFBYSxHQUFHM0UsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNuQyxJQUFNNEUsd0JBQXdCLEdBQUczQyxjQUFjLENBQUNzQixLQUFLLENBQUM7O0VBRXREO0VBQ0FyRCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU0yRSwyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJQyxDQUFjLEVBQUs7TUFDdERKLGtCQUFrQixDQUFDSSxDQUFDLENBQUNDLE1BQU0sQ0FBQ04sZUFBZSxDQUFDO0lBQzlDLENBQUM7SUFFRE8sUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQywrQkFBK0IsRUFBRUosMkJBQTRDLENBQUM7SUFFeEcsT0FBTyxZQUFNO01BQ1hHLFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUMsK0JBQStCLEVBQUVMLDJCQUE0QyxDQUFDO0lBQzdHLENBQUM7RUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDOztFQUVOO0VBQ0EzRSxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU1pRixtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7TUFDaEMsSUFBSXhCLHNCQUFzQixFQUFFO1FBQzFCQSxzQkFBc0IsQ0FBQ3lCLE9BQU8sR0FBRyxLQUFLO01BQ3hDO01BQ0FkLGNBQWMsQ0FBQyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEVSxRQUFRLENBQUNDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFRSxtQkFBbUIsQ0FBQztJQUV0RSxPQUFPLFlBQU07TUFDWEgsUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRUMsbUJBQW1CLENBQUM7SUFDM0UsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDeEIsc0JBQXNCLENBQUMsQ0FBQztFQUU1QixJQUFBMEIsUUFBQSxHQUFnQ3RGLE9BQU8sQ0FBd0QsWUFBTTtNQUNuRyxJQUFJNEMsS0FBSyxFQUFFLE9BQU87UUFBRTJDLFNBQVMsRUFBRTNDO01BQU0sQ0FBQzs7TUFFdEM7TUFDQSxJQUFJLENBQUFZLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFVSxJQUFJLE1BQUssY0FBYyxFQUFFO1FBQ2xDLElBQUlQLElBQUksYUFBSkEsSUFBSSxlQUFKQSxJQUFJLENBQUU2QixJQUFJLEVBQUUsT0FBTztVQUFFRCxTQUFTLEVBQUUsQ0FBQzVCLElBQUksQ0FBQzZCLElBQUksQ0FBQztVQUFFQyxRQUFRLEVBQUU7UUFBTyxDQUFDO1FBQ25FLElBQUloQyxZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFaUMsV0FBVyxFQUFFLE9BQU87VUFBRUgsU0FBUyxFQUFFLENBQUM5QixZQUFZLENBQUNpQyxXQUFXLENBQUM7VUFBRUQsUUFBUSxFQUFFO1FBQVUsQ0FBQztRQUNwRyxJQUFJL0IsTUFBTSxhQUFOQSxNQUFNLGVBQU5BLE1BQU0sQ0FBRThCLElBQUksRUFBRSxPQUFPO1VBQUVELFNBQVMsRUFBRSxDQUFDN0IsTUFBTSxDQUFDOEIsSUFBSSxDQUFDO1VBQUVDLFFBQVEsRUFBRTtRQUFTLENBQUM7UUFDekUsT0FBTztVQUFFRixTQUFTLEVBQUU7UUFBRyxDQUFDO01BQzFCO01BRUEsSUFBSSxDQUFBL0IsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVtQyxNQUFNLE1BQUssUUFBUSxJQUFJakMsTUFBTSxhQUFOQSxNQUFNLGVBQU5BLE1BQU0sQ0FBRThCLElBQUksRUFBRTtRQUM5QyxPQUFPO1VBQUVELFNBQVMsRUFBRSxDQUFDN0IsTUFBTSxDQUFDOEIsSUFBSSxDQUFDO1VBQUVDLFFBQVEsRUFBRTtRQUFTLENBQUM7TUFDekQ7TUFDQSxJQUFJOUIsSUFBSSxhQUFKQSxJQUFJLGVBQUpBLElBQUksQ0FBRTZCLElBQUksRUFBRSxPQUFPO1FBQUVELFNBQVMsRUFBRSxDQUFDNUIsSUFBSSxDQUFDNkIsSUFBSSxDQUFDO1FBQUVDLFFBQVEsRUFBRTtNQUFPLENBQUM7TUFDbkUsSUFBSWhDLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVpQyxXQUFXLEVBQUUsT0FBTztRQUFFSCxTQUFTLEVBQUUsQ0FBQzlCLFlBQVksQ0FBQ2lDLFdBQVcsQ0FBQztRQUFFRCxRQUFRLEVBQUU7TUFBVSxDQUFDO01BQ3BHLElBQUlsQyxPQUFPLGFBQVBBLE9BQU8sZUFBUEEsT0FBTyxDQUFFaUMsSUFBSSxFQUFFLE9BQU87UUFBRUQsU0FBUyxFQUFFLENBQUNoQyxPQUFPLENBQUNpQyxJQUFJLENBQUM7UUFBRUMsUUFBUSxFQUFFO01BQVUsQ0FBQztNQUU1RSxPQUFPO1FBQUVGLFNBQVMsRUFBRTtNQUFHLENBQUM7SUFDMUIsQ0FBQyxFQUFFLENBQUMzQyxLQUFLLEVBQUVXLE9BQU8sRUFBRUUsWUFBWSxFQUFFRCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRW1DLE1BQU0sRUFBRW5DLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFVSxJQUFJLEVBQUVSLE1BQU0sRUFBRUMsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUU2QixJQUFJLENBQUMsQ0FBQztJQW5CMUVELFNBQVMsR0FBQUQsUUFBQSxDQUFUQyxTQUFTO0lBQUVFLFFBQVEsR0FBQUgsUUFBQSxDQUFSRyxRQUFRO0VBcUIzQixJQUFNRyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQSxFQUFTO0lBQ3JCLElBQUloQixhQUFhLENBQUNTLE9BQU8sRUFBRTtJQUMzQnRCLEtBQUssQ0FBQ3RELE1BQU0sQ0FBQ29GLGFBQWEsRUFBRTtNQUMxQkMsVUFBVSxFQUFFakIsd0JBQXdCLEdBQUcsYUFBYSxHQUFHckIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVVO0lBQ2hFLENBQUMsQ0FBQztJQUNGVSxhQUFhLENBQUNTLE9BQU8sR0FBRyxJQUFJO0VBQzlCLENBQUM7RUFFRCxJQUFNVSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUNyQkMsT0FBZSxFQUNmQyxjQUFpQyxFQUNqQ0MsUUFBMkIsRUFDM0JDLEtBQWMsRUFDZEMsaUJBQTBCLEVBQzFCQyxLQUFjLEVBQ2RDLElBQWEsRUFDVjtJQUNILElBQU1DLFlBQVksR0FBR0MsT0FBTyxDQUFDNUMsc0JBQXNCLGFBQXRCQSxzQkFBc0IsdUJBQXRCQSxzQkFBc0IsQ0FBRXlCLE9BQU8sQ0FBQztJQUM3RCxJQUFJekIsc0JBQXNCLEVBQUU7TUFDMUJBLHNCQUFzQixDQUFDeUIsT0FBTyxHQUFHLEtBQUs7SUFDeEM7SUFDQXRCLEtBQUssQ0FBQ3RELE1BQU0sQ0FBQ2dHLFVBQVUsRUFBQUMsYUFBQTtNQUNyQlosVUFBVSxFQUFFakIsd0JBQXdCLEdBQUcsYUFBYSxHQUFHckIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVVLElBQUk7TUFDbEV5QyxRQUFRLEVBQUVuRCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRW9ELEVBQUU7TUFDbkJDLFVBQVUsRUFBRXJELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFZ0M7SUFBSSxHQUNuQmUsWUFBWSxHQUFHO01BQUVPLE1BQU0sRUFBRTtJQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDaEQsQ0FBQztJQUNGbkUsYUFBYSxDQUFDcUQsT0FBTyxFQUFFQyxjQUFjLEVBQUVFLEtBQUssRUFBRUMsaUJBQWlCLEVBQUVGLFFBQVEsRUFBRUcsS0FBSyxFQUFFQyxJQUFJLENBQUM7SUFDdkYvQixjQUFjLENBQUMsRUFBRSxDQUFDO0VBQ3BCLENBQUM7RUFFRCxJQUFNd0MsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJZixPQUFlLEVBQUVHLEtBQWEsRUFBSztJQUMxRHhELGFBQWEsQ0FBQ3FELE9BQU8sRUFBRWdCLFNBQVMsRUFBRWIsS0FBSyxFQUFFYSxTQUFTLENBQUM7RUFDckQsQ0FBQztFQUVELElBQU1DLGdCQUFnQjtJQUFBLElBQUFDLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLElBQVU7TUFBQSxJQUFBQyxrQkFBQTtNQUFBLElBQUFDLGFBQUEsRUFBQUMsYUFBQSxFQUFBQyxrQkFBQSxFQUFBQyxhQUFBLEVBQUFDLE9BQUEsRUFBQUMsZUFBQSxFQUFBQyxJQUFBLEVBQUFDLG1CQUFBLEVBQUFDLG1CQUFBLEVBQUFDLGFBQUEsRUFBQUMsYUFBQSxFQUFBQyxFQUFBO01BQUEsT0FBQWhCLG1CQUFBLENBQUFpQixJQUFBLFdBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1lBQ2xDZixhQUFhLEdBQUdGLElBQUksQ0FBQy9CLElBQUksQ0FBQ2lELEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDcENmLGFBQWEsR0FBR0QsYUFBYSxDQUFDaUIsTUFBTSxHQUFHLENBQUMsT0FBQUMsTUFBQSxFQUFBbkIsa0JBQUEsR0FBT0MsYUFBYSxDQUFDbUIsR0FBRyxDQUFDLENBQUMsY0FBQXBCLGtCQUFBLHVCQUFuQkEsa0JBQUEsQ0FBcUJxQixXQUFXLENBQUMsQ0FBQyxJQUFLLEVBQUU7WUFDeEZsQixrQkFBa0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUNtQixRQUFRLENBQUNwQixhQUFhLENBQUM7WUFDdEVFLGFBQWEsR0FBR0wsSUFBSSxDQUFDckQsSUFBSSxDQUFDNkUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5Q2xCLE9BQU8sR0FBR0QsYUFBYSxJQUFJRCxrQkFBa0IsRUFDbkQ7WUFDTUcsZUFBMEMsR0FBRztjQUNqRCxNQUFNLGVBQUV6RixJQUFBLENBQUNQLFdBQVcsSUFBRSxDQUFDO2NBQ3ZCLE1BQU0sZUFBRU8sSUFBQSxDQUFDUixXQUFXLElBQUUsQ0FBQztjQUN2QixNQUFNLGVBQUVRLElBQUEsQ0FBQ1QsV0FBVyxJQUFFLENBQUM7Y0FDdkIsTUFBTSxlQUFFUyxJQUFBLENBQUNWLFdBQVcsSUFBRSxDQUFDO2NBQ3ZCLE1BQU0sZUFBRVUsSUFBQSxDQUFDcEIsV0FBVyxJQUFFLENBQUM7Y0FDdkIsT0FBTyxlQUFFb0IsSUFBQSxDQUFDbkIsWUFBWSxJQUFFO1lBQzFCLENBQUM7WUFFRzZHLElBQUksR0FBR3ZGLGNBQWMsQ0FBQytFLElBQUksQ0FBQ3JELElBQUksQ0FBQyxFQUVwQztZQUNBLElBQ0UsQ0FBQ3FELElBQUksQ0FBQ3JELElBQUksS0FBSyxXQUFXLElBQUlxRCxJQUFJLENBQUNyRCxJQUFJLEtBQUssV0FBVyxJQUFJcUQsSUFBSSxDQUFDckQsSUFBSSxLQUFLLCtCQUErQixLQUN4R3dELGFBQWEsRUFDYjtjQUNBSyxJQUFJLEdBQUdELGVBQWUsQ0FBQ0osYUFBYSxDQUFDLElBQUlLLElBQUk7WUFDL0M7WUFFQSxJQUFJLENBQUNBLElBQUksRUFBRTtjQUNIQyxtQkFBMkMsR0FBRztnQkFDbEQsTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsb0JBQW9CO2dCQUM1QixPQUFPLEVBQUUseUVBQXlFO2dCQUNsRixNQUFNLEVBQUUsK0JBQStCO2dCQUN2QyxPQUFPLEVBQUUsMkVBQTJFO2dCQUNwRixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixPQUFPLEVBQUUsbUVBQW1FO2dCQUM1RSxNQUFNLEVBQUUsMEJBQTBCO2dCQUNsQyxPQUFPLEVBQUUsWUFBWTtnQkFDckIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsT0FBTyxFQUFFO2NBQ1gsQ0FBQztjQUNLQyxtQkFBbUIsR0FBR0QsbUJBQW1CLENBQUNOLGFBQWEsQ0FBQztjQUM5RCxJQUFJTyxtQkFBbUIsRUFBRTtnQkFDdkJGLElBQUksR0FBR3ZGLGNBQWMsQ0FBQ3lGLG1CQUFtQixDQUFDO2NBQzVDLENBQUMsTUFBTTtnQkFDTEYsSUFBSSxnQkFBRzFGLElBQUEsQ0FBQ2pDLE1BQU07a0JBQUM0SSxLQUFLLEVBQUMsdUJBQXVCO2tCQUFDQyxLQUFLLEVBQUUsRUFBRztrQkFBQ0MsTUFBTSxFQUFFO2dCQUFHLENBQUUsQ0FBQztjQUN4RTtZQUNGO1lBQ0loQixhQUFhLEdBQUdYLElBQUksRUFFeEI7WUFBQSxLQUNJTSxPQUFPO2NBQUFTLFFBQUEsQ0FBQUUsSUFBQTtjQUFBO1lBQUE7WUFBQUYsUUFBQSxDQUFBQyxJQUFBO1lBQUFELFFBQUEsQ0FBQUUsSUFBQTtZQUFBLE9BRWV4Ryx5QkFBeUIsQ0FBQ3VGLElBQUksQ0FBQztVQUFBO1lBQXJEVyxhQUFhLEdBQUFJLFFBQUEsQ0FBQWEsSUFBQTtZQUFBYixRQUFBLENBQUFFLElBQUE7WUFBQTtVQUFBO1lBQUFGLFFBQUEsQ0FBQUMsSUFBQTtZQUFBSCxFQUFBLEdBQUFFLFFBQUE7WUFFYmMsT0FBTyxDQUFDQyxLQUFLLENBQUMsOEJBQThCLEVBQUFqQixFQUFPLENBQUM7VUFBQTtZQUlsREQsYUFBNkIsR0FBRztjQUNwQ1osSUFBSSxFQUFFVyxhQUFhO2NBQ25Cb0IsWUFBWSxFQUFFekIsT0FBTyxHQUFHTixJQUFJLEdBQUdQLFNBQVM7Y0FDeENKLEVBQUUsS0FBQStCLE1BQUEsQ0FBS1ksSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxPQUFBYixNQUFBLENBQUljLElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBRTtjQUNwQ2xFLElBQUksRUFBRStCLElBQUksQ0FBQy9CLElBQUk7Y0FDZm1FLElBQUksRUFBRXpCLGFBQWEsQ0FBQ3lCLElBQUk7Y0FDeEJ6RixJQUFJLEVBQUVnRSxhQUFhLENBQUNoRSxJQUFJO2NBQ3hCNkQsSUFBSSxFQUFKQTtZQUNGLENBQUM7WUFFRHhELGNBQWMsQ0FBQyxVQUFBZ0UsSUFBSTtjQUFBLFVBQUFJLE1BQUEsQ0FBQWlCLGtCQUFBLENBQVFyQixJQUFJLElBQUVKLGFBQWE7WUFBQSxDQUFDLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQUcsUUFBQSxDQUFBdUIsSUFBQTtRQUFBO01BQUEsR0FBQXZDLE9BQUE7SUFBQSxDQUNqRDtJQUFBLGdCQTVFS0wsZ0JBQWdCQSxDQUFBNkMsRUFBQTtNQUFBLE9BQUE1QyxLQUFBLENBQUE2QyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtFQUFBLEdBNEVyQjtFQUVELElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUlDLE1BQWMsRUFBSztJQUNqRCxJQUFNakUsY0FBYyxHQUFHM0IsV0FBVyxDQUFDNkYsTUFBTSxDQUFDLFVBQUFDLFVBQVU7TUFBQSxPQUFJQSxVQUFVLENBQUN4RCxFQUFFLEtBQUtzRCxNQUFNO0lBQUEsRUFBQztJQUNqRjNGLGNBQWMsQ0FBQzBCLGNBQWMsQ0FBQztFQUNoQyxDQUFDO0VBRUQsSUFBTW9FLE1BQU0sR0FBR3BJLGNBQWMsQ0FBQ3VCLEtBQWMsQ0FBQztFQUM3QyxJQUFNOEcsaUJBQWlCLEdBQUdELE1BQU0sR0FDNUJ2RyxDQUFDLENBQUMsd0JBQXdCLEVBQUU7SUFBRXlHLFNBQVMsRUFBRXpHLENBQUMsQ0FBQyxtQkFBbUI7RUFBRSxDQUFDLENBQUMsR0FDbEVBLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQztFQUVwQyxJQUFNMEcsV0FBVyxHQUFHeEssT0FBTyxDQUFDLFlBQU07SUFDaEMsSUFBSSxDQUFDcUssTUFBTSxJQUFJM0YsZUFBZSxJQUFJLENBQUNhLFNBQVMsQ0FBQ21ELE1BQU0sRUFBRSxPQUFPLElBQUk7SUFFaEUsT0FBTztNQUNMOUYsS0FBSyxFQUFFMkMsU0FBUztNQUNoQnJCLElBQUksRUFBRXVCLFFBQVE7TUFDZGdGLFdBQVcsRUFBRWhGLFFBQVEsS0FBSyxNQUFNLGdCQUFHcEQsSUFBQSxDQUFDekIsWUFBWTtRQUFDcUksS0FBSyxFQUFFLEVBQUc7UUFBQ0MsTUFBTSxFQUFFLEVBQUc7UUFBQ0YsS0FBSyxFQUFDO01BQVMsQ0FBRSxDQUFDLEdBQUdoQztJQUMvRixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNxRCxNQUFNLEVBQUUzRixlQUFlLEVBQUVhLFNBQVMsRUFBRUUsUUFBUSxDQUFDLENBQUM7RUFFbEQsb0JBQ0VsRCxLQUFBLENBQUM1QixnQkFBZ0I7SUFBQStKLFFBQUEsZ0JBQ2ZySSxJQUFBLENBQUMvQixTQUFTO01BQ1JxSyxnQkFBZ0IsRUFBRTNHLHFCQUFzQjtNQUN4Q3JCLGFBQWEsRUFBRW9ELGlCQUFrQjtNQUNqQzZFLFNBQVMsRUFBRXZLLGNBQWU7TUFDMUJ3QyxRQUFRLEVBQUVBLFFBQVM7TUFDbkJnSSxXQUFXLEVBQ1QsQ0FBQXJILEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFc0gsaUJBQWlCLE1BQ3ZCN0csY0FBYyxHQUFHSCxDQUFDLENBQUMscUNBQXFDLENBQUMsR0FBR0EsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQzFGO01BQ0Q4QixRQUFRLEVBQUVBLFFBQVM7TUFDbkJtRixPQUFPLEVBQUUxSCxZQUFhO01BQ3RCMkgsWUFBWSxFQUFFL0QsZ0JBQWlCO01BQy9CZ0Usa0JBQWtCLEVBQUVoQixzQkFBdUI7TUFDM0MzRixXQUFXLEVBQUVBLFdBQVcsQ0FDckI2RixNQUFNLENBQUMsVUFBQWUsR0FBRztRQUFBLE9BQUksQ0FBQyxDQUFDQSxHQUFHLENBQUMzRCxJQUFJO01BQUEsRUFBQyxDQUN6QjRELEdBQUcsQ0FBQyxVQUFBRCxHQUFHO1FBQUEsT0FBSztVQUNYM0QsSUFBSSxFQUFFMkQsR0FBRyxDQUFDM0QsSUFBSztVQUNmK0IsWUFBWSxFQUFFNEIsR0FBRyxDQUFDNUIsWUFBWTtVQUM5QjFDLEVBQUUsRUFBRXNFLEdBQUcsQ0FBQ3RFLEVBQUU7VUFDVnBCLElBQUksRUFBRTBGLEdBQUcsQ0FBQzFGLElBQUk7VUFDZG1FLElBQUksRUFBRSxPQUFPdUIsR0FBRyxDQUFDdkIsSUFBSSxLQUFLLFFBQVEsR0FBR3VCLEdBQUcsQ0FBQ3ZCLElBQUksR0FBR3lCLE1BQU0sQ0FBQ0YsR0FBRyxDQUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQztVQUNyRXpGLElBQUksRUFBRWdILEdBQUcsQ0FBQ2hILElBQUk7VUFDZDZELElBQUksRUFBRW1ELEdBQUcsQ0FBQ25EO1FBQ1osQ0FBQztNQUFBLENBQUMsQ0FBRTtNQUNOakYsV0FBVyxFQUFFQSxXQUFZO01BQ3pCQyxTQUFTLEVBQUVBLFNBQVU7TUFDckJDLGdCQUFnQixFQUFFQSxnQkFBaUI7TUFDbkNDLE1BQU0sRUFBRUEsTUFBTSxJQUFJK0QsU0FBVTtNQUM1QjlELFVBQVUsRUFBRUEsVUFBVztNQUN2QkMsYUFBYSxFQUFFQSxhQUFjO01BQzdCQyxVQUFVLEVBQUVBLFVBQVc7TUFDdkJvSCxXQUFXLEVBQUVBO0lBQVksQ0FDMUIsQ0FBQyxlQUNGbkksSUFBQSxDQUFDRixxQkFBcUI7TUFBQzZELE9BQU8sRUFBRXNFO0lBQWtCLENBQUUsQ0FBQztFQUFBLENBQ3JDLENBQUM7QUFFdkIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -3,27 +3,21 @@ import colors from '@projectcor/theme/lib/base/colors';
|
|
|
3
3
|
export var StyledChatFooter = styled.div.withConfig({
|
|
4
4
|
displayName: "styles__StyledChatFooter",
|
|
5
5
|
componentId: "sc-qhd26v-0"
|
|
6
|
-
})(["display:flex;flex-direction:column;gap:
|
|
7
|
-
|
|
8
|
-
/** Figma Bloqueo: banner absoluto arriba del input (padding-top ≈ alto del banner). */
|
|
9
|
-
export var SCComposerBlockedStack = styled.div.withConfig({
|
|
10
|
-
displayName: "styles__SCComposerBlockedStack",
|
|
11
|
-
componentId: "sc-qhd26v-1"
|
|
12
|
-
})(["position:relative;width:100%;padding-top:36px;isolation:isolate;"]);
|
|
6
|
+
})(["display:flex;flex-direction:column;gap:6px;width:100%;max-width:864px;"]);
|
|
13
7
|
export var ContextBarLeft = styled.div.withConfig({
|
|
14
8
|
displayName: "styles__ContextBarLeft",
|
|
15
|
-
componentId: "sc-qhd26v-
|
|
9
|
+
componentId: "sc-qhd26v-1"
|
|
16
10
|
})(["display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 auto;"]);
|
|
17
11
|
export var GlobalContextLabel = styled.span.withConfig({
|
|
18
12
|
displayName: "styles__GlobalContextLabel",
|
|
19
|
-
componentId: "sc-qhd26v-
|
|
13
|
+
componentId: "sc-qhd26v-2"
|
|
20
14
|
})(["display:inline-flex;align-items:center;flex-shrink:0;height:30px;padding:0 10px;border:0.5px dashed #bfbfbf;border-radius:20px;color:", ";font-size:12px;line-height:130%;white-space:nowrap;"], colors.secondary);
|
|
21
15
|
export var ChipsAndFaqsRow = styled.div.withConfig({
|
|
22
16
|
displayName: "styles__ChipsAndFaqsRow",
|
|
23
|
-
componentId: "sc-qhd26v-
|
|
17
|
+
componentId: "sc-qhd26v-3"
|
|
24
18
|
})(["display:flex;align-items:center;justify-content:space-between;gap:6px;box-sizing:border-box;width:100%;min-width:0;& > *:first-child{flex:0 1 auto;min-width:0;max-width:100%;}& > *:last-child{flex-shrink:0;}"]);
|
|
25
19
|
export var FooterActionsRight = styled.div.withConfig({
|
|
26
20
|
displayName: "styles__FooterActionsRight",
|
|
27
|
-
componentId: "sc-qhd26v-
|
|
21
|
+
componentId: "sc-qhd26v-4"
|
|
28
22
|
})(["display:flex;align-items:center;gap:8px;flex-shrink:0;"]);
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJDb250ZXh0QmFyTGVmdCIsIkdsb2JhbENvbnRleHRMYWJlbCIsInNwYW4iLCJzZWNvbmRhcnkiLCJDaGlwc0FuZEZhcXNSb3ciLCJGb290ZXJBY3Rpb25zUmlnaHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ2hhdEZvb3RlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NjRweDtcbmBcblxuZXhwb3J0IGNvbnN0IENvbnRleHRCYXJMZWZ0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMCAxIGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb250ZXh0TGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYm9yZGVyOiAwLjVweCBkYXNoZWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnNlY29uZGFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwc0FuZEZhcXNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuXG4gIC8qIENoaXAgYWwgYW5jaG8gZGVsIHRleHRvOyBzaSBubyBlbnRyYSwgZW5jb2dlIHkgdHJ1bmNhLiBBY2Npb25lcyBmaWphcyBhIGxhIGRlcmVjaGEuICovXG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEZvb3RlckFjdGlvbnNSaWdodCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdGLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhFQU16QztBQUVELE9BQU8sSUFBTUMsY0FBYyxHQUFHUCxNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFNdkM7QUFFRCxPQUFPLElBQU1FLGtCQUFrQixHQUFHUixNQUFNLENBQUNTLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzTUFRbENMLE1BQU0sQ0FBQ1MsU0FBUyxDQUkxQjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHWCxNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1TkFtQnhDO0FBRUQsT0FBTyxJQUFNTSxrQkFBa0IsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOERBSzNDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -8,7 +8,6 @@ export var ContextMentionInput = function ContextMentionInput(_ref) {
|
|
|
8
8
|
var placeholder = _ref.placeholder,
|
|
9
9
|
disabled = _ref.disabled,
|
|
10
10
|
enabledTypes = _ref.enabledTypes,
|
|
11
|
-
skills = _ref.skills,
|
|
12
11
|
onSendMessage = _ref.onSendMessage,
|
|
13
12
|
onMentionAdded = _ref.onMentionAdded,
|
|
14
13
|
onChange = _ref.onChange;
|
|
@@ -18,7 +17,6 @@ export var ContextMentionInput = function ContextMentionInput(_ref) {
|
|
|
18
17
|
editorRef: editorRef,
|
|
19
18
|
popoverAnchorRef: wrapperRef,
|
|
20
19
|
enabledTypes: enabledTypes,
|
|
21
|
-
skills: skills,
|
|
22
20
|
onMentionAdded: onMentionAdded
|
|
23
21
|
}),
|
|
24
22
|
popoverOpen = _useMentionPopover.popoverOpen,
|
|
@@ -59,4 +57,4 @@ export var ContextMentionInput = function ContextMentionInput(_ref) {
|
|
|
59
57
|
}), popoverNode && /*#__PURE__*/createPortal(popoverNode, document.body)]
|
|
60
58
|
});
|
|
61
59
|
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsImNyZWF0ZVBvcnRhbCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWVudGlvblBvcG92ZXIiLCJTQ01JV3JhcHBlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDb250ZXh0TWVudGlvbklucHV0IiwiX3JlZiIsInBsYWNlaG9sZGVyIiwiZGlzYWJsZWQiLCJlbmFibGVkVHlwZXMiLCJvblNlbmRNZXNzYWdlIiwib25NZW50aW9uQWRkZWQiLCJvbkNoYW5nZSIsImVkaXRvclJlZiIsIndyYXBwZXJSZWYiLCJfdXNlTWVudGlvblBvcG92ZXIiLCJwb3BvdmVyQW5jaG9yUmVmIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlUG9wb3ZlcktleURvd24iLCJoYW5kbGVLZXlEb3duIiwicG9wb3Zlck5vZGUiLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWYyIiwidGV4dCIsIm1lbnRpb25zIiwidHJpZ2dlciIsImUiLCJrZXkiLCJzaGlmdEtleSIsIl9lZGl0b3JSZWYkY3VycmVudCIsIl9lZGl0b3JSZWYkY3VycmVudDIiLCJwcmV2ZW50RGVmYXVsdCIsInN0YXRlIiwiY3VycmVudCIsInNlcmlhbGl6ZSIsInRyaW0iLCJjbGVhciIsInJlZiIsImNoaWxkcmVuIiwib25JbnB1dCIsIm9uS2V5RG93biIsImRvY3VtZW50IiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Db250ZXh0TWVudGlvbklucHV0L0NvbnRleHRNZW50aW9uSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleWJvYXJkRXZlbnQsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9yLCBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSB9IGZyb20gJy4uLy4uL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHsgdXNlTWVudGlvblBvcG92ZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgU0NNSVdyYXBwZXIgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uSW5wdXQuc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbklucHV0UHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKiogT3ZlcnJpZGUgZGUgdGlwb3MgcGVybWl0aWRvczsgc2kgc2Ugb21pdGUsIHNlIGRlcml2YSBkZSBhZ2VudC5lbnRpdHkgKi9cbiAgZW5hYmxlZFR5cGVzPzogQ29udGV4dEVudGl0eVR5cGVbXVxuICBvblNlbmRNZXNzYWdlOiAodGV4dDogc3RyaW5nLCBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXSkgPT4gdm9pZFxuICBvbk1lbnRpb25BZGRlZD86IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBvbkNoYW5nZT86IChzdGF0ZTogeyB0ZXh0OiBzdHJpbmc7IG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdIH0pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uSW5wdXQgPSAoe1xuICBwbGFjZWhvbGRlcixcbiAgZGlzYWJsZWQsXG4gIGVuYWJsZWRUeXBlcyxcbiAgb25TZW5kTWVzc2FnZSxcbiAgb25NZW50aW9uQWRkZWQsXG4gIG9uQ2hhbmdlLFxufTogQ29udGV4dE1lbnRpb25JbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICAgIGVuYWJsZWRUeXBlcyxcbiAgICBvbk1lbnRpb25BZGRlZCxcbiAgfSlcblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB0ZXh0LFxuICAgICAgbWVudGlvbnMsXG4gICAgICB0cmlnZ2VyLFxuICAgIH06IHtcbiAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICB9KSA9PiB7XG4gICAgICBvbkNoYW5nZT8uKHsgdGV4dCwgbWVudGlvbnMgfSlcbiAgICAgIGhhbmRsZVRyaWdnZXIodHJpZ2dlcilcbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoaGFuZGxlUG9wb3ZlcktleURvd24oZSkpIHJldHVyblxuXG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5ICYmICFwb3BvdmVyT3Blbikge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUudGV4dC50cmltKCkpIHJldHVyblxuICAgICAgb25TZW5kTWVzc2FnZShzdGF0ZS50ZXh0LCBzdGF0ZS5tZW50aW9ucylcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTUlXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0+XG4gICAgICA8Q29udGV4dE1lbnRpb25FZGl0b3JcbiAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbklucHV0PXtoYW5kbGVFZGl0b3JJbnB1dH1cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgLz5cbiAgICAgIHtwb3BvdmVyTm9kZSAmJiBjcmVhdGVQb3J0YWwocG9wb3Zlck5vZGUsIGRvY3VtZW50LmJvZHkpfVxuICAgIDwvU0NNSVdyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBd0JBLFdBQVcsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDMUQsU0FBU0MsWUFBWSxRQUFRLFdBQVc7QUFDeEMsU0FBU0Msb0JBQW9CLFFBQW9DLGtDQUFrQztBQUNuRyxTQUFTQyxpQkFBaUIsUUFBUSxrQ0FBa0M7QUFFcEUsU0FBU0MsV0FBVyxRQUFRLDhCQUE4QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFZMUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBQyxJQUFBLEVBT0E7RUFBQSxJQU45QkMsV0FBVyxHQUFBRCxJQUFBLENB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
|