@projectcor/maia-components 2.38.0 → 2.38.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 (56) hide show
  1. package/lib/components/atoms/ActionableButton.js +6 -1
  2. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +14 -4
  3. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +12 -3
  4. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +20 -4
  5. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +18 -7
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +26 -10
  7. package/lib/components/atoms/MAIAInput/styles.js +34 -27
  8. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +16 -5
  9. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +23 -2
  10. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +33 -5
  11. package/lib/components/molecules/ChatAIHome/styles.js +11 -2
  12. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +31 -20
  13. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -2
  14. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  15. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +8 -1
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +15 -9
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +18 -3
  18. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  19. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +13 -2
  20. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +14 -5
  21. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  22. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +12 -2
  23. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  24. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +34 -10
  25. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +14 -6
  26. package/lib/components/molecules/ChatFooter/ChatFooter.js +66 -45
  27. package/lib/components/molecules/ChatFooter/styles.js +12 -6
  28. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +15 -5
  29. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  30. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +30 -0
  31. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +47 -0
  32. package/lib/components/molecules/UsageBlockedBanner/index.js +2 -0
  33. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +30 -11
  34. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +31 -18
  35. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +40 -19
  36. package/lib/components/organisms/ChatAI/ChatAI.js +6 -1
  37. package/lib/hooks/useChatManager/useChatManager.js +55 -34
  38. package/lib/lang/__mocks__/index.js +9 -0
  39. package/lib/lang/br/index.js +5 -1
  40. package/lib/lang/en/index.js +5 -1
  41. package/lib/lang/es/index.js +5 -1
  42. package/lib/lang/fr/index.js +6 -2
  43. package/lib/services/maia/Usage/getUsage.js +45 -0
  44. package/lib/services/maia/Usage/index.js +6 -0
  45. package/lib/services/maia/index.js +4 -2
  46. package/lib/services/utils/MaiaApiError.js +34 -0
  47. package/lib/services/utils/fetchCOR.js +106 -57
  48. package/lib/services/utils/index.js +2 -1
  49. package/lib/store/index.js +2 -1
  50. package/lib/store/sessions/sessionStreamManager.js +70 -35
  51. package/lib/store/sessions/sessions.types.js +1 -1
  52. package/lib/store/useUsageStore.js +115 -0
  53. package/lib/types/usage.js +16 -0
  54. package/lib/utils/usageBlockedMessage.js +11 -0
  55. package/package.json +1 -1
  56. package/README.md +0 -2
@@ -10,6 +10,7 @@ import { GlobalContext } from '../../../context/global-context';
10
10
  import { Features } from '../../atoms/WithFeatureValidation';
11
11
  import { withAppCfg } from '../../atoms/WithAppCfg';
12
12
  import { acquireChatsStore, releaseChatsStore } from '../../../store';
13
+ import { useUsageStore } from '../../../store/useUsageStore';
13
14
  import { readMaiaPanelSession } from '../../../store/maiaPanelSessionPersistence';
14
15
  import { ensureSessionNotificationsInitialized } from '../../../store/sessions/sessionNotifications';
15
16
  import { useUser } from '../../../context/cor-user';
@@ -111,9 +112,13 @@ export var ChatAI = withAppCfg(function (_ref) {
111
112
  useEffect(function () {
112
113
  acquireChatsStore();
113
114
  ensureSessionNotificationsInitialized();
115
+ useUsageStore.getState().fetchUsage()["catch"](function () {
116
+ return undefined;
117
+ });
114
118
  return function () {
115
119
  deepLinkSendPendingRef.current = false;
116
120
  releaseChatsStore();
121
+ useUsageStore.getState().reset();
117
122
  };
118
123
  }, [user.id, user.company_id, initialSection]);
119
124
  var applyHostOpenDetail = useCallback(function (detail) {
@@ -177,4 +182,4 @@ export var ChatAI = withAppCfg(function (_ref) {
177
182
  children: /*#__PURE__*/_jsx(ChatAIModal, {})
178
183
  });
179
184
  }, Features.CHAT_AI);
180
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiQ2hhdEFJTW9kYWwiLCJHbG9iYWxDb250ZXh0IiwiRmVhdHVyZXMiLCJ3aXRoQXBwQ2ZnIiwiYWNxdWlyZUNoYXRzU3RvcmUiLCJyZWxlYXNlQ2hhdHNTdG9yZSIsInJlYWRNYWlhUGFuZWxTZXNzaW9uIiwiZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCIsInVzZVVzZXIiLCJNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5UIiwianN4IiwiX2pzeCIsIm5vcm1hbGl6ZUJhbm5lckVudHJ5RmFxIiwiZmFxIiwiX2ZhcSRmYXFJZCIsIl9mYXEkZmFxVGl0bGUiLCJpZCIsImZhcUlkIiwidHJpbSIsInRpdGxlIiwiZmFxVGl0bGUiLCJjb250ZXh0RGF0YSIsIl90eXBlb2YiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiQ2hhdEFJIiwiX3JlZiIsIl9zYXZlZEhvc3RDb250ZXh0JHBybyIsImluaXRpYWxFbnRpdHkiLCJlbnRpdHkiLCJpbml0aWFsUHJvamVjdCIsInByb2plY3QiLCJpbml0aWFsQ2xpZW50IiwiY2xpZW50IiwiaW5pdGlhbFRhc2siLCJ0YXNrIiwiX3JlZiRoYXNNdWx0aUFnZW50cyIsImhhc011bHRpQWdlbnRzIiwiX3JlZiRzZWN0aW9uIiwic2VjdGlvbiIsImluaXRpYWxTZWN0aW9uIiwiX3JlZiRmYXEiLCJpbml0aWFsRmFxUHJvcCIsIl9yZWYkaW5pdGlhbERyYWZ0IiwiaW5pdGlhbERyYWZ0IiwiaW5pdGlhbERyYWZ0UHJvcCIsIl9yZWYkbWluaW1pemVkUGlsbEF2byIsIm1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJpbml0aWFsTWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsInVzZXIiLCJzYXZlZFNlc3Npb25Pbk1vdW50Iiwic2F2ZWRIb3N0Q29udGV4dCIsImlzRXhwYW5kZWQiLCJob3N0Q29udGV4dCIsIl91c2VTdGF0ZSIsIl9zYXZlZEhvc3RDb250ZXh0JHNlYyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImhvc3RTZWN0aW9uIiwic2V0SG9zdFNlY3Rpb24iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImhvc3RFbnRpdHkiLCJzZXRIb3N0RW50aXR5IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJob3N0RmFxUHJvcCIsInNldEhvc3RGYXFQcm9wIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJob3N0SW5pdGlhbERyYWZ0UHJvcCIsInNldEhvc3RJbml0aWFsRHJhZnRQcm9wIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsInNldEhvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzIiwiX3VzZVN0YXRlMSIsIl9yZWYyIiwiX3NhdmVkSG9zdENvbnRleHQkY2xpIiwiX3VzZVN0YXRlMTAiLCJob3N0Q2xpZW50Iiwic2V0SG9zdENsaWVudCIsIl91c2VTdGF0ZTExIiwiX3JlZjMiLCJfc2F2ZWRIb3N0Q29udGV4dCR0YXMiLCJfdXNlU3RhdGUxMiIsImhvc3RUYXNrIiwic2V0SG9zdFRhc2siLCJpbml0aWFsUHJvamVjdFZhbHVlIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNldFByb2plY3QiLCJfdXNlUHJvamVjdFN1bW1hcnlDb24iLCJjb250ZXh0IiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsImN1cnJlbnQiLCJjb21wYW55X2lkIiwiYXBwbHlIb3N0T3BlbkRldGFpbCIsImRldGFpbCIsIl9kZXRhaWwkZmFxIiwiX2RldGFpbCRpbml0aWFsRHJhZnQiLCJfZGV0YWlsJHByb2plY3QiLCJfZGV0YWlsJGNsaWVudCIsIl9kZXRhaWwkdGFzayIsIm9uT3BlbkZyb21Ib3N0IiwiZXZlbnQiLCJfcmVmNCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJiYW5uZXJFbnRyeUZhcSIsImRyYWZ0IiwicHJvdmlkZXJWYWx1ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsIkNIQVRfQUkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJL0NoYXRBSS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdFN1bW1hcnlDb25maWcgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VQcm9qZWN0U3VtbWFyeUNvbmZpZydcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL1Rhc2snXG5pbXBvcnQgeyBDaGF0QUlNb2RhbCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbCdcbmltcG9ydCB7IEdsb2JhbENvbnRleHQsIHR5cGUgQmFubmVyRW50cnlGYXEsIHR5cGUgTWluaW1pemVkUGlsbEF2b2lkQW5jaG9yIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEZlYXR1cmVzIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEZlYXR1cmVWYWxpZGF0aW9uJ1xuaW1wb3J0IHsgd2l0aEFwcENmZyB9IGZyb20gJy4uLy4uL2F0b21zL1dpdGhBcHBDZmcnXG5pbXBvcnQgeyBhY3F1aXJlQ2hhdHNTdG9yZSwgcmVsZWFzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSdcbmltcG9ydCB7IHJlYWRNYWlhUGFuZWxTZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbWFpYVBhbmVsU2Vzc2lvblBlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25Ob3RpZmljYXRpb25zJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5ULCB0eXBlIE1haWFIb3N0T3BlbkRldGFpbCwgdHlwZSBNYWlhSG9zdFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYWlhSG9zdE9wZW4nXG5cbnR5cGUgQ2hhdEFJUHJvcHMgPSB7XG4gIGVudGl0eToge1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgcHJvamVjdDogUHJvamVjdCB8IG51bGxcbiAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICB0YXNrPzogVGFzayB8IG51bGxcbiAgaGFzTXVsdGlBZ2VudHM/OiBib29sZWFuXG4gIHNlY3Rpb24/OiBNYWlhSG9zdFNlY3Rpb25cbiAgLyoqIEJhbm5lciAvIGhvc3Q6IGFicmUgZWwgY2hhdCBlbnZpYW5kbyBsYSBGQVEgY29tbyBtZW5zYWplIHkgYFgtRmFxLUlkYCBlbiBlbCBvcmNoZXN0cmF0b3IgKi9cbiAgZmFxPzogQmFubmVyRW50cnlGYXEgfCBudWxsXG4gIGluaXRpYWxEcmFmdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFNlbGVjdG9yZXMgRE9NIGRlbCBob3N0IHF1ZSBlbCBwaWxsIG1pbmltaXphZG8gZGViZSBlc3F1aXZhciBhbCBlc3RhciB2aXNpYmxlLiAqL1xuICBtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzPzogTWluaW1pemVkUGlsbEF2b2lkQW5jaG9yW11cbn1cblxuY29uc3Qgbm9ybWFsaXplQmFubmVyRW50cnlGYXEgPSAoZmFxOiBCYW5uZXJFbnRyeUZhcSB8IG51bGwgfCB1bmRlZmluZWQpOiBCYW5uZXJFbnRyeUZhcSB8IG51bGwgPT4ge1xuICBjb25zdCBpZCA9IGZhcT8uZmFxSWQ/LnRyaW0oKVxuICBjb25zdCB0aXRsZSA9IGZhcT8uZmFxVGl0bGU/LnRyaW0oKVxuICBpZiAoIXRpdGxlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBjb250ZXh0RGF0YSA9IGZhcT8uY29udGV4dERhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZmFxLmNvbnRleHREYXRhID09PSAnb2JqZWN0JyA/IGZhcS5jb250ZXh0RGF0YSA6IHVuZGVmaW5lZFxuICByZXR1cm4ge1xuICAgIC4uLihpZCA/IHsgZmFxSWQ6IGlkIH0gOiB7fSksXG4gICAgZmFxVGl0bGU6IHRpdGxlLFxuICAgIC4uLihjb250ZXh0RGF0YSA/IHsgY29udGV4dERhdGEgfSA6IHt9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJID0gd2l0aEFwcENmZyhcbiAgKHtcbiAgICBlbnRpdHk6IGluaXRpYWxFbnRpdHksXG4gICAgcHJvamVjdDogaW5pdGlhbFByb2plY3QsXG4gICAgY2xpZW50OiBpbml0aWFsQ2xpZW50LFxuICAgIHRhc2s6IGluaXRpYWxUYXNrLFxuICAgIGhhc011bHRpQWdlbnRzID0gZmFsc2UsXG4gICAgc2VjdGlvbjogaW5pdGlhbFNlY3Rpb24gPSAnaGVhZGVyJyxcbiAgICBmYXE6IGluaXRpYWxGYXFQcm9wID0gbnVsbCxcbiAgICBpbml0aWFsRHJhZnQ6IGluaXRpYWxEcmFmdFByb3AgPSBudWxsLFxuICAgIG1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnM6IGluaXRpYWxNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzID0gW10sXG4gIH06IENoYXRBSVByb3BzKSA9PiB7XG4gICAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICAgIGNvbnN0IHNhdmVkU2Vzc2lvbk9uTW91bnQgPSByZWFkTWFpYVBhbmVsU2Vzc2lvbih1c2VyLmlkKVxuICAgIGNvbnN0IHNhdmVkSG9zdENvbnRleHQgPSBzYXZlZFNlc3Npb25Pbk1vdW50Py5pc0V4cGFuZGVkID8gc2F2ZWRTZXNzaW9uT25Nb3VudC5ob3N0Q29udGV4dCA6IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgW2hvc3RTZWN0aW9uLCBzZXRIb3N0U2VjdGlvbl0gPSB1c2VTdGF0ZTxNYWlhSG9zdFNlY3Rpb24+KCgpID0+IHNhdmVkSG9zdENvbnRleHQ/LnNlY3Rpb24gPz8gaW5pdGlhbFNlY3Rpb24pXG4gICAgY29uc3QgW2hvc3RFbnRpdHksIHNldEhvc3RFbnRpdHldID0gdXNlU3RhdGUoaW5pdGlhbEVudGl0eSlcbiAgICBjb25zdCBbaG9zdEZhcVByb3AsIHNldEhvc3RGYXFQcm9wXSA9IHVzZVN0YXRlPEJhbm5lckVudHJ5RmFxIHwgbnVsbD4oaW5pdGlhbEZhcVByb3ApXG4gICAgY29uc3QgW2hvc3RJbml0aWFsRHJhZnRQcm9wLCBzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihpbml0aWFsRHJhZnRQcm9wKVxuICAgIGNvbnN0IFtob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycywgc2V0SG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnNdID0gdXNlU3RhdGUoaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMpXG4gICAgY29uc3QgW2hvc3RDbGllbnQsIHNldEhvc3RDbGllbnRdID0gdXNlU3RhdGU8Q2xpZW50IHwgbnVsbD4oKCkgPT4gc2F2ZWRIb3N0Q29udGV4dD8uY2xpZW50ID8/IGluaXRpYWxDbGllbnQgPz8gbnVsbClcbiAgICBjb25zdCBbaG9zdFRhc2ssIHNldEhvc3RUYXNrXSA9IHVzZVN0YXRlPFRhc2sgfCBudWxsPigoKSA9PiBzYXZlZEhvc3RDb250ZXh0Py50YXNrID8/IGluaXRpYWxUYXNrID8/IG51bGwpXG5cbiAgICBjb25zdCBpbml0aWFsUHJvamVjdFZhbHVlID1cbiAgICAgIHNhdmVkSG9zdENvbnRleHQ/LnByb2plY3QgPz8gKGhvc3RTZWN0aW9uID09PSAncHJvamVjdCcgfHwgaG9zdFNlY3Rpb24gPT09ICd0YXNrJyA/IGluaXRpYWxQcm9qZWN0IDogbnVsbClcbiAgICBjb25zdCBbcHJvamVjdCwgc2V0UHJvamVjdF0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4oaW5pdGlhbFByb2plY3RWYWx1ZSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoKGhvc3RTZWN0aW9uID09PSAncHJvamVjdCcgfHwgaG9zdFNlY3Rpb24gPT09ICd0YXNrJykgJiYgaW5pdGlhbFByb2plY3QgIT0gbnVsbCkge1xuICAgICAgICBzZXRQcm9qZWN0KGluaXRpYWxQcm9qZWN0KVxuICAgICAgfVxuICAgIH0sIFtob3N0U2VjdGlvbiwgaW5pdGlhbFByb2plY3RdKVxuXG4gICAgY29uc3QgeyBjb250ZXh0IH0gPSB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyh7XG4gICAgICBzZWN0aW9uOiBob3N0U2VjdGlvbixcbiAgICAgIGVudGl0eTogaG9zdEVudGl0eSxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50OiBob3N0U2VjdGlvbiA9PT0gJ2NsaWVudCcgPyBob3N0Q2xpZW50IDogdW5kZWZpbmVkLFxuICAgICAgdGFzazogaG9zdFNlY3Rpb24gPT09ICd0YXNrJyA/IGhvc3RUYXNrIDogdW5kZWZpbmVkLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgfSlcbiAgICBjb25zdCBkZWVwTGlua1NlbmRQZW5kaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGFjcXVpcmVDaGF0c1N0b3JlKClcbiAgICAgIGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQoKVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmVsZWFzZUNoYXRzU3RvcmUoKVxuICAgICAgfVxuICAgIH0sIFt1c2VyLmlkLCB1c2VyLmNvbXBhbnlfaWQsIGluaXRpYWxTZWN0aW9uXSlcblxuICAgIGNvbnN0IGFwcGx5SG9zdE9wZW5EZXRhaWwgPSB1c2VDYWxsYmFjaygoZGV0YWlsOiBNYWlhSG9zdE9wZW5EZXRhaWwpID0+IHtcbiAgICAgIHNldEhvc3RTZWN0aW9uKGRldGFpbC5zZWN0aW9uKVxuICAgICAgc2V0SG9zdEVudGl0eShkZXRhaWwuZW50aXR5KVxuICAgICAgc2V0SG9zdEZhcVByb3AoZGV0YWlsLmZhcSA/PyBudWxsKVxuICAgICAgc2V0SG9zdEluaXRpYWxEcmFmdFByb3AoZGV0YWlsLmluaXRpYWxEcmFmdCA/PyBudWxsKVxuICAgICAgaWYgKGRldGFpbC5taW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzICE9IG51bGwpIHtcbiAgICAgICAgc2V0SG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMoZGV0YWlsLm1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMpXG4gICAgICB9XG5cbiAgICAgIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IGRldGFpbC5zZWN0aW9uID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0UHJvamVjdChkZXRhaWwucHJvamVjdCA/PyBudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgfVxuXG4gICAgICBpZiAoZGV0YWlsLnNlY3Rpb24gPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHNldEhvc3RDbGllbnQoZGV0YWlsLmNsaWVudCA/PyBudWxsKVxuICAgICAgfSBlbHNlIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgZGV0YWlsLnNlY3Rpb24gPT09ICdwbGFubmVyJykge1xuICAgICAgICBzZXRIb3N0Q2xpZW50KG51bGwpXG4gICAgICB9XG5cbiAgICAgIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIHNldEhvc3RUYXNrKGRldGFpbC50YXNrID8/IG51bGwpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRIb3N0VGFzayhudWxsKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG9uT3BlbkZyb21Ib3N0ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRldGFpbCB9ID0gZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8TWFpYUhvc3RPcGVuRGV0YWlsPlxuICAgICAgICBpZiAoIWRldGFpbCkgcmV0dXJuXG4gICAgICAgIGFwcGx5SG9zdE9wZW5EZXRhaWwoZGV0YWlsKVxuICAgICAgfVxuXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIG9uT3BlbkZyb21Ib3N0KVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5ULCBvbk9wZW5Gcm9tSG9zdClcbiAgICAgIH1cbiAgICB9LCBbYXBwbHlIb3N0T3BlbkRldGFpbF0pXG5cbiAgICBjb25zdCBiYW5uZXJFbnRyeUZhcSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBub3JtYWxpemVCYW5uZXJFbnRyeUZhcShob3N0RmFxUHJvcCksXG4gICAgICBbaG9zdEZhcVByb3A/LmZhcUlkLCBob3N0RmFxUHJvcD8uZmFxVGl0bGUsIGhvc3RGYXFQcm9wPy5jb250ZXh0RGF0YV1cbiAgICApXG5cbiAgICBjb25zdCBpbml0aWFsRHJhZnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGRyYWZ0ID0gaG9zdEluaXRpYWxEcmFmdFByb3A/LnRyaW0oKVxuICAgICAgcmV0dXJuIGRyYWZ0IHx8IG51bGxcbiAgICB9LCBbaG9zdEluaXRpYWxEcmFmdFByb3BdKVxuXG4gICAgY29uc3QgcHJvdmlkZXJWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICBzZWN0aW9uOiBob3N0U2VjdGlvbixcbiAgICAgICAgYmFubmVyRW50cnlGYXEsXG4gICAgICAgIGluaXRpYWxEcmFmdCxcbiAgICAgICAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZixcbiAgICAgICAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9yczogaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMsXG4gICAgICB9KSxcbiAgICAgIFtjb250ZXh0LCBob3N0U2VjdGlvbiwgYmFubmVyRW50cnlGYXEsIGluaXRpYWxEcmFmdCwgaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnNdXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHbG9iYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm92aWRlclZhbHVlfT5cbiAgICAgICAgPENoYXRBSU1vZGFsIC8+XG4gICAgICA8L0dsb2JhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9LFxuICBGZWF0dXJlcy5DSEFUX0FJXG4pXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUN6RSxTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFJaEYsU0FBU0MsV0FBVyxRQUFRLDZCQUE2QjtBQUN6RCxTQUFTQyxhQUFhLFFBQTRELGlDQUFpQztBQUNuSCxTQUFTQyxRQUFRLFFBQVEsbUNBQW1DO0FBQzVELFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FBU0MsaUJBQWlCLEVBQUVDLGlCQUFpQixRQUFRLGdCQUFnQjtBQUNyRSxTQUFTQyxvQkFBb0IsUUFBUSw0Q0FBNEM7QUFDakYsU0FBU0MscUNBQXFDLFFBQVEsOENBQThDO0FBQ3BHLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFDbkQsU0FBU0MseUJBQXlCLFFBQXVELDZCQUE2QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQW1CdEgsSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsR0FBc0MsRUFBNEI7RUFBQSxJQUFBQyxVQUFBLEVBQUFDLGFBQUE7RUFDakcsSUFBTUMsRUFBRSxHQUFHSCxHQUFHLGFBQUhBLEdBQUcsZ0JBQUFDLFVBQUEsR0FBSEQsR0FBRyxDQUFFSSxLQUFLLGNBQUFILFVBQUEsdUJBQVZBLFVBQUEsQ0FBWUksSUFBSSxDQUFDLENBQUM7RUFDN0IsSUFBTUMsS0FBSyxHQUFHTixHQUFHLGFBQUhBLEdBQUcsZ0JBQUFFLGFBQUEsR0FBSEYsR0FBRyxDQUFFTyxRQUFRLGNBQUFMLGFBQUEsdUJBQWJBLGFBQUEsQ0FBZUcsSUFBSSxDQUFDLENBQUM7RUFDbkMsSUFBSSxDQUFDQyxLQUFLLEVBQUU7SUFDVixPQUFPLElBQUk7RUFDYjtFQUNBLElBQU1FLFdBQVcsR0FBRyxDQUFBUixHQUFHLGFBQUhBLEdBQUcsdUJBQUhBLEdBQUcsQ0FBRVEsV0FBVyxLQUFJLElBQUksSUFBSUMsT0FBQSxDQUFPVCxHQUFHLENBQUNRLFdBQVcsTUFBSyxRQUFRLEdBQUdSLEdBQUcsQ0FBQ1EsV0FBVyxHQUFHRSxTQUFTO0VBQ2pILE9BQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNNUixFQUFFLEdBQUc7SUFBRUMsS0FBSyxFQUFFRDtFQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0JJLFFBQVEsRUFBRUQ7RUFBSyxHQUNYRSxXQUFXLEdBQUc7SUFBRUEsV0FBVyxFQUFYQTtFQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFMUMsQ0FBQztBQUVELE9BQU8sSUFBTUksTUFBTSxHQUFHdEIsVUFBVSxDQUM5QixVQUFBdUIsSUFBQSxFQVVtQjtFQUFBLElBQUFDLHFCQUFBO0VBQUEsSUFUVEMsYUFBYSxHQUFBRixJQUFBLENBQXJCRyxNQUFNO0lBQ0dDLGNBQWMsR0FBQUosSUFBQSxDQUF2QkssT0FBTztJQUNDQyxhQUFhLEdBQUFOLElBQUEsQ0FBckJPLE1BQU07SUFDQUMsV0FBVyxHQUFBUixJQUFBLENBQWpCUyxJQUFJO0lBQUFDLG1CQUFBLEdBQUFWLElBQUEsQ0FDSlcsY0FBYztJQUFkQSxjQUFjLEdBQUFELG1CQUFBLGNBQUcsS0FBSyxHQUFBQSxtQkFBQTtJQUFBRSxZQUFBLEdBQUFaLElBQUEsQ0FDdEJhLE9BQU87SUFBRUMsY0FBYyxHQUFBRixZQUFBLGNBQUcsUUFBUSxHQUFBQSxZQUFBO0lBQUFHLFFBQUEsR0FBQWYsSUFBQSxDQUNsQ2IsR0FBRztJQUFFNkIsY0FBYyxHQUFBRCxRQUFBLGNBQUcsSUFBSSxHQUFBQSxRQUFBO0lBQUFFLGlCQUFBLEdBQUFqQixJQUFBLENBQzFCa0IsWUFBWTtJQUFFQyxnQkFBZ0IsR0FBQUYsaUJBQUEsY0FBRyxJQUFJLEdBQUFBLGlCQUFBO0lBQUFHLHFCQUFBLEdBQUFwQixJQUFBLENBQ3JDcUIseUJBQXlCO0lBQUVDLGdDQUFnQyxHQUFBRixxQkFBQSxjQUFHLEVBQUUsR0FBQUEscUJBQUE7RUFFaEUsSUFBTUcsSUFBSSxHQUFHekMsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBTTBDLG1CQUFtQixHQUFHNUMsb0JBQW9CLENBQUMyQyxJQUFJLENBQUNqQyxFQUFFLENBQUM7RUFDekQsSUFBTW1DLGdCQUFnQixHQUFHRCxtQkFBbUIsYUFBbkJBLG1CQUFtQixlQUFuQkEsbUJBQW1CLENBQUVFLFVBQVUsR0FBR0YsbUJBQW1CLENBQUNHLFdBQVcsR0FBRzlCLFNBQVM7RUFFdEcsSUFBQStCLFNBQUEsR0FBc0MzRCxRQUFRLENBQWtCO01BQUEsSUFBQTRELHFCQUFBO01BQUEsUUFBQUEscUJBQUEsR0FBTUosZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsdUJBQWhCQSxnQkFBZ0IsQ0FBRVosT0FBTyxjQUFBZ0IscUJBQUEsY0FBQUEscUJBQUEsR0FBSWYsY0FBYztJQUFBLEVBQUM7SUFBQWdCLFVBQUEsR0FBQUMsY0FBQSxDQUFBSCxTQUFBO0lBQTNHSSxXQUFXLEdBQUFGLFVBQUE7SUFBRUcsY0FBYyxHQUFBSCxVQUFBO0VBQ2xDLElBQUFJLFVBQUEsR0FBb0NqRSxRQUFRLENBQUNpQyxhQUFhLENBQUM7SUFBQWlDLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQXBERSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUFHLFVBQUEsR0FBc0NyRSxRQUFRLENBQXdCK0MsY0FBYyxDQUFDO0lBQUF1QixVQUFBLEdBQUFSLGNBQUEsQ0FBQU8sVUFBQTtJQUE5RUUsV0FBVyxHQUFBRCxVQUFBO0lBQUVFLGNBQWMsR0FBQUYsVUFBQTtFQUNsQyxJQUFBRyxVQUFBLEdBQXdEekUsUUFBUSxDQUFnQmtELGdCQUFnQixDQUFDO0lBQUF3QixVQUFBLEdBQUFaLGNBQUEsQ0FBQVcsVUFBQTtJQUExRkUsb0JBQW9CLEdBQUFELFVBQUE7SUFBRUUsdUJBQXVCLEdBQUFGLFVBQUE7RUFDcEQsSUFBQUcsVUFBQSxHQUEwRTdFLFFBQVEsQ0FBQ3FELGdDQUFnQyxDQUFDO0lBQUF5QixVQUFBLEdBQUFoQixjQUFBLENBQUFlLFVBQUE7SUFBN0dFLDZCQUE2QixHQUFBRCxVQUFBO0lBQUVFLGdDQUFnQyxHQUFBRixVQUFBO0VBQ3RFLElBQUFHLFVBQUEsR0FBb0NqRixRQUFRLENBQWdCO01BQUEsSUFBQWtGLEtBQUEsRUFBQUMscUJBQUE7TUFBQSxRQUFBRCxLQUFBLElBQUFDLHFCQUFBLEdBQU0zQixnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFbEIsTUFBTSxjQUFBNkMscUJBQUEsY0FBQUEscUJBQUEsR0FBSTlDLGFBQWEsY0FBQTZDLEtBQUEsY0FBQUEsS0FBQSxHQUFJLElBQUk7SUFBQSxFQUFDO0lBQUFFLFdBQUEsR0FBQXRCLGNBQUEsQ0FBQW1CLFVBQUE7SUFBN0dJLFVBQVUsR0FBQUQsV0FBQTtJQUFFRSxhQUFhLEdBQUFGLFdBQUE7RUFDaEMsSUFBQUcsV0FBQSxHQUFnQ3ZGLFFBQVEsQ0FBYztNQUFBLElBQUF3RixLQUFBLEVBQUFDLHFCQUFBO01BQUEsUUFBQUQsS0FBQSxJQUFBQyxxQkFBQSxHQUFNakMsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsdUJBQWhCQSxnQkFBZ0IsQ0FBRWhCLElBQUksY0FBQWlELHFCQUFBLGNBQUFBLHFCQUFBLEdBQUlsRCxXQUFXLGNBQUFpRCxLQUFBLGNBQUFBLEtBQUEsR0FBSSxJQUFJO0lBQUEsRUFBQztJQUFBRSxXQUFBLEdBQUE1QixjQUFBLENBQUF5QixXQUFBO0lBQW5HSSxRQUFRLEdBQUFELFdBQUE7SUFBRUUsV0FBVyxHQUFBRixXQUFBO0VBRTVCLElBQU1HLG1CQUFtQixJQUFBN0QscUJBQUEsR0FDdkJ3QixnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFcEIsT0FBTyxjQUFBSixxQkFBQSxjQUFBQSxxQkFBQSxHQUFLK0IsV0FBVyxLQUFLLFNBQVMsSUFBSUEsV0FBVyxLQUFLLE1BQU0sR0FBRzVCLGNBQWMsR0FBRyxJQUFLO0VBQzVHLElBQUEyRCxXQUFBLEdBQThCOUYsUUFBUSxDQUFpQjZGLG1CQUFtQixDQUFDO0lBQUFFLFdBQUEsR0FBQWpDLGNBQUEsQ0FBQWdDLFdBQUE7SUFBcEUxRCxPQUFPLEdBQUEyRCxXQUFBO0lBQUVDLFVBQVUsR0FBQUQsV0FBQTtFQUUxQjdGLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNkQsV0FBVyxLQUFLLFNBQVMsSUFBSUEsV0FBVyxLQUFLLE1BQU0sS0FBSzVCLGNBQWMsSUFBSSxJQUFJLEVBQUU7TUFDbkY2RCxVQUFVLENBQUM3RCxjQUFjLENBQUM7SUFDNUI7RUFDRixDQUFDLEVBQUUsQ0FBQzRCLFdBQVcsRUFBRTVCLGNBQWMsQ0FBQyxDQUFDO0VBRWpDLElBQUE4RCxxQkFBQSxHQUFvQjdGLHVCQUF1QixDQUFDO01BQzFDd0MsT0FBTyxFQUFFbUIsV0FBVztNQUNwQjdCLE1BQU0sRUFBRWlDLFVBQVU7TUFDbEIvQixPQUFPLEVBQVBBLE9BQU87TUFDUDRELFVBQVUsRUFBVkEsVUFBVTtNQUNWMUQsTUFBTSxFQUFFeUIsV0FBVyxLQUFLLFFBQVEsR0FBR3NCLFVBQVUsR0FBR3pELFNBQVM7TUFDekRZLElBQUksRUFBRXVCLFdBQVcsS0FBSyxNQUFNLEdBQUc0QixRQUFRLEdBQUcvRCxTQUFTO01BQ25EYyxjQUFjLEVBQWRBO0lBQ0YsQ0FBQyxDQUFDO0lBUk13RCxPQUFPLEdBQUFELHFCQUFBLENBQVBDLE9BQU87RUFTZixJQUFNQyxzQkFBc0IsR0FBR3BHLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFFNUNHLFNBQVMsQ0FBQyxZQUFNO0lBQ2RPLGlCQUFpQixDQUFDLENBQUM7SUFDbkJHLHFDQUFxQyxDQUFDLENBQUM7SUFDdkMsT0FBTyxZQUFNO01BQ1h1RixzQkFBc0IsQ0FBQ0MsT0FBTyxHQUFHLEtBQUs7TUFDdEMxRixpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQzRDLElBQUksQ0FBQ2pDLEVBQUUsRUFBRWlDLElBQUksQ0FBQytDLFVBQVUsRUFBRXhELGNBQWMsQ0FBQyxDQUFDO0VBRTlDLElBQU15RCxtQkFBbUIsR0FBR25HLFdBQVcsQ0FBQyxVQUFDb0csTUFBMEIsRUFBSztJQUFBLElBQUFDLFdBQUEsRUFBQUMsb0JBQUE7SUFDdEV6QyxjQUFjLENBQUN1QyxNQUFNLENBQUMzRCxPQUFPLENBQUM7SUFDOUJ3QixhQUFhLENBQUNtQyxNQUFNLENBQUNyRSxNQUFNLENBQUM7SUFDNUJzQyxjQUFjLEVBQUFnQyxXQUFBLEdBQUNELE1BQU0sQ0FBQ3JGLEdBQUcsY0FBQXNGLFdBQUEsY0FBQUEsV0FBQSxHQUFJLElBQUksQ0FBQztJQUNsQzVCLHVCQUF1QixFQUFBNkIsb0JBQUEsR0FBQ0YsTUFBTSxDQUFDdEQsWUFBWSxjQUFBd0Qsb0JBQUEsY0FBQUEsb0JBQUEsR0FBSSxJQUFJLENBQUM7SUFDcEQsSUFBSUYsTUFBTSxDQUFDbkQseUJBQXlCLElBQUksSUFBSSxFQUFFO01BQzVDNEIsZ0NBQWdDLENBQUN1QixNQUFNLENBQUNuRCx5QkFBeUIsQ0FBQztJQUNwRTtJQUVBLElBQUltRCxNQUFNLENBQUMzRCxPQUFPLEtBQUssU0FBUyxJQUFJMkQsTUFBTSxDQUFDM0QsT0FBTyxLQUFLLE1BQU0sRUFBRTtNQUFBLElBQUE4RCxlQUFBO01BQzdEVixVQUFVLEVBQUFVLGVBQUEsR0FBQ0gsTUFBTSxDQUFDbkUsT0FBTyxjQUFBc0UsZUFBQSxjQUFBQSxlQUFBLEdBQUksSUFBSSxDQUFDO0lBQ3BDLENBQUMsTUFBTTtNQUNMVixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCO0lBRUEsSUFBSU8sTUFBTSxDQUFDM0QsT0FBTyxLQUFLLFFBQVEsRUFBRTtNQUFBLElBQUErRCxjQUFBO01BQy9CckIsYUFBYSxFQUFBcUIsY0FBQSxHQUFDSixNQUFNLENBQUNqRSxNQUFNLGNBQUFxRSxjQUFBLGNBQUFBLGNBQUEsR0FBSSxJQUFJLENBQUM7SUFDdEMsQ0FBQyxNQUFNLElBQUlKLE1BQU0sQ0FBQzNELE9BQU8sS0FBSyxRQUFRLElBQUkyRCxNQUFNLENBQUMzRCxPQUFPLEtBQUssU0FBUyxFQUFFO01BQ3RFMEMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNyQjtJQUVBLElBQUlpQixNQUFNLENBQUMzRCxPQUFPLEtBQUssTUFBTSxFQUFFO01BQUEsSUFBQWdFLFlBQUE7TUFDN0JoQixXQUFXLEVBQUFnQixZQUFBLEdBQUNMLE1BQU0sQ0FBQy9ELElBQUksY0FBQW9FLFlBQUEsY0FBQUEsWUFBQSxHQUFJLElBQUksQ0FBQztJQUNsQyxDQUFDLE1BQU07TUFDTGhCLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDbkI7RUFDRixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4xRixTQUFTLENBQUMsWUFBTTtJQUNkLElBQU0yRyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLEtBQVksRUFBSztNQUN2QyxJQUFBQyxLQUFBLEdBQW1CRCxLQUFLO1FBQWhCUCxNQUFNLEdBQUFRLEtBQUEsQ0FBTlIsTUFBTTtNQUNkLElBQUksQ0FBQ0EsTUFBTSxFQUFFO01BQ2JELG1CQUFtQixDQUFDQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVEUyxRQUFRLENBQUNDLGdCQUFnQixDQUFDbkcseUJBQXlCLEVBQUUrRixjQUFjLENBQUM7SUFDcEUsT0FBTyxZQUFNO01BQ1hHLFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUNwRyx5QkFBeUIsRUFBRStGLGNBQWMsQ0FBQztJQUN6RSxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNQLG1CQUFtQixDQUFDLENBQUM7RUFFekIsSUFBTWEsY0FBYyxHQUFHbEgsT0FBTyxDQUM1QjtJQUFBLE9BQU1nQix1QkFBdUIsQ0FBQ3NELFdBQVcsQ0FBQztFQUFBLEdBQzFDLENBQUNBLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFakQsS0FBSyxFQUFFaUQsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUU5QyxRQUFRLEVBQUU4QyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRTdDLFdBQVcsQ0FDdEUsQ0FBQztFQUVELElBQU11QixZQUFZLEdBQUdoRCxPQUFPLENBQUMsWUFBTTtJQUNqQyxJQUFNbUgsS0FBSyxHQUFHekMsb0JBQW9CLGFBQXBCQSxvQkFBb0IsdUJBQXBCQSxvQkFBb0IsQ0FBRXBELElBQUksQ0FBQyxDQUFDO0lBQzFDLE9BQU82RixLQUFLLElBQUksSUFBSTtFQUN0QixDQUFDLEVBQUUsQ0FBQ3pDLG9CQUFvQixDQUFDLENBQUM7RUFFMUIsSUFBTTBDLGFBQWEsR0FBR3BILE9BQU8sQ0FDM0I7SUFBQSxPQUFBNEIsYUFBQSxDQUFBQSxhQUFBLEtBQ0txRSxPQUFPO01BQ1Z0RCxPQUFPLEVBQUVtQixXQUFXO01BQ3BCb0QsY0FBYyxFQUFkQSxjQUFjO01BQ2RsRSxZQUFZLEVBQVpBLFlBQVk7TUFDWmtELHNCQUFzQixFQUF0QkEsc0JBQXNCO01BQ3RCL0MseUJBQXlCLEVBQUUyQjtJQUE2QjtFQUFBLENBQ3hELEVBQ0YsQ0FBQ21CLE9BQU8sRUFBRW5DLFdBQVcsRUFBRW9ELGNBQWMsRUFBRWxFLFlBQVksRUFBRThCLDZCQUE2QixDQUNwRixDQUFDO0VBRUQsb0JBQ0UvRCxJQUFBLENBQUNWLGFBQWEsQ0FBQ2dILFFBQVE7SUFBQ0MsS0FBSyxFQUFFRixhQUFjO0lBQUFHLFFBQUEsZUFDM0N4RyxJQUFBLENBQUNYLFdBQVcsSUFBRTtFQUFDLENBQ08sQ0FBQztBQUU3QixDQUFDLEVBQ0RFLFFBQVEsQ0FBQ2tILE9BQ1gsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
185
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiQ2hhdEFJTW9kYWwiLCJHbG9iYWxDb250ZXh0IiwiRmVhdHVyZXMiLCJ3aXRoQXBwQ2ZnIiwiYWNxdWlyZUNoYXRzU3RvcmUiLCJyZWxlYXNlQ2hhdHNTdG9yZSIsInVzZVVzYWdlU3RvcmUiLCJyZWFkTWFpYVBhbmVsU2Vzc2lvbiIsImVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQiLCJ1c2VVc2VyIiwiTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCIsImpzeCIsIl9qc3giLCJub3JtYWxpemVCYW5uZXJFbnRyeUZhcSIsImZhcSIsIl9mYXEkZmFxSWQiLCJfZmFxJGZhcVRpdGxlIiwiaWQiLCJmYXFJZCIsInRyaW0iLCJ0aXRsZSIsImZhcVRpdGxlIiwiY29udGV4dERhdGEiLCJfdHlwZW9mIiwidW5kZWZpbmVkIiwiX29iamVjdFNwcmVhZCIsIkNoYXRBSSIsIl9yZWYiLCJfc2F2ZWRIb3N0Q29udGV4dCRwcm8iLCJpbml0aWFsRW50aXR5IiwiZW50aXR5IiwiaW5pdGlhbFByb2plY3QiLCJwcm9qZWN0IiwiaW5pdGlhbENsaWVudCIsImNsaWVudCIsImluaXRpYWxUYXNrIiwidGFzayIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsIl9yZWYkc2VjdGlvbiIsInNlY3Rpb24iLCJpbml0aWFsU2VjdGlvbiIsIl9yZWYkZmFxIiwiaW5pdGlhbEZhcVByb3AiLCJfcmVmJGluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdFByb3AiLCJfcmVmJG1pbmltaXplZFBpbGxBdm8iLCJtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzIiwiaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJ1c2VyIiwic2F2ZWRTZXNzaW9uT25Nb3VudCIsInNhdmVkSG9zdENvbnRleHQiLCJpc0V4cGFuZGVkIiwiaG9zdENvbnRleHQiLCJfdXNlU3RhdGUiLCJfc2F2ZWRIb3N0Q29udGV4dCRzZWMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJob3N0U2VjdGlvbiIsInNldEhvc3RTZWN0aW9uIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJob3N0RW50aXR5Iiwic2V0SG9zdEVudGl0eSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaG9zdEZhcVByb3AiLCJzZXRIb3N0RmFxUHJvcCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaG9zdEluaXRpYWxEcmFmdFByb3AiLCJzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJzZXRIb3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsIl91c2VTdGF0ZTEiLCJfcmVmMiIsIl9zYXZlZEhvc3RDb250ZXh0JGNsaSIsIl91c2VTdGF0ZTEwIiwiaG9zdENsaWVudCIsInNldEhvc3RDbGllbnQiLCJfdXNlU3RhdGUxMSIsIl9yZWYzIiwiX3NhdmVkSG9zdENvbnRleHQkdGFzIiwiX3VzZVN0YXRlMTIiLCJob3N0VGFzayIsInNldEhvc3RUYXNrIiwiaW5pdGlhbFByb2plY3RWYWx1ZSIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzZXRQcm9qZWN0IiwiX3VzZVByb2plY3RTdW1tYXJ5Q29uIiwiY29udGV4dCIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJnZXRTdGF0ZSIsImZldGNoVXNhZ2UiLCJjdXJyZW50IiwicmVzZXQiLCJjb21wYW55X2lkIiwiYXBwbHlIb3N0T3BlbkRldGFpbCIsImRldGFpbCIsIl9kZXRhaWwkZmFxIiwiX2RldGFpbCRpbml0aWFsRHJhZnQiLCJfZGV0YWlsJHByb2plY3QiLCJfZGV0YWlsJGNsaWVudCIsIl9kZXRhaWwkdGFzayIsIm9uT3BlbkZyb21Ib3N0IiwiZXZlbnQiLCJfcmVmNCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJiYW5uZXJFbnRyeUZhcSIsImRyYWZ0IiwicHJvdmlkZXJWYWx1ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsIkNIQVRfQUkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJL0NoYXRBSS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdFN1bW1hcnlDb25maWcgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VQcm9qZWN0U3VtbWFyeUNvbmZpZydcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL1Rhc2snXG5pbXBvcnQgeyBDaGF0QUlNb2RhbCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbCdcbmltcG9ydCB7IEdsb2JhbENvbnRleHQsIHR5cGUgQmFubmVyRW50cnlGYXEsIHR5cGUgTWluaW1pemVkUGlsbEF2b2lkQW5jaG9yIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEZlYXR1cmVzIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEZlYXR1cmVWYWxpZGF0aW9uJ1xuaW1wb3J0IHsgd2l0aEFwcENmZyB9IGZyb20gJy4uLy4uL2F0b21zL1dpdGhBcHBDZmcnXG5pbXBvcnQgeyBhY3F1aXJlQ2hhdHNTdG9yZSwgcmVsZWFzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSdcbmltcG9ydCB7IHVzZVVzYWdlU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VVc2FnZVN0b3JlJ1xuaW1wb3J0IHsgcmVhZE1haWFQYW5lbFNlc3Npb24gfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9tYWlhUGFuZWxTZXNzaW9uUGVyc2lzdGVuY2UnXG5pbXBvcnQgeyBlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvbk5vdGlmaWNhdGlvbnMnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIHR5cGUgTWFpYUhvc3RPcGVuRGV0YWlsLCB0eXBlIE1haWFIb3N0U2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21haWFIb3N0T3BlbidcblxudHlwZSBDaGF0QUlQcm9wcyA9IHtcbiAgZW50aXR5OiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHRhc2s/OiBUYXNrIHwgbnVsbFxuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbiAgc2VjdGlvbj86IE1haWFIb3N0U2VjdGlvblxuICAvKiogQmFubmVyIC8gaG9zdDogYWJyZSBlbCBjaGF0IGVudmlhbmRvIGxhIEZBUSBjb21vIG1lbnNhamUgeSBgWC1GYXEtSWRgIGVuIGVsIG9yY2hlc3RyYXRvciAqL1xuICBmYXE/OiBCYW5uZXJFbnRyeUZhcSB8IG51bGxcbiAgaW5pdGlhbERyYWZ0Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogU2VsZWN0b3JlcyBET00gZGVsIGhvc3QgcXVlIGVsIHBpbGwgbWluaW1pemFkbyBkZWJlIGVzcXVpdmFyIGFsIGVzdGFyIHZpc2libGUuICovXG4gIG1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnM/OiBNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JbXVxufVxuXG5jb25zdCBub3JtYWxpemVCYW5uZXJFbnRyeUZhcSA9IChmYXE6IEJhbm5lckVudHJ5RmFxIHwgbnVsbCB8IHVuZGVmaW5lZCk6IEJhbm5lckVudHJ5RmFxIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGlkID0gZmFxPy5mYXFJZD8udHJpbSgpXG4gIGNvbnN0IHRpdGxlID0gZmFxPy5mYXFUaXRsZT8udHJpbSgpXG4gIGlmICghdGl0bGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNvbnRleHREYXRhID0gZmFxPy5jb250ZXh0RGF0YSAhPSBudWxsICYmIHR5cGVvZiBmYXEuY29udGV4dERhdGEgPT09ICdvYmplY3QnID8gZmFxLmNvbnRleHREYXRhIDogdW5kZWZpbmVkXG4gIHJldHVybiB7XG4gICAgLi4uKGlkID8geyBmYXFJZDogaWQgfSA6IHt9KSxcbiAgICBmYXFUaXRsZTogdGl0bGUsXG4gICAgLi4uKGNvbnRleHREYXRhID8geyBjb250ZXh0RGF0YSB9IDoge30pLFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUkgPSB3aXRoQXBwQ2ZnKFxuICAoe1xuICAgIGVudGl0eTogaW5pdGlhbEVudGl0eSxcbiAgICBwcm9qZWN0OiBpbml0aWFsUHJvamVjdCxcbiAgICBjbGllbnQ6IGluaXRpYWxDbGllbnQsXG4gICAgdGFzazogaW5pdGlhbFRhc2ssXG4gICAgaGFzTXVsdGlBZ2VudHMgPSBmYWxzZSxcbiAgICBzZWN0aW9uOiBpbml0aWFsU2VjdGlvbiA9ICdoZWFkZXInLFxuICAgIGZhcTogaW5pdGlhbEZhcVByb3AgPSBudWxsLFxuICAgIGluaXRpYWxEcmFmdDogaW5pdGlhbERyYWZ0UHJvcCA9IG51bGwsXG4gICAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9yczogaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMgPSBbXSxcbiAgfTogQ2hhdEFJUHJvcHMpID0+IHtcbiAgICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gICAgY29uc3Qgc2F2ZWRTZXNzaW9uT25Nb3VudCA9IHJlYWRNYWlhUGFuZWxTZXNzaW9uKHVzZXIuaWQpXG4gICAgY29uc3Qgc2F2ZWRIb3N0Q29udGV4dCA9IHNhdmVkU2Vzc2lvbk9uTW91bnQ/LmlzRXhwYW5kZWQgPyBzYXZlZFNlc3Npb25Pbk1vdW50Lmhvc3RDb250ZXh0IDogdW5kZWZpbmVkXG5cbiAgICBjb25zdCBbaG9zdFNlY3Rpb24sIHNldEhvc3RTZWN0aW9uXSA9IHVzZVN0YXRlPE1haWFIb3N0U2VjdGlvbj4oKCkgPT4gc2F2ZWRIb3N0Q29udGV4dD8uc2VjdGlvbiA/PyBpbml0aWFsU2VjdGlvbilcbiAgICBjb25zdCBbaG9zdEVudGl0eSwgc2V0SG9zdEVudGl0eV0gPSB1c2VTdGF0ZShpbml0aWFsRW50aXR5KVxuICAgIGNvbnN0IFtob3N0RmFxUHJvcCwgc2V0SG9zdEZhcVByb3BdID0gdXNlU3RhdGU8QmFubmVyRW50cnlGYXEgfCBudWxsPihpbml0aWFsRmFxUHJvcClcbiAgICBjb25zdCBbaG9zdEluaXRpYWxEcmFmdFByb3AsIHNldEhvc3RJbml0aWFsRHJhZnRQcm9wXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KGluaXRpYWxEcmFmdFByb3ApXG4gICAgY29uc3QgW2hvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzLCBzZXRIb3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9yc10gPSB1c2VTdGF0ZShpbml0aWFsTWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycylcbiAgICBjb25zdCBbaG9zdENsaWVudCwgc2V0SG9zdENsaWVudF0gPSB1c2VTdGF0ZTxDbGllbnQgfCBudWxsPigoKSA9PiBzYXZlZEhvc3RDb250ZXh0Py5jbGllbnQgPz8gaW5pdGlhbENsaWVudCA/PyBudWxsKVxuICAgIGNvbnN0IFtob3N0VGFzaywgc2V0SG9zdFRhc2tdID0gdXNlU3RhdGU8VGFzayB8IG51bGw+KCgpID0+IHNhdmVkSG9zdENvbnRleHQ/LnRhc2sgPz8gaW5pdGlhbFRhc2sgPz8gbnVsbClcblxuICAgIGNvbnN0IGluaXRpYWxQcm9qZWN0VmFsdWUgPVxuICAgICAgc2F2ZWRIb3N0Q29udGV4dD8ucHJvamVjdCA/PyAoaG9zdFNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBob3N0U2VjdGlvbiA9PT0gJ3Rhc2snID8gaW5pdGlhbFByb2plY3QgOiBudWxsKVxuICAgIGNvbnN0IFtwcm9qZWN0LCBzZXRQcm9qZWN0XSA9IHVzZVN0YXRlPFByb2plY3QgfCBudWxsPihpbml0aWFsUHJvamVjdFZhbHVlKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICgoaG9zdFNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBob3N0U2VjdGlvbiA9PT0gJ3Rhc2snKSAmJiBpbml0aWFsUHJvamVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNldFByb2plY3QoaW5pdGlhbFByb2plY3QpXG4gICAgICB9XG4gICAgfSwgW2hvc3RTZWN0aW9uLCBpbml0aWFsUHJvamVjdF0pXG5cbiAgICBjb25zdCB7IGNvbnRleHQgfSA9IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnKHtcbiAgICAgIHNlY3Rpb246IGhvc3RTZWN0aW9uLFxuICAgICAgZW50aXR5OiBob3N0RW50aXR5LFxuICAgICAgcHJvamVjdCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQ6IGhvc3RTZWN0aW9uID09PSAnY2xpZW50JyA/IGhvc3RDbGllbnQgOiB1bmRlZmluZWQsXG4gICAgICB0YXNrOiBob3N0U2VjdGlvbiA9PT0gJ3Rhc2snID8gaG9zdFRhc2sgOiB1bmRlZmluZWQsXG4gICAgICBoYXNNdWx0aUFnZW50cyxcbiAgICB9KVxuICAgIGNvbnN0IGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgYWNxdWlyZUNoYXRzU3RvcmUoKVxuICAgICAgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCgpXG4gICAgICB1c2VVc2FnZVN0b3JlXG4gICAgICAgIC5nZXRTdGF0ZSgpXG4gICAgICAgIC5mZXRjaFVzYWdlKClcbiAgICAgICAgLmNhdGNoKCgpID0+IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHJlbGVhc2VDaGF0c1N0b3JlKClcbiAgICAgICAgdXNlVXNhZ2VTdG9yZS5nZXRTdGF0ZSgpLnJlc2V0KClcbiAgICAgIH1cbiAgICB9LCBbdXNlci5pZCwgdXNlci5jb21wYW55X2lkLCBpbml0aWFsU2VjdGlvbl0pXG5cbiAgICBjb25zdCBhcHBseUhvc3RPcGVuRGV0YWlsID0gdXNlQ2FsbGJhY2soKGRldGFpbDogTWFpYUhvc3RPcGVuRGV0YWlsKSA9PiB7XG4gICAgICBzZXRIb3N0U2VjdGlvbihkZXRhaWwuc2VjdGlvbilcbiAgICAgIHNldEhvc3RFbnRpdHkoZGV0YWlsLmVudGl0eSlcbiAgICAgIHNldEhvc3RGYXFQcm9wKGRldGFpbC5mYXEgPz8gbnVsbClcbiAgICAgIHNldEhvc3RJbml0aWFsRHJhZnRQcm9wKGRldGFpbC5pbml0aWFsRHJhZnQgPz8gbnVsbClcbiAgICAgIGlmIChkZXRhaWwubWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyAhPSBudWxsKSB7XG4gICAgICAgIHNldEhvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzKGRldGFpbC5taW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzKVxuICAgICAgfVxuXG4gICAgICBpZiAoZGV0YWlsLnNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBkZXRhaWwuc2VjdGlvbiA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIHNldFByb2plY3QoZGV0YWlsLnByb2plY3QgPz8gbnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIH1cblxuICAgICAgaWYgKGRldGFpbC5zZWN0aW9uID09PSAnY2xpZW50Jykge1xuICAgICAgICBzZXRIb3N0Q2xpZW50KGRldGFpbC5jbGllbnQgPz8gbnVsbClcbiAgICAgIH0gZWxzZSBpZiAoZGV0YWlsLnNlY3Rpb24gPT09ICdoZWFkZXInIHx8IGRldGFpbC5zZWN0aW9uID09PSAncGxhbm5lcicpIHtcbiAgICAgICAgc2V0SG9zdENsaWVudChudWxsKVxuICAgICAgfVxuXG4gICAgICBpZiAoZGV0YWlsLnNlY3Rpb24gPT09ICd0YXNrJykge1xuICAgICAgICBzZXRIb3N0VGFzayhkZXRhaWwudGFzayA/PyBudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0SG9zdFRhc2sobnVsbClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBvbk9wZW5Gcm9tSG9zdCA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZXRhaWwgfSA9IGV2ZW50IGFzIEN1c3RvbUV2ZW50PE1haWFIb3N0T3BlbkRldGFpbD5cbiAgICAgICAgaWYgKCFkZXRhaWwpIHJldHVyblxuICAgICAgICBhcHBseUhvc3RPcGVuRGV0YWlsKGRldGFpbClcbiAgICAgIH1cblxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5ULCBvbk9wZW5Gcm9tSG9zdClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCwgb25PcGVuRnJvbUhvc3QpXG4gICAgICB9XG4gICAgfSwgW2FwcGx5SG9zdE9wZW5EZXRhaWxdKVxuXG4gICAgY29uc3QgYmFubmVyRW50cnlGYXEgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gbm9ybWFsaXplQmFubmVyRW50cnlGYXEoaG9zdEZhcVByb3ApLFxuICAgICAgW2hvc3RGYXFQcm9wPy5mYXFJZCwgaG9zdEZhcVByb3A/LmZhcVRpdGxlLCBob3N0RmFxUHJvcD8uY29udGV4dERhdGFdXG4gICAgKVxuXG4gICAgY29uc3QgaW5pdGlhbERyYWZ0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBkcmFmdCA9IGhvc3RJbml0aWFsRHJhZnRQcm9wPy50cmltKClcbiAgICAgIHJldHVybiBkcmFmdCB8fCBudWxsXG4gICAgfSwgW2hvc3RJbml0aWFsRHJhZnRQcm9wXSlcblxuICAgIGNvbnN0IHByb3ZpZGVyVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgc2VjdGlvbjogaG9zdFNlY3Rpb24sXG4gICAgICAgIGJhbm5lckVudHJ5RmFxLFxuICAgICAgICBpbml0aWFsRHJhZnQsXG4gICAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYsXG4gICAgICAgIG1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnM6IGhvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzLFxuICAgICAgfSksXG4gICAgICBbY29udGV4dCwgaG9zdFNlY3Rpb24sIGJhbm5lckVudHJ5RmFxLCBpbml0aWFsRHJhZnQsIGhvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzXVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8R2xvYmFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJvdmlkZXJWYWx1ZX0+XG4gICAgICAgIDxDaGF0QUlNb2RhbCAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfSxcbiAgRmVhdHVyZXMuQ0hBVF9BSVxuKVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQVNBLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxRQUFRLE9BQU87QUFDekUsU0FBU0MsdUJBQXVCLFFBQVEsd0NBQXdDO0FBSWhGLFNBQVNDLFdBQVcsUUFBUSw2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