@projectcor/maia-components 2.11.40-0 → 2.11.40-10
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/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +5 -3
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -4
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +100 -32
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +6 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +43 -44
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +61 -30
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +30 -4
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +7 -3
- package/lib/components/molecules/ChatAIMessages/newStyles.js +3 -3
- package/lib/constants/config.js +3 -1
- package/lib/context/cor-user.js +1 -1
- package/lib/hooks/useClientSearch.js +3 -2
- package/lib/hooks/useContextMentions.js +14 -14
- package/lib/hooks/useEntitySearch.js +537 -66
- package/lib/hooks/useMentionPopover.js +19 -5
- package/lib/hooks/useProjectSearch.js +3 -2
- package/lib/hooks/useRecentClientsSearch.js +3 -2
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +1 -2
- package/lib/services/maia/RecentTasks/getRecentTasks.js +15 -4
- package/lib/services/query/entitySearchQuery.js +4 -2
- package/lib/types/contextMention.js +1 -1
- package/lib/utils/renderContextMentions.js +15 -9
- package/package.json +2 -1
package/lib/context/cor-user.js
CHANGED
|
@@ -16,4 +16,4 @@ export var useUser = function useUser() {
|
|
|
16
16
|
}
|
|
17
17
|
return user;
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDb250ZXh0IiwiVXNlckNvbnRleHQiLCJDT1JVc2VyUm9sZSIsInVzZVVzZXIiLCJ1c2VyIiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dC9jb3ItdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBVc2VyQ29udGV4dCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi9wcm92aWRlcnMvVXNlclByb3ZpZGVyJ1xuXG5leHBvcnQgZW51bSBDT1JVc2VyUm9sZSB7XG4gIENMRVZFTCA9IDEsXG4gIERJUkVDVE9SID0gMixcbiAgUFJPSkVDVF9NQU5BR0VSID0gMyxcbiAgQ09MTEFCT1JBVE9SID0gNCxcbiAgRlJFRUxBTkNFUiA9IDUsXG4gIENMSUVOVCA9IDYsXG59XG5cbnR5cGUgUGVybWlzc2lvbkFjdGlvbiA9XG4gIHwgJ3ZpZXcnXG4gIHwgJ2VkaXQnXG4gIHwgJ2NyZWF0ZSdcbiAgfCAnZGVsZXRlJ1xuICB8ICdhcmNoaXZlJ1xuICB8ICdkZWxldGVGaWxlJ1xuICB8ICdpbnZvaWNlJ1xuICB8ICd2aWV3VXNlckNhcGFjaXR5J1xuICB8ICd2aWV3SG91cnMnXG4gIHwgJ2NyZWF0ZVN1YlRhc2tzJ1xuICB8ICd2aWV3VGFza3NPcHRpb25zJ1xuICB8ICd1cGRhdGVEZXNjcmlwdGlvbidcblxudHlwZSBQZXJtaXNzaW9uTW9kdWxlID1cbiAgfCAncXVvdGF0aW9ucydcbiAgfCAncHJveWVjdG9zJ1xuICB8ICd0YXNrcydcbiAgfCAndGFza3NfZGVhZGxpbmUnXG4gIHwgJ2NsaWVudHMnXG4gIHwgJ3VzZXJzJ1xuICB8ICdsZWF2ZXMnXG4gIHwgJ3Byb2plY3RfZ2FudHQnXG4gIHwgJ3NldHRpbmdzJ1xuICB8ICdwYXNzd29yZHMnXG4gIHwgJ25vdGlmaWNhdGlvbnMnXG4gIHwgJ2hvdXJzJ1xuICB8ICdwcm9qZWN0X3RlbXBsYXRlcydcbiAgfCAnbWV0cmljcydcbiAgfCAnZGFzaGJvYXJkcydcbiAgfCAnZ2FudHQnXG4gIHwgJ3NhbGFyeSdcbiAgfCAnYWlfYWdlbnRzJ1xuXG50eXBlIEFjY2Vzc1R5cGVNb2R1bGUgPSBQZXJtaXNzaW9uTW9kdWxlIHwgJ3BsYW5uZXJfdmlldycgfCAncGxhbm5lcl9lZGl0J1xuXG5leHBvcnQgdHlwZSBDT1JVc2VyID0ge1xuICB1c2VyX3Bvc2l0aW9uPzogc3RyaW5nXG4gIGNvbXBhbnlfaWQ6IG51bWJlclxuICBpZDogbnVtYmVyXG4gIGZpcnN0TmFtZTogc3RyaW5nXG4gIGxhc3ROYW1lOiBzdHJpbmdcbiAgLyoqIFByZXNlbnRlIGVuIHJ1bnRpbWUgdsOtYSBgVXNlclByb3ZpZGVyYDsgdXNhZG8gcC4gZWouIGVuIHRvb2x0aXAgZGUgbWVuY2nDs24g4oCcWW/igJ0uICovXG4gIGVtYWlsPzogc3RyaW5nXG4gIHBpY3R1cmU6IHN0cmluZ1xuICByb2xlOiBzdHJpbmdcbiAgY29tcGFueTogc3RyaW5nXG4gIHJvbGVfaWQ6IENPUlVzZXJSb2xlXG4gIGxhbmc6IHN0cmluZ1xuICBwZXJtaXNzaW9ucz86IHtcbiAgICBbTSBpbiBQZXJtaXNzaW9uTW9kdWxlXT86IFBhcnRpYWw8UmVjb3JkPFBlcm1pc3Npb25BY3Rpb24sIGJvb2xlYW4+PlxuICB9XG4gIGFjY2Vzc190eXBlPzoge1xuICAgIFtNIGluIEFjY2Vzc1R5cGVNb2R1bGVdPzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVVzZXIgPSAoKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VDb250ZXh0KFVzZXJDb250ZXh0KVxuXG4gIGlmICghdXNlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNlckNvbnRleHQgbm90IGZvdW5kJylcbiAgfVxuXG4gIHJldHVybiB1c2VyIGFzIENPUlVzZXJcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLE9BQU87QUFDbEMsU0FBU0MsV0FBVyxRQUFRLG9EQUFvRDtBQUVoRixXQUFZQyxXQUFXLDBCQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQUEsT0FBWEEsV0FBVztBQUFBO0FBa0V2QixPQUFPLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBLEVBQVM7RUFDM0IsSUFBTUMsSUFBSSxHQUFHSixVQUFVLENBQUNDLFdBQVcsQ0FBQztFQUVwQyxJQUFJLENBQUNHLElBQUksRUFBRTtJQUNULE1BQU0sSUFBSUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDO0VBQzFDO0VBRUEsT0FBT0QsSUFBSTtBQUNiLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -2,6 +2,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
import { useLazyQuery } from '@apollo/client';
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
4
|
import { SEARCH_CLIENTS } from '../services/query';
|
|
5
|
+
import { SEARCH_QUERY_DEBOUNCE_MS } from '../constants/config';
|
|
5
6
|
import { useDebounce } from './useDebounce';
|
|
6
7
|
var mapperClientsSearch = function mapperClientsSearch(values) {
|
|
7
8
|
return values === null || values === void 0 ? void 0 : values.map(function (value) {
|
|
@@ -67,7 +68,7 @@ export var useClientSearch = function useClientSearch() {
|
|
|
67
68
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
68
69
|
pagination = _useState0[0],
|
|
69
70
|
setPagination = _useState0[1];
|
|
70
|
-
var debouncedSearchValue = useDebounce(searchValue,
|
|
71
|
+
var debouncedSearchValue = useDebounce(searchValue, SEARCH_QUERY_DEBOUNCE_MS);
|
|
71
72
|
var _useLazyQuery = useLazyQuery(SEARCH_CLIENTS, {
|
|
72
73
|
variables: {
|
|
73
74
|
page: 1,
|
|
@@ -159,4 +160,4 @@ export var useClientSearch = function useClientSearch() {
|
|
|
159
160
|
loadPage: loadPage
|
|
160
161
|
};
|
|
161
162
|
};
|
|
162
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlNFQVJDSF9DTElFTlRTIiwidXNlRGVib3VuY2UiLCJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwibWFwIiwidmFsdWUiLCJpZCIsIm5hbWUiLCJEYXRhUGFyc2VkVG9DbGllbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJzZXR0ZXJEYXRhIiwiYXJncyIsInNlYXJjaFZhbHVlIiwibGVuZ3RoIiwiYXJnIiwiY2xpZW50TmFtZSIsImhpZ2hsaWdodGVkVmFsdWUiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwidmFsdWVUb0NoYW5nZSIsInNsaWNlIiwiZXNjYXBlZFNlYXJjaFZhbHVlIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNvbmNhdCIsInRpdGxlIiwidXNlQ2xpZW50U2VhcmNoIiwiX0RhdGFQYXJzZWRUb0NsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJwYWdlIiwicGVyUGFnZSIsInRvdGFsIiwibGFzdFBhZ2UiLCJfdXNlU3RhdGUwIiwicGFnaW5hdGlvbiIsInNldFBhZ2luYXRpb24iLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsImNsaWVudERhdGEiLCJkYXRhIiwibG9hZGluZ0NsaWVudHMiLCJjbGllbnRFcnJvciIsImhhbmRsZUZldGNoQ2xpZW50cyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNsaWVudFN0YXR1c0lkIiwiX2NsaWVudERhdGEkY2xpZW50cyIsIm1hcHBlZENsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImNsZWFyQ2xpZW50cyIsImxvYWRQYWdlIiwiY2xpZW50c0xvYWRpbmciLCJjbGllbnRzRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ2xpZW50U2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi91c2VEZWJvdW5jZSdcblxuZXhwb3J0IHR5cGUgQ2xpZW50R3JhcGhRTCA9IHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgY2xpZW50U3RhdHVzSWQ/OiBudW1iZXJbXVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRTZXR0ZXIgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgY2xpZW50U3RhdHVzSWQ/OiBudW1iZXJbXVxufVxuXG50eXBlIFF1ZXJ5Q2xpZW50RGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBwZXJQYWdlOiBudW1iZXJcbiAgICBwYWdlOiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U6IG51bWJlclxuICAgIGRhdGE6IENsaWVudEdyYXBoUUxbXVxuICB9XG59XG5cbmNvbnN0IG1hcHBlckNsaWVudHNTZWFyY2ggPSAodmFsdWVzOiBDbGllbnRHcmFwaFFMW10pOiBDbGllbnRHcmFwaFFMW10gPT4ge1xuICByZXR1cm4gdmFsdWVzPy5tYXAodmFsdWUgPT4gKHtcbiAgICBpZDogdmFsdWUuaWQsXG4gICAgbmFtZTogdmFsdWUubmFtZSxcbiAgfSkpXG59XG5cbmV4cG9ydCBjb25zdCBEYXRhUGFyc2VkVG9DbGllbnRzID0gKCkgPT4ge1xuICBjb25zdCBbY2xpZW50cywgc2V0Q2xpZW50c10gPSB1c2VTdGF0ZTxDbGllbnRTZXR0ZXJbXT4oW10pXG5cbiAgY29uc3Qgc2V0dGVyRGF0YSA9IChhcmdzOiBDbGllbnRHcmFwaFFMW10sIHNlYXJjaFZhbHVlPzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgc2V0Q2xpZW50cyhbXSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Q2xpZW50cyhcbiAgICAgICAgYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgICBjb25zdCBjbGllbnROYW1lID0gYXJnLm5hbWUgfHwgJydcbiAgICAgICAgICBsZXQgaGlnaGxpZ2h0ZWRWYWx1ZSA9ICcnXG4gICAgICAgICAgaWYgKHNlYXJjaFZhbHVlICYmIGNsaWVudE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgY29uc3QgdGV4dEluZGV4ID0gY2xpZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9DaGFuZ2UgPSBjbGllbnROYW1lLnNsaWNlKHRleHRJbmRleCwgdGV4dEluZGV4ICsgc2VhcmNoVmFsdWUubGVuZ3RoKVxuICAgICAgICAgICAgY29uc3QgZXNjYXBlZFNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKVxuICAgICAgICAgICAgaGlnaGxpZ2h0ZWRWYWx1ZSA9IGNsaWVudE5hbWUucmVwbGFjZShcbiAgICAgICAgICAgICAgbmV3IFJlZ0V4cChlc2NhcGVkU2VhcmNoVmFsdWUsICdpJyksXG4gICAgICAgICAgICAgIGA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDA4OGNjOyBmb250LXdlaWdodDogYm9sZDtcIj4ke3ZhbHVlVG9DaGFuZ2V9PC9zcGFuPmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBhcmcuaWQsXG4gICAgICAgICAgICBuYW1lOiBhcmcubmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiBzZWFyY2hWYWx1ZSAmJiBoaWdobGlnaHRlZFZhbHVlID8gaGlnaGxpZ2h0ZWRWYWx1ZSA6IGNsaWVudE5hbWUsXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBjbGllbnRzLCBzZXR0ZXJEYXRhIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZUNsaWVudFNlYXJjaCA9ICgpID0+IHtcbiAgY29uc3QgeyBjbGllbnRzLCBzZXR0ZXJEYXRhIH0gPSBEYXRhUGFyc2VkVG9DbGllbnRzKClcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWFyY2hWYWx1ZSwgc2V0U2VhcmNoVmFsdWVdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtwYWdpbmF0aW9uLCBzZXRQYWdpbmF0aW9uXSA9IHVzZVN0YXRlKHtcbiAgICBwYWdlOiAxLFxuICAgIHBlclBhZ2U6IDIwLFxuICAgIHRvdGFsOiAwLFxuICAgIGxhc3RQYWdlOiAwLFxuICB9KVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIDUwMClcblxuICBjb25zdCBbZmV0Y2hDbGllbnRzLCB7IGRhdGE6IGNsaWVudERhdGEsIGxvYWRpbmc6IGxvYWRpbmdDbGllbnRzLCBlcnJvcjogY2xpZW50RXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxRdWVyeUNsaWVudERhdGE+KFNFQVJDSF9DTElFTlRTLCB7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcjoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgY29uc3QgaGFuZGxlRmV0Y2hDbGllbnRzID0gKHZhbHVlOiBzdHJpbmcsIHBhZ2U6IG51bWJlciA9IDEsIHBlclBhZ2U6IG51bWJlciA9IDIwLCBjbGllbnRTdGF0dXNJZDogbnVtYmVyID0gMSkgPT4ge1xuICAgIGNvbnN0IGZpbHRlciA9IHZhbHVlID8geyBuYW1lOiB2YWx1ZSwgY2xpZW50U3RhdHVzSWQ6IFtjbGllbnRTdGF0dXNJZF0gfSA6IHt9XG4gICAgZmV0Y2hDbGllbnRzKHtcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwYWdlLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nQ2xpZW50cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChjbGllbnRFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgfVxuICB9LCBbY2xpZW50RXJyb3IsIGxvYWRpbmdDbGllbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjbGllbnREYXRhPy5jbGllbnRzKSB7XG4gICAgICBjb25zdCB7IGRhdGEsIHRvdGFsLCBwZXJQYWdlLCBwYWdlLCBsYXN0UGFnZSB9ID0gY2xpZW50RGF0YS5jbGllbnRzXG4gICAgICBjb25zdCBtYXBwZWRDbGllbnRzID0gbWFwcGVyQ2xpZW50c1NlYXJjaChkYXRhKVxuICAgICAgc2V0dGVyRGF0YShtYXBwZWRDbGllbnRzLCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICAgIHNldFBhZ2luYXRpb24oe1xuICAgICAgICBwYWdlOiBwYWdlIHx8IDEsXG4gICAgICAgIHBlclBhZ2UsXG4gICAgICAgIHRvdGFsLFxuICAgICAgICBsYXN0UGFnZSxcbiAgICAgIH0pXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbY2xpZW50RGF0YSwgZGVib3VuY2VkU2VhcmNoVmFsdWVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXR0ZXJEYXRhKFtdLCAnJylcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgdXBkYXRlU2VhcmNoVmFsdWUgPSAobmV3U2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKG5ld1NlYXJjaFZhbHVlKVxuICB9XG5cbiAgY29uc3QgY2xlYXJDbGllbnRzID0gKCkgPT4ge1xuICAgIHNldHRlckRhdGEoW10sICcnKVxuICAgIHNldFNlYXJjaFZhbHVlKCcnKVxuICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgc2V0RXJyb3IoZmFsc2UpXG4gIH1cblxuICBjb25zdCBsb2FkUGFnZSA9IChwYWdlOiBudW1iZXIpID0+IHtcbiAgICBoYW5kbGVGZXRjaENsaWVudHMoZGVib3VuY2VkU2VhcmNoVmFsdWUsIHBhZ2UsIHBhZ2luYXRpb24ucGVyUGFnZSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmV0Y2hDbGllbnRzLFxuICAgIGNsaWVudHNMb2FkaW5nOiBsb2FkaW5nLFxuICAgIGNsaWVudHNFcnJvcjogZXJyb3IsXG4gICAgY2xpZW50cyxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgICBjbGVhckNsaWVudHMsXG4gICAgcGFnaW5hdGlvbixcbiAgICBsb2FkUGFnZSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsWUFBWSxRQUFRLGdCQUFnQjtBQUM3QyxTQUFTQyxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFDbEQsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUF5QjNDLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLE1BQXVCLEVBQXNCO0VBQ3hFLE9BQU9BLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFQyxHQUFHLENBQUMsVUFBQUMsS0FBSztJQUFBLE9BQUs7TUFDM0JDLEVBQUUsRUFBRUQsS0FBSyxDQUFDQyxFQUFFO01BQ1pDLElBQUksRUFBRUYsS0FBSyxDQUFDRTtJQUNkLENBQUM7RUFBQSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7RUFDdkMsSUFBQUMsU0FBQSxHQUE4QlYsUUFBUSxDQUFpQixFQUFFLENBQUM7SUFBQVcsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBbkRHLE9BQU8sR0FBQUYsVUFBQTtJQUFFRyxVQUFVLEdBQUFILFVBQUE7RUFFMUIsSUFBTUksVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLElBQXFCLEVBQUVDLFdBQW9CLEVBQUs7SUFDbEUsSUFBSSxDQUFDRCxJQUFJLENBQUNFLE1BQU0sRUFBRTtNQUNoQkosVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDLE1BQU07TUFDTEEsVUFBVSxDQUNSRSxJQUFJLENBQUNYLEdBQUcsQ0FBQyxVQUFBYyxHQUFHLEVBQUk7UUFDZCxJQUFNQyxVQUFVLEdBQUdELEdBQUcsQ0FBQ1gsSUFBSSxJQUFJLEVBQUU7UUFDakMsSUFBSWEsZ0JBQWdCLEdBQUcsRUFBRTtRQUN6QixJQUFJSixXQUFXLElBQUlHLFVBQVUsQ0FBQ0UsaUJBQWlCLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUNOLFdBQVcsQ0FBQ0ssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7VUFDM0YsSUFBTUUsU0FBUyxHQUFHSixVQUFVLENBQUNLLFdBQVcsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQ1QsV0FBVyxDQUFDUSxXQUFXLENBQUMsQ0FBQyxDQUFDO1VBQzdFLElBQU1FLGFBQWEsR0FBR1AsVUFBVSxDQUFDUSxLQUFLLENBQUNKLFNBQVMsRUFBRUEsU0FBUyxHQUFHUCxXQUFXLENBQUNDLE1BQU0sQ0FBQztVQUNqRixJQUFNVyxrQkFBa0IsR0FBR1osV0FBVyxDQUFDYSxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO1VBQzdFVCxnQkFBZ0IsR0FBR0QsVUFBVSxDQUFDVSxPQUFPLENBQ25DLElBQUlDLE1BQU0sQ0FBQ0Ysa0JBQWtCLEVBQUUsR0FBRyxDQUFDLHdEQUFBRyxNQUFBLENBQ2lCTCxhQUFhLFlBQ25FLENBQUM7UUFDSDtRQUNBLE9BQU87VUFDTHBCLEVBQUUsRUFBRVksR0FBRyxDQUFDWixFQUFFO1VBQ1ZDLElBQUksRUFBRVcsR0FBRyxDQUFDWCxJQUFJO1VBQ2R5QixLQUFLLEVBQUVoQixXQUFXLElBQUlJLGdCQUFnQixHQUFHQSxnQkFBZ0IsR0FBR0Q7UUFDOUQsQ0FBQztNQUNILENBQUMsQ0FDSCxDQUFDO0lBQ0g7RUFDRixDQUFDO0VBQ0QsT0FBTztJQUFFUCxPQUFPLEVBQVBBLE9BQU87SUFBRUUsVUFBVSxFQUFWQTtFQUFXLENBQUM7QUFDaEMsQ0FBQztBQUVELE9BQU8sSUFBTW1CLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUFTO0VBQ25DLElBQUFDLG9CQUFBLEdBQWdDMUIsbUJBQW1CLENBQUMsQ0FBQztJQUE3Q0ksT0FBTyxHQUFBc0Isb0JBQUEsQ0FBUHRCLE9BQU87SUFBRUUsVUFBVSxHQUFBb0Isb0JBQUEsQ0FBVnBCLFVBQVU7RUFDM0IsSUFBQXFCLFVBQUEsR0FBOEJwQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFxQyxVQUFBLEdBQUF6QixjQUFBLENBQUF3QixVQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBO0VBQzFCLElBQUFHLFVBQUEsR0FBMEJ4QyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUF5QyxVQUFBLEdBQUE3QixjQUFBLENBQUE0QixVQUFBO0lBQWxDRSxLQUFLLEdBQUFELFVBQUE7SUFBRUUsUUFBUSxHQUFBRixVQUFBO0VBQ3RCLElBQUFHLFVBQUEsR0FBc0M1QyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQUE2QyxVQUFBLEdBQUFqQyxjQUFBLENBQUFnQyxVQUFBO0lBQTNDM0IsV0FBVyxHQUFBNEIsVUFBQTtJQUFFQyxjQUFjLEdBQUFELFVBQUE7RUFDbEMsSUFBQUUsVUFBQSxHQUFvQy9DLFFBQVEsQ0FBQztNQUMzQ2dELElBQUksRUFBRSxDQUFDO01BQ1BDLE9BQU8sRUFBRSxFQUFFO01BQ1hDLEtBQUssRUFBRSxDQUFDO01BQ1JDLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FBQztJQUFBQyxVQUFBLEdBQUF4QyxjQUFBLENBQUFtQyxVQUFBO0lBTEtNLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFPaEMsSUFBTUcsb0JBQW9CLEdBQUdyRCxXQUFXLENBQUNlLFdBQVcsRUFBRSxHQUFHLENBQUM7RUFFMUQsSUFBQXVDLGFBQUEsR0FDRTFELFlBQVksQ0FBa0JHLGNBQWMsRUFBRTtNQUM1Q3dELFNBQVMsRUFBRTtRQUNUVCxJQUFJLEVBQUUsQ0FBQztRQUNQQyxPQUFPLEVBQUUsRUFBRTtRQUNYUyxNQUFNLEVBQUUsQ0FBQztNQUNYO0lBQ0YsQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQS9DLGNBQUEsQ0FBQTRDLGFBQUE7SUFQR0ksWUFBWSxHQUFBRCxjQUFBO0lBQUFFLGVBQUEsR0FBQUYsY0FBQTtJQUFVRyxVQUFVLEdBQUFELGVBQUEsQ0FBaEJFLElBQUk7SUFBdUJDLGNBQWMsR0FBQUgsZUFBQSxDQUF2QnZCLE9BQU87SUFBeUIyQixXQUFXLEdBQUFKLGVBQUEsQ0FBbEJuQixLQUFLO0VBU3ZFLElBQU13QixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJNUQsS0FBYSxFQUF5RTtJQUFBLElBQXZFMEMsSUFBWSxHQUFBbUIsU0FBQSxDQUFBakQsTUFBQSxRQUFBaUQsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxDQUFDO0lBQUEsSUFBRWxCLE9BQWUsR0FBQWtCLFNBQUEsQ0FBQWpELE1BQUEsUUFBQWlELFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsRUFBRTtJQUFBLElBQUVFLGNBQXNCLEdBQUFGLFNBQUEsQ0FBQWpELE1BQUEsUUFBQWlELFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsQ0FBQztJQUMzRyxJQUFNVCxNQUFNLEdBQUdwRCxLQUFLLEdBQUc7TUFBRUUsSUFBSSxFQUFFRixLQUFLO01BQUUrRCxjQUFjLEVBQUUsQ0FBQ0EsY0FBYztJQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0VULFlBQVksQ0FBQztNQUNYSCxTQUFTLEVBQUU7UUFDVFQsSUFBSSxFQUFKQSxJQUFJO1FBQ0pDLE9BQU8sRUFBUEEsT0FBTztRQUNQUyxNQUFNLEVBQU5BO01BQ0Y7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQzRCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUlpRSxjQUFjLEVBQUU7TUFDbEJ6QixVQUFVLENBQUMsSUFBSSxDQUFDO01BQ2hCSSxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ2pCO0lBQ0EsSUFBSXNCLFdBQVcsRUFBRTtNQUNmdEIsUUFBUSxDQUFDLElBQUksQ0FBQztNQUNkSixVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ25CO0VBQ0YsQ0FBQyxFQUFFLENBQUMwQixXQUFXLEVBQUVELGNBQWMsQ0FBQyxDQUFDO0VBRWpDakUsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJK0QsVUFBVSxhQUFWQSxVQUFVLGVBQVZBLFVBQVUsQ0FBRWpELE9BQU8sRUFBRTtNQUN2QixJQUFBeUQsbUJBQUEsR0FBaURSLFVBQVUsQ0FBQ2pELE9BQU87UUFBM0RrRCxJQUFJLEdBQUFPLG1CQUFBLENBQUpQLElBQUk7UUFBRWIsS0FBSyxHQUFBb0IsbUJBQUEsQ0FBTHBCLEtBQUs7UUFBRUQsT0FBTyxHQUFBcUIsbUJBQUEsQ0FBUHJCLE9BQU87UUFBRUQsSUFBSSxHQUFBc0IsbUJBQUEsQ0FBSnRCLElBQUk7UUFBRUcsUUFBUSxHQUFBbUIsbUJBQUEsQ0FBUm5CLFFBQVE7TUFDNUMsSUFBTW9CLGFBQWEsR0FBR3BFLG1CQUFtQixDQUFDNEQsSUFBSSxDQUFDO01BQy9DaEQsVUFBVSxDQUFDd0QsYUFBYSxFQUFFaEIsb0JBQW9CLENBQUM7TUFDL0NELGFBQWEsQ0FBQztRQUNaTixJQUFJLEVBQUVBLElBQUksSUFBSSxDQUFDO1FBQ2ZDLE9BQU8sRUFBUEEsT0FBTztRQUNQQyxLQUFLLEVBQUxBLEtBQUs7UUFDTEMsUUFBUSxFQUFSQTtNQUNGLENBQUMsQ0FBQztNQUNGWixVQUFVLENBQUMsS0FBSyxDQUFDO01BQ2pCSSxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ2pCO0VBQ0YsQ0FBQyxFQUFFLENBQUNtQixVQUFVLEVBQUVQLG9CQUFvQixDQUFDLENBQUM7RUFFdEN4RCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUl3RCxvQkFBb0IsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDLEVBQUU7TUFDL0JOLGtCQUFrQixDQUFDWCxvQkFBb0IsQ0FBQztJQUMxQyxDQUFDLE1BQU07TUFDTHhDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO01BQ2xCd0IsVUFBVSxDQUFDLEtBQUssQ0FBQztNQUNqQkksUUFBUSxDQUFDLEtBQUssQ0FBQztJQUNqQjtFQUNGLENBQUMsRUFBRSxDQUFDWSxvQkFBb0IsQ0FBQyxDQUFDO0VBRTFCLElBQU1rQixpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxjQUFzQixFQUFLO0lBQ3BENUIsY0FBYyxDQUFDNEIsY0FBYyxDQUFDO0VBQ2hDLENBQUM7RUFFRCxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCNUQsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIrQixjQUFjLENBQUMsRUFBRSxDQUFDO0lBQ2xCUCxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ2pCSSxRQUFRLENBQUMsS0FBSyxDQUFDO0VBQ2pCLENBQUM7RUFFRCxJQUFNaUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUk1QixJQUFZLEVBQUs7SUFDakNrQixrQkFBa0IsQ0FBQ1gsb0JBQW9CLEVBQUVQLElBQUksRUFBRUssVUFBVSxDQUFDSixPQUFPLENBQUM7RUFDcEUsQ0FBQztFQUVELE9BQU87SUFDTFcsWUFBWSxFQUFaQSxZQUFZO0lBQ1ppQixjQUFjLEVBQUV2QyxPQUFPO0lBQ3ZCd0MsWUFBWSxFQUFFcEMsS0FBSztJQUNuQjdCLE9BQU8sRUFBUEEsT0FBTztJQUNQNEQsaUJBQWlCLEVBQWpCQSxpQkFBaUI7SUFDakJFLFlBQVksRUFBWkEsWUFBWTtJQUNadEIsVUFBVSxFQUFWQSxVQUFVO0lBQ1Z1QixRQUFRLEVBQVJBO0VBQ0YsQ0FBQztBQUNILENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlNFQVJDSF9DTElFTlRTIiwiU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIiwidXNlRGVib3VuY2UiLCJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwibWFwIiwidmFsdWUiLCJpZCIsIm5hbWUiLCJEYXRhUGFyc2VkVG9DbGllbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJzZXR0ZXJEYXRhIiwiYXJncyIsInNlYXJjaFZhbHVlIiwibGVuZ3RoIiwiYXJnIiwiY2xpZW50TmFtZSIsImhpZ2hsaWdodGVkVmFsdWUiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwidmFsdWVUb0NoYW5nZSIsInNsaWNlIiwiZXNjYXBlZFNlYXJjaFZhbHVlIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNvbmNhdCIsInRpdGxlIiwidXNlQ2xpZW50U2VhcmNoIiwiX0RhdGFQYXJzZWRUb0NsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJwYWdlIiwicGVyUGFnZSIsInRvdGFsIiwibGFzdFBhZ2UiLCJfdXNlU3RhdGUwIiwicGFnaW5hdGlvbiIsInNldFBhZ2luYXRpb24iLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsImNsaWVudERhdGEiLCJkYXRhIiwibG9hZGluZ0NsaWVudHMiLCJjbGllbnRFcnJvciIsImhhbmRsZUZldGNoQ2xpZW50cyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNsaWVudFN0YXR1c0lkIiwiX2NsaWVudERhdGEkY2xpZW50cyIsIm1hcHBlZENsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImNsZWFyQ2xpZW50cyIsImxvYWRQYWdlIiwiY2xpZW50c0xvYWRpbmciLCJjbGllbnRzRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ2xpZW50U2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcbmltcG9ydCB7IFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlRGVib3VuY2UnXG5cbmV4cG9ydCB0eXBlIENsaWVudEdyYXBoUUwgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGNsaWVudFN0YXR1c0lkPzogbnVtYmVyW11cbn1cblxuZXhwb3J0IHR5cGUgQ2xpZW50U2V0dGVyID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIGNsaWVudFN0YXR1c0lkPzogbnVtYmVyW11cbn1cblxudHlwZSBRdWVyeUNsaWVudERhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbDogbnVtYmVyXG4gICAgcGVyUGFnZTogbnVtYmVyXG4gICAgcGFnZTogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlOiBudW1iZXJcbiAgICBkYXRhOiBDbGllbnRHcmFwaFFMW11cbiAgfVxufVxuXG5jb25zdCBtYXBwZXJDbGllbnRzU2VhcmNoID0gKHZhbHVlczogQ2xpZW50R3JhcGhRTFtdKTogQ2xpZW50R3JhcGhRTFtdID0+IHtcbiAgcmV0dXJuIHZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IHZhbHVlLmlkLFxuICAgIG5hbWU6IHZhbHVlLm5hbWUsXG4gIH0pKVxufVxuXG5leHBvcnQgY29uc3QgRGF0YVBhcnNlZFRvQ2xpZW50cyA9ICgpID0+IHtcbiAgY29uc3QgW2NsaWVudHMsIHNldENsaWVudHNdID0gdXNlU3RhdGU8Q2xpZW50U2V0dGVyW10+KFtdKVxuXG4gIGNvbnN0IHNldHRlckRhdGEgPSAoYXJnczogQ2xpZW50R3JhcGhRTFtdLCBzZWFyY2hWYWx1ZT86IHN0cmluZykgPT4ge1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHNldENsaWVudHMoW10pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENsaWVudHMoXG4gICAgICAgIGFyZ3MubWFwKGFyZyA9PiB7XG4gICAgICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGFyZy5uYW1lIHx8ICcnXG4gICAgICAgICAgbGV0IGhpZ2hsaWdodGVkVmFsdWUgPSAnJ1xuICAgICAgICAgIGlmIChzZWFyY2hWYWx1ZSAmJiBjbGllbnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRJbmRleCA9IGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICBjb25zdCB2YWx1ZVRvQ2hhbmdlID0gY2xpZW50TmFtZS5zbGljZSh0ZXh0SW5kZXgsIHRleHRJbmRleCArIHNlYXJjaFZhbHVlLmxlbmd0aClcbiAgICAgICAgICAgIGNvbnN0IGVzY2FwZWRTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJylcbiAgICAgICAgICAgIGhpZ2hsaWdodGVkVmFsdWUgPSBjbGllbnROYW1lLnJlcGxhY2UoXG4gICAgICAgICAgICAgIG5ldyBSZWdFeHAoZXNjYXBlZFNlYXJjaFZhbHVlLCAnaScpLFxuICAgICAgICAgICAgICBgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzAwODhjYzsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+JHt2YWx1ZVRvQ2hhbmdlfTwvc3Bhbj5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogYXJnLmlkLFxuICAgICAgICAgICAgbmFtZTogYXJnLm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogc2VhcmNoVmFsdWUgJiYgaGlnaGxpZ2h0ZWRWYWx1ZSA/IGhpZ2hsaWdodGVkVmFsdWUgOiBjbGllbnROYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgY2xpZW50cywgc2V0dGVyRGF0YSB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDbGllbnRTZWFyY2ggPSAoKSA9PiB7XG4gIGNvbnN0IHsgY2xpZW50cywgc2V0dGVyRGF0YSB9ID0gRGF0YVBhcnNlZFRvQ2xpZW50cygpXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbcGFnaW5hdGlvbiwgc2V0UGFnaW5hdGlvbl0gPSB1c2VTdGF0ZSh7XG4gICAgcGFnZTogMSxcbiAgICBwZXJQYWdlOiAyMCxcbiAgICB0b3RhbDogMCxcbiAgICBsYXN0UGFnZTogMCxcbiAgfSlcblxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG5cbiAgY29uc3QgW2ZldGNoQ2xpZW50cywgeyBkYXRhOiBjbGllbnREYXRhLCBsb2FkaW5nOiBsb2FkaW5nQ2xpZW50cywgZXJyb3I6IGNsaWVudEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8UXVlcnlDbGllbnREYXRhPihTRUFSQ0hfQ0xJRU5UUywge1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGhhbmRsZUZldGNoQ2xpZW50cyA9ICh2YWx1ZTogc3RyaW5nLCBwYWdlOiBudW1iZXIgPSAxLCBwZXJQYWdlOiBudW1iZXIgPSAyMCwgY2xpZW50U3RhdHVzSWQ6IG51bWJlciA9IDEpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB2YWx1ZSA/IHsgbmFtZTogdmFsdWUsIGNsaWVudFN0YXR1c0lkOiBbY2xpZW50U3RhdHVzSWRdIH0gOiB7fVxuICAgIGZldGNoQ2xpZW50cyh7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZSxcbiAgICAgICAgcGVyUGFnZSxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9hZGluZ0NsaWVudHMpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgICBpZiAoY2xpZW50RXJyb3IpIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudEVycm9yLCBsb2FkaW5nQ2xpZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xpZW50RGF0YT8uY2xpZW50cykge1xuICAgICAgY29uc3QgeyBkYXRhLCB0b3RhbCwgcGVyUGFnZSwgcGFnZSwgbGFzdFBhZ2UgfSA9IGNsaWVudERhdGEuY2xpZW50c1xuICAgICAgY29uc3QgbWFwcGVkQ2xpZW50cyA9IG1hcHBlckNsaWVudHNTZWFyY2goZGF0YSlcbiAgICAgIHNldHRlckRhdGEobWFwcGVkQ2xpZW50cywgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRQYWdpbmF0aW9uKHtcbiAgICAgICAgcGFnZTogcGFnZSB8fCAxLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICB0b3RhbCxcbiAgICAgICAgbGFzdFBhZ2UsXG4gICAgICB9KVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudERhdGEsIGRlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGhhbmRsZUZldGNoQ2xpZW50cyhkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0dGVyRGF0YShbXSwgJycpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IHVwZGF0ZVNlYXJjaFZhbHVlID0gKG5ld1NlYXJjaFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXRTZWFyY2hWYWx1ZShuZXdTZWFyY2hWYWx1ZSlcbiAgfVxuXG4gIGNvbnN0IGNsZWFyQ2xpZW50cyA9ICgpID0+IHtcbiAgICBzZXR0ZXJEYXRhKFtdLCAnJylcbiAgICBzZXRTZWFyY2hWYWx1ZSgnJylcbiAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgbG9hZFBhZ2UgPSAocGFnZTogbnVtYmVyKSA9PiB7XG4gICAgaGFuZGxlRmV0Y2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlLCBwYWdlLCBwYWdpbmF0aW9uLnBlclBhZ2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoQ2xpZW50cyxcbiAgICBjbGllbnRzTG9hZGluZzogbG9hZGluZyxcbiAgICBjbGllbnRzRXJyb3I6IGVycm9yLFxuICAgIGNsaWVudHMsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgY2xlYXJDbGllbnRzLFxuICAgIHBhZ2luYXRpb24sXG4gICAgbG9hZFBhZ2UsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUMzQyxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xELFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQXlCM0MsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsTUFBdUIsRUFBc0I7RUFDeEUsT0FBT0EsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVDLEdBQUcsQ0FBQyxVQUFBQyxLQUFLO0lBQUEsT0FBSztNQUMzQkMsRUFBRSxFQUFFRCxLQUFLLENBQUNDLEVBQUU7TUFDWkMsSUFBSSxFQUFFRixLQUFLLENBQUNFO0lBQ2QsQ0FBQztFQUFBLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUEsRUFBUztFQUN2QyxJQUFBQyxTQUFBLEdBQThCWCxRQUFRLENBQWlCLEVBQUUsQ0FBQztJQUFBWSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFuREcsT0FBTyxHQUFBRixVQUFBO0lBQUVHLFVBQVUsR0FBQUgsVUFBQTtFQUUxQixJQUFNSSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSUMsSUFBcUIsRUFBRUMsV0FBb0Is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
|
|
@@ -2,7 +2,9 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
import { useCallback, useRef, useState } from 'react';
|
|
3
3
|
import { serializeMention } from '../utils/renderContextMentions';
|
|
4
4
|
/**
|
|
5
|
-
* Inspecciona la selección actual. Formato: [límite de palabra] @+ query
|
|
5
|
+
* Inspecciona la selección actual. Formato: [límite de palabra] @+ query hasta el caret.
|
|
6
|
+
* Permite espacios simples dentro del query (p. ej. "@Juan Perez") y cierra
|
|
7
|
+
* el trigger cuando detecta dos espacios consecutivos.
|
|
6
8
|
* La tab objetivo es la que corresponde al número de `@` (1 = primera tab visible, etc.).
|
|
7
9
|
*/
|
|
8
10
|
var detectMentionTrigger = function detectMentionTrigger(editorEl, range) {
|
|
@@ -34,17 +36,7 @@ var detectMentionTrigger = function detectMentionTrigger(editorEl, range) {
|
|
|
34
36
|
anchor: null
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
|
-
while (i >= 0 && text[i] !== '@')
|
|
38
|
-
if (/\s/.test(text[i])) {
|
|
39
|
-
return {
|
|
40
|
-
active: false,
|
|
41
|
-
query: '',
|
|
42
|
-
atRunLength: 0,
|
|
43
|
-
anchor: null
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
i -= 1;
|
|
47
|
-
}
|
|
39
|
+
while (i >= 0 && text[i] !== '@') i -= 1;
|
|
48
40
|
if (i < 0 || text[i] !== '@') {
|
|
49
41
|
return {
|
|
50
42
|
active: false,
|
|
@@ -70,7 +62,15 @@ var detectMentionTrigger = function detectMentionTrigger(editorEl, range) {
|
|
|
70
62
|
};
|
|
71
63
|
}
|
|
72
64
|
var query = text.slice(runEnd + 1, caret);
|
|
73
|
-
if (/\
|
|
65
|
+
if (/\n|\r/.test(query)) {
|
|
66
|
+
return {
|
|
67
|
+
active: false,
|
|
68
|
+
query: '',
|
|
69
|
+
atRunLength: 0,
|
|
70
|
+
anchor: null
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (query.includes(' ')) {
|
|
74
74
|
return {
|
|
75
75
|
active: false,
|
|
76
76
|
query: '',
|
|
@@ -267,4 +267,4 @@ export var useContextMentions = function useContextMentions() {
|
|
|
267
267
|
focus: focus
|
|
268
268
|
};
|
|
269
269
|
};
|
|
270
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZVN0YXRlIiwic2VyaWFsaXplTWVudGlvbiIsImRldGVjdE1lbnRpb25UcmlnZ2VyIiwiZWRpdG9yRWwiLCJyYW5nZSIsImNvbnRhaW5zIiwic3RhcnRDb250YWluZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwiYW5jaG9yIiwibm9kZSIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJkYXRhIiwiY2FyZXQiLCJzdGFydE9mZnNldCIsImkiLCJ0ZXN0IiwicnVuRW5kIiwicnVuU3RhcnQiLCJwcmV2IiwiY2hhckF0IiwiaXNCb3VuZGFyeSIsInNsaWNlIiwib2Zmc2V0IiwidXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidHJpZ2dlciIsInNldFRyaWdnZXIiLCJkZXRlY3RUcmlnZ2VyIiwic2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2VDb3VudCIsImN1cnJlbnQiLCJnZXRSYW5nZUF0IiwidXBkYXRlVHJpZ2dlciIsIm5leHQiLCJjbG9zZVRyaWdnZXIiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwibmV4dEF0UnVuTGVuZ3RoIiwic2FmZU5leHQiLCJNYXRoIiwibWF4IiwiZmxvb3IiLCJfY3VycmVudCRhbmNob3IiLCJ0ZXh0Tm9kZSIsImZ1bGwiLCJxdWVyeUxlbiIsImxlbmd0aCIsImJlZm9yZSIsImFmdGVyIiwibmV4dFJ1biIsInJlcGVhdCIsIm5leHRWYWx1ZSIsImNvbmNhdCIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJjYXJldE9mZnNldCIsInNldFN0YXJ0IiwibWluIiwiY29sbGFwc2UiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInVwZGF0ZWQiLCJyZXBsYWNlVHJpZ2dlcldpdGhDaGlwIiwiY2hpcE5vZGUiLCJtZW50aW9uIiwiX2N1cnJlbnQkYW5jaG9yMiIsInNldEF0dHJpYnV0ZSIsIlN0cmluZyIsImlkIiwidHlwZSIsImxhYmVsIiwicGFyZW50IiwicGFyZW50Tm9kZSIsInNwYWNlTm9kZSIsImNyZWF0ZVRleHROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJzZXJpYWxpemUiLCJlbCIsIm1lbnRpb25zIiwid2FsayIsIkVMRU1FTlRfTk9ERSIsIl9lbE5vZGUkZGF0YXNldCIsImVsTm9kZSIsImRhdGFzZXQiLCJfZWxOb2RlJGRhdGFzZXQkbWVudGkiLCJfcmVmIiwiX3JlZjIiLCJfZWxOb2RlJGRhdGFzZXQkbWVudGkyIiwibWVudGlvbklkIiwibWVudGlvblR5cGUiLCJtZW50aW9uTGFiZWwiLCJ0ZXh0Q29udGVudCIsInB1c2giLCJ0YWdOYW1lIiwiY2hpbGROb2RlcyIsImZvckVhY2giLCJyZXBsYWNlIiwiY2xlYXIiLCJpbm5lckhUTUwiLCJmb2N1cyIsIl9lZGl0b3JSZWYkY3VycmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VDb250ZXh0TWVudGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBzZXJpYWxpemVNZW50aW9uIH0gZnJvbSAnLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuXG5leHBvcnQgdHlwZSBNZW50aW9uVHJpZ2dlclN0YXRlID0ge1xuICBhY3RpdmU6IGJvb2xlYW5cbiAgcXVlcnk6IHN0cmluZ1xuICAvKiogQ2FudGlkYWQgZGUgYEBgIGNvbnNlY3V0aXZvcyBkZWwgdHJpZ2dlciAoYEBgIOKGkiAxLCBgQEBgIOKGkiAyKS4gTWFwZWEgYSBsYSB0YWIgZW4gb3JkZW4uICovXG4gIGF0UnVuTGVuZ3RoOiBudW1iZXJcbiAgLyoqIFBvc2ljacOzbiBkZWwgcHJpbWVyIGBAYCBkZWwgcnVuIChyZWVtcGxhem8gZGVsIGNoaXApLiAqL1xuICBhbmNob3I6IHsgbm9kZTogTm9kZTsgb2Zmc2V0OiBudW1iZXIgfSB8IG51bGxcbn1cblxuLyoqXG4gKiBJbnNwZWNjaW9uYSBsYSBzZWxlY2Npw7NuIGFjdHVhbC4gRm9ybWF0bzogW2zDrW1pdGUgZGUgcGFsYWJyYV0gQCsgcXVlcnkgc2luIGVzcGFjaW9zIGhhc3RhIGVsIGNhcmV0LlxuICogTGEgdGFiIG9iamV0aXZvIGVzIGxhIHF1ZSBjb3JyZXNwb25kZSBhbCBuw7ptZXJvIGRlIGBAYCAoMSA9IHByaW1lcmEgdGFiIHZpc2libGUsIGV0Yy4pLlxuICovXG5jb25zdCBkZXRlY3RNZW50aW9uVHJpZ2dlciA9IChlZGl0b3JFbDogSFRNTEVsZW1lbnQgfCBudWxsLCByYW5nZTogUmFuZ2UpOiBNZW50aW9uVHJpZ2dlclN0YXRlID0+IHtcbiAgaWYgKCFlZGl0b3JFbCB8fCAhZWRpdG9yRWwuY29udGFpbnMocmFuZ2Uuc3RhcnRDb250YWluZXIpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCBub2RlID0gcmFuZ2Uuc3RhcnRDb250YWluZXJcbiAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCB0ZXh0ID0gKG5vZGUgYXMgVGV4dCkuZGF0YVxuICBjb25zdCBjYXJldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0XG4gIGxldCBpID0gY2FyZXQgLSAxXG4gIGlmIChpIDwgMCkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICB3aGlsZSAoaSA+PSAwICYmIHRleHRbaV0gIT09ICdAJykge1xuICAgIGlmICgvXFxzLy50ZXN0KHRleHRbaV0pKSB7XG4gICAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICAgIH1cbiAgICBpIC09IDFcbiAgfVxuICBpZiAoaSA8IDAgfHwgdGV4dFtpXSAhPT0gJ0AnKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIGNvbnN0IHJ1bkVuZCA9IGlcbiAgd2hpbGUgKGkgPj0gMCAmJiB0ZXh0W2ldID09PSAnQCcpIHtcbiAgICBpIC09IDFcbiAgfVxuICBjb25zdCBydW5TdGFydCA9IGkgKyAxXG4gIGNvbnN0IGF0UnVuTGVuZ3RoID0gcnVuRW5kIC0gcnVuU3RhcnQgKyAxXG4gIGNvbnN0IHByZXYgPSBydW5TdGFydCA+IDAgPyB0ZXh0LmNoYXJBdChydW5TdGFydCAtIDEpIDogJydcbiAgY29uc3QgaXNCb3VuZGFyeSA9ICFwcmV2IHx8IC9bXFxzKFt7XS8udGVzdChwcmV2KVxuICBpZiAoIWlzQm91bmRhcnkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3QgcXVlcnkgPSB0ZXh0LnNsaWNlKHJ1bkVuZCArIDEsIGNhcmV0KVxuICBpZiAoL1xccy8udGVzdChxdWVyeSkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgcmV0dXJuIHsgYWN0aXZlOiB0cnVlLCBxdWVyeSwgYXRSdW5MZW5ndGgsIGFuY2hvcjogeyBub2RlLCBvZmZzZXQ6IHJ1blN0YXJ0IH0gfVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ29udGV4dE1lbnRpb25zID0gKCkgPT4ge1xuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbdHJpZ2dlciwgc2V0VHJpZ2dlcl0gPSB1c2VTdGF0ZTxNZW50aW9uVHJpZ2dlclN0YXRlPih7XG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICBxdWVyeTogJycsXG4gICAgYXRSdW5MZW5ndGg6IDAsXG4gICAgYW5jaG9yOiBudWxsLFxuICB9KVxuXG4gIGNvbnN0IGRldGVjdFRyaWdnZXIgPSB1c2VDYWxsYmFjaygoKTogTWVudGlvblRyaWdnZXJTdGF0ZSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDAgfHwgIWVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICAgIH1cbiAgICByZXR1cm4gZGV0ZWN0TWVudGlvblRyaWdnZXIoZWRpdG9yUmVmLmN1cnJlbnQsIHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG5leHQgPSBkZXRlY3RUcmlnZ2VyKClcbiAgICBzZXRUcmlnZ2VyKG5leHQpXG4gICAgcmV0dXJuIG5leHRcbiAgfSwgW2RldGVjdFRyaWdnZXJdKVxuXG4gIGNvbnN0IGNsb3NlVHJpZ2dlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUcmlnZ2VyKHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH0pXG4gIH0sIFtdKVxuXG4gIC8qKlxuICAgKiBBanVzdGEgbGEgY2FudGlkYWQgZGUgYEBgIGRlbCB0cmlnZ2VyIGFjdGl2byBzaW4gcGVyZGVyIGVsIHF1ZXJ5IGFjdHVhbC5cbiAgICogRWouOiBgQEBhYmNgIC0+IGBAYWJjYCBhbCBjYW1iaWFyIGRlIHRhYi5cbiAgICovXG4gIGNvbnN0IHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGggPSB1c2VDYWxsYmFjayhcbiAgICAobmV4dEF0UnVuTGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IHNhZmVOZXh0ID0gTWF0aC5tYXgoMSwgTWF0aC5mbG9vcihuZXh0QXRSdW5MZW5ndGgpKVxuICAgICAgY29uc3QgY3VycmVudCA9IGRldGVjdFRyaWdnZXIoKVxuICAgICAgaWYgKCFjdXJyZW50LmFjdGl2ZSB8fCAhY3VycmVudC5hbmNob3IpIHJldHVyblxuXG4gICAgICBjb25zdCB7IG5vZGUsIG9mZnNldCB9ID0gY3VycmVudC5hbmNob3JcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLlRFWFRfTk9ERSkgcmV0dXJuXG4gICAgICBjb25zdCB0ZXh0Tm9kZSA9IG5vZGUgYXMgVGV4dFxuICAgICAgY29uc3QgZnVsbCA9IHRleHROb2RlLmRhdGFcbiAgICAgIGNvbnN0IHF1ZXJ5TGVuID0gY3VycmVudC5hdFJ1bkxlbmd0aCArIGN1cnJlbnQucXVlcnkubGVuZ3RoXG4gICAgICBjb25zdCBiZWZvcmUgPSBmdWxsLnNsaWNlKDAsIG9mZnNldClcbiAgICAgIGNvbnN0IGFmdGVyID0gZnVsbC5zbGljZShvZmZzZXQgKyBxdWVyeUxlbilcbiAgICAgIGNvbnN0IG5leHRSdW4gPSAnQCcucmVwZWF0KHNhZmVOZXh0KVxuICAgICAgY29uc3QgbmV4dFZhbHVlID0gYCR7YmVmb3JlfSR7bmV4dFJ1bn0ke2N1cnJlbnQucXVlcnl9JHthZnRlcn1gXG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgdGV4dE5vZGUuZGF0YSA9IG5leHRWYWx1ZVxuXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgIGNvbnN0IGNhcmV0T2Zmc2V0ID0gYmVmb3JlLmxlbmd0aCArIG5leHRSdW4ubGVuZ3RoICsgY3VycmVudC5xdWVyeS5sZW5ndGhcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodGV4dE5vZGUsIE1hdGgubWluKGNhcmV0T2Zmc2V0LCB0ZXh0Tm9kZS5kYXRhLmxlbmd0aCkpXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkZXRlY3RUcmlnZ2VyKClcbiAgICAgIHNldFRyaWdnZXIodXBkYXRlZClcbiAgICB9LFxuICAgIFtkZXRlY3RUcmlnZ2VyXVxuICApXG5cbiAgLyoqXG4gICAqIFJlZW1wbGF6YSBlbCBgQHF1ZXJ5YCBwZW5kaWVudGUgcG9yIHVuIGNoaXAgYXTDs21pY28gY29uIGxhIG1lbnRpb24uXG4gICAqIFJlcXVpZXJlIHF1ZSBlbCBjYWxsZXIgcHJvdmVhIGVsIERPTSBkZWwgY2hpcCAoc2UgaW5zZXJ0YSB0YWwgY3VhbCkuXG4gICAqL1xuICBjb25zdCByZXBsYWNlVHJpZ2dlcldpdGhDaGlwID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoaXBOb2RlOiBIVE1MRWxlbWVudCwgbWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBkZXRlY3RUcmlnZ2VyKClcbiAgICAgIGlmICghY3VycmVudC5hY3RpdmUgfHwgIWN1cnJlbnQuYW5jaG9yKSByZXR1cm5cblxuICAgICAgY29uc3QgeyBub2RlLCBvZmZzZXQgfSA9IGN1cnJlbnQuYW5jaG9yXG4gICAgICBjb25zdCB0ZXh0Tm9kZSA9IG5vZGUgYXMgVGV4dFxuICAgICAgY29uc3QgZnVsbCA9IHRleHROb2RlLmRhdGFcbiAgICAgIGNvbnN0IHF1ZXJ5TGVuID0gY3VycmVudC5hdFJ1bkxlbmd0aCArIGN1cnJlbnQucXVlcnkubGVuZ3RoXG4gICAgICBjb25zdCBhZnRlciA9IGZ1bGwuc2xpY2Uob2Zmc2V0ICsgcXVlcnlMZW4pXG5cbiAgICAgIC8vIFRydW5jYXIgZWwgdGV4dG8gaGFzdGEgYW50ZXMgZGVsIHJ1biBkZSBgQOKApmBcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgdGV4dE5vZGUuZGF0YSA9IGZ1bGwuc2xpY2UoMCwgb2Zmc2V0KVxuXG4gICAgICAvLyBJbnNlcnRhciBlbCBjaGlwIGp1c3RvIGRlc3B1w6lzIGRlbCBub2RvIGRlIHRleHRvXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbicsICd0cnVlJylcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWlkJywgU3RyaW5nKG1lbnRpb24uaWQpKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tdHlwZScsIG1lbnRpb24udHlwZSlcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWxhYmVsJywgbWVudGlvbi5sYWJlbClcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ2ZhbHNlJylcblxuICAgICAgY29uc3QgcGFyZW50ID0gdGV4dE5vZGUucGFyZW50Tm9kZVxuICAgICAgaWYgKCFwYXJlbnQpIHJldHVyblxuXG4gICAgICBjb25zdCBzcGFjZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgXFx1MDBhMCR7YWZ0ZXJ9YClcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpcE5vZGUsIHRleHROb2RlLm5leHRTaWJsaW5nKVxuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShzcGFjZU5vZGUsIGNoaXBOb2RlLm5leHRTaWJsaW5nKVxuXG4gICAgICAvLyBSZXBvc2ljaW9uYXIgY2FyZXQgZGVzcHXDqXMgZGVsIGNoaXAgKGFudGVzIGRlbCBlc3BhY2lvIG5vbi1icmVha2luZylcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoc3BhY2VOb2RlLCAxKVxuICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgfVxuXG4gICAgICBjbG9zZVRyaWdnZXIoKVxuICAgIH0sXG4gICAgW2RldGVjdFRyaWdnZXIsIGNsb3NlVHJpZ2dlcl1cbiAgKVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemEgZWwgY29udGVuaWRvOiB0ZXh0byBwbGFubyArIGxpc3RhIGRlIG1lbnRpb25zIGVuIG9yZGVuIGRlIGFwYXJpY2nDs24uXG4gICAqL1xuICBjb25zdCBzZXJpYWxpemUgPSB1c2VDYWxsYmFjaygoKTogeyB0ZXh0OiBzdHJpbmc7IG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdIH0gPT4ge1xuICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICBpZiAoIWVsKSByZXR1cm4geyB0ZXh0OiAnJywgbWVudGlvbnM6IFtdIH1cbiAgICBjb25zdCBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXSA9IFtdXG4gICAgbGV0IHRleHQgPSAnJ1xuXG4gICAgY29uc3Qgd2FsayA9IChub2RlOiBOb2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgdGV4dCArPSAobm9kZSBhcyBUZXh0KS5kYXRhXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIGNvbnN0IGVsTm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgaWYgKGVsTm9kZS5kYXRhc2V0Py5tZW50aW9uID09PSAndHJ1ZScpIHtcbiAgICAgICAgICBjb25zdCBtZW50aW9uOiBDb250ZXh0TWVudGlvbiA9IHtcbiAgICAgICAgICAgIGlkOiBlbE5vZGUuZGF0YXNldC5tZW50aW9uSWQgPz8gJycsXG4gICAgICAgICAgICB0eXBlOiAoZWxOb2RlLmRhdGFzZXQubWVudGlvblR5cGUgYXMgQ29udGV4dE1lbnRpb25bJ3R5cGUnXSkgPz8gJ3VzZXInLFxuICAgICAgICAgICAgbGFiZWw6IGVsTm9kZS5kYXRhc2V0Lm1lbnRpb25MYWJlbCA/PyBlbE5vZGUudGV4dENvbnRlbnQgPz8gJycsXG4gICAgICAgICAgfVxuICAgICAgICAgIG1lbnRpb25zLnB1c2gobWVudGlvbilcbiAgICAgICAgICB0ZXh0ICs9IHNlcmlhbGl6ZU1lbnRpb24obWVudGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxOb2RlLnRhZ05hbWUgPT09ICdCUicpIHtcbiAgICAgICAgICB0ZXh0ICs9ICdcXG4nXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgZWxOb2RlLmNoaWxkTm9kZXMuZm9yRWFjaCh3YWxrKVxuICAgICAgICBpZiAoZWxOb2RlLnRhZ05hbWUgPT09ICdESVYnIHx8IGVsTm9kZS50YWdOYW1lID09PSAnUCcpIHRleHQgKz0gJ1xcbidcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbC5jaGlsZE5vZGVzLmZvckVhY2god2FsaylcbiAgICByZXR1cm4geyB0ZXh0OiB0ZXh0LnJlcGxhY2UoL1xcbiskLywgJycpLCBtZW50aW9ucyB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsZWFyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkgZWRpdG9yUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gJydcbiAgICBjbG9zZVRyaWdnZXIoKVxuICB9LCBbY2xvc2VUcmlnZ2VyXSlcblxuICBjb25zdCBmb2N1cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICB9LCBbXSlcblxuICByZXR1cm4ge1xuICAgIGVkaXRvclJlZixcbiAgICB0cmlnZ2VyLFxuICAgIHVwZGF0ZVRyaWdnZXIsXG4gICAgY2xvc2VUcmlnZ2VyLFxuICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgcmVwbGFjZVRyaWdnZXJXaXRoQ2hpcCxcbiAgICBzZXJpYWxpemUsXG4gICAgY2xlYXIsXG4gICAgZm9jdXMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUVyRCxTQUFTQyxnQkFBZ0IsUUFBUSxnQ0FBZ0M7QUFXakU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxRQUE0QixFQUFFQyxLQUFZLEVBQTBCO0VBQ2hHLElBQUksQ0FBQ0QsUUFBUSxJQUFJLENBQUNBLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDRCxLQUFLLENBQUNFLGNBQWMsQ0FBQyxFQUFFO0lBQ3pELE9BQU87TUFBRUMsTUFBTSxFQUFFLEtBQUs7TUFBRUMsS0FBSyxFQUFFLEVBQUU7TUFBRUMsV0FBVyxFQUFFLENBQUM7TUFBRUMsTUFBTSxFQUFFO0lBQUssQ0FBQztFQUNuRTtFQUNBLElBQU1DLElBQUksR0FBR1AsS0FBSyxDQUFDRSxjQUFjO0VBQ2pDLElBQUlLLElBQUksQ0FBQ0MsUUFBUSxLQUFLQyxJQUFJLENBQUNDLFNBQVMs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
|
|
270
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZVN0YXRlIiwic2VyaWFsaXplTWVudGlvbiIsImRldGVjdE1lbnRpb25UcmlnZ2VyIiwiZWRpdG9yRWwiLCJyYW5nZSIsImNvbnRhaW5zIiwic3RhcnRDb250YWluZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwiYW5jaG9yIiwibm9kZSIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJkYXRhIiwiY2FyZXQiLCJzdGFydE9mZnNldCIsImkiLCJydW5FbmQiLCJydW5TdGFydCIsInByZXYiLCJjaGFyQXQiLCJpc0JvdW5kYXJ5IiwidGVzdCIsInNsaWNlIiwiaW5jbHVkZXMiLCJvZmZzZXQiLCJ1c2VDb250ZXh0TWVudGlvbnMiLCJlZGl0b3JSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0cmlnZ2VyIiwic2V0VHJpZ2dlciIsImRldGVjdFRyaWdnZXIiLCJzZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJyYW5nZUNvdW50IiwiY3VycmVudCIsImdldFJhbmdlQXQiLCJ1cGRhdGVUcmlnZ2VyIiwibmV4dCIsImNsb3NlVHJpZ2dlciIsInN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgiLCJuZXh0QXRSdW5MZW5ndGgiLCJzYWZlTmV4dCIsIk1hdGgiLCJtYXgiLCJmbG9vciIsIl9jdXJyZW50JGFuY2hvciIsInRleHROb2RlIiwiZnVsbCIsInF1ZXJ5TGVuIiwibGVuZ3RoIiwiYmVmb3JlIiwiYWZ0ZXIiLCJuZXh0UnVuIiwicmVwZWF0IiwibmV4dFZhbHVlIiwiY29uY2F0IiwiZG9jdW1lbnQiLCJjcmVhdGVSYW5nZSIsImNhcmV0T2Zmc2V0Iiwic2V0U3RhcnQiLCJtaW4iLCJjb2xsYXBzZSIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwidXBkYXRlZCIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJjaGlwTm9kZSIsIm1lbnRpb24iLCJfY3VycmVudCRhbmNob3IyIiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwiaWQiLCJ0eXBlIiwibGFiZWwiLCJwYXJlbnQiLCJwYXJlbnROb2RlIiwic3BhY2VOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbnNlcnRCZWZvcmUiLCJuZXh0U2libGluZyIsInNlcmlhbGl6ZSIsImVsIiwibWVudGlvbnMiLCJ3YWxrIiwiRUxFTUVOVF9OT0RFIiwiX2VsTm9kZSRkYXRhc2V0IiwiZWxOb2RlIiwiZGF0YXNldCIsIl9lbE5vZGUkZGF0YXNldCRtZW50aSIsIl9yZWYiLCJfcmVmMiIsIl9lbE5vZGUkZGF0YXNldCRtZW50aTIiLCJtZW50aW9uSWQiLCJtZW50aW9uVHlwZSIsIm1lbnRpb25MYWJlbCIsInRleHRDb250ZW50IiwicHVzaCIsInRhZ05hbWUiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsInJlcGxhY2UiLCJjbGVhciIsImlubmVySFRNTCIsImZvY3VzIiwiX2VkaXRvclJlZiRjdXJyZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUNvbnRleHRNZW50aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IHNlcmlhbGl6ZU1lbnRpb24gfSBmcm9tICcuLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5cbmV4cG9ydCB0eXBlIE1lbnRpb25UcmlnZ2VyU3RhdGUgPSB7XG4gIGFjdGl2ZTogYm9vbGVhblxuICBxdWVyeTogc3RyaW5nXG4gIC8qKiBDYW50aWRhZCBkZSBgQGAgY29uc2VjdXRpdm9zIGRlbCB0cmlnZ2VyIChgQGAg4oaSIDEsIGBAQGAg4oaSIDIpLiBNYXBlYSBhIGxhIHRhYiBlbiBvcmRlbi4gKi9cbiAgYXRSdW5MZW5ndGg6IG51bWJlclxuICAvKiogUG9zaWNpw7NuIGRlbCBwcmltZXIgYEBgIGRlbCBydW4gKHJlZW1wbGF6byBkZWwgY2hpcCkuICovXG4gIGFuY2hvcjogeyBub2RlOiBOb2RlOyBvZmZzZXQ6IG51bWJlciB9IHwgbnVsbFxufVxuXG4vKipcbiAqIEluc3BlY2Npb25hIGxhIHNlbGVjY2nDs24gYWN0dWFsLiBGb3JtYXRvOiBbbMOtbWl0ZSBkZSBwYWxhYnJhXSBAKyBxdWVyeSBoYXN0YSBlbCBjYXJldC5cbiAqIFBlcm1pdGUgZXNwYWNpb3Mgc2ltcGxlcyBkZW50cm8gZGVsIHF1ZXJ5IChwLiBlai4gXCJASnVhbiBQZXJlelwiKSB5IGNpZXJyYVxuICogZWwgdHJpZ2dlciBjdWFuZG8gZGV0ZWN0YSBkb3MgZXNwYWNpb3MgY29uc2VjdXRpdm9zLlxuICogTGEgdGFiIG9iamV0aXZvIGVzIGxhIHF1ZSBjb3JyZXNwb25kZSBhbCBuw7ptZXJvIGRlIGBAYCAoMSA9IHByaW1lcmEgdGFiIHZpc2libGUsIGV0Yy4pLlxuICovXG5jb25zdCBkZXRlY3RNZW50aW9uVHJpZ2dlciA9IChlZGl0b3JFbDogSFRNTEVsZW1lbnQgfCBudWxsLCByYW5nZTogUmFuZ2UpOiBNZW50aW9uVHJpZ2dlclN0YXRlID0+IHtcbiAgaWYgKCFlZGl0b3JFbCB8fCAhZWRpdG9yRWwuY29udGFpbnMocmFuZ2Uuc3RhcnRDb250YWluZXIpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCBub2RlID0gcmFuZ2Uuc3RhcnRDb250YWluZXJcbiAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCB0ZXh0ID0gKG5vZGUgYXMgVGV4dCkuZGF0YVxuICBjb25zdCBjYXJldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0XG4gIGxldCBpID0gY2FyZXQgLSAxXG4gIGlmIChpIDwgMCkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICB3aGlsZSAoaSA+PSAwICYmIHRleHRbaV0gIT09ICdAJykgaSAtPSAxXG4gIGlmIChpIDwgMCB8fCB0ZXh0W2ldICE9PSAnQCcpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3QgcnVuRW5kID0gaVxuICB3aGlsZSAoaSA+PSAwICYmIHRleHRbaV0gPT09ICdAJykge1xuICAgIGkgLT0gMVxuICB9XG4gIGNvbnN0IHJ1blN0YXJ0ID0gaSArIDFcbiAgY29uc3QgYXRSdW5MZW5ndGggPSBydW5FbmQgLSBydW5TdGFydCArIDFcbiAgY29uc3QgcHJldiA9IHJ1blN0YXJ0ID4gMCA/IHRleHQuY2hhckF0KHJ1blN0YXJ0IC0gMSkgOiAnJ1xuICBjb25zdCBpc0JvdW5kYXJ5ID0gIXByZXYgfHwgL1tcXHMoW3tdLy50ZXN0KHByZXYpXG4gIGlmICghaXNCb3VuZGFyeSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICBjb25zdCBxdWVyeSA9IHRleHQuc2xpY2UocnVuRW5kICsgMSwgY2FyZXQpXG4gIGlmICgvXFxufFxcci8udGVzdChxdWVyeSkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG4gIGlmIChxdWVyeS5pbmNsdWRlcygnICAnKSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICByZXR1cm4geyBhY3RpdmU6IHRydWUsIHF1ZXJ5LCBhdFJ1bkxlbmd0aCwgYW5jaG9yOiB7IG5vZGUsIG9mZnNldDogcnVuU3RhcnQgfSB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDb250ZXh0TWVudGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFt0cmlnZ2VyLCBzZXRUcmlnZ2VyXSA9IHVzZVN0YXRlPE1lbnRpb25UcmlnZ2VyU3RhdGU+KHtcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIHF1ZXJ5OiAnJyxcbiAgICBhdFJ1bkxlbmd0aDogMCxcbiAgICBhbmNob3I6IG51bGwsXG4gIH0pXG5cbiAgY29uc3QgZGV0ZWN0VHJpZ2dlciA9IHVzZUNhbGxiYWNrKCgpOiBNZW50aW9uVHJpZ2dlclN0YXRlID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMCB8fCAhZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gICAgfVxuICAgIHJldHVybiBkZXRlY3RNZW50aW9uVHJpZ2dlcihlZGl0b3JSZWYuY3VycmVudCwgc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZVRyaWdnZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IGRldGVjdFRyaWdnZXIoKVxuICAgIHNldFRyaWdnZXIobmV4dClcbiAgICByZXR1cm4gbmV4dFxuICB9LCBbZGV0ZWN0VHJpZ2dlcl0pXG5cbiAgY29uc3QgY2xvc2VUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRyaWdnZXIoeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfSlcbiAgfSwgW10pXG5cbiAgLyoqXG4gICAqIEFqdXN0YSBsYSBjYW50aWRhZCBkZSBgQGAgZGVsIHRyaWdnZXIgYWN0aXZvIHNpbiBwZXJkZXIgZWwgcXVlcnkgYWN0dWFsLlxuICAgKiBFai46IGBAQGFiY2AgLT4gYEBhYmNgIGFsIGNhbWJpYXIgZGUgdGFiLlxuICAgKi9cbiAgY29uc3Qgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXh0QXRSdW5MZW5ndGg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3Qgc2FmZU5leHQgPSBNYXRoLm1heCgxLCBNYXRoLmZsb29yKG5leHRBdFJ1bkxlbmd0aCkpXG4gICAgICBjb25zdCBjdXJyZW50ID0gZGV0ZWN0VHJpZ2dlcigpXG4gICAgICBpZiAoIWN1cnJlbnQuYWN0aXZlIHx8ICFjdXJyZW50LmFuY2hvcikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgbm9kZSwgb2Zmc2V0IH0gPSBjdXJyZW50LmFuY2hvclxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSByZXR1cm5cbiAgICAgIGNvbnN0IHRleHROb2RlID0gbm9kZSBhcyBUZXh0XG4gICAgICBjb25zdCBmdWxsID0gdGV4dE5vZGUuZGF0YVxuICAgICAgY29uc3QgcXVlcnlMZW4gPSBjdXJyZW50LmF0UnVuTGVuZ3RoICsgY3VycmVudC5xdWVyeS5sZW5ndGhcbiAgICAgIGNvbnN0IGJlZm9yZSA9IGZ1bGwuc2xpY2UoMCwgb2Zmc2V0KVxuICAgICAgY29uc3QgYWZ0ZXIgPSBmdWxsLnNsaWNlKG9mZnNldCArIHF1ZXJ5TGVuKVxuICAgICAgY29uc3QgbmV4dFJ1biA9ICdAJy5yZXBlYXQoc2FmZU5leHQpXG4gICAgICBjb25zdCBuZXh0VmFsdWUgPSBgJHtiZWZvcmV9JHtuZXh0UnVufSR7Y3VycmVudC5xdWVyeX0ke2FmdGVyfWBcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICB0ZXh0Tm9kZS5kYXRhID0gbmV4dFZhbHVlXG5cbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3QgY2FyZXRPZmZzZXQgPSBiZWZvcmUubGVuZ3RoICsgbmV4dFJ1bi5sZW5ndGggKyBjdXJyZW50LnF1ZXJ5Lmxlbmd0aFxuICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgTWF0aC5taW4oY2FyZXRPZmZzZXQsIHRleHROb2RlLmRhdGEubGVuZ3RoKSlcbiAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBkYXRlZCA9IGRldGVjdFRyaWdnZXIoKVxuICAgICAgc2V0VHJpZ2dlcih1cGRhdGVkKVxuICAgIH0sXG4gICAgW2RldGVjdFRyaWdnZXJdXG4gIClcblxuICAvKipcbiAgICogUmVlbXBsYXphIGVsIGBAcXVlcnlgIHBlbmRpZW50ZSBwb3IgdW4gY2hpcCBhdMOzbWljbyBjb24gbGEgbWVudGlvbi5cbiAgICogUmVxdWllcmUgcXVlIGVsIGNhbGxlciBwcm92ZWEgZWwgRE9NIGRlbCBjaGlwIChzZSBpbnNlcnRhIHRhbCBjdWFsKS5cbiAgICovXG4gIGNvbnN0IHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAgPSB1c2VDYWxsYmFjayhcbiAgICAoY2hpcE5vZGU6IEhUTUxFbGVtZW50LCBtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IGRldGVjdFRyaWdnZXIoKVxuICAgICAgaWYgKCFjdXJyZW50LmFjdGl2ZSB8fCAhY3VycmVudC5hbmNob3IpIHJldHVyblxuXG4gICAgICBjb25zdCB7IG5vZGUsIG9mZnNldCB9ID0gY3VycmVudC5hbmNob3JcbiAgICAgIGNvbnN0IHRleHROb2RlID0gbm9kZSBhcyBUZXh0XG4gICAgICBjb25zdCBmdWxsID0gdGV4dE5vZGUuZGF0YVxuICAgICAgY29uc3QgcXVlcnlMZW4gPSBjdXJyZW50LmF0UnVuTGVuZ3RoICsgY3VycmVudC5xdWVyeS5sZW5ndGhcbiAgICAgIGNvbnN0IGFmdGVyID0gZnVsbC5zbGljZShvZmZzZXQgKyBxdWVyeUxlbilcblxuICAgICAgLy8gVHJ1bmNhciBlbCB0ZXh0byBoYXN0YSBhbnRlcyBkZWwgcnVuIGRlIGBA4oCmYFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICB0ZXh0Tm9kZS5kYXRhID0gZnVsbC5zbGljZSgwLCBvZmZzZXQpXG5cbiAgICAgIC8vIEluc2VydGFyIGVsIGNoaXAganVzdG8gZGVzcHXDqXMgZGVsIG5vZG8gZGUgdGV4dG9cbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uJywgJ3RydWUnKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24taWQnLCBTdHJpbmcobWVudGlvbi5pZCkpXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi10eXBlJywgbWVudGlvbi50eXBlKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tbGFiZWwnLCBtZW50aW9uLmxhYmVsKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKVxuXG4gICAgICBjb25zdCBwYXJlbnQgPSB0ZXh0Tm9kZS5wYXJlbnROb2RlXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHNwYWNlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGBcXHUwMGEwJHthZnRlcn1gKVxuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShjaGlwTm9kZSwgdGV4dE5vZGUubmV4dFNpYmxpbmcpXG4gICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHNwYWNlTm9kZSwgY2hpcE5vZGUubmV4dFNpYmxpbmcpXG5cbiAgICAgIC8vIFJlcG9zaWNpb25hciBjYXJldCBkZXNwdcOpcyBkZWwgY2hpcCAoYW50ZXMgZGVsIGVzcGFjaW8gbm9uLWJyZWFraW5nKVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICByYW5nZS5zZXRTdGFydChzcGFjZU5vZGUsIDEpXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgICB9XG5cbiAgICAgIGNsb3NlVHJpZ2dlcigpXG4gICAgfSxcbiAgICBbZGV0ZWN0VHJpZ2dlciwgY2xvc2VUcmlnZ2VyXVxuICApXG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6YSBlbCBjb250ZW5pZG86IHRleHRvIHBsYW5vICsgbGlzdGEgZGUgbWVudGlvbnMgZW4gb3JkZW4gZGUgYXBhcmljacOzbi5cbiAgICovXG4gIGNvbnN0IHNlcmlhbGl6ZSA9IHVzZUNhbGxiYWNrKCgpOiB7IHRleHQ6IHN0cmluZzsgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW10gfSA9PiB7XG4gICAgY29uc3QgZWwgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGlmICghZWwpIHJldHVybiB7IHRleHQ6ICcnLCBtZW50aW9uczogW10gfVxuICAgIGNvbnN0IG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdID0gW11cbiAgICBsZXQgdGV4dCA9ICcnXG5cbiAgICBjb25zdCB3YWxrID0gKG5vZGU6IE5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICB0ZXh0ICs9IChub2RlIGFzIFRleHQpLmRhdGFcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgY29uc3QgZWxOb2RlID0gbm9kZSBhcyBIVE1MRWxlbWVudFxuICAgICAgICBpZiAoZWxOb2RlLmRhdGFzZXQ/Lm1lbnRpb24gPT09ICd0cnVlJykge1xuICAgICAgICAgIGNvbnN0IG1lbnRpb246IENvbnRleHRNZW50aW9uID0ge1xuICAgICAgICAgICAgaWQ6IGVsTm9kZS5kYXRhc2V0Lm1lbnRpb25JZCA/PyAnJyxcbiAgICAgICAgICAgIHR5cGU6IChlbE5vZGUuZGF0YXNldC5tZW50aW9uVHlwZSBhcyBDb250ZXh0TWVudGlvblsndHlwZSddKSA/PyAndXNlcicsXG4gICAgICAgICAgICBsYWJlbDogZWxOb2RlLmRhdGFzZXQubWVudGlvbkxhYmVsID8/IGVsTm9kZS50ZXh0Q29udGVudCA/PyAnJyxcbiAgICAgICAgICB9XG4gICAgICAgICAgbWVudGlvbnMucHVzaChtZW50aW9uKVxuICAgICAgICAgIHRleHQgKz0gc2VyaWFsaXplTWVudGlvbihtZW50aW9uKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmIChlbE5vZGUudGFnTmFtZSA9PT0gJ0JSJykge1xuICAgICAgICAgIHRleHQgKz0gJ1xcbidcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBlbE5vZGUuY2hpbGROb2Rlcy5mb3JFYWNoKHdhbGspXG4gICAgICAgIGlmIChlbE5vZGUudGFnTmFtZSA9PT0gJ0RJVicgfHwgZWxOb2RlLnRhZ05hbWUgPT09ICdQJykgdGV4dCArPSAnXFxuJ1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsLmNoaWxkTm9kZXMuZm9yRWFjaCh3YWxrKVxuICAgIHJldHVybiB7IHRleHQ6IHRleHQucmVwbGFjZSgvXFxuKyQvLCAnJyksIG1lbnRpb25zIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgY2xlYXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSBlZGl0b3JSZWYuY3VycmVudC5pbm5lckhUTUwgPSAnJ1xuICAgIGNsb3NlVHJpZ2dlcigpXG4gIH0sIFtjbG9zZVRyaWdnZXJdKVxuXG4gIGNvbnN0IGZvY3VzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgZWRpdG9yUmVmLFxuICAgIHRyaWdnZXIsXG4gICAgdXBkYXRlVHJpZ2dlcixcbiAgICBjbG9zZVRyaWdnZXIsXG4gICAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCxcbiAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwLFxuICAgIHNlcmlhbGl6ZSxcbiAgICBjbGVhcixcbiAgICBmb2N1cyxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBRXJELFNBQVNDLGdCQUFnQixRQUFRLGdDQUFnQztBQVdqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxRQUE0QixFQUFFQyxLQUFZLEVBQTBCO0VBQ2hHLElBQUksQ0FBQ0QsUUFBUSxJQUFJLENBQUNBLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDRCxLQUFLLENBQUNFLGNBQWMsQ0FBQyxFQUFFO0lBQ3pELE9BQU87TUFBRUMsTUFBTSxFQUFFLEtBQUs7TUFBRUMsS0FBSyxFQUFFLEVBQUU7TUFBRUMsV0FB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
|