@projectcor/maia-components 2.11.9 → 2.11.10-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +69 -0
  2. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  3. package/lib/components/atoms/Chip/Chip.js +4 -3
  4. package/lib/components/atoms/Chip/styles.js +2 -2
  5. package/lib/components/atoms/EntitySelector/EntitySelector.js +181 -0
  6. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +57 -0
  7. package/lib/components/atoms/EntitySelector/index.js +2 -0
  8. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +5 -3
  9. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +4 -3
  10. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +56 -193
  11. package/lib/components/index.js +2 -1
  12. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +56 -0
  13. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  14. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -1
  15. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +2 -3
  16. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +18 -6
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
  18. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  19. package/lib/components/molecules/ChatFooter/ChatFooter.js +7 -4
  20. package/lib/components/molecules/Sidebar/Sidebar.js +8 -2
  21. package/lib/components/organisms/ChatAI/ChatAI.js +11 -3
  22. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +26 -0
  23. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  24. package/lib/constants/config.js +3 -2
  25. package/lib/context/global-context.js +1 -1
  26. package/lib/hooks/useChatManager/useChatManager.js +49 -19
  27. package/lib/hooks/useChatMessages/useChatMessages.js +79 -41
  28. package/lib/hooks/useChats/useChats.js +10 -6
  29. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -4
  30. package/lib/hooks/useProjectSummaryConfig.js +35 -7
  31. package/lib/hooks/useRecentClientsSearch.js +176 -0
  32. package/lib/lang/br/index.js +25 -2
  33. package/lib/lang/en/index.js +25 -2
  34. package/lib/lang/es/index.js +25 -2
  35. package/lib/lang/fr/index.js +21 -2
  36. package/lib/services/maia/Agents/getAgents.js +10 -7
  37. package/lib/services/maia/Chats/getChatMessages.js +30 -16
  38. package/lib/services/maia/Chats/getChatsByUserId.js +4 -3
  39. package/lib/services/maia/Orchestrator/orchestrator.js +6 -4
  40. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  41. package/lib/services/maia/RecentClients/index.js +6 -0
  42. package/lib/services/maia/index.js +4 -2
  43. package/lib/services/utils/mapChatMessages.js +12 -4
  44. package/lib/store/chatsStore.types.js +1 -1
  45. package/lib/store/useChatsStore.js +9 -7
  46. package/lib/types/Chat.js +1 -1
  47. package/lib/types/Client.js +2 -0
  48. package/lib/types/agent.js +1 -1
  49. package/package.json +1 -1
@@ -2,7 +2,6 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  /* eslint-disable react/function-component-definition */
3
3
  /* eslint-disable jsx-a11y/click-events-have-key-events */
4
4
  /* eslint-disable jsx-a11y/no-static-element-interactions */
5
- /* eslint-disable no-console */
6
5
  import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
7
6
  import { Template } from '@projectcor/icons/lib/components/Template';
8
7
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
@@ -190,7 +189,7 @@ export var ChatAIHome = function ChatAIHome(_ref) {
190
189
  expanded: expanded,
191
190
  children: !isMAIA && (agent === null || agent === void 0 ? void 0 : agent.introduction)
192
191
  })]
193
- }), showProjectSummary && /*#__PURE__*/_jsxs(SCCAHWrapperSummaryProject, {
192
+ }), showProjectSummary && (agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' && /*#__PURE__*/_jsxs(SCCAHWrapperSummaryProject, {
194
193
  onClick: handlers.projectSummary,
195
194
  children: [/*#__PURE__*/_jsx(SCCAIHomeProjectSummary, {
196
195
  children: /*#__PURE__*/_jsx(Template, {
@@ -219,4 +218,4 @@ export var ChatAIHome = function ChatAIHome(_ref) {
219
218
  })
220
219
  });
221
220
  };
222
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRlbXBsYXRlIiwiVG9vbHRpcCIsInVzZVQiLCJ1c2VVc2VyIiwiR0xPQkFMX0NPTE9SUyIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24iLCJTQ0NBSUhvbWVFbXB0eUJ1dHRvbiIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVHcmFkaWVudDEiLCJTQ0NBSUhvbWVHcmFkaWVudDIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkVtcHR5U3RhdGVBZ2VudHMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk1BSUFJc29sb2dvIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJoYXNOb0FnZW50cyIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsInVzZXIiLCJldmVudCIsImlzTUFJQSIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJzaG93RkFRcyIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaWQiLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl91c2VyJHBlcm1pc3Npb25zIiwiX3VzZXIkcGVybWlzc2lvbnMyIiwiY2hpbGRyZW4iLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJvbkNsaWNrIiwib3Blbk1vZGFsIiwib3B0aW9uIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsImlzT3BlbiIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwibmFtZSIsImNyZWF0ZWRfYnkiLCJ0aXRsZSIsImlzX2RlbGV0ZWQiLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImdhcCIsInJlZiIsIiRpc0FnZW50VmlldyIsIiRzaG93IiwiJGdhcCIsIiRtYXhXaWR0aCIsInByb2plY3RTdW1tYXJ5IiwiY29sb3IiLCJwcmltYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJhZ2VudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UZW1wbGF0ZSdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgR0xPQkFMX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lcixcbiAgU0NDQUlIb21lRW1wdHlUZXh0Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVFbXB0eURlc2NyaXB0aW9uLFxuICBTQ0NBSUhvbWVFbXB0eUJ1dHRvbixcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lR3JhZGllbnQxLFxuICBTQ0NBSUhvbWVHcmFkaWVudDIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEVtcHR5U3RhdGVBZ2VudHMgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlQWdlbnRzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBoYXNOb0FnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgaGFzTm9BZ2VudHMgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICBjb25zdCBzaG93RkFRcyA9ICEhKGlzTUFJQSAmJiBmYXFzQWNjZXNzKVxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaylcbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uXSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhc2hvd0ZBUXMpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtzaG93RkFRc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dGQVFzKSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2hvd0ZBUXMsIGNoZWNrU2Nyb2xsXSlcblxuICBpZiAoaGFzTm9BZ2VudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICAgICAgPFNDQ0FJSG9tZUVtcHR5Q29udGFpbmVyPlxuICAgICAgICAgICAgPEVtcHR5U3RhdGVBZ2VudHMgLz5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eVRleHRDb250YWluZXI+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57dCgnaG9tZU1lbnUubm9BZ2VudHMudGl0bGUnKX08L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICAgICAgICA8U0NDQUlIb21lRW1wdHlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICB7dXNlci5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGVcbiAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUubm9BZ2VudHMuZGVzY3JpcHRpb25DcmVhdGUnKVxuICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5ub0FnZW50cy5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lcj5cbiAgICAgICAgICAgIHt1c2VyLnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eUJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnbmV3X2FnZW50JyB9KVxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51Lm5vQWdlbnRzLmNyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlDb250YWluZXI+XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUdyYWRpZW50MSAvPlxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmFkaWVudDIgLz5cbiAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfSBzaG93RkFRcz17c2hvd0ZBUXN9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgIHtzaG93RkFRcyAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnkgJiYgKFxuICAgICAgICAgICAgPFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0IG9uQ2xpY2s9e2hhbmRsZXJzLnByb2plY3RTdW1tYXJ5fT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICAgIDxUZW1wbGF0ZSBjb2xvcj17R0xPQkFMX0NPTE9SUy5wcmltYXJ5fSBoZWlnaHQ9ezI0fSB3aWR0aD17MjR9IC8+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+e3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LnRpdGxlJyl9PC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LmRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgIDwvU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Q+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvd0ZBUXMgJiYgKFxuICAgICAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgIHNob3dGQVFzPXtzaG93RkFRc31cbiAgICAgICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgICAge3Nob3dGQVFzICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFFcEUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFFbkQsU0FBU0MsYUFBYSxRQUFRLHdCQUF3QjtBQUl0RCxTQUNFQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMscUJBQXFCLEVBQ3JCQyxvQkFBb0IsRUFDcEJDLHVCQUF1QixFQUN2QkMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJD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
221
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRlbXBsYXRlIiwiVG9vbHRpcCIsInVzZVQiLCJ1c2VVc2VyIiwiR0xPQkFMX0NPTE9SUyIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24iLCJTQ0NBSUhvbWVFbXB0eUJ1dHRvbiIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVHcmFkaWVudDEiLCJTQ0NBSUhvbWVHcmFkaWVudDIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkVtcHR5U3RhdGVBZ2VudHMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk1BSUFJc29sb2dvIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJoYXNOb0FnZW50cyIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsInVzZXIiLCJldmVudCIsImlzTUFJQSIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJzaG93RkFRcyIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaWQiLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl91c2VyJHBlcm1pc3Npb25zIiwiX3VzZXIkcGVybWlzc2lvbnMyIiwiY2hpbGRyZW4iLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJvbkNsaWNrIiwib3Blbk1vZGFsIiwib3B0aW9uIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsImlzT3BlbiIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwibmFtZSIsImNyZWF0ZWRfYnkiLCJ0aXRsZSIsImlzX2RlbGV0ZWQiLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImdhcCIsInJlZiIsIiRpc0FnZW50VmlldyIsIiRzaG93IiwiJGdhcCIsIiRtYXhXaWR0aCIsImVudGl0eSIsInByb2plY3RTdW1tYXJ5IiwiY29sb3IiLCJwcmltYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJhZ2VudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UZW1wbGF0ZSdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgR0xPQkFMX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lcixcbiAgU0NDQUlIb21lRW1wdHlUZXh0Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVFbXB0eURlc2NyaXB0aW9uLFxuICBTQ0NBSUhvbWVFbXB0eUJ1dHRvbixcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lR3JhZGllbnQxLFxuICBTQ0NBSUhvbWVHcmFkaWVudDIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEVtcHR5U3RhdGVBZ2VudHMgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlQWdlbnRzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBoYXNOb0FnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgaGFzTm9BZ2VudHMgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICBjb25zdCBzaG93RkFRcyA9ICEhKGlzTUFJQSAmJiBmYXFzQWNjZXNzKVxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaylcbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uXSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhc2hvd0ZBUXMpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtzaG93RkFRc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dGQVFzKSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2hvd0ZBUXMsIGNoZWNrU2Nyb2xsXSlcblxuICBpZiAoaGFzTm9BZ2VudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICAgICAgPFNDQ0FJSG9tZUVtcHR5Q29udGFpbmVyPlxuICAgICAgICAgICAgPEVtcHR5U3RhdGVBZ2VudHMgLz5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eVRleHRDb250YWluZXI+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57dCgnaG9tZU1lbnUubm9BZ2VudHMudGl0bGUnKX08L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICAgICAgICA8U0NDQUlIb21lRW1wdHlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICB7dXNlci5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGVcbiAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUubm9BZ2VudHMuZGVzY3JpcHRpb25DcmVhdGUnKVxuICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5ub0FnZW50cy5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lcj5cbiAgICAgICAgICAgIHt1c2VyLnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eUJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnbmV3X2FnZW50JyB9KVxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51Lm5vQWdlbnRzLmNyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlDb250YWluZXI+XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUdyYWRpZW50MSAvPlxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmFkaWVudDIgLz5cbiAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfSBzaG93RkFRcz17c2hvd0ZBUXN9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgIHtzaG93RkFRcyAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnkgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGUgY29sb3I9e0dMT0JBTF9DT0xPUlMucHJpbWFyeX0gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dGQVFzICYmIChcbiAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVDb250ZW50SW5uZXI+XG4gICAgICAgIHtzaG93RkFRcyAmJiA8U0NDQUlIb21lR3JhZGllbnRCb3R0b20gJHNob3c9e3Nob3dCb3R0b21HcmFkaWVudH0gLz59XG4gICAgICA8L1NDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgPC9TQ0NBSUhvbWVDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUVwRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUVuRCxTQUFTQyxhQUFhLFFBQVEsd0JBQXdCO0FBSXRELFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsRUFDckJDLG9CQUFvQixFQUNwQkMsdUJBQXVCLEVBQ3ZCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNq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
@@ -39,7 +39,7 @@ var validateAccessByFeature = function validateAccessByFeature(section) {
39
39
  if (section === 'header' && (window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS || window.MAIA_CHAT_AI_FEATURE_ACCESS)) {
40
40
  return true;
41
41
  }
42
- if (section === 'project' && window.MAIA_CHAT_AI_FEATURE_ACCESS) {
42
+ if ((section === 'project' || section === 'client') && window.MAIA_CHAT_AI_FEATURE_ACCESS) {
43
43
  return true;
44
44
  }
45
45
  return false;
@@ -108,9 +108,11 @@ export var ChatAIModal = function ChatAIModal(_ref) {
108
108
  section = _useGlobalContext.section,
109
109
  agent = _useGlobalContext.agent,
110
110
  project = _useGlobalContext.project,
111
+ client = _useGlobalContext.client,
111
112
  toggleWebSearch = _useGlobalContext.toggleWebSearch,
112
113
  isWebSearchActive = _useGlobalContext.isWebSearchActive,
113
- setChipsProject = _useGlobalContext.setChipsProject;
114
+ setChipsProject = _useGlobalContext.setChipsProject,
115
+ setClient = _useGlobalContext.setClient;
114
116
  var _useGetAgents = useGetAgents({
115
117
  selectAgent: selectAgent,
116
118
  section: section,
@@ -133,12 +135,18 @@ export var ChatAIModal = function ChatAIModal(_ref) {
133
135
  var isMAIA = validateIsMaia(agent);
134
136
  var userHasPermissions = ((user === null || user === void 0 || (_user$permissions = user.permissions) === null || _user$permissions === void 0 || (_user$permissions = _user$permissions.ai_agents) === null || _user$permissions === void 0 ? void 0 : _user$permissions.create) || (user === null || user === void 0 || (_user$permissions2 = user.permissions) === null || _user$permissions2 === void 0 || (_user$permissions2 = _user$permissions2.ai_agents) === null || _user$permissions2 === void 0 ? void 0 : _user$permissions2.edit) || (user === null || user === void 0 || (_user$permissions3 = user.permissions) === null || _user$permissions3 === void 0 || (_user$permissions3 = _user$permissions3.ai_agents) === null || _user$permissions3 === void 0 ? void 0 : _user$permissions3["delete"])) && window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
135
137
  var computedCurrentOption = useMemo(function () {
136
- var shouldShowProjectSelector = currentOption !== options.chat && isMAIA && !project;
138
+ var isProjectSpecialist = isMAIA && ((agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' || (agent === null || agent === void 0 ? void 0 : agent.entity) == null);
139
+ var isClientSpecialist = isMAIA && (agent === null || agent === void 0 ? void 0 : agent.entity) === 'client';
140
+ var shouldShowProjectSelector = currentOption !== options.chat && isProjectSpecialist && !project;
141
+ var shouldShowClientSelector = currentOption !== options.chat && isClientSpecialist && !client;
137
142
  if (shouldShowProjectSelector) {
138
143
  return options.projectSelector;
139
144
  }
145
+ if (shouldShowClientSelector) {
146
+ return options.clientSelector;
147
+ }
140
148
  return currentOption;
141
- }, [section, currentOption, project, isMAIA]);
149
+ }, [currentOption, project, client, isMAIA, agent === null || agent === void 0 ? void 0 : agent.entity]);
142
150
  var agentsFetchedRef = useRef(false);
143
151
  var selector = document.querySelector("#".concat(ID_MODAL_CHAT_AGENT));
144
152
  var _useState21 = useState(false),
@@ -204,6 +212,10 @@ export var ChatAIModal = function ChatAIModal(_ref) {
204
212
  setNewChatKey(function (prev) {
205
213
  return prev + 1;
206
214
  });
215
+ // No borrar el cliente si es agente de clientes (igual que el proyecto se mantiene)
216
+ if ((agent === null || agent === void 0 ? void 0 : agent.entity) !== 'client') {
217
+ setClient === null || setClient === void 0 || setClient(null);
218
+ }
207
219
  }
208
220
  if ((!agent || agent !== null && agent !== void 0 && agent.is_deleted || agent !== null && agent !== void 0 && agent.has_not_permissions || agent !== null && agent !== void 0 && agent.has_not_access || agent !== null && agent !== void 0 && agent.project_deleted) && agents.data.length > 0) {
209
221
  selectAgent(agents.data[0]);
@@ -215,7 +227,7 @@ export var ChatAIModal = function ChatAIModal(_ref) {
215
227
  if (resetSelectedChatRef.current) {
216
228
  resetSelectedChatRef.current();
217
229
  }
218
- }, [options.home, options.chat, currentOption, isWebSearchActive, toggleWebSearch, agent, agents, selectAgent]);
230
+ }, [options.home, options.chat, currentOption, isWebSearchActive, toggleWebSearch, agent, agents, selectAgent, setClient]);
219
231
  var handleResetChat = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
220
232
  return _regeneratorRuntime.wrap(function (_context) {
221
233
  while (1) switch (_context.prev = _context.next) {
@@ -310,4 +322,4 @@ export var ChatAIModal = function ChatAIModal(_ref) {
310
322
  }), /*#__PURE__*/_jsx(Snackbar, {})]
311
323
  }), selector);
312
324
  };
313
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwiQ2hhdEFJQ29udGVudCIsImJ1aWxkSGFuZGxlcnMiLCJvcHRpb25zIiwiU2lkZWJhciIsInVzZUdldEFnZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIlNFQ1RJT05TIiwiU0NDQUlNQ29udGVudCIsIlNDQ0FJTUNvbnRlbnRXcmFwcGVyIiwiU0NDQUlNV3JhcHBlciIsIkNoYXRBaU1vZGFsRm9vdGVyIiwidmFsaWRhdGVJc01haWEiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiSURfTU9EQUxfQ0hBVF9BR0VOVCIsInZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlIiwic2VjdGlvbiIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJDaGF0QUlNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsIl9hZ2VudHMkZGF0YSIsImhhbmRsZUNsb3NlIiwidXNlciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwiaTE4biIsIl91c2VTdGF0ZSIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVzZXJJbml0aWFsTWVzc2FnZSIsInNldFVzZXJJbml0aWFsTWVzc2FnZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaW5pdGlhbENoYXRJZCIsInNldEluaXRpYWxDaGF0SWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm5ld0NoYXRLZXkiLCJzZXROZXdDaGF0S2V5IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZW5kTWVzc2FnZUZ1bmN0aW9uIiwic2V0U2VuZE1lc3NhZ2VGdW5jdGlvbiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsInNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNSIsImhvbWUiLCJfdXNlU3RhdGUxNiIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsImxhbmciLCJsYW5ndWFnZSIsImxvY2FsZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJhZ2VudCIsInByb2plY3QiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsIl91c2VHZXRBZ2VudHMiLCJoYW5kbGVHb0hvbWUiLCJhZ2VudHMiLCJsb2FkaW5nIiwibG9hZGluZ01vcmUiLCJhZ2VudEVycm9yIiwiZXJyb3IiLCJoYXNOb0FnZW50cyIsImhhbmRsZUdldEFnZW50cyIsImxvYWRNb3JlQWdlbnRzIiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJzb3J0QWdlbnRzTGlzdCIsImlzTUFJQSIsInVzZXJIYXNQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwiZWRpdCIsImNvbXB1dGVkQ3VycmVudE9wdGlvbiIsInNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IiLCJjaGF0IiwicHJvamVjdFNlbGVjdG9yIiwiYWdlbnRzRmV0Y2hlZFJlZiIsInNlbGVjdG9yIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY29uY2F0IiwiX3VzZVN0YXRlMjEiLCJfdXNlU3RhdGUyMiIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJzdGFydENoYXQiLCJmYXFJZCIsInByZXYiLCJfb2JqZWN0U3ByZWFkIiwiZ29Ub0NoYXQiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsInNlbGVjdGVkQWdlbnQiLCJkYXRhIiwiZmluZCIsImFnZW50SXRlbSIsImlkIiwiYWdlbnRJZCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImhhbmRsZVNlbmRNZXNzYWdlUmVhZHkiLCJzZW5kTWVzc2FnZSIsInN0b3BHZW5lcmF0aW9uIiwic3RyZWFtaW5nIiwid3JpdGluZyIsImhhbmRsZVNlbmRNZXNzYWdlIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsInByb2plY3RfZGVsZXRlZCIsImxlbmd0aCIsImN1cnJlbnQiLCJoYW5kbGVSZXNldENoYXQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJzdG9wIiwic2hvd05ld0NoYXQiLCJjcmVhdGVQb3J0YWwiLCJjaGlsZHJlbiIsIm9uR29Ub0NoYXQiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJvbkFnZW50VXBkYXRlIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsIm9uUmVzdGFydFN1bW1hcnkiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImNoYXRJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9DaGF0QUlNb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1uby11c2VsZXNzLWZyYWdtZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFFcnJvcidcblxuaW1wb3J0IHsgQ2hhdEFJQ29udGVudCB9IGZyb20gJy4uL0NoYXRBSUNvbnRlbnQnXG5pbXBvcnQgeyBidWlsZEhhbmRsZXJzLCBvcHRpb25zIH0gZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQgeyBTaWRlYmFyIH0gZnJvbSAnLi4vU2lkZWJhcidcbmltcG9ydCB7IHVzZUdldEFnZW50cyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50cydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGF0QUlNb2RhbEhlYWRlciB9IGZyb20gJy4vY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlcidcbmltcG9ydCB7IFNuYWNrYmFyIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL1NuYWNrQmFyL1NuYWNrYmFyJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vUHJvamVjdFN1bW1hcnlDb250ZW50J1xuaW1wb3J0IHsgQWJtQWdlbnRNb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9BYm1BZ2VudE1vZGFsL0FibUFnZW50TW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBTQ0NBSU1Db250ZW50LCBTQ0NBSU1Db250ZW50V3JhcHBlciwgU0NDQUlNV3JhcHBlciB9IGZyb20gJy4vQ2hhdEFJTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgQ2hhdEFpTW9kYWxGb290ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxGb290ZXInXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcblxudHlwZSBDaGF0QUlNb2RhbFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHBhcmVudFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbn1cblxuZXhwb3J0IGNvbnN0IElEX01PREFMX0NIQVRfQUdFTlQgPSAnbW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnQnXG5cbmNvbnN0IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgKHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8IHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoc2VjdGlvbiA9PT0gJ3Byb2plY3QnICYmIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTW9kYWwgPSAoeyBoYW5kbGVDbG9zZSB9OiBDaGF0QUlNb2RhbFByb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCBbdXNlckluaXRpYWxNZXNzYWdlLCBzZXRVc2VySW5pdGlhbE1lc3NhZ2VdID0gdXNlU3RhdGU8e1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICAgIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gICAgZmFxSWQ/OiBzdHJpbmdcbiAgfT4oe1xuICAgIG1lc3NhZ2U6ICcnLFxuICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgfSlcbiAgY29uc3QgW2luaXRpYWxDaGF0SWQsIHNldEluaXRpYWxDaGF0SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW25ld0NoYXRLZXksIHNldE5ld0NoYXRLZXldID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHNldFNlbmRNZXNzYWdlRnVuY3Rpb25dID0gdXNlU3RhdGU8XG4gICAgKChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSkgPT4gdm9pZCkgfCBudWxsXG4gID4obnVsbClcbiAgY29uc3QgW3N0b3BHZW5lcmF0aW9uRnVuY3Rpb24sIHNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb25dID0gdXNlU3RhdGU8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzU3RyZWFtaW5nLCBzZXRJc1N0cmVhbWluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzV3JpdGluZywgc2V0SXNXcml0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IFtyZWZldGNoQ2hhdHMsIHNldFJlZmV0Y2hDaGF0c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnRPcHRpb24sIHNldEN1cnJlbnRPcHRpb25dID0gdXNlU3RhdGUob3B0aW9ucy5ob21lKVxuICBjb25zdCBbaGFzRXJyb3IsIHNldEhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBoYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4gYnVpbGRIYW5kbGVycyhzZXRDdXJyZW50T3B0aW9uLCBzZXRIYXNFcnJvciksIFtdKVxuICBjb25zdCBbc2lkZWJhckhhc0Vycm9yLCBzZXRTaWRlYmFySGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHJlc2V0U2VsZWN0ZWRDaGF0UmVmID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0LWJyJyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBtb21lbnQubG9jYWxlKGxhbmcpXG5cbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIHByb2plY3QsIHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHNldENoaXBzUHJvamVjdCB9ID1cbiAgICB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3I6IGFnZW50RXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfSA9IHVzZUdldEFnZW50cyh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lOiBoYW5kbGVycy5ob21lIH0pXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG5cbiAgY29uc3QgdXNlckhhc1Blcm1pc3Npb25zID1cbiAgICAodXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uY3JlYXRlIHx8XG4gICAgICB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5lZGl0IHx8XG4gICAgICB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5kZWxldGUpICYmXG4gICAgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICBjb25zdCBjb21wdXRlZEN1cnJlbnRPcHRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yID0gY3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0ICYmIGlzTUFJQSAmJiAhcHJvamVjdFxuXG4gICAgaWYgKHNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnByb2plY3RTZWxlY3RvclxuICAgIH1cbiAgICByZXR1cm4gY3VycmVudE9wdGlvblxuICB9LCBbc2VjdGlvbiwgY3VycmVudE9wdGlvbiwgcHJvamVjdCwgaXNNQUlBXSlcblxuICBjb25zdCBhZ2VudHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IHNlbGVjdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7SURfTU9EQUxfQ0hBVF9BR0VOVH1gKVxuXG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3Qgc3RhcnRDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U/OiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHtcbiAgICAgICAgc2V0U2lkZWJhckhhc0Vycm9yKGZhbHNlKVxuICAgICAgfVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSB8fCAnJyxcbiAgICAgICAgYXR0YWNobWVudHM6IGF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgICAuLi4oZmFxSWQgPyB7IGZhcUlkIH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGdvVG9DaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgY29uc3Qgc2VsZWN0ZWRBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYWdlbnRJdGVtID0+IGFnZW50SXRlbS5pZCA9PT0gY2hhdC5hZ2VudElkKVxuICAgICAgaWYgKHNlbGVjdGVkQWdlbnQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoc2VsZWN0ZWRBZ2VudClcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgYWdlbnRzLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlUmVhZHkgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdKSA9PiB2b2lkLFxuICAgICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgICBzdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgICB3cml0aW5nOiBib29sZWFuXG4gICAgKSA9PiB7XG4gICAgICBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uKCgpID0+IHNlbmRNZXNzYWdlKVxuICAgICAgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbigoKSA9PiBzdG9wR2VuZXJhdGlvbilcbiAgICAgIHNldElzU3RyZWFtaW5nKHN0cmVhbWluZylcbiAgICAgIHNldElzV3JpdGluZyh3cml0aW5nKVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSB7XG4gICAgICAgIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICAgIGlmIChzZW5kTWVzc2FnZUZ1bmN0aW9uICYmIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICAgIHNlbmRNZXNzYWdlRnVuY3Rpb24obWVzc2FnZSwgYXR0YWNobWVudHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMpXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc3RhcnRDaGF0LCBjb21wdXRlZEN1cnJlbnRPcHRpb24sIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdvSG9tZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTaSBlc3RhbW9zIGVuIHVuYSBjb252ZXJzYWNpw7NuIHkgdmFtb3MgYSBob21lLCByZXNldGVhciBpbml0aWFsQ2hhdElkIHkgaW5jcmVtZW50YXIgbmV3Q2hhdEtleVxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKCFhZ2VudCB8fCBhZ2VudD8uaXNfZGVsZXRlZCB8fCBhZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCBhZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHwgYWdlbnQ/LnByb2plY3RfZGVsZXRlZCkgJiZcbiAgICAgIGFnZW50cy5kYXRhLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50cy5kYXRhWzBdKVxuICAgIH1cbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSAmJiB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgICB9XG4gIH0sIFtvcHRpb25zLmhvbWUsIG9wdGlvbnMuY2hhdCwgY3VycmVudE9wdGlvbiwgaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZVdlYlNlYXJjaCwgYWdlbnQsIGFnZW50cywgc2VsZWN0QWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIGhhbmRsZUdvSG9tZSgpXG4gIH0sIFtoYW5kbGVHb0hvbWVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhZ2VudHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGFnZW50c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldEFnZW50cygpXG4gICAgfVxuICB9LCBbaGFuZGxlR2V0QWdlbnRzXSlcblxuICBjb25zdCBzaG93TmV3Q2hhdCA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0XG5cbiAgcmV0dXJuIChcbiAgICBzZWxlY3RvciAmJlxuICAgIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0NBSU1XcmFwcGVyIGV4cGFuZGVkPXtleHBhbmRlZH0+XG4gICAgICAgIDxTQ0NBSU1Db250ZW50V3JhcHBlciBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICAgIHt2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICA8U2lkZWJhclxuICAgICAgICAgICAgICBvbkdvVG9DaGF0PXtnb1RvQ2hhdH1cbiAgICAgICAgICAgICAgb25FcnJvcj17KCkgPT4gc2V0U2lkZWJhckhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgICBoYW5kbGVHb1RvSG9tZT17aGFuZGxlR29Ib21lfVxuICAgICAgICAgICAgICBzaG93TmV3Q2hhdD17c2hvd05ld0NoYXR9XG4gICAgICAgICAgICAgIHJlZmV0Y2hDaGF0cz17cmVmZXRjaENoYXRzfVxuICAgICAgICAgICAgICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM9e3NldFJlZmV0Y2hDaGF0c31cbiAgICAgICAgICAgICAgaGFzRXJyb3I9e3NpZGViYXJIYXNFcnJvcn1cbiAgICAgICAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWY9e3Jlc2V0U2VsZWN0ZWRDaGF0UmVmfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTQ0NBSU1Db250ZW50IGV4cGFuZGVkPXtleHBhbmRlZH0+XG4gICAgICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICAgICAgPENoYXRBSU1vZGFsSGVhZGVyXG4gICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgc2V0RXhwYW5kZWQ9e3NldEV4cGFuZGVkfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICAgIGhhc0Vycm9yPXshIWFnZW50RXJyb3J9XG4gICAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICAgIGxvYWRpbmdNb3JlPXtsb2FkaW5nTW9yZX1cbiAgICAgICAgICAgICAgaGFzTW9yZT17YWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICAgICAgb25BZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgICAgbG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgey8qIENvbnRlbnQgKi99XG5cbiAgICAgICAgICAgIHtoYXNFcnJvciA/IChcbiAgICAgICAgICAgICAgPE1BSUFFcnJvciAvPlxuICAgICAgICAgICAgKSA6IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pID8gKFxuICAgICAgICAgICAgICA8Q2hhdEFJQ29udGVudFxuICAgICAgICAgICAgICAgIGN1cnJlbnRPcHRpb249e2NvbXB1dGVkQ3VycmVudE9wdGlvbn1cbiAgICAgICAgICAgICAgICBoYW5kbGVycz17eyAuLi5oYW5kbGVycywgY2hhdDogc3RhcnRDaGF0LCBob21lOiBoYW5kbGVycy5ob21lLCBoYW5kbGVHb0hvbWUgfX1cbiAgICAgICAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRIYXNFcnJvcih0cnVlKX1cbiAgICAgICAgICAgICAgICByZWZzPXt7IHVzZXJJbml0aWFsTWVzc2FnZSwgaW5pdGlhbENoYXRJZCB9fVxuICAgICAgICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17aGFuZGxlU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgaGFzTm9BZ2VudHM9e2hhc05vQWdlbnRzfVxuICAgICAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogRm9vdGVyICovfVxuICAgICAgICAgICAgeygoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgISFhZ2VudHM/LmRhdGE/Lmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpICYmXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJlxuICAgICAgICAgICAgICAhbG9hZGluZyAmJlxuICAgICAgICAgICAgICB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgPENoYXRBaU1vZGFsRm9vdGVyXG4gICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTdG9wR2VuZXJhdGlvbj17c3RvcEdlbmVyYXRpb25GdW5jdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICAgICAgICAgICAgY2hhdElkPXtpbml0aWFsQ2hhdElkfVxuICAgICAgICAgICAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlNQ29udGVudD5cbiAgICAgICAgPC9TQ0NBSU1Db250ZW50V3JhcHBlcj5cbiAgICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgICAgPEFibUFnZW50TW9kYWxcbiAgICAgICAgICAgIGFkZEFnZW50PXthZGRBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICAgIHJlbW92ZUFnZW50PXtyZW1vdmVBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50RmF2b3JpdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTbmFja2JhciAvPlxuICAgICAgPC9TQ0NBSU1XcmFwcGVyPixcbiAgICAgIHNlbGVjdG9yXG4gICAgKVxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDcEYsT0FBT0MsUUFBUSxNQUFNLFdBQVc7QUFDaEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBRWpELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0Ms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RUFBRVEsUUFBUSxDQUFDUixJQUFJO1lBQUV5QixZQUFZLEVBQVpBO1VBQVksRUFBRztVQUM5RXlFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUTNGLFdBQVcsQ0FBQyxJQUFJLENBQUM7VUFBQSxDQUFDO1VBQ2pDaUcsSUFBSSxFQUFFO1lBQUV2SSxrQkFBa0IsRUFBbEJBLGtCQUFrQjtZQUFFSSxhQUFhLEVBQWJBO1VBQWMsQ0FBRTtVQUM1Q29JLGtCQUFrQixFQUFFaEMsc0JBQXVCO1VBQzNDaEIsUUFBUSxFQUFFQSxRQUFTO1VBQ25CMUIsV0FBVyxFQUFFQSxXQUFZO1VBQ3pCTCxNQUFNLEVBQUVBLE1BQU0sQ0FBQ3dDO1FBQUssQ0FDckIsQ0FBQyxnQkFFRjFILElBQUEsQ0FBQ1QscUJBQXFCO1VBQUMySyxnQkFBZ0IsRUFBRWxHLFFBQVEsQ0FBQ1I7UUFBSyxDQUFFLENBQzFELEVBR0EsQ0FBRThDLHFCQUFxQixLQUFLckgsT0FBTyxDQUFDdUUsSUFBSSxJQUFJLENBQUMsRUFBQzBCLE1BQU0sYUFBTkEsTUFBTSxnQkFBQXBFLFlBQUEsR0FBTm9FLE1BQU0sQ0FBRXdDLElBQUksY0FBQTVHLFlBQUEsZUFBWkEsWUFBQSxDQUFjNkgsTUFBTSxLQUNqRXJDLHFCQUFxQixLQUFLckgsT0FBTyxDQUFDdUgsSUFBSSxLQUN0QyxDQUFDMUMsUUFBUSxJQUNULENBQUNxQixPQUFPLElBQ1IvRSx1QkFBdUIsQ0FBQ0MsT0FBTyxDQUFDLGlCQUM5QkwsSUFBQSxDQUFDSCxpQkFBaUI7VUFDaEI4RSxLQUFLLEVBQUVBLEtBQU07VUFDYjJELGlCQUFpQixFQUFFQSxpQkFBa0I7VUFDckM2QixvQkFBb0IsRUFBRTFILHNCQUF1QjtVQUM3Q0ksV0FBVyxFQUFFQSxXQUFZO1VBQ3pCSSxTQUFTLEVBQUVBLFNBQVU7VUFDckJtSCxNQUFNLEVBQUV2SSxhQUFjO1VBQ3RCSSxVQUFVLEVBQUVBO1FBQVcsQ0FDeEIsQ0FDRjtNQUFBLENBQ1UsQ0FBQztJQUFBLENBQ0ksQ0FBQyxFQUN0QmdFLGtCQUFrQixpQkFDakJqRyxJQUFBLENBQUNSLGFBQWE7TUFDWmtHLFFBQVEsRUFBRUEsUUFBUztNQUNuQkUsV0FBVyxFQUFFQSxXQUFZO01BQ3pCRCxXQUFXLEVBQUVBLFdBQVk7TUFDekJFLG1CQUFtQixFQUFFQSxtQkFBb0I7TUFDekNDLGdCQUFnQixFQUFFQTtJQUFpQixDQUNwQyxDQUNGLGVBQ0Q5RixJQUFBLENBQUNWLFFBQVEsSUFBRSxDQUFDO0VBQUEsQ0FDQyxDQUFDLEVBQ2hCcUgsUUFDRixDQUFDO0FBRUwsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
325
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwiQ2hhdEFJQ29udGVudCIsImJ1aWxkSGFuZGxlcnMiLCJvcHRpb25zIiwiU2lkZWJhciIsInVzZUdldEFnZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIlNFQ1RJT05TIiwiU0NDQUlNQ29udGVudCIsIlNDQ0FJTUNvbnRlbnRXcmFwcGVyIiwiU0NDQUlNV3JhcHBlciIsIkNoYXRBaU1vZGFsRm9vdGVyIiwidmFsaWRhdGVJc01haWEiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiSURfTU9EQUxfQ0hBVF9BR0VOVCIsInZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlIiwic2VjdGlvbiIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJDaGF0QUlNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsIl9hZ2VudHMkZGF0YSIsImhhbmRsZUNsb3NlIiwidXNlciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwiaTE4biIsIl91c2VTdGF0ZSIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVzZXJJbml0aWFsTWVzc2FnZSIsInNldFVzZXJJbml0aWFsTWVzc2FnZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaW5pdGlhbENoYXRJZCIsInNldEluaXRpYWxDaGF0SWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm5ld0NoYXRLZXkiLCJzZXROZXdDaGF0S2V5IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZW5kTWVzc2FnZUZ1bmN0aW9uIiwic2V0U2VuZE1lc3NhZ2VGdW5jdGlvbiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsInNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNSIsImhvbWUiLCJfdXNlU3RhdGUxNiIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsImxhbmciLCJsYW5ndWFnZSIsImxvY2FsZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJhZ2VudCIsInByb2plY3QiLCJjbGllbnQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsInNldENsaWVudCIsIl91c2VHZXRBZ2VudHMiLCJoYW5kbGVHb0hvbWUiLCJhZ2VudHMiLCJsb2FkaW5nIiwibG9hZGluZ01vcmUiLCJhZ2VudEVycm9yIiwiZXJyb3IiLCJoYXNOb0FnZW50cyIsImhhbmRsZUdldEFnZW50cyIsImxvYWRNb3JlQWdlbnRzIiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJzb3J0QWdlbnRzTGlzdCIsImlzTUFJQSIsInVzZXJIYXNQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwiZWRpdCIsImNvbXB1dGVkQ3VycmVudE9wdGlvbiIsImlzUHJvamVjdFNwZWNpYWxpc3QiLCJlbnRpdHkiLCJpc0NsaWVudFNwZWNpYWxpc3QiLCJzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yIiwiY2hhdCIsInNob3VsZFNob3dDbGllbnRTZWxlY3RvciIsInByb2plY3RTZWxlY3RvciIsImNsaWVudFNlbGVjdG9yIiwiYWdlbnRzRmV0Y2hlZFJlZiIsInNlbGVjdG9yIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY29uY2F0IiwiX3VzZVN0YXRlMjEiLCJfdXNlU3RhdGUyMiIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJzdGFydENoYXQiLCJmYXFJZCIsInByZXYiLCJfb2JqZWN0U3ByZWFkIiwiZ29Ub0NoYXQiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsInNlbGVjdGVkQWdlbnQiLCJkYXRhIiwiZmluZCIsImFnZW50SXRlbSIsImlkIiwiYWdlbnRJZCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImhhbmRsZVNlbmRNZXNzYWdlUmVhZHkiLCJzZW5kTWVzc2FnZSIsInN0b3BHZW5lcmF0aW9uIiwic3RyZWFtaW5nIiwid3JpdGluZyIsImhhbmRsZVNlbmRNZXNzYWdlIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsInByb2plY3RfZGVsZXRlZCIsImxlbmd0aCIsImN1cnJlbnQiLCJoYW5kbGVSZXNldENoYXQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJzdG9wIiwic2hvd05ld0NoYXQiLCJjcmVhdGVQb3J0YWwiLCJjaGlsZHJlbiIsIm9uR29Ub0NoYXQiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJvbkFnZW50VXBkYXRlIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsIm9uUmVzdGFydFN1bW1hcnkiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImNoYXRJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9DaGF0QUlNb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1uby11c2VsZXNzLWZyYWdtZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFFcnJvcidcblxuaW1wb3J0IHsgQ2hhdEFJQ29udGVudCB9IGZyb20gJy4uL0NoYXRBSUNvbnRlbnQnXG5pbXBvcnQgeyBidWlsZEhhbmRsZXJzLCBvcHRpb25zIH0gZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQgeyBTaWRlYmFyIH0gZnJvbSAnLi4vU2lkZWJhcidcbmltcG9ydCB7IHVzZUdldEFnZW50cyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50cydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGF0QUlNb2RhbEhlYWRlciB9IGZyb20gJy4vY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlcidcbmltcG9ydCB7IFNuYWNrYmFyIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL1NuYWNrQmFyL1NuYWNrYmFyJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vUHJvamVjdFN1bW1hcnlDb250ZW50J1xuaW1wb3J0IHsgQWJtQWdlbnRNb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9BYm1BZ2VudE1vZGFsL0FibUFnZW50TW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBTQ0NBSU1Db250ZW50LCBTQ0NBSU1Db250ZW50V3JhcHBlciwgU0NDQUlNV3JhcHBlciB9IGZyb20gJy4vQ2hhdEFJTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgQ2hhdEFpTW9kYWxGb290ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxGb290ZXInXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcblxudHlwZSBDaGF0QUlNb2RhbFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHBhcmVudFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbn1cblxuZXhwb3J0IGNvbnN0IElEX01PREFMX0NIQVRfQUdFTlQgPSAnbW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnQnXG5cbmNvbnN0IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgKHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8IHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50JykgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbCA9ICh7IGhhbmRsZUNsb3NlIH06IENoYXRBSU1vZGFsUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IFt1c2VySW5pdGlhbE1lc3NhZ2UsIHNldFVzZXJJbml0aWFsTWVzc2FnZV0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgICBmYXFJZD86IHN0cmluZ1xuICB9Pih7XG4gICAgbWVzc2FnZTogJycsXG4gICAgYXR0YWNobWVudHM6IFtdLFxuICB9KVxuICBjb25zdCBbaW5pdGlhbENoYXRJZCwgc2V0SW5pdGlhbENoYXRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbbmV3Q2hhdEtleSwgc2V0TmV3Q2hhdEtleV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc2V0U2VuZE1lc3NhZ2VGdW5jdGlvbl0gPSB1c2VTdGF0ZTxcbiAgICAoKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdKSA9PiB2b2lkKSB8IG51bGxcbiAgPihudWxsKVxuICBjb25zdCBbc3RvcEdlbmVyYXRpb25GdW5jdGlvbiwgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbl0gPSB1c2VTdGF0ZTwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNTdHJlYW1pbmcsIHNldElzU3RyZWFtaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNXcml0aW5nLCBzZXRJc1dyaXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW3JlZmV0Y2hDaGF0cywgc2V0UmVmZXRjaENoYXRzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbY3VycmVudE9wdGlvbiwgc2V0Q3VycmVudE9wdGlvbl0gPSB1c2VTdGF0ZShvcHRpb25zLmhvbWUpXG4gIGNvbnN0IFtoYXNFcnJvciwgc2V0SGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhbmRsZXJzID0gdXNlTWVtbygoKSA9PiBidWlsZEhhbmRsZXJzKHNldEN1cnJlbnRPcHRpb24sIHNldEhhc0Vycm9yKSwgW10pXG4gIGNvbnN0IFtzaWRlYmFySGFzRXJyb3IsIHNldFNpZGViYXJIYXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgcmVzZXRTZWxlY3RlZENoYXRSZWYgPSB1c2VSZWY8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQtYnInIDogaTE4bi5sYW5ndWFnZVxuXG4gIG1vbWVudC5sb2NhbGUobGFuZylcblxuICBjb25zdCB7XG4gICAgc2VsZWN0QWdlbnQsXG4gICAgc2VjdGlvbixcbiAgICBhZ2VudCxcbiAgICBwcm9qZWN0LFxuICAgIGNsaWVudCxcbiAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIHNldENsaWVudCxcbiAgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIGNvbnN0IHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcjogYWdlbnRFcnJvcixcbiAgICBoYXNOb0FnZW50cyxcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICAgIHNvcnRBZ2VudHNMaXN0LFxuICB9ID0gdXNlR2V0QWdlbnRzKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWU6IGhhbmRsZXJzLmhvbWUgfSlcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcblxuICBjb25zdCB1c2VySGFzUGVybWlzc2lvbnMgPVxuICAgICh1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGUgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmVkaXQgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmRlbGV0ZSkgJiZcbiAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gIGNvbnN0IGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGlzUHJvamVjdFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09IG51bGwpXG4gICAgY29uc3QgaXNDbGllbnRTcGVjaWFsaXN0ID0gaXNNQUlBICYmIGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnXG5cbiAgICBjb25zdCBzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yID0gY3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0ICYmIGlzUHJvamVjdFNwZWNpYWxpc3QgJiYgIXByb2plY3RcbiAgICBjb25zdCBzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IgPSBjdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXQgJiYgaXNDbGllbnRTcGVjaWFsaXN0ICYmICFjbGllbnRcblxuICAgIGlmIChzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3JcbiAgICB9XG4gICAgaWYgKHNob3VsZFNob3dDbGllbnRTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY2xpZW50U2VsZWN0b3JcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRPcHRpb25cbiAgfSwgW2N1cnJlbnRPcHRpb24sIHByb2plY3QsIGNsaWVudCwgaXNNQUlBLCBhZ2VudD8uZW50aXR5XSlcblxuICBjb25zdCBhZ2VudHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IHNlbGVjdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7SURfTU9EQUxfQ0hBVF9BR0VOVH1gKVxuXG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3Qgc3RhcnRDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U/OiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHtcbiAgICAgICAgc2V0U2lkZWJhckhhc0Vycm9yKGZhbHNlKVxuICAgICAgfVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSB8fCAnJyxcbiAgICAgICAgYXR0YWNobWVudHM6IGF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgICAuLi4oZmFxSWQgPyB7IGZhcUlkIH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGdvVG9DaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgY29uc3Qgc2VsZWN0ZWRBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYWdlbnRJdGVtID0+IGFnZW50SXRlbS5pZCA9PT0gY2hhdC5hZ2VudElkKVxuICAgICAgaWYgKHNlbGVjdGVkQWdlbnQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoc2VsZWN0ZWRBZ2VudClcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgYWdlbnRzLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlUmVhZHkgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdKSA9PiB2b2lkLFxuICAgICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgICBzdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgICB3cml0aW5nOiBib29sZWFuXG4gICAgKSA9PiB7XG4gICAgICBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uKCgpID0+IHNlbmRNZXNzYWdlKVxuICAgICAgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbigoKSA9PiBzdG9wR2VuZXJhdGlvbilcbiAgICAgIHNldElzU3RyZWFtaW5nKHN0cmVhbWluZylcbiAgICAgIHNldElzV3JpdGluZyh3cml0aW5nKVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSB7XG4gICAgICAgIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICAgIGlmIChzZW5kTWVzc2FnZUZ1bmN0aW9uICYmIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICAgIHNlbmRNZXNzYWdlRnVuY3Rpb24obWVzc2FnZSwgYXR0YWNobWVudHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMpXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc3RhcnRDaGF0LCBjb21wdXRlZEN1cnJlbnRPcHRpb24sIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdvSG9tZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTaSBlc3RhbW9zIGVuIHVuYSBjb252ZXJzYWNpw7NuIHkgdmFtb3MgYSBob21lLCByZXNldGVhciBpbml0aWFsQ2hhdElkIHkgaW5jcmVtZW50YXIgbmV3Q2hhdEtleVxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIC8vIE5vIGJvcnJhciBlbCBjbGllbnRlIHNpIGVzIGFnZW50ZSBkZSBjbGllbnRlcyAoaWd1YWwgcXVlIGVsIHByb3llY3RvIHNlIG1hbnRpZW5lKVxuICAgICAgaWYgKGFnZW50Py5lbnRpdHkgIT09ICdjbGllbnQnKSB7XG4gICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgICghYWdlbnQgfHwgYWdlbnQ/LmlzX2RlbGV0ZWQgfHwgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHwgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8IGFnZW50Py5wcm9qZWN0X2RlbGV0ZWQpICYmXG4gICAgICBhZ2VudHMuZGF0YS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVswXSlcbiAgICB9XG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUgJiYgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCkge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCgpXG4gICAgfVxuICB9LCBbXG4gICAgb3B0aW9ucy5ob21lLFxuICAgIG9wdGlvbnMuY2hhdCxcbiAgICBjdXJyZW50T3B0aW9uLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICBhZ2VudCxcbiAgICBhZ2VudHMsXG4gICAgc2VsZWN0QWdlbnQsXG4gICAgc2V0Q2xpZW50LFxuICBdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIGhhbmRsZUdvSG9tZSgpXG4gIH0sIFtoYW5kbGVHb0hvbWVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhZ2VudHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGFnZW50c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldEFnZW50cygpXG4gICAgfVxuICB9LCBbaGFuZGxlR2V0QWdlbnRzXSlcblxuICBjb25zdCBzaG93TmV3Q2hhdCA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0XG5cbiAgcmV0dXJuIChcbiAgICBzZWxlY3RvciAmJlxuICAgIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0NBSU1XcmFwcGVyIGV4cGFuZGVkPXtleHBhbmRlZH0+XG4gICAgICAgIDxTQ0NBSU1Db250ZW50V3JhcHBlciBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICAgIHt2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICA8U2lkZWJhclxuICAgICAgICAgICAgICBvbkdvVG9DaGF0PXtnb1RvQ2hhdH1cbiAgICAgICAgICAgICAgb25FcnJvcj17KCkgPT4gc2V0U2lkZWJhckhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgICBoYW5kbGVHb1RvSG9tZT17aGFuZGxlR29Ib21lfVxuICAgICAgICAgICAgICBzaG93TmV3Q2hhdD17c2hvd05ld0NoYXR9XG4gICAgICAgICAgICAgIHJlZmV0Y2hDaGF0cz17cmVmZXRjaENoYXRzfVxuICAgICAgICAgICAgICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM9e3NldFJlZmV0Y2hDaGF0c31cbiAgICAgICAgICAgICAgaGFzRXJyb3I9e3NpZGViYXJIYXNFcnJvcn1cbiAgICAgICAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWY9e3Jlc2V0U2VsZWN0ZWRDaGF0UmVmfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTQ0NBSU1Db250ZW50IGV4cGFuZGVkPXtleHBhbmRlZH0+XG4gICAgICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICAgICAgPENoYXRBSU1vZGFsSGVhZGVyXG4gICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgc2V0RXhwYW5kZWQ9e3NldEV4cGFuZGVkfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICAgIGhhc0Vycm9yPXshIWFnZW50RXJyb3J9XG4gICAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICAgIGxvYWRpbmdNb3JlPXtsb2FkaW5nTW9yZX1cbiAgICAgICAgICAgICAgaGFzTW9yZT17YWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICAgICAgb25BZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgICAgbG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgey8qIENvbnRlbnQgKi99XG5cbiAgICAgICAgICAgIHtoYXNFcnJvciA/IChcbiAgICAgICAgICAgICAgPE1BSUFFcnJvciAvPlxuICAgICAgICAgICAgKSA6IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pID8gKFxuICAgICAgICAgICAgICA8Q2hhdEFJQ29udGVudFxuICAgICAgICAgICAgICAgIGN1cnJlbnRPcHRpb249e2NvbXB1dGVkQ3VycmVudE9wdGlvbn1cbiAgICAgICAgICAgICAgICBoYW5kbGVycz17eyAuLi5oYW5kbGVycywgY2hhdDogc3RhcnRDaGF0LCBob21lOiBoYW5kbGVycy5ob21lLCBoYW5kbGVHb0hvbWUgfX1cbiAgICAgICAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRIYXNFcnJvcih0cnVlKX1cbiAgICAgICAgICAgICAgICByZWZzPXt7IHVzZXJJbml0aWFsTWVzc2FnZSwgaW5pdGlhbENoYXRJZCB9fVxuICAgICAgICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17aGFuZGxlU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgaGFzTm9BZ2VudHM9e2hhc05vQWdlbnRzfVxuICAgICAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogRm9vdGVyICovfVxuICAgICAgICAgICAgeygoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgISFhZ2VudHM/LmRhdGE/Lmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpICYmXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJlxuICAgICAgICAgICAgICAhbG9hZGluZyAmJlxuICAgICAgICAgICAgICB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgPENoYXRBaU1vZGFsRm9vdGVyXG4gICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTdG9wR2VuZXJhdGlvbj17c3RvcEdlbmVyYXRpb25GdW5jdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICAgICAgICAgICAgY2hhdElkPXtpbml0aWFsQ2hhdElkfVxuICAgICAgICAgICAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlNQ29udGVudD5cbiAgICAgICAgPC9TQ0NBSU1Db250ZW50V3JhcHBlcj5cbiAgICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgICAgPEFibUFnZW50TW9kYWxcbiAgICAgICAgICAgIGFkZEFnZW50PXthZGRBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICAgIHJlbW92ZUFnZW50PXtyZW1vdmVBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50RmF2b3JpdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTbmFja2JhciAvPlxuICAgICAgPC9TQ0NBSU1XcmFwcGVyPixcbiAgICAgIHNlbGVjdG9yXG4gICAgKVxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDcEYsT0FBT0MsUUFBUSxNQUFNLFdBQVc7QUFDaEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBRWpELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsYUFBYSxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxZQUFZLFFBQVEseUNBQXlDO0FB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
@@ -49,7 +49,8 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
49
49
  var _useGlobalContext = useGlobalContext(),
50
50
  selectedAgent = _useGlobalContext.agent,
51
51
  selectAgent = _useGlobalContext.selectAgent,
52
- setProject = _useGlobalContext.setProject;
52
+ setProject = _useGlobalContext.setProject,
53
+ setClient = _useGlobalContext.setClient;
53
54
  var _useState = useState(false),
54
55
  _useState2 = _slicedToArray(_useState, 2),
55
56
  isExpanded = _useState2[0],
@@ -113,10 +114,11 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
113
114
  });
114
115
  setIsExpanded(false);
115
116
  setProject(null);
117
+ setClient === null || setClient === void 0 || setClient(null);
116
118
  setTimeout(function () {
117
119
  handleResetChat();
118
120
  }, 100);
119
- }, [selectAgent, amplitudEvent, handleResetChat]);
121
+ }, [selectAgent, amplitudEvent, handleResetChat, setProject, setClient]);
120
122
  var handleExpandModal = function handleExpandModal() {
121
123
  if (!isExpanded) {
122
124
  amplitudEvent(EVENTS.aiChatOpenAgentSelect);
@@ -281,4 +283,4 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
281
283
  })]
282
284
  });
283
285
  };
284
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiUGx1cyIsInVzZVRyYW5zbGF0aW9uIiwiU0VDVElPTlMiLCJ1c2VHbG9iYWxDb250ZXh0IiwidXNlUmVzaXplTGlzdGVuZXIiLCJFeHBhbmQiLCJJY29uQnV0dG9uIiwiTUFJQUljb24iLCJDaGF0QUlBZ2VudE9wdGlvbiIsIlNDQ0FJTUhNb2RhbCIsIlNDQ0FJTUhTZWxlY3RlZEFnZW50IiwiU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0IiwiU0NDQUlNSFdyYXBwZXIiLCJTQ0NBSU1IV3JhcHBlckJ1dHRvbiIsIlNDQ0FJTUhXcmFwcGVySWNvbiIsIlNDQ0FJTUhXcmFwcGVyTW9kYWwiLCJTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUiLCJTQ0NBSU1IQWRkQWdlbnQiLCJTQ0NBSU1IRGl2aWRlciIsIlNDQ0FJTUhBZ2VudHNMaXN0IiwiU0NDQUlNSExvYWRlcldyYXBwZXIiLCJTQ0NBSU1IUGx1c0ljb25XcmFwcGVyIiwiU0NDQUlXcmFwcGVyIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJDT1JVc2VyUm9sZSIsInVzZVVzZXIiLCJDaGlwTGxtIiwiTG9hZGVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiQ2hhdEFJTW9kYWxIZWFkZXIiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJleHBhbmRlZCIsInNldEV4cGFuZGVkIiwiX3JlZiRoYW5kbGVDbG9zZSIsImhhbmRsZUNsb3NlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfcmVmJGhhc0Vycm9yIiwiaGFzRXJyb3IiLCJfcmVmJGxvYWRpbmciLCJsb2FkaW5nIiwiX3JlZiRsb2FkaW5nTW9yZSIsImxvYWRpbmdNb3JlIiwiX3JlZiRoYXNNb3JlIiwiaGFzTW9yZSIsImhhbmRsZVJlc2V0Q2hhdCIsIm9uQWdlbnRVcGRhdGUiLCJsb2FkTW9yZUFnZW50cyIsInNvcnRBZ2VudHNMaXN0IiwiX3VzZVRyYW5zbGF0aW9uIiwiYWJtQWdlbnQiLCJ0IiwidXNlciIsImFtcGxpdHVkRXZlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJhZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwidGV4dFJlZkFnZW50IiwiZHJvcGRvd25SZWYiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJuYW1lIiwic2hvd1Rvb2x0aXBBZ2VudCIsInNob3dUb29sdGlwIiwiYWdlbnRzUmVmIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJ1bmRlZmluZWQiLCJoYW5kbGVTY3JvbGwiLCJjdXJyZW50IiwiX2FnZW50c1JlZiRjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInNjcm9sbEVsZW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xlYXJUaW1lb3V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvY2FsQWdlbnRzIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwiZmluZCIsImlkIiwiaGFuZGxlU2VsZWN0QWdlbnQiLCJhaUNoYXRBZ2VudFNlbGVjdCIsImFnZW50X3R5cGUiLCJ0eXBlIiwiaGFuZGxlRXhwYW5kTW9kYWwiLCJhaUNoYXRPcGVuQWdlbnRTZWxlY3QiLCJwcmV2IiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiZXZlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwidXNlclJvbGVzRGlzYWJsZWQiLCJDT0xMQUJPUkFUT1IiLCJGUkVFTEFOQ0VSIiwiQ0xJRU5UIiwicmVuZGVyTW9kYWwiLCJyZWYiLCJvbkNsaWNrIiwibGVuZ3RoIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJlbW9qaSIsInBsYWNlbWVudCIsImlzQWdlbnREZWxldGVkIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsImluY2x1ZGVzIiwicm9sZV9pZCIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJpc0Nsb25lIiwibWFwIiwiY2xvbmVBZ2VudCIsImluZGV4IiwiaXNTZWxlY3RlZCIsImlzTWFpYSIsIm9uRmF2b3JpdGVUb2dnbGUiLCJjb25jYXQiLCJzb21lIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNvbXBhbnkiLCJhZ2VudHNDb3VudCIsInNpemUiLCJjcmVhdGUiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsImlzT3BlbiIsInJlbmRlckhlYWRlciIsInNlbGVjdGVkTW9kZWxMbG0iLCJtb2RlbF9kaXNwbGF5X25hbWUiLCJzZWxlY3RlZEFnZW50VHlwZSIsIiRoYXNFcnJvciIsIiRsb2FkaW5nIiwiJGhhc0FnZW50cyIsIm1vZGVsIiwiaGFuZGxlQ2xpY2siLCJ0b29sdGlwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxIZWFkZXIvQ2hhdEFpTW9kYWxIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IEV4cGFuZCB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0V4cGFuZCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9JY29uQnV0dG9uJ1xuaW1wb3J0IHsgTUFJQUljb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IENoYXRBSUFnZW50T3B0aW9uIH0gZnJvbSAnLi4vQ2hhdEFpQWdlbnRPcHRpb25zL0NoYXRBaUFnZW50T3B0aW9ucydcbmltcG9ydCB7XG4gIFNDQ0FJTUhNb2RhbCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnQsXG4gIFNDQ0FJTUhTZWxlY3RlZEFnZW50VGV4dCxcbiAgU0NDQUlNSFdyYXBwZXIsXG4gIFNDQ0FJTUhXcmFwcGVyQnV0dG9uLFxuICBTQ0NBSU1IV3JhcHBlckljb24sXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWwsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50LFxuICBTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlLFxuICBTQ0NBSU1IQWRkQWdlbnQsXG4gIFNDQ0FJTUhEaXZpZGVyLFxuICBTQ0NBSU1IQWdlbnRzTGlzdCxcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJTUhQbHVzSWNvbldyYXBwZXIsXG4gIFNDQ0FJV3JhcHBlcixcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci5zdHlsZXMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDT1JVc2VyUm9sZSwgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hpcExsbSB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0NoaXBMbG0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbEhlYWRlciA9ICh7XG4gIGV4cGFuZGVkLFxuICBzZXRFeHBhbmRlZCxcbiAgaGFuZGxlQ2xvc2UgPSAoKSA9PiBudWxsLFxuICBhZ2VudHMgPSBbXSxcbiAgaGFzRXJyb3IgPSBmYWxzZSxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZSA9IGZhbHNlLFxuICBoYXNNb3JlID0gZmFsc2UsXG4gIGhhbmRsZVJlc2V0Q2hhdCxcbiAgb25BZ2VudFVwZGF0ZSxcbiAgbG9hZE1vcmVBZ2VudHMsXG4gIHNvcnRBZ2VudHNMaXN0LFxufToge1xuICBleHBhbmRlZDogYm9vbGVhblxuICBzZXRFeHBhbmRlZDogKGV4cGFuZGVkOiBib29sZWFuKSA9PiB2b2lkXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgbG9hZGluZzogYm9vbGVhblxuICBsb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaGFuZGxlUmVzZXRDaGF0OiAoKSA9PiB2b2lkXG4gIG9uQWdlbnRVcGRhdGU/OiAodXBkYXRlZEFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBsb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgc29ydEFnZW50c0xpc3Q/OiAoKSA9PiB2b2lkXG59KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBhbXBsaXR1ZEV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGFnZW50OiBzZWxlY3RlZEFnZW50LCBzZWxlY3RBZ2VudCwgc2V0UHJvamVjdCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB0ZXh0UmVmQWdlbnQgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZkFnZW50LCBbc2VsZWN0ZWRBZ2VudD8ubmFtZV0pXG4gIGNvbnN0IGFnZW50c1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG5cbiAgLy8gTWFuZWphciBzY3JvbGwgaW5maW5pdG8gcGFyYSBjYXJnYXIgbcOhcyBhZ2VudHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTb2xvIGN1YW5kbyBlbCBkcm9wZG93biBlc3TDqSBhYmllcnRvXG4gICAgaWYgKCFpc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFhZ2VudHNSZWYuY3VycmVudCB8fCAhbG9hZE1vcmVBZ2VudHMgfHwgIWhhc01vcmUgfHwgbG9hZGluZ01vcmUpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuXG4gICAgICAvLyBDYXJnYXIgbcOhcyAoNTBweCBhbnRlcylcbiAgICAgIGlmIChkaXN0YW5jZUZyb21Cb3R0b20gPCA1MCkge1xuICAgICAgICBsb2FkTW9yZUFnZW50cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGVsYXkgcGFyYSBhc2VndXJhciBxdWUgZWwgRE9NIGVzdMOpIHJlbmRlcml6YWRvXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH0sIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IGFnZW50c1JlZi5jdXJyZW50XG4gICAgICBpZiAoc2Nyb2xsRWxlbWVudCkge1xuICAgICAgICBzY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkLCBsb2FkTW9yZUFnZW50cywgaGFzTW9yZSwgbG9hZGluZ01vcmVdKVxuXG4gIGNvbnN0IGxvY2FsQWdlbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHxcbiAgICAgIHNlbGVjdGVkQWdlbnQ/LmlzX2Zyb21fY29udmVyc2F0aW9uXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRBZ2VudFxuICAgIH1cbiAgICByZXR1cm4gYWdlbnRzLmZpbmQoXG4gICAgICBhZ2VudCA9PlxuICAgICAgICAhYWdlbnQuaXNfZGVsZXRlZCAmJiAhYWdlbnQuaGFzX25vdF9wZXJtaXNzaW9ucyAmJiAhYWdlbnQuaGFzX25vdF9hY2Nlc3MgJiYgYWdlbnQuaWQgPT09IHNlbGVjdGVkQWdlbnQ/LmlkXG4gICAgKVxuICB9LCBbYWdlbnRzLCBzZWxlY3RlZEFnZW50XSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudDogQWdlbnQpID0+IHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50KVxuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0QWdlbnRTZWxlY3QsIHtcbiAgICAgICAgYWdlbnRfdHlwZTogYWdlbnQ/LnR5cGUsXG4gICAgICB9KVxuICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNldENoYXQoKVxuICAgICAgfSwgMTAwKVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBhbXBsaXR1ZEV2ZW50LCBoYW5kbGVSZXNldENoYXRdXG4gIClcblxuICBjb25zdCBoYW5kbGVFeHBhbmRNb2RhbCA9ICgpID0+IHtcbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLmFpQ2hhdE9wZW5BZ2VudFNlbGVjdClcbiAgICAgIC8vIEN1YW5kbyBzZSBhYnJlIGVsIHNlbGVjdG9yLCBvcmRlbmFyIGxvcyBhZ2VudGVzXG4gICAgICBpZiAoc29ydEFnZW50c0xpc3QpIHtcbiAgICAgICAgc29ydEFnZW50c0xpc3QoKVxuICAgICAgfVxuICAgIH1cbiAgICBzZXRJc0V4cGFuZGVkKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGRyb3Bkb3duUmVmLmN1cnJlbnQgJiYgIWRyb3Bkb3duUmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldElzRXhwYW5kZWQoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWRdKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IHJlbmRlck1vZGFsID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlNSFdyYXBwZXJcbiAgICAgICAgcmVmPXtkcm9wZG93blJlZn1cbiAgICAgICAgb25DbGljaz17YWdlbnRzLmxlbmd0aCA/IGhhbmRsZUV4cGFuZE1vZGFsIDogdW5kZWZpbmVkfVxuICAgICAgICBpZD1cImNoYXQtYWktbW9kYWwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgPlxuICAgICAgICA8U0NDQUlNSFNlbGVjdGVkQWdlbnQ+XG4gICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgc2hvd1Rvb2x0aXBBZ2VudCA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgICAge2xvY2FsQWdlbnRzPy50eXBlID09PSAnY3VzdG9tJyA/IGxvY2FsQWdlbnRzPy5lbW9qaSA6IDxNQUlBSWNvbiAvPn0ge2xvY2FsQWdlbnRzPy5uYW1lfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9e2lzRXhwYW5kZWQgPyAnbGVmdCcgOiAndG9wJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0XG4gICAgICAgICAgICAgIHJlZj17dGV4dFJlZkFnZW50fVxuICAgICAgICAgICAgICBpc0FnZW50RGVsZXRlZD17XG4gICAgICAgICAgICAgICAgISFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCAhIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnNHB4JyB9fT5cbiAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fSB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgPFNDQ0FJTUhXcmFwcGVySWNvbj5cbiAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgICA8L1NDQ0FJTUhXcmFwcGVySWNvbj5cbiAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsPlxuICAgICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50PlxuICAgICAgICAgICAgICB7d2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyAmJiAhdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSAmJiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbG9uZUFnZW50cyA9IGFnZW50cy5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJylcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjbG9uZUFnZW50cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNQUlBSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSBpc0Nsb25lPk1BSUEgYnkgQ09SPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ0NBSVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSERpdmlkZXIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2Nsb25lQWdlbnRzLm1hcCgoY2xvbmVBZ2VudCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPENoYXRBSUFnZW50T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWdlbnQtJHtjbG9uZUFnZW50LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnQ9e2Nsb25lQWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdEFnZW50PXtoYW5kbGVTZWxlY3RBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50Py5pZCA9PT0gY2xvbmVBZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc01haWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZhdm9yaXRlVG9nZ2xlPXtvbkFnZW50VXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHthZ2VudHMuc29tZShhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJykgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgJiYgKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3QoJ2FnZW50cycpfSBieSB7dXNlci5jb21wYW55fVxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxTQ0NBSU1IQWdlbnRzTGlzdCBoYXNNb3JlPXtoYXNNb3JlfSBhZ2VudHNDb3VudD17YWdlbnRzLmxlbmd0aH0gcmVmPXthZ2VudHNSZWZ9PlxuICAgICAgICAgICAgICAgIHthZ2VudHM/Lm1hcCgoYWdlbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgICAgICAgICAgICAgICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyB8fFxuICAgICAgICAgICAgICAgICAgICAoYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nICYmICF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUylcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7YWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdEFnZW50PXtoYW5kbGVTZWxlY3RBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50Py5pZCA9PT0gYWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRJc0V4cGFuZGVkPXtzZXRJc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIHtsb2FkaW5nTW9yZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1IQWdlbnRzTGlzdD5cbiAgICAgICAgICAgICAge3VzZXJQZXJtaXNzaW9ucz8uY3JlYXRlICYmIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTICYmIChcbiAgICAgICAgICAgICAgICA8U0NDQUlNSEFkZEFnZW50XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLm9wZW5Nb2RhbCwgeyBvcHRpb246ICduZXdfYWdlbnQnIH0pXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSFBsdXNJY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXMgY29sb3I9XCJ3aGl0ZVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSFBsdXNJY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgIHt0KCdjcmVhdGVBZ2VudCcpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlNSEFkZEFnZW50PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudD5cbiAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlciA9ICgpID0+IHtcbiAgICBpZiAoaGFzRXJyb3IgfHwgbG9hZGluZykgcmV0dXJuIDxkaXYgLz5cbiAgICByZXR1cm4gc2VsZWN0ZWRBZ2VudCAmJlxuICAgICAgKCEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKSA/IChcbiAgICAgIHJlbmRlck1vZGFsKClcbiAgICApIDogKFxuICAgICAgPGRpdiAvPlxuICAgIClcbiAgfVxuICBjb25zdCBzZWxlY3RlZE1vZGVsTGxtID0gc2VsZWN0ZWRBZ2VudD8ubW9kZWxfZGlzcGxheV9uYW1lXG4gIGNvbnN0IHNlbGVjdGVkQWdlbnRUeXBlID0gc2VsZWN0ZWRBZ2VudD8udHlwZSA9PT0gJ2N1c3RvbSdcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSU1ITW9kYWwgJGhhc0Vycm9yPXtoYXNFcnJvcn0gJGxvYWRpbmc9e2xvYWRpbmd9ICRoYXNBZ2VudHM9eyEhYWdlbnRzLmxlbmd0aH0+XG4gICAgICB7cmVuZGVySGVhZGVyKCl9XG4gICAgICA8U0NDQUlNSFdyYXBwZXJCdXR0b24+XG4gICAgICAgIHtzZWxlY3RlZEFnZW50VHlwZSAmJiBzZWxlY3RlZE1vZGVsTGxtICYmIDxDaGlwTGxtIG1vZGVsPXtzZWxlY3RlZE1vZGVsTGxtfSBleHBhbmRlZD17ZXhwYW5kZWR9IC8+fVxuICAgICAgICA8RXhwYW5kIGV4cGFuZGVkPXtleHBhbmRlZH0gaGFuZGxlQ2xpY2s9eygpID0+IHNldEV4cGFuZGVkKCFleHBhbmRlZCl9IC8+XG4gICAgICAgIDxJY29uQnV0dG9uIGhhbmRsZUNsaWNrPXtoYW5kbGVDbG9zZX0gdG9vbHRpcD17dCgnZ2xvYmFscy5jbG9zZScpfT5cbiAgICAgICAgICA8Q3Jvc3MgLz5cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPC9TQ0NBSU1IV3JhcHBlckJ1dHRvbj5cbiAgICA8L1NDQ0FJTUhNb2RhbD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxRQUFRLFFBQVEsaUNBQWlDO0FBQzFELFNBQVNDLGdCQUFnQixRQUFRLHVDQUF1QztBQUN4RSxTQUFTQyxpQkFBaUIsUUFBUSxnQ0FBZ0M7QUFDbEUsU0FBU0MsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRCxTQUFTQyxVQUFVLFFBQVEsOEJBQThCO0FBQ3pELFNBQVNDLFFBQVEsUUFBUSx5QkFBeUI7QUFDbEQsU0FBU0MsaUJBQWlCLFFBQVEsMENBQTBDO0FBQzVFLFNBQ0VDLFlBQVksRUFDWkMsb0JBQW9CLEVBQ3BCQyx3QkFBd0IsRUFDeEJDLGNBQWMsRUFDZEMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsMEJBQTBCLEVBQzFCQywrQkFBK0IsRUFDL0JDLGVBQWUsRUFDZkMsY0FBYyxFQUNkQyxpQkFBaUIsRUFDakJDLG9CQUFvQixFQUNwQkMsc0JBQXNCLEVBQ3RCQyxZQUFZLFFBQ1AsNEJBQTRCO0FBQ25DLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLCtCQUErQjtBQUNoRSxTQUFTQyxXQUFXLEVBQUVDLE9BQU8s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
286
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiUGx1cyIsInVzZVRyYW5zbGF0aW9uIiwiU0VDVElPTlMiLCJ1c2VHbG9iYWxDb250ZXh0IiwidXNlUmVzaXplTGlzdGVuZXIiLCJFeHBhbmQiLCJJY29uQnV0dG9uIiwiTUFJQUljb24iLCJDaGF0QUlBZ2VudE9wdGlvbiIsIlNDQ0FJTUhNb2RhbCIsIlNDQ0FJTUhTZWxlY3RlZEFnZW50IiwiU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0IiwiU0NDQUlNSFdyYXBwZXIiLCJTQ0NBSU1IV3JhcHBlckJ1dHRvbiIsIlNDQ0FJTUhXcmFwcGVySWNvbiIsIlNDQ0FJTUhXcmFwcGVyTW9kYWwiLCJTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUiLCJTQ0NBSU1IQWRkQWdlbnQiLCJTQ0NBSU1IRGl2aWRlciIsIlNDQ0FJTUhBZ2VudHNMaXN0IiwiU0NDQUlNSExvYWRlcldyYXBwZXIiLCJTQ0NBSU1IUGx1c0ljb25XcmFwcGVyIiwiU0NDQUlXcmFwcGVyIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJDT1JVc2VyUm9sZSIsInVzZVVzZXIiLCJDaGlwTGxtIiwiTG9hZGVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiQ2hhdEFJTW9kYWxIZWFkZXIiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJleHBhbmRlZCIsInNldEV4cGFuZGVkIiwiX3JlZiRoYW5kbGVDbG9zZSIsImhhbmRsZUNsb3NlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfcmVmJGhhc0Vycm9yIiwiaGFzRXJyb3IiLCJfcmVmJGxvYWRpbmciLCJsb2FkaW5nIiwiX3JlZiRsb2FkaW5nTW9yZSIsImxvYWRpbmdNb3JlIiwiX3JlZiRoYXNNb3JlIiwiaGFzTW9yZSIsImhhbmRsZVJlc2V0Q2hhdCIsIm9uQWdlbnRVcGRhdGUiLCJsb2FkTW9yZUFnZW50cyIsInNvcnRBZ2VudHNMaXN0IiwiX3VzZVRyYW5zbGF0aW9uIiwiYWJtQWdlbnQiLCJ0IiwidXNlciIsImFtcGxpdHVkRXZlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJhZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwidGV4dFJlZkFnZW50IiwiZHJvcGRvd25SZWYiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJuYW1lIiwic2hvd1Rvb2x0aXBBZ2VudCIsInNob3dUb29sdGlwIiwiYWdlbnRzUmVmIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJ1bmRlZmluZWQiLCJoYW5kbGVTY3JvbGwiLCJjdXJyZW50IiwiX2FnZW50c1JlZiRjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInNjcm9sbEVsZW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xlYXJUaW1lb3V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvY2FsQWdlbnRzIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwiZmluZCIsImlkIiwiaGFuZGxlU2VsZWN0QWdlbnQiLCJhaUNoYXRBZ2VudFNlbGVjdCIsImFnZW50X3R5cGUiLCJ0eXBlIiwiaGFuZGxlRXhwYW5kTW9kYWwiLCJhaUNoYXRPcGVuQWdlbnRTZWxlY3QiLCJwcmV2IiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiZXZlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwidXNlclJvbGVzRGlzYWJsZWQiLCJDT0xMQUJPUkFUT1IiLCJGUkVFTEFOQ0VSIiwiQ0xJRU5UIiwicmVuZGVyTW9kYWwiLCJyZWYiLCJvbkNsaWNrIiwibGVuZ3RoIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJlbW9qaSIsInBsYWNlbWVudCIsImlzQWdlbnREZWxldGVkIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsImluY2x1ZGVzIiwicm9sZV9pZCIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJpc0Nsb25lIiwibWFwIiwiY2xvbmVBZ2VudCIsImluZGV4IiwiaXNTZWxlY3RlZCIsImlzTWFpYSIsIm9uRmF2b3JpdGVUb2dnbGUiLCJjb25jYXQiLCJzb21lIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNvbXBhbnkiLCJhZ2VudHNDb3VudCIsInNpemUiLCJjcmVhdGUiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsImlzT3BlbiIsInJlbmRlckhlYWRlciIsInNlbGVjdGVkTW9kZWxMbG0iLCJtb2RlbF9kaXNwbGF5X25hbWUiLCJzZWxlY3RlZEFnZW50VHlwZSIsIiRoYXNFcnJvciIsIiRsb2FkaW5nIiwiJGhhc0FnZW50cyIsIm1vZGVsIiwiaGFuZGxlQ2xpY2siLCJ0b29sdGlwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxIZWFkZXIvQ2hhdEFpTW9kYWxIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IEV4cGFuZCB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0V4cGFuZCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9JY29uQnV0dG9uJ1xuaW1wb3J0IHsgTUFJQUljb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IENoYXRBSUFnZW50T3B0aW9uIH0gZnJvbSAnLi4vQ2hhdEFpQWdlbnRPcHRpb25zL0NoYXRBaUFnZW50T3B0aW9ucydcbmltcG9ydCB7XG4gIFNDQ0FJTUhNb2RhbCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnQsXG4gIFNDQ0FJTUhTZWxlY3RlZEFnZW50VGV4dCxcbiAgU0NDQUlNSFdyYXBwZXIsXG4gIFNDQ0FJTUhXcmFwcGVyQnV0dG9uLFxuICBTQ0NBSU1IV3JhcHBlckljb24sXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWwsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50LFxuICBTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlLFxuICBTQ0NBSU1IQWRkQWdlbnQsXG4gIFNDQ0FJTUhEaXZpZGVyLFxuICBTQ0NBSU1IQWdlbnRzTGlzdCxcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJTUhQbHVzSWNvbldyYXBwZXIsXG4gIFNDQ0FJV3JhcHBlcixcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci5zdHlsZXMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDT1JVc2VyUm9sZSwgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hpcExsbSB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0NoaXBMbG0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbEhlYWRlciA9ICh7XG4gIGV4cGFuZGVkLFxuICBzZXRFeHBhbmRlZCxcbiAgaGFuZGxlQ2xvc2UgPSAoKSA9PiBudWxsLFxuICBhZ2VudHMgPSBbXSxcbiAgaGFzRXJyb3IgPSBmYWxzZSxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZSA9IGZhbHNlLFxuICBoYXNNb3JlID0gZmFsc2UsXG4gIGhhbmRsZVJlc2V0Q2hhdCxcbiAgb25BZ2VudFVwZGF0ZSxcbiAgbG9hZE1vcmVBZ2VudHMsXG4gIHNvcnRBZ2VudHNMaXN0LFxufToge1xuICBleHBhbmRlZDogYm9vbGVhblxuICBzZXRFeHBhbmRlZDogKGV4cGFuZGVkOiBib29sZWFuKSA9PiB2b2lkXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgbG9hZGluZzogYm9vbGVhblxuICBsb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaGFuZGxlUmVzZXRDaGF0OiAoKSA9PiB2b2lkXG4gIG9uQWdlbnRVcGRhdGU/OiAodXBkYXRlZEFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBsb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgc29ydEFnZW50c0xpc3Q/OiAoKSA9PiB2b2lkXG59KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBhbXBsaXR1ZEV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGFnZW50OiBzZWxlY3RlZEFnZW50LCBzZWxlY3RBZ2VudCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRleHRSZWZBZ2VudCA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGRyb3Bkb3duUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VG9vbHRpcEFnZW50IH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmQWdlbnQsIFtzZWxlY3RlZEFnZW50Py5uYW1lXSlcbiAgY29uc3QgYWdlbnRzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcblxuICAvLyBNYW5lamFyIHNjcm9sbCBpbmZpbml0byBwYXJhIGNhcmdhciBtw6FzIGFnZW50c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNvbG8gY3VhbmRvIGVsIGRyb3Bkb3duIGVzdMOpIGFiaWVydG9cbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWFnZW50c1JlZi5jdXJyZW50IHx8ICFsb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZSB8fCBsb2FkaW5nTW9yZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG5cbiAgICAgIC8vIENhcmdhciBtw6FzICg1MHB4IGFudGVzKVxuICAgICAgaWYgKGRpc3RhbmNlRnJvbUJvdHRvbSA8IDUwKSB7XG4gICAgICAgIGxvYWRNb3JlQWdlbnRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgcmVuZGVyaXphZG9cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgaWYgKHNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfSwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIGxvYWRNb3JlQWdlbnRzLCBoYXNNb3JlLCBsb2FkaW5nTW9yZV0pXG5cbiAgY29uc3QgbG9jYWxBZ2VudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZnJvbV9jb252ZXJzYXRpb25cbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZEFnZW50XG4gICAgfVxuICAgIHJldHVybiBhZ2VudHMuZmluZChcbiAgICAgIGFnZW50ID0+XG4gICAgICAgICFhZ2VudC5pc19kZWxldGVkICYmICFhZ2VudC5oYXNfbm90X3Blcm1pc3Npb25zICYmICFhZ2VudC5oYXNfbm90X2FjY2VzcyAmJiBhZ2VudC5pZCA9PT0gc2VsZWN0ZWRBZ2VudD8uaWRcbiAgICApXG4gIH0sIFthZ2VudHMsIHNlbGVjdGVkQWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRBZ2VudFNlbGVjdCwge1xuICAgICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIH0pXG4gICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNldENoYXQoKVxuICAgICAgfSwgMTAwKVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBhbXBsaXR1ZEV2ZW50LCBoYW5kbGVSZXNldENoYXQsIHNldFByb2plY3QsIHNldENsaWVudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuZE1vZGFsID0gKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCkge1xuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlbkFnZW50U2VsZWN0KVxuICAgICAgLy8gQ3VhbmRvIHNlIGFicmUgZWwgc2VsZWN0b3IsIG9yZGVuYXIgbG9zIGFnZW50ZXNcbiAgICAgIGlmIChzb3J0QWdlbnRzTGlzdCkge1xuICAgICAgICBzb3J0QWdlbnRzTGlzdCgpXG4gICAgICB9XG4gICAgfVxuICAgIHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoZHJvcGRvd25SZWYuY3VycmVudCAmJiAhZHJvcGRvd25SZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZF0pXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgcmVuZGVyTW9kYWwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSU1IV3JhcHBlclxuICAgICAgICByZWY9e2Ryb3Bkb3duUmVmfVxuICAgICAgICBvbkNsaWNrPXthZ2VudHMubGVuZ3RoID8gaGFuZGxlRXhwYW5kTW9kYWwgOiB1bmRlZmluZWR9XG4gICAgICAgIGlkPVwiY2hhdC1haS1tb2RhbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICA+XG4gICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcEFnZW50ID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzRweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fSB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD17aXNFeHBhbmRlZCA/ICdsZWZ0JyA6ICd0b3AnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHRcbiAgICAgICAgICAgICAgcmVmPXt0ZXh0UmVmQWdlbnR9XG4gICAgICAgICAgICAgIGlzQWdlbnREZWxldGVkPXtcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgfHwgISFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3NcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgIHtsb2NhbEFnZW50cz8udHlwZSA9PT0gJ2N1c3RvbScgPyBsb2NhbEFnZW50cz8uZW1vamkgOiA8TUFJQUljb24gLz59IHtsb2NhbEFnZW50cz8ubmFtZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDQ0FJTUhTZWxlY3RlZEFnZW50PlxuICAgICAgICA8U0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD17MTR9IGhlaWdodD17MTR9IGNvbG9yPVwiIzIwMjAxRlwiIC8+XG4gICAgICAgIDwvU0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICAgIHt3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNsb25lQWdlbnRzLmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1BSUFJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlIGlzQ2xvbmU+TUFJQSBieSBDT1I8L1NDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDQ0FJV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IRGl2aWRlciAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvbmVBZ2VudHMubWFwKChjbG9uZUFnZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hhdEFJQWdlbnRPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BhZ2VudC0ke2Nsb25lQWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17Y2xvbmVBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBjbG9uZUFnZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWFpYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmF2b3JpdGVUb2dnbGU9e29uQWdlbnRVcGRhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2FnZW50cy5zb21lKGFnZW50ID0+IGFnZW50LnR5cGUgPT09ICdjdXN0b20nKSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7dCgnYWdlbnRzJyl9IGJ5IHt1c2VyLmNvbXBhbnl9XG4gICAgICAgICAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSERpdmlkZXIgLz5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPFNDQ0FJTUhBZ2VudHNMaXN0IGhhc01vcmU9e2hhc01vcmV9IGFnZW50c0NvdW50PXthZ2VudHMubGVuZ3RofSByZWY9e2FnZW50c1JlZn0+XG4gICAgICAgICAgICAgICAge2FnZW50cz8ubWFwKChhZ2VudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnIHx8XG4gICAgICAgICAgICAgICAgICAgIChhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScgJiYgIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPENoYXRBSUFnZW50T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWdlbnQtJHthZ2VudC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgIGFnZW50PXthZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBhZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkZhdm9yaXRlVG9nZ2xlPXtvbkFnZW50VXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgIHNldElzRXhwYW5kZWQ9e3NldElzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAge2xvYWRpbmdNb3JlICYmIChcbiAgICAgICAgICAgICAgICAgIDxTQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhBZ2VudHNMaXN0PlxuICAgICAgICAgICAgICB7dXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ0NBSU1IQWRkQWdlbnRcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMub3Blbk1vZGFsLCB7IG9wdGlvbjogJ25ld19hZ2VudCcgfSlcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IUGx1c0ljb25XcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICA8UGx1cyBjb2xvcj1cIndoaXRlXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1IUGx1c0ljb25XcmFwcGVyPlxuICAgICAgICAgICAgICAgICAge3QoJ2NyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgICAgICAgPC9TQ0NBSU1IQWRkQWdlbnQ+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50PlxuICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbD5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlNSFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgcmVuZGVySGVhZGVyID0gKCkgPT4ge1xuICAgIGlmIChoYXNFcnJvciB8fCBsb2FkaW5nKSByZXR1cm4gPGRpdiAvPlxuICAgIHJldHVybiBzZWxlY3RlZEFnZW50ICYmXG4gICAgICAoISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpID8gKFxuICAgICAgcmVuZGVyTW9kYWwoKVxuICAgICkgOiAoXG4gICAgICA8ZGl2IC8+XG4gICAgKVxuICB9XG4gIGNvbnN0IHNlbGVjdGVkTW9kZWxMbG0gPSBzZWxlY3RlZEFnZW50Py5tb2RlbF9kaXNwbGF5X25hbWVcbiAgY29uc3Qgc2VsZWN0ZWRBZ2VudFR5cGUgPSBzZWxlY3RlZEFnZW50Py50eXBlID09PSAnY3VzdG9tJ1xuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJTUhNb2RhbCAkaGFzRXJyb3I9e2hhc0Vycm9yfSAkbG9hZGluZz17bG9hZGluZ30gJGhhc0FnZW50cz17ISFhZ2VudHMubGVuZ3RofT5cbiAgICAgIHtyZW5kZXJIZWFkZXIoKX1cbiAgICAgIDxTQ0NBSU1IV3JhcHBlckJ1dHRvbj5cbiAgICAgICAge3NlbGVjdGVkQWdlbnRUeXBlICYmIHNlbGVjdGVkTW9kZWxMbG0gJiYgPENoaXBMbG0gbW9kZWw9e3NlbGVjdGVkTW9kZWxMbG19IGV4cGFuZGVkPXtleHBhbmRlZH0gLz59XG4gICAgICAgIDxFeHBhbmQgZXhwYW5kZWQ9e2V4cGFuZGVkfSBoYW5kbGVDbGljaz17KCkgPT4gc2V0RXhwYW5kZWQoIWV4cGFuZGVkKX0gLz5cbiAgICAgICAgPEljb25CdXR0b24gaGFuZGxlQ2xpY2s9e2hhbmRsZUNsb3NlfSB0b29sdGlwPXt0KCdnbG9iYWxzLmNsb3NlJyl9PlxuICAgICAgICAgIDxDcm9zcyAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyQnV0dG9uPlxuICAgIDwvU0NDQUlNSE1vZGFsPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBQ3hFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxTQUFTQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pELFNBQVNDLFVBQVUsUUFBUSw4QkFBOEI7QUFDekQsU0FBU0MsUUFBUSxRQUFRLHlCQUF5QjtBQUNsRCxTQUFTQyxpQkFBaUIsUUFBUSwwQ0FBMEM7QUFDNUUsU0FDRUMsWUFBWSxFQUNaQyxvQkFBb0IsRUFDcEJDLHdCQUF3QixFQUN4QkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLGtCQUFrQixFQUNsQkMsbUJBQW1CLEVBQ25CQywwQkFBMEIsRUFDMUJDLCtCQUErQixFQUMvQkMsZUFBZSxFQUNmQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsb0JBQW9CLEVBQ3BCQyxzQkFBc0IsRUFDdEJDLFlBQVksUUFDUCw0QkFBNEI7QUFDbkMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsK0JBQStCO0FBQ2hFLFNBQVNDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLGlDQUFpQztBQUV0RSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQ25ELFNBQVNDLE1BQU0sUUFBUSwwQkFBMEI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUVqRCxPQUFPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUFDLElBQUEsRUEwQnhCO0VBQUEsSUFBQUMsaUJBQUE7RUFBQSxJQXpCSkMsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7SUFDUkMsV0FBVyxHQUFBSCxJQUFBLENBQVhHLFdBQVc7SUFBQUMsZ0JBQUEsR0FBQUosSUFBQSxDQUNYSyxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsZ0JBQUEsY0FBRztNQUFBLE9BQU0sSUFBSTtJQUFBLElBQUFBLGdCQUFBO0lBQUFFLFdBQUEsR0FBQU4sSUFBQSxDQUN4Qk8sTUFBTTtJQUFOQSxNQUFNLEdBQUFELFdBQUEsY0FBRyxFQUFFLEdBQUFBLFdBQUE7SUFBQUUsYUFBQSxHQUFBUixJQUFBLENBQ1hTLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxhQUFBLGNBQUcsS0FBSyxHQUFBQSxhQUFBO0lBQUFFLFlBQUEsR0FBQVYsSUFBQSxDQUNoQlcsT0FBTztJQUFQQSxPQUFPLEdBQUFELFlBQUEsY0FBRyxLQUFLLEdBQUFBLFlBQUE7SUFBQUUsZ0JBQUEsR0FBQVosSUFBQSxDQUNmYSxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsZ0JBQUEsY0FBRyxLQUFLLEdBQUFBLGdCQUFBO0lBQUFFLFlBQUEsR0FBQWQsSUFBQSxDQUNuQmUsT0FBTztJQUFQQSxPQUFPLEdBQUFELFlBQUEsY0FBRyxLQUFLLEdBQUFBLFlBQUE7SUFDZkUsZUFBZSxHQUFBaEIsSUFBQSxDQUFmZ0IsZUFBZTtJQUNmQyxhQUFhLEdBQUFqQixJQUFBLENBQWJpQixhQUFhO0lBQ2JDLGNBQWMsR0FBQWxCLElBQUEsQ0FBZGtCLGNBQWM7SUFDZEMsY0FBYyxHQUFBbkIsSUFBQSxDQUFkbUIsY0FBYztFQWVkLElBQUFDLGVBQUEsR0FBY3hELGNBQWMsQ0FBQyxDQUFDQyxRQUFRLENBQUN3RCxRQUFRLENBQUMsQ0FBQztJQUF6Q0MsQ0FBQyxHQUFBRixlQUFBLENBQURFLENBQUM7RUFDVCxJQUFNQyxJQUFJLEdBQUdqQyxPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFNa0MsYUFBYSxHQUFHcEMsUUFBUSxDQUFDLENBQUM7RUFDaEMsSUFBQXFDLGlCQUFBLEdBQXFFM0QsZ0JBQWdCLENBQUMsQ0FBQztJQUF4RTRELGFBQWEsR0FBQUQsaUJBQUEsQ0FBcEJFLEtBQUs7SUFBaUJDLFdBQVcsR0FBQUgsaUJBQUEsQ0FBWEcsV0FBVztJQUFFQyxVQUFVLEdBQUFKLGlCQUFBLENBQVZJLFVBQVU7SUFBRUMsU0FBUyxHQUFBTCxpQkFBQSxDQUFUSyxTQUFTO0VBQ2hFLElBQUFDLFNBQUEsR0FBb0MxRSxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUEyRSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUE1Q0csVUFBVSxHQUFBRixVQUFBO0lBQUVHLGFBQWEsR0FBQUgsVUFBQTtFQUNoQyxJQUFNSSxZQUFZLEdBQUdoRixNQUFNLENBQWtCLElBQUksQ0FBQztFQUNsRCxJQUFNaUYsV0FBVyxHQUFHakYsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDaEQsSUFBQWtGLGtCQUFBLEdBQTBDdkUsaUJBQWlCLENBQUNxRSxZQUFZLEVBQUUsQ0FBQ1YsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVhLElBQUksQ0FBQyxDQUFDO0lBQTNFQyxnQkFBZ0IsR0FBQUYsa0JBQUEsQ0FBN0JHLFdBQVc7RUFDbkIsSUFBTUMsU0FBUyxHQUFHdEYsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFFOUMsSUFBTXVGLGVBQWUsR0FBR3BCLElBQUksYUFBSkEsSUFBSSxnQkFBQXRCLGlCQUFBLEdBQUpzQixJQUFJLENBQUVxQixXQUFXLGNBQUEzQyxpQkFBQSx1QkFBakJBLGlCQUFBLENBQW1CNEMsU0FBUzs7RUFFcEQ7RUFDQTFGLFNBQVMsQ0FBQyxZQUFNO0lBQ2Q7SUFDQSxJQUFJLENBQUMrRSxVQUFVLEVBQUU7TUFDZixPQUFPWSxTQUFTO0lBQ2xCO0lBRUEsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztNQUN6QixJQUFJLENBQUNMLFNBQVMsQ0FBQ00sT0FBTyxJQUFJLENBQUM5QixjQUFjLElBQUksQ0FBQ0gsT0FBTyxJQUFJRixXQUFXLEVBQUU7UUFDcEU7TUFDRjtNQUVBLElBQUFvQyxrQkFBQSxHQUFrRFAsU0FBUyxDQUFDTSxPQUFPO1FBQTNERSxTQUFTLEdBQUFELGtCQUFBLENBQVRDLFNBQVM7UUFBRUMsWUFBWSxHQUFBRixrQkFBQSxDQUFaRSxZQUFZO1FBQUVDLFlBQVksR0FBQUgsa0JBQUEsQ0FBWkcsWUFBWTtNQUM3QyxJQUFNQyxrQkFBa0IsR0FBR0YsWUFBWSxHQUFHRCxTQUFTLEdBQUdFLFlBQVk7O01BRWxFO01BQ0EsSUFBSUMsa0JBQWtCLEdBQUcsRUFBRSxFQUFFO1FBQzNCbkMsY0FBYyxDQUFDLENBQUM7TUFDbEI7SUFDRixDQUFDOztJQUVEO0lBQ0EsSUFBTW9DLFNBQVMsR0FBR0MsVUFBVSxDQUFDLFlBQU07TUFDakMsSUFBTUMsYUFBYSxHQUFHZCxTQUFTLENBQUNNLE9BQU87TUFDdkMsSUFBSVEsYUFBYSxFQUFFO1FBQ2pCQSxhQUFhLENBQUNDLGdCQUFnQixDQUFDLFFBQVEsRUFBRVYsWUFBWSxDQUFDO01BQ3hEO0lBQ0YsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUVQLE9BQU8sWUFBTTtNQUNYVyxZQUFZLENBQUNKLFNBQVMsQ0FBQztNQUN2QixJQUFNRSxhQUFhLEdBQUdkLFNBQVMsQ0FBQ00sT0FBTztNQUN2QyxJQUFJUSxhQUFhLEVBQUU7UUFDakJBLGFBQWEsQ0FBQ0csbUJBQW1CLENBQUMsUUFBUSxFQUFFWixZQUFZLENBQUM7TUFDM0Q7SUFDRixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNiLFVBQVUsRUFBRWhCLGNBQWMsRUFBRUgsT0FBTyxFQUFFRixXQUFXLENBQUMsQ0FBQztFQUV0RCxJQUFNK0MsV0FBVyxHQUFHckcsT0FBTyxDQUFDLFlBQU07SUFDaEMsSUFDRW1FLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVtQyxVQUFVLElBQ3pCbkMsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRW9DLG1CQUFtQixJQUNsQ3BDLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVxQyxjQUFjLElBQzdCckMsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRXNDLG9CQUFvQixFQUNuQztNQUNBLE9BQU90QyxhQUFhO0lBQ3RCO0lBQ0EsT0FBT25CLE1BQU0sQ0FBQzBELElBQUksQ0FDaEIsVUFBQXRDLEtBQUs7TUFBQSxPQUNILENBQUNBLEtBQUssQ0FBQ2tDLFVBQVUsSUFBSSxDQUFDbEMsS0FBSyxDQUFDbUMsbUJBQW1CLElBQUksQ0FBQ25DLEtBQUssQ0FBQ29DLGNBQWMsSUFBSXBDLEtBQUssQ0FBQ3VDLEVBQUUsTUFBS3hDLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFFd0MsRUFBRTtJQUFBLENBQzlHLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQzNELE1BQU0sRUFBRW1CLGFBQWEsQ0FBQyxDQUFDO0VBRTNCLElBQU15QyxpQkFBaUIsR0FBRzdHLFdBQVcsQ0FDbkMsVUFBQ3FFLEtBQVksRUFBSztJQUNoQkMsV0FBVyxDQUFDRCxLQUFLLENBQUM7SUFDbEJILGFBQWEsQ0FBQ3JDLE1BQU0sQ0FBQ2lGLGlCQUFpQixFQUFFO01BQ3RDQyxVQUFVLEVBQUUxQyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTJDO0lBQ3JCLENBQUMsQ0FBQztJQUNGbkMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNwQk4sVUFBVSxDQUFDLElBQUksQ0FBQztJQUNoQkMsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRyxJQUFJLENBQUM7SUFDakJ5QixVQUFVLENBQUMsWUFBTTtNQUNmdkMsZUFBZSxDQUFDLENBQUM7SUFDbkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztFQUNULENBQUMsRUFDRCxDQUFDWSxXQUFXLEVBQUVKLGFBQWEsRUFBRVIsZUFBZSxFQUFFYSxVQUFVLEVBQUVDLFNBQVMsQ0FDckUsQ0FBQztFQUVELElBQU15QyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQVM7SUFDOUIsSUFBSSxDQUFDckMsVUFBVSxFQUFFO01BQ2ZWLGFBQWEsQ0FBQ3JDLE1BQU0sQ0FBQ3FGLHFCQUFxQixDQUFDO01BQzNDO01BQ0EsSUFBSXJELGNBQWMsRUFBRTtRQUNsQkEsY0FBYyxDQUFDLENBQUM7TUFDbEI7SUFDRjtJQUNBZ0IsYUFBYSxDQUFDLFVBQUFzQyxJQUFJO01BQUEsT0FBSSxDQUFDQSxJQUFJO0lBQUEsRUFBQztFQUM5QixDQUFDO0VBRUR0SCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU11SCxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxLQUFpQixFQUFLO01BQ2hELElBQUl0QyxXQUFXLENBQUNXLE9BQU8sSUFBSSxDQUFDWCxXQUFXLENBQUNXLE9BQU8sQ0FBQzRCLFFBQVEsQ0FBQ0QsS0FBSyxDQUFDRSxNQUFjLENBQUMsRUFBRTtRQUM5RTFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7TUFDdEI7SUFDRixDQUFDO0lBRUQsSUFBSUQsVUFBVSxFQUFFO01BQ2Q0QyxRQUFRLENBQUNyQixnQkFBZ0IsQ0FBQyxXQUFXLEVBQUVpQixrQkFBa0IsQ0FBQztJQUM1RDtJQUVBLE9BQU8sWUFBTTtNQUNYSSxRQUFRLENBQUNuQixtQkFBbUIsQ0FBQyxXQUFXLEVBQUVlLGtCQUFrQixDQUFDO0lBQy9ELENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ3hDLFVBQVUsQ0FBQyxDQUFDO0VBRWhCLElBQU02QyxpQkFBaUIsR0FBRyxDQUFDMUYsV0FBVyxDQUFDMkYsWUFBWSxFQUFFM0YsV0FBVyxDQUFDNEYsVUFBVSxFQUFFNUYsV0FBVyxDQUFDNkYsTUFBTSxDQUFDO0VBRWhHLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEIsb0JBQ0V2RixLQUFBLENBQUNyQixjQUFjO01BQ2I2RyxHQUFHLEVBQUUvQyxXQUFZO01BQ2pCZ0QsT0FBTyxFQUFFOUUsTUFBTSxDQUFDK0UsTUFBTSxHQUFHZixpQkFBaUIsR0FBR3pCLFNBQVU7TUFDdkRvQixFQUFFLEVBQUMsOEJBQThCO01BQUFxQixRQUFBLGdCQUVqQzdGLElBQUEsQ0FBQ3JCLG9CQUFvQjtRQUFBa0gsUUFBQSxlQUNuQjdGLElBQUEsQ0FBQ2xDLE9BQU87VUFDTmdJLEtBQUssRUFDSGhELGdCQUFnQixnQkFDZDVDLEtBQUE7WUFBTTZGLEtBQUssRUFBRTtjQUFFQyxPQUFPLEVBQUUsTUFBTTtjQUFFQyxVQUFVLEVBQUUsUUFBUTtjQUFFQyxHQUFHLEVBQUU7WUFBTSxDQUFFO1lBQUFMLFFBQUEsR0FDaEUsQ0FBQTNCLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFVSxJQUFJLE1BQUssUUFBUSxHQUFHVixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRWlDLEtBQUssZ0JBQUduRyxJQUFBLENBQUN4QixRQUFRLElBQUUsQ0FBQyxFQUFDLEdBQUMsRUFBQzBGLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFckIsSUFBSTtVQUFBLENBQ25GLENBQUMsR0FFUCxFQUVIO1VBQ0R1RCxTQUFTLEVBQUU1RCxVQUFVLEdBQUcsTUFBTSxHQUFHLEtBQU07VUFBQXFELFFBQUEsZUFFdkM3RixJQUFBLENBQUNwQix3QkFBd0I7WUFDdkI4RyxHQUFHLEVBQUVoRCxZQUFhO1lBQ2xCMkQsY0FBYyxFQUNaLENBQUMsRUFBQ3JFLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVtQyxVQUFVLEtBQUksQ0FBQyxFQUFDbkMsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRW9DLG1CQUFtQixLQUFJLENBQUMsRUFBQ3BDLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVxQyxjQUFjLENBQ3ZHO1lBQUF3QixRQUFBLGVBRUQzRixLQUFBO2NBQU02RixLQUFLLEVBQUU7Z0JBQUVDLE9BQU8sRUFBRSxNQUFNO2dCQUFFQyxVQUFVLEVBQUUsUUFBUTtnQkFBRUMsR0FBRyxFQUFFO2NBQU0sQ0FBRTtjQUFBTCxRQUFBLEdBQ2hFLENBQUEzQixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRVUsSUFBSSxNQUFLLFFBQVEsR0FBR1YsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVpQyxLQUFLLGdCQUFHbkcsSUFBQSxDQUFDeEIsUUFBUSxJQUFFLENBQUMsRUFBQyxHQUFDLEVBQUMwRixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRXJCLElBQUk7WUFBQSxDQUNuRjtVQUFDLENBQ2lCO1FBQUMsQ0FDcEI7TUFBQyxDQUNVLENBQUMsZUFDdkI3QyxJQUFBLENBQUNqQixrQkFBa0I7UUFBQThHLFFBQUEsZUFDakI3RixJQUFBLENBQUNoQyxXQUFXO1VBQUNzSSxLQUFLLEVBQUUsRUFBRztVQUFDQyxNQUFNLEVBQUUsRUFBRztVQUFDQyxLQUFLLEVBQUM7UUFBUyxDQUFFO01BQUMsQ0FDcEMsQ0FBQyxFQUNwQmhFLFVBQVUsaUJBQ1R4QyxJQUFBLENBQUNoQixtQkFBbUI7UUFBQTZHLFFBQUEsZUFDbEIzRixLQUFBLENBQUNqQiwwQkFBMEI7VUFBQTRHLFFBQUEsR0FDeEJZLE1BQU0sQ0FBQ0MsMkJBQTJCLElBQUksQ0FBQ3JCLGlCQUFpQixDQUFDc0IsUUFBUSxDQUFDOUUsSUFBSSxDQUFDK0UsT0FBTyxDQUFDLGlCQUM5RTVHLElBQUEsQ0FBQUksU0FBQTtZQUFBeUYsUUFBQSxFQUNJLFlBQU07Y0FDTixJQUFNZ0IsV0FBVyxHQUFHaEcsTUFBTSxDQUFDaUcsTUFBTSxDQUFDLFVBQUNDLEVBQVM7Z0JBQUEsT0FBS0EsRUFBRSxDQUFDbkMsSUFBSSxLQUFLLE9BQU87Y0FBQSxFQUFDO2NBQ3JFLElBQUksQ0FBQ2lDLFdBQVcsQ0FBQ2pCLE1BQU0sRUFBRSxPQUFPLElBQUk7Y0FDcEMsb0JBQ0UxRixLQUFBLENBQUFFLFNBQUE7Z0JBQUF5RixRQUFBLGdCQUNFM0YsS0FBQSxDQUFDVixZQUFZO2tCQUFBcUcsUUFBQSxnQkFDWDdGLElBQUEsQ0FBQ3hCLFFBQVEsSUFBRSxDQUFDLGVBQ1p3QixJQUFBLENBQUNkLCtCQUErQjtvQkFBQzhILE9BQU87b0JBQUFuQixRQUFBLEVBQUM7a0JBQVcsQ0FBaUMsQ0FBQztnQkFBQSxDQUMxRSxDQUFDLGVBQ2Y3RixJQUFBLENBQUNaLGNBQWMsSUFBRSxDQUFDLEVBRWpCeUgsV0FBVyxDQUFDSSxHQUFHLENBQUMsVUFBQ0MsVUFBVSxFQUFFQyxLQUFLO2tCQUFBLG9CQUNqQ25ILElBQUEsQ0FBQ3ZCLGlCQUFpQjtvQkFFaEJ3RCxLQUFLLEVBQUVpRixVQUFXO29CQUNsQkMsS0FBSyxFQUFFQSxLQUFNO29CQUNiMUMsaUJBQWlCLEVBQUVBLGlCQUFrQjtvQkFDckMyQyxVQUFVLEVBQUUsQ0FBQXBGLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFFd0MsRUFBRSxNQUFLMEMsVUFBVSxDQUFDMUMsRUFBRztvQkFDaEQ2QyxNQUFNO29CQUNOQyxnQkFBZ0IsRUFBRS9GO2tCQUFjLFlBQUFnRyxNQUFBLENBTmxCTCxVQUFVLENBQUMxQyxFQUFFLENBTzVCLENBQUM7Z0JBQUEsQ0FDSCxDQUFDO2NBQUEsQ0FDRixDQUFDO1lBRVAsQ0FBQyxDQUFFO1VBQUMsQ0FDSixDQUNILEVBQ0EzRCxNQUFNLENBQUMyRyxJQUFJLENBQUMsVUFBQXZGLEtBQUs7WUFBQSxPQUFJQSxLQUFLLENBQUMyQyxJQUFJLEtBQUssUUFBUTtVQUFBLEVBQUMsSUFBSTZCLE1BQU0sQ0FBQ2dCLHdDQUF3QyxpQkFDL0Z2SCxLQUFBLENBQUFFLFNBQUE7WUFBQXlGLFFBQUEsZ0JBQ0UzRixLQUFBLENBQUNoQiwrQkFBK0I7Y0FBQTJHLFFBQUEsR0FDN0JqRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBSSxFQUFDQyxJQUFJLENBQUM2RixPQUFPO1lBQUEsQ0FDQyxDQUFDLGVBQ2xDMUgsSUFBQSxDQUFDWixjQUFjLElBQUUsQ0FBQztVQUFBLENBQ2xCLENBQ0gsZUFDRGMsS0FBQSxDQUFDYixpQkFBaUI7WUFBQ2dDLE9BQU8sRUFBRUEsT0FBUTtZQUFDc0csV0FBVyxFQUFFOUcsTUFBTSxDQUFDK0UsTUFBTztZQUFDRixHQUFHLEVBQUUxQyxTQUFVO1lBQUE2QyxRQUFBLEdBQzdFaEYsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVvRyxHQUFHLENBQUMsVUFBQ2hGLEtBQUssRUFBRWtGLEtBQUssRUFBSztjQUM3QixJQUNFbEYsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRWtDLFVBQVUsSUFDakJsQyxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFbUMsbUJBQW1CLElBQzFCbkMsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRW9DLGNBQWMsSUFDckIsQ0FBQXBDLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFMkMsSUFBSSxNQUFLLE9BQU8sSUFDdEIsQ0FBQTNDLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFMkMsSUFBSSxNQUFLLFFBQVEsSUFBSSxDQUFDNkIsTUFBTSxDQUFDZ0Isd0NBQXlDLEVBRTlFLE9BQU8sSUFBSTtjQUNiLG9CQUNFekgsSUFBQSxDQUFDdkIsaUJBQWlCO2dCQUVoQndELEtBQUssRUFBRUEsS0FBTTtnQkFDYmtGLEtBQUssRUFBRUEsS0FBTTtnQkFDYjFDLGlCQUFpQixFQUFFQSxpQkFBa0I7Z0JBQ3JDMkMsVUFBVSxFQUFFLENBQUFwRixhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBRXdDLEVBQUUsTUFBS3ZDLEtBQUssQ0FBQ3VDLEVBQUc7Z0JBQzNDOEMsZ0JBQWdCLEVBQUUvRixhQUFjO2dCQUNoQ2tCLGFBQWEsRUFBRUE7Y0FBYyxZQUFBOEUsTUFBQSxDQU5mdEYsS0FBSyxDQUFDdUMsRUFBRSxDQU92QixDQUFDO1lBRU4sQ0FBQyxDQUFDLEVBQ0RyRCxXQUFXLGlCQUNWbkIsSUFBQSxDQUFDVixvQkFBb0I7Y0FBQXVHLFFBQUEsZUFDbkI3RixJQUFBLENBQUNGLE1BQU07Z0JBQUM4SCxJQUFJLEVBQUM7Y0FBTyxDQUFFO1lBQUMsQ0FDSCxDQUN2QjtVQUFBLENBQ2dCLENBQUMsRUFDbkIsQ0FBQTNFLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFNEUsTUFBTSxLQUFJcEIsTUFBTSxDQUFDZ0Isd0NBQXdDLGlCQUN6RXZILEtBQUEsQ0FBQ2YsZUFBZTtZQUNkd0csT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtjQUNiN0QsYUFBYSxDQUFDckMsTUFBTSxDQUFDcUksU0FBUyxFQUFFO2dCQUFFQyxNQUFNLEVBQUU7Y0FBWSxDQUFDLENBQUM7Y0FDeEQzQyxRQUFRLENBQUM0QyxhQUFhLENBQ3BCLElBQUlDLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRTtnQkFDNUNDLE1BQU0sRUFBRTtrQkFDTkMsV0FBVyxFQUFFO29CQUNYQyxNQUFNLEVBQUU7a0JBQ1Y7Z0JBQ0Y7Y0FDRixDQUFDLENBQ0gsQ0FBQztZQUNILENBQUU7WUFBQXZDLFFBQUEsZ0JBRUY3RixJQUFBLENBQUNULHNCQUFzQjtjQUFBc0csUUFBQSxlQUNyQjdGLElBQUEsQ0FBQy9CLElBQUk7Z0JBQUN1SSxLQUFLLEVBQUMsT0FBTztnQkFBQ0YsS0FBSyxFQUFFLEVBQUc7Z0JBQUNDLE1BQU0sRUFBRTtjQUFHLENBQUU7WUFBQyxDQUN2QixDQUFDLEVBQ3hCM0UsQ0FBQyxDQUFDLGFBQWEsQ0FBQztVQUFBLENBQ0YsQ0FDbEI7UUFBQSxDQUN5QjtNQUFDLENBQ1YsQ0FDdEI7SUFBQSxDQUNhLENBQUM7RUFFckIsQ0FBQztFQUVELElBQU15RyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCLElBQUl0SCxRQUFRLElBQUlFLE9BQU8sRUFBRSxvQkFBT2pCLElBQUEsVUFBTSxDQUFDO0lBQ3ZDLE9BQU9nQyxhQUFhLEtBQ2pCLENBQUMsQ0FBQ3lFLE1BQU0sQ0FBQ2dCLHdDQUF3QyxJQUFJLENBQUMsQ0FBQ2hCLE1BQU0sQ0FBQ0MsMkJBQTJCLENBQUMsR0FDM0ZqQixXQUFXLENBQUMsQ0FBQyxnQkFFYnpGLElBQUEsVUFBTSxDQUNQO0VBQ0gsQ0FBQztFQUNELElBQU1zSSxnQkFBZ0IsR0FBR3RHLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFFdUcsa0JBQWtCO0VBQzFELElBQU1DLGlCQUFpQixHQUFHLENBQUF4RyxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBRTRDLElBQUksTUFBSyxRQUFRO0VBRTFELG9CQUNFMUUsS0FBQSxDQUFDeEIsWUFBWTtJQUFDK0osU0FBUyxFQUFFMUgsUUFBUztJQUFDMkgsUUFBUSxFQUFFekgsT0FBUTtJQUFDMEgsVUFBVSxFQUFFLENBQUMsQ0FBQzlILE1BQU0sQ0FBQytFLE1BQU87SUFBQUMsUUFBQSxHQUMvRXdDLFlBQVksQ0FBQyxDQUFDLGVBQ2ZuSSxLQUFBLENBQUNwQixvQkFBb0I7TUFBQStHLFFBQUEsR0FDbEIyQyxpQkFBaUIsSUFBSUYsZ0JBQWdCLGlCQUFJdEksSUFBQSxDQUFDSCxPQUFPO1FBQUMrSSxLQUFLLEVBQUVOLGdCQUFpQjtRQUFDOUgsUUFBUSxFQUFFQTtNQUFTLENBQUUsQ0FBQyxlQUNsR1IsSUFBQSxDQUFDMUIsTUFBTTtRQUFDa0MsUUFBUSxFQUFFQSxRQUFTO1FBQUNxSSxXQUFXLEVBQUUsU0FBYkEsV0FBV0EsQ0FBQTtVQUFBLE9BQVFwSSxXQUFXLENBQUMsQ0FBQ0QsUUFBUSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQUMsZUFDekVSLElBQUEsQ0FBQ3pCLFVBQVU7UUFBQ3NLLFdBQVcsRUFBRWxJLFdBQVk7UUFBQ21JLE9BQU8sRUFBRWxILENBQUMsQ0FBQyxlQUFlLENBQUU7UUFBQWlFLFFBQUEsZUFDaEU3RixJQUFBLENBQUNqQyxLQUFLLElBQUU7TUFBQyxDQUNDLENBQUM7SUFBQSxDQUNPLENBQUM7RUFBQSxDQUNYLENBQUM7QUFFbkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -5,10 +5,11 @@ export var options = /*#__PURE__*/function (options) {
5
5
  options["projectSummary"] = "projectSummary";
6
6
  options["chat"] = "chat";
7
7
  options["projectSelector"] = "projectSelector";
8
+ options["clientSelector"] = "clientSelector";
8
9
  return options;
9
10
  }({});
10
11
  export var buildHandlers = function buildHandlers(setCurrentOption, setHasError) {
11
- return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, options.home, function () {
12
+ return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, options.home, function () {
12
13
  setHasError(false);
13
14
  setCurrentOption(options.home);
14
15
  }), options.chatsHistory, function () {
@@ -23,6 +24,9 @@ export var buildHandlers = function buildHandlers(setCurrentOption, setHasError)
23
24
  }), options.projectSelector, function () {
24
25
  setHasError(false);
25
26
  setCurrentOption(options.projectSelector);
27
+ }), options.clientSelector, function () {
28
+ setHasError(false);
29
+ setCurrentOption(options.clientSelector);
26
30
  });
27
31
  };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zIiwiYnVpbGRIYW5kbGVycyIsInNldEN1cnJlbnRPcHRpb24iLCJzZXRIYXNFcnJvciIsIl9kZWZpbmVQcm9wZXJ0eSIsImhvbWUiLCJjaGF0c0hpc3RvcnkiLCJwcm9qZWN0U3VtbWFyeSIsImNoYXQiLCJwcm9qZWN0U2VsZWN0b3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIG9wdGlvbnMge1xuICBob21lID0gJ2hvbWUnLFxuICBjaGF0c0hpc3RvcnkgPSAnY2hhdHNIaXN0b3J5JyxcbiAgcHJvamVjdFN1bW1hcnkgPSAncHJvamVjdFN1bW1hcnknLFxuICBjaGF0ID0gJ2NoYXQnLFxuICBwcm9qZWN0U2VsZWN0b3IgPSAncHJvamVjdFNlbGVjdG9yJyxcbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkSGFuZGxlcnMgPSAoXG4gIHNldEN1cnJlbnRPcHRpb246IChvcHRpb246IG9wdGlvbnMpID0+IHZvaWQsXG4gIHNldEhhc0Vycm9yOiAoaGFzRXJyb3I6IGJvb2xlYW4pID0+IHZvaWRcbikgPT4gKHtcbiAgW29wdGlvbnMuaG9tZV06ICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgfSxcbiAgW29wdGlvbnMuY2hhdHNIaXN0b3J5XTogKCkgPT4ge1xuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5jaGF0c0hpc3RvcnkpXG4gIH0sXG4gIFtvcHRpb25zLnByb2plY3RTdW1tYXJ5XTogKCkgPT4ge1xuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5wcm9qZWN0U3VtbWFyeSlcbiAgfSxcbiAgW29wdGlvbnMuY2hhdF06ICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2hhdClcbiAgfSxcbiAgW29wdGlvbnMucHJvamVjdFNlbGVjdG9yXTogKCkgPT4ge1xuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5wcm9qZWN0U2VsZWN0b3IpXG4gIH0sXG59KVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsV0FBWUEsT0FBTywwQkFBUEEsT0FBTztFQUFQQSxPQUFPO0VBQVBBLE9BQU87RUFBUEEsT0FBTztFQUFQQSxPQUFPO0VBQVBBLE9BQU87RUFBQSxPQUFQQSxPQUFPO0FBQUE7QUFRbkIsT0FBTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQ3hCQyxnQkFBMkMsRUFDM0NDLFdBQXdDO0VBQUEsT0FBQUMsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsQ0FBQUEsZUFBQSxDQUFBQSxlQUFBLEtBRXZDSixPQUFPLENBQUNLLElBQUksRUFBRyxZQUFNO0lBQ3BCRixXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCRCxnQkFBZ0IsQ0FBQ0YsT0FBTyxDQUFDSyxJQUFJLENBQUM7RUFDaEMsQ0FBQyxHQUNBTCxPQUFPLENBQUNNLFlBQVksRUFBRyxZQUFNO0lBQzVCSCxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCRCxnQkFBZ0IsQ0FBQ0YsT0FBTyxDQUFDTSxZQUFZLENBQUM7RUFDeEMsQ0FBQyxHQUNBTixPQUFPLENBQUNPLGNBQWMsRUFBRyxZQUFNO0lBQzlCSixXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCRCxnQkFBZ0IsQ0FBQ0YsT0FBTyxDQUFDTyxjQUFjLENBQUM7RUFDMUMsQ0FBQyxHQUNBUCxPQUFPLENBQUNRLElBQUksRUFBRyxZQUFNO0lBQ3BCTCxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCRCxnQkFBZ0IsQ0FBQ0YsT0FBTyxDQUFDUSxJQUFJLENBQUM7RUFDaEMsQ0FBQyxHQUNBUixPQUFPLENBQUNTLGVBQWUsRUFBRyxZQUFNO0lBQy9CTixXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCRCxnQkFBZ0IsQ0FBQ0YsT0FBTyxDQUFDUyxlQUFlLENBQUM7RUFDM0MsQ0FBQztBQUFBLENBQ0QiLCJpZ25vcmVMaXN0IjpbXX0=
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zIiwiYnVpbGRIYW5kbGVycyIsInNldEN1cnJlbnRPcHRpb24iLCJzZXRIYXNFcnJvciIsIl9kZWZpbmVQcm9wZXJ0eSIsImhvbWUiLCJjaGF0c0hpc3RvcnkiLCJwcm9qZWN0U3VtbWFyeSIsImNoYXQiLCJwcm9qZWN0U2VsZWN0b3IiLCJjbGllbnRTZWxlY3RvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gb3B0aW9ucyB7XG4gIGhvbWUgPSAnaG9tZScsXG4gIGNoYXRzSGlzdG9yeSA9ICdjaGF0c0hpc3RvcnknLFxuICBwcm9qZWN0U3VtbWFyeSA9ICdwcm9qZWN0U3VtbWFyeScsXG4gIGNoYXQgPSAnY2hhdCcsXG4gIHByb2plY3RTZWxlY3RvciA9ICdwcm9qZWN0U2VsZWN0b3InLFxuICBjbGllbnRTZWxlY3RvciA9ICdjbGllbnRTZWxlY3RvcicsXG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEhhbmRsZXJzID0gKFxuICBzZXRDdXJyZW50T3B0aW9uOiAob3B0aW9uOiBvcHRpb25zKSA9PiB2b2lkLFxuICBzZXRIYXNFcnJvcjogKGhhc0Vycm9yOiBib29sZWFuKSA9PiB2b2lkXG4pID0+ICh7XG4gIFtvcHRpb25zLmhvbWVdOiAoKSA9PiB7XG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gIH0sXG4gIFtvcHRpb25zLmNoYXRzSGlzdG9yeV06ICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2hhdHNIaXN0b3J5KVxuICB9LFxuICBbb3B0aW9ucy5wcm9qZWN0U3VtbWFyeV06ICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMucHJvamVjdFN1bW1hcnkpXG4gIH0sXG4gIFtvcHRpb25zLmNoYXRdOiAoKSA9PiB7XG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmNoYXQpXG4gIH0sXG4gIFtvcHRpb25zLnByb2plY3RTZWxlY3Rvcl06ICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMucHJvamVjdFNlbGVjdG9yKVxuICB9LFxuICBbb3B0aW9ucy5jbGllbnRTZWxlY3Rvcl06ICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2xpZW50U2VsZWN0b3IpXG4gIH0sXG59KVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsV0FBWUEsT0FBTywwQkFBUEEsT0FBTztFQUFQQSxPQUFPO0VBQVBBLE9BQU87RUFBUEEsT0FBTztFQUFQQSxPQUFPO0VBQVBBLE9BQU87RUFBUEEsT0FBTztFQUFBLE9BQVBBLE9BQU87QUFBQTtBQVNuQixPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FDeEJDLGdCQUEyQyxFQUMzQ0MsV0FBd0M7RUFBQSxPQUFBQyxlQUFBLENBQUFBLGVBQUEsQ0FBQUEsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsQ0FBQUEsZUFBQSxLQUV2Q0osT0FBTyxDQUFDSyxJQUFJLEVBQUcsWUFBTTtJQUNwQkYsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQkQsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDO0VBQ2hDLENBQUMsR0FDQUwsT0FBTyxDQUFDTSxZQUFZLEVBQUcsWUFBTTtJQUM1QkgsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQkQsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQ00sWUFBWSxDQUFDO0VBQ3hDLENBQUMsR0FDQU4sT0FBTyxDQUFDTyxjQUFjLEVBQUcsWUFBTTtJQUM5QkosV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQkQsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQ08sY0FBYyxDQUFDO0VBQzFDLENBQUMsR0FDQVAsT0FBTyxDQUFDUSxJQUFJLEVBQUcsWUFBTTtJQUNwQkwsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQkQsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQ1EsSUFBSSxDQUFDO0VBQ2hDLENBQUMsR0FDQVIsT0FBTyxDQUFDUyxlQUFlLEVBQUcsWUFBTTtJQUMvQk4sV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQkQsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQ1MsZUFBZSxDQUFDO0VBQzNDLENBQUMsR0FDQVQsT0FBTyxDQUFDVSxjQUFjLEVBQUcsWUFBTTtJQUM5QlAsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQkQsZ0JBQWdCLENBQUNGLE9BQU8sQ0FBQ1UsY0FBYyxDQUFDO0VBQzFDLENBQUM7QUFBQSxDQUNEIiwiaWdub3JlTGlzdCI6W119