import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/header/nav/notifications/Notifications.vue");import { default as __nuxt_component_0 } from "/_nuxt/components/header/nav/notifications/ProjectInvite.vue"; import { default as __nuxt_component_1 } from "/_nuxt/components/header/nav/notifications/WorkspaceInvite.vue"; /* Injection by vite-plugin-vue-inspector Start */ import { createElementVNode as __createElementVNode,createElementBlock as __createElementBlock,createBlock as __createBlock,createVNode as __createVNode } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29" function _interopVNode(vnode) { if (vnode && vnode.props && 'data-v-inspector' in vnode.props) { const data = vnode.props['data-v-inspector'] delete vnode.props['data-v-inspector'] Object.defineProperty(vnode.props, '__v_inspector', { value: data, enumerable: false }) } return vnode } function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) } function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) } function _createBlock(...args) { return _interopVNode(__createBlock(...args)) } function _createVNode(...args) { return _interopVNode(__createVNode(...args)) } /* Injection by vite-plugin-vue-inspector End */ import { defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; import { Menu, MenuButton, MenuItem, MenuItems } from "/_nuxt/node_modules/@headlessui/vue/dist/headlessui.esm.js?v=e4f18c29"; import { XMarkIcon, BellIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_24_outline.js?v=e4f18c29"; import { useQuery } from "/_nuxt/node_modules/@vue/apollo-composable/dist/index.mjs?v=e4f18c29"; import { navigationProjectInvitesQuery, navigationWorkspaceInvitesQuery } from "/_nuxt/lib/navigation/graphql/queries.ts"; import { useId, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; import { useIsWorkspacesEnabled } from "/_nuxt/composables/globals.ts"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "HeaderNavNotifications", setup(__props, { expose: __expose }) { __expose(); const menuButtonId = useId(); const isWorkspacesEnabled = useIsWorkspacesEnabled(); const { result: projectInviteResult } = useQuery(navigationProjectInvitesQuery); const { result: workspaceInviteResult } = useQuery( navigationWorkspaceInvitesQuery, null, { enabled: isWorkspacesEnabled.value } ); const projectsInvites = computed( () => projectInviteResult.value?.activeUser?.projectInvites ); const workspacesInvites = computed(() => { const invites = workspaceInviteResult.value?.activeUser?.workspaceInvites; return invites?.filter((invite) => { return !projectsInvites.value?.some( (projectInvite) => projectInvite.id === invite.id ); }) || []; }); const hasNotifications = computed( () => projectsInvites.value?.length || workspacesInvites.value?.length ); const __returned__ = { menuButtonId, isWorkspacesEnabled, projectInviteResult, workspaceInviteResult, projectsInvites, workspacesInvites, hasNotifications, get Menu() { return Menu; }, get MenuButton() { return MenuButton; }, get MenuItem() { return MenuItem; }, get MenuItems() { return MenuItems; }, get XMarkIcon() { return XMarkIcon; }, get BellIcon() { return BellIcon; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { openBlock as _openBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, Transition as _Transition } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _hoisted_1 = { "data-v-inspector": "components/header/nav/notifications/Notifications.vue:2:3" }; const _hoisted_2 = { class: "relative", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:10:11" }; const _hoisted_3 = { key: 0, class: "absolute -top-[4px] -right-[4px] size-2 bg-danger rounded-full", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:11:13" }; const _hoisted_4 = { key: 0, class: "px-3.5 pt-2 pb-2.5 text-body-xs text-foreground-2 text-center", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:33:11" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_HeaderNavNotificationsProjectInvite = __nuxt_component_0; const _component_HeaderNavNotificationsWorkspaceInvite = __nuxt_component_1; return _openBlock(), _createElementBlock("div", _hoisted_1, [ _createVNode($setup["Menu"], { as: "div", class: "flex items-center", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:3:5" }, { default: _withCtx(() => [ _createVNode($setup["MenuButton"], { id: $setup.menuButtonId, as: "div", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:4:7" }, { default: _withCtx(({ open: menuOpen }) => [ _createElementVNode( "div", { class: _normalizeClass(["relative cursor-pointer p-1 w-8 h-8 flex items-center justify-center rounded-md", menuOpen ? "border border-outline-2" : ""]), "data-v-inspector": "components/header/nav/notifications/Notifications.vue:5:9" }, [ _cache[0] || (_cache[0] = _createElementVNode( "span", { class: "sr-only", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:9:11" }, "Open notifications menu", -1 /* CACHED */ )), _createElementVNode("div", _hoisted_2, [ !menuOpen && $setup.hasNotifications ? (_openBlock(), _createElementBlock("div", _hoisted_3)) : _createCommentVNode("v-if", true), !menuOpen ? (_openBlock(), _createBlock($setup["BellIcon"], { key: 1, class: "w-5 h-5", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:16:13" })) : (_openBlock(), _createBlock($setup["XMarkIcon"], { key: 2, class: "w-5 h-5", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:17:13" })) ]) ], 2 /* CLASS */ ) ]), _: 1 /* STABLE */ }, 8, ["id"]), _createVNode(_Transition, { "enter-active-class": "transition ease-out duration-200", "enter-from-class": "transform opacity-0 scale-95", "enter-to-class": "transform opacity-100 scale-100", "leave-active-class": "transition ease-in duration-75", "leave-from-class": "transform opacity-100 scale-100", "leave-to-class": "transform opacity-0 scale-95", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:21:7" }, { default: _withCtx(() => [ _createVNode($setup["MenuItems"], { class: "absolute z-50 right-0 md:right-20 top-10 mt-1.5 w-full sm:w-72 origin-top-right bg-foundation outline outline-2 outline-primary-muted rounded-md shadow-lg overflow-hidden pb-1", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:29:9" }, { default: _withCtx(() => [ _cache[1] || (_cache[1] = _createElementVNode( "div", { class: "px-3.5 pt-2 text-body-xs font-medium", "data-v-inspector": "components/header/nav/notifications/Notifications.vue:32:11" }, "Notifications", -1 /* CACHED */ )), !$setup.hasNotifications ? (_openBlock(), _createElementBlock("p", _hoisted_4, " No notifications ")) : _createCommentVNode("v-if", true), (_openBlock(true), _createElementBlock( _Fragment, null, _renderList($setup.projectsInvites, (projectInvite) => { return _openBlock(), _createBlock( $setup["MenuItem"], { key: projectInvite?.id, "data-v-inspector": "components/header/nav/notifications/Notifications.vue:39:11" }, { default: _withCtx(() => [ _createVNode(_component_HeaderNavNotificationsProjectInvite, { invite: projectInvite, "data-v-inspector": "components/header/nav/notifications/Notifications.vue:40:13" }, null, 8, ["invite"]) ]), _: 2 /* DYNAMIC */ }, 1024 /* DYNAMIC_SLOTS */ ); }), 128 /* KEYED_FRAGMENT */ )), (_openBlock(true), _createElementBlock( _Fragment, null, _renderList($setup.workspacesInvites, (workspacesInvite) => { return _openBlock(), _createBlock( $setup["MenuItem"], { key: workspacesInvite?.id, "data-v-inspector": "components/header/nav/notifications/Notifications.vue:42:11" }, { default: _withCtx(() => [ _createVNode(_component_HeaderNavNotificationsWorkspaceInvite, { invite: workspacesInvite, "data-v-inspector": "components/header/nav/notifications/Notifications.vue:46:13" }, null, 8, ["invite"]) ]), _: 2 /* DYNAMIC */ }, 1024 /* DYNAMIC_SLOTS */ ); }), 128 /* KEYED_FRAGMENT */ )) ]), _: 1 /* STABLE */ }) ]), _: 1 /* STABLE */ }) ]), _: 1 /* STABLE */ }) ]); } _sfc_main.__hmrId = "66c4a392"; typeof __VUE_HMR_RUNTIME__ !== "undefined" && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main); import.meta.hot.on("file-changed", ({ file }) => { __VUE_HMR_RUNTIME__.CHANGED_FILE = file; }); import.meta.hot.accept((mod) => { if (!mod) return; const { default: updated, _rerender_only } = mod; if (_rerender_only) { __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render); } else { __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated); } }); import _export_sfc from "/_nuxt/@id/__x00__plugin-vue:export-helper"; export default /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/speckle-server/packages/frontend-2/components/header/nav/notifications/Notifications.vue"]]); //# sourceMappingURL=data:application/json;base64,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QyxrQkFBYTt5Q0FBOUI7QUFBQSxzQkFFVztBQUFBO0FBQUEsd0JBRnlDLEtBQUssZUFBZTtBQUFBLHdCQUFJLG9CQUFpQjtBQUFBOzswQ0FDM0YsTUFBOEk7QUFBQSwwQkFBOUksYUFBOEk7QUFBQSw0QkFBeEcsUUFBUTtBQUFBLDRCQUFlLG9CQUFpQjtBQUFBOzs7Ozs7Ozs7Ozs7bUNBRWhGO0FBQUEsa0JBS1c7QUFBQTtBQUFBLDhCQUprQiwwQkFBaUIsQ0FBckMscUJBQWdCO3lDQUR6QjtBQUFBLHNCQUtXO0FBQUE7QUFBQSx3QkFIUixLQUFLLGtCQUFrQjtBQUFBLHdCQUFJLG9CQUFpQjtBQUFBOzswQ0FFN0MsTUFBbUo7QUFBQSwwQkFBbkosYUFBbUo7QUFBQSw0QkFBM0csUUFBUTtBQUFBLDRCQUFrQixvQkFBaUI7QUFBQSIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiTm90aWZpY2F0aW9ucy52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gIDxkaXYgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnMudnVlOjI6M1wiPlxyXG4gICAgPE1lbnUgYXM9XCJkaXZcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnMudnVlOjM6NVwiPlxyXG4gICAgICA8TWVudUJ1dHRvbiA6aWQ9XCJtZW51QnV0dG9uSWRcIiB2LXNsb3Q9XCJ7IG9wZW46IG1lbnVPcGVuIH1cIiBhcz1cImRpdlwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25zLnZ1ZTo0OjdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGN1cnNvci1wb2ludGVyIHAtMSB3LTggaC04IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWRcIlxyXG4gICAgICAgICAgOmNsYXNzPVwibWVudU9wZW4gPyAnYm9yZGVyIGJvcmRlci1vdXRsaW5lLTInIDogJydcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6NTo5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6OToxMVwiPk9wZW4gbm90aWZpY2F0aW9ucyBtZW51PC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnMudnVlOjEwOjExXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICB2LWlmPVwiIW1lbnVPcGVuICYmIGhhc05vdGlmaWNhdGlvbnNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1bNHB4XSAtcmlnaHQtWzRweF0gc2l6ZS0yIGJnLWRhbmdlciByb3VuZGVkLWZ1bGxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6MTE6MTNcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPEJlbGxJY29uIHYtaWY9XCIhbWVudU9wZW5cIiBjbGFzcz1cInctNSBoLTVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6MTY6MTNcIiAvPlxyXG4gICAgICAgICAgICA8WE1hcmtJY29uIHYtZWxzZSBjbGFzcz1cInctNSBoLTVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6MTc6MTNcIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTWVudUJ1dHRvbj5cclxuICAgICAgPFRyYW5zaXRpb25cclxuICAgICAgICBlbnRlci1hY3RpdmUtY2xhc3M9XCJ0cmFuc2l0aW9uIGVhc2Utb3V0IGR1cmF0aW9uLTIwMFwiXHJcbiAgICAgICAgZW50ZXItZnJvbS1jbGFzcz1cInRyYW5zZm9ybSBvcGFjaXR5LTAgc2NhbGUtOTVcIlxyXG4gICAgICAgIGVudGVyLXRvLWNsYXNzPVwidHJhbnNmb3JtIG9wYWNpdHktMTAwIHNjYWxlLTEwMFwiXHJcbiAgICAgICAgbGVhdmUtYWN0aXZlLWNsYXNzPVwidHJhbnNpdGlvbiBlYXNlLWluIGR1cmF0aW9uLTc1XCJcclxuICAgICAgICBsZWF2ZS1mcm9tLWNsYXNzPVwidHJhbnNmb3JtIG9wYWNpdHktMTAwIHNjYWxlLTEwMFwiXHJcbiAgICAgICAgbGVhdmUtdG8tY2xhc3M9XCJ0cmFuc2Zvcm0gb3BhY2l0eS0wIHNjYWxlLTk1XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnMudnVlOjIxOjdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPE1lbnVJdGVtc1xyXG4gICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSB6LTUwIHJpZ2h0LTAgbWQ6cmlnaHQtMjAgdG9wLTEwIG10LTEuNSB3LWZ1bGwgc206dy03MiBvcmlnaW4tdG9wLXJpZ2h0IGJnLWZvdW5kYXRpb24gb3V0bGluZSBvdXRsaW5lLTIgb3V0bGluZS1wcmltYXJ5LW11dGVkIHJvdW5kZWQtbWQgc2hhZG93LWxnIG92ZXJmbG93LWhpZGRlbiBwYi0xXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnMudnVlOjI5OjlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0zLjUgcHQtMiB0ZXh0LWJvZHkteHMgZm9udC1tZWRpdW1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6MzI6MTFcIj5Ob3RpZmljYXRpb25zPC9kaXY+XHJcbiAgICAgICAgICA8cFxyXG4gICAgICAgICAgICB2LWlmPVwiIWhhc05vdGlmaWNhdGlvbnNcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInB4LTMuNSBwdC0yIHBiLTIuNSB0ZXh0LWJvZHkteHMgdGV4dC1mb3JlZ3JvdW5kLTIgdGV4dC1jZW50ZXJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6MzM6MTFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBObyBub3RpZmljYXRpb25zXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8TWVudUl0ZW0gdi1mb3I9XCJwcm9qZWN0SW52aXRlIGluIHByb2plY3RzSW52aXRlc1wiIDprZXk9XCJwcm9qZWN0SW52aXRlPy5pZFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25zLnZ1ZTozOToxMVwiPlxyXG4gICAgICAgICAgICA8SGVhZGVyTmF2Tm90aWZpY2F0aW9uc1Byb2plY3RJbnZpdGUgOmludml0ZT1cInByb2plY3RJbnZpdGVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6NDA6MTNcIiAvPlxyXG4gICAgICAgICAgPC9NZW51SXRlbT5cclxuICAgICAgICAgIDxNZW51SXRlbVxyXG4gICAgICAgICAgICB2LWZvcj1cIndvcmtzcGFjZXNJbnZpdGUgaW4gd29ya3NwYWNlc0ludml0ZXNcIlxyXG4gICAgICAgICAgICA6a2V5PVwid29ya3NwYWNlc0ludml0ZT8uaWRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWU6NDI6MTFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8SGVhZGVyTmF2Tm90aWZpY2F0aW9uc1dvcmtzcGFjZUludml0ZSA6aW52aXRlPVwid29ya3NwYWNlc0ludml0ZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25zLnZ1ZTo0NjoxM1wiIC8+XHJcbiAgICAgICAgICA8L01lbnVJdGVtPlxyXG4gICAgICAgIDwvTWVudUl0ZW1zPlxyXG4gICAgICA8L1RyYW5zaXRpb24+XHJcbiAgICA8L01lbnU+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IE1lbnUsIE1lbnVCdXR0b24sIE1lbnVJdGVtLCBNZW51SXRlbXMgfSBmcm9tICdAaGVhZGxlc3N1aS92dWUnXHJcbmltcG9ydCB7IFhNYXJrSWNvbiwgQmVsbEljb24gfSBmcm9tICdAaGVyb2ljb25zL3Z1ZS8yNC9vdXRsaW5lJ1xyXG5pbXBvcnQgeyB1c2VRdWVyeSB9IGZyb20gJ0B2dWUvYXBvbGxvLWNvbXBvc2FibGUnXHJcbmltcG9ydCB7XHJcbiAgbmF2aWdhdGlvblByb2plY3RJbnZpdGVzUXVlcnksXHJcbiAgbmF2aWdhdGlvbldvcmtzcGFjZUludml0ZXNRdWVyeVxyXG59IGZyb20gJ35+L2xpYi9uYXZpZ2F0aW9uL2dyYXBocWwvcXVlcmllcydcclxuXHJcbmNvbnN0IG1lbnVCdXR0b25JZCA9IHVzZUlkKClcclxuY29uc3QgaXNXb3Jrc3BhY2VzRW5hYmxlZCA9IHVzZUlzV29ya3NwYWNlc0VuYWJsZWQoKVxyXG5cclxuY29uc3QgeyByZXN1bHQ6IHByb2plY3RJbnZpdGVSZXN1bHQgfSA9IHVzZVF1ZXJ5KG5hdmlnYXRpb25Qcm9qZWN0SW52aXRlc1F1ZXJ5KVxyXG5jb25zdCB7IHJlc3VsdDogd29ya3NwYWNlSW52aXRlUmVzdWx0IH0gPSB1c2VRdWVyeShcclxuICBuYXZpZ2F0aW9uV29ya3NwYWNlSW52aXRlc1F1ZXJ5LFxyXG4gIG51bGwsXHJcbiAgeyBlbmFibGVkOiBpc1dvcmtzcGFjZXNFbmFibGVkLnZhbHVlIH1cclxuKVxyXG5cclxuY29uc3QgcHJvamVjdHNJbnZpdGVzID0gY29tcHV0ZWQoXHJcbiAgKCkgPT4gcHJvamVjdEludml0ZVJlc3VsdC52YWx1ZT8uYWN0aXZlVXNlcj8ucHJvamVjdEludml0ZXNcclxuKVxyXG5jb25zdCB3b3Jrc3BhY2VzSW52aXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICBjb25zdCBpbnZpdGVzID0gd29ya3NwYWNlSW52aXRlUmVzdWx0LnZhbHVlPy5hY3RpdmVVc2VyPy53b3Jrc3BhY2VJbnZpdGVzXHJcblxyXG4gIC8vIEZpbHRlciBvdXQgaW1wbGljaXQgd29ya3NwYWNlIGludml0ZXMgdGhhdCBhbHJlYWR5IHNob3cgdXAgYXMgcHJvamVjdCBpbnZpdGVzIGhlcmUgKHNhbWUgSUQpXHJcbiAgcmV0dXJuIChcclxuICAgIGludml0ZXM/LmZpbHRlcigoaW52aXRlKSA9PiB7XHJcbiAgICAgIHJldHVybiAhcHJvamVjdHNJbnZpdGVzLnZhbHVlPy5zb21lKFxyXG4gICAgICAgIChwcm9qZWN0SW52aXRlKSA9PiBwcm9qZWN0SW52aXRlLmlkID09PSBpbnZpdGUuaWRcclxuICAgICAgKVxyXG4gICAgfSkgfHwgW11cclxuICApXHJcbn0pXHJcblxyXG5jb25zdCBoYXNOb3RpZmljYXRpb25zID0gY29tcHV0ZWQoXHJcbiAgKCkgPT4gcHJvamVjdHNJbnZpdGVzLnZhbHVlPy5sZW5ndGggfHwgd29ya3NwYWNlc0ludml0ZXMudmFsdWU/Lmxlbmd0aFxyXG4pXHJcbjwvc2NyaXB0PlxyXG4iXSwiZmlsZSI6IkQ6L3NwZWNrbGUtc2VydmVyL3BhY2thZ2VzL2Zyb250ZW5kLTIvY29tcG9uZW50cy9oZWFkZXIvbmF2L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy52dWUifQ==