@projectcor/maia-components 2.11.23-6 → 2.11.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +2 -2
- package/lib/components/atoms/MAIAInput/MAIAInput.js +5 -2
- package/lib/components/atoms/icons/index.js +1 -2
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -16
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +4 -47
- package/lib/components/molecules/Sidebar/Sidebar.js +325 -259
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +23 -18
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +37 -54
- package/lib/dev/Providers.js +2 -2
- package/lib/hooks/useChats/useChats.js +4 -12
- package/lib/lang/br/index.js +2 -11
- package/lib/lang/en/index.js +2 -11
- package/lib/lang/es/index.js +2 -11
- package/lib/lang/fr/index.js +2 -11
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +8 -14
- package/lib/services/maia/Chats/index.js +1 -5
- package/lib/services/maia/client.js +9 -44
- package/lib/store/chatsStore.types.js +2 -10
- package/lib/store/useChatsStore.js +31 -81
- package/lib/types/Chat.js +1 -3
- package/lib/types/global.d.js +1 -1
- package/package.json +1 -1
- package/lib/components/atoms/icons/ChatConversation.js +0 -40
- package/lib/components/molecules/Sidebar/SidebarChats.styles.js +0 -73
- package/lib/components/molecules/Sidebar/SidebarChatsSection.js +0 -69
- package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +0 -151
- package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +0 -238
- package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +0 -70
- package/lib/components/molecules/Sidebar/sidebarChats.types.js +0 -14
- package/lib/dev/fixtures/devUser.js +0 -173
- package/lib/dev/fixtures/mockedUser.js +0 -169
- package/lib/services/maia/Chats/getChatMessagesV2.js +0 -114
- package/lib/services/maia/Chats/getSessionsGroupedV2.js +0 -70
|
@@ -10,5 +10,5 @@ export var SCFBText = styled.span.withConfig({
|
|
|
10
10
|
export var SCFBLink = styled.a.withConfig({
|
|
11
11
|
displayName: "FeedbackButtonstyles__SCFBLink",
|
|
12
12
|
componentId: "sc-13g2i2g-2"
|
|
13
|
-
})(["cursor:pointer
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
13
|
+
})(["cursor:pointer;&:hover{background-color:#f2f2f2;border-radius:8px;transition:background-color 0.2s ease;text-decoration:none !important;}"]);
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ0ZCV3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NGQlRleHQiLCJzcGFuIiwiU0NGQkxpbmsiLCJhIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvRmVlZGJhY2tCdXR0b24vRmVlZGJhY2tCdXR0b24uc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5leHBvcnQgY29uc3QgU0NGQldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogNHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NGQlRleHQgPSBzdHlsZWQuc3BhbmBcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0ZCTGluayA9IHN0eWxlZC5hYFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDREQUtwQztBQUVELE9BQU8sSUFBTUMsUUFBUSxHQUFHTixNQUFNLENBQUNPLElBQUksQ0FBQUosVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxrSUFRbEM7QUFFRCxPQUFPLElBQU1HLFFBQVEsR0FBR1IsTUFBTSxDQUFDUyxDQUFDLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUpBUS9CIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -19,6 +19,7 @@ import { Globe } from '@projectcor/icons/lib/components/Globe';
|
|
|
19
19
|
import { Trash } from '@projectcor/icons/lib/components/Trash';
|
|
20
20
|
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
21
21
|
import { SCMIAttachment, SCMIAttachmentDeleteIcon, SCMIWrapperAttachmentButton, SCMIWrapperWebSearchButton, SCMIWrapperDeepSearchButton, StyledMAIAInput, StyledMAIAInputButtons, StyledMAIAInputWrapper, StyledMAIASendButton, StyledMAIAStopButton, StyledMAIAStopIcon } from './styles';
|
|
22
|
+
import { useUser } from '../../../context/cor-user';
|
|
22
23
|
import { useGlobalContext } from '../../../context/global-context';
|
|
23
24
|
import { ModalFileExceeds } from '../../organisms/ModalFileExceeds';
|
|
24
25
|
import { useT } from '../../../hooks/useT';
|
|
@@ -72,6 +73,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
72
73
|
modalProps = _useState8[0],
|
|
73
74
|
setModalProps = _useState8[1];
|
|
74
75
|
var eventAmplitude = useEvent();
|
|
76
|
+
var user = useUser();
|
|
75
77
|
var _useGlobalContext = useGlobalContext(),
|
|
76
78
|
toggleWebSearch = _useGlobalContext.toggleWebSearch,
|
|
77
79
|
isWebSearchActive = _useGlobalContext.isWebSearchActive,
|
|
@@ -422,7 +424,8 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
422
424
|
onStopGeneration === null || onStopGeneration === void 0 || onStopGeneration();
|
|
423
425
|
};
|
|
424
426
|
var isMAIA = validateIsMaia(agent);
|
|
425
|
-
var
|
|
427
|
+
var hideHeaderButtonsForProjectCompany = (agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' && Number(user.company_id) === 13303;
|
|
428
|
+
var hasHeaderButtons = !isMAIA && !hideHeaderButtonsForProjectCompany;
|
|
426
429
|
var iconColorInactive = isFocused ? '#666666' : '#999';
|
|
427
430
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
428
431
|
children: [/*#__PURE__*/_jsxs(StyledMAIAInputWrapper, {
|
|
@@ -563,4 +566,4 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
563
566
|
})]
|
|
564
567
|
});
|
|
565
568
|
};
|
|
566
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlBhcGVyUGxhbmUiLCJBdHRhY2giLCJHbG9iZSIsIlRyYXNoIiwiVG9vbHRpcCIsIlNDTUlBdHRhY2htZW50IiwiU0NNSUF0dGFjaG1lbnREZWxldGVJY29uIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uIiwiU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24iLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJTdHlsZWRNQUlBSW5wdXQiLCJTdHlsZWRNQUlBSW5wdXRCdXR0b25zIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iLCJTdHlsZWRNQUlBU3RvcEljb24iLCJ1c2VHbG9iYWxDb250ZXh0IiwiTW9kYWxGaWxlRXhjZWVkcyIsInVzZVQiLCJ2YWxpZGF0ZUlzTWFpYSIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImFsbG93ZWRGaWxlVHlwZXMiLCJmaWxlVHlwZXMiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX0FVRElPIiwiQkxVRV9JQV9DT0xPUlMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNQUlBSW5wdXQiLCJfcmVmIiwib25TZW5kTWVzc2FnZSIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIl9yZWYkYWxpZ25CdXR0b25zIiwiYWxpZ25CdXR0b25zIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiX3JlZiRhdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsIl91c2VUIiwidCIsImlucHV0UmVmIiwiZmlsZUlucHV0UmVmIiwid3JhcHBlclJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInZhbHVlVGV4dGFyZWEiLCJzZXRWYWx1ZVRleHRhcmVhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0Rpc2FibGVkIiwic2V0SXNEaXNhYmxlZCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwiX3VzZVN0YXRlNyIsImlzT3BlbiIsImV4Y2x1ZGVkRmlsZXMiLCJleGNlZWRlZEZpbGVzIiwiZmlsZVNpemVzIiwiX3VzZVN0YXRlOCIsIm1vZGFsUHJvcHMiLCJzZXRNb2RhbFByb3BzIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInRvZ2dsZVdlYlNlYXJjaCIsImlzV2ViU2VhcmNoQWN0aXZlIiwidG9nZ2xlRGVlcFNlYXJjaCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImFnZW50IiwicHJldmlvdXNBZ2VudElkUmVmIiwidW5kZWZpbmVkIiwicHJldmlvdXNDaGF0SWRSZWYiLCJwcmV2aW91c05ld0NoYXRLZXlSZWYiLCJoYW5kbGVXZWJTZWFyY2hUb2dnbGUiLCJhaUNoYXRUb29scyIsIm9wdGlvbiIsImhhbmRsZURlZXBTZWFyY2hUb2dnbGUiLCJoYW5kbGVSZXNpemUiLCJ0ZXh0YXJlYSIsImN1cnJlbnQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJwcmV2aW91c01pbkhlaWdodCIsInN0eWxlIiwicHJldmlvdXNNYXhIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjb21wdXRlZFN0eWxlIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImxpbmVIZWlnaHQiLCJwYXJzZUZsb2F0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJib3JkZXJUb3AiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbSIsImJvcmRlckJvdHRvbVdpZHRoIiwic2luZ2xlTGluZUhlaWdodCIsImlzRW1wdHkiLCJ2YWx1ZSIsInRyaW0iLCJoYXNNdWx0aXBsZVZpc3VhbExpbmVzIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0YXJlYVN0eWxlcyIsImZvbnQiLCJjb25jYXQiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwidGV4dGFyZWFXaWR0aCIsIm9mZnNldFdpZHRoIiwidGV4dCIsImxpbmVzIiwic3BsaXQiLCJsZW5ndGgiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwibGluZSIsInRleHRXaWR0aCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJlcnIiLCJlIiwiZiIsIm5ld0hlaWdodCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJmb2N1cyIsImFnZW50Q2hhbmdlZCIsImlkIiwicHJldmlvdXNDaGF0SWQiLCJjdXJyZW50Q2hhdElkIiwiY2hhdENoYW5nZWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsImlzSW5pdGlhbE1vdW50IiwiZGVsYXkiLCJzZXRUaW1lb3V0IiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYW5pbWF0aW9uRnJhbWVJZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiaGFzVGV4dCIsImhhc0F0dGFjaG1lbnRzIiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJoYW5kbGVLZXlEb3duIiwia2V5Iiwic2hpZnRLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImhhbmRsZVBhc3RlIiwiX2lucHV0UmVmJGN1cnJlbnQkdmFsIiwiX2lucHV0UmVmJGN1cnJlbnQiLCJjdXJyZW50VmFsdWUiLCJoYW5kbGVGaWxlU2VsZWN0IiwiZmlsZXMiLCJmaWxlc0luc2VydGVkIiwiaXNOZXdGb3JtYXQiLCJleHRlbnNpb24iLCJpbmNsdWRlcyIsImlzT2xkRm9ybWF0IiwiaXNBdWRpb0Zvcm1hdCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZXhjbHVkZWRGaWxlIiwiZmlsZU5hbWVQYXJ0cyIsIm5hbWUiLCJmaWxlRXh0ZW5zaW9uIiwicG9wIiwidG9Mb3dlckNhc2UiLCJzaXplIiwicHVzaCIsInR5cGVGaWxlIiwidHlwZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwiaGFuZGxlQXR0YWNoQ2xpY2siLCJfZmlsZUlucHV0UmVmJGN1cnJlbnQiLCJjbGljayIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJoYW5kbGVCbHVyIiwiaGFuZGxlV3JhcHBlckZvY3VzIiwiaGFuZGxlV3JhcHBlckJsdXIiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiY29udGFpbnMiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJpc01BSUEiLCJoYXNIZWFkZXJCdXR0b25zIiwiaWNvbkNvbG9ySW5hY3RpdmUiLCJjaGlsZHJlbiIsInJlZiIsIm9uRm9jdXMiLCJvbkJsdXIiLCJkaXNwbGF5IiwiZ2FwIiwiYWxpZ25JdGVtcyIsIm1hcCIsImF0dGFjaG1lbnQiLCJpbmRleCIsIl9maWxlTmFtZVBhcnRzJHBvcDIiLCJfYXR0YWNobWVudCR0eXBlIiwiaXNJbWFnZUJ5RXh0ZW5zaW9uIiwiaXNJbWFnZUJ5TWltZSIsInN0YXJ0c1dpdGgiLCJpc0ltYWdlIiwidGl0bGUiLCJpY29uIiwib25DbGljayIsImNvbG9yIiwib25LZXlEb3duIiwib25QYXN0ZSIsImlzTWF4aW1pemVkIiwiJGlzRm9jdXNlZCIsImlzQWN0aXZlIiwiaGFzVmFsdWVzIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJvbkNsb3NlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L01BSUFJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnRpbnVlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12b2lkICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWxvbmVseS1pZiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWRlc3RydWN0dXJpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnQsIEtleWJvYXJkRXZlbnQsIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQYXBlclBsYW5lIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGFwZXJQbGFuZSdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IEdsb2JlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvR2xvYmUnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQge1xuICBTQ01JQXR0YWNobWVudCxcbiAgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uLFxuICBTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24sXG4gIFNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uLFxuICBTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24sXG4gIFN0eWxlZE1BSUFJbnB1dCxcbiAgU3R5bGVkTUFJQUlucHV0QnV0dG9ucyxcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXQgPSAoe1xuICBvblNlbmRNZXNzYWdlLFxuICBjbGFzc05hbWUsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBwbGFjZWhvbGRlcixcbiAgb25DaGFuZ2UsXG4gIGFsaWduQnV0dG9ucyA9ICd2ZXJ0aWNhbCcsXG4gIG9uRmlsZUF0dGFjaCxcbiAgb25EZWxldGVBdHRhY2htZW50LFxuICBhdHRhY2htZW50cyA9IFtdLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG59OiBNQUlBSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3ZhbHVlVGV4dGFyZWEsIHNldFZhbHVlVGV4dGFyZWFdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc0Rpc2FibGVkLCBzZXRJc0Rpc2FibGVkXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21vZGFsUHJvcHMsIHNldE1vZGFsUHJvcHNdID0gdXNlU3RhdGUoe1xuICAgIGlzT3BlbjogZmFsc2UsXG4gICAgZXhjbHVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZXhjZWVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZmlsZVNpemVzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuICB9KVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyB0b2dnbGVXZWJTZWFyY2gsIGlzV2ViU2VhcmNoQWN0aXZlLCB0b2dnbGVEZWVwU2VhcmNoLCBpc0RlZXBTZWFyY2hBY3RpdmUsIGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgLy8gSW5pY2lhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIGNvbW8gdW5kZWZpbmVkIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGNhbWJpbyBjb3JyZWN0YW1lbnRlXG4gIGNvbnN0IHByZXZpb3VzQWdlbnRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNDaGF0SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTmV3Q2hhdEtleVJlZiA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICBjb25zdCBoYW5kbGVXZWJTZWFyY2hUb2dnbGUgPSAoKSA9PiB7XG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7IG9wdGlvbjogJ3NlYXJjaCcgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWVwU2VhcmNoVG9nZ2xlID0gKCkgPT4ge1xuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgaWYgKCFpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywgeyBvcHRpb246ICdkZWVwX3NlYXJjaCcgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVSZXNpemUgPSAoKSA9PiB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSBpbnB1dFJlZi5jdXJyZW50XG4gICAgaWYgKCF0ZXh0YXJlYSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gQWx0dXJhIG3DrW5pbWEgZXF1aXZhbGVudGUgYSB1bmEgbMOtbmVhXG4gICAgY29uc3QgbWluSGVpZ2h0ID0gMjIuMVxuICAgIGNvbnN0IG1heEhlaWdodCA9IDEyMi4xXG5cbiAgICAvLyBQYXJhIG1lZGlyIGNvcnJlY3RhbWVudGUgZWwgc2Nyb2xsSGVpZ2h0LCBuZWNlc2l0YW1vcyBxdWl0YXIgdGVtcG9yYWxtZW50ZSBsYXMgcmVzdHJpY2Npb25lc1xuICAgIGNvbnN0IHByZXZpb3VzTWluSGVpZ2h0ID0gdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0XG4gICAgY29uc3QgcHJldmlvdXNNYXhIZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHRcblxuICAgIC8vIEVzdGFibGVjZXIgYWx0dXJhIGEgJ2F1dG8nIHkgcXVpdGFyIHRlbXBvcmFsbWVudGUgbWluLWhlaWdodCB5IG1heC1oZWlnaHQgcGFyYSBtZWRpciBjb3JyZWN0YW1lbnRlXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gJzBweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSdcblxuICAgIC8vIEZvcnphciByZWZsb3cgcGFyYSBxdWUgZWwgbmF2ZWdhZG9yIHJlY2FsY3VsZVxuICAgIHZvaWQgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0XG5cbiAgICAvLyBBaG9yYSBtZWRpciBlbCBzY3JvbGxIZWlnaHQgcmVhbCBzaW4gcmVzdHJpY2Npb25lc1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRleHRhcmVhLnNjcm9sbEhlaWdodFxuXG4gICAgLy8gQ2FsY3VsYXIgbGEgYWx0dXJhIGRlIHVuYSBsw61uZWEgdXNhbmRvIGxvcyBlc3RpbG9zIGNvbXB1dGFkb3NcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGV4dGFyZWEpXG4gICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMCAvLyBGYWxsYmFjayBhIDIwcHggc2kgbm8gZXN0w6EgZGVmaW5pZG9cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdUb3ApIHx8IDBcbiAgICBjb25zdCBwYWRkaW5nQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdCb3R0b20pIHx8IDBcbiAgICBjb25zdCBib3JkZXJUb3AgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgpIHx8IDBcbiAgICBjb25zdCBib3JkZXJCb3R0b20gPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyQm90dG9tV2lkdGgpIHx8IDBcblxuICAgIC8vIEFsdHVyYSBkZSB1bmEgbMOtbmVhIGNvbXBsZXRhIChsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXG4gICAgY29uc3Qgc2luZ2xlTGluZUhlaWdodCA9IGxpbmVIZWlnaHQgKyBwYWRkaW5nVG9wICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlclRvcCArIGJvcmRlckJvdHRvbVxuXG4gICAgY29uc3QgaXNFbXB0eSA9IHRleHRhcmVhLnZhbHVlLnRyaW0oKSA9PT0gJydcblxuICAgIC8vIE1lZGlyIGVsIGFuY2hvIGRlbCB0ZXh0byB1c2FuZG8gQ2FudmFzIHBhcmEgZGV0ZXJtaW5hciBzaSBzZSBlbnZ1ZWx2ZSBhIG3Dumx0aXBsZXMgbMOtbmVhc1xuICAgIGxldCBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gZmFsc2VcblxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpXG5cbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIC8vIEZhbGxiYWNrIHNpIENhbnZhcyBubyBlc3TDoSBkaXNwb25pYmxlOiB1c2FyIHNjcm9sbEhlaWdodFxuICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHNjcm9sbEhlaWdodCA+IHNpbmdsZUxpbmVIZWlnaHQgKiAxLjVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGV4dGFyZWFTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICAgIGNvbnRleHQuZm9udCA9IGAke3RleHRhcmVhU3R5bGVzLmZvbnRXZWlnaHR9ICR7dGV4dGFyZWFTdHlsZXMuZm9udFNpemV9ICR7dGV4dGFyZWFTdHlsZXMuZm9udEZhbWlseX1gXG5cbiAgICAgIC8vIENhbGN1bGFyIGVsIGFuY2hvIGRpc3BvbmlibGUgKGFuY2hvIHRvdGFsIG1lbm9zIHBhZGRpbmcgaXpxdWllcmRvL2RlcmVjaG8geSBib3JkZXIgaXpxdWllcmRvL2RlcmVjaG8pXG4gICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCkgfHwgMFxuICAgICAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdSaWdodCkgfHwgMFxuICAgICAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgICAgIGNvbnN0IGJvcmRlclJpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlclJpZ2h0V2lkdGgpIHx8IDBcbiAgICAgIGNvbnN0IHRleHRhcmVhV2lkdGggPSB0ZXh0YXJlYS5vZmZzZXRXaWR0aCAtIHBhZGRpbmdMZWZ0IC0gcGFkZGluZ1JpZ2h0IC0gYm9yZGVyTGVmdCAtIGJvcmRlclJpZ2h0XG4gICAgICBjb25zdCB0ZXh0ID0gdGV4dGFyZWEudmFsdWUgfHwgJydcbiAgICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJylcblxuICAgICAgLy8gU2kgaGF5IG3Dumx0aXBsZXMgbMOtbmVhcyBwb3Igc2FsdG9zIGRlIGzDrW5lYSBleHBsw61jaXRvc1xuICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB0ZXh0byBzZSBlbnZ1ZWx2ZSBtaWRpZW5kbyBlbCBhbmNobyBkZSBjYWRhIGzDrW5lYVxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSBjb250aW51ZVxuICAgICAgICAgIGNvbnN0IHRleHRXaWR0aCA9IGNvbnRleHQubWVhc3VyZVRleHQobGluZSkud2lkdGhcbiAgICAgICAgICAvLyBTaSBhbGd1bmEgbMOtbmVhIGVzIG3DoXMgYW5jaGEgcXVlIGVsIHRleHRhcmVhIGRpc3BvbmlibGUsIHNlIGVudnVlbHZlXG4gICAgICAgICAgaWYgKHRleHRXaWR0aCA+IHRleHRhcmVhV2lkdGgpIHtcbiAgICAgICAgICAgIGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSB0cnVlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlclxuICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAvLyBDdWFuZG8gZXN0w6EgdmFjw61vLCB1c2FyIGFsdHVyYSBtw61uaW1hXG4gICAgICBuZXdIZWlnaHQgPSBtaW5IZWlnaHRcbiAgICB9IGVsc2UgaWYgKCFoYXNNdWx0aXBsZVZpc3VhbExpbmVzKSB7XG4gICAgICAvLyBDdWFuZG8gaGF5IGNvbnRlbmlkbyBwZXJvIHNvbG8gdW5hIGzDrW5lYSB2aXN1YWwsIHVzYXIgYWx0dXJhIG3DrW5pbWFcbiAgICAgIG5ld0hlaWdodCA9IG1pbkhlaWdodFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQYXJhIG3Dumx0aXBsZXMgbMOtbmVhcyB2aXN1YWxlcywgdXNhciBlbCBzY3JvbGxIZWlnaHRcbiAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KHNjcm9sbEhlaWdodCwgbWluSGVpZ2h0KSwgbWF4SGVpZ2h0KVxuICAgIH1cblxuICAgIC8vIFJlc3RhdXJhciBlc3RpbG9zIGFudGVzIGRlIGFwbGljYXIgbGEgbnVldmEgYWx0dXJhXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gcHJldmlvdXNNaW5IZWlnaHQgfHwgJzIyLjFweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSBwcmV2aW91c01heEhlaWdodCB8fCAnMTIyLjFweCdcblxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGBcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQgJiYgIWRpc2FibGVkKSB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKClcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIC8vIEF1dG8tZm9jdXMgY3VhbmRvIGNhbWJpYSBlbCBhZ2VudGUgbyBsYSBjb252ZXJzYWNpw7NuLCBvIGFsIG1vbnRhciBlbCBjb21wb25lbnRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ29tcGFyYWNpw7NuIHF1ZSBtYW5lamEgY29ycmVjdGFtZW50ZSB1bmRlZmluZWQvbnVsbFxuICAgIGNvbnN0IGFnZW50Q2hhbmdlZCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ICE9PSBhZ2VudD8uaWRcbiAgICAvLyBDb21wYXJhY2nDs24gZXN0cmljdGEgcXVlIGRldGVjdGEgY2FtYmlvcyBpbmNsdXNvIGN1YW5kbyB1bm8gZXMgdW5kZWZpbmVkXG4gICAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgY3VycmVudENoYXRJZCA9IGNoYXRJZFxuICAgIGNvbnN0IGNoYXRDaGFuZ2VkID0gcHJldmlvdXNDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWRcbiAgICAvLyBEZXRlY3RhciBjYW1iaW8gZXNwZWPDrWZpY28gZGUgdW5kZWZpbmVkL251bGwgYSB1biB2YWxvciAobnVldm8gY2hhdCAtPiBjb252ZXJzYWNpw7NuIHZpZWphKVxuICAgIGNvbnN0IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA9XG4gICAgICAocHJldmlvdXNDaGF0SWQgPT09IHVuZGVmaW5lZCB8fCBwcmV2aW91c0NoYXRJZCA9PT0gbnVsbCkgJiYgY3VycmVudENoYXRJZCAhPT0gdW5kZWZpbmVkICYmIGN1cnJlbnRDaGF0SWQgIT09IG51bGxcbiAgICBjb25zdCBuZXdDaGF0U3RhcnRlZCA9IHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ICE9PSBuZXdDaGF0S2V5XG4gICAgY29uc3QgaXNJbml0aWFsTW91bnQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZFxuXG4gICAgaWYgKFxuICAgICAgKGFnZW50Q2hhbmdlZCB8fCBjaGF0Q2hhbmdlZCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgfHwgbmV3Q2hhdFN0YXJ0ZWQgfHwgaXNJbml0aWFsTW91bnQpICYmXG4gICAgICBpbnB1dFJlZi5jdXJyZW50ICYmXG4gICAgICAhZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIC8vIFVzYXIgc2V0VGltZW91dCBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgbGlzdG9cbiAgICAgIC8vIEF1bWVudGFyIGVsIGRlbGF5IHBhcmEgY2Fzb3MgZG9uZGUgZWwgY29tcG9uZW50ZSBzZSBlc3TDoSBtb250YW5kb1xuICAgICAgY29uc3QgZGVsYXkgPSBpc0luaXRpYWxNb3VudCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPyAyMDAgOiAxMDBcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKClcbiAgICAgICAgfVxuICAgICAgfSwgZGVsYXkpXG4gICAgfVxuXG4gICAgLy8gQWN0dWFsaXphciBsYXMgcmVmZXJlbmNpYXMgREVTUFXDiVMgZGUgbGEgY29tcGFyYWNpw7NuXG4gICAgcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPSBhZ2VudD8uaWRcbiAgICBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID0gY2hhdElkXG4gICAgcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgPSBuZXdDaGF0S2V5XG4gIH0sIFthZ2VudD8uaWQsIGNoYXRJZCwgbmV3Q2hhdEtleSwgZGlzYWJsZWRdKVxuXG4gIC8vIENsZWFyIGlucHV0IHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoJycpXG4gICAgICBzZXRJc0Rpc2FibGVkKHRydWUpXG4gICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICAgIH1cbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgIH0pXG5cbiAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbWF0aW9uRnJhbWVJZClcbiAgfSwgW3ZhbHVlVGV4dGFyZWFdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFzVGV4dCA9IHZhbHVlVGV4dGFyZWEudHJpbSgpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcbiAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgfSwgW2F0dGFjaG1lbnRzLCB2YWx1ZVRleHRhcmVhXSlcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9ICgpID0+IHtcbiAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgb25TZW5kTWVzc2FnZShpbnB1dFJlZi5jdXJyZW50LnZhbHVlLCBhdHRhY2htZW50cylcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgICAgc2V0VmFsdWVUZXh0YXJlYSgnJylcbiAgICAgIHNldElzRGlzYWJsZWQodHJ1ZSlcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCkge1xuICAgICAgb25TZW5kTWVzc2FnZSgnJywgYXR0YWNobWVudHMpXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKCcnKVxuICAgICAgc2V0SXNEaXNhYmxlZCh0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiAhZS5zaGlmdEtleSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBpZiAoIWlzRGlzYWJsZWQgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgIGhhbmRsZVNlbmRNZXNzYWdlKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gZS50YXJnZXQudmFsdWUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcbiAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgICBzZXRWYWx1ZVRleHRhcmVhKGUudGFyZ2V0LnZhbHVlKVxuICAgIG9uQ2hhbmdlPy4oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGFzdGUgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gaW5wdXRSZWYuY3VycmVudD8udmFsdWUgPz8gJydcbiAgICAgIGNvbnN0IGhhc1RleHQgPSBjdXJyZW50VmFsdWUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgICAgc2V0VmFsdWVUZXh0YXJlYShjdXJyZW50VmFsdWUpXG4gICAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgICB9LCAxMClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZXhjbHVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gICAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBhdHRhY2htZW50cy5sZW5ndGhcblxuICAgIC8vIERlZmluaXIgbMOtbWl0ZXMgcGFyYSBkaWZlcmVudGVzIHRpcG9zIGRlIGFyY2hpdm9zXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgQXJyYXkuZnJvbShmaWxlcykuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIC8vIFZhbGlkYWNpb25lcyBlc3BlY8OtZmljYXMgc2Vnw7puIGVsIHRpcG8gZGUgYXJjaGl2b1xuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgbnVldm9zIGZvcm1hdG9zOiBoYXN0YSA0Ljk5TUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gNSkge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzT2xkRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgZm9ybWF0b3MgYW50ZXJpb3JlczogaGFzdGEgMU1CIHBvciBhcmNoaXZvLCBoYXN0YSA1IGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBdWRpb0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGFyY2hpdm9zIGRlIGF1ZGlvOiBoYXN0YSAxME1CIHBvciBhcmNoaXZvLCBoYXN0YSA1IGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX0FVRElPICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IDUpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBzZXRJc0Rpc2FibGVkKGZhbHNlKVxuICAgIGlmIChleGNsdWRlZEZpbGVzLmxlbmd0aCB8fCBleGNlZWRlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogdHJ1ZSwgZXhjbHVkZWRGaWxlcywgZXhjZWVkZWRGaWxlcywgZmlsZVNpemVzIH0pXG4gICAgfVxuXG4gICAgaWYgKGZpbGVJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBmaWxlSW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQXR0YWNoQ2xpY2sgPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7IG9wdGlvbjogJ2ZpbGVzJyB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gNSkgcmV0dXJuXG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSB2YWx1ZVRleHRhcmVhLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgc2V0SXNEaXNhYmxlZCghaGFzVGV4dCAmJiAhaGFzQXR0YWNobWVudHMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgaGFzSGVhZGVyQnV0dG9ucyA9ICFpc01BSUFcblxuICBjb25zdCBpY29uQ29sb3JJbmFjdGl2ZSA9IGlzRm9jdXNlZCA/ICcjNjY2NjY2JyA6ICcjOTk5J1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVXcmFwcGVyRm9jdXN9XG4gICAgICAgIG9uQmx1cj17aGFuZGxlV3JhcHBlckJsdXJ9XG4gICAgICA+XG4gICAgICAgIHshIWF0dGFjaG1lbnRzLmxlbmd0aCAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogJzEycHgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgIHthdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBhdHRhY2htZW50Lm5hbWUuc3BsaXQoJy4nKVxuICAgICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGF0dGFjaG1lbnQudHlwZT8uc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2F0dGFjaG1lbnQubmFtZX0ga2V5PXtgJHtpbmRleH0tJHthdHRhY2htZW50Lm5hbWV9YH0+XG4gICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnQgaXNJbWFnZT17aXNJbWFnZX0+XG4gICAgICAgICAgICAgICAgICAgIHthdHRhY2htZW50Lmljb259XG4gICAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudERlbGV0ZUljb24gb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlQXR0YWNobWVudChhdHRhY2htZW50LmlkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRyYXNoIGNvbG9yPVwicmdiYSgxOTEsIDE5MSwgMTkxLCAxKVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudERlbGV0ZUljb24+XG4gICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRNQUlBSW5wdXRcbiAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgYWxpZ25CdXR0b25zPXthbGlnbkJ1dHRvbnN9XG4gICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAvPlxuICAgICAgICA8U3R5bGVkTUFJQUlucHV0QnV0dG9ucyBoYXNIZWFkZXJCdXR0b25zPXtoYXNIZWFkZXJCdXR0b25zfT5cbiAgICAgICAgICB7aGFzSGVhZGVyQnV0dG9ucyA/IChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6ICcxMHB4JyB9fT5cbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2F0dGFjaG1lbnRzLmxlbmd0aCA+PSA1ID8gdCgnY2hhdC5saW1pdEZpbGVzJykgOiB0KCdjaGF0LmF0dGFjaEZpbGUnKX0+XG4gICAgICAgICAgICAgICAgPFNDTUlXcmFwcGVyQXR0YWNobWVudEJ1dHRvblxuICAgICAgICAgICAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgaXNNYXhpbWl6ZWQ9e2F0dGFjaG1lbnRzLmxlbmd0aCA+PSA1fVxuICAgICAgICAgICAgICAgICAgJGlzRm9jdXNlZD17aXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQXR0YWNoQ2xpY2t9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEF0dGFjaFxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17IWF0dGFjaG1lbnRzLmxlbmd0aCA/IGljb25Db2xvckluYWN0aXZlIDogYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTh9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17MTh9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnNlYXJjaFdlYicpfT5cbiAgICAgICAgICAgICAgICA8U0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b25cbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXshIWlzV2ViU2VhcmNoQWN0aXZlfVxuICAgICAgICAgICAgICAgICAgJGlzRm9jdXNlZD17aXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlV2ViU2VhcmNoVG9nZ2xlfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxHbG9iZVxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfWAgOiBpY29uQ29sb3JJbmFjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE4fVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE4fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LmRlZXBTZWFyY2gnKX0+XG4gICAgICAgICAgICAgICAgPFNDTUlXcmFwcGVyRGVlcFNlYXJjaEJ1dHRvblxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9eyEhaXNEZWVwU2VhcmNoQWN0aXZlfVxuICAgICAgICAgICAgICAgICAgJGlzRm9jdXNlZD17aXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRGVlcFNlYXJjaFRvZ2dsZX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNEZWVwU2VhcmNoQWN0aXZlID8gYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gIDogaWNvbkNvbG9ySW5hY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXsxOH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxOH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAge2lzV3JpdGluZyA/IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnN0b3AnKX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEJ1dHRvbiBkaXNhYmxlZD17ZmFsc2V9IG9uQ2xpY2s9e2hhbmRsZVN0b3BHZW5lcmF0aW9ufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wSWNvbiAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTdG9wQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17aXNTdHJlYW1pbmcgPyB0KCdjaGF0LnNlbmQnKSA6IHQoJ2NoYXQuc2VuZCcpfT5cbiAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTZW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWQgfHwgZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgaGFzVmFsdWVzPXshIXZhbHVlVGV4dGFyZWEubGVuZ3RofVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhcGVyUGxhbmUgY29sb3I9XCIjQkZCRkJGXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkTUFJQUlucHV0QnV0dG9ucz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcmVmPXtmaWxlSW5wdXRSZWZ9XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgYWNjZXB0PVwiLnR4dCwubWQsLmNzdiwuZG9jLC5kb2N4LC5wbmcsLmpwZywuanBlZywucGRmLC54bHN4LC54bHMsLmZsYWMsLm00YSwubXAzLC5tcDQsLm9nYSwub2dnLC53YXYsLndlYm1cIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRNQUlBSW5wdXRXcmFwcGVyPlxuICAgICAge21vZGFsUHJvcHMuaXNPcGVuICYmIChcbiAgICAgICAgPE1vZGFsRmlsZUV4Y2VlZHNcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiBmYWxzZSwgZXhjbHVkZWRGaWxlczogW10sIGV4Y2VlZGVkRmlsZXM6IFtdLCBmaWxlU2l6ZXM6IHt9IH0pfVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjbHVkZWRGaWxlc31cbiAgICAgICAgICBleGNlZWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2VlZGVkRmlsZXN9XG4gICAgICAgICAgZmlsZVNpemVzPXttb2RhbFByb3BzLmZpbGVTaXplc31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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
|
|
569
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlBhcGVyUGxhbmUiLCJBdHRhY2giLCJHbG9iZSIsIlRyYXNoIiwiVG9vbHRpcCIsIlNDTUlBdHRhY2htZW50IiwiU0NNSUF0dGFjaG1lbnREZWxldGVJY29uIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uIiwiU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24iLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJTdHlsZWRNQUlBSW5wdXQiLCJTdHlsZWRNQUlBSW5wdXRCdXR0b25zIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iLCJTdHlsZWRNQUlBU3RvcEljb24iLCJ1c2VVc2VyIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJ1c2VUIiwidmFsaWRhdGVJc01haWEiLCJUZWxlc2NvcGVJY29uIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIkJMVUVfSUFfQ09MT1JTIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiTUFJQUlucHV0IiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJfcmVmJGFsaWduQnV0dG9ucyIsImFsaWduQnV0dG9ucyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsIl9yZWYkYXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJfdXNlVCIsInQiLCJpbnB1dFJlZiIsImZpbGVJbnB1dFJlZiIsIndyYXBwZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ2YWx1ZVRleHRhcmVhIiwic2V0VmFsdWVUZXh0YXJlYSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNEaXNhYmxlZCIsInNldElzRGlzYWJsZWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzRm9jdXNlZCIsInNldElzRm9jdXNlZCIsIl91c2VTdGF0ZTciLCJpc09wZW4iLCJleGNsdWRlZEZpbGVzIiwiZXhjZWVkZWRGaWxlcyIsImZpbGVTaXplcyIsIl91c2VTdGF0ZTgiLCJtb2RhbFByb3BzIiwic2V0TW9kYWxQcm9wcyIsImV2ZW50QW1wbGl0dWRlIiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJ0b2dnbGVEZWVwU2VhcmNoIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYWdlbnQiLCJwcmV2aW91c0FnZW50SWRSZWYiLCJ1bmRlZmluZWQiLCJwcmV2aW91c0NoYXRJZFJlZiIsInByZXZpb3VzTmV3Q2hhdEtleVJlZiIsImhhbmRsZVdlYlNlYXJjaFRvZ2dsZSIsImFpQ2hhdFRvb2xzIiwib3B0aW9uIiwiaGFuZGxlRGVlcFNlYXJjaFRvZ2dsZSIsImhhbmRsZVJlc2l6ZSIsInRleHRhcmVhIiwiY3VycmVudCIsIm1pbkhlaWdodCIsIm1heEhlaWdodCIsInByZXZpb3VzTWluSGVpZ2h0Iiwic3R5bGUiLCJwcmV2aW91c01heEhlaWdodCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsInNjcm9sbEhlaWdodCIsImNvbXB1dGVkU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsImJvcmRlclRvcCIsImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJzaW5nbGVMaW5lSGVpZ2h0IiwiaXNFbXB0eSIsInZhbHVlIiwidHJpbSIsImhhc011bHRpcGxlVmlzdWFsTGluZXMiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjb250ZXh0IiwiZ2V0Q29udGV4dCIsInRleHRhcmVhU3R5bGVzIiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsImJvcmRlckxlZnQiLCJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodCIsImJvcmRlclJpZ2h0V2lkdGgiLCJ0ZXh0YXJlYVdpZHRoIiwib2Zmc2V0V2lkdGgiLCJ0ZXh0IiwibGluZXMiLCJzcGxpdCIsImxlbmd0aCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJsaW5lIiwidGV4dFdpZHRoIiwibWVhc3VyZVRleHQiLCJ3aWR0aCIsImVyciIsImUiLCJmIiwibmV3SGVpZ2h0IiwiTWF0aCIsIm1pbiIsIm1heCIsImZvY3VzIiwiYWdlbnRDaGFuZ2VkIiwiaWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGF0Q2hhbmdlZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwiaXNJbml0aWFsTW91bnQiLCJkZWxheSIsInNldFRpbWVvdXQiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhbmltYXRpb25GcmFtZUlkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJoYXNUZXh0IiwiaGFzQXR0YWNobWVudHMiLCJoYW5kbGVTZW5kTWVzc2FnZSIsImhhbmRsZUtleURvd24iLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidGFyZ2V0IiwiaGFuZGxlUGFzdGUiLCJfaW5wdXRSZWYkY3VycmVudCR2YWwiLCJfaW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnRWYWx1ZSIsImhhbmRsZUZpbGVTZWxlY3QiLCJmaWxlcyIsImZpbGVzSW5zZXJ0ZWQiLCJpc05ld0Zvcm1hdCIsImV4dGVuc2lvbiIsImluY2x1ZGVzIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJleGNsdWRlZEZpbGUiLCJmaWxlTmFtZVBhcnRzIiwibmFtZSIsImZpbGVFeHRlbnNpb24iLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsInNpemUiLCJwdXNoIiwidHlwZUZpbGUiLCJ0eXBlIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJoYW5kbGVBdHRhY2hDbGljayIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImNsaWNrIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZUJsdXIiLCJoYW5kbGVXcmFwcGVyRm9jdXMiLCJoYW5kbGVXcmFwcGVyQmx1ciIsIl93cmFwcGVyUmVmJGN1cnJlbnQiLCJjb250YWlucyIsImFjdGl2ZUVsZW1lbnQiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImFpQ2hhdFN0b3BSZXNwb25zZSIsImlzTUFJQSIsImhpZGVIZWFkZXJCdXR0b25zRm9yUHJvamVjdENvbXBhbnkiLCJlbnRpdHkiLCJOdW1iZXIiLCJjb21wYW55X2lkIiwiaGFzSGVhZGVyQnV0dG9ucyIsImljb25Db2xvckluYWN0aXZlIiwiY2hpbGRyZW4iLCJyZWYiLCJvbkZvY3VzIiwib25CbHVyIiwiZGlzcGxheSIsImdhcCIsImFsaWduSXRlbXMiLCJtYXAiLCJhdHRhY2htZW50IiwiaW5kZXgiLCJfZmlsZU5hbWVQYXJ0cyRwb3AyIiwiX2F0dGFjaG1lbnQkdHlwZSIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJzdGFydHNXaXRoIiwiaXNJbWFnZSIsInRpdGxlIiwiaWNvbiIsIm9uQ2xpY2siLCJjb2xvciIsIm9uS2V5RG93biIsIm9uUGFzdGUiLCJpc01heGltaXplZCIsIiRpc0ZvY3VzZWQiLCJpc0FjdGl2ZSIsImhhc1ZhbHVlcyIsIm11bHRpcGxlIiwiYWNjZXB0Iiwib25DbG9zZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9NQUlBSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdm9pZCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1sb25lbHktaWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IENoYW5nZUV2ZW50LCBLZXlib2FyZEV2ZW50LCBSZWFjdE5vZGUsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcblxuaW1wb3J0IHtcbiAgU0NNSUF0dGFjaG1lbnQsXG4gIFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbixcbiAgU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uLFxuICBTQ01JV3JhcHBlcldlYlNlYXJjaEJ1dHRvbixcbiAgU0NNSVdyYXBwZXJEZWVwU2VhcmNoQnV0dG9uLFxuICBTdHlsZWRNQUlBSW5wdXQsXG4gIFN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMsXG4gIFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIsXG4gIFN0eWxlZE1BSUFTZW5kQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEJ1dHRvbixcbiAgU3R5bGVkTUFJQVN0b3BJY29uLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXQgPSAoe1xuICBvblNlbmRNZXNzYWdlLFxuICBjbGFzc05hbWUsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBwbGFjZWhvbGRlcixcbiAgb25DaGFuZ2UsXG4gIGFsaWduQnV0dG9ucyA9ICd2ZXJ0aWNhbCcsXG4gIG9uRmlsZUF0dGFjaCxcbiAgb25EZWxldGVBdHRhY2htZW50LFxuICBhdHRhY2htZW50cyA9IFtdLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG59OiBNQUlBSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3ZhbHVlVGV4dGFyZWEsIHNldFZhbHVlVGV4dGFyZWFdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc0Rpc2FibGVkLCBzZXRJc0Rpc2FibGVkXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21vZGFsUHJvcHMsIHNldE1vZGFsUHJvcHNdID0gdXNlU3RhdGUoe1xuICAgIGlzT3BlbjogZmFsc2UsXG4gICAgZXhjbHVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZXhjZWVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZmlsZVNpemVzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuICB9KVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZURlZXBTZWFyY2gsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICAvLyBJbmljaWFsaXphciBsYXMgcmVmZXJlbmNpYXMgY29tbyB1bmRlZmluZWQgcGFyYSBkZXRlY3RhciBlbCBwcmltZXIgY2FtYmlvIGNvcnJlY3RhbWVudGVcbiAgY29uc3QgcHJldmlvdXNBZ2VudElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNOZXdDaGF0S2V5UmVmID0gdXNlUmVmPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIGNvbnN0IGhhbmRsZVdlYlNlYXJjaFRvZ2dsZSA9ICgpID0+IHtcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBpZiAoIWlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHsgb3B0aW9uOiAnc2VhcmNoJyB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlZXBTZWFyY2hUb2dnbGUgPSAoKSA9PiB7XG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICBpZiAoIWlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7IG9wdGlvbjogJ2RlZXBfc2VhcmNoJyB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlc2l6ZSA9ICgpID0+IHtcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGlucHV0UmVmLmN1cnJlbnRcbiAgICBpZiAoIXRleHRhcmVhKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBBbHR1cmEgbcOtbmltYSBlcXVpdmFsZW50ZSBhIHVuYSBsw61uZWFcbiAgICBjb25zdCBtaW5IZWlnaHQgPSAyMi4xXG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gMTIyLjFcblxuICAgIC8vIFBhcmEgbWVkaXIgY29ycmVjdGFtZW50ZSBlbCBzY3JvbGxIZWlnaHQsIG5lY2VzaXRhbW9zIHF1aXRhciB0ZW1wb3JhbG1lbnRlIGxhcyByZXN0cmljY2lvbmVzXG4gICAgY29uc3QgcHJldmlvdXNNaW5IZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHRcbiAgICBjb25zdCBwcmV2aW91c01heEhlaWdodCA9IHRleHRhcmVhLnN0eWxlLm1heEhlaWdodFxuXG4gICAgLy8gRXN0YWJsZWNlciBhbHR1cmEgYSAnYXV0bycgeSBxdWl0YXIgdGVtcG9yYWxtZW50ZSBtaW4taGVpZ2h0IHkgbWF4LWhlaWdodCBwYXJhIG1lZGlyIGNvcnJlY3RhbWVudGVcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0bydcbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSAnMHB4J1xuICAgIHRleHRhcmVhLnN0eWxlLm1heEhlaWdodCA9ICdub25lJ1xuXG4gICAgLy8gRm9yemFyIHJlZmxvdyBwYXJhIHF1ZSBlbCBuYXZlZ2Fkb3IgcmVjYWxjdWxlXG4gICAgdm9pZCB0ZXh0YXJlYS5vZmZzZXRIZWlnaHRcblxuICAgIC8vIEFob3JhIG1lZGlyIGVsIHNjcm9sbEhlaWdodCByZWFsIHNpbiByZXN0cmljY2lvbmVzXG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGV4dGFyZWEuc2Nyb2xsSGVpZ2h0XG5cbiAgICAvLyBDYWxjdWxhciBsYSBhbHR1cmEgZGUgdW5hIGzDrW5lYSB1c2FuZG8gbG9zIGVzdGlsb3MgY29tcHV0YWRvc1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpIHx8IDIwIC8vIEZhbGxiYWNrIGEgMjBweCBzaSBubyBlc3TDoSBkZWZpbmlkb1xuICAgIGNvbnN0IHBhZGRpbmdUb3AgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1RvcCkgfHwgMFxuICAgIGNvbnN0IHBhZGRpbmdCb3R0b20gPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ0JvdHRvbSkgfHwgMFxuICAgIGNvbnN0IGJvcmRlclRvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJUb3BXaWR0aCkgfHwgMFxuICAgIGNvbnN0IGJvcmRlckJvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJCb3R0b21XaWR0aCkgfHwgMFxuXG4gICAgLy8gQWx0dXJhIGRlIHVuYSBsw61uZWEgY29tcGxldGEgKGxpbmUtaGVpZ2h0ICsgcGFkZGluZyArIGJvcmRlcilcbiAgICBjb25zdCBzaW5nbGVMaW5lSGVpZ2h0ID0gbGluZUhlaWdodCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyVG9wICsgYm9yZGVyQm90dG9tXG5cbiAgICBjb25zdCBpc0VtcHR5ID0gdGV4dGFyZWEudmFsdWUudHJpbSgpID09PSAnJ1xuXG4gICAgLy8gTWVkaXIgZWwgYW5jaG8gZGVsIHRleHRvIHVzYW5kbyBDYW52YXMgcGFyYSBkZXRlcm1pbmFyIHNpIHNlIGVudnVlbHZlIGEgbcO6bHRpcGxlcyBsw61uZWFzXG4gICAgbGV0IGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSBmYWxzZVxuXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcblxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgLy8gRmFsbGJhY2sgc2kgQ2FudmFzIG5vIGVzdMOhIGRpc3BvbmlibGU6IHVzYXIgc2Nyb2xsSGVpZ2h0XG4gICAgICBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gc2Nyb2xsSGVpZ2h0ID4gc2luZ2xlTGluZUhlaWdodCAqIDEuNVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXh0YXJlYVN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRleHRhcmVhKVxuICAgICAgY29udGV4dC5mb250ID0gYCR7dGV4dGFyZWFTdHlsZXMuZm9udFdlaWdodH0gJHt0ZXh0YXJlYVN0eWxlcy5mb250U2l6ZX0gJHt0ZXh0YXJlYVN0eWxlcy5mb250RmFtaWx5fWBcblxuICAgICAgLy8gQ2FsY3VsYXIgZWwgYW5jaG8gZGlzcG9uaWJsZSAoYW5jaG8gdG90YWwgbWVub3MgcGFkZGluZyBpenF1aWVyZG8vZGVyZWNobyB5IGJvcmRlciBpenF1aWVyZG8vZGVyZWNobylcbiAgICAgIGNvbnN0IHBhZGRpbmdMZWZ0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdMZWZ0KSB8fCAwXG4gICAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0KSB8fCAwXG4gICAgICBjb25zdCBib3JkZXJMZWZ0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlckxlZnRXaWR0aCkgfHwgMFxuICAgICAgY29uc3QgYm9yZGVyUmlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyUmlnaHRXaWR0aCkgfHwgMFxuICAgICAgY29uc3QgdGV4dGFyZWFXaWR0aCA9IHRleHRhcmVhLm9mZnNldFdpZHRoIC0gcGFkZGluZ0xlZnQgLSBwYWRkaW5nUmlnaHQgLSBib3JkZXJMZWZ0IC0gYm9yZGVyUmlnaHRcbiAgICAgIGNvbnN0IHRleHQgPSB0ZXh0YXJlYS52YWx1ZSB8fCAnJ1xuICAgICAgY29uc3QgbGluZXMgPSB0ZXh0LnNwbGl0KCdcXG4nKVxuXG4gICAgICAvLyBTaSBoYXkgbcO6bHRpcGxlcyBsw61uZWFzIHBvciBzYWx0b3MgZGUgbMOtbmVhIGV4cGzDrWNpdG9zXG4gICAgICBpZiAobGluZXMubGVuZ3RoID4gMSkge1xuICAgICAgICBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHRleHRvIHNlIGVudnVlbHZlIG1pZGllbmRvIGVsIGFuY2hvIGRlIGNhZGEgbMOtbmVhXG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlXG4gICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gY29udGV4dC5tZWFzdXJlVGV4dChsaW5lKS53aWR0aFxuICAgICAgICAgIC8vIFNpIGFsZ3VuYSBsw61uZWEgZXMgbcOhcyBhbmNoYSBxdWUgZWwgdGV4dGFyZWEgZGlzcG9uaWJsZSwgc2UgZW52dWVsdmVcbiAgICAgICAgICBpZiAodGV4dFdpZHRoID4gdGV4dGFyZWFXaWR0aCkge1xuICAgICAgICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHRydWVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG5ld0hlaWdodDogbnVtYmVyXG4gICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgIC8vIEN1YW5kbyBlc3TDoSB2YWPDrW8sIHVzYXIgYWx0dXJhIG3DrW5pbWFcbiAgICAgIG5ld0hlaWdodCA9IG1pbkhlaWdodFxuICAgIH0gZWxzZSBpZiAoIWhhc011bHRpcGxlVmlzdWFsTGluZXMpIHtcbiAgICAgIC8vIEN1YW5kbyBoYXkgY29udGVuaWRvIHBlcm8gc29sbyB1bmEgbMOtbmVhIHZpc3VhbCwgdXNhciBhbHR1cmEgbcOtbmltYVxuICAgICAgbmV3SGVpZ2h0ID0gbWluSGVpZ2h0XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFBhcmEgbcO6bHRpcGxlcyBsw61uZWFzIHZpc3VhbGVzLCB1c2FyIGVsIHNjcm9sbEhlaWdodFxuICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoc2Nyb2xsSGVpZ2h0LCBtaW5IZWlnaHQpLCBtYXhIZWlnaHQpXG4gICAgfVxuXG4gICAgLy8gUmVzdGF1cmFyIGVzdGlsb3MgYW50ZXMgZGUgYXBsaWNhciBsYSBudWV2YSBhbHR1cmFcbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSBwcmV2aW91c01pbkhlaWdodCB8fCAnMjIuMXB4J1xuICAgIHRleHRhcmVhLnN0eWxlLm1heEhlaWdodCA9IHByZXZpb3VzTWF4SGVpZ2h0IHx8ICcxMjIuMXB4J1xuXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaW5wdXRSZWYuY3VycmVudCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9XG4gIH0sIFtkaXNhYmxlZF0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBDb21wYXJhY2nDs24gcXVlIG1hbmVqYSBjb3JyZWN0YW1lbnRlIHVuZGVmaW5lZC9udWxsXG4gICAgY29uc3QgYWdlbnRDaGFuZ2VkID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgIT09IGFnZW50Py5pZFxuICAgIC8vIENvbXBhcmFjacOzbiBlc3RyaWN0YSBxdWUgZGV0ZWN0YSBjYW1iaW9zIGluY2x1c28gY3VhbmRvIHVubyBlcyB1bmRlZmluZWRcbiAgICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnRcbiAgICBjb25zdCBjdXJyZW50Q2hhdElkID0gY2hhdElkXG4gICAgY29uc3QgY2hhdENoYW5nZWQgPSBwcmV2aW91c0NoYXRJZCAhPT0gY3VycmVudENoYXRJZFxuICAgIC8vIERldGVjdGFyIGNhbWJpbyBlc3BlY8OtZmljbyBkZSB1bmRlZmluZWQvbnVsbCBhIHVuIHZhbG9yIChudWV2byBjaGF0IC0+IGNvbnZlcnNhY2nDs24gdmllamEpXG4gICAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAgIChwcmV2aW91c0NoYXRJZCA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJiBjdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiYgY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICAgIGNvbnN0IG5ld0NoYXRTdGFydGVkID0gcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgIT09IG5ld0NoYXRLZXlcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkXG5cbiAgICBpZiAoXG4gICAgICAoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiZcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICFkaXNhYmxlZFxuICAgICkge1xuICAgICAgLy8gVXNhciBzZXRUaW1lb3V0IHBhcmEgYXNlZ3VyYXIgcXVlIGVsIERPTSBlc3TDqSBsaXN0b1xuICAgICAgLy8gQXVtZW50YXIgZWwgZGVsYXkgcGFyYSBjYXNvcyBkb25kZSBlbCBjb21wb25lbnRlIHNlIGVzdMOhIG1vbnRhbmRvXG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgICAgICB9XG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICAvLyBBY3R1YWxpemFyIGxhcyByZWZlcmVuY2lhcyBERVNQVcOJUyBkZSBsYSBjb21wYXJhY2nDs25cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQ2xlYXIgaW5wdXQgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgc2V0VmFsdWVUZXh0YXJlYSgnJylcbiAgICAgIHNldElzRGlzYWJsZWQodHJ1ZSlcbiAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgICAgfVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfSlcblxuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShhbmltYXRpb25GcmFtZUlkKVxuICB9LCBbdmFsdWVUZXh0YXJlYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gdmFsdWVUZXh0YXJlYS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICB9LCBbYXR0YWNobWVudHMsIHZhbHVlVGV4dGFyZWFdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKCkgPT4ge1xuICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlKGlucHV0UmVmLmN1cnJlbnQudmFsdWUsIGF0dGFjaG1lbnRzKVxuICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKCcnKVxuICAgICAgc2V0SXNEaXNhYmxlZCh0cnVlKVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoKSB7XG4gICAgICBvblNlbmRNZXNzYWdlKCcnLCBhdHRhY2htZW50cylcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoJycpXG4gICAgICBzZXRJc0Rpc2FibGVkKHRydWUpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGlmICghaXNEaXNhYmxlZCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2UoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBDaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSBlLnRhcmdldC52YWx1ZS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICAgIHNldFZhbHVlVGV4dGFyZWEoZS50YXJnZXQudmFsdWUpXG4gICAgb25DaGFuZ2U/LigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQYXN0ZSA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBpbnB1dFJlZi5jdXJyZW50Py52YWx1ZSA/PyAnJ1xuICAgICAgY29uc3QgaGFzVGV4dCA9IGN1cnJlbnRWYWx1ZS50cmltKCkubGVuZ3RoID4gMFxuICAgICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKGN1cnJlbnRWYWx1ZSlcbiAgICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICAgIH0sIDEwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZVNlbGVjdCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXNcbiAgICBpZiAoIWZpbGVzKSByZXR1cm5cblxuICAgIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgICBsZXQgZmlsZXNJbnNlcnRlZCA9IGF0dGFjaG1lbnRzLmxlbmd0aFxuXG4gICAgLy8gRGVmaW5pciBsw61taXRlcyBwYXJhIGRpZmVyZW50ZXMgdGlwb3MgZGUgYXJjaGl2b3NcbiAgICBjb25zdCBpc05ld0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT4gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnLCAnLnBkZiddLmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICBjb25zdCBpc09sZEZvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLnR4dCcsICcubWQnLCAnLmNzdicsICcuZG9jJywgJy5kb2N4JywgJy54bHN4JywgJy54bHMnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNBdWRpb0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5pbmNsdWRlcyhleHRlbnNpb24pXG5cbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGVkRmlsZSA9IGZhbHNlXG4gICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcblxuICAgICAgaWYgKCFhbGxvd2VkRmlsZVR5cGVzPy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZmlsZVNpemVzW2ZpbGUubmFtZV0gPSBmaWxlLnNpemVcblxuICAgICAgLy8gVmFsaWRhY2lvbmVzIGVzcGVjw61maWNhcyBzZWfDum4gZWwgdGlwbyBkZSBhcmNoaXZvXG4gICAgICBpZiAoaXNOZXdGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBudWV2b3MgZm9ybWF0b3M6IGhhc3RhIDQuOTlNQiBwb3IgYXJjaGl2bywgaGFzdGEgNSBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBmb3JtYXRvcyBhbnRlcmlvcmVzOiBoYXN0YSAxTUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IDUpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0F1ZGlvRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgYXJjaGl2b3MgZGUgYXVkaW86IGhhc3RhIDEwTUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gNSkge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZXhjbHVkZWRGaWxlKSB7XG4gICAgICAgIGZpbGVzSW5zZXJ0ZWQgKz0gMVxuICAgICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZS5uYW1lLCB7IHR5cGU6IHR5cGVGaWxlIH0pXG4gICAgICAgIG9uRmlsZUF0dGFjaD8uKHBhcnNlZEZpbGUpXG4gICAgICB9XG4gICAgfSlcblxuICAgIHNldElzRGlzYWJsZWQoZmFsc2UpXG4gICAgaWYgKGV4Y2x1ZGVkRmlsZXMubGVuZ3RoIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiB0cnVlLCBleGNsdWRlZEZpbGVzLCBleGNlZWRlZEZpbGVzLCBmaWxlU2l6ZXMgfSlcbiAgICB9XG5cbiAgICBpZiAoZmlsZUlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVBdHRhY2hDbGljayA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHsgb3B0aW9uOiAnZmlsZXMnIH0pXG4gICAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCA+PSA1KSByZXR1cm5cbiAgICBmaWxlSW5wdXRSZWYuY3VycmVudD8uY2xpY2soKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQXR0YWNobWVudCA9IChmaWxlSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uRGVsZXRlQXR0YWNobWVudD8uKGZpbGVJZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUJsdXIgPSAoKSA9PiB7XG4gICAgY29uc3QgaGFzVGV4dCA9IHZhbHVlVGV4dGFyZWEudHJpbSgpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcbiAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJGb2N1cyA9ICgpID0+IHNldElzRm9jdXNlZCh0cnVlKVxuICBjb25zdCBoYW5kbGVXcmFwcGVyQmx1ciA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghd3JhcHBlclJlZi5jdXJyZW50Py5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpXG4gICAgICB9XG4gICAgfSwgMClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN0b3BHZW5lcmF0aW9uID0gKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTdG9wUmVzcG9uc2UpXG4gICAgb25TdG9wR2VuZXJhdGlvbj8uKClcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBoaWRlSGVhZGVyQnV0dG9uc0ZvclByb2plY3RDb21wYW55ID0gYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnICYmIE51bWJlcih1c2VyLmNvbXBhbnlfaWQpID09PSAxMzMwM1xuICBjb25zdCBoYXNIZWFkZXJCdXR0b25zID0gIWlzTUFJQSAmJiAhaGlkZUhlYWRlckJ1dHRvbnNGb3JQcm9qZWN0Q29tcGFueVxuXG4gIGNvbnN0IGljb25Db2xvckluYWN0aXZlID0gaXNGb2N1c2VkID8gJyM2NjY2NjYnIDogJyM5OTknXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZE1BSUFJbnB1dFdyYXBwZXJcbiAgICAgICAgcmVmPXt3cmFwcGVyUmVmfVxuICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgICBoYXNBdHRhY2htZW50cz17ISFhdHRhY2htZW50cy5sZW5ndGh9XG4gICAgICAgIG9uRm9jdXM9e2hhbmRsZVdyYXBwZXJGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVXcmFwcGVyQmx1cn1cbiAgICAgID5cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudCBpc0ltYWdlPXtpc0ltYWdlfT5cbiAgICAgICAgICAgICAgICAgICAge2F0dGFjaG1lbnQuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGVBdHRhY2htZW50KGF0dGFjaG1lbnQuaWQpfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VHJhc2ggY29sb3I9XCJyZ2JhKDE5MSwgMTkxLCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50RGVsZXRlSWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnQ+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE1BSUFJbnB1dFxuICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgIG9uUGFzdGU9e2hhbmRsZVBhc3RlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgIC8+XG4gICAgICAgIDxTdHlsZWRNQUlBSW5wdXRCdXR0b25zIGhhc0hlYWRlckJ1dHRvbnM9e2hhc0hlYWRlckJ1dHRvbnN9PlxuICAgICAgICAgIHtoYXNIZWFkZXJCdXR0b25zID8gKFxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogJzEwcHgnIH19PlxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudHMubGVuZ3RoID49IDUgPyB0KCdjaGF0LmxpbWl0RmlsZXMnKSA6IHQoJ2NoYXQuYXR0YWNoRmlsZScpfT5cbiAgICAgICAgICAgICAgICA8U0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uXG4gICAgICAgICAgICAgICAgICBoYXNBdHRhY2htZW50cz17ISFhdHRhY2htZW50cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICBpc01heGltaXplZD17YXR0YWNobWVudHMubGVuZ3RoID49IDV9XG4gICAgICAgICAgICAgICAgICAkaXNGb2N1c2VkPXtpc0ZvY3VzZWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBdHRhY2hDbGlja31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8QXR0YWNoXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXshYXR0YWNobWVudHMubGVuZ3RoID8gaWNvbkNvbG9ySW5hY3RpdmUgOiBgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfWB9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXsxOH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxOH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc2VhcmNoV2ViJyl9PlxuICAgICAgICAgICAgICAgIDxTQ01JV3JhcHBlcldlYlNlYXJjaEJ1dHRvblxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9eyEhaXNXZWJTZWFyY2hBY3RpdmV9XG4gICAgICAgICAgICAgICAgICAkaXNGb2N1c2VkPXtpc0ZvY3VzZWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVXZWJTZWFyY2hUb2dnbGV9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc1dlYlNlYXJjaEFjdGl2ZSA/IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YCA6IGljb25Db2xvckluYWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTh9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17MTh9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuZGVlcFNlYXJjaCcpfT5cbiAgICAgICAgICAgICAgICA8U0NNSVdyYXBwZXJEZWVwU2VhcmNoQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpc0FjdGl2ZT17ISFpc0RlZXBTZWFyY2hBY3RpdmV9XG4gICAgICAgICAgICAgICAgICAkaXNGb2N1c2VkPXtpc0ZvY3VzZWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVEZWVwU2VhcmNoVG9nZ2xlfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxUZWxlc2NvcGVJY29uXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfWAgOiBpY29uQ29sb3JJbmFjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE4fVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE4fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NDTUlXcmFwcGVyRGVlcFNlYXJjaEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICB7aXNXcml0aW5nID8gKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc3RvcCcpfT5cbiAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wQnV0dG9uIGRpc2FibGVkPXtmYWxzZX0gb25DbGljaz17aGFuZGxlU3RvcEdlbmVyYXRpb259IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BJY29uIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVN0b3BCdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtpc1N0cmVhbWluZyA/IHQoJ2NoYXQuc2VuZCcpIDogdCgnY2hhdC5zZW5kJyl9PlxuICAgICAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRCdXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZCB8fCBkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBoYXNWYWx1ZXM9eyEhdmFsdWVUZXh0YXJlYS5sZW5ndGh9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFwZXJQbGFuZSBjb2xvcj1cIiNCRkJGQkZcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVNlbmRCdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRNQUlBSW5wdXRCdXR0b25zPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICBhY2NlcHQ9XCIudHh0LC5tZCwuY3N2LC5kb2MsLmRvY3gsLnBuZywuanBnLC5qcGVnLC5wZGYsLnhsc3gsLnhscywuZmxhYywubTRhLC5tcDMsLm1wNCwub2dhLC5vZ2csLndhdiwud2VibVwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUZpbGVTZWxlY3R9XG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ25vbmUnIH19XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlZE1BSUFJbnB1dFdyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGZpbGVTaXplczoge30gfSl9XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNsdWRlZEZpbGVzfVxuICAgICAgICAgIGV4Y2VlZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjZWVkZWRGaWxlc31cbiAgICAgICAgICBmaWxlU2l6ZXM9e21vZGFsUHJvcHMuZmlsZVNpemVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFnREEsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzFGLFNBQVNDLFVBQVUsUUFBUSw2Q0FBNkM7QUFDeEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUV0RSxTQUNFQyxjQUFjLEVBQ2RDLHdCQUF3QixFQUN4QkMsMkJBQTJCLEVBQzNCQywwQkFBMEIsRUFDMUJDLDJCQUEyQixFQUMzQkMsZUFBZSxFQUNmQyxzQkFBc0IsRUFDdEJDLHNCQUFzQixFQUN0QkMsb0JBQW9CLEVBQ3BCQyxvQkFBb0IsRUFDcEJDLGtCQUFrQixRQUNiLFVBQVU7QUFDakIsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsZ0JBQWdCLFFBQVEsa0NBQWtDO0FBQ25FLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsY0FBYyxRQUFRLHdDQUF3QztBQUV2RSxTQUFTQyxhQUFhLFFBQVEsd0JBQXdCO0FBQ3RELFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUNFQyxnQkFBZ0IsRUFDaEJDLFNBQVMsRUFDVEMsNEJBQTRCLEVBQzVCQyxvQkFBb0IsRUFDcEJDLHNCQUFzQixRQUNqQixxQ0FBcUM7QUFDNUMsU0FBU0MsY0FBYyxRQUFRLHdCQUF3QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBNkJ2RCxPQUFPLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFBQyxJQUFBLEVBZUE7RUFBQSxJQWRwQkMsYUFBYSxHQUFBRCxJQUFBLENBQWJDLGFBQWE7SUFDYkMsU0FBUyxHQUFBRixJQUFBLENBQVRFLFNBQVM7SUFDVEMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7SUFDUkMsV0FBVyxHQUFBSixJQUFBLENBQVhJLFdBQVc7SUFDWEMsU0FBUyxHQUFBTCxJQUFBLENBQVRLLFNBQVM7SUFDVEMsZ0JBQWdCLEdBQUFOLElBQUEsQ0FBaEJNLGdCQUFnQjtJQUNoQkMsV0FBVyxHQUFBUCxJQUFBLENBQVhPLFdBQVc7SUFDWEMsUUFBUSxHQUFBUixJQUFBLENBQVJRLFFBQVE7SUFBQUMsaUJBQUEsR0FBQVQsSUFBQSxDQUNSVSxZQUFZO0lBQVpBLFlBQVksR0FBQUQsaUJBQUEsY0FBRyxVQUFVLEdBQUFBLGlCQUFBO0lBQ3pCRSxZQUFZLEdBQUFYLElBQUEsQ0FBWlcsWUFBWTtJQUNaQyxrQkFBa0IsR0FBQVosSUFBQSxDQUFsQlksa0JBQWtCO0lBQUFDLGdCQUFBLEdBQUFiLElBQUEsQ0FDbEJjLFdBQVc7SUFBWEEsV0FBVyxHQUFBRCxnQkFBQSxjQUFHLEVBQUUsR0FBQUEsZ0JBQUE7SUFDaEJFLE1BQU0sR0FBQWYsSUFBQSxDQUFOZSxNQUFNO0lBQ05DLFVBQVUsR0FBQWhCLElBQUEsQ0FBVmdCLFVBQVU7RUFFVixJQUFBQyxLQUFBLEdBQWNuQyxJQUFJLENBQUMsQ0FBQztJQUFab0MsQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7RUFDVCxJQUFNQyxRQUFRLEdBQUcxRCxNQUFNLENBQXNCLElBQUksQ0FBQztFQUNsRCxJQUFNMkQsWUFBWSxHQUFHM0QsTUFBTSxDQUFtQixJQUFJLENBQUM7RUFDbkQsSUFBTTRELFVBQVUsR0FBRzVELE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBQy9DLElBQUE2RCxTQUFBLEdBQTBDNUQsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUFBNkQsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBL0NHLGFBQWEsR0FBQUYsVUFBQTtJQUFFRyxnQkFBZ0IsR0FBQUgsVUFBQTtFQUN0QyxJQUFBSSxVQUFBLEdBQW9DakUsUUFBUSxDQUFDLElBQUksQ0FBQztJQUFBa0UsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBM0NFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQUcsVUFBQSxHQUFrQ3JFLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXNFLFVBQUEsR0FBQVIsY0FBQSxDQUFBTyxVQUFBO0lBQTFDRSxTQUFTLEdBQUFELFVBQUE7SUFBRUUsWUFBWSxHQUFBRixVQUFBO0VBQzlCLElBQUFHLFVBQUEsR0FBb0N6RSxRQUFRLENBQUM7TUFDM0MwRSxNQUFNLEVBQUUsS0FBSztNQUNiQyxhQUFhLEVBQUUsRUFBYztNQUM3QkMsYUFBYSxFQUFFLEVBQWM7TUFDN0JDLFNBQVMsRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBQUFDLFVBQUEsR0FBQWhCLGNBQUEsQ0FBQVcsVUFBQTtJQUxLTSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBTWhDLElBQU1HLGNBQWMsR0FBR3pELFFBQVEsQ0FBQyxDQUFDO0VBQ2pDLElBQU0wRCxJQUFJLEdBQUdqRSxPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFBa0UsaUJBQUEsR0FBNEZqRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQXRHa0UsZUFBZSxHQUFBRCxpQkFBQSxDQUFmQyxlQUFlO0lBQUVDLGlCQUFpQixHQUFBRixpQkFBQSxDQUFqQkUsaUJBQWlCO0lBQUVDLGdCQUFnQixHQUFBSCxpQkFBQSxDQUFoQkcsZ0JBQWdCO0lBQUVDLGtCQUFrQixHQUFBSixpQkFBQSxDQUFsQkksa0JBQWtCO0lBQUVDLEtBQUssR0FBQUwsaUJBQUEsQ0FBTEssS0FBSztFQUN2RjtFQUNBLElBQU1DLGtCQUFrQixHQUFHMUYsTUFBTSxDQUFxQjJGLFNBQVMsQ0FBQztFQUNoRSxJQUFNQyxpQkFBaUIsR0FBRzVGLE1BQU0sQ0FBcUIyRixTQUFTLENBQUM7RUFDL0QsSUFBTUUscUJBQXFCLEdBQUc3RixNQUFNLENBQXFCMkYsU0FBUyxDQUFDO0VBRW5FLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUEsRUFBUztJQUNsQyxJQUFJTixrQkFBa0IsRUFBRTtNQUN0QkQsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQjtJQUNBRixlQUFlLENBQUMsQ0FBQztJQUNqQixJQUFJLENBQUNDLGlCQUFpQixFQUFFO01BQ3RCSixjQUFjLENBQUMxRCxNQUFNLENBQUN1RSxXQUFXLEVBQUU7UUFBRUMsTUFBTSxFQUFFO01BQVMsQ0FBQyxDQUFDO0lBQzFEO0VBQ0YsQ0FBQztFQUVELElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUEsRUFBUztJQUNuQyxJQUFJWCxpQkFBaUIsRUFBRTtNQUNyQkQsZUFBZSxDQUFDLENBQUM7SUFDbkI7SUFDQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQixJQUFJLENBQUNDLGtCQUFrQixFQUFFO01BQ3ZCTixjQUFjLENBQUMxRCxNQUFNLENBQUN1RSxXQUFXLEVBQUU7UUFBRUMsTUFBTSxFQUFFO01BQWMsQ0FBQyxDQUFDO0lBQy9EO0VBQ0YsQ0FBQztFQUVELElBQU1FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekIsSUFBTUMsUUFBUSxHQUFHekMsUUFBUSxDQUFDMEMsT0FBTztJQUNqQyxJQUFJLENBQUNELFFBQVEsRUFBRTtNQUNiO0lBQ0Y7O0lBRUE7SUFDQSxJQUFNRSxTQUFTLEdBQUcsSUFBSTtJQUN0QixJQUFNQyxTQUFTLEdBQUcsS0FBSzs7SUFFdkI7SUFDQSxJQUFNQyxpQkFBaUIsR0FBR0osUUFBUSxDQUFDSyxLQUFLLENBQUNILFNBQVM7SUFDbEQsSUFBTUksaUJBQWlCLEdBQUdOLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDRixTQUFTOztJQUVsRDtJQUNBSCxRQUFRLENBQUNLLEtBQUssQ0FBQ0UsTUFBTSxHQUFHLE1BQU07SUFDOUJQLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDSCxTQUFTLEdBQUcsS0FBSztJQUNoQ0YsUUFBUSxDQUFDSyxLQUFLLENBQUNGLFNBQVMsR0FBRyxNQUFNOztJQUVqQztJQUNBLEtBQUtILFFBQVEsQ0FBQ1EsWUFBWTs7SUFFMUI7SUFDQSxJQUFNQyxZQUFZLEdBQUdULFFBQVEsQ0FBQ1MsWUFBWTs7SUFFMUM7SUFDQSxJQUFNQyxhQUFhLEdBQUdDLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUNaLFFBQVEsQ0FBQztJQUN2RCxJQUFNYSxVQUFVLEdBQUdDLFVBQVUsQ0FBQ0osYUFBYSxDQUFDRyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUM7SUFDOUQsSUFBTUUsVUFBVSxHQUFHRCxVQUFVLENBQUNKLGFBQWEsQ0FBQ0ssVUFBVSxDQUFDLElBQUksQ0FBQztJQUM1RCxJQUFNQyxhQUFhLEdBQUdGLFVBQVUsQ0FBQ0osYUFBYSxDQUFDTSxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2xFLElBQU1DLFNBQVMsR0FBR0gsVUFBVSxDQUFDSixhQUFhLENBQUNRLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDL0QsSUFBTUMsWUFBWSxHQUFHTCxVQUFVLENBQUNKLGFBQWEsQ0FBQ1UsaUJBQWlCLENBQUMsSUFBSSxDQUFDOztJQUVyRTtJQUNBLElBQU1DLGdCQUFnQixHQUFHUixVQUFVLEdBQUdFLFVBQVUsR0FBR0MsYUFBYSxHQUFHQyxTQUFTLEdBQUdFLFlBQVk7SUFFM0YsSUFBTUcsT0FBTyxHQUFHdEIsUUFBUSxDQUFDdUIsS0FBSyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7O0lBRTVDO0lBQ0EsSUFBSUMsc0JBQXNCLEdBQUcsS0FBSztJQUVsQyxJQUFNQyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUMvQyxJQUFNQyxPQUFPLEdBQUdILE1BQU0sQ0FBQ0ksVUFBVSxDQUFDLElBQUksQ0FBQztJQUV2QyxJQUFJLENBQUNELE9BQU8sRUFBRTtNQUNaO01BQ0FKLHNCQUFzQixHQUFHaEIsWUFBWSxHQUFHWSxnQkFBZ0IsR0FBRyxHQUFHO0lBQ2hFLENBQUMsTUFBTTtNQUNMLElBQU1VLGNBQWMsR0FBR3BCLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUNaLFFBQVEsQ0FBQztNQUN4RDZCLE9BQU8sQ0FBQ0csSUFBSSxNQUFBQyxNQUFBLENBQU1GLGNBQWMsQ0FBQ0csVUFBVSxPQUFBRCxNQUFBLENBQUlGLGNBQWMsQ0FBQ0ksUUFBUSxPQUFBRixNQUFBLENBQUlGLGNBQWMsQ0FBQ0ssVUFBVSxDQUFFOztNQUVyRztNQUNBLElBQU1DLFdBQVcsR0FBR3ZCLFVBQVUsQ0FBQ0osYUFBYSxDQUFDMkIsV0FBVyxDQUFDLElBQUksQ0FBQztNQUM5RCxJQUFNQyxZQUFZLEdBQUd4QixVQUFVLENBQUNKLGFBQWEsQ0FBQzRCLFlBQVksQ0FBQyxJQUFJLENBQUM7TUFDaEUsSUFBTUMsVUFBVSxHQUFHekIsVUFBVSxDQUFDSixhQUFhLENBQUM4QixlQUFlLENBQUMsSUFBSSxDQUFDO01BQ2pFLElBQU1DLFdBQVcsR0FBRzNCLFVBQVUsQ0FBQ0osYUFBYSxDQUFDZ0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO01BQ25FLElBQU1DLGFBQWEsR0FBRzNDLFFBQVEsQ0FBQzRDLFdBQVcsR0FBR1AsV0FBVyxHQUFHQyxZQUFZLEdBQUdDLFVBQVUsR0FBR0UsV0FBVztNQUNsRyxJQUFNSSxJQUFJLEdBQUc3QyxRQUFRLENBQUN1QixLQUFLLElBQUksRUFBRTtNQUNqQyxJQUFNdUIsS0FBSyxHQUFHRCxJQUFJLENBQUNFLEtBQUssQ0FBQyxJQUFJLENBQUM7O01BRTlCO01BQ0EsSUFBSUQsS0FBSyxDQUFDRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3BCdkIsc0JBQXNCLEdBQUcsSUFBSTtNQUMvQixDQUFDLE1BQU07UUFDTDtRQUFBLElBQUF3QixTQUFBLEdBQUFDLDBCQUFBLENBQ21CSixLQUFLO1VBQUFLLEtBQUE7UUFBQTtVQUF4QixLQUFBRixTQUFBLENBQUFHLENBQUEsTUFBQUQsS0FBQSxHQUFBRixTQUFBLENBQUFJLENBQUEsSUFBQUMsSUFBQSxHQUEwQjtZQUFBLElBQWZDLElBQUksR0FBQUosS0FBQSxDQUFBNUIsS0FBQTtZQUNiLElBQUlnQyxJQUFJLENBQUMvQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4QixJQUFNZ0MsU0FBUyxHQUFHM0IsT0FBTyxDQUFDNEIsV0FBVyxDQUFDRixJQUFJLENBQUMsQ0FBQ0csS0FBSztZQUNqRDtZQUNBLElBQUlGLFNBQVMsR0FBR2IsYUFBYSxFQUFFO2NBQzdCbEIsc0JBQXNCLEdBQUcsSUFBSTtjQUM3QjtZQUNGO1VBQ0Y7UUFBQyxTQUFBa0MsR0FBQTtVQUFBVixTQUFBLENBQUFXLENBQUEsQ0FBQUQsR0FBQTtRQUFBO1VBQUFWLFNBQUEsQ0FBQVksQ0FBQTtRQUFBO01BQ0g7SUFDRjtJQUVBLElBQUlDLFNBQWlCO0lBQ3JCLElBQUl4QyxPQUFPLEVBQUU7TUFDWDtNQUNBd0MsU0FBUyxHQUFHNUQsU0FBUztJQUN2QixDQUFDLE1BQU0sSUFBSSxDQUFDdUIsc0JBQXNCLEVBQUU7TUFDbEM7TUFDQXFDLFNBQVMsR0FBRzVELFNBQVM7SUFDdkIsQ0FBQyxNQUFNO01BQ0w7TUFDQTRELFNBQVMsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUNELElBQUksQ0FBQ0UsR0FBRyxDQUFDeEQsWUFBWSxFQUFFUCxTQUFTLENBQUMsRUFBRUMsU0FBUyxDQUFDO0lBQ3BFOztJQUVBO0lBQ0FILFFBQVEsQ0FBQ0ssS0FBSyxDQUFDSCxTQUFTLEdBQUdFLGlCQUFpQixJQUFJLFFBQVE7SUFDeERKLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDRixTQUFTLEdBQUdHLGlCQUFpQixJQUFJLFNBQVM7SUFFekROLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDRSxNQUFNLE1BQUEwQixNQUFBLENBQU02QixTQUFTLE9BQUk7RUFDMUMsQ0FBQztFQUVEbEssU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJMkQsUUFBUSxDQUFDMEMsT0FBTyxJQUFJLENBQUMxRCxRQUFRLEVBQUU7TUFDakNnQixRQUFRLENBQUMwQyxPQUFPLENBQUNpRSxLQUFLLENBQUMsQ0FBQztNQUN4Qm5FLFlBQVksQ0FBQyxDQUFDO0lBQ2hCO0VBQ0YsQ0FBQyxFQUFFLENBQUN4RCxRQUFRLENBQUMsQ0FBQzs7RUFFZDtFQUNBM0MsU0FBUyxDQUFDLFlBQU07SUFDZDtJQUNBLElBQU11SyxZQUFZLEdBQUc1RSxrQkFBa0IsQ0FBQ1UsT0FBTyxNQUFLWCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRThFLEVBQUU7SUFDN0Q7SUFDQSxJQUFNQyxjQUFjLEdBQUc1RSxpQkFBaUIsQ0FBQ1EsT0FBTztJQUNoRCxJQUFNcUUsYUFBYSxHQUFHbkgsTUFBTTtJQUM1QixJQUFNb0gsV0FBVyxHQUFHRixjQUFjLEtBQUtDLGFBQWE7SUFDcEQ7SUFDQSxJQUFNRSwyQkFBMkIsR0FDL0IsQ0FBQ0gsY0FBYyxLQUFLN0UsU0FBUyxJQUFJNkUsY0FBYyxLQUFLLElBQUksS0FBS0MsYUFBYSxLQUFLOUUsU0FBUyxJQUFJOEUsYUFBYSxLQUFLLElBQUk7SUFDcEgsSUFBTUcsY0FBYyxHQUFHL0UscUJBQXFCLENBQUNPLE9BQU8sS0FBSzdDLFVBQVU7SUFDbkUsSUFBTXNILGNBQWMsR0FBR25GLGtCQUFrQixDQUFDVSxPQUFPLEtBQUtULFNBQVMsSUFBSUMsaUJBQWlCLENBQUNRLE9BQU8sS0FBS1QsU0FBUztJQUUxRyxJQUNFLENBQUMyRSxZQUFZLElBQUlJLFdBQVcsSUFBSUMsMkJBQTJCLElBQUlDLGNBQWMsSUFBSUMsY0FBYyxLQUMvRm5ILFFBQVEsQ0FBQzBDLE9BQU8sSUFDaEIsQ0FBQzFELFFBQVEsRUFDVDtNQUNBO01BQ0E7TUFDQSxJQUFNb0ksS0FBSyxHQUFHRCxjQUFjLElBQUlGLDJCQUEyQixHQUFHLEdBQUcsR0FBRyxHQUFHO01BQ3ZFSSxVQUFVLENBQUMsWUFBTTtRQUNmLElBQUlySCxRQUFRLENBQUMwQyxPQUFPLElBQUksQ0FBQzFELFFBQVEsRUFBRTtVQUNqQ2dCLFFBQVEsQ0FBQzBDLE9BQU8sQ0FBQ2lFLEtBQUssQ0FBQyxDQUFDO1FBQzFCO01BQ0YsQ0FBQyxFQUFFUyxLQUFLLENBQUM7SUFDWDs7SUFFQTtJQUNBcEYsa0JBQWtCLENBQUNVLE9BQU8sR0FBR1gsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUU4RSxFQUFFO0lBQ3RDM0UsaUJBQWlCLENBQUNRLE9BQU8sR0FBRzlDLE1BQU07SUFDbEN1QyxxQkFBcUIsQ0FBQ08sT0FBTyxHQUFHN0MsVUFBVTtFQUM1QyxDQUFDLEVBQUUsQ0FBQ2tDLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFOEUsRUFBRSxFQUFFakgsTUFBTSxFQUFFQyxVQUFVLEVBQUViLFFBQVEsQ0FBQyxDQUFDOztFQUU3QztFQUNBM0MsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNaUwsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBQSxFQUFTO01BQ2hDL0csZ0JBQWdCLENBQUMsRUFBRSxDQUFDO01BQ3BCSSxhQUFhLENBQUMsSUFBSSxDQUFDO01BQ25CLElBQUlYLFFBQVEsQ0FBQzBDLE9BQU8sRUFBRTtRQUNwQjFDLFFBQVEsQ0FBQzBDLE9BQU8sQ0FBQ3NCLEtBQUssR0FBRyxFQUFFO01BQzdCO01BQ0F4QixZQUFZLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ0QixRQUFRLENBQUNtRCxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRUQsbUJBQW1CLENBQUM7SUFFdEUsT0FBTyxZQUFNO01BQ1hsRCxRQUFRLENBQUNvRCxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRUYsbUJBQW1CLENBQUM7SUFDM0UsQ0FBQztFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTmpMLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTW9MLGdCQUFnQixHQUFHQyxxQkFBcUIsQ0FBQyxZQUFNO01BQ25EbEYsWUFBWSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBRUYsT0FBTztNQUFBLE9BQU1tRixvQkFBb0IsQ0FBQ0YsZ0JBQWdCLENBQUM7SUFBQTtFQUNyRCxDQUFDLEVBQUUsQ0FBQ25ILGFBQWEsQ0FBQyxDQUFDO0VBRW5CakUsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNdUwsT0FBTyxHQUFHdEgsYUFBYSxDQUFDMkQsSUFBSSxDQUFDLENBQUMsQ0FBQ3dCLE1BQU0sR0FBRyxDQUFDO0lBQy9DLElBQU1vQyxjQUFjLEdBQUdsSSxXQUFXLENBQUM4RixNQUFNLEdBQUcsQ0FBQztJQUM3QzlFLGFBQWEsQ0FBQyxDQUFDaUgsT0FBTyxJQUFJLENBQUNDLGNBQWMsQ0FBQztFQUM1QyxDQUFDLEVBQUUsQ0FBQ2xJLFdBQVcsRUFBRVcsYUFBYSxDQUFDLENBQUM7RUFFaEMsSUFBTXdILGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBUztJQUM5QixJQUFJOUgsUUFBUSxDQUFDMEMsT0FBTyxFQUFFO01BQ3BCNUQsYUFBYSxDQUFDa0IsUUFBUSxDQUFDMEMsT0FBTyxDQUFDc0IsS0FBSyxFQUFFckUsV0FBVyxDQUFDO01BQ2xESyxRQUFRLENBQUMwQyxPQUFPLENBQUNzQixLQUFLLEdBQUcsRUFBRTtNQUMzQnpELGdCQUFnQixDQUFDLEVBQUUsQ0FBQztNQUNwQkksYUFBYSxDQUFDLElBQUksQ0FBQztNQUNuQjZCLFlBQVksQ0FBQyxDQUFDO01BQ2Q7SUFDRjtJQUNBLElBQUk3QyxXQUFXLENBQUM4RixNQUFNLEVBQUU7TUFDdEIzRyxhQUFhLENBQUMsRUFBRSxFQUFFYSxXQUFXLENBQUM7TUFDOUJZLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztNQUNwQkksYUFBYSxDQUFDLElBQUksQ0FBQztJQUNyQjtFQUNGLENBQUM7RUFFRCxJQUFNb0gsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJMUIsQ0FBcUMsRUFBSztJQUMvRCxJQUFJQSxDQUFDLENBQUMyQixHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMzQixDQUFDLENBQUM0QixRQUFRLEVBQUU7TUFDcEM1QixDQUFDLENBQUM2QixjQUFjLENBQUMsQ0FBQztNQUNsQixJQUFJLENBQUN4SCxVQUFVLElBQUksQ0FBQzFCLFFBQVEsRUFBRTtRQUM1QjhJLGlCQUFpQixDQUFDLENBQUM7TUFDckI7SUFDRjtFQUNGLENBQUM7RUFFRCxJQUFNSyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSTlCLENBQW1DLEVBQUs7SUFDNUQsSUFBTXVCLE9BQU8sR0FBR3ZCLENBQUMsQ0FBQytCLE1BQU0sQ0FBQ3BFLEtBQUssQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQ3dCLE1BQU0sR0FBRyxDQUFDO0lBQ2hELElBQU1vQyxjQUFjLEdBQUdsSSxXQUFXLENBQUM4RixNQUFNLEdBQUcsQ0FBQztJQUM3QzlFLGFBQWEsQ0FBQyxDQUFDaUgsT0FBTyxJQUFJLENBQUNDLGNBQWMsQ0FBQztJQUMxQ3RILGdCQUFnQixDQUFDOEYsQ0FBQyxDQUFDK0IsTUFBTSxDQUFDcEUsS0FBSyxDQUFDO0lBQ2hDM0UsUUFBUSxhQUFSQSxRQUFRLGVBQVJBLFFBQVEsQ0FBRyxDQUFDO0VBQ2QsQ0FBQztFQUVELElBQU1nSixXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCaEIsVUFBVSxDQUFDLFlBQU07TUFBQSxJQUFBaUIscUJBQUEsRUFBQUMsaUJBQUE7TUFDZi9GLFlBQVksQ0FBQyxDQUFDO01BQ2QsSUFBTWdHLFlBQVksSUFBQUYscUJBQUEsSUFBQUMsaUJBQUEsR0FBR3ZJLFFBQVEsQ0FBQzBDLE9BQU8sY0FBQTZGLGlCQUFBLHVCQUFoQkEsaUJBQUEsQ0FBa0J2RSxLQUFLLGNBQUFzRSxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLEVBQUU7TUFDbEQsSUFBTVYsT0FBTyxHQUFHWSxZQUFZLENBQUN2RSxJQUFJLENBQUMsQ0FBQyxDQUFDd0IsTUFBTSxHQUFHLENBQUM7TUFDOUMsSUFBTW9DLGNBQWMsR0FBR2xJLFdBQVcsQ0FBQzhGLE1BQU0sR0FBRyxDQUFDO01BQzdDbEYsZ0JBQWdCLENBQUNpSSxZQUFZLENBQUM7TUFDOUI3SCxhQUFhLENBQUMsQ0FBQ2lILE9BQU8sSUFBSSxDQUFDQyxjQUFjLENBQUM7SUFDNUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUNSLENBQUM7RUFFRCxJQUFNWSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJcEMsQ0FBZ0MsRUFBSztJQUM3RCxJQUFNcUMsS0FBSyxHQUFHckMsQ0FBQyxDQUFDK0IsTUFBTSxDQUFDTSxLQUFLO0lBQzVCLElBQUksQ0FBQ0EsS0FBSyxFQUFFO0lBRVosSUFBTXZILGFBQXVCLEdBQUcsRUFBRTtJQUNsQyxJQUFNRCxhQUF1QixHQUFHLEVBQUU7SUFDbEMsSUFBTUUsU0FBaUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsSUFBSXVILGFBQWEsR0FBR2hKLFdBQVcsQ0FBQzhGLE1BQU07O0lBRXRDO0lBQ0EsSUFBTW1ELFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxTQUFpQjtNQUFBLE9BQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQ0MsUUFBUSxDQUFDRCxTQUFTLENBQUM7SUFBQTtJQUNoRyxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUYsU0FBaUI7TUFBQSxPQUNwQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDQyxRQUFRLENBQUNELFNBQVMsQ0FBQztJQUFBO0lBQy9FLElBQU1HLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUgsU0FBaUI7TUFBQSxPQUN0QyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQ0MsUUFBUSxDQUFDRCxTQUFTLENBQUM7SUFBQTtJQUV4RkksS0FBSyxDQUFDQyxJQUFJLENBQUNSLEtBQUssQ0FBQyxDQUFDUyxPQUFPLENBQUMsVUFBQUMsSUFBSSxFQUFJO01BQUEsSUFBQUMsa0JBQUE7TUFDaEMsSUFBSUMsWUFBWSxHQUFHLEtBQUs7TUFDeEIsSUFBTUMsYUFBYSxHQUFHSCxJQUFJLENBQUNJLElBQUksQ0FBQ2hFLEtBQUssQ0FBQyxHQUFHLENBQUM7TUFDMUMsSUFBTWlFLGFBQWEsR0FBR0YsYUFBYSxDQUFDOUQsTUFBTSxHQUFHLENBQUMsT0FBQWYsTUFBQSxFQUFBMkUsa0JBQUEsR0FBT0UsYUFBYSxDQUFDRyxHQUFHLENBQUMsQ0FBQyxjQUFBTCxrQkFBQSx1QkFBbkJBLGtCQUFBLENBQXFCTSxXQUFXLENBQUMsQ0FBQyxJQUFLLEVBQUU7TUFFOUYsSUFBSSxFQUFDM0wsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsZUFBaEJBLGdCQUFnQixDQUFFOEssUUFBUSxDQUFDVyxhQUFhLENBQUMsR0FBRTtRQUM5QztNQUNGO01BRUFySSxTQUFTLENBQUNnSSxJQUFJLENBQUNJLElBQUksQ0FBQyxHQUFHSixJQUFJLENBQUNRLElBQUk7O01BRWhDO01BQ0EsSUFBSWhCLFdBQVcsQ0FBQ2EsYUFBYSxDQUFDLEVBQUU7UUFDOUI7UUFDQSxJQUFJTCxJQUFJLENBQUNRLElBQUksR0FBRzFMLDRCQUE0QixHQUFHLElBQUksR0FBRyxJQUFJLEVBQUU7VUFDMURpRCxhQUFhLENBQUMwSSxJQUFJLENBQUNULElBQUksQ0FBQ0ksSUFBSSxDQUFDO1VBQzdCRixZQUFZLEdBQUcsSUFBSTtRQUNyQjtRQUVBLElBQUlYLGFBQWEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1VBQ3pCekgsYUFBYSxDQUFDMkksSUFBSSxDQUFDVCxJQUFJLENBQUNJLElBQUksQ0FBQztVQUM3QkYsWUFBWSxHQUFHLElBQUk7UUFDckI7TUFDRixDQUFDLE1BQU0sSUFBSVAsV0FBVyxDQUFDVSxhQUFhLENBQUMsRUFBRTtRQUNyQztRQUNBLElBQUlMLElBQUksQ0FBQ1EsSUFBSSxHQUFHekwsb0JBQW9CLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRTtVQUNsRGdELGFBQWEsQ0FBQzBJLElBQUksQ0FBQ1QsSUFBSSxDQUFDSSxJQUFJLENBQUM7VUFDN0JGLFlBQVksR0FBRyxJQUFJO1FBQ3JCO1FBRUEsSUFBSVgsYUFBYSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7VUFDekJ6SCxhQUFhLENBQUMySSxJQUFJLENBQUNULElBQUksQ0FBQ0ksSUFBSSxDQUFDO1VBQzdCRixZQUFZLEdBQUcsSUFBSTtRQUNyQjtNQUNGLENBQUMsTUFBTSxJQUFJTixhQUFhLENBQUNTLGFBQWEsQ0FBQyxFQUFFO1FBQ3ZDO1FBQ0EsSUFBSUwsSUFBSSxDQUFDUSxJQUFJLEdBQUd4TCxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFO1VBQ3BEK0MsYUFBYSxDQUFDMEksSUFBSSxDQUFDVCxJQUFJLENBQUNJLElBQUksQ0FBQztVQUM3QkYsWUFBWSxHQUFHLElBQUk7UUFDckI7UUFFQSxJQUFJWCxhQUFhLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtVQUN6QnpILGFBQWEsQ0FBQzJJLElBQUksQ0FBQ1QsSUFBSSxDQUFDSSxJQUFJLENBQUM7VUFDN0JGLFlBQVksR0FBRyxJQUFJO1FBQ3JCO01BQ0Y7TUFFQSxJQUFJLENBQUNBLFlBQVksRUFBRTtRQUNqQlgsYUFBYSxJQUFJLENBQUM7UUFDbEIsSUFBTW1CLFFBQVEsR0FBR1YsSUFBSSxDQUFDVyxJQUFJLElBQUk5TCxTQUFTLENBQUN3TCxhQUFhLENBQUM7UUFDdEQsSUFBTU8sVUFBVSxHQUFHLElBQUlDLElBQUksQ0FBQyxDQUFDYixJQUFJLENBQUMsRUFBRUEsSUFBSSxDQUFDSSxJQUFJLEVBQUU7VUFBRU8sSUFBSSxFQUFFRDtRQUFTLENBQUMsQ0FBQztRQUNsRXRLLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUd3SyxVQUFVLENBQUM7TUFDNUI7SUFDRixDQUFDLENBQUM7SUFFRnJKLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDcEIsSUFBSU8sYUFBYSxDQUFDdUUsTUFBTSxJQUFJdEUsYUFBYSxDQUFDc0UsTUFBTSxFQUFFO01BQ2hEbEUsYUFBYSxDQUFDO1FBQUVOLE1BQU0sRUFBRSxJQUFJO1FBQUVDLGFBQWEsRUFBYkEsYUFBYTtRQUFFQyxhQUFhLEVBQWJBLGFBQWE7UUFBRUMsU0FBUyxFQUFUQTtNQUFVLENBQUMsQ0FBQztJQUMxRTtJQUVBLElBQUluQixZQUFZLENBQUN5QyxPQUFPLEVBQUU7TUFDeEJ6QyxZQUFZLENBQUN5QyxPQUFPLENBQUNzQixLQUFLLEdBQUcsRUFBRTtJQUNqQztFQUNGLENBQUM7RUFFRCxJQUFNa0csaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQSxFQUFTO0lBQUEsSUFBQUMscUJBQUE7SUFDOUIzSSxjQUFjLENBQUMxRCxNQUFNLENBQUN1RSxXQUFXLEVBQUU7TUFBRUMsTUFBTSxFQUFFO0lBQVEsQ0FBQyxDQUFDO0lBQ3ZELElBQUkzQyxXQUFXLENBQUM4RixNQUFNLElBQUksQ0FBQyxFQUFFO0lBQzdCLENBQUEwRSxxQkFBQSxHQUFBbEssWUFBWSxDQUFDeUMsT0FBTyxjQUFBeUgscUJBQUEsZUFBcEJBLHFCQUFBLENBQXNCQyxLQUFLLENBQUMsQ0FBQztFQUMvQixDQUFDO0VBRUQsSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsTUFBYyxFQUFLO0lBQ2pEN0ssa0JBQWtCLGFBQWxCQSxrQkFBa0IsZUFBbEJBLGtCQUFrQixDQUFHNkssTUFBTSxDQUFDO0VBQzlCLENBQUM7RUFFRCxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQSxFQUFTO0lBQ3ZCLElBQU0zQyxPQUFPLEdBQUd0SCxhQUFhLENBQUMyRCxJQUFJLENBQUMsQ0FBQyxDQUFDd0IsTUFBTSxHQUFHLENBQUM7SUFDL0MsSUFBTW9DLGNBQWMsR0FBR2xJLFdBQVcsQ0FBQzhGLE1BQU0sR0FBRyxDQUFDO0lBQzdDOUUsYUFBYSxDQUFDLENBQUNpSCxPQUFPLElBQUksQ0FBQ0MsY0FBYyxDQUFDO0VBQzVDLENBQUM7RUFFRCxJQUFNMkMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQTtJQUFBLE9BQVN6SixZQUFZLENBQUMsSUFBSSxDQUFDO0VBQUE7RUFDbkQsSUFBTTBKLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBUztJQUM5QnBELFVBQVUsQ0FBQyxZQUFNO01BQUEsSUFBQXFELG1CQUFBO01BQ2YsSUFBSSxHQUFBQSxtQkFBQSxHQUFDeEssVUFBVSxDQUFDd0MsT0FBTyxjQUFBZ0ksbUJBQUEsZUFBbEJBLG1CQUFBLENBQW9CQyxRQUFRLENBQUN2RyxRQUFRLENBQUN3RyxhQUFhLENBQUMsR0FBRTtRQUN6RDdKLFlBQVksQ0FBQyxLQUFLLENBQUM7TUFDckI7SUFDRixDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ1AsQ0FBQztFQUVELElBQU04SixvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBLEVBQVM7SUFDakNySixjQUFjLENBQUMxRCxNQUFNLENBQUNnTixrQkFBa0IsQ0FBQztJQUN6QzNMLGdCQUFnQixhQUFoQkEsZ0JBQWdCLGVBQWhCQSxnQkFBZ0IsQ0FBRyxDQUFDO0VBQ3RCLENBQUM7RUFFRCxJQUFNNEwsTUFBTSxHQUFHbk4sY0FBYyxDQUFDbUUsS0FBYyxDQUFDO0VBQzdDLElBQU1pSixrQ0FBa0MsR0FBRyxDQUFBakosS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVrSixNQUFNLE1BQUssU0FBUyxJQUFJQyxNQUFNLENBQUN6SixJQUFJLENBQUMwSixVQUFVLENBQUMsS0FBSyxLQUFLO0VBQzNHLElBQU1DLGdCQUFnQixHQUFHLENBQUNMLE1BQU0sSUFBSSxDQUFDQyxrQ0FBa0M7RUFFdkUsSUFBTUssaUJBQWlCLEdBQUd2SyxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU07RUFFeEQsb0JBQ0VyQyxLQUFBLENBQUFFLFNBQUE7SUFBQTJNLFFBQUEsZ0JBQ0U3TSxLQUFBLENBQUNyQixzQkFBc0I7TUFDckJtTyxHQUFHLEVBQUVyTCxVQUFXO01BQ2hCbEIsUUFBUSxFQUFFLEtBQU07TUFDaEJPLFlBQVksRUFBRUEsWUFBYTtNQUMzQnNJLGNBQWMsRUFBRSxDQUFDLENBQUNsSSxXQUFXLENBQUM4RixNQUFPO01BQ3JDK0YsT0FBTyxFQUFFaEIsa0JBQW1CO01BQzVCaUIsTUFBTSxFQUFFaEIsaUJBQWtCO01BQUFhLFFBQUEsR0FFekIsQ0FBQyxDQUFDM0wsV0FBVyxDQUFDOEYsTUFBTSxpQkFDbkJsSCxJQUFBO1FBQUt1RSxLQUFLLEVBQUU7VUFBRTRJLE9BQU8sRUFBRSxNQUFNO1VBQUVDLEdBQUcsRUFBRSxNQUFNO1VBQUVDLFVBQVUsRUFBRTtRQUFTLENBQUU7UUFBQU4sUUFBQSxFQUNoRTNMLFdBQVcsQ0FBQ2tNLEdBQUcsQ0FBQyxVQUFDQyxVQUFVLEVBQUVDLEtBQUssRUFBSztVQUFBLElBQUFDLG1CQUFBLEVBQUFDLGdCQUFBO1VBQ3RDLElBQU0xQyxhQUFhLEdBQUd1QyxVQUFVLENBQUN0QyxJQUFJLENBQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDO1VBQ2hELElBQU1pRSxhQUFhLEdBQUdGLGFBQWEsQ0FBQzlELE1BQU0sR0FBRyxDQUFDLE9BQUFmLE1BQUEsRUFBQXNILG1CQUFBLEdBQU96QyxhQUFhLENBQUNHLEdBQUcsQ0FBQyxDQUFDLGNBQUFzQyxtQkFBQSx1QkFBbkJBLG1CQUFBLENBQXFCckMsV0FBVyxDQUFDLENBQUMsSUFBSyxFQUFFO1VBQzlGLElBQU11QyxrQkFBa0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUNwRCxRQUFRLENBQUNXLGFBQWEsQ0FBQztVQUM1RSxJQUFNMEMsYUFBYSxJQUFBRixnQkFBQSxHQUFHSCxVQUFVLENBQUMvQixJQUFJLGNBQUFrQyxnQkFBQSx1QkFBZkEsZ0JBQUEsQ0FBaUJHLFVBQVUsQ0FBQyxRQUFRLENBQUM7VUFDM0QsSUFBTUMsT0FBTyxHQUFHRixhQUFhLElBQUlELGtCQUFrQjtVQUNuRCxvQkFDRTNOLElBQUEsQ0FBQzNCLE9BQU87WUFBQzBQLEtBQUssRUFBRVIsVUFBVSxDQUFDdEMsSUFBSztZQUFBOEIsUUFBQSxlQUM5QjdNLEtBQUEsQ0FBQzVCLGNBQWM7Y0FBQ3dQLE9BQU8sRUFBRUEsT0FBUTtjQUFBZixRQUFBLEdBQzlCUSxVQUFVLENBQUNTLElBQUksZUFDaEJoTyxJQUFBLENBQUN6Qix3QkFBd0I7Z0JBQUMwUCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtrQkFBQSxPQUFRbkMsc0JBQXNCLENBQUN5QixVQUFVLENBQUNqRixFQUFFLENBQUM7Z0JBQUEsQ0FBQztnQkFBQXlFLFFBQUEsZUFDN0UvTSxJQUFBLENBQUM1QixLQUFLO2tCQUFDOFAsS0FBSyxFQUFDLHdCQUF3QjtrQkFBQ3RHLEtBQUssRUFBRSxFQUFHO2tCQUFDbkQsTUFBTSxFQUFFO2dCQUFHLENBQUU7Y0FBQyxDQUN2QyxDQUFDO1lBQUEsQ0FDYjtVQUFDLE1BQUEwQixNQUFBLENBTnNCcUgsS0FBSyxPQUFBckgsTUFBQSxDQUFJb0gsVUFBVSxDQUFDdEMsSUFBSSxDQU94RCxDQUFDO1FBRWQsQ0FBQztNQUFDLENBQ0MsQ0FDTixlQUNEakwsSUFBQSxDQUFDckIsZUFBZTtRQUNkcU8sR0FBRyxFQUFFdkwsUUFBUztRQUNkaEIsUUFBUSxFQUFFQSxRQUFTO1FBQ25CSyxRQUFRLEVBQUU4SSxZQUFhO1FBQ3ZCdUUsU0FBUyxFQUFFM0UsYUFBYztRQUN6QjRFLE9BQU8sRUFBRXRFLFdBQVk7UUFDckJqSixXQUFXLEVBQUVBLFdBQVk7UUFDekJHLFlBQVksRUFBRUEsWUFBYTtRQUMzQmtNLE1BQU0sRUFBRWxCO01BQVcsQ0FDcEIsQ0FBQyxlQUNGOUwsS0FBQSxDQUFDdEIsc0JBQXNCO1FBQUNpTyxnQkFBZ0IsRUFBRUEsZ0JBQWlCO1FBQUFFLFFBQUEsR0FDeERGLGdCQUFnQixnQkFDZjNNLEtBQUE7VUFBS3FFLEtBQUssRUFBRTtZQUFFNEksT0FBTyxFQUFFLE1BQU07WUFBRUMsR0FBRyxFQUFFO1VBQU8sQ0FBRTtVQUFBTCxRQUFBLGdCQUMzQy9NLElBQUEsQ0FBQzNCLE9BQU87WUFBQzBQLEtBQUssRUFBRTNNLFdBQVcsQ0FBQzhGLE1BQU0sSUFBSSxDQUFDLEdBQUcxRixDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBR0EsQ0FBQyxDQUFDLGlCQUFpQixDQUFFO1lBQUF1TCxRQUFBLGVBQ3BGL00sSUFBQSxDQUFDeEIsMkJBQTJCO2NBQzFCOEssY0FBYyxFQUFFLENBQUMsQ0FBQ2xJLFdBQVcsQ0FBQzhGLE1BQU87Y0FDckNtSCxXQUFXLEVBQUVqTixXQUFXLENBQUM4RixNQUFNLElBQUksQ0FBRTtjQUNyQ29ILFVBQVUsRUFBRS9MLFNBQVU7Y0FDdEIwTCxPQUFPLEVBQUV0QyxpQkFBa0I7Y0FBQW9CLFFBQUEsZUFFM0IvTSxJQUFBLENBQUM5QixNQUFNO2dCQUNMZ1EsS0FBSyxFQUFFLENBQUM5TSxXQUFXLENBQUM4RixNQUFNLEdBQUc0RixpQkFBaUIsTUFBQTNHLE1BQUEsQ0FBTXJHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBRztnQkFDMUU4SCxLQUFLLEVBQUUsRUFBRztnQkFDVm5ELE1BQU0sRUFBRTtjQUFHLENBQ1o7WUFBQyxDQUN5QjtVQUFDLENBQ3ZCLENBQUMsZUFDVnpFLElBQUEsQ0FBQzNCLE9BQU87WUFBQzBQLEtBQUssRUFBRXZNLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBRTtZQUFBdUwsUUFBQSxlQUNsQy9NLElBQUEsQ0FBQ3ZCLDBCQUEwQjtjQUN6QjhQLFFBQVEsRUFBRSxDQUFDLENBQUNsTCxpQkFBa0I7Y0FDOUJpTCxVQUFVLEVBQUUvTCxTQUFVO2NBQ3RCMEwsT0FBTyxFQUFFcEsscUJBQXNCO2NBQUFrSixRQUFBLGVBRS9CL00sSUFBQSxDQUFDN0IsS0FBSztnQkFDSitQLEtBQUssRUFBRTdLLGlCQUFpQixNQUFBOEMsTUFBQSxDQUFNckcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFLZ04saUJBQWtCO2dCQUN4RWxGLEtBQUssRUFBRSxFQUFHO2dCQUNWbkQsTUFBTSxFQUFFO2NBQUcsQ0FDWjtZQUFDLENBQ3dCO1VBQUMsQ0FDdEIsQ0FBQyxlQUNWekUsSUFBQSxDQUFDM0IsT0FBTztZQUFDMFAsS0FBSyxFQUFFdk0sQ0FBQyxDQUFDLGlCQUFpQixDQUFFO1lBQUF1TCxRQUFBLGVBQ25DL00sSUFBQSxDQUFDdEIsMkJBQTJCO2NBQzFCNlAsUUFBUSxFQUFFLENBQUMsQ0FBQ2hMLGtCQUFtQjtjQUMvQitLLFVBQVUsRUFBRS9MLFNBQVU7Y0FDdEIwTCxPQUFPLEVBQUVqSyxzQkFBdUI7Y0FBQStJLFFBQUEsZUFFaEMvTSxJQUFBLENBQUNWLGFBQWE7Z0JBQ1o0TyxLQUFLLEVBQUUzSyxrQkFBa0IsTUFBQTRDLE1BQUEsQ0FBTXJHLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBS2dOLGlCQUFrQjtnQkFDekVsRixLQUFLLEVBQUUsRUFBRztnQkFDVm5ELE1BQU0sRUFBRTtjQUFHLENBQ1o7WUFBQyxDQUN5QjtVQUFDLENBQ3ZCLENBQUM7UUFBQSxDQUNQLENBQUMsR0FDSixJQUFJLEVBRVA5RCxTQUFTLGdCQUNSWCxJQUFBLENBQUMzQixPQUFPO1VBQUMwUCxLQUFLLEVBQUV2TSxDQUFDLENBQUMsV0FBVyxDQUFFO1VBQUF1TCxRQUFBLGVBQzdCL00sSUFBQSxDQUFDakIsb0JBQW9CO1lBQUMwQixRQUFRLEVBQUUsS0FBTTtZQUFDd04sT0FBTyxFQUFFM0Isb0JBQXFCO1lBQUM5TCxTQUFTLEVBQUVBLFNBQVU7WUFBQXVNLFFBQUEsZUFDekYvTSxJQUFBLENBQUNoQixrQkFBa0IsSUFBRTtVQUFDLENBQ0Y7UUFBQyxDQUNoQixDQUFDLGdCQUVWZ0IsSUFBQSxDQUFDM0IsT0FBTztVQUFDMFAsS0FBSyxFQUFFck4sV0FBVyxHQUFHYyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUdBLENBQUMsQ0FBQyxXQUFXLENBQUU7VUFBQXVMLFFBQUEsZUFDNUQvTSxJQUFBLENBQUNsQixvQkFBb0I7WUFDbkJtUCxPQUFPLEVBQUUxRSxpQkFBa0I7WUFDM0IvSSxTQUFTLEVBQUVBLFNBQVU7WUFDckJDLFFBQVEsRUFBRTBCLFVBQVUsSUFBSTFCLFFBQVM7WUFDakMrTixTQUFTLEVBQUUsQ0FBQyxDQUFDek0sYUFBYSxDQUFDbUYsTUFBTztZQUFBNkYsUUFBQSxlQUVsQy9NLElBQUEsQ0FBQy9CLFVBQVU7Y0FBQ2lRLEtBQUssRUFBQyxTQUFTO2NBQUN0RyxLQUFLLEVBQUUsRUFBRztjQUFDbkQsTUFBTSxFQUFFO1lBQUcsQ0FBRTtVQUFDLENBQ2pDO1FBQUMsQ0FDaEIsQ0FDVjtNQUFBLENBQ3FCLENBQUMsZUFDekJ6RSxJQUFBO1FBQ0VnTixHQUFHLEVBQUV0TCxZQUFhO1FBQ2xCOEosSUFBSSxFQUFDLE1BQU07UUFDWGlELFFBQVE7UUFDUkMsTUFBTSxFQUFDLG9HQUFvRztRQUMzRzVOLFFBQVEsRUFBRW9KLGdCQUFpQjtRQUMzQjNGLEtBQUssRUFBRTtVQUFFNEksT0FBTyxFQUFFO1FBQU87TUFBRSxDQUM1QixDQUFDO0lBQUEsQ0FDb0IsQ0FBQyxFQUN4QnBLLFVBQVUsQ0FBQ0wsTUFBTSxpQkFDaEIxQyxJQUFBLENBQUNiLGdCQUFnQjtNQUNmd1AsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7UUFBQSxPQUFRM0wsYUFBYSxDQUFDO1VBQUVOLE1BQU0sRUFBRSxLQUFLO1VBQUVDLGFBQWEsRUFBRSxFQUFFO1VBQUVDLGFBQWEsRUFBRSxFQUFFO1VBQUVDLFNBQVMsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUNyR0YsYUFBYSxFQUFFSSxVQUFVLENBQUNKLGFBQWM7TUFDeENDLGFBQWEsRUFBRUcsVUFBVSxDQUFDSCxhQUFjO01BQ3hDQyxTQUFTLEVBQUVFLFVBQVUsQ0FBQ0Y7SUFBVSxDQUNqQyxDQUNGO0VBQUEsQ0FDRCxDQUFDO0FBRVAsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -3,7 +3,6 @@ export { ErrorState } from './ErrorState';
|
|
|
3
3
|
export { CorLogo } from './CorLogo';
|
|
4
4
|
export { HomeIcon } from './HomeIcon';
|
|
5
5
|
export { NewChat } from './NewChat';
|
|
6
|
-
export { ChatConversation } from './ChatConversation';
|
|
7
6
|
export { DocFileIcon } from './DocFile';
|
|
8
7
|
export { DocxFileIcon } from './DocxFile';
|
|
9
8
|
export { MDFileIcon } from './MDFile';
|
|
@@ -30,4 +29,4 @@ export { MAIAIcon } from './MAIAIcon';
|
|
|
30
29
|
export { MAIAIsologo } from './MAIAIsologo';
|
|
31
30
|
export { MaiaStoreIcon } from './MaiaStoreIcon';
|
|
32
31
|
export { MyAgentsNavIcon } from './MyAgentsNavIcon';
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkNzdkZpbGVJY29uIiwiVGV4dEZpbGVJY29uIiwiUGRmRmlsZUljb24iLCJJbWFnZUZpbGVJY29uIiwiWGxzeEZpbGVJY29uIiwiWGxzRmlsZUljb24iLCJNcDNGaWxlSWNvbiIsIldhdkZpbGVJY29uIiwiQWFjRmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkFjY2Vzc2liaWxpdHlJY29uIiwiQnJhaW5JY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiTUFJQUljb24iLCJNQUlBSXNvbG9nbyIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9pY29ucy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBSUljb24gfSBmcm9tICcuL0FJSWNvbidcbmV4cG9ydCB7IEVycm9yU3RhdGUgfSBmcm9tICcuL0Vycm9yU3RhdGUnXG5leHBvcnQgeyBDb3JMb2dvIH0gZnJvbSAnLi9Db3JMb2dvJ1xuZXhwb3J0IHsgSG9tZUljb24gfSBmcm9tICcuL0hvbWVJY29uJ1xuZXhwb3J0IHsgTmV3Q2hhdCB9IGZyb20gJy4vTmV3Q2hhdCdcbmV4cG9ydCB7IERvY0ZpbGVJY29uIH0gZnJvbSAnLi9Eb2NGaWxlJ1xuZXhwb3J0IHsgRG9jeEZpbGVJY29uIH0gZnJvbSAnLi9Eb2N4RmlsZSdcbmV4cG9ydCB7IE1ERmlsZUljb24gfSBmcm9tICcuL01ERmlsZSdcbmV4cG9ydCB7IENzdkZpbGVJY29uIH0gZnJvbSAnLi9Dc3ZGaWxlJ1xuZXhwb3J0IHsgVGV4dEZpbGVJY29uIH0gZnJvbSAnLi9UZXh0RmlsZSdcbmV4cG9ydCB7IFBkZkZpbGVJY29uIH0gZnJvbSAnLi9QZGZGaWxlJ1xuZXhwb3J0IHsgSW1hZ2VGaWxlSWNvbiB9IGZyb20gJy4vSW1hZ2VGaWxlJ1xuZXhwb3J0IHsgWGxzeEZpbGVJY29uIH0gZnJvbSAnLi9YbHN4RmlsZSdcbmV4cG9ydCB7IFhsc0ZpbGVJY29uIH0gZnJvbSAnLi9YbHNGaWxlJ1xuZXhwb3J0IHsgTXAzRmlsZUljb24gfSBmcm9tICcuL01wM0ZpbGUnXG5leHBvcnQgeyBXYXZGaWxlSWNvbiB9IGZyb20gJy4vV2F2RmlsZSdcbmV4cG9ydCB7IEFhY0ZpbGVJY29uIH0gZnJvbSAnLi9BYWNGaWxlJ1xuZXhwb3J0IHsgRmxhY0ZpbGVJY29uIH0gZnJvbSAnLi9GbGFjSWNvbidcbmV4cG9ydCB7IE00YUZpbGVJY29uIH0gZnJvbSAnLi9NNGFGaWxlJ1xuZXhwb3J0IHsgTXA0RmlsZUljb24gfSBmcm9tICcuL01wNEZpbGUnXG5leHBvcnQgeyBPZ2FGaWxlSWNvbiB9IGZyb20gJy4vT2dhRmlsZSdcbmV4cG9ydCB7IE9nZ0ZpbGVJY29uIH0gZnJvbSAnLi9PZ2dGaWxlJ1xuZXhwb3J0IHsgV2VibUZpbGVJY29uIH0gZnJvbSAnLi9XZWJtRmlsZSdcbmV4cG9ydCB7IEFjY2Vzc2liaWxpdHlJY29uIH0gZnJvbSAnLi9BY2Nlc3NpYmlsaXR5SWNvbidcbmV4cG9ydCB7IEJyYWluSWNvbiB9IGZyb20gJy4vQnJhaW4nXG5leHBvcnQgeyBBZ2VudE1haWFJY29uIH0gZnJvbSAnLi9BZ2VudE1haWFJY29uJ1xuZXhwb3J0IHsgRmFxc0ljb24gfSBmcm9tICcuL0ZhcXNJY29uJ1xuZXhwb3J0IHsgTUFJQUljb24gfSBmcm9tICcuL01BSUFJY29uJ1xuZXhwb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuL01BSUFJc29sb2dvJ1xuZXhwb3J0IHsgTWFpYVN0b3JlSWNvbiB9IGZyb20gJy4vTWFpYVN0b3JlSWNvbidcbmV4cG9ydCB7IE15QWdlbnRzTmF2SWNvbiB9IGZyb20gJy4vTXlBZ2VudHNOYXZJY29uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsVUFBVTtBQUNqQyxTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUN6QyxTQUFTQyxPQUFPLFFBQVEsV0FBVztBQUNuQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxPQUFPLFFBQVEsV0FBVztBQUNuQyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxVQUFVLFFBQVEsVUFBVTtBQUNyQyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxhQUFhLFFBQVEsYUFBYTtBQUMzQyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxpQkFBaUIsUUFBUSxxQkFBcUI7QUFDdkQsU0FBU0MsU0FBUyxRQUFRLFNBQVM7QUFDbkMsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLGVBQWUsUUFBUSxtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
8
|
/* eslint-disable react/function-component-definition */
|
|
9
|
-
import { memo,
|
|
9
|
+
import { memo, useState } from 'react';
|
|
10
10
|
import colors from '@projectcor/theme/lib/base/colors';
|
|
11
11
|
import { History } from '@projectcor/icons/lib/components/History';
|
|
12
12
|
import { Pencil } from '@projectcor/icons/lib/components/Pencil';
|
|
@@ -19,7 +19,6 @@ import { EmptyState } from '../../atoms/icons/EmptyState';
|
|
|
19
19
|
import { MODAL_ELEMENTS } from '../../../hooks/useModal/useModal';
|
|
20
20
|
import { GoBackButton } from '../../atoms/GoBackButton';
|
|
21
21
|
import { useChats } from '../../../hooks/useChats';
|
|
22
|
-
import { SECTION_MODAL_SESSIONS_PAGE_LIMIT, SIDEBAR_SESSIONS_PAGE_LIMIT } from '../../../store/chatsStore.types';
|
|
23
22
|
import { Loader } from '../../atoms/Loader';
|
|
24
23
|
import { EditableLabel } from '../../atoms/EditableLabel';
|
|
25
24
|
import { NextPageLoader } from '../../atoms/NextPageLoader';
|
|
@@ -148,19 +147,7 @@ export var ChatAIHistory = function ChatAIHistory(_ref4) {
|
|
|
148
147
|
updateChat = _useChats.updateChat,
|
|
149
148
|
hasMoreChats = _useChats.hasMoreChats,
|
|
150
149
|
loadMoreChats = _useChats.loadMoreChats,
|
|
151
|
-
isLoadingMoreChats = _useChats.isLoadingMoreChats
|
|
152
|
-
fetchChats = _useChats.fetchChats,
|
|
153
|
-
limit = _useChats.limit;
|
|
154
|
-
useEffect(function () {
|
|
155
|
-
if (loadingChats || limit !== SIDEBAR_SESSIONS_PAGE_LIMIT || chats.length === 0) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
fetchChats({
|
|
159
|
-
limit: SECTION_MODAL_SESSIONS_PAGE_LIMIT,
|
|
160
|
-
offset: 0,
|
|
161
|
-
showGlobalLoader: false
|
|
162
|
-
});
|
|
163
|
-
}, [loadingChats, limit, chats.length, fetchChats]);
|
|
150
|
+
isLoadingMoreChats = _useChats.isLoadingMoreChats;
|
|
164
151
|
var handleGoBack = function handleGoBack() {
|
|
165
152
|
event(EVENTS.pmAiBackButton);
|
|
166
153
|
onGoToHome();
|
|
@@ -237,4 +224,4 @@ export var ChatAIHistory = function ChatAIHistory(_ref4) {
|
|
|
237
224
|
})]
|
|
238
225
|
});
|
|
239
226
|
};
|
|
240
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJjb2xvcnMiLCJIaXN0b3J5IiwiUGVuY2lsIiwiVHJhc2giLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJDYXJkTWVudSIsIk1vZGFsSW5mb0NvbnRlbnQiLCJFbXB0eVN0YXRlIiwiTU9EQUxfRUxFTUVOVFMiLCJHb0JhY2tCdXR0b24iLCJ1c2VDaGF0cyIsIlNFQ1RJT05fTU9EQUxfU0VTU0lPTlNfUEFHRV9MSU1JVCIsIlNJREVCQVJfU0VTU0lPTlNfUEFHRV9MSU1JVCIsIkxvYWRlciIsIkVkaXRhYmxlTGFiZWwiLCJOZXh0UGFnZUxvYWRlciIsIkxvYWRpbmdUZXh0IiwiZm9ybWF0RGF0ZSIsIlNDQ0FJSGlzdG9yeVdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEl0ZW0iLCJfcmVmIiwiY2hhdCIsInVwZGF0ZUNoYXQiLCJkZWxldGVDaGF0Iiwib25Hb1RvQ2hhdCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2siLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJfcmVmMiIsInN0YXJ0TG9hZGluZyIsInNlc3Npb25FeHRlcm5hbElkIiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVTYXZlIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInRpdGxlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJfb2JqZWN0U3ByZWFkIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVHb1RvQ2hhdCIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiZ2FwIiwiZmxleEdyb3ciLCJjb2xvciIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInZhbHVlIiwib25TYXZlIiwib25DYW5jZWwiLCJkYXRlIiwiQ2hhdEFJSGlzdG9yeSIsIl9yZWY0Iiwib25FcnJvciIsIm9uR29Ub0hvbWUiLCJfdXNlVDIiLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJmZXRjaENoYXRzIiwibGltaXQiLCJsZW5ndGgiLCJvZmZzZXQiLCJzaG93R2xvYmFsTG9hZGVyIiwiaGFuZGxlR29CYWNrIiwicG1BaUJhY2tCdXR0b24iLCJkZXNjcmlwdGlvbiIsIndpZHRoIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJ0ZXh0IiwicHJpbWFyeSIsImhlaWdodCIsIm92ZXJmbG93WSIsIm92ZXJzY3JvbGxCZWhhdmlvclkiLCJtYXAiLCJsaXN0U3R5bGUiLCJpZCIsImxvYWRNb3JlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzc05hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJSGlzdG9yeS9DaGF0QUlIaXN0b3J5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSGlzdG9yeSdcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG5pbXBvcnQgeyBDYXJkTWVudSB9IGZyb20gJy4uLy4uL2F0b21zL0NhcmRNZW51J1xuaW1wb3J0IHsgTW9kYWxJbmZvQ29udGVudCB9IGZyb20gJy4uLy4uL2F0b21zL01vZGFsSW5mbydcbmltcG9ydCB7IEVtcHR5U3RhdGUgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcbmltcG9ydCB7IEdvQmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0dvQmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBTRUNUSU9OX01PREFMX1NFU1NJT05TX1BBR0VfTElNSVQsIFNJREVCQVJfU0VTU0lPTlNfUEFHRV9MSU1JVCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBDaGF0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEVkaXRhYmxlTGFiZWwgfSBmcm9tICcuLi8uLi9hdG9tcy9FZGl0YWJsZUxhYmVsJ1xuaW1wb3J0IHsgTmV4dFBhZ2VMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9OZXh0UGFnZUxvYWRlcidcbmltcG9ydCB7IExvYWRpbmdUZXh0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGluZ1RleHQnXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IFNDQ0FJSGlzdG9yeVdyYXBwZXIgfSBmcm9tICcuL3N0eWxlcydcblxudHlwZSBDaGF0QUlIaXN0b3J5UHJvcHMgPSB7XG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25Hb1RvSG9tZTogKCkgPT4gdm9pZFxuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBDaGF0SXRlbVByb3BzID0ge1xuICBjaGF0OiBhbnlcbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IENoYXQpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uR29Ub0NoYXQ6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxufVxuXG5jb25zdCBDaGF0SXRlbSA9IG1lbW8oKHsgY2hhdCwgdXBkYXRlQ2hhdCwgZGVsZXRlQ2hhdCwgb25Hb1RvQ2hhdCB9OiBDaGF0SXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbZWRpdGluZywgc2V0RWRpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5yZW5hbWUnKSxcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHNldEVkaXRpbmcodHJ1ZSksXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrOiAoeyBzdGFydExvYWRpbmcgfSkgPT4ge1xuICAgICAgICBzdGFydExvYWRpbmcoKVxuICAgICAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogVHJhc2gsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RGVsZXRlLFxuICAgIH0sXG4gIF1cblxuICBjb25zdCBoYW5kbGVTYXZlID0gYXN5bmMgKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB1cGRhdGVDaGF0KHsgLi4uY2hhdCwgdGl0bGUgfSlcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlR29Ub0NoYXQgPSAoKSA9PiB7XG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvbkdvVG9DaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlPcGVuQ29udmVyc2F0aW9uKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvLyA8U3R5bGVkQ2hhdEFJSGlzdG9yeUl0ZW0gb25DbGljaz17aGFuZGxlR29Ub0NoYXR9IGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9PlxuICAgIC8vICAgPGRpdiBjbGFzc05hbWU9XCJDaGF0QUlIaXN0b3J5SXRlbS1jb250ZW50XCI+XG4gICAgLy8gICAgIDxFZGl0YWJsZUxhYmVsIGVkaXRpbmc9e2VkaXRpbmd9IHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAvLyAgICAgPHNwYW4+e3QoJ2hpc3RvcnkuaXRlbS5kYXRlJywgeyBkYXRlOiBmb3JtYXREYXRlKGNoYXQuZGF0ZSkgfSl9PC9zcGFuPlxuICAgIC8vICAgPC9kaXY+XG4gICAgLy8gICB7IWVkaXRpbmcgJiYgPENhcmRNZW51IG1lbnVJdGVtcz17bWVudUl0ZW1zfSBpZD17Y2hhdC5pZH0gY2xhc3NOYW1lPXttZW51Q2xhc3NOYW1lfSAvPn1cbiAgICAvLyA8L1N0eWxlZENoYXRBSUhpc3RvcnlJdGVtPlxuICAgIDxTQ0NBSUhpc3RvcnlXcmFwcGVyIG9uQ2xpY2s9e2hhbmRsZUdvVG9DaGF0fT5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnMTZweCcsIGZsZXhHcm93OiAxIH19PlxuICAgICAgICB7IWVkaXRpbmcgPyAoXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJywgZm9udFNpemU6ICcxNHB4JywgbGluZUhlaWdodDogJzE0MCUnIH19PntjaGF0LnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RWRpdGFibGVMYWJlbCBlZGl0aW5nIHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDEpJywgZm9udFNpemU6ICcxMnB4JywgbGluZUhlaWdodDogJzEzMCUnIH19PlxuICAgICAgICAgIHt0KCdoaXN0b3J5Lml0ZW0uZGF0ZScsIHsgZGF0ZTogZm9ybWF0RGF0ZShjaGF0LmRhdGUpIH0pfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIHshZWRpdGluZyAmJiA8Q2FyZE1lbnUgbWVudUl0ZW1zPXttZW51SXRlbXN9IC8+fVxuICAgIDwvU0NDQUlIaXN0b3J5V3JhcHBlcj5cbiAgKVxufSlcblxuZXhwb3J0IGNvbnN0IENoYXRBSUhpc3RvcnkgPSAoeyBvbkVycm9yLCBvbkdvVG9Ib21lLCBvbkdvVG9DaGF0IH06IENoYXRBSUhpc3RvcnlQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcblxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gICAgZmV0Y2hDaGF0cyxcbiAgICBsaW1pdCxcbiAgfSA9IHVzZUNoYXRzKHtcbiAgICBvbkVycm9yLFxuICB9KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxvYWRpbmdDaGF0cyB8fCBsaW1pdCAhPT0gU0lERUJBUl9TRVNTSU9OU19QQUdFX0xJTUlUIHx8IGNoYXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZldGNoQ2hhdHMoeyBsaW1pdDogU0VDVElPTl9NT0RBTF9TRVNTSU9OU19QQUdFX0xJTUlULCBvZmZzZXQ6IDAsIHNob3dHbG9iYWxMb2FkZXI6IGZhbHNlIH0pXG4gIH0sIFtsb2FkaW5nQ2hhdHMsIGxpbWl0LCBjaGF0cy5sZW5ndGgsIGZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IGhhbmRsZUdvQmFjayA9ICgpID0+IHtcbiAgICBldmVudChFVkVOVFMucG1BaUJhY2tCdXR0b24pXG4gICAgb25Hb1RvSG9tZSgpXG4gIH1cblxuICBpZiAobG9hZGluZ0NoYXRzKSB7XG4gICAgcmV0dXJuIDxMb2FkZXIgLz5cbiAgfVxuXG4gIGlmICghY2hhdHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNb2RhbEluZm9Db250ZW50IHRpdGxlPXt0KCdoaXN0b3J5LnRpdGxlJyl9IGRlc2NyaXB0aW9uPXt0KCdoaXN0b3J5LmRlc2NyaXB0aW9uJyl9PlxuICAgICAgICA8RW1wdHlTdGF0ZSAvPlxuICAgICAgPC9Nb2RhbEluZm9Db250ZW50PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIHdpZHRoOiAnMTAwJScsIHBhZGRpbmc6ICcxNnB4IDI0cHgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnMjRweCcgfX0+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzhweCcgfX0+XG4gICAgICAgIDxIaXN0b3J5IGNvbG9yPXtjb2xvcnMudGV4dC5wcmltYXJ5fSBoZWlnaHQ9ezIwfSB3aWR0aD17MjB9IC8+XG4gICAgICAgIDxzcGFuPnt0KCdoaXN0b3J5LnRvb2x0aXAnKX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgZ2FwOiAnMTZweCcsXG4gICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWTogJ2NvbnRhaW4nLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7Y2hhdHMubWFwKGNoYXQgPT4gKFxuICAgICAgICAgIDxsaSBrZXk9e2NoYXQuaWR9IHN0eWxlPXt7IGxpc3RTdHlsZTogJ25vbmUnIH19PlxuICAgICAgICAgICAgPENoYXRJdGVtIGNoYXQ9e2NoYXR9IHVwZGF0ZUNoYXQ9e3VwZGF0ZUNoYXR9IGRlbGV0ZUNoYXQ9e2RlbGV0ZUNoYXR9IG9uR29Ub0NoYXQ9e29uR29Ub0NoYXR9IC8+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKSl9XG4gICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgPExvYWRpbmdUZXh0IHRleHQ9e3QoJ2hpc3RvcnkubG9hZGluZ01vcmUnKX0gLz59XG4gICAgICAgIHshaXNMb2FkaW5nTW9yZUNoYXRzICYmIGhhc01vcmVDaGF0cyAmJiAoXG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPE5leHRQYWdlTG9hZGVyIGxvYWRNb3JlPXtsb2FkTW9yZUNoYXRzfSAvPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgIDxHb0JhY2tCdXR0b24gb25DbGljaz17aGFuZGxlR29CYWNrfSBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBLFNBQVNBLElBQUksRUFBRUMsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNqRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLE9BQU8sUUFBUSwwQ0FBMEM7QUFDbEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBRTlELFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBRTFELFNBQVNDLFFBQVEsUUFBUSxzQkFBc0I7QUFDL0MsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLFVBQVUsUUFBUSw4QkFBOEI7QUFDekQsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQztBQUNqRSxTQUFTQyxZQUFZLFFBQVEsMEJBQTBCO0FBQ3ZELFNBQVNDLFFBQVEsUUFBUSx5QkFBeUI7QUFDbEQsU0FBU0MsaUNBQWlDLEVBQUVDLDJCQUEyQixRQUFRLGlDQUFpQztBQUNoSCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBRTNDLFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFDekQsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUMzRCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLFVBQVUsUUFB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
|
|
227
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlU3RhdGUiLCJjb2xvcnMiLCJIaXN0b3J5IiwiUGVuY2lsIiwiVHJhc2giLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJDYXJkTWVudSIsIk1vZGFsSW5mb0NvbnRlbnQiLCJFbXB0eVN0YXRlIiwiTU9EQUxfRUxFTUVOVFMiLCJHb0JhY2tCdXR0b24iLCJ1c2VDaGF0cyIsIkxvYWRlciIsIkVkaXRhYmxlTGFiZWwiLCJOZXh0UGFnZUxvYWRlciIsIkxvYWRpbmdUZXh0IiwiZm9ybWF0RGF0ZSIsIlNDQ0FJSGlzdG9yeVdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEl0ZW0iLCJfcmVmIiwiY2hhdCIsInVwZGF0ZUNoYXQiLCJkZWxldGVDaGF0Iiwib25Hb1RvQ2hhdCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2siLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJfcmVmMiIsInN0YXJ0TG9hZGluZyIsInNlc3Npb25FeHRlcm5hbElkIiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVTYXZlIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInRpdGxlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJfb2JqZWN0U3ByZWFkIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVHb1RvQ2hhdCIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiZ2FwIiwiZmxleEdyb3ciLCJjb2xvciIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInZhbHVlIiwib25TYXZlIiwib25DYW5jZWwiLCJkYXRlIiwiQ2hhdEFJSGlzdG9yeSIsIl9yZWY0Iiwib25FcnJvciIsIm9uR29Ub0hvbWUiLCJfdXNlVDIiLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJoYW5kbGVHb0JhY2siLCJwbUFpQmFja0J1dHRvbiIsImxlbmd0aCIsImRlc2NyaXB0aW9uIiwid2lkdGgiLCJwYWRkaW5nIiwiYWxpZ25JdGVtcyIsInRleHQiLCJwcmltYXJ5IiwiaGVpZ2h0Iiwib3ZlcmZsb3dZIiwib3ZlcnNjcm9sbEJlaGF2aW9yWSIsIm1hcCIsImxpc3RTdHlsZSIsImlkIiwibG9hZE1vcmUiLCJqdXN0aWZ5Q29udGVudCIsImNsYXNzTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIaXN0b3J5L0NoYXRBSUhpc3RvcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgeyBtZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSGlzdG9yeSdcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG5pbXBvcnQgeyBDYXJkTWVudSB9IGZyb20gJy4uLy4uL2F0b21zL0NhcmRNZW51J1xuaW1wb3J0IHsgTW9kYWxJbmZvQ29udGVudCB9IGZyb20gJy4uLy4uL2F0b21zL01vZGFsSW5mbydcbmltcG9ydCB7IEVtcHR5U3RhdGUgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcbmltcG9ydCB7IEdvQmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0dvQmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBDaGF0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEVkaXRhYmxlTGFiZWwgfSBmcm9tICcuLi8uLi9hdG9tcy9FZGl0YWJsZUxhYmVsJ1xuaW1wb3J0IHsgTmV4dFBhZ2VMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9OZXh0UGFnZUxvYWRlcidcbmltcG9ydCB7IExvYWRpbmdUZXh0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGluZ1RleHQnXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IFNDQ0FJSGlzdG9yeVdyYXBwZXIgfSBmcm9tICcuL3N0eWxlcydcblxudHlwZSBDaGF0QUlIaXN0b3J5UHJvcHMgPSB7XG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25Hb1RvSG9tZTogKCkgPT4gdm9pZFxuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBDaGF0SXRlbVByb3BzID0ge1xuICBjaGF0OiBhbnlcbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IENoYXQpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uR29Ub0NoYXQ6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxufVxuXG5jb25zdCBDaGF0SXRlbSA9IG1lbW8oKHsgY2hhdCwgdXBkYXRlQ2hhdCwgZGVsZXRlQ2hhdCwgb25Hb1RvQ2hhdCB9OiBDaGF0SXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbZWRpdGluZywgc2V0RWRpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5yZW5hbWUnKSxcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHNldEVkaXRpbmcodHJ1ZSksXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrOiAoeyBzdGFydExvYWRpbmcgfSkgPT4ge1xuICAgICAgICBzdGFydExvYWRpbmcoKVxuICAgICAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogVHJhc2gsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RGVsZXRlLFxuICAgIH0sXG4gIF1cblxuICBjb25zdCBoYW5kbGVTYXZlID0gYXN5bmMgKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB1cGRhdGVDaGF0KHsgLi4uY2hhdCwgdGl0bGUgfSlcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlR29Ub0NoYXQgPSAoKSA9PiB7XG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvbkdvVG9DaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlPcGVuQ29udmVyc2F0aW9uKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvLyA8U3R5bGVkQ2hhdEFJSGlzdG9yeUl0ZW0gb25DbGljaz17aGFuZGxlR29Ub0NoYXR9IGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9PlxuICAgIC8vICAgPGRpdiBjbGFzc05hbWU9XCJDaGF0QUlIaXN0b3J5SXRlbS1jb250ZW50XCI+XG4gICAgLy8gICAgIDxFZGl0YWJsZUxhYmVsIGVkaXRpbmc9e2VkaXRpbmd9IHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAvLyAgICAgPHNwYW4+e3QoJ2hpc3RvcnkuaXRlbS5kYXRlJywgeyBkYXRlOiBmb3JtYXREYXRlKGNoYXQuZGF0ZSkgfSl9PC9zcGFuPlxuICAgIC8vICAgPC9kaXY+XG4gICAgLy8gICB7IWVkaXRpbmcgJiYgPENhcmRNZW51IG1lbnVJdGVtcz17bWVudUl0ZW1zfSBpZD17Y2hhdC5pZH0gY2xhc3NOYW1lPXttZW51Q2xhc3NOYW1lfSAvPn1cbiAgICAvLyA8L1N0eWxlZENoYXRBSUhpc3RvcnlJdGVtPlxuICAgIDxTQ0NBSUhpc3RvcnlXcmFwcGVyIG9uQ2xpY2s9e2hhbmRsZUdvVG9DaGF0fT5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnMTZweCcsIGZsZXhHcm93OiAxIH19PlxuICAgICAgICB7IWVkaXRpbmcgPyAoXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJywgZm9udFNpemU6ICcxNHB4JywgbGluZUhlaWdodDogJzE0MCUnIH19PntjaGF0LnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RWRpdGFibGVMYWJlbCBlZGl0aW5nIHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDEpJywgZm9udFNpemU6ICcxMnB4JywgbGluZUhlaWdodDogJzEzMCUnIH19PlxuICAgICAgICAgIHt0KCdoaXN0b3J5Lml0ZW0uZGF0ZScsIHsgZGF0ZTogZm9ybWF0RGF0ZShjaGF0LmRhdGUpIH0pfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIHshZWRpdGluZyAmJiA8Q2FyZE1lbnUgbWVudUl0ZW1zPXttZW51SXRlbXN9IC8+fVxuICAgIDwvU0NDQUlIaXN0b3J5V3JhcHBlcj5cbiAgKVxufSlcblxuZXhwb3J0IGNvbnN0IENoYXRBSUhpc3RvcnkgPSAoeyBvbkVycm9yLCBvbkdvVG9Ib21lLCBvbkdvVG9DaGF0IH06IENoYXRBSUhpc3RvcnlQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcblxuICBjb25zdCB7IGxvYWRpbmdDaGF0cywgY2hhdHMsIGRlbGV0ZUNoYXQsIHVwZGF0ZUNoYXQsIGhhc01vcmVDaGF0cywgbG9hZE1vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCBoYW5kbGVHb0JhY2sgPSAoKSA9PiB7XG4gICAgZXZlbnQoRVZFTlRTLnBtQWlCYWNrQnV0dG9uKVxuICAgIG9uR29Ub0hvbWUoKVxuICB9XG5cbiAgaWYgKGxvYWRpbmdDaGF0cykge1xuICAgIHJldHVybiA8TG9hZGVyIC8+XG4gIH1cblxuICBpZiAoIWNoYXRzLmxlbmd0aCkge1xuICAgIHJldHVybiAoXG4gICAgICA8TW9kYWxJbmZvQ29udGVudCB0aXRsZT17dCgnaGlzdG9yeS50aXRsZScpfSBkZXNjcmlwdGlvbj17dCgnaGlzdG9yeS5kZXNjcmlwdGlvbicpfT5cbiAgICAgICAgPEVtcHR5U3RhdGUgLz5cbiAgICAgIDwvTW9kYWxJbmZvQ29udGVudD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nOiAnMTZweCAyNHB4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogJzI0cHgnIH19PlxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc4cHgnIH19PlxuICAgICAgICA8SGlzdG9yeSBjb2xvcj17Y29sb3JzLnRleHQucHJpbWFyeX0gaGVpZ2h0PXsyMH0gd2lkdGg9ezIwfSAvPlxuICAgICAgICA8c3Bhbj57dCgnaGlzdG9yeS50b29sdGlwJyl9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIGdhcDogJzE2cHgnLFxuICAgICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclk6ICdjb250YWluJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2NoYXRzLm1hcChjaGF0ID0+IChcbiAgICAgICAgICA8bGkga2V5PXtjaGF0LmlkfSBzdHlsZT17eyBsaXN0U3R5bGU6ICdub25lJyB9fT5cbiAgICAgICAgICAgIDxDaGF0SXRlbSBjaGF0PXtjaGF0fSB1cGRhdGVDaGF0PXt1cGRhdGVDaGF0fSBkZWxldGVDaGF0PXtkZWxldGVDaGF0fSBvbkdvVG9DaGF0PXtvbkdvVG9DaGF0fSAvPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICkpfVxuICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdoaXN0b3J5LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAgICB7IWlzTG9hZGluZ01vcmVDaGF0cyAmJiBoYXNNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxOZXh0UGFnZUxvYWRlciBsb2FkTW9yZT17bG9hZE1vcmVDaGF0c30gLz5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICA8R29CYWNrQnV0dG9uIG9uQ2xpY2s9e2hhbmRsZUdvQmFja30gY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU30gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQSxTQUFTQSxJQUFJLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsT0FBTyxRQUFRLDBDQUEwQztBQUNsRSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFFOUQsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFFMUQsU0FBU0MsUUFBUSxRQUFRLHNCQUFzQjtBQUMvQyxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFDeEQsU0FBU0Ms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
|