@projectcor/maia-components 2.11.92 → 2.11.93-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 (70) hide show
  1. package/lib/components/atoms/Chip/Chip.js +12 -5
  2. package/lib/components/atoms/Chip/styles.js +6 -6
  3. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
  4. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +123 -28
  5. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +6 -2
  6. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  7. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  8. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +23 -4
  9. package/lib/components/atoms/MAIAInput/MAIAInput.js +340 -259
  10. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +5 -8
  11. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +23 -0
  12. package/lib/components/atoms/MAIAInput/styles.js +99 -83
  13. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  14. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  15. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  16. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  17. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  18. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  19. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  20. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  21. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  22. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  23. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  24. package/lib/components/atoms/icons/index.js +12 -1
  25. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
  26. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +18 -7
  27. package/lib/components/molecules/ChatAIHome/styles.js +54 -38
  28. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +11 -36
  29. package/lib/components/molecules/ChatAIMessages/newStyles.js +10 -26
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +34 -3
  31. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +1 -4
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +4 -9
  33. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  34. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  35. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  36. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  37. package/lib/components/molecules/ChatFooter/ChatFooter.js +23 -62
  38. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  39. package/lib/components/molecules/Sidebar/Sidebar.js +25 -4
  40. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
  41. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  42. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  43. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
  44. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  45. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  46. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
  47. package/lib/constants/config.js +4 -1
  48. package/lib/constants/permissions/index.js +2 -2
  49. package/lib/constants/permissions/utils.js +4 -1
  50. package/lib/hooks/useContextMentions.js +47 -9
  51. package/lib/hooks/useEntitySearch.js +277 -91
  52. package/lib/hooks/useMentionAllowedTypes.js +26 -8
  53. package/lib/hooks/useMentionPopover.js +42 -13
  54. package/lib/lang/br/index.js +59 -5
  55. package/lib/lang/en/index.js +59 -5
  56. package/lib/lang/es/index.js +59 -5
  57. package/lib/lang/fr/index.js +61 -4
  58. package/lib/services/maia/Skills/createSkill.js +39 -0
  59. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  60. package/lib/services/maia/Skills/generateSkill.js +41 -0
  61. package/lib/services/maia/Skills/getSkills.js +90 -0
  62. package/lib/services/maia/Skills/updateSkill.js +39 -0
  63. package/lib/styles/config.js +2 -2
  64. package/lib/types/contextMention.js +1 -1
  65. package/lib/types/skill.js +2 -0
  66. package/lib/utils/contextMentionIcons.js +29 -1
  67. package/lib/utils/contextMentionTriggers.js +3 -1
  68. package/lib/utils/renderContextMentions.js +9 -4
  69. package/package.json +1 -1
  70. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,446 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ import { useCallback, useEffect, useRef, useState } from 'react';
9
+ import { createPortal } from 'react-dom';
10
+ import { Cross } from '@projectcor/icons/lib/components/Cross';
11
+ import { useTranslation } from 'react-i18next';
12
+ import { Streamdown } from 'streamdown';
13
+ import { createCodePlugin } from '@streamdown/code';
14
+ import { Backdrop } from '../../atoms/Backdrop';
15
+ import { Loader } from '../../atoms/Loader';
16
+ import { MAIA_STREAMDOWN_REHYPE_PLUGINS } from '../../../utils/maiaStreamdownRehypePlugins';
17
+ import { SECTIONS } from '../../../constants/config';
18
+ import { useUser } from '../../../context/cor-user';
19
+ import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
20
+ import { createSkill } from '../../../services/maia/Skills/createSkill';
21
+ import { updateSkill } from '../../../services/maia/Skills/updateSkill';
22
+ import { deleteSkill } from '../../../services/maia/Skills/deleteSkill';
23
+ import { DeleteQuestionModal } from '../DeleteQuestionModal/DeleteQuestionModal';
24
+ import { SCASMCancelButton, SCASMCloseButton, SCASMContent, SCASMDeleteSlot, SCASMField, SCASMFieldHeader, SCASMFooter, SCASMHeader, SCASMHeaderActions, SCASMHeaderTitle, SCASMHiddenFileInput, SCASMInput, SCASMLabel, SCASMPreview, SCASMPreviewEmpty, SCASMSaveButton, SCASMTextarea, SCASMToggleButton, SCASMToggleGroup, SCASMUploadButton, SCASMWrapper } from './AbmSkillModal.styles';
25
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
+ var codePlugin = createCodePlugin({
27
+ themes: ['github-light', 'github-light']
28
+ });
29
+ var initialValues = {
30
+ isEditing: false,
31
+ general: {
32
+ id: undefined,
33
+ name: '',
34
+ content: ''
35
+ }
36
+ };
37
+ export var AbmSkillModal = function AbmSkillModal(_ref) {
38
+ var _user$permissions, _values$general, _values$general2, _values$general3;
39
+ var addSkill = _ref.addSkill,
40
+ updateSkillInList = _ref.updateSkillInList,
41
+ removeSkill = _ref.removeSkill;
42
+ var _useTranslation = useTranslation([SECTIONS.chatAI]),
43
+ t = _useTranslation.t;
44
+ var user = useUser();
45
+ var _useSnackBarManager = useSnackBarManager(),
46
+ handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
47
+ handleSnackbarError = _useSnackBarManager.handleSnackbarError;
48
+ var _useState = useState(false),
49
+ _useState2 = _slicedToArray(_useState, 2),
50
+ isOpen = _useState2[0],
51
+ setIsOpen = _useState2[1];
52
+ var _useState3 = useState(false),
53
+ _useState4 = _slicedToArray(_useState3, 2),
54
+ isSubmitting = _useState4[0],
55
+ setIsSubmitting = _useState4[1];
56
+ var _useState5 = useState(false),
57
+ _useState6 = _slicedToArray(_useState5, 2),
58
+ showDelete = _useState6[0],
59
+ setShowDelete = _useState6[1];
60
+ var _useState7 = useState(false),
61
+ _useState8 = _slicedToArray(_useState7, 2),
62
+ showPreview = _useState8[0],
63
+ setShowPreview = _useState8[1];
64
+ var _useState9 = useState(false),
65
+ _useState0 = _slicedToArray(_useState9, 2),
66
+ pendingUpload = _useState0[0],
67
+ setPendingUpload = _useState0[1];
68
+ var _useState1 = useState(initialValues),
69
+ _useState10 = _slicedToArray(_useState1, 2),
70
+ values = _useState10[0],
71
+ setValues = _useState10[1];
72
+ var fileInputRef = useRef(null);
73
+ // Baseline to detect changes: the loaded values when editing, empty when creating
74
+ // (a new/generated/uploaded skill always counts as a change).
75
+ var initialRef = useRef({
76
+ name: '',
77
+ content: ''
78
+ });
79
+ var userPermissions = user === null || user === void 0 || (_user$permissions = user.permissions) === null || _user$permissions === void 0 ? void 0 : _user$permissions.ai_agents;
80
+ var canCreate = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.create);
81
+ var canEdit = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.edit);
82
+ var canDelete = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions["delete"]);
83
+ var name = ((_values$general = values.general) === null || _values$general === void 0 ? void 0 : _values$general.name) || '';
84
+ var content = ((_values$general2 = values.general) === null || _values$general2 === void 0 ? void 0 : _values$general2.content) || '';
85
+ var skillId = (_values$general3 = values.general) === null || _values$general3 === void 0 ? void 0 : _values$general3.id;
86
+ var isValid = !!name.trim() && !!content.trim();
87
+ var hasChanges = name.trim() !== initialRef.current.name || content.trim() !== initialRef.current.content;
88
+ var handleClose = useCallback(function () {
89
+ setIsOpen(false);
90
+ setShowDelete(false);
91
+ setShowPreview(false);
92
+ setPendingUpload(false);
93
+ setValues(initialValues);
94
+ }, []);
95
+ useEffect(function () {
96
+ var handleSetSkillValues = function handleSetSkillValues(event) {
97
+ var _skillValues$values, _skillValues$values2, _skillValues$values3, _skillValues$values4, _skillValues$values5, _skillValues$values6;
98
+ var _ref2 = event.detail || {},
99
+ skillValues = _ref2.skillValues;
100
+ if (!skillValues) return;
101
+ var incomingName = (((_skillValues$values = skillValues.values) === null || _skillValues$values === void 0 || (_skillValues$values = _skillValues$values.general) === null || _skillValues$values === void 0 ? void 0 : _skillValues$values.name) || '').trim();
102
+ var incomingContent = (((_skillValues$values2 = skillValues.values) === null || _skillValues$values2 === void 0 || (_skillValues$values2 = _skillValues$values2.general) === null || _skillValues$values2 === void 0 ? void 0 : _skillValues$values2.content) || '').trim();
103
+ // Editing an existing skill -> baseline is its values; creating -> empty baseline.
104
+ initialRef.current = (_skillValues$values3 = skillValues.values) !== null && _skillValues$values3 !== void 0 && _skillValues$values3.isEditing ? {
105
+ name: incomingName,
106
+ content: incomingContent
107
+ } : {
108
+ name: '',
109
+ content: ''
110
+ };
111
+ setValues(_objectSpread(_objectSpread(_objectSpread({}, initialValues), skillValues.values), {}, {
112
+ general: _objectSpread(_objectSpread({}, initialValues.general), (_skillValues$values4 = skillValues.values) === null || _skillValues$values4 === void 0 ? void 0 : _skillValues$values4.general)
113
+ }));
114
+ // Con contenido (edición o skill ya generada) arrancamos en "Vista previa"; vacía, en "Editar".
115
+ var hasContent = !!((_skillValues$values5 = skillValues.values) !== null && _skillValues$values5 !== void 0 && (_skillValues$values5 = _skillValues$values5.general) !== null && _skillValues$values5 !== void 0 && (_skillValues$values5 = _skillValues$values5.content) !== null && _skillValues$values5 !== void 0 && _skillValues$values5.trim());
116
+ setShowPreview(hasContent);
117
+ // Si vino con intent "upload", abrimos el selector de archivos al montar.
118
+ setPendingUpload(((_skillValues$values6 = skillValues.values) === null || _skillValues$values6 === void 0 ? void 0 : _skillValues$values6.intent) === 'upload');
119
+ setIsOpen(!!skillValues.isOpen);
120
+ };
121
+ document.addEventListener('abm-skill-modal-set-values', handleSetSkillValues);
122
+ return function () {
123
+ document.removeEventListener('abm-skill-modal-set-values', handleSetSkillValues);
124
+ };
125
+ }, []);
126
+
127
+ // When opened with the "upload" intent, open the OS file picker once mounted.
128
+ useEffect(function () {
129
+ if (isOpen && pendingUpload) {
130
+ var _fileInputRef$current;
131
+ setPendingUpload(false);
132
+ (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
133
+ }
134
+ }, [isOpen, pendingUpload]);
135
+ var handleChangeField = function handleChangeField(field, value) {
136
+ setValues(function (prev) {
137
+ return _objectSpread(_objectSpread({}, prev), {}, {
138
+ general: _objectSpread(_objectSpread({}, prev.general), {}, _defineProperty({}, field, value))
139
+ });
140
+ });
141
+ };
142
+ var handleUploadClick = function handleUploadClick() {
143
+ var _fileInputRef$current2;
144
+ (_fileInputRef$current2 = fileInputRef.current) === null || _fileInputRef$current2 === void 0 || _fileInputRef$current2.click();
145
+ };
146
+ var handleFileChange = /*#__PURE__*/function () {
147
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
148
+ var _event$target$files;
149
+ var file, isMarkdown, text, baseName, _t;
150
+ return _regeneratorRuntime.wrap(function (_context) {
151
+ while (1) switch (_context.prev = _context.next) {
152
+ case 0:
153
+ file = (_event$target$files = event.target.files) === null || _event$target$files === void 0 ? void 0 : _event$target$files[0]; // Reset the input (via ref) so selecting the same file again still fires onChange.
154
+ if (fileInputRef.current) {
155
+ fileInputRef.current.value = '';
156
+ }
157
+ if (file) {
158
+ _context.next = 1;
159
+ break;
160
+ }
161
+ return _context.abrupt("return");
162
+ case 1:
163
+ isMarkdown = /\.(md|markdown)$/i.test(file.name);
164
+ if (isMarkdown) {
165
+ _context.next = 2;
166
+ break;
167
+ }
168
+ handleSnackbarError(t('mySkills.uploadError'));
169
+ return _context.abrupt("return");
170
+ case 2:
171
+ _context.prev = 2;
172
+ _context.next = 3;
173
+ return file.text();
174
+ case 3:
175
+ text = _context.sent;
176
+ baseName = file.name.replace(/\.(md|markdown)$/i, '');
177
+ setValues(function (prev) {
178
+ var _prev$general;
179
+ return _objectSpread(_objectSpread({}, prev), {}, {
180
+ general: _objectSpread(_objectSpread({}, prev.general), {}, {
181
+ content: text,
182
+ // Only fill the name from the filename when it's still empty.
183
+ name: (_prev$general = prev.general) !== null && _prev$general !== void 0 && (_prev$general = _prev$general.name) !== null && _prev$general !== void 0 && _prev$general.trim() ? prev.general.name : baseName
184
+ })
185
+ });
186
+ });
187
+ // Tras subir un .md mostramos el resultado renderizado por defecto.
188
+ setShowPreview(true);
189
+ _context.next = 5;
190
+ break;
191
+ case 4:
192
+ _context.prev = 4;
193
+ _t = _context["catch"](2);
194
+ handleSnackbarError(t('mySkills.uploadError'));
195
+ case 5:
196
+ case "end":
197
+ return _context.stop();
198
+ }
199
+ }, _callee, null, [[2, 4]]);
200
+ }));
201
+ return function handleFileChange(_x) {
202
+ return _ref3.apply(this, arguments);
203
+ };
204
+ }();
205
+ var handleSave = /*#__PURE__*/function () {
206
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
207
+ var updated, created, _t2;
208
+ return _regeneratorRuntime.wrap(function (_context2) {
209
+ while (1) switch (_context2.prev = _context2.next) {
210
+ case 0:
211
+ if (!(!isValid || isSubmitting)) {
212
+ _context2.next = 1;
213
+ break;
214
+ }
215
+ return _context2.abrupt("return");
216
+ case 1:
217
+ setIsSubmitting(true);
218
+ _context2.prev = 2;
219
+ if (!(values.isEditing && skillId)) {
220
+ _context2.next = 4;
221
+ break;
222
+ }
223
+ _context2.next = 3;
224
+ return updateSkill(skillId, {
225
+ name: name.trim(),
226
+ content: content.trim()
227
+ });
228
+ case 3:
229
+ updated = _context2.sent;
230
+ updateSkillInList === null || updateSkillInList === void 0 || updateSkillInList(updated);
231
+ handleSnackbarSuccess(t('mySkills.updateSuccess'));
232
+ _context2.next = 6;
233
+ break;
234
+ case 4:
235
+ _context2.next = 5;
236
+ return createSkill({
237
+ name: name.trim(),
238
+ content: content.trim()
239
+ });
240
+ case 5:
241
+ created = _context2.sent;
242
+ addSkill === null || addSkill === void 0 || addSkill(created);
243
+ handleSnackbarSuccess(t('mySkills.createSuccess'));
244
+ case 6:
245
+ handleClose();
246
+ _context2.next = 8;
247
+ break;
248
+ case 7:
249
+ _context2.prev = 7;
250
+ _t2 = _context2["catch"](2);
251
+ handleSnackbarError(values.isEditing ? t('mySkills.updateError') : t('mySkills.createError'));
252
+ case 8:
253
+ _context2.prev = 8;
254
+ setIsSubmitting(false);
255
+ return _context2.finish(8);
256
+ case 9:
257
+ case "end":
258
+ return _context2.stop();
259
+ }
260
+ }, _callee2, null, [[2, 7, 8, 9]]);
261
+ }));
262
+ return function handleSave() {
263
+ return _ref4.apply(this, arguments);
264
+ };
265
+ }();
266
+ var handleConfirmDelete = /*#__PURE__*/function () {
267
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
268
+ var _t3;
269
+ return _regeneratorRuntime.wrap(function (_context3) {
270
+ while (1) switch (_context3.prev = _context3.next) {
271
+ case 0:
272
+ if (skillId) {
273
+ _context3.next = 1;
274
+ break;
275
+ }
276
+ return _context3.abrupt("return");
277
+ case 1:
278
+ _context3.prev = 1;
279
+ _context3.next = 2;
280
+ return deleteSkill(skillId);
281
+ case 2:
282
+ removeSkill === null || removeSkill === void 0 || removeSkill(skillId);
283
+ handleSnackbarSuccess(t('mySkills.deleteSuccess'));
284
+ handleClose();
285
+ _context3.next = 4;
286
+ break;
287
+ case 3:
288
+ _context3.prev = 3;
289
+ _t3 = _context3["catch"](1);
290
+ handleSnackbarError(t('mySkills.deleteError'));
291
+ case 4:
292
+ case "end":
293
+ return _context3.stop();
294
+ }
295
+ }, _callee3, null, [[1, 3]]);
296
+ }));
297
+ return function handleConfirmDelete() {
298
+ return _ref5.apply(this, arguments);
299
+ };
300
+ }();
301
+ if (!isOpen) return null;
302
+ if (!canCreate && !canEdit && !canDelete) return null;
303
+ var container = document.getElementById('modal-root-actions');
304
+ if (!container) return null;
305
+ return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(Backdrop, {
306
+ zIndex: 1112,
307
+ onClick: handleClose,
308
+ children: [/*#__PURE__*/_jsxs(SCASMWrapper, {
309
+ onClick: function onClick(event) {
310
+ return event.stopPropagation();
311
+ },
312
+ children: [/*#__PURE__*/_jsxs(SCASMHeader, {
313
+ children: [/*#__PURE__*/_jsx(SCASMHeaderTitle, {
314
+ children: values.isEditing ? t('mySkills.editTitle') : t('mySkills.createTitle')
315
+ }), /*#__PURE__*/_jsx(SCASMCloseButton, {
316
+ type: "button",
317
+ onClick: handleClose,
318
+ "aria-label": t('mySkills.close'),
319
+ children: /*#__PURE__*/_jsx(Cross, {
320
+ color: "#a6a6a6",
321
+ width: 18,
322
+ height: 18
323
+ })
324
+ })]
325
+ }), /*#__PURE__*/_jsxs(SCASMContent, {
326
+ children: [/*#__PURE__*/_jsxs(SCASMField, {
327
+ children: [/*#__PURE__*/_jsx(SCASMLabel, {
328
+ htmlFor: "skill-name-input",
329
+ children: t('mySkills.nameLabel')
330
+ }), /*#__PURE__*/_jsx(SCASMInput, {
331
+ id: "skill-name-input",
332
+ type: "text",
333
+ maxLength: 150,
334
+ placeholder: t('mySkills.namePlaceholder'),
335
+ value: name,
336
+ disabled: isSubmitting,
337
+ onChange: function onChange(event) {
338
+ return handleChangeField('name', event.target.value);
339
+ }
340
+ })]
341
+ }), /*#__PURE__*/_jsxs(SCASMField, {
342
+ children: [/*#__PURE__*/_jsxs(SCASMFieldHeader, {
343
+ children: [/*#__PURE__*/_jsx(SCASMLabel, {
344
+ htmlFor: "skill-content-input",
345
+ children: t('mySkills.contentLabel')
346
+ }), /*#__PURE__*/_jsxs(SCASMHeaderActions, {
347
+ children: [/*#__PURE__*/_jsx(SCASMUploadButton, {
348
+ type: "button",
349
+ onClick: handleUploadClick,
350
+ disabled: isSubmitting,
351
+ children: t('mySkills.uploadMd')
352
+ }), /*#__PURE__*/_jsx(SCASMHiddenFileInput, {
353
+ ref: fileInputRef,
354
+ type: "file",
355
+ accept: ".md,.markdown,text/markdown",
356
+ onChange: handleFileChange
357
+ }), /*#__PURE__*/_jsxs(SCASMToggleGroup, {
358
+ children: [/*#__PURE__*/_jsx(SCASMToggleButton, {
359
+ type: "button",
360
+ $active: !showPreview,
361
+ onClick: function onClick() {
362
+ return setShowPreview(false);
363
+ },
364
+ children: t('mySkills.edit')
365
+ }), /*#__PURE__*/_jsx(SCASMToggleButton, {
366
+ type: "button",
367
+ $active: showPreview,
368
+ onClick: function onClick() {
369
+ return setShowPreview(true);
370
+ },
371
+ children: t('mySkills.preview')
372
+ })]
373
+ })]
374
+ })]
375
+ }), showPreview ? /*#__PURE__*/_jsx(SCASMPreview, {
376
+ children: content.trim() ? /*#__PURE__*/_jsx(Streamdown, {
377
+ plugins: {
378
+ code: codePlugin
379
+ },
380
+ rehypePlugins: MAIA_STREAMDOWN_REHYPE_PLUGINS
381
+ // Skill content is arbitrary user input — keep link safety ON so unsafe
382
+ // URIs (e.g. javascript:) are sanitized instead of rendered as clickable links.
383
+ ,
384
+ linkSafety: {
385
+ enabled: true
386
+ },
387
+ shikiTheme: ['github-light', 'github-light'],
388
+ controls: {
389
+ table: false,
390
+ code: false
391
+ },
392
+ children: content
393
+ }) : /*#__PURE__*/_jsx(SCASMPreviewEmpty, {
394
+ children: t('mySkills.previewEmpty')
395
+ })
396
+ }) : /*#__PURE__*/_jsx(SCASMTextarea, {
397
+ id: "skill-content-input",
398
+ maxLength: 20000,
399
+ placeholder: t('mySkills.contentPlaceholder'),
400
+ value: content,
401
+ disabled: isSubmitting,
402
+ onChange: function onChange(event) {
403
+ return handleChangeField('content', event.target.value);
404
+ }
405
+ })]
406
+ })]
407
+ }), /*#__PURE__*/_jsxs(SCASMFooter, {
408
+ children: [values.isEditing && canDelete ? /*#__PURE__*/_jsx(SCASMDeleteSlot, {
409
+ children: /*#__PURE__*/_jsx(SCASMCancelButton, {
410
+ type: "button",
411
+ onClick: function onClick() {
412
+ return setShowDelete(true);
413
+ },
414
+ disabled: isSubmitting,
415
+ children: t('mySkills.delete')
416
+ })
417
+ }) : null, /*#__PURE__*/_jsx(SCASMCancelButton, {
418
+ type: "button",
419
+ onClick: handleClose,
420
+ disabled: isSubmitting,
421
+ children: t('mySkills.cancel')
422
+ }), /*#__PURE__*/_jsx(SCASMSaveButton, {
423
+ type: "button",
424
+ onClick: handleSave,
425
+ disabled: !isValid || isSubmitting || !hasChanges,
426
+ children: isSubmitting ? /*#__PURE__*/_jsx(Loader, {
427
+ size: "small"
428
+ }) : t('mySkills.save')
429
+ })]
430
+ })]
431
+ }), showDelete && skillId ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
432
+ onClose: function onClose() {
433
+ return setShowDelete(false);
434
+ },
435
+ handlers: {
436
+ handleConfirmAction: handleConfirmDelete
437
+ },
438
+ chat: {
439
+ title: name,
440
+ id: skillId
441
+ },
442
+ action: "skill"
443
+ }) : null]
444
+ }), container);
445
+ };
446
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiY3JlYXRlUG9ydGFsIiwiQ3Jvc3MiLCJ1c2VUcmFuc2xhdGlvbiIsIlN0cmVhbWRvd24iLCJjcmVhdGVDb2RlUGx1Z2luIiwiQmFja2Ryb3AiLCJMb2FkZXIiLCJNQUlBX1NUUkVBTURPV05fUkVIWVBFX1BMVUdJTlMiLCJTRUNUSU9OUyIsInVzZVVzZXIiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJjcmVhdGVTa2lsbCIsInVwZGF0ZVNraWxsIiwiZGVsZXRlU2tpbGwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiU0NBU01DYW5jZWxCdXR0b24iLCJTQ0FTTUNsb3NlQnV0dG9uIiwiU0NBU01Db250ZW50IiwiU0NBU01EZWxldGVTbG90IiwiU0NBU01GaWVsZCIsIlNDQVNNRmllbGRIZWFkZXIiLCJTQ0FTTUZvb3RlciIsIlNDQVNNSGVhZGVyIiwiU0NBU01IZWFkZXJBY3Rpb25zIiwiU0NBU01IZWFkZXJUaXRsZSIsIlNDQVNNSGlkZGVuRmlsZUlucHV0IiwiU0NBU01JbnB1dCIsIlNDQVNNTGFiZWwiLCJTQ0FTTVByZXZpZXciLCJTQ0FTTVByZXZpZXdFbXB0eSIsIlNDQVNNU2F2ZUJ1dHRvbiIsIlNDQVNNVGV4dGFyZWEiLCJTQ0FTTVRvZ2dsZUJ1dHRvbiIsIlNDQVNNVG9nZ2xlR3JvdXAiLCJTQ0FTTVVwbG9hZEJ1dHRvbiIsIlNDQVNNV3JhcHBlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJjb2RlUGx1Z2luIiwidGhlbWVzIiwiaW5pdGlhbFZhbHVlcyIsImlzRWRpdGluZyIsImdlbmVyYWwiLCJpZCIsInVuZGVmaW5lZCIsIm5hbWUiLCJjb250ZW50IiwiQWJtU2tpbGxNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl92YWx1ZXMkZ2VuZXJhbCIsIl92YWx1ZXMkZ2VuZXJhbDIiLCJfdmFsdWVzJGdlbmVyYWwzIiwiYWRkU2tpbGwiLCJ1cGRhdGVTa2lsbEluTGlzdCIsInJlbW92ZVNraWxsIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwidCIsInVzZXIiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzT3BlbiIsInNldElzT3BlbiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNTdWJtaXR0aW5nIiwic2V0SXNTdWJtaXR0aW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93RGVsZXRlIiwic2V0U2hvd0RlbGV0ZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2hvd1ByZXZpZXciLCJzZXRTaG93UHJldmlldyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwicGVuZGluZ1VwbG9hZCIsInNldFBlbmRpbmdVcGxvYWQiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJ2YWx1ZXMiLCJzZXRWYWx1ZXMiLCJmaWxlSW5wdXRSZWYiLCJpbml0aWFsUmVmIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGUiLCJjcmVhdGUiLCJjYW5FZGl0IiwiZWRpdCIsImNhbkRlbGV0ZSIsInNraWxsSWQiLCJpc1ZhbGlkIiwidHJpbSIsImhhc0NoYW5nZXMiLCJjdXJyZW50IiwiaGFuZGxlQ2xvc2UiLCJoYW5kbGVTZXRTa2lsbFZhbHVlcyIsImV2ZW50IiwiX3NraWxsVmFsdWVzJHZhbHVlcyIsIl9za2lsbFZhbHVlcyR2YWx1ZXMyIiwiX3NraWxsVmFsdWVzJHZhbHVlczMiLCJfc2tpbGxWYWx1ZXMkdmFsdWVzNCIsIl9za2lsbFZhbHVlcyR2YWx1ZXM1IiwiX3NraWxsVmFsdWVzJHZhbHVlczYiLCJfcmVmMiIsImRldGFpbCIsInNraWxsVmFsdWVzIiwiaW5jb21pbmdOYW1lIiwiaW5jb21pbmdDb250ZW50IiwiX29iamVjdFNwcmVhZCIsImhhc0NvbnRlbnQiLCJpbnRlbnQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiX2ZpbGVJbnB1dFJlZiRjdXJyZW50IiwiY2xpY2siLCJoYW5kbGVDaGFuZ2VGaWVsZCIsImZpZWxkIiwidmFsdWUiLCJwcmV2IiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlVXBsb2FkQ2xpY2siLCJfZmlsZUlucHV0UmVmJGN1cnJlbnQyIiwiaGFuZGxlRmlsZUNoYW5nZSIsIl9yZWYzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfZXZlbnQkdGFyZ2V0JGZpbGVzIiwiZmlsZSIsImlzTWFya2Rvd24iLCJ0ZXh0IiwiYmFzZU5hbWUiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJ0YXJnZXQiLCJmaWxlcyIsImFicnVwdCIsInRlc3QiLCJzZW50IiwicmVwbGFjZSIsIl9wcmV2JGdlbmVyYWwiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZVNhdmUiLCJfcmVmNCIsIl9jYWxsZWUyIiwidXBkYXRlZCIsImNyZWF0ZWQiLCJfdDIiLCJfY29udGV4dDIiLCJmaW5pc2giLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiX3JlZjUiLCJfY2FsbGVlMyIsIl90MyIsIl9jb250ZXh0MyIsImNvbnRhaW5lciIsImdldEVsZW1lbnRCeUlkIiwiekluZGV4Iiwib25DbGljayIsImNoaWxkcmVuIiwic3RvcFByb3BhZ2F0aW9uIiwidHlwZSIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJodG1sRm9yIiwibWF4TGVuZ3RoIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwicmVmIiwiYWNjZXB0IiwiJGFjdGl2ZSIsInBsdWdpbnMiLCJjb2RlIiwicmVoeXBlUGx1Z2lucyIsImxpbmtTYWZldHkiLCJlbmFibGVkIiwic2hpa2lUaGVtZSIsImNvbnRyb2xzIiwidGFibGUiLCJzaXplIiwib25DbG9zZSIsImhhbmRsZXJzIiwiaGFuZGxlQ29uZmlybUFjdGlvbiIsImNoYXQiLCJ0aXRsZSIsImFjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29yZ2FuaXNtcy9BYm1Ta2lsbE1vZGFsL0FibVNraWxsTW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IENoYW5nZUV2ZW50LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgU3RyZWFtZG93biB9IGZyb20gJ3N0cmVhbWRvd24nXG5pbXBvcnQgeyBjcmVhdGVDb2RlUGx1Z2luIH0gZnJvbSAnQHN0cmVhbWRvd24vY29kZSdcbmltcG9ydCB7IEJhY2tkcm9wIH0gZnJvbSAnLi4vLi4vYXRvbXMvQmFja2Ryb3AnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBNQUlBX1NUUkVBTURPV05fUkVIWVBFX1BMVUdJTlMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYWlhU3RyZWFtZG93blJlaHlwZVBsdWdpbnMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBjcmVhdGVTa2lsbCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvU2tpbGxzL2NyZWF0ZVNraWxsJ1xuaW1wb3J0IHsgdXBkYXRlU2tpbGwgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1NraWxscy91cGRhdGVTa2lsbCdcbmltcG9ydCB7IGRlbGV0ZVNraWxsIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9Ta2lsbHMvZGVsZXRlU2tpbGwnXG5pbXBvcnQgeyBTa2lsbCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3NraWxsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uL0RlbGV0ZVF1ZXN0aW9uTW9kYWwvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7XG4gIFNDQVNNQ2FuY2VsQnV0dG9uLFxuICBTQ0FTTUNsb3NlQnV0dG9uLFxuICBTQ0FTTUNvbnRlbnQsXG4gIFNDQVNNRGVsZXRlU2xvdCxcbiAgU0NBU01GaWVsZCxcbiAgU0NBU01GaWVsZEhlYWRlcixcbiAgU0NBU01Gb290ZXIsXG4gIFNDQVNNSGVhZGVyLFxuICBTQ0FTTUhlYWRlckFjdGlvbnMsXG4gIFNDQVNNSGVhZGVyVGl0bGUsXG4gIFNDQVNNSGlkZGVuRmlsZUlucHV0LFxuICBTQ0FTTUlucHV0LFxuICBTQ0FTTUxhYmVsLFxuICBTQ0FTTVByZXZpZXcsXG4gIFNDQVNNUHJldmlld0VtcHR5LFxuICBTQ0FTTVNhdmVCdXR0b24sXG4gIFNDQVNNVGV4dGFyZWEsXG4gIFNDQVNNVG9nZ2xlQnV0dG9uLFxuICBTQ0FTTVRvZ2dsZUdyb3VwLFxuICBTQ0FTTVVwbG9hZEJ1dHRvbixcbiAgU0NBU01XcmFwcGVyLFxufSBmcm9tICcuL0FibVNraWxsTW9kYWwuc3R5bGVzJ1xuXG5jb25zdCBjb2RlUGx1Z2luID0gY3JlYXRlQ29kZVBsdWdpbih7IHRoZW1lczogWydnaXRodWItbGlnaHQnLCAnZ2l0aHViLWxpZ2h0J10gfSlcblxudHlwZSBTa2lsbE1vZGFsVmFsdWVzID0ge1xuICBpc0VkaXRpbmc6IGJvb2xlYW5cbiAgZ2VuZXJhbD86IHtcbiAgICBpZD86IHN0cmluZ1xuICAgIG5hbWU/OiBzdHJpbmdcbiAgICBjb250ZW50Pzogc3RyaW5nXG4gIH1cbn1cblxudHlwZSBBYm1Ta2lsbE1vZGFsUHJvcHMgPSB7XG4gIGFkZFNraWxsPzogKHNraWxsOiBTa2lsbCkgPT4gdm9pZFxuICB1cGRhdGVTa2lsbEluTGlzdD86IChza2lsbDogU2tpbGwpID0+IHZvaWRcbiAgcmVtb3ZlU2tpbGw/OiAoc2tpbGxJZDogc3RyaW5nKSA9PiB2b2lkXG59XG5cbmNvbnN0IGluaXRpYWxWYWx1ZXM6IFNraWxsTW9kYWxWYWx1ZXMgPSB7XG4gIGlzRWRpdGluZzogZmFsc2UsXG4gIGdlbmVyYWw6IHsgaWQ6IHVuZGVmaW5lZCwgbmFtZTogJycsIGNvbnRlbnQ6ICcnIH0sXG59XG5cbmV4cG9ydCBjb25zdCBBYm1Ta2lsbE1vZGFsID0gKHsgYWRkU2tpbGwsIHVwZGF0ZVNraWxsSW5MaXN0LCByZW1vdmVTa2lsbCB9OiBBYm1Ta2lsbE1vZGFsUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNTdWJtaXR0aW5nLCBzZXRJc1N1Ym1pdHRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93RGVsZXRlLCBzZXRTaG93RGVsZXRlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd1ByZXZpZXcsIHNldFNob3dQcmV2aWV3XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcGVuZGluZ1VwbG9hZCwgc2V0UGVuZGluZ1VwbG9hZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3ZhbHVlcywgc2V0VmFsdWVzXSA9IHVzZVN0YXRlPFNraWxsTW9kYWxWYWx1ZXM+KGluaXRpYWxWYWx1ZXMpXG4gIGNvbnN0IGZpbGVJbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICAvLyBCYXNlbGluZSB0byBkZXRlY3QgY2hhbmdlczogdGhlIGxvYWRlZCB2YWx1ZXMgd2hlbiBlZGl0aW5nLCBlbXB0eSB3aGVuIGNyZWF0aW5nXG4gIC8vIChhIG5ldy9nZW5lcmF0ZWQvdXBsb2FkZWQgc2tpbGwgYWx3YXlzIGNvdW50cyBhcyBhIGNoYW5nZSkuXG4gIGNvbnN0IGluaXRpYWxSZWYgPSB1c2VSZWY8eyBuYW1lOiBzdHJpbmc7IGNvbnRlbnQ6IHN0cmluZyB9Pih7IG5hbWU6ICcnLCBjb250ZW50OiAnJyB9KVxuXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcbiAgY29uc3QgY2FuQ3JlYXRlID0gISF1c2VyUGVybWlzc2lvbnM/LmNyZWF0ZVxuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXRcbiAgY29uc3QgY2FuRGVsZXRlID0gISF1c2VyUGVybWlzc2lvbnM/LmRlbGV0ZVxuXG4gIGNvbnN0IG5hbWUgPSB2YWx1ZXMuZ2VuZXJhbD8ubmFtZSB8fCAnJ1xuICBjb25zdCBjb250ZW50ID0gdmFsdWVzLmdlbmVyYWw/LmNvbnRlbnQgfHwgJydcbiAgY29uc3Qgc2tpbGxJZCA9IHZhbHVlcy5nZW5lcmFsPy5pZFxuICBjb25zdCBpc1ZhbGlkID0gISFuYW1lLnRyaW0oKSAmJiAhIWNvbnRlbnQudHJpbSgpXG4gIGNvbnN0IGhhc0NoYW5nZXMgPSBuYW1lLnRyaW0oKSAhPT0gaW5pdGlhbFJlZi5jdXJyZW50Lm5hbWUgfHwgY29udGVudC50cmltKCkgIT09IGluaXRpYWxSZWYuY3VycmVudC5jb250ZW50XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNPcGVuKGZhbHNlKVxuICAgIHNldFNob3dEZWxldGUoZmFsc2UpXG4gICAgc2V0U2hvd1ByZXZpZXcoZmFsc2UpXG4gICAgc2V0UGVuZGluZ1VwbG9hZChmYWxzZSlcbiAgICBzZXRWYWx1ZXMoaW5pdGlhbFZhbHVlcylcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXRTa2lsbFZhbHVlcyA9IChldmVudDogYW55KSA9PiB7XG4gICAgICBjb25zdCB7IHNraWxsVmFsdWVzIH0gPSBldmVudC5kZXRhaWwgfHwge31cbiAgICAgIGlmICghc2tpbGxWYWx1ZXMpIHJldHVyblxuICAgICAgY29uc3QgaW5jb21pbmdOYW1lID0gKHNraWxsVmFsdWVzLnZhbHVlcz8uZ2VuZXJhbD8ubmFtZSB8fCAnJykudHJpbSgpXG4gICAgICBjb25zdCBpbmNvbWluZ0NvbnRlbnQgPSAoc2tpbGxWYWx1ZXMudmFsdWVzPy5nZW5lcmFsPy5jb250ZW50IHx8ICcnKS50cmltKClcbiAgICAgIC8vIEVkaXRpbmcgYW4gZXhpc3Rpbmcgc2tpbGwgLT4gYmFzZWxpbmUgaXMgaXRzIHZhbHVlczsgY3JlYXRpbmcgLT4gZW1wdHkgYmFzZWxpbmUuXG4gICAgICBpbml0aWFsUmVmLmN1cnJlbnQgPSBza2lsbFZhbHVlcy52YWx1ZXM/LmlzRWRpdGluZ1xuICAgICAgICA/IHsgbmFtZTogaW5jb21pbmdOYW1lLCBjb250ZW50OiBpbmNvbWluZ0NvbnRlbnQgfVxuICAgICAgICA6IHsgbmFtZTogJycsIGNvbnRlbnQ6ICcnIH1cblxuICAgICAgc2V0VmFsdWVzKHtcbiAgICAgICAgLi4uaW5pdGlhbFZhbHVlcyxcbiAgICAgICAgLi4uc2tpbGxWYWx1ZXMudmFsdWVzLFxuICAgICAgICBnZW5lcmFsOiB7IC4uLmluaXRpYWxWYWx1ZXMuZ2VuZXJhbCwgLi4uc2tpbGxWYWx1ZXMudmFsdWVzPy5nZW5lcmFsIH0sXG4gICAgICB9KVxuICAgICAgLy8gQ29uIGNvbnRlbmlkbyAoZWRpY2nDs24gbyBza2lsbCB5YSBnZW5lcmFkYSkgYXJyYW5jYW1vcyBlbiBcIlZpc3RhIHByZXZpYVwiOyB2YWPDrWEsIGVuIFwiRWRpdGFyXCIuXG4gICAgICBjb25zdCBoYXNDb250ZW50ID0gISFza2lsbFZhbHVlcy52YWx1ZXM/LmdlbmVyYWw/LmNvbnRlbnQ/LnRyaW0oKVxuICAgICAgc2V0U2hvd1ByZXZpZXcoaGFzQ29udGVudClcbiAgICAgIC8vIFNpIHZpbm8gY29uIGludGVudCBcInVwbG9hZFwiLCBhYnJpbW9zIGVsIHNlbGVjdG9yIGRlIGFyY2hpdm9zIGFsIG1vbnRhci5cbiAgICAgIHNldFBlbmRpbmdVcGxvYWQoc2tpbGxWYWx1ZXMudmFsdWVzPy5pbnRlbnQgPT09ICd1cGxvYWQnKVxuICAgICAgc2V0SXNPcGVuKCEhc2tpbGxWYWx1ZXMuaXNPcGVuKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2FibS1za2lsbC1tb2RhbC1zZXQtdmFsdWVzJywgaGFuZGxlU2V0U2tpbGxWYWx1ZXMpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FibS1za2lsbC1tb2RhbC1zZXQtdmFsdWVzJywgaGFuZGxlU2V0U2tpbGxWYWx1ZXMpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBXaGVuIG9wZW5lZCB3aXRoIHRoZSBcInVwbG9hZFwiIGludGVudCwgb3BlbiB0aGUgT1MgZmlsZSBwaWNrZXIgb25jZSBtb3VudGVkLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4gJiYgcGVuZGluZ1VwbG9hZCkge1xuICAgICAgc2V0UGVuZGluZ1VwbG9hZChmYWxzZSlcbiAgICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gICAgfVxuICB9LCBbaXNPcGVuLCBwZW5kaW5nVXBsb2FkXSlcblxuICBjb25zdCBoYW5kbGVDaGFuZ2VGaWVsZCA9IChmaWVsZDogJ25hbWUnIHwgJ2NvbnRlbnQnLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0VmFsdWVzKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBnZW5lcmFsOiB7IC4uLnByZXYuZ2VuZXJhbCwgW2ZpZWxkXTogdmFsdWUgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVVwbG9hZENsaWNrID0gKCkgPT4ge1xuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGaWxlQ2hhbmdlID0gYXN5bmMgKGV2ZW50OiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXM/LlswXVxuICAgIC8vIFJlc2V0IHRoZSBpbnB1dCAodmlhIHJlZikgc28gc2VsZWN0aW5nIHRoZSBzYW1lIGZpbGUgYWdhaW4gc3RpbGwgZmlyZXMgb25DaGFuZ2UuXG4gICAgaWYgKGZpbGVJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBmaWxlSW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgfVxuICAgIGlmICghZmlsZSkgcmV0dXJuXG5cbiAgICBjb25zdCBpc01hcmtkb3duID0gL1xcLihtZHxtYXJrZG93bikkL2kudGVzdChmaWxlLm5hbWUpXG4gICAgaWYgKCFpc01hcmtkb3duKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ215U2tpbGxzLnVwbG9hZEVycm9yJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZpbGUudGV4dCgpXG4gICAgICBjb25zdCBiYXNlTmFtZSA9IGZpbGUubmFtZS5yZXBsYWNlKC9cXC4obWR8bWFya2Rvd24pJC9pLCAnJylcbiAgICAgIHNldFZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgICAuLi5wcmV2LmdlbmVyYWwsXG4gICAgICAgICAgY29udGVudDogdGV4dCxcbiAgICAgICAgICAvLyBPbmx5IGZpbGwgdGhlIG5hbWUgZnJvbSB0aGUgZmlsZW5hbWUgd2hlbiBpdCdzIHN0aWxsIGVtcHR5LlxuICAgICAgICAgIG5hbWU6IHByZXYuZ2VuZXJhbD8ubmFtZT8udHJpbSgpID8gcHJldi5nZW5lcmFsLm5hbWUgOiBiYXNlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH0pKVxuICAgICAgLy8gVHJhcyBzdWJpciB1biAubWQgbW9zdHJhbW9zIGVsIHJlc3VsdGFkbyByZW5kZXJpemFkbyBwb3IgZGVmZWN0by5cbiAgICAgIHNldFNob3dQcmV2aWV3KHRydWUpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnbXlTa2lsbHMudXBsb2FkRXJyb3InKSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVTYXZlID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghaXNWYWxpZCB8fCBpc1N1Ym1pdHRpbmcpIHJldHVyblxuICAgIHNldElzU3VibWl0dGluZyh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBpZiAodmFsdWVzLmlzRWRpdGluZyAmJiBza2lsbElkKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB1cGRhdGVTa2lsbChza2lsbElkLCB7IG5hbWU6IG5hbWUudHJpbSgpLCBjb250ZW50OiBjb250ZW50LnRyaW0oKSB9KVxuICAgICAgICB1cGRhdGVTa2lsbEluTGlzdD8uKHVwZGF0ZWQpXG4gICAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdteVNraWxscy51cGRhdGVTdWNjZXNzJykpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgY3JlYXRlU2tpbGwoeyBuYW1lOiBuYW1lLnRyaW0oKSwgY29udGVudDogY29udGVudC50cmltKCkgfSlcbiAgICAgICAgYWRkU2tpbGw/LihjcmVhdGVkKVxuICAgICAgICBoYW5kbGVTbmFja2JhclN1Y2Nlc3ModCgnbXlTa2lsbHMuY3JlYXRlU3VjY2VzcycpKVxuICAgICAgfVxuICAgICAgaGFuZGxlQ2xvc2UoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHZhbHVlcy5pc0VkaXRpbmcgPyB0KCdteVNraWxscy51cGRhdGVFcnJvcicpIDogdCgnbXlTa2lsbHMuY3JlYXRlRXJyb3InKSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0SXNTdWJtaXR0aW5nKGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFza2lsbElkKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlU2tpbGwoc2tpbGxJZClcbiAgICAgIHJlbW92ZVNraWxsPy4oc2tpbGxJZClcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdteVNraWxscy5kZWxldGVTdWNjZXNzJykpXG4gICAgICBoYW5kbGVDbG9zZSgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnbXlTa2lsbHMuZGVsZXRlRXJyb3InKSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWlzT3BlbikgcmV0dXJuIG51bGxcbiAgaWYgKCFjYW5DcmVhdGUgJiYgIWNhbkVkaXQgJiYgIWNhbkRlbGV0ZSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtcm9vdC1hY3Rpb25zJylcbiAgaWYgKCFjb250YWluZXIpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbChcbiAgICA8QmFja2Ryb3AgekluZGV4PXsxMTEyfSBvbkNsaWNrPXtoYW5kbGVDbG9zZX0+XG4gICAgICA8U0NBU01XcmFwcGVyIG9uQ2xpY2s9e2V2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgICAgPFNDQVNNSGVhZGVyPlxuICAgICAgICAgIDxTQ0FTTUhlYWRlclRpdGxlPnt2YWx1ZXMuaXNFZGl0aW5nID8gdCgnbXlTa2lsbHMuZWRpdFRpdGxlJykgOiB0KCdteVNraWxscy5jcmVhdGVUaXRsZScpfTwvU0NBU01IZWFkZXJUaXRsZT5cbiAgICAgICAgICA8U0NBU01DbG9zZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlQ2xvc2V9IGFyaWEtbGFiZWw9e3QoJ215U2tpbGxzLmNsb3NlJyl9PlxuICAgICAgICAgICAgPENyb3NzIGNvbG9yPVwiI2E2YTZhNlwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICA8L1NDQVNNQ2xvc2VCdXR0b24+XG4gICAgICAgIDwvU0NBU01IZWFkZXI+XG5cbiAgICAgICAgPFNDQVNNQ29udGVudD5cbiAgICAgICAgICA8U0NBU01GaWVsZD5cbiAgICAgICAgICAgIDxTQ0FTTUxhYmVsIGh0bWxGb3I9XCJza2lsbC1uYW1lLWlucHV0XCI+e3QoJ215U2tpbGxzLm5hbWVMYWJlbCcpfTwvU0NBU01MYWJlbD5cbiAgICAgICAgICAgIDxTQ0FTTUlucHV0XG4gICAgICAgICAgICAgIGlkPVwic2tpbGwtbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgbWF4TGVuZ3RoPXsxNTB9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCdteVNraWxscy5uYW1lUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgdmFsdWU9e25hbWV9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc1N1Ym1pdHRpbmd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiBoYW5kbGVDaGFuZ2VGaWVsZCgnbmFtZScsIGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NBU01GaWVsZD5cblxuICAgICAgICAgIDxTQ0FTTUZpZWxkPlxuICAgICAgICAgICAgPFNDQVNNRmllbGRIZWFkZXI+XG4gICAgICAgICAgICAgIDxTQ0FTTUxhYmVsIGh0bWxGb3I9XCJza2lsbC1jb250ZW50LWlucHV0XCI+e3QoJ215U2tpbGxzLmNvbnRlbnRMYWJlbCcpfTwvU0NBU01MYWJlbD5cbiAgICAgICAgICAgICAgPFNDQVNNSGVhZGVyQWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8U0NBU01VcGxvYWRCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVVwbG9hZENsaWNrfSBkaXNhYmxlZD17aXNTdWJtaXR0aW5nfT5cbiAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy51cGxvYWRNZCcpfVxuICAgICAgICAgICAgICAgIDwvU0NBU01VcGxvYWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPFNDQVNNSGlkZGVuRmlsZUlucHV0XG4gICAgICAgICAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAgIGFjY2VwdD1cIi5tZCwubWFya2Rvd24sdGV4dC9tYXJrZG93blwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxTQ0FTTVRvZ2dsZUdyb3VwPlxuICAgICAgICAgICAgICAgICAgPFNDQVNNVG9nZ2xlQnV0dG9uIHR5cGU9XCJidXR0b25cIiAkYWN0aXZlPXshc2hvd1ByZXZpZXd9IG9uQ2xpY2s9eygpID0+IHNldFNob3dQcmV2aWV3KGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy5lZGl0Jyl9XG4gICAgICAgICAgICAgICAgICA8L1NDQVNNVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPFNDQVNNVG9nZ2xlQnV0dG9uIHR5cGU9XCJidXR0b25cIiAkYWN0aXZlPXtzaG93UHJldmlld30gb25DbGljaz17KCkgPT4gc2V0U2hvd1ByZXZpZXcodHJ1ZSl9PlxuICAgICAgICAgICAgICAgICAgICB7dCgnbXlTa2lsbHMucHJldmlldycpfVxuICAgICAgICAgICAgICAgICAgPC9TQ0FTTVRvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1NDQVNNVG9nZ2xlR3JvdXA+XG4gICAgICAgICAgICAgIDwvU0NBU01IZWFkZXJBY3Rpb25zPlxuICAgICAgICAgICAgPC9TQ0FTTUZpZWxkSGVhZGVyPlxuICAgICAgICAgICAge3Nob3dQcmV2aWV3ID8gKFxuICAgICAgICAgICAgICA8U0NBU01QcmV2aWV3PlxuICAgICAgICAgICAgICAgIHtjb250ZW50LnRyaW0oKSA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHJlYW1kb3duXG4gICAgICAgICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZTogY29kZVBsdWdpbiB9fVxuICAgICAgICAgICAgICAgICAgICByZWh5cGVQbHVnaW5zPXtNQUlBX1NUUkVBTURPV05fUkVIWVBFX1BMVUdJTlN9XG4gICAgICAgICAgICAgICAgICAgIC8vIFNraWxsIGNvbnRlbnQgaXMgYXJiaXRyYXJ5IHVzZXIgaW5wdXQg4oCUIGtlZXAgbGluayBzYWZldHkgT04gc28gdW5zYWZlXG4gICAgICAgICAgICAgICAgICAgIC8vIFVSSXMgKGUuZy4gamF2YXNjcmlwdDopIGFyZSBzYW5pdGl6ZWQgaW5zdGVhZCBvZiByZW5kZXJlZCBhcyBjbGlja2FibGUgbGlua3MuXG4gICAgICAgICAgICAgICAgICAgIGxpbmtTYWZldHk9e3sgZW5hYmxlZDogdHJ1ZSB9fVxuICAgICAgICAgICAgICAgICAgICBzaGlraVRoZW1lPXtbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXX1cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM9e3sgdGFibGU6IGZhbHNlLCBjb2RlOiBmYWxzZSB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y29udGVudH1cbiAgICAgICAgICAgICAgICAgIDwvU3RyZWFtZG93bj5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPFNDQVNNUHJldmlld0VtcHR5Pnt0KCdteVNraWxscy5wcmV2aWV3RW1wdHknKX08L1NDQVNNUHJldmlld0VtcHR5PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU0NBU01QcmV2aWV3PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFNDQVNNVGV4dGFyZWFcbiAgICAgICAgICAgICAgICBpZD1cInNraWxsLWNvbnRlbnQtaW5wdXRcIlxuICAgICAgICAgICAgICAgIG1heExlbmd0aD17MjAwMDB9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ215U2tpbGxzLmNvbnRlbnRQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb250ZW50fVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc1N1Ym1pdHRpbmd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2V2ZW50ID0+IGhhbmRsZUNoYW5nZUZpZWxkKCdjb250ZW50JywgZXZlbnQudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TQ0FTTUZpZWxkPlxuICAgICAgICA8L1NDQVNNQ29udGVudD5cblxuICAgICAgICA8U0NBU01Gb290ZXI+XG4gICAgICAgICAge3ZhbHVlcy5pc0VkaXRpbmcgJiYgY2FuRGVsZXRlID8gKFxuICAgICAgICAgICAgPFNDQVNNRGVsZXRlU2xvdD5cbiAgICAgICAgICAgICAgPFNDQVNNQ2FuY2VsQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBzZXRTaG93RGVsZXRlKHRydWUpfSBkaXNhYmxlZD17aXNTdWJtaXR0aW5nfT5cbiAgICAgICAgICAgICAgICB7dCgnbXlTa2lsbHMuZGVsZXRlJyl9XG4gICAgICAgICAgICAgIDwvU0NBU01DYW5jZWxCdXR0b24+XG4gICAgICAgICAgICA8L1NDQVNNRGVsZXRlU2xvdD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8U0NBU01DYW5jZWxCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZUNsb3NlfSBkaXNhYmxlZD17aXNTdWJtaXR0aW5nfT5cbiAgICAgICAgICAgIHt0KCdteVNraWxscy5jYW5jZWwnKX1cbiAgICAgICAgICA8L1NDQVNNQ2FuY2VsQnV0dG9uPlxuICAgICAgICAgIDxTQ0FTTVNhdmVCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVNhdmV9IGRpc2FibGVkPXshaXNWYWxpZCB8fCBpc1N1Ym1pdHRpbmcgfHwgIWhhc0NoYW5nZXN9PlxuICAgICAgICAgICAge2lzU3VibWl0dGluZyA/IDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz4gOiB0KCdteVNraWxscy5zYXZlJyl9XG4gICAgICAgICAgPC9TQ0FTTVNhdmVCdXR0b24+XG4gICAgICAgIDwvU0NBU01Gb290ZXI+XG4gICAgICA8L1NDQVNNV3JhcHBlcj5cblxuICAgICAge3Nob3dEZWxldGUgJiYgc2tpbGxJZCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTaG93RGVsZXRlKGZhbHNlKX1cbiAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNoYXQ9e3sgdGl0bGU6IG5hbWUsIGlkOiBza2lsbElkIH19XG4gICAgICAgICAgYWN0aW9uPVwic2tpbGxcIlxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9CYWNrZHJvcD4sXG4gICAgY29udGFpbmVyXG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxTQUFzQkEsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDN0UsU0FBU0MsWUFBWSxRQUFRLFdBQVc7QUFDeEMsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxVQUFVLFFBQVEsWUFBWTtBQUN2QyxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsUUFBUSxRQUFRLHNCQUFzQjtBQUMvQyxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBQzNDLFNBQVNDLDhCQUE4QixRQUFRLDRDQUE0QztBQUMzRixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFDbkQsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLFdBQVcsUUFBUSwyQ0FBMkM7QUFDdkUsU0FBU0MsV0FBVyxRQUFRLDJDQUEyQztBQUN2RSxTQUFTQyxXQUFXLFFBQVEsMkNBQTJDO0FBRXZFLFNBQVNDLG1CQUFtQixRQUFRLDRDQUE0QztBQUNoRixTQUNFQyxpQkFBaUIsRUFDakJDLGdCQUFnQixFQUNoQkMsWUFBWSxFQUNaQyxlQUFlLEVBQ2ZDLFVBQVUsRUFDVkMsZ0JBQWdCLEVBQ2hCQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLG9CQUFvQixFQUNwQkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLFlBQVksRUFDWkMsaUJBQWlCLEVBQ2pCQyxlQUFlLEVBQ2ZDLGFBQWEsRUFDYkMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsWUFBWSxRQUNQLHdCQUF3QjtBQUFBLFNBQUFDLEdBQUEs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
@@ -0,0 +1,98 @@
1
+ import styled from 'styled-components';
2
+ export var SCASMWrapper = styled.div.withConfig({
3
+ displayName: "AbmSkillModalstyles__SCASMWrapper",
4
+ componentId: "sc-x2stxd-0"
5
+ })(["background-color:#fff;padding:24px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12);width:760px;max-width:calc(100vw - 48px);max-height:calc(100vh - 96px);z-index:1001;position:relative;display:flex;flex-direction:column;gap:20px;overflow-y:auto;"]);
6
+ export var SCASMHeader = styled.div.withConfig({
7
+ displayName: "AbmSkillModalstyles__SCASMHeader",
8
+ componentId: "sc-x2stxd-1"
9
+ })(["display:flex;align-items:center;justify-content:space-between;gap:8px;"]);
10
+ export var SCASMHeaderTitle = styled.span.withConfig({
11
+ displayName: "AbmSkillModalstyles__SCASMHeaderTitle",
12
+ componentId: "sc-x2stxd-2"
13
+ })(["font-family:'Work Sans',sans-serif;font-size:16px;font-weight:500;line-height:122%;color:#20201f;"]);
14
+ export var SCASMCloseButton = styled.button.withConfig({
15
+ displayName: "AbmSkillModalstyles__SCASMCloseButton",
16
+ componentId: "sc-x2stxd-3"
17
+ })(["display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:4px;border-radius:4px;&:hover{background:#f9f9f9;}"]);
18
+ export var SCASMContent = styled.div.withConfig({
19
+ displayName: "AbmSkillModalstyles__SCASMContent",
20
+ componentId: "sc-x2stxd-4"
21
+ })(["display:flex;flex-direction:column;gap:16px;"]);
22
+ export var SCASMField = styled.div.withConfig({
23
+ displayName: "AbmSkillModalstyles__SCASMField",
24
+ componentId: "sc-x2stxd-5"
25
+ })(["display:flex;flex-direction:column;gap:6px;"]);
26
+ export var SCASMFieldHeader = styled.div.withConfig({
27
+ displayName: "AbmSkillModalstyles__SCASMFieldHeader",
28
+ componentId: "sc-x2stxd-6"
29
+ })(["display:flex;align-items:center;justify-content:space-between;gap:8px;"]);
30
+ export var SCASMHeaderActions = styled.div.withConfig({
31
+ displayName: "AbmSkillModalstyles__SCASMHeaderActions",
32
+ componentId: "sc-x2stxd-7"
33
+ })(["display:flex;align-items:center;gap:12px;"]);
34
+ export var SCASMToggleGroup = styled.div.withConfig({
35
+ displayName: "AbmSkillModalstyles__SCASMToggleGroup",
36
+ componentId: "sc-x2stxd-8"
37
+ })(["display:flex;gap:4px;"]);
38
+ export var SCASMUploadButton = styled.button.withConfig({
39
+ displayName: "AbmSkillModalstyles__SCASMUploadButton",
40
+ componentId: "sc-x2stxd-9"
41
+ })(["display:inline-flex;align-items:center;gap:6px;border:1px solid #d9d9d9;background:#fff;color:#20201f;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;padding:5px 10px;border-radius:4px;cursor:pointer;&:hover{background:#f9f9f9;}&:disabled{opacity:0.5;cursor:not-allowed;}"]);
42
+
43
+ /* Visually-hidden but still focusable/clickable via ref. Avoids relying on
44
+ display:none, which a global input style in the host app can override. */
45
+ export var SCASMHiddenFileInput = styled.input.withConfig({
46
+ displayName: "AbmSkillModalstyles__SCASMHiddenFileInput",
47
+ componentId: "sc-x2stxd-10"
48
+ })(["position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;"]);
49
+ export var SCASMToggleButton = styled.button.withConfig({
50
+ displayName: "AbmSkillModalstyles__SCASMToggleButton",
51
+ componentId: "sc-x2stxd-11"
52
+ })(["border:none;background:", ";color:", ";font-family:'Work Sans',sans-serif;font-size:12px;font-weight:", ";padding:4px 10px;border-radius:4px;cursor:pointer;&:hover{background:#f0f0f0;}"], function (_ref) {
53
+ var $active = _ref.$active;
54
+ return $active ? '#f0f0f0' : 'transparent';
55
+ }, function (_ref2) {
56
+ var $active = _ref2.$active;
57
+ return $active ? '#20201f' : '#999';
58
+ }, function (_ref3) {
59
+ var $active = _ref3.$active;
60
+ return $active ? 500 : 400;
61
+ });
62
+ export var SCASMPreview = styled.div.withConfig({
63
+ displayName: "AbmSkillModalstyles__SCASMPreview",
64
+ componentId: "sc-x2stxd-12"
65
+ })(["width:100%;box-sizing:border-box;min-height:360px;max-height:50vh;overflow-y:auto;padding:12px;border-radius:6px;border:1px solid #d9d9d9;background:#fbfbfb;font-family:'Work Sans',sans-serif;font-size:14px;line-height:1.5;color:#20201f;word-break:break-word;& > *:first-child{margin-top:0;}& > *:last-child{margin-bottom:0;}pre{overflow-x:auto;}code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:13px;}"]);
66
+ export var SCASMPreviewEmpty = styled.span.withConfig({
67
+ displayName: "AbmSkillModalstyles__SCASMPreviewEmpty",
68
+ componentId: "sc-x2stxd-13"
69
+ })(["color:#999;font-style:italic;font-size:13px;"]);
70
+ export var SCASMLabel = styled.label.withConfig({
71
+ displayName: "AbmSkillModalstyles__SCASMLabel",
72
+ componentId: "sc-x2stxd-14"
73
+ })(["font-family:'Work Sans',sans-serif;font-size:12px;font-weight:500;color:#666;"]);
74
+ export var SCASMInput = styled.input.withConfig({
75
+ displayName: "AbmSkillModalstyles__SCASMInput",
76
+ componentId: "sc-x2stxd-15"
77
+ })(["width:100%;box-sizing:border-box;padding:10px 12px;border-radius:6px;border:1px solid #d9d9d9;font-family:'Work Sans',sans-serif;font-size:14px;color:#20201f;outline:none;&:focus{border-color:#2d77bd;}&::placeholder{color:#999;}"]);
78
+ export var SCASMTextarea = styled.textarea.withConfig({
79
+ displayName: "AbmSkillModalstyles__SCASMTextarea",
80
+ componentId: "sc-x2stxd-16"
81
+ })(["width:100%;box-sizing:border-box;min-height:360px;resize:vertical;padding:10px 12px;border-radius:6px;border:1px solid #d9d9d9;font-family:'Work Sans',sans-serif;font-size:14px;line-height:140%;color:#20201f;outline:none;&:focus{border-color:#2d77bd;}&::placeholder{color:#999;}"]);
82
+ export var SCASMFooter = styled.div.withConfig({
83
+ displayName: "AbmSkillModalstyles__SCASMFooter",
84
+ componentId: "sc-x2stxd-17"
85
+ })(["display:flex;gap:12px;justify-content:flex-end;align-items:center;"]);
86
+ export var SCASMDeleteSlot = styled.div.withConfig({
87
+ displayName: "AbmSkillModalstyles__SCASMDeleteSlot",
88
+ componentId: "sc-x2stxd-18"
89
+ })(["margin-right:auto;button{color:#c70505 !important;}"]);
90
+ export var SCASMSaveButton = styled.button.withConfig({
91
+ displayName: "AbmSkillModalstyles__SCASMSaveButton",
92
+ componentId: "sc-x2stxd-19"
93
+ })(["display:flex;min-width:80px;padding:10px 16px;justify-content:center;align-items:center;gap:8px;border-radius:4px;border:none;cursor:pointer;box-sizing:border-box;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);color:#fff;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:disabled{opacity:0.5;cursor:not-allowed;}&:not(:disabled):hover{opacity:0.92;}"]);
94
+ export var SCASMCancelButton = styled.button.withConfig({
95
+ displayName: "AbmSkillModalstyles__SCASMCancelButton",
96
+ componentId: "sc-x2stxd-20"
97
+ })(["display:flex;padding:10px 16px;justify-content:center;align-items:center;border-radius:4px;border:none;background:transparent;cursor:pointer;color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:hover{background:#f0f0f0;}"]);
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ0FTTVdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDQVNNSGVhZGVyIiwiU0NBU01IZWFkZXJUaXRsZSIsInNwYW4iLCJTQ0FTTUNsb3NlQnV0dG9uIiwiYnV0dG9uIiwiU0NBU01Db250ZW50IiwiU0NBU01GaWVsZCIsIlNDQVNNRmllbGRIZWFkZXIiLCJTQ0FTTUhlYWRlckFjdGlvbnMiLCJTQ0FTTVRvZ2dsZUdyb3VwIiwiU0NBU01VcGxvYWRCdXR0b24iLCJTQ0FTTUhpZGRlbkZpbGVJbnB1dCIsImlucHV0IiwiU0NBU01Ub2dnbGVCdXR0b24iLCJfcmVmIiwiJGFjdGl2ZSIsIl9yZWYyIiwiX3JlZjMiLCJTQ0FTTVByZXZpZXciLCJTQ0FTTVByZXZpZXdFbXB0eSIsIlNDQVNNTGFiZWwiLCJsYWJlbCIsIlNDQVNNSW5wdXQiLCJTQ0FTTVRleHRhcmVhIiwidGV4dGFyZWEiLCJTQ0FTTUZvb3RlciIsIlNDQVNNRGVsZXRlU2xvdCIsIlNDQVNNU2F2ZUJ1dHRvbiIsIlNDQVNNQ2FuY2VsQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0FibVNraWxsTW9kYWwvQWJtU2tpbGxNb2RhbC5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmV4cG9ydCBjb25zdCBTQ0FTTVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgd2lkdGg6IDc2MHB4O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0OHB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDk2cHgpO1xuICB6LWluZGV4OiAxMDAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNSGVhZGVyVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMjIlO1xuICBjb2xvcjogIzIwMjAxZjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNQ2xvc2VCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01Db250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01GaWVsZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01GaWVsZEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FTTUhlYWRlckFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FTTVRvZ2dsZUdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FTTVVwbG9hZEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIH1cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbmBcblxuLyogVmlzdWFsbHktaGlkZGVuIGJ1dCBzdGlsbCBmb2N1c2FibGUvY2xpY2thYmxlIHZpYSByZWYuIEF2b2lkcyByZWx5aW5nIG9uXG4gICBkaXNwbGF5Om5vbmUsIHdoaWNoIGEgZ2xvYmFsIGlucHV0IHN0eWxlIGluIHRoZSBob3N0IGFwcCBjYW4gb3ZlcnJpZGUuICovXG5leHBvcnQgY29uc3QgU0NBU01IaWRkZW5GaWxlSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTFweDtcbiAgYm9yZGVyOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01Ub2dnbGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyNmMGYwZjAnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBjb2xvcjogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyMyMDIwMWYnIDogJyM5OTknKX07XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gNTAwIDogNDAwKX07XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01QcmV2aWV3ID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDM2MHB4O1xuICBtYXgtaGVpZ2h0OiA1MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmYmZiZmI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzIwMjAxZjtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIHByZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01QcmV2aWV3RW1wdHkgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICM5OTk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxM3B4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01MYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAjNjY2O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01JbnB1dCA9IHN0eWxlZC5pbnB1dGBcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIG91dGxpbmU6IG5vbmU7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzJkNzdiZDtcbiAgfVxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNVGV4dGFyZWEgPSBzdHlsZWQudGV4dGFyZWFgXG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIG91dGxpbmU6IG5vbmU7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzJkNzdiZDtcbiAgfVxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNRm9vdGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01EZWxldGVTbG90ID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBidXR0b24ge1xuICAgIGNvbG9yOiAjYzcwNTA1ICFpbXBvcnRhbnQ7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNU2F2ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogODBweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01DYW5jZWxCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgJjpob3ZlciB7XG4gICAgYmFj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