@projectcor/maia-components 2.11.63-3 → 2.11.64-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 (92) hide show
  1. package/lib/App.js +2 -6
  2. package/lib/components/atoms/Chip/Chip.js +15 -49
  3. package/lib/components/atoms/Chip/styles.js +3 -7
  4. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +7 -44
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +14 -22
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +5 -8
  7. package/lib/components/atoms/icons/index.js +1 -2
  8. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +2 -2
  9. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +3 -3
  10. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +2 -2
  11. package/lib/components/molecules/AbmSection/index.js +1 -2
  12. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -9
  13. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +4 -6
  14. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +5 -10
  15. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +26 -46
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +13 -14
  17. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  18. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +2 -2
  19. package/lib/components/molecules/ChatFooter/ChatFooter.js +21 -105
  20. package/lib/components/molecules/ChatFooter/styles.js +2 -11
  21. package/lib/components/molecules/Sidebar/Sidebar.js +43 -68
  22. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +11 -15
  23. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +56 -269
  24. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +4 -4
  25. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -10
  26. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
  27. package/lib/constants/maiaTaskPanelAccess.js +2 -2
  28. package/lib/constants/permissions/index.js +2 -2
  29. package/lib/constants/permissions/utils.js +4 -1
  30. package/lib/context/global-context.js +1 -8
  31. package/lib/hooks/useAgentModel/useCreateAgent.js +10 -11
  32. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -12
  33. package/lib/hooks/useChatManager/useChatManager.js +19 -142
  34. package/lib/hooks/useChatMessages/useChatMessages.js +1 -1
  35. package/lib/hooks/useContextMentions.js +6 -16
  36. package/lib/hooks/useEntitySearch.js +128 -73
  37. package/lib/hooks/useMentionAllowedTypes.js +19 -48
  38. package/lib/hooks/useMentionPopover.js +17 -31
  39. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  40. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -16
  41. package/lib/hooks/useProjectSearch.js +28 -4
  42. package/lib/hooks/useProjectSummaryConfig.js +3 -47
  43. package/lib/hooks/useRecentClientsSearch.js +34 -4
  44. package/lib/lang/br/index.js +1 -525
  45. package/lib/lang/en/index.js +1 -525
  46. package/lib/lang/es/index.js +1 -525
  47. package/lib/lang/fr/index.js +2 -257
  48. package/lib/services/maia/Agents/createAgent.js +1 -1
  49. package/lib/services/maia/Agents/getAgentById.js +2 -3
  50. package/lib/services/maia/Agents/getAgents.js +91 -68
  51. package/lib/services/maia/Agents/updateAgent.js +1 -1
  52. package/lib/services/maia/Chats/getChatsByUserId.js +9 -13
  53. package/lib/services/maia/Orchestrator/orchestrator.js +6 -15
  54. package/lib/services/utils/validateIsMaia.js +2 -2
  55. package/lib/types/Chat.js +1 -1
  56. package/lib/types/agent.js +1 -1
  57. package/lib/types/agentModal.js +1 -1
  58. package/lib/types/global.d.js +1 -1
  59. package/lib/utils/hitlAnalytics.js +3 -3
  60. package/package.json +1 -1
  61. package/lib/components/atoms/icons/RocketIcon.js +0 -31
  62. package/lib/components/atoms/icons/WrenchIcon.js +0 -42
  63. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +0 -522
  64. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.styles.js +0 -234
  65. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/catalog.js +0 -437
  66. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/index.js +0 -3
  67. package/lib/components/molecules/AbmSection/AbmSkillsSection.styles.js +0 -80
  68. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.interface.js +0 -2
  69. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +0 -722
  70. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.styles.js +0 -165
  71. package/lib/components/molecules/AbmSection/AbmTriggersSection/index.js +0 -2
  72. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.js +0 -486
  73. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.styles.js +0 -184
  74. package/lib/components/molecules/ChatAIMyRoutines/index.js +0 -2
  75. package/lib/components/molecules/SchedulesPage/SchedulesPage.js +0 -610
  76. package/lib/components/molecules/SchedulesPage/index.js +0 -2
  77. package/lib/components/molecules/SkillsPage/SkillsPage.js +0 -708
  78. package/lib/components/molecules/SkillsPage/index.js +0 -2
  79. package/lib/components/molecules/maiaSectionModalStyles.js +0 -91
  80. package/lib/components/molecules/maiaSectionUiTokens.js +0 -31
  81. package/lib/dev/DevAbmAgentModal.js +0 -114
  82. package/lib/dev/mocks/abmModalMocks.js +0 -193
  83. package/lib/hooks/useContextPinPopover.js +0 -228
  84. package/lib/services/maia/Agents/connectors.js +0 -110
  85. package/lib/services/maia/Agents/skills.js +0 -164
  86. package/lib/services/maia/Schedules/createSchedule.js +0 -39
  87. package/lib/services/maia/Schedules/deleteSchedule.js +0 -36
  88. package/lib/services/maia/Schedules/getMySchedules.js +0 -55
  89. package/lib/services/maia/Schedules/getSchedules.js +0 -58
  90. package/lib/services/maia/Schedules/index.js +0 -5
  91. package/lib/types/agentSkill.js +0 -2
  92. package/lib/types/attachment.js +0 -2
@@ -1,6 +1,7 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import { useMemo } from 'react';
3
3
  import { useGlobalContext } from '../context/global-context';
4
+ import { canAccessToSkills } from '../constants/permissions';
4
5
  var ALL_TYPES = ['client', 'project', 'task', 'user'];
5
6
  var SKILL_TYPE = 'skill';
6
7
 
@@ -30,50 +31,9 @@ export var useMentionAllowedTypes = function useMentionAllowedTypes(override) {
30
31
  var _useGlobalContext = useGlobalContext(),
31
32
  agent = _useGlobalContext.agent;
32
33
  return useMemo(function () {
33
- var _agent$connectors$fin3, _agent$connectors3, _allowedTypes$;
34
- // El orchestrator (MAIA) tiene @-mentions libres (todos los tipos).
35
- if ((agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator') {
36
- var types = ['client', 'project', 'task'];
37
- return {
38
- allowedTypes: types,
39
- defaultType: types[0]
40
- };
41
- }
42
-
43
- // Agentes custom: los tipos disponibles se derivan de sus conectores COR.
44
- // tasks_read → [user, task]; projects_read → agrega project; clients_read → agrega client.
45
- // Los conectores están encadenados: clients implica projects, projects implica tasks.
46
- if ((agent === null || agent === void 0 ? void 0 : agent.type) === 'custom') {
47
- var _agent$connectors$fin, _agent$connectors, _agent$connectors$fin2, _agent$connectors2, _corTypes$;
48
- var corSlugs = (_agent$connectors$fin = (_agent$connectors = agent.connectors) === null || _agent$connectors === void 0 || (_agent$connectors = _agent$connectors.find(function (c) {
49
- return c.group === 'COR';
50
- })) === null || _agent$connectors === void 0 ? void 0 : _agent$connectors.slugs) !== null && _agent$connectors$fin !== void 0 ? _agent$connectors$fin : [];
51
- var hasClients = corSlugs.includes('clients_read');
52
- var hasProjects = corSlugs.includes('projects_read');
53
- var hasTasks = corSlugs.includes('tasks_read');
54
- var corTypes = [];
55
- if (hasClients) {
56
- corTypes = ['user', 'task', 'project', 'client'];
57
- } else if (hasProjects) {
58
- corTypes = ['user', 'task', 'project'];
59
- } else if (hasTasks) {
60
- corTypes = ['user', 'task'];
61
- }
62
- var _mcpSlugs = (_agent$connectors$fin2 = (_agent$connectors2 = agent.connectors) === null || _agent$connectors2 === void 0 || (_agent$connectors2 = _agent$connectors2.find(function (c) {
63
- return c.group === 'MCP';
64
- })) === null || _agent$connectors2 === void 0 || (_agent$connectors2 = _agent$connectors2.slugs) === null || _agent$connectors2 === void 0 ? void 0 : _agent$connectors2.filter(function (s) {
65
- return typeof s === 'string' && s.trim().length > 0;
66
- })) !== null && _agent$connectors$fin2 !== void 0 ? _agent$connectors$fin2 : [];
67
- if (_mcpSlugs.length > 0) {
68
- corTypes = [].concat(_toConsumableArray(corTypes), ['mcp']);
69
- }
70
- return {
71
- allowedTypes: corTypes,
72
- defaultType: (_corTypes$ = corTypes[0]) !== null && _corTypes$ !== void 0 ? _corTypes$ : 'user'
73
- };
74
- }
75
-
34
+ var _agent$connectors$fin, _agent$connectors, _allowedTypes$;
76
35
  // Las @-mentions (y por ende los fetch de recents) solo aplican a agentes clone.
36
+ // Los agentes no-clone (custom, etc.) no las tienen habilitadas por ahora.
77
37
  if ((agent === null || agent === void 0 ? void 0 : agent.type) !== 'clone') {
78
38
  return {
79
39
  allowedTypes: [],
@@ -87,14 +47,23 @@ export var useMentionAllowedTypes = function useMentionAllowedTypes(override) {
87
47
  defaultType: defaultType
88
48
  };
89
49
  }
50
+ var skillsEnabled = canAccessToSkills();
90
51
  if (TEMP_CONTEXT_MENTIONS_REQUIRE_PROJECT_OR_CLIENT_ENTITY && (agent === null || agent === void 0 ? void 0 : agent.entity) !== 'project' && (agent === null || agent === void 0 ? void 0 : agent.entity) !== 'client') {
91
52
  // Para agentes sin entidad de proyecto/cliente, solo se expone el tab de skills.
53
+ if (!skillsEnabled) return {
54
+ allowedTypes: [],
55
+ defaultType: 'user'
56
+ };
92
57
  return {
93
58
  allowedTypes: [SKILL_TYPE],
94
59
  defaultType: SKILL_TYPE
95
60
  };
96
61
  }
97
62
  if ((agent === null || agent === void 0 ? void 0 : agent.entity) === 'global') {
63
+ if (!skillsEnabled) return {
64
+ allowedTypes: [],
65
+ defaultType: 'user'
66
+ };
98
67
  return {
99
68
  allowedTypes: [SKILL_TYPE],
100
69
  defaultType: SKILL_TYPE
@@ -113,19 +82,21 @@ export var useMentionAllowedTypes = function useMentionAllowedTypes(override) {
113
82
  return type !== 'user';
114
83
  });
115
84
  }
116
- var mcpSlugs = (_agent$connectors$fin3 = agent === null || agent === void 0 || (_agent$connectors3 = agent.connectors) === null || _agent$connectors3 === void 0 || (_agent$connectors3 = _agent$connectors3.find(function (connector) {
85
+ var mcpSlugs = (_agent$connectors$fin = agent === null || agent === void 0 || (_agent$connectors = agent.connectors) === null || _agent$connectors === void 0 || (_agent$connectors = _agent$connectors.find(function (connector) {
117
86
  return connector.group === 'MCP';
118
- })) === null || _agent$connectors3 === void 0 || (_agent$connectors3 = _agent$connectors3.slugs) === null || _agent$connectors3 === void 0 ? void 0 : _agent$connectors3.filter(function (slug) {
87
+ })) === null || _agent$connectors === void 0 || (_agent$connectors = _agent$connectors.slugs) === null || _agent$connectors === void 0 ? void 0 : _agent$connectors.filter(function (slug) {
119
88
  return typeof slug === 'string' && slug.trim().length > 0;
120
- })) !== null && _agent$connectors$fin3 !== void 0 ? _agent$connectors$fin3 : [];
89
+ })) !== null && _agent$connectors$fin !== void 0 ? _agent$connectors$fin : [];
121
90
  if (mcpSlugs.length > 0) {
122
91
  allowedTypes = [].concat(_toConsumableArray(allowedTypes), ['mcp']);
123
92
  }
124
- allowedTypes = [].concat(_toConsumableArray(allowedTypes), [SKILL_TYPE]);
93
+ if (skillsEnabled) {
94
+ allowedTypes = [].concat(_toConsumableArray(allowedTypes), [SKILL_TYPE]);
95
+ }
125
96
  return {
126
97
  allowedTypes: allowedTypes,
127
98
  defaultType: (_allowedTypes$ = allowedTypes[0]) !== null && _allowedTypes$ !== void 0 ? _allowedTypes$ : SKILL_TYPE
128
99
  };
129
100
  }, [agent === null || agent === void 0 ? void 0 : agent.entity, agent === null || agent === void 0 ? void 0 : agent.type, agent === null || agent === void 0 ? void 0 : agent.connectors, override]);
130
101
  };
131
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlR2xvYmFsQ29udGV4dCIsIkFMTF9UWVBFUyIsIlNLSUxMX1RZUEUiLCJURU1QX0NPTlRFWFRfTUVOVElPTlNfUkVRVUlSRV9QUk9KRUNUX09SX0NMSUVOVF9FTlRJVFkiLCJ1c2VNZW50aW9uQWxsb3dlZFR5cGVzIiwib3ZlcnJpZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiX2FnZW50JGNvbm5lY3RvcnMkZmluMyIsIl9hZ2VudCRjb25uZWN0b3JzMyIsIl9hbGxvd2VkVHlwZXMkIiwidHlwZSIsInR5cGVzIiwiYWxsb3dlZFR5cGVzIiwiZGVmYXVsdFR5cGUiLCJfYWdlbnQkY29ubmVjdG9ycyRmaW4iLCJfYWdlbnQkY29ubmVjdG9ycyIsIl9hZ2VudCRjb25uZWN0b3JzJGZpbjIiLCJfYWdlbnQkY29ubmVjdG9yczIiLCJfY29yVHlwZXMkIiwiY29yU2x1Z3MiLCJjb25uZWN0b3JzIiwiZmluZCIsImMiLCJncm91cCIsInNsdWdzIiwiaGFzQ2xpZW50cyIsImluY2x1ZGVzIiwiaGFzUHJvamVjdHMiLCJoYXNUYXNrcyIsImNvclR5cGVzIiwibWNwU2x1Z3MiLCJmaWx0ZXIiLCJzIiwidHJpbSIsImxlbmd0aCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImVudGl0eSIsImNvbm5lY3RvciIsInNsdWciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVudGlvbkFsbG93ZWRUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5cbmNvbnN0IEFMTF9UWVBFUzogQ29udGV4dEVudGl0eVR5cGVbXSA9IFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzaycsICd1c2VyJ11cbmNvbnN0IFNLSUxMX1RZUEU6IENvbnRleHRFbnRpdHlUeXBlID0gJ3NraWxsJ1xuXG4vKipcbiAqIFJlc3RyaWNjacOzbiB0ZW1wb3JhbCBkZSBwcm9kdWN0bzogZWwgcG9wb3ZlciBkZSBALW1lbnRpb25zIChDT1IgKyBNQ1ApIHNvbG8gYXBsaWNhIGFcbiAqIGFnZW50ZXMgY3V5byBgZW50aXR5YCBlcyBwcm95ZWN0byBvIGNsaWVudGUgKOKAnGVzcGVjaWFsaXN0YXPigJ0gYWNvdGFkb3MpLiBFbCByZXN0byBubyB2ZSB0YWJzXG4gKiBuaSBNQ1AgYXVucXVlIHRlbmdhIGNvbmVjdG9yZXMgYWN0aXZvcy4gUGFzYXIgYSBgZmFsc2VgIGN1YW5kbyBzZSBoYWJpbGl0ZSBkZSBudWV2byBlbFxuICogYWxjYW5jZSBhbXBsaW87IG5vIGJvcnJhciBlbCBjdWVycG8gZGVsIGhvb2sgcXVlIHF1ZWRhIGRlYmFqby5cbiAqL1xuY29uc3QgVEVNUF9DT05URVhUX01FTlRJT05TX1JFUVVJUkVfUFJPSkVDVF9PUl9DTElFTlRfRU5USVRZID0gdHJ1ZVxuXG5leHBvcnQgdHlwZSBVc2VNZW50aW9uQWxsb3dlZFR5cGVzUmVzdWx0ID0ge1xuICBhbGxvd2VkVHlwZXM6IENvbnRleHRFbnRpdHlUeXBlW11cbiAgZGVmYXVsdFR5cGU6IENvbnRleHRFbnRpdHlUeXBlXG59XG5cbi8qKlxuICogRGVyaXZhIGRlbCBhZ2VudCBhY3Rpdm8gcXXDqSB0YWJzIGRlbCBjb250ZXh0IG1lbnRpb24gZGViZW4gZXN0YXIgZGlzcG9uaWJsZXMuXG4gKlxuICogUmVnbGFzOlxuICogICAtIGFnZW50LmVudGl0eSA9PT0gJ2dsb2JhbCcgIOKGkiBuaW5ndW5hIChzaW4gQC1tZW50aW9ucylcbiAqICAgLSBhZ2VudC5lbnRpdHkgPT09ICdwcm9qZWN0JyDihpIgW3Rhc2ssIHVzZXJdXG4gKiAgIC0gYWdlbnQuZW50aXR5ID09PSAnY2xpZW50JyAg4oaSIFtwcm9qZWN0LCB0YXNrLCB1c2VyXVxuICogICAtIGFnZW50LmVudGl0eSA9PT0gbnVsbC9vdHJvICDihpIgdG9kYXMgc2kgZWwgZmxhZyB0ZW1wb3JhbCBlc3TDoSBlbiBmYWxzZSAoY29udGV4dG8gYW1wbGlvKVxuICogICAtIGFnZW50LnR5cGUgIT09ICdjbG9uZScgICAgICDihpIgbmluZ3VuYSAoc2luIEAtbWVudGlvbnMgcG9yIGFob3JhKVxuICpcbiAqIEVsIGBvdmVycmlkZWAgKHByb3AgYGVuYWJsZWRUeXBlc2AgZGVsIGNvbXBvbmVudGUgY29uc3VtaWRvcikgc2llbXByZSBnYW5hLlxuICpcbiAqIE1pZW50cmFzIGBURU1QX0NPTlRFWFRfTUVOVElPTlNfUkVRVUlSRV9QUk9KRUNUX09SX0NMSUVOVF9FTlRJVFlgIHNlYSB0cnVlLCB0cmFzIGVsIG92ZXJyaWRlXG4gKiBzb2xvIHNlIHBlcm1pdGUgY29udGludWFyIHNpIGBhZ2VudC5lbnRpdHlgIGVzIGBwcm9qZWN0YCBvIGBjbGllbnRgIChzaW4gQCBwYXJhIGdsb2JhbC9udWxsL290cm9zKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1lbnRpb25BbGxvd2VkVHlwZXMgPSAob3ZlcnJpZGU/OiBDb250ZXh0RW50aXR5VHlwZVtdKTogVXNlTWVudGlvbkFsbG93ZWRUeXBlc1Jlc3VsdCA9PiB7XG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIHJldHVybiB1c2VNZW1vKCgpOiBVc2VNZW50aW9uQWxsb3dlZFR5cGVzUmVzdWx0ID0+IHtcbiAgICAvLyBFbCBvcmNoZXN0cmF0b3IgKE1BSUEpIHRpZW5lIEAtbWVudGlvbnMgbGlicmVzICh0b2RvcyBsb3MgdGlwb3MpLlxuICAgIGlmIChhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpIHtcbiAgICAgIGNvbnN0IHR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ11cbiAgICAgIHJldHVybiB7IGFsbG93ZWRUeXBlczogdHlwZXMsIGRlZmF1bHRUeXBlOiB0eXBlc1swXSB9XG4gICAgfVxuXG4gICAgLy8gQWdlbnRlcyBjdXN0b206IGxvcyB0aXBvcyBkaXNwb25pYmxlcyBzZSBkZXJpdmFuIGRlIHN1cyBjb25lY3RvcmVzIENPUi5cbiAgICAvLyB0YXNrc19yZWFkIOKGkiBbdXNlciwgdGFza107IHByb2plY3RzX3JlYWQg4oaSIGFncmVnYSBwcm9qZWN0OyBjbGllbnRzX3JlYWQg4oaSIGFncmVnYSBjbGllbnQuXG4gICAgLy8gTG9zIGNvbmVjdG9yZXMgZXN0w6FuIGVuY2FkZW5hZG9zOiBjbGllbnRzIGltcGxpY2EgcHJvamVjdHMsIHByb2plY3RzIGltcGxpY2EgdGFza3MuXG4gICAgaWYgKGFnZW50Py50eXBlID09PSAnY3VzdG9tJykge1xuICAgICAgY29uc3QgY29yU2x1Z3MgPSBhZ2VudC5jb25uZWN0b3JzPy5maW5kKGMgPT4gYy5ncm91cCA9PT0gJ0NPUicpPy5zbHVncyA/PyBbXVxuICAgICAgY29uc3QgaGFzQ2xpZW50cyA9IGNvclNsdWdzLmluY2x1ZGVzKCdjbGllbnRzX3JlYWQnKVxuICAgICAgY29uc3QgaGFzUHJvamVjdHMgPSBjb3JTbHVncy5pbmNsdWRlcygncHJvamVjdHNfcmVhZCcpXG4gICAgICBjb25zdCBoYXNUYXNrcyA9IGNvclNsdWdzLmluY2x1ZGVzKCd0YXNrc19yZWFkJylcblxuICAgICAgbGV0IGNvclR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdID0gW11cbiAgICAgIGlmIChoYXNDbGllbnRzKSB7XG4gICAgICAgIGNvclR5cGVzID0gWyd1c2VyJywgJ3Rhc2snLCAncHJvamVjdCcsICdjbGllbnQnXVxuICAgICAgfSBlbHNlIGlmIChoYXNQcm9qZWN0cykge1xuICAgICAgICBjb3JUeXBlcyA9IFsndXNlcicsICd0YXNrJywgJ3Byb2plY3QnXVxuICAgICAgfSBlbHNlIGlmIChoYXNUYXNrcykge1xuICAgICAgICBjb3JUeXBlcyA9IFsndXNlcicsICd0YXNrJ11cbiAgICAgIH1cblxuICAgICAgY29uc3QgbWNwU2x1Z3MgPVxuICAgICAgICBhZ2VudC5jb25uZWN0b3JzXG4gICAgICAgICAgPy5maW5kKGMgPT4gYy5ncm91cCA9PT0gJ01DUCcpXG4gICAgICAgICAgPy5zbHVncz8uZmlsdGVyKChzKTogcyBpcyBzdHJpbmcgPT4gdHlwZW9mIHMgPT09ICdzdHJpbmcnICYmIHMudHJpbSgpLmxlbmd0aCA+IDApID8/IFtdXG4gICAgICBpZiAobWNwU2x1Z3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb3JUeXBlcyA9IFsuLi5jb3JUeXBlcywgJ21jcCddXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsbG93ZWRUeXBlczogY29yVHlwZXMsXG4gICAgICAgIGRlZmF1bHRUeXBlOiBjb3JUeXBlc1swXSA/PyAndXNlcicsXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTGFzIEAtbWVudGlvbnMgKHkgcG9yIGVuZGUgbG9zIGZldGNoIGRlIHJlY2VudHMpIHNvbG8gYXBsaWNhbiBhIGFnZW50ZXMgY2xvbmUuXG4gICAgaWYgKGFnZW50Py50eXBlICE9PSAnY2xvbmUnKSB7XG4gICAgICByZXR1cm4geyBhbGxvd2VkVHlwZXM6IFtdLCBkZWZhdWx0VHlwZTogJ3VzZXInIH1cbiAgICB9XG5cbiAgICBpZiAob3ZlcnJpZGUgJiYgb3ZlcnJpZGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGVmYXVsdFR5cGUgPSBvdmVycmlkZVswXVxuICAgICAgcmV0dXJuIHsgYWxsb3dlZFR5cGVzOiBvdmVycmlkZSwgZGVmYXVsdFR5cGUgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIFRFTVBfQ09OVEVYVF9NRU5USU9OU19SRVFVSVJFX1BST0pFQ1RfT1JfQ0xJRU5UX0VOVElUWSAmJlxuICAgICAgYWdlbnQ/LmVudGl0eSAhPT0gJ3Byb2plY3QnICYmXG4gICAgICBhZ2VudD8uZW50aXR5ICE9PSAnY2xpZW50J1xuICAgICkge1xuICAgICAgLy8gUGFyYSBhZ2VudGVzIHNpbiBlbnRpZGFkIGRlIHByb3llY3RvL2NsaWVudGUsIHNvbG8gc2UgZXhwb25lIGVsIHRhYiBkZSBza2lsbHMuXG4gICAgICByZXR1cm4geyBhbGxvd2VkVHlwZXM6IFtTS0lMTF9UWVBFXSwgZGVmYXVsdFR5cGU6IFNLSUxMX1RZUEUgfVxuICAgIH1cblxuICAgIGlmIChhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJykge1xuICAgICAgcmV0dXJuIHsgYWxsb3dlZFR5cGVzOiBbU0tJTExfVFlQRV0sIGRlZmF1bHRUeXBlOiBTS0lMTF9UWVBFIH1cbiAgICB9XG5cbiAgICBsZXQgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdID0gQUxMX1RZUEVTXG5cbiAgICBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICBhbGxvd2VkVHlwZXMgPSBbJ3VzZXInLCAndGFzayddXG4gICAgfSBlbHNlIGlmIChhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50Jykge1xuICAgICAgYWxsb3dlZFR5cGVzID0gWyd1c2VyJywgJ3Rhc2snLCAncHJvamVjdCddXG4gICAgfVxuXG4gICAgLy8gYHVzZXJgIHPDs2xvIHNlIGhhYmlsaXRhIGp1bnRvIGNvbiBgdGFza2AuXG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoJ3Rhc2snKSkge1xuICAgICAgYWxsb3dlZFR5cGVzID0gYWxsb3dlZFR5cGVzLmZpbHRlcih0eXBlID0+IHR5cGUgIT09ICd1c2VyJylcbiAgICB9XG5cbiAgICBjb25zdCBtY3BTbHVncyA9XG4gICAgICBhZ2VudD8uY29ubmVjdG9yc1xuICAgICAgICA/LmZpbmQoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5ncm91cCA9PT0gJ01DUCcpXG4gICAgICAgID8uc2x1Z3M/LmZpbHRlcigoc2x1Zyk6IHNsdWcgaXMgc3RyaW5nID0+IHR5cGVvZiBzbHVnID09PSAnc3RyaW5nJyAmJiBzbHVnLnRyaW0oKS5sZW5ndGggPiAwKSA/PyBbXVxuICAgIGlmIChtY3BTbHVncy5sZW5ndGggPiAwKSB7XG4gICAgICBhbGxvd2VkVHlwZXMgPSBbLi4uYWxsb3dlZFR5cGVzLCAnbWNwJ11cbiAgICB9XG5cbiAgICBhbGxvd2VkVHlwZXMgPSBbLi4uYWxsb3dlZFR5cGVzLCBTS0lMTF9UWVBFXVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG93ZWRUeXBlcyxcbiAgICAgIGRlZmF1bHRUeXBlOiBhbGxvd2VkVHlwZXNbMF0gPz8gU0tJTExfVFlQRSxcbiAgICB9XG4gIH0sIFthZ2VudD8uZW50aXR5LCBhZ2VudD8udHlwZSwgYWdlbnQ/LmNvbm5lY3RvcnMsIG92ZXJyaWRlXSlcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLE9BQU8sUUFBUSxPQUFPO0FBQy9CLFNBQVNDLGdCQUFnQixRQUFRLDJCQUEyQjtBQUc1RCxJQUFNQyxTQUE4QixHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO0FBQzVFLElBQU1DLFVBQTZCLEdBQUcsT0FBTzs7QUFFN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsc0RBQXNELEdBQUcsSUFBSTtBQU9uRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUlDLFFBQThCLEVBQW1DO0VBQ3RHLElBQUFDLGlCQUFBLEdBQWtCTixnQkFBZ0IsQ0FBQyxDQUFDO0lBQTVCTyxLQUFLLEdBQUFELGlCQUFBLENBQUxDLEtBQUs7RUFFYixPQUFPUixPQUFPLENBQUMsWUFBb0M7SUFBQSxJQUFBUyxzQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyxjQUFBO0lBQ2pEO0lBQ0EsSUFBSSxDQUFBSCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUksSUFBSSxNQUFLLGNBQWMsRUFBRTtNQUNsQyxJQUFNQyxLQUEwQixH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
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlR2xvYmFsQ29udGV4dCIsImNhbkFjY2Vzc1RvU2tpbGxzIiwiQUxMX1RZUEVTIiwiU0tJTExfVFlQRSIsIlRFTVBfQ09OVEVYVF9NRU5USU9OU19SRVFVSVJFX1BST0pFQ1RfT1JfQ0xJRU5UX0VOVElUWSIsInVzZU1lbnRpb25BbGxvd2VkVHlwZXMiLCJvdmVycmlkZSIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJfYWdlbnQkY29ubmVjdG9ycyRmaW4iLCJfYWdlbnQkY29ubmVjdG9ycyIsIl9hbGxvd2VkVHlwZXMkIiwidHlwZSIsImFsbG93ZWRUeXBlcyIsImRlZmF1bHRUeXBlIiwibGVuZ3RoIiwic2tpbGxzRW5hYmxlZCIsImVudGl0eSIsImluY2x1ZGVzIiwiZmlsdGVyIiwibWNwU2x1Z3MiLCJjb25uZWN0b3JzIiwiZmluZCIsImNvbm5lY3RvciIsImdyb3VwIiwic2x1Z3MiLCJzbHVnIiwidHJpbSIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VNZW50aW9uQWxsb3dlZFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUgfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IGNhbkFjY2Vzc1RvU2tpbGxzIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJ1xuXG5jb25zdCBBTExfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snLCAndXNlciddXG5jb25zdCBTS0lMTF9UWVBFOiBDb250ZXh0RW50aXR5VHlwZSA9ICdza2lsbCdcblxuLyoqXG4gKiBSZXN0cmljY2nDs24gdGVtcG9yYWwgZGUgcHJvZHVjdG86IGVsIHBvcG92ZXIgZGUgQC1tZW50aW9ucyAoQ09SICsgTUNQKSBzb2xvIGFwbGljYSBhXG4gKiBhZ2VudGVzIGN1eW8gYGVudGl0eWAgZXMgcHJveWVjdG8gbyBjbGllbnRlICjigJxlc3BlY2lhbGlzdGFz4oCdIGFjb3RhZG9zKS4gRWwgcmVzdG8gbm8gdmUgdGFic1xuICogbmkgTUNQIGF1bnF1ZSB0ZW5nYSBjb25lY3RvcmVzIGFjdGl2b3MuIFBhc2FyIGEgYGZhbHNlYCBjdWFuZG8gc2UgaGFiaWxpdGUgZGUgbnVldm8gZWxcbiAqIGFsY2FuY2UgYW1wbGlvOyBubyBib3JyYXIgZWwgY3VlcnBvIGRlbCBob29rIHF1ZSBxdWVkYSBkZWJham8uXG4gKi9cbmNvbnN0IFRFTVBfQ09OVEVYVF9NRU5USU9OU19SRVFVSVJFX1BST0pFQ1RfT1JfQ0xJRU5UX0VOVElUWSA9IHRydWVcblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvbkFsbG93ZWRUeXBlc1Jlc3VsdCA9IHtcbiAgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdXG4gIGRlZmF1bHRUeXBlOiBDb250ZXh0RW50aXR5VHlwZVxufVxuXG4vKipcbiAqIERlcml2YSBkZWwgYWdlbnQgYWN0aXZvIHF1w6kgdGFicyBkZWwgY29udGV4dCBtZW50aW9uIGRlYmVuIGVzdGFyIGRpc3BvbmlibGVzLlxuICpcbiAqIFJlZ2xhczpcbiAqICAgLSBhZ2VudC5lbnRpdHkgPT09ICdnbG9iYWwnICDihpIgbmluZ3VuYSAoc2luIEAtbWVudGlvbnMpXG4gKiAgIC0gYWdlbnQuZW50aXR5ID09PSAncHJvamVjdCcg4oaSIFt0YXNrLCB1c2VyXVxuICogICAtIGFnZW50LmVudGl0eSA9PT0gJ2NsaWVudCcgIOKGkiBbcHJvamVjdCwgdGFzaywgdXNlcl1cbiAqICAgLSBhZ2VudC5lbnRpdHkgPT09IG51bGwvb3RybyAg4oaSIHRvZGFzIHNpIGVsIGZsYWcgdGVtcG9yYWwgZXN0w6EgZW4gZmFsc2UgKGNvbnRleHRvIGFtcGxpbylcbiAqICAgLSBhZ2VudC50eXBlICE9PSAnY2xvbmUnICAgICAg4oaSIG5pbmd1bmEgKHNpbiBALW1lbnRpb25zIHBvciBhaG9yYSlcbiAqXG4gKiBFbCBgb3ZlcnJpZGVgIChwcm9wIGBlbmFibGVkVHlwZXNgIGRlbCBjb21wb25lbnRlIGNvbnN1bWlkb3IpIHNpZW1wcmUgZ2FuYS5cbiAqXG4gKiBNaWVudHJhcyBgVEVNUF9DT05URVhUX01FTlRJT05TX1JFUVVJUkVfUFJPSkVDVF9PUl9DTElFTlRfRU5USVRZYCBzZWEgdHJ1ZSwgdHJhcyBlbCBvdmVycmlkZVxuICogc29sbyBzZSBwZXJtaXRlIGNvbnRpbnVhciBzaSBgYWdlbnQuZW50aXR5YCBlcyBgcHJvamVjdGAgbyBgY2xpZW50YCAoc2luIEAgcGFyYSBnbG9iYWwvbnVsbC9vdHJvcykuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZW50aW9uQWxsb3dlZFR5cGVzID0gKG92ZXJyaWRlPzogQ29udGV4dEVudGl0eVR5cGVbXSk6IFVzZU1lbnRpb25BbGxvd2VkVHlwZXNSZXN1bHQgPT4ge1xuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICByZXR1cm4gdXNlTWVtbygoKTogVXNlTWVudGlvbkFsbG93ZWRUeXBlc1Jlc3VsdCA9PiB7XG4gICAgLy8gTGFzIEAtbWVudGlvbnMgKHkgcG9yIGVuZGUgbG9zIGZldGNoIGRlIHJlY2VudHMpIHNvbG8gYXBsaWNhbiBhIGFnZW50ZXMgY2xvbmUuXG4gICAgLy8gTG9zIGFnZW50ZXMgbm8tY2xvbmUgKGN1c3RvbSwgZXRjLikgbm8gbGFzIHRpZW5lbiBoYWJpbGl0YWRhcyBwb3IgYWhvcmEuXG4gICAgaWYgKGFnZW50Py50eXBlICE9PSAnY2xvbmUnKSB7XG4gICAgICByZXR1cm4geyBhbGxvd2VkVHlwZXM6IFtdLCBkZWZhdWx0VHlwZTogJ3VzZXInIH1cbiAgICB9XG5cbiAgICBpZiAob3ZlcnJpZGUgJiYgb3ZlcnJpZGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGVmYXVsdFR5cGUgPSBvdmVycmlkZVswXVxuICAgICAgcmV0dXJuIHsgYWxsb3dlZFR5cGVzOiBvdmVycmlkZSwgZGVmYXVsdFR5cGUgfVxuICAgIH1cblxuICAgIGNvbnN0IHNraWxsc0VuYWJsZWQgPSBjYW5BY2Nlc3NUb1NraWxscygpXG5cbiAgICBpZiAoXG4gICAgICBURU1QX0NPTlRFWFRfTUVOVElPTlNfUkVRVUlSRV9QUk9KRUNUX09SX0NMSUVOVF9FTlRJVFkgJiZcbiAgICAgIGFnZW50Py5lbnRpdHkgIT09ICdwcm9qZWN0JyAmJlxuICAgICAgYWdlbnQ/LmVudGl0eSAhPT0gJ2NsaWVudCdcbiAgICApIHtcbiAgICAgIC8vIFBhcmEgYWdlbnRlcyBzaW4gZW50aWRhZCBkZSBwcm95ZWN0by9jbGllbnRlLCBzb2xvIHNlIGV4cG9uZSBlbCB0YWIgZGUgc2tpbGxzLlxuICAgICAgaWYgKCFza2lsbHNFbmFibGVkKSByZXR1cm4geyBhbGxvd2VkVHlwZXM6IFtdLCBkZWZhdWx0VHlwZTogJ3VzZXInIH1cbiAgICAgIHJldHVybiB7IGFsbG93ZWRUeXBlczogW1NLSUxMX1RZUEVdLCBkZWZhdWx0VHlwZTogU0tJTExfVFlQRSB9XG4gICAgfVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnKSB7XG4gICAgICBpZiAoIXNraWxsc0VuYWJsZWQpIHJldHVybiB7IGFsbG93ZWRUeXBlczogW10sIGRlZmF1bHRUeXBlOiAndXNlcicgfVxuICAgICAgcmV0dXJuIHsgYWxsb3dlZFR5cGVzOiBbU0tJTExfVFlQRV0sIGRlZmF1bHRUeXBlOiBTS0lMTF9UWVBFIH1cbiAgICB9XG5cbiAgICBsZXQgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdID0gQUxMX1RZUEVTXG5cbiAgICBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICBhbGxvd2VkVHlwZXMgPSBbJ3VzZXInLCAndGFzayddXG4gICAgfSBlbHNlIGlmIChhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50Jykge1xuICAgICAgYWxsb3dlZFR5cGVzID0gWyd1c2VyJywgJ3Rhc2snLCAncHJvamVjdCddXG4gICAgfVxuXG4gICAgLy8gYHVzZXJgIHPDs2xvIHNlIGhhYmlsaXRhIGp1bnRvIGNvbiBgdGFza2AuXG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoJ3Rhc2snKSkge1xuICAgICAgYWxsb3dlZFR5cGVzID0gYWxsb3dlZFR5cGVzLmZpbHRlcih0eXBlID0+IHR5cGUgIT09ICd1c2VyJylcbiAgICB9XG5cbiAgICBjb25zdCBtY3BTbHVncyA9XG4gICAgICBhZ2VudD8uY29ubmVjdG9yc1xuICAgICAgICA/LmZpbmQoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5ncm91cCA9PT0gJ01DUCcpXG4gICAgICAgID8uc2x1Z3M/LmZpbHRlcigoc2x1Zyk6IHNsdWcgaXMgc3RyaW5nID0+IHR5cGVvZiBzbHVnID09PSAnc3RyaW5nJyAmJiBzbHVnLnRyaW0oKS5sZW5ndGggPiAwKSA/PyBbXVxuICAgIGlmIChtY3BTbHVncy5sZW5ndGggPiAwKSB7XG4gICAgICBhbGxvd2VkVHlwZXMgPSBbLi4uYWxsb3dlZFR5cGVzLCAnbWNwJ11cbiAgICB9XG5cbiAgICBpZiAoc2tpbGxzRW5hYmxlZCkge1xuICAgICAgYWxsb3dlZFR5cGVzID0gWy4uLmFsbG93ZWRUeXBlcywgU0tJTExfVFlQRV1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWxsb3dlZFR5cGVzLFxuICAgICAgZGVmYXVsdFR5cGU6IGFsbG93ZWRUeXBlc1swXSA/PyBTS0lMTF9UWVBFLFxuICAgIH1cbiAgfSwgW2FnZW50Py5lbnRpdHksIGFnZW50Py50eXBlLCBhZ2VudD8uY29ubmVjdG9ycywgb3ZlcnJpZGVdKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsT0FBTyxRQUFRLE9BQU87QUFDL0IsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTJCO0FBRTVELFNBQVND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
@@ -17,37 +17,23 @@ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  var TYPE_TO_TRIGGER_SEQUENCE = {
18
18
  user: 1,
19
19
  task: 2,
20
- project: 3,
21
- /** Triggers con slash: @/ para client, @@/ para mcp (atRunLength negativo en el editor) */
22
- client: -1,
23
- mcp: -2
20
+ project: 3
24
21
  };
25
22
  var getTypeFromTriggerSequence = function getTypeFromTriggerSequence(atRunLength, allowedTypes, defaultType) {
26
- var _Object$entries$find$2, _Object$entries$find2, _allowedTypes$tabIdx;
27
- // Triggers con slash usan atRunLength negativo (-1 = @/, -2 = @@/)
28
- if (atRunLength < 0) {
29
- var _Object$entries$find$, _Object$entries$find;
30
- var slashType = (_Object$entries$find$ = (_Object$entries$find = Object.entries(TYPE_TO_TRIGGER_SEQUENCE).find(function (_ref) {
31
- var _ref2 = _slicedToArray(_ref, 2),
32
- len = _ref2[1];
33
- return len === atRunLength;
34
- })) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0]) !== null && _Object$entries$find$ !== void 0 ? _Object$entries$find$ : null;
35
- if (slashType && allowedTypes.includes(slashType)) return slashType;
36
- return defaultType;
37
- }
23
+ var _Object$entries$find$, _Object$entries$find, _allowedTypes$tabIdx;
38
24
  var normalized = Math.max(1, Math.floor(atRunLength));
39
- var mappedType = (_Object$entries$find$2 = (_Object$entries$find2 = Object.entries(TYPE_TO_TRIGGER_SEQUENCE).find(function (_ref3) {
40
- var _ref4 = _slicedToArray(_ref3, 2),
41
- len = _ref4[1];
25
+ var mappedType = (_Object$entries$find$ = (_Object$entries$find = Object.entries(TYPE_TO_TRIGGER_SEQUENCE).find(function (_ref) {
26
+ var _ref2 = _slicedToArray(_ref, 2),
27
+ len = _ref2[1];
42
28
  return len === normalized;
43
- })) === null || _Object$entries$find2 === void 0 ? void 0 : _Object$entries$find2[0]) !== null && _Object$entries$find$2 !== void 0 ? _Object$entries$find$2 : null;
29
+ })) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0]) !== null && _Object$entries$find$ !== void 0 ? _Object$entries$find$ : null;
44
30
  if (mappedType && allowedTypes.includes(mappedType)) return mappedType;
45
31
  var tabIdx = Math.min(Math.max(0, normalized - 1), allowedTypes.length - 1);
46
32
  return (_allowedTypes$tabIdx = allowedTypes[tabIdx]) !== null && _allowedTypes$tabIdx !== void 0 ? _allowedTypes$tabIdx : defaultType;
47
33
  };
48
34
  var getTriggerSequenceFromType = function getTriggerSequenceFromType(type, allowedTypes) {
49
35
  var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
50
- if (mapped !== undefined) return mapped;
36
+ if (mapped) return mapped;
51
37
  var idx = allowedTypes.indexOf(type);
52
38
  return idx >= 0 ? idx + 1 : 1;
53
39
  };
@@ -57,10 +43,10 @@ var getTriggerSequenceFromType = function getTriggerSequenceFromType(type, allow
57
43
  * `entityValues` y `chipsProject`) para filtrar recents y búsqueda GraphQL.
58
44
  */
59
45
  var useDerivedScope = function useDerivedScope() {
60
- var _ref5, _ctx$client$id, _ctx$client, _ctx$entityValues, _ref6, _ref7, _ctx$project$id, _ctx$project, _ctx$entityValues2, _ctx$chipsProject, _ctx$agent$entity, _ctx$agent, _ctx$agent$connectors, _ctx$agent2;
46
+ var _ref3, _ctx$client$id, _ctx$client, _ctx$entityValues, _ref4, _ref5, _ctx$project$id, _ctx$project, _ctx$entityValues2, _ctx$chipsProject, _ctx$agent$entity, _ctx$agent, _ctx$agent$connectors, _ctx$agent2;
61
47
  var ctx = useGlobalContext();
62
- var clientId = (_ref5 = (_ctx$client$id = (_ctx$client = ctx.client) === null || _ctx$client === void 0 ? void 0 : _ctx$client.id) !== null && _ctx$client$id !== void 0 ? _ctx$client$id : (_ctx$entityValues = ctx.entityValues) === null || _ctx$entityValues === void 0 ? void 0 : _ctx$entityValues.clientId) !== null && _ref5 !== void 0 ? _ref5 : null;
63
- var projectId = (_ref6 = (_ref7 = (_ctx$project$id = (_ctx$project = ctx.project) === null || _ctx$project === void 0 ? void 0 : _ctx$project.id) !== null && _ctx$project$id !== void 0 ? _ctx$project$id : (_ctx$entityValues2 = ctx.entityValues) === null || _ctx$entityValues2 === void 0 ? void 0 : _ctx$entityValues2.projectId) !== null && _ref7 !== void 0 ? _ref7 : (_ctx$chipsProject = ctx.chipsProject) === null || _ctx$chipsProject === void 0 ? void 0 : _ctx$chipsProject.projectId) !== null && _ref6 !== void 0 ? _ref6 : null;
48
+ var clientId = (_ref3 = (_ctx$client$id = (_ctx$client = ctx.client) === null || _ctx$client === void 0 ? void 0 : _ctx$client.id) !== null && _ctx$client$id !== void 0 ? _ctx$client$id : (_ctx$entityValues = ctx.entityValues) === null || _ctx$entityValues === void 0 ? void 0 : _ctx$entityValues.clientId) !== null && _ref3 !== void 0 ? _ref3 : null;
49
+ var projectId = (_ref4 = (_ref5 = (_ctx$project$id = (_ctx$project = ctx.project) === null || _ctx$project === void 0 ? void 0 : _ctx$project.id) !== null && _ctx$project$id !== void 0 ? _ctx$project$id : (_ctx$entityValues2 = ctx.entityValues) === null || _ctx$entityValues2 === void 0 ? void 0 : _ctx$entityValues2.projectId) !== null && _ref5 !== void 0 ? _ref5 : (_ctx$chipsProject = ctx.chipsProject) === null || _ctx$chipsProject === void 0 ? void 0 : _ctx$chipsProject.projectId) !== null && _ref4 !== void 0 ? _ref4 : null;
64
50
  var agentEntity = (_ctx$agent$entity = (_ctx$agent = ctx.agent) === null || _ctx$agent === void 0 ? void 0 : _ctx$agent.entity) !== null && _ctx$agent$entity !== void 0 ? _ctx$agent$entity : null;
65
51
  var mcpSlugsKey = ((_ctx$agent$connectors = (_ctx$agent2 = ctx.agent) === null || _ctx$agent2 === void 0 || (_ctx$agent2 = _ctx$agent2.connectors) === null || _ctx$agent2 === void 0 || (_ctx$agent2 = _ctx$agent2.find(function (c) {
66
52
  return c.group === 'MCP';
@@ -91,12 +77,12 @@ var useDerivedScope = function useDerivedScope() {
91
77
  * Los filtros de búsqueda usan `useDerivedScope`: especialista proyecto acota tareas
92
78
  * al `projectId` del contexto; especialista cliente, proyectos al `clientId` (en `extra` de search).
93
79
  */
94
- export var useMentionPopover = function useMentionPopover(_ref8) {
95
- var editorRef = _ref8.editorRef,
96
- popoverAnchorRef = _ref8.popoverAnchorRef,
97
- enabledTypes = _ref8.enabledTypes,
98
- skills = _ref8.skills,
99
- onMentionAdded = _ref8.onMentionAdded;
80
+ export var useMentionPopover = function useMentionPopover(_ref6) {
81
+ var editorRef = _ref6.editorRef,
82
+ popoverAnchorRef = _ref6.popoverAnchorRef,
83
+ enabledTypes = _ref6.enabledTypes,
84
+ skills = _ref6.skills,
85
+ onMentionAdded = _ref6.onMentionAdded;
100
86
  var _useT = useT(),
101
87
  t = _useT.t;
102
88
  var event = useEvent();
@@ -393,4 +379,4 @@ export var useMentionPopover = function useMentionPopover(_ref8) {
393
379
  close: close
394
380
  };
395
381
  };
396
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwidXNlTWVudGlvbkFsbG93ZWRUeXBlcyIsInVzZUNhcmV0UG9zaXRpb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImpzeCIsIl9qc3giLCJUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0UiLCJ1c2VyIiwidGFzayIsInByb2plY3QiLCJjbGllbnQiLCJtY3AiLCJnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSIsImF0UnVuTGVuZ3RoIiwiYWxsb3dlZFR5cGVzIiwiZGVmYXVsdFR5cGUiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQyIiwiX09iamVjdCRlbnRyaWVzJGZpbmQyIiwiX2FsbG93ZWRUeXBlcyR0YWJJZHgiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQiLCJfT2JqZWN0JGVudHJpZXMkZmluZCIsInNsYXNoVHlwZSIsIk9iamVjdCIsImVudHJpZXMiLCJmaW5kIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJsZW4iLCJpbmNsdWRlcyIsIm5vcm1hbGl6ZWQiLCJNYXRoIiwibWF4IiwiZmxvb3IiLCJtYXBwZWRUeXBlIiwiX3JlZjMiLCJfcmVmNCIsInRhYklkeCIsIm1pbiIsImxlbmd0aCIsImdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlIiwidHlwZSIsIm1hcHBlZCIsInVuZGVmaW5lZCIsImlkeCIsImluZGV4T2YiLCJ1c2VEZXJpdmVkU2NvcGUiLCJfcmVmNSIsIl9jdHgkY2xpZW50JGlkIiwiX2N0eCRjbGllbnQiLCJfY3R4JGVudGl0eVZhbHVlcyIsIl9yZWY2IiwiX3JlZjciLCJfY3R4JHByb2plY3QkaWQiLCJfY3R4JHByb2plY3QiLCJfY3R4JGVudGl0eVZhbHVlczIiLCJfY3R4JGNoaXBzUHJvamVjdCIsIl9jdHgkYWdlbnQkZW50aXR5IiwiX2N0eCRhZ2VudCIsIl9jdHgkYWdlbnQkY29ubmVjdG9ycyIsIl9jdHgkYWdlbnQyIiwiY3R4IiwiY2xpZW50SWQiLCJpZCIsImVudGl0eVZhbHVlcyIsInByb2plY3RJZCIsImNoaXBzUHJvamVjdCIsImFnZW50RW50aXR5IiwiYWdlbnQiLCJlbnRpdHkiLCJtY3BTbHVnc0tleSIsImNvbm5lY3RvcnMiLCJjIiwiZ3JvdXAiLCJzbHVncyIsImpvaW4iLCJtY3BTbHVncyIsIl9jdHgkYWdlbnQkY29ubmVjdG9yczIiLCJfY3R4JGFnZW50MyIsInJhdyIsIl90b0NvbnN1bWFibGVBcnJheSIsIlNldCIsImZpbHRlciIsInMiLCJ0cmltIiwic29ydCIsInVzZU1lbnRpb25Qb3BvdmVyIiwiX3JlZjgiLCJlZGl0b3JSZWYiLCJwb3BvdmVyQW5jaG9yUmVmIiwiZW5hYmxlZFR5cGVzIiwic2tpbGxzIiwib25NZW50aW9uQWRkZWQiLCJfdXNlVCIsInQiLCJldmVudCIsIl91c2VNZW50aW9uQWxsb3dlZFR5cCIsIm1lbnRpb25Qb3BvdmVyWkluZGV4IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZVR5cGUiLCJzZXRBY3RpdmVUeXBlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwb3BvdmVyT3BlbiIsInNldFBvcG92ZXJPcGVuIiwiX3VzZVN0YXRlNSIsImJvdHRvbSIsImxlZnQiLCJ3aWR0aCIsIl91c2VTdGF0ZTYiLCJwb3BvdmVyUG9zIiwic2V0UG9wb3ZlclBvcyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaXNLZXlib2FyZE5hdkFjdGl2ZSIsInNldElzS2V5Ym9hcmROYXZBY3RpdmUiLCJoYXNFbWl0dGVkT3BlbiIsInBvcG92ZXJSZWYiLCJnZXRDYXJldFJlY3QiLCJkZXJpdmVkU2NvcGUiLCJzY29wZSIsIl9vYmplY3RTcHJlYWQiLCJfdXNlRW50aXR5U2VhcmNoIiwiaXRlbXMiLCJsb2FkaW5nIiwiZXJyb3IiLCJoaWRlUmVjZW50c0xhYmVsIiwiaGFzTW9yZSIsImlzTG9hZGluZ01vcmUiLCJsb2FkTW9yZSIsInNlYXJjaFZhbHVlIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJza2lsbHNDYXRhbG9nRW1wdHkiLCJwb3NpdGlvblBvcG92ZXIiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UyIiwiZnJvbUFuY2hvciIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJmcm9tRWRpdG9yIiwiZ2V0RWRpdG9yQ2xpZW50UmVjdCIsImNhbGwiLCJyZWN0IiwiY2FyZXQiLCJ2aWV3cG9ydEgiLCJ3aW5kb3ciLCJpbm5lckhlaWdodCIsInZpZXdwb3J0VyIsImlubmVyV2lkdGgiLCJmYWxsYmFja1ciLCJ0b3AiLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJjbG9zZSIsImhhbmRsZVRyaWdnZXIiLCJ0cmlnZ2VyIiwiYWN0aXZlIiwiaXNTa2lsbFRyaWdnZXIiLCJxdWVyeSIsInN0YXJ0c1dpdGgiLCJub25Ta2lsbFR5cGVzIiwiZW50aXR5VHlwZSIsImVmZmVjdGl2ZUF0UnVuTGVuZ3RoIiwib3ZlcmZsb3dBdENvdW50Iiwibm9uU2tpbGxUeXBlc09yQWxsIiwiY29yRW50aXR5VHlwZSIsInR5cGVGcm9tQXQiLCJlZmZlY3RpdmVRdWVyeSIsInNsaWNlIiwiY29uY2F0IiwicmVwZWF0IiwiYWlDaGF0TWVudGlvbk9wZW4iLCJpbnNlcnRTZWxlY3RlZEl0ZW0iLCJpdGVtIiwiX2l0ZW0kcmF3JGNsaWVudElkIiwiX2l0ZW0kcmF3JGNsaWVudE5hbWUiLCJfaXRlbSRyYXckcHJvamVjdE5hbWUiLCJfaXRlbSRyYXckZmVlSWQiLCJfaXRlbSRyYXckZmF0aGVySWQiLCJfaXRlbSRyYXckZmF0aGVyVGl0bGUiLCJfaXRlbSRyYXckdG90YWxQcm95ZWMiLCJfaXRlbSRyYXckbmFtZSIsIl9pdGVtJHJhdyRwaWN0dXJlIiwiX2l0ZW0kcmF3JHBvc2l0aW9uTmFtIiwiX2l0ZW0kcmF3JGVtYWlsIiwiX2VkaXRvclJlZiRjdXJyZW50MiIsIm1lbnRpb24iLCJsYWJlbCIsInByaW1hcnkiLCJtZXRhZGF0YSIsImNsaWVudE5hbWUiLCJwcm9qZWN0TmFtZSIsImZlZUlkIiwiZmF0aGVySWQiLCJmYXRoZXJUaXRsZSIsInRvdGFsUHJveWVjdG9zIiwibmFtZSIsInBpY3R1cmUiLCJwb3NpdGlvbk5hbWUiLCJlbWFpbCIsImluc2VydE1lbnRpb24iLCJhaUNoYXRNZW50aW9uU2VsZWN0IiwiU3RyaW5nIiwiaGFuZGxlVHlwZUNoYW5nZSIsIl9lZGl0b3JSZWYkY3VycmVudDMiLCJzeW5jU2tpbGxUcmlnZ2VyIiwiX2VkaXRvclJlZiRjdXJyZW50NCIsIm5leHRSdW5MZW5ndGgiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwiYWlDaGF0TWVudGlvblR5cGVTd2l0Y2giLCJoYW5kbGVLZXlEb3duIiwiZSIsImtleSIsInByZXZlbnREZWZhdWx0IiwibWV0YUtleSIsImFsdEtleSIsImRlbHRhIiwibmV4dElkeCIsInByZXYiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVQb2ludGVyRG93bk91dHNpZGUiLCJtb3VzZUV2ZW50IiwiX3BvcG92ZXJSZWYkY3VycmVudCIsIl9wb3BvdmVyQW5jaG9yUmVmJGN1cjIiLCJ0YXJnZXQiLCJjb250YWlucyIsImRvY3VtZW50IiwicHJldklzTG9hZGluZ01vcmVSZWYiLCJwb3BvdmVyTm9kZSIsInJlZiIsIl9kZWZpbmVQcm9wZXJ0eSIsIiRib3R0b20iLCIkbGVmdCIsIiR3aWR0aCIsIiR6SW5kZXgiLCJvbk1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImNoaWxkcmVuIiwib25UeXBlQ2hhbmdlIiwib25SZWFjaExpc3RFbmQiLCJrZXlib2FyZEhpbnQiLCJkZWZhdWx0VmFsdWUiLCJvbkl0ZW1TZWxlY3RlZCIsIm9uQWN0aXZlSW5kZXhDaGFuZ2UiLCJvbk1vdXNlTW92ZUluTGlzdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VNZW50aW9uUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5Ym9hcmRFdmVudCwgUmVhY3ROb2RlLCBSZWZPYmplY3QsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkVkaXRvcidcbmltcG9ydCB7XG4gIENvbnRleHRNZW50aW9uUG9wb3ZlcixcbiAgTUFJQV9UQVNLX1BBTkVMX09WRVJMQVlfQVRUUixcbiAgU0NNUEFuY2hvcixcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvblBvcG92ZXInXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi91c2VNYWlhVGFza1BhbmVsWkluZGV4J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi91c2VUJ1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgRW50aXR5U2VhcmNoU2NvcGUsIHVzZUVudGl0eVNlYXJjaCB9IGZyb20gJy4vdXNlRW50aXR5U2VhcmNoJ1xuaW1wb3J0IHsgdXNlTWVudGlvbkFsbG93ZWRUeXBlcyB9IGZyb20gJy4vdXNlTWVudGlvbkFsbG93ZWRUeXBlcydcbmltcG9ydCB7IHVzZUNhcmV0UG9zaXRpb24gfSBmcm9tICcuL3VzZUNhcmV0UG9zaXRpb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi91c2VFdmVudCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiwgQ29udGV4dE1lbnRpb25JdGVtIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgdHlwZSB7IFNraWxsIH0gZnJvbSAnLi4vdHlwZXMvc2tpbGwnXG5cbmV4cG9ydCB0eXBlIFVzZU1lbnRpb25Qb3BvdmVyT3B0aW9ucyA9IHtcbiAgZWRpdG9yUmVmOiBSZWZPYmplY3Q8Q29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGU+XG4gIC8qKlxuICAgKiBOb2RvIGN1eW8gYW5jaG8geSBib3JkZSBzdXBlcmlvciBkZWZpbmVuIGVsIHBvcG92ZXIgKHAuIGVqLiB3cmFwcGVyIGRlbCBpbnB1dCBlbiBNQUlBKS5cbiAgICogU2kgbm8gc2UgcGFzYSwgc2UgdXNhIGVsIHJlY3QgZGVsIGNvbnRlbnRlZGl0YWJsZSAoYGdldEVkaXRvckNsaWVudFJlY3RgKS5cbiAgICovXG4gIHBvcG92ZXJBbmNob3JSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAvKiogT3ZlcnJpZGUgZGVsIHNldCBkZSB0YWJzIHBlcm1pdGlkYXM7IHNpIG5vIHNlIHBhc2Egc2UgZGVyaXZhIGRlbCBhZ2VudC4gKi9cbiAgZW5hYmxlZFR5cGVzPzogQ29udGV4dEVudGl0eVR5cGVbXVxuICAvKiogU2tpbGxzIGlueWVjdGFkYXMgZGlyZWN0YW1lbnRlIChkZXYvdGVzdGluZykuIFNpIHNlIHByb3ZlZW4sIHNlIG9taXRlIGVsIGZldGNoIFJFU1QuICovXG4gIHNraWxscz86IFNraWxsW11cbiAgLyoqIENhbGxiYWNrIGN1YW5kbyBlbCB1c3VhcmlvIGluc2VydGEgdW5hIG1lbnRpb24gdsOtYSBjbGljay90ZWNsYWRvLiAqL1xuICBvbk1lbnRpb25BZGRlZD86IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VNZW50aW9uUG9wb3ZlclJldHVybiA9IHtcbiAgcG9wb3Zlck9wZW46IGJvb2xlYW5cbiAgLyoqXG4gICAqIFJlaW5pY2lhIGVsIHRyYWNraW5nIGRlIGBBSV9DSEFUX01FTlRJT05fT1BFTmAgKHByaW1lcmEgYXBlcnR1cmEgcG9yIG1lbnNhamUpLlxuICAgKiBMbGFtYXIgdHJhcyBlbnZpYXIgZWwgbWVuc2FqZSBvIGFsIGNhbWJpYXIgZGUgY29udmVyc2FjacOzbi5cbiAgICovXG4gIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZzogKCkgPT4gdm9pZFxuICAvKiogUHJvY2VzYSBlbCB0cmlnZ2VyIHByb3ZlbmllbnRlIGRlbCBgQ29udGV4dE1lbnRpb25FZGl0b3Iub25JbnB1dGAuICovXG4gIGhhbmRsZVRyaWdnZXI6ICh0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBNYW5lam8gZGUgdGVjbGFzIHJlbGF0aXZhcyBhbCBwb3BvdmVyIChuYXZlZ2FjacOzbiwgc2VsZWNjacOzbiwgY2FtYmlvIGRlXG4gICAqIHRhYiB5IGVzY2FwZSkuIERldnVlbHZlIGB0cnVlYCBzaSBjb25zdW1pw7MgbGEga2V5LCBwYXJhIHF1ZSBlbCBjb25zdW1lclxuICAgKiBwdWVkYSBkZWNpZGlyIHNpIHNlZ3VpciBwcm9jZXNhbmRvIG90cmFzIHRlY2xhcyAocC5lai4gRW50ZXIgcGFyYSBlbnZpYXIpLlxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiBib29sZWFuXG4gIC8qKiBOb2RvIGRlbCBwb3BvdmVyOyBlbCBjb25zdW1lciBkZWJlIHBvcnRhcmxvIGNvbiBgY3JlYXRlUG9ydGFsYC4gKi9cbiAgcG9wb3Zlck5vZGU6IFJlYWN0Tm9kZSB8IG51bGxcbiAgLyoqIENpZXJyYSBlbCBwb3BvdmVyIHkgbGltcGlhIGVsIHF1ZXJ5LiAqL1xuICBjbG9zZTogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0U6IFBhcnRpYWw8UmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBudW1iZXI+PiA9IHtcbiAgdXNlcjogMSxcbiAgdGFzazogMixcbiAgcHJvamVjdDogMyxcbiAgLyoqIFRyaWdnZXJzIGNvbiBzbGFzaDogQC8gcGFyYSBjbGllbnQsIEBALyBwYXJhIG1jcCAoYXRSdW5MZW5ndGggbmVnYXRpdm8gZW4gZWwgZWRpdG9yKSAqL1xuICBjbGllbnQ6IC0xLFxuICBtY3A6IC0yLFxufVxuXG5jb25zdCBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSA9IChcbiAgYXRSdW5MZW5ndGg6IG51bWJlcixcbiAgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdLFxuICBkZWZhdWx0VHlwZTogQ29udGV4dEVudGl0eVR5cGVcbik6IENvbnRleHRFbnRpdHlUeXBlID0+IHtcbiAgLy8gVHJpZ2dlcnMgY29uIHNsYXNoIHVzYW4gYXRSdW5MZW5ndGggbmVnYXRpdm8gKC0xID0gQC8sIC0yID0gQEAvKVxuICBpZiAoYXRSdW5MZW5ndGggPCAwKSB7XG4gICAgY29uc3Qgc2xhc2hUeXBlID0gKE9iamVjdC5lbnRyaWVzKFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRSkuZmluZCgoWywgbGVuXSkgPT4gbGVuID09PSBhdFJ1bkxlbmd0aCk/LlswXSA/P1xuICAgICAgbnVsbCkgYXMgQ29udGV4dEVudGl0eVR5cGUgfCBudWxsXG4gICAgaWYgKHNsYXNoVHlwZSAmJiBhbGxvd2VkVHlwZXMuaW5jbHVkZXMoc2xhc2hUeXBlKSkgcmV0dXJuIHNsYXNoVHlwZVxuICAgIHJldHVybiBkZWZhdWx0VHlwZVxuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBNYXRoLm1heCgxLCBNYXRoLmZsb29yKGF0UnVuTGVuZ3RoKSlcbiAgY29uc3QgbWFwcGVkVHlwZSA9IChPYmplY3QuZW50cmllcyhUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0UpLmZpbmQoKFssIGxlbl0pID0+IGxlbiA9PT0gbm9ybWFsaXplZCk/LlswXSA/P1xuICAgIG51bGwpIGFzIENvbnRleHRFbnRpdHlUeXBlIHwgbnVsbFxuICBpZiAobWFwcGVkVHlwZSAmJiBhbGxvd2VkVHlwZXMuaW5jbHVkZXMobWFwcGVkVHlwZSkpIHJldHVybiBtYXBwZWRUeXBlXG4gIGNvbnN0IHRhYklkeCA9IE1hdGgubWluKE1hdGgubWF4KDAsIG5vcm1hbGl6ZWQgLSAxKSwgYWxsb3dlZFR5cGVzLmxlbmd0aCAtIDEpXG4gIHJldHVybiBhbGxvd2VkVHlwZXNbdGFiSWR4XSA/PyBkZWZhdWx0VHlwZVxufVxuXG5jb25zdCBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogbnVtYmVyID0+IHtcbiAgY29uc3QgbWFwcGVkID0gVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFW3R5cGVdXG4gIGlmIChtYXBwZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIG1hcHBlZFxuICBjb25zdCBpZHggPSBhbGxvd2VkVHlwZXMuaW5kZXhPZih0eXBlKVxuICByZXR1cm4gaWR4ID49IDAgPyBpZHggKyAxIDogMVxufVxuXG4vKipcbiAqIERlcml2YSBjbGllbnRJZCwgcHJvamVjdElkLCBhZ2VudEVudGl0eSB5IE1DUCBkZXNkZSBlbCBjb250ZXh0byBnbG9iYWwgKGluY2wuXG4gKiBgZW50aXR5VmFsdWVzYCB5IGBjaGlwc1Byb2plY3RgKSBwYXJhIGZpbHRyYXIgcmVjZW50cyB5IGLDunNxdWVkYSBHcmFwaFFMLlxuICovXG5jb25zdCB1c2VEZXJpdmVkU2NvcGUgPSAoKTogRW50aXR5U2VhcmNoU2NvcGUgPT4ge1xuICBjb25zdCBjdHggPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgY2xpZW50SWQgPSBjdHguY2xpZW50Py5pZCA/PyBjdHguZW50aXR5VmFsdWVzPy5jbGllbnRJZCA/PyBudWxsXG4gIGNvbnN0IHByb2plY3RJZCA9IGN0eC5wcm9qZWN0Py5pZCA/PyBjdHguZW50aXR5VmFsdWVzPy5wcm9qZWN0SWQgPz8gY3R4LmNoaXBzUHJvamVjdD8ucHJvamVjdElkID8/IG51bGxcbiAgY29uc3QgYWdlbnRFbnRpdHkgPSBjdHguYWdlbnQ/LmVudGl0eSA/PyBudWxsXG4gIGNvbnN0IG1jcFNsdWdzS2V5ID0gKGN0eC5hZ2VudD8uY29ubmVjdG9ycz8uZmluZChjID0+IGMuZ3JvdXAgPT09ICdNQ1AnKT8uc2x1Z3MgPz8gW10pLmpvaW4oJ3wnKVxuXG4gIGNvbnN0IG1jcFNsdWdzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcmF3ID0gY3R4LmFnZW50Py5jb25uZWN0b3JzPy5maW5kKGMgPT4gYy5ncm91cCA9PT0gJ01DUCcpPy5zbHVncyA/PyBbXVxuICAgIHJldHVybiBbLi4ubmV3IFNldChyYXcuZmlsdGVyKChzKTogcyBpcyBzdHJpbmcgPT4gdHlwZW9mIHMgPT09ICdzdHJpbmcnICYmIHMudHJpbSgpLmxlbmd0aCA+IDApKV0uc29ydCgpXG4gIH0sIFttY3BTbHVnc0tleV0pXG5cbiAgcmV0dXJuIHVzZU1lbW88RW50aXR5U2VhcmNoU2NvcGU+KFxuICAgICgpID0+ICh7IGNsaWVudElkLCBwcm9qZWN0SWQsIG1jcFNsdWdzLCBhZ2VudEVudGl0eSB9KSxcbiAgICBbY2xpZW50SWQsIHByb2plY3RJZCwgbWNwU2x1Z3MsIGFnZW50RW50aXR5XSAvLyBza2lsbHMgc2UgaW55ZWN0YSBlbiB1c2VNZW50aW9uUG9wb3ZlclxuICApXG59XG5cbi8qKlxuICogRW5jYXBzdWxhIGxhIGzDs2dpY2EgZGVsIHBvcG92ZXIgZGUgQC1tZW50aW9ucyAoZXN0YWRvLCBmZXRjaCBwb3IgdGFiLCBhbmFseXRpY3MsXG4gKiBwb3NpY2lvbmFtaWVudG8pLiBFbCBjb25zdW1lciBtYW50aWVuZSBlbCBlZGl0b3IgeSBlbCBlbnbDrW8gZGVsIG1lbnNhamUuXG4gKiBMb3MgZmlsdHJvcyBkZSBiw7pzcXVlZGEgdXNhbiBgdXNlRGVyaXZlZFNjb3BlYDogZXNwZWNpYWxpc3RhIHByb3llY3RvIGFjb3RhIHRhcmVhc1xuICogYWwgYHByb2plY3RJZGAgZGVsIGNvbnRleHRvOyBlc3BlY2lhbGlzdGEgY2xpZW50ZSwgcHJveWVjdG9zIGFsIGBjbGllbnRJZGAgKGVuIGBleHRyYWAgZGUgc2VhcmNoKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1lbnRpb25Qb3BvdmVyID0gKHtcbiAgZWRpdG9yUmVmLFxuICBwb3BvdmVyQW5jaG9yUmVmLFxuICBlbmFibGVkVHlwZXMsXG4gIHNraWxscyxcbiAgb25NZW50aW9uQWRkZWQsXG59OiBVc2VNZW50aW9uUG9wb3Zlck9wdGlvbnMpOiBVc2VNZW50aW9uUG9wb3ZlclJldHVybiA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGFsbG93ZWRUeXBlcywgZGVmYXVsdFR5cGUgfSA9IHVzZU1lbnRpb25BbGxvd2VkVHlwZXMoZW5hYmxlZFR5cGVzKVxuICBjb25zdCBtZW50aW9uUG9wb3ZlclpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTIwMCwgJ292ZXJsYXknKVxuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oZGVmYXVsdFR5cGUpXG4gIGNvbnN0IFtwb3BvdmVyT3Blbiwgc2V0UG9wb3Zlck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwb3BvdmVyUG9zLCBzZXRQb3BvdmVyUG9zXSA9IHVzZVN0YXRlPHsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9Pih7XG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgd2lkdGg6IDAsXG4gIH0pXG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzS2V5Ym9hcmROYXZBY3RpdmUsIHNldElzS2V5Ym9hcmROYXZBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhc0VtaXR0ZWRPcGVuID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwb3BvdmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZ2V0Q2FyZXRSZWN0ID0gdXNlQ2FyZXRQb3NpdGlvbigpXG5cbiAgY29uc3QgZGVyaXZlZFNjb3BlID0gdXNlRGVyaXZlZFNjb3BlKClcbiAgY29uc3Qgc2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoc2tpbGxzID8geyAuLi5kZXJpdmVkU2NvcGUsIHNraWxscyB9IDogZGVyaXZlZFNjb3BlKSxcbiAgICBbZGVyaXZlZFNjb3BlLCBza2lsbHNdXG4gIClcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgc2tpbGxzQ2F0YWxvZ0VtcHR5LFxuICB9ID0gdXNlRW50aXR5U2VhcmNoKGFjdGl2ZVR5cGUsIHNjb3BlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoYWN0aXZlVHlwZSkpIHtcbiAgICAgIHNldEFjdGl2ZVR5cGUoZGVmYXVsdFR5cGUpXG4gICAgfVxuICB9LCBbYWxsb3dlZFR5cGVzLCBhY3RpdmVUeXBlLCBkZWZhdWx0VHlwZV0pXG5cbiAgY29uc3QgcG9zaXRpb25Qb3BvdmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGZyb21BbmNob3IgPSBwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGZyb21FZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudD8uZ2V0RWRpdG9yQ2xpZW50UmVjdD8uKCkgPz8gbnVsbFxuICAgIGNvbnN0IHJlY3QgPSBmcm9tQW5jaG9yID8/IGZyb21FZGl0b3JcbiAgICBpZiAoIXJlY3QgfHwgcmVjdC53aWR0aCA8PSAwKSB7XG4gICAgICBjb25zdCBjYXJldCA9IGdldENhcmV0UmVjdCgpXG4gICAgICBpZiAoIWNhcmV0KSByZXR1cm5cbiAgICAgIGNvbnN0IHZpZXdwb3J0SCA9IHdpbmRvdy5pbm5lckhlaWdodFxuICAgICAgY29uc3Qgdmlld3BvcnRXID0gd2luZG93LmlubmVyV2lkdGhcbiAgICAgIGNvbnN0IGZhbGxiYWNrVyA9IDMyMFxuICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KDgsIE1hdGgubWluKHZpZXdwb3J0VyAtIGZhbGxiYWNrVyAtIDgsIGNhcmV0LmxlZnQpKVxuICAgICAgc2V0UG9wb3ZlclBvcyh7XG4gICAgICAgIHdpZHRoOiBmYWxsYmFja1csXG4gICAgICAgIGxlZnQsXG4gICAgICAgIGJvdHRvbTogdmlld3BvcnRIIC0gY2FyZXQudG9wICsgNCxcbiAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB2aWV3cG9ydFcgPSB3aW5kb3cuaW5uZXJXaWR0aFxuICAgIGNvbnN0IHZpZXdwb3J0SCA9IHdpbmRvdy5pbm5lckhlaWdodFxuICAgIGNvbnN0IHsgd2lkdGggfSA9IHJlY3RcbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoOCwgTWF0aC5taW4odmlld3BvcnRXIC0gd2lkdGggLSA4LCByZWN0LmxlZnQpKVxuICAgIC8qKiBQb3BvdmVyIHNpZW1wcmUgYXJyaWJhIGRlbCBpbnB1dDogYm9yZGUgaW5mZXJpb3IgZGVsIHBvcG92ZXIgfjRweCBzb2JyZSBlbCBib3JkZSBzdXBlcmlvciBkZWwgYW5jbGEuICovXG4gICAgc2V0UG9wb3ZlclBvcyh7XG4gICAgICB3aWR0aCxcbiAgICAgIGxlZnQsXG4gICAgICBib3R0b206IHZpZXdwb3J0SCAtIHJlY3QudG9wICsgNCxcbiAgICB9KVxuICB9LCBbcG9wb3ZlckFuY2hvclJlZiwgZWRpdG9yUmVmLCBnZXRDYXJldFJlY3RdKVxuXG4gIGNvbnN0IHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gZmFsc2VcbiAgfSwgW10pXG5cbiAgY29uc3QgY2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UG9wb3Zlck9wZW4oZmFsc2UpXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUoJycpXG4gIH0sIFt1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgaGFuZGxlVHJpZ2dlciA9IHVzZUNhbGxiYWNrKFxuICAgICh0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9KSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAocG9wb3Zlck9wZW4pIGNsb3NlKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0cmlnZ2VyLmFjdGl2ZSkge1xuICAgICAgICAvLyBgQC9gIGFjdGl2YSBlbCB0YWIgZGUgc2tpbGxzOyBlbCAnLycgZm9ybWEgcGFydGUgZGVsIHF1ZXJ5IGVuIGVsIHRyaWdnZXIuXG4gICAgICAgIGNvbnN0IGlzU2tpbGxUcmlnZ2VyID0gdHJpZ2dlci5hdFJ1bkxlbmd0aCA9PT0gMSAmJiB0cmlnZ2VyLnF1ZXJ5LnN0YXJ0c1dpdGgoJy8nKVxuICAgICAgICBjb25zdCBub25Ta2lsbFR5cGVzID0gYWxsb3dlZFR5cGVzLmZpbHRlcihlbnRpdHlUeXBlID0+IGVudGl0eVR5cGUgIT09ICdza2lsbCcpXG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZUF0UnVuTGVuZ3RoID0gTWF0aC5taW4odHJpZ2dlci5hdFJ1bkxlbmd0aCwgbm9uU2tpbGxUeXBlcy5sZW5ndGgpXG4gICAgICAgIGNvbnN0IG92ZXJmbG93QXRDb3VudCA9IE1hdGgubWF4KDAsIHRyaWdnZXIuYXRSdW5MZW5ndGggLSBub25Ta2lsbFR5cGVzLmxlbmd0aClcbiAgICAgICAgY29uc3Qgbm9uU2tpbGxUeXBlc09yQWxsID0gbm9uU2tpbGxUeXBlcy5sZW5ndGggPiAwID8gbm9uU2tpbGxUeXBlcyA6IGFsbG93ZWRUeXBlc1xuICAgICAgICBjb25zdCBjb3JFbnRpdHlUeXBlID0gZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UoZWZmZWN0aXZlQXRSdW5MZW5ndGgsIG5vblNraWxsVHlwZXNPckFsbCwgZGVmYXVsdFR5cGUpXG4gICAgICAgIGNvbnN0IHR5cGVGcm9tQXQ6IENvbnRleHRFbnRpdHlUeXBlID0gaXNTa2lsbFRyaWdnZXIgPyAnc2tpbGwnIDogY29yRW50aXR5VHlwZVxuICAgICAgICBjb25zdCBlZmZlY3RpdmVRdWVyeSA9IGlzU2tpbGxUcmlnZ2VyXG4gICAgICAgICAgPyB0cmlnZ2VyLnF1ZXJ5LnNsaWNlKDEpXG4gICAgICAgICAgOiBgJHsnQCcucmVwZWF0KG92ZXJmbG93QXRDb3VudCl9JHt0cmlnZ2VyLnF1ZXJ5fWBcblxuICAgICAgICBpZiAoIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgc2V0UG9wb3Zlck9wZW4odHJ1ZSlcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgICBpZiAoIWhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uT3BlbiwgeyB0eXBlOiB0eXBlRnJvbUF0IH0pXG4gICAgICAgICAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTZWFyY2hWYWx1ZShlZmZlY3RpdmVRdWVyeSlcbiAgICAgIH0gZWxzZSBpZiAocG9wb3Zlck9wZW4pIHtcbiAgICAgICAgY2xvc2UoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZGVmYXVsdFR5cGUsIHBvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXIsIHVwZGF0ZVNlYXJjaFZhbHVlLCBldmVudCwgY2xvc2VdXG4gIClcblxuICBjb25zdCBpbnNlcnRTZWxlY3RlZEl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW50aW9uOiBDb250ZXh0TWVudGlvbiA9IHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgICAgICAgbGFiZWw6IGl0ZW0ucHJpbWFyeSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBjbGllbnRJZDogaXRlbS5yYXcuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgICAgICBjbGllbnROYW1lOiBpdGVtLnJhdy5jbGllbnROYW1lID8/IG51bGwsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucmF3LnByb2plY3ROYW1lID8/IG51bGwsXG4gICAgICAgICAgZmVlSWQ6IGl0ZW0ucmF3LmZlZUlkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVySWQ6IGl0ZW0ucmF3LmZhdGhlcklkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVyVGl0bGU6IGl0ZW0ucmF3LmZhdGhlclRpdGxlID8/IG51bGwsXG4gICAgICAgICAgdG90YWxQcm95ZWN0b3M6IGl0ZW0ucmF3LnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gICAgICAgICAgbmFtZTogaXRlbS5yYXcubmFtZSA/PyBudWxsLFxuICAgICAgICAgIHBpY3R1cmU6IGl0ZW0ucmF3LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgICAgICBwb3NpdGlvbk5hbWU6IGl0ZW0ucmF3LnBvc2l0aW9uTmFtZSA/PyBudWxsLFxuICAgICAgICAgIGVtYWlsOiBpdGVtLnJhdy5lbWFpbCA/PyBudWxsLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/Lmluc2VydE1lbnRpb24obWVudGlvbilcbiAgICAgIG9uTWVudGlvbkFkZGVkPy4obWVudGlvbilcbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uU2VsZWN0LCB7IHR5cGU6IG1lbnRpb24udHlwZSwgaWQ6IFN0cmluZyhtZW50aW9uLmlkKSB9KVxuICAgICAgY2xvc2UoKVxuICAgIH0sXG4gICAgW2VkaXRvclJlZiwgb25NZW50aW9uQWRkZWQsIGV2ZW50LCBjbG9zZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVR5cGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodHlwZTogQ29udGV4dEVudGl0eVR5cGUpID0+IHtcbiAgICAgIHNldEFjdGl2ZVR5cGUodHlwZSlcbiAgICAgIGlmICh0eXBlID09PSAnc2tpbGwnKSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jU2tpbGxUcmlnZ2VyKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5leHRSdW5MZW5ndGggPSBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZShcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGFsbG93ZWRUeXBlcy5maWx0ZXIoZW50aXR5VHlwZSA9PiBlbnRpdHlUeXBlICE9PSAnc2tpbGwnKVxuICAgICAgICApXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jVHJpZ2dlckF0UnVuTGVuZ3RoKG5leHRSdW5MZW5ndGgpXG4gICAgICB9XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0TWVudGlvblR5cGVTd2l0Y2gsIHsgdHlwZSB9KVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZWRpdG9yUmVmLCBldmVudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pOiBib29sZWFuID0+IHtcbiAgICAgIGlmICghcG9wb3Zlck9wZW4gfHwgYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNsb3NlKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JykgJiYgKGUubWV0YUtleSB8fCBlLmFsdEtleSkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNvbnN0IGlkeCA9IGFsbG93ZWRUeXBlcy5pbmRleE9mKGFjdGl2ZVR5cGUpXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyA/IDEgOiAtMVxuICAgICAgICBjb25zdCBuZXh0SWR4ID0gKGlkeCArIGRlbHRhICsgYWxsb3dlZFR5cGVzLmxlbmd0aCkgJSBhbGxvd2VkVHlwZXMubGVuZ3RoXG4gICAgICAgIGhhbmRsZVR5cGVDaGFuZ2UoYWxsb3dlZFR5cGVzW25leHRJZHhdKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IChpdGVtcy5sZW5ndGggPiAwID8gTWF0aC5taW4ocHJldiArIDEsIGl0ZW1zLmxlbmd0aCAtIDEpIDogMCkpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IE1hdGgubWF4KHByZXYgLSAxLCAwKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGluc2VydFNlbGVjdGVkSXRlbShpdGVtc1thY3RpdmVJbmRleF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LFxuICAgIFtwb3BvdmVyT3BlbiwgaXRlbXMsIGFsbG93ZWRUeXBlcywgYWN0aXZlVHlwZSwgYWN0aXZlSW5kZXgsIGluc2VydFNlbGVjdGVkSXRlbSwgY2xvc2UsIGhhbmRsZVR5cGVDaGFuZ2VdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9wb3Zlck9wZW4pIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBoYW5kbGVyID0gKCkgPT4gcG9zaXRpb25Qb3BvdmVyKClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlcilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZXIsIHRydWUpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlcilcbiAgICB9XG4gIH0sIFtwb3BvdmVyT3BlbiwgcG9zaXRpb25Qb3BvdmVyXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9wb3Zlck9wZW4pIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSA9IChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBtb3VzZUV2ZW50LnRhcmdldCBhcyBOb2RlIHwgbnVsbFxuICAgICAgaWYgKCF0YXJnZXQpIHJldHVyblxuICAgICAgaWYgKHBvcG92ZXJSZWYuY3VycmVudD8uY29udGFpbnModGFyZ2V0KSkgcmV0dXJuXG4gICAgICBpZiAocG9wb3ZlckFuY2hvclJlZj8uY3VycmVudD8uY29udGFpbnModGFyZ2V0KSkgcmV0dXJuXG4gICAgICBjbG9zZSgpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gIH0sIFtwb3BvdmVyT3BlbiwgY2xvc2UsIHBvcG92ZXJBbmNob3JSZWZdKVxuXG4gIGNvbnN0IHByZXZJc0xvYWRpbmdNb3JlUmVmID0gdXNlUmVmKGZhbHNlKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBwcmV2SXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gaXNMb2FkaW5nTW9yZVxuICAgIH1cbiAgfSwgW2lzTG9hZGluZ01vcmVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIHNldEFjdGl2ZUluZGV4KDApXG4gIH0sIFtpdGVtcy5sZW5ndGgsIGFjdGl2ZVR5cGVdKVxuXG4gIGNvbnN0IHBvcG92ZXJOb2RlID0gdXNlTWVtbzxSZWFjdE5vZGUgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVBBbmNob3JcbiAgICAgICAgcmVmPXtwb3BvdmVyUmVmfVxuICAgICAgICB7Li4ueyBbTUFJQV9UQVNLX1BBTkVMX09WRVJMQVlfQVRUUl06ICcnIH19XG4gICAgICAgICRib3R0b209e3BvcG92ZXJQb3MuYm90dG9tfVxuICAgICAgICAkbGVmdD17cG9wb3ZlclBvcy5sZWZ0fVxuICAgICAgICAkd2lkdGg9e3BvcG92ZXJQb3Mud2lkdGh9XG4gICAgICAgICR6SW5kZXg9e21lbnRpb25Qb3BvdmVyWkluZGV4fVxuICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgPlxuICAgICAgICA8Q29udGV4dE1lbnRpb25Qb3BvdmVyXG4gICAgICAgICAgYWxsb3dlZFR5cGVzPXthbGxvd2VkVHlwZXN9XG4gICAgICAgICAgYWN0aXZlVHlwZT17YWN0aXZlVHlwZX1cbiAgICAgICAgICBvblR5cGVDaGFuZ2U9e2hhbmRsZVR5cGVDaGFuZ2V9XG4gICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgIGhpZGVSZWNlbnRzTGFiZWw9e2hpZGVSZWNlbnRzTGFiZWx9XG4gICAgICAgICAgc2tpbGxzQ2F0YWxvZ0VtcHR5PXtza2lsbHNDYXRhbG9nRW1wdHl9XG4gICAgICAgICAgaGFzTW9yZT17aGFzTW9yZX1cbiAgICAgICAgICBpc0xvYWRpbmdNb3JlPXtpc0xvYWRpbmdNb3JlfVxuICAgICAgICAgIG9uUmVhY2hMaXN0RW5kPXtsb2FkTW9yZX1cbiAgICAgICAgICBzZWFyY2hWYWx1ZT17c2VhcmNoVmFsdWV9XG4gICAgICAgICAga2V5Ym9hcmRIaW50PXt0KCdjb250ZXh0TWVudGlvbi5rZXlib2FyZEhpbnQnLCB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICdOYXZlZ2FjacOzbiBlbnRyZSBwZXN0YcOxYXM6IEAsIEBALCBAQEDigKYgZW4gb3JkZW4uIFRhbWJpw6luIEFsdC9DbWQgKyDihpAv4oaSJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkl0ZW1TZWxlY3RlZD17aW5zZXJ0U2VsZWN0ZWRJdGVtfVxuICAgICAgICAgIGFjdGl2ZUluZGV4PXthY3RpdmVJbmRleH1cbiAgICAgICAgICBvbkFjdGl2ZUluZGV4Q2hhbmdlPXtzZXRBY3RpdmVJbmRleH1cbiAgICAgICAgICBpc0tleWJvYXJkTmF2QWN0aXZlPXtpc0tleWJvYXJkTmF2QWN0aXZlfVxuICAgICAgICAgIG9uTW91c2VNb3ZlSW5MaXN0PXsoKSA9PiBzZXRJc0tleWJvYXJkTmF2QWN0aXZlKGZhbHNlKX1cbiAgICAgICAgLz5cbiAgICAgIDwvU0NNUEFuY2hvcj5cbiAgICApXG4gIH0sIFtcbiAgICBwb3BvdmVyT3BlbixcbiAgICBwb3BvdmVyUG9zLFxuICAgIG1lbnRpb25Qb3BvdmVyWkluZGV4LFxuICAgIGFsbG93ZWRUeXBlcyxcbiAgICBhY3RpdmVUeXBlLFxuICAgIGhhbmRsZVR5cGVDaGFuZ2UsXG4gICAgaXRlbXMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgIHNraWxsc0NhdGFsb2dFbXB0eSxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgaW5zZXJ0U2VsZWN0ZWRJdGVtLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIGlzS2V5Ym9hcmROYXZBY3RpdmUsXG4gIF0pXG5cbiAgcmV0dXJuIHsgcG9wb3Zlck9wZW4sIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZywgaGFuZGxlVHJpZ2dlciwgaGFuZGxlS2V5RG93biwgcG9wb3Zlck5vZGUsIGNsb3NlIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUE4Q0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUU5RyxTQUNFQyxxQkFBcUIsRUFDckJDLDRCQUE0QixFQUM1QkMsVUFBVSxRQUNMLDJDQUEyQztBQUNsRCxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTJCO0FBQzVELFNBQVNDLElBQUksUUFBUSxRQUFRO0FBQzdCO0FBQ0EsU0FBNEJDLGVBQWUsUUFBUSxtQkFBbUI7QUFDdEUsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxZQUFZO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBd0M3QyxJQUFNQyx3QkFBb0UsR0FBRztFQUMzRUMsSUFBSSxFQUFFLENBQUM7RUFDUEMsSUFBSSxFQUFFLENBQUM7RUFDUEMsT0FBTyxFQUFFLENBQUM7RUFDVjtFQUNBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0VBQ1ZDLEdBQUcsRUFBRSxDQUFDO0FBQ1IsQ0FBQztBQUVELElBQU1DLDBCQUEwQixHQUFHLFNBQTdCQSwwQkFBMEJBLENBQzlCQyxXQUFtQixFQUNuQkMsWUFBaUMsRUFDakNDLFdBQThCLEVBQ1I7RUFBQSxJQUFBQyxzQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxvQkFBQTtFQUN0QjtFQUNBLElBQUlMLFdBQVcsR0FBRyxDQUFDLEVBQUU7SUFBQSxJQUFBTSxxQkFBQSxFQUFBQyxvQkFBQTtJQUNuQixJQUFNQyxTQUFTLElBQUFGLHFCQUFBLElBQUFDLG9CQUFBLEdBQUlFLE1BQU0sQ0FB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
382
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwidXNlTWVudGlvbkFsbG93ZWRUeXBlcyIsInVzZUNhcmV0UG9zaXRpb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImpzeCIsIl9qc3giLCJUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0UiLCJ1c2VyIiwidGFzayIsInByb2plY3QiLCJnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSIsImF0UnVuTGVuZ3RoIiwiYWxsb3dlZFR5cGVzIiwiZGVmYXVsdFR5cGUiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQiLCJfT2JqZWN0JGVudHJpZXMkZmluZCIsIl9hbGxvd2VkVHlwZXMkdGFiSWR4Iiwibm9ybWFsaXplZCIsIk1hdGgiLCJtYXgiLCJmbG9vciIsIm1hcHBlZFR5cGUiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmluZCIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5IiwibGVuIiwiaW5jbHVkZXMiLCJ0YWJJZHgiLCJtaW4iLCJsZW5ndGgiLCJnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSIsInR5cGUiLCJtYXBwZWQiLCJpZHgiLCJpbmRleE9mIiwidXNlRGVyaXZlZFNjb3BlIiwiX3JlZjMiLCJfY3R4JGNsaWVudCRpZCIsIl9jdHgkY2xpZW50IiwiX2N0eCRlbnRpdHlWYWx1ZXMiLCJfcmVmNCIsIl9yZWY1IiwiX2N0eCRwcm9qZWN0JGlkIiwiX2N0eCRwcm9qZWN0IiwiX2N0eCRlbnRpdHlWYWx1ZXMyIiwiX2N0eCRjaGlwc1Byb2plY3QiLCJfY3R4JGFnZW50JGVudGl0eSIsIl9jdHgkYWdlbnQiLCJfY3R4JGFnZW50JGNvbm5lY3RvcnMiLCJfY3R4JGFnZW50MiIsImN0eCIsImNsaWVudElkIiwiY2xpZW50IiwiaWQiLCJlbnRpdHlWYWx1ZXMiLCJwcm9qZWN0SWQiLCJjaGlwc1Byb2plY3QiLCJhZ2VudEVudGl0eSIsImFnZW50IiwiZW50aXR5IiwibWNwU2x1Z3NLZXkiLCJjb25uZWN0b3JzIiwiYyIsImdyb3VwIiwic2x1Z3MiLCJqb2luIiwibWNwU2x1Z3MiLCJfY3R4JGFnZW50JGNvbm5lY3RvcnMyIiwiX2N0eCRhZ2VudDMiLCJyYXciLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJTZXQiLCJmaWx0ZXIiLCJzIiwidHJpbSIsInNvcnQiLCJ1c2VNZW50aW9uUG9wb3ZlciIsIl9yZWY2IiwiZWRpdG9yUmVmIiwicG9wb3ZlckFuY2hvclJlZiIsImVuYWJsZWRUeXBlcyIsInNraWxscyIsIm9uTWVudGlvbkFkZGVkIiwiX3VzZVQiLCJ0IiwiZXZlbnQiLCJfdXNlTWVudGlvbkFsbG93ZWRUeXAiLCJtZW50aW9uUG9wb3ZlclpJbmRleCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicG9wb3Zlck9wZW4iLCJzZXRQb3BvdmVyT3BlbiIsIl91c2VTdGF0ZTUiLCJib3R0b20iLCJsZWZ0Iiwid2lkdGgiLCJfdXNlU3RhdGU2IiwicG9wb3ZlclBvcyIsInNldFBvcG92ZXJQb3MiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzS2V5Ym9hcmROYXZBY3RpdmUiLCJzZXRJc0tleWJvYXJkTmF2QWN0aXZlIiwiaGFzRW1pdHRlZE9wZW4iLCJwb3BvdmVyUmVmIiwiZ2V0Q2FyZXRSZWN0IiwiZGVyaXZlZFNjb3BlIiwic2NvcGUiLCJfb2JqZWN0U3ByZWFkIiwiX3VzZUVudGl0eVNlYXJjaCIsIml0ZW1zIiwibG9hZGluZyIsImVycm9yIiwiaGlkZVJlY2VudHNMYWJlbCIsImhhc01vcmUiLCJpc0xvYWRpbmdNb3JlIiwibG9hZE1vcmUiLCJzZWFyY2hWYWx1ZSIsInVwZGF0ZVNlYXJjaFZhbHVlIiwic2tpbGxzQ2F0YWxvZ0VtcHR5IiwicG9zaXRpb25Qb3BvdmVyIiwiX3BvcG92ZXJBbmNob3JSZWYkY3VyIiwiX2VkaXRvclJlZiRjdXJyZW50JGdlIiwiX2VkaXRvclJlZiRjdXJyZW50IiwiX2VkaXRvclJlZiRjdXJyZW50JGdlMiIsImZyb21BbmNob3IiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZnJvbUVkaXRvciIsImdldEVkaXRvckNsaWVudFJlY3QiLCJjYWxsIiwicmVjdCIsImNhcmV0Iiwidmlld3BvcnRIIiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJ2aWV3cG9ydFciLCJpbm5lcldpZHRoIiwiZmFsbGJhY2tXIiwidG9wIiwicmVzZXRNZW50aW9uT3BlblRyYWNraW5nIiwiY2xvc2UiLCJoYW5kbGVUcmlnZ2VyIiwidHJpZ2dlciIsImFjdGl2ZSIsImlzU2tpbGxUcmlnZ2VyIiwicXVlcnkiLCJzdGFydHNXaXRoIiwibm9uU2tpbGxUeXBlcyIsImVudGl0eVR5cGUiLCJlZmZlY3RpdmVBdFJ1bkxlbmd0aCIsIm92ZXJmbG93QXRDb3VudCIsIm5vblNraWxsVHlwZXNPckFsbCIsImNvckVudGl0eVR5cGUiLCJ0eXBlRnJvbUF0IiwiZWZmZWN0aXZlUXVlcnkiLCJzbGljZSIsImNvbmNhdCIsInJlcGVhdCIsImFpQ2hhdE1lbnRpb25PcGVuIiwiaW5zZXJ0U2VsZWN0ZWRJdGVtIiwiaXRlbSIsIl9pdGVtJHJhdyRjbGllbnRJZCIsIl9pdGVtJHJhdyRjbGllbnROYW1lIiwiX2l0ZW0kcmF3JHByb2plY3ROYW1lIiwiX2l0ZW0kcmF3JGZlZUlkIiwiX2l0ZW0kcmF3JGZhdGhlcklkIiwiX2l0ZW0kcmF3JGZhdGhlclRpdGxlIiwiX2l0ZW0kcmF3JHRvdGFsUHJveWVjIiwiX2l0ZW0kcmF3JG5hbWUiLCJfaXRlbSRyYXckcGljdHVyZSIsIl9pdGVtJHJhdyRwb3NpdGlvbk5hbSIsIl9pdGVtJHJhdyRlbWFpbCIsIl9lZGl0b3JSZWYkY3VycmVudDIiLCJtZW50aW9uIiwibGFiZWwiLCJwcmltYXJ5IiwibWV0YWRhdGEiLCJjbGllbnROYW1lIiwicHJvamVjdE5hbWUiLCJmZWVJZCIsImZhdGhlcklkIiwiZmF0aGVyVGl0bGUiLCJ0b3RhbFByb3llY3RvcyIsIm5hbWUiLCJwaWN0dXJlIiwicG9zaXRpb25OYW1lIiwiZW1haWwiLCJpbnNlcnRNZW50aW9uIiwiYWlDaGF0TWVudGlvblNlbGVjdCIsIlN0cmluZyIsImhhbmRsZVR5cGVDaGFuZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQzIiwic3luY1NraWxsVHJpZ2dlciIsIl9lZGl0b3JSZWYkY3VycmVudDQiLCJuZXh0UnVuTGVuZ3RoIiwic3luY1RyaWdnZXJBdFJ1bkxlbmd0aCIsImFpQ2hhdE1lbnRpb25UeXBlU3dpdGNoIiwiaGFuZGxlS2V5RG93biIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsIm1ldGFLZXkiLCJhbHRLZXkiLCJkZWx0YSIsIm5leHRJZHgiLCJwcmV2IiwidW5kZWZpbmVkIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlIiwibW91c2VFdmVudCIsIl9wb3BvdmVyUmVmJGN1cnJlbnQiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIyIiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsInByZXZJc0xvYWRpbmdNb3JlUmVmIiwicG9wb3Zlck5vZGUiLCJyZWYiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJjaGlsZHJlbiIsIm9uVHlwZUNoYW5nZSIsIm9uUmVhY2hMaXN0RW5kIiwia2V5Ym9hcmRIaW50IiwiZGVmYXVsdFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJvbkFjdGl2ZUluZGV4Q2hhbmdlIiwib25Nb3VzZU1vdmVJbkxpc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVudGlvblBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleWJvYXJkRXZlbnQsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25FZGl0b3InXG5pbXBvcnQge1xuICBDb250ZXh0TWVudGlvblBvcG92ZXIsXG4gIE1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIsXG4gIFNDTVBBbmNob3IsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25Qb3BvdmVyJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4vdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IEVudGl0eVNlYXJjaFNjb3BlLCB1c2VFbnRpdHlTZWFyY2ggfSBmcm9tICcuL3VzZUVudGl0eVNlYXJjaCdcbmltcG9ydCB7IHVzZU1lbnRpb25BbGxvd2VkVHlwZXMgfSBmcm9tICcuL3VzZU1lbnRpb25BbGxvd2VkVHlwZXMnXG5pbXBvcnQgeyB1c2VDYXJldFBvc2l0aW9uIH0gZnJvbSAnLi91c2VDYXJldFBvc2l0aW9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4vdXNlRXZlbnQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24sIENvbnRleHRNZW50aW9uSXRlbSB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHR5cGUgeyBTa2lsbCB9IGZyb20gJy4uL3R5cGVzL3NraWxsJ1xuXG5leHBvcnQgdHlwZSBVc2VNZW50aW9uUG9wb3Zlck9wdGlvbnMgPSB7XG4gIGVkaXRvclJlZjogUmVmT2JqZWN0PENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlPlxuICAvKipcbiAgICogTm9kbyBjdXlvIGFuY2hvIHkgYm9yZGUgc3VwZXJpb3IgZGVmaW5lbiBlbCBwb3BvdmVyIChwLiBlai4gd3JhcHBlciBkZWwgaW5wdXQgZW4gTUFJQSkuXG4gICAqIFNpIG5vIHNlIHBhc2EsIHNlIHVzYSBlbCByZWN0IGRlbCBjb250ZW50ZWRpdGFibGUgKGBnZXRFZGl0b3JDbGllbnRSZWN0YCkuXG4gICAqL1xuICBwb3BvdmVyQW5jaG9yUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIE92ZXJyaWRlIGRlbCBzZXQgZGUgdGFicyBwZXJtaXRpZGFzOyBzaSBubyBzZSBwYXNhIHNlIGRlcml2YSBkZWwgYWdlbnQuICovXG4gIGVuYWJsZWRUeXBlcz86IENvbnRleHRFbnRpdHlUeXBlW11cbiAgLyoqIFNraWxscyBpbnllY3RhZGFzIGRpcmVjdGFtZW50ZSAoZGV2L3Rlc3RpbmcpLiBTaSBzZSBwcm92ZWVuLCBzZSBvbWl0ZSBlbCBmZXRjaCBSRVNULiAqL1xuICBza2lsbHM/OiBTa2lsbFtdXG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gZWwgdXN1YXJpbyBpbnNlcnRhIHVuYSBtZW50aW9uIHbDrWEgY2xpY2svdGVjbGFkby4gKi9cbiAgb25NZW50aW9uQWRkZWQ/OiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPSB7XG4gIHBvcG92ZXJPcGVuOiBib29sZWFuXG4gIC8qKlxuICAgKiBSZWluaWNpYSBlbCB0cmFja2luZyBkZSBgQUlfQ0hBVF9NRU5USU9OX09QRU5gIChwcmltZXJhIGFwZXJ0dXJhIHBvciBtZW5zYWplKS5cbiAgICogTGxhbWFyIHRyYXMgZW52aWFyIGVsIG1lbnNhamUgbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gICAqL1xuICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmc6ICgpID0+IHZvaWRcbiAgLyoqIFByb2Nlc2EgZWwgdHJpZ2dlciBwcm92ZW5pZW50ZSBkZWwgYENvbnRleHRNZW50aW9uRWRpdG9yLm9uSW5wdXRgLiAqL1xuICBoYW5kbGVUcmlnZ2VyOiAodHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfSkgPT4gdm9pZFxuICAvKipcbiAgICogTWFuZWpvIGRlIHRlY2xhcyByZWxhdGl2YXMgYWwgcG9wb3ZlciAobmF2ZWdhY2nDs24sIHNlbGVjY2nDs24sIGNhbWJpbyBkZVxuICAgKiB0YWIgeSBlc2NhcGUpLiBEZXZ1ZWx2ZSBgdHJ1ZWAgc2kgY29uc3VtacOzIGxhIGtleSwgcGFyYSBxdWUgZWwgY29uc3VtZXJcbiAgICogcHVlZGEgZGVjaWRpciBzaSBzZWd1aXIgcHJvY2VzYW5kbyBvdHJhcyB0ZWNsYXMgKHAuZWouIEVudGVyIHBhcmEgZW52aWFyKS5cbiAgICovXG4gIGhhbmRsZUtleURvd246IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gYm9vbGVhblxuICAvKiogTm9kbyBkZWwgcG9wb3ZlcjsgZWwgY29uc3VtZXIgZGViZSBwb3J0YXJsbyBjb24gYGNyZWF0ZVBvcnRhbGAuICovXG4gIHBvcG92ZXJOb2RlOiBSZWFjdE5vZGUgfCBudWxsXG4gIC8qKiBDaWVycmEgZWwgcG9wb3ZlciB5IGxpbXBpYSBlbCBxdWVyeS4gKi9cbiAgY2xvc2U6ICgpID0+IHZvaWRcbn1cblxuY29uc3QgVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFOiBQYXJ0aWFsPFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgbnVtYmVyPj4gPSB7XG4gIHVzZXI6IDEsXG4gIHRhc2s6IDIsXG4gIHByb2plY3Q6IDMsXG59XG5cbmNvbnN0IGdldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlID0gKFxuICBhdFJ1bkxlbmd0aDogbnVtYmVyLFxuICBhbGxvd2VkVHlwZXM6IENvbnRleHRFbnRpdHlUeXBlW10sXG4gIGRlZmF1bHRUeXBlOiBDb250ZXh0RW50aXR5VHlwZVxuKTogQ29udGV4dEVudGl0eVR5cGUgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5tYXgoMSwgTWF0aC5mbG9vcihhdFJ1bkxlbmd0aCkpXG4gIGNvbnN0IG1hcHBlZFR5cGUgPSAoT2JqZWN0LmVudHJpZXMoVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFKS5maW5kKChbLCBsZW5dKSA9PiBsZW4gPT09IG5vcm1hbGl6ZWQpPy5bMF0gPz9cbiAgICBudWxsKSBhcyBDb250ZXh0RW50aXR5VHlwZSB8IG51bGxcbiAgaWYgKG1hcHBlZFR5cGUgJiYgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKG1hcHBlZFR5cGUpKSByZXR1cm4gbWFwcGVkVHlwZVxuICBjb25zdCB0YWJJZHggPSBNYXRoLm1pbihNYXRoLm1heCgwLCBub3JtYWxpemVkIC0gMSksIGFsbG93ZWRUeXBlcy5sZW5ndGggLSAxKVxuICByZXR1cm4gYWxsb3dlZFR5cGVzW3RhYklkeF0gPz8gZGVmYXVsdFR5cGVcbn1cblxuY29uc3QgZ2V0VHJpZ2dlclNlcXVlbmNlRnJvbVR5cGUgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXSk6IG51bWJlciA9PiB7XG4gIGNvbnN0IG1hcHBlZCA9IFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRVt0eXBlXVxuICBpZiAobWFwcGVkKSByZXR1cm4gbWFwcGVkXG4gIGNvbnN0IGlkeCA9IGFsbG93ZWRUeXBlcy5pbmRleE9mKHR5cGUpXG4gIHJldHVybiBpZHggPj0gMCA/IGlkeCArIDEgOiAxXG59XG5cbi8qKlxuICogRGVyaXZhIGNsaWVudElkLCBwcm9qZWN0SWQsIGFnZW50RW50aXR5IHkgTUNQIGRlc2RlIGVsIGNvbnRleHRvIGdsb2JhbCAoaW5jbC5cbiAqIGBlbnRpdHlWYWx1ZXNgIHkgYGNoaXBzUHJvamVjdGApIHBhcmEgZmlsdHJhciByZWNlbnRzIHkgYsO6c3F1ZWRhIEdyYXBoUUwuXG4gKi9cbmNvbnN0IHVzZURlcml2ZWRTY29wZSA9ICgpOiBFbnRpdHlTZWFyY2hTY29wZSA9PiB7XG4gIGNvbnN0IGN0eCA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBjbGllbnRJZCA9IGN0eC5jbGllbnQ/LmlkID8/IGN0eC5lbnRpdHlWYWx1ZXM/LmNsaWVudElkID8/IG51bGxcbiAgY29uc3QgcHJvamVjdElkID0gY3R4LnByb2plY3Q/LmlkID8/IGN0eC5lbnRpdHlWYWx1ZXM/LnByb2plY3RJZCA/PyBjdHguY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQgPz8gbnVsbFxuICBjb25zdCBhZ2VudEVudGl0eSA9IGN0eC5hZ2VudD8uZW50aXR5ID8/IG51bGxcbiAgY29uc3QgbWNwU2x1Z3NLZXkgPSAoY3R4LmFnZW50Py5jb25uZWN0b3JzPy5maW5kKGMgPT4gYy5ncm91cCA9PT0gJ01DUCcpPy5zbHVncyA/PyBbXSkuam9pbignfCcpXG5cbiAgY29uc3QgbWNwU2x1Z3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCByYXcgPSBjdHguYWdlbnQ/LmNvbm5lY3RvcnM/LmZpbmQoYyA9PiBjLmdyb3VwID09PSAnTUNQJyk/LnNsdWdzID8/IFtdXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KHJhdy5maWx0ZXIoKHMpOiBzIGlzIHN0cmluZyA9PiB0eXBlb2YgcyA9PT0gJ3N0cmluZycgJiYgcy50cmltKCkubGVuZ3RoID4gMCkpXS5zb3J0KClcbiAgfSwgW21jcFNsdWdzS2V5XSlcblxuICByZXR1cm4gdXNlTWVtbzxFbnRpdHlTZWFyY2hTY29wZT4oXG4gICAgKCkgPT4gKHsgY2xpZW50SWQsIHByb2plY3RJZCwgbWNwU2x1Z3MsIGFnZW50RW50aXR5IH0pLFxuICAgIFtjbGllbnRJZCwgcHJvamVjdElkLCBtY3BTbHVncywgYWdlbnRFbnRpdHldIC8vIHNraWxscyBzZSBpbnllY3RhIGVuIHVzZU1lbnRpb25Qb3BvdmVyXG4gIClcbn1cblxuLyoqXG4gKiBFbmNhcHN1bGEgbGEgbMOzZ2ljYSBkZWwgcG9wb3ZlciBkZSBALW1lbnRpb25zIChlc3RhZG8sIGZldGNoIHBvciB0YWIsIGFuYWx5dGljcyxcbiAqIHBvc2ljaW9uYW1pZW50bykuIEVsIGNvbnN1bWVyIG1hbnRpZW5lIGVsIGVkaXRvciB5IGVsIGVudsOtbyBkZWwgbWVuc2FqZS5cbiAqIExvcyBmaWx0cm9zIGRlIGLDunNxdWVkYSB1c2FuIGB1c2VEZXJpdmVkU2NvcGVgOiBlc3BlY2lhbGlzdGEgcHJveWVjdG8gYWNvdGEgdGFyZWFzXG4gKiBhbCBgcHJvamVjdElkYCBkZWwgY29udGV4dG87IGVzcGVjaWFsaXN0YSBjbGllbnRlLCBwcm95ZWN0b3MgYWwgYGNsaWVudElkYCAoZW4gYGV4dHJhYCBkZSBzZWFyY2gpLlxuICovXG5leHBvcnQgY29uc3QgdXNlTWVudGlvblBvcG92ZXIgPSAoe1xuICBlZGl0b3JSZWYsXG4gIHBvcG92ZXJBbmNob3JSZWYsXG4gIGVuYWJsZWRUeXBlcyxcbiAgc2tpbGxzLFxuICBvbk1lbnRpb25BZGRlZCxcbn06IFVzZU1lbnRpb25Qb3BvdmVyT3B0aW9ucyk6IFVzZU1lbnRpb25Qb3BvdmVyUmV0dXJuID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWxsb3dlZFR5cGVzLCBkZWZhdWx0VHlwZSB9ID0gdXNlTWVudGlvbkFsbG93ZWRUeXBlcyhlbmFibGVkVHlwZXMpXG4gIGNvbnN0IG1lbnRpb25Qb3BvdmVyWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMjAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IFthY3RpdmVUeXBlLCBzZXRBY3RpdmVUeXBlXSA9IHVzZVN0YXRlPENvbnRleHRFbnRpdHlUeXBlPihkZWZhdWx0VHlwZSlcbiAgY29uc3QgW3BvcG92ZXJPcGVuLCBzZXRQb3BvdmVyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3BvcG92ZXJQb3MsIHNldFBvcG92ZXJQb3NdID0gdXNlU3RhdGU8eyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0+KHtcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMCxcbiAgICB3aWR0aDogMCxcbiAgfSlcbiAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbaXNLZXlib2FyZE5hdkFjdGl2ZSwgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaGFzRW1pdHRlZE9wZW4gPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHBvcG92ZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBnZXRDYXJldFJlY3QgPSB1c2VDYXJldFBvc2l0aW9uKClcblxuICBjb25zdCBkZXJpdmVkU2NvcGUgPSB1c2VEZXJpdmVkU2NvcGUoKVxuICBjb25zdCBzY29wZSA9IHVzZU1lbW88RW50aXR5U2VhcmNoU2NvcGU+KFxuICAgICgpID0+IChza2lsbHMgPyB7IC4uLmRlcml2ZWRTY29wZSwgc2tpbGxzIH0gOiBkZXJpdmVkU2NvcGUpLFxuICAgIFtkZXJpdmVkU2NvcGUsIHNraWxsc11cbiAgKVxuICBjb25zdCB7XG4gICAgaXRlbXMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgIGhhc01vcmUsXG4gICAgaXNMb2FkaW5nTW9yZSxcbiAgICBsb2FkTW9yZSxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgICBza2lsbHNDYXRhbG9nRW1wdHksXG4gIH0gPSB1c2VFbnRpdHlTZWFyY2goYWN0aXZlVHlwZSwgc2NvcGUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFsbG93ZWRUeXBlcy5pbmNsdWRlcyhhY3RpdmVUeXBlKSkge1xuICAgICAgc2V0QWN0aXZlVHlwZShkZWZhdWx0VHlwZSlcbiAgICB9XG4gIH0sIFthbGxvd2VkVHlwZXMsIGFjdGl2ZVR5cGUsIGRlZmF1bHRUeXBlXSlcblxuICBjb25zdCBwb3NpdGlvblBvcG92ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgZnJvbUFuY2hvciA9IHBvcG92ZXJBbmNob3JSZWY/LmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgZnJvbUVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50Py5nZXRFZGl0b3JDbGllbnRSZWN0Py4oKSA/PyBudWxsXG4gICAgY29uc3QgcmVjdCA9IGZyb21BbmNob3IgPz8gZnJvbUVkaXRvclxuICAgIGlmICghcmVjdCB8fCByZWN0LndpZHRoIDw9IDApIHtcbiAgICAgIGNvbnN0IGNhcmV0ID0gZ2V0Q2FyZXRSZWN0KClcbiAgICAgIGlmICghY2FyZXQpIHJldHVyblxuICAgICAgY29uc3Qgdmlld3BvcnRIID0gd2luZG93LmlubmVySGVpZ2h0XG4gICAgICBjb25zdCB2aWV3cG9ydFcgPSB3aW5kb3cuaW5uZXJXaWR0aFxuICAgICAgY29uc3QgZmFsbGJhY2tXID0gMzIwXG4gICAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoOCwgTWF0aC5taW4odmlld3BvcnRXIC0gZmFsbGJhY2tXIC0gOCwgY2FyZXQubGVmdCkpXG4gICAgICBzZXRQb3BvdmVyUG9zKHtcbiAgICAgICAgd2lkdGg6IGZhbGxiYWNrVyxcbiAgICAgICAgbGVmdCxcbiAgICAgICAgYm90dG9tOiB2aWV3cG9ydEggLSBjYXJldC50b3AgKyA0LFxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHZpZXdwb3J0VyA9IHdpbmRvdy5pbm5lcldpZHRoXG4gICAgY29uc3Qgdmlld3BvcnRIID0gd2luZG93LmlubmVySGVpZ2h0XG4gICAgY29uc3QgeyB3aWR0aCB9ID0gcmVjdFxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1heCg4LCBNYXRoLm1pbih2aWV3cG9ydFcgLSB3aWR0aCAtIDgsIHJlY3QubGVmdCkpXG4gICAgLyoqIFBvcG92ZXIgc2llbXByZSBhcnJpYmEgZGVsIGlucHV0OiBib3JkZSBpbmZlcmlvciBkZWwgcG9wb3ZlciB+NHB4IHNvYnJlIGVsIGJvcmRlIHN1cGVyaW9yIGRlbCBhbmNsYS4gKi9cbiAgICBzZXRQb3BvdmVyUG9zKHtcbiAgICAgIHdpZHRoLFxuICAgICAgbGVmdCxcbiAgICAgIGJvdHRvbTogdmlld3BvcnRIIC0gcmVjdC50b3AgKyA0LFxuICAgIH0pXG4gIH0sIFtwb3BvdmVyQW5jaG9yUmVmLCBlZGl0b3JSZWYsIGdldENhcmV0UmVjdF0pXG5cbiAgY29uc3QgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQgPSBmYWxzZVxuICB9LCBbXSlcblxuICBjb25zdCBjbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRQb3BvdmVyT3BlbihmYWxzZSlcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSgnJylcbiAgfSwgW3VwZGF0ZVNlYXJjaFZhbHVlXSlcblxuICBjb25zdCBoYW5kbGVUcmlnZ2VyID0gdXNlQ2FsbGJhY2soXG4gICAgKHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH0pID0+IHtcbiAgICAgIGlmIChhbGxvd2VkVHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGlmIChwb3BvdmVyT3BlbikgY2xvc2UoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHRyaWdnZXIuYWN0aXZlKSB7XG4gICAgICAgIC8vIGBAL2AgYWN0aXZhIGVsIHRhYiBkZSBza2lsbHM7IGVsICcvJyBmb3JtYSBwYXJ0ZSBkZWwgcXVlcnkgZW4gZWwgdHJpZ2dlci5cbiAgICAgICAgY29uc3QgaXNTa2lsbFRyaWdnZXIgPSB0cmlnZ2VyLmF0UnVuTGVuZ3RoID09PSAxICYmIHRyaWdnZXIucXVlcnkuc3RhcnRzV2l0aCgnLycpXG4gICAgICAgIGNvbnN0IG5vblNraWxsVHlwZXMgPSBhbGxvd2VkVHlwZXMuZmlsdGVyKGVudGl0eVR5cGUgPT4gZW50aXR5VHlwZSAhPT0gJ3NraWxsJylcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlQXRSdW5MZW5ndGggPSBNYXRoLm1pbih0cmlnZ2VyLmF0UnVuTGVuZ3RoLCBub25Ta2lsbFR5cGVzLmxlbmd0aClcbiAgICAgICAgY29uc3Qgb3ZlcmZsb3dBdENvdW50ID0gTWF0aC5tYXgoMCwgdHJpZ2dlci5hdFJ1bkxlbmd0aCAtIG5vblNraWxsVHlwZXMubGVuZ3RoKVxuICAgICAgICBjb25zdCBub25Ta2lsbFR5cGVzT3JBbGwgPSBub25Ta2lsbFR5cGVzLmxlbmd0aCA+IDAgPyBub25Ta2lsbFR5cGVzIDogYWxsb3dlZFR5cGVzXG4gICAgICAgIGNvbnN0IGNvckVudGl0eVR5cGUgPSBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZShlZmZlY3RpdmVBdFJ1bkxlbmd0aCwgbm9uU2tpbGxUeXBlc09yQWxsLCBkZWZhdWx0VHlwZSlcbiAgICAgICAgY29uc3QgdHlwZUZyb21BdDogQ29udGV4dEVudGl0eVR5cGUgPSBpc1NraWxsVHJpZ2dlciA/ICdza2lsbCcgOiBjb3JFbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZVF1ZXJ5ID0gaXNTa2lsbFRyaWdnZXJcbiAgICAgICAgICA/IHRyaWdnZXIucXVlcnkuc2xpY2UoMSlcbiAgICAgICAgICA6IGAkeydAJy5yZXBlYXQob3ZlcmZsb3dBdENvdW50KX0ke3RyaWdnZXIucXVlcnl9YFxuXG4gICAgICAgIGlmICghcG9wb3Zlck9wZW4pIHtcbiAgICAgICAgICBzZXRQb3BvdmVyT3Blbih0cnVlKVxuICAgICAgICAgIHNldEFjdGl2ZVR5cGUodHlwZUZyb21BdClcbiAgICAgICAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgICAgICAgIGlmICghaGFzRW1pdHRlZE9wZW4uY3VycmVudCkge1xuICAgICAgICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdE1lbnRpb25PcGVuLCB7IHR5cGU6IHR5cGVGcm9tQXQgfSlcbiAgICAgICAgICAgIGhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldEFjdGl2ZVR5cGUodHlwZUZyb21BdClcbiAgICAgICAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVNlYXJjaFZhbHVlKGVmZmVjdGl2ZVF1ZXJ5KVxuICAgICAgfSBlbHNlIGlmIChwb3BvdmVyT3Blbikge1xuICAgICAgICBjbG9zZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbYWxsb3dlZFR5cGVzLCBkZWZhdWx0VHlwZSwgcG9wb3Zlck9wZW4sIHBvc2l0aW9uUG9wb3ZlciwgdXBkYXRlU2VhcmNoVmFsdWUsIGV2ZW50LCBjbG9zZV1cbiAgKVxuXG4gIGNvbnN0IGluc2VydFNlbGVjdGVkSXRlbSA9IHVzZUNhbGxiYWNrKFxuICAgIChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG1lbnRpb246IENvbnRleHRNZW50aW9uID0ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgICAgICBsYWJlbDogaXRlbS5wcmltYXJ5LFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGNsaWVudElkOiBpdGVtLnJhdy5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGl0ZW0ucmF3LmNsaWVudE5hbWUgPz8gbnVsbCxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogaXRlbS5yYXcucHJvamVjdE5hbWUgPz8gbnVsbCxcbiAgICAgICAgICBmZWVJZDogaXRlbS5yYXcuZmVlSWQgPz8gbnVsbCxcbiAgICAgICAgICBmYXRoZXJJZDogaXRlbS5yYXcuZmF0aGVySWQgPz8gbnVsbCxcbiAgICAgICAgICBmYXRoZXJUaXRsZTogaXRlbS5yYXcuZmF0aGVyVGl0bGUgPz8gbnVsbCxcbiAgICAgICAgICB0b3RhbFByb3llY3RvczogaXRlbS5yYXcudG90YWxQcm95ZWN0b3MgPz8gbnVsbCxcbiAgICAgICAgICBuYW1lOiBpdGVtLnJhdy5uYW1lID8/IG51bGwsXG4gICAgICAgICAgcGljdHVyZTogaXRlbS5yYXcucGljdHVyZSA/PyBudWxsLFxuICAgICAgICAgIHBvc2l0aW9uTmFtZTogaXRlbS5yYXcucG9zaXRpb25OYW1lID8/IG51bGwsXG4gICAgICAgICAgZW1haWw6IGl0ZW0ucmF3LmVtYWlsID8/IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0TWVudGlvbihtZW50aW9uKVxuICAgICAgb25NZW50aW9uQWRkZWQ/LihtZW50aW9uKVxuICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdE1lbnRpb25TZWxlY3QsIHsgdHlwZTogbWVudGlvbi50eXBlLCBpZDogU3RyaW5nKG1lbnRpb24uaWQpIH0pXG4gICAgICBjbG9zZSgpXG4gICAgfSxcbiAgICBbZWRpdG9yUmVmLCBvbk1lbnRpb25BZGRlZCwgZXZlbnQsIGNsb3NlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlVHlwZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICAgICAgc2V0QWN0aXZlVHlwZSh0eXBlKVxuICAgICAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnN5bmNTa2lsbFRyaWdnZXIoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV4dFJ1bkxlbmd0aCA9IGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlKFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgYWxsb3dlZFR5cGVzLmZpbHRlcihlbnRpdHlUeXBlID0+IGVudGl0eVR5cGUgIT09ICdza2lsbCcpXG4gICAgICAgIClcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgobmV4dFJ1bkxlbmd0aClcbiAgICAgIH1cbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uVHlwZVN3aXRjaCwgeyB0eXBlIH0pXG4gICAgfSxcbiAgICBbYWxsb3dlZFR5cGVzLCBlZGl0b3JSZWYsIGV2ZW50XVxuICApXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKCFwb3BvdmVyT3BlbiB8fCBhbGxvd2VkVHlwZXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY2xvc2UoKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnKSAmJiAoZS5tZXRhS2V5IHx8IGUuYWx0S2V5KSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY29uc3QgaWR4ID0gYWxsb3dlZFR5cGVzLmluZGV4T2YoYWN0aXZlVHlwZSlcbiAgICAgICAgY29uc3QgZGVsdGEgPSBlLmtleSA9PT0gJ0Fycm93UmlnaHQnID8gMSA6IC0xXG4gICAgICAgIGNvbnN0IG5leHRJZHggPSAoaWR4ICsgZGVsdGEgKyBhbGxvd2VkVHlwZXMubGVuZ3RoKSAlIGFsbG93ZWRUeXBlcy5sZW5ndGhcbiAgICAgICAgaGFuZGxlVHlwZUNoYW5nZShhbGxvd2VkVHlwZXNbbmV4dElkeF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRJc0tleWJvYXJkTmF2QWN0aXZlKHRydWUpXG4gICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYgPT4gKGl0ZW1zLmxlbmd0aCA+IDAgPyBNYXRoLm1pbihwcmV2ICsgMSwgaXRlbXMubGVuZ3RoIC0gMSkgOiAwKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRJc0tleWJvYXJkTmF2QWN0aXZlKHRydWUpXG4gICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYgPT4gTWF0aC5tYXgocHJldiAtIDEsIDApKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnVGFiJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaW5zZXJ0U2VsZWN0ZWRJdGVtKGl0ZW1zW2FjdGl2ZUluZGV4XSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sXG4gICAgW3BvcG92ZXJPcGVuLCBpdGVtcywgYWxsb3dlZFR5cGVzLCBhY3RpdmVUeXBlLCBhY3RpdmVJbmRleCwgaW5zZXJ0U2VsZWN0ZWRJdGVtLCBjbG9zZSwgaGFuZGxlVHlwZUNoYW5nZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBwb3NpdGlvblBvcG92ZXIoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIH1cbiAgfSwgW3BvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXJdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlID0gKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG1vdXNlRXZlbnQudGFyZ2V0IGFzIE5vZGUgfCBudWxsXG4gICAgICBpZiAoIXRhcmdldCkgcmV0dXJuXG4gICAgICBpZiAocG9wb3ZlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGNsb3NlKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSlcbiAgfSwgW3BvcG92ZXJPcGVuLCBjbG9zZSwgcG9wb3ZlckFuY2hvclJlZl0pXG5cbiAgY29uc3QgcHJldklzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlXG4gICAgfVxuICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgc2V0QWN0aXZlSW5kZXgoMClcbiAgfSwgW2l0ZW1zLmxlbmd0aCwgYWN0aXZlVHlwZV0pXG5cbiAgY29uc3QgcG9wb3Zlck5vZGUgPSB1c2VNZW1vPFJlYWN0Tm9kZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXBvcG92ZXJPcGVuKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8U0NNUEFuY2hvclxuICAgICAgICByZWY9e3BvcG92ZXJSZWZ9XG4gICAgICAgIHsuLi57IFtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSXTogJycgfX1cbiAgICAgICAgJGJvdHRvbT17cG9wb3ZlclBvcy5ib3R0b219XG4gICAgICAgICRsZWZ0PXtwb3BvdmVyUG9zLmxlZnR9XG4gICAgICAgICR3aWR0aD17cG9wb3ZlclBvcy53aWR0aH1cbiAgICAgICAgJHpJbmRleD17bWVudGlvblBvcG92ZXJaSW5kZXh9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIDxDb250ZXh0TWVudGlvblBvcG92ZXJcbiAgICAgICAgICBhbGxvd2VkVHlwZXM9e2FsbG93ZWRUeXBlc31cbiAgICAgICAgICBhY3RpdmVUeXBlPXthY3RpdmVUeXBlfVxuICAgICAgICAgIG9uVHlwZUNoYW5nZT17aGFuZGxlVHlwZUNoYW5nZX1cbiAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaGlkZVJlY2VudHNMYWJlbD17aGlkZVJlY2VudHNMYWJlbH1cbiAgICAgICAgICBza2lsbHNDYXRhbG9nRW1wdHk9e3NraWxsc0NhdGFsb2dFbXB0eX1cbiAgICAgICAgICBoYXNNb3JlPXtoYXNNb3JlfVxuICAgICAgICAgIGlzTG9hZGluZ01vcmU9e2lzTG9hZGluZ01vcmV9XG4gICAgICAgICAgb25SZWFjaExpc3RFbmQ9e2xvYWRNb3JlfVxuICAgICAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICBrZXlib2FyZEhpbnQ9e3QoJ2NvbnRleHRNZW50aW9uLmtleWJvYXJkSGludCcsIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ05hdmVnYWNpw7NuIGVudHJlIHBlc3Rhw7FhczogQCwgQEAsIEBAQOKApiBlbiBvcmRlbi4gVGFtYmnDqW4gQWx0L0NtZCArIOKGkC/ihpInLFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIG9uSXRlbVNlbGVjdGVkPXtpbnNlcnRTZWxlY3RlZEl0ZW19XG4gICAgICAgICAgYWN0aXZlSW5kZXg9e2FjdGl2ZUluZGV4fVxuICAgICAgICAgIG9uQWN0aXZlSW5kZXhDaGFuZ2U9e3NldEFjdGl2ZUluZGV4fVxuICAgICAgICAgIGlzS2V5Ym9hcmROYXZBY3RpdmU9e2lzS2V5Ym9hcmROYXZBY3RpdmV9XG4gICAgICAgICAgb25Nb3VzZU1vdmVJbkxpc3Q9eygpID0+IHNldElzS2V5Ym9hcmROYXZBY3RpdmUoZmFsc2UpfVxuICAgICAgICAvPlxuICAgICAgPC9TQ01QQW5jaG9yPlxuICAgIClcbiAgfSwgW1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHBvcG92ZXJQb3MsXG4gICAgbWVudGlvblBvcG92ZXJaSW5kZXgsXG4gICAgYWxsb3dlZFR5cGVzLFxuICAgIGFjdGl2ZVR5cGUsXG4gICAgaGFuZGxlVHlwZUNoYW5nZSxcbiAgICBpdGVtcyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhpZGVSZWNlbnRzTGFiZWwsXG4gICAgc2tpbGxzQ2F0YWxvZ0VtcHR5LFxuICAgIGhhc01vcmUsXG4gICAgaXNMb2FkaW5nTW9yZSxcbiAgICBsb2FkTW9yZSxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBpbnNlcnRTZWxlY3RlZEl0ZW0sXG4gICAgYWN0aXZlSW5kZXgsXG4gICAgaXNLZXlib2FyZE5hdkFjdGl2ZSxcbiAgXSlcblxuICByZXR1cm4geyBwb3BvdmVyT3BlbiwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nLCBoYW5kbGVUcmlnZ2VyLCBoYW5kbGVLZXlEb3duLCBwb3BvdmVyTm9kZSwgY2xvc2UgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQThDQSxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBRTlHLFNBQ0VDLHFCQUFxQixFQUNyQkMsNEJBQTRCLEVBQzVCQyxVQUFVLFFBQ0wsMkNBQTJDO0FBQ2xELFNBQVNDLHNCQUFzQixRQUFRLDBCQUEwQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSwyQkFBMkI7QUFDNUQsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFDN0I7QUFDQSxTQUE0QkMsZUFBZSxRQUFRLG1CQUFtQjtBQUN0RSxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFlBQVk7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUF3QzdDLElBQU1DLHdCQUFvRSxHQUFHO0VBQzNFQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxJQUFJLEVBQUUsQ0FB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LE9BQUlBLENBQUMsQ0FBQzRCLGVBQWUsQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUFBQyxRQUFBLGVBRXRDMU8sSUFBQSxDQUFDWixxQkFBcUI7UUFDcEJtQixZQUFZLEVBQUVBLFlBQWE7UUFDM0JpRixVQUFVLEVBQUVBLFVBQVc7UUFDdkJtSixZQUFZLEVBQUV0QyxnQkFBaUI7UUFDL0JqRixLQUFLLEVBQUVBLEtBQU07UUFDYkMsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCQyxLQUFLLEVBQUVBLEtBQU07UUFDYkMsZ0JBQWdCLEVBQUVBLGdCQUFpQjtRQUNuQ00sa0JBQWtCLEVBQUVBLGtCQUFtQjtRQUN2Q0wsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCQyxhQUFhLEVBQUVBLGFBQWM7UUFDN0JtSCxjQUFjLEVBQUVsSCxRQUFTO1FBQ3pCQyxXQUFXLEVBQUVBLFdBQVk7UUFDekJrSCxZQUFZLEVBQUUzSixDQUFDLENBQUMsNkJBQTZCLEVBQUU7VUFDN0M0SixZQUFZLEVBQUU7UUFDaEIsQ0FBQyxDQUFFO1FBQ0hDLGNBQWMsRUFBRXpFLGtCQUFtQjtRQUNuQy9ELFdBQVcsRUFBRUEsV0FBWTtRQUN6QnlJLG1CQUFtQixFQUFFeEksY0FBZTtRQUNwQ0csbUJBQW1CLEVBQUVBLG1CQUFvQjtRQUN6Q3NJLGlCQUFpQixFQUFFLFNBQW5CQSxpQkFBaUJBLENBQUE7VUFBQSxPQUFRckksc0JBQXNCLENBQUMsS0FBSyxDQUFDO1FBQUE7TUFBQyxDQUN4RDtJQUFDLEVBQ1EsQ0FBQztFQUVqQixDQUFDLEVBQUUsQ0FDRGhCLFdBQVcsRUFDWE8sVUFBVSxFQUNWZCxvQkFBb0IsRUFDcEI5RSxZQUFZLEVBQ1ppRixVQUFVLEVBQ1Y2RyxnQkFBZ0IsRUFDaEJqRixLQUFLLEVBQ0xDLE9BQU8sRUFDUEMsS0FBSyxFQUNMQyxnQkFBZ0IsRUFDaEJNLGtCQUFrQixFQUNsQkwsT0FBTyxFQUNQQyxhQUFhLEVBQ2JDLFFBQVEsRUFDUkMsV0FBVyxFQUNYMkMsa0JBQWtCLEVBQ2xCL0QsV0FBVyxFQUNYSSxtQkFBbUIsQ0FDcEIsQ0FBQztFQUVGLE9BQU87SUFBRWYsV0FBVyxFQUFYQSxXQUFXO0lBQUVzRCx3QkFBd0IsRUFBeEJBLHdCQUF3QjtJQUFFRSxhQUFhLEVBQWJBLGFBQWE7SUFBRXdELGFBQWEsRUFBYkEsYUFBYTtJQUFFcUIsV0FBVyxFQUFYQSxXQUFXO0lBQUU5RSxLQUFLLEVBQUxBO0VBQU0sQ0FBQztBQUNwRyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZU9yY2hlc3RyYXRvclN0cmVhbS91c2VPcmNoZXN0cmF0b3JTdHJlYW0uaW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXBwcm92YWxSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB0eXBlIHsgSGl0bEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZENvbnRleHQgPSB7XG4gIHByb2plY3RfaWQ6IG51bWJlciB8IG51bGxcbiAgcHJvamVjdF9uYW1lOiBzdHJpbmcgfCBudWxsXG4gIGNsaWVudF9pZDogbnVtYmVyIHwgbnVsbFxuICBjbGllbnRfbmFtZTogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcyA9IHtcbiAgb25TdHJlYW1VcGRhdGU/OiAobWVzc2FnZTogc3RyaW5nLCBzb3VyY2VzOiBhbnksIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRmluaXNoU3RyZWFtPzogKFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBzb3VyY2VzOiBhbnksXG4gICAgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBhbnlbXSB8IG51bGwsXG4gICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGwsXG4gICAgLyoqIFRyYXMgYXByb2JhciBjcmVhdGVfYWdlbnQgZWwgYmFja2VuZCBwdWVkZSBlbnZpYXIgZWwgaWQgZW4gZWwgZXZlbnRvIGBjb21wbGV0ZWAgKi9cbiAgICBhZ2VudElkPzogc3RyaW5nIHwgbnVsbCxcbiAgICAvKiogQ29udGV4dG8gcmVzdWVsdG8gcG9yIGVsIHN1YmFnZW50ZSAocHJvamVjdF9pZCwgY2xpZW50X2lkLCBldGMuKSAqL1xuICAgIHJlc29sdmVkQ29udGV4dD86IFJlc29sdmVkQ29udGV4dCB8IG51bGxcbiAgKSA9PiB2b2lkXG4gIG9uU3RhcnRXcml0aW5nPzogKCkgPT4gdm9pZFxuICBvblN0b3A/OiAoKSA9PiB2b2lkXG4gIG9uRXJyb3I/OiAoZXJyb3JUeXBlPzogc3RyaW5nLCBlcnJvck1lc3NhZ2U/OiBzdHJpbmcpID0+IHZvaWRcbiAgb25BcHByb3ZhbFJlcXVpcmVkPzogKGFwcHJvdmFsOiBBcHByb3ZhbFJlcXVlc3QsIGFjY3VtdWxhdGVkQ29udGVudDogc3RyaW5nKSA9PiB2b2lkXG4gIGhpdGxFeGVjdXRpb25Db250ZXh0UmVmPzogTXV0YWJsZVJlZk9iamVjdDxIaXRsRXhlY3V0aW9uQ29udGV4dCB8IG51bGw+XG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZU9yY2hlc3RyYXRvclN0cmVhbS91c2VPcmNoZXN0cmF0b3JTdHJlYW0uaW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXBwcm92YWxSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB0eXBlIHsgSGl0bEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuXG5leHBvcnQgdHlwZSBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcyA9IHtcbiAgb25TdHJlYW1VcGRhdGU/OiAobWVzc2FnZTogc3RyaW5nLCBzb3VyY2VzOiBhbnksIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRmluaXNoU3RyZWFtPzogKFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBzb3VyY2VzOiBhbnksXG4gICAgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBhbnlbXSB8IG51bGwsXG4gICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGwsXG4gICAgLyoqIFRyYXMgYXByb2JhciBjcmVhdGVfYWdlbnQgZWwgYmFja2VuZCBwdWVkZSBlbnZpYXIgZWwgaWQgZW4gZWwgZXZlbnRvIGBjb21wbGV0ZWAgKi9cbiAgICBhZ2VudElkPzogc3RyaW5nIHwgbnVsbFxuICApID0+IHZvaWRcbiAgb25TdGFydFdyaXRpbmc/OiAoKSA9PiB2b2lkXG4gIG9uU3RvcD86ICgpID0+IHZvaWRcbiAgb25FcnJvcj86IChlcnJvclR5cGU/OiBzdHJpbmcsIGVycm9yTWVzc2FnZT86IHN0cmluZykgPT4gdm9pZFxuICBvbkFwcHJvdmFsUmVxdWlyZWQ/OiAoYXBwcm92YWw6IEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50OiBzdHJpbmcpID0+IHZvaWRcbiAgaGl0bEV4ZWN1dGlvbkNvbnRleHRSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbD5cbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==