import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/workspace/discoverableWorkspaces/Card.vue");import { UserAvatarGroup as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js"; import { FormButton as __nuxt_component_1 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js"; import { default as __nuxt_component_2 } from "/_nuxt/components/workspace/Card.vue"; /* Injection by vite-plugin-vue-inspector Start */ import { createElementBlock as __createElementBlock,createBlock as __createBlock,createElementVNode as __createElementVNode,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 _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) } function _createBlock(...args) { return _interopVNode(__createBlock(...args)) } function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...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 { useDiscoverableWorkspaces } from "/_nuxt/lib/workspaces/composables/discoverableWorkspaces.ts"; import { useMixpanel } from "/_nuxt/lib/core/composables/mp.ts"; import { CheckIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_20_solid.js?v=e4f18c29"; import { WorkspaceJoinRequestStatus } from "/_nuxt/lib/common/generated/gql/graphql.ts"; import { computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _sfc_main = /* @__PURE__ */ _defineComponent({ __name: "WorkspaceDiscoverableWorkspacesCard", props: { workspace: { type: Object, required: true }, showDismissButton: { type: Boolean, required: false }, location: { type: String, required: false }, requestStatus: { type: [String, null], required: true } }, emits: ["auto-joined", "request", "dismissed"], setup(__props, { expose: __expose, emit: __emit }) { __expose(); const props = __props; const emit = __emit; const { requestToJoinWorkspace, dismissDiscoverableWorkspace } = useDiscoverableWorkspaces(); const mixpanel = useMixpanel(); const adminTeam = computed(() => props.workspace.adminTeam?.map((t) => t.user) ?? []); const adminIds = computed(() => new Set(adminTeam.value.map((admin) => admin.id))); const allMembers = computed(() => props.workspace.team?.items?.map((u) => u.user) ?? []); const members = computed(() => { const totalUniqueUsers = (/* @__PURE__ */ new Set([ ...adminTeam.value.map((admin) => admin.id), ...allMembers.value.map((member) => member.id) ])).size; if (totalUniqueUsers === 1) { return allMembers.value.filter((user) => !adminIds.value.has(user.id)); } else { return allMembers.value; } }); const isActioned = computed(() => { return props.requestStatus === WorkspaceJoinRequestStatus.Approved || props.requestStatus === WorkspaceJoinRequestStatus.Pending; }); const onRequest = () => { requestToJoinWorkspace(props.workspace, props.location || "discovery_card"); if (props.workspace.discoverabilityAutoJoinEnabled) { emit("auto-joined"); } else { emit("request"); } }; const onDismiss = async () => { await dismissDiscoverableWorkspace(props.workspace.id); emit("dismissed", props.workspace.id); mixpanel.track("Workspace Discovery Banner Dismissed", { workspaceId: props.workspace.id, location: "discovery_card", // eslint-disable-next-line camelcase workspace_id: props.workspace.id }); }; const __returned__ = { props, emit, requestToJoinWorkspace, dismissDiscoverableWorkspace, mixpanel, adminTeam, adminIds, allMembers, members, isActioned, onRequest, onDismiss, get CheckIcon() { return CheckIcon; }, get WorkspaceJoinRequestStatus() { return WorkspaceJoinRequestStatus; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); import { toDisplayString as _toDisplayString, openBlock as _openBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, withCtx as _withCtx, normalizeClass as _normalizeClass } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"; const _hoisted_1 = { class: "flex flex-col gap-y-1", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:14:7" }; const _hoisted_2 = { key: 0, class: "text-body-2xs line-clamp-3", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:15:9" }; const _hoisted_3 = { class: "flex flex-col gap-1", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:18:9" }; const _hoisted_4 = { class: "text-body-3xs text-foreground-2", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:25:11" }; const _hoisted_5 = { class: "font-medium", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:26:13" }; const _hoisted_6 = { key: 0, "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:33:13" }; const _hoisted_7 = { key: 2, class: "flex flex-col gap-2 sm:items-end", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:56:7" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_UserAvatarGroup = __nuxt_component_0; const _component_FormButton = __nuxt_component_1; const _component_WorkspaceCard = __nuxt_component_2; return _openBlock(), _createBlock(_component_WorkspaceCard, { logo: $props.workspace.logo ?? "", name: $props.workspace.name, class: _normalizeClass($setup.isActioned ? "" : "bg-foundation"), "banner-text": $props.workspace.discoverabilityAutoJoinEnabled && $props.requestStatus !== $setup.WorkspaceJoinRequestStatus.Approved ? "You can join this workspace automatically. No admin approval needed." : null, "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:2:3" }, { text: _withCtx(() => [ _createElementVNode("div", _hoisted_1, [ $props.workspace.description ? (_openBlock(), _createElementBlock( "div", _hoisted_2, _toDisplayString($props.workspace.description), 1 /* TEXT */ )) : _createCommentVNode("v-if", true), _createElementVNode("div", _hoisted_3, [ $setup.members.length > 0 ? (_openBlock(), _createBlock(_component_UserAvatarGroup, { key: 0, users: $setup.members, "max-count": 5, size: "base", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:19:11" }, null, 8, ["users"])) : _createCommentVNode("v-if", true), _createElementVNode("div", _hoisted_4, [ _createElementVNode( "span", _hoisted_5, _toDisplayString($setup.adminTeam.length === 1 ? "Admin" : "Admins") + ":  ", 1 /* TEXT */ ), (_openBlock(true), _createElementBlock( _Fragment, null, _renderList($setup.adminTeam.slice(0, 3), (admin, index) => { return _openBlock(), _createElementBlock( "span", { key: admin.id, "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:29:13" }, _toDisplayString(admin.name) + _toDisplayString(index < 2 && index < $setup.adminTeam.length - 1 ? ", " : ""), 1 /* TEXT */ ); }), 128 /* KEYED_FRAGMENT */ )), $setup.adminTeam.length > 3 ? (_openBlock(), _createElementBlock( "span", _hoisted_6, "+" + _toDisplayString($setup.adminTeam.length - 3), 1 /* TEXT */ )) : _createCommentVNode("v-if", true) ]) ]) ]) ]), actions: _withCtx(() => [ $props.requestStatus === $setup.WorkspaceJoinRequestStatus.Pending ? (_openBlock(), _createBlock(_component_FormButton, { key: 0, color: "outline", size: "sm", disabled: "", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:39:7" }, { default: _withCtx(() => [..._cache[0] || (_cache[0] = [ _createTextVNode( " Join request sent ", -1 /* CACHED */ ) ])]), _: 1 /* STABLE */ })) : $props.requestStatus === $setup.WorkspaceJoinRequestStatus.Approved ? (_openBlock(), _createBlock(_component_FormButton, { key: 1, color: "outline", size: "sm", "icon-left": $setup.CheckIcon, disabled: "", "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:47:7" }, { default: _withCtx(() => [..._cache[1] || (_cache[1] = [ _createTextVNode( " Workspace joined ", -1 /* CACHED */ ) ])]), _: 1 /* STABLE */ }, 8, ["icon-left"])) : (_openBlock(), _createElementBlock("div", _hoisted_7, [ _createVNode(_component_FormButton, { color: "outline", size: "sm", onClick: $setup.onRequest, "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:57:9" }, { default: _withCtx(() => [ _createTextVNode( _toDisplayString($props.workspace.discoverabilityAutoJoinEnabled ? "Join workspace" : "Request to join"), 1 /* TEXT */ ) ]), _: 1 /* STABLE */ }), $props.showDismissButton ? (_openBlock(), _createBlock(_component_FormButton, { key: 0, color: "subtle", size: "sm", onClick: $setup.onDismiss, "data-v-inspector": "components/workspace/discoverableWorkspaces/Card.vue:64:9" }, { default: _withCtx(() => [..._cache[2] || (_cache[2] = [ _createTextVNode( " Dismiss ", -1 /* CACHED */ ) ])]), _: 1 /* STABLE */ })) : _createCommentVNode("v-if", true) ])) ]), _: 1 /* STABLE */ }, 8, ["logo", "name", "class", "banner-text"]); } _sfc_main.__hmrId = "b3b1f722"; 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/workspace/discoverableWorkspaces/Card.vue"]]); //# sourceMappingURL=data:application/json;base64,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VUFBTSxTQUFPO0FBQUEsVUFBVyxvQkFBaUI7QUFBQTs0QkFDeEUsTUFJRTtBQUFBOytCQUhBLGlCQUFVOzs7Ozs7OztRQU1OLDBDQURSLGFBT2E7QUFBQTtVQUxYLE9BQU07QUFBQSxVQUNOLE1BQUs7QUFBQSxVQUNKLFNBQU87QUFBQSxVQUFXLG9CQUFpQjtBQUFBOzRCQUNyQyxNQUVEO0FBQUE7Y0FGQztBQUFBLGNBRUQ7QUFBQTtBQUFBO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIkNhcmQudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8V29ya3NwYWNlQ2FyZFxyXG4gICAgOmxvZ289XCJ3b3Jrc3BhY2UubG9nbyA/PyAnJ1wiXHJcbiAgICA6bmFtZT1cIndvcmtzcGFjZS5uYW1lXCJcclxuICAgIDpjbGFzcz1cImlzQWN0aW9uZWQgPyAnJyA6ICdiZy1mb3VuZGF0aW9uJ1wiXHJcbiAgICA6YmFubmVyLXRleHQ9XCJcclxuICAgICAgd29ya3NwYWNlLmRpc2NvdmVyYWJpbGl0eUF1dG9Kb2luRW5hYmxlZCAmJlxyXG4gICAgICByZXF1ZXN0U3RhdHVzICE9PSBXb3Jrc3BhY2VKb2luUmVxdWVzdFN0YXR1cy5BcHByb3ZlZFxyXG4gICAgICAgID8gJ1lvdSBjYW4gam9pbiB0aGlzIHdvcmtzcGFjZSBhdXRvbWF0aWNhbGx5LiBObyBhZG1pbiBhcHByb3ZhbCBuZWVkZWQuJ1xyXG4gICAgICAgIDogbnVsbFxyXG4gICAgXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6MjozXCJcclxuICA+XHJcbiAgICA8dGVtcGxhdGUgI3RleHQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC15LTFcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZToxNDo3XCI+XHJcbiAgICAgICAgPGRpdiB2LWlmPVwid29ya3NwYWNlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0ZXh0LWJvZHktMnhzIGxpbmUtY2xhbXAtM1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjE1OjlcIj5cclxuICAgICAgICAgIHt7IHdvcmtzcGFjZS5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6MTg6OVwiPlxyXG4gICAgICAgICAgPFVzZXJBdmF0YXJHcm91cFxyXG4gICAgICAgICAgICB2LWlmPVwibWVtYmVycy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgOnVzZXJzPVwibWVtYmVyc1wiXHJcbiAgICAgICAgICAgIDptYXgtY291bnQ9XCI1XCJcclxuICAgICAgICAgICAgc2l6ZT1cImJhc2VcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZToxOToxMVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYm9keS0zeHMgdGV4dC1mb3JlZ3JvdW5kLTJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZToyNToxMVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6MjY6MTNcIj5cclxuICAgICAgICAgICAgICB7eyBhZG1pblRlYW0ubGVuZ3RoID09PSAxID8gJ0FkbWluJyA6ICdBZG1pbnMnIH19OiZuYnNwO1xyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIHYtZm9yPVwiKGFkbWluLCBpbmRleCkgaW4gYWRtaW5UZWFtLnNsaWNlKDAsIDMpXCIgOmtleT1cImFkbWluLmlkXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6Mjk6MTNcIj5cclxuICAgICAgICAgICAgICB7eyBhZG1pbi5uYW1lXHJcbiAgICAgICAgICAgICAgfX17eyBpbmRleCA8IDIgJiYgaW5kZXggPCBhZG1pblRlYW0ubGVuZ3RoIC0gMSA/ICcsICcgOiAnJyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJhZG1pblRlYW0ubGVuZ3RoID4gM1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjMzOjEzXCI+K3t7IGFkbWluVGVhbS5sZW5ndGggLSAzIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZW1wbGF0ZT5cclxuICAgIDx0ZW1wbGF0ZSAjYWN0aW9ucz5cclxuICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICB2LWlmPVwicmVxdWVzdFN0YXR1cyA9PT0gV29ya3NwYWNlSm9pblJlcXVlc3RTdGF0dXMuUGVuZGluZ1wiXHJcbiAgICAgICAgY29sb3I9XCJvdXRsaW5lXCJcclxuICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgIGRpc2FibGVkIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjM5OjdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgSm9pbiByZXF1ZXN0IHNlbnRcclxuICAgICAgPC9Gb3JtQnV0dG9uPlxyXG4gICAgICA8Rm9ybUJ1dHRvblxyXG4gICAgICAgIHYtZWxzZS1pZj1cInJlcXVlc3RTdGF0dXMgPT09IFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzLkFwcHJvdmVkXCJcclxuICAgICAgICBjb2xvcj1cIm91dGxpbmVcIlxyXG4gICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgOmljb24tbGVmdD1cIkNoZWNrSWNvblwiXHJcbiAgICAgICAgZGlzYWJsZWQgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6NDc6N1wiXHJcbiAgICAgID5cclxuICAgICAgICBXb3Jrc3BhY2Ugam9pbmVkXHJcbiAgICAgIDwvRm9ybUJ1dHRvbj5cclxuICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHNtOml0ZW1zLWVuZFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL3dvcmtzcGFjZS9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzL0NhcmQudnVlOjU2OjdcIj5cclxuICAgICAgICA8Rm9ybUJ1dHRvbiBjb2xvcj1cIm91dGxpbmVcIiBzaXplPVwic21cIiBAY2xpY2s9XCJvblJlcXVlc3RcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy93b3Jrc3BhY2UvZGlzY292ZXJhYmxlV29ya3NwYWNlcy9DYXJkLnZ1ZTo1Nzo5XCI+XHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICB3b3Jrc3BhY2UuZGlzY292ZXJhYmlsaXR5QXV0b0pvaW5FbmFibGVkXHJcbiAgICAgICAgICAgICAgPyAnSm9pbiB3b3Jrc3BhY2UnXHJcbiAgICAgICAgICAgICAgOiAnUmVxdWVzdCB0byBqb2luJ1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA8L0Zvcm1CdXR0b24+XHJcbiAgICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICAgIHYtaWY9XCJzaG93RGlzbWlzc0J1dHRvblwiXHJcbiAgICAgICAgICBjb2xvcj1cInN1YnRsZVwiXHJcbiAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgQGNsaWNrPVwib25EaXNtaXNzXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWU6NjQ6OVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgRGlzbWlzc1xyXG4gICAgICAgIDwvRm9ybUJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3RlbXBsYXRlPlxyXG4gIDwvV29ya3NwYWNlQ2FyZD5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB0eXBlIHsgRGlzY292ZXJhYmxlV29ya3NwYWNlX0xpbWl0ZWRXb3Jrc3BhY2VGcmFnbWVudCB9IGZyb20gJ35+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5pbXBvcnQgeyB1c2VEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzIH0gZnJvbSAnfi9saWIvd29ya3NwYWNlcy9jb21wb3NhYmxlcy9kaXNjb3ZlcmFibGVXb3Jrc3BhY2VzJ1xyXG5pbXBvcnQgeyB1c2VNaXhwYW5lbCB9IGZyb20gJ35+L2xpYi9jb3JlL2NvbXBvc2FibGVzL21wJ1xyXG5pbXBvcnQgeyBDaGVja0ljb24gfSBmcm9tICdAaGVyb2ljb25zL3Z1ZS8yMC9zb2xpZCdcclxuaW1wb3J0IHsgV29ya3NwYWNlSm9pblJlcXVlc3RTdGF0dXMgfSBmcm9tICd+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wczx7XHJcbiAgd29ya3NwYWNlOiBEaXNjb3ZlcmFibGVXb3Jrc3BhY2VfTGltaXRlZFdvcmtzcGFjZUZyYWdtZW50XHJcbiAgc2hvd0Rpc21pc3NCdXR0b24/OiBib29sZWFuXHJcbiAgbG9jYXRpb24/OiBzdHJpbmdcclxuICByZXF1ZXN0U3RhdHVzOiBzdHJpbmcgfCBudWxsXHJcbn0+KClcclxuXHJcbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XHJcbiAgKGU6ICdhdXRvLWpvaW5lZCcpOiB2b2lkXHJcbiAgKGU6ICdyZXF1ZXN0Jyk6IHZvaWRcclxuICAoZTogJ2Rpc21pc3NlZCcsIHdvcmtzcGFjZUlkOiBzdHJpbmcpOiB2b2lkXHJcbn0+KClcclxuXHJcbmNvbnN0IHsgcmVxdWVzdFRvSm9pbldvcmtzcGFjZSwgZGlzbWlzc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZSB9ID1cclxuICB1c2VEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzKClcclxuY29uc3QgbWl4cGFuZWwgPSB1c2VNaXhwYW5lbCgpXHJcblxyXG5jb25zdCBhZG1pblRlYW0gPSBjb21wdXRlZCgoKSA9PiBwcm9wcy53b3Jrc3BhY2UuYWRtaW5UZWFtPy5tYXAoKHQpID0+IHQudXNlcikgPz8gW10pXHJcbmNvbnN0IGFkbWluSWRzID0gY29tcHV0ZWQoKCkgPT4gbmV3IFNldChhZG1pblRlYW0udmFsdWUubWFwKChhZG1pbikgPT4gYWRtaW4uaWQpKSlcclxuY29uc3QgYWxsTWVtYmVycyA9IGNvbXB1dGVkKCgpID0+IHByb3BzLndvcmtzcGFjZS50ZWFtPy5pdGVtcz8ubWFwKCh1KSA9PiB1LnVzZXIpID8/IFtdKVxyXG5jb25zdCBtZW1iZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gIC8vIE9ubHkgZGVkdXBsaWNhdGUgaWYgdGhlcmUncyBleGFjdGx5IG9uZSBwZXJzb24gdG90YWwgKGFkbWluIHdobyBpcyBhbHNvIHRoZSBvbmx5IG1lbWJlcilcclxuICBjb25zdCB0b3RhbFVuaXF1ZVVzZXJzID0gbmV3IFNldChbXHJcbiAgICAuLi5hZG1pblRlYW0udmFsdWUubWFwKChhZG1pbikgPT4gYWRtaW4uaWQpLFxyXG4gICAgLi4uYWxsTWVtYmVycy52YWx1ZS5tYXAoKG1lbWJlcikgPT4gbWVtYmVyLmlkKVxyXG4gIF0pLnNpemVcclxuXHJcbiAgaWYgKHRvdGFsVW5pcXVlVXNlcnMgPT09IDEpIHtcclxuICAgIC8vIFNpbmdsZSB1c2VyIGNhc2U6IGZpbHRlciBvdXQgYWRtaW5zIGZyb20gbWVtYmVycyB0byBhdm9pZCBkdXBsaWNhdGlvblxyXG4gICAgcmV0dXJuIGFsbE1lbWJlcnMudmFsdWUuZmlsdGVyKCh1c2VyKSA9PiAhYWRtaW5JZHMudmFsdWUuaGFzKHVzZXIuaWQpKVxyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBNdWx0aXBsZSB1c2Vyczogc2hvdyBhbGwgbWVtYmVycyBpbmNsdWRpbmcgdGhvc2Ugd2hvIGFyZSBhbHNvIGFkbWluc1xyXG4gICAgcmV0dXJuIGFsbE1lbWJlcnMudmFsdWVcclxuICB9XHJcbn0pXHJcblxyXG5jb25zdCBpc0FjdGlvbmVkID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBwcm9wcy5yZXF1ZXN0U3RhdHVzID09PSBXb3Jrc3BhY2VKb2luUmVxdWVzdFN0YXR1cy5BcHByb3ZlZCB8fFxyXG4gICAgcHJvcHMucmVxdWVzdFN0YXR1cyA9PT0gV29ya3NwYWNlSm9pblJlcXVlc3RTdGF0dXMuUGVuZGluZ1xyXG4gIClcclxufSlcclxuXHJcbmNvbnN0IG9uUmVxdWVzdCA9ICgpID0+IHtcclxuICByZXF1ZXN0VG9Kb2luV29ya3NwYWNlKHByb3BzLndvcmtzcGFjZSwgcHJvcHMubG9jYXRpb24gfHwgJ2Rpc2NvdmVyeV9jYXJkJylcclxuICBpZiAocHJvcHMud29ya3NwYWNlLmRpc2NvdmVyYWJpbGl0eUF1dG9Kb2luRW5hYmxlZCkge1xyXG4gICAgZW1pdCgnYXV0by1qb2luZWQnKVxyXG4gIH0gZWxzZSB7XHJcbiAgICBlbWl0KCdyZXF1ZXN0JylcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IG9uRGlzbWlzcyA9IGFzeW5jICgpID0+IHtcclxuICBhd2FpdCBkaXNtaXNzRGlzY292ZXJhYmxlV29ya3NwYWNlKHByb3BzLndvcmtzcGFjZS5pZClcclxuICBlbWl0KCdkaXNtaXNzZWQnLCBwcm9wcy53b3Jrc3BhY2UuaWQpXHJcbiAgbWl4cGFuZWwudHJhY2soJ1dvcmtzcGFjZSBEaXNjb3ZlcnkgQmFubmVyIERpc21pc3NlZCcsIHtcclxuICAgIHdvcmtzcGFjZUlkOiBwcm9wcy53b3Jrc3BhY2UuaWQsXHJcbiAgICBsb2NhdGlvbjogJ2Rpc2NvdmVyeV9jYXJkJyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcclxuICAgIHdvcmtzcGFjZV9pZDogcHJvcHMud29ya3NwYWNlLmlkXHJcbiAgfSlcclxufVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvd29ya3NwYWNlL2Rpc2NvdmVyYWJsZVdvcmtzcGFjZXMvQ2FyZC52dWUifQ==