@comet/cms-admin 8.0.0-beta.1 → 8.0.0-beta.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/blocks/DamVideoBlock.d.ts.map +1 -1
- package/lib/blocks/DamVideoBlock.js +8 -5
- package/lib/blocks/InternalLinkBlock.d.ts.map +1 -1
- package/lib/blocks/PixelImageBlock.d.ts.map +1 -1
- package/lib/blocks/PixelImageBlock.js +18 -16
- package/lib/blocks/SvgImageBlock.d.ts.map +1 -1
- package/lib/blocks/SvgImageBlock.js +17 -15
- package/lib/blocks/context/BlockContext.d.ts +6 -1
- package/lib/blocks/context/BlockContext.d.ts.map +1 -1
- package/lib/blocks/context/BlockContext.js +2 -2
- package/lib/blocks/context/BlockContextProvider.d.ts +2 -1
- package/lib/blocks/context/BlockContextProvider.d.ts.map +1 -1
- package/lib/blocks/context/BlockContextProvider.js +1 -1
- package/lib/blocks/context/useBlockContext.d.ts +2 -1
- package/lib/blocks/context/useBlockContext.d.ts.map +1 -1
- package/lib/blocks/context/useBlockContext.js +16 -1
- package/lib/blocks/createLinkBlock.js +1 -1
- package/lib/blocks/createSeoBlock.js +4 -4
- package/lib/blocks/createTextImageBlock.d.ts.map +1 -1
- package/lib/blocks/createTextImageBlock.js +4 -3
- package/lib/blocks/factories/createCompositeBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createCompositeBlock.js +3 -1
- package/lib/blocks/factories/createOneOfBlock.js +7 -5
- package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts +3 -2
- package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts.map +1 -1
- package/lib/blocks/image/EditImageDialog.js +7 -6
- package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.d.ts.map +1 -1
- package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.js +33 -24
- package/lib/blocks/seo/useSeoTagGeneration.js +4 -4
- package/lib/blocks/types.d.ts +3 -3
- package/lib/blocks/types.d.ts.map +1 -1
- package/lib/blocks/types.js +0 -1
- package/lib/common/DropdownMenuItem.sc.d.ts +1 -1
- package/lib/common/SearchInput.js +9 -3
- package/lib/common/header/about/build-information/buildInformation.d.ts +6 -0
- package/lib/common/header/about/build-information/buildInformation.d.ts.map +1 -0
- package/lib/common/header/about/build-information/buildInformation.js +5 -0
- package/lib/common/header/about/build-information/useBuildInformation.d.ts +1 -1
- package/lib/common/header/about/build-information/useBuildInformation.d.ts.map +1 -1
- package/lib/common/header/about/build-information/useBuildInformation.js +2 -3
- package/lib/common/useSaveState.d.ts.map +1 -1
- package/lib/common/useSaveState.js +18 -13
- package/lib/config/CometConfigContext.d.ts +28 -0
- package/lib/config/CometConfigContext.d.ts.map +1 -0
- package/lib/{blocks/CmsBlockContextProvider.js → config/CometConfigContext.js} +31 -13
- package/lib/contentLanguage/contentLanguageConfig.d.ts +6 -0
- package/lib/contentLanguage/contentLanguageConfig.d.ts.map +1 -0
- package/lib/contentLanguage/contentLanguageConfig.js +18 -0
- package/lib/contentLanguage/useContentLanguage.d.ts +7 -0
- package/lib/contentLanguage/useContentLanguage.d.ts.map +1 -0
- package/lib/contentLanguage/useContentLanguage.js +13 -0
- package/lib/cronJobs/CronJobsGrid.d.ts.map +1 -1
- package/lib/cronJobs/CronJobsGrid.js +1 -0
- package/lib/cronJobs/JobsGrid.d.ts.map +1 -1
- package/lib/cronJobs/JobsGrid.js +1 -0
- package/lib/dam/DamPage.js +3 -3
- package/lib/dam/DataGrid/DamContextMenu.js +4 -3
- package/lib/dam/DataGrid/FolderDataGrid.js +2 -2
- package/lib/dam/DataGrid/fileUpload/useDamFileUpload.d.ts.map +1 -1
- package/lib/dam/DataGrid/fileUpload/useDamFileUpload.js +11 -5
- package/lib/dam/DataGrid/label/DamItemLabelColumn.d.ts.map +1 -1
- package/lib/dam/DataGrid/label/DamItemLabelColumn.js +26 -23
- package/lib/dam/FileForm/Duplicates.d.ts.map +1 -1
- package/lib/dam/FileForm/Duplicates.js +5 -9
- package/lib/dam/FileForm/EditFile.d.ts.map +1 -1
- package/lib/dam/FileForm/EditFile.js +9 -9
- package/lib/dam/FileForm/FileSettingsFields.js +8 -8
- package/lib/dam/FileForm/ReplaceFileButton.d.ts.map +1 -1
- package/lib/dam/FileForm/ReplaceFileButton.js +8 -4
- package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.d.ts.map +1 -1
- package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.js +2 -3
- package/lib/dam/blocks/DamFileDownloadLinkBlock.d.ts.map +1 -1
- package/lib/dam/config/DamScopeProvider.js +2 -2
- package/lib/dam/config/{DamConfigContext.d.ts → damConfig.d.ts} +4 -2
- package/lib/dam/config/damConfig.d.ts.map +1 -0
- package/lib/dam/config/damConfig.js +14 -0
- package/lib/dam/config/useDamAcceptedMimeTypes.js +2 -2
- package/lib/dashboard/widgets/LatestBuildsDashboardWidget.js +2 -2
- package/lib/dependencies/DependencyList.d.ts.map +1 -1
- package/lib/dependencies/DependencyList.js +4 -2
- package/lib/dependencies/DependencyList.sc.d.ts +1 -1
- package/lib/dependencies/dependenciesConfig.d.ts +10 -0
- package/lib/dependencies/dependenciesConfig.d.ts.map +1 -0
- package/lib/dependencies/dependenciesConfig.js +16 -0
- package/lib/form/file/FinalFormFileUpload.d.ts.map +1 -1
- package/lib/form/file/FinalFormFileUpload.js +3 -3
- package/lib/form/file/chooseFile/ChooseFileDialog.d.ts.map +1 -1
- package/lib/form/file/chooseFile/ChooseFileDialog.js +37 -34
- package/lib/imgproxy/imgproxyConfig.d.ts +6 -0
- package/lib/imgproxy/imgproxyConfig.d.ts.map +1 -0
- package/lib/imgproxy/imgproxyConfig.js +14 -0
- package/lib/index.d.ts +7 -12
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +20 -75
- package/lib/pages/createEditPageNode.d.ts.map +1 -1
- package/lib/pages/createEditPageNode.js +3 -3
- package/lib/pages/createUsePage.d.ts.map +1 -1
- package/lib/pages/createUsePage.js +5 -10
- package/lib/pages/pageTree/MovePageMenuItem.d.ts.map +1 -1
- package/lib/pages/pageTree/MovePageMenuItem.js +5 -3
- package/lib/pages/pageTree/PageActions.d.ts.map +1 -1
- package/lib/pages/pageTree/PageActions.js +5 -4
- package/lib/pages/pageTree/PageLabel.d.ts.map +1 -1
- package/lib/pages/pageTree/PageLabel.js +8 -8
- package/lib/pages/pageTree/PageTree.js +11 -11
- package/lib/pages/pageTree/PageTreeContext.d.ts +0 -2
- package/lib/pages/pageTree/PageTreeContext.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTreeRow.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTreeRow.js +3 -3
- package/lib/pages/pageTree/PageTypeIcon.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTypeIcon.js +3 -3
- package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts +4 -5
- package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts.map +1 -1
- package/lib/pages/pageTree/useCopyPastePages/sendPages.js +20 -18
- package/lib/pages/pageTree/useCopyPastePages.d.ts.map +1 -1
- package/lib/pages/pageTree/useCopyPastePages.js +8 -5
- package/lib/pages/pageTreeConfig.d.ts +13 -0
- package/lib/pages/pageTreeConfig.d.ts.map +1 -0
- package/lib/pages/pageTreeConfig.js +14 -0
- package/lib/pages/pageTreeSelect/PageTreeSelectDialog.d.ts.map +1 -1
- package/lib/pages/pageTreeSelect/PageTreeSelectDialog.js +11 -14
- package/lib/pages/pagesPage/ConfirmPageActionDialog.d.ts.map +1 -1
- package/lib/pages/pagesPage/ConfirmPageActionDialog.js +1 -5
- package/lib/pages/pagesPage/PagesPage.d.ts +1 -3
- package/lib/pages/pagesPage/PagesPage.d.ts.map +1 -1
- package/lib/pages/pagesPage/PagesPage.js +4 -6
- package/lib/pages/pagesPage/PagesPageActionToolbar.sc.d.ts +2 -2
- package/lib/pages/usePageTreeDocumentAnchors.js +3 -3
- package/lib/preview/block/BlockPreview.d.ts.map +1 -1
- package/lib/preview/block/BlockPreview.js +6 -8
- package/lib/preview/common/ToggleButton.d.ts +1 -1
- package/lib/preview/site/SitePreview.js +1 -1
- package/lib/preview/site/SitePreview.sc.d.ts +1 -1
- package/lib/redirects/RedirectsGrid.d.ts.map +1 -1
- package/lib/redirects/RedirectsGrid.js +3 -2
- package/lib/redirects/createRedirectsPage.d.ts.map +1 -1
- package/lib/redirects/createRedirectsPage.js +26 -2
- package/lib/{sitesConfig/SitesConfigContext.d.ts → siteConfigs/siteConfigsConfig.d.ts} +2 -3
- package/lib/siteConfigs/siteConfigsConfig.d.ts.map +1 -0
- package/lib/siteConfigs/siteConfigsConfig.js +5 -0
- package/lib/{sitesConfig → siteConfigs}/useSiteConfig.d.ts +1 -1
- package/lib/{sitesConfig → siteConfigs}/useSiteConfig.d.ts.map +1 -1
- package/lib/{sitesConfig → siteConfigs}/useSiteConfig.js +2 -2
- package/lib/siteConfigs/useSiteConfigs.d.ts +3 -0
- package/lib/siteConfigs/useSiteConfigs.d.ts.map +1 -0
- package/lib/siteConfigs/useSiteConfigs.js +14 -0
- package/package.json +23 -20
- package/lib/blocks/CmsBlockContextProvider.d.ts +0 -28
- package/lib/blocks/CmsBlockContextProvider.d.ts.map +0 -1
- package/lib/blocks/useCmsBlockContext.d.ts +0 -4
- package/lib/blocks/useCmsBlockContext.d.ts.map +0 -1
- package/lib/blocks/useCmsBlockContext.js +0 -10
- package/lib/common/header/about/build-information/BuildInformationContext.d.ts +0 -7
- package/lib/common/header/about/build-information/BuildInformationContext.d.ts.map +0 -1
- package/lib/common/header/about/build-information/BuildInformationContext.js +0 -8
- package/lib/common/header/about/build-information/BuildInformationProvider.d.ts +0 -8
- package/lib/common/header/about/build-information/BuildInformationProvider.d.ts.map +0 -1
- package/lib/common/header/about/build-information/BuildInformationProvider.js +0 -16
- package/lib/dam/config/DamConfigContext.d.ts.map +0 -1
- package/lib/dam/config/DamConfigContext.js +0 -8
- package/lib/dam/config/DamConfigProvider.d.ts +0 -8
- package/lib/dam/config/DamConfigProvider.d.ts.map +0 -1
- package/lib/dam/config/DamConfigProvider.js +0 -25
- package/lib/dam/config/useDamConfig.d.ts +0 -3
- package/lib/dam/config/useDamConfig.d.ts.map +0 -1
- package/lib/dam/config/useDamConfig.js +0 -12
- package/lib/dependencies/DependenciesConfig.d.ts +0 -11
- package/lib/dependencies/DependenciesConfig.d.ts.map +0 -1
- package/lib/dependencies/DependenciesConfig.js +0 -20
- package/lib/locale/LocaleContext.d.ts +0 -7
- package/lib/locale/LocaleContext.d.ts.map +0 -1
- package/lib/locale/LocaleContext.js +0 -12
- package/lib/locale/LocaleProvider.d.ts +0 -8
- package/lib/locale/LocaleProvider.d.ts.map +0 -1
- package/lib/locale/LocaleProvider.js +0 -18
- package/lib/locale/useLocale.d.ts +0 -7
- package/lib/locale/useLocale.d.ts.map +0 -1
- package/lib/locale/useLocale.js +0 -14
- package/lib/sitesConfig/SitesConfigContext.d.ts.map +0 -1
- package/lib/sitesConfig/SitesConfigContext.js +0 -8
- package/lib/sitesConfig/SitesConfigProvider.d.ts +0 -8
- package/lib/sitesConfig/SitesConfigProvider.d.ts.map +0 -1
- package/lib/sitesConfig/SitesConfigProvider.js +0 -16
- package/lib/sitesConfig/useSitesConfig.d.ts +0 -3
- package/lib/sitesConfig/useSitesConfig.d.ts.map +0 -1
- package/lib/sitesConfig/useSitesConfig.js +0 -15
|
@@ -47,10 +47,10 @@ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.
|
|
|
47
47
|
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
48
48
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
49
49
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
50
|
-
var
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
50
|
+
var movePageTreeNodesByPositionMutation = (0, _graphqlTag["default"])(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n mutation MovePageTreeNodesByPos($ids: [ID!]!, $input: MovePageTreeNodesByPosInput!) {\n movePageTreeNodesByPos(ids: $ids, input: $input) {\n id\n parentId\n pos\n slug\n path\n }\n }\n"])));
|
|
51
|
+
var movePageTreeNodesByNeighboursMutation = (0, _graphqlTag["default"])(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n mutation MovePageTreeNodesByNeighbour($ids: [ID!]!, $input: MovePageTreeNodesByNeighbourInput!) {\n movePageTreeNodesByNeighbour(ids: $ids, input: $input) {\n id\n parentId\n pos\n slug\n path\n }\n }\n"])));
|
|
52
|
+
var resetSlugMutation = (0, _graphqlTag["default"])(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n mutation ResetSlug($id: ID!, $slug: String!) {\n updatePageTreeNodeSlug(id: $id, slug: $slug) {\n id\n slug\n }\n }\n"])));
|
|
53
|
+
var pagesCacheQuery = (0, _graphqlTag["default"])(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n query PagesCache($contentScope: PageTreeNodeScopeInput!, $category: String!) {\n pages: pageTreeNodeList(scope: $contentScope, category: $category) {\n id\n parentId\n pos\n }\n }\n"])));
|
|
54
54
|
|
|
55
55
|
// @TODO: Calculate dynamically
|
|
56
56
|
var levelOffsetPx = 50;
|
|
@@ -134,7 +134,7 @@ var PageTree = function PageTree(_ref, ref) {
|
|
|
134
134
|
ids = _ref2.ids, parentId = _ref2.parentId, position = _ref2.position;
|
|
135
135
|
_context.next = 3;
|
|
136
136
|
return client.mutate({
|
|
137
|
-
mutation:
|
|
137
|
+
mutation: movePageTreeNodesByPositionMutation,
|
|
138
138
|
variables: {
|
|
139
139
|
ids: ids,
|
|
140
140
|
input: {
|
|
@@ -173,7 +173,7 @@ var PageTree = function PageTree(_ref, ref) {
|
|
|
173
173
|
return;
|
|
174
174
|
}
|
|
175
175
|
var pagesQueryData = proxy.readQuery({
|
|
176
|
-
query:
|
|
176
|
+
query: pagesCacheQuery,
|
|
177
177
|
variables: {
|
|
178
178
|
contentScope: scope,
|
|
179
179
|
category: category
|
|
@@ -188,7 +188,7 @@ var PageTree = function PageTree(_ref, ref) {
|
|
|
188
188
|
return updatedPageData;
|
|
189
189
|
});
|
|
190
190
|
proxy.writeQuery({
|
|
191
|
-
query:
|
|
191
|
+
query: pagesCacheQuery,
|
|
192
192
|
data: {
|
|
193
193
|
pages: updatedPages
|
|
194
194
|
}
|
|
@@ -214,7 +214,7 @@ var PageTree = function PageTree(_ref, ref) {
|
|
|
214
214
|
ids = _ref5.ids, parentId = _ref5.parentId, afterId = _ref5.afterId, beforeId = _ref5.beforeId;
|
|
215
215
|
_context2.next = 3;
|
|
216
216
|
return client.mutate({
|
|
217
|
-
mutation:
|
|
217
|
+
mutation: movePageTreeNodesByNeighboursMutation,
|
|
218
218
|
variables: {
|
|
219
219
|
ids: ids,
|
|
220
220
|
input: {
|
|
@@ -310,7 +310,7 @@ var PageTree = function PageTree(_ref, ref) {
|
|
|
310
310
|
case 4:
|
|
311
311
|
_context3.next = 6;
|
|
312
312
|
return client.mutate({
|
|
313
|
-
mutation:
|
|
313
|
+
mutation: resetSlugMutation,
|
|
314
314
|
variables: {
|
|
315
315
|
id: pageToUndo.id,
|
|
316
316
|
slug: pageToUndo.slug
|
|
@@ -471,7 +471,7 @@ var Root = /*#__PURE__*/(0, _styles.styled)("div", process.env.NODE_ENV === "pro
|
|
|
471
471
|
styles: "height:100%;display:flex;flex-direction:column"
|
|
472
472
|
} : {
|
|
473
473
|
name: "kdbhus",
|
|
474
|
-
styles: "height:100%;display:flex;flex-direction:column/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9wYWdlVHJlZS9QYWdlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbVowQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvcGFnZXMvcGFnZVRyZWUvUGFnZVRyZWUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlUXVlcnksIHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL2NsaWVudFwiO1xuaW1wb3J0IHsgdHlwZSBJRWRpdERpYWxvZ0FwaSwgVW5kb1NuYWNrYmFyLCB1c2VTbmFja2JhckFwaSB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCBpc0VxdWFsIGZyb20gXCJsb2Rhc2guaXNlcXVhbFwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIERpc3BhdGNoLFxuICAgIGZvcndhcmRSZWYsXG4gICAgdHlwZSBGb3J3YXJkUmVmUmVuZGVyRnVuY3Rpb24sXG4gICAgdHlwZSBTZXRTdGF0ZUFjdGlvbixcbiAgICB1c2VDYWxsYmFjayxcbiAgICB1c2VFZmZlY3QsXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgICB1c2VNZW1vLFxuICAgIHVzZVJlZixcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSBcInJlYWN0LWludGxcIjtcbmltcG9ydCBBdXRvU2l6ZXIsIHsgdHlwZSBTaXplIH0gZnJvbSBcInJlYWN0LXZpcnR1YWxpemVkLWF1dG8tc2l6ZXJcIjtcbmltcG9ydCB7IHR5cGUgQWxpZ24sIEZpeGVkU2l6ZUxpc3QgYXMgTGlzdCB9IGZyb20gXCJyZWFjdC13aW5kb3dcIjtcbmltcG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSBcInVzZS1kZWJvdW5jZVwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB0eXBlIEdRTFBhZ2VzUXVlcnksIHR5cGUgR1FMUGFnZXNRdWVyeVZhcmlhYmxlcyB9IGZyb20gXCIuLi9wYWdlc1BhZ2UvY3JlYXRlUGFnZXNRdWVyeVwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbixcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeSxcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcyxcbiAgICB0eXBlIEdRTFBhZ2VTbHVnUGF0aEZyYWdtZW50LFxuICAgIHR5cGUgR1FMUmVzZXRTbHVnTXV0YXRpb24sXG4gICAgdHlwZSBHUUxSZXNldFNsdWdNdXRhdGlvblZhcmlhYmxlcyxcbn0gZnJvbSBcIi4vUGFnZVRyZWUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgUGFnZVRyZWVEcmFnTGF5ZXIgZnJvbSBcIi4vUGFnZVRyZWVEcmFnTGF5ZXJcIjtcbmltcG9ydCBQYWdlVHJlZVJvdywgeyB0eXBlIERyb3BUYXJnZXQsIHR5cGUgUGFnZVRyZWVEcmFnT2JqZWN0IH0gZnJvbSBcIi4vUGFnZVRyZWVSb3dcIjtcbmltcG9ydCB7IHR5cGUgRHJvcEluZm8sIFBhZ2VUcmVlU2VydmljZSB9IGZyb20gXCIuL1BhZ2VUcmVlU2VydmljZVwiO1xuaW1wb3J0IHsgdXNlRG5kV2luZG93U2Nyb2xsIH0gZnJvbSBcIi4vdXNlRG5kV2luZG93U2Nyb2xsL3VzZURuZFdpbmRvd1Njcm9sbFwiO1xuaW1wb3J0IHsgdHlwZSBQYWdlVHJlZVBhZ2UgfSBmcm9tIFwiLi91c2VQYWdlVHJlZVwiO1xuXG5pbnRlcmZhY2UgUGFnZVRyZWVQcm9wcyB7XG4gICAgcGFnZXM6IFBhZ2VUcmVlUGFnZVtdO1xuICAgIGVkaXREaWFsb2dBcGk6IElFZGl0RGlhbG9nQXBpO1xuICAgIHRvZ2dsZUV4cGFuZDogKHBhZ2VJZDogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uU2VsZWN0Q2hhbmdlZDogKHBhZ2VJZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIHNpdGVVcmw6IHN0cmluZztcbn1cblxudHlwZSBQYWdlVHJlZVJlZkFwaSA9IHsgc2Nyb2xsVG9JdGVtOiBMaXN0W1wic2Nyb2xsVG9JdGVtXCJdIH07XG5cbmNvbnN0IE1PVkVfUEFHRV9UUkVFX05PREVTX0JZX1BPUyA9IGdxbGBcbiAgICBtdXRhdGlvbiBNb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zKCRpZHM6IFtJRCFdISwgJGlucHV0OiBNb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zSW5wdXQhKSB7XG4gICAgICAgIG1vdmVQYWdlVHJlZU5vZGVzQnlQb3MoaWRzOiAkaWRzLCBpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgcGFyZW50SWRcbiAgICAgICAgICAgIHBvc1xuICAgICAgICAgICAgc2x1Z1xuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9XG4gICAgfVxuYDtcblxuY29uc3QgTU9WRV9QQUdFX1RSRUVfTk9ERVNfQllfTkVJR0hCT1VSUyA9IGdxbGBcbiAgICBtdXRhdGlvbiBNb3ZlUGFnZVRyZWVOb2Rlc0J5TmVpZ2hib3VyKCRpZHM6IFtJRCFdISwgJGlucHV0OiBNb3ZlUGFnZVRyZWVOb2Rlc0J5TmVpZ2hib3VySW5wdXQhKSB7XG4gICAgICAgIG1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXIoaWRzOiAkaWRzLCBpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgcGFyZW50SWRcbiAgICAgICAgICAgIHBvc1xuICAgICAgICAgICAgc2x1Z1xuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9XG4gICAgfVxuYDtcblxuY29uc3QgUkVTRVRfU0xVRyA9IGdxbGBcbiAgICBtdXRhdGlvbiBSZXNldFNsdWcoJGlkOiBJRCEsICRzbHVnOiBTdHJpbmchKSB7XG4gICAgICAgIHVwZGF0ZVBhZ2VUcmVlTm9kZVNsdWcoaWQ6ICRpZCwgc2x1ZzogJHNsdWcpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBQQUdFU19DQUNIRV9RVUVSWSA9IGdxbGBcbiAgICBxdWVyeSBQYWdlc0NhY2hlKCRjb250ZW50U2NvcGU6IFBhZ2VUcmVlTm9kZVNjb3BlSW5wdXQhLCAkY2F0ZWdvcnk6IFN0cmluZyEpIHtcbiAgICAgICAgcGFnZXM6IHBhZ2VUcmVlTm9kZUxpc3Qoc2NvcGU6ICRjb250ZW50U2NvcGUsIGNhdGVnb3J5OiAkY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBwYXJlbnRJZFxuICAgICAgICAgICAgcG9zXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG4vLyBAVE9ETzogQ2FsY3VsYXRlIGR5bmFtaWNhbGx5XG5jb25zdCBsZXZlbE9mZnNldFB4ID0gNTA7XG5cbmNvbnN0IFBhZ2VUcmVlOiBGb3J3YXJkUmVmUmVuZGVyRnVuY3Rpb248UGFnZVRyZWVSZWZBcGksIFBhZ2VUcmVlUHJvcHM+ID0gKFxuICAgIHsgcGFnZXMsIGVkaXREaWFsb2dBcGksIHRvZ2dsZUV4cGFuZCwgb25TZWxlY3RDaGFuZ2VkLCBjYXRlZ29yeSwgc2l0ZVVybCB9LFxuICAgIHJlZixcbikgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IHVzZUFwb2xsb0NsaWVudCgpO1xuICAgIGNvbnN0IG5ld1BhZ2VJZHMgPSB1c2VSZWY8c3RyaW5nW10+KFtdKTtcblxuICAgIGNvbnN0IHF1ZXJpZXMgPSBjbGllbnQuZ2V0T2JzZXJ2YWJsZVF1ZXJpZXMoKTtcbiAgICBjb25zdCBwYWdlc1F1ZXJ5ID0gQXJyYXkuZnJvbShxdWVyaWVzLnZhbHVlcygpKS5maW5kKChxdWVyeSkgPT4gcXVlcnkucXVlcnlOYW1lID09PSBcIlBhZ2VzXCIpIGFzXG4gICAgICAgIHwgT2JzZXJ2YWJsZVF1ZXJ5PEdRTFBhZ2VzUXVlcnksIEdRTFBhZ2VzUXVlcnlWYXJpYWJsZXM+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHBhZ2VzUXVlcnkpIHtcbiAgICAgICAgICAgIGNsaWVudC5jYWNoZS53YXRjaDxHUUxQYWdlc1F1ZXJ5LCBHUUxQYWdlc1F1ZXJ5VmFyaWFibGVzPih7XG4gICAgICAgICAgICAgICAgcXVlcnk6IHBhZ2VzUXVlcnkucXVlcnksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBwYWdlc1F1ZXJ5LnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogKG5ld1BhZ2VzUXVlcnksIHByZXZpb3VzUGFnZXNRdWVyeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFnZXNRdWVyeSAmJiBwcmV2aW91c1BhZ2VzUXVlcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUGFnZUlkcyA9IHByZXZpb3VzUGFnZXNRdWVyeS5yZXN1bHQ/LnBhZ2VzPy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFnZUlkcy5jdXJyZW50ID0gbmV3UGFnZXNRdWVyeS5yZXN1bHQ/LnBhZ2VzPy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpLmZpbHRlcigoaWQpID0+ICFleGlzdGluZ1BhZ2VJZHMuaW5jbHVkZXMoaWQpKSA/PyBbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgbmV3UGFnZUlkcyB0byBwcmV2ZW50IHNsaWRlSW4gb24gZXZlcnkgcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYWdlSWRzLmN1cnJlbnQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpbWlzdGljOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbY2xpZW50LmNhY2hlLCBwYWdlc1F1ZXJ5XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmV3UGFnZUlkcy5jdXJyZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFnZXMuZmluZEluZGV4KChwYWdlKSA9PiBuZXdQYWdlSWRzLmN1cnJlbnQuaW5jbHVkZXMocGFnZS5pZCkpO1xuICAgICAgICAgICAgcmVmTGlzdC5jdXJyZW50Py5zY3JvbGxUb0l0ZW0oaW5kZXgsIFwic21hcnRcIik7XG4gICAgICAgIH1cbiAgICB9LCBbcGFnZXNdKTtcblxuICAgIGNvbnN0IHBhZ2VUcmVlU2VydmljZSA9IHVzZU1lbW8oKCkgPT4gbmV3IFBhZ2VUcmVlU2VydmljZShsZXZlbE9mZnNldFB4LCBwYWdlcyksIFtwYWdlc10pO1xuICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgIGNvbnN0IHNuYWNrYmFyQXBpID0gdXNlU25hY2tiYXJBcGkoKTtcblxuICAgIGNvbnN0IGRlYm91bmNlZFNldEhvdmVyU3RhdGUgPSB1c2VEZWJvdW5jZWRDYWxsYmFjayhcbiAgICAgICAgKHNldEhvdmVyU3RhdGU6IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPERyb3BJbmZvIHwgdW5kZWZpbmVkPj4sIG5ld0hvdmVyU3RhdGU6IERyb3BJbmZvIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgICBzZXRIb3ZlclN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNFcXVhbChuZXdIb3ZlclN0YXRlLCBwcmV2U3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld0hvdmVyU3RhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIDUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdGVkUGFnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gcGFnZS5zZWxlY3RlZCk7XG4gICAgfSwgW3BhZ2VzXSk7XG5cbiAgICBjb25zdCBtb3ZlQnlQb3NSZXF1ZXN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIC8vIEBUT0RPOiBoYW5kbGUgcGF0aCBjb2xsaXNpb25zIHdoZW4gbW92aW5nIHBhZ2VzXG4gICAgICAgIGFzeW5jICh7IGlkcywgcGFyZW50SWQsIHBvc2l0aW9uIH06IHsgaWRzOiBzdHJpbmdbXTsgcGFyZW50SWQ6IHN0cmluZyB8IG51bGw7IHBvc2l0aW9uOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgY2xpZW50Lm11dGF0ZSh7XG4gICAgICAgICAgICAgICAgbXV0YXRpb246IE1PVkVfUEFHRV9UUkVFX05PREVTX0JZX1BPUyxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWRzOiBpZHMsXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3M6IHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlOiAodmFyaWFibGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VUcmVlTm9kZXM6IEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbltcIm1vdmVQYWdlVHJlZU5vZGVzQnlQb3NcIl0gPSAodmFyaWFibGVzLmlkcyBhcyBzdHJpbmdbXSkubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGlkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNsdWdQYXRoUGFnZSA9IGNsaWVudC5jYWNoZS5yZWFkRnJhZ21lbnQ8R1FMUGFnZVNsdWdQYXRoRnJhZ21lbnQ+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudDogZ3FsYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQgUGFnZVNsdWdQYXRoIG9uIFBhZ2VUcmVlTm9kZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190eXBlbmFtZTogXCJQYWdlVHJlZU5vZGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogcG9zaXRpb24gKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogc2x1Z1BhdGhQYWdlPy5zbHVnID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHNsdWdQYXRoUGFnZT8ucGF0aCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zOiBwYWdlVHJlZU5vZGVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdXBkYXRlOiAocHJveHksIHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwYWdlIHBvc2l0aW9ucyBvZiBhbGwgb3RoZXIgcGFnZXRyZWUgbm9kZXMgYXJlIHVwZGF0ZWQgaW4gdGhlIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vID0+IHJlYWx0aW1lIHVwZGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3ZlZFBhZ2VUcmVlTm9kZXMgPSBkYXRhPy5tb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE1vdmVkUGFnZVRyZWVOb2RlID0gbW92ZWRQYWdlVHJlZU5vZGVzPy5bMF07XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW92ZWRQYWdlVHJlZU5vZGVzIHx8ICFmaXJzdE1vdmVkUGFnZVRyZWVOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlc1F1ZXJ5RGF0YSA9IHByb3h5LnJlYWRRdWVyeTxHUUxQYWdlc0NhY2hlUXVlcnksIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcz4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IFBBR0VTX0NBQ0hFX1FVRVJZLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFNjb3BlOiBzY29wZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlc0RhdGEgPSBwYWdlc1F1ZXJ5RGF0YT8ucGFnZXMgPz8gW107XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRQYWdlcyA9IHBhZ2VzRGF0YS5tYXAoKHBhZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkUGFnZURhdGEgPSB7IC4uLnBhZ2VEYXRhIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlkcy5pbmNsdWRlcyhwYWdlRGF0YS5pZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YS5wYXJlbnRJZCA9PT0gZmlyc3RNb3ZlZFBhZ2VUcmVlTm9kZS5wYXJlbnRJZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhLnBvcyA+PSBmaXJzdE1vdmVkUGFnZVRyZWVOb2RlLnBvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZFBhZ2VEYXRhLnBvcyA9IHVwZGF0ZWRQYWdlRGF0YS5wb3MgKyBtb3ZlZFBhZ2VUcmVlTm9kZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZFBhZ2VEYXRhO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcHJveHkud3JpdGVRdWVyeSh7IHF1ZXJ5OiBQQUdFU19DQUNIRV9RVUVSWSwgZGF0YTogeyBwYWdlczogdXBkYXRlZFBhZ2VzIH0gfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbY2xpZW50LCBzY29wZSwgY2F0ZWdvcnldLFxuICAgICk7XG5cbiAgICBjb25zdCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jICh7IGlkcywgcGFyZW50SWQsIGFmdGVySWQsIGJlZm9yZUlkIH06IHsgaWRzOiBzdHJpbmdbXTsgcGFyZW50SWQ6IHN0cmluZyB8IG51bGw7IGFmdGVySWQ6IHN0cmluZyB8IG51bGw7IGJlZm9yZUlkOiBzdHJpbmcgfCBudWxsIH0pID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5tdXRhdGUoe1xuICAgICAgICAgICAgICAgIG11dGF0aW9uOiBNT1ZFX1BBR0VfVFJFRV9OT0RFU19CWV9ORUlHSEJPVVJTLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICBpZHM6IGlkcyxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVySWQ6IGFmdGVySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVJZDogYmVmb3JlSWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbY2xpZW50XSxcbiAgICApO1xuXG4gICAgY29uc3Qgb25Ecm9wID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jIChkcmFnT2JqZWN0OiBQYWdlVHJlZURyYWdPYmplY3QsIGRyb3BUYXJnZXRQYWdlOiBQYWdlVHJlZVBhZ2UsIGRyb3BUYXJnZXQ6IERyb3BUYXJnZXQsIHRhcmdldExldmVsOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFnZUlkcyA9IHNlbGVjdGVkUGFnZXMubWFwKChwYWdlKSA9PiBwYWdlLmlkKTtcbiAgICAgICAgICAgIGxldCBwYWdlc1RvTW92ZTogUGFnZVRyZWVQYWdlW107XG4gICAgICAgICAgICBsZXQgaWRzVG9Nb3ZlOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUGFnZUlkcy5pbmNsdWRlcyhkcmFnT2JqZWN0LmlkKSkge1xuICAgICAgICAgICAgICAgIC8vIGZpbHRlciBvdXQgc3VicGFnZXMgaWYgdGhlaXIgcGFyZW50IGlzIHNlbGVjdGVkID0+IG9ubHkgdGhlIHBhcmVudCBoYXMgdG8gYmUgbW92ZWRcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFNlbGVjdGVkUGFnZXMgPSBzZWxlY3RlZFBhZ2VzLmZpbHRlcigocGFnZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFnZS5wYXJlbnRJZCA9PT0gbnVsbCB8fCAhc2VsZWN0ZWRQYWdlSWRzLmluY2x1ZGVzKHBhZ2UucGFyZW50SWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlkc1RvTW92ZSA9IGZpbHRlcmVkU2VsZWN0ZWRQYWdlcy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpO1xuXG4gICAgICAgICAgICAgICAgcGFnZXNUb01vdmUgPSBmaWx0ZXJlZFNlbGVjdGVkUGFnZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlkc1RvTW92ZSA9IFtkcmFnT2JqZWN0LmlkXTtcbiAgICAgICAgICAgICAgICBwYWdlc1RvTW92ZSA9IFtkcmFnT2JqZWN0XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdXBkYXRlSW5mbyA9IHBhZ2VUcmVlU2VydmljZS5kcm9wQWxsb3dlZChwYWdlc1RvTW92ZSwgZHJvcFRhcmdldFBhZ2UsIGRyb3BUYXJnZXQsIHRhcmdldExldmVsKTtcbiAgICAgICAgICAgIGlmICghdXBkYXRlSW5mbykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgbW92ZUJ5UG9zUmVxdWVzdCh7IGlkczogaWRzVG9Nb3ZlLCBwYXJlbnRJZDogdXBkYXRlSW5mby5wYXJlbnRJZCwgcG9zaXRpb246IHVwZGF0ZUluZm8ucG9zaXRpb24gfSk7XG5cbiAgICAgICAgICAgIHNuYWNrYmFyQXBpLnNob3dTbmFja2JhcihcbiAgICAgICAgICAgICAgICA8VW5kb1NuYWNrYmFyXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9ezxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiY29tZXQucGFnZXRyZWUucGFnZU1vdmVkXCIgZGVmYXVsdE1lc3NhZ2U9XCJQYWdlIE1vdmVkXCIgLz59XG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ9e3sgcHJldmlvdXNQYWdlczogcGFnZXMsIHBhZ2VzVG9VbmRvOiBwYWdlc1RvTW92ZSB9fVxuICAgICAgICAgICAgICAgICAgICBvblVuZG9DbGljaz17YXN5bmMgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwcmV2aW91c1BhZ2VzLCBwYWdlc1RvVW5kbyB9ID0gcGF5bG9hZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkaXNhbGxvd2VkUmVmZXJlbmNlcyA9IFsuLi5wYWdlc1RvVW5kb107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBhZ2VUb1VuZG8gb2YgcGFnZXNUb1VuZG8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSW5mbyA9IHBhZ2VUcmVlU2VydmljZS5nZXRVbmRvVXBkYXRlSW5mbyhwcmV2aW91c1BhZ2VzLCBwYWdlVG9VbmRvLCBkaXNhbGxvd2VkUmVmZXJlbmNlcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbW92ZUJ5TmVpZ2hib3VyUmVxdWVzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM6IFtwYWdlVG9VbmRvLmlkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYWdlVG9VbmRvLnBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJJZDogdXBkYXRlSW5mby5hZnRlcklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlSWQ6IHVwZGF0ZUluZm8uYmVmb3JlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5tdXRhdGU8R1FMUmVzZXRTbHVnTXV0YXRpb24sIEdRTFJlc2V0U2x1Z011dGF0aW9uVmFyaWFibGVzPih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbjogUkVTRVRfU0xVRyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwYWdlVG9VbmRvLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHBhZ2VUb1VuZG8uc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FsbG93ZWRSZWZlcmVuY2VzID0gZGlzYWxsb3dlZFJlZmVyZW5jZXMuZmlsdGVyKChwYWdlKSA9PiBwYWdlLmlkICE9PSBwYWdlVG9VbmRvLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQucmVmZXRjaFF1ZXJpZXMoeyBpbmNsdWRlOiBbXCJQYWdlc1wiXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIFtzZWxlY3RlZFBhZ2VzLCBwYWdlVHJlZVNlcnZpY2UsIHBhZ2VzLCBtb3ZlQnlQb3NSZXF1ZXN0LCBzbmFja2JhckFwaSwgY2xpZW50LCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0XSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVmTGlzdCA9IHVzZVJlZjxMaXN0PihudWxsKTtcbiAgICAvLyBleHBvc2UgdGhpcyBtZXRob2QgdG8gdGhlIHB1YmxpY1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBzY3JvbGxUb0l0ZW06IChpbmRleDogbnVtYmVyLCBhbGlnbj86IEFsaWduKSA9PiB7XG4gICAgICAgICAgICByZWZMaXN0LmN1cnJlbnQ/LnNjcm9sbFRvSXRlbShpbmRleCwgYWxpZ24pO1xuICAgICAgICB9LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHByb3BzRm9yVmlydHVhbExpc3QgPSB1c2VEbmRXaW5kb3dTY3JvbGwoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8UGFnZVRyZWVEcmFnTGF5ZXIgbnVtYmVyU2VsZWN0ZWRQYWdlcz17c2VsZWN0ZWRQYWdlcy5sZW5ndGh9IC8+XG4gICAgICAgICAgICA8Um9vdD5cbiAgICAgICAgICAgICAgICA8VGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxBdXRvU2l6ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7KHsgaGVpZ2h0LCB3aWR0aCB9OiBTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE86IGFkanVzdCBpdGVtU2l6ZSBmb3Igc21hbGxlciBzY3JlZW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3JlZkxpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17cGFnZXMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNpemU9ezUxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnNjYW5Db3VudD17MX0gLy8gZG8gbm90IGluY3JlYXNlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHNjcm9sbEJlaGF2aW9yOiBcInNtb290aFwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckVsZW1lbnRUeXBlPXtWaXJ0dWFsTGlzdFBhZGRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc0ZvclZpcnR1YWxMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaW5kZXgsIHN0eWxlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbcHJldlBhZ2UsIHBhZ2UsIG5leHRQYWdlXSA9IGdldExpbmtlZFBhZ2VzKHBhZ2VzLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBhZ2VUcmVlUm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BhZ2UuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsaXplZFN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtwYXJzZUZsb2F0KFN0cmluZyhzdHlsZT8udG9wKSkgKyBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUluPXtuZXdQYWdlSWRzLmN1cnJlbnQuaW5jbHVkZXMocGFnZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlPXtwYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBhZ2U9e3ByZXZQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBhZ2U9e25leHRQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERpYWxvZ0FwaT17ZWRpdERpYWxvZ0FwaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuZD17dG9nZ2xlRXhwYW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ecm9wPXtvbkRyb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdENoYW5nZWQ9e29uU2VsZWN0Q2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUcmVlU2VydmljZT17cGFnZVRyZWVTZXJ2aWNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkU2V0SG92ZXJTdGF0ZT17ZGVib3VuY2VkU2V0SG92ZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdGVVcmw9e3NpdGVVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhZ2VzPXtzZWxlY3RlZFBhZ2VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvQXV0b1NpemVyPlxuICAgICAgICAgICAgICAgIDwvVGFibGU+XG4gICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5jb25zdCBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFID0gMjQ7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBWaXJ0dWFsTGlzdFBhZGRlciA9IGZvcndhcmRSZWY8YW55LCBhbnk+KCh7IHN0eWxlLCAuLi5yZXN0IH0sIHJlZikgPT4gKFxuICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgIGhlaWdodDogYCR7cGFyc2VGbG9hdChTdHJpbmcoc3R5bGU/LmhlaWdodCkpICsgVklSVFVBTF9MSVNUX1BBRERJTkdfU0laRSAqIDJ9cHhgLFxuICAgICAgICB9fVxuICAgICAgICB7Li4ucmVzdH1cbiAgICAvPlxuKSk7XG5cbmZ1bmN0aW9uIGdldExpbmtlZFBhZ2VzKHBhZ2VzOiBQYWdlVHJlZVBhZ2VbXSwgaW5kZXg6IG51bWJlcik6IFtQYWdlVHJlZVBhZ2UgfCB1bmRlZmluZWQsIFBhZ2VUcmVlUGFnZSwgUGFnZVRyZWVQYWdlIHwgdW5kZWZpbmVkXSB7XG4gICAgY29uc3QgcHJldlBhZ2UgPSBpbmRleCA+IDAgPyBwYWdlc1tpbmRleCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5leHRQYWdlID0gaW5kZXggKyAxIDwgcGFnZXMubGVuZ3RoID8gcGFnZXNbaW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gW3ByZXZQYWdlLCBwYWdlc1tpbmRleF0sIG5leHRQYWdlXTtcbn1cblxuY29uc3QgUGFnZVRyZWVXaXRoUmVmID0gZm9yd2FyZFJlZihQYWdlVHJlZSk7XG5cbmV4cG9ydCB7IFBhZ2VUcmVlV2l0aFJlZiBhcyBQYWdlVHJlZSwgUGFnZVRyZWVSZWZBcGkgfTtcblxuY29uc3QgUm9vdCA9IHN0eWxlZChcImRpdlwiKWBcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3QgVGFibGUgPSBzdHlsZWQoXCJkaXZcIilgXG4gICAgZmxleDogMTtcbmA7XG4iXX0= */",
|
|
474
|
+
styles: "height:100%;display:flex;flex-direction:column/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9wYWdlVHJlZS9QYWdlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbVowQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvcGFnZXMvcGFnZVRyZWUvUGFnZVRyZWUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlUXVlcnksIHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL2NsaWVudFwiO1xuaW1wb3J0IHsgdHlwZSBJRWRpdERpYWxvZ0FwaSwgVW5kb1NuYWNrYmFyLCB1c2VTbmFja2JhckFwaSB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCBpc0VxdWFsIGZyb20gXCJsb2Rhc2guaXNlcXVhbFwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIERpc3BhdGNoLFxuICAgIGZvcndhcmRSZWYsXG4gICAgdHlwZSBGb3J3YXJkUmVmUmVuZGVyRnVuY3Rpb24sXG4gICAgdHlwZSBTZXRTdGF0ZUFjdGlvbixcbiAgICB1c2VDYWxsYmFjayxcbiAgICB1c2VFZmZlY3QsXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgICB1c2VNZW1vLFxuICAgIHVzZVJlZixcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSBcInJlYWN0LWludGxcIjtcbmltcG9ydCBBdXRvU2l6ZXIsIHsgdHlwZSBTaXplIH0gZnJvbSBcInJlYWN0LXZpcnR1YWxpemVkLWF1dG8tc2l6ZXJcIjtcbmltcG9ydCB7IHR5cGUgQWxpZ24sIEZpeGVkU2l6ZUxpc3QgYXMgTGlzdCB9IGZyb20gXCJyZWFjdC13aW5kb3dcIjtcbmltcG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSBcInVzZS1kZWJvdW5jZVwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB0eXBlIEdRTFBhZ2VzUXVlcnksIHR5cGUgR1FMUGFnZXNRdWVyeVZhcmlhYmxlcyB9IGZyb20gXCIuLi9wYWdlc1BhZ2UvY3JlYXRlUGFnZXNRdWVyeVwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbixcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeSxcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcyxcbiAgICB0eXBlIEdRTFBhZ2VTbHVnUGF0aEZyYWdtZW50LFxuICAgIHR5cGUgR1FMUmVzZXRTbHVnTXV0YXRpb24sXG4gICAgdHlwZSBHUUxSZXNldFNsdWdNdXRhdGlvblZhcmlhYmxlcyxcbn0gZnJvbSBcIi4vUGFnZVRyZWUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgUGFnZVRyZWVEcmFnTGF5ZXIgZnJvbSBcIi4vUGFnZVRyZWVEcmFnTGF5ZXJcIjtcbmltcG9ydCBQYWdlVHJlZVJvdywgeyB0eXBlIERyb3BUYXJnZXQsIHR5cGUgUGFnZVRyZWVEcmFnT2JqZWN0IH0gZnJvbSBcIi4vUGFnZVRyZWVSb3dcIjtcbmltcG9ydCB7IHR5cGUgRHJvcEluZm8sIFBhZ2VUcmVlU2VydmljZSB9IGZyb20gXCIuL1BhZ2VUcmVlU2VydmljZVwiO1xuaW1wb3J0IHsgdXNlRG5kV2luZG93U2Nyb2xsIH0gZnJvbSBcIi4vdXNlRG5kV2luZG93U2Nyb2xsL3VzZURuZFdpbmRvd1Njcm9sbFwiO1xuaW1wb3J0IHsgdHlwZSBQYWdlVHJlZVBhZ2UgfSBmcm9tIFwiLi91c2VQYWdlVHJlZVwiO1xuXG5pbnRlcmZhY2UgUGFnZVRyZWVQcm9wcyB7XG4gICAgcGFnZXM6IFBhZ2VUcmVlUGFnZVtdO1xuICAgIGVkaXREaWFsb2dBcGk6IElFZGl0RGlhbG9nQXBpO1xuICAgIHRvZ2dsZUV4cGFuZDogKHBhZ2VJZDogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uU2VsZWN0Q2hhbmdlZDogKHBhZ2VJZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIHNpdGVVcmw6IHN0cmluZztcbn1cblxudHlwZSBQYWdlVHJlZVJlZkFwaSA9IHsgc2Nyb2xsVG9JdGVtOiBMaXN0W1wic2Nyb2xsVG9JdGVtXCJdIH07XG5cbmNvbnN0IG1vdmVQYWdlVHJlZU5vZGVzQnlQb3NpdGlvbk11dGF0aW9uID0gZ3FsYFxuICAgIG11dGF0aW9uIE1vdmVQYWdlVHJlZU5vZGVzQnlQb3MoJGlkczogW0lEIV0hLCAkaW5wdXQ6IE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NJbnB1dCEpIHtcbiAgICAgICAgbW92ZVBhZ2VUcmVlTm9kZXNCeVBvcyhpZHM6ICRpZHMsIGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBwYXJlbnRJZFxuICAgICAgICAgICAgcG9zXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBtb3ZlUGFnZVRyZWVOb2Rlc0J5TmVpZ2hib3Vyc011dGF0aW9uID0gZ3FsYFxuICAgIG11dGF0aW9uIE1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXIoJGlkczogW0lEIV0hLCAkaW5wdXQ6IE1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXJJbnB1dCEpIHtcbiAgICAgICAgbW92ZVBhZ2VUcmVlTm9kZXNCeU5laWdoYm91cihpZHM6ICRpZHMsIGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBwYXJlbnRJZFxuICAgICAgICAgICAgcG9zXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCByZXNldFNsdWdNdXRhdGlvbiA9IGdxbGBcbiAgICBtdXRhdGlvbiBSZXNldFNsdWcoJGlkOiBJRCEsICRzbHVnOiBTdHJpbmchKSB7XG4gICAgICAgIHVwZGF0ZVBhZ2VUcmVlTm9kZVNsdWcoaWQ6ICRpZCwgc2x1ZzogJHNsdWcpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBwYWdlc0NhY2hlUXVlcnkgPSBncWxgXG4gICAgcXVlcnkgUGFnZXNDYWNoZSgkY29udGVudFNjb3BlOiBQYWdlVHJlZU5vZGVTY29wZUlucHV0ISwgJGNhdGVnb3J5OiBTdHJpbmchKSB7XG4gICAgICAgIHBhZ2VzOiBwYWdlVHJlZU5vZGVMaXN0KHNjb3BlOiAkY29udGVudFNjb3BlLCBjYXRlZ29yeTogJGNhdGVnb3J5KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgcGFyZW50SWRcbiAgICAgICAgICAgIHBvc1xuICAgICAgICB9XG4gICAgfVxuYDtcblxuLy8gQFRPRE86IENhbGN1bGF0ZSBkeW5hbWljYWxseVxuY29uc3QgbGV2ZWxPZmZzZXRQeCA9IDUwO1xuXG5jb25zdCBQYWdlVHJlZTogRm9yd2FyZFJlZlJlbmRlckZ1bmN0aW9uPFBhZ2VUcmVlUmVmQXBpLCBQYWdlVHJlZVByb3BzPiA9IChcbiAgICB7IHBhZ2VzLCBlZGl0RGlhbG9nQXBpLCB0b2dnbGVFeHBhbmQsIG9uU2VsZWN0Q2hhbmdlZCwgY2F0ZWdvcnksIHNpdGVVcmwgfSxcbiAgICByZWYsXG4pID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSB1c2VBcG9sbG9DbGllbnQoKTtcbiAgICBjb25zdCBuZXdQYWdlSWRzID0gdXNlUmVmPHN0cmluZ1tdPihbXSk7XG5cbiAgICBjb25zdCBxdWVyaWVzID0gY2xpZW50LmdldE9ic2VydmFibGVRdWVyaWVzKCk7XG4gICAgY29uc3QgcGFnZXNRdWVyeSA9IEFycmF5LmZyb20ocXVlcmllcy52YWx1ZXMoKSkuZmluZCgocXVlcnkpID0+IHF1ZXJ5LnF1ZXJ5TmFtZSA9PT0gXCJQYWdlc1wiKSBhc1xuICAgICAgICB8IE9ic2VydmFibGVRdWVyeTxHUUxQYWdlc1F1ZXJ5LCBHUUxQYWdlc1F1ZXJ5VmFyaWFibGVzPlxuICAgICAgICB8IHVuZGVmaW5lZDtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwYWdlc1F1ZXJ5KSB7XG4gICAgICAgICAgICBjbGllbnQuY2FjaGUud2F0Y2g8R1FMUGFnZXNRdWVyeSwgR1FMUGFnZXNRdWVyeVZhcmlhYmxlcz4oe1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBwYWdlc1F1ZXJ5LnF1ZXJ5LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogcGFnZXNRdWVyeS52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgY2FsbGJhY2s6IChuZXdQYWdlc1F1ZXJ5LCBwcmV2aW91c1BhZ2VzUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhZ2VzUXVlcnkgJiYgcHJldmlvdXNQYWdlc1F1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1BhZ2VJZHMgPSBwcmV2aW91c1BhZ2VzUXVlcnkucmVzdWx0Py5wYWdlcz8ubWFwKChwYWdlKSA9PiBwYWdlLmlkKSA/PyBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhZ2VJZHMuY3VycmVudCA9IG5ld1BhZ2VzUXVlcnkucmVzdWx0Py5wYWdlcz8ubWFwKChwYWdlKSA9PiBwYWdlLmlkKS5maWx0ZXIoKGlkKSA9PiAhZXhpc3RpbmdQYWdlSWRzLmluY2x1ZGVzKGlkKSkgPz8gW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0IG5ld1BhZ2VJZHMgdG8gcHJldmVudCBzbGlkZUluIG9uIGV2ZXJ5IHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFnZUlkcy5jdXJyZW50ID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpYzogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW2NsaWVudC5jYWNoZSwgcGFnZXNRdWVyeV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5ld1BhZ2VJZHMuY3VycmVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhZ2VzLmZpbmRJbmRleCgocGFnZSkgPT4gbmV3UGFnZUlkcy5jdXJyZW50LmluY2x1ZGVzKHBhZ2UuaWQpKTtcbiAgICAgICAgICAgIHJlZkxpc3QuY3VycmVudD8uc2Nyb2xsVG9JdGVtKGluZGV4LCBcInNtYXJ0XCIpO1xuICAgICAgICB9XG4gICAgfSwgW3BhZ2VzXSk7XG5cbiAgICBjb25zdCBwYWdlVHJlZVNlcnZpY2UgPSB1c2VNZW1vKCgpID0+IG5ldyBQYWdlVHJlZVNlcnZpY2UobGV2ZWxPZmZzZXRQeCwgcGFnZXMpLCBbcGFnZXNdKTtcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB1c2VDb250ZW50U2NvcGUoKTtcbiAgICBjb25zdCBzbmFja2JhckFwaSA9IHVzZVNuYWNrYmFyQXBpKCk7XG5cbiAgICBjb25zdCBkZWJvdW5jZWRTZXRIb3ZlclN0YXRlID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soXG4gICAgICAgIChzZXRIb3ZlclN0YXRlOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxEcm9wSW5mbyB8IHVuZGVmaW5lZD4+LCBuZXdIb3ZlclN0YXRlOiBEcm9wSW5mbyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgICAgc2V0SG92ZXJTdGF0ZSgocHJldlN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwobmV3SG92ZXJTdGF0ZSwgcHJldlN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdIb3ZlclN0YXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICA1LFxuICAgICk7XG5cbiAgICBjb25zdCBzZWxlY3RlZFBhZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBwYWdlcy5maWx0ZXIoKHBhZ2UpID0+IHBhZ2Uuc2VsZWN0ZWQpO1xuICAgIH0sIFtwYWdlc10pO1xuXG4gICAgY29uc3QgbW92ZUJ5UG9zUmVxdWVzdCA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAvLyBAVE9ETzogaGFuZGxlIHBhdGggY29sbGlzaW9ucyB3aGVuIG1vdmluZyBwYWdlc1xuICAgICAgICBhc3luYyAoeyBpZHMsIHBhcmVudElkLCBwb3NpdGlvbiB9OiB7IGlkczogc3RyaW5nW107IHBhcmVudElkOiBzdHJpbmcgfCBudWxsOyBwb3NpdGlvbjogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5tdXRhdGUoe1xuICAgICAgICAgICAgICAgIG11dGF0aW9uOiBtb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zaXRpb25NdXRhdGlvbixcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWRzOiBpZHMsXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3M6IHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlOiAodmFyaWFibGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VUcmVlTm9kZXM6IEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbltcIm1vdmVQYWdlVHJlZU5vZGVzQnlQb3NcIl0gPSAodmFyaWFibGVzLmlkcyBhcyBzdHJpbmdbXSkubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGlkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNsdWdQYXRoUGFnZSA9IGNsaWVudC5jYWNoZS5yZWFkRnJhZ21lbnQ8R1FMUGFnZVNsdWdQYXRoRnJhZ21lbnQ+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudDogZ3FsYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQgUGFnZVNsdWdQYXRoIG9uIFBhZ2VUcmVlTm9kZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190eXBlbmFtZTogXCJQYWdlVHJlZU5vZGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogcG9zaXRpb24gKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogc2x1Z1BhdGhQYWdlPy5zbHVnID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHNsdWdQYXRoUGFnZT8ucGF0aCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zOiBwYWdlVHJlZU5vZGVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdXBkYXRlOiAocHJveHksIHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwYWdlIHBvc2l0aW9ucyBvZiBhbGwgb3RoZXIgcGFnZXRyZWUgbm9kZXMgYXJlIHVwZGF0ZWQgaW4gdGhlIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vID0+IHJlYWx0aW1lIHVwZGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3ZlZFBhZ2VUcmVlTm9kZXMgPSBkYXRhPy5tb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE1vdmVkUGFnZVRyZWVOb2RlID0gbW92ZWRQYWdlVHJlZU5vZGVzPy5bMF07XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW92ZWRQYWdlVHJlZU5vZGVzIHx8ICFmaXJzdE1vdmVkUGFnZVRyZWVOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlc1F1ZXJ5RGF0YSA9IHByb3h5LnJlYWRRdWVyeTxHUUxQYWdlc0NhY2hlUXVlcnksIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcz4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHBhZ2VzQ2FjaGVRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRTY29wZTogc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZXNEYXRhID0gcGFnZXNRdWVyeURhdGE/LnBhZ2VzID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkUGFnZXMgPSBwYWdlc0RhdGEubWFwKChwYWdlRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFBhZ2VEYXRhID0geyAuLi5wYWdlRGF0YSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpZHMuaW5jbHVkZXMocGFnZURhdGEuaWQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGEucGFyZW50SWQgPT09IGZpcnN0TW92ZWRQYWdlVHJlZU5vZGUucGFyZW50SWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YS5wb3MgPj0gZmlyc3RNb3ZlZFBhZ2VUcmVlTm9kZS5wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRQYWdlRGF0YS5wb3MgPSB1cGRhdGVkUGFnZURhdGEucG9zICsgbW92ZWRQYWdlVHJlZU5vZGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRQYWdlRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHByb3h5LndyaXRlUXVlcnkoeyBxdWVyeTogcGFnZXNDYWNoZVF1ZXJ5LCBkYXRhOiB7IHBhZ2VzOiB1cGRhdGVkUGFnZXMgfSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtjbGllbnQsIHNjb3BlLCBjYXRlZ29yeV0sXG4gICAgKTtcblxuICAgIGNvbnN0IG1vdmVCeU5laWdoYm91clJlcXVlc3QgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKHsgaWRzLCBwYXJlbnRJZCwgYWZ0ZXJJZCwgYmVmb3JlSWQgfTogeyBpZHM6IHN0cmluZ1tdOyBwYXJlbnRJZDogc3RyaW5nIHwgbnVsbDsgYWZ0ZXJJZDogc3RyaW5nIHwgbnVsbDsgYmVmb3JlSWQ6IHN0cmluZyB8IG51bGwgfSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgY2xpZW50Lm11dGF0ZSh7XG4gICAgICAgICAgICAgICAgbXV0YXRpb246IG1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXJzTXV0YXRpb24sXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkczogaWRzLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJJZDogYWZ0ZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZUlkOiBiZWZvcmVJZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtjbGllbnRdLFxuICAgICk7XG5cbiAgICBjb25zdCBvbkRyb3AgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGRyYWdPYmplY3Q6IFBhZ2VUcmVlRHJhZ09iamVjdCwgZHJvcFRhcmdldFBhZ2U6IFBhZ2VUcmVlUGFnZSwgZHJvcFRhcmdldDogRHJvcFRhcmdldCwgdGFyZ2V0TGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQYWdlSWRzID0gc2VsZWN0ZWRQYWdlcy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpO1xuICAgICAgICAgICAgbGV0IHBhZ2VzVG9Nb3ZlOiBQYWdlVHJlZVBhZ2VbXTtcbiAgICAgICAgICAgIGxldCBpZHNUb01vdmU6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRQYWdlSWRzLmluY2x1ZGVzKGRyYWdPYmplY3QuaWQpKSB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIG91dCBzdWJwYWdlcyBpZiB0aGVpciBwYXJlbnQgaXMgc2VsZWN0ZWQgPT4gb25seSB0aGUgcGFyZW50IGhhcyB0byBiZSBtb3ZlZFxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkU2VsZWN0ZWRQYWdlcyA9IHNlbGVjdGVkUGFnZXMuZmlsdGVyKChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlLnBhcmVudElkID09PSBudWxsIHx8ICFzZWxlY3RlZFBhZ2VJZHMuaW5jbHVkZXMocGFnZS5wYXJlbnRJZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWRzVG9Nb3ZlID0gZmlsdGVyZWRTZWxlY3RlZFBhZ2VzLm1hcCgocGFnZSkgPT4gcGFnZS5pZCk7XG5cbiAgICAgICAgICAgICAgICBwYWdlc1RvTW92ZSA9IGZpbHRlcmVkU2VsZWN0ZWRQYWdlcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWRzVG9Nb3ZlID0gW2RyYWdPYmplY3QuaWRdO1xuICAgICAgICAgICAgICAgIHBhZ2VzVG9Nb3ZlID0gW2RyYWdPYmplY3RdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVJbmZvID0gcGFnZVRyZWVTZXJ2aWNlLmRyb3BBbGxvd2VkKHBhZ2VzVG9Nb3ZlLCBkcm9wVGFyZ2V0UGFnZSwgZHJvcFRhcmdldCwgdGFyZ2V0TGV2ZWwpO1xuICAgICAgICAgICAgaWYgKCF1cGRhdGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhd2FpdCBtb3ZlQnlQb3NSZXF1ZXN0KHsgaWRzOiBpZHNUb01vdmUsIHBhcmVudElkOiB1cGRhdGVJbmZvLnBhcmVudElkLCBwb3NpdGlvbjogdXBkYXRlSW5mby5wb3NpdGlvbiB9KTtcblxuICAgICAgICAgICAgc25hY2tiYXJBcGkuc2hvd1NuYWNrYmFyKFxuICAgICAgICAgICAgICAgIDxVbmRvU25hY2tiYXJcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT17PEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5wYWdldHJlZS5wYWdlTW92ZWRcIiBkZWZhdWx0TWVzc2FnZT1cIlBhZ2UgTW92ZWRcIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZD17eyBwcmV2aW91c1BhZ2VzOiBwYWdlcywgcGFnZXNUb1VuZG86IHBhZ2VzVG9Nb3ZlIH19XG4gICAgICAgICAgICAgICAgICAgIG9uVW5kb0NsaWNrPXthc3luYyAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZpb3VzUGFnZXMsIHBhZ2VzVG9VbmRvIH0gPSBwYXlsb2FkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRpc2FsbG93ZWRSZWZlcmVuY2VzID0gWy4uLnBhZ2VzVG9VbmRvXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZVRvVW5kbyBvZiBwYWdlc1RvVW5kbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVJbmZvID0gcGFnZVRyZWVTZXJ2aWNlLmdldFVuZG9VcGRhdGVJbmZvKHByZXZpb3VzUGFnZXMsIHBhZ2VUb1VuZG8sIGRpc2FsbG93ZWRSZWZlcmVuY2VzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkczogW3BhZ2VUb1VuZG8uaWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhZ2VUb1VuZG8ucGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlcklkOiB1cGRhdGVJbmZvLmFmdGVySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVJZDogdXBkYXRlSW5mby5iZWZvcmVJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50Lm11dGF0ZTxHUUxSZXNldFNsdWdNdXRhdGlvbiwgR1FMUmVzZXRTbHVnTXV0YXRpb25WYXJpYWJsZXM+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0aW9uOiByZXNldFNsdWdNdXRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwYWdlVG9VbmRvLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHBhZ2VUb1VuZG8uc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FsbG93ZWRSZWZlcmVuY2VzID0gZGlzYWxsb3dlZFJlZmVyZW5jZXMuZmlsdGVyKChwYWdlKSA9PiBwYWdlLmlkICE9PSBwYWdlVG9VbmRvLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQucmVmZXRjaFF1ZXJpZXMoeyBpbmNsdWRlOiBbXCJQYWdlc1wiXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIFtzZWxlY3RlZFBhZ2VzLCBwYWdlVHJlZVNlcnZpY2UsIHBhZ2VzLCBtb3ZlQnlQb3NSZXF1ZXN0LCBzbmFja2JhckFwaSwgY2xpZW50LCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0XSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVmTGlzdCA9IHVzZVJlZjxMaXN0PihudWxsKTtcbiAgICAvLyBleHBvc2UgdGhpcyBtZXRob2QgdG8gdGhlIHB1YmxpY1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBzY3JvbGxUb0l0ZW06IChpbmRleDogbnVtYmVyLCBhbGlnbj86IEFsaWduKSA9PiB7XG4gICAgICAgICAgICByZWZMaXN0LmN1cnJlbnQ/LnNjcm9sbFRvSXRlbShpbmRleCwgYWxpZ24pO1xuICAgICAgICB9LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHByb3BzRm9yVmlydHVhbExpc3QgPSB1c2VEbmRXaW5kb3dTY3JvbGwoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8UGFnZVRyZWVEcmFnTGF5ZXIgbnVtYmVyU2VsZWN0ZWRQYWdlcz17c2VsZWN0ZWRQYWdlcy5sZW5ndGh9IC8+XG4gICAgICAgICAgICA8Um9vdD5cbiAgICAgICAgICAgICAgICA8VGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxBdXRvU2l6ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7KHsgaGVpZ2h0LCB3aWR0aCB9OiBTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE86IGFkanVzdCBpdGVtU2l6ZSBmb3Igc21hbGxlciBzY3JlZW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3JlZkxpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17cGFnZXMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNpemU9ezUxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnNjYW5Db3VudD17MX0gLy8gZG8gbm90IGluY3JlYXNlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHNjcm9sbEJlaGF2aW9yOiBcInNtb290aFwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckVsZW1lbnRUeXBlPXtWaXJ0dWFsTGlzdFBhZGRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc0ZvclZpcnR1YWxMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaW5kZXgsIHN0eWxlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbcHJldlBhZ2UsIHBhZ2UsIG5leHRQYWdlXSA9IGdldExpbmtlZFBhZ2VzKHBhZ2VzLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBhZ2VUcmVlUm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BhZ2UuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsaXplZFN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtwYXJzZUZsb2F0KFN0cmluZyhzdHlsZT8udG9wKSkgKyBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUluPXtuZXdQYWdlSWRzLmN1cnJlbnQuaW5jbHVkZXMocGFnZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlPXtwYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBhZ2U9e3ByZXZQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBhZ2U9e25leHRQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERpYWxvZ0FwaT17ZWRpdERpYWxvZ0FwaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuZD17dG9nZ2xlRXhwYW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ecm9wPXtvbkRyb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdENoYW5nZWQ9e29uU2VsZWN0Q2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUcmVlU2VydmljZT17cGFnZVRyZWVTZXJ2aWNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkU2V0SG92ZXJTdGF0ZT17ZGVib3VuY2VkU2V0SG92ZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdGVVcmw9e3NpdGVVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhZ2VzPXtzZWxlY3RlZFBhZ2VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvQXV0b1NpemVyPlxuICAgICAgICAgICAgICAgIDwvVGFibGU+XG4gICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5jb25zdCBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFID0gMjQ7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBWaXJ0dWFsTGlzdFBhZGRlciA9IGZvcndhcmRSZWY8YW55LCBhbnk+KCh7IHN0eWxlLCAuLi5yZXN0IH0sIHJlZikgPT4gKFxuICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgIGhlaWdodDogYCR7cGFyc2VGbG9hdChTdHJpbmcoc3R5bGU/LmhlaWdodCkpICsgVklSVFVBTF9MSVNUX1BBRERJTkdfU0laRSAqIDJ9cHhgLFxuICAgICAgICB9fVxuICAgICAgICB7Li4ucmVzdH1cbiAgICAvPlxuKSk7XG5cbmZ1bmN0aW9uIGdldExpbmtlZFBhZ2VzKHBhZ2VzOiBQYWdlVHJlZVBhZ2VbXSwgaW5kZXg6IG51bWJlcik6IFtQYWdlVHJlZVBhZ2UgfCB1bmRlZmluZWQsIFBhZ2VUcmVlUGFnZSwgUGFnZVRyZWVQYWdlIHwgdW5kZWZpbmVkXSB7XG4gICAgY29uc3QgcHJldlBhZ2UgPSBpbmRleCA+IDAgPyBwYWdlc1tpbmRleCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5leHRQYWdlID0gaW5kZXggKyAxIDwgcGFnZXMubGVuZ3RoID8gcGFnZXNbaW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gW3ByZXZQYWdlLCBwYWdlc1tpbmRleF0sIG5leHRQYWdlXTtcbn1cblxuY29uc3QgUGFnZVRyZWVXaXRoUmVmID0gZm9yd2FyZFJlZihQYWdlVHJlZSk7XG5cbmV4cG9ydCB7IFBhZ2VUcmVlV2l0aFJlZiBhcyBQYWdlVHJlZSwgUGFnZVRyZWVSZWZBcGkgfTtcblxuY29uc3QgUm9vdCA9IHN0eWxlZChcImRpdlwiKWBcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3QgVGFibGUgPSBzdHlsZWQoXCJkaXZcIilgXG4gICAgZmxleDogMTtcbmA7XG4iXX0= */",
|
|
475
475
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
476
476
|
});
|
|
477
477
|
var Table = /*#__PURE__*/(0, _styles.styled)("div", process.env.NODE_ENV === "production" ? {
|
|
@@ -484,6 +484,6 @@ var Table = /*#__PURE__*/(0, _styles.styled)("div", process.env.NODE_ENV === "pr
|
|
|
484
484
|
styles: "flex:1"
|
|
485
485
|
} : {
|
|
486
486
|
name: "82a6rk",
|
|
487
|
-
styles: "flex:1/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9wYWdlVHJlZS9QYWdlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeVoyQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvcGFnZXMvcGFnZVRyZWUvUGFnZVRyZWUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlUXVlcnksIHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL2NsaWVudFwiO1xuaW1wb3J0IHsgdHlwZSBJRWRpdERpYWxvZ0FwaSwgVW5kb1NuYWNrYmFyLCB1c2VTbmFja2JhckFwaSB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCBpc0VxdWFsIGZyb20gXCJsb2Rhc2guaXNlcXVhbFwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIERpc3BhdGNoLFxuICAgIGZvcndhcmRSZWYsXG4gICAgdHlwZSBGb3J3YXJkUmVmUmVuZGVyRnVuY3Rpb24sXG4gICAgdHlwZSBTZXRTdGF0ZUFjdGlvbixcbiAgICB1c2VDYWxsYmFjayxcbiAgICB1c2VFZmZlY3QsXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgICB1c2VNZW1vLFxuICAgIHVzZVJlZixcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSBcInJlYWN0LWludGxcIjtcbmltcG9ydCBBdXRvU2l6ZXIsIHsgdHlwZSBTaXplIH0gZnJvbSBcInJlYWN0LXZpcnR1YWxpemVkLWF1dG8tc2l6ZXJcIjtcbmltcG9ydCB7IHR5cGUgQWxpZ24sIEZpeGVkU2l6ZUxpc3QgYXMgTGlzdCB9IGZyb20gXCJyZWFjdC13aW5kb3dcIjtcbmltcG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSBcInVzZS1kZWJvdW5jZVwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB0eXBlIEdRTFBhZ2VzUXVlcnksIHR5cGUgR1FMUGFnZXNRdWVyeVZhcmlhYmxlcyB9IGZyb20gXCIuLi9wYWdlc1BhZ2UvY3JlYXRlUGFnZXNRdWVyeVwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbixcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeSxcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcyxcbiAgICB0eXBlIEdRTFBhZ2VTbHVnUGF0aEZyYWdtZW50LFxuICAgIHR5cGUgR1FMUmVzZXRTbHVnTXV0YXRpb24sXG4gICAgdHlwZSBHUUxSZXNldFNsdWdNdXRhdGlvblZhcmlhYmxlcyxcbn0gZnJvbSBcIi4vUGFnZVRyZWUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgUGFnZVRyZWVEcmFnTGF5ZXIgZnJvbSBcIi4vUGFnZVRyZWVEcmFnTGF5ZXJcIjtcbmltcG9ydCBQYWdlVHJlZVJvdywgeyB0eXBlIERyb3BUYXJnZXQsIHR5cGUgUGFnZVRyZWVEcmFnT2JqZWN0IH0gZnJvbSBcIi4vUGFnZVRyZWVSb3dcIjtcbmltcG9ydCB7IHR5cGUgRHJvcEluZm8sIFBhZ2VUcmVlU2VydmljZSB9IGZyb20gXCIuL1BhZ2VUcmVlU2VydmljZVwiO1xuaW1wb3J0IHsgdXNlRG5kV2luZG93U2Nyb2xsIH0gZnJvbSBcIi4vdXNlRG5kV2luZG93U2Nyb2xsL3VzZURuZFdpbmRvd1Njcm9sbFwiO1xuaW1wb3J0IHsgdHlwZSBQYWdlVHJlZVBhZ2UgfSBmcm9tIFwiLi91c2VQYWdlVHJlZVwiO1xuXG5pbnRlcmZhY2UgUGFnZVRyZWVQcm9wcyB7XG4gICAgcGFnZXM6IFBhZ2VUcmVlUGFnZVtdO1xuICAgIGVkaXREaWFsb2dBcGk6IElFZGl0RGlhbG9nQXBpO1xuICAgIHRvZ2dsZUV4cGFuZDogKHBhZ2VJZDogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uU2VsZWN0Q2hhbmdlZDogKHBhZ2VJZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIHNpdGVVcmw6IHN0cmluZztcbn1cblxudHlwZSBQYWdlVHJlZVJlZkFwaSA9IHsgc2Nyb2xsVG9JdGVtOiBMaXN0W1wic2Nyb2xsVG9JdGVtXCJdIH07XG5cbmNvbnN0IE1PVkVfUEFHRV9UUkVFX05PREVTX0JZX1BPUyA9IGdxbGBcbiAgICBtdXRhdGlvbiBNb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zKCRpZHM6IFtJRCFdISwgJGlucHV0OiBNb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zSW5wdXQhKSB7XG4gICAgICAgIG1vdmVQYWdlVHJlZU5vZGVzQnlQb3MoaWRzOiAkaWRzLCBpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgcGFyZW50SWRcbiAgICAgICAgICAgIHBvc1xuICAgICAgICAgICAgc2x1Z1xuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9XG4gICAgfVxuYDtcblxuY29uc3QgTU9WRV9QQUdFX1RSRUVfTk9ERVNfQllfTkVJR0hCT1VSUyA9IGdxbGBcbiAgICBtdXRhdGlvbiBNb3ZlUGFnZVRyZWVOb2Rlc0J5TmVpZ2hib3VyKCRpZHM6IFtJRCFdISwgJGlucHV0OiBNb3ZlUGFnZVRyZWVOb2Rlc0J5TmVpZ2hib3VySW5wdXQhKSB7XG4gICAgICAgIG1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXIoaWRzOiAkaWRzLCBpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgcGFyZW50SWRcbiAgICAgICAgICAgIHBvc1xuICAgICAgICAgICAgc2x1Z1xuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9XG4gICAgfVxuYDtcblxuY29uc3QgUkVTRVRfU0xVRyA9IGdxbGBcbiAgICBtdXRhdGlvbiBSZXNldFNsdWcoJGlkOiBJRCEsICRzbHVnOiBTdHJpbmchKSB7XG4gICAgICAgIHVwZGF0ZVBhZ2VUcmVlTm9kZVNsdWcoaWQ6ICRpZCwgc2x1ZzogJHNsdWcpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBQQUdFU19DQUNIRV9RVUVSWSA9IGdxbGBcbiAgICBxdWVyeSBQYWdlc0NhY2hlKCRjb250ZW50U2NvcGU6IFBhZ2VUcmVlTm9kZVNjb3BlSW5wdXQhLCAkY2F0ZWdvcnk6IFN0cmluZyEpIHtcbiAgICAgICAgcGFnZXM6IHBhZ2VUcmVlTm9kZUxpc3Qoc2NvcGU6ICRjb250ZW50U2NvcGUsIGNhdGVnb3J5OiAkY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBwYXJlbnRJZFxuICAgICAgICAgICAgcG9zXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG4vLyBAVE9ETzogQ2FsY3VsYXRlIGR5bmFtaWNhbGx5XG5jb25zdCBsZXZlbE9mZnNldFB4ID0gNTA7XG5cbmNvbnN0IFBhZ2VUcmVlOiBGb3J3YXJkUmVmUmVuZGVyRnVuY3Rpb248UGFnZVRyZWVSZWZBcGksIFBhZ2VUcmVlUHJvcHM+ID0gKFxuICAgIHsgcGFnZXMsIGVkaXREaWFsb2dBcGksIHRvZ2dsZUV4cGFuZCwgb25TZWxlY3RDaGFuZ2VkLCBjYXRlZ29yeSwgc2l0ZVVybCB9LFxuICAgIHJlZixcbikgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IHVzZUFwb2xsb0NsaWVudCgpO1xuICAgIGNvbnN0IG5ld1BhZ2VJZHMgPSB1c2VSZWY8c3RyaW5nW10+KFtdKTtcblxuICAgIGNvbnN0IHF1ZXJpZXMgPSBjbGllbnQuZ2V0T2JzZXJ2YWJsZVF1ZXJpZXMoKTtcbiAgICBjb25zdCBwYWdlc1F1ZXJ5ID0gQXJyYXkuZnJvbShxdWVyaWVzLnZhbHVlcygpKS5maW5kKChxdWVyeSkgPT4gcXVlcnkucXVlcnlOYW1lID09PSBcIlBhZ2VzXCIpIGFzXG4gICAgICAgIHwgT2JzZXJ2YWJsZVF1ZXJ5PEdRTFBhZ2VzUXVlcnksIEdRTFBhZ2VzUXVlcnlWYXJpYWJsZXM+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHBhZ2VzUXVlcnkpIHtcbiAgICAgICAgICAgIGNsaWVudC5jYWNoZS53YXRjaDxHUUxQYWdlc1F1ZXJ5LCBHUUxQYWdlc1F1ZXJ5VmFyaWFibGVzPih7XG4gICAgICAgICAgICAgICAgcXVlcnk6IHBhZ2VzUXVlcnkucXVlcnksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBwYWdlc1F1ZXJ5LnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogKG5ld1BhZ2VzUXVlcnksIHByZXZpb3VzUGFnZXNRdWVyeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFnZXNRdWVyeSAmJiBwcmV2aW91c1BhZ2VzUXVlcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUGFnZUlkcyA9IHByZXZpb3VzUGFnZXNRdWVyeS5yZXN1bHQ/LnBhZ2VzPy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFnZUlkcy5jdXJyZW50ID0gbmV3UGFnZXNRdWVyeS5yZXN1bHQ/LnBhZ2VzPy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpLmZpbHRlcigoaWQpID0+ICFleGlzdGluZ1BhZ2VJZHMuaW5jbHVkZXMoaWQpKSA/PyBbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgbmV3UGFnZUlkcyB0byBwcmV2ZW50IHNsaWRlSW4gb24gZXZlcnkgcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYWdlSWRzLmN1cnJlbnQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpbWlzdGljOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbY2xpZW50LmNhY2hlLCBwYWdlc1F1ZXJ5XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmV3UGFnZUlkcy5jdXJyZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFnZXMuZmluZEluZGV4KChwYWdlKSA9PiBuZXdQYWdlSWRzLmN1cnJlbnQuaW5jbHVkZXMocGFnZS5pZCkpO1xuICAgICAgICAgICAgcmVmTGlzdC5jdXJyZW50Py5zY3JvbGxUb0l0ZW0oaW5kZXgsIFwic21hcnRcIik7XG4gICAgICAgIH1cbiAgICB9LCBbcGFnZXNdKTtcblxuICAgIGNvbnN0IHBhZ2VUcmVlU2VydmljZSA9IHVzZU1lbW8oKCkgPT4gbmV3IFBhZ2VUcmVlU2VydmljZShsZXZlbE9mZnNldFB4LCBwYWdlcyksIFtwYWdlc10pO1xuICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgIGNvbnN0IHNuYWNrYmFyQXBpID0gdXNlU25hY2tiYXJBcGkoKTtcblxuICAgIGNvbnN0IGRlYm91bmNlZFNldEhvdmVyU3RhdGUgPSB1c2VEZWJvdW5jZWRDYWxsYmFjayhcbiAgICAgICAgKHNldEhvdmVyU3RhdGU6IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPERyb3BJbmZvIHwgdW5kZWZpbmVkPj4sIG5ld0hvdmVyU3RhdGU6IERyb3BJbmZvIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgICBzZXRIb3ZlclN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNFcXVhbChuZXdIb3ZlclN0YXRlLCBwcmV2U3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld0hvdmVyU3RhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIDUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdGVkUGFnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gcGFnZS5zZWxlY3RlZCk7XG4gICAgfSwgW3BhZ2VzXSk7XG5cbiAgICBjb25zdCBtb3ZlQnlQb3NSZXF1ZXN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIC8vIEBUT0RPOiBoYW5kbGUgcGF0aCBjb2xsaXNpb25zIHdoZW4gbW92aW5nIHBhZ2VzXG4gICAgICAgIGFzeW5jICh7IGlkcywgcGFyZW50SWQsIHBvc2l0aW9uIH06IHsgaWRzOiBzdHJpbmdbXTsgcGFyZW50SWQ6IHN0cmluZyB8IG51bGw7IHBvc2l0aW9uOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgY2xpZW50Lm11dGF0ZSh7XG4gICAgICAgICAgICAgICAgbXV0YXRpb246IE1PVkVfUEFHRV9UUkVFX05PREVTX0JZX1BPUyxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWRzOiBpZHMsXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3M6IHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlOiAodmFyaWFibGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VUcmVlTm9kZXM6IEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbltcIm1vdmVQYWdlVHJlZU5vZGVzQnlQb3NcIl0gPSAodmFyaWFibGVzLmlkcyBhcyBzdHJpbmdbXSkubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGlkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNsdWdQYXRoUGFnZSA9IGNsaWVudC5jYWNoZS5yZWFkRnJhZ21lbnQ8R1FMUGFnZVNsdWdQYXRoRnJhZ21lbnQ+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudDogZ3FsYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQgUGFnZVNsdWdQYXRoIG9uIFBhZ2VUcmVlTm9kZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190eXBlbmFtZTogXCJQYWdlVHJlZU5vZGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogcG9zaXRpb24gKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogc2x1Z1BhdGhQYWdlPy5zbHVnID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHNsdWdQYXRoUGFnZT8ucGF0aCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zOiBwYWdlVHJlZU5vZGVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdXBkYXRlOiAocHJveHksIHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwYWdlIHBvc2l0aW9ucyBvZiBhbGwgb3RoZXIgcGFnZXRyZWUgbm9kZXMgYXJlIHVwZGF0ZWQgaW4gdGhlIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vID0+IHJlYWx0aW1lIHVwZGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3ZlZFBhZ2VUcmVlTm9kZXMgPSBkYXRhPy5tb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE1vdmVkUGFnZVRyZWVOb2RlID0gbW92ZWRQYWdlVHJlZU5vZGVzPy5bMF07XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW92ZWRQYWdlVHJlZU5vZGVzIHx8ICFmaXJzdE1vdmVkUGFnZVRyZWVOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlc1F1ZXJ5RGF0YSA9IHByb3h5LnJlYWRRdWVyeTxHUUxQYWdlc0NhY2hlUXVlcnksIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcz4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IFBBR0VTX0NBQ0hFX1FVRVJZLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFNjb3BlOiBzY29wZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlc0RhdGEgPSBwYWdlc1F1ZXJ5RGF0YT8ucGFnZXMgPz8gW107XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRQYWdlcyA9IHBhZ2VzRGF0YS5tYXAoKHBhZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkUGFnZURhdGEgPSB7IC4uLnBhZ2VEYXRhIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlkcy5pbmNsdWRlcyhwYWdlRGF0YS5pZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YS5wYXJlbnRJZCA9PT0gZmlyc3RNb3ZlZFBhZ2VUcmVlTm9kZS5wYXJlbnRJZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhLnBvcyA+PSBmaXJzdE1vdmVkUGFnZVRyZWVOb2RlLnBvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZFBhZ2VEYXRhLnBvcyA9IHVwZGF0ZWRQYWdlRGF0YS5wb3MgKyBtb3ZlZFBhZ2VUcmVlTm9kZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZFBhZ2VEYXRhO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcHJveHkud3JpdGVRdWVyeSh7IHF1ZXJ5OiBQQUdFU19DQUNIRV9RVUVSWSwgZGF0YTogeyBwYWdlczogdXBkYXRlZFBhZ2VzIH0gfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbY2xpZW50LCBzY29wZSwgY2F0ZWdvcnldLFxuICAgICk7XG5cbiAgICBjb25zdCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jICh7IGlkcywgcGFyZW50SWQsIGFmdGVySWQsIGJlZm9yZUlkIH06IHsgaWRzOiBzdHJpbmdbXTsgcGFyZW50SWQ6IHN0cmluZyB8IG51bGw7IGFmdGVySWQ6IHN0cmluZyB8IG51bGw7IGJlZm9yZUlkOiBzdHJpbmcgfCBudWxsIH0pID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5tdXRhdGUoe1xuICAgICAgICAgICAgICAgIG11dGF0aW9uOiBNT1ZFX1BBR0VfVFJFRV9OT0RFU19CWV9ORUlHSEJPVVJTLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICBpZHM6IGlkcyxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVySWQ6IGFmdGVySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVJZDogYmVmb3JlSWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbY2xpZW50XSxcbiAgICApO1xuXG4gICAgY29uc3Qgb25Ecm9wID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jIChkcmFnT2JqZWN0OiBQYWdlVHJlZURyYWdPYmplY3QsIGRyb3BUYXJnZXRQYWdlOiBQYWdlVHJlZVBhZ2UsIGRyb3BUYXJnZXQ6IERyb3BUYXJnZXQsIHRhcmdldExldmVsOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFnZUlkcyA9IHNlbGVjdGVkUGFnZXMubWFwKChwYWdlKSA9PiBwYWdlLmlkKTtcbiAgICAgICAgICAgIGxldCBwYWdlc1RvTW92ZTogUGFnZVRyZWVQYWdlW107XG4gICAgICAgICAgICBsZXQgaWRzVG9Nb3ZlOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUGFnZUlkcy5pbmNsdWRlcyhkcmFnT2JqZWN0LmlkKSkge1xuICAgICAgICAgICAgICAgIC8vIGZpbHRlciBvdXQgc3VicGFnZXMgaWYgdGhlaXIgcGFyZW50IGlzIHNlbGVjdGVkID0+IG9ubHkgdGhlIHBhcmVudCBoYXMgdG8gYmUgbW92ZWRcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFNlbGVjdGVkUGFnZXMgPSBzZWxlY3RlZFBhZ2VzLmZpbHRlcigocGFnZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFnZS5wYXJlbnRJZCA9PT0gbnVsbCB8fCAhc2VsZWN0ZWRQYWdlSWRzLmluY2x1ZGVzKHBhZ2UucGFyZW50SWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlkc1RvTW92ZSA9IGZpbHRlcmVkU2VsZWN0ZWRQYWdlcy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpO1xuXG4gICAgICAgICAgICAgICAgcGFnZXNUb01vdmUgPSBmaWx0ZXJlZFNlbGVjdGVkUGFnZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlkc1RvTW92ZSA9IFtkcmFnT2JqZWN0LmlkXTtcbiAgICAgICAgICAgICAgICBwYWdlc1RvTW92ZSA9IFtkcmFnT2JqZWN0XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdXBkYXRlSW5mbyA9IHBhZ2VUcmVlU2VydmljZS5kcm9wQWxsb3dlZChwYWdlc1RvTW92ZSwgZHJvcFRhcmdldFBhZ2UsIGRyb3BUYXJnZXQsIHRhcmdldExldmVsKTtcbiAgICAgICAgICAgIGlmICghdXBkYXRlSW5mbykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgbW92ZUJ5UG9zUmVxdWVzdCh7IGlkczogaWRzVG9Nb3ZlLCBwYXJlbnRJZDogdXBkYXRlSW5mby5wYXJlbnRJZCwgcG9zaXRpb246IHVwZGF0ZUluZm8ucG9zaXRpb24gfSk7XG5cbiAgICAgICAgICAgIHNuYWNrYmFyQXBpLnNob3dTbmFja2JhcihcbiAgICAgICAgICAgICAgICA8VW5kb1NuYWNrYmFyXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9ezxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiY29tZXQucGFnZXRyZWUucGFnZU1vdmVkXCIgZGVmYXVsdE1lc3NhZ2U9XCJQYWdlIE1vdmVkXCIgLz59XG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ9e3sgcHJldmlvdXNQYWdlczogcGFnZXMsIHBhZ2VzVG9VbmRvOiBwYWdlc1RvTW92ZSB9fVxuICAgICAgICAgICAgICAgICAgICBvblVuZG9DbGljaz17YXN5bmMgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwcmV2aW91c1BhZ2VzLCBwYWdlc1RvVW5kbyB9ID0gcGF5bG9hZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkaXNhbGxvd2VkUmVmZXJlbmNlcyA9IFsuLi5wYWdlc1RvVW5kb107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBhZ2VUb1VuZG8gb2YgcGFnZXNUb1VuZG8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSW5mbyA9IHBhZ2VUcmVlU2VydmljZS5nZXRVbmRvVXBkYXRlSW5mbyhwcmV2aW91c1BhZ2VzLCBwYWdlVG9VbmRvLCBkaXNhbGxvd2VkUmVmZXJlbmNlcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbW92ZUJ5TmVpZ2hib3VyUmVxdWVzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM6IFtwYWdlVG9VbmRvLmlkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYWdlVG9VbmRvLnBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJJZDogdXBkYXRlSW5mby5hZnRlcklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlSWQ6IHVwZGF0ZUluZm8uYmVmb3JlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5tdXRhdGU8R1FMUmVzZXRTbHVnTXV0YXRpb24sIEdRTFJlc2V0U2x1Z011dGF0aW9uVmFyaWFibGVzPih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbjogUkVTRVRfU0xVRyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwYWdlVG9VbmRvLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHBhZ2VUb1VuZG8uc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FsbG93ZWRSZWZlcmVuY2VzID0gZGlzYWxsb3dlZFJlZmVyZW5jZXMuZmlsdGVyKChwYWdlKSA9PiBwYWdlLmlkICE9PSBwYWdlVG9VbmRvLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQucmVmZXRjaFF1ZXJpZXMoeyBpbmNsdWRlOiBbXCJQYWdlc1wiXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIFtzZWxlY3RlZFBhZ2VzLCBwYWdlVHJlZVNlcnZpY2UsIHBhZ2VzLCBtb3ZlQnlQb3NSZXF1ZXN0LCBzbmFja2JhckFwaSwgY2xpZW50LCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0XSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVmTGlzdCA9IHVzZVJlZjxMaXN0PihudWxsKTtcbiAgICAvLyBleHBvc2UgdGhpcyBtZXRob2QgdG8gdGhlIHB1YmxpY1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBzY3JvbGxUb0l0ZW06IChpbmRleDogbnVtYmVyLCBhbGlnbj86IEFsaWduKSA9PiB7XG4gICAgICAgICAgICByZWZMaXN0LmN1cnJlbnQ/LnNjcm9sbFRvSXRlbShpbmRleCwgYWxpZ24pO1xuICAgICAgICB9LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHByb3BzRm9yVmlydHVhbExpc3QgPSB1c2VEbmRXaW5kb3dTY3JvbGwoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8UGFnZVRyZWVEcmFnTGF5ZXIgbnVtYmVyU2VsZWN0ZWRQYWdlcz17c2VsZWN0ZWRQYWdlcy5sZW5ndGh9IC8+XG4gICAgICAgICAgICA8Um9vdD5cbiAgICAgICAgICAgICAgICA8VGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxBdXRvU2l6ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7KHsgaGVpZ2h0LCB3aWR0aCB9OiBTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE86IGFkanVzdCBpdGVtU2l6ZSBmb3Igc21hbGxlciBzY3JlZW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3JlZkxpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17cGFnZXMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNpemU9ezUxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnNjYW5Db3VudD17MX0gLy8gZG8gbm90IGluY3JlYXNlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHNjcm9sbEJlaGF2aW9yOiBcInNtb290aFwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckVsZW1lbnRUeXBlPXtWaXJ0dWFsTGlzdFBhZGRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc0ZvclZpcnR1YWxMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaW5kZXgsIHN0eWxlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbcHJldlBhZ2UsIHBhZ2UsIG5leHRQYWdlXSA9IGdldExpbmtlZFBhZ2VzKHBhZ2VzLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBhZ2VUcmVlUm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BhZ2UuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsaXplZFN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtwYXJzZUZsb2F0KFN0cmluZyhzdHlsZT8udG9wKSkgKyBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUluPXtuZXdQYWdlSWRzLmN1cnJlbnQuaW5jbHVkZXMocGFnZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlPXtwYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBhZ2U9e3ByZXZQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBhZ2U9e25leHRQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERpYWxvZ0FwaT17ZWRpdERpYWxvZ0FwaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuZD17dG9nZ2xlRXhwYW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ecm9wPXtvbkRyb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdENoYW5nZWQ9e29uU2VsZWN0Q2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUcmVlU2VydmljZT17cGFnZVRyZWVTZXJ2aWNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkU2V0SG92ZXJTdGF0ZT17ZGVib3VuY2VkU2V0SG92ZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdGVVcmw9e3NpdGVVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhZ2VzPXtzZWxlY3RlZFBhZ2VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvQXV0b1NpemVyPlxuICAgICAgICAgICAgICAgIDwvVGFibGU+XG4gICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5jb25zdCBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFID0gMjQ7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBWaXJ0dWFsTGlzdFBhZGRlciA9IGZvcndhcmRSZWY8YW55LCBhbnk+KCh7IHN0eWxlLCAuLi5yZXN0IH0sIHJlZikgPT4gKFxuICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgIGhlaWdodDogYCR7cGFyc2VGbG9hdChTdHJpbmcoc3R5bGU/LmhlaWdodCkpICsgVklSVFVBTF9MSVNUX1BBRERJTkdfU0laRSAqIDJ9cHhgLFxuICAgICAgICB9fVxuICAgICAgICB7Li4ucmVzdH1cbiAgICAvPlxuKSk7XG5cbmZ1bmN0aW9uIGdldExpbmtlZFBhZ2VzKHBhZ2VzOiBQYWdlVHJlZVBhZ2VbXSwgaW5kZXg6IG51bWJlcik6IFtQYWdlVHJlZVBhZ2UgfCB1bmRlZmluZWQsIFBhZ2VUcmVlUGFnZSwgUGFnZVRyZWVQYWdlIHwgdW5kZWZpbmVkXSB7XG4gICAgY29uc3QgcHJldlBhZ2UgPSBpbmRleCA+IDAgPyBwYWdlc1tpbmRleCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5leHRQYWdlID0gaW5kZXggKyAxIDwgcGFnZXMubGVuZ3RoID8gcGFnZXNbaW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gW3ByZXZQYWdlLCBwYWdlc1tpbmRleF0sIG5leHRQYWdlXTtcbn1cblxuY29uc3QgUGFnZVRyZWVXaXRoUmVmID0gZm9yd2FyZFJlZihQYWdlVHJlZSk7XG5cbmV4cG9ydCB7IFBhZ2VUcmVlV2l0aFJlZiBhcyBQYWdlVHJlZSwgUGFnZVRyZWVSZWZBcGkgfTtcblxuY29uc3QgUm9vdCA9IHN0eWxlZChcImRpdlwiKWBcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3QgVGFibGUgPSBzdHlsZWQoXCJkaXZcIilgXG4gICAgZmxleDogMTtcbmA7XG4iXX0= */",
|
|
487
|
+
styles: "flex:1/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9wYWdlVHJlZS9QYWdlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeVoyQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvcGFnZXMvcGFnZVRyZWUvUGFnZVRyZWUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlUXVlcnksIHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL2NsaWVudFwiO1xuaW1wb3J0IHsgdHlwZSBJRWRpdERpYWxvZ0FwaSwgVW5kb1NuYWNrYmFyLCB1c2VTbmFja2JhckFwaSB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCBpc0VxdWFsIGZyb20gXCJsb2Rhc2guaXNlcXVhbFwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIERpc3BhdGNoLFxuICAgIGZvcndhcmRSZWYsXG4gICAgdHlwZSBGb3J3YXJkUmVmUmVuZGVyRnVuY3Rpb24sXG4gICAgdHlwZSBTZXRTdGF0ZUFjdGlvbixcbiAgICB1c2VDYWxsYmFjayxcbiAgICB1c2VFZmZlY3QsXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgICB1c2VNZW1vLFxuICAgIHVzZVJlZixcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSBcInJlYWN0LWludGxcIjtcbmltcG9ydCBBdXRvU2l6ZXIsIHsgdHlwZSBTaXplIH0gZnJvbSBcInJlYWN0LXZpcnR1YWxpemVkLWF1dG8tc2l6ZXJcIjtcbmltcG9ydCB7IHR5cGUgQWxpZ24sIEZpeGVkU2l6ZUxpc3QgYXMgTGlzdCB9IGZyb20gXCJyZWFjdC13aW5kb3dcIjtcbmltcG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSBcInVzZS1kZWJvdW5jZVwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB0eXBlIEdRTFBhZ2VzUXVlcnksIHR5cGUgR1FMUGFnZXNRdWVyeVZhcmlhYmxlcyB9IGZyb20gXCIuLi9wYWdlc1BhZ2UvY3JlYXRlUGFnZXNRdWVyeVwiO1xuaW1wb3J0IHtcbiAgICB0eXBlIEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbixcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeSxcbiAgICB0eXBlIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcyxcbiAgICB0eXBlIEdRTFBhZ2VTbHVnUGF0aEZyYWdtZW50LFxuICAgIHR5cGUgR1FMUmVzZXRTbHVnTXV0YXRpb24sXG4gICAgdHlwZSBHUUxSZXNldFNsdWdNdXRhdGlvblZhcmlhYmxlcyxcbn0gZnJvbSBcIi4vUGFnZVRyZWUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgUGFnZVRyZWVEcmFnTGF5ZXIgZnJvbSBcIi4vUGFnZVRyZWVEcmFnTGF5ZXJcIjtcbmltcG9ydCBQYWdlVHJlZVJvdywgeyB0eXBlIERyb3BUYXJnZXQsIHR5cGUgUGFnZVRyZWVEcmFnT2JqZWN0IH0gZnJvbSBcIi4vUGFnZVRyZWVSb3dcIjtcbmltcG9ydCB7IHR5cGUgRHJvcEluZm8sIFBhZ2VUcmVlU2VydmljZSB9IGZyb20gXCIuL1BhZ2VUcmVlU2VydmljZVwiO1xuaW1wb3J0IHsgdXNlRG5kV2luZG93U2Nyb2xsIH0gZnJvbSBcIi4vdXNlRG5kV2luZG93U2Nyb2xsL3VzZURuZFdpbmRvd1Njcm9sbFwiO1xuaW1wb3J0IHsgdHlwZSBQYWdlVHJlZVBhZ2UgfSBmcm9tIFwiLi91c2VQYWdlVHJlZVwiO1xuXG5pbnRlcmZhY2UgUGFnZVRyZWVQcm9wcyB7XG4gICAgcGFnZXM6IFBhZ2VUcmVlUGFnZVtdO1xuICAgIGVkaXREaWFsb2dBcGk6IElFZGl0RGlhbG9nQXBpO1xuICAgIHRvZ2dsZUV4cGFuZDogKHBhZ2VJZDogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uU2VsZWN0Q2hhbmdlZDogKHBhZ2VJZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIHNpdGVVcmw6IHN0cmluZztcbn1cblxudHlwZSBQYWdlVHJlZVJlZkFwaSA9IHsgc2Nyb2xsVG9JdGVtOiBMaXN0W1wic2Nyb2xsVG9JdGVtXCJdIH07XG5cbmNvbnN0IG1vdmVQYWdlVHJlZU5vZGVzQnlQb3NpdGlvbk11dGF0aW9uID0gZ3FsYFxuICAgIG11dGF0aW9uIE1vdmVQYWdlVHJlZU5vZGVzQnlQb3MoJGlkczogW0lEIV0hLCAkaW5wdXQ6IE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NJbnB1dCEpIHtcbiAgICAgICAgbW92ZVBhZ2VUcmVlTm9kZXNCeVBvcyhpZHM6ICRpZHMsIGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBwYXJlbnRJZFxuICAgICAgICAgICAgcG9zXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBtb3ZlUGFnZVRyZWVOb2Rlc0J5TmVpZ2hib3Vyc011dGF0aW9uID0gZ3FsYFxuICAgIG11dGF0aW9uIE1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXIoJGlkczogW0lEIV0hLCAkaW5wdXQ6IE1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXJJbnB1dCEpIHtcbiAgICAgICAgbW92ZVBhZ2VUcmVlTm9kZXNCeU5laWdoYm91cihpZHM6ICRpZHMsIGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBwYXJlbnRJZFxuICAgICAgICAgICAgcG9zXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCByZXNldFNsdWdNdXRhdGlvbiA9IGdxbGBcbiAgICBtdXRhdGlvbiBSZXNldFNsdWcoJGlkOiBJRCEsICRzbHVnOiBTdHJpbmchKSB7XG4gICAgICAgIHVwZGF0ZVBhZ2VUcmVlTm9kZVNsdWcoaWQ6ICRpZCwgc2x1ZzogJHNsdWcpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzbHVnXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBwYWdlc0NhY2hlUXVlcnkgPSBncWxgXG4gICAgcXVlcnkgUGFnZXNDYWNoZSgkY29udGVudFNjb3BlOiBQYWdlVHJlZU5vZGVTY29wZUlucHV0ISwgJGNhdGVnb3J5OiBTdHJpbmchKSB7XG4gICAgICAgIHBhZ2VzOiBwYWdlVHJlZU5vZGVMaXN0KHNjb3BlOiAkY29udGVudFNjb3BlLCBjYXRlZ29yeTogJGNhdGVnb3J5KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgcGFyZW50SWRcbiAgICAgICAgICAgIHBvc1xuICAgICAgICB9XG4gICAgfVxuYDtcblxuLy8gQFRPRE86IENhbGN1bGF0ZSBkeW5hbWljYWxseVxuY29uc3QgbGV2ZWxPZmZzZXRQeCA9IDUwO1xuXG5jb25zdCBQYWdlVHJlZTogRm9yd2FyZFJlZlJlbmRlckZ1bmN0aW9uPFBhZ2VUcmVlUmVmQXBpLCBQYWdlVHJlZVByb3BzPiA9IChcbiAgICB7IHBhZ2VzLCBlZGl0RGlhbG9nQXBpLCB0b2dnbGVFeHBhbmQsIG9uU2VsZWN0Q2hhbmdlZCwgY2F0ZWdvcnksIHNpdGVVcmwgfSxcbiAgICByZWYsXG4pID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSB1c2VBcG9sbG9DbGllbnQoKTtcbiAgICBjb25zdCBuZXdQYWdlSWRzID0gdXNlUmVmPHN0cmluZ1tdPihbXSk7XG5cbiAgICBjb25zdCBxdWVyaWVzID0gY2xpZW50LmdldE9ic2VydmFibGVRdWVyaWVzKCk7XG4gICAgY29uc3QgcGFnZXNRdWVyeSA9IEFycmF5LmZyb20ocXVlcmllcy52YWx1ZXMoKSkuZmluZCgocXVlcnkpID0+IHF1ZXJ5LnF1ZXJ5TmFtZSA9PT0gXCJQYWdlc1wiKSBhc1xuICAgICAgICB8IE9ic2VydmFibGVRdWVyeTxHUUxQYWdlc1F1ZXJ5LCBHUUxQYWdlc1F1ZXJ5VmFyaWFibGVzPlxuICAgICAgICB8IHVuZGVmaW5lZDtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwYWdlc1F1ZXJ5KSB7XG4gICAgICAgICAgICBjbGllbnQuY2FjaGUud2F0Y2g8R1FMUGFnZXNRdWVyeSwgR1FMUGFnZXNRdWVyeVZhcmlhYmxlcz4oe1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBwYWdlc1F1ZXJ5LnF1ZXJ5LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogcGFnZXNRdWVyeS52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgY2FsbGJhY2s6IChuZXdQYWdlc1F1ZXJ5LCBwcmV2aW91c1BhZ2VzUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhZ2VzUXVlcnkgJiYgcHJldmlvdXNQYWdlc1F1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1BhZ2VJZHMgPSBwcmV2aW91c1BhZ2VzUXVlcnkucmVzdWx0Py5wYWdlcz8ubWFwKChwYWdlKSA9PiBwYWdlLmlkKSA/PyBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhZ2VJZHMuY3VycmVudCA9IG5ld1BhZ2VzUXVlcnkucmVzdWx0Py5wYWdlcz8ubWFwKChwYWdlKSA9PiBwYWdlLmlkKS5maWx0ZXIoKGlkKSA9PiAhZXhpc3RpbmdQYWdlSWRzLmluY2x1ZGVzKGlkKSkgPz8gW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0IG5ld1BhZ2VJZHMgdG8gcHJldmVudCBzbGlkZUluIG9uIGV2ZXJ5IHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFnZUlkcy5jdXJyZW50ID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpYzogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW2NsaWVudC5jYWNoZSwgcGFnZXNRdWVyeV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5ld1BhZ2VJZHMuY3VycmVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhZ2VzLmZpbmRJbmRleCgocGFnZSkgPT4gbmV3UGFnZUlkcy5jdXJyZW50LmluY2x1ZGVzKHBhZ2UuaWQpKTtcbiAgICAgICAgICAgIHJlZkxpc3QuY3VycmVudD8uc2Nyb2xsVG9JdGVtKGluZGV4LCBcInNtYXJ0XCIpO1xuICAgICAgICB9XG4gICAgfSwgW3BhZ2VzXSk7XG5cbiAgICBjb25zdCBwYWdlVHJlZVNlcnZpY2UgPSB1c2VNZW1vKCgpID0+IG5ldyBQYWdlVHJlZVNlcnZpY2UobGV2ZWxPZmZzZXRQeCwgcGFnZXMpLCBbcGFnZXNdKTtcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB1c2VDb250ZW50U2NvcGUoKTtcbiAgICBjb25zdCBzbmFja2JhckFwaSA9IHVzZVNuYWNrYmFyQXBpKCk7XG5cbiAgICBjb25zdCBkZWJvdW5jZWRTZXRIb3ZlclN0YXRlID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soXG4gICAgICAgIChzZXRIb3ZlclN0YXRlOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxEcm9wSW5mbyB8IHVuZGVmaW5lZD4+LCBuZXdIb3ZlclN0YXRlOiBEcm9wSW5mbyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgICAgc2V0SG92ZXJTdGF0ZSgocHJldlN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwobmV3SG92ZXJTdGF0ZSwgcHJldlN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdIb3ZlclN0YXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICA1LFxuICAgICk7XG5cbiAgICBjb25zdCBzZWxlY3RlZFBhZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBwYWdlcy5maWx0ZXIoKHBhZ2UpID0+IHBhZ2Uuc2VsZWN0ZWQpO1xuICAgIH0sIFtwYWdlc10pO1xuXG4gICAgY29uc3QgbW92ZUJ5UG9zUmVxdWVzdCA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAvLyBAVE9ETzogaGFuZGxlIHBhdGggY29sbGlzaW9ucyB3aGVuIG1vdmluZyBwYWdlc1xuICAgICAgICBhc3luYyAoeyBpZHMsIHBhcmVudElkLCBwb3NpdGlvbiB9OiB7IGlkczogc3RyaW5nW107IHBhcmVudElkOiBzdHJpbmcgfCBudWxsOyBwb3NpdGlvbjogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5tdXRhdGUoe1xuICAgICAgICAgICAgICAgIG11dGF0aW9uOiBtb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zaXRpb25NdXRhdGlvbixcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWRzOiBpZHMsXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3M6IHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlOiAodmFyaWFibGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VUcmVlTm9kZXM6IEdRTE1vdmVQYWdlVHJlZU5vZGVzQnlQb3NNdXRhdGlvbltcIm1vdmVQYWdlVHJlZU5vZGVzQnlQb3NcIl0gPSAodmFyaWFibGVzLmlkcyBhcyBzdHJpbmdbXSkubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGlkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNsdWdQYXRoUGFnZSA9IGNsaWVudC5jYWNoZS5yZWFkRnJhZ21lbnQ8R1FMUGFnZVNsdWdQYXRoRnJhZ21lbnQ+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudDogZ3FsYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQgUGFnZVNsdWdQYXRoIG9uIFBhZ2VUcmVlTm9kZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190eXBlbmFtZTogXCJQYWdlVHJlZU5vZGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogcG9zaXRpb24gKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogc2x1Z1BhdGhQYWdlPy5zbHVnID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHNsdWdQYXRoUGFnZT8ucGF0aCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zOiBwYWdlVHJlZU5vZGVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdXBkYXRlOiAocHJveHksIHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwYWdlIHBvc2l0aW9ucyBvZiBhbGwgb3RoZXIgcGFnZXRyZWUgbm9kZXMgYXJlIHVwZGF0ZWQgaW4gdGhlIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vID0+IHJlYWx0aW1lIHVwZGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3ZlZFBhZ2VUcmVlTm9kZXMgPSBkYXRhPy5tb3ZlUGFnZVRyZWVOb2Rlc0J5UG9zO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE1vdmVkUGFnZVRyZWVOb2RlID0gbW92ZWRQYWdlVHJlZU5vZGVzPy5bMF07XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW92ZWRQYWdlVHJlZU5vZGVzIHx8ICFmaXJzdE1vdmVkUGFnZVRyZWVOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlc1F1ZXJ5RGF0YSA9IHByb3h5LnJlYWRRdWVyeTxHUUxQYWdlc0NhY2hlUXVlcnksIEdRTFBhZ2VzQ2FjaGVRdWVyeVZhcmlhYmxlcz4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHBhZ2VzQ2FjaGVRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRTY29wZTogc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZXNEYXRhID0gcGFnZXNRdWVyeURhdGE/LnBhZ2VzID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkUGFnZXMgPSBwYWdlc0RhdGEubWFwKChwYWdlRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFBhZ2VEYXRhID0geyAuLi5wYWdlRGF0YSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpZHMuaW5jbHVkZXMocGFnZURhdGEuaWQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGEucGFyZW50SWQgPT09IGZpcnN0TW92ZWRQYWdlVHJlZU5vZGUucGFyZW50SWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YS5wb3MgPj0gZmlyc3RNb3ZlZFBhZ2VUcmVlTm9kZS5wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRQYWdlRGF0YS5wb3MgPSB1cGRhdGVkUGFnZURhdGEucG9zICsgbW92ZWRQYWdlVHJlZU5vZGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRQYWdlRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHByb3h5LndyaXRlUXVlcnkoeyBxdWVyeTogcGFnZXNDYWNoZVF1ZXJ5LCBkYXRhOiB7IHBhZ2VzOiB1cGRhdGVkUGFnZXMgfSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtjbGllbnQsIHNjb3BlLCBjYXRlZ29yeV0sXG4gICAgKTtcblxuICAgIGNvbnN0IG1vdmVCeU5laWdoYm91clJlcXVlc3QgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKHsgaWRzLCBwYXJlbnRJZCwgYWZ0ZXJJZCwgYmVmb3JlSWQgfTogeyBpZHM6IHN0cmluZ1tdOyBwYXJlbnRJZDogc3RyaW5nIHwgbnVsbDsgYWZ0ZXJJZDogc3RyaW5nIHwgbnVsbDsgYmVmb3JlSWQ6IHN0cmluZyB8IG51bGwgfSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgY2xpZW50Lm11dGF0ZSh7XG4gICAgICAgICAgICAgICAgbXV0YXRpb246IG1vdmVQYWdlVHJlZU5vZGVzQnlOZWlnaGJvdXJzTXV0YXRpb24sXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkczogaWRzLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJJZDogYWZ0ZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZUlkOiBiZWZvcmVJZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtjbGllbnRdLFxuICAgICk7XG5cbiAgICBjb25zdCBvbkRyb3AgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGRyYWdPYmplY3Q6IFBhZ2VUcmVlRHJhZ09iamVjdCwgZHJvcFRhcmdldFBhZ2U6IFBhZ2VUcmVlUGFnZSwgZHJvcFRhcmdldDogRHJvcFRhcmdldCwgdGFyZ2V0TGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQYWdlSWRzID0gc2VsZWN0ZWRQYWdlcy5tYXAoKHBhZ2UpID0+IHBhZ2UuaWQpO1xuICAgICAgICAgICAgbGV0IHBhZ2VzVG9Nb3ZlOiBQYWdlVHJlZVBhZ2VbXTtcbiAgICAgICAgICAgIGxldCBpZHNUb01vdmU6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRQYWdlSWRzLmluY2x1ZGVzKGRyYWdPYmplY3QuaWQpKSB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIG91dCBzdWJwYWdlcyBpZiB0aGVpciBwYXJlbnQgaXMgc2VsZWN0ZWQgPT4gb25seSB0aGUgcGFyZW50IGhhcyB0byBiZSBtb3ZlZFxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkU2VsZWN0ZWRQYWdlcyA9IHNlbGVjdGVkUGFnZXMuZmlsdGVyKChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlLnBhcmVudElkID09PSBudWxsIHx8ICFzZWxlY3RlZFBhZ2VJZHMuaW5jbHVkZXMocGFnZS5wYXJlbnRJZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWRzVG9Nb3ZlID0gZmlsdGVyZWRTZWxlY3RlZFBhZ2VzLm1hcCgocGFnZSkgPT4gcGFnZS5pZCk7XG5cbiAgICAgICAgICAgICAgICBwYWdlc1RvTW92ZSA9IGZpbHRlcmVkU2VsZWN0ZWRQYWdlcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWRzVG9Nb3ZlID0gW2RyYWdPYmplY3QuaWRdO1xuICAgICAgICAgICAgICAgIHBhZ2VzVG9Nb3ZlID0gW2RyYWdPYmplY3RdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVJbmZvID0gcGFnZVRyZWVTZXJ2aWNlLmRyb3BBbGxvd2VkKHBhZ2VzVG9Nb3ZlLCBkcm9wVGFyZ2V0UGFnZSwgZHJvcFRhcmdldCwgdGFyZ2V0TGV2ZWwpO1xuICAgICAgICAgICAgaWYgKCF1cGRhdGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhd2FpdCBtb3ZlQnlQb3NSZXF1ZXN0KHsgaWRzOiBpZHNUb01vdmUsIHBhcmVudElkOiB1cGRhdGVJbmZvLnBhcmVudElkLCBwb3NpdGlvbjogdXBkYXRlSW5mby5wb3NpdGlvbiB9KTtcblxuICAgICAgICAgICAgc25hY2tiYXJBcGkuc2hvd1NuYWNrYmFyKFxuICAgICAgICAgICAgICAgIDxVbmRvU25hY2tiYXJcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT17PEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5wYWdldHJlZS5wYWdlTW92ZWRcIiBkZWZhdWx0TWVzc2FnZT1cIlBhZ2UgTW92ZWRcIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZD17eyBwcmV2aW91c1BhZ2VzOiBwYWdlcywgcGFnZXNUb1VuZG86IHBhZ2VzVG9Nb3ZlIH19XG4gICAgICAgICAgICAgICAgICAgIG9uVW5kb0NsaWNrPXthc3luYyAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZpb3VzUGFnZXMsIHBhZ2VzVG9VbmRvIH0gPSBwYXlsb2FkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRpc2FsbG93ZWRSZWZlcmVuY2VzID0gWy4uLnBhZ2VzVG9VbmRvXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZVRvVW5kbyBvZiBwYWdlc1RvVW5kbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVJbmZvID0gcGFnZVRyZWVTZXJ2aWNlLmdldFVuZG9VcGRhdGVJbmZvKHByZXZpb3VzUGFnZXMsIHBhZ2VUb1VuZG8sIGRpc2FsbG93ZWRSZWZlcmVuY2VzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkczogW3BhZ2VUb1VuZG8uaWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhZ2VUb1VuZG8ucGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlcklkOiB1cGRhdGVJbmZvLmFmdGVySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVJZDogdXBkYXRlSW5mby5iZWZvcmVJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50Lm11dGF0ZTxHUUxSZXNldFNsdWdNdXRhdGlvbiwgR1FMUmVzZXRTbHVnTXV0YXRpb25WYXJpYWJsZXM+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0aW9uOiByZXNldFNsdWdNdXRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwYWdlVG9VbmRvLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHBhZ2VUb1VuZG8uc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FsbG93ZWRSZWZlcmVuY2VzID0gZGlzYWxsb3dlZFJlZmVyZW5jZXMuZmlsdGVyKChwYWdlKSA9PiBwYWdlLmlkICE9PSBwYWdlVG9VbmRvLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQucmVmZXRjaFF1ZXJpZXMoeyBpbmNsdWRlOiBbXCJQYWdlc1wiXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIFtzZWxlY3RlZFBhZ2VzLCBwYWdlVHJlZVNlcnZpY2UsIHBhZ2VzLCBtb3ZlQnlQb3NSZXF1ZXN0LCBzbmFja2JhckFwaSwgY2xpZW50LCBtb3ZlQnlOZWlnaGJvdXJSZXF1ZXN0XSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVmTGlzdCA9IHVzZVJlZjxMaXN0PihudWxsKTtcbiAgICAvLyBleHBvc2UgdGhpcyBtZXRob2QgdG8gdGhlIHB1YmxpY1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBzY3JvbGxUb0l0ZW06IChpbmRleDogbnVtYmVyLCBhbGlnbj86IEFsaWduKSA9PiB7XG4gICAgICAgICAgICByZWZMaXN0LmN1cnJlbnQ/LnNjcm9sbFRvSXRlbShpbmRleCwgYWxpZ24pO1xuICAgICAgICB9LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHByb3BzRm9yVmlydHVhbExpc3QgPSB1c2VEbmRXaW5kb3dTY3JvbGwoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8UGFnZVRyZWVEcmFnTGF5ZXIgbnVtYmVyU2VsZWN0ZWRQYWdlcz17c2VsZWN0ZWRQYWdlcy5sZW5ndGh9IC8+XG4gICAgICAgICAgICA8Um9vdD5cbiAgICAgICAgICAgICAgICA8VGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxBdXRvU2l6ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7KHsgaGVpZ2h0LCB3aWR0aCB9OiBTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE86IGFkanVzdCBpdGVtU2l6ZSBmb3Igc21hbGxlciBzY3JlZW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3JlZkxpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17cGFnZXMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNpemU9ezUxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnNjYW5Db3VudD17MX0gLy8gZG8gbm90IGluY3JlYXNlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHNjcm9sbEJlaGF2aW9yOiBcInNtb290aFwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckVsZW1lbnRUeXBlPXtWaXJ0dWFsTGlzdFBhZGRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc0ZvclZpcnR1YWxMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaW5kZXgsIHN0eWxlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbcHJldlBhZ2UsIHBhZ2UsIG5leHRQYWdlXSA9IGdldExpbmtlZFBhZ2VzKHBhZ2VzLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBhZ2VUcmVlUm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BhZ2UuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsaXplZFN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtwYXJzZUZsb2F0KFN0cmluZyhzdHlsZT8udG9wKSkgKyBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZUluPXtuZXdQYWdlSWRzLmN1cnJlbnQuaW5jbHVkZXMocGFnZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlPXtwYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBhZ2U9e3ByZXZQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBhZ2U9e25leHRQYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERpYWxvZ0FwaT17ZWRpdERpYWxvZ0FwaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuZD17dG9nZ2xlRXhwYW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ecm9wPXtvbkRyb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdENoYW5nZWQ9e29uU2VsZWN0Q2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUcmVlU2VydmljZT17cGFnZVRyZWVTZXJ2aWNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkU2V0SG92ZXJTdGF0ZT17ZGVib3VuY2VkU2V0SG92ZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdGVVcmw9e3NpdGVVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhZ2VzPXtzZWxlY3RlZFBhZ2VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvQXV0b1NpemVyPlxuICAgICAgICAgICAgICAgIDwvVGFibGU+XG4gICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5jb25zdCBWSVJUVUFMX0xJU1RfUEFERElOR19TSVpFID0gMjQ7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBWaXJ0dWFsTGlzdFBhZGRlciA9IGZvcndhcmRSZWY8YW55LCBhbnk+KCh7IHN0eWxlLCAuLi5yZXN0IH0sIHJlZikgPT4gKFxuICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgIGhlaWdodDogYCR7cGFyc2VGbG9hdChTdHJpbmcoc3R5bGU/LmhlaWdodCkpICsgVklSVFVBTF9MSVNUX1BBRERJTkdfU0laRSAqIDJ9cHhgLFxuICAgICAgICB9fVxuICAgICAgICB7Li4ucmVzdH1cbiAgICAvPlxuKSk7XG5cbmZ1bmN0aW9uIGdldExpbmtlZFBhZ2VzKHBhZ2VzOiBQYWdlVHJlZVBhZ2VbXSwgaW5kZXg6IG51bWJlcik6IFtQYWdlVHJlZVBhZ2UgfCB1bmRlZmluZWQsIFBhZ2VUcmVlUGFnZSwgUGFnZVRyZWVQYWdlIHwgdW5kZWZpbmVkXSB7XG4gICAgY29uc3QgcHJldlBhZ2UgPSBpbmRleCA+IDAgPyBwYWdlc1tpbmRleCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5leHRQYWdlID0gaW5kZXggKyAxIDwgcGFnZXMubGVuZ3RoID8gcGFnZXNbaW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gW3ByZXZQYWdlLCBwYWdlc1tpbmRleF0sIG5leHRQYWdlXTtcbn1cblxuY29uc3QgUGFnZVRyZWVXaXRoUmVmID0gZm9yd2FyZFJlZihQYWdlVHJlZSk7XG5cbmV4cG9ydCB7IFBhZ2VUcmVlV2l0aFJlZiBhcyBQYWdlVHJlZSwgUGFnZVRyZWVSZWZBcGkgfTtcblxuY29uc3QgUm9vdCA9IHN0eWxlZChcImRpdlwiKWBcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3QgVGFibGUgPSBzdHlsZWQoXCJkaXZcIilgXG4gICAgZmxleDogMTtcbmA7XG4iXX0= */",
|
|
488
488
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
489
489
|
});
|
|
@@ -8,9 +8,7 @@ export type AllCategories = Array<{
|
|
|
8
8
|
label: ReactNode;
|
|
9
9
|
}>;
|
|
10
10
|
export interface PageTreeContext {
|
|
11
|
-
allCategories: AllCategories;
|
|
12
11
|
currentCategory: string;
|
|
13
|
-
documentTypes: Record<DocumentType, DocumentInterface>;
|
|
14
12
|
getDocumentTypesByCategory?: (category: string) => Record<DocumentType, DocumentInterface>;
|
|
15
13
|
tree: TreeMap<GQLPageTreePageFragment>;
|
|
16
14
|
query: DocumentNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTreeContext.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/PageTreeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC5B,
|
|
1
|
+
{"version":3,"file":"PageTreeContext.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/PageTreeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC3F,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvC,KAAK,EAAE,YAAY,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,sDAAwD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTreeRow.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/PageTreeRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AAGzH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"PageTreeRow.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/PageTreeRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AAGzH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAWnD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;AAEpF,UAAU,gBAAgB;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,EAAE,cAAc,CAAC;IAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrI,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,eAAe,EAAE,eAAe,CAAC;IACjC,sBAAsB,EAAE,cAAc,CAClC,CAAC,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAC/G,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,YAAY,EAAE,CAAC;CACjC;AAOD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE9C,QAAA,MAAM,WAAW,oLAcd,gBAAgB,4CAkNlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -10,6 +10,7 @@ var _material = require("@mui/material");
|
|
|
10
10
|
var _react = require("react");
|
|
11
11
|
var _reactDnd = require("react-dnd");
|
|
12
12
|
var _reactDndHtml5Backend = require("react-dnd-html5-backend");
|
|
13
|
+
var _pageTreeConfig = require("../pageTreeConfig");
|
|
13
14
|
var _PageTreeTableRow = require("./common/PageTreeTableRow");
|
|
14
15
|
var _InsertInBetweenAction = _interopRequireDefault(require("./InsertInBetweenAction/InsertInBetweenAction"));
|
|
15
16
|
var _useButtonHoverStates2 = require("./InsertInBetweenAction/useButtonHoverStates");
|
|
@@ -19,7 +20,6 @@ var _PageLabel = _interopRequireDefault(require("./PageLabel"));
|
|
|
19
20
|
var sc = _interopRequireWildcard(require("./PageTreeRow.sc"));
|
|
20
21
|
var _PageTreeRowDivider = require("./PageTreeRowDivider");
|
|
21
22
|
var _PageVisibility = _interopRequireDefault(require("./PageVisibility"));
|
|
22
|
-
var _usePageTreeContext2 = require("./usePageTreeContext");
|
|
23
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
@@ -58,8 +58,8 @@ var PageTreeRow = function PageTreeRow(_ref) {
|
|
|
58
58
|
setHoverState = _useState4[1];
|
|
59
59
|
var _useStackSwitchApi = (0, _admin.useStackSwitchApi)(),
|
|
60
60
|
activatePage = _useStackSwitchApi.activatePage;
|
|
61
|
-
var
|
|
62
|
-
documentTypes =
|
|
61
|
+
var _usePageTreeConfig = (0, _pageTreeConfig.usePageTreeConfig)(),
|
|
62
|
+
documentTypes = _usePageTreeConfig.documentTypes;
|
|
63
63
|
var isEditable = !!(page.visibility !== "Archived" && documentTypes[page.documentType].editComponent);
|
|
64
64
|
var _useButtonHoverStates = (0, _useButtonHoverStates2.useButtonHoverStates)(),
|
|
65
65
|
topInBetweenButtonHovered = _useButtonHoverStates.top,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTypeIcon.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/PageTypeIcon.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageTypeIcon.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/PageTypeIcon.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,UAAU,iBAAiB;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAwB/E"}
|
|
@@ -5,14 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.PageTypeIcon = PageTypeIcon;
|
|
7
7
|
var _adminIcons = require("@comet/admin-icons");
|
|
8
|
-
var
|
|
8
|
+
var _pageTreeConfig = require("../pageTreeConfig");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
10
|
function PageTypeIcon(_ref) {
|
|
11
11
|
var page = _ref.page,
|
|
12
12
|
disabled = _ref.disabled;
|
|
13
13
|
var iconColor = "primary";
|
|
14
|
-
var
|
|
15
|
-
documentTypes =
|
|
14
|
+
var _usePageTreeConfig = (0, _pageTreeConfig.usePageTreeConfig)(),
|
|
15
|
+
documentTypes = _usePageTreeConfig.documentTypes;
|
|
16
16
|
var documentType = documentTypes[page.documentType];
|
|
17
17
|
var Icon;
|
|
18
18
|
if (page.slug === "home") {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type ApolloClient } from "@apollo/client";
|
|
2
2
|
import { type ReactNode } from "react";
|
|
3
|
-
import { type CmsBlockContext } from "../../../blocks/CmsBlockContextProvider";
|
|
4
3
|
import { type ContentScopeInterface } from "../../../contentScope/Provider";
|
|
5
|
-
import { type
|
|
4
|
+
import { type PageTreeConfig } from "../../pageTreeConfig";
|
|
6
5
|
import { type PagesClipboard } from "../useCopyPastePages";
|
|
7
6
|
export interface SendPagesOptions {
|
|
8
7
|
/**
|
|
@@ -15,8 +14,8 @@ export interface SendPagesOptions {
|
|
|
15
14
|
interface SendPagesDependencies {
|
|
16
15
|
client: ApolloClient<unknown>;
|
|
17
16
|
scope: ContentScopeInterface;
|
|
18
|
-
documentTypes:
|
|
19
|
-
|
|
17
|
+
documentTypes: PageTreeConfig["documentTypes"];
|
|
18
|
+
apiUrl: string;
|
|
20
19
|
damScope: Record<string, unknown>;
|
|
21
20
|
currentCategory: string;
|
|
22
21
|
}
|
|
@@ -35,6 +34,6 @@ interface SendPagesDependencies {
|
|
|
35
34
|
* 4. Refetch Pages query
|
|
36
35
|
*
|
|
37
36
|
**/
|
|
38
|
-
export declare function sendPages(parentId: string | null, { pages, scope: sourceContentScope }: PagesClipboard, options: SendPagesOptions, { client, scope: targetContentScope, documentTypes,
|
|
37
|
+
export declare function sendPages(parentId: string | null, { pages, scope: sourceContentScope }: PagesClipboard, options: SendPagesOptions, { client, scope: targetContentScope, documentTypes, apiUrl, damScope: targetDamScope, currentCategory }: SendPagesDependencies, updateProgress: (progress: number, message: ReactNode) => void): Promise<void>;
|
|
39
38
|
export {};
|
|
40
39
|
//# sourceMappingURL=sendPages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendPages.d.ts","sourceRoot":"","sources":["../../../../src/pages/pageTree/useCopyPastePages/sendPages.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAO,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sendPages.d.ts","sourceRoot":"","sources":["../../../../src/pages/pageTree/useCopyPastePages/sendPages.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAO,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAI5E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4C/E,MAAM,WAAW,gBAAgB;IAC7B;;;SAGK;IACL,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;CACnE;AAED,UAAU,qBAAqB;IAC3B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,aAAa,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;IAcI;AACJ,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,cAAc,EACpD,OAAO,EAAE,gBAAgB,EACzB,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,qBAAqB,EAC9H,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,GAC/D,OAAO,CAAC,IAAI,CAAC,CAySf"}
|
|
@@ -10,6 +10,7 @@ var _admin = require("@comet/admin");
|
|
|
10
10
|
var _lodash = _interopRequireDefault(require("lodash.isequal"));
|
|
11
11
|
var _reactIntl = require("react-intl");
|
|
12
12
|
var _uuid = require("uuid");
|
|
13
|
+
var _createHttpClient = require("../../../http/createHttpClient");
|
|
13
14
|
var _TreeMapUtils = require("../treemap/TreeMapUtils");
|
|
14
15
|
var _createInboxFolder = require("./createInboxFolder");
|
|
15
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -53,12 +54,12 @@ function sendPages(_x, _x2, _x3, _x4, _x5) {
|
|
|
53
54
|
*/
|
|
54
55
|
function _sendPages() {
|
|
55
56
|
_sendPages = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(parentId, _ref, options, _ref2, updateProgress) {
|
|
56
|
-
var pages, sourceContentScope, client, targetContentScope, documentTypes,
|
|
57
|
+
var pages, sourceContentScope, client, targetContentScope, documentTypes, apiUrl, targetDamScope, currentCategory, dependencyReplacements, inboxFolderIdForCopiedFiles, hasDamScope, progressPages, sourceScopes, _iterator3, _step3, sourcePage, documentType, _iterator4, _step4, _loop, _yield$createInboxFol, id, handlePageTreeNode, tree, _progressPages, _traverse, _progressPages2, _iterator6, _step6, _loop2;
|
|
57
58
|
return _regeneratorRuntime().wrap(function _callee3$(_context6) {
|
|
58
59
|
while (1) switch (_context6.prev = _context6.next) {
|
|
59
60
|
case 0:
|
|
60
61
|
pages = _ref.pages, sourceContentScope = _ref.scope;
|
|
61
|
-
client = _ref2.client, targetContentScope = _ref2.scope, documentTypes = _ref2.documentTypes,
|
|
62
|
+
client = _ref2.client, targetContentScope = _ref2.scope, documentTypes = _ref2.documentTypes, apiUrl = _ref2.apiUrl, targetDamScope = _ref2.damScope, currentCategory = _ref2.currentCategory;
|
|
62
63
|
dependencyReplacements = createPageTreeNodeIdReplacements(pages);
|
|
63
64
|
inboxFolderIdForCopiedFiles = undefined;
|
|
64
65
|
hasDamScope = Object.entries(targetDamScope).length > 0; // 1. find all source scopes of file dependencies, to create an dam inbox folder if needed
|
|
@@ -105,7 +106,7 @@ function _sendPages() {
|
|
|
105
106
|
_context.next = 12;
|
|
106
107
|
break;
|
|
107
108
|
case 4:
|
|
108
|
-
if (!(damFile.fileUrl.startsWith(
|
|
109
|
+
if (!(damFile.fileUrl.startsWith(apiUrl) && (!hasDamScope || (0, _lodash["default"])(damFile.scope, targetDamScope)))) {
|
|
109
110
|
_context.next = 7;
|
|
110
111
|
break;
|
|
111
112
|
}
|
|
@@ -391,7 +392,7 @@ function _sendPages() {
|
|
|
391
392
|
_iterator7 = _createForOfIteratorHelper(fileDependenciesFromDocument(documentType, sourcePage.document));
|
|
392
393
|
_context5.prev = 10;
|
|
393
394
|
_loop3 = /*#__PURE__*/_regeneratorRuntime().mark(function _loop3() {
|
|
394
|
-
var damFile, _damFile$image2, fileResponse, fileBlob, file, formData, response, _yield$client$mutate3, data;
|
|
395
|
+
var damFile, _damFile$image2, fileResponse, fileBlob, file, formData, apiClient, response, _yield$client$mutate3, data;
|
|
395
396
|
return _regeneratorRuntime().wrap(function _loop3$(_context4) {
|
|
396
397
|
while (1) switch (_context4.prev = _context4.next) {
|
|
397
398
|
case 0:
|
|
@@ -402,10 +403,10 @@ function _sendPages() {
|
|
|
402
403
|
_context4.next = 4;
|
|
403
404
|
break;
|
|
404
405
|
}
|
|
405
|
-
_context4.next =
|
|
406
|
+
_context4.next = 40;
|
|
406
407
|
break;
|
|
407
408
|
case 4:
|
|
408
|
-
if (!damFile.fileUrl.startsWith(
|
|
409
|
+
if (!damFile.fileUrl.startsWith(apiUrl)) {
|
|
409
410
|
_context4.next = 8;
|
|
410
411
|
break;
|
|
411
412
|
}
|
|
@@ -416,7 +417,7 @@ function _sendPages() {
|
|
|
416
417
|
//batch copy below
|
|
417
418
|
fileIdsToCopyDirectly.push(damFile.id);
|
|
418
419
|
}
|
|
419
|
-
_context4.next =
|
|
420
|
+
_context4.next = 40;
|
|
420
421
|
break;
|
|
421
422
|
case 8:
|
|
422
423
|
if (inboxFolderIdForCopiedFiles) {
|
|
@@ -426,7 +427,7 @@ function _sendPages() {
|
|
|
426
427
|
throw new Error("inbox folder must be created in step 0 when files need to be copied");
|
|
427
428
|
case 10:
|
|
428
429
|
if (!damFile.fileUrl.match(/^https?:\/\/(localhost|.*\.dev\.vivid-planet\.cloud|192\.168\.\d{1,3}\.\d{1,3}):\d{2,4}/)) {
|
|
429
|
-
_context4.next =
|
|
430
|
+
_context4.next = 33;
|
|
430
431
|
break;
|
|
431
432
|
}
|
|
432
433
|
_context4.next = 13;
|
|
@@ -448,24 +449,25 @@ function _sendPages() {
|
|
|
448
449
|
if (damFile.altText) formData.append("altText", damFile.altText);
|
|
449
450
|
if (damFile.license) formData.append("license", JSON.stringify(damFile.license));
|
|
450
451
|
if ((_damFile$image2 = damFile.image) !== null && _damFile$image2 !== void 0 && _damFile$image2.cropArea) formData.append("imageCropArea", JSON.stringify(damFile.image.cropArea));
|
|
451
|
-
|
|
452
|
-
|
|
452
|
+
apiClient = (0, _createHttpClient.createHttpClient)(apiUrl);
|
|
453
|
+
_context4.next = 29;
|
|
454
|
+
return apiClient.post("/dam/files/upload", formData, {
|
|
453
455
|
// cancelToken, //TODO support cancel?
|
|
454
456
|
headers: {
|
|
455
457
|
"Content-Type": "multipart/form-data"
|
|
456
458
|
}
|
|
457
459
|
});
|
|
458
|
-
case
|
|
460
|
+
case 29:
|
|
459
461
|
response = _context4.sent;
|
|
460
462
|
dependencyReplacements.push({
|
|
461
463
|
type: "DamFile",
|
|
462
464
|
originalId: damFile.id,
|
|
463
465
|
replaceWithId: response.data.id
|
|
464
466
|
});
|
|
465
|
-
_context4.next =
|
|
467
|
+
_context4.next = 40;
|
|
466
468
|
break;
|
|
467
|
-
case
|
|
468
|
-
_context4.next =
|
|
469
|
+
case 33:
|
|
470
|
+
_context4.next = 35;
|
|
469
471
|
return client.mutate({
|
|
470
472
|
mutation: (0, _client.gql)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n mutation DownloadDamFile($url: String!, $scope: DamScopeInput!, $input: UpdateDamFileInput!) {\n importDamFileByDownload(url: $url, scope: $scope, input: $input) {\n id\n }\n }\n "]))),
|
|
471
473
|
variables: {
|
|
@@ -483,21 +485,21 @@ function _sendPages() {
|
|
|
483
485
|
}
|
|
484
486
|
}
|
|
485
487
|
});
|
|
486
|
-
case
|
|
488
|
+
case 35:
|
|
487
489
|
_yield$client$mutate3 = _context4.sent;
|
|
488
490
|
data = _yield$client$mutate3.data;
|
|
489
491
|
if (data !== null && data !== void 0 && data.importDamFileByDownload.id) {
|
|
490
|
-
_context4.next =
|
|
492
|
+
_context4.next = 39;
|
|
491
493
|
break;
|
|
492
494
|
}
|
|
493
495
|
throw Error("Did not receive new id for imported dam file");
|
|
494
|
-
case
|
|
496
|
+
case 39:
|
|
495
497
|
dependencyReplacements.push({
|
|
496
498
|
type: "DamFile",
|
|
497
499
|
originalId: damFile.id,
|
|
498
500
|
replaceWithId: data.importDamFileByDownload.id
|
|
499
501
|
});
|
|
500
|
-
case
|
|
502
|
+
case 40:
|
|
501
503
|
case "end":
|
|
502
504
|
return _context4.stop();
|
|
503
505
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCopyPastePages.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/useCopyPastePages.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAE,KAAK,qBAAqB,EAAmB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,KAAK,WAAW,EAAiD,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCopyPastePages.d.ts","sourceRoot":"","sources":["../../../src/pages/pageTree/useCopyPastePages.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAE,KAAK,qBAAqB,EAAmB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,KAAK,WAAW,EAAiD,MAAM,uBAAuB,CAAC;AAGxG,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG7D,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG;IAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC;AAExF,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,qBAAqB,CAAC;CAChC;AAUD;;;GAGG;AACH,KAAK,wBAAwB,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEpH,UAAU,oBAAoB;IAC1B;;;OAGG;IACH,mBAAmB,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnF;;;OAGG;IACH,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;OAEG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE1D;;;;OAIG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExG,cAAc,EAAE,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,iBAAS,iBAAiB,IAAI,oBAAoB,CAoIjD;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -9,9 +9,10 @@ var _client = require("@apollo/client");
|
|
|
9
9
|
var _admin = require("@comet/admin");
|
|
10
10
|
var _react = require("react");
|
|
11
11
|
var _reactIntl = require("react-intl");
|
|
12
|
-
var
|
|
12
|
+
var _CometConfigContext = require("../../config/CometConfigContext");
|
|
13
13
|
var _Provider = require("../../contentScope/Provider");
|
|
14
14
|
var _useDamScope = require("../../dam/config/useDamScope");
|
|
15
|
+
var _pageTreeConfig = require("../pageTreeConfig");
|
|
15
16
|
var _ProgressDialog = require("./useCopyPastePages/ProgressDialog");
|
|
16
17
|
var _sendPages = require("./useCopyPastePages/sendPages");
|
|
17
18
|
var _usePageTreeContext2 = require("./usePageTreeContext");
|
|
@@ -41,14 +42,16 @@ function isPagesClipboard(pagesClipboard) {
|
|
|
41
42
|
* This hooks provides some helper functions to copy / paste Pages and PageTreeNodes
|
|
42
43
|
*/
|
|
43
44
|
function useCopyPastePages() {
|
|
45
|
+
var _useCometConfig = (0, _CometConfigContext.useCometConfig)(),
|
|
46
|
+
apiUrl = _useCometConfig.apiUrl;
|
|
47
|
+
var _usePageTreeConfig = (0, _pageTreeConfig.usePageTreeConfig)(),
|
|
48
|
+
documentTypes = _usePageTreeConfig.documentTypes;
|
|
44
49
|
var _usePageTreeContext = (0, _usePageTreeContext2.usePageTreeContext)(),
|
|
45
|
-
documentTypes = _usePageTreeContext.documentTypes,
|
|
46
50
|
currentCategory = _usePageTreeContext.currentCategory;
|
|
47
51
|
var client = (0, _client.useApolloClient)();
|
|
48
52
|
var _useContentScope = (0, _Provider.useContentScope)(),
|
|
49
53
|
scope = _useContentScope.scope;
|
|
50
54
|
var damScope = (0, _useDamScope.useDamScope)();
|
|
51
|
-
var blockContext = (0, _useCmsBlockContext.useCmsBlockContext)();
|
|
52
55
|
var progress = (0, _ProgressDialog.useProgressDialog)({
|
|
53
56
|
title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
|
|
54
57
|
id: "comet.pages.insertingPages",
|
|
@@ -234,7 +237,7 @@ function useCopyPastePages() {
|
|
|
234
237
|
client: client,
|
|
235
238
|
scope: scope,
|
|
236
239
|
documentTypes: documentTypes,
|
|
237
|
-
|
|
240
|
+
apiUrl: apiUrl,
|
|
238
241
|
damScope: damScope,
|
|
239
242
|
currentCategory: currentCategory
|
|
240
243
|
}, updateProgress);
|
|
@@ -265,7 +268,7 @@ function useCopyPastePages() {
|
|
|
265
268
|
return function (_x4, _x5, _x6) {
|
|
266
269
|
return _ref5.apply(this, arguments);
|
|
267
270
|
};
|
|
268
|
-
}(), [client, scope, documentTypes,
|
|
271
|
+
}(), [client, scope, documentTypes, apiUrl, damScope, currentCategory, updateProgress, errorDialog]);
|
|
269
272
|
return {
|
|
270
273
|
prepareForClipboard: prepareForClipboard,
|
|
271
274
|
writeToClipboard: writeToClipboard,
|