@projectcor/maia-components 2.11.65-18 → 2.11.65-19

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.
@@ -9,6 +9,7 @@ import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
9
9
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
10
10
  import { ListChecklist } from '@projectcor/icons/lib/components/ListChecklist';
11
11
  import { useT } from '../../../hooks/useT';
12
+ import { EVENTS, useEvent } from '../../../hooks/useEvent';
12
13
  import { SCCAIHomeContainer, SCCAIHomeContent, SCCAIHomeContentInner, SCCAIHomeGradientTop, SCCAIHomeGradientBottom, SCCAIHomeHeader, SCCAIHomeGreeting, SCCAIHomeAgentInfoContainer, SCCAIHomeAgentInfo, SCCAIHomeProjectSummary, SCCAIHomeProjectSummaryContent, SCCAIHomeProjectSummaryTitle, SCCAIHomeProjectSummaryDescription, SCCAHWrapperSummaryProject, SCCAIHomeIntroduction, SCCAIHomeCreatedByContainer, SCCAIHomeCreatedByText, SCCAIHomeCreatedByTextName, SCCAIHomeIconContainer, SCCAIHomeLogoWrapper, SCCAIHomeMaiaHeaderStack, SCCAIHomeTitle, SCCAIHomeSubtitle, SCCAIHomeDynamicSection, SCCAIHomeRecentContexts, SCCAIHomeRecentContextsTitle, SCCAIHomeRecentContextsList, SCCAIHomeRecentContextPill, SCCAIHomeRecentContextPillIcon, SCCAIHomeRecentContextPillText, SCCAIHomeRecentContextPillSkeleton } from './styles';
13
14
  import { useGlobalContext } from '../../../context/global-context';
14
15
  import { CORUserRole, useUser } from '../../../context/cor-user';
@@ -81,6 +82,7 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
81
82
  var _useT = useT(),
82
83
  t = _useT.t,
83
84
  i18n = _useT.i18n;
85
+ var event = useEvent();
84
86
  var user = useUser();
85
87
  var _useGlobalContext = useGlobalContext(),
86
88
  agent = _useGlobalContext.agent,
@@ -242,8 +244,12 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
242
244
  }
243
245
  return typeof intro === 'string' ? intro : '';
244
246
  }, [agent === null || agent === void 0 ? void 0 : agent.id, agent === null || agent === void 0 ? void 0 : agent.introduction, section, isMaiaker, t]);
245
- var handleSelectRecentContext = useCallback(function (context) {
247
+ var handleSelectRecentContext = useCallback(function (context, order) {
246
248
  var _context$parents, _context$parents2, _context$parents3, _context$parents4;
249
+ event(EVENTS.aiChatContextSelected, {
250
+ order: order,
251
+ type: context.type
252
+ });
247
253
  var contextId = parseNumericId(context.id);
248
254
  var clientId = parseNumericId((_context$parents = context.parents) === null || _context$parents === void 0 ? void 0 : _context$parents.client_id);
249
255
  var projectId = parseNumericId((_context$parents2 = context.parents) === null || _context$parents2 === void 0 ? void 0 : _context$parents2.project_id);
@@ -316,7 +322,7 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
316
322
  });
317
323
  }
318
324
  }
319
- }, [setChipsProject, setClient, setProject, setTask, t]);
325
+ }, [event, setChipsProject, setClient, setProject, setTask, t]);
320
326
  var renderRecentContexts = function renderRecentContexts() {
321
327
  if (!isRecentContextsStep) return null;
322
328
  return /*#__PURE__*/_jsxs(SCCAIHomeRecentContexts, {
@@ -325,12 +331,12 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
325
331
  }), /*#__PURE__*/_jsxs(SCCAIHomeRecentContextsList, {
326
332
  children: [recentContextsLoading && RECENT_CONTEXT_SKELETON_KEYS.map(function (key) {
327
333
  return /*#__PURE__*/_jsx(SCCAIHomeRecentContextPillSkeleton, {}, key);
328
- }), !recentContextsLoading && recentContexts.map(function (context) {
334
+ }), !recentContextsLoading && recentContexts.map(function (context, index) {
329
335
  return /*#__PURE__*/_jsx(RecentContextPill, {
330
336
  context: context,
331
337
  label: context.name.trim(),
332
338
  onClick: function onClick() {
333
- return handleSelectRecentContext(context);
339
+ return handleSelectRecentContext(context, index + 1);
334
340
  }
335
341
  }, "".concat(context.type, "-").concat(context.id));
336
342
  })]
@@ -476,4 +482,4 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
476
482
  })]
477
483
  });
478
484
  };
479
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVJY29uQ29udGFpbmVyIiwiU0NDQUlIb21lTG9nb1dyYXBwZXIiLCJTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2siLCJTQ0NBSUhvbWVUaXRsZSIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzVGl0bGUiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24iLCJ1c2VHbG9iYWxDb250ZXh0IiwiQ09SVXNlclJvbGUiLCJ1c2VVc2VyIiwidXNlUmVzaXplTGlzdGVuZXIiLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsInVzZVJlY2VudENvbnRleHRzIiwiTUFJQUlzb2xvZ28iLCJUZW1wbGF0ZUdyYWRpZW50SWNvbiIsIkNoYXRBSUhvbWVNYWlha2VyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiRnJlcXVlbnRRdWVzdGlvbnMiLCJSRUNFTlRfQ09OVEVYVFNfTElNSVQiLCJSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SIiwiUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUyIsIlJlY2VudENvbnRleHRQaWxsIiwiX3JlZiIsImNvbnRleHQiLCJsYWJlbCIsIm9uQ2xpY2siLCJ0ZXh0UmVmIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJ0eXBlIiwiY2hpbGRyZW4iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwidW5kZWZpbmVkIiwicmVmIiwidGl0bGUiLCJwYXJzZU51bWVyaWNJZCIsInZhbHVlIiwicGFyc2VkIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzIiwicm9sZUlkIiwiQ0xFVkVMIiwiRElSRUNUT1IiLCJQUk9KRUNUX01BTkFHRVIiLCJTZXQiLCJDT0xMQUJPUkFUT1IiLCJDaGF0QUlIb21lIiwiX3JlZjIiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJ1c2VyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsInNlY3Rpb24iLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNoaXBzUHJvamVjdCIsInNldENsaWVudCIsInNldFByb2plY3QiLCJzZXRUYXNrIiwic2V0Q2hpcHNQcm9qZWN0IiwiaXNNQUlBIiwiZmxvYXRpbmdDdXN0b21DZW50ZXIiLCJsYW5nIiwibGFuZ3VhZ2UiLCJzdW1tYXJ5UHJvamVjdEFjY2VzcyIsIndpbmRvdyIsIlN0cmluZyIsIk1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTIiwidG9Mb3dlckNhc2UiLCJtYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MiLCJmYXFzQWNjZXNzIiwic2hvd1Byb2plY3RTdW1tYXJ5IiwiaXNNYWlha2VyIiwiZW50aXR5IiwidGVzdCIsIm5hbWUiLCJpc0hlYWRlckhvbWUiLCJhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzIiwicm9sZV9pZCIsIl91c2VSZWNlbnRDb250ZXh0cyIsImVuYWJsZWQiLCJsaW1pdCIsImZldGNoZWRSZWNlbnRDb250ZXh0cyIsImNvbnRleHRzIiwicmVjZW50Q29udGV4dHNMb2FkaW5nIiwibG9hZGluZyIsInJlY2VudENvbnRleHRzIiwiZmlsdGVyIiwiaGFzIiwiaGFzUGlubmVkQ29udGV4dCIsImlkIiwicHJvamVjdElkIiwiaXNSZWNlbnRDb250ZXh0c1N0ZXAiLCJpc0NvbnRleHRIb21lU3RlcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkQ29udGV4dCIsInNldFNlbGVjdGVkQ29udGV4dCIsImFjdGl2ZUNvbnRleHQiLCJwcm9qZWN0TmFtZSIsInBpbm5lZEVudGl0eVR5cGUiLCJyZWFsTGlzdHNBZ2VudElkIiwicmVhbExpc3RzRW50aXR5VHlwZSIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsImFnZW50RnVhcyIsImFjdGlvbnMiLCJmdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5QXNrZWRRdSIsImFnZW50RmFxcyIsImZhcXMiLCJmYXFzTG9hZGluZyIsImhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsImZhcXNGZXRjaFJlZiIsIl9mYXFzRmV0Y2hSZWYkY3VycmVudCIsImN1cnJlbnRLZXkiLCJjb25jYXQiLCJsYXN0S2V5IiwiY3VycmVudCIsImFnZW50SWQiLCJlbnRpdHlUeXBlIiwiZnVhcyIsImZhcXNBcmVMb2FkaW5nIiwiZnVhc0FyZUxvYWRpbmciLCJzaG93UmVjZW50Q29udGV4dHNCbG9jayIsImxlbmd0aCIsInNob3VsZFNob3dGYXFzIiwic2hvdWxkU2hvd0Z1YXMiLCJzaG93UHJvamVjdFN1bW1hcnlDYXJkIiwic2hvd0ZBUXMiLCJob21lU2Nyb2xsYWJsZUxheW91dCIsInNob3dEeW5hbWljU2VjdGlvbiIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dUb3BHcmFkaWVudCIsInNldFNob3dUb3BHcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd0JvdHRvbUdyYWRpZW50Iiwic2V0U2hvd0JvdHRvbUdyYWRpZW50IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwic2Nyb2xsVGltZW91dFJlZiIsImdyZWV0aW5nIiwiaW50cm8iLCJpbnRyb2R1Y3Rpb24iLCJBcnJheSIsImlzQXJyYXkiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0IiwiX2NvbnRleHQkcGFyZW50cyIsIl9jb250ZXh0JHBhcmVudHMyIiwiX2NvbnRleHQkcGFyZW50czMiLCJfY29udGV4dCRwYXJlbnRzNCIsImNvbnRleHRJZCIsImNsaWVudElkIiwicGFyZW50cyIsImNsaWVudF9pZCIsInByb2plY3RfaWQiLCJjbGllbnROYW1lIiwiY2xpZW50X25hbWUiLCJwcm9qZWN0X25hbWUiLCJfb2JqZWN0U3ByZWFkIiwicmVuZGVyUmVjZW50Q29udGV4dHMiLCJtYXAiLCJrZXkiLCJ0cmltIiwiY2hlY2tTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwiY3JlYXRlZF9ieSIsImlzX2RlbGV0ZWQiLCIkbm9HYXAiLCJmaXJzdE5hbWUiLCIkc2hvdyIsIiRpc0FnZW50VmlldyIsIiRmbG9hdGluZ0N1c3RvbUNlbnRlciIsIiRnYXAiLCIkbWF4V2lkdGgiLCJwcm9qZWN0U3VtbWFyeSIsIiRncm93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBMaXN0Q2hlY2tsaXN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTGlzdENoZWNrbGlzdCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSAnLi4vQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuXG5pbXBvcnQge1xuICBTQ0NBSUhvbWVDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNvbnRlbnQsXG4gIFNDQ0FJSG9tZUNvbnRlbnRJbm5lcixcbiAgU0NDQUlIb21lR3JhZGllbnRUb3AsXG4gIFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tLFxuICBTQ0NBSUhvbWVIZWFkZXIsXG4gIFNDQ0FJSG9tZUdyZWV0aW5nLFxuICBTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIsXG4gIFNDQ0FJSG9tZUFnZW50SW5mbyxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnksXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbixcbiAgU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QsXG4gIFNDQ0FJSG9tZUludHJvZHVjdGlvbixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0LFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSxcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lTG9nb1dyYXBwZXIsXG4gIFNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayxcbiAgU0NDQUlIb21lVGl0bGUsXG4gIFNDQ0FJSG9tZVN1YnRpdGxlLFxuICBTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHMsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzVGl0bGUsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0LFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQ09SVXNlclJvbGUsIHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IHVzZVJlY2VudENvbnRleHRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVjZW50Q29udGV4dHMnXG5pbXBvcnQgdHlwZSB7IFJlY2VudENvbnRleHRJdGVtLCBSZWNlbnRDb250ZXh0VHlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvUmVjZW50Q29udGV4dHMnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL01BSUFJc29sb2dvJ1xuaW1wb3J0IHsgVGVtcGxhdGVHcmFkaWVudEljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9UZW1wbGF0ZUdyYWRpZW50SWNvbidcbmltcG9ydCB7IENoYXRBSUhvbWVNYWlha2VyIH0gZnJvbSAnLi9DaGF0QUlIb21lTWFpYWtlcidcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgbWVudGlvbnM/OiBudWxsLFxuICAgIGZ1YUlkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBmbG9hdGluZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmNvbnN0IFJFQ0VOVF9DT05URVhUU19MSU1JVCA9IDlcbmNvbnN0IFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IgPSAnIzRENEQ0RCdcbmNvbnN0IFJFQ0VOVF9DT05URVhUX1NLRUxFVE9OX0tFWVMgPSBbXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0xJyxcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTInLFxuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMycsXG5dXG5cbmNvbnN0IFJlY2VudENvbnRleHRQaWxsID0gKHtcbiAgY29udGV4dCxcbiAgbGFiZWwsXG4gIG9uQ2xpY2ssXG59OiB7XG4gIGNvbnRleHQ6IFJlY2VudENvbnRleHRJdGVtXG4gIGxhYmVsOiBzdHJpbmdcbiAgb25DbGljazogKCkgPT4gdm9pZFxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudD4obnVsbClcbiAgY29uc3QgeyBzaG93VG9vbHRpcCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZiwgW2xhYmVsXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgICB7Y29udGV4dC50eXBlID09PSAndGFzaycgPyAoXG4gICAgICAgICAgPExpc3RDaGVja2xpc3QgY29sb3I9e1JFQ0VOVF9DT05URVhUX0lDT05fQ09MT1J9IHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGdldENvbnRleHRNZW50aW9uSWNvbihjb250ZXh0LnR5cGUsIFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IsIHVuZGVmaW5lZCwgMTQpXG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbj5cbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQgcmVmPXt0ZXh0UmVmfT5cbiAgICAgICAge3Nob3dUb29sdGlwID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtsYWJlbH0+XG4gICAgICAgICAgICA8c3Bhbj57bGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBsYWJlbFxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQ+XG4gICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbD5cbiAgKVxufVxuXG5jb25zdCBwYXJzZU51bWVyaWNJZCA9ICh2YWx1ZT86IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IG51bGxcbn1cblxuY29uc3QgZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyA9IChyb2xlSWQ/OiBDT1JVc2VyUm9sZSk6IFNldDxSZWNlbnRDb250ZXh0VHlwZT4gPT4ge1xuICBpZiAocm9sZUlkID09PSBDT1JVc2VyUm9sZS5DTEVWRUwgfHwgcm9sZUlkID09PSBDT1JVc2VyUm9sZS5ESVJFQ1RPUiB8fCByb2xlSWQgPT09IENPUlVzZXJSb2xlLlBST0pFQ1RfTUFOQUdFUikge1xuICAgIHJldHVybiBuZXcgU2V0KFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzayddKVxuICB9XG4gIGlmIChyb2xlSWQgPT09IENPUlVzZXJSb2xlLkNPTExBQk9SQVRPUikge1xuICAgIHJldHVybiBuZXcgU2V0KFsndGFzayddKVxuICB9XG4gIHJldHVybiBuZXcgU2V0KClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWUgPSAoeyBoYW5kbGVycywgb25TdGFydENoYXQsIGV4cGFuZGVkLCBmbG9hdGluZyB9OiBDaGF0QUlIb21lUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uLCBjbGllbnQsIHByb2plY3QsIHRhc2ssIGNoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QgfSA9XG4gICAgdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGZsb2F0aW5nQ3VzdG9tQ2VudGVyID0gISEoZmxvYXRpbmcgJiYgYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICAvLyBFbCBvcmNoZXN0cmF0b3IgKHR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSBtdWVzdHJhIEZBUXMvRlVBcyBhZ3JlZ2FkYXMgZGUgc3VzIHN1YmFnZW50ZXMsXG4gIC8vIGFzw60gcXVlIE5PIHNlIHRyYXRhIGNvbW8gbWFpYWtlciBhY8OhLiBNYWlha2VyID0gY2xvbmUgZ2xvYmFsIGxlZ2FjeSBjb24gbm9tYnJlIG1haWFrZXIvbWFya2V0cGxhY2UuXG4gIGNvbnN0IGlzTWFpYWtlciA9XG4gICAgYWdlbnQ/LnR5cGUgIT09ICdvcmNoZXN0cmF0b3InICYmIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuICBjb25zdCBpc0hlYWRlckhvbWUgPSBpc01BSUEgJiYgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIGNvbnN0IGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMgPSB1c2VNZW1vKCgpID0+IGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXModXNlci5yb2xlX2lkKSwgW3VzZXIucm9sZV9pZF0pXG4gIGNvbnN0IHsgY29udGV4dHM6IGZldGNoZWRSZWNlbnRDb250ZXh0cywgbG9hZGluZzogcmVjZW50Q29udGV4dHNMb2FkaW5nIH0gPSB1c2VSZWNlbnRDb250ZXh0cyh7XG4gICAgZW5hYmxlZDogaXNIZWFkZXJIb21lLFxuICAgIGxpbWl0OiBSRUNFTlRfQ09OVEVYVFNfTElNSVQsXG4gIH0pXG4gIGNvbnN0IHJlY2VudENvbnRleHRzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBmZXRjaGVkUmVjZW50Q29udGV4dHMuZmlsdGVyKGNvbnRleHQgPT4gYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcy5oYXMoY29udGV4dC50eXBlKSksXG4gICAgW2ZldGNoZWRSZWNlbnRDb250ZXh0cywgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlc11cbiAgKVxuXG4gIC8vIEhvbWUgZGVsIG9yY2hlc3RyYXRvciBlbiAyIHBhc29zOlxuICAvLyAgLSBQYXNvIDEgKHNpbiBjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gc29sbyBsb3MgY29udGV4dG9zIHJlY2llbnRlcy5cbiAgLy8gIC0gUGFzbyAyIChjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gbGFzIEZBUXMvYWNjaW9uZXMgcXVlIHJlZmVyZW5jaWFuIGVzZSBjb250ZXh0by5cbiAgLy8gVm9sdmVyIGFsIHBhc28gMSA9IHF1aXRhciBlbCBjaGlwIChsaW1waWEgZWwgY29udGV4dG8gZ2xvYmFsKS5cbiAgY29uc3QgaGFzUGlubmVkQ29udGV4dCA9ICEhKHRhc2s/LmlkIHx8IGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IGNsaWVudD8uaWQgfHwgcHJvamVjdD8uaWQpXG4gIGNvbnN0IGlzUmVjZW50Q29udGV4dHNTdGVwID0gaXNIZWFkZXJIb21lICYmICFoYXNQaW5uZWRDb250ZXh0XG4gIGNvbnN0IGlzQ29udGV4dEhvbWVTdGVwID0gaXNIZWFkZXJIb21lICYmIGhhc1Bpbm5lZENvbnRleHRcblxuICAvLyBDb250ZXh0byBhY3Rpdm8gcGFyYSBkZXJpdmFyIEZBUXMvYWNjaW9uZXMgKHBhc28gMikuIFByZWZlcmltb3MgZWwgcGlsbCBjbGlja2VhZG87XG4gIC8vIHNpIG5vLCBsbyByZWNvbnN0cnVpbW9zIGRlc2RlIGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgY29uc3QgW3NlbGVjdGVkQ29udGV4dCwgc2V0U2VsZWN0ZWRDb250ZXh0XSA9IHVzZVN0YXRlPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhhc1Bpbm5lZENvbnRleHQpIHNldFNlbGVjdGVkQ29udGV4dChudWxsKVxuICB9LCBbaGFzUGlubmVkQ29udGV4dF0pXG5cbiAgY29uc3QgYWN0aXZlQ29udGV4dCA9IHVzZU1lbW88UmVjZW50Q29udGV4dEl0ZW0gfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkQ29udGV4dCkgcmV0dXJuIHNlbGVjdGVkQ29udGV4dFxuICAgIGlmICghaXNDb250ZXh0SG9tZVN0ZXApIHJldHVybiBudWxsXG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4geyB0eXBlOiAndGFzaycsIGlkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUgfVxuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCkgcmV0dXJuIHsgdHlwZTogJ3Byb2plY3QnLCBpZDogY2hpcHNQcm9qZWN0LnByb2plY3RJZCwgbmFtZTogY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lIH1cbiAgICBpZiAoY2xpZW50Py5pZCkgcmV0dXJuIHsgdHlwZTogJ2NsaWVudCcsIGlkOiBjbGllbnQuaWQsIG5hbWU6IGNsaWVudC5uYW1lIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgc2VsZWN0ZWRDb250ZXh0LFxuICAgIGlzQ29udGV4dEhvbWVTdGVwLFxuICAgIHRhc2s/LmlkLFxuICAgIHRhc2s/Lm5hbWUsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICAvLyBlbnRpdHlfdHlwZSBkZWwgY29udGV4dG8gcGluZWFkbyAocHJvamVjdC9jbGllbnQvdGFzayksIHRvbWFkbyBkZWwgY29udGV4dG8gZ2xvYmFsLlxuICAvLyBBcGxpY2EgdGFudG8gYWwgYWJyaXIgTUFJQSBkZXNkZSB1bmEgc2VjY2nDs24gZXNwZWPDrWZpY2EgY29tbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gIGNvbnN0IHBpbm5lZEVudGl0eVR5cGUgPSB1c2VNZW1vPFJlY2VudENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4gJ3Rhc2snXG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IHByb2plY3Q/LmlkKSByZXR1cm4gJ3Byb2plY3QnXG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiAnY2xpZW50J1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW3Rhc2s/LmlkLCBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCwgcHJvamVjdD8uaWQsIGNsaWVudD8uaWRdKVxuXG4gIC8vIEZBUXMvYWNjaW9uZXM6XG4gIC8vICAtIGhlYWRlci1ob21lIChvcmNoZXN0cmF0b3IpLCBwYXNvIDI6IGZpbHRyYWRhcyBwb3IgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2VsZWNjaW9uYWRvLlxuICAvLyAgLSBob21lcyBkZSBwcm95ZWN0by9jbGllbnRlL3RhcmVhIChzZWNjacOzbik6IGZpbHRyYWRhcyBwb3IgZWwgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2V0ZWFkby5cbiAgY29uc3QgcmVhbExpc3RzQWdlbnRJZCA9ICgoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgaXNNYWlha2VyKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKGlzSGVhZGVySG9tZSkgcmV0dXJuIGlzQ29udGV4dEhvbWVTdGVwID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkXG4gICAgcmV0dXJuIGFnZW50Py5pZFxuICB9KSgpXG4gIGNvbnN0IHJlYWxMaXN0c0VudGl0eVR5cGUgPSAoKCkgPT4ge1xuICAgIGlmICghaXNIZWFkZXJIb21lKSByZXR1cm4gcGlubmVkRW50aXR5VHlwZVxuICAgIHJldHVybiBpc0NvbnRleHRIb21lU3RlcCA/IGFjdGl2ZUNvbnRleHQ/LnR5cGUgOiB1bmRlZmluZWRcbiAgfSkoKVxuICBjb25zdCB7IGFjdGlvbnM6IGFnZW50RnVhcywgbG9hZGluZzogZnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICByZWFsTGlzdHNBZ2VudElkLFxuICAgIHNlY3Rpb24sXG4gICAgcmVhbExpc3RzRW50aXR5VHlwZVxuICApXG4gIGNvbnN0IHtcbiAgICBmYXFzOiBhZ2VudEZhcXMsXG4gICAgbG9hZGluZzogZmFxc0xvYWRpbmcsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zLFxuICB9ID0gdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIHJlYWxMaXN0c0VudGl0eVR5cGUpXG4gIGNvbnN0IGZhcXNGZXRjaFJlZiA9IHVzZVJlZjx7IGFnZW50SWQ6IHN0cmluZzsgbGFuZzogc3RyaW5nOyBlbnRpdHlUeXBlPzogc3RyaW5nIH0gfCBudWxsPihudWxsKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmVhbExpc3RzQWdlbnRJZCB8fCBzZWN0aW9uID09PSAndGFzaycpIHJldHVyblxuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBgJHtyZWFsTGlzdHNBZ2VudElkfS0ke2xhbmd9LSR7cmVhbExpc3RzRW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgY29uc3QgbGFzdEtleSA9IGZhcXNGZXRjaFJlZi5jdXJyZW50XG4gICAgICA/IGAke2ZhcXNGZXRjaFJlZi5jdXJyZW50LmFnZW50SWR9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQubGFuZ30tJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5lbnRpdHlUeXBlID8/ICdhbGwnfWBcbiAgICAgIDogbnVsbFxuICAgIGlmIChjdXJyZW50S2V5ICE9PSBsYXN0S2V5KSB7XG4gICAgICBmYXFzRmV0Y2hSZWYuY3VycmVudCA9IHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9XG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMoeyBhZ2VudElkOiByZWFsTGlzdHNBZ2VudElkLCBsYW5nLCBlbnRpdHlUeXBlOiByZWFsTGlzdHNFbnRpdHlUeXBlIH0pXG4gICAgfVxuICB9LCBbcmVhbExpc3RzQWdlbnRJZCwgcmVhbExpc3RzRW50aXR5VHlwZSwgc2VjdGlvbiwgbGFuZywgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXSlcblxuICBjb25zdCBmYXFzID0gYWdlbnRGYXFzXG4gIGNvbnN0IGZ1YXMgPSBhZ2VudEZ1YXNcbiAgY29uc3QgZmFxc0FyZUxvYWRpbmcgPSBmYXFzTG9hZGluZ1xuICBjb25zdCBmdWFzQXJlTG9hZGluZyA9IGZ1YXNMb2FkaW5nXG5cbiAgY29uc3Qgc2hvd1JlY2VudENvbnRleHRzQmxvY2sgPSBpc1JlY2VudENvbnRleHRzU3RlcCAmJiAocmVjZW50Q29udGV4dHNMb2FkaW5nIHx8IHJlY2VudENvbnRleHRzLmxlbmd0aCA+IDApXG4gIGNvbnN0IHNob3VsZFNob3dGYXFzID1cbiAgICAoaXNDb250ZXh0SG9tZVN0ZXAgfHwgKCFpc0hlYWRlckhvbWUgJiYgc2VjdGlvbiAhPT0gJ3Rhc2snICYmIGZhcXNBY2Nlc3MpKSAmJlxuICAgICFpc01haWFrZXIgJiZcbiAgICAoZmFxcy5sZW5ndGggPiAwIHx8IGZhcXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93RnVhcyA9ICFpc01haWFrZXIgJiYgKGlzQ29udGV4dEhvbWVTdGVwIHx8ICFpc0hlYWRlckhvbWUpICYmIChmdWFzLmxlbmd0aCA+IDAgfHwgZnVhc0FyZUxvYWRpbmcpXG5cbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCA9IHNob3dQcm9qZWN0U3VtbWFyeSAmJiBhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ZBUXMgPSAhIShcbiAgICBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fFxuICAgIHNob3VsZFNob3dGYXFzIHx8XG4gICAgc2hvdWxkU2hvd0Z1YXMgfHxcbiAgICBzaG93UHJvamVjdFN1bW1hcnlDYXJkIHx8XG4gICAgaXNNYWlha2VyXG4gIClcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRc1xuICBjb25zdCBzaG93RHluYW1pY1NlY3Rpb24gPSBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fCBzaG91bGRTaG93RmFxcyB8fCBzaG91bGRTaG93RnVhcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBhbGVhdG9yaW8gZGVzZGUgYWdlbnQuaW50cm9kdWN0aW9uIChhcnJheSBjb24gMyB2YXJpYW50ZXMgZGVsIGJhY2spLiBFbiB0YXNrLCBtZW5zYWplIGZpam8gaTE4bi4gTWFpYWtlciBzaW4gaW50cm8gZGVsIGFnZW50ZS5cbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNNYWlha2VyKSByZXR1cm4gJydcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gdCgnaG9tZU1lbnUudGFza0dyZWV0aW5nJylcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uLCBpc01haWFrZXIsIHRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGV4dDogUmVjZW50Q29udGV4dEl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRleHRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQuaWQpXG4gICAgICBjb25zdCBjbGllbnRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQucGFyZW50cz8uY2xpZW50X2lkKVxuICAgICAgY29uc3QgcHJvamVjdElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X2lkKVxuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGNvbnRleHQucGFyZW50cz8uY2xpZW50X25hbWUgfHwgJydcbiAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X25hbWUgfHwgJydcblxuICAgICAgc2V0U2VsZWN0ZWRDb250ZXh0KGNvbnRleHQpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG5cbiAgICAgIGlmIChjb250ZXh0LnR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldENsaWVudD8uKHsgaWQ6IGNvbnRleHRJZCwgbmFtZTogY29udGV4dC5uYW1lIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoY29udGV4dC50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgICAgaWQ6IGNvbnRleHRJZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGNvbnRleHRJZCksXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGNvbnRleHQubmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIHNldFRhc2soe1xuICAgICAgICAgIGlkOiBjb250ZXh0LmlkLFxuICAgICAgICAgIG5hbWU6IGNvbnRleHQubmFtZSxcbiAgICAgICAgICAuLi4ocHJvamVjdElkICE9IG51bGwgPyB7IHByb2plY3RJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICBpZiAoY2xpZW50SWQgIT0gbnVsbCkge1xuICAgICAgICAgIHNldENsaWVudD8uKHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2plY3RJZCAhPSBudWxsKSB7XG4gICAgICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgICAgICBpZDogcHJvamVjdElkLFxuICAgICAgICAgICAgbmFtZTogcHJvamVjdE5hbWUgfHwgYCR7dCgnaG9tZU1lbnUucmVjZW50Q29udGV4dHMudHlwZXMucHJvamVjdCcpfSAke3Byb2plY3RJZH1gLFxuICAgICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50OiB7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSB9IH0gOiB7fSksXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcocHJvamVjdElkKSxcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZSB8fCBgJHt0KCdob21lTWVudS5yZWNlbnRDb250ZXh0cy50eXBlcy5wcm9qZWN0Jyl9ICR7cHJvamVjdElkfWAsXG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRDaGlwc1Byb2plY3QsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgdF1cbiAgKVxuXG4gIGNvbnN0IHJlbmRlclJlY2VudENvbnRleHRzID0gKCkgPT4ge1xuICAgIGlmICghaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzPlxuICAgICAgICB7KHJlY2VudENvbnRleHRzTG9hZGluZyB8fCByZWNlbnRDb250ZXh0cy5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzVGl0bGU+e3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnRpdGxlJyl9PC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1RpdGxlPlxuICAgICAgICApfVxuICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0PlxuICAgICAgICAgIHtyZWNlbnRDb250ZXh0c0xvYWRpbmcgJiZcbiAgICAgICAgICAgIFJFQ0VOVF9DT05URVhUX1NLRUxFVE9OX0tFWVMubWFwKGtleSA9PiA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbiBrZXk9e2tleX0gLz4pfVxuICAgICAgICAgIHshcmVjZW50Q29udGV4dHNMb2FkaW5nICYmXG4gICAgICAgICAgICByZWNlbnRDb250ZXh0cy5tYXAoY29udGV4dCA9PiAoXG4gICAgICAgICAgICAgIDxSZWNlbnRDb250ZXh0UGlsbFxuICAgICAgICAgICAgICAgIGtleT17YCR7Y29udGV4dC50eXBlfS0ke2NvbnRleHQuaWR9YH1cbiAgICAgICAgICAgICAgICBjb250ZXh0PXtjb250ZXh0fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtjb250ZXh0Lm5hbWUudHJpbSgpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQoY29udGV4dCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3Q+XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGNoZWNrU2Nyb2xsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyIHx8ICFob21lU2Nyb2xsYWJsZUxheW91dCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzU2Nyb2xsYWJsZSA9IHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodFxuICAgIGNvbnN0IGlzQXRUb3AgPSBzY3JvbGxUb3AgPT09IDBcbiAgICBjb25zdCBpc0F0Qm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDFcblxuICAgIHNldFNob3dUb3BHcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRUb3ApXG4gICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdEJvdHRvbSlcbiAgICBzZXRJc1Njcm9sbGluZyh0cnVlKVxuXG4gICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudClcbiAgICB9XG5cbiAgICBzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNldElzU2Nyb2xsaW5nKGZhbHNlKVxuICAgIH0sIDE1MClcbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaG9tZVNjcm9sbGFibGVMYXlvdXQpIHtcbiAgICAgIHNldFNob3dUb3BHcmFkaWVudChmYWxzZSlcbiAgICAgIHNldFNob3dCb3R0b21HcmFkaWVudChmYWxzZSlcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNoZWNrU2Nyb2xsKClcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGNoZWNrU2Nyb2xsLCAxMDApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZClcbiAgICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dCwgY2hlY2tTY3JvbGxdKVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayAkbm9HYXA9eyFpc0hlYWRlckhvbWUgJiYgIWdyZWV0aW5nfT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICB7aXNIZWFkZXJIb21lID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8U0NDQUlIb21lVGl0bGU+e3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLmdyZWV0aW5nJywgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KX08L1NDQ0FJSG9tZVRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVN1YnRpdGxlPnt0KCdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZScpfTwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgZ3JlZXRpbmcgJiYgPFNDQ0FJSG9tZUdyZWV0aW5nPntncmVldGluZ308L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2s+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lQ29udGFpbmVyIHNob3dGQVFzPXtzaG93RkFRc30+XG4gICAgICB7aG9tZVNjcm9sbGFibGVMYXlvdXQgJiYgPFNDQ0FJSG9tZUdyYWRpZW50VG9wICRzaG93PXtzaG93VG9wR3JhZGllbnR9IC8+fVxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnRcbiAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPXtmbG9hdGluZ0N1c3RvbUNlbnRlcn1cbiAgICAgID5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnRJbm5lclxuICAgICAgICAgIHNob3dGQVFzPXtob21lU2Nyb2xsYWJsZUxheW91dH1cbiAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPXtmbG9hdGluZ0N1c3RvbUNlbnRlcn1cbiAgICAgICAgPlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnlDYXJkICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGVHcmFkaWVudEljb24gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dEeW5hbWljU2VjdGlvbiAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lRHluYW1pY1NlY3Rpb24gJGdyb3c9e2lzTWFpYWtlcn0+XG4gICAgICAgICAgICAgIHtyZW5kZXJSZWNlbnRDb250ZXh0cygpfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd0ZhcXMgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIHNob3dGQVFzPXtzaG93RkFRc31cbiAgICAgICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGZhcXM9e2ZhcXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmYXFzQXJlTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd0Z1YXMgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM9e2Z1YXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmdWFzQXJlTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aXNNYWlha2VyID8gPENoYXRBSUhvbWVNYWlha2VyIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH0gLz4gOiBudWxsfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVEeW5hbWljU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRCb3R0b20gJHNob3c9e3Nob3dCb3R0b21HcmFkaWVudH0gLz59XG4gICAgPC9TQ0NBSUhvbWVDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9B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
485
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lU3VidGl0bGUiLCJTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNUaXRsZSIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0IiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbiIsInVzZUdsb2JhbENvbnRleHQiLCJDT1JVc2VyUm9sZSIsInVzZVVzZXIiLCJ1c2VSZXNpemVMaXN0ZW5lciIsImdldENvbnRleHRNZW50aW9uSWNvbiIsInZhbGlkYXRlSXNNYWlhIiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwidXNlUmVjZW50Q29udGV4dHMiLCJNQUlBSXNvbG9nbyIsIlRlbXBsYXRlR3JhZGllbnRJY29uIiwiQ2hhdEFJSG9tZU1haWFrZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJGcmVxdWVudFF1ZXN0aW9ucyIsIlJFQ0VOVF9DT05URVhUU19MSU1JVCIsIlJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IiLCJSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTIiwiUmVjZW50Q29udGV4dFBpbGwiLCJfcmVmIiwiY29udGV4dCIsImxhYmVsIiwib25DbGljayIsInRleHRSZWYiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJzaG93VG9vbHRpcCIsInR5cGUiLCJjaGlsZHJlbiIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJyZWYiLCJ0aXRsZSIsInBhcnNlTnVtZXJpY0lkIiwidmFsdWUiLCJwYXJzZWQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJyb2xlSWQiLCJDTEVWRUwiLCJESVJFQ1RPUiIsIlBST0pFQ1RfTUFOQUdFUiIsIlNldCIsIkNPTExBQk9SQVRPUiIsIkNoYXRBSUhvbWUiLCJfcmVmMiIsImhhbmRsZXJzIiwib25TdGFydENoYXQiLCJleHBhbmRlZCIsImZsb2F0aW5nIiwiX3VzZVQiLCJ0IiwiaTE4biIsImV2ZW50IiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJzZWN0aW9uIiwiY2xpZW50IiwicHJvamVjdCIsInRhc2siLCJjaGlwc1Byb2plY3QiLCJzZXRDbGllbnQiLCJzZXRQcm9qZWN0Iiwic2V0VGFzayIsInNldENoaXBzUHJvamVjdCIsImlzTUFJQSIsImZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwibGFuZyIsImxhbmd1YWdlIiwic3VtbWFyeVByb2plY3RBY2Nlc3MiLCJ3aW5kb3ciLCJTdHJpbmciLCJNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUyIsInRvTG93ZXJDYXNlIiwibWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzIiwiZmFxc0FjY2VzcyIsInNob3dQcm9qZWN0U3VtbWFyeSIsImlzTWFpYWtlciIsImVudGl0eSIsInRlc3QiLCJuYW1lIiwiaXNIZWFkZXJIb21lIiwiYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyIsInJvbGVfaWQiLCJfdXNlUmVjZW50Q29udGV4dHMiLCJlbmFibGVkIiwibGltaXQiLCJmZXRjaGVkUmVjZW50Q29udGV4dHMiLCJjb250ZXh0cyIsInJlY2VudENvbnRleHRzTG9hZGluZyIsImxvYWRpbmciLCJyZWNlbnRDb250ZXh0cyIsImZpbHRlciIsImhhcyIsImhhc1Bpbm5lZENvbnRleHQiLCJpZCIsInByb2plY3RJZCIsImlzUmVjZW50Q29udGV4dHNTdGVwIiwiaXNDb250ZXh0SG9tZVN0ZXAiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWxlY3RlZENvbnRleHQiLCJzZXRTZWxlY3RlZENvbnRleHQiLCJhY3RpdmVDb250ZXh0IiwicHJvamVjdE5hbWUiLCJwaW5uZWRFbnRpdHlUeXBlIiwicmVhbExpc3RzQWdlbnRJZCIsInJlYWxMaXN0c0VudGl0eVR5cGUiLCJfdXNlRnJlcXVlbnRseVVzZWRBY3QiLCJhZ2VudEZ1YXMiLCJhY3Rpb25zIiwiZnVhc0xvYWRpbmciLCJfdXNlRnJlcXVlbnRseUFza2VkUXUiLCJhZ2VudEZhcXMiLCJmYXFzIiwiZmFxc0xvYWRpbmciLCJoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMiLCJmYXFzRmV0Y2hSZWYiLCJfZmFxc0ZldGNoUmVmJGN1cnJlbnQiLCJjdXJyZW50S2V5IiwiY29uY2F0IiwibGFzdEtleSIsImN1cnJlbnQiLCJhZ2VudElkIiwiZW50aXR5VHlwZSIsImZ1YXMiLCJmYXFzQXJlTG9hZGluZyIsImZ1YXNBcmVMb2FkaW5nIiwic2hvd1JlY2VudENvbnRleHRzQmxvY2siLCJsZW5ndGgiLCJzaG91bGRTaG93RmFxcyIsInNob3VsZFNob3dGdWFzIiwic2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCIsInNob3dGQVFzIiwiaG9tZVNjcm9sbGFibGVMYXlvdXQiLCJzaG93RHluYW1pY1NlY3Rpb24iLCJjb250ZW50Q29udGFpbmVyUmVmIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dCIsIm9yZGVyIiwiX2NvbnRleHQkcGFyZW50cyIsIl9jb250ZXh0JHBhcmVudHMyIiwiX2NvbnRleHQkcGFyZW50czMiLCJfY29udGV4dCRwYXJlbnRzNCIsImFpQ2hhdENvbnRleHRTZWxlY3RlZCIsImNvbnRleHRJZCIsImNsaWVudElkIiwicGFyZW50cyIsImNsaWVudF9pZCIsInByb2plY3RfaWQiLCJjbGllbnROYW1lIiwiY2xpZW50X25hbWUiLCJwcm9qZWN0X25hbWUiLCJfb2JqZWN0U3ByZWFkIiwicmVuZGVyUmVjZW50Q29udGV4dHMiLCJtYXAiLCJrZXkiLCJpbmRleCIsInRyaW0iLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImlzU2Nyb2xsYWJsZSIsImlzQXRUb3AiLCJpc0F0Qm90dG9tIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0aW1lb3V0SWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVySGVhZGVyQ29udGVudCIsIl9hZ2VudCRjcmVhdGVkX2J5IiwiX2FnZW50JGNyZWF0ZWRfYnkyIiwiZW1vamkiLCJjcmVhdGVkX2J5IiwiaXNfZGVsZXRlZCIsIiRub0dhcCIsImZpcnN0TmFtZSIsIiRzaG93IiwiJGlzQWdlbnRWaWV3IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGdhcCIsIiRtYXhXaWR0aCIsInByb2plY3RTdW1tYXJ5IiwiJGdyb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJSG9tZS9DaGF0QUlIb21lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IExpc3RDaGVja2xpc3QgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9MaXN0Q2hlY2tsaXN0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVJY29uQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVMb2dvV3JhcHBlcixcbiAgU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrLFxuICBTQ0NBSUhvbWVUaXRsZSxcbiAgU0NDQUlIb21lU3VidGl0bGUsXG4gIFNDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNUaXRsZSxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0LFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBDT1JVc2VyUm9sZSwgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgdXNlUmVjZW50Q29udGV4dHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWNlbnRDb250ZXh0cydcbmltcG9ydCB0eXBlIHsgUmVjZW50Q29udGV4dEl0ZW0sIFJlY2VudENvbnRleHRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9SZWNlbnRDb250ZXh0cydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvTUFJQUlzb2xvZ28nXG5pbXBvcnQgeyBUZW1wbGF0ZUdyYWRpZW50SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1RlbXBsYXRlR3JhZGllbnRJY29uJ1xuaW1wb3J0IHsgQ2hhdEFJSG9tZU1haWFrZXIgfSBmcm9tICcuL0NoYXRBSUhvbWVNYWlha2VyJ1xuXG50eXBlIENoYXRBSUhvbWVQcm9wcyA9IHtcbiAgb25TdGFydENoYXQ6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBtZW50aW9ucz86IG51bGwsXG4gICAgZnVhSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiBSZWNvcmQ8b3B0aW9ucywgKCkgPT4gdm9pZD5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG4gIGZsb2F0aW5nPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBGcmVxdWVudFF1ZXN0aW9ucyB7XG4gIHJlbnRhYmlsaWRhZF9wcm95ZWN0byA9ICdyZW50YWJpbGlkYWRfcHJveWVjdG8nLFxuICBhdmFuY2VfcHJveWVjdG8gPSAnYXZhbmNlX3Byb3llY3RvJyxcbn1cblxuY29uc3QgUkVDRU5UX0NPTlRFWFRTX0xJTUlUID0gOVxuY29uc3QgUkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUiA9ICcjNEQ0RDREJ1xuY29uc3QgUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUyA9IFtcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTEnLFxuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMicsXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0zJyxcbl1cblxuY29uc3QgUmVjZW50Q29udGV4dFBpbGwgPSAoe1xuICBjb250ZXh0LFxuICBsYWJlbCxcbiAgb25DbGljayxcbn06IHtcbiAgY29udGV4dDogUmVjZW50Q29udGV4dEl0ZW1cbiAgbGFiZWw6IHN0cmluZ1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbbGFiZWxdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24+XG4gICAgICAgIHtjb250ZXh0LnR5cGUgPT09ICd0YXNrJyA/IChcbiAgICAgICAgICA8TGlzdENoZWNrbGlzdCBjb2xvcj17UkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUn0gd2lkdGg9XCIxNHB4XCIgaGVpZ2h0PVwiMTRweFwiIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKGNvbnRleHQudHlwZSwgUkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUiwgdW5kZWZpbmVkLCAxNClcbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCByZWY9e3RleHRSZWZ9PlxuICAgICAgICB7c2hvd1Rvb2x0aXAgPyAoXG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2xhYmVsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGxhYmVsXG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dD5cbiAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsPlxuICApXG59XG5cbmNvbnN0IHBhcnNlTnVtZXJpY0lkID0gKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IG51bWJlciB8IG51bGwgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBudWxsXG4gIGNvbnN0IHBhcnNlZCA9IE51bWJlcih2YWx1ZSlcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbFxufVxuXG5jb25zdCBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzID0gKHJvbGVJZD86IENPUlVzZXJSb2xlKTogU2V0PFJlY2VudENvbnRleHRUeXBlPiA9PiB7XG4gIGlmIChyb2xlSWQgPT09IENPUlVzZXJSb2xlLkNMRVZFTCB8fCByb2xlSWQgPT09IENPUlVzZXJSb2xlLkRJUkVDVE9SIHx8IHJvbGVJZCA9PT0gQ09SVXNlclJvbGUuUFJPSkVDVF9NQU5BR0VSKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ10pXG4gIH1cbiAgaWYgKHJvbGVJZCA9PT0gQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoWyd0YXNrJ10pXG4gIH1cbiAgcmV0dXJuIG5ldyBTZXQoKVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJSG9tZSA9ICh7IGhhbmRsZXJzLCBvblN0YXJ0Q2hhdCwgZXhwYW5kZWQsIGZsb2F0aW5nIH06IENoYXRBSUhvbWVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uLCBjbGllbnQsIHByb2plY3QsIHRhc2ssIGNoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QgfSA9XG4gICAgdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGZsb2F0aW5nQ3VzdG9tQ2VudGVyID0gISEoZmxvYXRpbmcgJiYgYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICAvLyBFbCBvcmNoZXN0cmF0b3IgKHR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSBtdWVzdHJhIEZBUXMvRlVBcyBhZ3JlZ2FkYXMgZGUgc3VzIHN1YmFnZW50ZXMsXG4gIC8vIGFzw60gcXVlIE5PIHNlIHRyYXRhIGNvbW8gbWFpYWtlciBhY8OhLiBNYWlha2VyID0gY2xvbmUgZ2xvYmFsIGxlZ2FjeSBjb24gbm9tYnJlIG1haWFrZXIvbWFya2V0cGxhY2UuXG4gIGNvbnN0IGlzTWFpYWtlciA9XG4gICAgYWdlbnQ/LnR5cGUgIT09ICdvcmNoZXN0cmF0b3InICYmIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuICBjb25zdCBpc0hlYWRlckhvbWUgPSBpc01BSUEgJiYgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIGNvbnN0IGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMgPSB1c2VNZW1vKCgpID0+IGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXModXNlci5yb2xlX2lkKSwgW3VzZXIucm9sZV9pZF0pXG4gIGNvbnN0IHsgY29udGV4dHM6IGZldGNoZWRSZWNlbnRDb250ZXh0cywgbG9hZGluZzogcmVjZW50Q29udGV4dHNMb2FkaW5nIH0gPSB1c2VSZWNlbnRDb250ZXh0cyh7XG4gICAgZW5hYmxlZDogaXNIZWFkZXJIb21lLFxuICAgIGxpbWl0OiBSRUNFTlRfQ09OVEVYVFNfTElNSVQsXG4gIH0pXG4gIGNvbnN0IHJlY2VudENvbnRleHRzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBmZXRjaGVkUmVjZW50Q29udGV4dHMuZmlsdGVyKGNvbnRleHQgPT4gYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcy5oYXMoY29udGV4dC50eXBlKSksXG4gICAgW2ZldGNoZWRSZWNlbnRDb250ZXh0cywgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlc11cbiAgKVxuXG4gIC8vIEhvbWUgZGVsIG9yY2hlc3RyYXRvciBlbiAyIHBhc29zOlxuICAvLyAgLSBQYXNvIDEgKHNpbiBjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gc29sbyBsb3MgY29udGV4dG9zIHJlY2llbnRlcy5cbiAgLy8gIC0gUGFzbyAyIChjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gbGFzIEZBUXMvYWNjaW9uZXMgcXVlIHJlZmVyZW5jaWFuIGVzZSBjb250ZXh0by5cbiAgLy8gVm9sdmVyIGFsIHBhc28gMSA9IHF1aXRhciBlbCBjaGlwIChsaW1waWEgZWwgY29udGV4dG8gZ2xvYmFsKS5cbiAgY29uc3QgaGFzUGlubmVkQ29udGV4dCA9ICEhKHRhc2s/LmlkIHx8IGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IGNsaWVudD8uaWQgfHwgcHJvamVjdD8uaWQpXG4gIGNvbnN0IGlzUmVjZW50Q29udGV4dHNTdGVwID0gaXNIZWFkZXJIb21lICYmICFoYXNQaW5uZWRDb250ZXh0XG4gIGNvbnN0IGlzQ29udGV4dEhvbWVTdGVwID0gaXNIZWFkZXJIb21lICYmIGhhc1Bpbm5lZENvbnRleHRcblxuICAvLyBDb250ZXh0byBhY3Rpdm8gcGFyYSBkZXJpdmFyIEZBUXMvYWNjaW9uZXMgKHBhc28gMikuIFByZWZlcmltb3MgZWwgcGlsbCBjbGlja2VhZG87XG4gIC8vIHNpIG5vLCBsbyByZWNvbnN0cnVpbW9zIGRlc2RlIGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgY29uc3QgW3NlbGVjdGVkQ29udGV4dCwgc2V0U2VsZWN0ZWRDb250ZXh0XSA9IHVzZVN0YXRlPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhhc1Bpbm5lZENvbnRleHQpIHNldFNlbGVjdGVkQ29udGV4dChudWxsKVxuICB9LCBbaGFzUGlubmVkQ29udGV4dF0pXG5cbiAgY29uc3QgYWN0aXZlQ29udGV4dCA9IHVzZU1lbW88UmVjZW50Q29udGV4dEl0ZW0gfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkQ29udGV4dCkgcmV0dXJuIHNlbGVjdGVkQ29udGV4dFxuICAgIGlmICghaXNDb250ZXh0SG9tZVN0ZXApIHJldHVybiBudWxsXG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4geyB0eXBlOiAndGFzaycsIGlkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUgfVxuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCkgcmV0dXJuIHsgdHlwZTogJ3Byb2plY3QnLCBpZDogY2hpcHNQcm9qZWN0LnByb2plY3RJZCwgbmFtZTogY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lIH1cbiAgICBpZiAoY2xpZW50Py5pZCkgcmV0dXJuIHsgdHlwZTogJ2NsaWVudCcsIGlkOiBjbGllbnQuaWQsIG5hbWU6IGNsaWVudC5uYW1lIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgc2VsZWN0ZWRDb250ZXh0LFxuICAgIGlzQ29udGV4dEhvbWVTdGVwLFxuICAgIHRhc2s/LmlkLFxuICAgIHRhc2s/Lm5hbWUsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICAvLyBlbnRpdHlfdHlwZSBkZWwgY29udGV4dG8gcGluZWFkbyAocHJvamVjdC9jbGllbnQvdGFzayksIHRvbWFkbyBkZWwgY29udGV4dG8gZ2xvYmFsLlxuICAvLyBBcGxpY2EgdGFudG8gYWwgYWJyaXIgTUFJQSBkZXNkZSB1bmEgc2VjY2nDs24gZXNwZWPDrWZpY2EgY29tbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gIGNvbnN0IHBpbm5lZEVudGl0eVR5cGUgPSB1c2VNZW1vPFJlY2VudENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4gJ3Rhc2snXG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IHByb2plY3Q/LmlkKSByZXR1cm4gJ3Byb2plY3QnXG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiAnY2xpZW50J1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW3Rhc2s/LmlkLCBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCwgcHJvamVjdD8uaWQsIGNsaWVudD8uaWRdKVxuXG4gIC8vIEZBUXMvYWNjaW9uZXM6XG4gIC8vICAtIGhlYWRlci1ob21lIChvcmNoZXN0cmF0b3IpLCBwYXNvIDI6IGZpbHRyYWRhcyBwb3IgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2VsZWNjaW9uYWRvLlxuICAvLyAgLSBob21lcyBkZSBwcm95ZWN0by9jbGllbnRlL3RhcmVhIChzZWNjacOzbik6IGZpbHRyYWRhcyBwb3IgZWwgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2V0ZWFkby5cbiAgY29uc3QgcmVhbExpc3RzQWdlbnRJZCA9ICgoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgaXNNYWlha2VyKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKGlzSGVhZGVySG9tZSkgcmV0dXJuIGlzQ29udGV4dEhvbWVTdGVwID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkXG4gICAgcmV0dXJuIGFnZW50Py5pZFxuICB9KSgpXG4gIGNvbnN0IHJlYWxMaXN0c0VudGl0eVR5cGUgPSAoKCkgPT4ge1xuICAgIGlmICghaXNIZWFkZXJIb21lKSByZXR1cm4gcGlubmVkRW50aXR5VHlwZVxuICAgIHJldHVybiBpc0NvbnRleHRIb21lU3RlcCA/IGFjdGl2ZUNvbnRleHQ/LnR5cGUgOiB1bmRlZmluZWRcbiAgfSkoKVxuICBjb25zdCB7IGFjdGlvbnM6IGFnZW50RnVhcywgbG9hZGluZzogZnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICByZWFsTGlzdHNBZ2VudElkLFxuICAgIHNlY3Rpb24sXG4gICAgcmVhbExpc3RzRW50aXR5VHlwZVxuICApXG4gIGNvbnN0IHtcbiAgICBmYXFzOiBhZ2VudEZhcXMsXG4gICAgbG9hZGluZzogZmFxc0xvYWRpbmcsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zLFxuICB9ID0gdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIHJlYWxMaXN0c0VudGl0eVR5cGUpXG4gIGNvbnN0IGZhcXNGZXRjaFJlZiA9IHVzZVJlZjx7IGFnZW50SWQ6IHN0cmluZzsgbGFuZzogc3RyaW5nOyBlbnRpdHlUeXBlPzogc3RyaW5nIH0gfCBudWxsPihudWxsKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmVhbExpc3RzQWdlbnRJZCB8fCBzZWN0aW9uID09PSAndGFzaycpIHJldHVyblxuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBgJHtyZWFsTGlzdHNBZ2VudElkfS0ke2xhbmd9LSR7cmVhbExpc3RzRW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgY29uc3QgbGFzdEtleSA9IGZhcXNGZXRjaFJlZi5jdXJyZW50XG4gICAgICA/IGAke2ZhcXNGZXRjaFJlZi5jdXJyZW50LmFnZW50SWR9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQubGFuZ30tJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5lbnRpdHlUeXBlID8/ICdhbGwnfWBcbiAgICAgIDogbnVsbFxuICAgIGlmIChjdXJyZW50S2V5ICE9PSBsYXN0S2V5KSB7XG4gICAgICBmYXFzRmV0Y2hSZWYuY3VycmVudCA9IHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9XG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMoeyBhZ2VudElkOiByZWFsTGlzdHNBZ2VudElkLCBsYW5nLCBlbnRpdHlUeXBlOiByZWFsTGlzdHNFbnRpdHlUeXBlIH0pXG4gICAgfVxuICB9LCBbcmVhbExpc3RzQWdlbnRJZCwgcmVhbExpc3RzRW50aXR5VHlwZSwgc2VjdGlvbiwgbGFuZywgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXSlcblxuICBjb25zdCBmYXFzID0gYWdlbnRGYXFzXG4gIGNvbnN0IGZ1YXMgPSBhZ2VudEZ1YXNcbiAgY29uc3QgZmFxc0FyZUxvYWRpbmcgPSBmYXFzTG9hZGluZ1xuICBjb25zdCBmdWFzQXJlTG9hZGluZyA9IGZ1YXNMb2FkaW5nXG5cbiAgY29uc3Qgc2hvd1JlY2VudENvbnRleHRzQmxvY2sgPSBpc1JlY2VudENvbnRleHRzU3RlcCAmJiAocmVjZW50Q29udGV4dHNMb2FkaW5nIHx8IHJlY2VudENvbnRleHRzLmxlbmd0aCA+IDApXG4gIGNvbnN0IHNob3VsZFNob3dGYXFzID1cbiAgICAoaXNDb250ZXh0SG9tZVN0ZXAgfHwgKCFpc0hlYWRlckhvbWUgJiYgc2VjdGlvbiAhPT0gJ3Rhc2snICYmIGZhcXNBY2Nlc3MpKSAmJlxuICAgICFpc01haWFrZXIgJiZcbiAgICAoZmFxcy5sZW5ndGggPiAwIHx8IGZhcXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93RnVhcyA9ICFpc01haWFrZXIgJiYgKGlzQ29udGV4dEhvbWVTdGVwIHx8ICFpc0hlYWRlckhvbWUpICYmIChmdWFzLmxlbmd0aCA+IDAgfHwgZnVhc0FyZUxvYWRpbmcpXG5cbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCA9IHNob3dQcm9qZWN0U3VtbWFyeSAmJiBhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ZBUXMgPSAhIShcbiAgICBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fFxuICAgIHNob3VsZFNob3dGYXFzIHx8XG4gICAgc2hvdWxkU2hvd0Z1YXMgfHxcbiAgICBzaG93UHJvamVjdFN1bW1hcnlDYXJkIHx8XG4gICAgaXNNYWlha2VyXG4gIClcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRc1xuICBjb25zdCBzaG93RHluYW1pY1NlY3Rpb24gPSBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fCBzaG91bGRTaG93RmFxcyB8fCBzaG91bGRTaG93RnVhcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBhbGVhdG9yaW8gZGVzZGUgYWdlbnQuaW50cm9kdWN0aW9uIChhcnJheSBjb24gMyB2YXJpYW50ZXMgZGVsIGJhY2spLiBFbiB0YXNrLCBtZW5zYWplIGZpam8gaTE4bi4gTWFpYWtlciBzaW4gaW50cm8gZGVsIGFnZW50ZS5cbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNNYWlha2VyKSByZXR1cm4gJydcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gdCgnaG9tZU1lbnUudGFza0dyZWV0aW5nJylcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uLCBpc01haWFrZXIsIHRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGV4dDogUmVjZW50Q29udGV4dEl0ZW0sIG9yZGVyOiBudW1iZXIpID0+IHtcbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRDb250ZXh0U2VsZWN0ZWQsIHsgb3JkZXIsIHR5cGU6IGNvbnRleHQudHlwZSB9KVxuXG4gICAgICBjb25zdCBjb250ZXh0SWQgPSBwYXJzZU51bWVyaWNJZChjb250ZXh0LmlkKVxuICAgICAgY29uc3QgY2xpZW50SWQgPSBwYXJzZU51bWVyaWNJZChjb250ZXh0LnBhcmVudHM/LmNsaWVudF9pZClcbiAgICAgIGNvbnN0IHByb2plY3RJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQucGFyZW50cz8ucHJvamVjdF9pZClcbiAgICAgIGNvbnN0IGNsaWVudE5hbWUgPSBjb250ZXh0LnBhcmVudHM/LmNsaWVudF9uYW1lIHx8ICcnXG4gICAgICBjb25zdCBwcm9qZWN0TmFtZSA9IGNvbnRleHQucGFyZW50cz8ucHJvamVjdF9uYW1lIHx8ICcnXG5cbiAgICAgIHNldFNlbGVjdGVkQ29udGV4dChjb250ZXh0KVxuICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuXG4gICAgICBpZiAoY29udGV4dC50eXBlID09PSAnY2xpZW50Jykge1xuICAgICAgICBpZiAoY29udGV4dElkID09IG51bGwpIHJldHVyblxuICAgICAgICBzZXRDbGllbnQ/Lih7IGlkOiBjb250ZXh0SWQsIG5hbWU6IGNvbnRleHQubmFtZSB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgIGlkOiBjb250ZXh0SWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhjb250ZXh0SWQpLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChjb250ZXh0LnR5cGUgPT09ICd0YXNrJykge1xuICAgICAgICBzZXRUYXNrKHtcbiAgICAgICAgICBpZDogY29udGV4dC5pZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKHByb2plY3RJZCAhPSBudWxsID8geyBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGNsaWVudElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRDbGllbnQ/Lih7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgICAgaWQ6IHByb2plY3RJZCxcbiAgICAgICAgICAgIG5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZCksXG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUgfHwgYCR7dCgnaG9tZU1lbnUucmVjZW50Q29udGV4dHMudHlwZXMucHJvamVjdCcpfSAke3Byb2plY3RJZH1gLFxuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbZXZlbnQsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCB0XVxuICApXG5cbiAgY29uc3QgcmVuZGVyUmVjZW50Q29udGV4dHMgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHM+XG4gICAgICAgIHsocmVjZW50Q29udGV4dHNMb2FkaW5nIHx8IHJlY2VudENvbnRleHRzLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNUaXRsZT57dCgnaG9tZU1lbnUucmVjZW50Q29udGV4dHMudGl0bGUnKX08L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzVGl0bGU+XG4gICAgICAgICl9XG4gICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3Q+XG4gICAgICAgICAge3JlY2VudENvbnRleHRzTG9hZGluZyAmJlxuICAgICAgICAgICAgUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUy5tYXAoa2V5ID0+IDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIGtleT17a2V5fSAvPil9XG4gICAgICAgICAgeyFyZWNlbnRDb250ZXh0c0xvYWRpbmcgJiZcbiAgICAgICAgICAgIHJlY2VudENvbnRleHRzLm1hcCgoY29udGV4dCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPFJlY2VudENvbnRleHRQaWxsXG4gICAgICAgICAgICAgICAga2V5PXtgJHtjb250ZXh0LnR5cGV9LSR7Y29udGV4dC5pZH1gfVxuICAgICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2NvbnRleHQubmFtZS50cmltKCl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dChjb250ZXh0LCBpbmRleCArIDEpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0PlxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0cz5cbiAgICApXG4gIH1cblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaG9tZVNjcm9sbGFibGVMYXlvdXQpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXQsIGNoZWNrU2Nyb2xsXSlcblxuICBjb25zdCByZW5kZXJIZWFkZXJDb250ZW50ID0gKCkgPT4ge1xuICAgIGlmICghaXNNQUlBKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAgICB7YWdlbnQ/LmVtb2ppfSB7YWdlbnQ/Lm5hbWV9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAge2FnZW50Py5jcmVhdGVkX2J5ICYmICFpc01BSUEgJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgICAgICBhZ2VudD8uY3JlYXRlZF9ieT8uaXNfZGVsZXRlZCA/IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkJykgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jcmVhdGVkQnknKX17JyAnfVxuICAgICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPnthZ2VudD8uY3JlYXRlZF9ieT8ubmFtZX08L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPlxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2sgJG5vR2FwPXshaXNIZWFkZXJIb21lICYmICFncmVldGluZ30+XG4gICAgICAgIDxTQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgICAgIDxNQUlBSXNvbG9nbyAvPlxuICAgICAgICAgIDwvU0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgIDwvU0NDQUlIb21lSWNvbkNvbnRhaW5lcj5cbiAgICAgICAge2lzSGVhZGVySG9tZSA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlPnt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ncmVldGluZycsIHsgbmFtZTogdXNlci5maXJzdE5hbWUgfSl9PC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZT57dCgnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGUnKX08L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGdyZWV0aW5nICYmIDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudFRvcCAkc2hvdz17c2hvd1RvcEdyYWRpZW50fSAvPn1cbiAgICAgIDxTQ0NBSUhvbWVDb250ZW50XG4gICAgICAgIHJlZj17Y29udGVudENvbnRhaW5lclJlZn1cbiAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICA+XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXJcbiAgICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICAgID5cbiAgICAgICAgICA8U0NDQUlIb21lSGVhZGVyXG4gICAgICAgICAgICAkZ2FwPXtpc01BSUEgJiYgc2VjdGlvbiAhPT0gJ3Byb2plY3QnID8gJzhweCcgOiAnMjBweCd9XG4gICAgICAgICAgICAkbWF4V2lkdGg9e2lzTUFJQSA/ICcxMDAlJyA6ICczODBweCd9XG4gICAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlckhlYWRlckNvbnRlbnQoKX1cblxuICAgICAgICAgICAge3NlY3Rpb24gIT09ICdwcm9qZWN0JyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24gZXhwYW5kZWQ9e2V4cGFuZGVkfT57IWlzTUFJQSAmJiBhZ2VudD8uaW50cm9kdWN0aW9ufTwvU0NDQUlIb21lSW50cm9kdWN0aW9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUhlYWRlcj5cbiAgICAgICAgICB7c2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCAmJiAoXG4gICAgICAgICAgICA8U0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Qgb25DbGljaz17aGFuZGxlcnMucHJvamVjdFN1bW1hcnl9PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgICAgPFRlbXBsYXRlR3JhZGllbnRJY29uIGhlaWdodD17MjR9IHdpZHRoPXsyNH0gLz5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT57dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkudGl0bGUnKX08L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkuZGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgPC9TQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtzaG93RHluYW1pY1NlY3Rpb24gJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uICRncm93PXtpc01haWFrZXJ9PlxuICAgICAgICAgICAgICB7cmVuZGVyUmVjZW50Q29udGV4dHMoKX1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dGYXFzICYmIChcbiAgICAgICAgICAgICAgICA8RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXG4gICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgICAgICAgICBzaG93UHJvamVjdFN1bW1hcnk9e3Nob3dQcm9qZWN0U3VtbWFyeX1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICBmYXFzPXtmYXFzfVxuICAgICAgICAgICAgICAgICAgbG9hZGluZz17ZmFxc0FyZUxvYWRpbmd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dGdWFzICYmIChcbiAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zPXtmdWFzfVxuICAgICAgICAgICAgICAgICAgbG9hZGluZz17ZnVhc0FyZUxvYWRpbmd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2lzTWFpYWtlciA/IDxDaGF0QUlIb21lTWFpYWtlciBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9IC8+IDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lRHluYW1pY1NlY3Rpb24+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVDb250ZW50SW5uZXI+XG4gICAgICA8L1NDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICB7aG9tZVNjcm9sbGFibGVMYXlvdXQgJiYgPFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tICRzaG93PXtzaG93Qm90dG9tR3JhZGllbnR9IC8+fVxuICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXpFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsYUFBYSxRQUFRLGdEQUFnRDtBQUM5RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUkxRCxTQUNFQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMscUJBQXFCLEVBQ3JCQyxvQkFBb0IsRUFDcEJDLHVCQUF1QixFQUN2QkMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLDJCQUEyQixFQUMzQkMsa0JBQWtCLEVBQ2xCQyx1QkFBdUIsRUFDdkJDLDhCQUE4QixFQUM5QkMsNEJBQTRCLEVBQzVCQyxrQ0FBa0MsRUFDbENDLDBCQUEwQixFQUMxQkMscUJBQXFCLEVBQ3JCQywyQkFBMkIsRUFDM0JDLHNCQUFzQixFQUN0QkMsMEJBQTBCLEVBQzFCQyxzQkFBc0IsRUFDdEJDLG9CQUFvQixFQUNwQkMsd0JBQXdCLEVBQ3hCQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsdUJBQXVCLEVBQ3ZCQyx1QkFBdUIsRUFDdkJDLDRCQUE0QixFQUM1QkMsMkJBQTJCLEVBQzNCQywwQkFBMEIsRUFDMUJDLDhCQUE4QixFQUM5QkMsOEJBQThCLEVBQzlCQyxrQ0FBa0MsUUFDN0IsVUFBVTtBQUNqQixTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsV0FBVyxFQUFF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
@@ -44,6 +44,15 @@ import { EVENTS, useEvent } from '../../../hooks/useEvent';
44
44
  /** Metadata de la session abierta (emitida por useChatMessages al cargar una conversación). */
45
45
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
46
46
  var LEGACY_CONTEXT_ENTITIES = ['project', 'task', 'client'];
47
+ var resolveAiChatBackDestination = function resolveAiChatBackDestination(section, agentType, currentOption, homeOption) {
48
+ if (section === 'header' && agentType === 'orchestrator' && currentOption === homeOption) {
49
+ return 'global_context_home';
50
+ }
51
+ if (section === 'task') return 'task_home';
52
+ if (section === 'project') return 'project_home';
53
+ if (section === 'client') return 'client_home';
54
+ return 'global_context_home';
55
+ };
47
56
  export var ID_MODAL_CHAT_AGENT = 'modals-portal-maia-chat-agent';
48
57
  var validateAccessByFeature = function validateAccessByFeature(section) {
49
58
  if (section === 'header' && (window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS || window.MAIA_CHAT_AI_FEATURE_ACCESS)) {
@@ -449,6 +458,11 @@ export var ChatAIModal = function ChatAIModal(_ref) {
449
458
  // - Con conversación iniciada: inicia una nueva conversación y vuelve al home (todas las secciones).
450
459
  // - En el home (FAQs/FUA): vuelve al selector de proyectos/clientes limpiando la entity seleccionada.
451
460
  var handleBack = useCallback(function () {
461
+ var to = resolveAiChatBackDestination(section, agent === null || agent === void 0 ? void 0 : agent.type, computedCurrentOption, options.home);
462
+ amplitudEvent(EVENTS.aiChatBack, {
463
+ to: to
464
+ });
465
+
452
466
  // Orchestrator en el home del header (paso 2): limpiar el contexto del chip y volver
453
467
  // a la lista de contextos recientes (paso 1), sin salir del home.
454
468
  if (section === 'header' && (agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator' && computedCurrentOption === options.home) {
@@ -469,7 +483,7 @@ export var ChatAIModal = function ChatAIModal(_ref) {
469
483
  setTask === null || setTask === void 0 || setTask(null);
470
484
  setChipsProject(null);
471
485
  }
472
- }, [computedCurrentOption, section, agent === null || agent === void 0 ? void 0 : agent.type, handleResetChat, setProject, setClient, setTask, setChipsProject]);
486
+ }, [computedCurrentOption, section, agent === null || agent === void 0 ? void 0 : agent.type, amplitudEvent, options.home, handleResetChat, setProject, setClient, setTask, setChipsProject]);
473
487
  useEffect(function () {
474
488
  if (!agentsFetchedRef.current) {
475
489
  agentsFetchedRef.current = true;
@@ -867,4 +881,4 @@ export var ChatAIModal = function ChatAIModal(_ref) {
867
881
  }), /*#__PURE__*/_jsx(Snackbar, {})]
868
882
  }), selector);
869
883
  };
870
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsIkNoYXRBSUNvbnRlbnQiLCJidWlsZEhhbmRsZXJzIiwib3B0aW9ucyIsIlNpZGViYXIiLCJ1c2VHZXRBZ2VudHMiLCJ1c2VHbG9iYWxDb250ZXh0IiwiQ2hhdEFJTW9kYWxIZWFkZXIiLCJTbmFja2JhciIsIlByb2plY3RTdW1tYXJ5Q29udGVudCIsIkFibUFnZW50TW9kYWwiLCJTRUNUSU9OUyIsIlNDQ0FJTUNvbnRlbnQiLCJTQ0NBSU1Db250ZW50V3JhcHBlciIsIlNDQ0FJTVdyYXBwZXIiLCJnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgiLCJGbG9hdGluZ1BhbmVsTW90aW9uIiwidXNlRmxvYXRpbmdQYW5lbERyYWdUaWx0IiwiQ2hhdEFpTW9kYWxGb290ZXIiLCJ2YWxpZGF0ZUlzTWFpYSIsInVzZUZhcXNTdG9yZSIsImZldGNoTWFpYSIsIm1hcENPUkxhbmciLCJFVkVOVFMiLCJ1c2VFdmVudCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkxFR0FDWV9DT05URVhUX0VOVElUSUVTIiwiSURfTU9EQUxfQ0hBVF9BR0VOVCIsInZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlIiwic2VjdGlvbiIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJDaGF0QUlNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsIl9hZ2VudHMkZGF0YSIsImhhbmRsZUNsb3NlIiwidXNlciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwiaTE4biIsImFtcGxpdHVkRXZlbnQiLCJoYW5kbGVDbG9zZU1vZGFsIiwiZ2V0U3RhdGUiLCJjbGVhckZhcXMiLCJfdXNlU3RhdGUiLCJtZXNzYWdlIiwiYXR0YWNobWVudHMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJzZXRVc2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImluaXRpYWxDaGF0SWQiLCJzZXRJbml0aWFsQ2hhdElkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJuZXdDaGF0S2V5Iiwic2V0TmV3Q2hhdEtleSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2Vzc2lvbk1ldGEiLCJzZXRTZXNzaW9uTWV0YSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2VuZE1lc3NhZ2VGdW5jdGlvbiIsInNldFNlbmRNZXNzYWdlRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uIiwic2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNyIsImhvbWUiLCJfdXNlU3RhdGUxOCIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTkiLCJfdXNlU3RhdGUyMCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsImxhbmciLCJsYW5ndWFnZSIsImxvY2FsZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJhZ2VudCIsInByb2plY3QiLCJjbGllbnQiLCJ0YXNrIiwiY2hpcHNQcm9qZWN0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRDbGllbnQiLCJzZXRQcm9qZWN0IiwiYmFubmVyRW50cnlGYXEiLCJzZXRUYXNrIiwidG9vbHRpcFpJbmRleCIsIl91c2VHZXRBZ2VudHMiLCJoYW5kbGVHb0hvbWUiLCJhZ2VudHMiLCJsb2FkaW5nIiwibG9hZGluZ01vcmUiLCJhZ2VudEVycm9yIiwiZXJyb3IiLCJoYW5kbGVHZXRBZ2VudHMiLCJsb2FkTW9yZUFnZW50cyIsImFkZEFnZW50IiwicmVtb3ZlQWdlbnQiLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZUFnZW50RmF2b3JpdGUiLCJzZWxlY3RGaXJzdEFnZW50Iiwic29ydEFnZW50c0xpc3QiLCJpc01BSUEiLCJ1c2VySGFzUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsImVkaXQiLCJjb21wdXRlZEN1cnJlbnRPcHRpb24iLCJpc0dsb2JhbFNwZWNpYWxpc3QiLCJlbnRpdHkiLCJpc1Byb2plY3RTcGVjaWFsaXN0IiwiaXNDbGllbnRTcGVjaWFsaXN0IiwiaXNNYWlha2VyIiwidGVzdCIsIm5hbWUiLCJteUFnZW50cyIsInR5cGUiLCJjaGF0Iiwic2hvdWxkU2hvd1Byb2plY3RTZWxlY3RvciIsInNob3VsZFNob3dDbGllbnRTZWxlY3RvciIsInByb2plY3RTZWxlY3RvciIsImNsaWVudFNlbGVjdG9yIiwiaXNNYWlha2VyQWdlbnRTZWxlY3RlZCIsInNpZGViYXJBZ2VudHNOYXZBY3RpdmUiLCJhZ2VudHNGZXRjaGVkUmVmIiwic2VsZWN0b3IiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjb25jYXQiLCJfdXNlU3RhdGUyMyIsIl9iYW5uZXJFbnRyeUZhcSRmYXFUaSIsImZhcVRpdGxlIiwidHJpbSIsIl91c2VTdGF0ZTI0IiwibGF5b3V0TW9kZSIsInNldExheW91dE1vZGUiLCJleHBhbmRlZCIsImlzRmxvYXRpbmciLCJjb250ZW50V3JhcHBlclJlZiIsIl91c2VTdGF0ZTI1IiwiX3VzZVN0YXRlMjYiLCJkcmFnUG9zaXRpb24iLCJzZXREcmFnUG9zaXRpb24iLCJfdXNlRmxvYXRpbmdQYW5lbERyYWciLCJ0aWx0TW90aW9uIiwic3RhcnRQb2ludGVyVHJhY2tpbmciLCJzYW1wbGVQb2ludGVyTW92ZSIsImVuZFBvaW50ZXJUcmFja2luZyIsImRyYWdTdGF0ZVJlZiIsImNsYW1wRHJhZ1Bvc2l0aW9uIiwieCIsInkiLCJjb250ZW50V3JhcHBlciIsImN1cnJlbnQiLCJfY29udGVudFdyYXBwZXIkZ2V0Qm8iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImhlaWdodCIsIm9mZnNldCIsIm1heFgiLCJNYXRoIiwibWF4IiwiaW5uZXJXaWR0aCIsIm1heFkiLCJpbm5lckhlaWdodCIsIm1pbiIsInByZXYiLCJwYWQiLCJoYW5kbGVEcmFnRW5kIiwiZXZlbnQiLCJfZHJhZ1N0YXRlUmVmJGN1cnJlbnQiLCJwb2ludGVySWQiLCJib2R5Iiwic3R5bGUiLCJ1c2VyU2VsZWN0IiwiY3Vyc29yIiwiaGFuZGxlRHJhZ01vdmUiLCJkcmFnU3RhdGUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm5leHRQb3NpdGlvbiIsIm9mZnNldFgiLCJvZmZzZXRZIiwicmVzb2x2ZWREcmFnUG9zaXRpb24iLCJoYW5kbGVEcmFnU3RhcnQiLCJidXR0b24iLCJ0YXJnZXQiLCJjbG9zZXN0IiwicmVjdCIsImluaXRpYWxQb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJwb2ludGVyT2Zmc2V0WCIsInBvaW50ZXJPZmZzZXRZIiwiY3VycmVudFRhcmdldCIsInNldFBvaW50ZXJDYXB0dXJlIiwicHJldmVudERlZmF1bHQiLCJhaUNoYXREcmFnZ2FibGUiLCJzdGFydENoYXQiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwibWVudGlvbnMiLCJmdWFJZCIsInNjSWQiLCJjb250ZXh0RGF0YSIsIl9vYmplY3RTcHJlYWQiLCJsZW5ndGgiLCJiYW5uZXJGYXFBdXRvU2VudFJlZiIsIl9iYW5uZXJFbnRyeUZhcSRmYXFUaTIiLCJlbnRpdHlSZWFkeSIsIkJvb2xlYW4iLCJpZCIsInVuZGVmaW5lZCIsImdvVG9DaGF0Iiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZWxlY3RlZEFnZW50IiwiZGF0YSIsImZpbmQiLCJhZ2VudEl0ZW0iLCJhZ2VudElkIiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiaGFuZGxlU2VuZE1lc3NhZ2VSZWFkeSIsInNlbmRNZXNzYWdlIiwic3RvcEdlbmVyYXRpb24iLCJzdHJlYW1pbmciLCJ3cml0aW5nIiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwicHJvamVjdF9kZWxldGVkIiwiaGFuZGxlUmVzZXRDaGF0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJuZXh0Iiwic3RvcCIsImhhbmRsZUJhY2siLCJvbk1lcmdlQ3JlYXRlZEFnZW50IiwiZXZ0IiwiX3JlZjMiLCJkZXRhaWwiLCJuZXh0QWdlbnQiLCJuYXZpZ2F0ZUhvbWUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9uU3luY0VkaXRlZEFnZW50IiwiX3JlZjQiLCJvcGVuQ2hhdFZpZXciLCJvcGVuTmV3Q2hhdFdpdGhBZ2VudCIsIl9kZXRhaWwkcHJvamVjdCIsIl9kZXRhaWwkY2xpZW50IiwiX3JlZjUiLCJvblNlc3Npb25NZXRhIiwiX3JlZjYiLCJsZWdhY3lDb250ZXh0U2Vzc2lvbiIsImFnZW50VHlwZSIsImFnZW50RW50aXR5IiwiaW5jbHVkZXMiLCJjb250ZXh0TmFtZSIsInRhc2tOYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiZW50aXR5VHlwZSIsImlzX2xlZ2FjeV9jb250ZXh0IiwiaGFuZGxlQ29udGludWVMZWdhY3lDb250ZXh0SW5OZXdDaGF0IiwicElkIiwicHJvamVjdElkIiwicE5hbWUiLCJjSWQiLCJjbGllbnRJZCIsImNOYW1lIiwidElkIiwidGFza0lkIiwidE5hbWUiLCJvcmNoZXN0cmF0b3IiLCJhIiwiU3RyaW5nIiwic2hvd05ld0NoYXQiLCJoaWRlSGVhZGVyQWdlbnRTZWxlY3RvciIsInNob3dIZWFkZXJDb250ZXh0QmFja0J1dHRvbiIsInNob3dCYWNrQnV0dG9uIiwiaGFuZGxlT3Blbk1hcmtldHBsYWNlIiwiaGFuZGxlR29Ub01haWFrZXIiLCJfY2FsbGVlMiIsIm1haWFrZXJBZ2VudCIsInJlc3BvbnNlIiwiX3QiLCJfY29udGV4dDIiLCJwYXRoIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJhYnJ1cHQiLCJoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50cyIsImhpZGVGb290ZXJPbk1haWFrZXJNYXJrZXRwbGFjZUhvbWUiLCJtb2RhbFBhbmVsIiwiY2hpbGRyZW4iLCJvbkdvVG9DaGF0Iiwib25FcnJvciIsImhhbmRsZUdvVG9Ib21lIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiYWdlbnRzTmF2QWN0aXZlIiwiZmxvYXRpbmciLCJvbkxheW91dE1vZGVDaGFuZ2UiLCJkcmFnZ2FibGUiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ01vdmUiLCJvbkRyYWdFbmQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJvbkFnZW50VXBkYXRlIiwiaGlkZUFnZW50U2VsZWN0b3IiLCJvbkJhY2siLCJyZWZzIiwib25TZW5kTWVzc2FnZVJlYWR5IiwibG9hZGluZ0FnZW50cyIsIm9uRGVsZXRlQWdlbnQiLCJvbkZhdm9yaXRlQWdlbnRVcGRhdGUiLCJoYXNNb3JlQWdlbnRzIiwibG9hZGluZ01vcmVBZ2VudHMiLCJvbkxvYWRNb3JlQWdlbnRzIiwib25Hb1RvTWFpYWtlciIsIm9uUmVzdGFydFN1bW1hcnkiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsInNob3dGYXFzIiwib25Db250aW51ZUluTmV3Q2hhdCIsInJlZiIsImNyZWF0ZVBvcnRhbCIsImVsZXZhdGVkIiwidGlsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9DaGF0QUlNb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1uby11c2VsZXNzLWZyYWdtZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHtcbiAgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZVJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIFBvaW50ZXJFdmVudCBhcyBSZWFjdFBvaW50ZXJFdmVudCxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFFcnJvcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4J1xuXG5pbXBvcnQgeyBDaGF0QUlDb250ZW50IH0gZnJvbSAnLi4vQ2hhdEFJQ29udGVudCdcbmltcG9ydCB7IGJ1aWxkSGFuZGxlcnMsIG9wdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICcuLi9TaWRlYmFyJ1xuaW1wb3J0IHsgdXNlR2V0QWdlbnRzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBDaGF0QUlNb2RhbEhlYWRlciB9IGZyb20gJy4vY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlcidcbmltcG9ydCB7IFNuYWNrYmFyIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL1NuYWNrQmFyL1NuYWNrYmFyJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vUHJvamVjdFN1bW1hcnlDb250ZW50J1xuaW1wb3J0IHsgQWJtQWdlbnRNb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9BYm1BZ2VudE1vZGFsL0FibUFnZW50TW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBTQ0NBSU1Db250ZW50LCBTQ0NBSU1Db250ZW50V3JhcHBlciwgU0NDQUlNV3JhcHBlciB9IGZyb20gJy4vQ2hhdEFJTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgZ2V0TWFpYUZsb2F0aW5nUGFuZWxXaWR0aFB4LCBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4vbGF5b3V0J1xuaW1wb3J0IHsgRmxvYXRpbmdQYW5lbE1vdGlvbiwgdXNlRmxvYXRpbmdQYW5lbERyYWdUaWx0IH0gZnJvbSAnLi9mbG9hdGluZ1BhbmVsTW90aW9uJ1xuaW1wb3J0IHsgQ2hhdEFpTW9kYWxGb290ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxGb290ZXInXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL1Rhc2snXG5pbXBvcnQgeyB1c2VGYXFzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VGYXFzU3RvcmUnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL2NsaWVudCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG50eXBlIENoYXRBSU1vZGFsUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBoYW5kbGVDbG9zZT86ICgpID0+IHZvaWRcbiAgcGFyZW50UmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxufVxuXG4vKiogTWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiBhYmllcnRhIChlbWl0aWRhIHBvciB1c2VDaGF0TWVzc2FnZXMgYWwgY2FyZ2FyIHVuYSBjb252ZXJzYWNpw7NuKS4gKi9cbnR5cGUgU2Vzc2lvbk1ldGEgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIGFnZW50VHlwZT86IHN0cmluZ1xuICBhZ2VudEVudGl0eT86IHN0cmluZ1xuICBwcm9qZWN0SWQ/OiBudW1iZXJcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXJcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICB0YXNrSWQ/OiBudW1iZXJcbiAgdGFza05hbWU/OiBzdHJpbmdcbn1cblxuY29uc3QgTEVHQUNZX0NPTlRFWFRfRU5USVRJRVMgPSBbJ3Byb2plY3QnLCAndGFzaycsICdjbGllbnQnXSBhcyBjb25zdFxudHlwZSBMZWdhY3lDb250ZXh0RW50aXR5ID0gKHR5cGVvZiBMRUdBQ1lfQ09OVEVYVF9FTlRJVElFUylbbnVtYmVyXVxuXG5leHBvcnQgY29uc3QgSURfTU9EQUxfQ0hBVF9BR0VOVCA9ICdtb2RhbHMtcG9ydGFsLW1haWEtY2hhdC1hZ2VudCdcblxuY29uc3QgdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUgPSAoc2VjdGlvbjogc3RyaW5nKSA9PiB7XG4gIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAod2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIGlmICgoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICdjbGllbnQnIHx8IHNlY3Rpb24gPT09ICd0YXNrJykgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbCA9ICh7IGhhbmRsZUNsb3NlIH06IENoYXRBSU1vZGFsUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1c2VGYXFzU3RvcmUuZ2V0U3RhdGUoKS5jbGVhckZhcXMoKVxuICAgIGhhbmRsZUNsb3NlPy4oKVxuICB9LCBbaGFuZGxlQ2xvc2VdKVxuICBjb25zdCBbdXNlckluaXRpYWxNZXNzYWdlLCBzZXRVc2VySW5pdGlhbE1lc3NhZ2VdID0gdXNlU3RhdGU8e1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICAgIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gICAgZmFxSWQ/OiBzdHJpbmdcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXVxuICAgIGZ1YUlkPzogc3RyaW5nXG4gICAgc2NJZD86IHN0cmluZ1xuICAgIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgfT4oe1xuICAgIG1lc3NhZ2U6ICcnLFxuICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgfSlcbiAgY29uc3QgW2luaXRpYWxDaGF0SWQsIHNldEluaXRpYWxDaGF0SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW25ld0NoYXRLZXksIHNldE5ld0NoYXRLZXldID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3Nlc3Npb25NZXRhLCBzZXRTZXNzaW9uTWV0YV0gPSB1c2VTdGF0ZTxTZXNzaW9uTWV0YSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzZW5kTWVzc2FnZUZ1bmN0aW9uLCBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uXSA9IHVzZVN0YXRlPFxuICAgIHwgKChcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgICBmdWFJZD86IHN0cmluZyxcbiAgICAgICAgc2NJZD86IHN0cmluZ1xuICAgICAgKSA9PiB2b2lkKVxuICAgIHwgbnVsbFxuICA+KG51bGwpXG4gIGNvbnN0IFtzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uLCBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uXSA9IHVzZVN0YXRlPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc1N0cmVhbWluZywgc2V0SXNTdHJlYW1pbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1dyaXRpbmcsIHNldElzV3JpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBbcmVmZXRjaENoYXRzLCBzZXRSZWZldGNoQ2hhdHNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtjdXJyZW50T3B0aW9uLCBzZXRDdXJyZW50T3B0aW9uXSA9IHVzZVN0YXRlKG9wdGlvbnMuaG9tZSlcbiAgY29uc3QgW2hhc0Vycm9yLCBzZXRIYXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaGFuZGxlcnMgPSB1c2VNZW1vKCgpID0+IGJ1aWxkSGFuZGxlcnMoc2V0Q3VycmVudE9wdGlvbiwgc2V0SGFzRXJyb3IpLCBbXSlcbiAgY29uc3QgW3NpZGViYXJIYXNFcnJvciwgc2V0U2lkZWJhckhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCByZXNldFNlbGVjdGVkQ2hhdFJlZiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdC1icicgOiBpMThuLmxhbmd1YWdlXG5cbiAgbW9tZW50LmxvY2FsZShsYW5nKVxuXG4gIGNvbnN0IHtcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZWN0aW9uLFxuICAgIGFnZW50LFxuICAgIHByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIHRhc2ssXG4gICAgY2hpcHNQcm9qZWN0LFxuICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgc2V0Q2xpZW50LFxuICAgIHNldFByb2plY3QsXG4gICAgYmFubmVyRW50cnlGYXEsXG4gICAgc2V0VGFzayxcbiAgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIC8vIFotaW5kZXggcGFyYSB0b29sdGlwcyBlbiBzZWN0aW9uICd0YXNrJyAobW9kYWwgZmxvdGFudGUgZWxldmFkbylcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuXG4gIGNvbnN0IHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcjogYWdlbnRFcnJvcixcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICAgIHNvcnRBZ2VudHNMaXN0LFxuICB9ID0gdXNlR2V0QWdlbnRzKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWU6IGhhbmRsZXJzLmhvbWUgfSlcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcblxuICBjb25zdCB1c2VySGFzUGVybWlzc2lvbnMgPVxuICAgICh1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGUgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmVkaXQgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmRlbGV0ZSkgJiZcbiAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gIGNvbnN0IGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGlzR2xvYmFsU3BlY2lhbGlzdCA9IGlzTUFJQSAmJiBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJ1xuICAgIGNvbnN0IGlzUHJvamVjdFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09IG51bGwpXG4gICAgY29uc3QgaXNDbGllbnRTcGVjaWFsaXN0ID0gaXNNQUlBICYmIGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnXG4gICAgY29uc3QgaXNNYWlha2VyID0gaXNHbG9iYWxTcGVjaWFsaXN0ICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuXG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMubXlBZ2VudHMgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLm15QWdlbnRzXG4gICAgfVxuXG4gICAgLy8gRWwgb3JjaGVzdHJhdG9yIChNQUlBKSBtdWVzdHJhIHN1IGhvbWUgY29uIEZBUXMvYWNjaW9uZXMgZnJlY3VlbnRlczsgZWwgcmVzdG8gZGVcbiAgICAvLyBsb3MgZ2xvYmFsIHNwZWNpYWxpc3RzIChjbG9uZXMgZ2xvYmFsZXMgbm8tbWFpYWtlcikgc2lndWVuIHllbmRvIGRpcmVjdG8gYWwgY2hhdC5cbiAgICBpZiAoaXNHbG9iYWxTcGVjaWFsaXN0ICYmICFpc01haWFrZXIgJiYgYWdlbnQ/LnR5cGUgIT09ICdvcmNoZXN0cmF0b3InICYmIGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY2hhdFxuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IgPSBjdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXQgJiYgaXNQcm9qZWN0U3BlY2lhbGlzdCAmJiAhcHJvamVjdFxuICAgIGNvbnN0IHNob3VsZFNob3dDbGllbnRTZWxlY3RvciA9IGN1cnJlbnRPcHRpb24gIT09IG9wdGlvbnMuY2hhdCAmJiBpc0NsaWVudFNwZWNpYWxpc3QgJiYgIWNsaWVudFxuXG4gICAgaWYgKHNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnByb2plY3RTZWxlY3RvclxuICAgIH1cbiAgICBpZiAoc2hvdWxkU2hvd0NsaWVudFNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5jbGllbnRTZWxlY3RvclxuICAgIH1cbiAgICByZXR1cm4gY3VycmVudE9wdGlvblxuICB9LCBbY3VycmVudE9wdGlvbiwgcHJvamVjdCwgY2xpZW50LCBpc01BSUEsIGFnZW50Py5lbnRpdHksIGFnZW50Py5uYW1lLCBhZ2VudD8udHlwZV0pXG5cbiAgY29uc3QgaXNNYWlha2VyQWdlbnRTZWxlY3RlZCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJyB8fFxuICAgICAgKGlzTUFJQSAmJlxuICAgICAgICBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJyAmJlxuICAgICAgICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJlxuICAgICAgICAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJykpLFxuICAgIFtpc01BSUEsIGFnZW50Py5lbnRpdHksIGFnZW50Py50eXBlLCBhZ2VudD8ubmFtZV1cbiAgKVxuXG4gIGNvbnN0IHNpZGViYXJBZ2VudHNOYXZBY3RpdmUgPSB1c2VNZW1vKCgpOiAnbWFpYWtlcicgfCAnbXlBZ2VudHMnIHwgbnVsbCA9PiB7XG4gICAgaWYgKGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5teUFnZW50cykgcmV0dXJuICdteUFnZW50cydcbiAgICBpZiAoaXNNYWlha2VyQWdlbnRTZWxlY3RlZCkgcmV0dXJuICdtYWlha2VyJ1xuICAgIHJldHVybiBudWxsXG4gIH0sIFtjb21wdXRlZEN1cnJlbnRPcHRpb24sIGlzTWFpYWtlckFnZW50U2VsZWN0ZWRdKVxuXG4gIC8qIFJlYWN0aXZhciBjb24gbGEgZmlsYSDigJxNaXMgYWdlbnRlc+KAnSBlbiBTaWRlYmFyOiBteUFnZW50c0NvdW50IHByb3BcbiAgY29uc3Qgc2lkZWJhck15QWdlbnRzQ291bnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gYWdlbnRzLmRhdGEuZmlsdGVyKFxuICAgICAgYSA9PiAhKGEudHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgfHwgKGEudHlwZSA9PT0gJ2Nsb25lJyAmJiBhLmVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYS5uYW1lIHx8ICcnKSkpXG4gICAgKVxuICAgICAgLmxlbmd0aFxuICB9LCBbYWdlbnRzLmRhdGFdKVxuICAqL1xuXG4gIGNvbnN0IGFnZW50c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3Qgc2VsZWN0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtJRF9NT0RBTF9DSEFUX0FHRU5UfWApXG5cbiAgLy8gVGFzayBwYW5lbCB5IGJhbm5lciBkZSBwcm95ZWN0byBhYnJlbiBlbiBmbG90YW50ZSBwb3IgZGVmYXVsdCAobm8gdGFwYXIgZWwgY29udGV4dG8gZGV0csOhcykuXG4gIC8vIEVsIHVzdWFyaW8gcHVlZGUgY2FtYmlhciBhIHNpZGViYXIvZnVsbHNjcmVlbiBkZXNkZSBsb3MgY29udHJvbGVzIGRlbCBtb2RhbC5cbiAgY29uc3QgW2xheW91dE1vZGUsIHNldExheW91dE1vZGVdID0gdXNlU3RhdGU8TWFpYUNoYXRNb2RhbExheW91dE1vZGU+KCgpID0+IHtcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gJ2Zsb2F0aW5nJ1xuICAgIGlmIChiYW5uZXJFbnRyeUZhcT8uZmFxVGl0bGU/LnRyaW0oKSkgcmV0dXJuICdmbG9hdGluZydcbiAgICByZXR1cm4gJ3NpZGViYXInXG4gIH0pXG4gIGNvbnN0IGV4cGFuZGVkID0gbGF5b3V0TW9kZSA9PT0gJ2Z1bGxzY3JlZW4nXG4gIGNvbnN0IGlzRmxvYXRpbmcgPSBsYXlvdXRNb2RlID09PSAnZmxvYXRpbmcnXG4gIGNvbnN0IGNvbnRlbnRXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbZHJhZ1Bvc2l0aW9uLCBzZXREcmFnUG9zaXRpb25dID0gdXNlU3RhdGU8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyB0aWx0TW90aW9uLCBzdGFydFBvaW50ZXJUcmFja2luZywgc2FtcGxlUG9pbnRlck1vdmUsIGVuZFBvaW50ZXJUcmFja2luZyB9ID1cbiAgICB1c2VGbG9hdGluZ1BhbmVsRHJhZ1RpbHQoaXNGbG9hdGluZylcbiAgY29uc3QgZHJhZ1N0YXRlUmVmID0gdXNlUmVmPHtcbiAgICBwb2ludGVySWQ6IG51bWJlclxuICAgIG9mZnNldFg6IG51bWJlclxuICAgIG9mZnNldFk6IG51bWJlclxuICB9IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBjbGFtcERyYWdQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKCh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnRXcmFwcGVyID0gY29udGVudFdyYXBwZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGVudFdyYXBwZXIpIHtcbiAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gY29udGVudFdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBvZmZzZXQgPSAxNlxuICAgIGNvbnN0IG1heFggPSBNYXRoLm1heChvZmZzZXQsIHdpbmRvdy5pbm5lcldpZHRoIC0gd2lkdGggLSBvZmZzZXQpXG4gICAgY29uc3QgbWF4WSA9IE1hdGgubWF4KG9mZnNldCwgd2luZG93LmlubmVySGVpZ2h0IC0gaGVpZ2h0IC0gb2Zmc2V0KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IE1hdGgubWluKE1hdGgubWF4KHgsIG9mZnNldCksIG1heFgpLFxuICAgICAgeTogTWF0aC5taW4oTWF0aC5tYXgoeSwgb2Zmc2V0KSwgbWF4WSksXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsYXlvdXRNb2RlICE9PSAnZmxvYXRpbmcnKSB7XG4gICAgICBzZXREcmFnUG9zaXRpb24obnVsbClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldERyYWdQb3NpdGlvbihwcmV2ID0+IHtcbiAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgIHJldHVybiBjbGFtcERyYWdQb3NpdGlvbihwcmV2LngsIHByZXYueSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhZCA9IDE2XG4gICAgICBjb25zdCB4ID0gd2luZG93LmlubmVyV2lkdGggLSBnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgoKSAtIHBhZFxuICAgICAgcmV0dXJuIGNsYW1wRHJhZ1Bvc2l0aW9uKHgsIHBhZClcbiAgICB9KVxuICB9LCBbbGF5b3V0TW9kZSwgY2xhbXBEcmFnUG9zaXRpb25dKVxuXG4gIGNvbnN0IGhhbmRsZURyYWdFbmQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0UG9pbnRlckV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgZW5kUG9pbnRlclRyYWNraW5nKClcbiAgICAgIGlmIChkcmFnU3RhdGVSZWYuY3VycmVudD8ucG9pbnRlcklkICE9PSBldmVudC5wb2ludGVySWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGRyYWdTdGF0ZVJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJydcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJydcbiAgICB9LFxuICAgIFtlbmRQb2ludGVyVHJhY2tpbmddXG4gIClcblxuICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBjb25zdCBkcmFnU3RhdGUgPSBkcmFnU3RhdGVSZWYuY3VycmVudFxuICAgICAgaWYgKCFkcmFnU3RhdGUgfHwgZHJhZ1N0YXRlLnBvaW50ZXJJZCAhPT0gZXZlbnQucG9pbnRlcklkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzYW1wbGVQb2ludGVyTW92ZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKVxuXG4gICAgICBjb25zdCBuZXh0UG9zaXRpb24gPSBjbGFtcERyYWdQb3NpdGlvbihldmVudC5jbGllbnRYIC0gZHJhZ1N0YXRlLm9mZnNldFgsIGV2ZW50LmNsaWVudFkgLSBkcmFnU3RhdGUub2Zmc2V0WSlcblxuICAgICAgc2V0RHJhZ1Bvc2l0aW9uKHByZXYgPT4ge1xuICAgICAgICBpZiAocHJldiAmJiBwcmV2LnggPT09IG5leHRQb3NpdGlvbi54ICYmIHByZXYueSA9PT0gbmV4dFBvc2l0aW9uLnkpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0UG9zaXRpb25cbiAgICAgIH0pXG4gICAgfSxcbiAgICBbY2xhbXBEcmFnUG9zaXRpb24sIHNhbXBsZVBvaW50ZXJNb3ZlXVxuICApXG5cbiAgY29uc3QgcmVzb2x2ZWREcmFnUG9zaXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAobGF5b3V0TW9kZSAhPT0gJ2Zsb2F0aW5nJykge1xuICAgICAgcmV0dXJuIGRyYWdQb3NpdGlvblxuICAgIH1cbiAgICBpZiAoZHJhZ1Bvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gZHJhZ1Bvc2l0aW9uXG4gICAgfVxuICAgIGNvbnN0IHBhZCA9IDE2XG4gICAgY29uc3QgeCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmlubmVyV2lkdGggLSBnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgoKSAtIHBhZCA6IHBhZFxuICAgIHJldHVybiBjbGFtcERyYWdQb3NpdGlvbih4LCBwYWQpXG4gIH0sIFtsYXlvdXRNb2RlLCBkcmFnUG9zaXRpb24sIGNsYW1wRHJhZ1Bvc2l0aW9uXSlcblxuICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0UG9pbnRlckV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Zsb2F0aW5nIHx8IGV2ZW50LmJ1dHRvbiAhPT0gMCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgICBpZiAodGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbiwgYSwgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIFtyb2xlPVwiYnV0dG9uXCJdLCBbZGF0YS1uby1kcmFnPVwidHJ1ZVwiXScpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZW50V3JhcHBlciA9IGNvbnRlbnRXcmFwcGVyUmVmLmN1cnJlbnRcbiAgICAgIGlmICghY29udGVudFdyYXBwZXIpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlY3QgPSBjb250ZW50V3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgaW5pdGlhbFBvc2l0aW9uID0gcmVzb2x2ZWREcmFnUG9zaXRpb24gPz8gY2xhbXBEcmFnUG9zaXRpb24ocmVjdC5sZWZ0LCByZWN0LnRvcClcbiAgICAgIGNvbnN0IHBvaW50ZXJPZmZzZXRYID0gZXZlbnQuY2xpZW50WCAtIGluaXRpYWxQb3NpdGlvbi54XG4gICAgICBjb25zdCBwb2ludGVyT2Zmc2V0WSA9IGV2ZW50LmNsaWVudFkgLSBpbml0aWFsUG9zaXRpb24ueVxuXG4gICAgICBzZXREcmFnUG9zaXRpb24oaW5pdGlhbFBvc2l0aW9uKVxuICAgICAgZHJhZ1N0YXRlUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgIHBvaW50ZXJJZDogZXZlbnQucG9pbnRlcklkLFxuICAgICAgICBvZmZzZXRYOiBwb2ludGVyT2Zmc2V0WCxcbiAgICAgICAgb2Zmc2V0WTogcG9pbnRlck9mZnNldFksXG4gICAgICB9XG5cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnbm9uZSdcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJ1xuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0RHJhZ2dhYmxlKVxuICAgICAgc3RhcnRQb2ludGVyVHJhY2tpbmcoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcbiAgICB9LFxuICAgIFtjbGFtcERyYWdQb3NpdGlvbiwgaXNGbG9hdGluZywgcmVzb2x2ZWREcmFnUG9zaXRpb24sIHN0YXJ0UG9pbnRlclRyYWNraW5nXVxuICApXG5cbiAgY29uc3Qgc3RhcnRDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgbWVzc2FnZT86IHN0cmluZyxcbiAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW10sXG4gICAgICBmdWFJZD86IHN0cmluZyxcbiAgICAgIHNjSWQ/OiBzdHJpbmcsXG4gICAgICBjb250ZXh0RGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSB7XG4gICAgICAgIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgJycsXG4gICAgICAgIGF0dGFjaG1lbnRzOiBhdHRhY2htZW50cyB8fCBbXSxcbiAgICAgICAgLi4uKGZhcUlkID8geyBmYXFJZCB9IDoge30pLFxuICAgICAgICAuLi4oYWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkIH0gOiB7fSksXG4gICAgICAgIC4uLihtZW50aW9ucyAmJiBtZW50aW9ucy5sZW5ndGggPiAwID8geyBtZW50aW9ucyB9IDoge30pLFxuICAgICAgICAuLi4oZnVhSWQgPyB7IGZ1YUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihzY0lkID8geyBzY0lkIH0gOiB7fSksXG4gICAgICAgIC4uLihjb250ZXh0RGF0YSA/IHsgY29udGV4dERhdGEgfSA6IHt9KSxcbiAgICAgIH0pXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgc2lkZWJhckhhc0Vycm9yXVxuICApXG5cbiAgY29uc3QgYmFubmVyRmFxQXV0b1NlbnRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbnRpdHlSZWFkeSA9IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/IEJvb2xlYW4ocHJvamVjdD8uaWQpIDogc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyBCb29sZWFuKGNsaWVudD8uaWQpIDogdHJ1ZVxuXG4gICAgaWYgKCFiYW5uZXJFbnRyeUZhcT8uZmFxVGl0bGU/LnRyaW0oKSB8fCBiYW5uZXJGYXFBdXRvU2VudFJlZi5jdXJyZW50IHx8IGxvYWRpbmcgfHwgIWFnZW50Py5pZCB8fCAhZW50aXR5UmVhZHkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGJhbm5lckZhcUF1dG9TZW50UmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgc3RhcnRDaGF0KFxuICAgICAgYmFubmVyRW50cnlGYXEuZmFxVGl0bGUsXG4gICAgICBbXSxcbiAgICAgIGJhbm5lckVudHJ5RmFxLmZhcUlkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgYmFubmVyRW50cnlGYXEuY29udGV4dERhdGFcbiAgICApXG4gIH0sIFtcbiAgICBiYW5uZXJFbnRyeUZhcT8uZmFxSWQsXG4gICAgYmFubmVyRW50cnlGYXE/LmZhcVRpdGxlLFxuICAgIGJhbm5lckVudHJ5RmFxPy5jb250ZXh0RGF0YSxcbiAgICBsb2FkaW5nLFxuICAgIGFnZW50Py5pZCxcbiAgICBhZ2VudD8uZW50aXR5LFxuICAgIHByb2plY3Q/LmlkLFxuICAgIGNsaWVudD8uaWQsXG4gICAgc2VjdGlvbixcbiAgICBzdGFydENoYXQsXG4gIF0pXG5cbiAgY29uc3QgZ29Ub0NoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAoY2hhdDogYW55KSA9PiB7XG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICBjb25zdCBzZWxlY3RlZEFnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhZ2VudEl0ZW0gPT4gYWdlbnRJdGVtLmlkID09PSBjaGF0LmFnZW50SWQpXG4gICAgICBpZiAoc2VsZWN0ZWRBZ2VudCkge1xuICAgICAgICBzZWxlY3RBZ2VudChzZWxlY3RlZEFnZW50KVxuICAgICAgfVxuICAgICAgLy8gRGlzcGF0Y2ggZXZlbnQgdG8gY2xlYXIgdGhlIGlucHV0IHRleHRhcmVhXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY2hhdC1zZXNzaW9uLWNoYW5nZWQnKSlcbiAgICAgIGhhbmRsZXJzLmNoYXQoKVxuICAgIH0sXG4gICAgW2hhbmRsZXJzLCBhZ2VudHMsIHNlbGVjdEFnZW50XVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2VSZWFkeSA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbmRNZXNzYWdlOiAoXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICAgIHNjSWQ/OiBzdHJpbmdcbiAgICAgICkgPT4gdm9pZCxcbiAgICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgICAgc3RyZWFtaW5nOiBib29sZWFuLFxuICAgICAgd3JpdGluZzogYm9vbGVhblxuICAgICkgPT4ge1xuICAgICAgc2V0U2VuZE1lc3NhZ2VGdW5jdGlvbigoKSA9PiBzZW5kTWVzc2FnZSlcbiAgICAgIHNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb24oKCkgPT4gc3RvcEdlbmVyYXRpb24pXG4gICAgICBzZXRJc1N0cmVhbWluZyhzdHJlYW1pbmcpXG4gICAgICBzZXRJc1dyaXRpbmcod3JpdGluZylcbiAgICB9LFxuICAgIFtdXG4gIClcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW10sXG4gICAgICBmdWFJZD86IHN0cmluZyxcbiAgICAgIHNjSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHtcbiAgICAgICAgc2V0U2lkZWJhckhhc0Vycm9yKGZhbHNlKVxuICAgICAgfVxuICAgICAgaWYgKHNlbmRNZXNzYWdlRnVuY3Rpb24gJiYgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2VGdW5jdGlvbihtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQsIHNjSWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkLCBzY0lkKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHN0YXJ0Q2hhdCwgY29tcHV0ZWRDdXJyZW50T3B0aW9uLCBzaWRlYmFySGFzRXJyb3JdXG4gIClcblxuICBjb25zdCBoYW5kbGVHb0hvbWUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gU2kgZXN0YW1vcyBlbiB1bmEgY29udmVyc2FjacOzbiB5IHZhbW9zIGEgaG9tZSwgcmVzZXRlYXIgaW5pdGlhbENoYXRJZCB5IGluY3JlbWVudGFyIG5ld0NoYXRLZXlcbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICBzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uPy4oKVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgLy8gTm8gYm9ycmFyIGVsIGNsaWVudGUgc2kgZXMgYWdlbnRlIGRlIGNsaWVudGVzIChpZ3VhbCBxdWUgZWwgcHJveWVjdG8gc2UgbWFudGllbmUpXG4gICAgICBpZiAoYWdlbnQ/LmVudGl0eSAhPT0gJ2NsaWVudCcpIHtcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICAgIGlmIChzZWN0aW9uICE9PSAndGFzaycpIHtcbiAgICAgICAgc2V0VGFzaz8uKG51bGwpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgICghYWdlbnQgfHwgYWdlbnQ/LmlzX2RlbGV0ZWQgfHwgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHwgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8IGFnZW50Py5wcm9qZWN0X2RlbGV0ZWQpICYmXG4gICAgICBhZ2VudHMuZGF0YS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVswXSlcbiAgICB9XG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUgJiYgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCkge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCgpXG4gICAgfVxuICB9LCBbXG4gICAgb3B0aW9ucy5ob21lLFxuICAgIG9wdGlvbnMuY2hhdCxcbiAgICBjdXJyZW50T3B0aW9uLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICBhZ2VudCxcbiAgICBhZ2VudHMsXG4gICAgc2VsZWN0QWdlbnQsXG4gICAgc2V0Q2xpZW50LFxuICAgIHNldFRhc2ssXG4gICAgc3RvcEdlbmVyYXRpb25GdW5jdGlvbixcbiAgICBzZWN0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIGhhbmRsZUdvSG9tZSgpXG4gIH0sIFtoYW5kbGVHb0hvbWVdKVxuXG4gIC8vIEJvdMOzbiBcInZvbHZlclwiIGRlbCBoZWFkZXIgKHNvbG8gYWdlbnRlcyBjbG9uZSk6XG4gIC8vIC0gQ29uIGNvbnZlcnNhY2nDs24gaW5pY2lhZGE6IGluaWNpYSB1bmEgbnVldmEgY29udmVyc2FjacOzbiB5IHZ1ZWx2ZSBhbCBob21lICh0b2RhcyBsYXMgc2VjY2lvbmVzKS5cbiAgLy8gLSBFbiBlbCBob21lIChGQVFzL0ZVQSk6IHZ1ZWx2ZSBhbCBzZWxlY3RvciBkZSBwcm95ZWN0b3MvY2xpZW50ZXMgbGltcGlhbmRvIGxhIGVudGl0eSBzZWxlY2Npb25hZGEuXG4gIGNvbnN0IGhhbmRsZUJhY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gT3JjaGVzdHJhdG9yIGVuIGVsIGhvbWUgZGVsIGhlYWRlciAocGFzbyAyKTogbGltcGlhciBlbCBjb250ZXh0byBkZWwgY2hpcCB5IHZvbHZlclxuICAgIC8vIGEgbGEgbGlzdGEgZGUgY29udGV4dG9zIHJlY2llbnRlcyAocGFzbyAxKSwgc2luIHNhbGlyIGRlbCBob21lLlxuICAgIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgJiYgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUpIHtcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUYXNrPy4obnVsbClcbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgaGFuZGxlUmVzZXRDaGF0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyBFbiBzZWN0aW9uICd0YXNrJyBwcmVzZXJ2YXIgcHJvamVjdC9jbGllbnQ7IGVuIG90cmFzIHNlY2Npb25lcywgaXIgYWwgc2VsZWN0b3IgbGltcGlhbmRvIHByb2plY3QvY2xpZW50XG4gICAgaWYgKHNlY3Rpb24gIT09ICd0YXNrJykge1xuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRhc2s/LihudWxsKVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgfVxuICB9LCBbY29tcHV0ZWRDdXJyZW50T3B0aW9uLCBzZWN0aW9uLCBhZ2VudD8udHlwZSwgaGFuZGxlUmVzZXRDaGF0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHNldENoaXBzUHJvamVjdF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFnZW50c0ZldGNoZWRSZWYuY3VycmVudCkge1xuICAgICAgYWdlbnRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaGFuZGxlR2V0QWdlbnRzKClcbiAgICB9XG4gIH0sIFtoYW5kbGVHZXRBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25NZXJnZUNyZWF0ZWRBZ2VudCA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IGFnZW50OiBuZXh0QWdlbnQgfSA9IChldnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbCB8fCB7fVxuICAgICAgaWYgKG5leHRBZ2VudD8uaWQpIHtcbiAgICAgICAgYWRkQWdlbnQobmV4dEFnZW50LCB7IG5hdmlnYXRlSG9tZTogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1tZXJnZS1jcmVhdGVkLWFnZW50LWludG8tbGlzdCcsIG9uTWVyZ2VDcmVhdGVkQWdlbnQpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtbWVyZ2UtY3JlYXRlZC1hZ2VudC1pbnRvLWxpc3QnLCBvbk1lcmdlQ3JlYXRlZEFnZW50KVxuICAgIH1cbiAgfSwgW2FkZEFnZW50XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uU3luY0VkaXRlZEFnZW50ID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYWdlbnQ6IG5leHRBZ2VudCB9ID0gKGV2dCBhcyBDdXN0b21FdmVudDx7IGFnZW50OiBBZ2VudCB9PikuZGV0YWlsIHx8IHt9XG4gICAgICBpZiAoIW5leHRBZ2VudD8uaWQpIHJldHVyblxuICAgICAgdXBkYXRlQWdlbnQobmV4dEFnZW50KVxuICAgICAgaWYgKGFnZW50Py5pZCA9PT0gbmV4dEFnZW50LmlkKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KG5leHRBZ2VudClcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1zeW5jLWVkaXRlZC1hZ2VudC1mcm9tLWNoYXQnLCBvblN5bmNFZGl0ZWRBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1zeW5jLWVkaXRlZC1hZ2VudC1mcm9tLWNoYXQnLCBvblN5bmNFZGl0ZWRBZ2VudClcbiAgICB9XG4gIH0sIFt1cGRhdGVBZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50Py5pZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcGVuQ2hhdFZpZXcgPSAoKSA9PiB7XG4gICAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5jaGF0KVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1jaGF0LXZpZXcnLCBvcGVuQ2hhdFZpZXcpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1jaGF0LXZpZXcnLCBvcGVuQ2hhdFZpZXcpXG4gICAgfVxuICB9LCBbXSlcblxuICAvKiogTWlzbW8gZmx1am8gcXVlIENoYXRBSU15QWdlbnRzLmhhbmRsZVVzZUFnZW50ICsgb25CYWNrIChoYW5kbGVycy5ob21lKS5cbiAgICogIEVsIGRldGFpbCBwdWVkZSB0cmFlciBvcGNpb25hbG1lbnRlIGBwcm9qZWN0YCwgYGNsaWVudGAsIGB0YXNrYCBwYXJhIGZsb3dzIHF1ZVxuICAgKiAgbmVjZXNpdGFuIHByZXNlcnZhciBjb250ZXh0byAoZWouIHNlbGVjdG9yIGRlIGFnZW50ZXMgZGVzZGUgdW5hIHRhcmVhKS4gU2kgbm8gdmllbmVuLFxuICAgKiAgc2UgbWFudGllbmUgZWwgY29tcG9ydGFtaWVudG8gb3JpZ2luYWwgZGUgbGltcGlhciBwcm9qZWN0L2NsaWVudC4gKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcGVuTmV3Q2hhdFdpdGhBZ2VudCA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgZGV0YWlsIH0gPSBldmVudCBhcyBDdXN0b21FdmVudDx7XG4gICAgICAgIGFnZW50OiBBZ2VudFxuICAgICAgICBwcm9qZWN0PzogUHJvamVjdCB8IG51bGxcbiAgICAgICAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICAgICAgICB0YXNrPzogVGFzayB8IG51bGxcbiAgICAgIH0+XG4gICAgICBjb25zdCBuZXh0QWdlbnQgPSBkZXRhaWw/LmFnZW50XG4gICAgICBpZiAoIW5leHRBZ2VudCkgcmV0dXJuXG5cbiAgICAgIHNldFByb2plY3QoZGV0YWlsPy5wcm9qZWN0ID8/IG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihkZXRhaWw/LmNsaWVudCA/PyBudWxsKVxuICAgICAgaWYgKGRldGFpbD8udGFzayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldFRhc2s/LihkZXRhaWwudGFzaylcbiAgICAgIH1cbiAgICAgIHNlbGVjdEFnZW50KG5leHRBZ2VudClcbiAgICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICB9XG4gIH0sIFtzZWxlY3RBZ2VudCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrXSlcblxuICAvLyBNZXRhZGF0YSBkZSBsYSBzZXNzaW9uIGFiaWVydGEgKGFnZW50X3R5cGUvYWdlbnRfZW50aXR5ICsgY29udGV4dG8pLCBlbWl0aWRhIHBvciB1c2VDaGF0TWVzc2FnZXMuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25TZXNzaW9uTWV0YSA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IGRldGFpbCB9ID0gZXZ0IGFzIEN1c3RvbUV2ZW50PFNlc3Npb25NZXRhPlxuICAgICAgaWYgKGRldGFpbCkgc2V0U2Vzc2lvbk1ldGEoZGV0YWlsKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLWNoYXQtc2Vzc2lvbi1tZXRhJywgb25TZXNzaW9uTWV0YSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1jaGF0LXNlc3Npb24tbWV0YScsIG9uU2Vzc2lvbk1ldGEpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBBbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24gbGltcGlhbW9zIGxhIG1ldGFkYXRhOyBlbCBsb2FkIGRlIGxhIG51ZXZhIHNlc3Npb24gbGEgdnVlbHZlIGEgZW1pdGlyLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFNlc3Npb25NZXRhKG51bGwpXG4gIH0sIFtpbml0aWFsQ2hhdElkXSlcblxuICAvLyBDYXJ0ZWwgXCJjb250aW51YXIgZW4gdW4gY2hhdCBudWV2b1wiOiBzZSBtdWVzdHJhIGFsIGFicmlyIHVuYSBjb252ZXJzYWNpw7NuIGRlIHVuIGNsb25lIGxlZ2FjeVxuICAvLyAoYWdlbnRfdHlwZSA9PT0gJ2Nsb25lJyBjb24gZW50aXR5IHByb2plY3QvdGFzay9jbGllbnQpLiBFbCBpbnB1dCBzZSByZWVtcGxhemEgcG9yIGVsIGNhcnRlbC5cbiAgY29uc3QgbGVnYWN5Q29udGV4dFNlc3Npb24gPSB1c2VNZW1vPHsgZW50aXR5VHlwZTogTGVnYWN5Q29udGV4dEVudGl0eTsgY29udGV4dE5hbWU6IHN0cmluZyB9IHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmIChjb21wdXRlZEN1cnJlbnRPcHRpb24gIT09IG9wdGlvbnMuY2hhdCkgcmV0dXJuIG51bGxcbiAgICBpZiAoIXNlc3Npb25NZXRhIHx8IHNlc3Npb25NZXRhLmFnZW50VHlwZSAhPT0gJ2Nsb25lJykgcmV0dXJuIG51bGxcbiAgICBjb25zdCBlbnRpdHkgPSBzZXNzaW9uTWV0YS5hZ2VudEVudGl0eVxuICAgIGlmICghZW50aXR5IHx8ICFMRUdBQ1lfQ09OVEVYVF9FTlRJVElFUy5pbmNsdWRlcyhlbnRpdHkgYXMgTGVnYWN5Q29udGV4dEVudGl0eSkpIHJldHVybiBudWxsXG4gICAgY29uc3QgY29udGV4dE5hbWUgPVxuICAgICAgZW50aXR5ID09PSAndGFzaycgPyBzZXNzaW9uTWV0YS50YXNrTmFtZSA6IGVudGl0eSA9PT0gJ3Byb2plY3QnID8gc2Vzc2lvbk1ldGEucHJvamVjdE5hbWUgOiBzZXNzaW9uTWV0YS5jbGllbnROYW1lXG4gICAgcmV0dXJuIHsgZW50aXR5VHlwZTogZW50aXR5IGFzIExlZ2FjeUNvbnRleHRFbnRpdHksIGNvbnRleHROYW1lOiBjb250ZXh0TmFtZSB8fCAnJyB9XG4gIH0sIFtjb21wdXRlZEN1cnJlbnRPcHRpb24sIHNlc3Npb25NZXRhXSlcblxuICAvLyBNYXJjYSBlbCBhZ2VudGUgZGUgbGEgY29udmVyc2FjacOzbiBsZWdhY3kgcGFyYSBxdWUgaGVhZGVyLCBzZWxlY3RvciB5IGF2YXRhciBtdWVzdHJlbiBlbCBsb2dvXG4gIC8vIE1BSUEgeSBlbCBub21icmUgdGFjaGFkbyAoYWdlbnRlIG9ic29sZXRvKSwgc2luIGRlcGVuZGVyIGRlbCBgdHlwZWAgcmVzdWVsdG8gZGUgbGEgc2VzacOzbiB2aWVqYS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGVnYWN5Q29udGV4dFNlc3Npb24gJiYgYWdlbnQgJiYgIWFnZW50LmlzX2xlZ2FjeV9jb250ZXh0KSB7XG4gICAgICBzZWxlY3RBZ2VudCh7IC4uLmFnZW50LCBpc19sZWdhY3lfY29udGV4dDogdHJ1ZSB9KVxuICAgIH1cbiAgfSwgW2xlZ2FjeUNvbnRleHRTZXNzaW9uLCBhZ2VudCwgc2VsZWN0QWdlbnRdKVxuXG4gIC8vIEFicmUgdW4gY2hhdCBudWV2byBjb24gZWwgb3JjaGVzdHJhdG9yIHNldGVhbmRvIGVsIGNvbnRleHRvIGRlbCBjbG9uZSBsZWdhY3kgKG1pc21vIGNyaXRlcmlvXG4gIC8vIHF1ZSBjbGlja2VhciB1biBjb250ZXh0byByZWNpZW50ZSBlbiBlbCBob21lIOKGkiBwYXNvIDIgY29uIEZBUXMvYWNjaW9uZXMgZGUgZXNlIGNvbnRleHRvKS5cbiAgY29uc3QgaGFuZGxlQ29udGludWVMZWdhY3lDb250ZXh0SW5OZXdDaGF0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghc2Vzc2lvbk1ldGEpIHJldHVyblxuICAgIGNvbnN0IHtcbiAgICAgIGFnZW50RW50aXR5LFxuICAgICAgcHJvamVjdElkOiBwSWQsXG4gICAgICBwcm9qZWN0TmFtZTogcE5hbWUsXG4gICAgICBjbGllbnRJZDogY0lkLFxuICAgICAgY2xpZW50TmFtZTogY05hbWUsXG4gICAgICB0YXNrSWQ6IHRJZCxcbiAgICAgIHRhc2tOYW1lOiB0TmFtZSxcbiAgICB9ID0gc2Vzc2lvbk1ldGFcblxuICAgIGNvbnN0IG9yY2hlc3RyYXRvciA9IGFnZW50cy5kYXRhLmZpbmQoKGE6IEFnZW50KSA9PiBhLnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKVxuICAgIGlmICghb3JjaGVzdHJhdG9yKSByZXR1cm5cblxuICAgIC8vIFJlc2V0IGRlbCBjaGF0IOKGkiBjb252ZXJzYWNpw7NuIG51ZXZhXG4gICAgc3RvcEdlbmVyYXRpb25GdW5jdGlvbj8uKClcbiAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG5cbiAgICAvLyBTZXRlYXIgY29udGV4dG8gKG1pc21vIGNyaXRlcmlvIHF1ZSBoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0IGRlbCBob21lKVxuICAgIHNldFRhc2s/LihudWxsKVxuICAgIHNldFByb2plY3QobnVsbClcbiAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuXG4gICAgaWYgKGFnZW50RW50aXR5ID09PSAnY2xpZW50JyAmJiBjSWQgIT0gbnVsbCkge1xuICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY0lkLCBuYW1lOiBjTmFtZSB8fCAnJyB9KVxuICAgIH0gZWxzZSBpZiAoYWdlbnRFbnRpdHkgPT09ICdwcm9qZWN0JyAmJiBwSWQgIT0gbnVsbCkge1xuICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgIGlkOiBwSWQsXG4gICAgICAgIG5hbWU6IHBOYW1lIHx8ICcnLFxuICAgICAgICAuLi4oY0lkICE9IG51bGwgPyB7IGNsaWVudElkOiBjSWQsIGNsaWVudDogeyBpZDogY0lkLCBuYW1lOiBjTmFtZSB8fCAnJyB9IH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KHsgcHJvamVjdElkOiBTdHJpbmcocElkKSwgcHJvamVjdE5hbWU6IHBOYW1lIHx8ICcnLCBjbGllbnROYW1lOiBjTmFtZSB8fCAnJyB9KVxuICAgIH0gZWxzZSBpZiAoYWdlbnRFbnRpdHkgPT09ICd0YXNrJyAmJiB0SWQgIT0gbnVsbCkge1xuICAgICAgc2V0VGFzaz8uKHtcbiAgICAgICAgaWQ6IHRJZCxcbiAgICAgICAgbmFtZTogdE5hbWUgfHwgJycsXG4gICAgICAgIC4uLihwSWQgIT0gbnVsbCA/IHsgcHJvamVjdElkOiBwSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGNJZCAhPSBudWxsID8geyBjbGllbnRJZDogY0lkIH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgaWYgKGNJZCAhPSBudWxsKSBzZXRDbGllbnQ/Lih7IGlkOiBjSWQsIG5hbWU6IGNOYW1lIHx8ICcnIH0pXG4gICAgICBpZiAocElkICE9IG51bGwpIHtcbiAgICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgICAgaWQ6IHBJZCxcbiAgICAgICAgICBuYW1lOiBwTmFtZSB8fCAnJyxcbiAgICAgICAgICAuLi4oY0lkICE9IG51bGwgPyB7IGNsaWVudElkOiBjSWQsIGNsaWVudDogeyBpZDogY0lkLCBuYW1lOiBjTmFtZSB8fCAnJyB9IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICAgIHNldENoaXBzUHJvamVjdCh7IHByb2plY3RJZDogU3RyaW5nKHBJZCksIHByb2plY3ROYW1lOiBwTmFtZSB8fCAnJywgY2xpZW50TmFtZTogY05hbWUgfHwgJycgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RBZ2VudChvcmNoZXN0cmF0b3IpXG4gICAgc2V0U2Vzc2lvbk1ldGEobnVsbClcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY2hhdC1zZXNzaW9uLWNoYW5nZWQnKSlcbiAgfSwgW3Nlc3Npb25NZXRhLCBhZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnQsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgc2V0Q2hpcHNQcm9qZWN0LCBzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uXSlcblxuICBjb25zdCBzaG93TmV3Q2hhdCA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0XG4gIGNvbnN0IGhpZGVIZWFkZXJBZ2VudFNlbGVjdG9yID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzXG4gIC8vIE9yY2hlc3RyYXRvciBhYmllcnRvIGRlc2RlIGVsIGhlYWRlcjogZW4gZWwgcGFzbyAyIGRlbCBob21lIChjb250ZXh0byBwaW5lYWRvIGVuIGVsIGNoaXApXG4gIC8vIG1vc3RyYW1vcyBcInZvbHZlclwiIHBhcmEgbGltcGlhciBlbCBjb250ZXh0byB5IHZvbHZlciBhIGxhIGxpc3RhIGRlIGNvbnRleHRvcyByZWNpZW50ZXMuXG4gIGNvbnN0IHNob3dIZWFkZXJDb250ZXh0QmFja0J1dHRvbiA9XG4gICAgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiZcbiAgICBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgJiZcbiAgICBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSAmJlxuICAgICEhKHRhc2s/LmlkIHx8IGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IGNsaWVudD8uaWQgfHwgcHJvamVjdD8uaWQpICYmXG4gICAgIWhhc0Vycm9yICYmXG4gICAgIWxvYWRpbmdcbiAgY29uc3Qgc2hvd0JhY2tCdXR0b24gPVxuICAgIHNob3dIZWFkZXJDb250ZXh0QmFja0J1dHRvbiB8fFxuICAgIChhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJlxuICAgICAgYWdlbnQ/LmVudGl0eSAhPT0gJ2dsb2JhbCcgJiZcbiAgICAgICFoYXNFcnJvciAmJlxuICAgICAgIWxvYWRpbmcgJiZcbiAgICAgIChjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCB8fCAoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgc2VjdGlvbiAhPT0gJ3Rhc2snKSkpXG4gIGNvbnN0IGhhbmRsZU9wZW5NYXJrZXRwbGFjZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLm15QWdlbnRzKVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVHb1RvTWFpYWtlciA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBsZXQgbWFpYWtlckFnZW50ID0gYWdlbnRzLmRhdGEuZmluZCgoYTogQWdlbnQpID0+IGEudHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpXG4gICAgaWYgKCFtYWlha2VyQWdlbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9b3JjaGVzdHJhdG9yJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICBtYWlha2VyQWdlbnQgPSAoZGF0YS5kYXRhIHx8IFtdKS5maW5kKChhOiBBZ2VudCkgPT4gYS50eXBlID09PSAnb3JjaGVzdHJhdG9yJylcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFtYWlha2VyQWdlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZXRUYXNrPy4obnVsbClcbiAgICBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpXG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQoKVxuICAgIH1cbiAgfSwgW2FnZW50cy5kYXRhLCBpMThuLmxhbmd1YWdlLCBzZWxlY3RBZ2VudCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrXSlcbiAgY29uc3QgaGFuZGxlRGVsZXRlQWdlbnRGcm9tTXlBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICAoYWdlbnRJZDogc3RyaW5nKSA9PiB7XG4gICAgICByZW1vdmVBZ2VudChhZ2VudElkKVxuICAgICAgaWYgKGFnZW50Py5pZCA9PT0gYWdlbnRJZCkge1xuICAgICAgICBzZWxlY3RGaXJzdEFnZW50KGFnZW50SWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQ/LmlkLCByZW1vdmVBZ2VudCwgc2VsZWN0Rmlyc3RBZ2VudF1cbiAgKVxuXG4gIC8vIEVsIGZvb3RlciAoaW5wdXQpIHNlIG9jdWx0YSBzb2xvIGVuIGVsIGhvbWUgbWFya2V0cGxhY2UgZGUgTWFpYWtlciAoYnJvd3NlIGRlIGFnZW50ZXMpLlxuICAvLyBFbCBob21lIGRlbCBvcmNoZXN0cmF0b3Igc8OtIHBlcm1pdGUgZXNjcmliaXIsIGFzw60gcXVlIG1hbnRpZW5lIGVsIGZvb3Rlci5cbiAgY29uc3QgaGlkZUZvb3Rlck9uTWFpYWtlck1hcmtldHBsYWNlSG9tZSA9XG4gICAgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgaXNNYWlha2VyQWdlbnRTZWxlY3RlZCAmJiBhZ2VudD8udHlwZSAhPT0gJ29yY2hlc3RyYXRvcidcblxuICBjb25zdCBtb2RhbFBhbmVsID0gKFxuICAgIDw+XG4gICAgICB7dmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgJiYgIWlzRmxvYXRpbmcgPyAoXG4gICAgICAgIDxTaWRlYmFyXG4gICAgICAgICAgb25Hb1RvQ2hhdD17Z29Ub0NoYXR9XG4gICAgICAgICAgb25FcnJvcj17KCkgPT4gc2V0U2lkZWJhckhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgIGhhbmRsZUdvVG9Ib21lPXtoYW5kbGVHb0hvbWV9XG4gICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlPXtoYW5kbGVPcGVuTWFya2V0cGxhY2V9XG4gICAgICAgICAgc2hvd05ld0NoYXQ9e3Nob3dOZXdDaGF0fVxuICAgICAgICAgIHJlZmV0Y2hDaGF0cz17cmVmZXRjaENoYXRzfVxuICAgICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cz17c2V0UmVmZXRjaENoYXRzfVxuICAgICAgICAgIGhhc0Vycm9yPXtzaWRlYmFySGFzRXJyb3J9XG4gICAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWY9e3Jlc2V0U2VsZWN0ZWRDaGF0UmVmfVxuICAgICAgICAgIGFnZW50c05hdkFjdGl2ZT17c2lkZWJhckFnZW50c05hdkFjdGl2ZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFNDQ0FJTUNvbnRlbnQgZXhwYW5kZWQ9e2V4cGFuZGVkfSBmbG9hdGluZz17aXNGbG9hdGluZ30+XG4gICAgICAgIDxDaGF0QUlNb2RhbEhlYWRlclxuICAgICAgICAgIGxheW91dE1vZGU9e2xheW91dE1vZGV9XG4gICAgICAgICAgb25MYXlvdXRNb2RlQ2hhbmdlPXtzZXRMYXlvdXRNb2RlfVxuICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e2lzRmxvYXRpbmd9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9e2hhbmRsZURyYWdTdGFydH1cbiAgICAgICAgICBvbkRyYWdNb3ZlPXtoYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZURyYWdFbmR9XG4gICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgYWdlbnRzPXthZ2VudHMuZGF0YX1cbiAgICAgICAgICBoYXNFcnJvcj17ISFhZ2VudEVycm9yfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgbG9hZGluZ01vcmU9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgIGhhc01vcmU9e2FnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICBvbkFnZW50VXBkYXRlPXt1cGRhdGVBZ2VudEZhdm9yaXRlfVxuICAgICAgICAgIGxvYWRNb3JlQWdlbnRzPXtsb2FkTW9yZUFnZW50c31cbiAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgaGlkZUFnZW50U2VsZWN0b3I9e2hpZGVIZWFkZXJBZ2VudFNlbGVjdG9yfVxuICAgICAgICAgIHNob3dCYWNrQnV0dG9uPXtzaG93QmFja0J1dHRvbn1cbiAgICAgICAgICBvbkJhY2s9e2hhbmRsZUJhY2t9XG4gICAgICAgIC8+XG4gICAgICAgIHtoYXNFcnJvciA/IChcbiAgICAgICAgICA8TUFJQUVycm9yIC8+XG4gICAgICAgICkgOiB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSA/IChcbiAgICAgICAgICA8Q2hhdEFJQ29udGVudFxuICAgICAgICAgICAgY3VycmVudE9wdGlvbj17Y29tcHV0ZWRDdXJyZW50T3B0aW9ufVxuICAgICAgICAgICAgaGFuZGxlcnM9e3sgLi4uaGFuZGxlcnMsIGNoYXQ6IHN0YXJ0Q2hhdCwgaG9tZTogaGFuZGxlcnMuaG9tZSwgaGFuZGxlR29Ib21lIH19XG4gICAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRIYXNFcnJvcih0cnVlKX1cbiAgICAgICAgICAgIHJlZnM9e3sgdXNlckluaXRpYWxNZXNzYWdlLCBpbml0aWFsQ2hhdElkIH19XG4gICAgICAgICAgICBvblNlbmRNZXNzYWdlUmVhZHk9e2hhbmRsZVNlbmRNZXNzYWdlUmVhZHl9XG4gICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICBmbG9hdGluZz17aXNGbG9hdGluZ31cbiAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICBsb2FkaW5nQWdlbnRzPXtsb2FkaW5nfVxuICAgICAgICAgICAgb25EZWxldGVBZ2VudD17aGFuZGxlRGVsZXRlQWdlbnRGcm9tTXlBZ2VudHN9XG4gICAgICAgICAgICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBoYXNNb3JlQWdlbnRzPXshIWFnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICAgIGxvYWRpbmdNb3JlQWdlbnRzPXtsb2FkaW5nTW9yZX1cbiAgICAgICAgICAgIG9uTG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgICAgb25Hb1RvTWFpYWtlcj17aGFuZGxlR29Ub01haWFrZXJ9XG4gICAgICAgICAgICBhZ2VudEVycm9yPXthZ2VudEVycm9yfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFByb2plY3RTdW1tYXJ5Q29udGVudCBvblJlc3RhcnRTdW1tYXJ5PXtoYW5kbGVycy5ob21lfSAvPlxuICAgICAgICApfVxuICAgICAgICB7KChjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSAmJiAhIWFnZW50cz8uZGF0YT8ubGVuZ3RoKSB8fFxuICAgICAgICAgIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSAmJlxuICAgICAgICAgICFoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lICYmXG4gICAgICAgICAgIWhhc0Vycm9yICYmXG4gICAgICAgICAgIWxvYWRpbmcgJiZcbiAgICAgICAgICB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICA8Q2hhdEFpTW9kYWxGb290ZXJcbiAgICAgICAgICAgICAgYWdlbnQ9e2FnZW50fVxuICAgICAgICAgICAgICBoYW5kbGVTZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgIGhhbmRsZVN0b3BHZW5lcmF0aW9uPXtzdG9wR2VuZXJhdGlvbkZ1bmN0aW9ufVxuICAgICAgICAgICAgICBpc1N0cmVhbWluZz17aXNTdHJlYW1pbmd9XG4gICAgICAgICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICAgICAgICBjaGF0SWQ9e2luaXRpYWxDaGF0SWR9XG4gICAgICAgICAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICAgICAgICAgIHNob3dGYXFzPXtjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdH1cbiAgICAgICAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICAgICAgbGVnYWN5Q29udGV4dFNlc3Npb249e2xlZ2FjeUNvbnRleHRTZXNzaW9ufVxuICAgICAgICAgICAgICBvbkNvbnRpbnVlSW5OZXdDaGF0PXtoYW5kbGVDb250aW51ZUxlZ2FjeUNvbnRleHRJbk5ld0NoYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUNvbnRlbnQ+XG4gICAgPC8+XG4gIClcblxuICBjb25zdCBjb250ZW50V3JhcHBlciA9IChcbiAgICA8U0NDQUlNQ29udGVudFdyYXBwZXIgZXhwYW5kZWQ9e2V4cGFuZGVkfSBmbG9hdGluZz17aXNGbG9hdGluZ30gcmVmPXtjb250ZW50V3JhcHBlclJlZn0+XG4gICAgICB7bW9kYWxQYW5lbH1cbiAgICA8L1NDQ0FJTUNvbnRlbnRXcmFwcGVyPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICBzZWxlY3RvciAmJlxuICAgIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0NBSU1XcmFwcGVyXG4gICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgbGF5b3V0TW9kZT17bGF5b3V0TW9kZX1cbiAgICAgICAgZHJhZ1Bvc2l0aW9uPXtyZXNvbHZlZERyYWdQb3NpdGlvbn1cbiAgICAgICAgZWxldmF0ZWQ9e3NlY3Rpb24gPT09ICd0YXNrJ31cbiAgICAgID5cbiAgICAgICAgPEZsb2F0aW5nUGFuZWxNb3Rpb24gdGlsdD17dGlsdE1vdGlvbn0gZXhwYW5kZWQ9e2V4cGFuZGVkfT5cbiAgICAgICAgICB7Y29udGVudFdyYXBwZXJ9XG4gICAgICAgIDwvRmxvYXRpbmdQYW5lbE1vdGlvbj5cbiAgICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgICAgPEFibUFnZW50TW9kYWxcbiAgICAgICAgICAgIGFkZEFnZW50PXthZGRBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICAgIHJlbW92ZUFnZW50PXtyZW1vdmVBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50RmF2b3JpdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTbmFja2JhciAvPlxuICAgICAgPC9TQ0NBSU1XcmFwcGVyPixcbiAgICAgIHNlbGVjdG9yXG4gICAgKVxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Es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
884
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsIkNoYXRBSUNvbnRlbnQiLCJidWlsZEhhbmRsZXJzIiwib3B0aW9ucyIsIlNpZGViYXIiLCJ1c2VHZXRBZ2VudHMiLCJ1c2VHbG9iYWxDb250ZXh0IiwiQ2hhdEFJTW9kYWxIZWFkZXIiLCJTbmFja2JhciIsIlByb2plY3RTdW1tYXJ5Q29udGVudCIsIkFibUFnZW50TW9kYWwiLCJTRUNUSU9OUyIsIlNDQ0FJTUNvbnRlbnQiLCJTQ0NBSU1Db250ZW50V3JhcHBlciIsIlNDQ0FJTVdyYXBwZXIiLCJnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgiLCJGbG9hdGluZ1BhbmVsTW90aW9uIiwidXNlRmxvYXRpbmdQYW5lbERyYWdUaWx0IiwiQ2hhdEFpTW9kYWxGb290ZXIiLCJ2YWxpZGF0ZUlzTWFpYSIsInVzZUZhcXNTdG9yZSIsImZldGNoTWFpYSIsIm1hcENPUkxhbmciLCJFVkVOVFMiLCJ1c2VFdmVudCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkxFR0FDWV9DT05URVhUX0VOVElUSUVTIiwicmVzb2x2ZUFpQ2hhdEJhY2tEZXN0aW5hdGlvbiIsInNlY3Rpb24iLCJhZ2VudFR5cGUiLCJjdXJyZW50T3B0aW9uIiwiaG9tZU9wdGlvbiIsIklEX01PREFMX0NIQVRfQUdFTlQiLCJ2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZSIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJDaGF0QUlNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsIl9hZ2VudHMkZGF0YSIsImhhbmRsZUNsb3NlIiwidXNlciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwiaTE4biIsImFtcGxpdHVkRXZlbnQiLCJoYW5kbGVDbG9zZU1vZGFsIiwiZ2V0U3RhdGUiLCJjbGVhckZhcXMiLCJfdXNlU3RhdGUiLCJtZXNzYWdlIiwiYXR0YWNobWVudHMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJzZXRVc2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImluaXRpYWxDaGF0SWQiLCJzZXRJbml0aWFsQ2hhdElkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJuZXdDaGF0S2V5Iiwic2V0TmV3Q2hhdEtleSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2Vzc2lvbk1ldGEiLCJzZXRTZXNzaW9uTWV0YSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2VuZE1lc3NhZ2VGdW5jdGlvbiIsInNldFNlbmRNZXNzYWdlRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uIiwic2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNyIsImhvbWUiLCJfdXNlU3RhdGUxOCIsInNldEN1cnJlbnRPcHRpb24iLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsImhhbmRsZXJzIiwiX3VzZVN0YXRlMjEiLCJfdXNlU3RhdGUyMiIsInNpZGViYXJIYXNFcnJvciIsInNldFNpZGViYXJIYXNFcnJvciIsInJlc2V0U2VsZWN0ZWRDaGF0UmVmIiwibGFuZyIsImxhbmd1YWdlIiwibG9jYWxlIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsImFnZW50IiwicHJvamVjdCIsImNsaWVudCIsInRhc2siLCJjaGlwc1Byb2plY3QiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsInNldENsaWVudCIsInNldFByb2plY3QiLCJiYW5uZXJFbnRyeUZhcSIsInNldFRhc2siLCJ0b29sdGlwWkluZGV4IiwiX3VzZUdldEFnZW50cyIsImhhbmRsZUdvSG9tZSIsImFnZW50cyIsImxvYWRpbmciLCJsb2FkaW5nTW9yZSIsImFnZW50RXJyb3IiLCJlcnJvciIsImhhbmRsZUdldEFnZW50cyIsImxvYWRNb3JlQWdlbnRzIiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJzb3J0QWdlbnRzTGlzdCIsImlzTUFJQSIsInVzZXJIYXNQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwiZWRpdCIsImNvbXB1dGVkQ3VycmVudE9wdGlvbiIsImlzR2xvYmFsU3BlY2lhbGlzdCIsImVudGl0eSIsImlzUHJvamVjdFNwZWNpYWxpc3QiLCJpc0NsaWVudFNwZWNpYWxpc3QiLCJpc01haWFrZXIiLCJ0ZXN0IiwibmFtZSIsIm15QWdlbnRzIiwidHlwZSIsImNoYXQiLCJzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yIiwic2hvdWxkU2hvd0NsaWVudFNlbGVjdG9yIiwicHJvamVjdFNlbGVjdG9yIiwiY2xpZW50U2VsZWN0b3IiLCJpc01haWFrZXJBZ2VudFNlbGVjdGVkIiwic2lkZWJhckFnZW50c05hdkFjdGl2ZSIsImFnZW50c0ZldGNoZWRSZWYiLCJzZWxlY3RvciIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNvbmNhdCIsIl91c2VTdGF0ZTIzIiwiX2Jhbm5lckVudHJ5RmFxJGZhcVRpIiwiZmFxVGl0bGUiLCJ0cmltIiwiX3VzZVN0YXRlMjQiLCJsYXlvdXRNb2RlIiwic2V0TGF5b3V0TW9kZSIsImV4cGFuZGVkIiwiaXNGbG9hdGluZyIsImNvbnRlbnRXcmFwcGVyUmVmIiwiX3VzZVN0YXRlMjUiLCJfdXNlU3RhdGUyNiIsImRyYWdQb3NpdGlvbiIsInNldERyYWdQb3NpdGlvbiIsIl91c2VGbG9hdGluZ1BhbmVsRHJhZyIsInRpbHRNb3Rpb24iLCJzdGFydFBvaW50ZXJUcmFja2luZyIsInNhbXBsZVBvaW50ZXJNb3ZlIiwiZW5kUG9pbnRlclRyYWNraW5nIiwiZHJhZ1N0YXRlUmVmIiwiY2xhbXBEcmFnUG9zaXRpb24iLCJ4IiwieSIsImNvbnRlbnRXcmFwcGVyIiwiY3VycmVudCIsIl9jb250ZW50V3JhcHBlciRnZXRCbyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIndpZHRoIiwiaGVpZ2h0Iiwib2Zmc2V0IiwibWF4WCIsIk1hdGgiLCJtYXgiLCJpbm5lcldpZHRoIiwibWF4WSIsImlubmVySGVpZ2h0IiwibWluIiwicHJldiIsInBhZCIsImhhbmRsZURyYWdFbmQiLCJldmVudCIsIl9kcmFnU3RhdGVSZWYkY3VycmVudCIsInBvaW50ZXJJZCIsImJvZHkiLCJzdHlsZSIsInVzZXJTZWxlY3QiLCJjdXJzb3IiLCJoYW5kbGVEcmFnTW92ZSIsImRyYWdTdGF0ZSIsImNsaWVudFgiLCJjbGllbnRZIiwibmV4dFBvc2l0aW9uIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJyZXNvbHZlZERyYWdQb3NpdGlvbiIsImhhbmRsZURyYWdTdGFydCIsImJ1dHRvbiIsInRhcmdldCIsImNsb3Nlc3QiLCJyZWN0IiwiaW5pdGlhbFBvc2l0aW9uIiwibGVmdCIsInRvcCIsInBvaW50ZXJPZmZzZXRYIiwicG9pbnRlck9mZnNldFkiLCJjdXJyZW50VGFyZ2V0Iiwic2V0UG9pbnRlckNhcHR1cmUiLCJwcmV2ZW50RGVmYXVsdCIsImFpQ2hhdERyYWdnYWJsZSIsInN0YXJ0Q2hhdCIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJtZW50aW9ucyIsImZ1YUlkIiwic2NJZCIsImNvbnRleHREYXRhIiwiX29iamVjdFNwcmVhZCIsImxlbmd0aCIsImJhbm5lckZhcUF1dG9TZW50UmVmIiwiX2Jhbm5lckVudHJ5RmFxJGZhcVRpMiIsImVudGl0eVJlYWR5IiwiQm9vbGVhbiIsImlkIiwidW5kZWZpbmVkIiwiZ29Ub0NoYXQiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsInNlbGVjdGVkQWdlbnQiLCJkYXRhIiwiZmluZCIsImFnZW50SXRlbSIsImFnZW50SWQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJoYW5kbGVTZW5kTWVzc2FnZVJlYWR5Iiwic2VuZE1lc3NhZ2UiLCJzdG9wR2VuZXJhdGlvbiIsInN0cmVhbWluZyIsIndyaXRpbmciLCJoYW5kbGVTZW5kTWVzc2FnZSIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCJwcm9qZWN0X2RlbGV0ZWQiLCJoYW5kbGVSZXNldENoYXQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJzdG9wIiwiaGFuZGxlQmFjayIsInRvIiwiYWlDaGF0QmFjayIsIm9uTWVyZ2VDcmVhdGVkQWdlbnQiLCJldnQiLCJfcmVmMyIsImRldGFpbCIsIm5leHRBZ2VudCIsIm5hdmlnYXRlSG9tZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25TeW5jRWRpdGVkQWdlbnQiLCJfcmVmNCIsIm9wZW5DaGF0VmlldyIsIm9wZW5OZXdDaGF0V2l0aEFnZW50IiwiX2RldGFpbCRwcm9qZWN0IiwiX2RldGFpbCRjbGllbnQiLCJfcmVmNSIsIm9uU2Vzc2lvbk1ldGEiLCJfcmVmNiIsImxlZ2FjeUNvbnRleHRTZXNzaW9uIiwiYWdlbnRFbnRpdHkiLCJpbmNsdWRlcyIsImNvbnRleHROYW1lIiwidGFza05hbWUiLCJwcm9qZWN0TmFtZSIsImNsaWVudE5hbWUiLCJlbnRpdHlUeXBlIiwiaXNfbGVnYWN5X2NvbnRleHQiLCJoYW5kbGVDb250aW51ZUxlZ2FjeUNvbnRleHRJbk5ld0NoYXQiLCJwSWQiLCJwcm9qZWN0SWQiLCJwTmFtZSIsImNJZCIsImNsaWVudElkIiwiY05hbWUiLCJ0SWQiLCJ0YXNrSWQiLCJ0TmFtZSIsIm9yY2hlc3RyYXRvciIsImEiLCJTdHJpbmciLCJzaG93TmV3Q2hhdCIsImhpZGVIZWFkZXJBZ2VudFNlbGVjdG9yIiwic2hvd0hlYWRlckNvbnRleHRCYWNrQnV0dG9uIiwic2hvd0JhY2tCdXR0b24iLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJoYW5kbGVHb1RvTWFpYWtlciIsIl9jYWxsZWUyIiwibWFpYWtlckFnZW50IiwicmVzcG9uc2UiLCJfdCIsIl9jb250ZXh0MiIsInBhdGgiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImFicnVwdCIsImhhbmRsZURlbGV0ZUFnZW50RnJvbU15QWdlbnRzIiwiaGlkZUZvb3Rlck9uTWFpYWtlck1hcmtldHBsYWNlSG9tZSIsIm1vZGFsUGFuZWwiLCJjaGlsZHJlbiIsIm9uR29Ub0NoYXQiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJhZ2VudHNOYXZBY3RpdmUiLCJmbG9hdGluZyIsIm9uTGF5b3V0TW9kZUNoYW5nZSIsImRyYWdnYWJsZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsImhhc01vcmUiLCJoYXNfbW9yZSIsIm9uQWdlbnRVcGRhdGUiLCJoaWRlQWdlbnRTZWxlY3RvciIsIm9uQmFjayIsInJlZnMiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJsb2FkaW5nQWdlbnRzIiwib25EZWxldGVBZ2VudCIsIm9uRmF2b3JpdGVBZ2VudFVwZGF0ZSIsImhhc01vcmVBZ2VudHMiLCJsb2FkaW5nTW9yZUFnZW50cyIsIm9uTG9hZE1vcmVBZ2VudHMiLCJvbkdvVG9NYWlha2VyIiwib25SZXN0YXJ0U3VtbWFyeSIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiY2hhdElkIiwic2hvd0ZhcXMiLCJvbkNvbnRpbnVlSW5OZXdDaGF0IiwicmVmIiwiY3JlYXRlUG9ydGFsIiwiZWxldmF0ZWQiLCJ0aWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL0NoYXRBSU1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQge1xuICBSZWZPYmplY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbiAgdXNlUmVmLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgUG9pbnRlckV2ZW50IGFzIFJlYWN0UG9pbnRlckV2ZW50LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUVycm9yJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5cbmltcG9ydCB7IENoYXRBSUNvbnRlbnQgfSBmcm9tICcuLi9DaGF0QUlDb250ZW50J1xuaW1wb3J0IHsgYnVpbGRIYW5kbGVycywgb3B0aW9ucyB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gJy4uL1NpZGViYXInXG5pbXBvcnQgeyB1c2VHZXRBZ2VudHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0LCB0eXBlIFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgQ2hhdEFJTW9kYWxIZWFkZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxIZWFkZXIvQ2hhdEFpTW9kYWxIZWFkZXInXG5pbXBvcnQgeyBTbmFja2JhciB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9TbmFja0Jhci9TbmFja2JhcidcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcbmltcG9ydCB7IEFibUFnZW50TW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvQWJtQWdlbnRNb2RhbC9BYm1BZ2VudE1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgU0NDQUlNQ29udGVudCwgU0NDQUlNQ29udGVudFdyYXBwZXIsIFNDQ0FJTVdyYXBwZXIgfSBmcm9tICcuL0NoYXRBSU1vZGFsLnN0eWxlcydcbmltcG9ydCB7IGdldE1haWFGbG9hdGluZ1BhbmVsV2lkdGhQeCwgTWFpYUNoYXRNb2RhbExheW91dE1vZGUgfSBmcm9tICcuL2xheW91dCdcbmltcG9ydCB7IEZsb2F0aW5nUGFuZWxNb3Rpb24sIHVzZUZsb2F0aW5nUGFuZWxEcmFnVGlsdCB9IGZyb20gJy4vZmxvYXRpbmdQYW5lbE1vdGlvbidcbmltcG9ydCB7IENoYXRBaU1vZGFsRm9vdGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0NoYXRBaU1vZGFsRm9vdGVyJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9UYXNrJ1xuaW1wb3J0IHsgdXNlRmFxc1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvdXNlRmFxc1N0b3JlJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcblxudHlwZSBDaGF0QUlNb2RhbFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHBhcmVudFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbn1cblxuLyoqIE1ldGFkYXRhIGRlIGxhIHNlc3Npb24gYWJpZXJ0YSAoZW1pdGlkYSBwb3IgdXNlQ2hhdE1lc3NhZ2VzIGFsIGNhcmdhciB1bmEgY29udmVyc2FjacOzbikuICovXG50eXBlIFNlc3Npb25NZXRhID0ge1xuICBjaGF0SWQ6IHN0cmluZ1xuICBhZ2VudFR5cGU/OiBzdHJpbmdcbiAgYWdlbnRFbnRpdHk/OiBzdHJpbmdcbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbiAgdGFza0lkPzogbnVtYmVyXG4gIHRhc2tOYW1lPzogc3RyaW5nXG59XG5cbmNvbnN0IExFR0FDWV9DT05URVhUX0VOVElUSUVTID0gWydwcm9qZWN0JywgJ3Rhc2snLCAnY2xpZW50J10gYXMgY29uc3RcbnR5cGUgTGVnYWN5Q29udGV4dEVudGl0eSA9ICh0eXBlb2YgTEVHQUNZX0NPTlRFWFRfRU5USVRJRVMpW251bWJlcl1cblxudHlwZSBBaUNoYXRCYWNrRGVzdGluYXRpb24gPSAnZ2xvYmFsX2NvbnRleHRfaG9tZScgfCAndGFza19ob21lJyB8ICdwcm9qZWN0X2hvbWUnIHwgJ2NsaWVudF9ob21lJ1xuXG5jb25zdCByZXNvbHZlQWlDaGF0QmFja0Rlc3RpbmF0aW9uID0gKFxuICBzZWN0aW9uOiBTZWN0aW9uLFxuICBhZ2VudFR5cGU6IEFnZW50Wyd0eXBlJ10gfCB1bmRlZmluZWQsXG4gIGN1cnJlbnRPcHRpb246IHN0cmluZyxcbiAgaG9tZU9wdGlvbjogc3RyaW5nXG4pOiBBaUNoYXRCYWNrRGVzdGluYXRpb24gPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgYWdlbnRUeXBlID09PSAnb3JjaGVzdHJhdG9yJyAmJiBjdXJyZW50T3B0aW9uID09PSBob21lT3B0aW9uKSB7XG4gICAgcmV0dXJuICdnbG9iYWxfY29udGV4dF9ob21lJ1xuICB9XG4gIGlmIChzZWN0aW9uID09PSAndGFzaycpIHJldHVybiAndGFza19ob21lJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3Byb2plY3QnKSByZXR1cm4gJ3Byb2plY3RfaG9tZSdcbiAgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSByZXR1cm4gJ2NsaWVudF9ob21lJ1xuICByZXR1cm4gJ2dsb2JhbF9jb250ZXh0X2hvbWUnXG59XG5cbmV4cG9ydCBjb25zdCBJRF9NT0RBTF9DSEFUX0FHRU5UID0gJ21vZGFscy1wb3J0YWwtbWFpYS1jaGF0LWFnZW50J1xuXG5jb25zdCB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZSA9IChzZWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICh3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snKSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1vZGFsID0gKHsgaGFuZGxlQ2xvc2UgfTogQ2hhdEFJTW9kYWxQcm9wcykgPT4ge1xuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgYW1wbGl0dWRFdmVudCA9IHVzZUV2ZW50KClcblxuICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHVzZUZhcXNTdG9yZS5nZXRTdGF0ZSgpLmNsZWFyRmFxcygpXG4gICAgaGFuZGxlQ2xvc2U/LigpXG4gIH0sIFtoYW5kbGVDbG9zZV0pXG4gIGNvbnN0IFt1c2VySW5pdGlhbE1lc3NhZ2UsIHNldFVzZXJJbml0aWFsTWVzc2FnZV0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgICBmYXFJZD86IHN0cmluZ1xuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdXG4gICAgZnVhSWQ/OiBzdHJpbmdcbiAgICBzY0lkPzogc3RyaW5nXG4gICAgY29udGV4dERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICB9Pih7XG4gICAgbWVzc2FnZTogJycsXG4gICAgYXR0YWNobWVudHM6IFtdLFxuICB9KVxuICBjb25zdCBbaW5pdGlhbENoYXRJZCwgc2V0SW5pdGlhbENoYXRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbbmV3Q2hhdEtleSwgc2V0TmV3Q2hhdEtleV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbc2Vzc2lvbk1ldGEsIHNldFNlc3Npb25NZXRhXSA9IHVzZVN0YXRlPFNlc3Npb25NZXRhIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHNldFNlbmRNZXNzYWdlRnVuY3Rpb25dID0gdXNlU3RhdGU8XG4gICAgfCAoKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW10sXG4gICAgICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgICAgICBzY0lkPzogc3RyaW5nXG4gICAgICApID0+IHZvaWQpXG4gICAgfCBudWxsXG4gID4obnVsbClcbiAgY29uc3QgW3N0b3BHZW5lcmF0aW9uRnVuY3Rpb24sIHNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb25dID0gdXNlU3RhdGU8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzU3RyZWFtaW5nLCBzZXRJc1N0cmVhbWluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzV3JpdGluZywgc2V0SXNXcml0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IFtyZWZldGNoQ2hhdHMsIHNldFJlZmV0Y2hDaGF0c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnRPcHRpb24sIHNldEN1cnJlbnRPcHRpb25dID0gdXNlU3RhdGUob3B0aW9ucy5ob21lKVxuICBjb25zdCBbaGFzRXJyb3IsIHNldEhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBoYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4gYnVpbGRIYW5kbGVycyhzZXRDdXJyZW50T3B0aW9uLCBzZXRIYXNFcnJvciksIFtdKVxuICBjb25zdCBbc2lkZWJhckhhc0Vycm9yLCBzZXRTaWRlYmFySGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHJlc2V0U2VsZWN0ZWRDaGF0UmVmID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0LWJyJyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBtb21lbnQubG9jYWxlKGxhbmcpXG5cbiAgY29uc3Qge1xuICAgIHNlbGVjdEFnZW50LFxuICAgIHNlY3Rpb24sXG4gICAgYWdlbnQsXG4gICAgcHJvamVjdCxcbiAgICBjbGllbnQsXG4gICAgdGFzayxcbiAgICBjaGlwc1Byb2plY3QsXG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgICBzZXRDbGllbnQsXG4gICAgc2V0UHJvamVjdCxcbiAgICBiYW5uZXJFbnRyeUZhcSxcbiAgICBzZXRUYXNrLFxuICB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgLy8gWi1pbmRleCBwYXJhIHRvb2x0aXBzIGVuIHNlY3Rpb24gJ3Rhc2snIChtb2RhbCBmbG90YW50ZSBlbGV2YWRvKVxuICBjb25zdCB0b29sdGlwWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnb3ZlcmxheScpXG5cbiAgY29uc3Qge1xuICAgIGFnZW50cyxcbiAgICBsb2FkaW5nLFxuICAgIGxvYWRpbmdNb3JlLFxuICAgIGVycm9yOiBhZ2VudEVycm9yLFxuICAgIGhhbmRsZUdldEFnZW50cyxcbiAgICBsb2FkTW9yZUFnZW50cyxcbiAgICBhZGRBZ2VudCxcbiAgICByZW1vdmVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudEZhdm9yaXRlLFxuICAgIHNlbGVjdEZpcnN0QWdlbnQsXG4gICAgc29ydEFnZW50c0xpc3QsXG4gIH0gPSB1c2VHZXRBZ2VudHMoeyBzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGhhbmRsZUdvSG9tZTogaGFuZGxlcnMuaG9tZSB9KVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuXG4gIGNvbnN0IHVzZXJIYXNQZXJtaXNzaW9ucyA9XG4gICAgKHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSB8fFxuICAgICAgdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uZWRpdCB8fFxuICAgICAgdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uZGVsZXRlKSAmJlxuICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgY29uc3QgY29tcHV0ZWRDdXJyZW50T3B0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaXNHbG9iYWxTcGVjaWFsaXN0ID0gaXNNQUlBICYmIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnXG4gICAgY29uc3QgaXNQcm9qZWN0U3BlY2lhbGlzdCA9IGlzTUFJQSAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT0gbnVsbClcbiAgICBjb25zdCBpc0NsaWVudFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCdcbiAgICBjb25zdCBpc01haWFrZXIgPSBpc0dsb2JhbFNwZWNpYWxpc3QgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYWdlbnQ/Lm5hbWUgfHwgJycpXG5cbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5teUFnZW50cyAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUykge1xuICAgICAgcmV0dXJuIG9wdGlvbnMubXlBZ2VudHNcbiAgICB9XG5cbiAgICAvLyBFbCBvcmNoZXN0cmF0b3IgKE1BSUEpIG11ZXN0cmEgc3UgaG9tZSBjb24gRkFRcy9hY2Npb25lcyBmcmVjdWVudGVzOyBlbCByZXN0byBkZVxuICAgIC8vIGxvcyBnbG9iYWwgc3BlY2lhbGlzdHMgKGNsb25lcyBnbG9iYWxlcyBuby1tYWlha2VyKSBzaWd1ZW4geWVuZG8gZGlyZWN0byBhbCBjaGF0LlxuICAgIGlmIChpc0dsb2JhbFNwZWNpYWxpc3QgJiYgIWlzTWFpYWtlciAmJiBhZ2VudD8udHlwZSAhPT0gJ29yY2hlc3RyYXRvcicgJiYgY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5jaGF0XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Byb2plY3RTZWxlY3RvciA9IGN1cnJlbnRPcHRpb24gIT09IG9wdGlvbnMuY2hhdCAmJiBpc1Byb2plY3RTcGVjaWFsaXN0ICYmICFwcm9qZWN0XG4gICAgY29uc3Qgc2hvdWxkU2hvd0NsaWVudFNlbGVjdG9yID0gY3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0ICYmIGlzQ2xpZW50U3BlY2lhbGlzdCAmJiAhY2xpZW50XG5cbiAgICBpZiAoc2hvdWxkU2hvd1Byb2plY3RTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMucHJvamVjdFNlbGVjdG9yXG4gICAgfVxuICAgIGlmIChzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmNsaWVudFNlbGVjdG9yXG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50T3B0aW9uXG4gIH0sIFtjdXJyZW50T3B0aW9uLCBwcm9qZWN0LCBjbGllbnQsIGlzTUFJQSwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/Lm5hbWUsIGFnZW50Py50eXBlXSlcblxuICBjb25zdCBpc01haWFrZXJBZ2VudFNlbGVjdGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InIHx8XG4gICAgICAoaXNNQUlBICYmXG4gICAgICAgIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmXG4gICAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmXG4gICAgICAgIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKSksXG4gICAgW2lzTUFJQSwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGFnZW50Py5uYW1lXVxuICApXG5cbiAgY29uc3Qgc2lkZWJhckFnZW50c05hdkFjdGl2ZSA9IHVzZU1lbW8oKCk6ICdtYWlha2VyJyB8ICdteUFnZW50cycgfCBudWxsID0+IHtcbiAgICBpZiAoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzKSByZXR1cm4gJ215QWdlbnRzJ1xuICAgIGlmIChpc01haWFrZXJBZ2VudFNlbGVjdGVkKSByZXR1cm4gJ21haWFrZXInXG4gICAgcmV0dXJuIG51bGxcbiAgfSwgW2NvbXB1dGVkQ3VycmVudE9wdGlvbiwgaXNNYWlha2VyQWdlbnRTZWxlY3RlZF0pXG5cbiAgLyogUmVhY3RpdmFyIGNvbiBsYSBmaWxhIOKAnE1pcyBhZ2VudGVz4oCdIGVuIFNpZGViYXI6IG15QWdlbnRzQ291bnQgcHJvcFxuICBjb25zdCBzaWRlYmFyTXlBZ2VudHNDb3VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBhZ2VudHMuZGF0YS5maWx0ZXIoXG4gICAgICBhID0+ICEoYS50eXBlID09PSAnb3JjaGVzdHJhdG9yJyB8fCAoYS50eXBlID09PSAnY2xvbmUnICYmIGEuZW50aXR5ID09PSAnZ2xvYmFsJyAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhLm5hbWUgfHwgJycpKSlcbiAgICApXG4gICAgICAubGVuZ3RoXG4gIH0sIFthZ2VudHMuZGF0YV0pXG4gICovXG5cbiAgY29uc3QgYWdlbnRzRmV0Y2hlZFJlZiA9IHVzZVJlZihmYWxzZSlcblxuICBjb25zdCBzZWxlY3RvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke0lEX01PREFMX0NIQVRfQUdFTlR9YClcblxuICAvLyBUYXNrIHBhbmVsIHkgYmFubmVyIGRlIHByb3llY3RvIGFicmVuIGVuIGZsb3RhbnRlIHBvciBkZWZhdWx0IChubyB0YXBhciBlbCBjb250ZXh0byBkZXRyw6FzKS5cbiAgLy8gRWwgdXN1YXJpbyBwdWVkZSBjYW1iaWFyIGEgc2lkZWJhci9mdWxsc2NyZWVuIGRlc2RlIGxvcyBjb250cm9sZXMgZGVsIG1vZGFsLlxuICBjb25zdCBbbGF5b3V0TW9kZSwgc2V0TGF5b3V0TW9kZV0gPSB1c2VTdGF0ZTxNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZT4oKCkgPT4ge1xuICAgIGlmIChzZWN0aW9uID09PSAndGFzaycpIHJldHVybiAnZmxvYXRpbmcnXG4gICAgaWYgKGJhbm5lckVudHJ5RmFxPy5mYXFUaXRsZT8udHJpbSgpKSByZXR1cm4gJ2Zsb2F0aW5nJ1xuICAgIHJldHVybiAnc2lkZWJhcidcbiAgfSlcbiAgY29uc3QgZXhwYW5kZWQgPSBsYXlvdXRNb2RlID09PSAnZnVsbHNjcmVlbidcbiAgY29uc3QgaXNGbG9hdGluZyA9IGxheW91dE1vZGUgPT09ICdmbG9hdGluZydcbiAgY29uc3QgY29udGVudFdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtkcmFnUG9zaXRpb24sIHNldERyYWdQb3NpdGlvbl0gPSB1c2VTdGF0ZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfCBudWxsPihudWxsKVxuICBjb25zdCB7IHRpbHRNb3Rpb24sIHN0YXJ0UG9pbnRlclRyYWNraW5nLCBzYW1wbGVQb2ludGVyTW92ZSwgZW5kUG9pbnRlclRyYWNraW5nIH0gPVxuICAgIHVzZUZsb2F0aW5nUGFuZWxEcmFnVGlsdChpc0Zsb2F0aW5nKVxuICBjb25zdCBkcmFnU3RhdGVSZWYgPSB1c2VSZWY8e1xuICAgIHBvaW50ZXJJZDogbnVtYmVyXG4gICAgb2Zmc2V0WDogbnVtYmVyXG4gICAgb2Zmc2V0WTogbnVtYmVyXG4gIH0gfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGNsYW1wRHJhZ1Bvc2l0aW9uID0gdXNlQ2FsbGJhY2soKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY29udGVudFdyYXBwZXIgPSBjb250ZW50V3JhcHBlclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250ZW50V3JhcHBlcikge1xuICAgICAgcmV0dXJuIHsgeCwgeSB9XG4gICAgfVxuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBjb250ZW50V3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IG9mZnNldCA9IDE2XG4gICAgY29uc3QgbWF4WCA9IE1hdGgubWF4KG9mZnNldCwgd2luZG93LmlubmVyV2lkdGggLSB3aWR0aCAtIG9mZnNldClcbiAgICBjb25zdCBtYXhZID0gTWF0aC5tYXgob2Zmc2V0LCB3aW5kb3cuaW5uZXJIZWlnaHQgLSBoZWlnaHQgLSBvZmZzZXQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgeDogTWF0aC5taW4oTWF0aC5tYXgoeCwgb2Zmc2V0KSwgbWF4WCksXG4gICAgICB5OiBNYXRoLm1pbihNYXRoLm1heCh5LCBvZmZzZXQpLCBtYXhZKSxcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxheW91dE1vZGUgIT09ICdmbG9hdGluZycpIHtcbiAgICAgIHNldERyYWdQb3NpdGlvbihudWxsKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgc2V0RHJhZ1Bvc2l0aW9uKHByZXYgPT4ge1xuICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgcmV0dXJuIGNsYW1wRHJhZ1Bvc2l0aW9uKHByZXYueCwgcHJldi55KVxuICAgICAgfVxuICAgICAgY29uc3QgcGFkID0gMTZcbiAgICAgIGNvbnN0IHggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGdldE1haWFGbG9hdGluZ1BhbmVsV2lkdGhQeCgpIC0gcGFkXG4gICAgICByZXR1cm4gY2xhbXBEcmFnUG9zaXRpb24oeCwgcGFkKVxuICAgIH0pXG4gIH0sIFtsYXlvdXRNb2RlLCBjbGFtcERyYWdQb3NpdGlvbl0pXG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBlbmRQb2ludGVyVHJhY2tpbmcoKVxuICAgICAgaWYgKGRyYWdTdGF0ZVJlZi5jdXJyZW50Py5wb2ludGVySWQgIT09IGV2ZW50LnBvaW50ZXJJZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZHJhZ1N0YXRlUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnJ1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJ1xuICAgIH0sXG4gICAgW2VuZFBvaW50ZXJUcmFja2luZ11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZURyYWdNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGNvbnN0IGRyYWdTdGF0ZSA9IGRyYWdTdGF0ZVJlZi5jdXJyZW50XG4gICAgICBpZiAoIWRyYWdTdGF0ZSB8fCBkcmFnU3RhdGUucG9pbnRlcklkICE9PSBldmVudC5wb2ludGVySWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNhbXBsZVBvaW50ZXJNb3ZlKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpXG5cbiAgICAgIGNvbnN0IG5leHRQb3NpdGlvbiA9IGNsYW1wRHJhZ1Bvc2l0aW9uKGV2ZW50LmNsaWVudFggLSBkcmFnU3RhdGUub2Zmc2V0WCwgZXZlbnQuY2xpZW50WSAtIGRyYWdTdGF0ZS5vZmZzZXRZKVxuXG4gICAgICBzZXREcmFnUG9zaXRpb24ocHJldiA9PiB7XG4gICAgICAgIGlmIChwcmV2ICYmIHByZXYueCA9PT0gbmV4dFBvc2l0aW9uLnggJiYgcHJldi55ID09PSBuZXh0UG9zaXRpb24ueSkge1xuICAgICAgICAgIHJldHVybiBwcmV2XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHRQb3NpdGlvblxuICAgICAgfSlcbiAgICB9LFxuICAgIFtjbGFtcERyYWdQb3NpdGlvbiwgc2FtcGxlUG9pbnRlck1vdmVdXG4gIClcblxuICBjb25zdCByZXNvbHZlZERyYWdQb3NpdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChsYXlvdXRNb2RlICE9PSAnZmxvYXRpbmcnKSB7XG4gICAgICByZXR1cm4gZHJhZ1Bvc2l0aW9uXG4gICAgfVxuICAgIGlmIChkcmFnUG9zaXRpb24pIHtcbiAgICAgIHJldHVybiBkcmFnUG9zaXRpb25cbiAgICB9XG4gICAgY29uc3QgcGFkID0gMTZcbiAgICBjb25zdCB4ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cuaW5uZXJXaWR0aCAtIGdldE1haWFGbG9hdGluZ1BhbmVsV2lkdGhQeCgpIC0gcGFkIDogcGFkXG4gICAgcmV0dXJuIGNsYW1wRHJhZ1Bvc2l0aW9uKHgsIHBhZClcbiAgfSwgW2xheW91dE1vZGUsIGRyYWdQb3NpdGlvbiwgY2xhbXBEcmFnUG9zaXRpb25dKVxuXG4gIGNvbnN0IGhhbmRsZURyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIWlzRmxvYXRpbmcgfHwgZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgIGlmICh0YXJnZXQuY2xvc2VzdCgnYnV0dG9uLCBhLCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgW3JvbGU9XCJidXR0b25cIl0sIFtkYXRhLW5vLWRyYWc9XCJ0cnVlXCJdJykpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRXcmFwcGVyID0gY29udGVudFdyYXBwZXJSZWYuY3VycmVudFxuICAgICAgaWYgKCFjb250ZW50V3JhcHBlcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVjdCA9IGNvbnRlbnRXcmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBpbml0aWFsUG9zaXRpb24gPSByZXNvbHZlZERyYWdQb3NpdGlvbiA/PyBjbGFtcERyYWdQb3NpdGlvbihyZWN0LmxlZnQsIHJlY3QudG9wKVxuICAgICAgY29uc3QgcG9pbnRlck9mZnNldFggPSBldmVudC5jbGllbnRYIC0gaW5pdGlhbFBvc2l0aW9uLnhcbiAgICAgIGNvbnN0IHBvaW50ZXJPZmZzZXRZID0gZXZlbnQuY2xpZW50WSAtIGluaXRpYWxQb3NpdGlvbi55XG5cbiAgICAgIHNldERyYWdQb3NpdGlvbihpbml0aWFsUG9zaXRpb24pXG4gICAgICBkcmFnU3RhdGVSZWYuY3VycmVudCA9IHtcbiAgICAgICAgcG9pbnRlcklkOiBldmVudC5wb2ludGVySWQsXG4gICAgICAgIG9mZnNldFg6IHBvaW50ZXJPZmZzZXRYLFxuICAgICAgICBvZmZzZXRZOiBwb2ludGVyT2Zmc2V0WSxcbiAgICAgIH1cblxuICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdCA9ICdub25lJ1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXREcmFnZ2FibGUpXG4gICAgICBzdGFydFBvaW50ZXJUcmFja2luZyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKVxuICAgIH0sXG4gICAgW2NsYW1wRHJhZ1Bvc2l0aW9uLCBpc0Zsb2F0aW5nLCByZXNvbHZlZERyYWdQb3NpdGlvbiwgc3RhcnRQb2ludGVyVHJhY2tpbmddXG4gIClcblxuICBjb25zdCBzdGFydENoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBtZXNzYWdlPzogc3RyaW5nLFxuICAgICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgICAgc2NJZD86IHN0cmluZyxcbiAgICAgIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICApID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHtcbiAgICAgICAgc2V0U2lkZWJhckhhc0Vycm9yKGZhbHNlKVxuICAgICAgfVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSB8fCAnJyxcbiAgICAgICAgYXR0YWNobWVudHM6IGF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgICAuLi4oZmFxSWQgPyB7IGZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihhZ2VudFN1Z2dlc3Rpb25JZCA/IHsgYWdlbnRTdWdnZXN0aW9uSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKG1lbnRpb25zICYmIG1lbnRpb25zLmxlbmd0aCA+IDAgPyB7IG1lbnRpb25zIH0gOiB7fSksXG4gICAgICAgIC4uLihmdWFJZCA/IHsgZnVhSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKHNjSWQgPyB7IHNjSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGNvbnRleHREYXRhID8geyBjb250ZXh0RGF0YSB9IDoge30pLFxuICAgICAgfSlcbiAgICAgIGhhbmRsZXJzLmNoYXQoKVxuICAgIH0sXG4gICAgW2hhbmRsZXJzLCBzaWRlYmFySGFzRXJyb3JdXG4gIClcblxuICBjb25zdCBiYW5uZXJGYXFBdXRvU2VudFJlZiA9IHVzZVJlZihmYWxzZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVudGl0eVJlYWR5ID0gc2VjdGlvbiA9PT0gJ3Byb2plY3QnID8gQm9vbGVhbihwcm9qZWN0Py5pZCkgOiBzZWN0aW9uID09PSAnY2xpZW50JyA/IEJvb2xlYW4oY2xpZW50Py5pZCkgOiB0cnVlXG5cbiAgICBpZiAoIWJhbm5lckVudHJ5RmFxPy5mYXFUaXRsZT8udHJpbSgpIHx8IGJhbm5lckZhcUF1dG9TZW50UmVmLmN1cnJlbnQgfHwgbG9hZGluZyB8fCAhYWdlbnQ/LmlkIHx8ICFlbnRpdHlSZWFkeSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYmFubmVyRmFxQXV0b1NlbnRSZWYuY3VycmVudCA9IHRydWVcbiAgICBzdGFydENoYXQoXG4gICAgICBiYW5uZXJFbnRyeUZhcS5mYXFUaXRsZSxcbiAgICAgIFtdLFxuICAgICAgYmFubmVyRW50cnlGYXEuZmFxSWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBiYW5uZXJFbnRyeUZhcS5jb250ZXh0RGF0YVxuICAgIClcbiAgfSwgW1xuICAgIGJhbm5lckVudHJ5RmFxPy5mYXFJZCxcbiAgICBiYW5uZXJFbnRyeUZhcT8uZmFxVGl0bGUsXG4gICAgYmFubmVyRW50cnlGYXE/LmNvbnRleHREYXRhLFxuICAgIGxvYWRpbmcsXG4gICAgYWdlbnQ/LmlkLFxuICAgIGFnZW50Py5lbnRpdHksXG4gICAgcHJvamVjdD8uaWQsXG4gICAgY2xpZW50Py5pZCxcbiAgICBzZWN0aW9uLFxuICAgIHN0YXJ0Q2hhdCxcbiAgXSlcblxuICBjb25zdCBnb1RvQ2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIChjaGF0OiBhbnkpID0+IHtcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIGNvbnN0IHNlbGVjdGVkQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKGFnZW50SXRlbSA9PiBhZ2VudEl0ZW0uaWQgPT09IGNoYXQuYWdlbnRJZClcbiAgICAgIGlmIChzZWxlY3RlZEFnZW50KSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHNlbGVjdGVkQWdlbnQpXG4gICAgICB9XG4gICAgICAvLyBEaXNwYXRjaCBldmVudCB0byBjbGVhciB0aGUgaW5wdXQgdGV4dGFyZWFcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIGFnZW50cywgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZVJlYWR5ID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgc2VuZE1lc3NhZ2U6IChcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgICBmdWFJZD86IHN0cmluZyxcbiAgICAgICAgc2NJZD86IHN0cmluZ1xuICAgICAgKSA9PiB2b2lkLFxuICAgICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgICBzdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgICB3cml0aW5nOiBib29sZWFuXG4gICAgKSA9PiB7XG4gICAgICBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uKCgpID0+IHNlbmRNZXNzYWdlKVxuICAgICAgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbigoKSA9PiBzdG9wR2VuZXJhdGlvbilcbiAgICAgIHNldElzU3RyZWFtaW5nKHN0cmVhbWluZylcbiAgICAgIHNldElzV3JpdGluZyh3cml0aW5nKVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgICAgc2NJZD86IHN0cmluZ1xuICAgICkgPT4ge1xuICAgICAgaWYgKHNpZGViYXJIYXNFcnJvcikge1xuICAgICAgICBzZXRTaWRlYmFySGFzRXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgICBpZiAoc2VuZE1lc3NhZ2VGdW5jdGlvbiAmJiBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgICBzZW5kTWVzc2FnZUZ1bmN0aW9uKG1lc3NhZ2UsIGF0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQsIG1lbnRpb25zLCBmdWFJZCwgc2NJZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0Q2hhdChtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQsIHNjSWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc3RhcnRDaGF0LCBjb21wdXRlZEN1cnJlbnRPcHRpb24sIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdvSG9tZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTaSBlc3RhbW9zIGVuIHVuYSBjb252ZXJzYWNpw7NuIHkgdmFtb3MgYSBob21lLCByZXNldGVhciBpbml0aWFsQ2hhdElkIHkgaW5jcmVtZW50YXIgbmV3Q2hhdEtleVxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgIHN0b3BHZW5lcmF0aW9uRnVuY3Rpb24/LigpXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAvLyBObyBib3JyYXIgZWwgY2xpZW50ZSBzaSBlcyBhZ2VudGUgZGUgY2xpZW50ZXMgKGlndWFsIHF1ZSBlbCBwcm95ZWN0byBzZSBtYW50aWVuZSlcbiAgICAgIGlmIChhZ2VudD8uZW50aXR5ICE9PSAnY2xpZW50Jykge1xuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfVxuICAgICAgaWYgKHNlY3Rpb24gIT09ICd0YXNrJykge1xuICAgICAgICBzZXRUYXNrPy4obnVsbClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgKCFhZ2VudCB8fCBhZ2VudD8uaXNfZGVsZXRlZCB8fCBhZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCBhZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHwgYWdlbnQ/LnByb2plY3RfZGVsZXRlZCkgJiZcbiAgICAgIGFnZW50cy5kYXRhLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50cy5kYXRhWzBdKVxuICAgIH1cbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSAmJiB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgICB9XG4gIH0sIFtcbiAgICBvcHRpb25zLmhvbWUsXG4gICAgb3B0aW9ucy5jaGF0LFxuICAgIGN1cnJlbnRPcHRpb24sXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGFnZW50LFxuICAgIGFnZW50cyxcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZXRDbGllbnQsXG4gICAgc2V0VGFzayxcbiAgICBzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uLFxuICAgIHNlY3Rpb24sXG4gIF0pXG5cbiAgY29uc3QgaGFuZGxlUmVzZXRDaGF0ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgLy8gRGlzcGF0Y2ggZXZlbnQgdG8gY2xlYXIgdGhlIGlucHV0IHRleHRhcmVhXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgaGFuZGxlR29Ib21lKClcbiAgfSwgW2hhbmRsZUdvSG9tZV0pXG5cbiAgLy8gQm90w7NuIFwidm9sdmVyXCIgZGVsIGhlYWRlciAoc29sbyBhZ2VudGVzIGNsb25lKTpcbiAgLy8gLSBDb24gY29udmVyc2FjacOzbiBpbmljaWFkYTogaW5pY2lhIHVuYSBudWV2YSBjb252ZXJzYWNpw7NuIHkgdnVlbHZlIGFsIGhvbWUgKHRvZGFzIGxhcyBzZWNjaW9uZXMpLlxuICAvLyAtIEVuIGVsIGhvbWUgKEZBUXMvRlVBKTogdnVlbHZlIGFsIHNlbGVjdG9yIGRlIHByb3llY3Rvcy9jbGllbnRlcyBsaW1waWFuZG8gbGEgZW50aXR5IHNlbGVjY2lvbmFkYS5cbiAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCB0byA9IHJlc29sdmVBaUNoYXRCYWNrRGVzdGluYXRpb24oc2VjdGlvbiwgYWdlbnQ/LnR5cGUsIGNvbXB1dGVkQ3VycmVudE9wdGlvbiwgb3B0aW9ucy5ob21lKVxuICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLmFpQ2hhdEJhY2ssIHsgdG8gfSlcblxuICAgIC8vIE9yY2hlc3RyYXRvciBlbiBlbCBob21lIGRlbCBoZWFkZXIgKHBhc28gMik6IGxpbXBpYXIgZWwgY29udGV4dG8gZGVsIGNoaXAgeSB2b2x2ZXJcbiAgICAvLyBhIGxhIGxpc3RhIGRlIGNvbnRleHRvcyByZWNpZW50ZXMgKHBhc28gMSksIHNpbiBzYWxpciBkZWwgaG9tZS5cbiAgICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InICYmIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lKSB7XG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0VGFzaz8uKG51bGwpXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgIGhhbmRsZVJlc2V0Q2hhdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gRW4gc2VjdGlvbiAndGFzaycgcHJlc2VydmFyIHByb2plY3QvY2xpZW50OyBlbiBvdHJhcyBzZWNjaW9uZXMsIGlyIGFsIHNlbGVjdG9yIGxpbXBpYW5kbyBwcm9qZWN0L2NsaWVudFxuICAgIGlmIChzZWN0aW9uICE9PSAndGFzaycpIHtcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUYXNrPy4obnVsbClcbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgIH1cbiAgfSwgW1xuICAgIGNvbXB1dGVkQ3VycmVudE9wdGlvbixcbiAgICBzZWN0aW9uLFxuICAgIGFnZW50Py50eXBlLFxuICAgIGFtcGxpdHVkRXZlbnQsXG4gICAgb3B0aW9ucy5ob21lLFxuICAgIGhhbmRsZVJlc2V0Q2hhdCxcbiAgICBzZXRQcm9qZWN0LFxuICAgIHNldENsaWVudCxcbiAgICBzZXRUYXNrLFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghYWdlbnRzRmV0Y2hlZFJlZi5jdXJyZW50KSB7XG4gICAgICBhZ2VudHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBoYW5kbGVHZXRBZ2VudHMoKVxuICAgIH1cbiAgfSwgW2hhbmRsZUdldEFnZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbk1lcmdlQ3JlYXRlZEFnZW50ID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYWdlbnQ6IG5leHRBZ2VudCB9ID0gKGV2dCBhcyBDdXN0b21FdmVudDx7IGFnZW50OiBBZ2VudCB9PikuZGV0YWlsIHx8IHt9XG4gICAgICBpZiAobmV4dEFnZW50Py5pZCkge1xuICAgICAgICBhZGRBZ2VudChuZXh0QWdlbnQsIHsgbmF2aWdhdGVIb21lOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW1lcmdlLWNyZWF0ZWQtYWdlbnQtaW50by1saXN0Jywgb25NZXJnZUNyZWF0ZWRBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1tZXJnZS1jcmVhdGVkLWFnZW50LWludG8tbGlzdCcsIG9uTWVyZ2VDcmVhdGVkQWdlbnQpXG4gICAgfVxuICB9LCBbYWRkQWdlbnRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25TeW5jRWRpdGVkQWdlbnQgPSAoZXZ0OiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBhZ2VudDogbmV4dEFnZW50IH0gPSAoZXZ0IGFzIEN1c3RvbUV2ZW50PHsgYWdlbnQ6IEFnZW50IH0+KS5kZXRhaWwgfHwge31cbiAgICAgIGlmICghbmV4dEFnZW50Py5pZCkgcmV0dXJuXG4gICAgICB1cGRhdGVBZ2VudChuZXh0QWdlbnQpXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSBuZXh0QWdlbnQuaWQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQobmV4dEFnZW50KVxuICAgICAgfVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLXN5bmMtZWRpdGVkLWFnZW50LWZyb20tY2hhdCcsIG9uU3luY0VkaXRlZEFnZW50KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLXN5bmMtZWRpdGVkLWFnZW50LWZyb20tY2hhdCcsIG9uU3luY0VkaXRlZEFnZW50KVxuICAgIH1cbiAgfSwgW3VwZGF0ZUFnZW50LCBzZWxlY3RBZ2VudCwgYWdlbnQ/LmlkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9wZW5DaGF0VmlldyA9ICgpID0+IHtcbiAgICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmNoYXQpXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY2hhdC1zZXNzaW9uLWNoYW5nZWQnKSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLWNoYXQtdmlldycsIG9wZW5DaGF0VmlldylcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLWNoYXQtdmlldycsIG9wZW5DaGF0VmlldylcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8qKiBNaXNtbyBmbHVqbyBxdWUgQ2hhdEFJTXlBZ2VudHMuaGFuZGxlVXNlQWdlbnQgKyBvbkJhY2sgKGhhbmRsZXJzLmhvbWUpLlxuICAgKiAgRWwgZGV0YWlsIHB1ZWRlIHRyYWVyIG9wY2lvbmFsbWVudGUgYHByb2plY3RgLCBgY2xpZW50YCwgYHRhc2tgIHBhcmEgZmxvd3MgcXVlXG4gICAqICBuZWNlc2l0YW4gcHJlc2VydmFyIGNvbnRleHRvIChlai4gc2VsZWN0b3IgZGUgYWdlbnRlcyBkZXNkZSB1bmEgdGFyZWEpLiBTaSBubyB2aWVuZW4sXG4gICAqICBzZSBtYW50aWVuZSBlbCBjb21wb3J0YW1pZW50byBvcmlnaW5hbCBkZSBsaW1waWFyIHByb2plY3QvY2xpZW50LiAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9wZW5OZXdDaGF0V2l0aEFnZW50ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBkZXRhaWwgfSA9IGV2ZW50IGFzIEN1c3RvbUV2ZW50PHtcbiAgICAgICAgYWdlbnQ6IEFnZW50XG4gICAgICAgIHByb2plY3Q/OiBQcm9qZWN0IHwgbnVsbFxuICAgICAgICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gICAgICAgIHRhc2s/OiBUYXNrIHwgbnVsbFxuICAgICAgfT5cbiAgICAgIGNvbnN0IG5leHRBZ2VudCA9IGRldGFpbD8uYWdlbnRcbiAgICAgIGlmICghbmV4dEFnZW50KSByZXR1cm5cblxuICAgICAgc2V0UHJvamVjdChkZXRhaWw/LnByb2plY3QgPz8gbnVsbClcbiAgICAgIHNldENsaWVudD8uKGRldGFpbD8uY2xpZW50ID8/IG51bGwpXG4gICAgICBpZiAoZGV0YWlsPy50YXNrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2V0VGFzaz8uKGRldGFpbC50YXNrKVxuICAgICAgfVxuICAgICAgc2VsZWN0QWdlbnQobmV4dEFnZW50KVxuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9wZW5OZXdDaGF0V2l0aEFnZW50KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9wZW5OZXdDaGF0V2l0aEFnZW50KVxuICAgIH1cbiAgfSwgW3NlbGVjdEFnZW50LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHNldFRhc2tdKVxuXG4gIC8vIE1ldGFkYXRhIGRlIGxhIHNlc3Npb24gYWJpZXJ0YSAoYWdlbnRfdHlwZS9hZ2VudF9lbnRpdHkgKyBjb250ZXh0byksIGVtaXRpZGEgcG9yIHVzZUNoYXRNZXNzYWdlcy5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvblNlc3Npb25NZXRhID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgZGV0YWlsIH0gPSBldnQgYXMgQ3VzdG9tRXZlbnQ8U2Vzc2lvbk1ldGE+XG4gICAgICBpZiAoZGV0YWlsKSBzZXRTZXNzaW9uTWV0YShkZXRhaWwpXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtY2hhdC1zZXNzaW9uLW1ldGEnLCBvblNlc3Npb25NZXRhKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLWNoYXQtc2Vzc2lvbi1tZXRhJywgb25TZXNzaW9uTWV0YSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIEFsIGNhbWJpYXIgZGUgY29udmVyc2FjacOzbiBsaW1waWFtb3MgbGEgbWV0YWRhdGE7IGVsIGxvYWQgZGUgbGEgbnVldmEgc2Vzc2lvbiBsYSB2dWVsdmUgYSBlbWl0aXIuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0U2Vzc2lvbk1ldGEobnVsbClcbiAgfSwgW2luaXRpYWxDaGF0SWRdKVxuXG4gIC8vIENhcnRlbCBcImNvbnRpbnVhciBlbiB1biBjaGF0IG51ZXZvXCI6IHNlIG11ZXN0cmEgYWwgYWJyaXIgdW5hIGNvbnZlcnNhY2nDs24gZGUgdW4gY2xvbmUgbGVnYWN5XG4gIC8vIChhZ2VudF90eXBlID09PSAnY2xvbmUnIGNvbiBlbnRpdHkgcHJvamVjdC90YXNrL2NsaWVudCkuIEVsIGlucHV0IHNlIHJlZW1wbGF6YSBwb3IgZWwgY2FydGVsLlxuICBjb25zdCBsZWdhY3lDb250ZXh0U2Vzc2lvbiA9IHVzZU1lbW88eyBlbnRpdHlUeXBlOiBMZWdhY3lDb250ZXh0RW50aXR5OyBjb250ZXh0TmFtZTogc3RyaW5nIH0gfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKGNvbXB1dGVkQ3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0KSByZXR1cm4gbnVsbFxuICAgIGlmICghc2Vzc2lvbk1ldGEgfHwgc2Vzc2lvbk1ldGEuYWdlbnRUeXBlICE9PSAnY2xvbmUnKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGVudGl0eSA9IHNlc3Npb25NZXRhLmFnZW50RW50aXR5XG4gICAgaWYgKCFlbnRpdHkgfHwgIUxFR0FDWV9DT05URVhUX0VOVElUSUVTLmluY2x1ZGVzKGVudGl0eSBhcyBMZWdhY3lDb250ZXh0RW50aXR5KSkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBjb250ZXh0TmFtZSA9XG4gICAgICBlbnRpdHkgPT09ICd0YXNrJyA/IHNlc3Npb25NZXRhLnRhc2tOYW1lIDogZW50aXR5ID09PSAncHJvamVjdCcgPyBzZXNzaW9uTWV0YS5wcm9qZWN0TmFtZSA6IHNlc3Npb25NZXRhLmNsaWVudE5hbWVcbiAgICByZXR1cm4geyBlbnRpdHlUeXBlOiBlbnRpdHkgYXMgTGVnYWN5Q29udGV4dEVudGl0eSwgY29udGV4dE5hbWU6IGNvbnRleHROYW1lIHx8ICcnIH1cbiAgfSwgW2NvbXB1dGVkQ3VycmVudE9wdGlvbiwgc2Vzc2lvbk1ldGFdKVxuXG4gIC8vIE1hcmNhIGVsIGFnZW50ZSBkZSBsYSBjb252ZXJzYWNpw7NuIGxlZ2FjeSBwYXJhIHF1ZSBoZWFkZXIsIHNlbGVjdG9yIHkgYXZhdGFyIG11ZXN0cmVuIGVsIGxvZ29cbiAgLy8gTUFJQSB5IGVsIG5vbWJyZSB0YWNoYWRvIChhZ2VudGUgb2Jzb2xldG8pLCBzaW4gZGVwZW5kZXIgZGVsIGB0eXBlYCByZXN1ZWx0byBkZSBsYSBzZXNpw7NuIHZpZWphLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsZWdhY3lDb250ZXh0U2Vzc2lvbiAmJiBhZ2VudCAmJiAhYWdlbnQuaXNfbGVnYWN5X2NvbnRleHQpIHtcbiAgICAgIHNlbGVjdEFnZW50KHsgLi4uYWdlbnQsIGlzX2xlZ2FjeV9jb250ZXh0OiB0cnVlIH0pXG4gICAgfVxuICB9LCBbbGVnYWN5Q29udGV4dFNlc3Npb24sIGFnZW50LCBzZWxlY3RBZ2VudF0pXG5cbiAgLy8gQWJyZSB1biBjaGF0IG51ZXZvIGNvbiBlbCBvcmNoZXN0cmF0b3Igc2V0ZWFuZG8gZWwgY29udGV4dG8gZGVsIGNsb25lIGxlZ2FjeSAobWlzbW8gY3JpdGVyaW9cbiAgLy8gcXVlIGNsaWNrZWFyIHVuIGNvbnRleHRvIHJlY2llbnRlIGVuIGVsIGhvbWUg4oaSIHBhc28gMiBjb24gRkFRcy9hY2Npb25lcyBkZSBlc2UgY29udGV4dG8pLlxuICBjb25zdCBoYW5kbGVDb250aW51ZUxlZ2FjeUNvbnRleHRJbk5ld0NoYXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uTWV0YSkgcmV0dXJuXG4gICAgY29uc3Qge1xuICAgICAgYWdlbnRFbnRpdHksXG4gICAgICBwcm9qZWN0SWQ6IHBJZCxcbiAgICAgIHByb2plY3ROYW1lOiBwTmFtZSxcbiAgICAgIGNsaWVudElkOiBjSWQsXG4gICAgICBjbGllbnROYW1lOiBjTmFtZSxcbiAgICAgIHRhc2tJZDogdElkLFxuICAgICAgdGFza05hbWU6IHROYW1lLFxuICAgIH0gPSBzZXNzaW9uTWV0YVxuXG4gICAgY29uc3Qgb3JjaGVzdHJhdG9yID0gYWdlbnRzLmRhdGEuZmluZCgoYTogQWdlbnQpID0+IGEudHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpXG4gICAgaWYgKCFvcmNoZXN0cmF0b3IpIHJldHVyblxuXG4gICAgLy8gUmVzZXQgZGVsIGNoYXQg4oaSIGNvbnZlcnNhY2nDs24gbnVldmFcbiAgICBzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uPy4oKVxuICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcblxuICAgIC8vIFNldGVhciBjb250ZXh0byAobWlzbW8gY3JpdGVyaW8gcXVlIGhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQgZGVsIGhvbWUpXG4gICAgc2V0VGFzaz8uKG51bGwpXG4gICAgc2V0UHJvamVjdChudWxsKVxuICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG5cbiAgICBpZiAoYWdlbnRFbnRpdHkgPT09ICdjbGllbnQnICYmIGNJZCAhPSBudWxsKSB7XG4gICAgICBzZXRDbGllbnQ/Lih7IGlkOiBjSWQsIG5hbWU6IGNOYW1lIHx8ICcnIH0pXG4gICAgfSBlbHNlIGlmIChhZ2VudEVudGl0eSA9PT0gJ3Byb2plY3QnICYmIHBJZCAhPSBudWxsKSB7XG4gICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgaWQ6IHBJZCxcbiAgICAgICAgbmFtZTogcE5hbWUgfHwgJycsXG4gICAgICAgIC4uLihjSWQgIT0gbnVsbCA/IHsgY2xpZW50SWQ6IGNJZCwgY2xpZW50OiB7IGlkOiBjSWQsIG5hbWU6IGNOYW1lIHx8ICcnIH0gfSA6IHt9KSxcbiAgICAgIH0pXG4gICAgICBzZXRDaGlwc1Byb2plY3QoeyBwcm9qZWN0SWQ6IFN0cmluZyhwSWQpLCBwcm9qZWN0TmFtZTogcE5hbWUgfHwgJycsIGNsaWVudE5hbWU6IGNOYW1lIHx8ICcnIH0pXG4gICAgfSBlbHNlIGlmIChhZ2VudEVudGl0eSA9PT0gJ3Rhc2snICYmIHRJZCAhPSBudWxsKSB7XG4gICAgICBzZXRUYXNrPy4oe1xuICAgICAgICBpZDogdElkLFxuICAgICAgICBuYW1lOiB0TmFtZSB8fCAnJyxcbiAgICAgICAgLi4uKHBJZCAhPSBudWxsID8geyBwcm9qZWN0SWQ6IHBJZCB9IDoge30pLFxuICAgICAgICAuLi4oY0lkICE9IG51bGwgPyB7IGNsaWVudElkOiBjSWQgfSA6IHt9KSxcbiAgICAgIH0pXG4gICAgICBpZiAoY0lkICE9IG51bGwpIHNldENsaWVudD8uKHsgaWQ6IGNJZCwgbmFtZTogY05hbWUgfHwgJycgfSlcbiAgICAgIGlmIChwSWQgIT0gbnVsbCkge1xuICAgICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgICBpZDogcElkLFxuICAgICAgICAgIG5hbWU6IHBOYW1lIHx8ICcnLFxuICAgICAgICAgIC4uLihjSWQgIT0gbnVsbCA/IHsgY2xpZW50SWQ6IGNJZCwgY2xpZW50OiB7IGlkOiBjSWQsIG5hbWU6IGNOYW1lIHx8ICcnIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHsgcHJvamVjdElkOiBTdHJpbmcocElkKSwgcHJvamVjdE5hbWU6IHBOYW1lIHx8ICcnLCBjbGllbnROYW1lOiBjTmFtZSB8fCAnJyB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdEFnZW50KG9yY2hlc3RyYXRvcilcbiAgICBzZXRTZXNzaW9uTWV0YShudWxsKVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5ob21lKVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICB9LCBbc2Vzc2lvbk1ldGEsIGFnZW50cy5kYXRhLCBzZWxlY3RBZ2VudCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QsIHN0b3BHZW5lcmF0aW9uRnVuY3Rpb25dKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0ID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXRcbiAgY29uc3QgaGlkZUhlYWRlckFnZW50U2VsZWN0b3IgPSBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMubXlBZ2VudHNcbiAgLy8gT3JjaGVzdHJhdG9yIGFiaWVydG8gZGVzZGUgZWwgaGVhZGVyOiBlbiBlbCBwYXNvIDIgZGVsIGhvbWUgKGNvbnRleHRvIHBpbmVhZG8gZW4gZWwgY2hpcClcbiAgLy8gbW9zdHJhbW9zIFwidm9sdmVyXCIgcGFyYSBsaW1waWFyIGVsIGNvbnRleHRvIHkgdm9sdmVyIGEgbGEgbGlzdGEgZGUgY29udGV4dG9zIHJlY2llbnRlcy5cbiAgY29uc3Qgc2hvd0hlYWRlckNvbnRleHRCYWNrQnV0dG9uID1cbiAgICBzZWN0aW9uID09PSAnaGVhZGVyJyAmJlxuICAgIGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJyAmJlxuICAgIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lICYmXG4gICAgISEodGFzaz8uaWQgfHwgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQgfHwgY2xpZW50Py5pZCB8fCBwcm9qZWN0Py5pZCkgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ1xuICBjb25zdCBzaG93QmFja0J1dHRvbiA9XG4gICAgc2hvd0hlYWRlckNvbnRleHRCYWNrQnV0dG9uIHx8XG4gICAgKGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmXG4gICAgICBhZ2VudD8uZW50aXR5ICE9PSAnZ2xvYmFsJyAmJlxuICAgICAgIWhhc0Vycm9yICYmXG4gICAgICAhbG9hZGluZyAmJlxuICAgICAgKGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0IHx8IChjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSAmJiBzZWN0aW9uICE9PSAndGFzaycpKSlcbiAgY29uc3QgaGFuZGxlT3Blbk1hcmtldHBsYWNlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMubXlBZ2VudHMpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUdvVG9NYWlha2VyID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIGxldCBtYWlha2VyQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKChhOiBBZ2VudCkgPT4gYS50eXBlID09PSAnb3JjaGVzdHJhdG9yJylcbiAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1vcmNoZXN0cmF0b3ImbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9YCxcbiAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgIG1haWFrZXJBZ2VudCA9IChkYXRhLmRhdGEgfHwgW10pLmZpbmQoKGE6IEFnZW50KSA9PiBhLnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFByb2plY3QobnVsbClcbiAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgIHNldFRhc2s/LihudWxsKVxuICAgIHNlbGVjdEFnZW50KG1haWFrZXJBZ2VudClcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCkge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCgpXG4gICAgfVxuICB9LCBbYWdlbnRzLmRhdGEsIGkxOG4ubGFuZ3VhZ2UsIHNlbGVjdEFnZW50LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHNldFRhc2tdKVxuICBjb25zdCBoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJlbW92ZUFnZW50KGFnZW50SWQpXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSBhZ2VudElkKSB7XG4gICAgICAgIHNlbGVjdEZpcnN0QWdlbnQoYWdlbnRJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudD8uaWQsIHJlbW92ZUFnZW50LCBzZWxlY3RGaXJzdEFnZW50XVxuICApXG5cbiAgLy8gRWwgZm9vdGVyIChpbnB1dCkgc2Ugb2N1bHRhIHNvbG8gZW4gZWwgaG9tZSBtYXJrZXRwbGFjZSBkZSBNYWlha2VyIChicm93c2UgZGUgYWdlbnRlcykuXG4gIC8vIEVsIGhvbWUgZGVsIG9yY2hlc3RyYXRvciBzw60gcGVybWl0ZSBlc2NyaWJpciwgYXPDrSBxdWUgbWFudGllbmUgZWwgZm9vdGVyLlxuICBjb25zdCBoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lID1cbiAgICBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSAmJiBpc01haWFrZXJBZ2VudFNlbGVjdGVkICYmIGFnZW50Py50eXBlICE9PSAnb3JjaGVzdHJhdG9yJ1xuXG4gIGNvbnN0IG1vZGFsUGFuZWwgPSAoXG4gICAgPD5cbiAgICAgIHt2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAhaXNGbG9hdGluZyA/IChcbiAgICAgICAgPFNpZGViYXJcbiAgICAgICAgICBvbkdvVG9DaGF0PXtnb1RvQ2hhdH1cbiAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRTaWRlYmFySGFzRXJyb3IodHJ1ZSl9XG4gICAgICAgICAgaGFuZGxlR29Ub0hvbWU9e2hhbmRsZUdvSG9tZX1cbiAgICAgICAgICBoYW5kbGVPcGVuTWFya2V0cGxhY2U9e2hhbmRsZU9wZW5NYXJrZXRwbGFjZX1cbiAgICAgICAgICBzaG93TmV3Q2hhdD17c2hvd05ld0NoYXR9XG4gICAgICAgICAgcmVmZXRjaENoYXRzPXtyZWZldGNoQ2hhdHN9XG4gICAgICAgICAgaGFuZGxlU2V0UmVmZXRjaENoYXRzPXtzZXRSZWZldGNoQ2hhdHN9XG4gICAgICAgICAgaGFzRXJyb3I9e3NpZGViYXJIYXNFcnJvcn1cbiAgICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZj17cmVzZXRTZWxlY3RlZENoYXRSZWZ9XG4gICAgICAgICAgYWdlbnRzTmF2QWN0aXZlPXtzaWRlYmFyQWdlbnRzTmF2QWN0aXZlfVxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8U0NDQUlNQ29udGVudCBleHBhbmRlZD17ZXhwYW5kZWR9IGZsb2F0aW5nPXtpc0Zsb2F0aW5nfT5cbiAgICAgICAgPENoYXRBSU1vZGFsSGVhZGVyXG4gICAgICAgICAgbGF5b3V0TW9kZT17bGF5b3V0TW9kZX1cbiAgICAgICAgICBvbkxheW91dE1vZGVDaGFuZ2U9e3NldExheW91dE1vZGV9XG4gICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17aXNGbG9hdGluZ31cbiAgICAgICAgICBvbkRyYWdTdGFydD17aGFuZGxlRHJhZ1N0YXJ0fVxuICAgICAgICAgIG9uRHJhZ01vdmU9e2hhbmRsZURyYWdNb3ZlfVxuICAgICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlRHJhZ0VuZH1cbiAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2VNb2RhbH1cbiAgICAgICAgICBhZ2VudHM9e2FnZW50cy5kYXRhfVxuICAgICAgICAgIGhhc0Vycm9yPXshIWFnZW50RXJyb3J9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBsb2FkaW5nTW9yZT17bG9hZGluZ01vcmV9XG4gICAgICAgICAgaGFzTW9yZT17YWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgIGhhbmRsZVJlc2V0Q2hhdD17aGFuZGxlUmVzZXRDaGF0fVxuICAgICAgICAgIG9uQWdlbnRVcGRhdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgbG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgIHNvcnRBZ2VudHNMaXN0PXtzb3J0QWdlbnRzTGlzdH1cbiAgICAgICAgICBoaWRlQWdlbnRTZWxlY3Rvcj17aGlkZUhlYWRlckFnZW50U2VsZWN0b3J9XG4gICAgICAgICAgc2hvd0JhY2tCdXR0b249e3Nob3dCYWNrQnV0dG9ufVxuICAgICAgICAgIG9uQmFjaz17aGFuZGxlQmFja31cbiAgICAgICAgLz5cbiAgICAgICAge2hhc0Vycm9yID8gKFxuICAgICAgICAgIDxNQUlBRXJyb3IgLz5cbiAgICAgICAgKSA6IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pID8gKFxuICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICBjdXJyZW50T3B0aW9uPXtjb21wdXRlZEN1cnJlbnRPcHRpb259XG4gICAgICAgICAgICBoYW5kbGVycz17eyAuLi5oYW5kbGVycywgY2hhdDogc3RhcnRDaGF0LCBob21lOiBoYW5kbGVycy5ob21lLCBoYW5kbGVHb0hvbWUgfX1cbiAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgcmVmcz17eyB1c2VySW5pdGlhbE1lc3NhZ2UsIGluaXRpYWxDaGF0SWQgfX1cbiAgICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17aGFuZGxlU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgIGZsb2F0aW5nPXtpc0Zsb2F0aW5nfVxuICAgICAgICAgICAgYWdlbnRzPXthZ2VudHMuZGF0YX1cbiAgICAgICAgICAgIGxvYWRpbmdBZ2VudHM9e2xvYWRpbmd9XG4gICAgICAgICAgICBvbkRlbGV0ZUFnZW50PXtoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50c31cbiAgICAgICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgIGhhc01vcmVBZ2VudHM9eyEhYWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgbG9hZGluZ01vcmVBZ2VudHM9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgICAgb25Mb2FkTW9yZUFnZW50cz17bG9hZE1vcmVBZ2VudHN9XG4gICAgICAgICAgICBvbkdvVG9NYWlha2VyPXtoYW5kbGVHb1RvTWFpYWtlcn1cbiAgICAgICAgICAgIGFnZW50RXJyb3I9e2FnZW50RXJyb3J9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICAgICl9XG4gICAgICAgIHsoKGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lICYmICEhYWdlbnRzPy5kYXRhPy5sZW5ndGgpIHx8XG4gICAgICAgICAgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpICYmXG4gICAgICAgICAgIWhpZGVGb290ZXJPbk1haWFrZXJNYXJrZXRwbGFjZUhvbWUgJiZcbiAgICAgICAgICAhaGFzRXJyb3IgJiZcbiAgICAgICAgICAhbG9hZGluZyAmJlxuICAgICAgICAgIHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pICYmIChcbiAgICAgICAgICAgIDxDaGF0QWlNb2RhbEZvb3RlclxuICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbmRNZXNzYWdlPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgaGFuZGxlU3RvcEdlbmVyYXRpb249e3N0b3BHZW5lcmF0aW9uRnVuY3Rpb259XG4gICAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICAgICAgICAgIGNoYXRJZD17aW5pdGlhbENoYXRJZH1cbiAgICAgICAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgICAgICAgc2hvd0ZhcXM9e2NvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0fVxuICAgICAgICAgICAgICB0b29sdGlwWkluZGV4PXt0b29sdGlwWkluZGV4fVxuICAgICAgICAgICAgICBsZWdhY3lDb250ZXh0U2Vzc2lvbj17bGVnYWN5Q29udGV4dFNlc3Npb259XG4gICAgICAgICAgICAgIG9uQ29udGludWVJbk5ld0NoYXQ9e2hhbmRsZUNvbnRpbnVlTGVnYWN5Q29udGV4dEluTmV3Q2hhdH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlNQ29udGVudD5cbiAgICA8Lz5cbiAgKVxuXG4gIGNvbnN0IGNvbnRlbnRXcmFwcGVyID0gKFxuICAgIDxTQ0NBSU1Db250ZW50V3JhcHBlciBleHBhbmRlZD17ZXhwYW5kZWR9IGZsb2F0aW5nPXtpc0Zsb2F0aW5nfSByZWY9e2NvbnRlbnRXcmFwcGVyUmVmfT5cbiAgICAgIHttb2RhbFBhbmVsfVxuICAgIDwvU0NDQUlNQ29udGVudFdyYXBwZXI+XG4gIClcblxuICByZXR1cm4gKFxuICAgIHNlbGVjdG9yICYmXG4gICAgUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgPFNDQ0FJTVdyYXBwZXJcbiAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICBsYXlvdXRNb2RlPXtsYXlvdXRNb2RlfVxuICAgICAgICBkcmFnUG9zaXRpb249e3Jlc29sdmVkRHJhZ1Bvc2l0aW9ufVxuICAgICAgICBlbGV2YXRlZD17c2VjdGlvbiA9PT0gJ3Rhc2snfVxuICAgICAgPlxuICAgICAgICA8RmxvYXRpbmdQYW5lbE1vdGlvbiB0aWx0PXt0aWx0TW90aW9ufSBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICAgIHtjb250ZW50V3JhcHBlcn1cbiAgICAgICAgPC9GbG9hdGluZ1BhbmVsTW90aW9uPlxuICAgICAgICB7dXNlckhhc1Blcm1pc3Npb25zICYmIChcbiAgICAgICAgICA8QWJtQWdlbnRNb2RhbFxuICAgICAgICAgICAgYWRkQWdlbnQ9e2FkZEFnZW50fVxuICAgICAgICAgICAgdXBkYXRlQWdlbnQ9e3VwZGF0ZUFnZW50fVxuICAgICAgICAgICAgcmVtb3ZlQWdlbnQ9e3JlbW92ZUFnZW50fVxuICAgICAgICAgICAgdXBkYXRlQWdlbnRGYXZvcml0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgIHNlbGVjdEZpcnN0QWdlbnQ9e3NlbGVjdEZpcnN0QWdlbnR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPFNuYWNrYmFyIC8+XG4gICAgICA8L1NDQ0FJTVdyYXBwZXI+LFxuICAgICAgc2VsZWN0b3JcbiAgICApXG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFBLENBQUNSLGlCQUFpQjtRQUNoQmlHLEtBQUssRUFBRUEsS0FBTTtRQUNiMEosaUJBQWlCLEVBQUVBLGlCQUFrQjtRQUNyQ3NHLG9CQUFvQixFQUFFalMsc0JBQXVCO1FBQzdDSSxXQUFXLEVBQUVBLFdBQVk7UUFDekJJLFNBQVMsRUFBRUEsU0FBVTtRQUNyQjBSLE1BQU0sRUFBRWxULGFBQWM7UUFDdEJJLFVBQVUsRUFBRUEsVUFBVztRQUN2QitTLFFBQVEsRUFBRWhPLHFCQUFxQixLQUFLbEosT0FBTyxDQUFDNEosSUFBSztRQUNqRGhDLGFBQWEsRUFBRUEsYUFBYztRQUM3QmdMLG9CQUFvQixFQUFFQSxvQkFBcUI7UUFDM0N1RSxtQkFBbUIsRUFBRTlEO01BQXFDLENBQzNELENBQ0Y7SUFBQSxDQUNVLENBQUM7RUFBQSxDQUNoQixDQUNIO0VBRUQsSUFBTXRILGNBQWMsZ0JBQ2xCeEssSUFBQSxDQUFDYixvQkFBb0I7SUFBQ3FLLFFBQVEsRUFBRUEsUUFBUztJQUFDNEssUUFBUSxFQUFFM0ssVUFBVztJQUFDb00sR0FBRyxFQUFFbk0saUJBQWtCO0lBQUFvSyxRQUFBLEVBQ3BGRDtFQUFVLENBQ1MsQ0FDdkI7RUFFRCxPQUNFaEwsUUFBUSxpQkFDUjVLLFFBQVEsQ0FBQzZYLFlBQVksY0FDbkI1VixLQUFBLENBQUNkLGFBQWE7SUFDWm9LLFFBQVEsRUFBRUEsUUFBUztJQUNuQkYsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCTyxZQUFZLEVBQUUwQyxvQkFBcUI7SUFDbkN3SixRQUFRLEVBQUV4VixPQUFPLEtBQUssTUFBTztJQUFBdVQsUUFBQSxnQkFFN0I5VCxJQUFBLENBQUNWLG1CQUFtQjtNQUFDMFcsSUFBSSxFQUFFaE0sVUFBVztNQUFDUixRQUFRLEVBQUVBLFFBQVM7TUFBQXNLLFFBQUEsRUFDdkR0SjtJQUFjLENBQ0ksQ0FBQyxFQUNyQmxELGtCQUFrQixpQkFDakJ0SCxJQUFBLENBQUNoQixhQUFhO01BQ1orSCxRQUFRLEVBQUVBLFFBQVM7TUFDbkJFLFdBQVcsRUFBRUEsV0FBWTtNQUN6QkQsV0FBVyxFQUFFQSxXQUFZO01BQ3pCRSxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDQyxnQkFBZ0IsRUFBRUE7SUFBaUIsQ0FDcEMsQ0FDRixlQUNEbkgsSUFBQSxDQUFDbEIsUUFBUSxJQUFFLENBQUM7RUFBQSxDQUNDLENBQUMsRUFDaEIrSixRQUNGLENBQUM7QUFFTCxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -321,7 +321,6 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
321
321
  children: [showBackButton && /*#__PURE__*/_jsxs(SCCAIMHBackButton, {
322
322
  type: "button",
323
323
  onClick: function onClick() {
324
- amplitudEvent(EVENTS.aiChatBack);
325
324
  onBack();
326
325
  },
327
326
  children: [/*#__PURE__*/_jsx(ChevronLeft, {
@@ -383,4 +382,4 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
383
382
  })]
384
383
  });
385
384
  };
386
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiQ2hldnJvbkxlZnQiLCJ1c2VUcmFuc2xhdGlvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwiSWNvbkJ1dHRvbiIsIk1BSUFJY29uIiwiTWFpYUNoYXRMYXlvdXRNZW51SWNvbiIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSE1vZGFsIiwiU0NDQUlNSFNlbGVjdGVkQWdlbnQiLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQiLCJTQ0NBSU1IV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyQnV0dG9uIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiU0NDQUlNSFdyYXBwZXJNb2RhbCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50IiwiU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSIsIlNDQ0FJTUhEaXZpZGVyIiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1ITG9hZGVyV3JhcHBlciIsIlNDQ0FJV3JhcHBlciIsIlNDQ0FJTUhMYXlvdXRNZW51QW5jaG9yIiwiU0NDQUlNSExheW91dE1lbnVQYW5lbCIsIlNDQ0FJTUhMYXlvdXRNZW51Um93IiwiU0NDQUlNSEJhY2tCdXR0b24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVVzZXIiLCJpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwiQ2hpcExsbSIsIkxvYWRlciIsInVzZU1haWFUYXNrUGFuZWxaSW5kZXgiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIl9yZWYiLCJsYXlvdXRNb2RlIiwib25MYXlvdXRNb2RlQ2hhbmdlIiwiZXhwYW5kZWQiLCJfcmVmJGRyYWdnYWJsZSIsImRyYWdnYWJsZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIl9yZWYkaGFuZGxlQ2xvc2UiLCJoYW5kbGVDbG9zZSIsIl9yZWYkYWdlbnRzIiwiYWdlbnRzIiwiX3JlZiRoYXNFcnJvciIsImhhc0Vycm9yIiwiX3JlZiRsb2FkaW5nIiwibG9hZGluZyIsIl9yZWYkbG9hZGluZ01vcmUiLCJsb2FkaW5nTW9yZSIsIl9yZWYkaGFzTW9yZSIsImhhc01vcmUiLCJoYW5kbGVSZXNldENoYXQiLCJvbkFnZW50VXBkYXRlIiwibG9hZE1vcmVBZ2VudHMiLCJzb3J0QWdlbnRzTGlzdCIsIl9yZWYkaGlkZUFnZW50U2VsZWN0byIsImhpZGVBZ2VudFNlbGVjdG9yIiwib25BZ2VudFNlbGVjdGVkIiwiX3JlZiRzaG93QmFja0J1dHRvbiIsInNob3dCYWNrQnV0dG9uIiwiX3JlZiRvbkJhY2siLCJvbkJhY2siLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiYW1wbGl0dWRFdmVudCIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsImFnZW50Iiwic2VsZWN0QWdlbnQiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInNlY3Rpb24iLCJ0b29sdGlwWkluZGV4IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJ0ZXh0UmVmQWdlbnQiLCJkcm9wZG93blJlZiIsImxheW91dE1lbnVSZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxheW91dE1lbnVPcGVuIiwic2V0TGF5b3V0TWVudU9wZW4iLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJuYW1lIiwic2hvd1Rvb2x0aXBBZ2VudCIsInNob3dUb29sdGlwIiwiYWdlbnRzUmVmIiwiaXNNYWlhQWdlbnQiLCJhZ2VudEl0ZW0iLCJ0eXBlIiwiYWdlbnRzRm9yU2VsZWN0b3IiLCJmaWx0ZXIiLCJlbnRpdHkiLCJ1bmRlZmluZWQiLCJoYW5kbGVTY3JvbGwiLCJjdXJyZW50IiwiX2FnZW50c1JlZiRjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInNjcm9sbEVsZW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xlYXJUaW1lb3V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvY2FsQWdlbnRzIiwiX3JlZjIiLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwiaXNfZnJvbV9jb252ZXJzYXRpb24iLCJpc19sZWdhY3lfY29udGV4dCIsImZyb21MaXN0IiwiZmluZCIsImlkIiwiaGFuZGxlU2VsZWN0QWdlbnQiLCJhaUNoYXRBZ2VudFNlbGVjdCIsImFnZW50X3R5cGUiLCJuZWVkc0VudGl0eSIsImhhbmRsZUV4cGFuZE1vZGFsIiwiYWlDaGF0T3BlbkFnZW50U2VsZWN0IiwicHJldiIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImV2ZW50IiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImhhbmRsZVBpY2tMYXlvdXQiLCJtb2RlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsImFpQ2hhdFNlbGVjdFZpZXdPcHRpb25zIiwib3B0aW9uIiwiY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsInJlbmRlck1vZGFsIiwicmVmIiwib25DbGljayIsImxlbmd0aCIsImNoaWxkcmVuIiwiX29iamVjdFNwcmVhZCIsInRpdGxlIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImdhcCIsImVtb2ppIiwicGxhY2VtZW50IiwiekluZGV4IiwiaXNBZ2VudERlbGV0ZWQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwibWFpYUFnZW50cyIsImlzQ2xvbmUiLCJtYXAiLCJtYWlhQWdlbnQiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJpc01haWEiLCJvbkZhdm9yaXRlVG9nZ2xlIiwiY29uY2F0Iiwic29tZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjb21wYW55IiwiYWdlbnRzQ291bnQiLCJzaXplIiwic2VsZWN0ZWRNb2RlbExsbSIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsInNlbGVjdGVkQWdlbnRUeXBlIiwic2hvdWxkUmVuZGVyU2VsZWN0b3IiLCIkaGFzRXJyb3IiLCIkbG9hZGluZyIsIiRoYXNBZ2VudHMiLCJvblBvaW50ZXJEb3duIiwib25Qb2ludGVyTW92ZSIsIm9uUG9pbnRlclVwIiwib25Qb2ludGVyQ2FuY2VsIiwib25Mb3N0UG9pbnRlckNhcHR1cmUiLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsImFpQ2hhdEJhY2siLCJtb2RlbCIsImJ1dHRvbklkIiwiaGFuZGxlQ2xpY2siLCJhaUNoYXRPcGVuVmlld09wdGlvbnMiLCJ0b29sdGlwIiwiZGlzYWJsZVRvb2x0aXAiLCJyb2xlIiwiJGFjdGl2ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgUG9pbnRlckV2ZW50IGFzIFJlYWN0UG9pbnRlckV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IENoZXZyb25MZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkxlZnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0ljb25CdXR0b24nXG5pbXBvcnQgeyBNQUlBSWNvbiwgTWFpYUNoYXRMYXlvdXRNZW51SWNvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgQ2hhdEFJQWdlbnRPcHRpb24gfSBmcm9tICcuLi9DaGF0QWlBZ2VudE9wdGlvbnMvQ2hhdEFpQWdlbnRPcHRpb25zJ1xuaW1wb3J0IHtcbiAgU0NDQUlNSE1vZGFsLFxuICBTQ0NBSU1IU2VsZWN0ZWRBZ2VudCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0LFxuICBTQ0NBSU1IV3JhcHBlcixcbiAgU0NDQUlNSFdyYXBwZXJCdXR0b24sXG4gIFNDQ0FJTUhXcmFwcGVySWNvbixcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbCxcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUsXG4gIFNDQ0FJTUhEaXZpZGVyLFxuICBTQ0NBSU1IQWdlbnRzTGlzdCxcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJV3JhcHBlcixcbiAgU0NDQUlNSExheW91dE1lbnVBbmNob3IsXG4gIFNDQ0FJTUhMYXlvdXRNZW51UGFuZWwsXG4gIFNDQ0FJTUhMYXlvdXRNZW51Um93LFxuICBTQ0NBSU1IQmFja0J1dHRvbixcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci5zdHlsZXMnXG5pbXBvcnQgdHlwZSB7IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlIH0gZnJvbSAnLi4vLi4vbGF5b3V0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFUYXNrUGFuZWxBY2Nlc3MnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hpcExsbSB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0NoaXBMbG0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcblxuZXhwb3J0IGNvbnN0IENoYXRBSU1vZGFsSGVhZGVyID0gKHtcbiAgbGF5b3V0TW9kZSxcbiAgb25MYXlvdXRNb2RlQ2hhbmdlLFxuICBleHBhbmRlZCxcbiAgZHJhZ2dhYmxlID0gZmFsc2UsXG4gIG9uRHJhZ1N0YXJ0LFxuICBvbkRyYWdNb3ZlLFxuICBvbkRyYWdFbmQsXG4gIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgYWdlbnRzID0gW10sXG4gIGhhc0Vycm9yID0gZmFsc2UsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgbG9hZGluZ01vcmUgPSBmYWxzZSxcbiAgaGFzTW9yZSA9IGZhbHNlLFxuICBoYW5kbGVSZXNldENoYXQsXG4gIG9uQWdlbnRVcGRhdGUsXG4gIGxvYWRNb3JlQWdlbnRzLFxuICBzb3J0QWdlbnRzTGlzdCxcbiAgaGlkZUFnZW50U2VsZWN0b3IgPSBmYWxzZSxcbiAgb25BZ2VudFNlbGVjdGVkLFxuICBzaG93QmFja0J1dHRvbiA9IGZhbHNlLFxuICBvbkJhY2sgPSAoKSA9PiBudWxsLFxufToge1xuICBsYXlvdXRNb2RlOiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZVxuICBvbkxheW91dE1vZGVDaGFuZ2U6IChtb2RlOiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSkgPT4gdm9pZFxuICBleHBhbmRlZDogYm9vbGVhblxuICBkcmFnZ2FibGU/OiBib29sZWFuXG4gIG9uRHJhZ1N0YXJ0PzogKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgb25EcmFnTW92ZT86IChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIG9uRHJhZ0VuZD86IChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgbG9hZGluZzogYm9vbGVhblxuICBsb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaGFuZGxlUmVzZXRDaGF0OiAoKSA9PiB2b2lkXG4gIG9uQWdlbnRVcGRhdGU/OiAodXBkYXRlZEFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBsb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgc29ydEFnZW50c0xpc3Q/OiAoKSA9PiB2b2lkXG4gIGhpZGVBZ2VudFNlbGVjdG9yPzogYm9vbGVhblxuICAvKipcbiAgICogU2UgaW52b2NhIGRlc3B1w6lzIGRlbCByZXNldCBjdWFuZG8gZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBOTyByZXF1aWVyZSBzZWxlY2Npw7NuXG4gICAqIGRlIGVudGl0eSAoY3VzdG9tIG8gY2xvbmUrZ2xvYmFsKS4gUGVybWl0ZSByZXNvbHZlciBgR0VUIC92Mi9zZXNzaW9ucy9hZ2VudC97aWR9YFxuICAgKiB5IG5hdmVnYXIgYSB1bmEgY29udmVyc2FjacOzbiBleGlzdGVudGUgc2kgbGEgaGF5LlxuICAgKi9cbiAgb25BZ2VudFNlbGVjdGVkPzogKGFnZW50OiBBZ2VudCkgPT4gdm9pZCB8IFByb21pc2U8dW5rbm93bj5cbiAgc2hvd0JhY2tCdXR0b24/OiBib29sZWFuXG4gIG9uQmFjaz86ICgpID0+IHZvaWRcbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICAvLyBFbiBzZWN0aW9uICd0YXNrJyBlbCBtb2RhbCBkZSBNYWlhIHNlIGVsZXZhIHBvciBlbmNpbWEgZGVsIHRhc2sgcGFuZWwgKHotaW5kZXggOTgwMDAwMSkuXG4gIC8vIExvcyB0b29sdGlwcyBzZSBtb250YW4gZW4gcG9ydGFsIGNvbiB6LWluZGV4IDE1MDAgcG9yIGRlZmVjdG8sIGFzw60gcXVlIHF1ZWRhcsOtYW4gZGV0csOhcy5cbiAgLy8gU3ViaW1vcyBzdSB6LWluZGV4IHPDs2xvIGVuIGVzdGUgY2FzbyBwYXJhIHF1ZSBzZSB2ZWFuIHBvciBlbmNpbWEgZGVsIG1vZGFsLlxuICBjb25zdCB0b29sdGlwWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB0ZXh0UmVmQWdlbnQgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgbGF5b3V0TWVudVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW2xheW91dE1lbnVPcGVuLCBzZXRMYXlvdXRNZW51T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZkFnZW50LCBbc2VsZWN0ZWRBZ2VudD8ubmFtZV0pXG4gIGNvbnN0IGFnZW50c1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCBpc01haWFBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicsIFtdKVxuICBjb25zdCBhZ2VudHNGb3JTZWxlY3RvciA9IHVzZU1lbW8oXG4gICAgKCkgPT4gYWdlbnRzLmZpbHRlcihhZ2VudEl0ZW0gPT4gaXNNYWlhQWdlbnQoYWdlbnRJdGVtKSB8fCBhZ2VudEl0ZW0uZW50aXR5ICE9PSAnZ2xvYmFsJyksXG4gICAgW2FnZW50cywgaXNNYWlhQWdlbnRdXG4gIClcblxuICAvLyBNYW5lamFyIHNjcm9sbCBpbmZpbml0byBwYXJhIGNhcmdhciBtw6FzIGFnZW50c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNvbG8gY3VhbmRvIGVsIGRyb3Bkb3duIGVzdMOpIGFiaWVydG9cbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWFnZW50c1JlZi5jdXJyZW50IHx8ICFsb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZSB8fCBsb2FkaW5nTW9yZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG5cbiAgICAgIC8vIENhcmdhciBtw6FzICg1MHB4IGFudGVzKVxuICAgICAgaWYgKGRpc3RhbmNlRnJvbUJvdHRvbSA8IDUwKSB7XG4gICAgICAgIGxvYWRNb3JlQWdlbnRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgcmVuZGVyaXphZG9cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgaWYgKHNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfSwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIGxvYWRNb3JlQWdlbnRzLCBoYXNNb3JlLCBsb2FkaW5nTW9yZV0pXG5cbiAgY29uc3QgbG9jYWxBZ2VudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZnJvbV9jb252ZXJzYXRpb24gfHxcbiAgICAgIHNlbGVjdGVkQWdlbnQ/LmlzX2xlZ2FjeV9jb250ZXh0XG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRBZ2VudFxuICAgIH1cbiAgICBjb25zdCBmcm9tTGlzdCA9IGFnZW50cy5maW5kKFxuICAgICAgYWdlbnQgPT5cbiAgICAgICAgIWFnZW50LmlzX2RlbGV0ZWQgJiYgIWFnZW50Lmhhc19ub3RfcGVybWlzc2lvbnMgJiYgIWFnZW50Lmhhc19ub3RfYWNjZXNzICYmIGFnZW50LmlkID09PSBzZWxlY3RlZEFnZW50Py5pZFxuICAgIClcbiAgICAvLyBBZ2VudGUgaGlkcmF0YWRvIHBvciBHRVQgKHAuIGVqLiBudWV2byBjaGF0IHRyYXMgY3JlYXRlX2FnZW50KSBwdWVkZSBubyBlc3RhciBhw7puIGVuIGxhIGxpc3RhIHBhZ2luYWRhXG4gICAgcmV0dXJuIGZyb21MaXN0ID8/IHNlbGVjdGVkQWdlbnQgPz8gbnVsbFxuICB9LCBbYWdlbnRzLCBzZWxlY3RlZEFnZW50XSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudDogQWdlbnQpID0+IHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50KVxuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0QWdlbnRTZWxlY3QsIHtcbiAgICAgICAgYWdlbnRfdHlwZTogYWdlbnQ/LnR5cGUsXG4gICAgICB9KVxuICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaGFuZGxlUmVzZXRDaGF0KClcbiAgICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIGRlcGVuZGUgZGUgdW5hIGVudGl0eSAoY3VzdG9tIG8gY2xvbmUrZ2xvYmFsKSB5YSBwb2RlbW9zXG4gICAgICAgIC8vIHJlc29sdmVyIHNpIGV4aXN0ZSB1bmEgc2VzacOzbiBwcmV2aWEgeSwgZW4gZXNlIGNhc28sIG5hdmVnYXIgYSBlbGxhLlxuICAgICAgICAvLyBQYXJhIGNsb25lK3Byb2plY3R8Y2xpZW50LCBsYSByZXNvbHVjacOzbiBvY3VycmUgZW4gbG9zIHNlbGVjdG9ycyBkZSBlbnRpdHkuXG4gICAgICAgIGNvbnN0IG5lZWRzRW50aXR5ID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JylcbiAgICAgICAgaWYgKCFuZWVkc0VudGl0eSkge1xuICAgICAgICAgIG9uQWdlbnRTZWxlY3RlZD8uKGFnZW50KVxuICAgICAgICB9XG4gICAgICB9LCAxMDApXG4gICAgfSxcbiAgICBbc2VsZWN0QWdlbnQsIGFtcGxpdHVkRXZlbnQsIGhhbmRsZVJlc2V0Q2hhdCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrLCBvbkFnZW50U2VsZWN0ZWRdXG4gIClcblxuICBjb25zdCBoYW5kbGVFeHBhbmRNb2RhbCA9ICgpID0+IHtcbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLmFpQ2hhdE9wZW5BZ2VudFNlbGVjdClcbiAgICAgIC8vIEN1YW5kbyBzZSBhYnJlIGVsIHNlbGVjdG9yLCBvcmRlbmFyIGxvcyBhZ2VudGVzXG4gICAgICBpZiAoc29ydEFnZW50c0xpc3QpIHtcbiAgICAgICAgc29ydEFnZW50c0xpc3QoKVxuICAgICAgfVxuICAgIH1cbiAgICBzZXRJc0V4cGFuZGVkKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCAmJiAhbGF5b3V0TWVudU9wZW4pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBOb2RlXG4gICAgICBpZiAoaXNFeHBhbmRlZCAmJiBkcm9wZG93blJlZi5jdXJyZW50ICYmICFkcm9wZG93blJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIH1cbiAgICAgIGlmIChsYXlvdXRNZW51T3BlbiAmJiBsYXlvdXRNZW51UmVmLmN1cnJlbnQgJiYgIWxheW91dE1lbnVSZWYuY3VycmVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgIHNldExheW91dE1lbnVPcGVuKGZhbHNlKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIGxheW91dE1lbnVPcGVuXSlcblxuICBjb25zdCBoYW5kbGVQaWNrTGF5b3V0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1vZGU6IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlKSA9PiB7XG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5wcm9qZWN0UmVzdW1lRXhwYW5kLCB7XG4gICAgICAgIGV4cGFuZGVkOiBtb2RlID09PSAnZnVsbHNjcmVlbicsXG4gICAgICB9KVxuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0U2VsZWN0Vmlld09wdGlvbnMsIHsgb3B0aW9uOiBtb2RlIH0pXG4gICAgICBvbkxheW91dE1vZGVDaGFuZ2UobW9kZSlcbiAgICAgIHNldExheW91dE1lbnVPcGVuKGZhbHNlKVxuICAgIH0sXG4gICAgW2FtcGxpdHVkRXZlbnQsIG9uTGF5b3V0TW9kZUNoYW5nZV1cbiAgKVxuXG4gIGNvbnN0IGNsb25lQWdlbnRzUm9sZUJsb2NrZWQgPSBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkKHVzZXIsIHNlY3Rpb24pXG5cbiAgY29uc3QgcmVuZGVyTW9kYWwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSU1IV3JhcHBlclxuICAgICAgICByZWY9e2Ryb3Bkb3duUmVmfVxuICAgICAgICBkYXRhLW5vLWRyYWc9XCJ0cnVlXCJcbiAgICAgICAgb25DbGljaz17YWdlbnRzLmxlbmd0aCA/IGhhbmRsZUV4cGFuZE1vZGFsIDogdW5kZWZpbmVkfVxuICAgICAgICBpZD1cImNoYXQtYWktbW9kYWwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgPlxuICAgICAgICA8U0NDQUlNSFNlbGVjdGVkQWdlbnQ+XG4gICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgc2hvd1Rvb2x0aXBBZ2VudCA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgICAge2xvY2FsQWdlbnRzPy50eXBlID09PSAnY3VzdG9tJyAmJiAhbG9jYWxBZ2VudHM/LmlzX2xlZ2FjeV9jb250ZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgICBsb2NhbEFnZW50cz8uZW1vamlcbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxNQUlBSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgKX17JyAnfVxuICAgICAgICAgICAgICAgICAge2xvY2FsQWdlbnRzPy5uYW1lfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9e2lzRXhwYW5kZWQgPyAnbGVmdCcgOiAndG9wJ31cbiAgICAgICAgICAgIHsuLi4odG9vbHRpcFpJbmRleCAhPSBudWxsID8geyB6SW5kZXg6IHRvb2x0aXBaSW5kZXggfSA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0XG4gICAgICAgICAgICAgIHJlZj17dGV4dFJlZkFnZW50fVxuICAgICAgICAgICAgICBpc0FnZW50RGVsZXRlZD17XG4gICAgICAgICAgICAgICAgISFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICAgICAgICAgICAgISFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICAgICAgICAgICAgISFzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgICAgICAgICAgICEhc2VsZWN0ZWRBZ2VudD8uaXNfbGVnYWN5X2NvbnRleHRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgIHtsb2NhbEFnZW50cz8udHlwZSA9PT0gJ2N1c3RvbScgJiYgIWxvY2FsQWdlbnRzPy5pc19sZWdhY3lfY29udGV4dCA/IGxvY2FsQWdlbnRzPy5lbW9qaSA6IDxNQUlBSWNvbiAvPn17JyAnfVxuICAgICAgICAgICAgICAgIHtsb2NhbEFnZW50cz8ubmFtZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDQ0FJTUhTZWxlY3RlZEFnZW50PlxuICAgICAgICA8U0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD17MTR9IGhlaWdodD17MTR9IGNvbG9yPVwiIzIwMjAxRlwiIC8+XG4gICAgICAgIDwvU0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICAgIHt3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1haWFBZ2VudHMgPSBhZ2VudHNGb3JTZWxlY3Rvci5maWx0ZXIoaXNNYWlhQWdlbnQpXG4gICAgICAgICAgICAgICAgICAgIGlmICghbWFpYUFnZW50cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNQUlBSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSBpc0Nsb25lPk1BSUEgYnkgQ09SPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ0NBSVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSERpdmlkZXIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAge21haWFBZ2VudHMubWFwKChtYWlhQWdlbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7bWFpYUFnZW50LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnQ9e21haWFBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBtYWlhQWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNYWlhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7YWdlbnRzRm9yU2VsZWN0b3Iuc29tZShhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJykgJiZcbiAgICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnYWdlbnRzJyl9IGJ5IHt1c2VyLmNvbXBhbnl9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8U0NDQUlNSEFnZW50c0xpc3QgaGFzTW9yZT17aGFzTW9yZX0gYWdlbnRzQ291bnQ9e2FnZW50c0ZvclNlbGVjdG9yLmxlbmd0aH0gcmVmPXthZ2VudHNSZWZ9PlxuICAgICAgICAgICAgICAgIHthZ2VudHNGb3JTZWxlY3Rvcj8ubWFwKChhZ2VudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnIHx8XG4gICAgICAgICAgICAgICAgICAgIGlzTWFpYUFnZW50KGFnZW50KSB8fFxuICAgICAgICAgICAgICAgICAgICAoYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nICYmICF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUylcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7YWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdEFnZW50PXtoYW5kbGVTZWxlY3RBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50Py5pZCA9PT0gYWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRJc0V4cGFuZGVkPXtzZXRJc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIHtsb2FkaW5nTW9yZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1IQWdlbnRzTGlzdD5cbiAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSU1IV3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBjb25zdCBzZWxlY3RlZE1vZGVsTGxtID0gc2VsZWN0ZWRBZ2VudD8ubW9kZWxfZGlzcGxheV9uYW1lXG4gIGNvbnN0IHNlbGVjdGVkQWdlbnRUeXBlID0gc2VsZWN0ZWRBZ2VudD8udHlwZSA9PT0gJ2N1c3RvbSdcbiAgY29uc3Qgc2hvdWxkUmVuZGVyU2VsZWN0b3IgPVxuICAgICFoYXNFcnJvciAmJlxuICAgICFsb2FkaW5nICYmXG4gICAgIWhpZGVBZ2VudFNlbGVjdG9yICYmXG4gICAgISFzZWxlY3RlZEFnZW50ICYmXG4gICAgKCEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJTUhNb2RhbFxuICAgICAgJGhhc0Vycm9yPXtoYXNFcnJvcn1cbiAgICAgICRsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgJGhhc0FnZW50cz17ISFhZ2VudHMubGVuZ3RofVxuICAgICAgb25Qb2ludGVyRG93bj17ZHJhZ2dhYmxlID8gb25EcmFnU3RhcnQgOiB1bmRlZmluZWR9XG4gICAgICBvblBvaW50ZXJNb3ZlPXtkcmFnZ2FibGUgPyBvbkRyYWdNb3ZlIDogdW5kZWZpbmVkfVxuICAgICAgb25Qb2ludGVyVXA9e2RyYWdnYWJsZSA/IG9uRHJhZ0VuZCA6IHVuZGVmaW5lZH1cbiAgICAgIG9uUG9pbnRlckNhbmNlbD17ZHJhZ2dhYmxlID8gb25EcmFnRW5kIDogdW5kZWZpbmVkfVxuICAgICAgb25Mb3N0UG9pbnRlckNhcHR1cmU9e2RyYWdnYWJsZSA/IG9uRHJhZ0VuZCA6IHVuZGVmaW5lZH1cbiAgICAgIHN0eWxlPXt7IGN1cnNvcjogZHJhZ2dhYmxlID8gJ2dyYWInIDogdW5kZWZpbmVkLCB0b3VjaEFjdGlvbjogZHJhZ2dhYmxlID8gJ21hbmlwdWxhdGlvbicgOiB1bmRlZmluZWQgfX1cbiAgICA+XG4gICAgICB7c2hvdWxkUmVuZGVyU2VsZWN0b3IgPyByZW5kZXJNb2RhbCgpIDogPGRpdiAvPn1cbiAgICAgIDxTQ0NBSU1IV3JhcHBlckJ1dHRvbiBkYXRhLW5vLWRyYWc9XCJ0cnVlXCI+XG4gICAgICAgIHtzaG93QmFja0J1dHRvbiAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhCYWNrQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0QmFjaylcbiAgICAgICAgICAgICAgb25CYWNrKClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoZXZyb25MZWZ0IHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjMzQzNDMzXCIgLz5cbiAgICAgICAgICAgIHt0KCdiYWNrJyl9XG4gICAgICAgICAgPC9TQ0NBSU1IQmFja0J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAge3NlbGVjdGVkQWdlbnRUeXBlICYmIHNlbGVjdGVkTW9kZWxMbG0gJiYgPENoaXBMbG0gbW9kZWw9e3NlbGVjdGVkTW9kZWxMbG19IGV4cGFuZGVkPXtleHBhbmRlZH0gLz59XG4gICAgICAgIDxTQ0NBSU1ITGF5b3V0TWVudUFuY2hvciByZWY9e2xheW91dE1lbnVSZWZ9IGRhdGEtbm8tZHJhZz1cInRydWVcIj5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgYnV0dG9uSWQ9XCJidG4tbWFpYS1sYXlvdXQtbWVudVwiXG4gICAgICAgICAgICBoYW5kbGVDbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWxheW91dE1lbnVPcGVuKSB7XG4gICAgICAgICAgICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlblZpZXdPcHRpb25zKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNldExheW91dE1lbnVPcGVuKHByZXYgPT4gIXByZXYpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdG9vbHRpcD17dCgnbGF5b3V0TWVudVRvb2x0aXAnKX1cbiAgICAgICAgICAgIGRpc2FibGVUb29sdGlwPXtsYXlvdXRNZW51T3Blbn1cbiAgICAgICAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE1haWFDaGF0TGF5b3V0TWVudUljb24gLz5cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAge2xheW91dE1lbnVPcGVuID8gKFxuICAgICAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51UGFuZWwgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51Um93XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgJGFjdGl2ZT17bGF5b3V0TW9kZSA9PT0gJ3NpZGViYXInfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVBpY2tMYXlvdXQoJ3NpZGViYXInKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdsYXlvdXRTaWRlYmFyJyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlNSExheW91dE1lbnVSb3c+XG4gICAgICAgICAgICAgIDxTQ0NBSU1ITGF5b3V0TWVudVJvd1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICRhY3RpdmU9e2xheW91dE1vZGUgPT09ICdmdWxsc2NyZWVuJ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVQaWNrTGF5b3V0KCdmdWxsc2NyZWVuJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnbGF5b3V0RnVsbHNjcmVlbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhMYXlvdXRNZW51Um93PlxuICAgICAgICAgICAgICA8U0NDQUlNSExheW91dE1lbnVSb3dcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkYWN0aXZlPXtsYXlvdXRNb2RlID09PSAnZmxvYXRpbmcnfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVBpY2tMYXlvdXQoJ2Zsb2F0aW5nJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnbGF5b3V0RmxvYXRpbmcnKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudVJvdz5cbiAgICAgICAgICAgIDwvU0NDQUlNSExheW91dE1lbnVQYW5lbD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudUFuY2hvcj5cbiAgICAgICAgPEljb25CdXR0b24gaGFuZGxlQ2xpY2s9e2hhbmRsZUNsb3NlfSB0b29sdGlwPXt0KCdnbG9iYWxzLmNsb3NlJyl9IHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgIDxDcm9zcyAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyQnV0dG9uPlxuICAgIDwvU0NDQUlNSE1vZGFsPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQTJDLE9BQU87QUFDNUcsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxRQUFRLFFBQVEsaUNBQWlDO0FBQzFELFNBQVNDLGdCQUFnQixRQUFRLHVDQUF1QztBQUN4RSxTQUFTQyxpQkFBaUIsUUFBUSxnQ0FBZ0M7QUFD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
385
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiQ2hldnJvbkxlZnQiLCJ1c2VUcmFuc2xhdGlvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwiSWNvbkJ1dHRvbiIsIk1BSUFJY29uIiwiTWFpYUNoYXRMYXlvdXRNZW51SWNvbiIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSE1vZGFsIiwiU0NDQUlNSFNlbGVjdGVkQWdlbnQiLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQiLCJTQ0NBSU1IV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyQnV0dG9uIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiU0NDQUlNSFdyYXBwZXJNb2RhbCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50IiwiU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSIsIlNDQ0FJTUhEaXZpZGVyIiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1ITG9hZGVyV3JhcHBlciIsIlNDQ0FJV3JhcHBlciIsIlNDQ0FJTUhMYXlvdXRNZW51QW5jaG9yIiwiU0NDQUlNSExheW91dE1lbnVQYW5lbCIsIlNDQ0FJTUhMYXlvdXRNZW51Um93IiwiU0NDQUlNSEJhY2tCdXR0b24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVVzZXIiLCJpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwiQ2hpcExsbSIsIkxvYWRlciIsInVzZU1haWFUYXNrUGFuZWxaSW5kZXgiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIl9yZWYiLCJsYXlvdXRNb2RlIiwib25MYXlvdXRNb2RlQ2hhbmdlIiwiZXhwYW5kZWQiLCJfcmVmJGRyYWdnYWJsZSIsImRyYWdnYWJsZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIl9yZWYkaGFuZGxlQ2xvc2UiLCJoYW5kbGVDbG9zZSIsIl9yZWYkYWdlbnRzIiwiYWdlbnRzIiwiX3JlZiRoYXNFcnJvciIsImhhc0Vycm9yIiwiX3JlZiRsb2FkaW5nIiwibG9hZGluZyIsIl9yZWYkbG9hZGluZ01vcmUiLCJsb2FkaW5nTW9yZSIsIl9yZWYkaGFzTW9yZSIsImhhc01vcmUiLCJoYW5kbGVSZXNldENoYXQiLCJvbkFnZW50VXBkYXRlIiwibG9hZE1vcmVBZ2VudHMiLCJzb3J0QWdlbnRzTGlzdCIsIl9yZWYkaGlkZUFnZW50U2VsZWN0byIsImhpZGVBZ2VudFNlbGVjdG9yIiwib25BZ2VudFNlbGVjdGVkIiwiX3JlZiRzaG93QmFja0J1dHRvbiIsInNob3dCYWNrQnV0dG9uIiwiX3JlZiRvbkJhY2siLCJvbkJhY2siLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiYW1wbGl0dWRFdmVudCIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsImFnZW50Iiwic2VsZWN0QWdlbnQiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInNlY3Rpb24iLCJ0b29sdGlwWkluZGV4IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJ0ZXh0UmVmQWdlbnQiLCJkcm9wZG93blJlZiIsImxheW91dE1lbnVSZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxheW91dE1lbnVPcGVuIiwic2V0TGF5b3V0TWVudU9wZW4iLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJuYW1lIiwic2hvd1Rvb2x0aXBBZ2VudCIsInNob3dUb29sdGlwIiwiYWdlbnRzUmVmIiwiaXNNYWlhQWdlbnQiLCJhZ2VudEl0ZW0iLCJ0eXBlIiwiYWdlbnRzRm9yU2VsZWN0b3IiLCJmaWx0ZXIiLCJlbnRpdHkiLCJ1bmRlZmluZWQiLCJoYW5kbGVTY3JvbGwiLCJjdXJyZW50IiwiX2FnZW50c1JlZiRjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInNjcm9sbEVsZW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xlYXJUaW1lb3V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvY2FsQWdlbnRzIiwiX3JlZjIiLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwiaXNfZnJvbV9jb252ZXJzYXRpb24iLCJpc19sZWdhY3lfY29udGV4dCIsImZyb21MaXN0IiwiZmluZCIsImlkIiwiaGFuZGxlU2VsZWN0QWdlbnQiLCJhaUNoYXRBZ2VudFNlbGVjdCIsImFnZW50X3R5cGUiLCJuZWVkc0VudGl0eSIsImhhbmRsZUV4cGFuZE1vZGFsIiwiYWlDaGF0T3BlbkFnZW50U2VsZWN0IiwicHJldiIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImV2ZW50IiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImhhbmRsZVBpY2tMYXlvdXQiLCJtb2RlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsImFpQ2hhdFNlbGVjdFZpZXdPcHRpb25zIiwib3B0aW9uIiwiY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsInJlbmRlck1vZGFsIiwicmVmIiwib25DbGljayIsImxlbmd0aCIsImNoaWxkcmVuIiwiX29iamVjdFNwcmVhZCIsInRpdGxlIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImdhcCIsImVtb2ppIiwicGxhY2VtZW50IiwiekluZGV4IiwiaXNBZ2VudERlbGV0ZWQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwibWFpYUFnZW50cyIsImlzQ2xvbmUiLCJtYXAiLCJtYWlhQWdlbnQiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJpc01haWEiLCJvbkZhdm9yaXRlVG9nZ2xlIiwiY29uY2F0Iiwic29tZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjb21wYW55IiwiYWdlbnRzQ291bnQiLCJzaXplIiwic2VsZWN0ZWRNb2RlbExsbSIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsInNlbGVjdGVkQWdlbnRUeXBlIiwic2hvdWxkUmVuZGVyU2VsZWN0b3IiLCIkaGFzRXJyb3IiLCIkbG9hZGluZyIsIiRoYXNBZ2VudHMiLCJvblBvaW50ZXJEb3duIiwib25Qb2ludGVyTW92ZSIsIm9uUG9pbnRlclVwIiwib25Qb2ludGVyQ2FuY2VsIiwib25Mb3N0UG9pbnRlckNhcHR1cmUiLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsIm1vZGVsIiwiYnV0dG9uSWQiLCJoYW5kbGVDbGljayIsImFpQ2hhdE9wZW5WaWV3T3B0aW9ucyIsInRvb2x0aXAiLCJkaXNhYmxlVG9vbHRpcCIsInJvbGUiLCIkYWN0aXZlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxIZWFkZXIvQ2hhdEFpTW9kYWxIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCBQb2ludGVyRXZlbnQgYXMgUmVhY3RQb2ludGVyRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgQ2hldnJvbkxlZnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uTGVmdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXRvbXMvSWNvbkJ1dHRvbidcbmltcG9ydCB7IE1BSUFJY29uLCBNYWlhQ2hhdExheW91dE1lbnVJY29uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBDaGF0QUlBZ2VudE9wdGlvbiB9IGZyb20gJy4uL0NoYXRBaUFnZW50T3B0aW9ucy9DaGF0QWlBZ2VudE9wdGlvbnMnXG5pbXBvcnQge1xuICBTQ0NBSU1ITW9kYWwsXG4gIFNDQ0FJTUhTZWxlY3RlZEFnZW50LFxuICBTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQsXG4gIFNDQ0FJTUhXcmFwcGVyLFxuICBTQ0NBSU1IV3JhcHBlckJ1dHRvbixcbiAgU0NDQUlNSFdyYXBwZXJJY29uLFxuICBTQ0NBSU1IV3JhcHBlck1vZGFsLFxuICBTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudCxcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSxcbiAgU0NDQUlNSERpdmlkZXIsXG4gIFNDQ0FJTUhBZ2VudHNMaXN0LFxuICBTQ0NBSU1ITG9hZGVyV3JhcHBlcixcbiAgU0NDQUlXcmFwcGVyLFxuICBTQ0NBSU1ITGF5b3V0TWVudUFuY2hvcixcbiAgU0NDQUlNSExheW91dE1lbnVQYW5lbCxcbiAgU0NDQUlNSExheW91dE1lbnVSb3csXG4gIFNDQ0FJTUhCYWNrQnV0dG9uLFxufSBmcm9tICcuL0NoYXRBaU1vZGFsSGVhZGVyLnN0eWxlcydcbmltcG9ydCB0eXBlIHsgTWFpYUNoYXRNb2RhbExheW91dE1vZGUgfSBmcm9tICcuLi8uLi9sYXlvdXQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IGlzTWFpYUNsb25lQWdlbnRzUm9sZUJsb2NrZWQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb25zdGFudHMvbWFpYVRhc2tQYW5lbEFjY2VzcydcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBDaGlwTGxtIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXRvbXMvQ2hpcExsbSdcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0xvYWRlcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4J1xuXG5leHBvcnQgY29uc3QgQ2hhdEFJTW9kYWxIZWFkZXIgPSAoe1xuICBsYXlvdXRNb2RlLFxuICBvbkxheW91dE1vZGVDaGFuZ2UsXG4gIGV4cGFuZGVkLFxuICBkcmFnZ2FibGUgPSBmYWxzZSxcbiAgb25EcmFnU3RhcnQsXG4gIG9uRHJhZ01vdmUsXG4gIG9uRHJhZ0VuZCxcbiAgaGFuZGxlQ2xvc2UgPSAoKSA9PiBudWxsLFxuICBhZ2VudHMgPSBbXSxcbiAgaGFzRXJyb3IgPSBmYWxzZSxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZSA9IGZhbHNlLFxuICBoYXNNb3JlID0gZmFsc2UsXG4gIGhhbmRsZVJlc2V0Q2hhdCxcbiAgb25BZ2VudFVwZGF0ZSxcbiAgbG9hZE1vcmVBZ2VudHMsXG4gIHNvcnRBZ2VudHNMaXN0LFxuICBoaWRlQWdlbnRTZWxlY3RvciA9IGZhbHNlLFxuICBvbkFnZW50U2VsZWN0ZWQsXG4gIHNob3dCYWNrQnV0dG9uID0gZmFsc2UsXG4gIG9uQmFjayA9ICgpID0+IG51bGwsXG59OiB7XG4gIGxheW91dE1vZGU6IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlXG4gIG9uTGF5b3V0TW9kZUNoYW5nZTogKG1vZGU6IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlKSA9PiB2b2lkXG4gIGV4cGFuZGVkOiBib29sZWFuXG4gIGRyYWdnYWJsZT86IGJvb2xlYW5cbiAgb25EcmFnU3RhcnQ/OiAoZXZlbnQ6IFJlYWN0UG9pbnRlckV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZFxuICBvbkRyYWdNb3ZlPzogKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgb25EcmFnRW5kPzogKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBoYXNFcnJvcjogYm9vbGVhblxuICBsb2FkaW5nOiBib29sZWFuXG4gIGxvYWRpbmdNb3JlPzogYm9vbGVhblxuICBoYXNNb3JlPzogYm9vbGVhblxuICBoYW5kbGVSZXNldENoYXQ6ICgpID0+IHZvaWRcbiAgb25BZ2VudFVwZGF0ZT86ICh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBzb3J0QWdlbnRzTGlzdD86ICgpID0+IHZvaWRcbiAgaGlkZUFnZW50U2VsZWN0b3I/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZSBpbnZvY2EgZGVzcHXDqXMgZGVsIHJlc2V0IGN1YW5kbyBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIE5PIHJlcXVpZXJlIHNlbGVjY2nDs25cbiAgICogZGUgZW50aXR5IChjdXN0b20gbyBjbG9uZStnbG9iYWwpLiBQZXJtaXRlIHJlc29sdmVyIGBHRVQgL3YyL3Nlc3Npb25zL2FnZW50L3tpZH1gXG4gICAqIHkgbmF2ZWdhciBhIHVuYSBjb252ZXJzYWNpw7NuIGV4aXN0ZW50ZSBzaSBsYSBoYXkuXG4gICAqL1xuICBvbkFnZW50U2VsZWN0ZWQ/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkIHwgUHJvbWlzZTx1bmtub3duPlxuICBzaG93QmFja0J1dHRvbj86IGJvb2xlYW5cbiAgb25CYWNrPzogKCkgPT4gdm9pZFxufSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgYW1wbGl0dWRFdmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhZ2VudDogc2VsZWN0ZWRBZ2VudCwgc2VsZWN0QWdlbnQsIHNldFByb2plY3QsIHNldENsaWVudCwgc2V0VGFzaywgc2VjdGlvbiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIC8vIEVuIHNlY3Rpb24gJ3Rhc2snIGVsIG1vZGFsIGRlIE1haWEgc2UgZWxldmEgcG9yIGVuY2ltYSBkZWwgdGFzayBwYW5lbCAoei1pbmRleCA5ODAwMDAxKS5cbiAgLy8gTG9zIHRvb2x0aXBzIHNlIG1vbnRhbiBlbiBwb3J0YWwgY29uIHotaW5kZXggMTUwMCBwb3IgZGVmZWN0bywgYXPDrSBxdWUgcXVlZGFyw61hbiBkZXRyw6FzLlxuICAvLyBTdWJpbW9zIHN1IHotaW5kZXggc8OzbG8gZW4gZXN0ZSBjYXNvIHBhcmEgcXVlIHNlIHZlYW4gcG9yIGVuY2ltYSBkZWwgbW9kYWwuXG4gIGNvbnN0IHRvb2x0aXBaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDE1MDAsICdvdmVybGF5JylcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRleHRSZWZBZ2VudCA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGRyb3Bkb3duUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBsYXlvdXRNZW51UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbbGF5b3V0TWVudU9wZW4sIHNldExheW91dE1lbnVPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VG9vbHRpcEFnZW50IH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmQWdlbnQsIFtzZWxlY3RlZEFnZW50Py5uYW1lXSlcbiAgY29uc3QgYWdlbnRzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IGlzTWFpYUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlID09PSAnb3JjaGVzdHJhdG9yJywgW10pXG4gIGNvbnN0IGFnZW50c0ZvclNlbGVjdG9yID0gdXNlTWVtbyhcbiAgICAoKSA9PiBhZ2VudHMuZmlsdGVyKGFnZW50SXRlbSA9PiBpc01haWFBZ2VudChhZ2VudEl0ZW0pIHx8IGFnZW50SXRlbS5lbnRpdHkgIT09ICdnbG9iYWwnKSxcbiAgICBbYWdlbnRzLCBpc01haWFBZ2VudF1cbiAgKVxuXG4gIC8vIE1hbmVqYXIgc2Nyb2xsIGluZmluaXRvIHBhcmEgY2FyZ2FyIG3DoXMgYWdlbnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU29sbyBjdWFuZG8gZWwgZHJvcGRvd24gZXN0w6kgYWJpZXJ0b1xuICAgIGlmICghaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghYWdlbnRzUmVmLmN1cnJlbnQgfHwgIWxvYWRNb3JlQWdlbnRzIHx8ICFoYXNNb3JlIHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGFnZW50c1JlZi5jdXJyZW50XG4gICAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHRcblxuICAgICAgLy8gQ2FyZ2FyIG3DoXMgKDUwcHggYW50ZXMpXG4gICAgICBpZiAoZGlzdGFuY2VGcm9tQm90dG9tIDwgNTApIHtcbiAgICAgICAgbG9hZE1vcmVBZ2VudHMoKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRlbGF5IHBhcmEgYXNlZ3VyYXIgcXVlIGVsIERPTSBlc3TDqSByZW5kZXJpemFkb1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IGFnZW50c1JlZi5jdXJyZW50XG4gICAgICBpZiAoc2Nyb2xsRWxlbWVudCkge1xuICAgICAgICBzY3JvbGxFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIH1cbiAgICB9LCAxMDApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZClcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgaWYgKHNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgc2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgbG9hZE1vcmVBZ2VudHMsIGhhc01vcmUsIGxvYWRpbmdNb3JlXSlcblxuICBjb25zdCBsb2NhbEFnZW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIHNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgIHNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgIHNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5pc19mcm9tX2NvbnZlcnNhdGlvbiB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfbGVnYWN5X2NvbnRleHRcbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZEFnZW50XG4gICAgfVxuICAgIGNvbnN0IGZyb21MaXN0ID0gYWdlbnRzLmZpbmQoXG4gICAgICBhZ2VudCA9PlxuICAgICAgICAhYWdlbnQuaXNfZGVsZXRlZCAmJiAhYWdlbnQuaGFzX25vdF9wZXJtaXNzaW9ucyAmJiAhYWdlbnQuaGFzX25vdF9hY2Nlc3MgJiYgYWdlbnQuaWQgPT09IHNlbGVjdGVkQWdlbnQ/LmlkXG4gICAgKVxuICAgIC8vIEFnZW50ZSBoaWRyYXRhZG8gcG9yIEdFVCAocC4gZWouIG51ZXZvIGNoYXQgdHJhcyBjcmVhdGVfYWdlbnQpIHB1ZWRlIG5vIGVzdGFyIGHDum4gZW4gbGEgbGlzdGEgcGFnaW5hZGFcbiAgICByZXR1cm4gZnJvbUxpc3QgPz8gc2VsZWN0ZWRBZ2VudCA/PyBudWxsXG4gIH0sIFthZ2VudHMsIHNlbGVjdGVkQWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRBZ2VudFNlbGVjdCwge1xuICAgICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIH0pXG4gICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNldENoYXQoKVxuICAgICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZGVwZW5kZSBkZSB1bmEgZW50aXR5IChjdXN0b20gbyBjbG9uZStnbG9iYWwpIHlhIHBvZGVtb3NcbiAgICAgICAgLy8gcmVzb2x2ZXIgc2kgZXhpc3RlIHVuYSBzZXNpw7NuIHByZXZpYSB5LCBlbiBlc2UgY2FzbywgbmF2ZWdhciBhIGVsbGEuXG4gICAgICAgIC8vIFBhcmEgY2xvbmUrcHJvamVjdHxjbGllbnQsIGxhIHJlc29sdWNpw7NuIG9jdXJyZSBlbiBsb3Mgc2VsZWN0b3JzIGRlIGVudGl0eS5cbiAgICAgICAgY29uc3QgbmVlZHNFbnRpdHkgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKVxuICAgICAgICBpZiAoIW5lZWRzRW50aXR5KSB7XG4gICAgICAgICAgb25BZ2VudFNlbGVjdGVkPy4oYWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH0sIDEwMClcbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgYW1wbGl0dWRFdmVudCwgaGFuZGxlUmVzZXRDaGF0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIG9uQWdlbnRTZWxlY3RlZF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuZE1vZGFsID0gKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCkge1xuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlbkFnZW50U2VsZWN0KVxuICAgICAgLy8gQ3VhbmRvIHNlIGFicmUgZWwgc2VsZWN0b3IsIG9yZGVuYXIgbG9zIGFnZW50ZXNcbiAgICAgIGlmIChzb3J0QWdlbnRzTGlzdCkge1xuICAgICAgICBzb3J0QWdlbnRzTGlzdCgpXG4gICAgICB9XG4gICAgfVxuICAgIHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0V4cGFuZGVkICYmICFsYXlvdXRNZW51T3Blbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIE5vZGVcbiAgICAgIGlmIChpc0V4cGFuZGVkICYmIGRyb3Bkb3duUmVmLmN1cnJlbnQgJiYgIWRyb3Bkb3duUmVmLmN1cnJlbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgfVxuICAgICAgaWYgKGxheW91dE1lbnVPcGVuICYmIGxheW91dE1lbnVSZWYuY3VycmVudCAmJiAhbGF5b3V0TWVudVJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgc2V0TGF5b3V0TWVudU9wZW4oZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgbGF5b3V0TWVudU9wZW5dKVxuXG4gIGNvbnN0IGhhbmRsZVBpY2tMYXlvdXQgPSB1c2VDYWxsYmFjayhcbiAgICAobW9kZTogTWFpYUNoYXRNb2RhbExheW91dE1vZGUpID0+IHtcbiAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLnByb2plY3RSZXN1bWVFeHBhbmQsIHtcbiAgICAgICAgZXhwYW5kZWQ6IG1vZGUgPT09ICdmdWxsc2NyZWVuJyxcbiAgICAgIH0pXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRTZWxlY3RWaWV3T3B0aW9ucywgeyBvcHRpb246IG1vZGUgfSlcbiAgICAgIG9uTGF5b3V0TW9kZUNoYW5nZShtb2RlKVxuICAgICAgc2V0TGF5b3V0TWVudU9wZW4oZmFsc2UpXG4gICAgfSxcbiAgICBbYW1wbGl0dWRFdmVudCwgb25MYXlvdXRNb2RlQ2hhbmdlXVxuICApXG5cbiAgY29uc3QgY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCA9IGlzTWFpYUNsb25lQWdlbnRzUm9sZUJsb2NrZWQodXNlciwgc2VjdGlvbilcblxuICBjb25zdCByZW5kZXJNb2RhbCA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJTUhXcmFwcGVyXG4gICAgICAgIHJlZj17ZHJvcGRvd25SZWZ9XG4gICAgICAgIGRhdGEtbm8tZHJhZz1cInRydWVcIlxuICAgICAgICBvbkNsaWNrPXthZ2VudHMubGVuZ3RoID8gaGFuZGxlRXhwYW5kTW9kYWwgOiB1bmRlZmluZWR9XG4gICAgICAgIGlkPVwiY2hhdC1haS1tb2RhbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICA+XG4gICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcEFnZW50ID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzRweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nICYmICFsb2NhbEFnZW50cz8uaXNfbGVnYWN5X2NvbnRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsQWdlbnRzPy5lbW9qaVxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPE1BSUFJY29uIC8+XG4gICAgICAgICAgICAgICAgICApfXsnICd9XG4gICAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD17aXNFeHBhbmRlZCA/ICdsZWZ0JyA6ICd0b3AnfVxuICAgICAgICAgICAgey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHRcbiAgICAgICAgICAgICAgcmVmPXt0ZXh0UmVmQWdlbnR9XG4gICAgICAgICAgICAgIGlzQWdlbnREZWxldGVkPXtcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICAgICAgICAgICAgISFzZWxlY3RlZEFnZW50Py5pc19sZWdhY3lfY29udGV4dFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzRweCcgfX0+XG4gICAgICAgICAgICAgICAge2xvY2FsQWdlbnRzPy50eXBlID09PSAnY3VzdG9tJyAmJiAhbG9jYWxBZ2VudHM/LmlzX2xlZ2FjeV9jb250ZXh0ID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fXsnICd9XG4gICAgICAgICAgICAgICAge2xvY2FsQWdlbnRzPy5uYW1lfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L1NDQ0FJTUhTZWxlY3RlZEFnZW50VGV4dD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NDQUlNSFNlbGVjdGVkQWdlbnQ+XG4gICAgICAgIDxTQ0NBSU1IV3JhcHBlckljb24+XG4gICAgICAgICAgPENoZXZyb25Eb3duIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjMjAyMDFGXCIgLz5cbiAgICAgICAgPC9TQ0NBSU1IV3JhcHBlckljb24+XG4gICAgICAgIHtpc0V4cGFuZGVkICYmIChcbiAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbD5cbiAgICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudD5cbiAgICAgICAgICAgICAge3dpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIWNsb25lQWdlbnRzUm9sZUJsb2NrZWQgJiYgKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFpYUFnZW50cyA9IGFnZW50c0ZvclNlbGVjdG9yLmZpbHRlcihpc01haWFBZ2VudClcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtYWlhQWdlbnRzLmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1BSUFJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlIGlzQ2xvbmU+TUFJQSBieSBDT1I8L1NDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDQ0FJV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IRGl2aWRlciAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWFpYUFnZW50cy5tYXAoKG1haWFBZ2VudCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPENoYXRBSUFnZW50T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWdlbnQtJHttYWlhQWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17bWFpYUFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RBZ2VudD17aGFuZGxlU2VsZWN0QWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRBZ2VudD8uaWQgPT09IG1haWFBZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc01haWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZhdm9yaXRlVG9nZ2xlPXtvbkFnZW50VXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHthZ2VudHNGb3JTZWxlY3Rvci5zb21lKGFnZW50ID0+IGFnZW50LnR5cGUgPT09ICdjdXN0b20nKSAmJlxuICAgICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdhZ2VudHMnKX0gYnkge3VzZXIuY29tcGFueX1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSERpdmlkZXIgLz5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxTQ0NBSU1IQWdlbnRzTGlzdCBoYXNNb3JlPXtoYXNNb3JlfSBhZ2VudHNDb3VudD17YWdlbnRzRm9yU2VsZWN0b3IubGVuZ3RofSByZWY9e2FnZW50c1JlZn0+XG4gICAgICAgICAgICAgICAge2FnZW50c0ZvclNlbGVjdG9yPy5tYXAoKGFnZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBhZ2VudD8uaXNfZGVsZXRlZCB8fFxuICAgICAgICAgICAgICAgICAgICBhZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fFxuICAgICAgICAgICAgICAgICAgICBhZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgfHxcbiAgICAgICAgICAgICAgICAgICAgaXNNYWlhQWdlbnQoYWdlbnQpIHx8XG4gICAgICAgICAgICAgICAgICAgIChhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScgJiYgIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPENoYXRBSUFnZW50T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWdlbnQtJHthZ2VudC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgIGFnZW50PXthZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBhZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkZhdm9yaXRlVG9nZ2xlPXtvbkFnZW50VXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgIHNldElzRXhwYW5kZWQ9e3NldElzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAge2xvYWRpbmdNb3JlICYmIChcbiAgICAgICAgICAgICAgICAgIDxTQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhBZ2VudHNMaXN0PlxuICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudD5cbiAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTW9kZWxMbG0gPSBzZWxlY3RlZEFnZW50Py5tb2RlbF9kaXNwbGF5X25hbWVcbiAgY29uc3Qgc2VsZWN0ZWRBZ2VudFR5cGUgPSBzZWxlY3RlZEFnZW50Py50eXBlID09PSAnY3VzdG9tJ1xuICBjb25zdCBzaG91bGRSZW5kZXJTZWxlY3RvciA9XG4gICAgIWhhc0Vycm9yICYmXG4gICAgIWxvYWRpbmcgJiZcbiAgICAhaGlkZUFnZW50U2VsZWN0b3IgJiZcbiAgICAhIXNlbGVjdGVkQWdlbnQgJiZcbiAgICAoISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlNSE1vZGFsXG4gICAgICAkaGFzRXJyb3I9e2hhc0Vycm9yfVxuICAgICAgJGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAkaGFzQWdlbnRzPXshIWFnZW50cy5sZW5ndGh9XG4gICAgICBvblBvaW50ZXJEb3duPXtkcmFnZ2FibGUgPyBvbkRyYWdTdGFydCA6IHVuZGVmaW5lZH1cbiAgICAgIG9uUG9pbnRlck1vdmU9e2RyYWdnYWJsZSA/IG9uRHJhZ01vdmUgOiB1bmRlZmluZWR9XG4gICAgICBvblBvaW50ZXJVcD17ZHJhZ2dhYmxlID8gb25EcmFnRW5kIDogdW5kZWZpbmVkfVxuICAgICAgb25Qb2ludGVyQ2FuY2VsPXtkcmFnZ2FibGUgPyBvbkRyYWdFbmQgOiB1bmRlZmluZWR9XG4gICAgICBvbkxvc3RQb2ludGVyQ2FwdHVyZT17ZHJhZ2dhYmxlID8gb25EcmFnRW5kIDogdW5kZWZpbmVkfVxuICAgICAgc3R5bGU9e3sgY3Vyc29yOiBkcmFnZ2FibGUgPyAnZ3JhYicgOiB1bmRlZmluZWQsIHRvdWNoQWN0aW9uOiBkcmFnZ2FibGUgPyAnbWFuaXB1bGF0aW9uJyA6IHVuZGVmaW5lZCB9fVxuICAgID5cbiAgICAgIHtzaG91bGRSZW5kZXJTZWxlY3RvciA/IHJlbmRlck1vZGFsKCkgOiA8ZGl2IC8+fVxuICAgICAgPFNDQ0FJTUhXcmFwcGVyQnV0dG9uIGRhdGEtbm8tZHJhZz1cInRydWVcIj5cbiAgICAgICAge3Nob3dCYWNrQnV0dG9uICYmIChcbiAgICAgICAgICA8U0NDQUlNSEJhY2tCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBvbkJhY2soKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hldnJvbkxlZnQgd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiMzNDM0MzNcIiAvPlxuICAgICAgICAgICAge3QoJ2JhY2snKX1cbiAgICAgICAgICA8L1NDQ0FJTUhCYWNrQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgICB7c2VsZWN0ZWRBZ2VudFR5cGUgJiYgc2VsZWN0ZWRNb2RlbExsbSAmJiA8Q2hpcExsbSBtb2RlbD17c2VsZWN0ZWRNb2RlbExsbX0gZXhwYW5kZWQ9e2V4cGFuZGVkfSAvPn1cbiAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51QW5jaG9yIHJlZj17bGF5b3V0TWVudVJlZn0gZGF0YS1uby1kcmFnPVwidHJ1ZVwiPlxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBidXR0b25JZD1cImJ0bi1tYWlhLWxheW91dC1tZW51XCJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghbGF5b3V0TWVudU9wZW4pIHtcbiAgICAgICAgICAgICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRPcGVuVmlld09wdGlvbnMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2V0TGF5b3V0TWVudU9wZW4ocHJldiA9PiAhcHJldilcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0b29sdGlwPXt0KCdsYXlvdXRNZW51VG9vbHRpcCcpfVxuICAgICAgICAgICAgZGlzYWJsZVRvb2x0aXA9e2xheW91dE1lbnVPcGVufVxuICAgICAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWFpYUNoYXRMYXlvdXRNZW51SWNvbiAvPlxuICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICB7bGF5b3V0TWVudU9wZW4gPyAoXG4gICAgICAgICAgICA8U0NDQUlNSExheW91dE1lbnVQYW5lbCByb2xlPVwibWVudVwiPlxuICAgICAgICAgICAgICA8U0NDQUlNSExheW91dE1lbnVSb3dcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkYWN0aXZlPXtsYXlvdXRNb2RlID09PSAnc2lkZWJhcid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUGlja0xheW91dCgnc2lkZWJhcicpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2xheW91dFNpZGViYXInKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudVJvdz5cbiAgICAgICAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51Um93XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgJGFjdGl2ZT17bGF5b3V0TW9kZSA9PT0gJ2Z1bGxzY3JlZW4nfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVBpY2tMYXlvdXQoJ2Z1bGxzY3JlZW4nKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdsYXlvdXRGdWxsc2NyZWVuJyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlNSExheW91dE1lbnVSb3c+XG4gICAgICAgICAgICAgIDxTQ0NBSU1ITGF5b3V0TWVudVJvd1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICRhY3RpdmU9e2xheW91dE1vZGUgPT09ICdmbG9hdGluZyd9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUGlja0xheW91dCgnZmxvYXRpbmcnKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdsYXlvdXRGbG9hdGluZycpfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhMYXlvdXRNZW51Um93PlxuICAgICAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudVBhbmVsPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1NDQ0FJTUhMYXlvdXRNZW51QW5jaG9yPlxuICAgICAgICA8SWNvbkJ1dHRvbiBoYW5kbGVDbGljaz17aGFuZGxlQ2xvc2V9IHRvb2x0aXA9e3QoJ2dsb2JhbHMuY2xvc2UnKX0gdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgPENyb3NzIC8+XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDwvU0NDQUlNSFdyYXBwZXJCdXR0b24+XG4gICAgPC9TQ0NBSU1ITW9kYWw+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBMkMsT0FBTztBQUM1RyxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBQ3hFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxTQUFTQyxVQUFVLFFBQVEsOEJBQThCO0FBQ3pELFNBQVNDLFFBQVEsRUFBRUMsc0JBQXNCLFFBQVEs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QUk7WUFBQSxFQUFDO1VBQ2xDLENBQUU7VUFDRmdFLE9BQU8sRUFBRWpJLENBQUMsQ0FBQyxtQkFBbUIsQ0FBRTtVQUNoQ2tJLGNBQWMsRUFBRTVHLGNBQWU7VUFDL0JYLGFBQWEsRUFBRUEsYUFBYztVQUFBc0UsUUFBQSxlQUU3QnpILElBQUEsQ0FBQzNCLHNCQUFzQixJQUFFO1FBQUMsQ0FDaEIsQ0FBQyxFQUNaeUYsY0FBYyxnQkFDYjVELEtBQUEsQ0FBQ2Isc0JBQXNCO1VBQUNzTCxJQUFJLEVBQUMsTUFBTTtVQUFBbEQsUUFBQSxnQkFDakN6SCxJQUFBLENBQUNWLG9CQUFvQjtZQUNuQmlGLElBQUksRUFBQyxRQUFRO1lBQ2JxRyxPQUFPLEVBQUVySyxVQUFVLEtBQUssU0FBVTtZQUNsQ2dILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2NBQUEsT0FBUVIsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1lBQUEsQ0FBQztZQUFBVSxRQUFBLEVBRTFDakYsQ0FBQyxDQUFDLGVBQWU7VUFBQyxDQUNDLENBQUMsZUFDdkJ4QyxJQUFBLENBQUNWLG9CQUFvQjtZQUNuQmlGLElBQUksRUFBQyxRQUFRO1lBQ2JxRyxPQUFPLEVBQUVySyxVQUFVLEtBQUssWUFBYTtZQUNyQ2dILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2NBQUEsT0FBUVIsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBQUEsQ0FBQztZQUFBVSxRQUFBLEVBRTdDakYsQ0FBQyxDQUFDLGtCQUFrQjtVQUFDLENBQ0YsQ0FBQyxlQUN2QnhDLElBQUEsQ0FBQ1Ysb0JBQW9CO1lBQ25CaUYsSUFBSSxFQUFDLFFBQVE7WUFDYnFHLE9BQU8sRUFBRXJLLFVBQVUsS0FBSyxVQUFXO1lBQ25DZ0gsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7Y0FBQSxPQUFRUixnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7WUFBQSxDQUFDO1lBQUFVLFFBQUEsRUFFM0NqRixDQUFDLENBQUMsZ0JBQWdCO1VBQUMsQ0FDQSxDQUFDO1FBQUEsQ0FDRCxDQUFDLEdBQ3ZCLElBQUk7TUFBQSxDQUNlLENBQUMsZUFDMUJ4QyxJQUFBLENBQUM3QixVQUFVO1FBQUNvTSxXQUFXLEVBQUV2SixXQUFZO1FBQUN5SixPQUFPLEVBQUVqSSxDQUFDLENBQUMsZUFBZSxDQUFFO1FBQUNXLGFBQWEsRUFBRUEsYUFBYztRQUFBc0UsUUFBQSxlQUM5RnpILElBQUEsQ0FBQ3BDLEtBQUssSUFBRTtNQUFDLENBQ0MsQ0FBQztJQUFBLENBQ08sQ0FBQztFQUFBLENBQ1gsQ0FBQztBQUVuQixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -57,6 +57,7 @@ var CHAT_AI_EVENTS = {
57
57
  aiChatDraggable: 'AI_CHAT_DRAGGABLE',
58
58
  aiChatClose: 'AI_CHAT_CLOSE',
59
59
  aiChatBack: 'AI_CHAT_BACK',
60
+ aiChatContextSelected: 'AI_CHAT_CONTEXT_SELECTED',
60
61
  aiChatSidebar: 'AI_CHAT_SIDEBAR'
61
62
  };
62
63
  var ABM_AGENT_EVENTS = {
@@ -84,4 +85,4 @@ export var useEvent = function useEvent() {
84
85
  }, [companyId, userId]);
85
86
  return triggerEvent;
86
87
  };
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImRpc3BhdGNoQW1wbGl0dWRlIiwidXNlVXNlciIsIlBST0pFQ1RfUkVTVU1FX0VWRU5UUyIsInByb2plY3RSZXN1bWVPcGVuIiwicHJvamVjdFJlc3VtZU9wZW5Db25maWd1cmUiLCJwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlIiwicHJvamVjdFJlc3VtZUdlbmVyYXRlIiwicHJvamVjdFJlc3VtZUNsb3NlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsInByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzIiwicHJvamVjdFJlc3VtZUZlZWRiYWNrIiwicHJvamVjdFJlc3VtZUNvcHkiLCJwcm9qZWN0UmVzdW1lR2VuZXJhdGlvbkNvbXBsZXRlIiwiQ0hBVF9BSV9FVkVOVFMiLCJwbUFpT3BlbiIsInBtQWlGcmVxdWVudFF1ZXN0aW9uIiwicG1BaVR5cGVkVGV4dCIsInBtQWlTZW5kUXVlc3Rpb24iLCJwbUFpT3BlbkNoYXRIaXN0b3J5IiwicG1BaU5ld0NvbnZlcnNhdGlvbiIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwicG1BaU9wZW5NZW51IiwicG1BaU1lbnVEZWxldGUiLCJwbUFpTWVudUVkaXQiLCJwbUFpQmFja0J1dHRvbiIsImFpQ2hhdEZhcSIsImFpQ2hhdFNlbmQiLCJhaUNoYXRSZXNwb25zZSIsImFpQ2hhdE9wZW5BZ2VudFNlbGVjdCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWlDaGF0U2VhcmNoQ29udGV4dFNlbGVjdFJlc3VsdCIsImFpQ2hhdE1lbnRpb25PcGVuIiwiYWlDaGF0TWVudGlvblR5cGVTd2l0Y2giLCJhaUNoYXRNZW50aW9uU2VsZWN0IiwiYWlDaGF0TWVudGlvblNlbmQiLCJhaUNoYXRNZW50aW9uUmVtb3ZlIiwiYWlDaGF0QnJlYWRjcnVtYkNoYW5nZSIsImFpQ2hhdEZhdm9yaXRlIiwiYWlDaGF0VG9vbHMiLCJhaUNoYXRQbHVzT3BlbiIsImFpQ2hhdFF1aWNrQWN0aW9uT3BlbiIsImFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0IiwiYWlDaGF0U3RvcFJlc3BvbnNlIiwiYWlDaGF0U2VsZWN0RkFRIiwiYWlDaGF0SGl0bCIsImFpQ2hhdEhpdGxPcHRpb24iLCJhaUNoYXRNcE9wZW4iLCJhaUNoYXRNcFNlbGVjdEFnZW50IiwiYWlDaGF0U3VnZ2VzdGVkQW5zd2VyIiwiYWlDaGF0T3BlblZpZXdPcHRpb25zIiwiYWlDaGF0U2VsZWN0Vmlld09wdGlvbnMiLCJhaUNoYXREcmFnZ2FibGUiLCJhaUNoYXRDbG9zZSIsImFpQ2hhdEJhY2siLCJhaUNoYXRTaWRlYmFyIiwiQUJNX0FHRU5UX0VWRU5UUyIsIm9wZW5Nb2RhbCIsImNhbmNlbE1vZGFsIiwidGFiU2VjdGlvbiIsImFkZEZpbGUiLCJjb25maXJtQWN0aW9uIiwiYWNjZXNzaWJpbGl0eVR5cGUiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50Iiwic2VsZWN0TW9kZWwiLCJjaG9vc2VNb2RlbCIsIkVWRU5UUyIsIl9vYmplY3RTcHJlYWQiLCJ1c2VFdmVudCIsIl91c2VVc2VyIiwiY29tcGFueUlkIiwiY29tcGFueV9pZCIsInVzZXJJZCIsImlkIiwidHJpZ2dlckV2ZW50IiwiZXZlbnROYW1lIiwiYXJncyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFdmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGRpc3BhdGNoQW1wbGl0dWRlIGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZSdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuXG5jb25zdCBQUk9KRUNUX1JFU1VNRV9FVkVOVFMgPSB7XG4gIHByb2plY3RSZXN1bWVPcGVuOiAnUFJPSkVDVF9SRVNVTUVfT1BFTicsXG4gIHByb2plY3RSZXN1bWVPcGVuQ29uZmlndXJlOiAnUFJPSkVDVF9SRVNVTUVfT1BFTl9DT05GSUdVUkUnLFxuICBwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlOiAnUFJPSkVDVF9SRVNVTUVfQ09ORklHX0NIQU5HRScsXG4gIHByb2plY3RSZXN1bWVHZW5lcmF0ZTogJ1BST0pFQ1RfUkVTVU1FX0dFTkVSQVRFJyxcbiAgcHJvamVjdFJlc3VtZUNsb3NlOiAnUFJPSkVDVF9SRVNVTUVfQ0xPU0UnLFxuICBwcm9qZWN0UmVzdW1lRXhwYW5kOiAnUFJPSkVDVF9SRVNVTUVfRVhQQU5EJyxcbiAgcHJvamVjdFJlc3VtZUJhY2tUZW1wbGF0ZXM6ICdQUk9KRUNUX1JFU1VNRV9CQUNLX1RFTVBMQVRFUycsXG4gIHByb2plY3RSZXN1bWVGZWVkYmFjazogJ1BST0pFQ1RfUkVTVU1FX0ZFRURCQUNLJyxcbiAgcHJvamVjdFJlc3VtZUNvcHk6ICdQUk9KRUNUX1JFU1VNRV9DT1BZJyxcbiAgcHJvamVjdFJlc3VtZUdlbmVyYXRpb25Db21wbGV0ZTogJ1BST0pFQ1RfUkVTVU1FX0dFTkVSQVRJT05fQ09NUExFVEUnLFxufVxuXG5jb25zdCBDSEFUX0FJX0VWRU5UUyA9IHtcbiAgcG1BaU9wZW46ICdQTV9BSV9PUEVOJyxcbiAgcG1BaUZyZXF1ZW50UXVlc3Rpb246ICdQTV9BSV9GUkVRVUVOVF9RVUVTVElPTicsXG4gIHBtQWlUeXBlZFRleHQ6ICdBSV9DSEFUX1RZUEVEJyxcbiAgcG1BaVNlbmRRdWVzdGlvbjogJ1BNX0FJX1NFTkRfUVVFU1RJT04nLFxuICBwbUFpT3BlbkNoYXRIaXN0b3J5OiAnUE1fQUlfT1BFTl9DSEFUX0hJU1RPUlknLFxuICBwbUFpTmV3Q29udmVyc2F0aW9uOiAnUE1fQUlfTkVXX0NPTlZFUlNBVElPTicsXG4gIHBtQWlPcGVuQ29udmVyc2F0aW9uOiAnUE1fQUlfT1BFTl9DT05WRVJTQVRJT04nLFxuICBwbUFpT3Blbk1lbnU6ICdQTV9BSV9PUEVOX01FTlUnLFxuICBwbUFpTWVudURlbGV0ZTogJ1BNX0FJX01FTlVfREVMRVRFJyxcbiAgcG1BaU1lbnVFZGl0OiAnUE1fQUlfTUVOVV9FRElUJyxcbiAgcG1BaUJhY2tCdXR0b246ICdQTV9BSV9CQUNLX0JVVFRPTicsXG4gIGFpQ2hhdEZhcTogJ0FJX0NIQVRfRkFRJyxcbiAgYWlDaGF0U2VuZDogJ0FJX0NIQVRfU0VORCcsXG4gIGFpQ2hhdFJlc3BvbnNlOiAnQUlfQ0hBVF9SRVNQT05TRScsXG4gIGFpQ2hhdE9wZW5BZ2VudFNlbGVjdDogJ0FJX0NIQVRfT1BFTl9BR0VOVEVfU0VMRUNUJyxcbiAgYWlDaGF0QWdlbnRTZWxlY3Q6ICdBSV9DSEFUX0FHRU5URV9TRUxFQ1RFRCcsXG4gIGFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQ6ICdBSV9DSEFUX1NFQVJDSF9DT05URVhUX1NFTEVDVF9SRVNVTFQnLFxuICBhaUNoYXRNZW50aW9uT3BlbjogJ0FJX0NIQVRfTUVOVElPTl9PUEVOJyxcbiAgYWlDaGF0TWVudGlvblR5cGVTd2l0Y2g6ICdBSV9DSEFUX01FTlRJT05fVFlQRV9TV0lUQ0gnLFxuICBhaUNoYXRNZW50aW9uU2VsZWN0OiAnQUlfQ0hBVF9NRU5USU9OX1NFTEVDVCcsXG4gIGFpQ2hhdE1lbnRpb25TZW5kOiAnQUlfQ0hBVF9NRU5USU9OX1NFTkQnLFxuICBhaUNoYXRNZW50aW9uUmVtb3ZlOiAnQUlfQ0hBVF9NRU5USU9OX1JFTU9WRScsXG4gIGFpQ2hhdEJyZWFkY3J1bWJDaGFuZ2U6ICdBSV9DSEFUX0JSRUFEQ1JVTUJfQ0hBTkdFJyxcbiAgYWlDaGF0RmF2b3JpdGU6ICdBSV9DSEFUX0ZBVk9SSVRFJyxcbiAgYWlDaGF0VG9vbHM6ICdBSV9DSEFUX1RPT0xTJyxcbiAgYWlDaGF0UGx1c09wZW46ICdBSV9DSEFUX1BMVVNfT1BFTicsXG4gIGFpQ2hhdFF1aWNrQWN0aW9uT3BlbjogJ0FJX0NIQVRfUVVJQ0tfQUNUSU9OX09QRU4nLFxuICBhaUNoYXRRdWlja0FjdGlvblNlbGVjdDogJ0FJX0NIQVRfUVVJQ0tfQUNUSU9OX1NFTEVDVCcsXG4gIGFpQ2hhdFN0b3BSZXNwb25zZTogJ0FJX0NIQVRfU1RPUF9SRVNQT05TRScsXG4gIGFpQ2hhdFNlbGVjdEZBUTogJ0FJX0NIQVRfU0VMRUNUX0ZBUScsXG4gIGFpQ2hhdEhpdGw6ICdBSV9DSEFUX0hJVEwnLFxuICBhaUNoYXRIaXRsT3B0aW9uOiAnQUlfQ0hBVF9ISVRMX09QVElPTicsXG4gIGFpQ2hhdE1wT3BlbjogJ0FJX0NIQVRfTVBfT1BFTicsXG4gIGFpQ2hhdE1wU2VsZWN0QWdlbnQ6ICdBSV9DSEFUX01QX1NFTEVDVF9BR0VOVCcsXG4gIGFpQ2hhdFN1Z2dlc3RlZEFuc3dlcjogJ0FJX0NIQVRfU1VHR0VTVEVEX0FOU1dFUicsXG4gIGFpQ2hhdE9wZW5WaWV3T3B0aW9uczogJ0FJX0NIQVRfT1BFTl9WSUVXX09QVElPTlMnLFxuICBhaUNoYXRTZWxlY3RWaWV3T3B0aW9uczogJ0FJX0NIQVRfU0VMRUNUX1ZJRVdfT1BUSU9OUycsXG4gIGFpQ2hhdERyYWdnYWJsZTogJ0FJX0NIQVRfRFJBR0dBQkxFJyxcbiAgYWlDaGF0Q2xvc2U6ICdBSV9DSEFUX0NMT1NFJyxcbiAgYWlDaGF0QmFjazogJ0FJX0NIQVRfQkFDSycsXG4gIGFpQ2hhdFNpZGViYXI6ICdBSV9DSEFUX1NJREVCQVInLFxufVxuXG5jb25zdCBBQk1fQUdFTlRfRVZFTlRTID0ge1xuICBvcGVuTW9kYWw6ICdBSV9DSEFUX0FCTV9BQ0NFU1MnLFxuICBjYW5jZWxNb2RhbDogJ0FJX0NIQVRfQUJNX0NBTkNFTCcsXG4gIHRhYlNlY3Rpb246ICdBSV9DSEFUX0FCTV9TRUNUSU9OJyxcbiAgYWRkRmlsZTogJ0FJX0NIQVRfQUJNX1NFQ1RJT04nLFxuICBjb25maXJtQWN0aW9uOiAnQUlfQ0hBVF9BQk1fQ09ORklSTScsXG4gIGRlbGV0ZTogJ0FJX0NIQVRfQUJNX0RFTEVURV9BR0VOVCcsXG4gIGFjY2Vzc2liaWxpdHlUeXBlOiAnQUlfQ0hBVF9BQk1fQUNDRVNTSUJJTElUWV9UWVBFJyxcbiAgYWNjZXNzaWJpbGl0eVNlbGVjdENsaWVudDogJ0FJX0NIQVRfQUJNX0FDQ0VTU0lCSUxJVFlfU0VMRUNUX0NMSUVOVCcsXG4gIHNlbGVjdE1vZGVsOiAnQUlfQ0hBVF9BQk1fU0VMRUNUX01PREVMJyxcbiAgY2hvb3NlTW9kZWw6ICdBSV9DSEFUX0FCTV9DSE9PU0VfTU9ERUwnLFxufVxuZXhwb3J0IGNvbnN0IEVWRU5UUyA9IHtcbiAgLi4uUFJPSkVDVF9SRVNVTUVfRVZFTlRTLFxuICAuLi5DSEFUX0FJX0VWRU5UUyxcbiAgLi4uQUJNX0FHRU5UX0VWRU5UUyxcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnROYW1lID0gKHR5cGVvZiBFVkVOVFMpW2tleW9mIHR5cGVvZiBFVkVOVFNdXG5cbmV4cG9ydCBjb25zdCB1c2VFdmVudCA9ICgpID0+IHtcbiAgY29uc3QgeyBjb21wYW55X2lkOiBjb21wYW55SWQsIGlkOiB1c2VySWQgfSA9IHVzZVVzZXIoKVxuXG4gIGNvbnN0IHRyaWdnZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgIDxFdmVudEFyZ3M+KGV2ZW50TmFtZTogRXZlbnROYW1lLCBhcmdzPzogRXZlbnRBcmdzKSA9PiB7XG4gICAgICBkaXNwYXRjaEFtcGxpdHVkZShldmVudE5hbWUsIGNvbXBhbnlJZCwge1xuICAgICAgICBjb21wYW55SWQsXG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgLi4uYXJncyxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbY29tcGFueUlkLCB1c2VySWRdXG4gIClcblxuICByZXR1cm4gdHJpZ2dlckV2ZW50XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLE9BQU9DLGlCQUFpQixNQUFNLHFEQUFxRDtBQUNuRixTQUFTQyxPQUFPLFFBQVEscUJBQXFCO0FBRTdDLElBQU1DLHFCQUFxQixHQUFHO0VBQzVCQyxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeENDLDBCQUEwQixFQUFFLCtCQUErQjtFQUMzREMseUJBQXlCLEVBQUUsOEJBQThCO0VBQ3pEQyxxQkFBcUIsRUFBRSx5QkFBeUI7RUFDaERDLGtCQUFrQixFQUFFLHNCQUFzQjtFQUMxQ0MsbUJBQW1CLEVBQUUsdUJBQXVCO0VBQzVDQywwQkFBMEIsRUFBRSwrQkFBK0I7RUFDM0RDLHFCQUFxQixFQUFFLHlCQUF5QjtFQUNoREMsaUJBQWlCLEVBQUUscUJBQXFCO0VBQ3hDQywrQkFBK0IsRUFBRTtBQUNuQyxDQUFDO0FBRUQsSUFBTUMsY0FBYyxHQUFHO0VBQ3JCQyxRQUFRLEVBQUUsWUFBWTtFQUN0QkMsb0JBQW9CLEVBQUUseUJBQXlCO0VBQy9DQyxhQUFhLEVBQUUsZUFBZTtFQUM5QkMsZ0JBQWdCLEVBQUUscUJBQXFCO0VBQ3ZDQyxtQkFBbUIsRUFBRSx5QkFBeUI7RUFDOUNDLG1CQUFtQixFQUFFLHdCQUF3QjtFQUM3Q0Msb0JBQW9CLEVBQUUseUJBQXlCO0VBQy9DQyxZQUFZLEVBQUUsaUJBQWlCO0VBQy9CQyxjQUFjLEVBQUUsbUJBQW1CO0VBQ25DQyxZQUFZLEVBQUUsaUJBQWlCO0VBQy9CQyxjQUFjLEVBQUUsbUJBQW1CO0VBQ25DQyxTQUFTLEVBQUUsYUFBYTtFQUN4QkMsVUFBVSxFQUFFLGNBQWM7RUFDMUJDLGNBQWMsRUFBRSxrQkFBa0I7RUFDbENDLHFCQUFxQixFQUFFLDRCQUE0QjtFQUNuREMsaUJBQWlCLEVBQUUseUJBQXlCO0VBQzVDQywrQkFBK0IsRUFBRSxzQ0FBc0M7RUFDdkVDLGlCQUFpQixFQUFFLHNCQUFzQjtFQUN6Q0MsdUJBQXVCLEVBQUUsNkJBQTZCO0VBQ3REQyxtQkFBbUIsRUFBRSx3QkFBd0I7RUFDN0NDLGlCQUFpQixFQUFFLHNCQUFzQjtFQUN6Q0MsbUJBQW1CLEVBQUUsd0JBQXdCO0VBQzdDQyxzQkFBc0IsRUFBRSwyQkFBMkI7RUFDbkRDLGNBQWMsRUFBRSxrQkFBa0I7RUFDbENDLFdBQVcsRUFBRSxlQUFlO0VBQzVCQyxjQUFjLEVBQUUsbUJBQW1CO0VBQ25DQyxxQkFBcUIsRUFBRSwyQkFBMkI7RUFDbERDLHVCQUF1QixFQUFFLDZCQUE2QjtFQUN0REMsa0JBQWtCLEVBQUUsdUJBQXVCO0VBQzNDQyxlQUFlLEVBQUUsb0JBQW9CO0VBQ3JDQyxVQUFVLEVBQUUsY0FBYztFQUMxQkMsZ0JBQWdCLEVBQUUscUJBQXFCO0VBQ3ZDQyxZQUFZLEVBQUUsaUJBQWlCO0VBQy9CQyxtQkFBbUIsRUFBRSx5QkFBeUI7RUFDOUNDLHFCQUFxQixFQUFFLDBCQUEwQjtFQUNqREMscUJBQXFCLEVBQUUsMkJBQTJCO0VBQ2xEQyx1QkFBdUIsRUFBRSw2QkFBNkI7RUFDdERDLGVBQWUsRUFBRSxtQkFBbUI7RUFDcENDLFdBQVcsRUFBRSxlQUFlO0VBQzVCQyxVQUFVLEVBQUUsY0FBYztFQUMxQkMsYUFBYSxFQUFFO0FBQ2pCLENBQUM7QUFFRCxJQUFNQyxnQkFBZ0IsR0FBRztFQUN2QkMsU0FBUyxFQUFFLG9CQUFvQjtFQUMvQkMsV0FBVyxFQUFFLG9CQUFvQjtFQUNqQ0MsVUFBVSxFQUFFLHFCQUFxQjtFQUNqQ0MsT0FBTyxFQUFFLHFCQUFxQjtFQUM5QkMsYUFBYSxFQUFFLHFCQUFxQjtFQUNwQyxVQUFRLDBCQUEwQjtFQUNsQ0MsaUJBQWlCLEVBQUUsZ0NBQWdDO0VBQ25EQyx5QkFBeUIsRUFBRSx5Q0FBeUM7RUFDcEVDLFdBQVcsRUFBRSwwQkFBMEI7RUFDdkNDLFdBQVcsRUFBRTtBQUNmLENBQUM7QUFDRCxPQUFPLElBQU1DLE1BQU0sR0FBQUMsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsS0FDZGhFLHFCQUFxQixHQUNyQlcsY0FBYyxHQUNkMEMsZ0JBQWdCLENBQ3BCO0FBSUQsT0FBTyxJQUFNWSxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQSxFQUFTO0VBQzVCLElBQUFDLFFBQUEsR0FBOENuRSxPQUFPLENBQUMsQ0FBQztJQUFuQ29FLFNBQVMsR0FBQUQsUUFBQSxDQUFyQkUsVUFBVTtJQUFpQkMsTUFBTSxHQUFBSCxRQUFBLENBQVZJLEVBQUU7RUFFakMsSUFBTUMsWUFBWSxHQUFHMUUsV0FBVyxDQUM5QixVQUFZMkUsU0FBb0IsRUFBRUMsSUFBZ0IsRUFBSztJQUNyRDNFLGlCQUFpQixDQUFDMEUsU0FBUyxFQUFFTCxTQUFTLEVBQUFILGFBQUE7TUFDcENHLFNBQVMsRUFBVEEsU0FBUztNQUNURSxNQUFNLEVBQU5BO0lBQU0sR0FDSEksSUFBSSxDQUNSLENBQUM7RUFDSixDQUFDLEVBQ0QsQ0FBQ04sU0FBUyxFQUFFRSxNQUFNLENBQ3BCLENBQUM7RUFFRCxPQUFPRSxZQUFZO0FBQ3JCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
88
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImRpc3BhdGNoQW1wbGl0dWRlIiwidXNlVXNlciIsIlBST0pFQ1RfUkVTVU1FX0VWRU5UUyIsInByb2plY3RSZXN1bWVPcGVuIiwicHJvamVjdFJlc3VtZU9wZW5Db25maWd1cmUiLCJwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlIiwicHJvamVjdFJlc3VtZUdlbmVyYXRlIiwicHJvamVjdFJlc3VtZUNsb3NlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsInByb2plY3RSZXN1bWVCYWNrVGVtcGxhdGVzIiwicHJvamVjdFJlc3VtZUZlZWRiYWNrIiwicHJvamVjdFJlc3VtZUNvcHkiLCJwcm9qZWN0UmVzdW1lR2VuZXJhdGlvbkNvbXBsZXRlIiwiQ0hBVF9BSV9FVkVOVFMiLCJwbUFpT3BlbiIsInBtQWlGcmVxdWVudFF1ZXN0aW9uIiwicG1BaVR5cGVkVGV4dCIsInBtQWlTZW5kUXVlc3Rpb24iLCJwbUFpT3BlbkNoYXRIaXN0b3J5IiwicG1BaU5ld0NvbnZlcnNhdGlvbiIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwicG1BaU9wZW5NZW51IiwicG1BaU1lbnVEZWxldGUiLCJwbUFpTWVudUVkaXQiLCJwbUFpQmFja0J1dHRvbiIsImFpQ2hhdEZhcSIsImFpQ2hhdFNlbmQiLCJhaUNoYXRSZXNwb25zZSIsImFpQ2hhdE9wZW5BZ2VudFNlbGVjdCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWlDaGF0U2VhcmNoQ29udGV4dFNlbGVjdFJlc3VsdCIsImFpQ2hhdE1lbnRpb25PcGVuIiwiYWlDaGF0TWVudGlvblR5cGVTd2l0Y2giLCJhaUNoYXRNZW50aW9uU2VsZWN0IiwiYWlDaGF0TWVudGlvblNlbmQiLCJhaUNoYXRNZW50aW9uUmVtb3ZlIiwiYWlDaGF0QnJlYWRjcnVtYkNoYW5nZSIsImFpQ2hhdEZhdm9yaXRlIiwiYWlDaGF0VG9vbHMiLCJhaUNoYXRQbHVzT3BlbiIsImFpQ2hhdFF1aWNrQWN0aW9uT3BlbiIsImFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0IiwiYWlDaGF0U3RvcFJlc3BvbnNlIiwiYWlDaGF0U2VsZWN0RkFRIiwiYWlDaGF0SGl0bCIsImFpQ2hhdEhpdGxPcHRpb24iLCJhaUNoYXRNcE9wZW4iLCJhaUNoYXRNcFNlbGVjdEFnZW50IiwiYWlDaGF0U3VnZ2VzdGVkQW5zd2VyIiwiYWlDaGF0T3BlblZpZXdPcHRpb25zIiwiYWlDaGF0U2VsZWN0Vmlld09wdGlvbnMiLCJhaUNoYXREcmFnZ2FibGUiLCJhaUNoYXRDbG9zZSIsImFpQ2hhdEJhY2siLCJhaUNoYXRDb250ZXh0U2VsZWN0ZWQiLCJhaUNoYXRTaWRlYmFyIiwiQUJNX0FHRU5UX0VWRU5UUyIsIm9wZW5Nb2RhbCIsImNhbmNlbE1vZGFsIiwidGFiU2VjdGlvbiIsImFkZEZpbGUiLCJjb25maXJtQWN0aW9uIiwiYWNjZXNzaWJpbGl0eVR5cGUiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50Iiwic2VsZWN0TW9kZWwiLCJjaG9vc2VNb2RlbCIsIkVWRU5UUyIsIl9vYmplY3RTcHJlYWQiLCJ1c2VFdmVudCIsIl91c2VVc2VyIiwiY29tcGFueUlkIiwiY29tcGFueV9pZCIsInVzZXJJZCIsImlkIiwidHJpZ2dlckV2ZW50IiwiZXZlbnROYW1lIiwiYXJncyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFdmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGRpc3BhdGNoQW1wbGl0dWRlIGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZSdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuXG5jb25zdCBQUk9KRUNUX1JFU1VNRV9FVkVOVFMgPSB7XG4gIHByb2plY3RSZXN1bWVPcGVuOiAnUFJPSkVDVF9SRVNVTUVfT1BFTicsXG4gIHByb2plY3RSZXN1bWVPcGVuQ29uZmlndXJlOiAnUFJPSkVDVF9SRVNVTUVfT1BFTl9DT05GSUdVUkUnLFxuICBwcm9qZWN0UmVzdW1lQ29uZmlnQ2hhbmdlOiAnUFJPSkVDVF9SRVNVTUVfQ09ORklHX0NIQU5HRScsXG4gIHByb2plY3RSZXN1bWVHZW5lcmF0ZTogJ1BST0pFQ1RfUkVTVU1FX0dFTkVSQVRFJyxcbiAgcHJvamVjdFJlc3VtZUNsb3NlOiAnUFJPSkVDVF9SRVNVTUVfQ0xPU0UnLFxuICBwcm9qZWN0UmVzdW1lRXhwYW5kOiAnUFJPSkVDVF9SRVNVTUVfRVhQQU5EJyxcbiAgcHJvamVjdFJlc3VtZUJhY2tUZW1wbGF0ZXM6ICdQUk9KRUNUX1JFU1VNRV9CQUNLX1RFTVBMQVRFUycsXG4gIHByb2plY3RSZXN1bWVGZWVkYmFjazogJ1BST0pFQ1RfUkVTVU1FX0ZFRURCQUNLJyxcbiAgcHJvamVjdFJlc3VtZUNvcHk6ICdQUk9KRUNUX1JFU1VNRV9DT1BZJyxcbiAgcHJvamVjdFJlc3VtZUdlbmVyYXRpb25Db21wbGV0ZTogJ1BST0pFQ1RfUkVTVU1FX0dFTkVSQVRJT05fQ09NUExFVEUnLFxufVxuXG5jb25zdCBDSEFUX0FJX0VWRU5UUyA9IHtcbiAgcG1BaU9wZW46ICdQTV9BSV9PUEVOJyxcbiAgcG1BaUZyZXF1ZW50UXVlc3Rpb246ICdQTV9BSV9GUkVRVUVOVF9RVUVTVElPTicsXG4gIHBtQWlUeXBlZFRleHQ6ICdBSV9DSEFUX1RZUEVEJyxcbiAgcG1BaVNlbmRRdWVzdGlvbjogJ1BNX0FJX1NFTkRfUVVFU1RJT04nLFxuICBwbUFpT3BlbkNoYXRIaXN0b3J5OiAnUE1fQUlfT1BFTl9DSEFUX0hJU1RPUlknLFxuICBwbUFpTmV3Q29udmVyc2F0aW9uOiAnUE1fQUlfTkVXX0NPTlZFUlNBVElPTicsXG4gIHBtQWlPcGVuQ29udmVyc2F0aW9uOiAnUE1fQUlfT1BFTl9DT05WRVJTQVRJT04nLFxuICBwbUFpT3Blbk1lbnU6ICdQTV9BSV9PUEVOX01FTlUnLFxuICBwbUFpTWVudURlbGV0ZTogJ1BNX0FJX01FTlVfREVMRVRFJyxcbiAgcG1BaU1lbnVFZGl0OiAnUE1fQUlfTUVOVV9FRElUJyxcbiAgcG1BaUJhY2tCdXR0b246ICdQTV9BSV9CQUNLX0JVVFRPTicsXG4gIGFpQ2hhdEZhcTogJ0FJX0NIQVRfRkFRJyxcbiAgYWlDaGF0U2VuZDogJ0FJX0NIQVRfU0VORCcsXG4gIGFpQ2hhdFJlc3BvbnNlOiAnQUlfQ0hBVF9SRVNQT05TRScsXG4gIGFpQ2hhdE9wZW5BZ2VudFNlbGVjdDogJ0FJX0NIQVRfT1BFTl9BR0VOVEVfU0VMRUNUJyxcbiAgYWlDaGF0QWdlbnRTZWxlY3Q6ICdBSV9DSEFUX0FHRU5URV9TRUxFQ1RFRCcsXG4gIGFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQ6ICdBSV9DSEFUX1NFQVJDSF9DT05URVhUX1NFTEVDVF9SRVNVTFQnLFxuICBhaUNoYXRNZW50aW9uT3BlbjogJ0FJX0NIQVRfTUVOVElPTl9PUEVOJyxcbiAgYWlDaGF0TWVudGlvblR5cGVTd2l0Y2g6ICdBSV9DSEFUX01FTlRJT05fVFlQRV9TV0lUQ0gnLFxuICBhaUNoYXRNZW50aW9uU2VsZWN0OiAnQUlfQ0hBVF9NRU5USU9OX1NFTEVDVCcsXG4gIGFpQ2hhdE1lbnRpb25TZW5kOiAnQUlfQ0hBVF9NRU5USU9OX1NFTkQnLFxuICBhaUNoYXRNZW50aW9uUmVtb3ZlOiAnQUlfQ0hBVF9NRU5USU9OX1JFTU9WRScsXG4gIGFpQ2hhdEJyZWFkY3J1bWJDaGFuZ2U6ICdBSV9DSEFUX0JSRUFEQ1JVTUJfQ0hBTkdFJyxcbiAgYWlDaGF0RmF2b3JpdGU6ICdBSV9DSEFUX0ZBVk9SSVRFJyxcbiAgYWlDaGF0VG9vbHM6ICdBSV9DSEFUX1RPT0xTJyxcbiAgYWlDaGF0UGx1c09wZW46ICdBSV9DSEFUX1BMVVNfT1BFTicsXG4gIGFpQ2hhdFF1aWNrQWN0aW9uT3BlbjogJ0FJX0NIQVRfUVVJQ0tfQUNUSU9OX09QRU4nLFxuICBhaUNoYXRRdWlja0FjdGlvblNlbGVjdDogJ0FJX0NIQVRfUVVJQ0tfQUNUSU9OX1NFTEVDVCcsXG4gIGFpQ2hhdFN0b3BSZXNwb25zZTogJ0FJX0NIQVRfU1RPUF9SRVNQT05TRScsXG4gIGFpQ2hhdFNlbGVjdEZBUTogJ0FJX0NIQVRfU0VMRUNUX0ZBUScsXG4gIGFpQ2hhdEhpdGw6ICdBSV9DSEFUX0hJVEwnLFxuICBhaUNoYXRIaXRsT3B0aW9uOiAnQUlfQ0hBVF9ISVRMX09QVElPTicsXG4gIGFpQ2hhdE1wT3BlbjogJ0FJX0NIQVRfTVBfT1BFTicsXG4gIGFpQ2hhdE1wU2VsZWN0QWdlbnQ6ICdBSV9DSEFUX01QX1NFTEVDVF9BR0VOVCcsXG4gIGFpQ2hhdFN1Z2dlc3RlZEFuc3dlcjogJ0FJX0NIQVRfU1VHR0VTVEVEX0FOU1dFUicsXG4gIGFpQ2hhdE9wZW5WaWV3T3B0aW9uczogJ0FJX0NIQVRfT1BFTl9WSUVXX09QVElPTlMnLFxuICBhaUNoYXRTZWxlY3RWaWV3T3B0aW9uczogJ0FJX0NIQVRfU0VMRUNUX1ZJRVdfT1BUSU9OUycsXG4gIGFpQ2hhdERyYWdnYWJsZTogJ0FJX0NIQVRfRFJBR0dBQkxFJyxcbiAgYWlDaGF0Q2xvc2U6ICdBSV9DSEFUX0NMT1NFJyxcbiAgYWlDaGF0QmFjazogJ0FJX0NIQVRfQkFDSycsXG4gIGFpQ2hhdENvbnRleHRTZWxlY3RlZDogJ0FJX0NIQVRfQ09OVEVYVF9TRUxFQ1RFRCcsXG4gIGFpQ2hhdFNpZGViYXI6ICdBSV9DSEFUX1NJREVCQVInLFxufVxuXG5jb25zdCBBQk1fQUdFTlRfRVZFTlRTID0ge1xuICBvcGVuTW9kYWw6ICdBSV9DSEFUX0FCTV9BQ0NFU1MnLFxuICBjYW5jZWxNb2RhbDogJ0FJX0NIQVRfQUJNX0NBTkNFTCcsXG4gIHRhYlNlY3Rpb246ICdBSV9DSEFUX0FCTV9TRUNUSU9OJyxcbiAgYWRkRmlsZTogJ0FJX0NIQVRfQUJNX1NFQ1RJT04nLFxuICBjb25maXJtQWN0aW9uOiAnQUlfQ0hBVF9BQk1fQ09ORklSTScsXG4gIGRlbGV0ZTogJ0FJX0NIQVRfQUJNX0RFTEVURV9BR0VOVCcsXG4gIGFjY2Vzc2liaWxpdHlUeXBlOiAnQUlfQ0hBVF9BQk1fQUNDRVNTSUJJTElUWV9UWVBFJyxcbiAgYWNjZXNzaWJpbGl0eVNlbGVjdENsaWVudDogJ0FJX0NIQVRfQUJNX0FDQ0VTU0lCSUxJVFlfU0VMRUNUX0NMSUVOVCcsXG4gIHNlbGVjdE1vZGVsOiAnQUlfQ0hBVF9BQk1fU0VMRUNUX01PREVMJyxcbiAgY2hvb3NlTW9kZWw6ICdBSV9DSEFUX0FCTV9DSE9PU0VfTU9ERUwnLFxufVxuZXhwb3J0IGNvbnN0IEVWRU5UUyA9IHtcbiAgLi4uUFJPSkVDVF9SRVNVTUVfRVZFTlRTLFxuICAuLi5DSEFUX0FJX0VWRU5UUyxcbiAgLi4uQUJNX0FHRU5UX0VWRU5UUyxcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnROYW1lID0gKHR5cGVvZiBFVkVOVFMpW2tleW9mIHR5cGVvZiBFVkVOVFNdXG5cbmV4cG9ydCBjb25zdCB1c2VFdmVudCA9ICgpID0+IHtcbiAgY29uc3QgeyBjb21wYW55X2lkOiBjb21wYW55SWQsIGlkOiB1c2VySWQgfSA9IHVzZVVzZXIoKVxuXG4gIGNvbnN0IHRyaWdnZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgIDxFdmVudEFyZ3M+KGV2ZW50TmFtZTogRXZlbnROYW1lLCBhcmdzPzogRXZlbnRBcmdzKSA9PiB7XG4gICAgICBkaXNwYXRjaEFtcGxpdHVkZShldmVudE5hbWUsIGNvbXBhbnlJZCwge1xuICAgICAgICBjb21wYW55SWQsXG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgLi4uYXJncyxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbY29tcGFueUlkLCB1c2VySWRdXG4gIClcblxuICByZXR1cm4gdHJpZ2dlckV2ZW50XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLE9BQU9DLGlCQUFpQixNQUFNLHFEQUFxRDtBQUNuRixTQUFTQyxPQUFPLFFBQVEscUJBQXFCO0FBRTdDLElBQU1DLHFCQUFxQixHQUFHO0VBQzVCQyxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeENDLDBCQUEwQixFQUFFLCtC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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.65-18",
3
+ "version": "2.11.65-19",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {