@projectcor/maia-components 2.30.2-0 → 2.30.3-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 (45) hide show
  1. package/lib/App.js +2 -4
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -73
  3. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +6 -3
  4. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +150 -391
  5. package/lib/components/molecules/ChatAIMessages/newStyles.js +18 -50
  6. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +381 -94
  7. package/lib/components/molecules/MessageFeedback/styles.js +2 -6
  8. package/lib/components/molecules/Sidebar/Sidebar.js +41 -18
  9. package/lib/components/organisms/ChatAI/ChatAI.js +21 -8
  10. package/lib/context/global-context.js +1 -1
  11. package/lib/hooks/useChatManager/useChatManager.js +59 -97
  12. package/lib/hooks/useChatMessages/useChatMessages.js +27 -28
  13. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  14. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +3 -4
  15. package/lib/hooks/useProjectSummaryConfig.js +17 -36
  16. package/lib/lang/br/index.js +31 -237
  17. package/lib/lang/en/index.js +31 -237
  18. package/lib/lang/es/index.js +31 -237
  19. package/lib/lang/fr/index.js +31 -237
  20. package/lib/services/maia/Agents/getAgents.js +25 -21
  21. package/lib/services/maia/Orchestrator/orchestrator.js +7 -9
  22. package/lib/services/utils/mapChatMessages.js +18 -21
  23. package/lib/store/maiaLastChatPersistence.js +3 -4
  24. package/lib/store/maiaPanelSessionPersistence.js +74 -0
  25. package/lib/store/sessions/sessionStreamManager.js +51 -98
  26. package/lib/store/sessions/sessions.types.js +1 -1
  27. package/lib/types/Chat.js +1 -1
  28. package/lib/utils/hitlAnalytics.js +3 -4
  29. package/lib/utils/streamActivityMessages.js +41 -106
  30. package/package.json +1 -1
  31. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +0 -116
  32. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +0 -197
  33. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +0 -157
  34. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +0 -123
  35. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +0 -115
  36. package/lib/components/atoms/ReasoningBlock/index.js +0 -3
  37. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +0 -54
  38. package/lib/dev/DevReasoningTimeline.js +0 -235
  39. package/lib/dev/reasoningTraceMock.js +0 -556
  40. package/lib/hooks/useReasoningTrace/index.js +0 -3
  41. package/lib/hooks/useReasoningTrace/reasoningStore.js +0 -142
  42. package/lib/hooks/useReasoningTrace/useReasoningTrace.js +0 -14
  43. package/lib/types/reasoning.js +0 -2
  44. package/lib/utils/autoApproveStorage.js +0 -26
  45. package/lib/utils/reasoningMappers.js +0 -62
@@ -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 { readMaiaPanelSession } from '../../../store/maiaPanelSessionPersistence';
13
14
  import { ensureSessionNotificationsInitialized } from '../../../store/sessions/sessionNotifications';
14
15
  import { useUser } from '../../../context/cor-user';
15
16
  import { MAIA_OPEN_FROM_HOST_EVENT } from '../../../utils/maiaHostOpen';
@@ -31,6 +32,7 @@ var normalizeBannerEntryFaq = function normalizeBannerEntryFaq(faq) {
31
32
  } : {});
32
33
  };
33
34
  export var ChatAI = withAppCfg(function (_ref) {
35
+ var _savedHostContext$pro;
34
36
  var initialEntity = _ref.entity,
35
37
  initialProject = _ref.project,
36
38
  initialClient = _ref.client,
@@ -45,7 +47,13 @@ export var ChatAI = withAppCfg(function (_ref) {
45
47
  initialDraftProp = _ref$initialDraft === void 0 ? null : _ref$initialDraft,
46
48
  _ref$minimizedPillAvo = _ref.minimizedPillAvoidAnchors,
47
49
  initialMinimizedPillAvoidAnchors = _ref$minimizedPillAvo === void 0 ? [] : _ref$minimizedPillAvo;
48
- var _useState = useState(initialSection),
50
+ var user = useUser();
51
+ var savedSessionOnMount = readMaiaPanelSession(user.id);
52
+ var savedHostContext = savedSessionOnMount !== null && savedSessionOnMount !== void 0 && savedSessionOnMount.isExpanded ? savedSessionOnMount.hostContext : undefined;
53
+ var _useState = useState(function () {
54
+ var _savedHostContext$sec;
55
+ return (_savedHostContext$sec = savedHostContext === null || savedHostContext === void 0 ? void 0 : savedHostContext.section) !== null && _savedHostContext$sec !== void 0 ? _savedHostContext$sec : initialSection;
56
+ }),
49
57
  _useState2 = _slicedToArray(_useState, 2),
50
58
  hostSection = _useState2[0],
51
59
  setHostSection = _useState2[1];
@@ -65,15 +73,21 @@ export var ChatAI = withAppCfg(function (_ref) {
65
73
  _useState0 = _slicedToArray(_useState9, 2),
66
74
  hostMinimizedPillAvoidAnchors = _useState0[0],
67
75
  setHostMinimizedPillAvoidAnchors = _useState0[1];
68
- var _useState1 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
76
+ var _useState1 = useState(function () {
77
+ var _ref2, _savedHostContext$cli;
78
+ return (_ref2 = (_savedHostContext$cli = savedHostContext === null || savedHostContext === void 0 ? void 0 : savedHostContext.client) !== null && _savedHostContext$cli !== void 0 ? _savedHostContext$cli : initialClient) !== null && _ref2 !== void 0 ? _ref2 : null;
79
+ }),
69
80
  _useState10 = _slicedToArray(_useState1, 2),
70
81
  hostClient = _useState10[0],
71
82
  setHostClient = _useState10[1];
72
- var _useState11 = useState(initialTask !== null && initialTask !== void 0 ? initialTask : null),
83
+ var _useState11 = useState(function () {
84
+ var _ref3, _savedHostContext$tas;
85
+ return (_ref3 = (_savedHostContext$tas = savedHostContext === null || savedHostContext === void 0 ? void 0 : savedHostContext.task) !== null && _savedHostContext$tas !== void 0 ? _savedHostContext$tas : initialTask) !== null && _ref3 !== void 0 ? _ref3 : null;
86
+ }),
73
87
  _useState12 = _slicedToArray(_useState11, 2),
74
88
  hostTask = _useState12[0],
75
89
  setHostTask = _useState12[1];
76
- var initialProjectValue = hostSection === 'project' || hostSection === 'task' ? initialProject : null;
90
+ var initialProjectValue = (_savedHostContext$pro = savedHostContext === null || savedHostContext === void 0 ? void 0 : savedHostContext.project) !== null && _savedHostContext$pro !== void 0 ? _savedHostContext$pro : hostSection === 'project' || hostSection === 'task' ? initialProject : null;
77
91
  var _useState13 = useState(initialProjectValue),
78
92
  _useState14 = _slicedToArray(_useState13, 2),
79
93
  project = _useState14[0],
@@ -93,7 +107,6 @@ export var ChatAI = withAppCfg(function (_ref) {
93
107
  hasMultiAgents: hasMultiAgents
94
108
  }),
95
109
  context = _useProjectSummaryCon.context;
96
- var user = useUser();
97
110
  var deepLinkSendPendingRef = useRef(false);
98
111
  useEffect(function () {
99
112
  acquireChatsStore();
@@ -133,8 +146,8 @@ export var ChatAI = withAppCfg(function (_ref) {
133
146
  }, []);
134
147
  useEffect(function () {
135
148
  var onOpenFromHost = function onOpenFromHost(event) {
136
- var _ref2 = event,
137
- detail = _ref2.detail;
149
+ var _ref4 = event,
150
+ detail = _ref4.detail;
138
151
  if (!detail) return;
139
152
  applyHostOpenDetail(detail);
140
153
  };
@@ -164,4 +177,4 @@ export var ChatAI = withAppCfg(function (_ref) {
164
177
  children: /*#__PURE__*/_jsx(ChatAIModal, {})
165
178
  });
166
179
  }, Features.CHAT_AI);
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiQ2hhdEFJTW9kYWwiLCJHbG9iYWxDb250ZXh0IiwiRmVhdHVyZXMiLCJ3aXRoQXBwQ2ZnIiwiYWNxdWlyZUNoYXRzU3RvcmUiLCJyZWxlYXNlQ2hhdHNTdG9yZSIsImVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQiLCJ1c2VVc2VyIiwiTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCIsImpzeCIsIl9qc3giLCJub3JtYWxpemVCYW5uZXJFbnRyeUZhcSIsImZhcSIsIl9mYXEkZmFxSWQiLCJfZmFxJGZhcVRpdGxlIiwiaWQiLCJmYXFJZCIsInRyaW0iLCJ0aXRsZSIsImZhcVRpdGxlIiwiY29udGV4dERhdGEiLCJfdHlwZW9mIiwidW5kZWZpbmVkIiwiX29iamVjdFNwcmVhZCIsIkNoYXRBSSIsIl9yZWYiLCJpbml0aWFsRW50aXR5IiwiZW50aXR5IiwiaW5pdGlhbFByb2plY3QiLCJwcm9qZWN0IiwiaW5pdGlhbENsaWVudCIsImNsaWVudCIsImluaXRpYWxUYXNrIiwidGFzayIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsIl9yZWYkc2VjdGlvbiIsInNlY3Rpb24iLCJpbml0aWFsU2VjdGlvbiIsIl9yZWYkZmFxIiwiaW5pdGlhbEZhcVByb3AiLCJfcmVmJGluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdFByb3AiLCJfcmVmJG1pbmltaXplZFBpbGxBdm8iLCJtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzIiwiaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJob3N0U2VjdGlvbiIsInNldEhvc3RTZWN0aW9uIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJob3N0RW50aXR5Iiwic2V0SG9zdEVudGl0eSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaG9zdEZhcVByb3AiLCJzZXRIb3N0RmFxUHJvcCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaG9zdEluaXRpYWxEcmFmdFByb3AiLCJzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJzZXRIb3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsImhvc3RDbGllbnQiLCJzZXRIb3N0Q2xpZW50IiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImhvc3RUYXNrIiwic2V0SG9zdFRhc2siLCJpbml0aWFsUHJvamVjdFZhbHVlIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNldFByb2plY3QiLCJfdXNlUHJvamVjdFN1bW1hcnlDb24iLCJjb250ZXh0IiwidXNlciIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJjdXJyZW50IiwiY29tcGFueV9pZCIsImFwcGx5SG9zdE9wZW5EZXRhaWwiLCJkZXRhaWwiLCJfZGV0YWlsJGZhcSIsIl9kZXRhaWwkaW5pdGlhbERyYWZ0IiwiX2RldGFpbCRwcm9qZWN0IiwiX2RldGFpbCRjbGllbnQiLCJfZGV0YWlsJHRhc2siLCJvbk9wZW5Gcm9tSG9zdCIsImV2ZW50IiwiX3JlZjIiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYmFubmVyRW50cnlGYXEiLCJkcmFmdCIsInByb3ZpZGVyVmFsdWUiLCJQcm92aWRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJDSEFUX0FJIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSS9DaGF0QUkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUsIHVzZU1lbW8sIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9UYXNrJ1xuaW1wb3J0IHsgQ2hhdEFJTW9kYWwgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwnXG5pbXBvcnQgeyBHbG9iYWxDb250ZXh0LCB0eXBlIEJhbm5lckVudHJ5RmFxLCB0eXBlIE1pbmltaXplZFBpbGxBdm9pZEFuY2hvciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBGZWF0dXJlcyB9IGZyb20gJy4uLy4uL2F0b21zL1dpdGhGZWF0dXJlVmFsaWRhdGlvbidcbmltcG9ydCB7IHdpdGhBcHBDZmcgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoQXBwQ2ZnJ1xuaW1wb3J0IHsgYWNxdWlyZUNoYXRzU3RvcmUsIHJlbGVhc2VDaGF0c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUnXG5pbXBvcnQgeyBlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvbk5vdGlmaWNhdGlvbnMnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIHR5cGUgTWFpYUhvc3RPcGVuRGV0YWlsLCB0eXBlIE1haWFIb3N0U2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21haWFIb3N0T3BlbidcblxudHlwZSBDaGF0QUlQcm9wcyA9IHtcbiAgZW50aXR5OiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHRhc2s/OiBUYXNrIHwgbnVsbFxuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbiAgc2VjdGlvbj86IE1haWFIb3N0U2VjdGlvblxuICAvKiogQmFubmVyIC8gaG9zdDogYWJyZSBlbCBjaGF0IGVudmlhbmRvIGxhIEZBUSBjb21vIG1lbnNhamUgeSBgWC1GYXEtSWRgIGVuIGVsIG9yY2hlc3RyYXRvciAqL1xuICBmYXE/OiBCYW5uZXJFbnRyeUZhcSB8IG51bGxcbiAgaW5pdGlhbERyYWZ0Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogU2VsZWN0b3JlcyBET00gZGVsIGhvc3QgcXVlIGVsIHBpbGwgbWluaW1pemFkbyBkZWJlIGVzcXVpdmFyIGFsIGVzdGFyIHZpc2libGUuICovXG4gIG1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnM/OiBNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JbXVxufVxuXG5jb25zdCBub3JtYWxpemVCYW5uZXJFbnRyeUZhcSA9IChmYXE6IEJhbm5lckVudHJ5RmFxIHwgbnVsbCB8IHVuZGVmaW5lZCk6IEJhbm5lckVudHJ5RmFxIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGlkID0gZmFxPy5mYXFJZD8udHJpbSgpXG4gIGNvbnN0IHRpdGxlID0gZmFxPy5mYXFUaXRsZT8udHJpbSgpXG4gIGlmICghdGl0bGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNvbnRleHREYXRhID0gZmFxPy5jb250ZXh0RGF0YSAhPSBudWxsICYmIHR5cGVvZiBmYXEuY29udGV4dERhdGEgPT09ICdvYmplY3QnID8gZmFxLmNvbnRleHREYXRhIDogdW5kZWZpbmVkXG4gIHJldHVybiB7XG4gICAgLi4uKGlkID8geyBmYXFJZDogaWQgfSA6IHt9KSxcbiAgICBmYXFUaXRsZTogdGl0bGUsXG4gICAgLi4uKGNvbnRleHREYXRhID8geyBjb250ZXh0RGF0YSB9IDoge30pLFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUkgPSB3aXRoQXBwQ2ZnKFxuICAoe1xuICAgIGVudGl0eTogaW5pdGlhbEVudGl0eSxcbiAgICBwcm9qZWN0OiBpbml0aWFsUHJvamVjdCxcbiAgICBjbGllbnQ6IGluaXRpYWxDbGllbnQsXG4gICAgdGFzazogaW5pdGlhbFRhc2ssXG4gICAgaGFzTXVsdGlBZ2VudHMgPSBmYWxzZSxcbiAgICBzZWN0aW9uOiBpbml0aWFsU2VjdGlvbiA9ICdoZWFkZXInLFxuICAgIGZhcTogaW5pdGlhbEZhcVByb3AgPSBudWxsLFxuICAgIGluaXRpYWxEcmFmdDogaW5pdGlhbERyYWZ0UHJvcCA9IG51bGwsXG4gICAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9yczogaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMgPSBbXSxcbiAgfTogQ2hhdEFJUHJvcHMpID0+IHtcbiAgICBjb25zdCBbaG9zdFNlY3Rpb24sIHNldEhvc3RTZWN0aW9uXSA9IHVzZVN0YXRlPE1haWFIb3N0U2VjdGlvbj4oaW5pdGlhbFNlY3Rpb24pXG4gICAgY29uc3QgW2hvc3RFbnRpdHksIHNldEhvc3RFbnRpdHldID0gdXNlU3RhdGUoaW5pdGlhbEVudGl0eSlcbiAgICBjb25zdCBbaG9zdEZhcVByb3AsIHNldEhvc3RGYXFQcm9wXSA9IHVzZVN0YXRlPEJhbm5lckVudHJ5RmFxIHwgbnVsbD4oaW5pdGlhbEZhcVByb3ApXG4gICAgY29uc3QgW2hvc3RJbml0aWFsRHJhZnRQcm9wLCBzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihpbml0aWFsRHJhZnRQcm9wKVxuICAgIGNvbnN0IFtob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycywgc2V0SG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnNdID0gdXNlU3RhdGUoaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMpXG4gICAgY29uc3QgW2hvc3RDbGllbnQsIHNldEhvc3RDbGllbnRdID0gdXNlU3RhdGU8Q2xpZW50IHwgbnVsbD4oaW5pdGlhbENsaWVudCA/PyBudWxsKVxuICAgIGNvbnN0IFtob3N0VGFzaywgc2V0SG9zdFRhc2tdID0gdXNlU3RhdGU8VGFzayB8IG51bGw+KGluaXRpYWxUYXNrID8/IG51bGwpXG5cbiAgICBjb25zdCBpbml0aWFsUHJvamVjdFZhbHVlID0gaG9zdFNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBob3N0U2VjdGlvbiA9PT0gJ3Rhc2snID8gaW5pdGlhbFByb2plY3QgOiBudWxsXG4gICAgY29uc3QgW3Byb2plY3QsIHNldFByb2plY3RdID0gdXNlU3RhdGU8UHJvamVjdCB8IG51bGw+KGluaXRpYWxQcm9qZWN0VmFsdWUpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKChob3N0U2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IGhvc3RTZWN0aW9uID09PSAndGFzaycpICYmIGluaXRpYWxQcm9qZWN0ICE9IG51bGwpIHtcbiAgICAgICAgc2V0UHJvamVjdChpbml0aWFsUHJvamVjdClcbiAgICAgIH1cbiAgICB9LCBbaG9zdFNlY3Rpb24sIGluaXRpYWxQcm9qZWN0XSlcblxuICAgIGNvbnN0IHsgY29udGV4dCB9ID0gdXNlUHJvamVjdFN1bW1hcnlDb25maWcoe1xuICAgICAgc2VjdGlvbjogaG9zdFNlY3Rpb24sXG4gICAgICBlbnRpdHk6IGhvc3RFbnRpdHksXG4gICAgICBwcm9qZWN0LFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIGNsaWVudDogaG9zdFNlY3Rpb24gPT09ICdjbGllbnQnID8gaG9zdENsaWVudCA6IHVuZGVmaW5lZCxcbiAgICAgIHRhc2s6IGhvc3RTZWN0aW9uID09PSAndGFzaycgPyBob3N0VGFzayA6IHVuZGVmaW5lZCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgIH0pXG4gICAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICAgIGNvbnN0IGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgYWNxdWlyZUNoYXRzU3RvcmUoKVxuICAgICAgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCgpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICByZWxlYXNlQ2hhdHNTdG9yZSgpXG4gICAgICB9XG4gICAgfSwgW3VzZXIuaWQsIHVzZXIuY29tcGFueV9pZCwgaW5pdGlhbFNlY3Rpb25dKVxuXG4gICAgY29uc3QgYXBwbHlIb3N0T3BlbkRldGFpbCA9IHVzZUNhbGxiYWNrKChkZXRhaWw6IE1haWFIb3N0T3BlbkRldGFpbCkgPT4ge1xuICAgICAgc2V0SG9zdFNlY3Rpb24oZGV0YWlsLnNlY3Rpb24pXG4gICAgICBzZXRIb3N0RW50aXR5KGRldGFpbC5lbnRpdHkpXG4gICAgICBzZXRIb3N0RmFxUHJvcChkZXRhaWwuZmFxID8/IG51bGwpXG4gICAgICBzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcChkZXRhaWwuaW5pdGlhbERyYWZ0ID8/IG51bGwpXG4gICAgICBpZiAoZGV0YWlsLm1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMgIT0gbnVsbCkge1xuICAgICAgICBzZXRIb3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyhkZXRhaWwubWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycylcbiAgICAgIH1cblxuICAgICAgaWYgKGRldGFpbC5zZWN0aW9uID09PSAncHJvamVjdCcgfHwgZGV0YWlsLnNlY3Rpb24gPT09ICd0YXNrJykge1xuICAgICAgICBzZXRQcm9qZWN0KGRldGFpbC5wcm9qZWN0ID8/IG51bGwpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICB9XG5cbiAgICAgIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgc2V0SG9zdENsaWVudChkZXRhaWwuY2xpZW50ID8/IG51bGwpXG4gICAgICB9IGVsc2UgaWYgKGRldGFpbC5zZWN0aW9uID09PSAnaGVhZGVyJyB8fCBkZXRhaWwuc2VjdGlvbiA9PT0gJ3BsYW5uZXInKSB7XG4gICAgICAgIHNldEhvc3RDbGllbnQobnVsbClcbiAgICAgIH1cblxuICAgICAgaWYgKGRldGFpbC5zZWN0aW9uID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0SG9zdFRhc2soZGV0YWlsLnRhc2sgPz8gbnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEhvc3RUYXNrKG51bGwpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgb25PcGVuRnJvbUhvc3QgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZGV0YWlsIH0gPSBldmVudCBhcyBDdXN0b21FdmVudDxNYWlhSG9zdE9wZW5EZXRhaWw+XG4gICAgICAgIGlmICghZGV0YWlsKSByZXR1cm5cbiAgICAgICAgYXBwbHlIb3N0T3BlbkRldGFpbChkZXRhaWwpXG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCwgb25PcGVuRnJvbUhvc3QpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIG9uT3BlbkZyb21Ib3N0KVxuICAgICAgfVxuICAgIH0sIFthcHBseUhvc3RPcGVuRGV0YWlsXSlcblxuICAgIGNvbnN0IGJhbm5lckVudHJ5RmFxID0gdXNlTWVtbyhcbiAgICAgICgpID0+IG5vcm1hbGl6ZUJhbm5lckVudHJ5RmFxKGhvc3RGYXFQcm9wKSxcbiAgICAgIFtob3N0RmFxUHJvcD8uZmFxSWQsIGhvc3RGYXFQcm9wPy5mYXFUaXRsZSwgaG9zdEZhcVByb3A/LmNvbnRleHREYXRhXVxuICAgIClcblxuICAgIGNvbnN0IGluaXRpYWxEcmFmdCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgZHJhZnQgPSBob3N0SW5pdGlhbERyYWZ0UHJvcD8udHJpbSgpXG4gICAgICByZXR1cm4gZHJhZnQgfHwgbnVsbFxuICAgIH0sIFtob3N0SW5pdGlhbERyYWZ0UHJvcF0pXG5cbiAgICBjb25zdCBwcm92aWRlclZhbHVlID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHNlY3Rpb246IGhvc3RTZWN0aW9uLFxuICAgICAgICBiYW5uZXJFbnRyeUZhcSxcbiAgICAgICAgaW5pdGlhbERyYWZ0LFxuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLFxuICAgICAgICBtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzOiBob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyxcbiAgICAgIH0pLFxuICAgICAgW2NvbnRleHQsIGhvc3RTZWN0aW9uLCBiYW5uZXJFbnRyeUZhcSwgaW5pdGlhbERyYWZ0LCBob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9yc11cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEdsb2JhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Byb3ZpZGVyVmFsdWV9PlxuICAgICAgICA8Q2hhdEFJTW9kYWwgLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH0sXG4gIEZlYXR1cmVzLkNIQVRfQUlcbilcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FB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
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==
@@ -36,4 +36,4 @@ export var useGlobalContext = function useGlobalContext() {
36
36
  }
37
37
  return context;
38
38
  };
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDb250ZXh0IiwidXNlQ29udGV4dCIsIkRFRkFVTFRfQUdFTlQiLCJpZCIsIm5hbWUiLCJjcmVhdGVkX2J5IiwiaXNfZGVsZXRlZCIsImNvbXBhbnlfaWQiLCJlbW9qaSIsImludHJvZHVjdGlvbiIsInR5cGUiLCJrbm93bGVkZ2UiLCJpc19pbnRlcm5hbCIsIkdsb2JhbENvbnRleHQiLCJ1c2VHbG9iYWxDb250ZXh0IiwiY29udGV4dCIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgTXV0YWJsZVJlZk9iamVjdCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi90eXBlcy9DbGllbnQnXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdHlwZXMvVGFzaydcbmltcG9ydCB7IENvbmZpZ1NldHRpbmdJdGVtIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zL3R5cGVzJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcblxuY29uc3QgREVGQVVMVF9BR0VOVDogQWdlbnQgPSB7XG4gIGlkOiAnMScsXG4gIG5hbWU6ICdBZ2VudGUgUE0nLFxuICBjcmVhdGVkX2J5OiB7IG5hbWU6ICcxNzQ1NCcsIGlzX2RlbGV0ZWQ6IGZhbHNlIH0sXG4gIGNvbXBhbnlfaWQ6ICcyMzM2JyxcbiAgZW1vamk6ICfwn5OKJyxcbiAgaW50cm9kdWN0aW9uOiBudWxsLFxuICB0eXBlOiAncG0nLFxuICBrbm93bGVkZ2U6IFtdLFxuICBpc19pbnRlcm5hbDogZmFsc2UsXG59XG5cbmV4cG9ydCB7IERFRkFVTFRfQUdFTlQgfVxuXG5leHBvcnQgdHlwZSBDaGlwc1Byb2plY3QgPSB7XG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgY2xpZW50TmFtZTogc3RyaW5nXG4gIHByb2plY3RJZDogc3RyaW5nXG59XG5cbi8qKlxuICogUGluIGRlIGNvbnRleHRvIHBlcnNpc3RlbnRlLCBkZXJpdmFkbyBkZSBgcHJvamVjdGAvYGNsaWVudGAvYHRhc2tgL2BjaGlwc1Byb2plY3RgIChSRkMgwqcxMi4yKS5cbiAqIE1vbm8tY29udGV4dG8gaG95IChsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgYWN0aXZhKTsgZWwgc2NvcGUgaGFjaWEgYXJyaWJhIHZpYWphIGVuIGBwYXJlbnRzYC5cbiAqIExvcyBjb25zdW1pZG9yZXMgZGViZXLDrWFuIGxlZXIgYHBpbm5lZENvbnRleHRgIGVuIHZleiBkZSBsb3MgY2FtcG9zIHN1ZWx0b3MsIHBhcmEgcXVlIGVsIHNhbHRvXG4gKiBmdXR1cm8gYSBtdWx0aS1jb250ZXh0byAoYHBpbnM6IFBpbm5lZENvbnRleHRbXWApIHNlYSBhZGl0aXZvLlxuICovXG5leHBvcnQgdHlwZSBQaW5uZWRDb250ZXh0ID0ge1xuICB0eXBlOiAnY2xpZW50JyB8ICdwcm9qZWN0JyB8ICd0YXNrJ1xuICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xuICBwYXJlbnRzPzogeyBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlcjsgcHJvamVjdElkPzogc3RyaW5nIHwgbnVtYmVyIH1cbn1cblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaycgfCAncGxhbm5lcidcblxuLyoqIEVsZW1lbnRvIGRlbCBob3N0IChDT1Igd2ViKSBxdWUgZWwgcGlsbCBtaW5pbWl6YWRvIGRlYmUgZXNxdWl2YXIuICovXG5leHBvcnQgdHlwZSBNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3IgPSB7XG4gIHNlbGVjdG9yOiBzdHJpbmdcbiAgZ2FwUHg/OiBudW1iZXJcbn1cblxudHlwZSBCYXNlR2xvYmFsQ29udGV4dFR5cGUgPSB7XG4gIHNlY3Rpb246IFNlY3Rpb25cbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBzZWxlY3RBZ2VudDogKGFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBjbGVhckFnZW50OiAoKSA9PiB2b2lkXG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIHNldFByb2plY3Q6IChwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbCkgPT4gdm9pZFxuICBjbGllbnQ6IENsaWVudCB8IG51bGxcbiAgc2V0Q2xpZW50OiAoY2xpZW50OiBDbGllbnQgfCBudWxsKSA9PiB2b2lkXG4gIHRhc2s6IFRhc2sgfCBudWxsXG4gIHNldFRhc2s6ICh0YXNrOiBUYXNrIHwgbnVsbCkgPT4gdm9pZFxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhblxuICB0b2dnbGVXZWJTZWFyY2g6ICgpID0+IHZvaWRcbiAgaXNEZWVwU2VhcmNoQWN0aXZlOiBib29sZWFuXG4gIHRvZ2dsZURlZXBTZWFyY2g6ICgpID0+IHZvaWRcbiAgaXNBdXRvQXBwcm92ZUFjdGl2ZT86IGJvb2xlYW5cbiAgdG9nZ2xlQXV0b0FwcHJvdmU/OiAoKSA9PiB2b2lkXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxuICBjaGlwc1Byb2plY3Q/OiBDaGlwc1Byb2plY3QgfCBudWxsXG4gIHNldENoaXBzUHJvamVjdDogKGNoaXBzUHJvamVjdDogQ2hpcHNQcm9qZWN0IHwgbnVsbCkgPT4gdm9pZFxuICAvKiogUGluIGRlIGNvbnRleHRvIGRlcml2YWRvIChhcnJheS1yZWFkeSwgUkZDIMKnMTIuMSkuIE1vbm8gaG95OyBudWxsIGVuIG1vZG8gZ2xvYmFsLiAqL1xuICBwaW5uZWRDb250ZXh0PzogUGlubmVkQ29udGV4dCB8IG51bGxcbiAgLyoqIEFuY2hvcnMgZGVsIGhvc3QgcGFyYSBwb3NpY2lvbmFyIGVsIHBpbGwgbWluaW1pemFkbyBzaW4gc29sYXBhcnNlIChlai4gXCIrIEFncmVnYXIgdGFyZWFcIikuICovXG4gIG1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnM/OiBNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JbXVxufVxuXG4vKiogRkFRIGlueWVjdGFkYSBwb3IgZWwgaG9zdCAoZWouIGJhbm5lciBkZSBwcm95ZWN0byBlbiBDT1IpIHBhcmEgYWJyaXIgZWwgY2hhdCBjb24gZWwgbWlzbW8gY3JpdGVyaW8gcXVlIHVuIGNsaWMgZW4gRkFRIGVuIGhvbWUuXG4gKiBgZmFxSWRgIGVzIG9wY2lvbmFsOiBjdWFuZG8gbm8gZXhpc3RlIChlai4gbWVuc2FqZSBkZSBkZXN2w61vcyBkZWwgYmFubmVyKSwgZWwgY2hhdCBlbnbDrWEgc29sbyBlbCB0ZXh0byBzaW4gaGVhZGVyIFgtRmFxLUlkLlxuICogYGNvbnRleHREYXRhYCBlcyBvcGNpb25hbDogcGF5bG9hZCBkZWwgYmFubmVyIChkZXN2w61vL23DqXRyaWNhcykgcXVlIHZpYWphIGVuIGVsIGhlYWRlciBgWC1Db250ZXh0LURhdGFgIGRlbCBvcmNoZXN0cmF0b3IgKEpTT04gZW4gYmFzZTY0KS4gKi9cbmV4cG9ydCB0eXBlIEJhbm5lckVudHJ5RmFxID0ge1xuICBmYXFJZD86IHN0cmluZ1xuICBmYXFUaXRsZTogc3RyaW5nXG4gIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuZXhwb3J0IHR5cGUgUHJvamVjdFN1bW1hcnlDb250ZXh0VHlwZSA9IEJhc2VHbG9iYWxDb250ZXh0VHlwZSAmIHtcbiAgY29uZmlndXJlU2V0dGluZ3NJdGVtczogTXV0YWJsZVJlZk9iamVjdDxDb25maWdTZXR0aW5nSXRlbVtdPlxuICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3M6ICgpID0+IHZvaWRcbiAgZW50aXR5VmFsdWVzOiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBzZXRFbnRpdHlWYWx1ZXM6IChlbnRpdHk6IHsgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsOyBjbGllbnRJZDogc3RyaW5nIHwgbnVsbCB9KSA9PiB2b2lkXG4gIC8qKiBTaSB2aWVuZSBkZWZpbmlkYSwgZWwgbW9kYWwgZGlzcGFyYSB1bmEgdmV6IGBzdGFydENoYXQoZmFxVGl0bGUsIFtdLCBmYXFJZClgIGFsIGVzdGFyIGxpc3RvcyBhZ2VudGUgKyBlbnRpZGFkICovXG4gIGJhbm5lckVudHJ5RmFxPzogQmFubmVyRW50cnlGYXEgfCBudWxsXG4gIGluaXRpYWxEcmFmdD86IHN0cmluZyB8IG51bGxcbiAgLyoqXG4gICAqIE9uZS1zaG90OiB0cnVlIGFmdGVyIGVtYWlsIGRlZXAtbGluayBkcmFmdCBpcyBhcHBsaWVkIHRvIHRoZSBjb21wb3Nlci5cbiAgICogQ29uc3VtZWQgb24gZmlyc3QgQUlfQ0hBVF9TRU5EIChgc291cmNlOiAnZGVlcF9saW5rJ2ApOyBjbGVhcmVkIG9uIGNoYXQgc2Vzc2lvbiBjaGFuZ2UgLyBjbG9zZS5cbiAgICovXG4gIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+XG59XG5cbnR5cGUgQWxsb3dlZEdsb2JhbENvbnRleHRUeXBlID0gUHJvamVjdFN1bW1hcnlDb250ZXh0VHlwZVxuXG5leHBvcnQgdHlwZSBHbG9iYWxDb250ZXh0VHlwZTxUIGV4dGVuZHMgQWxsb3dlZEdsb2JhbENvbnRleHRUeXBlID0gQWxsb3dlZEdsb2JhbENvbnRleHRUeXBlPiA9IFQgfCBudWxsXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxHbG9iYWxDb250ZXh0VHlwZT4obnVsbClcblxuZXhwb3J0IGNvbnN0IHVzZUdsb2JhbENvbnRleHQgPSA8VCBleHRlbmRzIEJhc2VHbG9iYWxDb250ZXh0VHlwZSA9IEFsbG93ZWRHbG9iYWxDb250ZXh0VHlwZT4oKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdsb2JhbENvbnRleHQpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHbG9iYWxDb250ZXh0IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHbG9iYWxDb250ZXh0UHJvdmlkZXInKVxuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQgYXMgdW5rbm93biBhcyBUXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBb0JDLFVBQVUsUUFBUSxPQUFPO0FBT25FLElBQU1DLGFBQW9CLEdBQUc7RUFDM0JDLEVBQUUsRUFBRSxHQUFHO0VBQ1BDLElBQUksRUFBRSxXQUFXO0VBQ2pCQyxVQUFVLEVBQUU7SUFBRUQsSUFBSSxFQUFFLE9BQU87SUFBRUUsVUFBVSxFQUFFO0VBQU0sQ0FBQztFQUNoREMsVUFBVSxFQUFFLE1BQU07RUFDbEJDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLFlBQVksRUFBRSxJQUFJO0VBQ2xCQyxJQUFJLEVBQUUsSUFBSTtFQUNWQyxTQUFTLEVBQUUsRUFBRTtFQUNiQyxXQUFXLEVBQUU7QUFDZixDQUFDO0FBRUQsU0FBU1YsYUFBYTs7QUFRdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVVBOztBQWdDQTtBQUNBO0FBQ0E7O0FBNkJBLE9BQU8sSUFBTVcsYUFBYSxnQkFBR2IsYUFBYSxDQUFvQixJQUFJLENBQUM7QUFFbkUsT0FBTyxJQUFNYyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQXFFO0VBQ2hHLElBQU1DLE9BQU8sR0FBR2QsVUFBVSxDQUFDWSxhQUFhLENBQUM7RUFFekMsSUFBSSxDQUFDRSxPQUFPLEVBQUU7SUFDWixNQUFNLElBQUlDLEtBQUssQ0FBQyw4REFBOEQsQ0FBQztFQUNqRjtFQUVBLE9BQU9ELE9BQU87QUFDaEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDb250ZXh0IiwidXNlQ29udGV4dCIsIkRFRkFVTFRfQUdFTlQiLCJpZCIsIm5hbWUiLCJjcmVhdGVkX2J5IiwiaXNfZGVsZXRlZCIsImNvbXBhbnlfaWQiLCJlbW9qaSIsImludHJvZHVjdGlvbiIsInR5cGUiLCJrbm93bGVkZ2UiLCJpc19pbnRlcm5hbCIsIkdsb2JhbENvbnRleHQiLCJ1c2VHbG9iYWxDb250ZXh0IiwiY29udGV4dCIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgTXV0YWJsZVJlZk9iamVjdCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi90eXBlcy9DbGllbnQnXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdHlwZXMvVGFzaydcbmltcG9ydCB7IENvbmZpZ1NldHRpbmdJdGVtIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zL3R5cGVzJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcblxuY29uc3QgREVGQVVMVF9BR0VOVDogQWdlbnQgPSB7XG4gIGlkOiAnMScsXG4gIG5hbWU6ICdBZ2VudGUgUE0nLFxuICBjcmVhdGVkX2J5OiB7IG5hbWU6ICcxNzQ1NCcsIGlzX2RlbGV0ZWQ6IGZhbHNlIH0sXG4gIGNvbXBhbnlfaWQ6ICcyMzM2JyxcbiAgZW1vamk6ICfwn5OKJyxcbiAgaW50cm9kdWN0aW9uOiBudWxsLFxuICB0eXBlOiAncG0nLFxuICBrbm93bGVkZ2U6IFtdLFxuICBpc19pbnRlcm5hbDogZmFsc2UsXG59XG5cbmV4cG9ydCB7IERFRkFVTFRfQUdFTlQgfVxuXG5leHBvcnQgdHlwZSBDaGlwc1Byb2plY3QgPSB7XG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgY2xpZW50TmFtZTogc3RyaW5nXG4gIHByb2plY3RJZDogc3RyaW5nXG59XG5cbi8qKlxuICogUGluIGRlIGNvbnRleHRvIHBlcnNpc3RlbnRlLCBkZXJpdmFkbyBkZSBgcHJvamVjdGAvYGNsaWVudGAvYHRhc2tgL2BjaGlwc1Byb2plY3RgIChSRkMgwqcxMi4yKS5cbiAqIE1vbm8tY29udGV4dG8gaG95IChsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgYWN0aXZhKTsgZWwgc2NvcGUgaGFjaWEgYXJyaWJhIHZpYWphIGVuIGBwYXJlbnRzYC5cbiAqIExvcyBjb25zdW1pZG9yZXMgZGViZXLDrWFuIGxlZXIgYHBpbm5lZENvbnRleHRgIGVuIHZleiBkZSBsb3MgY2FtcG9zIHN1ZWx0b3MsIHBhcmEgcXVlIGVsIHNhbHRvXG4gKiBmdXR1cm8gYSBtdWx0aS1jb250ZXh0byAoYHBpbnM6IFBpbm5lZENvbnRleHRbXWApIHNlYSBhZGl0aXZvLlxuICovXG5leHBvcnQgdHlwZSBQaW5uZWRDb250ZXh0ID0ge1xuICB0eXBlOiAnY2xpZW50JyB8ICdwcm9qZWN0JyB8ICd0YXNrJ1xuICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xuICBwYXJlbnRzPzogeyBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlcjsgcHJvamVjdElkPzogc3RyaW5nIHwgbnVtYmVyIH1cbn1cblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaycgfCAncGxhbm5lcidcblxuLyoqIEVsZW1lbnRvIGRlbCBob3N0IChDT1Igd2ViKSBxdWUgZWwgcGlsbCBtaW5pbWl6YWRvIGRlYmUgZXNxdWl2YXIuICovXG5leHBvcnQgdHlwZSBNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3IgPSB7XG4gIHNlbGVjdG9yOiBzdHJpbmdcbiAgZ2FwUHg/OiBudW1iZXJcbn1cblxudHlwZSBCYXNlR2xvYmFsQ29udGV4dFR5cGUgPSB7XG4gIHNlY3Rpb246IFNlY3Rpb25cbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBzZWxlY3RBZ2VudDogKGFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBjbGVhckFnZW50OiAoKSA9PiB2b2lkXG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIHNldFByb2plY3Q6IChwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbCkgPT4gdm9pZFxuICBjbGllbnQ6IENsaWVudCB8IG51bGxcbiAgc2V0Q2xpZW50OiAoY2xpZW50OiBDbGllbnQgfCBudWxsKSA9PiB2b2lkXG4gIHRhc2s6IFRhc2sgfCBudWxsXG4gIHNldFRhc2s6ICh0YXNrOiBUYXNrIHwgbnVsbCkgPT4gdm9pZFxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhblxuICB0b2dnbGVXZWJTZWFyY2g6ICgpID0+IHZvaWRcbiAgaXNEZWVwU2VhcmNoQWN0aXZlOiBib29sZWFuXG4gIHRvZ2dsZURlZXBTZWFyY2g6ICgpID0+IHZvaWRcbiAgaGFzTXVsdGlBZ2VudHM/OiBib29sZWFuXG4gIGNoaXBzUHJvamVjdD86IENoaXBzUHJvamVjdCB8IG51bGxcbiAgc2V0Q2hpcHNQcm9qZWN0OiAoY2hpcHNQcm9qZWN0OiBDaGlwc1Byb2plY3QgfCBudWxsKSA9PiB2b2lkXG4gIC8qKiBQaW4gZGUgY29udGV4dG8gZGVyaXZhZG8gKGFycmF5LXJlYWR5LCBSRkMgwqcxMi4xKS4gTW9ubyBob3k7IG51bGwgZW4gbW9kbyBnbG9iYWwuICovXG4gIHBpbm5lZENvbnRleHQ/OiBQaW5uZWRDb250ZXh0IHwgbnVsbFxuICAvKiogQW5jaG9ycyBkZWwgaG9zdCBwYXJhIHBvc2ljaW9uYXIgZWwgcGlsbCBtaW5pbWl6YWRvIHNpbiBzb2xhcGFyc2UgKGVqLiBcIisgQWdyZWdhciB0YXJlYVwiKS4gKi9cbiAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycz86IE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcltdXG59XG5cbi8qKiBGQVEgaW55ZWN0YWRhIHBvciBlbCBob3N0IChlai4gYmFubmVyIGRlIHByb3llY3RvIGVuIENPUikgcGFyYSBhYnJpciBlbCBjaGF0IGNvbiBlbCBtaXNtbyBjcml0ZXJpbyBxdWUgdW4gY2xpYyBlbiBGQVEgZW4gaG9tZS5cbiAqIGBmYXFJZGAgZXMgb3BjaW9uYWw6IGN1YW5kbyBubyBleGlzdGUgKGVqLiBtZW5zYWplIGRlIGRlc3bDrW9zIGRlbCBiYW5uZXIpLCBlbCBjaGF0IGVudsOtYSBzb2xvIGVsIHRleHRvIHNpbiBoZWFkZXIgWC1GYXEtSWQuXG4gKiBgY29udGV4dERhdGFgIGVzIG9wY2lvbmFsOiBwYXlsb2FkIGRlbCBiYW5uZXIgKGRlc3bDrW8vbcOpdHJpY2FzKSBxdWUgdmlhamEgZW4gZWwgaGVhZGVyIGBYLUNvbnRleHQtRGF0YWAgZGVsIG9yY2hlc3RyYXRvciAoSlNPTiBlbiBiYXNlNjQpLiAqL1xuZXhwb3J0IHR5cGUgQmFubmVyRW50cnlGYXEgPSB7XG4gIGZhcUlkPzogc3RyaW5nXG4gIGZhcVRpdGxlOiBzdHJpbmdcbiAgY29udGV4dERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxufVxuXG5leHBvcnQgdHlwZSBQcm9qZWN0U3VtbWFyeUNvbnRleHRUeXBlID0gQmFzZUdsb2JhbENvbnRleHRUeXBlICYge1xuICBjb25maWd1cmVTZXR0aW5nc0l0ZW1zOiBNdXRhYmxlUmVmT2JqZWN0PENvbmZpZ1NldHRpbmdJdGVtW10+XG4gIHJlc3RvcmVDb25maWd1cmVTZXR0aW5nczogKCkgPT4gdm9pZFxuICBlbnRpdHlWYWx1ZXM6IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHNldEVudGl0eVZhbHVlczogKGVudGl0eTogeyBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGw7IGNsaWVudElkOiBzdHJpbmcgfCBudWxsIH0pID0+IHZvaWRcbiAgLyoqIFNpIHZpZW5lIGRlZmluaWRhLCBlbCBtb2RhbCBkaXNwYXJhIHVuYSB2ZXogYHN0YXJ0Q2hhdChmYXFUaXRsZSwgW10sIGZhcUlkKWAgYWwgZXN0YXIgbGlzdG9zIGFnZW50ZSArIGVudGlkYWQgKi9cbiAgYmFubmVyRW50cnlGYXE/OiBCYW5uZXJFbnRyeUZhcSB8IG51bGxcbiAgaW5pdGlhbERyYWZ0Pzogc3RyaW5nIHwgbnVsbFxuICAvKipcbiAgICogT25lLXNob3Q6IHRydWUgYWZ0ZXIgZW1haWwgZGVlcC1saW5rIGRyYWZ0IGlzIGFwcGxpZWQgdG8gdGhlIGNvbXBvc2VyLlxuICAgKiBDb25zdW1lZCBvbiBmaXJzdCBBSV9DSEFUX1NFTkQgKGBzb3VyY2U6ICdkZWVwX2xpbmsnYCk7IGNsZWFyZWQgb24gY2hhdCBzZXNzaW9uIGNoYW5nZSAvIGNsb3NlLlxuICAgKi9cbiAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZj86IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj5cbn1cblxudHlwZSBBbGxvd2VkR2xvYmFsQ29udGV4dFR5cGUgPSBQcm9qZWN0U3VtbWFyeUNvbnRleHRUeXBlXG5cbmV4cG9ydCB0eXBlIEdsb2JhbENvbnRleHRUeXBlPFQgZXh0ZW5kcyBBbGxvd2VkR2xvYmFsQ29udGV4dFR5cGUgPSBBbGxvd2VkR2xvYmFsQ29udGV4dFR5cGU+ID0gVCB8IG51bGxcblxuZXhwb3J0IGNvbnN0IEdsb2JhbENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEdsb2JhbENvbnRleHRUeXBlPihudWxsKVxuXG5leHBvcnQgY29uc3QgdXNlR2xvYmFsQ29udGV4dCA9IDxUIGV4dGVuZHMgQmFzZUdsb2JhbENvbnRleHRUeXBlID0gQWxsb3dlZEdsb2JhbENvbnRleHRUeXBlPigpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR2xvYmFsQ29udGV4dClcblxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUdsb2JhbENvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEdsb2JhbENvbnRleHRQcm92aWRlcicpXG4gIH1cblxuICByZXR1cm4gY29udGV4dCBhcyB1bmtub3duIGFzIFRcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxFQUFvQkMsVUFBVSxRQUFRLE9BQU87QUFPbkUsSUFBTUMsYUFBb0IsR0FBRztFQUMzQkMsRUFBRSxFQUFFLEdBQUc7RUFDUEMsSUFBSSxFQUFFLFdBQVc7RUFDakJDLFVBQVUsRUFBRTtJQUFFRCxJQUFJLEVBQUUsT0FBTztJQUFFRSxVQUFVLEVBQUU7RUFBTSxDQUFDO0VBQ2hEQyxVQUFVLEVBQUUsTUFBTTtFQUNsQkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsWUFBWSxFQUFFLElBQUk7RUFDbEJDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLFNBQVMsRUFBRSxFQUFFO0VBQ2JDLFdBQVcsRUFBRTtBQUNmLENBQUM7QUFFRCxTQUFTVixhQUFhOztBQVF0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBVUE7O0FBOEJBO0FBQ0E7QUFDQTs7QUE2QkEsT0FBTyxJQUFNVyxhQUFhLGdCQUFHYixhQUFhLENBQW9CLElBQUksQ0FBQztBQUVuRSxPQUFPLElBQU1jLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBcUU7RUFDaEcsSUFBTUMsT0FBTyxHQUFHZCxVQUFVLENBQUNZLGFBQWEsQ0FBQztFQUV6QyxJQUFJLENBQUNFLE9BQU8sRUFBRTtJQUNaLE1BQU0sSUFBSUMsS0FBSyxDQUFDLDhEQUE4RCxDQUFDO0VBQ2pGO0VBRUEsT0FBT0QsT0FBTztBQUNoQixDQUFDIiwiaWdub3JlTGlzdCI6W119