@projectcor/maia-components 2.11.20-1 → 2.11.20-3
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/molecules/ChatAIHome/ChatAIHomeMaiaker.js +5 -2
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +8 -2
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +14 -6
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -3
- package/lib/components/molecules/Sidebar/Sidebar.js +12 -4
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +16 -12
- package/lib/hooks/useEvent.js +5 -2
- package/lib/services/maia/Agents/getAgents.js +5 -3
- package/package.json +1 -1
|
@@ -286,14 +286,22 @@ export var ChatAIModal = function ChatAIModal(_ref) {
|
|
|
286
286
|
agentsFetchedRef.current = true;
|
|
287
287
|
handleGetAgents();
|
|
288
288
|
}
|
|
289
|
-
|
|
290
|
-
|
|
289
|
+
}, [handleGetAgents]);
|
|
290
|
+
useEffect(function () {
|
|
291
|
+
var onMergeCreatedAgent = function onMergeCreatedAgent(evt) {
|
|
292
|
+
var _ref3 = evt.detail || {},
|
|
293
|
+
nextAgent = _ref3.agent;
|
|
294
|
+
if (nextAgent !== null && nextAgent !== void 0 && nextAgent.id) {
|
|
295
|
+
addAgent(nextAgent, {
|
|
296
|
+
navigateHome: false
|
|
297
|
+
});
|
|
298
|
+
}
|
|
291
299
|
};
|
|
292
|
-
document.addEventListener('
|
|
300
|
+
document.addEventListener('maia-merge-created-agent-into-list', onMergeCreatedAgent);
|
|
293
301
|
return function () {
|
|
294
|
-
document.removeEventListener('
|
|
302
|
+
document.removeEventListener('maia-merge-created-agent-into-list', onMergeCreatedAgent);
|
|
295
303
|
};
|
|
296
|
-
}, [
|
|
304
|
+
}, [addAgent]);
|
|
297
305
|
useEffect(function () {
|
|
298
306
|
var openChatView = function openChatView() {
|
|
299
307
|
setHasError(false);
|
|
@@ -475,4 +483,4 @@ export var ChatAIModal = function ChatAIModal(_ref) {
|
|
|
475
483
|
}), /*#__PURE__*/_jsx(Snackbar, {})]
|
|
476
484
|
}), selector);
|
|
477
485
|
};
|
|
478
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwiQ2hhdEFJQ29udGVudCIsImJ1aWxkSGFuZGxlcnMiLCJvcHRpb25zIiwiU2lkZWJhciIsInVzZUdldEFnZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIlNFQ1RJT05TIiwiU0NDQUlNQ29udGVudCIsIlNDQ0FJTUNvbnRlbnRXcmFwcGVyIiwiU0NDQUlNV3JhcHBlciIsIkNoYXRBaU1vZGFsRm9vdGVyIiwidmFsaWRhdGVJc01haWEiLCJ1c2VGYXFzU3RvcmUiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIklEX01PREFMX0NIQVRfQUdFTlQiLCJ2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZSIsInNlY3Rpb24iLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiQ2hhdEFJTW9kYWwiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJfdXNlciRwZXJtaXNzaW9uczIiLCJfdXNlciRwZXJtaXNzaW9uczMiLCJfYWdlbnRzJGRhdGEiLCJoYW5kbGVDbG9zZSIsInVzZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsImkxOG4iLCJoYW5kbGVDbG9zZU1vZGFsIiwiZ2V0U3RhdGUiLCJjbGVhckZhcXMiLCJfdXNlU3RhdGUiLCJtZXNzYWdlIiwiYXR0YWNobWVudHMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJzZXRVc2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImluaXRpYWxDaGF0SWQiLCJzZXRJbml0aWFsQ2hhdElkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJuZXdDaGF0S2V5Iiwic2V0TmV3Q2hhdEtleSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2VuZE1lc3NhZ2VGdW5jdGlvbiIsInNldFNlbmRNZXNzYWdlRnVuY3Rpb24iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInN0b3BHZW5lcmF0aW9uRnVuY3Rpb24iLCJzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiaXNTdHJlYW1pbmciLCJzZXRJc1N0cmVhbWluZyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1dyaXRpbmciLCJzZXRJc1dyaXRpbmciLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwicmVmZXRjaENoYXRzIiwic2V0UmVmZXRjaENoYXRzIiwiX3VzZVN0YXRlMTUiLCJob21lIiwiX3VzZVN0YXRlMTYiLCJjdXJyZW50T3B0aW9uIiwic2V0Q3VycmVudE9wdGlvbiIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJoYXNFcnJvciIsInNldEhhc0Vycm9yIiwiaGFuZGxlcnMiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwic2lkZWJhckhhc0Vycm9yIiwic2V0U2lkZWJhckhhc0Vycm9yIiwicmVzZXRTZWxlY3RlZENoYXRSZWYiLCJsYW5nIiwibGFuZ3VhZ2UiLCJsb2NhbGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50IiwiYWdlbnQiLCJwcm9qZWN0IiwiY2xpZW50IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRDbGllbnQiLCJzZXRQcm9qZWN0IiwiX3VzZUdldEFnZW50cyIsImhhbmRsZUdvSG9tZSIsImFnZW50cyIsImxvYWRpbmciLCJsb2FkaW5nTW9yZSIsImFnZW50RXJyb3IiLCJlcnJvciIsImhhbmRsZUdldEFnZW50cyIsImxvYWRNb3JlQWdlbnRzIiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJzb3J0QWdlbnRzTGlzdCIsImlzTUFJQSIsInVzZXJIYXNQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwiZWRpdCIsImNvbXB1dGVkQ3VycmVudE9wdGlvbiIsImlzR2xvYmFsU3BlY2lhbGlzdCIsImVudGl0eSIsImlzUHJvamVjdFNwZWNpYWxpc3QiLCJpc0NsaWVudFNwZWNpYWxpc3QiLCJpc01haWFrZXIiLCJ0ZXN0IiwibmFtZSIsIm15QWdlbnRzIiwiY2hhdCIsInNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IiLCJzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IiLCJwcm9qZWN0U2VsZWN0b3IiLCJjbGllbnRTZWxlY3RvciIsImlzTWFpYWtlckFnZW50U2VsZWN0ZWQiLCJ0eXBlIiwic2lkZWJhckFnZW50c05hdkFjdGl2ZSIsImFnZW50c0ZldGNoZWRSZWYiLCJzZWxlY3RvciIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNvbmNhdCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJleHBhbmRlZCIsInNldEV4cGFuZGVkIiwic3RhcnRDaGF0IiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsInByZXYiLCJfb2JqZWN0U3ByZWFkIiwiZ29Ub0NoYXQiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsInNlbGVjdGVkQWdlbnQiLCJkYXRhIiwiZmluZCIsImFnZW50SXRlbSIsImlkIiwiYWdlbnRJZCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImhhbmRsZVNlbmRNZXNzYWdlUmVhZHkiLCJzZW5kTWVzc2FnZSIsInN0b3BHZW5lcmF0aW9uIiwic3RyZWFtaW5nIiwid3JpdGluZyIsImhhbmRsZVNlbmRNZXNzYWdlIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsInByb2plY3RfZGVsZXRlZCIsImxlbmd0aCIsImN1cnJlbnQiLCJoYW5kbGVSZXNldENoYXQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJzdG9wIiwiaGFuZGxlUmVmZXRjaEFnZW50c0N1c3RvbSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib3BlbkNoYXRWaWV3Iiwib3Blbk5ld0NoYXRXaXRoQWdlbnQiLCJldmVudCIsIl9kZXRhaWwiLCJuZXh0QWdlbnQiLCJkZXRhaWwiLCJzaG93TmV3Q2hhdCIsImhpZGVIZWFkZXJBZ2VudFNlbGVjdG9yIiwiaGFuZGxlT3Blbk1hcmtldHBsYWNlIiwiaGFuZGxlR29Ub01haWFrZXIiLCJfY2FsbGVlMiIsIm1haWFrZXJBZ2VudCIsInJlc3BvbnNlIiwiX3QiLCJfY29udGV4dDIiLCJhIiwicGF0aCIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwiYWJydXB0IiwiaGFuZGxlRGVsZXRlQWdlbnRGcm9tTXlBZ2VudHMiLCJoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lIiwiY3JlYXRlUG9ydGFsIiwiY2hpbGRyZW4iLCJvbkdvVG9DaGF0Iiwib25FcnJvciIsImhhbmRsZUdvVG9Ib21lIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiYWdlbnRzTmF2QWN0aXZlIiwiaGFzTW9yZSIsImhhc19tb3JlIiwib25BZ2VudFVwZGF0ZSIsImhpZGVBZ2VudFNlbGVjdG9yIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsIm9uRGVsZXRlQWdlbnQiLCJvbkZhdm9yaXRlQWdlbnRVcGRhdGUiLCJoYXNNb3JlQWdlbnRzIiwibG9hZGluZ01vcmVBZ2VudHMiLCJvbkxvYWRNb3JlQWdlbnRzIiwib25Hb1RvTWFpYWtlciIsIm9uUmVzdGFydFN1bW1hcnkiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsInNob3dGYXFzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL0NoYXRBSU1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgeyBSZWZPYmplY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUVycm9yJ1xuXG5pbXBvcnQgeyBDaGF0QUlDb250ZW50IH0gZnJvbSAnLi4vQ2hhdEFJQ29udGVudCdcbmltcG9ydCB7IGJ1aWxkSGFuZGxlcnMsIG9wdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICcuLi9TaWRlYmFyJ1xuaW1wb3J0IHsgdXNlR2V0QWdlbnRzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IENoYXRBSU1vZGFsSGVhZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyJ1xuaW1wb3J0IHsgU25hY2tiYXIgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvU25hY2tCYXIvU25hY2tiYXInXG5pbXBvcnQgeyBQcm9qZWN0U3VtbWFyeUNvbnRlbnQgfSBmcm9tICcuLi9Qcm9qZWN0U3VtbWFyeUNvbnRlbnQnXG5pbXBvcnQgeyBBYm1BZ2VudE1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0FibUFnZW50TW9kYWwvQWJtQWdlbnRNb2RhbCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFNDQ0FJTUNvbnRlbnQsIFNDQ0FJTUNvbnRlbnRXcmFwcGVyLCBTQ0NBSU1XcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlNb2RhbC5zdHlsZXMnXG5pbXBvcnQgeyBDaGF0QWlNb2RhbEZvb3RlciB9IGZyb20gJy4vY29tcG9uZW50cy9DaGF0QWlNb2RhbEZvb3RlcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlRmFxc1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvdXNlRmFxc1N0b3JlJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcblxudHlwZSBDaGF0QUlNb2RhbFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHBhcmVudFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbn1cblxuZXhwb3J0IGNvbnN0IElEX01PREFMX0NIQVRfQUdFTlQgPSAnbW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnQnXG5cbmNvbnN0IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgKHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8IHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50JykgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbCA9ICh7IGhhbmRsZUNsb3NlIH06IENoYXRBSU1vZGFsUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1c2VGYXFzU3RvcmUuZ2V0U3RhdGUoKS5jbGVhckZhcXMoKVxuICAgIGhhbmRsZUNsb3NlPy4oKVxuICB9LCBbaGFuZGxlQ2xvc2VdKVxuICBjb25zdCBbdXNlckluaXRpYWxNZXNzYWdlLCBzZXRVc2VySW5pdGlhbE1lc3NhZ2VdID0gdXNlU3RhdGU8e1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICAgIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gICAgZmFxSWQ/OiBzdHJpbmdcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICB9Pih7XG4gICAgbWVzc2FnZTogJycsXG4gICAgYXR0YWNobWVudHM6IFtdLFxuICB9KVxuICBjb25zdCBbaW5pdGlhbENoYXRJZCwgc2V0SW5pdGlhbENoYXRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbbmV3Q2hhdEtleSwgc2V0TmV3Q2hhdEtleV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc2V0U2VuZE1lc3NhZ2VGdW5jdGlvbl0gPSB1c2VTdGF0ZTxcbiAgICAoKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZywgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcpID0+IHZvaWQpIHwgbnVsbFxuICA+KG51bGwpXG4gIGNvbnN0IFtzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uLCBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uXSA9IHVzZVN0YXRlPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc1N0cmVhbWluZywgc2V0SXNTdHJlYW1pbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1dyaXRpbmcsIHNldElzV3JpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBbcmVmZXRjaENoYXRzLCBzZXRSZWZldGNoQ2hhdHNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtjdXJyZW50T3B0aW9uLCBzZXRDdXJyZW50T3B0aW9uXSA9IHVzZVN0YXRlKG9wdGlvbnMuaG9tZSlcbiAgY29uc3QgW2hhc0Vycm9yLCBzZXRIYXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaGFuZGxlcnMgPSB1c2VNZW1vKCgpID0+IGJ1aWxkSGFuZGxlcnMoc2V0Q3VycmVudE9wdGlvbiwgc2V0SGFzRXJyb3IpLCBbXSlcbiAgY29uc3QgW3NpZGViYXJIYXNFcnJvciwgc2V0U2lkZWJhckhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCByZXNldFNlbGVjdGVkQ2hhdFJlZiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdC1icicgOiBpMThuLmxhbmd1YWdlXG5cbiAgbW9tZW50LmxvY2FsZShsYW5nKVxuXG4gIGNvbnN0IHtcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZWN0aW9uLFxuICAgIGFnZW50LFxuICAgIHByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgc2V0Q2xpZW50LFxuICAgIHNldFByb2plY3QsXG4gIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3I6IGFnZW50RXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfSA9IHVzZUdldEFnZW50cyh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lOiBoYW5kbGVycy5ob21lIH0pXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG5cbiAgY29uc3QgdXNlckhhc1Blcm1pc3Npb25zID1cbiAgICAodXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uY3JlYXRlIHx8XG4gICAgICB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5lZGl0IHx8XG4gICAgICB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5kZWxldGUpICYmXG4gICAgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICBjb25zdCBjb21wdXRlZEN1cnJlbnRPcHRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpc0dsb2JhbFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCdcbiAgICBjb25zdCBpc1Byb2plY3RTcGVjaWFsaXN0ID0gaXNNQUlBICYmIChhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCcgfHwgYWdlbnQ/LmVudGl0eSA9PSBudWxsKVxuICAgIGNvbnN0IGlzQ2xpZW50U3BlY2lhbGlzdCA9IGlzTUFJQSAmJiBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50J1xuICAgIGNvbnN0IGlzTWFpYWtlciA9IGlzR2xvYmFsU3BlY2lhbGlzdCAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJylcblxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5teUFnZW50c1xuICAgIH1cblxuICAgIGlmIChpc0dsb2JhbFNwZWNpYWxpc3QgJiYgIWlzTWFpYWtlciAmJiBjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmNoYXRcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yID0gY3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0ICYmIGlzUHJvamVjdFNwZWNpYWxpc3QgJiYgIXByb2plY3RcbiAgICBjb25zdCBzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IgPSBjdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXQgJiYgaXNDbGllbnRTcGVjaWFsaXN0ICYmICFjbGllbnRcblxuICAgIGlmIChzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3JcbiAgICB9XG4gICAgaWYgKHNob3VsZFNob3dDbGllbnRTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY2xpZW50U2VsZWN0b3JcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRPcHRpb25cbiAgfSwgW2N1cnJlbnRPcHRpb24sIHByb2plY3QsIGNsaWVudCwgaXNNQUlBLCBhZ2VudD8uZW50aXR5LCBhZ2VudD8ubmFtZV0pXG5cbiAgY29uc3QgaXNNYWlha2VyQWdlbnRTZWxlY3RlZCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGlzTUFJQSAmJlxuICAgICAgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcgJiZcbiAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmXG4gICAgICAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJyksXG4gICAgW2lzTUFJQSwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGFnZW50Py5uYW1lXVxuICApXG5cbiAgY29uc3Qgc2lkZWJhckFnZW50c05hdkFjdGl2ZSA9IHVzZU1lbW8oKCk6ICdtYWlha2VyJyB8ICdteUFnZW50cycgfCBudWxsID0+IHtcbiAgICBpZiAoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzKSByZXR1cm4gJ215QWdlbnRzJ1xuICAgIGlmIChpc01haWFrZXJBZ2VudFNlbGVjdGVkKSByZXR1cm4gJ21haWFrZXInXG4gICAgcmV0dXJuIG51bGxcbiAgfSwgW2NvbXB1dGVkQ3VycmVudE9wdGlvbiwgaXNNYWlha2VyQWdlbnRTZWxlY3RlZF0pXG5cbiAgLyogUmVhY3RpdmFyIGNvbiBsYSBmaWxhIOKAnE1pcyBhZ2VudGVz4oCdIGVuIFNpZGViYXI6IG15QWdlbnRzQ291bnQgcHJvcFxuICBjb25zdCBzaWRlYmFyTXlBZ2VudHNDb3VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBhZ2VudHMuZGF0YS5maWx0ZXIoXG4gICAgICBhID0+ICEoYS50eXBlID09PSAnY2xvbmUnICYmIGEuZW50aXR5ID09PSAnZ2xvYmFsJyAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhLm5hbWUgfHwgJycpKVxuICAgIClcbiAgICAgIC5sZW5ndGhcbiAgfSwgW2FnZW50cy5kYXRhXSlcbiAgKi9cblxuICBjb25zdCBhZ2VudHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IHNlbGVjdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7SURfTU9EQUxfQ0hBVF9BR0VOVH1gKVxuXG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3Qgc3RhcnRDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U/OiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcsIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSB7XG4gICAgICAgIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgJycsXG4gICAgICAgIGF0dGFjaG1lbnRzOiBhdHRhY2htZW50cyB8fCBbXSxcbiAgICAgICAgLi4uKGZhcUlkID8geyBmYXFJZCB9IDoge30pLFxuICAgICAgICAuLi4oYWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkIH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGdvVG9DaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgY29uc3Qgc2VsZWN0ZWRBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYWdlbnRJdGVtID0+IGFnZW50SXRlbS5pZCA9PT0gY2hhdC5hZ2VudElkKVxuICAgICAgaWYgKHNlbGVjdGVkQWdlbnQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoc2VsZWN0ZWRBZ2VudClcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgYWdlbnRzLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlUmVhZHkgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBzZW5kTWVzc2FnZTogKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgICApID0+IHZvaWQsXG4gICAgICBzdG9wR2VuZXJhdGlvbjogKCkgPT4gdm9pZCxcbiAgICAgIHN0cmVhbWluZzogYm9vbGVhbixcbiAgICAgIHdyaXRpbmc6IGJvb2xlYW5cbiAgICApID0+IHtcbiAgICAgIHNldFNlbmRNZXNzYWdlRnVuY3Rpb24oKCkgPT4gc2VuZE1lc3NhZ2UpXG4gICAgICBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uKCgpID0+IHN0b3BHZW5lcmF0aW9uKVxuICAgICAgc2V0SXNTdHJlYW1pbmcoc3RyZWFtaW5nKVxuICAgICAgc2V0SXNXcml0aW5nKHdyaXRpbmcpXG4gICAgfSxcbiAgICBbXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nLCBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHNpZGViYXJIYXNFcnJvcikge1xuICAgICAgICBzZXRTaWRlYmFySGFzRXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgICBpZiAoc2VuZE1lc3NhZ2VGdW5jdGlvbiAmJiBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgICBzZW5kTWVzc2FnZUZ1bmN0aW9uKG1lc3NhZ2UsIGF0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZW5kTWVzc2FnZUZ1bmN0aW9uLCBzdGFydENoYXQsIGNvbXB1dGVkQ3VycmVudE9wdGlvbiwgc2lkZWJhckhhc0Vycm9yXVxuICApXG5cbiAgY29uc3QgaGFuZGxlR29Ib21lID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFNpIGVzdGFtb3MgZW4gdW5hIGNvbnZlcnNhY2nDs24geSB2YW1vcyBhIGhvbWUsIHJlc2V0ZWFyIGluaXRpYWxDaGF0SWQgeSBpbmNyZW1lbnRhciBuZXdDaGF0S2V5XG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgLy8gTm8gYm9ycmFyIGVsIGNsaWVudGUgc2kgZXMgYWdlbnRlIGRlIGNsaWVudGVzIChpZ3VhbCBxdWUgZWwgcHJveWVjdG8gc2UgbWFudGllbmUpXG4gICAgICBpZiAoYWdlbnQ/LmVudGl0eSAhPT0gJ2NsaWVudCcpIHtcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgKCFhZ2VudCB8fCBhZ2VudD8uaXNfZGVsZXRlZCB8fCBhZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCBhZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHwgYWdlbnQ/LnByb2plY3RfZGVsZXRlZCkgJiZcbiAgICAgIGFnZW50cy5kYXRhLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50cy5kYXRhWzBdKVxuICAgIH1cbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSAmJiB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgICB9XG4gIH0sIFtcbiAgICBvcHRpb25zLmhvbWUsXG4gICAgb3B0aW9ucy5jaGF0LFxuICAgIGN1cnJlbnRPcHRpb24sXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGFnZW50LFxuICAgIGFnZW50cyxcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZXRDbGllbnQsXG4gIF0pXG5cbiAgY29uc3QgaGFuZGxlUmVzZXRDaGF0ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgLy8gRGlzcGF0Y2ggZXZlbnQgdG8gY2xlYXIgdGhlIGlucHV0IHRleHRhcmVhXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgaGFuZGxlR29Ib21lKClcbiAgfSwgW2hhbmRsZUdvSG9tZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFnZW50c0ZldGNoZWRSZWYuY3VycmVudCkge1xuICAgICAgYWdlbnRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaGFuZGxlR2V0QWdlbnRzKClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlUmVmZXRjaEFnZW50c0N1c3RvbSA9ICgpID0+IHtcbiAgICAgIGhhbmRsZUdldEFnZW50cygpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1hZ2VudHMtY3VzdG9tJywgaGFuZGxlUmVmZXRjaEFnZW50c0N1c3RvbSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1hZ2VudHMtY3VzdG9tJywgaGFuZGxlUmVmZXRjaEFnZW50c0N1c3RvbSlcbiAgICB9XG4gIH0sIFtoYW5kbGVHZXRBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3BlbkNoYXRWaWV3ID0gKCkgPT4ge1xuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2hhdClcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLyoqIE1pc21vIGZsdWpvIHF1ZSBDaGF0QUlNeUFnZW50cy5oYW5kbGVVc2VBZ2VudCArIG9uQmFjayAoaGFuZGxlcnMuaG9tZSkuICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3Blbk5ld0NoYXRXaXRoQWdlbnQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBuZXh0QWdlbnQgPSAoZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbD8uYWdlbnRcbiAgICAgIGlmICghbmV4dEFnZW50KSByZXR1cm5cblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNlbGVjdEFnZW50KG5leHRBZ2VudClcbiAgICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICB9XG4gIH0sIFtzZWxlY3RBZ2VudCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0XSlcblxuICBjb25zdCBzaG93TmV3Q2hhdCA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0XG4gIGNvbnN0IGhpZGVIZWFkZXJBZ2VudFNlbGVjdG9yID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzXG4gIGNvbnN0IGhhbmRsZU9wZW5NYXJrZXRwbGFjZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMubXlBZ2VudHMpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUdvVG9NYWlha2VyID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIGxldCBtYWlha2VyQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKChhOiBBZ2VudCkgPT4gYS50eXBlID09PSAnY2xvbmUnICYmIGEuZW50aXR5ID09PSAnZ2xvYmFsJylcbiAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgbWFpYWtlckFnZW50ID0gKGRhdGEuZGF0YSB8fCBbXSkuZmluZCgoYTogQWdlbnQpID0+IGEudHlwZSA9PT0gJ2Nsb25lJyAmJiBhLmVudGl0eSA9PT0gJ2dsb2JhbCcpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0UHJvamVjdChudWxsKVxuICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5ob21lKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgICB9XG4gIH0sIFthZ2VudHMuZGF0YSwgaTE4bi5sYW5ndWFnZSwgc2VsZWN0QWdlbnQsIHNldENsaWVudCwgc2V0UHJvamVjdF0pXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUFnZW50RnJvbU15QWdlbnRzID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ6IHN0cmluZykgPT4ge1xuICAgICAgcmVtb3ZlQWdlbnQoYWdlbnRJZClcbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IGFnZW50SWQpIHtcbiAgICAgICAgc2VsZWN0Rmlyc3RBZ2VudChhZ2VudElkKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50Py5pZCwgcmVtb3ZlQWdlbnQsIHNlbGVjdEZpcnN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgaXNNYWlha2VyQWdlbnRTZWxlY3RlZFxuXG4gIHJldHVybiAoXG4gICAgc2VsZWN0b3IgJiZcbiAgICBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICA8U0NDQUlNV3JhcHBlciBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICA8U0NDQUlNQ29udGVudFdyYXBwZXIgZXhwYW5kZWQ9e2V4cGFuZGVkfT5cbiAgICAgICAgICB7dmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgJiYgKFxuICAgICAgICAgICAgPFNpZGViYXJcbiAgICAgICAgICAgICAgb25Hb1RvQ2hhdD17Z29Ub0NoYXR9XG4gICAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldFNpZGViYXJIYXNFcnJvcih0cnVlKX1cbiAgICAgICAgICAgICAgaGFuZGxlR29Ub0hvbWU9e2hhbmRsZUdvSG9tZX1cbiAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlPXtoYW5kbGVPcGVuTWFya2V0cGxhY2V9XG4gICAgICAgICAgICAgIHNob3dOZXdDaGF0PXtzaG93TmV3Q2hhdH1cbiAgICAgICAgICAgICAgcmVmZXRjaENoYXRzPXtyZWZldGNoQ2hhdHN9XG4gICAgICAgICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cz17c2V0UmVmZXRjaENoYXRzfVxuICAgICAgICAgICAgICBoYXNFcnJvcj17c2lkZWJhckhhc0Vycm9yfVxuICAgICAgICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZj17cmVzZXRTZWxlY3RlZENoYXRSZWZ9XG4gICAgICAgICAgICAgIGFnZW50c05hdkFjdGl2ZT17c2lkZWJhckFnZW50c05hdkFjdGl2ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U0NDQUlNQ29udGVudCBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgICAgIDxDaGF0QUlNb2RhbEhlYWRlclxuICAgICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICAgIHNldEV4cGFuZGVkPXtzZXRFeHBhbmRlZH1cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICAgIGhhc0Vycm9yPXshIWFnZW50RXJyb3J9XG4gICAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICAgIGxvYWRpbmdNb3JlPXtsb2FkaW5nTW9yZX1cbiAgICAgICAgICAgICAgaGFzTW9yZT17YWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICAgICAgb25BZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgICAgbG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgICAgIGhpZGVBZ2VudFNlbGVjdG9yPXtoaWRlSGVhZGVyQWdlbnRTZWxlY3Rvcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7LyogQ29udGVudCAqL31cblxuICAgICAgICAgICAge2hhc0Vycm9yID8gKFxuICAgICAgICAgICAgICA8TUFJQUVycm9yIC8+XG4gICAgICAgICAgICApIDogdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgPyAoXG4gICAgICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICAgICAgY3VycmVudE9wdGlvbj17Y29tcHV0ZWRDdXJyZW50T3B0aW9ufVxuICAgICAgICAgICAgICAgIGhhbmRsZXJzPXt7IC4uLmhhbmRsZXJzLCBjaGF0OiBzdGFydENoYXQsIGhvbWU6IGhhbmRsZXJzLmhvbWUsIGhhbmRsZUdvSG9tZSB9fVxuICAgICAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlZnM9e3sgdXNlckluaXRpYWxNZXNzYWdlLCBpbml0aWFsQ2hhdElkIH19XG4gICAgICAgICAgICAgICAgb25TZW5kTWVzc2FnZVJlYWR5PXtoYW5kbGVTZW5kTWVzc2FnZVJlYWR5fVxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgICBhZ2VudHM9e2FnZW50cy5kYXRhfVxuICAgICAgICAgICAgICAgIG9uRGVsZXRlQWdlbnQ9e2hhbmRsZURlbGV0ZUFnZW50RnJvbU15QWdlbnRzfVxuICAgICAgICAgICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgICAgICBoYXNNb3JlQWdlbnRzPXshIWFnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICAgICAgICBsb2FkaW5nTW9yZUFnZW50cz17bG9hZGluZ01vcmV9XG4gICAgICAgICAgICAgICAgb25Mb2FkTW9yZUFnZW50cz17bG9hZE1vcmVBZ2VudHN9XG4gICAgICAgICAgICAgICAgb25Hb1RvTWFpYWtlcj17aGFuZGxlR29Ub01haWFrZXJ9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogRm9vdGVyICovfVxuICAgICAgICAgICAgeygoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgISFhZ2VudHM/LmRhdGE/Lmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpICYmXG4gICAgICAgICAgICAgICFoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lICYmXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJlxuICAgICAgICAgICAgICAhbG9hZGluZyAmJlxuICAgICAgICAgICAgICB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgPENoYXRBaU1vZGFsRm9vdGVyXG4gICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTdG9wR2VuZXJhdGlvbj17c3RvcEdlbmVyYXRpb25GdW5jdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICAgICAgICAgICAgY2hhdElkPXtpbml0aWFsQ2hhdElkfVxuICAgICAgICAgICAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgICAgICAgICAgIHNob3dGYXFzPXtjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlNQ29udGVudD5cbiAgICAgICAgPC9TQ0NBSU1Db250ZW50V3JhcHBlcj5cbiAgICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgICAgPEFibUFnZW50TW9kYWxcbiAgICAgICAgICAgIGFkZEFnZW50PXthZGRBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICAgIHJlbW92ZUFnZW50PXtyZW1vdmVBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50RmF2b3JpdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTbmFja2JhciAvPlxuICAgICAgPC9TQ0NBSU1XcmFwcGVyPixcbiAgICAgIHNlbGVjdG9yXG4gICAgKVxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDcEYsT0FBT0MsUUFBUSxNQUFNLFdBQVc7QUFDaEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBRWpELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsYUFBYSxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxZQUFZLFFBQVEseUNBQXlDO0FBQ3RFLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUVsRSxTQUFTQyxpQkFBaUIsUUFBUSxrREFBa0Q7QUFDcEYsU0FBU0MsUUFBUSxRQUFRLG1DQUFtQztBQUM1RCxTQUFTQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFDaEUsU0FBU0MsYUFBYSxRQUFRLDZDQUE2QztBQUMzRSxTQUFTQyxRQUFRLFFBQVEsMkJB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
|
|
486
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwiQ2hhdEFJQ29udGVudCIsImJ1aWxkSGFuZGxlcnMiLCJvcHRpb25zIiwiU2lkZWJhciIsInVzZUdldEFnZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIlNFQ1RJT05TIiwiU0NDQUlNQ29udGVudCIsIlNDQ0FJTUNvbnRlbnRXcmFwcGVyIiwiU0NDQUlNV3JhcHBlciIsIkNoYXRBaU1vZGFsRm9vdGVyIiwidmFsaWRhdGVJc01haWEiLCJ1c2VGYXFzU3RvcmUiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIklEX01PREFMX0NIQVRfQUdFTlQiLCJ2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZSIsInNlY3Rpb24iLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiQ2hhdEFJTW9kYWwiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJfdXNlciRwZXJtaXNzaW9uczIiLCJfdXNlciRwZXJtaXNzaW9uczMiLCJfYWdlbnRzJGRhdGEiLCJoYW5kbGVDbG9zZSIsInVzZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsImkxOG4iLCJoYW5kbGVDbG9zZU1vZGFsIiwiZ2V0U3RhdGUiLCJjbGVhckZhcXMiLCJfdXNlU3RhdGUiLCJtZXNzYWdlIiwiYXR0YWNobWVudHMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJzZXRVc2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImluaXRpYWxDaGF0SWQiLCJzZXRJbml0aWFsQ2hhdElkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJuZXdDaGF0S2V5Iiwic2V0TmV3Q2hhdEtleSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2VuZE1lc3NhZ2VGdW5jdGlvbiIsInNldFNlbmRNZXNzYWdlRnVuY3Rpb24iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInN0b3BHZW5lcmF0aW9uRnVuY3Rpb24iLCJzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiaXNTdHJlYW1pbmciLCJzZXRJc1N0cmVhbWluZyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1dyaXRpbmciLCJzZXRJc1dyaXRpbmciLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwicmVmZXRjaENoYXRzIiwic2V0UmVmZXRjaENoYXRzIiwiX3VzZVN0YXRlMTUiLCJob21lIiwiX3VzZVN0YXRlMTYiLCJjdXJyZW50T3B0aW9uIiwic2V0Q3VycmVudE9wdGlvbiIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJoYXNFcnJvciIsInNldEhhc0Vycm9yIiwiaGFuZGxlcnMiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwic2lkZWJhckhhc0Vycm9yIiwic2V0U2lkZWJhckhhc0Vycm9yIiwicmVzZXRTZWxlY3RlZENoYXRSZWYiLCJsYW5nIiwibGFuZ3VhZ2UiLCJsb2NhbGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50IiwiYWdlbnQiLCJwcm9qZWN0IiwiY2xpZW50IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRDbGllbnQiLCJzZXRQcm9qZWN0IiwiX3VzZUdldEFnZW50cyIsImhhbmRsZUdvSG9tZSIsImFnZW50cyIsImxvYWRpbmciLCJsb2FkaW5nTW9yZSIsImFnZW50RXJyb3IiLCJlcnJvciIsImhhbmRsZUdldEFnZW50cyIsImxvYWRNb3JlQWdlbnRzIiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJzb3J0QWdlbnRzTGlzdCIsImlzTUFJQSIsInVzZXJIYXNQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY3JlYXRlIiwiZWRpdCIsImNvbXB1dGVkQ3VycmVudE9wdGlvbiIsImlzR2xvYmFsU3BlY2lhbGlzdCIsImVudGl0eSIsImlzUHJvamVjdFNwZWNpYWxpc3QiLCJpc0NsaWVudFNwZWNpYWxpc3QiLCJpc01haWFrZXIiLCJ0ZXN0IiwibmFtZSIsIm15QWdlbnRzIiwiY2hhdCIsInNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IiLCJzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IiLCJwcm9qZWN0U2VsZWN0b3IiLCJjbGllbnRTZWxlY3RvciIsImlzTWFpYWtlckFnZW50U2VsZWN0ZWQiLCJ0eXBlIiwic2lkZWJhckFnZW50c05hdkFjdGl2ZSIsImFnZW50c0ZldGNoZWRSZWYiLCJzZWxlY3RvciIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNvbmNhdCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJleHBhbmRlZCIsInNldEV4cGFuZGVkIiwic3RhcnRDaGF0IiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsInByZXYiLCJfb2JqZWN0U3ByZWFkIiwiZ29Ub0NoYXQiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsInNlbGVjdGVkQWdlbnQiLCJkYXRhIiwiZmluZCIsImFnZW50SXRlbSIsImlkIiwiYWdlbnRJZCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImhhbmRsZVNlbmRNZXNzYWdlUmVhZHkiLCJzZW5kTWVzc2FnZSIsInN0b3BHZW5lcmF0aW9uIiwic3RyZWFtaW5nIiwid3JpdGluZyIsImhhbmRsZVNlbmRNZXNzYWdlIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsInByb2plY3RfZGVsZXRlZCIsImxlbmd0aCIsImN1cnJlbnQiLCJoYW5kbGVSZXNldENoYXQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJzdG9wIiwib25NZXJnZUNyZWF0ZWRBZ2VudCIsImV2dCIsIl9yZWYzIiwiZGV0YWlsIiwibmV4dEFnZW50IiwibmF2aWdhdGVIb21lIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvcGVuQ2hhdFZpZXciLCJvcGVuTmV3Q2hhdFdpdGhBZ2VudCIsImV2ZW50IiwiX2RldGFpbCIsInNob3dOZXdDaGF0IiwiaGlkZUhlYWRlckFnZW50U2VsZWN0b3IiLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJoYW5kbGVHb1RvTWFpYWtlciIsIl9jYWxsZWUyIiwibWFpYWtlckFnZW50IiwicmVzcG9uc2UiLCJfdCIsIl9jb250ZXh0MiIsImEiLCJwYXRoIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJhYnJ1cHQiLCJoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50cyIsImhpZGVGb290ZXJPbk1haWFrZXJNYXJrZXRwbGFjZUhvbWUiLCJjcmVhdGVQb3J0YWwiLCJjaGlsZHJlbiIsIm9uR29Ub0NoYXQiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJhZ2VudHNOYXZBY3RpdmUiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJvbkFnZW50VXBkYXRlIiwiaGlkZUFnZW50U2VsZWN0b3IiLCJyZWZzIiwib25TZW5kTWVzc2FnZVJlYWR5Iiwib25EZWxldGVBZ2VudCIsIm9uRmF2b3JpdGVBZ2VudFVwZGF0ZSIsImhhc01vcmVBZ2VudHMiLCJsb2FkaW5nTW9yZUFnZW50cyIsIm9uTG9hZE1vcmVBZ2VudHMiLCJvbkdvVG9NYWlha2VyIiwib25SZXN0YXJ0U3VtbWFyeSIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiY2hhdElkIiwic2hvd0ZhcXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvQ2hhdEFJTW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9qc3gtbm8tdXNlbGVzcy1mcmFnbWVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9yZXF1aXJlLWRlZmF1bHQtcHJvcHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IFJlZk9iamVjdCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBNQUlBRXJyb3IgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBRXJyb3InXG5cbmltcG9ydCB7IENoYXRBSUNvbnRlbnQgfSBmcm9tICcuLi9DaGF0QUlDb250ZW50J1xuaW1wb3J0IHsgYnVpbGRIYW5kbGVycywgb3B0aW9ucyB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gJy4uL1NpZGViYXInXG5pbXBvcnQgeyB1c2VHZXRBZ2VudHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdEFJTW9kYWxIZWFkZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxIZWFkZXIvQ2hhdEFpTW9kYWxIZWFkZXInXG5pbXBvcnQgeyBTbmFja2JhciB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9TbmFja0Jhci9TbmFja2JhcidcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcbmltcG9ydCB7IEFibUFnZW50TW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvQWJtQWdlbnRNb2RhbC9BYm1BZ2VudE1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgU0NDQUlNQ29udGVudCwgU0NDQUlNQ29udGVudFdyYXBwZXIsIFNDQ0FJTVdyYXBwZXIgfSBmcm9tICcuL0NoYXRBSU1vZGFsLnN0eWxlcydcbmltcG9ydCB7IENoYXRBaU1vZGFsRm9vdGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0NoYXRBaU1vZGFsRm9vdGVyJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyB1c2VGYXFzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VGYXFzU3RvcmUnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL2NsaWVudCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuXG50eXBlIENoYXRBSU1vZGFsUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBoYW5kbGVDbG9zZT86ICgpID0+IHZvaWRcbiAgcGFyZW50UmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxufVxuXG5leHBvcnQgY29uc3QgSURfTU9EQUxfQ0hBVF9BR0VOVCA9ICdtb2RhbHMtcG9ydGFsLW1haWEtY2hhdC1hZ2VudCdcblxuY29uc3QgdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUgPSAoc2VjdGlvbjogc3RyaW5nKSA9PiB7XG4gIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAod2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIGlmICgoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICdjbGllbnQnKSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1vZGFsID0gKHsgaGFuZGxlQ2xvc2UgfTogQ2hhdEFJTW9kYWxQcm9wcykgPT4ge1xuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmFibUFnZW50XSlcblxuICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHVzZUZhcXNTdG9yZS5nZXRTdGF0ZSgpLmNsZWFyRmFxcygpXG4gICAgaGFuZGxlQ2xvc2U/LigpXG4gIH0sIFtoYW5kbGVDbG9zZV0pXG4gIGNvbnN0IFt1c2VySW5pdGlhbE1lc3NhZ2UsIHNldFVzZXJJbml0aWFsTWVzc2FnZV0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgICBmYXFJZD86IHN0cmluZ1xuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gIH0+KHtcbiAgICBtZXNzYWdlOiAnJyxcbiAgICBhdHRhY2htZW50czogW10sXG4gIH0pXG4gIGNvbnN0IFtpbml0aWFsQ2hhdElkLCBzZXRJbml0aWFsQ2hhdElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtuZXdDaGF0S2V5LCBzZXROZXdDaGF0S2V5XSA9IHVzZVN0YXRlKDApXG4gIGNvbnN0IFtzZW5kTWVzc2FnZUZ1bmN0aW9uLCBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uXSA9IHVzZVN0YXRlPFxuICAgICgobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nLCBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZykgPT4gdm9pZCkgfCBudWxsXG4gID4obnVsbClcbiAgY29uc3QgW3N0b3BHZW5lcmF0aW9uRnVuY3Rpb24sIHNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb25dID0gdXNlU3RhdGU8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzU3RyZWFtaW5nLCBzZXRJc1N0cmVhbWluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzV3JpdGluZywgc2V0SXNXcml0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IFtyZWZldGNoQ2hhdHMsIHNldFJlZmV0Y2hDaGF0c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnRPcHRpb24sIHNldEN1cnJlbnRPcHRpb25dID0gdXNlU3RhdGUob3B0aW9ucy5ob21lKVxuICBjb25zdCBbaGFzRXJyb3IsIHNldEhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBoYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4gYnVpbGRIYW5kbGVycyhzZXRDdXJyZW50T3B0aW9uLCBzZXRIYXNFcnJvciksIFtdKVxuICBjb25zdCBbc2lkZWJhckhhc0Vycm9yLCBzZXRTaWRlYmFySGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHJlc2V0U2VsZWN0ZWRDaGF0UmVmID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0LWJyJyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBtb21lbnQubG9jYWxlKGxhbmcpXG5cbiAgY29uc3Qge1xuICAgIHNlbGVjdEFnZW50LFxuICAgIHNlY3Rpb24sXG4gICAgYWdlbnQsXG4gICAgcHJvamVjdCxcbiAgICBjbGllbnQsXG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgICBzZXRDbGllbnQsXG4gICAgc2V0UHJvamVjdCxcbiAgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIGNvbnN0IHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcjogYWdlbnRFcnJvcixcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICAgIHNvcnRBZ2VudHNMaXN0LFxuICB9ID0gdXNlR2V0QWdlbnRzKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWU6IGhhbmRsZXJzLmhvbWUgfSlcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcblxuICBjb25zdCB1c2VySGFzUGVybWlzc2lvbnMgPVxuICAgICh1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGUgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmVkaXQgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmRlbGV0ZSkgJiZcbiAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gIGNvbnN0IGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGlzR2xvYmFsU3BlY2lhbGlzdCA9IGlzTUFJQSAmJiBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJ1xuICAgIGNvbnN0IGlzUHJvamVjdFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09IG51bGwpXG4gICAgY29uc3QgaXNDbGllbnRTcGVjaWFsaXN0ID0gaXNNQUlBICYmIGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnXG4gICAgY29uc3QgaXNNYWlha2VyID0gaXNHbG9iYWxTcGVjaWFsaXN0ICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuXG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMubXlBZ2VudHMpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLm15QWdlbnRzXG4gICAgfVxuXG4gICAgaWYgKGlzR2xvYmFsU3BlY2lhbGlzdCAmJiAhaXNNYWlha2VyICYmIGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY2hhdFxuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IgPSBjdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXQgJiYgaXNQcm9qZWN0U3BlY2lhbGlzdCAmJiAhcHJvamVjdFxuICAgIGNvbnN0IHNob3VsZFNob3dDbGllbnRTZWxlY3RvciA9IGN1cnJlbnRPcHRpb24gIT09IG9wdGlvbnMuY2hhdCAmJiBpc0NsaWVudFNwZWNpYWxpc3QgJiYgIWNsaWVudFxuXG4gICAgaWYgKHNob3VsZFNob3dQcm9qZWN0U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnByb2plY3RTZWxlY3RvclxuICAgIH1cbiAgICBpZiAoc2hvdWxkU2hvd0NsaWVudFNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5jbGllbnRTZWxlY3RvclxuICAgIH1cbiAgICByZXR1cm4gY3VycmVudE9wdGlvblxuICB9LCBbY3VycmVudE9wdGlvbiwgcHJvamVjdCwgY2xpZW50LCBpc01BSUEsIGFnZW50Py5lbnRpdHksIGFnZW50Py5uYW1lXSlcblxuICBjb25zdCBpc01haWFrZXJBZ2VudFNlbGVjdGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaXNNQUlBICYmXG4gICAgICBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJyAmJlxuICAgICAgYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiZcbiAgICAgIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKSxcbiAgICBbaXNNQUlBLCBhZ2VudD8uZW50aXR5LCBhZ2VudD8udHlwZSwgYWdlbnQ/Lm5hbWVdXG4gIClcblxuICBjb25zdCBzaWRlYmFyQWdlbnRzTmF2QWN0aXZlID0gdXNlTWVtbygoKTogJ21haWFrZXInIHwgJ215QWdlbnRzJyB8IG51bGwgPT4ge1xuICAgIGlmIChjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMubXlBZ2VudHMpIHJldHVybiAnbXlBZ2VudHMnXG4gICAgaWYgKGlzTWFpYWtlckFnZW50U2VsZWN0ZWQpIHJldHVybiAnbWFpYWtlcidcbiAgICByZXR1cm4gbnVsbFxuICB9LCBbY29tcHV0ZWRDdXJyZW50T3B0aW9uLCBpc01haWFrZXJBZ2VudFNlbGVjdGVkXSlcblxuICAvKiBSZWFjdGl2YXIgY29uIGxhIGZpbGEg4oCcTWlzIGFnZW50ZXPigJ0gZW4gU2lkZWJhcjogbXlBZ2VudHNDb3VudCBwcm9wXG4gIGNvbnN0IHNpZGViYXJNeUFnZW50c0NvdW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGFnZW50cy5kYXRhLmZpbHRlcihcbiAgICAgIGEgPT4gIShhLnR5cGUgPT09ICdjbG9uZScgJiYgYS5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGEubmFtZSB8fCAnJykpXG4gICAgKVxuICAgICAgLmxlbmd0aFxuICB9LCBbYWdlbnRzLmRhdGFdKVxuICAqL1xuXG4gIGNvbnN0IGFnZW50c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3Qgc2VsZWN0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtJRF9NT0RBTF9DSEFUX0FHRU5UfWApXG5cbiAgY29uc3QgW2V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBzdGFydENoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZT86IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZywgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHtcbiAgICAgICAgc2V0U2lkZWJhckhhc0Vycm9yKGZhbHNlKVxuICAgICAgfVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSB8fCAnJyxcbiAgICAgICAgYXR0YWNobWVudHM6IGF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgICAuLi4oZmFxSWQgPyB7IGZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihhZ2VudFN1Z2dlc3Rpb25JZCA/IHsgYWdlbnRTdWdnZXN0aW9uSWQgfSA6IHt9KSxcbiAgICAgIH0pXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgc2lkZWJhckhhc0Vycm9yXVxuICApXG5cbiAgY29uc3QgZ29Ub0NoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAoY2hhdDogYW55KSA9PiB7XG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICBjb25zdCBzZWxlY3RlZEFnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhZ2VudEl0ZW0gPT4gYWdlbnRJdGVtLmlkID09PSBjaGF0LmFnZW50SWQpXG4gICAgICBpZiAoc2VsZWN0ZWRBZ2VudCkge1xuICAgICAgICBzZWxlY3RBZ2VudChzZWxlY3RlZEFnZW50KVxuICAgICAgfVxuICAgICAgLy8gRGlzcGF0Y2ggZXZlbnQgdG8gY2xlYXIgdGhlIGlucHV0IHRleHRhcmVhXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY2hhdC1zZXNzaW9uLWNoYW5nZWQnKSlcbiAgICAgIGhhbmRsZXJzLmNoYXQoKVxuICAgIH0sXG4gICAgW2hhbmRsZXJzLCBhZ2VudHMsIHNlbGVjdEFnZW50XVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2VSZWFkeSA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbmRNZXNzYWdlOiAoXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgICAgICkgPT4gdm9pZCxcbiAgICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgICAgc3RyZWFtaW5nOiBib29sZWFuLFxuICAgICAgd3JpdGluZzogYm9vbGVhblxuICAgICkgPT4ge1xuICAgICAgc2V0U2VuZE1lc3NhZ2VGdW5jdGlvbigoKSA9PiBzZW5kTWVzc2FnZSlcbiAgICAgIHNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb24oKCkgPT4gc3RvcEdlbmVyYXRpb24pXG4gICAgICBzZXRJc1N0cmVhbWluZyhzdHJlYW1pbmcpXG4gICAgICBzZXRJc1dyaXRpbmcod3JpdGluZylcbiAgICB9LFxuICAgIFtdXG4gIClcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKFxuICAgIChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcsIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSB7XG4gICAgICAgIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICAgIGlmIChzZW5kTWVzc2FnZUZ1bmN0aW9uICYmIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICAgIHNlbmRNZXNzYWdlRnVuY3Rpb24obWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0Q2hhdChtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHN0YXJ0Q2hhdCwgY29tcHV0ZWRDdXJyZW50T3B0aW9uLCBzaWRlYmFySGFzRXJyb3JdXG4gIClcblxuICBjb25zdCBoYW5kbGVHb0hvbWUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gU2kgZXN0YW1vcyBlbiB1bmEgY29udmVyc2FjacOzbiB5IHZhbW9zIGEgaG9tZSwgcmVzZXRlYXIgaW5pdGlhbENoYXRJZCB5IGluY3JlbWVudGFyIG5ld0NoYXRLZXlcbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICAvLyBObyBib3JyYXIgZWwgY2xpZW50ZSBzaSBlcyBhZ2VudGUgZGUgY2xpZW50ZXMgKGlndWFsIHF1ZSBlbCBwcm95ZWN0byBzZSBtYW50aWVuZSlcbiAgICAgIGlmIChhZ2VudD8uZW50aXR5ICE9PSAnY2xpZW50Jykge1xuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICAoIWFnZW50IHx8IGFnZW50Py5pc19kZWxldGVkIHx8IGFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8IGFnZW50Py5oYXNfbm90X2FjY2VzcyB8fCBhZ2VudD8ucHJvamVjdF9kZWxldGVkKSAmJlxuICAgICAgYWdlbnRzLmRhdGEubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbMF0pXG4gICAgfVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5ob21lKVxuICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIGlzV2ViU2VhcmNoQWN0aXZlICYmIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQoKVxuICAgIH1cbiAgfSwgW1xuICAgIG9wdGlvbnMuaG9tZSxcbiAgICBvcHRpb25zLmNoYXQsXG4gICAgY3VycmVudE9wdGlvbixcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgYWdlbnQsXG4gICAgYWdlbnRzLFxuICAgIHNlbGVjdEFnZW50LFxuICAgIHNldENsaWVudCxcbiAgXSlcblxuICBjb25zdCBoYW5kbGVSZXNldENoYXQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAvLyBEaXNwYXRjaCBldmVudCB0byBjbGVhciB0aGUgaW5wdXQgdGV4dGFyZWFcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY2hhdC1zZXNzaW9uLWNoYW5nZWQnKSlcbiAgICBoYW5kbGVHb0hvbWUoKVxuICB9LCBbaGFuZGxlR29Ib21lXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghYWdlbnRzRmV0Y2hlZFJlZi5jdXJyZW50KSB7XG4gICAgICBhZ2VudHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBoYW5kbGVHZXRBZ2VudHMoKVxuICAgIH1cbiAgfSwgW2hhbmRsZUdldEFnZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbk1lcmdlQ3JlYXRlZEFnZW50ID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYWdlbnQ6IG5leHRBZ2VudCB9ID0gKGV2dCBhcyBDdXN0b21FdmVudDx7IGFnZW50OiBBZ2VudCB9PikuZGV0YWlsIHx8IHt9XG4gICAgICBpZiAobmV4dEFnZW50Py5pZCkge1xuICAgICAgICBhZGRBZ2VudChuZXh0QWdlbnQsIHsgbmF2aWdhdGVIb21lOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW1lcmdlLWNyZWF0ZWQtYWdlbnQtaW50by1saXN0Jywgb25NZXJnZUNyZWF0ZWRBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1tZXJnZS1jcmVhdGVkLWFnZW50LWludG8tbGlzdCcsIG9uTWVyZ2VDcmVhdGVkQWdlbnQpXG4gICAgfVxuICB9LCBbYWRkQWdlbnRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3BlbkNoYXRWaWV3ID0gKCkgPT4ge1xuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2hhdClcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLyoqIE1pc21vIGZsdWpvIHF1ZSBDaGF0QUlNeUFnZW50cy5oYW5kbGVVc2VBZ2VudCArIG9uQmFjayAoaGFuZGxlcnMuaG9tZSkuICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3Blbk5ld0NoYXRXaXRoQWdlbnQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBuZXh0QWdlbnQgPSAoZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbD8uYWdlbnRcbiAgICAgIGlmICghbmV4dEFnZW50KSByZXR1cm5cblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNlbGVjdEFnZW50KG5leHRBZ2VudClcbiAgICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICB9XG4gIH0sIFtzZWxlY3RBZ2VudCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0XSlcblxuICBjb25zdCBzaG93TmV3Q2hhdCA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0XG4gIGNvbnN0IGhpZGVIZWFkZXJBZ2VudFNlbGVjdG9yID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzXG4gIGNvbnN0IGhhbmRsZU9wZW5NYXJrZXRwbGFjZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMubXlBZ2VudHMpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUdvVG9NYWlha2VyID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIGxldCBtYWlha2VyQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKChhOiBBZ2VudCkgPT4gYS50eXBlID09PSAnY2xvbmUnICYmIGEuZW50aXR5ID09PSAnZ2xvYmFsJylcbiAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgbWFpYWtlckFnZW50ID0gKGRhdGEuZGF0YSB8fCBbXSkuZmluZCgoYTogQWdlbnQpID0+IGEudHlwZSA9PT0gJ2Nsb25lJyAmJiBhLmVudGl0eSA9PT0gJ2dsb2JhbCcpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0UHJvamVjdChudWxsKVxuICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5ob21lKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgICB9XG4gIH0sIFthZ2VudHMuZGF0YSwgaTE4bi5sYW5ndWFnZSwgc2VsZWN0QWdlbnQsIHNldENsaWVudCwgc2V0UHJvamVjdF0pXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUFnZW50RnJvbU15QWdlbnRzID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ6IHN0cmluZykgPT4ge1xuICAgICAgcmVtb3ZlQWdlbnQoYWdlbnRJZClcbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IGFnZW50SWQpIHtcbiAgICAgICAgc2VsZWN0Rmlyc3RBZ2VudChhZ2VudElkKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50Py5pZCwgcmVtb3ZlQWdlbnQsIHNlbGVjdEZpcnN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgaXNNYWlha2VyQWdlbnRTZWxlY3RlZFxuXG4gIHJldHVybiAoXG4gICAgc2VsZWN0b3IgJiZcbiAgICBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICA8U0NDQUlNV3JhcHBlciBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICA8U0NDQUlNQ29udGVudFdyYXBwZXIgZXhwYW5kZWQ9e2V4cGFuZGVkfT5cbiAgICAgICAgICB7dmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgJiYgKFxuICAgICAgICAgICAgPFNpZGViYXJcbiAgICAgICAgICAgICAgb25Hb1RvQ2hhdD17Z29Ub0NoYXR9XG4gICAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldFNpZGViYXJIYXNFcnJvcih0cnVlKX1cbiAgICAgICAgICAgICAgaGFuZGxlR29Ub0hvbWU9e2hhbmRsZUdvSG9tZX1cbiAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlPXtoYW5kbGVPcGVuTWFya2V0cGxhY2V9XG4gICAgICAgICAgICAgIHNob3dOZXdDaGF0PXtzaG93TmV3Q2hhdH1cbiAgICAgICAgICAgICAgcmVmZXRjaENoYXRzPXtyZWZldGNoQ2hhdHN9XG4gICAgICAgICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cz17c2V0UmVmZXRjaENoYXRzfVxuICAgICAgICAgICAgICBoYXNFcnJvcj17c2lkZWJhckhhc0Vycm9yfVxuICAgICAgICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZj17cmVzZXRTZWxlY3RlZENoYXRSZWZ9XG4gICAgICAgICAgICAgIGFnZW50c05hdkFjdGl2ZT17c2lkZWJhckFnZW50c05hdkFjdGl2ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U0NDQUlNQ29udGVudCBleHBhbmRlZD17ZXhwYW5kZWR9PlxuICAgICAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgICAgIDxDaGF0QUlNb2RhbEhlYWRlclxuICAgICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICAgIHNldEV4cGFuZGVkPXtzZXRFeHBhbmRlZH1cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICAgIGhhc0Vycm9yPXshIWFnZW50RXJyb3J9XG4gICAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICAgIGxvYWRpbmdNb3JlPXtsb2FkaW5nTW9yZX1cbiAgICAgICAgICAgICAgaGFzTW9yZT17YWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICAgICAgb25BZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgICAgbG9hZE1vcmVBZ2VudHM9e2xvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgICAgIGhpZGVBZ2VudFNlbGVjdG9yPXtoaWRlSGVhZGVyQWdlbnRTZWxlY3Rvcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7LyogQ29udGVudCAqL31cblxuICAgICAgICAgICAge2hhc0Vycm9yID8gKFxuICAgICAgICAgICAgICA8TUFJQUVycm9yIC8+XG4gICAgICAgICAgICApIDogdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgPyAoXG4gICAgICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICAgICAgY3VycmVudE9wdGlvbj17Y29tcHV0ZWRDdXJyZW50T3B0aW9ufVxuICAgICAgICAgICAgICAgIGhhbmRsZXJzPXt7IC4uLmhhbmRsZXJzLCBjaGF0OiBzdGFydENoYXQsIGhvbWU6IGhhbmRsZXJzLmhvbWUsIGhhbmRsZUdvSG9tZSB9fVxuICAgICAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlZnM9e3sgdXNlckluaXRpYWxNZXNzYWdlLCBpbml0aWFsQ2hhdElkIH19XG4gICAgICAgICAgICAgICAgb25TZW5kTWVzc2FnZVJlYWR5PXtoYW5kbGVTZW5kTWVzc2FnZVJlYWR5fVxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgICBhZ2VudHM9e2FnZW50cy5kYXRhfVxuICAgICAgICAgICAgICAgIG9uRGVsZXRlQWdlbnQ9e2hhbmRsZURlbGV0ZUFnZW50RnJvbU15QWdlbnRzfVxuICAgICAgICAgICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgICAgICBoYXNNb3JlQWdlbnRzPXshIWFnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICAgICAgICBsb2FkaW5nTW9yZUFnZW50cz17bG9hZGluZ01vcmV9XG4gICAgICAgICAgICAgICAgb25Mb2FkTW9yZUFnZW50cz17bG9hZE1vcmVBZ2VudHN9XG4gICAgICAgICAgICAgICAgb25Hb1RvTWFpYWtlcj17aGFuZGxlR29Ub01haWFrZXJ9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogRm9vdGVyICovfVxuICAgICAgICAgICAgeygoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgISFhZ2VudHM/LmRhdGE/Lmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpICYmXG4gICAgICAgICAgICAgICFoaWRlRm9vdGVyT25NYWlha2VyTWFya2V0cGxhY2VIb21lICYmXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJlxuICAgICAgICAgICAgICAhbG9hZGluZyAmJlxuICAgICAgICAgICAgICB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgPENoYXRBaU1vZGFsRm9vdGVyXG4gICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTdG9wR2VuZXJhdGlvbj17c3RvcEdlbmVyYXRpb25GdW5jdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICAgICAgICAgICAgY2hhdElkPXtpbml0aWFsQ2hhdElkfVxuICAgICAgICAgICAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgICAgICAgICAgIHNob3dGYXFzPXtjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlNQ29udGVudD5cbiAgICAgICAgPC9TQ0NBSU1Db250ZW50V3JhcHBlcj5cbiAgICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgICAgPEFibUFnZW50TW9kYWxcbiAgICAgICAgICAgIGFkZEFnZW50PXthZGRBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICAgIHJlbW92ZUFnZW50PXtyZW1vdmVBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50RmF2b3JpdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTbmFja2JhciAvPlxuICAgICAgPC9TQ0NBSU1XcmFwcGVyPixcbiAgICAgIHNlbGVjdG9yXG4gICAgKVxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDcEYsT0FBT0MsUUFBUSxNQUFNLFdBQVc7QUFDaEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBRWpELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsYUFBYSxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxZQUFZLFFBQVEseUNBQXlDO0FBQ3RFLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUVsRSxTQUFTQyxpQkFBaUIsUUFBUSxrREFBa0Q7QUFDcEYsU0FBU0MsUUFBUSxRQUFRLG1DQUFtQztBQUM1RCxTQUFTQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFDaEUsU0FBU0MsYUFBYSxRQUFRLDZDQUE2QztBQUMzRSxTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLGFBQWEsRUFBRUMsb0JBQW9CLEVBQUVDLGFBQWEsUUFBUSxzQkFBc0I7QUFDekYsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLFNBQVNDLGNBQWMsUUFBUSx3Q0FBd0M7QUFFdkUsU0FBU0MsWUFBWSxRQUFRLDZCQUE2QjtBQUMxRCxTQUFTQyxTQUFTLFFBQVEsK0JBQStCO0FBQ3pELFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBUWhELE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsK0JBQStCO0FBRWxFLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLE9BQWUsRUFBSztFQUNuRCxJQUFJQSxPQUFPLEtBQUssUUFBUSxLQUFLQyxNQUFNLENBQUNDLHdDQUF3QyxJQUFJRCxNQUFNLENBQUNFLDJCQUEyQixDQUFDLEVBQUU7SUFDbkgsT0FBTyxJQUFJO0VBQ2I7RUFDQSxJQUFJLENBQUNILE9BQU8sS0FBSyxTQUFTLElBQUlBLE9BQU8sS0FBSyxRQUFRLEtBQUtDLE1BQU0sQ0FBQ0UsMkJBQTJCLEVBQUU7SUFDekYsT0FBTyxJQUFJO0VBQ2I7RUFDQSxPQUFPLEtBQUs7QUFDZCxDQUFDO0FBRUQsT0FBTyxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQSxFQUEwQztFQUFBLElBQUFDLGlCQUFBLEVBQUFDLGtCQUFBLEVBQUFDLGtCQUFBLEVBQUFDLFlBQUE7RUFBQSxJQUFwQ0MsV0FBVyxHQUFBTCxJQUFBLENBQVhLLFdBQVc7RUFDdkMsSUFBTUMsSUFBSSxHQUFHdEMsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBQXVDLGVBQUEsR0FBaUJ4QyxjQUFjLENBQUMsQ0FBQ2EsUUFBUSxDQUFDNEIsUUFBUSxDQUFDLENBQUM7SUFBNUNDLElBQUksR0FBQUYsZUFBQSxDQUFKRSxJQUFJO0VBRVosSUFBTUMsZ0JBQWdCLEdBQUdsRCxXQUFXLENBQUMsWUFBTTtJQUN6QzBCLFlBQVksQ0FBQ3lCLFFBQVEsQ0FBQyxDQUFDLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DUCxXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFHLENBQUM7RUFDakIsQ0FBQyxFQUFFLENBQUNBLFdBQVcsQ0FBQyxDQUFDO0VBQ2pCLElBQUFRLFNBQUEsR0FBb0RuRCxRQUFRLENBS3pEO01BQ0RvRCxPQUFPLEVBQUUsRUFBRTtNQUNYQyxXQUFXLEVBQUU7SUFDZixDQUFDLENBQUM7SUFBQUMsVUFBQSxHQUFBQyxjQUFBLENBQUFKLFNBQUE7SUFSS0ssa0JBQWtCLEdBQUFGLFVBQUE7SUFBRUcscUJBQXFCLEdBQUFILFVBQUE7RUFTaEQsSUFBQUksVUFBQSxHQUEwQzFELFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUEyRCxVQUFBLEdBQUFKLGNBQUEsQ0FBQUcsVUFBQTtJQUFoRUUsYUFBYSxHQUFBRCxVQUFBO0lBQUVFLGdCQUFnQixHQUFBRixVQUFBO0VBQ3RDLElBQUFHLFVBQUEsR0FBb0M5RCxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUErRCxVQUFBLEdBQUFSLGNBQUEsQ0FBQU8sVUFBQTtJQUF4Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBRyxVQUFBLEdBQXNEbEUsUUFBUSxDQUU1RCxJQUFJLENBQUM7SUFBQW1FLFVBQUEsR0FBQVosY0FBQSxDQUFBVyxVQUFBO0lBRkFFLG1CQUFtQixHQUFBRCxVQUFBO0lBQUVFLHNCQUFzQixHQUFBRixVQUFBO0VBR2xELElBQUFHLFVBQUEsR0FBNER0RSxRQUFRLENBQXNCLElBQUksQ0FBQztJQUFBdUUsVUFBQSxHQUFBaEIsY0FBQSxDQUFBZSxVQUFBO0lBQXhGRSxzQkFBc0IsR0FBQUQsVUFBQTtJQUFFRSx5QkFBeUIsR0FBQUYsVUFBQTtFQUN4RCxJQUFBRyxVQUFBLEdBQXNDMUUsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBMkUsV0FBQSxHQUFBcEIsY0FBQSxDQUFBbUIsVUFBQTtJQUE5Q0UsV0FBVyxHQUFBRCxXQUFBO0lBQUVFLGNBQWMsR0FBQUYsV0FBQTtFQUNsQyxJQUFBRyxXQUFBLEdBQWtDOUUsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBK0UsV0FBQSxHQUFBeEIsY0FBQSxDQUFBdUIsV0FBQTtJQUExQ0UsU0FBUyxHQUFBRCxXQUFBO0lBQUVFLFlBQVksR0FBQUYsV0FBQTtFQUU5QixJQUFBRyxXQUFBLEdBQXdDbEYsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBbUYsV0FBQSxHQUFBNUIsY0FBQSxDQUFBMkIsV0FBQTtJQUFoREUsWUFBWSxHQUFBRCxXQUFBO0lBQUVFLGVBQWUsR0FBQUYsV0FBQTtFQUNwQyxJQUFBRyxXQUFBLEdBQTBDdEYsUUFBUSxDQUFDVSxPQUFPLENBQUM2RSxJQUFJLENBQUM7SUFBQUMsV0FBQSxHQUFBakMsY0FBQSxDQUFBK0IsV0FBQTtJQUF6REcsYUFBYSxHQUFBRCxXQUFBO0lBQUVFLGdCQUFnQixHQUFBRixXQUFBO0VBQ3RDLElBQUFHLFdBQUEsR0FBZ0MzRixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE0RixXQUFBLEdBQUFyQyxjQUFBLENBQUFvQyxXQUFBO0lBQXhDRSxRQUFRLEdBQUFELFdBQUE7SUFBRUUsV0FBVyxHQUFBRixXQUFBO0VBQzVCLElBQU1HLFFBQVEsR0FBR2hHLE9BQU8sQ0FBQztJQUFBLE9BQU1VLGFBQWEsQ0FBQ2lGLGdCQUFnQixFQUFFSSxXQUFXLENBQUM7RUFBQSxHQUFFLEVBQUUsQ0FBQztFQUNoRixJQUFBRSxXQUFBLEdBQThDaEcsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBaUcsV0FBQSxHQUFBMUMsY0FBQSxDQUFBeUMsV0FBQTtJQUF0REUsZUFBZSxHQUFBRCxXQUFBO0lBQUVFLGtCQUFrQixHQUFBRixXQUFBO0VBQzFDLElBQU1HLG9CQUFvQixHQUFHbkcsTUFBTSxDQUFzQixJQUFJLENBQUM7RUFDOUQsSUFBTW9HLElBQUksR0FBR3RELElBQUksQ0FBQ3VELFFBQVEsS0FBSyxJQUFJLEdBQUcsT0FBTyxHQUFHdkQsSUFBSSxDQUFDdUQsUUFBUTtFQUU3RGxHLE1BQU0sQ0FBQ21HLE1BQU0sQ0FBQ0YsSUFBSSxDQUFDO0VBRW5CLElBQUFHLGlCQUFBLEdBV0kzRixnQkFBZ0IsQ0FBQyxDQUFDO0lBVnBCNEYsV0FBVyxHQUFBRCxpQkFBQSxDQUFYQyxXQUFXO0lBQ1h4RSxPQUFPLEdBQUF1RSxpQkFBQSxDQUFQdkUsT0FBTztJQUNQeUUsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0lBQ0xDLE9BQU8sR0FBQUgsaUJBQUEsQ0FBUEcsT0FBTztJQUNQQyxNQUFNLEdBQUFKLGlCQUFBLENBQU5JLE1BQU07SUFDTkMsZUFBZSxHQUFBTCxpQkFBQSxDQUFmSyxlQUFlO0lBQ2ZDLGlCQUFpQixHQUFBTixpQkFBQSxDQUFqQk0saUJBQWlCO0lBQ2pCQyxlQUFlLEdBQUFQLGlCQUFBLENBQWZPLGVBQWU7SUFDZkMsU0FBUyxHQUFBUixpQkFBQSxDQUFUUSxTQUFTO0lBQ1RDLFVBQVUsR0FBQVQsaUJBQUEsQ0FBVlMsVUFBVTtFQUdaLElBQUFDLGFBQUEsR0FhSXRHLFlBQVksQ0FBQztNQUFFNkYsV0FBVyxFQUFYQSxXQUFXO01BQUV4RSxPQUFPLEVBQVBBLE9BQU87TUFBRXlFLEtBQUssRUFBTEEsS0FBSztNQUFFUyxZQUFZLEVBQUVwQixRQUFRLENBQUNSO0lBQUssQ0FBQyxDQUFDO0lBWjVFNkIsTUFBTSxHQUFBRixhQUFBLENBQU5FLE1BQU07SUFDTkMsT0FBTyxHQUFBSCxhQUFBLENBQVBHLE9BQU87SUFDUEMsV0FBVyxHQUFBSixhQUFBLENBQVhJLFdBQVc7SUFDSkMsVUFBVSxHQUFBTCxhQUFBLENBQWpCTSxLQUFLO0lBQ0xDLGVBQWUsR0FBQVAsYUFBQSxDQUFmTyxlQUFlO0lBQ2ZDLGNBQWMsR0FBQVIsYUFBQSxDQUFkUSxjQUFjO0lBQ2RDLFFBQVEsR0FBQVQsYUFBQSxDQUFSUyxRQUFRO0lBQ1JDLFdBQVcsR0FBQVYsYUFBQSxDQUFYVSxXQUFXO0lBQ1hDLFdBQVcsR0FBQVgsYUFBQSxDQUFYVyxXQUFXO0lBQ1hDLG1CQUFtQixHQUFBWixhQUFBLENBQW5CWSxtQkFBbUI7SUFDbkJDLGdCQUFnQixHQUFBYixhQUFBLENBQWhCYSxnQkFBZ0I7SUFDaEJDLGNBQWMsR0FBQWQsYUFBQSxDQUFkYyxjQUFjO0VBR2hCLElBQU1DLE1BQU0sR0FBRzFHLGNBQWMsQ0FBQ21GLEtBQWMsQ0FBQztFQUU3QyxJQUFNd0Isa0JBQWtCLEdBQ3RCLENBQUMsQ0FBQXRGLElBQUksYUFBSkEsSUFBSSxnQkFBQUwsaUJBQUEsR0FBSkssSUFBSSxDQUFFdUYsV0FBVyxjQUFBNUYsaUJBQUEsZ0JBQUFBLGlCQUFBLEdBQWpCQSxpQkFBQSxDQUFtQjZGLFNBQVMsY0FBQTdGLGlCQUFBLHVCQUE1QkEsaUJBQUEsQ0FBOEI4RixNQUFNLE1BQ25DekYsSUFBSSxhQUFKQSxJQUFJLGdCQUFBSixrQkFBQSxHQUFKSSxJQUFJLENBQUV1RixXQUFXLGNBQUEzRixrQkFBQSxnQkFBQUEsa0JBQUEsR0FBakJBLGtCQUFBLENBQW1CNEYsU0FBUyxjQUFBNUYsa0JBQUEsdUJBQTVCQSxrQkFBQSxDQUE4QjhGLElBQUksTUFDbEMxRixJQUFJLGFBQUpBLElBQUksZ0JBQUFILGtCQUFBLEdBQUpHLElBQUksQ0FBRXVGLFdBQVcsY0FBQTFGLGtCQUFBLGdCQUFBQSxrQkFBQSxHQUFqQkEsa0JBQUEsQ0FBbUIyRixTQUFTLGNBQUEzRixrQkFBQSx1QkFBNUJBLGtCQUFBLFVBQW9DLE1BQ3RDUCxNQUFNLENBQUNDLHdDQUF3QztFQUVqRCxJQUFNb0cscUJBQXFCLEdBQUd4SSxPQUFPLENBQUMsWUFBTTtJQUMxQyxJQUFNeUksa0JBQWtCLEdBQUdQLE1BQU0sSUFBSSxDQUFBdkIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUrQixNQUFNLE1BQUssUUFBUTtJQUMvRCxJQUFNQyxtQkFBbUIsR0FBR1QsTUFBTSxLQUFLLENBQUF2QixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sTUFBSyxTQUFTLElBQUksQ0FBQS9CLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0IsTUFBTSxLQUFJLElBQUksQ0FBQztJQUM1RixJQUFNRSxrQkFBa0IsR0FBR1YsTUFBTSxJQUFJLENBQUF2QixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sTUFBSyxRQUFRO0lBQy9ELElBQU1HLFNBQVMsR0FBR0osa0JBQWtCLElBQUksd0JBQXdCLENBQUNLLElBQUksQ0FBQyxDQUFBbkMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVvQyxJQUFJLEtBQUksRUFBRSxDQUFDO0lBRXhGLElBQUlyRCxhQUFhLEtBQUsvRSxPQUFPLENBQUNxSSxRQUFRLEVBQUU7TUFDdEMsT0FBT3JJLE9BQU8sQ0FBQ3FJLFFBQVE7SUFDekI7SUFFQSxJQUFJUCxrQkFBa0IsSUFBSSxDQUFDSSxTQUFTLElBQUluRCxhQUFhLEtBQUsvRSxPQUFPLENBQUM2RSxJQUFJLEVBQUU7TUFDdEUsT0FBTzdFLE9BQU8sQ0FBQ3NJLElBQUk7SUFDckI7SUFFQSxJQUFNQyx5QkFBeUIsR0FBR3hELGFBQWEsS0FBSy9FLE9BQU8sQ0FBQ3NJLElBQUksSUFBSU4sbUJBQW1CLElBQUksQ0FBQy9CLE9BQU87SUFDbkcsSUFBTXVDLHdCQUF3QixHQUFHekQsYUFBYSxLQUFLL0UsT0FBTyxDQUFDc0ksSUFBSSxJQUFJTCxrQkFBa0IsSUFBSSxDQUFDL0IsTUFBTTtJQUVoRyxJQUFJcUMseUJBQXlCLEVBQUU7TUFDN0IsT0FBT3ZJLE9BQU8sQ0FBQ3lJLGVBQWU7SUFDaEM7SUFDQSxJQUFJRCx3QkFBd0IsRUFBRTtNQUM1QixPQUFPeEksT0FBTyxDQUFDMEksY0FBYztJQUMvQjtJQUNBLE9BQU8zRCxhQUFhO0VBQ3RCLENBQUMsRUFBRSxDQUFDQSxhQUFhLEVBQUVrQixPQUFPLEVBQUVDLE1BQU0sRUFBRXFCLE1BQU0sRUFBRXZCLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0IsTUFBTSxFQUFFL0IsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVvQyxJQUFJLENBQUMsQ0FBQztFQUV4RSxJQUFNTyxzQkFBc0IsR0FBR3RKLE9BQU8sQ0FDcEM7SUFBQSxPQUNFa0ksTUFBTSxJQUNOLENBQUF2QixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sTUFBSyxRQUFRLElBQzFCLENBQUEvQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTRDLElBQUksTUFBSyxPQUFPLElBQ3ZCLHdCQUF3QixDQUFDVCxJQUFJLENBQUMsQ0FBQW5DLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFb0MsSUFBSSxLQUFJLEVBQUUsQ0FBQztFQUFBLEdBQ2xELENBQUNiLE1BQU0sRUFBRXZCLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0IsTUFBTSxFQUFFL0IsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUU0QyxJQUFJLEVBQUU1QyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRW9DLElBQUksQ0FDbEQsQ0FBQztFQUVELElBQU1TLHNCQUFzQixHQUFHeEosT0FBTyxDQUFDLFlBQXFDO0lBQzFFLElBQUl3SSxxQkFBcUIsS0FBSzdILE9BQU8sQ0FBQ3FJLFFBQVEsRUFBRSxPQUFPLFVBQVU7SUFDakUsSUFBSU0sc0JBQXNCLEVBQUUsT0FBTyxTQUFTO0lBQzVDLE9BQU8sSUFBSTtFQUNiLENBQUMsRUFBRSxDQUFDZCxxQkFBcUIsRUFBRWMsc0JBQXNCLENBQUMsQ0FBQzs7RUFFbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFFRSxJQUFNRyxnQkFBZ0IsR0FBR3ZKLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFFdEMsSUFBTXdKLFFBQVEsR0FBR0MsUUFBUSxDQUFDQyxhQUFhLEtBQUFDLE1BQUEsQ0FBSzdILG1CQUFtQixDQUFFLENBQUM7RUFFbEUsSUFBQThILFdBQUEsR0FBZ0M3SixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE4SixXQUFBLEdBQUF2RyxjQUFBLENBQUFzRyxXQUFBO0lBQXhDRSxRQUFRLEdBQUFELFdBQUE7SUFBRUUsV0FBVyxHQUFBRixXQUFBO0VBRTVCLElBQU1HLFNBQVMsR0FBR25LLFdBQVcsQ0FDM0IsVUFBQ3NELE9BQWdCLEVBQUVDLFdBQThCLEVBQUU2RyxLQUFjLEVBQUVDLGlCQUEwQixFQUFLO0lBQ2hHLElBQUlqRSxlQUFlLEVBQUU7TUFDbkJDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUMzQjtJQUNBdEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ3RCSSxhQUFhLENBQUMsVUFBQW1HLElBQUk7TUFBQSxPQUFJQSxJQUFJLEdBQUcsQ0FBQztJQUFBLEVBQUM7SUFDL0IzRyxxQkFBcUIsQ0FBQTRHLGFBQUEsQ0FBQUEsYUFBQTtNQUNuQmpILE9BQU8sRUFBRUEsT0FBTyxJQUFJLEVBQUU7TUFDdEJDLFdBQVcsRUFBRUEsV0FBVyxJQUFJO0lBQUUsR0FDMUI2RyxLQUFLLEdBQUc7TUFBRUEsS0FBSyxFQUFMQTtJQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDdEJDLGlCQUFpQixHQUFHO01BQUVBLGlCQUFpQixFQUFqQkE7SUFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0lBQ0ZwRSxRQUFRLENBQUNpRCxJQUFJLENBQUMsQ0FBQztFQUNqQixDQUFDLEVBQ0QsQ0FBQ2pELFFBQVEsRUFBRUcsZUFBZSxDQUM1QixDQUFDO0VBRUQsSUFBTW9FLFFBQVEsR0FBR3hLLFdBQVcsQ0FDMUIsVUFBQ2tKLElBQVMsRUFBSztJQUNidkYscUJBQXFCLENBQUM7TUFBRUwsT0FBTyxFQUFFLEVBQUU7TUFBRUMsV0FBVyxFQUFFO0lBQUcsQ0FBQyxDQUFDO0lBQ3ZEUSxnQkFBZ0IsQ0FBQ21GLElBQUksQ0FBQ3VCLGlCQUFpQixDQUFDO0lBQ3hDLElBQU1DLGFBQWEsR0FBR3BELE1BQU0sQ0FBQ3FELElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQUFDLFNBQVM7TUFBQSxPQUFJQSxTQUFTLENBQUNDLEVBQUUsS0FBSzVCLElBQUksQ0FBQzZCLE9BQU87SUFBQSxFQUFDO0lBQ2xGLElBQUlMLGFBQWEsRUFBRTtNQUNqQi9ELFdBQVcsQ0FBQytELGFBQWEsQ0FBQztJQUM1QjtJQUNBO0lBQ0FkLFFBQVEsQ0FBQ29CLGFBQWEsQ0FBQyxJQUFJQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMvRGhGLFFBQVEsQ0FBQ2lELElBQUksQ0FBQyxDQUFDO0VBQ2pCLENBQUMsRUFDRCxDQUFDakQsUUFBUSxFQUFFcUIsTUFBTSxFQUFFWCxXQUFXLENBQ2hDLENBQUM7RUFFRCxJQUFNdUUsc0JBQXNCLEdBQUdsTCxXQUFXLENBQ3hDLFVBQ0VtTCxXQUtTLEVBQ1RDLGNBQTBCLEVBQzFCQyxTQUFrQixFQUNsQkMsT0FBZ0IsRUFDYjtJQUNIL0csc0JBQXNCLENBQUM7TUFBQSxPQUFNNEcsV0FBVztJQUFBLEVBQUM7SUFDekN4Ryx5QkFBeUIsQ0FBQztNQUFBLE9BQU15RyxjQUFjO0lBQUEsRUFBQztJQUMvQ3JHLGNBQWMsQ0FBQ3NHLFNBQVMsQ0FBQztJQUN6QmxHLFlBQVksQ0FBQ21HLE9BQU8sQ0FBQztFQUN2QixDQUFDLEVBQ0QsRUFDRixDQUFDO0VBRUQsSUFBTUMsaUJBQWlCLEdBQUd2TCxXQUFXLENBQ25DLFVBQUNzRCxPQUFlLEVBQUVDLFdBQThCLEVBQUU2RyxLQUFjLEVBQUVDLGlCQUEwQixFQUFLO0lBQy9GLElBQUlqRSxlQUFlLEVBQUU7TUFDbkJDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUMzQjtJQUNBLElBQUkvQixtQkFBbUIsSUFBSW1FLHFCQUFxQixLQUFLN0gsT0FBTyxDQUFDc0ksSUFBSSxFQUFFO01BQ2pFNUUsbUJBQW1CLENBQUNoQixPQUFPLEVBQUVDLFdBQVcsRUFBRTZHLEtBQUssRUFBRUMsaUJBQWlCLENBQUM7SUFDckUsQ0FBQyxNQUFNO01BQ0xGLFNBQVMsQ0FBQzdHLE9BQU8sRUFBRUMsV0FBVyxFQUFFNkcsS0FBSyxFQUFFQyxpQkFBaUIsQ0FBQztJQUMzRDtFQUNGLENBQUMsRUFDRCxDQUFDL0YsbUJBQW1CLEVBQUU2RixTQUFTLEVBQUUxQixxQkFBcUIsRUFBRXJDLGVBQWUsQ0FDekUsQ0FBQztFQUVELElBQU1pQixZQUFZLEdBQUdySCxXQUFXLENBQUMsWUFBTTtJQUNyQztJQUNBLElBQUkyRixhQUFhLEtBQUsvRSxPQUFPLENBQUNzSSxJQUFJLEVBQUU7TUFDbENuRixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7TUFDdEJJLGFBQWEsQ0FBQyxVQUFBbUcsSUFBSTtRQUFBLE9BQUlBLElBQUksR0FBRyxDQUFDO01BQUEsRUFBQztNQUMvQjtNQUNBLElBQUksQ0FBQTFELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0IsTUFBTSxNQUFLLFFBQVEsRUFBRTtRQUM5QnpCLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUcsSUFBSSxDQUFDO01BQ25CO0lBQ0Y7SUFDQSxJQUNFLENBQUMsQ0FBQ04sS0FBSyxJQUFJQSxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFNEUsVUFBVSxJQUFJNUUsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRTZFLG1CQUFtQixJQUFJN0UsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRThFLGNBQWMsSUFBSTlFLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUUrRSxlQUFlLEtBQzdHckUsTUFBTSxDQUFDcUQsSUFBSSxDQUFDaUIsTUFBTSxHQUFHLENBQUMsRUFDdEI7TUFDQWpGLFdBQVcsQ0FBQ1csTUFBTSxDQUFDcUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCO0lBQ0EvRSxnQkFBZ0IsQ0FBQ2hGLE9BQU8sQ0FBQzZFLElBQUksQ0FBQztJQUM5QndCLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDckJqQixXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCZ0IsaUJBQWlCLElBQUlELGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLElBQUlULG9CQUFvQixDQUFDdUYsT0FBTyxFQUFFO01BQ2hDdkYsb0JBQW9CLENBQUN1RixPQUFPLENBQUMsQ0FBQztJQUNoQztFQUNGLENBQUMsRUFBRSxDQUNEakwsT0FBTyxDQUFDNkUsSUFBSSxFQUNaN0UsT0FBTyxDQUFDc0ksSUFBSSxFQUNadkQsYUFBYSxFQUNicUIsaUJBQWlCLEVBQ2pCRCxlQUFlLEVBQ2ZILEtBQUssRUFDTFUsTUFBTSxFQUNOWCxXQUFXLEVBQ1hPLFNBQVMsQ0FDVixDQUFDO0VBRUYsSUFBTTRFLGVBQWUsR0FBRzlMLFdBQVcsY0FBQStMLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBQyxTQUFBQyxRQUFBO0lBQUEsT0FBQUYsbUJBQUEsQ0FBQUcsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQTlCLElBQUEsR0FBQThCLFFBQUEsQ0FBQUMsSUFBQTtRQUFBO1VBQ2xDMUkscUJBQXFCLENBQUM7WUFBRUwsT0FBTyxFQUFFLEVBQUU7WUFBRUMsV0FBVyxFQUFFO1VBQUcsQ0FBQyxDQUFDO1VBQ3ZEUSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7VUFDdEI7VUFDQTZGLFFBQVEsQ0FBQ29CLGFBQWEsQ0FBQyxJQUFJQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztVQUMvRDVELFlBQVksQ0FBQyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUErRSxRQUFBLENBQUFFLElBQUE7TUFBQTtJQUFBLEdBQUFKLE9BQUE7RUFBQSxDQUNmLElBQUUsQ0FBQzdFLFlBQVksQ0FBQyxDQUFDO0VBRWxCakgsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUNzSixnQkFBZ0IsQ0FBQ21DLE9BQU8sRUFBRTtNQUM3Qm5DLGdCQUFnQixDQUFDbUMsT0FBTyxHQUFHLElBQUk7TUFDL0JsRSxlQUFlLENBQUMsQ0FBQztJQUNuQjtFQUNGLENBQUMsRUFBRSxDQUFDQSxlQUFlLENBQUMsQ0FBQztFQUVyQnZILFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTW1NLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLEdBQVUsRUFBSztNQUMxQyxJQUFBQyxLQUFBLEdBQThCRCxHQUFHLENBQW1DRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQWpFQyxTQUFTLEdBQUFGLEtBQUEsQ0FBaEI3RixLQUFLO01BQ2IsSUFBSStGLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUU3QixFQUFFLEVBQUU7UUFDakJqRCxRQUFRLENBQUM4RSxTQUFTLEVBQUU7VUFBRUMsWUFBWSxFQUFFO1FBQU0sQ0FBQyxDQUFDO01BQzlDO0lBQ0YsQ0FBQztJQUNEaEQsUUFBUSxDQUFDaUQsZ0JBQWdCLENBQUMsb0NBQW9DLEVBQUVOLG1CQUFtQixDQUFDO0lBQ3BGLE9BQU8sWUFBTTtNQUNYM0MsUUFBUSxDQUFDa0QsbUJBQW1CLENBQUMsb0NBQW9DLEVBQUVQLG1CQUFtQixDQUFDO0lBQ3pGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQzFFLFFBQVEsQ0FBQyxDQUFDO0VBRWR6SCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU0yTSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO01BQ3pCL0csV0FBVyxDQUFDLEtBQUssQ0FBQztNQUNsQmpDLGdCQUFnQixDQUFDLElBQUksQ0FBQztNQUN0QkksYUFBYSxDQUFDLFVBQUFtRyxJQUFJO1FBQUEsT0FBSUEsSUFBSSxHQUFHLENBQUM7TUFBQSxFQUFDO01BQy9CM0cscUJBQXFCLENBQUM7UUFBRUwsT0FBTyxFQUFFLEVBQUU7UUFBRUMsV0FBVyxFQUFFO01BQUcsQ0FBQyxDQUFDO01BQ3ZEcUMsZ0JBQWdCLENBQUNoRixPQUFPLENBQUNzSSxJQUFJLENBQUM7TUFDOUJVLFFBQVEsQ0FBQ29CLGFBQWEsQ0FBQyxJQUFJQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0RyQixRQUFRLENBQUNpRCxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRUUsWUFBWSxDQUFDO0lBQzlELE9BQU8sWUFBTTtNQUNYbkQsUUFBUSxDQUFDa0QsbUJBQW1CLENBQUMscUJBQXFCLEVBQUVDLFlBQVksQ0FBQztJQUNuRSxDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs7RUFFTjtFQUNBM00sU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNNE0sb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsS0FBWSxFQUFLO01BQUEsSUFBQUMsT0FBQTtNQUM3QyxJQUFNUCxTQUFTLElBQUFPLE9BQUEsR0FBSUQsS0FBSyxDQUFtQ1AsTUFBTSxjQUFBUSxPQUFBLHVCQUEvQ0EsT0FBQSxDQUFpRHRHLEtBQUs7TUFDeEUsSUFBSSxDQUFDK0YsU0FBUyxFQUFFO01BRWhCeEYsVUFBVSxDQUFDLElBQUksQ0FBQztNQUNoQkQsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRyxJQUFJLENBQUM7TUFDakJQLFdBQVcsQ0FBQ2dHLFNBQVMsQ0FBQztNQUN0QjNHLFdBQVcsQ0FBQyxLQUFLLENBQUM7TUFDbEJKLGdCQUFnQixDQUFDaEYsT0FBTyxDQUFDNkUsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRG1FLFFBQVEsQ0FBQ2lELGdCQUFnQixDQUFDLCtCQUErQixFQUFFRyxvQkFBb0IsQ0FBQztJQUNoRixPQUFPLFlBQU07TUFDWHBELFFBQVEsQ0FBQ2tELG1CQUFtQixDQUFDLCtCQUErQixFQUFFRSxvQkFBb0IsQ0FBQztJQUNyRixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNyRyxXQUFXLEVBQUVPLFNBQVMsRUFBRUMsVUFBVSxDQUFDLENBQUM7RUFFeEMsSUFBTWdHLFdBQVcsR0FBRzFFLHFCQUFxQixLQUFLN0gsT0FBTyxDQUFDc0ksSUFBSTtFQUMxRCxJQUFNa0UsdUJBQXVCLEdBQUczRSxxQkFBcUIsS0FBSzdILE9BQU8sQ0FBQ3FJLFFBQVE7RUFDMUUsSUFBTW9FLHFCQUFxQixHQUFHck4sV0FBVyxDQUFDLFlBQU07SUFDOUM0RixnQkFBZ0IsQ0FBQ2hGLE9BQU8sQ0FBQ3FJLFFBQVEsQ0FBQztFQUNwQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTXFFLGlCQUFpQixHQUFHdE4sV0FBVyxjQUFBK0wsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFDLFNBQUFzQixTQUFBO0lBQUEsSUFBQUMsWUFBQSxFQUFBQyxRQUFBLEVBQUE5QyxJQUFBLEVBQUErQyxFQUFBO0lBQUEsT0FBQTFCLG1CQUFBLENBQUFHLElBQUEsV0FBQXdCLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBckQsSUFBQSxHQUFBcUQsU0FBQSxDQUFBdEIsSUFBQTtRQUFBO1VBQ3BDckcsV0FBVyxDQUFDLEtBQUssQ0FBQztVQUNkd0gsWUFBWSxHQUFHbEcsTUFBTSxDQUFDcUQsSUFBSSxDQUFDQyxJQUFJLENBQUMsVUFBQ2dELENBQVE7WUFBQSxPQUFLQSxDQUFDLENBQUNwRSxJQUFJLEtBQUssT0FBTyxJQUFJb0UsQ0FBQyxDQUFDakYsTUFBTSxLQUFLLFFBQVE7VUFBQSxFQUFDO1VBQUEsSUFDekY2RSxZQUFZO1lBQUFHLFNBQUEsQ0FBQXRCLElBQUE7WUFBQTtVQUFBO1VBQUFzQixTQUFBLENBQUFyRCxJQUFBO1VBQUFxRCxTQUFBLENBQUF0QixJQUFBO1VBQUEsT0FFVTFLLFNBQVMsQ0FBQztZQUMvQmtNLElBQUksa0NBQUEvRCxNQUFBLENBQWtDbEksVUFBVSxDQUFDcUIsSUFBSSxDQUFDdUQsUUFBUSxDQUFDLENBQUU7WUFDakVzSCxNQUFNLEVBQUU7VUFDVixDQUFDLENBQUM7UUFBQTtVQUhJTCxRQUFRLEdBQUFFLFNBQUEsQ0FBQUksSUFBQTtVQUFBSixTQUFBLENBQUF0QixJQUFBO1VBQUEsT0FJS29CLFFBQVEsQ0FBQ08sSUFBSSxDQUFDLENBQUM7UUFBQTtVQUE1QnJELElBQUksR0FBQWdELFNBQUEsQ0FBQUksSUFBQTtVQUNWUCxZQUFZLEdBQUcsQ0FBQzdDLElBQUksQ0FBQ0EsSUFBSSxJQUFJLEVBQUUsRUFBRUMsSUFBSSxDQUFDLFVBQUNnRCxDQUFRO1lBQUEsT0FBS0EsQ0FBQyxDQUFDcEUsSUFBSSxLQUFLLE9BQU8sSUFBSW9FLENBQUMsQ0FBQ2pGLE1BQU0sS0FBSyxRQUFRO1VBQUEsRUFBQztVQUFBZ0YsU0FBQSxDQUFBdEIsSUFBQTtVQUFBO1FBQUE7VUFBQXNCLFNBQUEsQ0FBQXJELElBQUE7VUFBQW9ELEVBQUEsR0FBQUMsU0FBQTtVQUFBLE9BQUFBLFNBQUEsQ0FBQU0sTUFBQTtRQUFBO1VBQUEsSUFLL0ZULFlBQVk7WUFBQUcsU0FBQSxDQUFBdEIsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBc0IsU0FBQSxDQUFBTSxNQUFBO1FBQUE7VUFHakI5RyxVQUFVLENBQUMsSUFBSSxDQUFDO1VBQ2hCRCxTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFHLElBQUksQ0FBQztVQUNqQlAsV0FBVyxDQUFDNkcsWUFBWSxDQUFDO1VBQ3pCNUgsZ0JBQWdCLENBQUNoRixPQUFPLENBQUM2RSxJQUFJLENBQUM7VUFDOUIsSUFBSWEsb0JBQW9CLENBQUN1RixPQUFPLEVBQUU7WUFDaEN2RixvQkFBb0IsQ0FBQ3VGLE9BQU8sQ0FBQyxDQUFDO1VBQ2hDO1FBQUM7UUFBQTtVQUFBLE9BQUE4QixTQUFBLENBQUFyQixJQUFBO01BQUE7SUFBQSxHQUFBaUIsUUFBQTtFQUFBLENBQ0YsSUFBRSxDQUFDakcsTUFBTSxDQUFDcUQsSUFBSSxFQUFFMUgsSUFBSSxDQUFDdUQsUUFBUSxFQUFFRyxXQUFXLEVBQUVPLFNBQVMsRUFBRUMsVUFBVSxDQUFDLENBQUM7RUFDcEUsSUFBTStHLDZCQUE2QixHQUFHbE8sV0FBVyxDQUMvQyxVQUFDK0ssT0FBZSxFQUFLO0lBQ25CakQsV0FBVyxDQUFDaUQsT0FBTyxDQUFDO0lBQ3BCLElBQUksQ0FBQW5FLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFa0UsRUFBRSxNQUFLQyxPQUFPLEVBQUU7TUFDekI5QyxnQkFBZ0IsQ0FBQzhDLE9BQU8sQ0FBQztJQUMzQjtFQUNGLENBQUMsRUFDRCxDQUFDbkUsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVrRSxFQUFFLEVBQUVoRCxXQUFXLEVBQUVHLGdCQUFnQixDQUMzQyxDQUFDO0VBRUQsSUFBTWtHLGtDQUFrQyxHQUFHMUYscUJBQXFCLEtBQUs3SCxPQUFPLENBQUM2RSxJQUFJLElBQUk4RCxzQkFBc0I7RUFFM0csT0FDRUksUUFBUSxpQkFDUnRKLFFBQVEsQ0FBQytOLFlBQVksY0FDbkJwTSxLQUFBLENBQUNULGFBQWE7SUFBQzBJLFFBQVEsRUFBRUEsUUFBUztJQUFBb0UsUUFBQSxnQkFDaENyTSxLQUFBLENBQUNWLG9CQUFvQjtNQUFDMkksUUFBUSxFQUFFQSxRQUFTO01BQUFvRSxRQUFBLEdBQ3RDbk0sdUJBQXVCLENBQUNDLE9BQU8sQ0FBQyxpQkFDL0JMLElBQUEsQ0FBQ2pCLE9BQU87UUFDTnlOLFVBQVUsRUFBRTlELFFBQVM7UUFDckIrRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFsSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFBQSxDQUFDO1FBQ3hDbUksY0FBYyxFQUFFbkgsWUFBYTtRQUM3QmdHLHFCQUFxQixFQUFFQSxxQkFBc0I7UUFDN0NGLFdBQVcsRUFBRUEsV0FBWTtRQUN6QjdILFlBQVksRUFBRUEsWUFBYTtRQUMzQm1KLHFCQUFxQixFQUFFbEosZUFBZ0I7UUFDdkNRLFFBQVEsRUFBRUssZUFBZ0I7UUFDMUJFLG9CQUFvQixFQUFFQSxvQkFBcUI7UUFDM0NvSSxlQUFlLEVBQUVqRjtNQUF1QixDQUN6QyxDQUNGLGVBQ0R6SCxLQUFBLENBQUNYLGFBQWE7UUFBQzRJLFFBQVEsRUFBRUEsUUFBUztRQUFBb0UsUUFBQSxnQkFFaEN2TSxJQUFBLENBQUNkLGlCQUFpQjtVQUNoQmlKLFFBQVEsRUFBRUEsUUFBUztVQUNuQkMsV0FBVyxFQUFFQSxXQUFZO1VBQ3pCckgsV0FBVyxFQUFFSyxnQkFBaUI7VUFDOUJvRSxNQUFNLEVBQUVBLE1BQU0sQ0FBQ3FELElBQUs7VUFDcEI1RSxRQUFRLEVBQUUsQ0FBQyxDQUFDMEIsVUFBVztVQUN2QkYsT0FBTyxFQUFFQSxPQUFRO1VBQ2pCQyxXQUFXLEVBQUVBLFdBQVk7VUFDekJtSCxPQUFPLEVBQUVySCxNQUFNLENBQUNzSCxRQUFTO1VBQ3pCOUMsZUFBZSxFQUFFQSxlQUFnQjtVQUNqQytDLGFBQWEsRUFBRTdHLG1CQUFvQjtVQUNuQ0osY0FBYyxFQUFFQSxjQUFlO1VBQy9CTSxjQUFjLEVBQUVBLGNBQWU7VUFDL0I0RyxpQkFBaUIsRUFBRTFCO1FBQXdCLENBQzVDLENBQUMsRUFHRHJILFFBQVEsZ0JBQ1BqRSxJQUFBLENBQUNyQixTQUFTLElBQUUsQ0FBQyxHQUNYeUIsdUJBQXVCLENBQUNDLE9BQU8sQ0FBQyxnQkFDbENMLElBQUEsQ0FBQ3BCLGFBQWE7VUFDWmlGLGFBQWEsRUFBRThDLHFCQUFzQjtVQUNyQ3hDLFFBQVEsRUFBQXNFLGFBQUEsQ0FBQUEsYUFBQSxLQUFPdEUsUUFBUTtZQUFFaUQsSUFBSSxFQUFFaUIsU0FBUztZQUFFMUUsSUFBSSxFQUFFUSxRQUFRLENBQUNSLElBQUk7WUFBRTRCLFlBQVksRUFBWkE7VUFBWSxFQUFHO1VBQzlFa0gsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7WUFBQSxPQUFRdkksV0FBVyxDQUFDLElBQUksQ0FBQztVQUFBLENBQUM7VUFDakMrSSxJQUFJLEVBQUU7WUFBRXJMLGtCQUFrQixFQUFsQkEsa0JBQWtCO1lBQUVJLGFBQWEsRUFBYkE7VUFBYyxDQUFFO1VBQzVDa0wsa0JBQWtCLEVBQUU5RCxzQkFBdUI7VUFDM0NqQixRQUFRLEVBQUVBLFFBQVM7VUFDbkIzQyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ3FELElBQUs7VUFDcEJzRSxhQUFhLEVBQUVmLDZCQUE4QjtVQUM3Q2dCLHFCQUFxQixFQUFFbEgsbUJBQW9CO1VBQzNDbUgsYUFBYSxFQUFFLENBQUMsQ0FBQzdILE1BQU0sQ0FBQ3NILFFBQVM7VUFDakNRLGlCQUFpQixFQUFFNUgsV0FBWTtVQUMvQjZILGdCQUFnQixFQUFFekgsY0FBZTtVQUNqQzBILGFBQWEsRUFBRWhDO1FBQWtCLENBQ2xDLENBQUMsZ0JBRUZ4TCxJQUFBLENBQUNaLHFCQUFxQjtVQUFDcU8sZ0JBQWdCLEVBQUV0SixRQUFRLENBQUNSO1FBQUssQ0FBRSxDQUMxRCxFQUdBLENBQUVnRCxxQkFBcUIsS0FBSzdILE9BQU8sQ0FBQzZFLElBQUksSUFBSSxDQUFDLEVBQUM2QixNQUFNLGFBQU5BLE1BQU0sZ0JBQUExRSxZQUFBLEdBQU4wRSxNQUFNLENBQUVxRCxJQUFJLGNBQUEvSCxZQUFBLGVBQVpBLFlBQUEsQ0FBY2dKLE1BQU0sS0FDakVuRCxxQkFBcUIsS0FBSzdILE9BQU8sQ0FBQ3NJLElBQUksS0FDdEMsQ0FBQ2lGLGtDQUFrQyxJQUNuQyxDQUFDcEksUUFBUSxJQUNULENBQUN3QixPQUFPLElBQ1JyRix1QkFBdUIsQ0FBQ0MsT0FBTyxDQUFDLGlCQUM5QkwsSUFBQSxDQUFDTixpQkFBaUI7VUFDaEJvRixLQUFLLEVBQUVBLEtBQU07VUFDYjJFLGlCQUFpQixFQUFFQSxpQkFBa0I7VUFDckNpRSxvQkFBb0IsRUFBRTlLLHNCQUF1QjtVQUM3Q0ksV0FBVyxFQUFFQSxXQUFZO1VBQ3pCSSxTQUFTLEVBQUVBLFNBQVU7VUFDckJ1SyxNQUFNLEVBQUUzTCxhQUFjO1VBQ3RCSSxVQUFVLEVBQUVBLFVBQVc7VUFDdkJ3TCxRQUFRLEVBQUVqSCxxQkFBcUIsS0FBSzdILE9BQU8sQ0FBQ3NJO1FBQUssQ0FDbEQsQ0FDRjtNQUFBLENBQ1UsQ0FBQztJQUFBLENBQ0ksQ0FBQyxFQUN0QmQsa0JBQWtCLGlCQUNqQnRHLElBQUEsQ0FBQ1gsYUFBYTtNQUNaMEcsUUFBUSxFQUFFQSxRQUFTO01BQ25CRSxXQUFXLEVBQUVBLFdBQVk7TUFDekJELFdBQVcsRUFBRUEsV0FBWTtNQUN6QkUsbUJBQW1CLEVBQUVBLG1CQUFvQjtNQUN6Q0MsZ0JBQWdCLEVBQUVBO0lBQWlCLENBQ3BDLENBQ0YsZUFDRG5HLElBQUEsQ0FBQ2IsUUFBUSxJQUFFLENBQUM7RUFBQSxDQUNDLENBQUMsRUFDaEIwSSxRQUNGLENBQUM7QUFFTCxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -71,6 +71,7 @@ export function ChatFooter(_ref) {
|
|
|
71
71
|
loadingMessages = _useState4[0],
|
|
72
72
|
setLoadingMessages = _useState4[1];
|
|
73
73
|
var reportedEvent = useRef(false);
|
|
74
|
+
var isMarketplaceGlobalAgent = (agent === null || agent === void 0 ? void 0 : agent.entity) === 'global' && /(maiaker|marketplace)/i.test((agent === null || agent === void 0 ? void 0 : agent.name) || '');
|
|
74
75
|
|
|
75
76
|
// useEffect to listen loadingMessages
|
|
76
77
|
useEffect(function () {
|
|
@@ -111,13 +112,13 @@ export function ChatFooter(_ref) {
|
|
|
111
112
|
var onChange = function onChange() {
|
|
112
113
|
if (reportedEvent.current) return;
|
|
113
114
|
event(EVENTS.pmAiTypedText, {
|
|
114
|
-
agent_type: agent === null || agent === void 0 ? void 0 : agent.type
|
|
115
|
+
agent_type: isMarketplaceGlobalAgent ? 'marketplace' : agent === null || agent === void 0 ? void 0 : agent.type
|
|
115
116
|
});
|
|
116
117
|
reportedEvent.current = true;
|
|
117
118
|
};
|
|
118
119
|
var handleSendMessage = function handleSendMessage(message, newAttachments, faqId) {
|
|
119
120
|
event(EVENTS.aiChatSend, {
|
|
120
|
-
agent_type: agent === null || agent === void 0 ? void 0 : agent.type,
|
|
121
|
+
agent_type: isMarketplaceGlobalAgent ? 'marketplace' : agent === null || agent === void 0 ? void 0 : agent.type,
|
|
121
122
|
agent_id: agent === null || agent === void 0 ? void 0 : agent.id,
|
|
122
123
|
agent_name: agent === null || agent === void 0 ? void 0 : agent.name
|
|
123
124
|
});
|
|
@@ -278,4 +279,4 @@ export function ChatFooter(_ref) {
|
|
|
278
279
|
})]
|
|
279
280
|
});
|
|
280
281
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIkNoaXAiLCJNQUlBSW5wdXQiLCJDaGF0Rm9vdGVyRmFxcyIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiQ2hpcHNBbmRGYXFzUm93IiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkltYWdlUHJldmlldyIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkNoYXREaXNjbGFpbWVyTWVzc2FnZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJJY29uQnlGaWxlVHlwZSIsIkNoYXRGb290ZXIiLCJfcmVmIiwib25TZW5kTWVzc2FnZSIsIml0ZW1zIiwiZGlzYWJsZWQiLCJpc1N0cmVhbWluZyIsImlzV3JpdGluZyIsIm9uU3RvcEdlbmVyYXRpb24iLCJjaGF0SWQiLCJuZXdDaGF0S2V5IiwiX3JlZiRzaG93RmFxcyIsInNob3dGYXFzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJwcm9qZWN0IiwiYWdlbnQiLCJjaGlwc1Byb2plY3QiLCJjbGllbnQiLCJfdXNlVCIsInQiLCJldmVudCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UiLCJlIiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVNlc3Npb25DaGFuZ2UiLCJjaGlwSXRlbXMiLCJ0ZW1wSXRlbXMiLCJlbnRpdHkiLCJuYW1lIiwicHVzaCIsImNsaWVudE5hbWUiLCJwcm9qZWN0TmFtZSIsIl9wcm9qZWN0JGNsaWVudCIsIm9uQ2hhbmdlIiwiY3VycmVudCIsInBtQWlUeXBlZFRleHQiLCJhZ2VudF90eXBlIiwidHlwZSIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVzc2FnZSIsIm5ld0F0dGFjaG1lbnRzIiwiZmFxSWQiLCJhaUNoYXRTZW5kIiwiYWdlbnRfaWQiLCJpZCIsImFnZW50X25hbWUiLCJoYW5kbGVTZWxlY3RGYXEiLCJ1bmRlZmluZWQiLCJoYW5kbGVGaWxlQXR0YWNoIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJpc0ltYWdlIiwiZXh0ZW5zaW9uVG9JY29uIiwiaWNvbiIsImV4dGVuc2lvblRvTWltZVR5cGUiLCJtaW1lVHlwZUJ5RXh0ZW5zaW9uIiwicHJvY2Vzc2VkRmlsZSIsImltYWdlVXJsIiwibmV3QXR0YWNobWVudCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzcGxpdCIsImxlbmd0aCIsImNvbmNhdCIsInBvcCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsInNlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzcmMiLCJhbHQiLCJib3JkZXJSYWRpdXMiLCJvcmlnaW5hbEZpbGUiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsInNpemUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJmaWx0ZXIiLCJhdHRhY2htZW50IiwiaXNNQUlBIiwiZGlzY2xhaW1lck1lc3NhZ2UiLCJhZ2VudE5hbWUiLCJpc0ZhcUludGVyYWN0aW9uRGlzYWJsZWQiLCJCb29sZWFuIiwiY2hpbGRyZW4iLCJvblNlbGVjdEZhcSIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZpbGVBdHRhY2giLCJvbkRlbGV0ZUF0dGFjaG1lbnQiLCJhdHQiLCJtYXAiLCJOdW1iZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyBSZWFjdE5vZGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcblxuaW1wb3J0IHsgQ2hpcCB9IGZyb20gJy4uLy4uL2F0b21zL0NoaXAnXG5pbXBvcnQgeyBNQUlBSW5wdXQgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBSW5wdXQnXG5pbXBvcnQgeyBDaGF0Rm9vdGVyRmFxcyB9IGZyb20gJy4vQ2hhdEZvb3RlckZhcXMnXG5cbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBTdHlsZWRDaGF0Rm9vdGVyLCBDaGlwc0FuZEZhcXNSb3cgfSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7XG4gIENzdkZpbGVJY29uLFxuICBNREZpbGVJY29uLFxuICBEb2NGaWxlSWNvbixcbiAgRG9jeEZpbGVJY29uLFxuICBUZXh0RmlsZUljb24sXG4gIFBkZkZpbGVJY29uLFxuICBJbWFnZUZpbGVJY29uLFxuICBYbHN4RmlsZUljb24sXG4gIFhsc0ZpbGVJY29uLFxuICBNcDNGaWxlSWNvbixcbiAgV2F2RmlsZUljb24sXG4gIEZsYWNGaWxlSWNvbixcbiAgTTRhRmlsZUljb24sXG4gIE1wNEZpbGVJY29uLFxuICBPZ2FGaWxlSWNvbixcbiAgT2dnRmlsZUljb24sXG4gIFdlYm1GaWxlSWNvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBJbWFnZVByZXZpZXcgfSBmcm9tICcuLi8uLi9hdG9tcy9JbWFnZVByZXZpZXcvSW1hZ2VQcmV2aWV3J1xuaW1wb3J0IHsgcHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ltYWdlUHJlcHJvY2Vzc29yJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBDaGF0RGlzY2xhaW1lck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9hdG9tcy9DaGF0RGlzY2xhaW1lck1lc3NhZ2UnXG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgdXJsX3RodW1ibmFpbD86IHN0cmluZ1xuICB1cmxfb3JpZ2luYWw/OiBzdHJpbmdcbiAgdXJsX2ZpbGU/OiBzdHJpbmdcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG4gIGV4dD86IHN0cmluZ1xuICBzdGF0dXM/OiAncGVuZGluZycgfCAncHJvY2Vzc2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8ICdzdGFydGVkJ1xufVxuXG50eXBlIENoYXRGb290ZXJQcm9wcyA9IHtcbiAgaXRlbXM/OiBzdHJpbmdbXVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuXG4gIGlzV3JpdGluZz86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgLyoqIFNpIGVzIGZhbHNlLCBubyBzZSBtdWVzdHJhIGxhIGZpbGEgZGUgY2hpcHMgbmkgZWwgYm90w7NuIGRlIEZBUXMuIERlYmUgc2VyIHRydWUgY3VhbmRvIGN1cnJlbnRPcHRpb24gPT09IGNoYXQuICovXG4gIHNob3dGYXFzPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9wZGYnOiA8UGRmRmlsZUljb24gLz4sXG4gICdpbWFnZS9wbmcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZWcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOiA8WGxzeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJzogPFhsc0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXBlZyc6IDxNcDNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL2ZsYWMnOiA8RmxhY0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAnYXVkaW8vbTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2F2JzogPFdhdkZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2VibSc6IDxXZWJtRmlsZUljb24gLz4sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGF0Rm9vdGVyKHtcbiAgb25TZW5kTWVzc2FnZSxcbiAgaXRlbXMsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG4gIHNob3dGYXFzID0gdHJ1ZSxcbn06IENoYXRGb290ZXJQcm9wcykge1xuICBjb25zdCB7IHByb2plY3QsIGFnZW50LCBjaGlwc1Byb2plY3QsIGNsaWVudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbYXR0YWNobWVudHMsIHNldEF0dGFjaG1lbnRzXSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlW10+KFtdKVxuICBjb25zdCBbbG9hZGluZ01lc3NhZ2VzLCBzZXRMb2FkaW5nTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgcmVwb3J0ZWRFdmVudCA9IHVzZVJlZihmYWxzZSlcblxuICAvLyB1c2VFZmZlY3QgdG8gbGlzdGVuIGxvYWRpbmdNZXNzYWdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSA9IChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGUuZGV0YWlsLmxvYWRpbmdNZXNzYWdlcylcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBDbGVhciBhdHRhY2htZW50cyB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBzZXRBdHRhY2htZW50cyhbXSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgY2hpcEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGl0ZW1zKSByZXR1cm4gaXRlbXNcblxuICAgIGNvbnN0IHRlbXBJdGVtczogc3RyaW5nW10gPSBbXVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnICYmIGNsaWVudD8ubmFtZSkge1xuICAgICAgdGVtcEl0ZW1zLnB1c2goY2xpZW50Lm5hbWUpXG4gICAgfSBlbHNlIGlmIChjaGlwc1Byb2plY3QpIHtcbiAgICAgIGlmIChjaGlwc1Byb2plY3QuY2xpZW50TmFtZSkgdGVtcEl0ZW1zLnB1c2goY2hpcHNQcm9qZWN0LmNsaWVudE5hbWUpXG4gICAgICBpZiAoY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lKSB0ZW1wSXRlbXMucHVzaChjaGlwc1Byb2plY3QucHJvamVjdE5hbWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9qZWN0Py5jbGllbnQ/Lm5hbWUpIHRlbXBJdGVtcy5wdXNoKHByb2plY3QuY2xpZW50Lm5hbWUpXG4gICAgICBpZiAocHJvamVjdD8ubmFtZSkgdGVtcEl0ZW1zLnB1c2gocHJvamVjdC5uYW1lKVxuICAgIH1cblxuICAgIHJldHVybiB0ZW1wSXRlbXNcbiAgfSwgW2l0ZW1zLCBwcm9qZWN0LCBjaGlwc1Byb2plY3QsIGFnZW50Py5lbnRpdHksIGNsaWVudF0pXG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHJlcG9ydGVkRXZlbnQuY3VycmVudCkgcmV0dXJuXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFnZW50Py50eXBlLFxuICAgIH0pXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nLCBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nKSA9PiB7XG4gICAgZXZlbnQoRVZFTlRTLmFpQ2hhdFNlbmQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCBuZXdBdHRhY2htZW50cywgZmFxSWQpXG4gICAgc2V0QXR0YWNobWVudHMoW10pXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RGYXEgPSAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB7XG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIGZhcUlkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZUF0dGFjaCA9IGFzeW5jIChmaWxlOiBGaWxlKSA9PiB7XG4gICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgLy8gTWFwZW8gZGUgZXh0ZW5zacOzbiBhIGljb25vIGRpcmVjdG8gcGFyYSBjYXNvcyBlc3BlY2lhbGVzIChhdWRpby9vZ2cgeSBhdWRpby9tcDQpXG4gICAgY29uc3QgZXh0ZW5zaW9uVG9JY29uOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdE5vZGU+ID0ge1xuICAgICAgJy5vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICAgICAnLm9nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgICAgICcubXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAgICAgJy5tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICAgfVxuXG4gICAgbGV0IGljb24gPSBJY29uQnlGaWxlVHlwZVtmaWxlLnR5cGVdXG5cbiAgICAvLyBTaSBlbCB0aXBvIGVzIGF1ZGlvL29nZyBvIGF1ZGlvL21wNCwgdXNhciBsYSBleHRlbnNpw7NuIHBhcmEgZGV0ZXJtaW5hciBlbCBpY29ub1xuICAgIGlmICgoZmlsZS50eXBlID09PSAnYXVkaW8vb2dnJyB8fCBmaWxlLnR5cGUgPT09ICdhdWRpby9tcDQnKSAmJiBmaWxlRXh0ZW5zaW9uKSB7XG4gICAgICBpY29uID0gZXh0ZW5zaW9uVG9JY29uW2ZpbGVFeHRlbnNpb25dIHx8IGljb25cbiAgICB9XG5cbiAgICBpZiAoIWljb24pIHtcbiAgICAgIGNvbnN0IGV4dGVuc2lvblRvTWltZVR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICcudHh0JzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAnLm1kJzogJ3RleHQveC1tYXJrZG93bicsXG4gICAgICAgICcuY3N2JzogJ3RleHQvY3N2JyxcbiAgICAgICAgJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICAgJy5kb2N4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAgICAgJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAgICAgJy54bHN4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICAgJy54bHMnOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICAgJy5mbGFjJzogJ2F1ZGlvL2ZsYWMnLFxuICAgICAgICAnLm00YSc6ICdhdWRpby9tNGEnLFxuICAgICAgICAnLm1wMyc6ICdhdWRpby9tcGVnJyxcbiAgICAgICAgJy5tcDQnOiAnYXVkaW8vbXA0JyxcbiAgICAgICAgJy5vZ2EnOiAnYXVkaW8vb2dhJyxcbiAgICAgICAgJy5vZ2cnOiAnYXVkaW8vb2dnJyxcbiAgICAgICAgJy53YXYnOiAnYXVkaW8vd2F2JyxcbiAgICAgICAgJy53ZWJtJzogJ2F1ZGlvL3dlYm0nLFxuICAgICAgfVxuICAgICAgY29uc3QgbWltZVR5cGVCeUV4dGVuc2lvbiA9IGV4dGVuc2lvblRvTWltZVR5cGVbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGlmIChtaW1lVHlwZUJ5RXh0ZW5zaW9uKSB7XG4gICAgICAgIGljb24gPSBJY29uQnlGaWxlVHlwZVttaW1lVHlwZUJ5RXh0ZW5zaW9uXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWNvbiA9IDxBdHRhY2ggY29sb3I9XCJyZ2JhKDEzNSwgNjQsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBwcm9jZXNzZWRGaWxlID0gZmlsZVxuXG4gICAgLy8gU2kgZXMgdW5hIGltYWdlbiwgcHJlLXByb2Nlc2FybGEgcGFyYSBlbCBiYWNrZW5kXG4gICAgaWYgKGlzSW1hZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFByb2Nlc2FuZG8gaW1hZ2VuXG4gICAgICAgIHByb2Nlc3NlZEZpbGUgPSBhd2FpdCBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kKGZpbGUpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcmUtcHJvY2VzYW5kbyBpbWFnZW46JywgZXJyb3IpXG4gICAgICAgIC8vIENvbnRpbnVhciBjb24gZWwgYXJjaGl2byBvcmlnaW5hbCBzaSBoYXkgZXJyb3JcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1hZ2VVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpXG5cbiAgICAgIGljb24gPSA8SW1hZ2VQcmV2aWV3IHNyYz17aW1hZ2VVcmx9IGFsdD17ZmlsZS5uYW1lfSB3aWR0aD1cIjYzcHhcIiBoZWlnaHQ9XCI2M3B4XCIgYm9yZGVyUmFkaXVzPVwiNnB4XCIgLz5cbiAgICB9XG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHByb2Nlc3NlZEZpbGUsXG4gICAgICBvcmlnaW5hbEZpbGU6IGlzSW1hZ2UgPyBmaWxlIDogdW5kZWZpbmVkLFxuICAgICAgaWQ6IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxuICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgc2l6ZTogcHJvY2Vzc2VkRmlsZS5zaXplLFxuICAgICAgdHlwZTogcHJvY2Vzc2VkRmlsZS50eXBlLFxuICAgICAgaWNvbixcbiAgICB9XG5cbiAgICBzZXRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBuZXdBdHRhY2htZW50XSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmZpbHRlcihhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQuaWQgIT09IGZpbGVJZClcbiAgICBzZXRBdHRhY2htZW50cyhuZXdBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9IGlzTUFJQVxuICAgID8gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lcicsIHsgYWdlbnROYW1lOiB0KCdnbG9iYWxzLmJyYW5kTmFtZScpIH0pXG4gICAgOiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyQWdlbnQnKVxuXG4gIGNvbnN0IGlzRmFxSW50ZXJhY3Rpb25EaXNhYmxlZCA9IEJvb2xlYW4oZGlzYWJsZWQgfHwgaXNTdHJlYW1pbmcgfHwgaXNXcml0aW5nKVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENoYXRGb290ZXI+XG4gICAgICB7aXNNQUlBICYmICFsb2FkaW5nTWVzc2FnZXMgJiYgKFxuICAgICAgICA8Q2hpcHNBbmRGYXFzUm93PlxuICAgICAgICAgIHshIWNoaXBJdGVtcy5sZW5ndGggJiYgPENoaXAgaXRlbXM9e2NoaXBJdGVtc30gLz59XG4gICAgICAgICAge3Nob3dGYXFzICYmIDxDaGF0Rm9vdGVyRmFxcyBvblNlbGVjdEZhcT17aGFuZGxlU2VsZWN0RmFxfSBkaXNhYmxlZD17aXNGYXFJbnRlcmFjdGlvbkRpc2FibGVkfSAvPn1cbiAgICAgICAgPC9DaGlwc0FuZEZhcXNSb3c+XG4gICAgICApfVxuICAgICAgPE1BSUFJbnB1dFxuICAgICAgICBvblNlbmRNZXNzYWdlPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBwbGFjZWhvbGRlcj17YWdlbnQ/LmlucHV0X3BsYWNlaG9sZGVyIHx8IHQoJ2NoYXQuZm9vdGVyLnBsYWNlaG9sZGVyJyl9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25GaWxlQXR0YWNoPXtoYW5kbGVGaWxlQXR0YWNofVxuICAgICAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ9e2hhbmRsZURlbGV0ZUF0dGFjaG1lbnR9XG4gICAgICAgIGF0dGFjaG1lbnRzPXthdHRhY2htZW50c1xuICAgICAgICAgIC5maWx0ZXIoYXR0ID0+ICEhYXR0LmZpbGUpXG4gICAgICAgICAgLm1hcChhdHQgPT4gKHtcbiAgICAgICAgICAgIGZpbGU6IGF0dC5maWxlISxcbiAgICAgICAgICAgIG9yaWdpbmFsRmlsZTogYXR0Lm9yaWdpbmFsRmlsZSxcbiAgICAgICAgICAgIGlkOiBhdHQuaWQsXG4gICAgICAgICAgICBuYW1lOiBhdHQubmFtZSxcbiAgICAgICAgICAgIHNpemU6IHR5cGVvZiBhdHQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHQuc2l6ZSA6IE51bWJlcihhdHQuc2l6ZSkgfHwgMCxcbiAgICAgICAgICAgIHR5cGU6IGF0dC50eXBlLFxuICAgICAgICAgICAgaWNvbjogYXR0Lmljb24sXG4gICAgICAgICAgfSkpfVxuICAgICAgICBpc1N0cmVhbWluZz17aXNTdHJlYW1pbmd9XG4gICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufVxuICAgICAgICBjaGF0SWQ9e2NoYXRJZCB8fCB1bmRlZmluZWR9XG4gICAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICAvPlxuICAgICAgPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz5cbiAgICA8L1N0eWxlZENoYXRGb290ZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLE9BQU8sRUFBRUMsTUFBTSxFQUFF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
|
|
282
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIkNoaXAiLCJNQUlBSW5wdXQiLCJDaGF0Rm9vdGVyRmFxcyIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiQ2hpcHNBbmRGYXFzUm93IiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkltYWdlUHJldmlldyIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkNoYXREaXNjbGFpbWVyTWVzc2FnZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJJY29uQnlGaWxlVHlwZSIsIkNoYXRGb290ZXIiLCJfcmVmIiwib25TZW5kTWVzc2FnZSIsIml0ZW1zIiwiZGlzYWJsZWQiLCJpc1N0cmVhbWluZyIsImlzV3JpdGluZyIsIm9uU3RvcEdlbmVyYXRpb24iLCJjaGF0SWQiLCJuZXdDaGF0S2V5IiwiX3JlZiRzaG93RmFxcyIsInNob3dGYXFzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJwcm9qZWN0IiwiYWdlbnQiLCJjaGlwc1Byb2plY3QiLCJjbGllbnQiLCJfdXNlVCIsInQiLCJldmVudCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQiLCJlbnRpdHkiLCJ0ZXN0IiwibmFtZSIsImhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSIsImUiLCJkZXRhaWwiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImNoaXBJdGVtcyIsInRlbXBJdGVtcyIsInB1c2giLCJjbGllbnROYW1lIiwicHJvamVjdE5hbWUiLCJfcHJvamVjdCRjbGllbnQiLCJvbkNoYW5nZSIsImN1cnJlbnQiLCJwbUFpVHlwZWRUZXh0IiwiYWdlbnRfdHlwZSIsInR5cGUiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIm1lc3NhZ2UiLCJuZXdBdHRhY2htZW50cyIsImZhcUlkIiwiYWlDaGF0U2VuZCIsImFnZW50X2lkIiwiaWQiLCJhZ2VudF9uYW1lIiwiaGFuZGxlU2VsZWN0RmFxIiwidW5kZWZpbmVkIiwiaGFuZGxlRmlsZUF0dGFjaCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsImZpbGVFeHRlbnNpb24iLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwiaXNJbWFnZSIsImV4dGVuc2lvblRvSWNvbiIsImljb24iLCJleHRlbnNpb25Ub01pbWVUeXBlIiwibWltZVR5cGVCeUV4dGVuc2lvbiIsInByb2Nlc3NlZEZpbGUiLCJpbWFnZVVybCIsIm5ld0F0dGFjaG1lbnQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3BsaXQiLCJsZW5ndGgiLCJjb25jYXQiLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwic3RhcnRzV2l0aCIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJzZW50IiwiY29uc29sZSIsImVycm9yIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwic3JjIiwiYWx0IiwiYm9yZGVyUmFkaXVzIiwib3JpZ2luYWxGaWxlIiwiRGF0ZSIsIm5vdyIsIk1hdGgiLCJyYW5kb20iLCJzaXplIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVEZWxldGVBdHRhY2htZW50IiwiZmlsZUlkIiwiZmlsdGVyIiwiYXR0YWNobWVudCIsImlzTUFJQSIsImRpc2NsYWltZXJNZXNzYWdlIiwiYWdlbnROYW1lIiwiaXNGYXFJbnRlcmFjdGlvbkRpc2FibGVkIiwiQm9vbGVhbiIsImNoaWxkcmVuIiwib25TZWxlY3RGYXEiLCJjbGFzc05hbWUiLCJwbGFjZWhvbGRlciIsImlucHV0X3BsYWNlaG9sZGVyIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5cbmltcG9ydCB7IENoaXAgfSBmcm9tICcuLi8uLi9hdG9tcy9DaGlwJ1xuaW1wb3J0IHsgTUFJQUlucHV0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUlucHV0J1xuaW1wb3J0IHsgQ2hhdEZvb3RlckZhcXMgfSBmcm9tICcuL0NoYXRGb290ZXJGYXFzJ1xuXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgU3R5bGVkQ2hhdEZvb3RlciwgQ2hpcHNBbmRGYXFzUm93IH0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQge1xuICBDc3ZGaWxlSWNvbixcbiAgTURGaWxlSWNvbixcbiAgRG9jRmlsZUljb24sXG4gIERvY3hGaWxlSWNvbixcbiAgVGV4dEZpbGVJY29uLFxuICBQZGZGaWxlSWNvbixcbiAgSW1hZ2VGaWxlSWNvbixcbiAgWGxzeEZpbGVJY29uLFxuICBYbHNGaWxlSWNvbixcbiAgTXAzRmlsZUljb24sXG4gIFdhdkZpbGVJY29uLFxuICBGbGFjRmlsZUljb24sXG4gIE00YUZpbGVJY29uLFxuICBNcDRGaWxlSWNvbixcbiAgT2dhRmlsZUljb24sXG4gIE9nZ0ZpbGVJY29uLFxuICBXZWJtRmlsZUljb24sXG59IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgSW1hZ2VQcmV2aWV3IH0gZnJvbSAnLi4vLi4vYXRvbXMvSW1hZ2VQcmV2aWV3L0ltYWdlUHJldmlldydcbmltcG9ydCB7IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVByZXByb2Nlc3NvcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuXG5leHBvcnQgdHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIHVybF90aHVtYm5haWw/OiBzdHJpbmdcbiAgdXJsX29yaWdpbmFsPzogc3RyaW5nXG4gIHVybF9maWxlPzogc3RyaW5nXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxuICBleHQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ3Byb2Nlc3NpbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCcgfCAnc3RhcnRlZCdcbn1cblxudHlwZSBDaGF0Rm9vdGVyUHJvcHMgPSB7XG4gIGl0ZW1zPzogc3RyaW5nW11cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcpID0+IHZvaWRcbiAgb25TdG9wR2VuZXJhdGlvbj86ICgpID0+IHZvaWRcbiAgY2hhdElkPzogc3RyaW5nIHwgbnVsbFxuICBuZXdDaGF0S2V5PzogbnVtYmVyXG4gIC8qKiBTaSBlcyBmYWxzZSwgbm8gc2UgbXVlc3RyYSBsYSBmaWxhIGRlIGNoaXBzIG5pIGVsIGJvdMOzbiBkZSBGQVFzLiBEZWJlIHNlciB0cnVlIGN1YW5kbyBjdXJyZW50T3B0aW9uID09PSBjaGF0LiAqL1xuICBzaG93RmFxcz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEljb25CeUZpbGVUeXBlID0ge1xuICAndGV4dC9wbGFpbic6IDxUZXh0RmlsZUljb24gLz4sXG4gICd0ZXh0L3gtbWFya2Rvd24nOiA8TURGaWxlSWNvbiAvPixcbiAgJ3RleHQvY3N2JzogPENzdkZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vbXN3b3JkJzogPERvY0ZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnOiA8RG9jeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vcGRmJzogPFBkZkZpbGVJY29uIC8+LFxuICAnaW1hZ2UvcG5nJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGVnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogPFhsc3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6IDxYbHNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wZWcnOiA8TXAzRmlsZUljb24gLz4sXG4gICdhdWRpby9mbGFjJzogPEZsYWNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL200YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dhdic6IDxXYXZGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dlYm0nOiA8V2VibUZpbGVJY29uIC8+LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3Rlcih7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGl0ZW1zLFxuICBkaXNhYmxlZCxcbiAgaXNTdHJlYW1pbmcsXG4gIGlzV3JpdGluZyxcbiAgb25TdG9wR2VuZXJhdGlvbixcbiAgY2hhdElkLFxuICBuZXdDaGF0S2V5LFxuICBzaG93RmFxcyA9IHRydWUsXG59OiBDaGF0Rm9vdGVyUHJvcHMpIHtcbiAgY29uc3QgeyBwcm9qZWN0LCBhZ2VudCwgY2hpcHNQcm9qZWN0LCBjbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgW2F0dGFjaG1lbnRzLCBzZXRBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPihbXSlcbiAgY29uc3QgW2xvYWRpbmdNZXNzYWdlcywgc2V0TG9hZGluZ01lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHJlcG9ydGVkRXZlbnQgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA9IGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuXG4gIC8vIHVzZUVmZmVjdCB0byBsaXN0ZW4gbG9hZGluZ01lc3NhZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlID0gKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZXMoZS5kZXRhaWwubG9hZGluZ01lc3NhZ2VzKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIENsZWFyIGF0dGFjaG1lbnRzIHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIHNldEF0dGFjaG1lbnRzKFtdKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBjaGlwSXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHJldHVybiBpdGVtc1xuXG4gICAgY29uc3QgdGVtcEl0ZW1zOiBzdHJpbmdbXSA9IFtdXG5cbiAgICBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcgJiYgY2xpZW50Py5uYW1lKSB7XG4gICAgICB0ZW1wSXRlbXMucHVzaChjbGllbnQubmFtZSlcbiAgICB9IGVsc2UgaWYgKGNoaXBzUHJvamVjdCkge1xuICAgICAgaWYgKGNoaXBzUHJvamVjdC5jbGllbnROYW1lKSB0ZW1wSXRlbXMucHVzaChjaGlwc1Byb2plY3QuY2xpZW50TmFtZSlcbiAgICAgIGlmIChjaGlwc1Byb2plY3QucHJvamVjdE5hbWUpIHRlbXBJdGVtcy5wdXNoKGNoaXBzUHJvamVjdC5wcm9qZWN0TmFtZSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2plY3Q/LmNsaWVudD8ubmFtZSkgdGVtcEl0ZW1zLnB1c2gocHJvamVjdC5jbGllbnQubmFtZSlcbiAgICAgIGlmIChwcm9qZWN0Py5uYW1lKSB0ZW1wSXRlbXMucHVzaChwcm9qZWN0Lm5hbWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRlbXBJdGVtc1xuICB9LCBbaXRlbXMsIHByb2plY3QsIGNoaXBzUHJvamVjdCwgYWdlbnQ/LmVudGl0eSwgY2xpZW50XSlcblxuICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAocmVwb3J0ZWRFdmVudC5jdXJyZW50KSByZXR1cm5cbiAgICBldmVudChFVkVOVFMucG1BaVR5cGVkVGV4dCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgIH0pXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nLCBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nKSA9PiB7XG4gICAgZXZlbnQoRVZFTlRTLmFpQ2hhdFNlbmQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICAgIGFnZW50X2lkOiBhZ2VudD8uaWQsXG4gICAgICBhZ2VudF9uYW1lOiBhZ2VudD8ubmFtZSxcbiAgICB9KVxuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgbmV3QXR0YWNobWVudHMsIGZhcUlkKVxuICAgIHNldEF0dGFjaG1lbnRzKFtdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0RmFxID0gKG1lc3NhZ2U6IHN0cmluZywgZmFxSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgdW5kZWZpbmVkLCBmYXFJZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVBdHRhY2ggPSBhc3luYyAoZmlsZTogRmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgIC8vIE1hcGVvIGRlIGV4dGVuc2nDs24gYSBpY29ubyBkaXJlY3RvIHBhcmEgY2Fzb3MgZXNwZWNpYWxlcyAoYXVkaW8vb2dnIHkgYXVkaW8vbXA0KVxuICAgIGNvbnN0IGV4dGVuc2lvblRvSWNvbjogUmVjb3JkPHN0cmluZywgUmVhY3ROb2RlPiA9IHtcbiAgICAgICcub2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAgICAgJy5vZ2EnOiA8T2dhRmlsZUljb24gLz4sXG4gICAgICAnLm1wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgICAgICcubTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAgIH1cblxuICAgIGxldCBpY29uID0gSWNvbkJ5RmlsZVR5cGVbZmlsZS50eXBlXVxuXG4gICAgLy8gU2kgZWwgdGlwbyBlcyBhdWRpby9vZ2cgbyBhdWRpby9tcDQsIHVzYXIgbGEgZXh0ZW5zacOzbiBwYXJhIGRldGVybWluYXIgZWwgaWNvbm9cbiAgICBpZiAoKGZpbGUudHlwZSA9PT0gJ2F1ZGlvL29nZycgfHwgZmlsZS50eXBlID09PSAnYXVkaW8vbXA0JykgJiYgZmlsZUV4dGVuc2lvbikge1xuICAgICAgaWNvbiA9IGV4dGVuc2lvblRvSWNvbltmaWxlRXh0ZW5zaW9uXSB8fCBpY29uXG4gICAgfVxuXG4gICAgaWYgKCFpY29uKSB7XG4gICAgICBjb25zdCBleHRlbnNpb25Ub01pbWVUeXBlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAnLnR4dCc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgJy5tZCc6ICd0ZXh0L3gtbWFya2Rvd24nLFxuICAgICAgICAnLmNzdic6ICd0ZXh0L2NzdicsXG4gICAgICAgICcuZG9jJzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgICAgICcuZG9jeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICcueGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICcuZmxhYyc6ICdhdWRpby9mbGFjJyxcbiAgICAgICAgJy5tNGEnOiAnYXVkaW8vbTRhJyxcbiAgICAgICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgICAgICcubXA0JzogJ2F1ZGlvL21wNCcsXG4gICAgICAgICcub2dhJzogJ2F1ZGlvL29nYScsXG4gICAgICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcud2VibSc6ICdhdWRpby93ZWJtJyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlQnlFeHRlbnNpb24gPSBleHRlbnNpb25Ub01pbWVUeXBlW2ZpbGVFeHRlbnNpb25dXG4gICAgICBpZiAobWltZVR5cGVCeUV4dGVuc2lvbikge1xuICAgICAgICBpY29uID0gSWNvbkJ5RmlsZVR5cGVbbWltZVR5cGVCeUV4dGVuc2lvbl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGljb24gPSA8QXR0YWNoIGNvbG9yPVwicmdiYSgxMzUsIDY0LCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcHJvY2Vzc2VkRmlsZSA9IGZpbGVcblxuICAgIC8vIFNpIGVzIHVuYSBpbWFnZW4sIHByZS1wcm9jZXNhcmxhIHBhcmEgZWwgYmFja2VuZFxuICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBQcm9jZXNhbmRvIGltYWdlblxuICAgICAgICBwcm9jZXNzZWRGaWxlID0gYXdhaXQgcHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZChmaWxlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJlLXByb2Nlc2FuZG8gaW1hZ2VuOicsIGVycm9yKVxuICAgICAgICAvLyBDb250aW51YXIgY29uIGVsIGFyY2hpdm8gb3JpZ2luYWwgc2kgaGF5IGVycm9yXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKVxuXG4gICAgICBpY29uID0gPEltYWdlUHJldmlldyBzcmM9e2ltYWdlVXJsfSBhbHQ9e2ZpbGUubmFtZX0gd2lkdGg9XCI2M3B4XCIgaGVpZ2h0PVwiNjNweFwiIGJvcmRlclJhZGl1cz1cIjZweFwiIC8+XG4gICAgfVxuXG4gICAgY29uc3QgbmV3QXR0YWNobWVudDogQXR0YWNobWVudEZpbGUgPSB7XG4gICAgICBmaWxlOiBwcm9jZXNzZWRGaWxlLFxuICAgICAgb3JpZ2luYWxGaWxlOiBpc0ltYWdlID8gZmlsZSA6IHVuZGVmaW5lZCxcbiAgICAgIGlkOiBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IHByb2Nlc3NlZEZpbGUuc2l6ZSxcbiAgICAgIHR5cGU6IHByb2Nlc3NlZEZpbGUudHlwZSxcbiAgICAgIGljb24sXG4gICAgfVxuXG4gICAgc2V0QXR0YWNobWVudHMocHJldiA9PiBbLi4ucHJldiwgbmV3QXR0YWNobWVudF0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbmV3QXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5maWx0ZXIoYXR0YWNobWVudCA9PiBhdHRhY2htZW50LmlkICE9PSBmaWxlSWQpXG4gICAgc2V0QXR0YWNobWVudHMobmV3QXR0YWNobWVudHMpXG4gIH1cblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgZGlzY2xhaW1lck1lc3NhZ2UgPSBpc01BSUFcbiAgICA/IHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXInLCB7IGFnZW50TmFtZTogdCgnZ2xvYmFscy5icmFuZE5hbWUnKSB9KVxuICAgIDogdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lckFnZW50JylcblxuICBjb25zdCBpc0ZhcUludGVyYWN0aW9uRGlzYWJsZWQgPSBCb29sZWFuKGRpc2FibGVkIHx8IGlzU3RyZWFtaW5nIHx8IGlzV3JpdGluZylcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDaGF0Rm9vdGVyPlxuICAgICAge2lzTUFJQSAmJiAhbG9hZGluZ01lc3NhZ2VzICYmIChcbiAgICAgICAgPENoaXBzQW5kRmFxc1Jvdz5cbiAgICAgICAgICB7ISFjaGlwSXRlbXMubGVuZ3RoICYmIDxDaGlwIGl0ZW1zPXtjaGlwSXRlbXN9IC8+fVxuICAgICAgICAgIHtzaG93RmFxcyAmJiA8Q2hhdEZvb3RlckZhcXMgb25TZWxlY3RGYXE9e2hhbmRsZVNlbGVjdEZhcX0gZGlzYWJsZWQ9e2lzRmFxSW50ZXJhY3Rpb25EaXNhYmxlZH0gLz59XG4gICAgICAgIDwvQ2hpcHNBbmRGYXFzUm93PlxuICAgICAgKX1cbiAgICAgIDxNQUlBSW5wdXRcbiAgICAgICAgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2FnZW50Py5pbnB1dF9wbGFjZWhvbGRlciB8fCB0KCdjaGF0LmZvb3Rlci5wbGFjZWhvbGRlcicpfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIG9uRmlsZUF0dGFjaD17aGFuZGxlRmlsZUF0dGFjaH1cbiAgICAgICAgb25EZWxldGVBdHRhY2htZW50PXtoYW5kbGVEZWxldGVBdHRhY2htZW50fVxuICAgICAgICBhdHRhY2htZW50cz17YXR0YWNobWVudHNcbiAgICAgICAgICAuZmlsdGVyKGF0dCA9PiAhIWF0dC5maWxlKVxuICAgICAgICAgIC5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgICBmaWxlOiBhdHQuZmlsZSEsXG4gICAgICAgICAgICBvcmlnaW5hbEZpbGU6IGF0dC5vcmlnaW5hbEZpbGUsXG4gICAgICAgICAgICBpZDogYXR0LmlkLFxuICAgICAgICAgICAgbmFtZTogYXR0Lm5hbWUsXG4gICAgICAgICAgICBzaXplOiB0eXBlb2YgYXR0LnNpemUgPT09ICdudW1iZXInID8gYXR0LnNpemUgOiBOdW1iZXIoYXR0LnNpemUpIHx8IDAsXG4gICAgICAgICAgICB0eXBlOiBhdHQudHlwZSxcbiAgICAgICAgICAgIGljb246IGF0dC5pY29uLFxuICAgICAgICAgIH0pKX1cbiAgICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgICBpc1dyaXRpbmc9e2lzV3JpdGluZ31cbiAgICAgICAgb25TdG9wR2VuZXJhdGlvbj17b25TdG9wR2VuZXJhdGlvbn1cbiAgICAgICAgY2hhdElkPXtjaGF0SWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICBuZXdDaGF0S2V5PXtuZXdDaGF0S2V5fVxuICAgICAgLz5cbiAgICAgIDxDaGF0RGlzY2xhaW1lck1lc3NhZ2UgbWVzc2FnZT17ZGlzY2xhaW1lck1lc3NhZ2V9IC8+XG4gICAgPC9TdHlsZWRDaGF0Rm9vdGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQW9CQSxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUN2RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFFakUsU0FBU0MsSUFBSSxRQUFRLGtCQUFrQjtBQUN2QyxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFFakQsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLGdCQUFnQixFQUFFQyxlQUFlLFFBQVEsVUFBVTtBQUM1RCxTQUNFQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksUUFDUCxtQkFBbUI7QUFDMUIsU0FBU0MsWUFBWSxRQUFRLHVDQUF1QztBQUNwRSxTQUFTQyx5QkFBeUIsUUFBUSxrQ0FBa0M7QUFDNUUsU0FBU0MsY0FBYyxRQUFRLHdDQUF3QztBQUV2RSxTQUFTQyxxQkFBcUIsUUFBUSxtQ0FBbUM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEs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
|