@projectcor/maia-components 2.11.41-8 → 2.11.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/App.js +11 -22
- package/lib/components/atoms/EntitySelector/EntitySelector.js +3 -47
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +3 -3
- package/lib/components/atoms/MAIAInput/MAIAInput.js +321 -246
- package/lib/components/atoms/MAIAInput/styles.js +46 -75
- package/lib/components/atoms/icons/index.js +1 -2
- package/lib/components/index.js +1 -2
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +4 -8
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -31
- package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -5
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +18 -9
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -5
- package/lib/components/molecules/Sidebar/Sidebar.js +5 -9
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -6
- package/lib/components/organisms/ChatAI/ChatAI.js +20 -4
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -5
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +3 -6
- package/lib/constants/config.js +1 -3
- package/lib/context/cor-user.js +1 -1
- package/lib/context/global-context.js +5 -1
- package/lib/dev/Providers.js +6 -11
- package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +11 -21
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +1 -1
- package/lib/hooks/useChatMessages/useChatMessages.js +14 -30
- package/lib/hooks/useClientSearch.js +2 -3
- package/lib/hooks/useEvent.js +1 -6
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -6
- package/lib/hooks/useProjectSearch.js +2 -3
- package/lib/hooks/useRecentClientsSearch.js +2 -3
- package/lib/hooks/useTaskPanel.js +10 -3
- package/lib/lang/br/index.js +1 -24
- package/lib/lang/en/index.js +1 -24
- package/lib/lang/es/index.js +1 -24
- package/lib/lang/fr/index.js +1 -23
- package/lib/services/maia/Chats/getChatMessages.js +4 -29
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +8 -4
- package/lib/services/maia/Orchestrator/orchestrator.js +5 -8
- package/lib/services/maia/RecentProjects/getRecentProjects.js +4 -12
- package/lib/services/utils/mapChatMessages.js +5 -12
- package/lib/types/Chat.js +1 -1
- package/lib/types/agent.js +1 -1
- package/package.json +1 -2
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +0 -38
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +0 -184
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +0 -39
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +0 -432
- package/lib/components/atoms/ContextMentionChip/index.js +0 -4
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -225
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +0 -6
- package/lib/components/atoms/ContextMentionEditor/index.js +0 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +0 -282
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -148
- package/lib/components/atoms/ContextMentionItem/index.js +0 -2
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -160
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +0 -79
- package/lib/components/atoms/ContextMentionPopover/index.js +0 -3
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +0 -269
- package/lib/components/atoms/icons/NotionIcon.js +0 -36
- package/lib/components/atoms/icons/SubtaskIcon.js +0 -36
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +0 -68
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +0 -6
- package/lib/components/molecules/ContextMentionInput/index.js +0 -2
- package/lib/constants/taskLinkIcon.js +0 -6
- package/lib/dev/DevContextMentionInput.js +0 -65
- package/lib/hooks/useCaretPosition.js +0 -35
- package/lib/hooks/useContextMentions.js +0 -270
- package/lib/hooks/useEntitySearch.js +0 -1097
- package/lib/hooks/useMentionAllowedTypes.js +0 -103
- package/lib/hooks/useMentionPopover.js +0 -334
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +0 -34
- package/lib/services/maia/RecentTasks/getRecentTasks.js +0 -54
- package/lib/services/maia/RecentTasks/index.js +0 -6
- package/lib/services/maia/RecentUsers/getRecentUsers.js +0 -59
- package/lib/services/maia/RecentUsers/index.js +0 -6
- package/lib/services/query/entitySearchQuery.js +0 -18
- package/lib/services/query/usersDirectoryQuery.js +0 -19
- package/lib/types/contextMention.js +0 -37
- package/lib/utils/contextMentionIcons.js +0 -115
- package/lib/utils/contextMentionLabel.js +0 -4
- package/lib/utils/contextMentionTypeLabel.js +0 -17
- package/lib/utils/maiaStreamdownRehypePlugins.js +0 -27
- package/lib/utils/openTaskInCorPanel.js +0 -18
- package/lib/utils/renderContextMentions.js +0 -355
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRNZXNzYWdlcy91c2VDaGF0TWVzc2FnZXMuaW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2VVc2VyIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvYWdlbnQnXG5cbmV4cG9ydCB0eXBlIFVzZUNoYXRNZXNzYWdlc1Byb3BzID0ge1xuICBvbkVycm9yPzogKCkgPT4gdm9pZFxuICBjaGF0SWQ6IHN0cmluZ1xuICBjdXJyZW50VXNlcjogQ2hhdE1lc3NhZ2VVc2VyXG4gIHVzZXJJbml0aWFsTWVzc2FnZT86IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXSB9XG4gIGFnZW50cz86IEFnZW50W11cbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -8,7 +8,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
8
8
|
/* eslint-disable @typescript-eslint/indent */
|
|
9
9
|
import { useCallback, useState, useRef, useEffect } from 'react';
|
|
10
10
|
import { useProjects } from '../useProjects';
|
|
11
|
-
import { buildContextMessage } from '../../types/contextMention';
|
|
12
11
|
import maia from '../../services/maia';
|
|
13
12
|
import { useGlobalContext } from '../../context/global-context';
|
|
14
13
|
import { useT } from '../useT';
|
|
@@ -39,15 +38,13 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
39
38
|
_useState2 = _slicedToArray(_useState, 2),
|
|
40
39
|
loadingMessages = _useState2[0],
|
|
41
40
|
setLoadingMessages = _useState2[1];
|
|
42
|
-
var _useState3 = useState(userInitialMessage ? [_objectSpread(
|
|
41
|
+
var _useState3 = useState(userInitialMessage ? [_objectSpread({
|
|
43
42
|
id: 'user-initial-message',
|
|
44
43
|
date: new Date(),
|
|
45
44
|
user: currentUser,
|
|
46
45
|
message: userInitialMessage.message
|
|
47
46
|
}, userInitialMessage.attachments ? {
|
|
48
47
|
attachments: userInitialMessage.attachments
|
|
49
|
-
} : {}), buildContextMessage(userInitialMessage.mentions) ? {
|
|
50
|
-
contextMessage: buildContextMessage(userInitialMessage.mentions)
|
|
51
48
|
} : {})] : []),
|
|
52
49
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
53
50
|
messages = _useState4[0],
|
|
@@ -171,16 +168,14 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
171
168
|
clientIdFromSession = _yield$maia$Chats$get.clientId;
|
|
172
169
|
clientNameFromSession = _yield$maia$Chats$get.clientName;
|
|
173
170
|
if (agentDeleted) {
|
|
174
|
-
selectAgent(
|
|
171
|
+
selectAgent({
|
|
175
172
|
id: agentDeleted.id,
|
|
176
173
|
name: agentDeleted.name,
|
|
177
174
|
emoji: agentDeleted.emoji,
|
|
178
175
|
type: 'custom',
|
|
179
176
|
is_deleted: true,
|
|
180
177
|
deleted_at: agentDeleted.deletedAt
|
|
181
|
-
}
|
|
182
|
-
connectors: agentNoPermission.connectors
|
|
183
|
-
} : {}));
|
|
178
|
+
});
|
|
184
179
|
}
|
|
185
180
|
|
|
186
181
|
// Si el agente no está en la lista pero tiene permisos, acceso y no está eliminado, setearlo normalmente
|
|
@@ -188,15 +183,13 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
188
183
|
if (agentNoPermission && !agentDeleted && userPermissions !== null && userPermissions !== void 0 && userPermissions.view && hasAgentAccess && hasAgentPermission && !agents.find(function (agent) {
|
|
189
184
|
return agent.id === agentNoPermission.id;
|
|
190
185
|
})) {
|
|
191
|
-
selectAgent(_objectSpread(
|
|
186
|
+
selectAgent(_objectSpread({
|
|
192
187
|
id: agentNoPermission.id,
|
|
193
188
|
name: agentNoPermission.name,
|
|
194
189
|
emoji: agentNoPermission.emoji,
|
|
195
190
|
type: agentNoPermission.type,
|
|
196
191
|
is_from_conversation: true
|
|
197
|
-
},
|
|
198
|
-
connectors: agentNoPermission.connectors
|
|
199
|
-
} : {}), projectDeleted ? {
|
|
192
|
+
}, projectDeleted ? {
|
|
200
193
|
project_deleted: {
|
|
201
194
|
name: projectDeleted.name
|
|
202
195
|
}
|
|
@@ -226,48 +219,41 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
226
219
|
if (agentNoPermission && !agentDeleted) {
|
|
227
220
|
if (!hasAgentAccess) {
|
|
228
221
|
// Caso 1: No tiene acceso al agente
|
|
229
|
-
selectAgent(_objectSpread(
|
|
222
|
+
selectAgent(_objectSpread({
|
|
230
223
|
id: agentNoPermission.id,
|
|
231
224
|
name: agentNoPermission.name,
|
|
232
225
|
emoji: agentNoPermission.emoji,
|
|
233
226
|
type: agentNoPermission.type,
|
|
234
227
|
has_not_access: true
|
|
235
|
-
},
|
|
236
|
-
connectors: agentNoPermission.connectors
|
|
237
|
-
} : {}), projectDeleted ? {
|
|
228
|
+
}, projectDeleted ? {
|
|
238
229
|
project_deleted: {
|
|
239
230
|
name: projectDeleted.name
|
|
240
231
|
}
|
|
241
232
|
} : {}));
|
|
242
233
|
} else if (!hasAgentPermission) {
|
|
243
234
|
// Caso 2: No tiene permisos para visualizar/interactuar con el agente
|
|
244
|
-
selectAgent(_objectSpread(
|
|
235
|
+
selectAgent(_objectSpread({
|
|
245
236
|
id: agentNoPermission.id,
|
|
246
237
|
name: agentNoPermission.name,
|
|
247
238
|
emoji: agentNoPermission.emoji,
|
|
248
239
|
type: agentNoPermission.type,
|
|
249
240
|
has_not_permissions: true
|
|
250
|
-
},
|
|
251
|
-
connectors: agentNoPermission.connectors
|
|
252
|
-
} : {}), projectDeleted ? {
|
|
241
|
+
}, projectDeleted ? {
|
|
253
242
|
project_deleted: {
|
|
254
243
|
name: projectDeleted.name
|
|
255
244
|
}
|
|
256
245
|
} : {}));
|
|
257
246
|
} else if (projectDeleted) {
|
|
258
247
|
// Caso 3: El proyecto de la conversación fue eliminado
|
|
259
|
-
selectAgent(
|
|
248
|
+
selectAgent({
|
|
260
249
|
id: agentNoPermission.id,
|
|
261
250
|
name: agentNoPermission.name,
|
|
262
251
|
emoji: agentNoPermission.emoji,
|
|
263
|
-
type: agentNoPermission.type
|
|
264
|
-
}, agentNoPermission.connectors ? {
|
|
265
|
-
connectors: agentNoPermission.connectors
|
|
266
|
-
} : {}), {}, {
|
|
252
|
+
type: agentNoPermission.type,
|
|
267
253
|
project_deleted: {
|
|
268
254
|
name: projectDeleted.name
|
|
269
255
|
}
|
|
270
|
-
})
|
|
256
|
+
});
|
|
271
257
|
}
|
|
272
258
|
}
|
|
273
259
|
_context2.next = 2;
|
|
@@ -419,15 +405,13 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
419
405
|
}, [loadMoreMessages]);
|
|
420
406
|
useEffect(function () {
|
|
421
407
|
if (chatId !== previousChatId.current) {
|
|
422
|
-
setMessages(userInitialMessage ? [_objectSpread(
|
|
408
|
+
setMessages(userInitialMessage ? [_objectSpread({
|
|
423
409
|
id: 'user-initial-message',
|
|
424
410
|
date: new Date(),
|
|
425
411
|
user: currentUser,
|
|
426
412
|
message: userInitialMessage.message
|
|
427
413
|
}, userInitialMessage.attachments ? {
|
|
428
414
|
attachments: userInitialMessage.attachments
|
|
429
|
-
} : {}), buildContextMessage(userInitialMessage.mentions) ? {
|
|
430
|
-
contextMessage: buildContextMessage(userInitialMessage.mentions)
|
|
431
415
|
} : {})] : []);
|
|
432
416
|
setLastEvaluatedKey(0);
|
|
433
417
|
isLoadingRef.current = false;
|
|
@@ -506,4 +490,4 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
506
490
|
handleScroll: handleScroll
|
|
507
491
|
};
|
|
508
492
|
};
|
|
509
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJyZXdyaXRlVGFza1VybHNJbkNvbnRlbnQiLCJjb250ZW50IiwidGFiU2VnbWVudCIsInRhc2tVcmxSZWdleCIsIlJlZ0V4cCIsInJlcGxhY2UiLCJ1cmwiLCJ1c2VDaGF0TWVzc2FnZXMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkVycm9yIiwiY2hhdElkIiwiY3VycmVudFVzZXIiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJfcmVmJGFnZW50cyIsImFnZW50cyIsIl91c2VUIiwidCIsImkxOG4iLCJ1c2VyIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsb2FkaW5nTWVzc2FnZXMiLCJzZXRMb2FkaW5nTWVzc2FnZXMiLCJfdXNlU3RhdGUzIiwiX29iamVjdFNwcmVhZCIsImlkIiwiZGF0ZSIsIkRhdGUiLCJtZXNzYWdlIiwiYXR0YWNobWVudHMiLCJtZW50aW9ucyIsImNvbnRleHRNZXNzYWdlIiwiX3VzZVN0YXRlNCIsIm1lc3NhZ2VzIiwic2V0TWVzc2FnZXMiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldENoaXBzUHJvamVjdCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJwcm9qZWN0IiwiX3VzZVRhYlRhc2tEZWZhdWx0IiwiZ2V0VGFiVGFza0RlZmF1bHQiLCJ0YWJUYXNrRGVmYXVsdCIsInJlZmV0Y2hUYWJUYXNrRGVmYXVsdCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNMb2FkaW5nTW9yZU1lc3NhZ2VzIiwic2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsYXN0RXZhbHVhdGVkS2V5Iiwic2V0TGFzdEV2YWx1YXRlZEtleSIsImlzTG9hZGluZ1JlZiIsImluaXRpYWxMb2FkRG9uZSIsInByZXZpb3VzQ2hhdElkIiwic2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSIsIl9yZWYzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmMiIsInByb2plY3RJZE1lc3NhZ2UiLCJwcm9qZWN0TmFtZUZyb21TZXNzaW9uIiwiY2xpZW50SWRGcm9tU2Vzc2lvbiIsImNsaWVudE5hbWVGcm9tU2Vzc2lvbiIsInByb2plY3RzIiwiaGFzTXVsdGlBZ2VudHNBY2Nlc3MiLCJwcm9qZWN0SWROdW0iLCJmb3VuZFByb2plY3QiLCJfZm91bmRQcm9qZWN0JGNsaWVudCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiTnVtYmVyIiwibmFtZSIsImFicnVwdCIsInNlbnQiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiZmluZCIsInAiLCJwcm9qZWN0TmFtZSIsImNsaWVudE5hbWUiLCJjbGllbnQiLCJwcm9qZWN0SWQiLCJTdHJpbmciLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImxvYWRNZXNzYWdlcyIsIl9jYWxsZWUyIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0IiwiaXRlbXMiLCJuZXh0SXRlbSIsImFnZW50RGVsZXRlZCIsImFnZW50Tm9QZXJtaXNzaW9uIiwiaGFzQWdlbnRBY2Nlc3MiLCJoYXNBZ2VudFBlcm1pc3Npb24iLCJwcm9qZWN0RGVsZXRlZCIsImFnZW50SW5MaXN0IiwiY29udGV4dFByb2plY3RJZCIsIml0ZW1zVG9TZXQiLCJ0YWIiLCJfdCIsIl9jb250ZXh0MiIsImN1cnJlbnQiLCJDaGF0cyIsImdldENoYXRNZXNzYWdlcyIsIm9mZnNldCIsImNhbmNlbGxlZFRleHQiLCJsYW5nIiwibGFuZ3VhZ2UiLCJjbGllbnRJZCIsImVtb2ppIiwidHlwZSIsImlzX2RlbGV0ZWQiLCJkZWxldGVkX2F0IiwiZGVsZXRlZEF0IiwiY29ubmVjdG9ycyIsInZpZXciLCJhZ2VudCIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwicHJvamVjdF9kZWxldGVkIiwiYSIsInVuZGVmaW5lZCIsImhhc19ub3RfYWNjZXNzIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsInBhcnNlSW50IiwiY29uY2F0IiwibWFwIiwiaXRlbSIsImZpbmlzaCIsImxvYWRNb3JlTWVzc2FnZXMiLCJfcmVmNSIsIl9jYWxsZWUzIiwiY29udGFpbmVyIiwib2xkU2Nyb2xsSGVpZ2h0Iiwib2xkU2Nyb2xsVG9wIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0MiIsIml0ZW1zVG9NZXJnZSIsIm5ld01lc3NhZ2VzIiwiX3QyIiwiX2NvbnRleHQzIiwic2Nyb2xsSGVpZ2h0Iiwic2Nyb2xsVG9wIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic2xpY2UiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjb250YWluZXJSZWYiLCJuZXdTY3JvbGxIZWlnaHQiLCJoZWlnaHREaWZmZXJlbmNlIiwiX3gyIiwiaGFuZGxlU2Nyb2xsIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsUGVyY2VudGFnZSIsImRpZFJld3JpdGVSZWYiLCJsZW5ndGgiLCJuZWVkc1Jld3JpdGUiLCJzb21lIiwibXNnIiwibWF0Y2hlcyIsIm1hdGNoIiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsInJld3JpdHRlbiIsImFkZE1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2VJbmRleCIsImZpbmRJbmRleCIsInJlbW92ZU1lc3NhZ2UiLCJtZXNzYWdlSWQiLCJmaWx0ZXIiLCJoYXNNb3JlTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1lc3NhZ2VzL3VzZUNoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VQcm9qZWN0cyB9IGZyb20gJy4uL3VzZVByb2plY3RzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgYnVpbGRDb250ZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFVzZUNoYXRNZXNzYWdlc1Byb3BzIH0gZnJvbSAnLi91c2VDaGF0TWVzc2FnZXMuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlVGFiVGFza0RlZmF1bHQgfSBmcm9tICcuLi91c2VUYWJUYXNrRGVmYXVsdCdcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vbGFuZy91dGlscydcblxuY29uc3QgcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50ID0gKGNvbnRlbnQ6IHN0cmluZywgdGFiU2VnbWVudDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdGFza1VybFJlZ2V4ID0gbmV3IFJlZ0V4cChUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCAnZycpXG4gIHJldHVybiBjb250ZW50LnJlcGxhY2UodGFza1VybFJlZ2V4LCB1cmwgPT5cbiAgICB1cmwucmVwbGFjZSgvXFwvKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpKD89JHxcXD8pLywgdGFiU2VnbWVudClcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdE1lc3NhZ2VzID0gKHtcbiAgb25FcnJvcixcbiAgY2hhdElkLFxuICBjdXJyZW50VXNlcixcbiAgdXNlckluaXRpYWxNZXNzYWdlLFxuICBhZ2VudHMgPSBbXSxcbn06IFVzZUNoYXRNZXNzYWdlc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBbbG9hZGluZ01lc3NhZ2VzLCBzZXRMb2FkaW5nTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttZXNzYWdlcywgc2V0TWVzc2FnZXNdID0gdXNlU3RhdGU8Q2hhdE1lc3NhZ2VbXT4oXG4gICAgdXNlckluaXRpYWxNZXNzYWdlXG4gICAgICA/IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3VzZXItaW5pdGlhbC1tZXNzYWdlJyxcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgICAgIG1lc3NhZ2U6IHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICA/IHsgY29udGV4dE1lc3NhZ2U6IGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKSB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgIH0pID0+IHtcbiAgICAgIC8vIENvbnZlcnNhY2nDs24gY29uIGNsaWVudF9tZXRhZGF0YTogc2V0ZWFyIGNsaWVudGUgeSBsaW1waWFyIHByb3llY3RvXG4gICAgICBpZiAoY2xpZW50SWRGcm9tU2Vzc2lvbiAhPSBudWxsICYmIGNsaWVudE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZmV0Y2hQcm9qZWN0cyhwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgY29uc3QgaGFzTXVsdGlBZ2VudHNBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgICAgIGlmIChwcm9qZWN0SWRNZXNzYWdlICYmIGhhc011bHRpQWdlbnRzQWNjZXNzKSB7XG4gICAgICAgIGNvbnN0IHByb2plY3RJZE51bSA9IE51bWJlcihwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICBjb25zdCBmb3VuZFByb2plY3QgPSBwcm9qZWN0cz8uZmluZChwID0+IE51bWJlcihwLmlkKSA9PT0gcHJvamVjdElkTnVtKVxuXG4gICAgICAgIGlmIChmb3VuZFByb2plY3QpIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kUHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogZm91bmRQcm9qZWN0LmNsaWVudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGZvdW5kUHJvamVjdC5pZCksXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgfSBlbHNlIGlmIChwcm9qZWN0TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoeyBpZDogcHJvamVjdElkTnVtLCBuYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICB9XG4gICAgfSxcbiAgICBbZmV0Y2hQcm9qZWN0cywgc2V0Q2xpZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3RdXG4gIClcblxuICBjb25zdCBsb2FkTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyh0cnVlKVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgY29uc3Qge1xuICAgICAgICBpdGVtcyxcbiAgICAgICAgbmV4dEl0ZW0sXG4gICAgICAgIGFnZW50RGVsZXRlZCxcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24sXG4gICAgICAgIGhhc0FnZW50QWNjZXNzLFxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24sXG4gICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIHByb2plY3REZWxldGVkLFxuICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgY2hhdElkLFxuICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICBjYW5jZWxsZWRUZXh0OiB0KCdjaGF0LmNhbmNlbGxlZCcpLFxuICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgfSlcbiAgICAgIGlmIChhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgIGlkOiBhZ2VudERlbGV0ZWQuaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnREZWxldGVkLm5hbWUsXG4gICAgICAgICAgZW1vamk6IGFnZW50RGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICBpc19kZWxldGVkOiB0cnVlLFxuICAgICAgICAgIGRlbGV0ZWRfYXQ6IGFnZW50RGVsZXRlZC5kZWxldGVkQXQsXG4gICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uPy5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyBlc3TDoSBlbiBsYSBsaXN0YSBwZXJvIHRpZW5lIHBlcm1pc29zLCBhY2Nlc28geSBubyBlc3TDoSBlbGltaW5hZG8sIHNldGVhcmxvIG5vcm1hbG1lbnRlXG4gICAgICAvLyBFeGNsdWlyIGFnZW50ZXMgbm8tY3VzdG9tIHBhcmEgdXN1YXJpb3MgY29uIHJvbGVzIGRlc2hhYmlsaXRhZG9zXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnRzLmZpbmQoYWdlbnQgPT4gYWdlbnQuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgIGlzX2Zyb21fY29udmVyc2F0aW9uOiB0cnVlLFxuICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBlc3TDoSBlbiBsYSBsaXN0YSB5IHRpZW5lIGFjY2Vzby9wZXJtaXNvcywgYWN0dWFsaXphciBwcm9qZWN0X2RlbGV0ZWQgKG8gbGltcGlhcmxvIGFsIGNhbWJpYXIgZGUgY2hhdClcbiAgICAgIGlmIChcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50RGVsZXRlZCAmJlxuICAgICAgICBoYXNBZ2VudEFjY2VzcyAmJlxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICkge1xuICAgICAgICBjb25zdCBhZ2VudEluTGlzdCA9IGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICAgIGlmIChhZ2VudEluTGlzdCkge1xuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIC4uLmFnZW50SW5MaXN0LFxuICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7IHByb2plY3RfZGVsZXRlZDogdW5kZWZpbmVkIH0pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIHRpZW5lIGFjY2VzbyBvIHBlcm1pc29zIHNlZ8O6biBsYSByZXNwdWVzdGEgZGUgc2Vzc2lvbnMsIHNlbGVjY2lvbmFybG8gY29uIGVsIGZsYWcgY29ycmVzcG9uZGllbnRlXG4gICAgICAvLyBMYSB2YWxpZGFjacOzbiBhaG9yYSBzZSBiYXNhIGVuIGxhcyBwcm9waWVkYWRlcyBoYXNfYWdlbnRfYWNjZXNzIHkgaGFzX2FnZW50X3Blcm1pc3Npb24gZGUgbGEgcmVzcHVlc3RhXG4gICAgICBpZiAoYWdlbnROb1Blcm1pc3Npb24gJiYgIWFnZW50RGVsZXRlZCkge1xuICAgICAgICBpZiAoIWhhc0FnZW50QWNjZXNzKSB7XG4gICAgICAgICAgLy8gQ2FzbyAxOiBObyB0aWVuZSBhY2Nlc28gYWwgYWdlbnRlXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICAgIGhhc19ub3RfYWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc0FnZW50UGVybWlzc2lvbikge1xuICAgICAgICAgIC8vIENhc28gMjogTm8gdGllbmUgcGVybWlzb3MgcGFyYSB2aXN1YWxpemFyL2ludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGVcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgaGFzX25vdF9wZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3REZWxldGVkKSB7XG4gICAgICAgICAgLy8gQ2FzbyAzOiBFbCBwcm95ZWN0byBkZSBsYSBjb252ZXJzYWNpw7NuIGZ1ZSBlbGltaW5hZG9cbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhKHtcbiAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgfSlcblxuICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgY29uIGVsIHRhYiBkZWwgdXN1YXJpbyAobWUpXG4gICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgbGV0IGl0ZW1zVG9TZXQgPSBpdGVtc1xuICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICBpdGVtc1RvU2V0ID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChpdGVtLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgICAgICB9KSlcbiAgICAgIH1cbiAgICAgIHNldE1lc3NhZ2VzKGl0ZW1zVG9TZXQpXG4gICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcj8uKClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgY3VycmVudFVzZXIsIHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEsIG9uRXJyb3IsIGdldFRhYlRhc2tEZWZhdWx0XSlcblxuICBjb25zdCBsb2FkTW9yZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBpZiAoaXNMb2FkaW5nUmVmLmN1cnJlbnQgfHwgIWxhc3RFdmFsdWF0ZWRLZXkgfHwgIWNvbnRhaW5lcikgcmV0dXJuXG4gICAgICB0cnkge1xuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKHRydWUpXG5cbiAgICAgICAgY29uc3Qgb2xkU2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxuICAgICAgICBjb25zdCBvbGRTY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIG5leHRJdGVtLFxuICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgICAgY2hhdElkLFxuICAgICAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEoe1xuICAgICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTaSBoYXkgcHJveWVjdG8gZW4gbGEgY29udmVyc2FjacOzbiwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgY2FyZ2Fkb3NcbiAgICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3RJZE1lc3NhZ2UgPyBwYXJzZUludChTdHJpbmcocHJvamVjdElkTWVzc2FnZSksIDEwKSA6IG51bGxcbiAgICAgICAgbGV0IGl0ZW1zVG9NZXJnZSA9IGl0ZW1zXG4gICAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgICBjb25zdCB0YWJTZWdtZW50ID0gdGFiID8gYC8ke3RhYn1gIDogJy9kZXRhaWwnXG4gICAgICAgICAgaXRlbXNUb01lcmdlID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5tZXNzYWdlcy5zbGljZSgwLCAxKSwgLi4uaXRlbXNUb01lcmdlLCAuLi5tZXNzYWdlcy5zbGljZSgxKV1cbiAgICAgICAgc2V0TWVzc2FnZXMobmV3TWVzc2FnZXMpXG4gICAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkoTnVtYmVyKG5leHRJdGVtKSlcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJSZWYgPSBjb250YWluZXJcbiAgICAgICAgICAgIGlmIChjb250YWluZXJSZWYpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3U2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyUmVmLnNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHREaWZmZXJlbmNlID0gbmV3U2Nyb2xsSGVpZ2h0IC0gb2xkU2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlZi5zY3JvbGxUb3AgPSBvbGRTY3JvbGxUb3AgKyBoZWlnaHREaWZmZXJlbmNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG9uRXJyb3I/LigpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMoZmFsc2UpXG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjaGF0SWQsIGN1cnJlbnRVc2VyLCBsYXN0RXZhbHVhdGVkS2V5LCBvbkVycm9yLCBtZXNzYWdlcywgZ2V0VGFiVGFza0RlZmF1bHQsIHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGFdXG4gIClcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmICghY29udGFpbmVyIHx8IGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFpbml0aWFsTG9hZERvbmUuY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0ID4gMCA/IChzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSkgKiAxMDAgOiAwXG5cbiAgICAgIGlmIChzY3JvbGxQZXJjZW50YWdlIDwgMTApIHtcbiAgICAgICAgbG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbG9hZE1vcmVNZXNzYWdlc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoYXRJZCAhPT0gcHJldmlvdXNDaGF0SWQuY3VycmVudCkge1xuICAgICAgc2V0TWVzc2FnZXMoXG4gICAgICAgIHVzZXJJbml0aWFsTWVzc2FnZVxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd1c2VyLWluaXRpYWwtbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICAgICAgPyB7IGNvbnRleHRNZXNzYWdlOiBidWlsZENvbnRleHRNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZS5tZW50aW9ucykgfVxuICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXVxuICAgICAgKVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleSgwKVxuICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcHJldmlvdXNDaGF0SWQuY3VycmVudCA9IGNoYXRJZFxuXG4gICAgICAvLyBMaW1waWFyIGVsIGVzdGFkbyBkZWwgcHJveWVjdG8gY3VhbmRvIGNhbWJpYSBkZSBjb252ZXJzYWNpw7NuXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcblxuICAgICAgLy8gVm9sdmVyIGEgZWplY3V0YXIgbGEgcXVlcnkgbWUgcGFyYSB0ZW5lciB0YWJUYXNrRGVmYXVsdCBhY3R1YWxpemFkbyBlbiBsYSBudWV2YSBjb252ZXJzYWNpw7NuXG4gICAgICByZWZldGNoVGFiVGFza0RlZmF1bHQoKVxuXG4gICAgICBpZiAoIXVzZXJJbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBsb2FkTWVzc2FnZXMoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgdXNlckluaXRpYWxNZXNzYWdlLCBjdXJyZW50VXNlciwgbG9hZE1lc3NhZ2VzLCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3QsIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdF0pXG5cbiAgLy8gQ3VhbmRvIHRhYlRhc2tEZWZhdWx0IHBhc2EgYSBlc3RhciBkaXNwb25pYmxlIGRlc3B1w6lzIGRlIGNhcmdhciwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgeWEgY2FyZ2Fkb3MuXG4gIC8vIFJlZiBwYXJhIGV2aXRhciBidWNsZTogc2V0TWVzc2FnZXMocmV3cml0dGVuKSBjYW1iaWEgbWVzc2FnZXMgeSByZS1lamVjdXRhIGVsIGVmZWN0bzsgc29sbyByZWVzY3JpYmltb3MgdW5hIHZleiBwb3IgbG90ZS5cbiAgY29uc3QgZGlkUmV3cml0ZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRhYlRhc2tEZWZhdWx0IHx8ICFwcm9qZWN0Py5pZCB8fCBtZXNzYWdlcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhYlNlZ21lbnQgPSBgLyR7dGFiVGFza0RlZmF1bHR9YFxuICAgIGNvbnN0IG5lZWRzUmV3cml0ZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZSB8fCAnJ1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2godGFza1VybFJlZ2V4KVxuICAgICAgaWYgKCFtYXRjaGVzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIG1hdGNoZXMuc29tZSh1cmwgPT4gIXVybC5lbmRzV2l0aChgLyR7dGFiVGFza0RlZmF1bHR9YCkgJiYgIXVybC5pbmNsdWRlcyhgLyR7dGFiVGFza0RlZmF1bHR9P2ApKVxuICAgIH0pXG4gICAgaWYgKCFuZWVkc1Jld3JpdGUpIHtcbiAgICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGRpZFJld3JpdGVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGNvbnN0IHJld3JpdHRlbiA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChtc2cubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgfSkpXG4gICAgc2V0TWVzc2FnZXMocmV3cml0dGVuKVxuICB9LCBbdGFiVGFza0RlZmF1bHQsIHByb2plY3Q/LmlkLCBtZXNzYWdlc10pXG5cbiAgY29uc3QgYWRkTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4ge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5wcmV2XVxuICAgICAgICBuZXdNZXNzYWdlc1tleGlzdGluZ01lc3NhZ2VJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5wcmV2LCBtZXNzYWdlXVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHJlbW92ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZCkpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIG1lc3NhZ2VzLFxuICAgIGhhc01vcmVNZXNzYWdlczogISFsYXN0RXZhbHVhdGVkS2V5LFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgbG9hZE1vcmVNZXNzYWdlcyxcbiAgICBhZGRNZXNzYWdlLFxuICAgIHJlbW92ZU1lc3NhZ2UsXG4gICAgaGFuZGxlU2Nyb2xsLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsUUFB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
|
|
493
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJtYWlhIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVQiLCJ1c2VVc2VyIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwibWFwQ09STGFuZyIsInJld3JpdGVUYXNrVXJsc0luQ29udGVudCIsImNvbnRlbnQiLCJ0YWJTZWdtZW50IiwidGFza1VybFJlZ2V4IiwiUmVnRXhwIiwicmVwbGFjZSIsInVybCIsInVzZUNoYXRNZXNzYWdlcyIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uRXJyb3IiLCJjaGF0SWQiLCJjdXJyZW50VXNlciIsInVzZXJJbml0aWFsTWVzc2FnZSIsIl9yZWYkYWdlbnRzIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiaTE4biIsInVzZXIiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsIl91c2VTdGF0ZTMiLCJfb2JqZWN0U3ByZWFkIiwiaWQiLCJkYXRlIiwiRGF0ZSIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50IiwicHJvamVjdCIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwidGFiVGFza0RlZmF1bHQiLCJyZWZldGNoVGFiVGFza0RlZmF1bHQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsInNldElzTG9hZGluZ01vcmVNZXNzYWdlcyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwibGFzdEV2YWx1YXRlZEtleSIsInNldExhc3RFdmFsdWF0ZWRLZXkiLCJpc0xvYWRpbmdSZWYiLCJpbml0aWFsTG9hZERvbmUiLCJwcmV2aW91c0NoYXRJZCIsInNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEiLCJfcmVmMyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZjIiLCJwcm9qZWN0SWRNZXNzYWdlIiwicHJvamVjdE5hbWVGcm9tU2Vzc2lvbiIsImNsaWVudElkRnJvbVNlc3Npb24iLCJjbGllbnROYW1lRnJvbVNlc3Npb24iLCJwcm9qZWN0cyIsImhhc011bHRpQWdlbnRzQWNjZXNzIiwicHJvamVjdElkTnVtIiwiZm91bmRQcm9qZWN0IiwiX2ZvdW5kUHJvamVjdCRjbGllbnQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIk51bWJlciIsIm5hbWUiLCJhYnJ1cHQiLCJzZW50Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImZpbmQiLCJwIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiY2xpZW50IiwicHJvamVjdElkIiwiU3RyaW5nIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJsb2FkTWVzc2FnZXMiLCJfY2FsbGVlMiIsIl95aWVsZCRtYWlhJENoYXRzJGdldCIsIml0ZW1zIiwibmV4dEl0ZW0iLCJhZ2VudERlbGV0ZWQiLCJhZ2VudE5vUGVybWlzc2lvbiIsImhhc0FnZW50QWNjZXNzIiwiaGFzQWdlbnRQZXJtaXNzaW9uIiwicHJvamVjdERlbGV0ZWQiLCJhZ2VudEluTGlzdCIsImNvbnRleHRQcm9qZWN0SWQiLCJpdGVtc1RvU2V0IiwidGFiIiwiX3QiLCJfY29udGV4dDIiLCJjdXJyZW50IiwiQ2hhdHMiLCJnZXRDaGF0TWVzc2FnZXMiLCJvZmZzZXQiLCJjYW5jZWxsZWRUZXh0IiwibGFuZyIsImxhbmd1YWdlIiwiY2xpZW50SWQiLCJlbW9qaSIsInR5cGUiLCJpc19kZWxldGVkIiwiZGVsZXRlZF9hdCIsImRlbGV0ZWRBdCIsInZpZXciLCJhZ2VudCIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwicHJvamVjdF9kZWxldGVkIiwiYSIsInVuZGVmaW5lZCIsImhhc19ub3RfYWNjZXNzIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsInBhcnNlSW50IiwiY29uY2F0IiwibWFwIiwiaXRlbSIsImZpbmlzaCIsImxvYWRNb3JlTWVzc2FnZXMiLCJfcmVmNSIsIl9jYWxsZWUzIiwiY29udGFpbmVyIiwib2xkU2Nyb2xsSGVpZ2h0Iiwib2xkU2Nyb2xsVG9wIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0MiIsIml0ZW1zVG9NZXJnZSIsIm5ld01lc3NhZ2VzIiwiX3QyIiwiX2NvbnRleHQzIiwic2Nyb2xsSGVpZ2h0Iiwic2Nyb2xsVG9wIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic2xpY2UiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjb250YWluZXJSZWYiLCJuZXdTY3JvbGxIZWlnaHQiLCJoZWlnaHREaWZmZXJlbmNlIiwiX3gyIiwiaGFuZGxlU2Nyb2xsIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsUGVyY2VudGFnZSIsImRpZFJld3JpdGVSZWYiLCJsZW5ndGgiLCJuZWVkc1Jld3JpdGUiLCJzb21lIiwibXNnIiwibWF0Y2hlcyIsIm1hdGNoIiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsInJld3JpdHRlbiIsImFkZE1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2VJbmRleCIsImZpbmRJbmRleCIsInJlbW92ZU1lc3NhZ2UiLCJtZXNzYWdlSWQiLCJmaWx0ZXIiLCJoYXNNb3JlTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1lc3NhZ2VzL3VzZUNoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VQcm9qZWN0cyB9IGZyb20gJy4uL3VzZVByb2plY3RzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFVzZUNoYXRNZXNzYWdlc1Byb3BzIH0gZnJvbSAnLi91c2VDaGF0TWVzc2FnZXMuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlVGFiVGFza0RlZmF1bHQgfSBmcm9tICcuLi91c2VUYWJUYXNrRGVmYXVsdCdcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vbGFuZy91dGlscydcblxuY29uc3QgcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50ID0gKGNvbnRlbnQ6IHN0cmluZywgdGFiU2VnbWVudDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdGFza1VybFJlZ2V4ID0gbmV3IFJlZ0V4cChUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCAnZycpXG4gIHJldHVybiBjb250ZW50LnJlcGxhY2UodGFza1VybFJlZ2V4LCB1cmwgPT5cbiAgICB1cmwucmVwbGFjZSgvXFwvKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpKD89JHxcXD8pLywgdGFiU2VnbWVudClcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdE1lc3NhZ2VzID0gKHtcbiAgb25FcnJvcixcbiAgY2hhdElkLFxuICBjdXJyZW50VXNlcixcbiAgdXNlckluaXRpYWxNZXNzYWdlLFxuICBhZ2VudHMgPSBbXSxcbn06IFVzZUNoYXRNZXNzYWdlc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBbbG9hZGluZ01lc3NhZ2VzLCBzZXRMb2FkaW5nTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttZXNzYWdlcywgc2V0TWVzc2FnZXNdID0gdXNlU3RhdGU8Q2hhdE1lc3NhZ2VbXT4oXG4gICAgdXNlckluaXRpYWxNZXNzYWdlXG4gICAgICA/IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3VzZXItaW5pdGlhbC1tZXNzYWdlJyxcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgICAgIG1lc3NhZ2U6IHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgIH0pID0+IHtcbiAgICAgIC8vIENvbnZlcnNhY2nDs24gY29uIGNsaWVudF9tZXRhZGF0YTogc2V0ZWFyIGNsaWVudGUgeSBsaW1waWFyIHByb3llY3RvXG4gICAgICBpZiAoY2xpZW50SWRGcm9tU2Vzc2lvbiAhPSBudWxsICYmIGNsaWVudE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZmV0Y2hQcm9qZWN0cyhwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgY29uc3QgaGFzTXVsdGlBZ2VudHNBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgICAgIGlmIChwcm9qZWN0SWRNZXNzYWdlICYmIGhhc011bHRpQWdlbnRzQWNjZXNzKSB7XG4gICAgICAgIGNvbnN0IHByb2plY3RJZE51bSA9IE51bWJlcihwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICBjb25zdCBmb3VuZFByb2plY3QgPSBwcm9qZWN0cz8uZmluZChwID0+IE51bWJlcihwLmlkKSA9PT0gcHJvamVjdElkTnVtKVxuXG4gICAgICAgIGlmIChmb3VuZFByb2plY3QpIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kUHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogZm91bmRQcm9qZWN0LmNsaWVudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGZvdW5kUHJvamVjdC5pZCksXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgfSBlbHNlIGlmIChwcm9qZWN0TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoeyBpZDogcHJvamVjdElkTnVtLCBuYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICB9XG4gICAgfSxcbiAgICBbZmV0Y2hQcm9qZWN0cywgc2V0Q2xpZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3RdXG4gIClcblxuICBjb25zdCBsb2FkTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyh0cnVlKVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgY29uc3Qge1xuICAgICAgICBpdGVtcyxcbiAgICAgICAgbmV4dEl0ZW0sXG4gICAgICAgIGFnZW50RGVsZXRlZCxcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24sXG4gICAgICAgIGhhc0FnZW50QWNjZXNzLFxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24sXG4gICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIHByb2plY3REZWxldGVkLFxuICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgY2hhdElkLFxuICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICBjYW5jZWxsZWRUZXh0OiB0KCdjaGF0LmNhbmNlbGxlZCcpLFxuICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgfSlcbiAgICAgIGlmIChhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgIGlkOiBhZ2VudERlbGV0ZWQuaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnREZWxldGVkLm5hbWUsXG4gICAgICAgICAgZW1vamk6IGFnZW50RGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICBpc19kZWxldGVkOiB0cnVlLFxuICAgICAgICAgIGRlbGV0ZWRfYXQ6IGFnZW50RGVsZXRlZC5kZWxldGVkQXQsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyBlc3TDoSBlbiBsYSBsaXN0YSBwZXJvIHRpZW5lIHBlcm1pc29zLCBhY2Nlc28geSBubyBlc3TDoSBlbGltaW5hZG8sIHNldGVhcmxvIG5vcm1hbG1lbnRlXG4gICAgICAvLyBFeGNsdWlyIGFnZW50ZXMgbm8tY3VzdG9tIHBhcmEgdXN1YXJpb3MgY29uIHJvbGVzIGRlc2hhYmlsaXRhZG9zXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnRzLmZpbmQoYWdlbnQgPT4gYWdlbnQuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgIGlzX2Zyb21fY29udmVyc2F0aW9uOiB0cnVlLFxuICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgZXN0w6EgZW4gbGEgbGlzdGEgeSB0aWVuZSBhY2Nlc28vcGVybWlzb3MsIGFjdHVhbGl6YXIgcHJvamVjdF9kZWxldGVkIChvIGxpbXBpYXJsbyBhbCBjYW1iaWFyIGRlIGNoYXQpXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uICYmXG4gICAgICAgIGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgYWdlbnRJbkxpc3QgPSBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgICBpZiAoYWdlbnRJbkxpc3QpIHtcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICAuLi5hZ2VudEluTGlzdCxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDogeyBwcm9qZWN0X2RlbGV0ZWQ6IHVuZGVmaW5lZCB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyB0aWVuZSBhY2Nlc28gbyBwZXJtaXNvcyBzZWfDum4gbGEgcmVzcHVlc3RhIGRlIHNlc3Npb25zLCBzZWxlY2Npb25hcmxvIGNvbiBlbCBmbGFnIGNvcnJlc3BvbmRpZW50ZVxuICAgICAgLy8gTGEgdmFsaWRhY2nDs24gYWhvcmEgc2UgYmFzYSBlbiBsYXMgcHJvcGllZGFkZXMgaGFzX2FnZW50X2FjY2VzcyB5IGhhc19hZ2VudF9wZXJtaXNzaW9uIGRlIGxhIHJlc3B1ZXN0YVxuICAgICAgaWYgKGFnZW50Tm9QZXJtaXNzaW9uICYmICFhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgaWYgKCFoYXNBZ2VudEFjY2Vzcykge1xuICAgICAgICAgIC8vIENhc28gMTogTm8gdGllbmUgYWNjZXNvIGFsIGFnZW50ZVxuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScsXG4gICAgICAgICAgICBoYXNfbm90X2FjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc0FnZW50UGVybWlzc2lvbikge1xuICAgICAgICAgIC8vIENhc28gMjogTm8gdGllbmUgcGVybWlzb3MgcGFyYSB2aXN1YWxpemFyL2ludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGVcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgaGFzX25vdF9wZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAocHJvamVjdERlbGV0ZWQpIHtcbiAgICAgICAgICAvLyBDYXNvIDM6IEVsIHByb3llY3RvIGRlIGxhIGNvbnZlcnNhY2nDs24gZnVlIGVsaW1pbmFkb1xuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScsXG4gICAgICAgICAgICBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0pXG5cbiAgICAgIC8vIFNpIGhheSBwcm95ZWN0byBlbiBsYSBjb252ZXJzYWNpw7NuLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGNvbiBlbCB0YWIgZGVsIHVzdWFyaW8gKG1lKVxuICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3RJZE1lc3NhZ2UgPyBwYXJzZUludChTdHJpbmcocHJvamVjdElkTWVzc2FnZSksIDEwKSA6IG51bGxcbiAgICAgIGxldCBpdGVtc1RvU2V0ID0gaXRlbXNcbiAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgaXRlbXNUb1NldCA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgfSkpXG4gICAgICB9XG4gICAgICBzZXRNZXNzYWdlcyhpdGVtc1RvU2V0KVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShOdW1iZXIobmV4dEl0ZW0pKVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3I/LigpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtjaGF0SWQsIGN1cnJlbnRVc2VyLCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhLCBvbkVycm9yLCBnZXRUYWJUYXNrRGVmYXVsdF0pXG5cbiAgY29uc3QgbG9hZE1vcmVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFsYXN0RXZhbHVhdGVkS2V5IHx8ICFjb250YWluZXIpIHJldHVyblxuICAgICAgdHJ5IHtcbiAgICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIHNldElzTG9hZGluZ01vcmVNZXNzYWdlcyh0cnVlKVxuXG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbEhlaWdodCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHRcbiAgICAgICAgY29uc3Qgb2xkU2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0TWVzc2FnZXMoe1xuICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgICBvZmZzZXQ6IGxhc3RFdmFsdWF0ZWRLZXksXG4gICAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgICAgfSlcblxuICAgICAgICBhd2FpdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhKHtcbiAgICAgICAgICBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIGNhcmdhZG9zXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICAgIGxldCBpdGVtc1RvTWVyZ2UgPSBpdGVtc1xuICAgICAgICBpZiAoY29udGV4dFByb2plY3RJZCkge1xuICAgICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICAgIGl0ZW1zVG9NZXJnZSA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMuc2xpY2UoMCwgMSksIC4uLml0ZW1zVG9NZXJnZSwgLi4ubWVzc2FnZXMuc2xpY2UoMSldXG4gICAgICAgIHNldE1lc3NhZ2VzKG5ld01lc3NhZ2VzKVxuICAgICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gY29udGFpbmVyXG4gICAgICAgICAgICBpZiAoY29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1Njcm9sbEhlaWdodCA9IGNvbnRhaW5lclJlZi5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0RGlmZmVyZW5jZSA9IG5ld1Njcm9sbEhlaWdodCAtIG9sZFNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb250YWluZXJSZWYuc2Nyb2xsVG9wID0gb2xkU2Nyb2xsVG9wICsgaGVpZ2h0RGlmZmVyZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvbkVycm9yPy4oKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKGZhbHNlKVxuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhdElkLCBjdXJyZW50VXNlciwgbGFzdEV2YWx1YXRlZEtleSwgb25FcnJvciwgbWVzc2FnZXMsIGdldFRhYlRhc2tEZWZhdWx0LCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBpZiAoIWNvbnRhaW5lciB8fCBpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhaW5pdGlhbExvYWREb25lLmN1cnJlbnQpIHJldHVyblxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3Qgc2Nyb2xsUGVyY2VudGFnZSA9IHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDAgPyAoc2Nyb2xsVG9wIC8gKHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCkpICogMTAwIDogMFxuXG4gICAgICBpZiAoc2Nyb2xsUGVyY2VudGFnZSA8IDEwKSB7XG4gICAgICAgIGxvYWRNb3JlTWVzc2FnZXMoY29udGFpbmVyKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvYWRNb3JlTWVzc2FnZXNdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjaGF0SWQgIT09IHByZXZpb3VzQ2hhdElkLmN1cnJlbnQpIHtcbiAgICAgIHNldE1lc3NhZ2VzKFxuICAgICAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXNlcjogY3VycmVudFVzZXIsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW11cbiAgICAgIClcbiAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkoMClcbiAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gZmFsc2VcbiAgICAgIHByZXZpb3VzQ2hhdElkLmN1cnJlbnQgPSBjaGF0SWRcblxuICAgICAgLy8gTGltcGlhciBlbCBlc3RhZG8gZGVsIHByb3llY3RvIGN1YW5kbyBjYW1iaWEgZGUgY29udmVyc2FjacOzblxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG5cbiAgICAgIC8vIFZvbHZlciBhIGVqZWN1dGFyIGxhIHF1ZXJ5IG1lIHBhcmEgdGVuZXIgdGFiVGFza0RlZmF1bHQgYWN0dWFsaXphZG8gZW4gbGEgbnVldmEgY29udmVyc2FjacOzblxuICAgICAgcmVmZXRjaFRhYlRhc2tEZWZhdWx0KClcblxuICAgICAgaWYgKCF1c2VySW5pdGlhbE1lc3NhZ2UpIHtcbiAgICAgICAgbG9hZE1lc3NhZ2VzKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtjaGF0SWQsIHVzZXJJbml0aWFsTWVzc2FnZSwgY3VycmVudFVzZXIsIGxvYWRNZXNzYWdlcywgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCByZWZldGNoVGFiVGFza0RlZmF1bHRdKVxuXG4gIC8vIEN1YW5kbyB0YWJUYXNrRGVmYXVsdCBwYXNhIGEgZXN0YXIgZGlzcG9uaWJsZSBkZXNwdcOpcyBkZSBjYXJnYXIsIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIHlhIGNhcmdhZG9zLlxuICAvLyBSZWYgcGFyYSBldml0YXIgYnVjbGU6IHNldE1lc3NhZ2VzKHJld3JpdHRlbikgY2FtYmlhIG1lc3NhZ2VzIHkgcmUtZWplY3V0YSBlbCBlZmVjdG87IHNvbG8gcmVlc2NyaWJpbW9zIHVuYSB2ZXogcG9yIGxvdGUuXG4gIGNvbnN0IGRpZFJld3JpdGVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0YWJUYXNrRGVmYXVsdCB8fCAhcHJvamVjdD8uaWQgfHwgbWVzc2FnZXMubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgICBjb25zdCB0YWJTZWdtZW50ID0gYC8ke3RhYlRhc2tEZWZhdWx0fWBcbiAgICBjb25zdCBuZWVkc1Jld3JpdGUgPSBtZXNzYWdlcy5zb21lKG1zZyA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbXNnLm1lc3NhZ2UgfHwgJydcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBjb250ZW50Lm1hdGNoKHRhc2tVcmxSZWdleClcbiAgICAgIGlmICghbWF0Y2hlcz8ubGVuZ3RoKSByZXR1cm4gZmFsc2VcbiAgICAgIHJldHVybiBtYXRjaGVzLnNvbWUodXJsID0+ICF1cmwuZW5kc1dpdGgoYC8ke3RhYlRhc2tEZWZhdWx0fWApICYmICF1cmwuaW5jbHVkZXMoYC8ke3RhYlRhc2tEZWZhdWx0fT9gKSlcbiAgICB9KVxuICAgIGlmICghbmVlZHNSZXdyaXRlKSB7XG4gICAgICBkaWRSZXdyaXRlUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChkaWRSZXdyaXRlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IHRydWVcbiAgICBjb25zdCByZXdyaXR0ZW4gPSBtZXNzYWdlcy5tYXAobXNnID0+ICh7XG4gICAgICAuLi5tc2csXG4gICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQobXNnLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgIH0pKVxuICAgIHNldE1lc3NhZ2VzKHJld3JpdHRlbilcbiAgfSwgW3RhYlRhc2tEZWZhdWx0LCBwcm9qZWN0Py5pZCwgbWVzc2FnZXNdKVxuXG4gIGNvbnN0IGFkZE1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZTogQ2hhdE1lc3NhZ2UpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZUluZGV4ID0gcHJldi5maW5kSW5kZXgobXNnID0+IG1zZy5pZCA9PT0gbWVzc2FnZS5pZClcblxuICAgICAgaWYgKGV4aXN0aW5nTWVzc2FnZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ucHJldl1cbiAgICAgICAgbmV3TWVzc2FnZXNbZXhpc3RpbmdNZXNzYWdlSW5kZXhdID0gbWVzc2FnZVxuICAgICAgICByZXR1cm4gbmV3TWVzc2FnZXNcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4ucHJldiwgbWVzc2FnZV1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCByZW1vdmVNZXNzYWdlID0gdXNlQ2FsbGJhY2soKG1lc3NhZ2VJZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0TWVzc2FnZXMocHJldiA9PiBwcmV2LmZpbHRlcihtc2cgPT4gbXNnLmlkICE9PSBtZXNzYWdlSWQpKVxuICB9LCBbXSlcblxuICByZXR1cm4ge1xuICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICBtZXNzYWdlcyxcbiAgICBoYXNNb3JlTWVzc2FnZXM6ICEhbGFzdEV2YWx1YXRlZEtleSxcbiAgICBpc0xvYWRpbmdNb3JlTWVzc2FnZXMsXG4gICAgbG9hZE1lc3NhZ2VzLFxuICAgIGxvYWRNb3JlTWVzc2FnZXMsXG4gICAgYWRkTWVzc2FnZSxcbiAgICByZW1vdmVNZXNzYWdlLFxuICAgIGhhbmRsZVNjcm9sbCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQSxTQUFTQSxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUNoRSxTQUFTQyxXQUFXLFFBQVEsZ0JBQWdCO0FBRTVDLE9BQU9DLElBQUksTUFBTSxxQkFBcUI7QUFFdEMsU0FBU0MsZ0JBQWdCLFFB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
|
|
@@ -2,7 +2,6 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
import { useLazyQuery } from '@apollo/client';
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
4
|
import { SEARCH_CLIENTS } from '../services/query';
|
|
5
|
-
import { SEARCH_QUERY_DEBOUNCE_MS } from '../constants/config';
|
|
6
5
|
import { useDebounce } from './useDebounce';
|
|
7
6
|
var mapperClientsSearch = function mapperClientsSearch(values) {
|
|
8
7
|
return values === null || values === void 0 ? void 0 : values.map(function (value) {
|
|
@@ -68,7 +67,7 @@ export var useClientSearch = function useClientSearch() {
|
|
|
68
67
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
69
68
|
pagination = _useState0[0],
|
|
70
69
|
setPagination = _useState0[1];
|
|
71
|
-
var debouncedSearchValue = useDebounce(searchValue,
|
|
70
|
+
var debouncedSearchValue = useDebounce(searchValue, 500);
|
|
72
71
|
var _useLazyQuery = useLazyQuery(SEARCH_CLIENTS, {
|
|
73
72
|
variables: {
|
|
74
73
|
page: 1,
|
|
@@ -160,4 +159,4 @@ export var useClientSearch = function useClientSearch() {
|
|
|
160
159
|
loadPage: loadPage
|
|
161
160
|
};
|
|
162
161
|
};
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlNFQVJDSF9DTElFTlRTIiwiU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIiwidXNlRGVib3VuY2UiLCJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwibWFwIiwidmFsdWUiLCJpZCIsIm5hbWUiLCJEYXRhUGFyc2VkVG9DbGllbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJzZXR0ZXJEYXRhIiwiYXJncyIsInNlYXJjaFZhbHVlIiwibGVuZ3RoIiwiYXJnIiwiY2xpZW50TmFtZSIsImhpZ2hsaWdodGVkVmFsdWUiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwidmFsdWVUb0NoYW5nZSIsInNsaWNlIiwiZXNjYXBlZFNlYXJjaFZhbHVlIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNvbmNhdCIsInRpdGxlIiwidXNlQ2xpZW50U2VhcmNoIiwiX0RhdGFQYXJzZWRUb0NsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJwYWdlIiwicGVyUGFnZSIsInRvdGFsIiwibGFzdFBhZ2UiLCJfdXNlU3RhdGUwIiwicGFnaW5hdGlvbiIsInNldFBhZ2luYXRpb24iLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsImNsaWVudERhdGEiLCJkYXRhIiwibG9hZGluZ0NsaWVudHMiLCJjbGllbnRFcnJvciIsImhhbmRsZUZldGNoQ2xpZW50cyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNsaWVudFN0YXR1c0lkIiwiX2NsaWVudERhdGEkY2xpZW50cyIsIm1hcHBlZENsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImNsZWFyQ2xpZW50cyIsImxvYWRQYWdlIiwiY2xpZW50c0xvYWRpbmciLCJjbGllbnRzRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ2xpZW50U2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcbmltcG9ydCB7IFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlRGVib3VuY2UnXG5cbmV4cG9ydCB0eXBlIENsaWVudEdyYXBoUUwgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGNsaWVudFN0YXR1c0lkPzogbnVtYmVyW11cbn1cblxuZXhwb3J0IHR5cGUgQ2xpZW50U2V0dGVyID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIGNsaWVudFN0YXR1c0lkPzogbnVtYmVyW11cbn1cblxudHlwZSBRdWVyeUNsaWVudERhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbDogbnVtYmVyXG4gICAgcGVyUGFnZTogbnVtYmVyXG4gICAgcGFnZTogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlOiBudW1iZXJcbiAgICBkYXRhOiBDbGllbnRHcmFwaFFMW11cbiAgfVxufVxuXG5jb25zdCBtYXBwZXJDbGllbnRzU2VhcmNoID0gKHZhbHVlczogQ2xpZW50R3JhcGhRTFtdKTogQ2xpZW50R3JhcGhRTFtdID0+IHtcbiAgcmV0dXJuIHZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IHZhbHVlLmlkLFxuICAgIG5hbWU6IHZhbHVlLm5hbWUsXG4gIH0pKVxufVxuXG5leHBvcnQgY29uc3QgRGF0YVBhcnNlZFRvQ2xpZW50cyA9ICgpID0+IHtcbiAgY29uc3QgW2NsaWVudHMsIHNldENsaWVudHNdID0gdXNlU3RhdGU8Q2xpZW50U2V0dGVyW10+KFtdKVxuXG4gIGNvbnN0IHNldHRlckRhdGEgPSAoYXJnczogQ2xpZW50R3JhcGhRTFtdLCBzZWFyY2hWYWx1ZT86IHN0cmluZykgPT4ge1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHNldENsaWVudHMoW10pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENsaWVudHMoXG4gICAgICAgIGFyZ3MubWFwKGFyZyA9PiB7XG4gICAgICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGFyZy5uYW1lIHx8ICcnXG4gICAgICAgICAgbGV0IGhpZ2hsaWdodGVkVmFsdWUgPSAnJ1xuICAgICAgICAgIGlmIChzZWFyY2hWYWx1ZSAmJiBjbGllbnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRJbmRleCA9IGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICBjb25zdCB2YWx1ZVRvQ2hhbmdlID0gY2xpZW50TmFtZS5zbGljZSh0ZXh0SW5kZXgsIHRleHRJbmRleCArIHNlYXJjaFZhbHVlLmxlbmd0aClcbiAgICAgICAgICAgIGNvbnN0IGVzY2FwZWRTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJylcbiAgICAgICAgICAgIGhpZ2hsaWdodGVkVmFsdWUgPSBjbGllbnROYW1lLnJlcGxhY2UoXG4gICAgICAgICAgICAgIG5ldyBSZWdFeHAoZXNjYXBlZFNlYXJjaFZhbHVlLCAnaScpLFxuICAgICAgICAgICAgICBgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzAwODhjYzsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+JHt2YWx1ZVRvQ2hhbmdlfTwvc3Bhbj5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogYXJnLmlkLFxuICAgICAgICAgICAgbmFtZTogYXJnLm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogc2VhcmNoVmFsdWUgJiYgaGlnaGxpZ2h0ZWRWYWx1ZSA/IGhpZ2hsaWdodGVkVmFsdWUgOiBjbGllbnROYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgY2xpZW50cywgc2V0dGVyRGF0YSB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDbGllbnRTZWFyY2ggPSAoKSA9PiB7XG4gIGNvbnN0IHsgY2xpZW50cywgc2V0dGVyRGF0YSB9ID0gRGF0YVBhcnNlZFRvQ2xpZW50cygpXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbcGFnaW5hdGlvbiwgc2V0UGFnaW5hdGlvbl0gPSB1c2VTdGF0ZSh7XG4gICAgcGFnZTogMSxcbiAgICBwZXJQYWdlOiAyMCxcbiAgICB0b3RhbDogMCxcbiAgICBsYXN0UGFnZTogMCxcbiAgfSlcblxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG5cbiAgY29uc3QgW2ZldGNoQ2xpZW50cywgeyBkYXRhOiBjbGllbnREYXRhLCBsb2FkaW5nOiBsb2FkaW5nQ2xpZW50cywgZXJyb3I6IGNsaWVudEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8UXVlcnlDbGllbnREYXRhPihTRUFSQ0hfQ0xJRU5UUywge1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGhhbmRsZUZldGNoQ2xpZW50cyA9ICh2YWx1ZTogc3RyaW5nLCBwYWdlOiBudW1iZXIgPSAxLCBwZXJQYWdlOiBudW1iZXIgPSAyMCwgY2xpZW50U3RhdHVzSWQ6IG51bWJlciA9IDEpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB2YWx1ZSA/IHsgbmFtZTogdmFsdWUsIGNsaWVudFN0YXR1c0lkOiBbY2xpZW50U3RhdHVzSWRdIH0gOiB7fVxuICAgIGZldGNoQ2xpZW50cyh7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZSxcbiAgICAgICAgcGVyUGFnZSxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9hZGluZ0NsaWVudHMpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgICBpZiAoY2xpZW50RXJyb3IpIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudEVycm9yLCBsb2FkaW5nQ2xpZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xpZW50RGF0YT8uY2xpZW50cykge1xuICAgICAgY29uc3QgeyBkYXRhLCB0b3RhbCwgcGVyUGFnZSwgcGFnZSwgbGFzdFBhZ2UgfSA9IGNsaWVudERhdGEuY2xpZW50c1xuICAgICAgY29uc3QgbWFwcGVkQ2xpZW50cyA9IG1hcHBlckNsaWVudHNTZWFyY2goZGF0YSlcbiAgICAgIHNldHRlckRhdGEobWFwcGVkQ2xpZW50cywgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRQYWdpbmF0aW9uKHtcbiAgICAgICAgcGFnZTogcGFnZSB8fCAxLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICB0b3RhbCxcbiAgICAgICAgbGFzdFBhZ2UsXG4gICAgICB9KVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudERhdGEsIGRlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGhhbmRsZUZldGNoQ2xpZW50cyhkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0dGVyRGF0YShbXSwgJycpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IHVwZGF0ZVNlYXJjaFZhbHVlID0gKG5ld1NlYXJjaFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXRTZWFyY2hWYWx1ZShuZXdTZWFyY2hWYWx1ZSlcbiAgfVxuXG4gIGNvbnN0IGNsZWFyQ2xpZW50cyA9ICgpID0+IHtcbiAgICBzZXR0ZXJEYXRhKFtdLCAnJylcbiAgICBzZXRTZWFyY2hWYWx1ZSgnJylcbiAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgbG9hZFBhZ2UgPSAocGFnZTogbnVtYmVyKSA9PiB7XG4gICAgaGFuZGxlRmV0Y2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlLCBwYWdlLCBwYWdpbmF0aW9uLnBlclBhZ2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoQ2xpZW50cyxcbiAgICBjbGllbnRzTG9hZGluZzogbG9hZGluZyxcbiAgICBjbGllbnRzRXJyb3I6IGVycm9yLFxuICAgIGNsaWVudHMsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgY2xlYXJDbGllbnRzLFxuICAgIHBhZ2luYXRpb24sXG4gICAgbG9hZFBhZ2UsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUMzQyxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xELFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQXlCM0MsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsTUFBdUIsRUFBc0I7RUFDeEUsT0FBT0EsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVDLEdBQUcsQ0FBQyxVQUFBQyxLQUFLO0lBQUEsT0FBSztNQUMzQkMsRUFBRSxFQUFFRCxLQUFLLENBQUNDLEVBQUU7TUFDWkMsSUFBSSxFQUFFRixLQUFLLENBQUNFO0lBQ2QsQ0FBQztFQUFBLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUEsRUFBUztFQUN2QyxJQUFBQyxTQUFBLEdBQThCWCxRQUFRLENBQWlCLEVBQUUsQ0FBQztJQUFBWSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFuREcsT0FBTyxHQUFBRixVQUFBO0lBQUVHLFVBQVUsR0FBQUgsVUFBQTtFQUUxQixJQUFNSSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSUMsSUFBcUIsRUFBRUMsV0FBb0Is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
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlNFQVJDSF9DTElFTlRTIiwidXNlRGVib3VuY2UiLCJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwibWFwIiwidmFsdWUiLCJpZCIsIm5hbWUiLCJEYXRhUGFyc2VkVG9DbGllbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJzZXR0ZXJEYXRhIiwiYXJncyIsInNlYXJjaFZhbHVlIiwibGVuZ3RoIiwiYXJnIiwiY2xpZW50TmFtZSIsImhpZ2hsaWdodGVkVmFsdWUiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwidmFsdWVUb0NoYW5nZSIsInNsaWNlIiwiZXNjYXBlZFNlYXJjaFZhbHVlIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNvbmNhdCIsInRpdGxlIiwidXNlQ2xpZW50U2VhcmNoIiwiX0RhdGFQYXJzZWRUb0NsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJwYWdlIiwicGVyUGFnZSIsInRvdGFsIiwibGFzdFBhZ2UiLCJfdXNlU3RhdGUwIiwicGFnaW5hdGlvbiIsInNldFBhZ2luYXRpb24iLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsImNsaWVudERhdGEiLCJkYXRhIiwibG9hZGluZ0NsaWVudHMiLCJjbGllbnRFcnJvciIsImhhbmRsZUZldGNoQ2xpZW50cyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNsaWVudFN0YXR1c0lkIiwiX2NsaWVudERhdGEkY2xpZW50cyIsIm1hcHBlZENsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImNsZWFyQ2xpZW50cyIsImxvYWRQYWdlIiwiY2xpZW50c0xvYWRpbmciLCJjbGllbnRzRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ2xpZW50U2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi91c2VEZWJvdW5jZSdcblxuZXhwb3J0IHR5cGUgQ2xpZW50R3JhcGhRTCA9IHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgY2xpZW50U3RhdHVzSWQ/OiBudW1iZXJbXVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRTZXR0ZXIgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgY2xpZW50U3RhdHVzSWQ/OiBudW1iZXJbXVxufVxuXG50eXBlIFF1ZXJ5Q2xpZW50RGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBwZXJQYWdlOiBudW1iZXJcbiAgICBwYWdlOiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U6IG51bWJlclxuICAgIGRhdGE6IENsaWVudEdyYXBoUUxbXVxuICB9XG59XG5cbmNvbnN0IG1hcHBlckNsaWVudHNTZWFyY2ggPSAodmFsdWVzOiBDbGllbnRHcmFwaFFMW10pOiBDbGllbnRHcmFwaFFMW10gPT4ge1xuICByZXR1cm4gdmFsdWVzPy5tYXAodmFsdWUgPT4gKHtcbiAgICBpZDogdmFsdWUuaWQsXG4gICAgbmFtZTogdmFsdWUubmFtZSxcbiAgfSkpXG59XG5cbmV4cG9ydCBjb25zdCBEYXRhUGFyc2VkVG9DbGllbnRzID0gKCkgPT4ge1xuICBjb25zdCBbY2xpZW50cywgc2V0Q2xpZW50c10gPSB1c2VTdGF0ZTxDbGllbnRTZXR0ZXJbXT4oW10pXG5cbiAgY29uc3Qgc2V0dGVyRGF0YSA9IChhcmdzOiBDbGllbnRHcmFwaFFMW10sIHNlYXJjaFZhbHVlPzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgc2V0Q2xpZW50cyhbXSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Q2xpZW50cyhcbiAgICAgICAgYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgICBjb25zdCBjbGllbnROYW1lID0gYXJnLm5hbWUgfHwgJydcbiAgICAgICAgICBsZXQgaGlnaGxpZ2h0ZWRWYWx1ZSA9ICcnXG4gICAgICAgICAgaWYgKHNlYXJjaFZhbHVlICYmIGNsaWVudE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgY29uc3QgdGV4dEluZGV4ID0gY2xpZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9DaGFuZ2UgPSBjbGllbnROYW1lLnNsaWNlKHRleHRJbmRleCwgdGV4dEluZGV4ICsgc2VhcmNoVmFsdWUubGVuZ3RoKVxuICAgICAgICAgICAgY29uc3QgZXNjYXBlZFNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKVxuICAgICAgICAgICAgaGlnaGxpZ2h0ZWRWYWx1ZSA9IGNsaWVudE5hbWUucmVwbGFjZShcbiAgICAgICAgICAgICAgbmV3IFJlZ0V4cChlc2NhcGVkU2VhcmNoVmFsdWUsICdpJyksXG4gICAgICAgICAgICAgIGA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDA4OGNjOyBmb250LXdlaWdodDogYm9sZDtcIj4ke3ZhbHVlVG9DaGFuZ2V9PC9zcGFuPmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBhcmcuaWQsXG4gICAgICAgICAgICBuYW1lOiBhcmcubmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiBzZWFyY2hWYWx1ZSAmJiBoaWdobGlnaHRlZFZhbHVlID8gaGlnaGxpZ2h0ZWRWYWx1ZSA6IGNsaWVudE5hbWUsXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBjbGllbnRzLCBzZXR0ZXJEYXRhIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZUNsaWVudFNlYXJjaCA9ICgpID0+IHtcbiAgY29uc3QgeyBjbGllbnRzLCBzZXR0ZXJEYXRhIH0gPSBEYXRhUGFyc2VkVG9DbGllbnRzKClcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWFyY2hWYWx1ZSwgc2V0U2VhcmNoVmFsdWVdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtwYWdpbmF0aW9uLCBzZXRQYWdpbmF0aW9uXSA9IHVzZVN0YXRlKHtcbiAgICBwYWdlOiAxLFxuICAgIHBlclBhZ2U6IDIwLFxuICAgIHRvdGFsOiAwLFxuICAgIGxhc3RQYWdlOiAwLFxuICB9KVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIDUwMClcblxuICBjb25zdCBbZmV0Y2hDbGllbnRzLCB7IGRhdGE6IGNsaWVudERhdGEsIGxvYWRpbmc6IGxvYWRpbmdDbGllbnRzLCBlcnJvcjogY2xpZW50RXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxRdWVyeUNsaWVudERhdGE+KFNFQVJDSF9DTElFTlRTLCB7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcjoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgY29uc3QgaGFuZGxlRmV0Y2hDbGllbnRzID0gKHZhbHVlOiBzdHJpbmcsIHBhZ2U6IG51bWJlciA9IDEsIHBlclBhZ2U6IG51bWJlciA9IDIwLCBjbGllbnRTdGF0dXNJZDogbnVtYmVyID0gMSkgPT4ge1xuICAgIGNvbnN0IGZpbHRlciA9IHZhbHVlID8geyBuYW1lOiB2YWx1ZSwgY2xpZW50U3RhdHVzSWQ6IFtjbGllbnRTdGF0dXNJZF0gfSA6IHt9XG4gICAgZmV0Y2hDbGllbnRzKHtcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwYWdlLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nQ2xpZW50cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChjbGllbnRFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgfVxuICB9LCBbY2xpZW50RXJyb3IsIGxvYWRpbmdDbGllbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjbGllbnREYXRhPy5jbGllbnRzKSB7XG4gICAgICBjb25zdCB7IGRhdGEsIHRvdGFsLCBwZXJQYWdlLCBwYWdlLCBsYXN0UGFnZSB9ID0gY2xpZW50RGF0YS5jbGllbnRzXG4gICAgICBjb25zdCBtYXBwZWRDbGllbnRzID0gbWFwcGVyQ2xpZW50c1NlYXJjaChkYXRhKVxuICAgICAgc2V0dGVyRGF0YShtYXBwZWRDbGllbnRzLCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICAgIHNldFBhZ2luYXRpb24oe1xuICAgICAgICBwYWdlOiBwYWdlIHx8IDEsXG4gICAgICAgIHBlclBhZ2UsXG4gICAgICAgIHRvdGFsLFxuICAgICAgICBsYXN0UGFnZSxcbiAgICAgIH0pXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbY2xpZW50RGF0YSwgZGVib3VuY2VkU2VhcmNoVmFsdWVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXR0ZXJEYXRhKFtdLCAnJylcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgdXBkYXRlU2VhcmNoVmFsdWUgPSAobmV3U2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKG5ld1NlYXJjaFZhbHVlKVxuICB9XG5cbiAgY29uc3QgY2xlYXJDbGllbnRzID0gKCkgPT4ge1xuICAgIHNldHRlckRhdGEoW10sICcnKVxuICAgIHNldFNlYXJjaFZhbHVlKCcnKVxuICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgc2V0RXJyb3IoZmFsc2UpXG4gIH1cblxuICBjb25zdCBsb2FkUGFnZSA9IChwYWdlOiBudW1iZXIpID0+IHtcbiAgICBoYW5kbGVGZXRjaENsaWVudHMoZGVib3VuY2VkU2VhcmNoVmFsdWUsIHBhZ2UsIHBhZ2luYXRpb24ucGVyUGFnZSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmV0Y2hDbGllbnRzLFxuICAgIGNsaWVudHNMb2FkaW5nOiBsb2FkaW5nLFxuICAgIGNsaWVudHNFcnJvcjogZXJyb3IsXG4gICAgY2xpZW50cyxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgICBjbGVhckNsaWVudHMsXG4gICAgcGFnaW5hdGlvbixcbiAgICBsb2FkUGFnZSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsWUFBWSxRQUFRLGdCQUFnQjtBQUM3QyxTQUFTQyxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFDbEQsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUF5QjNDLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLE1BQXVCLEVBQXNCO0VBQ3hFLE9BQU9BLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFQyxHQUFHLENBQUMsVUFBQUMsS0FBSztJQUFBLE9BQUs7TUFDM0JDLEVBQUUsRUFBRUQsS0FBSyxDQUFDQyxFQUFFO01BQ1pDLElBQUksRUFBRUYsS0FBSyxDQUFDRTtJQUNkLENBQUM7RUFBQSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7RUFDdkMsSUFBQUMsU0FBQSxHQUE4QlYsUUFBUSxDQUFpQixFQUFFLENBQUM7SUFBQVcsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBbkRHLE9BQU8sR0FBQUYsVUFBQTtJQUFFRyxVQUFVLEdBQUFILFVBQUE7RUFFMUIsSUFBTUksVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLElBQXFCLEVBQUVDLFdBQW9CLEVBQUs7SUFDbEUsSUFBSSxDQUFDRCxJQUFJLENBQUNFLE1BQU0sRUFBRTtNQUNoQkosVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDLE1BQU07TUFDTEEsVUFBVSxDQUNSRSxJQUFJLENBQUNYLEdBQUcsQ0FBQyxVQUFBYyxHQUFHLEVBQUk7UUFD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
|
package/lib/hooks/useEvent.js
CHANGED
|
@@ -35,11 +35,6 @@ var CHAT_AI_EVENTS = {
|
|
|
35
35
|
aiChatAgentSelect: 'AI_CHAT_AGENTE_SELECTED',
|
|
36
36
|
aiChatSearchContextOpen: 'AI_CHAT_SEARCH_CONTEXT_OPEN',
|
|
37
37
|
aiChatSearchContextSelectResult: 'AI_CHAT_SEARCH_CONTEXT_SELECT_RESULT',
|
|
38
|
-
aiChatMentionOpen: 'AI_CHAT_MENTION_OPEN',
|
|
39
|
-
aiChatMentionTypeSwitch: 'AI_CHAT_MENTION_TYPE_SWITCH',
|
|
40
|
-
aiChatMentionSelect: 'AI_CHAT_MENTION_SELECT',
|
|
41
|
-
aiChatMentionSend: 'AI_CHAT_MENTION_SEND',
|
|
42
|
-
aiChatMentionRemove: 'AI_CHAT_MENTION_REMOVE',
|
|
43
38
|
aiChatBreadcrumbChange: 'AI_CHAT_BREADCRUMB_CHANGE',
|
|
44
39
|
aiChatFavorite: 'AI_CHAT_FAVORITE',
|
|
45
40
|
aiChatTools: 'AI_CHAT_TOOLS',
|
|
@@ -80,4 +75,4 @@ export var useEvent = function useEvent() {
|
|
|
80
75
|
}, [companyId, userId]);
|
|
81
76
|
return triggerEvent;
|
|
82
77
|
};
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImRpc3BhdGNoQW1wbGl0dWRlIiwidXNlVXNlciIsIlBST0pFQ1RfUkVTVU1FX0VWRU5UUyIsInByb2plY3RSZXN1bWVPcGVuIiwicHJvamVjdFJlc3VtZU9wZW5Db25maWd1cmUiLCJwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlIiwicHJvamVjdFJlc3VtZUdlbmVyYXRlIiwicHJvamVjdFJlc3VtZUNsb3NlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsInByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzIiwicHJvamVjdFJlc3VtZUZlZWRiYWNrIiwicHJvamVjdFJlc3VtZUNvcHkiLCJwcm9qZWN0UmVzdW1lR2VuZXJhdGlvbkNvbXBsZXRlIiwiQ0hBVF9BSV9FVkVOVFMiLCJwbUFpT3BlbiIsInBtQWlGcmVxdWVudFF1ZXN0aW9uIiwicG1BaVR5cGVkVGV4dCIsInBtQWlTZW5kUXVlc3Rpb24iLCJwbUFpT3BlbkNoYXRIaXN0b3J5IiwicG1BaU5ld0NvbnZlcnNhdGlvbiIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwicG1BaU9wZW5NZW51IiwicG1BaU1lbnVEZWxldGUiLCJwbUFpTWVudUVkaXQiLCJwbUFpQmFja0J1dHRvbiIsImFpQ2hhdEZhcSIsImFpQ2hhdFNlbmQiLCJhaUNoYXRSZXNwb25zZSIsImFpQ2hhdE9wZW5BZ2VudFNlbGVjdCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWlDaGF0U2VhcmNoQ29udGV4dE9wZW4iLCJhaUNoYXRTZWFyY2hDb250ZXh0U2VsZWN0UmVzdWx0IiwiYWlDaGF0QnJlYWRjcnVtYkNoYW5nZSIsImFpQ2hhdEZhdm9yaXRlIiwiYWlDaGF0VG9vbHMiLCJhaUNoYXRQbHVzT3BlbiIsImFpQ2hhdFN0b3BSZXNwb25zZSIsImFpQ2hhdFNlbGVjdEZBUSIsImFpQ2hhdEhpdGwiLCJhaUNoYXRIaXRsT3B0aW9uIiwiYWlDaGF0TXBPcGVuIiwiYWlDaGF0TXBTZWxlY3RBZ2VudCIsImFpQ2hhdFN1Z2dlc3RlZEFuc3dlciIsImFpQ2hhdE9wZW5WaWV3T3B0aW9ucyIsImFpQ2hhdFNlbGVjdFZpZXdPcHRpb25zIiwiYWlDaGF0RHJhZ2dhYmxlIiwiQUJNX0FHRU5UX0VWRU5UUyIsIm9wZW5Nb2RhbCIsImNhbmNlbE1vZGFsIiwidGFiU2VjdGlvbiIsImFkZEZpbGUiLCJjb25maXJtQWN0aW9uIiwiYWNjZXNzaWJpbGl0eVR5cGUiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50Iiwic2VsZWN0TW9kZWwiLCJjaG9vc2VNb2RlbCIsIkVWRU5UUyIsIl9vYmplY3RTcHJlYWQiLCJ1c2VFdmVudCIsIl91c2VVc2VyIiwiY29tcGFueUlkIiwiY29tcGFueV9pZCIsInVzZXJJZCIsImlkIiwidHJpZ2dlckV2ZW50IiwiZXZlbnROYW1lIiwiYXJncyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFdmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGRpc3BhdGNoQW1wbGl0dWRlIGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZSdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuXG5jb25zdCBQUk9KRUNUX1JFU1VNRV9FVkVOVFMgPSB7XG4gIHByb2plY3RSZXN1bWVPcGVuOiAnUFJPSkVDVF9SRVNVTUVfT1BFTicsXG4gIHByb2plY3RSZXN1bWVPcGVuQ29uZmlndXJlOiAnUFJPSkVDVF9SRVNVTUVfT1BFTl9DT05GSUdVUkUnLFxuICBwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlOiAnUFJPSkVDVF9SRVNVTUVfQ09ORklHX0NIQU5HRScsXG4gIHByb2plY3RSZXN1bWVHZW5lcmF0ZTogJ1BST0pFQ1RfUkVTVU1FX0dFTkVSQVRFJyxcbiAgcHJvamVjdFJlc3VtZUNsb3NlOiAnUFJPSkVDVF9SRVNVTUVfQ0xPU0UnLFxuICBwcm9qZWN0UmVzdW1lRXhwYW5kOiAnUFJPSkVDVF9SRVNVTUVfRVhQQU5EJyxcbiAgcHJvamVjdFJlc3VtZUJhY2tUZW1wbGF0ZXM6ICdQUk9KRUNUX1JFU1VNRV9CQUNLX1RFTVBMQVRFUycsXG4gIHByb2plY3RSZXN1bWVGZWVkYmFjazogJ1BST0pFQ1RfUkVTVU1FX0ZFRURCQUNLJyxcbiAgcHJvamVjdFJlc3VtZUNvcHk6ICdQUk9KRUNUX1JFU1VNRV9DT1BZJyxcbiAgcHJvamVjdFJlc3VtZUdlbmVyYXRpb25Db21wbGV0ZTogJ1BST0pFQ1RfUkVTVU1FX0dFTkVSQVRJT05fQ09NUExFVEUnLFxufVxuXG5jb25zdCBDSEFUX0FJX0VWRU5UUyA9IHtcbiAgcG1BaU9wZW46ICdQTV9BSV9PUEVOJyxcbiAgcG1BaUZyZXF1ZW50UXVlc3Rpb246ICdQTV9BSV9GUkVRVUVOVF9RVUVTVElPTicsXG4gIHBtQWlUeXBlZFRleHQ6ICdBSV9DSEFUX1RZUEVEJyxcbiAgcG1BaVNlbmRRdWVzdGlvbjogJ1BNX0FJX1NFTkRfUVVFU1RJT04nLFxuICBwbUFpT3BlbkNoYXRIaXN0b3J5OiAnUE1fQUlfT1BFTl9DSEFUX0hJU1RPUlknLFxuICBwbUFpTmV3Q29udmVyc2F0aW9uOiAnUE1fQUlfTkVXX0NPTlZFUlNBVElPTicsXG4gIHBtQWlPcGVuQ29udmVyc2F0aW9uOiAnUE1fQUlfT1BFTl9DT05WRVJTQVRJT04nLFxuICBwbUFpT3Blbk1lbnU6ICdQTV9BSV9PUEVOX01FTlUnLFxuICBwbUFpTWVudURlbGV0ZTogJ1BNX0FJX01FTlVfREVMRVRFJyxcbiAgcG1BaU1lbnVFZGl0OiAnUE1fQUlfTUVOVV9FRElUJyxcbiAgcG1BaUJhY2tCdXR0b246ICdQTV9BSV9CQUNLX0JVVFRPTicsXG4gIGFpQ2hhdEZhcTogJ0FJX0NIQVRfRkFRJyxcbiAgYWlDaGF0U2VuZDogJ0FJX0NIQVRfU0VORCcsXG4gIGFpQ2hhdFJlc3BvbnNlOiAnQUlfQ0hBVF9SRVNQT05TRScsXG4gIGFpQ2hhdE9wZW5BZ2VudFNlbGVjdDogJ0FJX0NIQVRfT1BFTl9BR0VOVEVfU0VMRUNUJyxcbiAgYWlDaGF0QWdlbnRTZWxlY3Q6ICdBSV9DSEFUX0FHRU5URV9TRUxFQ1RFRCcsXG4gIGFpQ2hhdFNlYXJjaENvbnRleHRPcGVuOiAnQUlfQ0hBVF9TRUFSQ0hfQ09OVEVYVF9PUEVOJyxcbiAgYWlDaGF0U2VhcmNoQ29udGV4dFNlbGVjdFJlc3VsdDogJ0FJX0NIQVRfU0VBUkNIX0NPTlRFWFRfU0VMRUNUX1JFU1VMVCcsXG4gIGFpQ2hhdEJyZWFkY3J1bWJDaGFuZ2U6ICdBSV9DSEFUX0JSRUFEQ1JVTUJfQ0hBTkdFJyxcbiAgYWlDaGF0RmF2b3JpdGU6ICdBSV9DSEFUX0ZBVk9SSVRFJyxcbiAgYWlDaGF0VG9vbHM6ICdBSV9DSEFUX1RPT0xTJyxcbiAgYWlDaGF0UGx1c09wZW46ICdBSV9DSEFUX1BMVVNfT1BFTicsXG4gIGFpQ2hhdFN0b3BSZXNwb25zZTogJ0FJX0NIQVRfU1RPUF9SRVNQT05TRScsXG4gIGFpQ2hhdFNlbGVjdEZBUTogJ0FJX0NIQVRfU0VMRUNUX0ZBUScsXG4gIGFpQ2hhdEhpdGw6ICdBSV9DSEFUX0hJVEwnLFxuICBhaUNoYXRIaXRsT3B0aW9uOiAnQUlfQ0hBVF9ISVRMX09QVElPTicsXG4gIGFpQ2hhdE1wT3BlbjogJ0FJX0NIQVRfTVBfT1BFTicsXG4gIGFpQ2hhdE1wU2VsZWN0QWdlbnQ6ICdBSV9DSEFUX01QX1NFTEVDVF9BR0VOVCcsXG4gIGFpQ2hhdFN1Z2dlc3RlZEFuc3dlcjogJ0FJX0NIQVRfU1VHR0VTVEVEX0FOU1dFUicsXG4gIGFpQ2hhdE9wZW5WaWV3T3B0aW9uczogJ0FJX0NIQVRfT1BFTl9WSUVXX09QVElPTlMnLFxuICBhaUNoYXRTZWxlY3RWaWV3T3B0aW9uczogJ0FJX0NIQVRfU0VMRUNUX1ZJRVdfT1BUSU9OUycsXG4gIGFpQ2hhdERyYWdnYWJsZTogJ0FJX0NIQVRfRFJBR0dBQkxFJyxcbn1cblxuY29uc3QgQUJNX0FHRU5UX0VWRU5UUyA9IHtcbiAgb3Blbk1vZGFsOiAnQUlfQ0hBVF9BQk1fQUNDRVNTJyxcbiAgY2FuY2VsTW9kYWw6ICdBSV9DSEFUX0FCTV9DQU5DRUwnLFxuICB0YWJTZWN0aW9uOiAnQUlfQ0hBVF9BQk1fU0VDVElPTicsXG4gIGFkZEZpbGU6ICdBSV9DSEFUX0FCTV9TRUNUSU9OJyxcbiAgY29uZmlybUFjdGlvbjogJ0FJX0NIQVRfQUJNX0NPTkZJUk0nLFxuICBkZWxldGU6ICdBSV9DSEFUX0FCTV9ERUxFVEVfQUdFTlQnLFxuICBhY2Nlc3NpYmlsaXR5VHlwZTogJ0FJX0NIQVRfQUJNX0FDQ0VTU0lCSUxJVFlfVFlQRScsXG4gIGFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQ6ICdBSV9DSEFUX0FCTV9BQ0NFU1NJQklMSVRZX1NFTEVDVF9DTElFTlQnLFxuICBzZWxlY3RNb2RlbDogJ0FJX0NIQVRfQUJNX1NFTEVDVF9NT0RFTCcsXG4gIGNob29zZU1vZGVsOiAnQUlfQ0hBVF9BQk1fQ0hPT1NFX01PREVMJyxcbn1cbmV4cG9ydCBjb25zdCBFVkVOVFMgPSB7XG4gIC4uLlBST0pFQ1RfUkVTVU1FX0VWRU5UUyxcbiAgLi4uQ0hBVF9BSV9FVkVOVFMsXG4gIC4uLkFCTV9BR0VOVF9FVkVOVFMsXG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50TmFtZSA9ICh0eXBlb2YgRVZFTlRTKVtrZXlvZiB0eXBlb2YgRVZFTlRTXVxuXG5leHBvcnQgY29uc3QgdXNlRXZlbnQgPSAoKSA9PiB7XG4gIGNvbnN0IHsgY29tcGFueV9pZDogY29tcGFueUlkLCBpZDogdXNlcklkIH0gPSB1c2VVc2VyKClcblxuICBjb25zdCB0cmlnZ2VyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICA8RXZlbnRBcmdzPihldmVudE5hbWU6IEV2ZW50TmFtZSwgYXJncz86IEV2ZW50QXJncykgPT4ge1xuICAgICAgZGlzcGF0Y2hBbXBsaXR1ZGUoZXZlbnROYW1lLCBjb21wYW55SWQsIHtcbiAgICAgICAgY29tcGFueUlkLFxuICAgICAgICB1c2VySWQsXG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICB9KVxuICAg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
|