@nlabs/gothamjs
Version:
Platform
194 lines (193 loc) • 27.2 kB
JavaScript
"use client";
import {
Dialog,
DialogBackdrop,
DialogPanel,
Menu,
MenuButton,
MenuItem,
MenuItems,
TransitionChild
} from "@headlessui/react";
import { cn } from "@nlabs/utils";
import {
Menu as Bars3,
Bell,
Calendar,
ChevronDown,
Files,
Folder,
Home,
PieChart,
Search,
Users,
X
} from "lucide-react";
import { useState } from "react";
import { Outlet } from "react-router";
import { Config } from "../../config/appConfig.js";
import { jsx, jsxs } from "react/jsx-runtime";
const sideMenuItems = [
{ current: true, href: "#", icon: Home, name: "Dashboard" },
{ current: false, href: "#", icon: Users, name: "Team" },
{ current: false, href: "#", icon: Folder, name: "Projects" },
{ current: false, href: "#", icon: Calendar, name: "Calendar" },
{ current: false, href: "#", icon: Files, name: "Documents" },
{ current: false, href: "#", icon: PieChart, name: "Reports" }
];
const userMenuItems = [
{ href: "#", name: "Profile" },
{ href: "#", name: "Sign out" }
];
const MenuView = () => {
const [sidebarOpen, setSidebarOpen] = useState(false);
const app = Config.get("app");
return /* @__PURE__ */ jsxs("div", { children: [
/* @__PURE__ */ jsxs(Dialog, { open: sidebarOpen, onClose: setSidebarOpen, className: "relative z-50 lg:hidden", children: [
/* @__PURE__ */ jsx(
DialogBackdrop,
{
transition: true,
className: "fixed inset-0 bg-gray-900/80 transition-opacity duration-300 ease-linear data-closed:opacity-0"
}
),
/* @__PURE__ */ jsx("div", { className: "fixed inset-0 flex", children: /* @__PURE__ */ jsxs(
DialogPanel,
{
transition: true,
className: "relative mr-16 flex w-full max-w-xs flex-1 transform transition duration-300 ease-in-out data-closed:-translate-x-full",
children: [
/* @__PURE__ */ jsx(TransitionChild, { children: /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-full flex w-16 justify-center pt-5 duration-300 ease-in-out data-closed:opacity-0", children: /* @__PURE__ */ jsxs("button", { type: "button", onClick: () => setSidebarOpen(false), className: "-m-2.5 p-2.5", children: [
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close sidebar" }),
/* @__PURE__ */ jsx(X, { "aria-hidden": "true", className: "size-6 text-white" })
] }) }) }),
/* @__PURE__ */ jsxs("div", { className: "flex grow flex-col gap-y-5 overflow-y-auto bg-gray-900 px-6 pb-2 ring-1 ring-white/10", children: [
/* @__PURE__ */ jsx("div", { className: "flex h-16 shrink-0 items-center", children: /* @__PURE__ */ jsx(
"img",
{
alt: app?.title,
src: app?.logo,
className: "h-8 w-auto"
}
) }),
/* @__PURE__ */ jsx("nav", { className: "flex flex-1 flex-col", children: /* @__PURE__ */ jsx("ul", { role: "list", className: "-mx-2 flex-1 space-y-1", children: sideMenuItems?.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
"a",
{
href: item.href,
className: cn(
item.current ? "bg-gray-800 text-white" : "text-gray-400 hover:bg-gray-800 hover:text-white",
"group flex gap-x-3 rounded-md p-2 text-sm/6 font-semibold"
),
children: [
item.icon && /* @__PURE__ */ jsx(item.icon, { "aria-hidden": "true", className: "size-6 shrink-0" }),
item.name
]
}
) }, item.name)) }) })
] })
]
}
) })
] }),
/* @__PURE__ */ jsxs("div", { className: "hidden lg:fixed lg:inset-y-0 lg:left-0 lg:z-50 lg:block lg:w-20 lg:overflow-y-auto lg:bg-gray-900 lg:pb-4", children: [
/* @__PURE__ */ jsx("div", { className: "flex h-16 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx(
"img",
{
alt: "Your Company",
src: "https://tailwindcss.com/plus-assets/img/logos/mark.svg?color=indigo&shade=500",
className: "h-8 w-auto"
}
) }),
/* @__PURE__ */ jsx("nav", { className: "mt-8", children: /* @__PURE__ */ jsx("ul", { role: "list", className: "flex flex-col items-center space-y-1", children: sideMenuItems?.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
"a",
{
href: item.href,
className: cn(
item.current ? "bg-gray-800 text-white" : "text-gray-400 hover:bg-gray-800 hover:text-white",
"group flex gap-x-3 rounded-md p-3 text-sm/6 font-semibold"
),
children: [
item.icon && /* @__PURE__ */ jsx(item.icon, { "aria-hidden": "true", className: "size-6 shrink-0" }),
/* @__PURE__ */ jsx("span", { className: "sr-only", children: item.name })
]
}
) }, item.name)) }) })
] }),
/* @__PURE__ */ jsxs("div", { className: "lg:pl-20", children: [
/* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-40 flex h-16 shrink-0 items-center gap-x-4 border-b border-gray-200 bg-white px-4 shadow-xs sm:gap-x-6 sm:px-6 lg:px-8", children: [
/* @__PURE__ */ jsxs("button", { type: "button", onClick: () => setSidebarOpen(true), className: "-m-2.5 p-2.5 text-gray-700 lg:hidden", children: [
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Open sidebar" }),
/* @__PURE__ */ jsx(Bars3, { "aria-hidden": "true", className: "size-6" })
] }),
/* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "h-6 w-px bg-gray-900/10 lg:hidden" }),
/* @__PURE__ */ jsxs("div", { className: "flex flex-1 gap-x-4 self-stretch lg:gap-x-6", children: [
/* @__PURE__ */ jsxs("form", { action: "#", method: "GET", className: "grid flex-1 grid-cols-1", children: [
/* @__PURE__ */ jsx(
"input",
{
name: "search",
type: "search",
placeholder: "Search",
"aria-label": "Search",
className: "col-start-1 row-start-1 block size-full bg-white pl-8 text-base text-gray-900 outline-hidden placeholder:text-gray-400 sm:text-sm/6"
}
),
/* @__PURE__ */ jsx(
Search,
{
"aria-hidden": "true",
className: "pointer-events-none col-start-1 row-start-1 size-5 self-center text-gray-400"
}
)
] }),
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-4 lg:gap-x-6", children: [
/* @__PURE__ */ jsxs("button", { type: "button", className: "-m-2.5 p-2.5 text-gray-400 hover:text-gray-500", children: [
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "View notifications" }),
/* @__PURE__ */ jsx(Bell, { "aria-hidden": "true", className: "size-6" })
] }),
/* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "hidden lg:block lg:h-6 lg:w-px lg:bg-gray-900/10" }),
/* @__PURE__ */ jsxs(Menu, { as: "div", className: "relative", children: [
/* @__PURE__ */ jsxs(MenuButton, { className: "-m-1.5 flex items-center p-1.5", children: [
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Open user menu" }),
/* @__PURE__ */ jsx(
"img",
{
alt: "",
src: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
className: "size-8 rounded-full bg-gray-50"
}
),
/* @__PURE__ */ jsxs("span", { className: "hidden lg:flex lg:items-center", children: [
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "ml-4 text-sm/6 font-semibold text-gray-900", children: "Tom Cook" }),
/* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": "true", className: "ml-2 size-5 text-gray-400" })
] })
] }),
/* @__PURE__ */ jsx(
MenuItems,
{
transition: true,
className: "absolute right-0 z-10 mt-2.5 w-32 origin-top-right rounded-md bg-white py-2 ring-1 shadow-lg ring-gray-900/5 transition focus:outline-hidden data-closed:scale-95 data-closed:transform data-closed:opacity-0 data-enter:duration-100 data-enter:ease-out data-leave:duration-75 data-leave:ease-in",
children: userMenuItems?.map((item) => /* @__PURE__ */ jsx(MenuItem, { children: /* @__PURE__ */ jsx(
"a",
{
href: item.href,
className: "block px-3 py-1 text-sm/6 text-gray-900 data-focus:bg-gray-50 data-focus:outline-hidden",
children: item.name
}
) }, item.name))
}
)
] })
] })
] })
] }),
/* @__PURE__ */ jsx("main", { className: "xl:pl-96", children: /* @__PURE__ */ jsx("div", { className: "px-4 py-10 sm:px-6 lg:px-8 lg:py-6", children: /* @__PURE__ */ jsx(Outlet, {}) }) })
] })
] });
};
var MenuView_default = MenuView;
export {
MenuView,
MenuView_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpZXdzL01lbnVWaWV3L01lbnVWaWV3LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dCYWNrZHJvcCxcbiAgRGlhbG9nUGFuZWwsXG4gIE1lbnUsXG4gIE1lbnVCdXR0b24sXG4gIE1lbnVJdGVtLFxuICBNZW51SXRlbXMsXG4gIFRyYW5zaXRpb25DaGlsZFxufSBmcm9tICdAaGVhZGxlc3N1aS9yZWFjdCc7XG5pbXBvcnQge2NufSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgTWVudSBhcyBCYXJzMyxcbiAgQmVsbCxcbiAgQ2FsZW5kYXIsXG4gIENoZXZyb25Eb3duLFxuICBGaWxlcyxcbiAgRm9sZGVyLFxuICBIb21lLFxuICBQaWVDaGFydCxcbiAgU2VhcmNoLFxuICBVc2VycyxcbiAgWFxufSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtPdXRsZXR9IGZyb20gJ3JlYWN0LXJvdXRlcic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi8uLi9jb25maWcvYXBwQ29uZmlnLmpzJztcblxuaW1wb3J0IHR5cGUge0VsZW1lbnRUeXBlLCBGQ30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0dvdGhhbUNvbmZpZ3VyYXRpb259IGZyb20gJy4uL0dvdGhhbS9Hb3RoYW1Qcm92aWRlci5qcyc7XG5cbmNvbnN0IHNpZGVNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7IGN1cnJlbnQ6IHRydWUsIGhyZWY6ICcjJywgaWNvbjogSG9tZSwgbmFtZTogJ0Rhc2hib2FyZCcgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBVc2VycywgbmFtZTogJ1RlYW0nIH0sXG4gIHsgY3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogRm9sZGVyLCBuYW1lOiAnUHJvamVjdHMnIH0sXG4gIHsgY3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogQ2FsZW5kYXIsIG5hbWU6ICdDYWxlbmRhcicgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBGaWxlcywgbmFtZTogJ0RvY3VtZW50cycgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBQaWVDaGFydCwgbmFtZTogJ1JlcG9ydHMnIH1cbl07XG5cbmNvbnN0IHVzZXJNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7IGhyZWY6ICcjJywgbmFtZTogJ1Byb2ZpbGUnIH0sXG4gIHsgaHJlZjogJyMnLCBuYW1lOiAnU2lnbiBvdXQnIH1cbl07XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtcyA9IHtcbiAgcmVhZG9ubHkgY3VycmVudD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhyZWY6IHN0cmluZztcbiAgcmVhZG9ubHkgaWNvbj86IEVsZW1lbnRUeXBlO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVWaWV3UHJvcHMge1xuICBzaWRlTWVudUl0ZW1zOiBNZW51SXRlbXNbXTtcbiAgdXNlck1lbnVJdGVtczogTWVudUl0ZW1zW107XG59XG5cbmV4cG9ydCBjb25zdCBNZW51VmlldzogRkM8TWVudVZpZXdQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IFtzaWRlYmFyT3Blbiwgc2V0U2lkZWJhck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBhcHA6IEdvdGhhbUNvbmZpZ3VyYXRpb25bJ2FwcCddID0gQ29uZmlnLmdldCgnYXBwJykgYXMgR290aGFtQ29uZmlndXJhdGlvblsnYXBwJ107XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPERpYWxvZyBvcGVuPXtzaWRlYmFyT3Blbn0gb25DbG9zZT17c2V0U2lkZWJhck9wZW59IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotNTAgbGc6aGlkZGVuXCI+XG4gICAgICAgIDxEaWFsb2dCYWNrZHJvcFxuICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGJnLWdyYXktOTAwLzgwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0zMDAgZWFzZS1saW5lYXIgZGF0YS1jbG9zZWQ6b3BhY2l0eS0wXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgZmxleFwiPlxuICAgICAgICAgIDxEaWFsb2dQYW5lbFxuICAgICAgICAgICAgdHJhbnNpdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgbXItMTYgZmxleCB3LWZ1bGwgbWF4LXcteHMgZmxleC0xIHRyYW5zZm9ybSB0cmFuc2l0aW9uIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCBkYXRhLWNsb3NlZDotdHJhbnNsYXRlLXgtZnVsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRyYW5zaXRpb25DaGlsZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LWZ1bGwgZmxleCB3LTE2IGp1c3RpZnktY2VudGVyIHB0LTUgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IGRhdGEtY2xvc2VkOm9wYWNpdHktMFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHNldFNpZGViYXJPcGVuKGZhbHNlKX0gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+Q2xvc2Ugc2lkZWJhcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxYIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiB0ZXh0LXdoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1RyYW5zaXRpb25DaGlsZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLXktNSBvdmVyZmxvdy15LWF1dG8gYmctZ3JheS05MDAgcHgtNiBwYi0yIHJpbmctMSByaW5nLXdoaXRlLzEwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGFsdD17YXBwPy50aXRsZX1cbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwPy5sb2dvfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC04IHctYXV0b1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8dWwgcm9sZT1cImxpc3RcIiBjbGFzc05hbWU9XCItbXgtMiBmbGV4LTEgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICB7c2lkZU1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VycmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLWdyYXktODAwIHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTgwMCBob3Zlcjp0ZXh0LXdoaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIGZsZXggZ2FwLXgtMyByb3VuZGVkLW1kIHAtMiB0ZXh0LXNtLzYgZm9udC1zZW1pYm9sZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uaWNvbiAmJiA8aXRlbS5pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiBzaHJpbmstMFwiIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvRGlhbG9nUGFuZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9EaWFsb2c+XG5cbiAgICAgIHsvKiBTdGF0aWMgc2lkZWJhciBmb3IgZGVza3RvcCAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZpeGVkIGxnOmluc2V0LXktMCBsZzpsZWZ0LTAgbGc6ei01MCBsZzpibG9jayBsZzp3LTIwIGxnOm92ZXJmbG93LXktYXV0byBsZzpiZy1ncmF5LTkwMCBsZzpwYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD1cIllvdXIgQ29tcGFueVwiXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9wbHVzLWFzc2V0cy9pbWcvbG9nb3MvbWFyay5zdmc/Y29sb3I9aW5kaWdvJnNoYWRlPTUwMFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoLTggdy1hdXRvXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJtdC04XCI+XG4gICAgICAgICAgPHVsIHJvbGU9XCJsaXN0XCIgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICB7c2lkZU1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VycmVudCA/ICdiZy1ncmF5LTgwMCB0ZXh0LXdoaXRlJyA6ICd0ZXh0LWdyYXktNDAwIGhvdmVyOmJnLWdyYXktODAwIGhvdmVyOnRleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgZmxleCBnYXAteC0zIHJvdW5kZWQtbWQgcC0zIHRleHQtc20vNiBmb250LXNlbWlib2xkJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5pY29uICYmIDxpdGVtLmljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwic2l6ZS02IHNocmluay0wXCIgLz59XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+e2l0ZW0ubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpwbC0yMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTQwIGZsZXggaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIgZ2FwLXgtNCBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgcHgtNCBzaGFkb3cteHMgc206Z2FwLXgtNiBzbTpweC02IGxnOnB4LThcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBzZXRTaWRlYmFyT3Blbih0cnVlKX0gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS03MDAgbGc6aGlkZGVuXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiBzaWRlYmFyPC9zcGFuPlxuICAgICAgICAgICAgPEJhcnMzIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNlwiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICB7LyogU2VwYXJhdG9yICovfVxuICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwiaC02IHctcHggYmctZ3JheS05MDAvMTAgbGc6aGlkZGVuXCIgLz5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZ2FwLXgtNCBzZWxmLXN0cmV0Y2ggbGc6Z2FwLXgtNlwiPlxuICAgICAgICAgICAgPGZvcm0gYWN0aW9uPVwiI1wiIG1ldGhvZD1cIkdFVFwiIGNsYXNzTmFtZT1cImdyaWQgZmxleC0xIGdyaWQtY29scy0xXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtc3RhcnQtMSByb3ctc3RhcnQtMSBibG9jayBzaXplLWZ1bGwgYmctd2hpdGUgcGwtOCB0ZXh0LWJhc2UgdGV4dC1ncmF5LTkwMCBvdXRsaW5lLWhpZGRlbiBwbGFjZWhvbGRlcjp0ZXh0LWdyYXktNDAwIHNtOnRleHQtc20vNlwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxTZWFyY2hcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgY29sLXN0YXJ0LTEgcm93LXN0YXJ0LTEgc2l6ZS01IHNlbGYtY2VudGVyIHRleHQtZ3JheS00MDBcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC00IGxnOmdhcC14LTZcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPEJlbGwgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwic2l6ZS02XCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgey8qIFNlcGFyYXRvciAqL31cbiAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJoaWRkZW4gbGc6YmxvY2sgbGc6aC02IGxnOnctcHggbGc6YmctZ3JheS05MDAvMTBcIiAvPlxuXG4gICAgICAgICAgICAgIHsvKiBQcm9maWxlIGRyb3Bkb3duICovfVxuICAgICAgICAgICAgICA8TWVudSBhcz1cImRpdlwiIGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPE1lbnVCdXR0b24gY2xhc3NOYW1lPVwiLW0tMS41IGZsZXggaXRlbXMtY2VudGVyIHAtMS41XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiB1c2VyIG1lbnU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDcyMDk5NjQ1Nzg1LTU2NThhYmY0ZmY0ZT9peGxpYj1yYi0xLjIuMSZpeGlkPWV5SmhjSEJmYVdRaU9qRXlNRGQ5JmF1dG89Zm9ybWF0JmZpdD1mYWNlYXJlYSZmYWNlcGFkPTImdz0yNTYmaD0yNTYmcT04MFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpemUtOCByb3VuZGVkLWZ1bGwgYmctZ3JheS01MFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXggbGc6aXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cIm1sLTQgdGV4dC1zbS82IGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG9tIENvb2tcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwibWwtMiBzaXplLTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9NZW51QnV0dG9uPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTAgei0xMCBtdC0yLjUgdy0zMiBvcmlnaW4tdG9wLXJpZ2h0IHJvdW5kZWQtbWQgYmctd2hpdGUgcHktMiByaW5nLTEgc2hhZG93LWxnIHJpbmctZ3JheS05MDAvNSB0cmFuc2l0aW9uIGZvY3VzOm91dGxpbmUtaGlkZGVuIGRhdGEtY2xvc2VkOnNjYWxlLTk1IGRhdGEtY2xvc2VkOnRyYW5zZm9ybSBkYXRhLWNsb3NlZDpvcGFjaXR5LTAgZGF0YS1lbnRlcjpkdXJhdGlvbi0xMDAgZGF0YS1lbnRlcjplYXNlLW91dCBkYXRhLWxlYXZlOmR1cmF0aW9uLTc1IGRhdGEtbGVhdmU6ZWFzZS1pblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3VzZXJNZW51SXRlbXM/Lm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpdGVtLm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9jayBweC0zIHB5LTEgdGV4dC1zbS82IHRleHQtZ3JheS05MDAgZGF0YS1mb2N1czpiZy1ncmF5LTUwIGRhdGEtZm9jdXM6b3V0bGluZS1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9NZW51SXRlbXM+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJ4bDpwbC05NlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtNCBweS0xMCBzbTpweC02IGxnOnB4LTggbGc6cHktNlwiPjxPdXRsZXQvPjwvZGl2PlxuICAgICAgICA8L21haW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnVWaWV3OyJdLAogICJtYXBwaW5ncyI6ICI7QUFDQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVEsVUFBUztBQUNqQjtBQUFBLEVBQ0UsUUFBUTtBQUFBLEVBQ1I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUSxnQkFBZTtBQUN2QixTQUFRLGNBQWE7QUFFckIsU0FBUSxjQUFhO0FBc0NiLGNBWVEsWUFaUjtBQWpDUixNQUFNLGdCQUE2QjtBQUFBLEVBQ2pDLEVBQUUsU0FBUyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sTUFBTSxZQUFZO0FBQUEsRUFDMUQsRUFBRSxTQUFTLE9BQU8sTUFBTSxLQUFLLE1BQU0sT0FBTyxNQUFNLE9BQU87QUFBQSxFQUN2RCxFQUFFLFNBQVMsT0FBTyxNQUFNLEtBQUssTUFBTSxRQUFRLE1BQU0sV0FBVztBQUFBLEVBQzVELEVBQUUsU0FBUyxPQUFPLE1BQU0sS0FBSyxNQUFNLFVBQVUsTUFBTSxXQUFXO0FBQUEsRUFDOUQsRUFBRSxTQUFTLE9BQU8sTUFBTSxLQUFLLE1BQU0s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