@projectcor/maia-components 2.11.108 → 2.11.109-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +8 -2
- package/lib/components/atoms/MAIAInput/MAIAInput.js +73 -14
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +121 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +55 -0
- package/lib/components/atoms/ReasoningBlock/index.js +2 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +210 -65
- package/lib/components/molecules/ChatAIMessages/newStyles.js +33 -18
- package/lib/context/global-context.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +63 -50
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -3
- package/lib/hooks/useProjectSummaryConfig.js +36 -17
- package/lib/hooks/useReasoningTrace/index.js +3 -0
- package/lib/hooks/useReasoningTrace/reasoningStore.js +142 -0
- package/lib/hooks/useReasoningTrace/useReasoningTrace.js +14 -0
- package/lib/lang/br/index.js +235 -31
- package/lib/lang/en/index.js +235 -31
- package/lib/lang/es/index.js +235 -31
- package/lib/lang/fr/index.js +235 -31
- package/lib/services/maia/Orchestrator/orchestrator.js +9 -7
- package/lib/services/utils/mapChatMessages.js +21 -18
- package/lib/store/sessions/sessionStreamManager.js +90 -50
- package/lib/store/sessions/sessions.types.js +1 -1
- package/lib/types/Chat.js +1 -1
- package/lib/types/reasoning.js +2 -0
- package/lib/utils/autoApproveStorage.js +26 -0
- package/lib/utils/hitlAnalytics.js +1 -35
- package/lib/utils/reasoningMappers.js +62 -0
- package/lib/utils/streamActivityMessages.js +106 -41
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ import { SCApprovalBox, SCABHeader, SCABTitle, SCABDescription, SCABActionsList,
|
|
|
13
13
|
import { SECTIONS } from '../../../constants/config';
|
|
14
14
|
import { useGlobalContext } from '../../../context/global-context';
|
|
15
15
|
import { EVENTS, useEvent } from '../../../hooks/useEvent';
|
|
16
|
-
import {
|
|
16
|
+
import { buildHitlActionTypeList, getHitlAnalyticsAgentType, hitlBatchIncludesCreateAgent, normalizeHitlToolName } from '../../../utils/hitlAnalytics';
|
|
17
17
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
18
18
|
function formatToolNameFallback(toolName) {
|
|
19
19
|
var normalized = normalizeHitlToolName(toolName || 'unknown');
|
|
@@ -50,6 +50,12 @@ function getSpecialActionCopy(t, action) {
|
|
|
50
50
|
}
|
|
51
51
|
return {};
|
|
52
52
|
}
|
|
53
|
+
function buildHitlAnalyticsPayload(agentTypeForEvent, actions) {
|
|
54
|
+
return {
|
|
55
|
+
agent_type: agentTypeForEvent,
|
|
56
|
+
action_type: buildHitlActionTypeList(actions)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
53
59
|
export var ApprovalBox = function ApprovalBox(_ref) {
|
|
54
60
|
var actions = _ref.actions,
|
|
55
61
|
onApprove = _ref.onApprove,
|
|
@@ -206,4 +212,4 @@ export var ApprovalBox = function ApprovalBox(_ref) {
|
|
|
206
212
|
})]
|
|
207
213
|
});
|
|
208
214
|
};
|
|
209
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZCIsImdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUiLCJoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50Iiwibm9ybWFsaXplSGl0bFRvb2xOYW1lIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiZm9ybWF0VG9vbE5hbWVGYWxsYmFjayIsInRvb2xOYW1lIiwibm9ybWFsaXplZCIsIndpdGhTcGFjZXMiLCJyZXBsYWNlIiwidHJpbSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJnZXRBY3Rpb25MYWJlbCIsInQiLCJkaXNwbGF5TmFtZSIsIm5vcm1hbGl6ZWRUb29sTmFtZSIsInRyYW5zbGF0aW9uS2V5IiwiY29uY2F0IiwidHJhbnNsYXRlZExhYmVsIiwiZ2V0RGVsaXZlcmFibGVNb2RlIiwidG9vbEFyZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJTdHJpbmciLCJkZWxpdmVyYWJsZVR5cGUiLCJkZWxpdmVyYWJsZV90eXBlIiwidG9Mb3dlckNhc2UiLCJnZXRTcGVjaWFsQWN0aW9uQ29weSIsImFjdGlvbiIsInRvb2xfbmFtZSIsImRlbGl2ZXJhYmxlTW9kZSIsInRvb2xfYXJncyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJpbmNsdWRlcyIsIkFwcHJvdmFsQm94IiwiX3JlZiIsImFjdGlvbnMiLCJvbkFwcHJvdmUiLCJvblJlamVjdCIsIl9yZWYkc3RhdHVzIiwic3RhdHVzIiwiX3JlZiRpc0xvYWRpbmciLCJpc0xvYWRpbmciLCJfcmVmJGlzUHJvamVjdERlbGV0ZWQiLCJpc1Byb2plY3REZWxldGVkIiwiX3JlZiRpc0V4cGFuZGVkIiwiaXNFeHBhbmRlZCIsImhpdGxJbnN0YW5jZUlkIiwid2FybmluZ01lc3NhZ2UiLCJfcmVmJG1hbnVhbEFwcHJvdmFsRGUiLCJtYW51YWxBcHByb3ZhbERldGVjdGVkIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJldmVudEFtcGxpdHVkZSIsImxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiIsInVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYiLCJhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYiLCJoaXRsQmF0Y2hLZXkiLCJtYXAiLCJhIiwidGhyZWFkX2lkIiwidG9vbF9jYWxsX2lkIiwic29ydCIsImpvaW4iLCJwcmV2IiwiaGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImxlbmd0aCIsImltcHJlc3Npb25LZXkiLCJjdXJyZW50IiwiYWlDaGF0SGl0bCIsInRyYWNrSGl0bERlY2lzaW9uIiwiZGVjaXNpb24iLCJyZXNvbHV0aW9uU291cmNlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiYWlDaGF0SGl0bE9wdGlvbiIsIl9vYmplY3RTcHJlYWQiLCJyZXNvbHV0aW9uX3NvdXJjZSIsImlzQWNjZXB0IiwiaGFuZGxlQXBwcm92ZSIsImhhbmRsZVJlamVjdCIsImNoaWxkcmVuIiwiJGV4cGFuZGVkIiwic3BlY2lhbENvcHkiLCJsYWJlbCIsImRpc3BsYXlfbmFtZSIsIiR2YXJpYW50Iiwib25DbGljayIsIiRkaXNhYmxlZCIsIiRzdGF0dXMiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwicGxhY2VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQXBwcm92YWxCb3gvQXBwcm92YWxCb3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQWxlcnQnXG5pbXBvcnQgeyBDaGVja0NpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZWNrQ2lyY2xlJ1xuaW1wb3J0IHsgQ3Jvc3NDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zc0NpcmNsZSdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFBlbmRpbmdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHtcbiAgU0NBcHByb3ZhbEJveCxcbiAgU0NBQkhlYWRlcixcbiAgU0NBQlRpdGxlLFxuICBTQ0FCRGVzY3JpcHRpb24sXG4gIFNDQUJBY3Rpb25zTGlzdCxcbiAgU0NBQkFjdGlvbkl0ZW0sXG4gIFNDQUJBY3Rpb25OYW1lLFxuICBTQ0FCQWN0aW9uRGVzY3JpcHRpb24sXG4gIFNDQUJCdXR0b25zQ29udGFpbmVyLFxuICBTQ0FCQnV0dG9uLFxuICBTQ0FCU3RhdHVzQmFkZ2UsXG4gIFNDQUJTdGF0dXNXYXJuaW5nSWNvbixcbn0gZnJvbSAnLi9BcHByb3ZhbEJveC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQsXG4gIGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUsXG4gIGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQsXG4gIG5vcm1hbGl6ZUhpdGxUb29sTmFtZSxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcblxuZnVuY3Rpb24gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayh0b29sTmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB3aXRoU3BhY2VzID0gbm9ybWFsaXplZC5yZXBsYWNlKC9fL2csICcgJykudHJpbSgpXG4gIGlmICghd2l0aFNwYWNlcykgcmV0dXJuICdVbmtub3duJ1xuICByZXR1cm4gd2l0aFNwYWNlcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdpdGhTcGFjZXMuc2xpY2UoMSlcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwodDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsIHRvb2xOYW1lPzogc3RyaW5nLCBkaXNwbGF5TmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZSB8fCAndW5rbm93bicpXG4gIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gYGFwcHJvdmFsQm94LmFjdGlvbnMuJHtub3JtYWxpemVkVG9vbE5hbWV9YFxuICBjb25zdCB0cmFuc2xhdGVkTGFiZWwgPSB0KHRyYW5zbGF0aW9uS2V5KVxuXG4gIGlmICh0cmFuc2xhdGVkTGFiZWwgIT09IHRyYW5zbGF0aW9uS2V5KSByZXR1cm4gdHJhbnNsYXRlZExhYmVsXG4gIGlmIChkaXNwbGF5TmFtZT8udHJpbSgpKSByZXR1cm4gZGlzcGxheU5hbWVcbiAgcmV0dXJuIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sobm9ybWFsaXplZFRvb2xOYW1lKVxufVxuXG5mdW5jdGlvbiBnZXREZWxpdmVyYWJsZU1vZGUodG9vbEFyZ3M6IFBlbmRpbmdBY3Rpb25bJ3Rvb2xfYXJncyddKTogc3RyaW5nIHtcbiAgaWYgKCF0b29sQXJncyB8fCBBcnJheS5pc0FycmF5KHRvb2xBcmdzKSkgcmV0dXJuICcnXG4gIHJldHVybiBTdHJpbmcodG9vbEFyZ3MuZGVsaXZlcmFibGVUeXBlIHx8IHRvb2xBcmdzLmRlbGl2ZXJhYmxlX3R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKClcbn1cblxuZnVuY3Rpb24gZ2V0U3BlY2lhbEFjdGlvbkNvcHkoXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICBhY3Rpb246IFBlbmRpbmdBY3Rpb25cbik6IHsgdGl0bGU/OiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUoYWN0aW9uLnRvb2xfbmFtZSlcbiAgY29uc3QgZGVsaXZlcmFibGVNb2RlID0gZ2V0RGVsaXZlcmFibGVNb2RlKGFjdGlvbi50b29sX2FyZ3MpXG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ2NyZWF0ZV9yZXdvcmsnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwuY3JlYXRlUmV3b3JrLmRlc2NyaXB0aW9uJyksXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ3VwZGF0ZV9kZWxpdmVyYWJsZScgJiYgWydjaGlsZHJlbicsICdjaGVja2JveCddLmluY2x1ZGVzKGRlbGl2ZXJhYmxlTW9kZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7fVxufVxuXG5pbnRlcmZhY2UgQXBwcm92YWxCb3hQcm9wcyB7XG4gIGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXVxuICBvbkFwcHJvdmU6ICh0aHJlYWRJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgW2xvY2FsU3RhdHVzLCBzZXRMb2NhbFN0YXR1c10gPSB1c2VTdGF0ZTwncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJz4oc3RhdHVzKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoaXRsQmF0Y2hLZXkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBoaXRsSW5zdGFuY2VJZCA/P1xuICAgICAgYWN0aW9uc1xuICAgICAgICAubWFwKGEgPT4gYCR7YS50aHJlYWRfaWR9OiR7YS50b29sX2NhbGxfaWR9YClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAuam9pbignfCcpLFxuICAgIFtoaXRsSW5zdGFuY2VJZCwgYWN0aW9uc11cbiAgKVxuXG4gIC8vIFNpbmNyb25pemFyIGxvY2FsU3RhdHVzIGNvbiBlbCBwcm9wIHN0YXR1cyBjdWFuZG8gY2FtYmlhIGRlc2RlIGVsIHBhZHJlIChzb2xvIHBvciB2YWx1ZSwgZXZpdGEgYnVjbGVzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsU3RhdHVzKHByZXYgPT4gKHByZXYgIT09IHN0YXR1cyA/IHN0YXR1cyA6IHByZXYpKVxuICB9LCBbc3RhdHVzXSlcblxuICBjb25zdCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZShhZ2VudClcblxuICAvLyBDQTE6IGNhcmQgZGUgY29uZmlybWFjacOzbiBISVRMIHZpc2libGUgKHNvbG8gcGVuZGllbnRlLCBubyBoaXN0w7NyaWNvIHlhIHJlc3VlbHRvKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnIHx8ICFhY3Rpb25zLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgaW1wcmVzc2lvbktleSA9IGhpdGxCYXRjaEtleVxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9PT0gaW1wcmVzc2lvbktleSkgcmV0dXJuXG4gICAgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPSBpbXByZXNzaW9uS2V5XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGwsIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucykpXG4gIH0sIFtldmVudEFtcGxpdHVkZSwgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgaGl0bEJhdGNoS2V5LCBsb2NhbFN0YXR1cywgYWN0aW9ucy5sZW5ndGhdKVxuXG4gIGNvbnN0IHRyYWNrSGl0bERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGRlY2lzaW9uOiAnYWNjZXB0JyB8ICdkZW55JywgcmVzb2x1dGlvblNvdXJjZTogJ3VzZXInIHwgJ2F1dG8nID0gJ3VzZXInKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bE9wdGlvbiwge1xuICAgICAgICAuLi5idWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpLFxuICAgICAgICBkZWNpc2lvbixcbiAgICAgICAgcmVzb2x1dGlvbl9zb3VyY2U6IHJlc29sdXRpb25Tb3VyY2UsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2FjdGlvbnMsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIG9uQXBwcm92ZShhY3Rpb25zLm1hcChhID0+IGEudGhyZWFkX2lkKSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgICAge3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxTQ0FCQWN0aW9uRGVzY3JpcHRpb24+e3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9ufTwvU0NBQkFjdGlvbkRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7bG9jYWxTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiAhaXNQcm9qZWN0RGVsZXRlZCAmJiAoXG4gICAgICAgIDxTQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cInJlamVjdFwiIG9uQ2xpY2s9e2hhbmRsZVJlamVjdH0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmRlbnknKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJhcHByb3ZlXCIgb25DbGljaz17aGFuZGxlQXBwcm92ZX0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmFwcHJvdmUnKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgIDwvU0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICApfVxuICAgICAge2xvY2FsU3RhdHVzICE9PSAncGVuZGluZycgJiYgKFxuICAgICAgICA8U0NBQlN0YXR1c0JhZGdlICRzdGF0dXM9e2xvY2FsU3RhdHVzfT5cbiAgICAgICAgICB7bG9jYWxTdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUgd2lkdGg9ezIyfSBoZWlnaHQ9ezIyfSBjb2xvcj1cIiMwMDg0MDBcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmFwcHJvdmVkJyl9XG4gICAgICAgICAgICAgIHttYW51YWxBcHByb3ZhbERldGVjdGVkICYmIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17d2FybmluZ01lc3NhZ2UgfHwgdCgnYXBwcm92YWxCb3gubWFudWFsQXBwcm92YWxXYXJuaW5nJyl9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8U0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgICAgICA8QWxlcnQgY29sb3I9XCIjRUFBMTFBXCIgd2lkdGg9XCIxM3B4XCIgaGVpZ2h0PVwiMTNweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENyb3NzQ2lyY2xlIHdpZHRoPXsyMn0gaGVpZ2h0PXsyMn0gY29sb3I9XCIjQzcwNTA1XCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5kZW5pZWQnKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NBQlN0YXR1c0JhZGdlPlxuICAgICAgKX1cbiAgICA8L1NDQXBwcm92YWxCb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBRTlDLFNBQ0VDLGFBQWEsRUFDYkMsVUFBVSxFQUNWQyxTQUFTLEVBQ1RDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxjQUFjLEVB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QUFDWixVQUFVO1FBQUM0RyxRQUFRLEVBQUMsUUFBUTtRQUFDQyxPQUFPLEVBQUVQLFlBQWE7UUFBQ1EsU0FBUyxFQUFFckQsU0FBVTtRQUFBOEMsUUFBQSxFQUN2RTVFLENBQUMsQ0FBQyxrQkFBa0I7TUFBQyxDQUNaLENBQUMsZUFDYmYsSUFBQSxDQUFDWixVQUFVO1FBQUM0RyxRQUFRLEVBQUMsU0FBUztRQUFDQyxPQUFPLEVBQUVSLGFBQWM7UUFBQ1MsU0FBUyxFQUFFckQsU0FBVTtRQUFBOEMsUUFBQSxFQUN6RTVFLENBQUMsQ0FBQyxxQkFBcUI7TUFBQyxDQUNmLENBQUM7SUFBQSxDQUNPLENBQ3ZCLEVBQ0E0QyxXQUFXLEtBQUssU0FBUyxpQkFDeEIzRCxJQUFBLENBQUNYLGVBQWU7TUFBQzhHLE9BQU8sRUFBRXhDLFdBQVk7TUFBQWdDLFFBQUEsRUFDbkNoQyxXQUFXLEtBQUssVUFBVSxnQkFDekJ6RCxLQUFBLENBQUFFLFNBQUE7UUFBQXVGLFFBQUEsZ0JBQ0UzRixJQUFBLENBQUN6QixXQUFXO1VBQUM2SCxLQUFLLEVBQUUsRUFBRztVQUFDQyxNQUFNLEVBQUUsRUFBRztVQUFDQyxLQUFLLEVBQUM7UUFBUyxDQUFFLENBQUMsRUFDckR2RixDQUFDLENBQUMsNkJBQTZCLENBQUMsRUFDaENzQyxzQkFBc0IsaUJBQ3JCckQsSUFBQSxDQUFDdkIsT0FBTztVQUFDeUQsS0FBSyxFQUFFaUIsY0FBYyxJQUFJcEMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFFO1VBQUN3RixTQUFTLEVBQUMsT0FBTztVQUFBWixRQUFBLGVBQ3pGM0YsSUFBQSxDQUFDVixxQkFBcUI7WUFBQXFHLFFBQUEsZUFDcEIzRixJQUFBLENBQUMxQixLQUFLO2NBQUNnSSxLQUFLLEVBQUMsU0FBUztjQUFDRixLQUFLLEVBQUMsTUFBTTtjQUFDQyxNQUFNLEVBQUM7WUFBTSxDQUFFO1VBQUMsQ0FDL0I7UUFBQyxDQUNqQixDQUNWO01BQUEsQ0FDRCxDQUFDLGdCQUVIbkcsS0FBQSxDQUFBRSxTQUFBO1FBQUF1RixRQUFBLGdCQUNFM0YsSUFBQSxDQUFDeEIsV0FBVztVQUFDNEgsS0FBSyxFQUFFLEVBQUc7VUFBQ0MsTUFBTSxFQUFFLEVBQUc7VUFBQ0MsS0FBSyxFQUFDO1FBQVMsQ0FBRSxDQUFDLEVBQ3JEdkYsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO01BQUEsQ0FDL0I7SUFDSCxDQUNjLENBQ2xCO0VBQUEsQ0FDWSxDQUFDO0FBRXBCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QiLCJnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwiaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCIsIm5vcm1hbGl6ZUhpdGxUb29sTmFtZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImdldERlbGl2ZXJhYmxlTW9kZSIsInRvb2xBcmdzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiZGVsaXZlcmFibGVUeXBlIiwiZGVsaXZlcmFibGVfdHlwZSIsInRvTG93ZXJDYXNlIiwiZ2V0U3BlY2lhbEFjdGlvbkNvcHkiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJkZWxpdmVyYWJsZU1vZGUiLCJ0b29sX2FyZ3MiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiaW5jbHVkZXMiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiYWdlbnRUeXBlRm9yRXZlbnQiLCJhY3Rpb25zIiwiYWdlbnRfdHlwZSIsImFjdGlvbl90eXBlIiwiQXBwcm92YWxCb3giLCJfcmVmIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxvY2FsU3RhdHVzIiwic2V0TG9jYWxTdGF0dXMiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiZXZlbnRBbXBsaXR1ZGUiLCJsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYiLCJ1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmIiwiYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmIiwiaGl0bEJhdGNoS2V5IiwibWFwIiwiYSIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsInNvcnQiLCJqb2luIiwicHJldiIsImhpdGxBbmFseXRpY3NBZ2VudFR5cGUiLCJsZW5ndGgiLCJpbXByZXNzaW9uS2V5IiwiY3VycmVudCIsImFpQ2hhdEhpdGwiLCJ0cmFja0hpdGxEZWNpc2lvbiIsImRlY2lzaW9uIiwicmVzb2x1dGlvblNvdXJjZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImFpQ2hhdEhpdGxPcHRpb24iLCJfb2JqZWN0U3ByZWFkIiwicmVzb2x1dGlvbl9zb3VyY2UiLCJpc0FjY2VwdCIsImhhbmRsZUFwcHJvdmUiLCJoYW5kbGVSZWplY3QiLCJjaGlsZHJlbiIsIiRleHBhbmRlZCIsInNwZWNpYWxDb3B5IiwibGFiZWwiLCJkaXNwbGF5X25hbWUiLCIkdmFyaWFudCIsIm9uQ2xpY2siLCIkZGlzYWJsZWQiLCIkc3RhdHVzIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInBsYWNlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0FsZXJ0J1xuaW1wb3J0IHsgQ2hlY2tDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IENyb3NzQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3NDaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIFNDQXBwcm92YWxCb3gsXG4gIFNDQUJIZWFkZXIsXG4gIFNDQUJUaXRsZSxcbiAgU0NBQkRlc2NyaXB0aW9uLFxuICBTQ0FCQWN0aW9uc0xpc3QsXG4gIFNDQUJBY3Rpb25JdGVtLFxuICBTQ0FCQWN0aW9uTmFtZSxcbiAgU0NBQkFjdGlvbkRlc2NyaXB0aW9uLFxuICBTQ0FCQnV0dG9uc0NvbnRhaW5lcixcbiAgU0NBQkJ1dHRvbixcbiAgU0NBQlN0YXR1c0JhZGdlLFxuICBTQ0FCU3RhdHVzV2FybmluZ0ljb24sXG59IGZyb20gJy4vQXBwcm92YWxCb3guc3R5bGVzJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQge1xuICBidWlsZEhpdGxBY3Rpb25UeXBlTGlzdCxcbiAgZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSxcbiAgaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCxcbiAgbm9ybWFsaXplSGl0bFRvb2xOYW1lLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9oaXRsQW5hbHl0aWNzJ1xuXG5mdW5jdGlvbiBmb3JtYXRUb29sTmFtZUZhbGxiYWNrKHRvb2xOYW1lPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZSB8fCAndW5rbm93bicpXG4gIGNvbnN0IHdpdGhTcGFjZXMgPSBub3JtYWxpemVkLnJlcGxhY2UoL18vZywgJyAnKS50cmltKClcbiAgaWYgKCF3aXRoU3BhY2VzKSByZXR1cm4gJ1Vua25vd24nXG4gIHJldHVybiB3aXRoU3BhY2VzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd2l0aFNwYWNlcy5zbGljZSgxKVxufVxuXG5mdW5jdGlvbiBnZXRBY3Rpb25MYWJlbCh0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZywgdG9vbE5hbWU/OiBzdHJpbmcsIGRpc3BsYXlOYW1lPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZFRvb2xOYW1lID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgYXBwcm92YWxCb3guYWN0aW9ucy4ke25vcm1hbGl6ZWRUb29sTmFtZX1gXG4gIGNvbnN0IHRyYW5zbGF0ZWRMYWJlbCA9IHQodHJhbnNsYXRpb25LZXkpXG5cbiAgaWYgKHRyYW5zbGF0ZWRMYWJlbCAhPT0gdHJhbnNsYXRpb25LZXkpIHJldHVybiB0cmFuc2xhdGVkTGFiZWxcbiAgaWYgKGRpc3BsYXlOYW1lPy50cmltKCkpIHJldHVybiBkaXNwbGF5TmFtZVxuICByZXR1cm4gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayhub3JtYWxpemVkVG9vbE5hbWUpXG59XG5cbmZ1bmN0aW9uIGdldERlbGl2ZXJhYmxlTW9kZSh0b29sQXJnczogUGVuZGluZ0FjdGlvblsndG9vbF9hcmdzJ10pOiBzdHJpbmcge1xuICBpZiAoIXRvb2xBcmdzIHx8IEFycmF5LmlzQXJyYXkodG9vbEFyZ3MpKSByZXR1cm4gJydcbiAgcmV0dXJuIFN0cmluZyh0b29sQXJncy5kZWxpdmVyYWJsZVR5cGUgfHwgdG9vbEFyZ3MuZGVsaXZlcmFibGVfdHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKVxufVxuXG5mdW5jdGlvbiBnZXRTcGVjaWFsQWN0aW9uQ29weShcbiAgdDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsXG4gIGFjdGlvbjogUGVuZGluZ0FjdGlvblxuKTogeyB0aXRsZT86IHN0cmluZzsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZShhY3Rpb24udG9vbF9uYW1lKVxuICBjb25zdCBkZWxpdmVyYWJsZU1vZGUgPSBnZXREZWxpdmVyYWJsZU1vZGUoYWN0aW9uLnRvb2xfYXJncylcblxuICBpZiAobm9ybWFsaXplZFRvb2xOYW1lID09PSAnY3JlYXRlX3Jld29yaycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwuY3JlYXRlUmV3b3JrLnRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdCgnYXBwcm92YWxCb3guc3BlY2lhbC5jcmVhdGVSZXdvcmsuZGVzY3JpcHRpb24nKSxcbiAgICB9XG4gIH1cblxuICBpZiAobm9ybWFsaXplZFRvb2xOYW1lID09PSAndXBkYXRlX2RlbGl2ZXJhYmxlJyAmJiBbJ2NoaWxkcmVuJywgJ2NoZWNrYm94J10uaW5jbHVkZXMoZGVsaXZlcmFibGVNb2RlKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdCgnYXBwcm92YWxCb3guc3BlY2lhbC51cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuLnRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdCgnYXBwcm92YWxCb3guc3BlY2lhbC51cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuLmRlc2NyaXB0aW9uJyksXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHt9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoYWdlbnRUeXBlRm9yRXZlbnQ6IHN0cmluZywgYWN0aW9uczogUGVuZGluZ0FjdGlvbltdKSB7XG4gIHJldHVybiB7XG4gICAgYWdlbnRfdHlwZTogYWdlbnRUeXBlRm9yRXZlbnQsXG4gICAgYWN0aW9uX3R5cGU6IGJ1aWxkSGl0bEFjdGlvblR5cGVMaXN0KGFjdGlvbnMpLFxuICB9XG59XG5cbmludGVyZmFjZSBBcHByb3ZhbEJveFByb3BzIHtcbiAgYWN0aW9uczogUGVuZGluZ0FjdGlvbltdXG4gIG9uQXBwcm92ZTogKHRocmVhZElkczogc3RyaW5nW10pID0+IHZvaWRcbiAgb25SZWplY3Q6ICh0aHJlYWRJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXG4gIHN0YXR1cz86ICdwZW5kaW5nJyB8ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnXG4gIGlzTG9hZGluZz86IGJvb2xlYW5cbiAgLyoqIFNpIGVsIGNoYXQvcHJveWVjdG8gZXN0w6EgZWxpbWluYWRvLCBzZSBvY3VsdGFuIGxvcyBib3RvbmVzIGRlIGFwcm9iYXIvcmVjaGF6YXIgKi9cbiAgaXNQcm9qZWN0RGVsZXRlZD86IGJvb2xlYW5cbiAgLyoqIFNpIGVsIGNoYXQgZXN0w6EgZXhwYW5kaWRvICh0cnVlKSBvIGNvbGFwc2FkbyAoZmFsc2UpLiBBZmVjdGEgZWwgYW5jaG8gZGVsIGNvbnRlbmVkb3IuICovXG4gIGlzRXhwYW5kZWQ/OiBib29sZWFuXG4gIC8qKiBJZCBlc3RhYmxlIHBvciBsb3RlIEhJVEwgKHAuIGVqLiBvcmlnaW5hbF90aHJlYWRfaWQpIHBhcmEgZWwgZXZlbnRvIGRlIGltcHJlc2nDs24gKi9cbiAgaGl0bEluc3RhbmNlSWQ/OiBzdHJpbmdcbiAgd2FybmluZ01lc3NhZ2U/OiBzdHJpbmdcbiAgbWFudWFsQXBwcm92YWxEZXRlY3RlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEFwcHJvdmFsQm94ID0gKHtcbiAgYWN0aW9ucyxcbiAgb25BcHByb3ZlLFxuICBvblJlamVjdCxcbiAgc3RhdHVzID0gJ3BlbmRpbmcnLFxuICBpc0xvYWRpbmcgPSBmYWxzZSxcbiAgaXNQcm9qZWN0RGVsZXRlZCA9IGZhbHNlLFxuICBpc0V4cGFuZGVkID0gZmFsc2UsXG4gIGhpdGxJbnN0YW5jZUlkLFxuICB3YXJuaW5nTWVzc2FnZSxcbiAgbWFudWFsQXBwcm92YWxEZXRlY3RlZCA9IGZhbHNlLFxufTogQXBwcm92YWxCb3hQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUldKVxuICBjb25zdCBbbG9jYWxTdGF0dXMsIHNldExvY2FsU3RhdHVzXSA9IHVzZVN0YXRlPCdwZW5kaW5nJyB8ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnPihzdGF0dXMpXG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGhpdGxCYXRjaEtleSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGhpdGxJbnN0YW5jZUlkID8/XG4gICAgICBhY3Rpb25zXG4gICAgICAgIC5tYXAoYSA9PiBgJHthLnRocmVhZF9pZH06JHthLnRvb2xfY2FsbF9pZH1gKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5qb2luKCd8JyksXG4gICAgW2hpdGxJbnN0YW5jZUlkLCBhY3Rpb25zXVxuICApXG5cbiAgLy8gU2luY3Jvbml6YXIgbG9jYWxTdGF0dXMgY29uIGVsIHByb3Agc3RhdHVzIGN1YW5kbyBjYW1iaWEgZGVzZGUgZWwgcGFkcmUgKHNvbG8gcG9yIHZhbHVlLCBldml0YSBidWNsZXMpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TG9jYWxTdGF0dXMocHJldiA9PiAocHJldiAhPT0gc3RhdHVzID8gc3RhdHVzIDogcHJldikpXG4gIH0sIFtzdGF0dXNdKVxuXG4gIGNvbnN0IGhpdGxBbmFseXRpY3NBZ2VudFR5cGUgPSBnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlKGFnZW50KVxuXG4gIC8vIENBMTogY2FyZCBkZSBjb25maXJtYWNpw7NuIEhJVEwgdmlzaWJsZSAoc29sbyBwZW5kaWVudGUsIG5vIGhpc3TDs3JpY28geWEgcmVzdWVsdG8pXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycgfHwgIWFjdGlvbnMubGVuZ3RoKSByZXR1cm5cbiAgICBjb25zdCBpbXByZXNzaW9uS2V5ID0gaGl0bEJhdGNoS2V5XG4gICAgaWYgKGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZi5jdXJyZW50ID09PSBpbXByZXNzaW9uS2V5KSByZXR1cm5cbiAgICBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9IGltcHJlc3Npb25LZXlcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bCwgYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBhY3Rpb25zKSlcbiAgfSwgW2V2ZW50QW1wbGl0dWRlLCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBoaXRsQmF0Y2hLZXksIGxvY2FsU3RhdHVzLCBhY3Rpb25zLmxlbmd0aF0pXG5cbiAgY29uc3QgdHJhY2tIaXRsRGVjaXNpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoZGVjaXNpb246ICdhY2NlcHQnIHwgJ2RlbnknLCByZXNvbHV0aW9uU291cmNlOiAndXNlcicgfCAnYXV0bycgPSAndXNlcicpID0+IHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRIaXRsT3B0aW9uLCB7XG4gICAgICAgIC4uLmJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucyksXG4gICAgICAgIGRlY2lzaW9uLFxuICAgICAgICByZXNvbHV0aW9uX3NvdXJjZTogcmVzb2x1dGlvblNvdXJjZSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbYWN0aW9ucywgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBudWxsXG4gIH0sIFtoaXRsQmF0Y2hLZXldKVxuXG4gIC8qKlxuICAgKiBSZXNvbHVjacOzbiBzaW4gY2xpYyAocC4gZWouIGJhY2tlbmQgZWplY3V0YSBsYSBoZXJyYW1pZW50YSBzb2xhKTogaHVibyBpbXByZXNpw7NuIEhJVExcbiAgICogcGFyYSBlc3RlIGxvdGUgeSBlbCBwYWRyZSBwYXPDsyBhIGFwcHJvdmVkL3JlamVjdGVkIHNpbiBxdWUgZWwgdXN1YXJpbyBwdWxzYXJhIGFwcm9iYXIvZGVuZWdhci5cbiAgICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXR1cyA9PT0gJ3BlbmRpbmcnIHx8ICFhY3Rpb25zLmxlbmd0aCkgcmV0dXJuXG4gICAgaWYgKGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZi5jdXJyZW50ICE9PSBoaXRsQmF0Y2hLZXkpIHJldHVyblxuICAgIGlmICh1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGlmIChhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYuY3VycmVudCA9PT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYuY3VycmVudCA9IGhpdGxCYXRjaEtleVxuICAgIGNvbnN0IGlzQWNjZXB0ID0gc3RhdHVzID09PSAnYXBwcm92ZWQnXG4gICAgaWYgKGlzQWNjZXB0ICYmIGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQoYWN0aW9ucykpIHJldHVyblxuICAgIHRyYWNrSGl0bERlY2lzaW9uKGlzQWNjZXB0ID8gJ2FjY2VwdCcgOiAnZGVueScsICdhdXRvJylcbiAgfSwgW2FjdGlvbnMsIGhpdGxCYXRjaEtleSwgc3RhdHVzLCB0cmFja0hpdGxEZWNpc2lvbl0pXG5cbiAgY29uc3QgaGFuZGxlQXBwcm92ZSA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICBpZiAoIWhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQoYWN0aW9ucykpIHtcbiAgICAgIHRyYWNrSGl0bERlY2lzaW9uKCdhY2NlcHQnLCAndXNlcicpXG4gICAgfVxuICAgIHNldExvY2FsU3RhdHVzKCdhcHByb3ZlZCcpXG4gICAgb25BcHByb3ZlKGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUmVqZWN0ID0gKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmcgfHwgbG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJykgcmV0dXJuXG4gICAgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIHRyYWNrSGl0bERlY2lzaW9uKCdkZW55JywgJ3VzZXInKVxuICAgIHNldExvY2FsU3RhdHVzKCdyZWplY3RlZCcpXG4gICAgb25SZWplY3QoYWN0aW9ucy5tYXAoYSA9PiBhLnRocmVhZF9pZCkpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0FwcHJvdmFsQm94PlxuICAgICAgPFNDQUJIZWFkZXI+XG4gICAgICAgIDxTQ0FCVGl0bGU+e3QoJ2FwcHJvdmFsQm94LnRpdGxlJyl9PC9TQ0FCVGl0bGU+XG4gICAgICA8L1NDQUJIZWFkZXI+XG5cbiAgICAgIDxTQ0FCRGVzY3JpcHRpb24+e3QoJ2FwcHJvdmFsQm94LmRlc2NyaXB0aW9uJyl9PC9TQ0FCRGVzY3JpcHRpb24+XG5cbiAgICAgIDxTQ0FCQWN0aW9uc0xpc3QgJGV4cGFuZGVkPXtpc0V4cGFuZGVkfT5cbiAgICAgICAge2FjdGlvbnMubWFwKGFjdGlvbiA9PiB7XG4gICAgICAgICAgY29uc3Qgc3BlY2lhbENvcHkgPSBnZXRTcGVjaWFsQWN0aW9uQ29weSh0LCBhY3Rpb24pXG4gICAgICAgICAgY29uc3QgbGFiZWwgPSBzcGVjaWFsQ29weS50aXRsZSB8fCBnZXRBY3Rpb25MYWJlbCh0LCBhY3Rpb24udG9vbF9uYW1lLCAoYWN0aW9uIGFzIGFueSkuZGlzcGxheV9uYW1lKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8U0NBQkFjdGlvbkl0ZW0ga2V5PXthY3Rpb24udGhyZWFkX2lkfT5cbiAgICAgICAgICAgICAgPFNDQUJBY3Rpb25OYW1lPntsYWJlbH08L1NDQUJBY3Rpb25OYW1lPlxuICAgICAgICAgICAgICB7c3BlY2lhbENvcHkuZGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFNDQUJBY3Rpb25EZXNjcmlwdGlvbj57c3BlY2lhbENvcHkuZGVzY3JpcHRpb259PC9TQ0FCQWN0aW9uRGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TQ0FCQWN0aW9uSXRlbT5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC9TQ0FCQWN0aW9uc0xpc3Q+XG5cbiAgICAgIHtsb2NhbFN0YXR1cyA9PT0gJ3BlbmRpbmcnICYmICFpc1Byb2plY3REZWxldGVkICYmIChcbiAgICAgICAgPFNDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwicmVqZWN0XCIgb25DbGljaz17aGFuZGxlUmVqZWN0fSAkZGlzYWJsZWQ9e2lzTG9hZGluZ30+XG4gICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guZGVueScpfVxuICAgICAgICAgIDwvU0NBQkJ1dHRvbj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cImFwcHJvdmVcIiBvbkNsaWNrPXtoYW5kbGVBcHByb3ZlfSAkZGlzYWJsZWQ9e2lzTG9hZGluZ30+XG4gICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guYXBwcm92ZScpfVxuICAgICAgICAgIDwvU0NBQkJ1dHRvbj5cbiAgICAgICAgPC9TQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgICB7bG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyAmJiAoXG4gICAgICAgIDxTQ0FCU3RhdHVzQmFkZ2UgJHN0YXR1cz17bG9jYWxTdGF0dXN9PlxuICAgICAgICAgIHtsb2NhbFN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDaGVja0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiIzAwODQwMFwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuYXBwcm92ZWQnKX1cbiAgICAgICAgICAgICAge21hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgJiYgKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt3YXJuaW5nTWVzc2FnZSB8fCB0KCdhcHByb3ZhbEJveC5tYW51YWxBcHByb3ZhbFdhcm5pbmcnKX0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxTQ0FCU3RhdHVzV2FybmluZ0ljb24+XG4gICAgICAgICAgICAgICAgICAgIDxBbGVydCBjb2xvcj1cIiNFQUExMUFcIiB3aWR0aD1cIjEzcHhcIiBoZWlnaHQ9XCIxM3B4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q3Jvc3NDaXJjbGUgd2lkdGg9ezIyfSBoZWlnaHQ9ezIyfSBjb2xvcj1cIiNDNzA1MDVcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmRlbmllZCcpfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0FCU3RhdHVzQmFkZ2U+XG4gICAgICApfVxuICAgIDwvU0NBcHByb3ZhbEJveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSxTQUFTQSxRQUFR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
|