{"version":3,"file":"home.d14c253e.js","sources":["app/assets/vite/modules/home/elements/Artists.ts","app/assets/vite/modules/home/elements/Badge.ts","app/assets/vite/modules/home/elements/Card.ts","app/assets/vite/modules/home/elements/CourseCard.ts","app/assets/vite/modules/home/elements/CoursePreview.ts","app/assets/vite/modules/home/elements/Grid.ts","app/assets/vite/modules/home/elements/Layout.ts","app/assets/vite/modules/home/assets/background.svg","app/assets/vite/modules/home/elements/Nav.ts","app/assets/vite/modules/home/elements/OrganizeCard.ts","app/assets/vite/modules/home/elements/Page.ts","app/assets/vite/modules/home/elements/Pagination.ts","app/assets/vite/modules/home/elements/Section.ts","app/assets/vite/modules/home/elements/Tickets.ts","app/assets/vite/modules/home/assets/fees-eventbrite.svg","app/assets/vite/modules/home/assets/fees-brownpapertickets.svg","app/assets/vite/modules/home/assets/fees-viewcy.svg","app/assets/vite/modules/home/elements/VideoHeader.ts","app/assets/vite/stores/Stats.ts","app/assets/vite/modules/home/elements/StatsCard.ts","app/assets/vite/modules/home/assets/icon-bank.svg","app/assets/vite/modules/home/assets/icon-crown.svg","app/assets/vite/modules/home/assets/icon-door.svg","app/assets/vite/modules/home/assets/icon-email.svg","app/assets/vite/modules/home/assets/icon-fees.svg","app/assets/vite/modules/home/assets/icon-hand.svg","app/assets/vite/modules/home/assets/icon-knowledge.svg","app/assets/vite/modules/home/assets/icon-megaphone.svg","app/assets/vite/modules/home/assets/icon-nowait.svg","app/assets/vite/modules/home/assets/icon-payments.svg","app/assets/vite/modules/home/assets/icon-premium.svg","app/assets/vite/modules/home/assets/icon-promote.svg","app/assets/vite/modules/home/assets/icon-revenue.svg","app/assets/vite/modules/home/assets/icon-streaming.svg","app/assets/vite/modules/home/assets/icon-support.svg","app/assets/vite/modules/home/assets/icon-team.svg","app/assets/vite/modules/home/assets/icon-upload.svg","app/assets/vite/modules/home/assets/icon-venue.svg","app/assets/vite/modules/home/assets/icon-vip.svg","app/assets/vite/modules/home/assets/icon-vod.svg","app/assets/vite/modules/home/assets/icons.ts","app/assets/vite/modules/home/elements/MembershipCard.ts","app/assets/vite/modules/home/views/Featured.ts","app/assets/vite/modules/home/views/Artists.ts","app/assets/vite/modules/home/views/Discover.ts","app/assets/vite/modules/home/views/ForArtists.ts","app/assets/vite/modules/home/views/ForOrganizers.ts","app/assets/vite/modules/home/views/Memberships.ts","app/assets/vite/modules/home/views/AboutUs.ts","app/assets/vite/modules/home/views/Root.ts"],"sourcesContent":["import { html, define, Component } from \"hybrids\";\nimport User from \"~/stores/User\";\n\ninterface VHomeArtists {\n artists: User[];\n}\n\nexport default define({\n tag: \"v-home-artists\",\n artists: undefined,\n render: ({ artists }) => html`\n \n ${artists.map(\n (artist) => html`\n \n \n ${artist.name}\n \n `\n )}\n \n `.css`\n v-home-card {\n margin: 40px var(--v-ui-layout-spacing) 0;\n padding: var(--v-ui-layout-spacing);\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));\n grid-gap: var(--v-ui-layout-spacing);\n --v-ui-avatar-size: auto;\n }\n\n .artist v-ui-avatar {\n margin: 16px;\n }\n\n .artist v-ui-text {\n text-align: center;\n }\n\n @media (max-width: 767px) {\n :host {\n --v-ui-font-size-default: 12px;\n }\n }\n\n @media (min-width: 768px) {\n v-home-card {\n grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));\n }\n }\n `,\n});\n","import { define, html } from \"hybrids\";\n\ninterface VHomeBadge {\n size: \"\" | \"large\";\n color: \"\";\n}\n\nexport default define({\n tag: \"v-home-badge\",\n size: \"\",\n color: \"\",\n render: ({ color }) => html``.css`\n :host {\n display: block;\n background: var(--v-ui-color-${color}, white);\n padding: 0.25em 0.75em;\n border-radius: 0.5em;\n }\n\n :host([size=\"large\"]) {\n padding: 0.75em 1.5em;\n border-radius: 0.75em;\n box-shadow: 4px 12px 40px rgba(0, 0, 0, 0.05);\n }\n `,\n});\n","import { define, html } from \"hybrids\";\n\nexport default define({\n tag: \"v-home-card\",\n render: () => html`\n `.css`\n :host {\n display: block;\n background: white;\n box-shadow: 4px 12px 40px rgba(0, 0, 0, 0.05);\n border-radius: 16px;\n overflow: hidden;\n }\n `,\n});\n","import { html, define, Component, store } from \"hybrids\";\nimport { isPast } from \"date-fns\";\nimport { enUS } from \"date-fns/locale\";\nimport { format, utcToZonedTime } from \"date-fns-tz\";\n\nimport Course from \"~/stores/Course\";\nimport ArtistVideo from \"~/stores/ArtistVideo\";\n\ninterface VHomeCourseCard {\n course: Course | ArtistVideo;\n start: Date | null;\n end: Date | null;\n session: boolean;\n}\n\nexport default define({\n tag: \"v-home-course-card\",\n course: undefined,\n session: {\n set: ({ course }, lastValue) => lastValue ?? (course as Course).session,\n },\n start: ({ course }) => {\n if (!(\"startsAt\" in course)) return null;\n if (!course) return null;\n\n const startDate = new Date((course as Course).startsAt);\n\n return utcToZonedTime(startDate, (course as Course).timezone);\n },\n end: ({ start, course }) => {\n if (!course) return null;\n\n const endDate = new Date((course as Course).endsAt);\n return start && utcToZonedTime(endDate, (course as Course).timezone);\n },\n render: ({ course, start, end, session }) => html`\n \n \n \n ${start &&\n html`
\n ${format(start, \"dd\")}\n ${format(start, \"MMM\")}\n
`}\n
\n ${!session &&\n html``}\n \n
\n \n ${course.name}\n \n \n \n By\n \n ${course.owner?.name}\n \n
\n ${start &&\n end &&\n html`
\n \n \n \n ${format(start, \"MMMM do, p\", {\n timeZone: (course as Course).timezone,\n locale: enUS,\n })}\n ${!(course as Course).session &&\n html`-\n ${format(start, \"MMMM do\") == format(end, \"MMMM do\")\n ? html`${format(end, \"p\", {\n timeZone: (course as Course).timezone,\n locale: enUS,\n })}`\n : html`${format(end, \"MMMM do, p\", {\n timeZone: (course as Course).timezone,\n locale: enUS,\n })}`} `}\n ${format(start, \" (zzz)\", {\n timeZone: (course as Course).timezone,\n locale: enUS,\n })}\n ${isPast(start) &&\n !isPast(end) &&\n ((course as Course).session\n ? html`New`\n : html`\n \n Happening now\n \n `)}\n \n \n
`}\n ${!!course.sponsors.length &&\n html`
\n \n Sponsors\n \n \n ${course.sponsors.map(\n (sponsor) =>\n html``\n )}\n \n
`}\n ${session &&\n !!course.collaborators.length &&\n html`\n
\n \n Artists\n \n \n ${course.collaborators.map(\n (user) =>\n html``\n )}\n \n
\n `}\n
\n
\n
\n `.css`\n :host {\n display: block;\n --v-ui-avatar-size: 40px;\n --v-ui-text-gutter: 4px;\n --v-ui-color-happening-now-badge: #249cd2;\n }\n\n v-ui-link, v-home-card {\n height: 100%;\n }\n\n v-ui-poster {\n border-radius: 16px 16px 0 0;\n }\n\n v-ui-avatar {\n border: 2px solid white;\n background-color: var(--v-ui-color-background);\n }\n\n #avatar {\n margin-left: 16px;\n margin-top: -20px;\n }\n\n #content {\n padding: 8px 16px 16px;\n --v-ui-avatar-size: 32px;\n }\n\n #content section:not(:last-child) {\n margin-bottom: 8px;\n }\n\n #content v-ui-avatar {\n margin-right: -8px;\n }\n\n #content img.sponsor {\n min-width: 0;\n max-height: 30px;\n flex: 0 1 auto;\n margin: 8px 8px 8px 0;\n }\n\n #time-icon {\n margin-right: 4px;\n }\n\n #day {\n position: absolute;\n top: 0;\n left: 0;\n width: 48px;\n text-align: center;\n border-radius: 16px 0;\n background: var(--v-ui-color-date);\n padding: 8px 0;\n }\n\n #day v-ui-text {\n color: white;\n text-transform: uppercase;\n line-height: 1;\n font-size: 26px;\n }\n\n #day v-ui-text:last-child {\n font-size: 10px;\n letter-spacing: 0.245em;\n }\n\n @media (min-width: 1024px) {\n v-home-card.session {\n height: auto;\n display: grid;\n grid-auto-flow: column;\n grid: auto / 380px auto;\n grid-gap: 24px;\n padding: 30px;\n }\n\n v-home-card.session #name {\n font-size: 22px;\n font-weight: bold;\n }\n\n v-home-card.session v-ui-poster {\n border-radius: 12px;\n }\n\n v-home-card.session #day {\n border-radius: 12px 0;\n }\n\n v-home-card.session #content {\n padding: 0;\n }\n }\n `,\n});\n","import { define, html } from \"hybrids\";\nimport Course from \"~/stores/Course\";\n\ninterface VHomeCoursePreview {\n courses: Course[];\n href: string;\n session: boolean;\n more: boolean;\n limit: number;\n}\n\nexport default define({\n tag: \"v-home-course-preview\",\n courses: undefined,\n href: \"\",\n session: false,\n limit: 3,\n more: ({ courses, limit }) => courses.length > limit,\n render: ({ more, session, limit }) => html`\n
\n
\n \n
\n
\n\n \n `.css`\n :host {\n display: block;\n }\n \n #container {\n display: block;\n margin: 0;\n padding: 20px 0;\n overflow: auto hidden;\n scroll-snap-type: x mandatory;\n -webkit-scroll-behavior: smooth;\n --v-home-grid-gap: 20px;\n }\n\n #container.more {\n margin-bottom: 10px;\n }\n \n #grid {\n margin: 0 auto;\n display: grid;\n grid-template-columns: \n var(--v-home-grid-gap)\n repeat(${limit}, minmax(min(calc(100% - 4 * var(--v-home-grid-gap)), 300px), 1fr))\n var(--v-home-grid-gap);\n grid-gap: var(--v-home-grid-gap);\n }\n\n #grid:before,\n #grid:after {\n content: '';\n max-width: var(--v-home-grid-gap);\n }\n\n #grid ::slotted(*) {\n scroll-snap-align: center;\n }\n\n @media (min-width: 1024px) {\n #container {\n margin: 0 calc(2 * var(--v-home-grid-gap));\n }\n\n #container #grid:before, \n #container #grid:after {\n display: none;\n }\n\n #grid {\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n }\n\n #container.session #grid {\n grid-template-columns: 100%;\n grid-gap: 40px;\n }\n }\n\n @media (min-width: 1200px) {\n #container #grid {\n margin: 0 calc(2 * var(--v-home-grid-gap));\n }\n }\n `,\n content: ({ courses, session, more, href, limit }) => html`\n ${courses\n .slice(0, limit)\n .map(\n (course) =>\n html`\n `\n )}\n ${more &&\n html`\n \n \n `}\n `,\n});\n","import { html, define, Component } from \"hybrids\";\n\ninterface VHomeGrid {\n session: boolean;\n pending: boolean;\n}\n\nexport default define({\n tag: \"v-home-grid\",\n session: false,\n pending: false,\n render: () => html``.css`\n :host {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n grid-gap: 30px;\n padding: var(--v-ui-layout-spacing);\n margin-top: var(--v-ui-layout-spacing);\n transition: opacity 200ms;\n }\n\n :host([session]) {\n grid-template-columns: 100%;\n }\n\n :host([pending]) {\n opacity: 0.5;\n }\n `,\n});\n","import { define, html } from \"hybrids\";\n\nimport background from \"../assets/background.svg\";\n\nexport default define({\n tag: \"v-home-layout\",\n render: () =>\n html`\n \n
\n \n
\n `.css`\n :host {\n display: block;\n background: url(\"${background}\") center top repeat-y;\n background-size: 400% auto;\n min-height: 100vh;\n --v-ui-font-size-h2: 30px;\n }\n \n #container {\n width: 100%;\n max-width: 1200px;\n margin: 0px auto;\n padding: 40px 0;\n }\n \n @media (min-width: 768px) {\n :host {\n background-size: 200% auto;\n --v-ui-layout-spacing: 40px;\n }\n } \n `,\n});\n","export default \"__VITE_ASSET__c73fac5f__\"","import { define, html } from \"hybrids\";\n\nexport default define({\n tag: \"v-home-nav\",\n render: () => html`\n \n \n \n `.css`\n :host {\n display: block;\n pointer-events: none;\n padding: 15px;\n }\n \n v-ui-flexbox {\n padding: 20;\n --v-ui-font-size-button: 15px;\n }\n\n v-ui-flexbox ::slotted(*) {\n height: 32px;\n pointer-events: auto;\n }\n\n v-ui-flexbox ::slotted([color=\"text-primary\"]) {\n text-decoration: underline;\n }\n\n @media (min-width: 992px) {\n :host {\n width: 100%;\n position: absolute;\n top: 0;\n z-index: var(--v-ui-z-index-dialog);\n padding: 0;\n }\n\n v-ui-flexbox {\n margin: 0;\n height: 70px;\n }\n\n v-ui-flexbox ::slotted(*) {\n margin: 0 24px;\n }\n }\n `,\n});\n","import { html, define, Component } from \"hybrids\";\n\nexport default define({\n tag: \"v-home-organize-card\",\n render: () => html`\n \n \n \n `.css`\n :host { display: block }\n \n v-home-card {\n margin: 40px var(--v-ui-layout-spacing);\n display: grid;\n grid-auto-flow: row;\n grid-gap: calc(var(--v-ui-layout-spacing) * 2);\n padding: calc(var(--v-ui-layout-spacing) * 3/2) var(--v-ui-layout-spacing);\n text-align: center;\n }\n\n @media (min-width: 768px) {\n v-home-card {\n grid: auto / repeat(3, 1fr);\n grid-gap: var(--v-ui-layout-spacing);\n }\n }\n\n @media (min-width: 1024px) {\n v-home-card {\n text-align: left;\n }\n }\n `,\n});\n","import { define, html } from \"hybrids\";\n\ninterface VHomePage {\n}\n\nexport default define({\n tag: \"v-home-page\",\n render: () => html`\n \n
\n \n
\n `.css`\n :host {\n display: block;\n margin: 0 auto;\n padding: 0 var(--v-ui-layout-spacing);\n \n --v-ui-color-link: #18A0FB;\n --v-ui-color-page-highlight: #D60B52;\n ;\n }\n\n #footer ::slotted(*) {\n border: 1px solid var(--v-ui-color-background);\n border-radius: 14px;\n padding: var(--v-ui-layout-spacing);\n }\n `,\n});\n","import { html, define, router, Component } from \"hybrids\";\nimport layout from \"~/factories/layout\";\n\ninterface VHomePagination {\n page: number;\n count: number;\n limit: number;\n}\n\nexport default define({\n tag: \"v-home-pagination\",\n page: 1,\n count: 0,\n limit: 0,\n render: layout(\"flex\"),\n content: ({ page, count, limit }) => html`\n \n ${page > 1 &&\n html``}\n ${count === limit &&\n html`\"\n >`}\n \n `,\n});\n","import { html, define, router, Component } from \"hybrids\";\n\ninterface VHomeSection {\n back: boolean;\n backUrl: string;\n}\n\nexport default define({\n tag: \"v-home-section\",\n back: false,\n backUrl: \"\",\n render: ({ back, backUrl }) => html`\n ${back &&\n html`\n \n `}\n \n \n `.css`\n :host {\n display: block;\n padding: calc(var(--v-ui-layout-spacing) * 3 / 4) 0;\n }\n\n :host([back]) {\n padding-top: 0;\n }\n\n #button {\n padding: var(--v-ui-layout-spacing);\n }\n\n #button v-ui-button {\n width: 40px;\n }\n\n :host ::slotted(v-ui-text) {\n text-align: center;\n line-height: 1.2;\n }\n\n slot[name=\"cta\"]::slotted(*) {\n margin-top: 40px;\n }\n\n @media (min-width: 1024px) {\n #button {\n margin-bottom: -86px;\n }\n }\n `,\n});\n","import { define, html } from \"hybrids\";\n\nimport eventbriteImage from \"../assets/fees-eventbrite.svg\";\nimport brownpaperticketsImage from \"../assets/fees-brownpapertickets.svg\";\nimport viewcyImage from \"../assets/fees-viewcy.svg\";\n\ninterface VHomeTickets {\n eventbrite: string;\n brownpapertickets: string;\n viewcy: string;\n}\n\nexport default define({\n tag: \"v-home-tickets\",\n eventbrite: \"\",\n brownpapertickets: \"\",\n viewcy: \"\",\n render: ({ eventbrite, brownpapertickets, viewcy }) => html`\n \n \n \n Eventbrite\n \n \n \n ${eventbrite}\n \n \n \n \n \n \n Brown Paper Tickets\n \n \n \n ${brownpapertickets}\n \n \n \n \n \n \n Viewcy\n \n \n ${viewcy}\n \n \n `.css`\n :host {\n margin: var(--v-ui-layout-spacing) 0;\n display: grid;\n grid-gap: calc(2 * var(--v-ui-layout-spacing)) 0;\n --v-ui-color-tickets-badge-competition: #FAE789;\n --v-ui-color-tickets-badge-viewcy: #99F7BF;\n }\n\n img {\n margin-right: -48px;\n }\n\n @media (min-width: 768px) {\n :host {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n `,\n});\n","export default \"__VITE_ASSET__677186d8__\"","export default \"__VITE_ASSET__bb7db6f6__\"","export default \"__VITE_ASSET__65a1fb05__\"","import { define, html } from \"hybrids\";\n\nimport \"../../broadcast/elements/Player\";\n\ninterface VHomeVideoHeader {\n player: boolean;\n}\n\nconst BG_VIDEO_URL =\n \"https://stream.mux.com/foCJNuXRdvGEO8Y54b8d1kj2fcFXoY01rvAquIbouXW4.m3u8\";\nconst MAIN_VIDEO_URL =\n \"https://stream.mux.com/Gyfj8JTPhOkuS1KcDCYzFvmY02I3Dpd02MiENDc23eNyk.m3u8\";\n\nexport default define({\n tag: \"v-home-video-header\",\n player: false,\n render: ({ player }) => html`\n \n ${player\n ? html`\n \n `\n : html`\n \n
\n \n \n A community in support of musicians\n \n \n Explore music. Produce events. Sponsor culture.\n \n \n \n \n
\n \n \n `}\n \n `.css`\n :host {\n background: black;\n --v-ui-line-height: 1.2em;\n --v-ui-font-size-h1: 40px;\n }\n\n #background-video {\n opacity: 0.36;\n }\n \n v-website-app-badges {\n position: absolute;\n bottom: 25px;\n }\n \n #content-container {\n justify-content: space-between;\n align-items: center;\n }\n\n @media (min-width: 1200px) {\n :host {\n --v-ui-font-size-h1: 64px;\n --v-ui-font-size-h4: 36px;\n }\n \n #content-container {\n justify-content: center;\n }\n }\n `,\n});\n","import { Model, store } from \"hybrids\";\nimport { get } from \"../utils/api\";\n\ninterface Stats {\n projectsFundedCount: number;\n countriesCount: number;\n payoutsSum: number;\n}\n\nconst Stats: Model = {\n projectsFundedCount: 0,\n countriesCount: 0,\n payoutsSum: 0,\n [store.connect]: () => get(\"/stats_settings\"),\n};\n\nexport default Stats;\n","import { define, html, store } from \"hybrids\";\nimport Stats from \"~/stores/Stats\";\nimport mediaQuery from \"~/factories/mediaQuery\";\nimport { formatPrice } from \"~/utils/currency\";\n\ninterface VHomeStatsCard {\n stats: Stats;\n isDesktop: boolean;\n}\n\nexport default define({\n tag: \"v-home-stats-card\",\n stats: store(Stats),\n isDesktop: mediaQuery(\"(min-width: 768px)\"),\n render: ({ stats, isDesktop }) => html`\n \n \n \n ${store.ready(stats) ? stats.projectsFundedCount : \"\"}\n Projects funded\n \n \n ${store.ready(stats) ? formatPrice(stats.payoutsSum, 'USD') : \"\"}\n \n Paid to artists\n \n \n ${store.ready(stats) ? stats.countriesCount : \"\"}\n Countries\n \n \n \n `.css`\n :host {\n display: block;\n max-width: 652px;\n margin: auto;\n margin-top: 50px;\n --v-ui-font-size-h2: 32px;\n }\n .container {\n padding: 0px 25px;\n }\n .separator {\n border-bottom: 1px solid #E9E9E9;\n border-right: none;\n }\n .stat {\n padding: 25px 0px;\n }\n @media(min-width: 768px) {\n .container {\n padding: 30px 0px;\n }\n .separator {\n border-right: 1px solid #E9E9E9;\n border-bottom: none;\n }\n .stat {\n padding: 0;\n }\n }\n `\n});\n","export default \"__VITE_ASSET__8b859b11__\"","export default \"__VITE_ASSET__5cd8c48c__\"","export default \"__VITE_ASSET__ce89ba26__\"","export default \"__VITE_ASSET__b89e10dc__\"","export default \"__VITE_ASSET__89fafea9__\"","export default \"__VITE_ASSET__97e199d4__\"","export default \"__VITE_ASSET__96a1a2e5__\"","export default \"__VITE_ASSET__d7535ad1__\"","export default \"__VITE_ASSET__22ba6ec9__\"","export default \"__VITE_ASSET__ca99a534__\"","export default \"__VITE_ASSET__0b47ae13__\"","export default \"__VITE_ASSET__e3b0c442__\"","export default \"__VITE_ASSET__d73f8480__\"","export default \"__VITE_ASSET__46a95d86__\"","export default \"__VITE_ASSET__ba39576a__\"","export default \"__VITE_ASSET__fe333866__\"","export default \"__VITE_ASSET__2ad251bb__\"","export default \"__VITE_ASSET__6e5f0a0b__\"","export default \"__VITE_ASSET__6cfb31fc__\"","export default \"__VITE_ASSET__19209213__\"","export default Object.entries(import.meta.globEager(\"./icon-*.svg\"))\n .map(([key, value]) => {\n return [\n key.replace(\"./icon-\", \"\").replace(\".svg\", \"\"),\n value.default as string,\n ];\n })\n .reduce((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {} as { [key: string]: string });\n","import { define, html } from \"hybrids\";\nimport layout from \"~/factories/layout\";\nimport icons from \"~/modules/home/assets/icons\";\n\nexport default define({\n tag: \"v-home-membership-card\",\n render: layout(\"block\"),\n content: () => html`\n \n
\n \n \"Lowest\n \n Support the creation of new music\n \n 70% of subscriptions fund new music, curated by the artists themselves.\n \n
\n
\n \n \"Money\n \n Exclusive access to Knowledge\n \n Lectures, demonstrations, and talks by master musicians.\n \n
\n
\n \n \"Accept\n \n Exclusive access to Pre-releases\n \n Get early access to all new music being created on the platform.\n \n
\n
\n `\n})\n","import { define, html, store, router } from \"hybrids\";\nimport Course, { PER_PAGE } from \"~/stores/Course\";\n\ninterface VHomeFeaturedView {\n page: number;\n courses: Course[];\n}\n\nexport default define({\n [router.connect]: { url: \"/discover/featured\" },\n tag: \"v-home-featured-view\",\n page: 1,\n courses: store([Course], { id: ({ page }) => ({ page, featured: true }) }),\n content: ({ courses, page }) => html`\n \n \n Featured events by the community\n \n \n ${store.ready(courses) &&\n courses.map((course) =>\n html``.key(course.id)\n )}\n \n \n \n `,\n});\n","import { define, html, store, router } from \"hybrids\";\nimport layout from \"~/factories/layout\";\nimport User from \"~/stores/User\";\n\ninterface VHomeArtistsView {\n artists: User[];\n}\n\nexport default define({\n [router.connect]: { url: \"/discover/artists\" },\n tag: \"v-home-artists-view\",\n artists: store([User], { id: () => ({ filter: \"artists\" }) }),\n render: layout(\"flex\"),\n content: ({ artists }) => html`\n \n \n Featured creators\n \n \n \n `,\n});\n","import { define, html, router, store } from \"hybrids\";\n\nimport layout from \"~/factories/layout\";\nimport ArtistVideo from \"~/stores/ArtistVideo\";\nimport Course from \"~/stores/Course\";\nimport Tag from \"~/stores/Tag\";\nimport User from \"~/stores/User\";\n\nimport Artists from \"./Artists\";\nimport Featured from \"./Featured\";\nimport TagMain from \"./TagMain\";\nimport TaggedCreators from \"./TaggedCreators\";\nimport TaggedUpcomingEvents from \"./TaggedUpcomingEvents\";\nimport TaggedRecentEvents from \"./TaggedRecentEvents\";\nimport VideoList, { List } from \"~/modules/website/views/VideoList\";\n\ninterface VHomeDiscoverView {\n featured: Course[];\n ondemand: ArtistVideo[];\n artists: User[];\n featuredTags: Tag[];\n}\n\nexport default define({\n [router.connect]: {\n url: \"/\",\n stack: [Featured, Artists, TagMain, TaggedCreators, TaggedUpcomingEvents, TaggedRecentEvents, VideoList],\n },\n tag: \"v-home-discover-view\",\n featured: store([Course], { id: () => ({ page: 1, featured: true }) }),\n ondemand: store([ArtistVideo], { id: () => ({ page: 1 }) }),\n artists: store([User], { id: () => ({ filter: \"artists\" }) }),\n featuredTags: store([Tag], { id: () => ({ featured: true }) }),\n render: layout(\"block\"),\n content: ({ featured, ondemand, artists, featuredTags }) => html`\n \n Explore a World of music\n \n \n And be a patron to the artists who make it.\n \n \n\n ${store.ready(featuredTags) &&\n !!featuredTags.length &&\n html`\n \n \n ${featuredTags.map(\n (featuredTag) => html`\n \n `\n )}\n \n `}\n\n\n ${store.ready(ondemand) &&\n !!ondemand.length &&\n html`\n \n \n Videos\n \n \n `}\n ${store.ready(featured) &&\n !!featured.length &&\n html`\n \n \n Featured events by the community\n \n \n `}\n ${store.ready(artists) &&\n !!artists.length &&\n html`\n \n \n Featured creators\n \n \n ${artists.length > 12 &&\n html`\n \n \n `}\n \n `}\n `,\n});\n","import { define, html, router, store } from \"hybrids\";\nimport layout from \"~/factories/layout\";\nimport Session from \"~/stores/Session\";\nimport { redirectToSignIn, sendTo } from \"~/utils/redirections\";\n\nconst proposalFormURL = \"https://docs.google.com/forms/d/e/1FAIpQLSc6TooDMP3zGcPVAiyUYhi7WzXTBeEch4cHOPLOPgLqlX-CfA/viewform\";\n\nexport interface VHomeForArtistsView extends HTMLElement {\n session: Session;\n proposing: boolean;\n showErrorMessage: boolean;\n}\n\nconst submitProposalHandler = async (host: VHomeForArtistsView, event: Event = {}) => {\n try {\n const session = await store.resolve(host.session);\n // TODO Update this condition to check if the current user is an artist\n if (session.user.artist) {\n sendTo(proposalFormURL);\n } else {\n host.showErrorMessage = true;\n }\n } catch (error) {\n redirectToSignIn(\"proposing=true\");\n }\n}\n\nexport default define({\n [router.connect]: { url: \"/organize/artists?proposing\" },\n tag: \"v-home-for-artists-view\",\n session: store(Session),\n showErrorMessage: false,\n proposing: {\n value: false,\n observe(host, value) {\n if (value) {\n submitProposalHandler(host);\n }\n }\n },\n render: layout(\"block\"),\n content: ({ showErrorMessage }) => html`\n ${showErrorMessage && html`\n \n We don’t recognize you as a Viewcy artist—someone who has performed through Sessions. If you are getting\n this message in error and have a question, or if you would like to introduce yourself and join the community,\n \n \n join our Discord.\n \n \n `}\n \n \n Collaborate and access funding\n \n \n Artist-curated, community funded Sessions, by artists, for artists.\n \n \n \n \n \n \n Sessions aim to unlock the centuries old dynamic between patron and artist—an unmatched catalyst for artistic\n brilliance. From the Griots of West Africa, to the legendary composers of Europe, to the Ustads of South Asia,\n patronage has created some of the world’s most advanced and enduring musical traditions. Sessions modernizes\n sponsorship for the internet age and is our best attempt to realize our vision of a world that honors and values\n music. We focus on giving patrons and sponsors the infrastructure and incentives to be creative partners, a\n time-tested context for some of the best creative work in history. This context has three main ingredients:\n \n \n
    \n
  1. Funding
  2. \n
  3. \n A community (a knowledgeable curator, a host, musicians, support\n staff, etc.)\n
  4. \n
  5. An environment (a virtual venue, and a library)
  6. \n
\n
\n \n \n \n \n \n \n \n \n Every Session gets access to funding via the\n \n \n Universal Creator Income Fund (UCIF)\n \n \n — a Viewcy community initiative. Community support is paramount to the cultivation of art and music. On Viewcy,\n individuals can contribute by\n \n \n joining Viewcy as a member\n \n \n \n \n Artist must submit a proposal to get funding. Proposals are selected based on three criteria:\n
    \n
  1. Impact on the diversity of our catalog
  2. \n
  3. \n Cultural significance\n
  4. \n
  5. Audio and video quality
  6. \n
\n
\n \n \n \n \n \n \n \n `.css`\n v-home-for-artists-view { \n margin: 0 2rem;\n }\n \n @media (min-width: 1200px) {\n v-home-for-artists-view { \n margin: 0 16rem;\n }\n }\n `,\n});\n","import { define, html, router } from \"hybrids\";\nimport layout from \"~/factories/layout\";\nimport icons from \"../assets/icons\";\n\nimport VideoList, { List } from \"~/modules/website/views/VideoList\";\n\ninterface VForOrganizersArtistsView {}\n\nexport default define({\n [router.connect]: { stack: [VideoList], url: \"/organize/organizers\" },\n tag: \"v-home-for-organizers-view\",\n render: layout(\"block\"),\n content: () => html`\n \n \n Sell tickets & stream video\n \n \n 33% of our low fees go to\n \n the Universal Creator Income Fund\n \n \n \n \n \n \n\n \n Ticketing\n \n
\n \n \"Lowest\n \n Lowest fees\n \n Our ticketing fees are some of the lowest out there. 33% of the fees\n go into a Universal Creator Income Fund to support artist communities.\n \n Learn more.\n \n \n
\n
\n \n \"Money\n \n Money in the bank\n \n With Stripe Connect and Paypal Marketplace, tickets and donations\n from your events go straight to your bank with no added wait time.\n \n
\n
\n \n \"Accept\n \n Accept payments globally\n \n We support 135 currencies. If a currency isn't supported, we go to\n great lengths to help find a way to support you.\n \n
\n
\n
\n\n \n Streaming\n \n
\n \n \"Upload\n \n Upload and schedule\n \n Stream pre-recorded video in HD. Our team is here to help.\n \n
\n
\n \n \"RTMP\n \n RTMP streaming\n \n Use OBS or any other encoder to stream to your dedicated Viewcy\n stream key. Set the video to be available on-demand for a limited\n time, or open ended.\n \n
\n
\n \n \"Interactive\n \n Interactive virtual venue\n \n Audiences can enjoy the show, chat, applaud, donate, and follow\n artists and friends. Try it out by exploring our\n \n free concerts on demand.\n \n \n
\n
\n
\n\n \n Promotion\n \n
\n \n \"Engage\n \n Engage artists\n \n Our collaborative, community driven architecture encourages artists\n to promote, and allows them to manage their own profile, saving time\n for venues and increasing ticket sales.\n \n
\n
\n \n \n \n \n Unparalleled promotional support\n \n \n We create beautiful, sharable content and activate your artists to\n promote your events.\n \n
\n
\n \n \"Sponsorships\"\n \n Sponsorships\n \n Viewcy connects venues with sponsors that pay to promote to online\n viewers.\n \n
\n
\n
\n \n \n Logistics\n \n
\n \n \"No\n \n No wait time on revenue\n \n With Stripe connect and Paypal marketplace, the money from tickets\n and donations go straight to your bank account.\n \n
\n
\n \n \"Email\n \n Email data\n \n Collect emails for your events and streams. Export the data to CSV,\n and upload it directly to your email software. Hosting events on\n Viewcy is a powerful way to grow your email list from your live\n content.\n \n
\n
\n \n \"VIP\n \n VIP access\n \n Issue direct access links or create secret tickets to give easy\n access to your VIP's and special guests.\n \n
\n
\n
\n `,\n});\n","import {define, html, router} from \"hybrids\";\n\ninterface VForOrganizersArtistsView {\n}\n\nexport default define({\n [router.connect]: {url: \"/pages/memberships\"},\n tag: \"v-home-memberships-view\",\n render: () => html`\n \n \n Join the movement. Become a member.\n \n \n \n \n \n \n \n FAQ\n \n
    \n
  • Be a part of preserving our global cultural heritage by funding artist-curated new music projects.\n
  • \n
  • Get access to knowledge: lectures, talks, and demonstrations.
  • \n
  • Get early access to new music being created.
  • \n
\n
\n \n Seventy percent is paid to artists to create new music. Thirty percent is used to develop the Viewcy\n platform.\n \n \n Artists who have performed on Viewcy can curate Sessions by submitting proposals. The Viewcy Team assesses\n proposals based on their cultural significance, the diversity of content they bring to the platform, the\n popularity of the artists, and the production costs.\n \n \n Every week! The more members, the more music gets created.\n \n \n New Knowledge content is created and released every month. The amount of Knowledge content we can create\n increases with every membership.\n \n \n Log into your Viewcy account on your browser and click on “Membership” from the main menu in the top right\n of\n the browser.\n
    \n
  • If you purchased on IOS, go to your IOS Settings / Subscriptions and cancel.
  • \n
\n
\n \n Yes. Log into your Viewcy account and click on “Membership” from the main menu in the top right of the\n browser.\n \n
\n \n \n \n \n \n
\n `.css`\n :host {\n --v-ui-font-size-h1: 40px;\n --v-ui-font-size-h2: 38px;\n }\n v-ui-drop-down-content:last-child {\n border-bottom: 1px solid;\n border-bottom: 1px solid #E9E9E9;\n }\n v-ui-section:last-child {\n padding-top: 20px;\n }\n `,\n});\n","import { define, html, store, router } from \"hybrids\";\nimport layout from \"~/factories/layout\";\n\nimport Memberships from \"./Memberships\"\n\nexport default define({\n [router.connect]: { url: \"/pages/about_us\" },\n tag: \"v-home-about-us-view\",\n render: layout(\"block\"),\n content: () => html`\n \n \n \n About Us\n \n \n \n \n Overview\n \n Viewcy’s mission is to preserve music cultures from around the world.\n We focus on supporting musicians, fostering intercultural dialogue,\n and increasing cross-border collaboration. And we work with and support\n emerging talent and musical leaders from all over the planet.\n \n \n \n How Viewcy works\n \n On Viewcy, event producers sell tickets and stream their shows live,\n while music lovers access our community-funded, artists-curated catalog\n of music. 33% of fees collected from memberships and ticket fees are\n circulated back to support artists to create new music.\n \n \n \n Get involved\n \n Everyone can participate in preserving our cultural heritage.\n For event creators it costs nothing. For members, it costs as little\n as a cappuccino.\n \n \n
    \n
  1. \n \n Become a member.\n \n Starting at $5/month\n
  2. \n
  3. \n \n Produce events and sell tickets using Viewcy\n \n
  4. \n
\n
\n \n \n Paying it forward: A story\n \n In my early attempts at being a professional musician,\n a friend and I went into the NYC subway to play for an hour\n and see if we could make some money. At times, we were working\n for $25 a night. We thought, could this be better?\n \n \n The experience was demoralizing. The sound from the subway cars was\n deafening, and the people avoiding eye contact was disheartening. The\n only energy we got was from a homeless man sitting on the floor across\n the tracks, sending us a thumbs up through his half-cut gloves. He was\n listening, and that was enough.\n \n \n As we prepared to leave, our homeless friend made the journey onto\n our platform, walked up, and thanked us for the music. He then handed\n over whatever change he had. It was the most profound act of generosity\n I have ever experienced.\n \n \n In a humble attempt to pass it forward, Viewcy is dedicated to him.\n \n \n \n Curation on Viewcy\n \n On Viewcy, our music catalog is curated by artists. In 2020, at the\n peak of the pandemic, I invited several dear friends from India, where\n I spent over two decades learning, to kick us off. Underrepresented in\n their country, and performers of the highest caliber, they seemed like\n the perfect starting point.\n \n \n After their performance, we invited them to select the next group\n of artists. The next group of artists would then go on to invite the\n next group, and so on. From week to week, our network expanded and now\n includes musicians from West Africa, North Africa, South Asia,\n Europe, and the Americas.\n \n
\n `.css`\n v-home-page {\n box-sizing: border-box;\n }\n v-ui-text {\n margin-top: .5rem;\n }\n ol {\n padding-left: 1em;\n }\n `,\n});\n","import { define, html, router } from \"hybrids\";\nimport layout from \"~/factories/layout\";\n\nimport Featured from \"./Featured\";\nimport Discover from \"./Discover\";\nimport ForArtists from \"./ForArtists\";\nimport ForOrganizers from \"./ForOrganizers\";\nimport Memberships from './Memberships';\nimport AboutUs from './AboutUs';\n\ninterface VHomeRoot {\n views: HTMLElement[];\n}\n\nexport default define({\n tag: \"v-home-root\",\n views: router([Featured, ForArtists, ForOrganizers, Memberships, Discover, AboutUs]),\n render: layout(\"block\"),\n content: ({ views }) => html`\n \n \n \n \n \n \n ${router.active(Discover) &&\n html`\n `}\n ${views}\n \n `,\n});\n"],"names":["define","tag","artists","render","html","map","artist","pathname","avatar","name","css","size","color","course","session","set","lastValue","start","startDate","Date","startsAt","utcToZonedTime","timezone","end","endDate","endsAt","url","thumbnail","format","_a","owner","avatarThumbnail","_b","timeZone","locale","enUS","isPast","sponsors","length","sponsor","image","collaborators","user","courses","href","limit","more","content","slice","pending","page","count","layout","router","currentUrl","scrollToTop","back","backUrl","eventbrite","brownpapertickets","viewcy","player","Stats","projectsFundedCount","countriesCount","payoutsSum","store","connect","get","stats","isDesktop","mediaQuery","ready","formatPrice","icons","Object","entries","__glob_0_0","__glob_0_1","__glob_0_2","__glob_0_3","__glob_0_4","__glob_0_5","__glob_0_6","__glob_0_7","__glob_0_8","__glob_0_9","__glob_0_10","__glob_0_11","__glob_0_12","__glob_0_13","__glob_0_14","__glob_0_15","__glob_0_16","__glob_0_17","__glob_0_18","__glob_0_19","key","value","replace","default","reduce","acc","support","knowledge","premium","Featured","Course","id","featured","PER_PAGE","Artists","User","filter","Discover","stack","TagMain","TaggedCreators","TaggedUpcomingEvents","TaggedRecentEvents","VideoList","ondemand","ArtistVideo","featuredTags","Tag","featuredTag","tagObject","listName","List","ONDEMAND","submitProposalHandler","async","host","event","resolve","sendTo","showErrorMessage","error","redirectToSignIn","ForArtists","Session","proposing","observe","ForOrganizers","fees","bank","payments","upload","streaming","venue","email","megaphone","crown","revenue","vip","Memberships","AboutUs","views","active"],"mappings":"ujBAOeA,EAAqB,CAClCC,IAAK,iBACLC,aAAS,EACTC,OAAQ,EAAGD,QAAAA,KAAcE,CAAA;;QAEnBF,EAAQG,KACPC,GAAWF,CAAA;4CACwBE,EAAOC;gCACnBD,EAAOE;2CACIF,EAAOG;;;;IAK9CC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCdWV,EAAmB,CAChCC,IAAK,eACLU,KAAM,GACNC,MAAO,GACPT,OAAQ,EAAGS,MAAAA,KAAYR,CAAoB,gBAAAM,GAAA;;;qCAGRE;;;;;;;;;;MCZtBZ,EAAO,CACpBC,IAAK,cACLE,OAAQ,IAAMC,CAAA;mBACGM,GAAA;;;;;;;;MCUJV,EAAwB,CACrCC,IAAK,qBACLY,YAAQ,EACRC,QAAS,CACPC,IAAK,EAAGF,OAAAA,GAAUG,UAAcA,IAAcH,EAAkBC,SAElEG,MAAO,EAAGJ,OAAAA,MACR,KAAM,aAAcA,GAAgB,OAAA,KACpC,IAAKA,EAAe,OAAA,KAEpB,MAAMK,EAAY,IAAIC,KAAMN,EAAkBO,UAEvC,OAAAC,EAAeH,EAAYL,EAAkBS,WAEtDC,IAAK,EAAGN,MAAAA,EAAOJ,OAAAA,MACb,IAAKA,EAAe,OAAA,KAEpB,MAAMW,EAAU,IAAIL,KAAMN,EAAkBY,QAC5C,OAAOR,GAASI,EAAeG,EAAUX,EAAkBS,WAE7DnB,OAAQ,EAAGU,OAAAA,EAAQI,MAAAA,EAAOM,IAAAA,EAAKT,QAAAA,cAAc,OAAAV,CAAA;uBACxBS,EAAOa;4BACF,CAAEZ,QAAAA;4BACFD,EAAOc;YACvBV,GACFb,CAAA;uCAC6BwB,EAAOX,EAAO;2CACVW,EAAOX,EAAO;;;WAG9CH,GACHV,CAAA;;iBAES,OAAAyB,EAAAhB,EAAOiB,YAAO,EAAAD,EAAAE;;;;;gBAKflB,EAAOJ;;;;;;gBAMP,OAAAuB,EAAAnB,EAAOiB,YAAO,EAAAE,EAAAvB;;;YAGlBQ,GACFM,GACAnB,CAAA;;;;;;;;;kBASQwB,EAAOX,EAAO,aAAc,CAC5BgB,SAAWpB,EAAkBS,SAC7BY,OAAQC;mBAENtB,EAAkBC,SACtBV,CAAA;kBACEwB,EAAOX,EAAO,YAAcW,EAAOL,EAAK,WACtCnB,CAAA,GAAOwB,EAAOL,EAAK,IAAK,CACtBU,SAAWpB,EAAkBS,SAC7BY,OAAQC,MAEV/B,CAAO,GAAAwB,EAAOL,EAAK,aAAc,CAC/BU,SAAWpB,EAAkBS,SAC7BY,OAAQC;kBAEZP,EAAOX,EAAO,SAAU,CACxBgB,SAAWpB,EAAkBS,SAC7BY,OAAQC;kBAERC,EAAOnB,KACRmB,EAAOb,KACNV,EAAkBC,QAChBV,CACA,yDAAAA,CAAA;;;;;;;;cAQNS,EAAOwB,SAASC,QACpBlC,CAAA;;;;;gBAKMS,EAAOwB,SAAShC,KACfkC,GACCnC,CAAA;;2BAESmC,EAAQC;6BACND,EAAQ9B;;;;YAKzBK,KACAD,EAAO4B,cAAcH,QACvBlC,CAAA;;;;;;kBAMQS,EAAO4B,cAAcpC,KACpBqC,GACCtC,CAAA;6BACSsC,EAAKX;+BACHW,EAAKjC;;;;;;;;IAShCC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClIWV,EAA2B,CACxCC,IAAK,wBACL0C,aAAS,EACTC,KAAM,GACN9B,SAAS,EACT+B,MAAO,EACPC,KAAM,EAAGH,QAAAA,EAASE,MAAAA,KAAYF,EAAQL,OAASO,EAC/C1C,OAAQ,EAAG2C,KAAAA,EAAMhC,QAAAA,EAAS+B,MAAAA,KAAYzC,CAAA;iCACP,CAAE0C,KAAAA,EAAMhC,QAAAA;;;;;;;IAOrCJ,GAAA;;;;;;;;;;;;;;;;;;;;;;;;iBAwBamC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyCfE,QAAS,EAAGJ,QAAAA,EAAS7B,QAAAA,EAASgC,KAAAA,EAAMF,KAAAA,EAAMC,MAAAA,KAAYzC,CAAA;MAClDuC,EACCK,MAAM,EAAGH,GACTxC,KACEQ,GACCT,CAAA;;yBAEeU;wBACDD;;MAGlBiC,GACF1C,CAAA;;0EAEsEwC;;MClG3D5C,EAAkB,CAC/BC,IAAK,cACLa,SAAS,EACTmC,SAAS,EACT9C,OAAQ,IAAMC,CAAoB,gBAAAM,GAAA;;;;;;;;;;;;;;;;;MCPrBV,EAAO,CACpBC,IAAK,gBACLE,OAAQ,IACNC,CAAA;;;;;MAKEM,GAAA;;;2BCZS;;;;;;;;;;;;;;;;;;;QCEAV,EAAO,CACpBC,IAAK,aACLE,OAAQ,IAAMC,CAAA;;;;IAIZM,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCNWV,EAAO,CACpBC,IAAK,uBACLE,OAAQ,IAAMC,CAAA;;;;IAIZM,GAAA;;;;;;;;;;;;;;;;;;;;;;;;MCHWV,EAAkB,CAC/BC,IAAK,cACLE,OAAQ,IAAMC,CAAA;;;;;IAKZM,GAAA;;;;;;;;;;;;;;;;MCHWV,EAAwB,CACrCC,IAAK,oBACLiD,KAAM,EACNC,MAAO,EACPN,MAAO,EACP1C,OAAQiD,EAAO,QACfL,QAAS,EAAGG,KAAAA,EAAMC,MAAAA,EAAON,MAAAA,KAAYzC,CAAA;;QAE/B8C,EAAO,GACT9C,CAAA;gBACUiD,EAAOC,WAAW,CAAEJ,KAAMA,EAAO,EAAGK,aAAa;;;;QAIzDJ,IAAUN,GACZzC,CAAA;gBACUiD,EAAOC,WAAW,CAAEJ,KAAMA,EAAO,EAAGK,aAAa;;;;;MClBlDvD,EAAqB,CAClCC,IAAK,iBACLuD,MAAM,EACNC,QAAS,GACTtD,OAAQ,EAAGqD,KAAAA,EAAMC,QAAAA,KAAcrD,CAAA;MAC3BoD,GACFpD,CAAA;;gBAEYqD,GAAWJ,EAAOI;;;;;;;;;IAS9B/C,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCZWV,EAAqB,CAClCC,IAAK,iBACLyD,WAAY,GACZC,kBAAmB,GACnBC,OAAQ,GACRzD,OAAQ,EAAGuD,WAAAA,EAAYC,kBAAAA,EAAmBC,OAAAA,KAAaxD,CAAA;;kBCjB1C;;;;;;;;;;;YD8BHsD;;;;;kBE9BG;;;;;;;;;;;YF8CHC;;;;;kBG9CG;;;;;;;;;;qDH6DsCC;;;IAGjDlD,GAAA;;;;;;;;;;;;;;;;;;MInDWV,EAAyB,CACtCC,IAAK,sBACL4D,QAAQ,EACR1D,OAAQ,EAAG0D,OAAAA,KAAazD,CAAA;;;;;QAKlByD,EACEzD,CAAA;;;mBAXF;;UAiBEA,CAAA;;;;mBAnBF;;;;;;;;;;;;;;;;;2BAwCmBA,EAAKW,IAAI,UAAU;;;;;;;;;;;;;;;IAe1CL,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCvDJ,MAAMoD,EAAsB,CAC1BC,oBAAqB,EACrBC,eAAgB,EAChBC,WAAY,EACZ,CAACC,EAAMC,SAAU,IAAMC,EAAI,oBCHdpE,EAAuB,CACpCC,IAAK,oBACLoE,MAAOH,EAAMJ,GACbQ,UAAWC,EAAW,sBACtBpE,OAAQ,EAAGkE,MAAAA,EAAOC,UAAAA,KAAgBlE,CAAA;;8CAEUkE,EAAY,MAAQ;;kDAEhBJ,EAAMM,MAAMH,GAASA,EAAMN,oBAAsB;;;;kDAIjDG,EAAMM,MAAMH,GAASI,EAAYJ,EAAMJ,WAAY,OAAS;;;;;kDAK5DC,EAAMM,MAAMH,GAASA,EAAML,eAAiB;;;;;IAK1FtD,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MChCJ,kEAAe,2ICAA,4ICAA,2ICAA,4ICAA,2ICAA,2ICAA,gJCAA,gJCAA,6ICAA,+ICAA,8ICAA,8ICAA,8ICAA,gJCAA,8ICAA,2ICAA,6ICAA,4ICAA,0ICAA,4ECAAgE,EAAAC,OAAOC,QAAQ,CAAA,kBAAAC,EAAA,mBAAAC,EAAA,kBAAAC,EAAA,mBAAAC,EAAA,kBAAAC,EAAA,kBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,oBAAAC,EAAA,sBAAAC,EAAA,qBAAAC,EAAA,qBAAAC,EAAA,qBAAAC,EAAA,uBAAAC,EAAA,qBAAAC,EAAA,kBAAAC,EAAA,oBAAAC,EAAA,mBAAAC,EAAA,iBAAAC,EAAA,iBAAAC,IAC3B3F,KAAI,EAAE4F,EAAKC,KACH,CACLD,EAAIE,QAAQ,UAAW,IAAIA,QAAQ,OAAQ,IAC3CD,EAAME,WAGTC,QAAO,CAACC,GAAML,EAAKC,MAClBI,EAAIL,GAAOC,EACJI,IACN,ICNUtG,EAAO,CACpBC,IAAK,yBACLE,OAAQiD,EAAO,SACfL,QAAS,IAAM3C,CAAA;;;;sBAIKsE,EAAM6B;;;;;;;;;sBASN7B,EAAM8B;;;;;;;;;sBASN9B,EAAM+B;;;;;;;;MCrB5B,IAAAC,EAAe1G,EAA0B,CACvC,CAACqD,EAAOc,SAAU,CAAEzC,IAAK,sBACzBzB,IAAK,uBACLiD,KAAM,EACNP,QAASuB,EAAM,CAACyC,GAAS,CAAEC,GAAI,EAAG1D,KAAAA,OAAcA,KAAAA,EAAM2D,UAAU,MAChE9D,QAAS,EAAGJ,QAAAA,EAASO,KAAAA,KAAW9C,CAAA;;;;;8BAKJ8D,EAAMjB,QAAQN;UAClCuB,EAAMM,MAAM7B,IACdA,EAAQtC,KAAKQ,GACXT,CAAA;sBACYS;wBACC;kCACWoF,IAAIpF,EAAO+F;;;gBAI7B1D;iBACCgB,EAAMM,MAAM7B,GAAWA,EAAQL,OAAS;iBACxCwE;;;MCtBjBC,EAAe/G,EAAyB,CACtC,CAACqD,EAAOc,SAAU,CAAEzC,IAAK,qBACzBzB,IAAK,sBACLC,QAASgE,EAAM,CAAC8C,GAAO,CAAEJ,GAAI,KAAA,CAASK,OAAQ,cAC9C9G,OAAQiD,EAAO,QACfL,QAAS,EAAG7C,QAAAA,KAAcE,CAAA;;;;;iCAKKF;;MCKjCgH,EAAelH,EAA0B,CACvC,CAACqD,EAAOc,SAAU,CAChBzC,IAAK,IACLyF,MAAO,CAACT,EAAUK,EAASK,EAASC,EAAgBC,EAAsBC,EAAoBC,IAEhGvH,IAAK,uBACL4G,SAAU3C,EAAM,CAACyC,GAAS,CAAEC,GAAI,KAAO,CAAE1D,KAAM,EAAG2D,UAAU,MAC5DY,SAAUvD,EAAM,CAACwD,GAAc,CAAEd,GAAI,KAAA,CAAS1D,KAAM,MACpDhD,QAASgE,EAAM,CAAC8C,GAAO,CAAEJ,GAAI,KAAA,CAASK,OAAQ,cAC9CU,aAAczD,EAAM,CAAC0D,GAAM,CAAEhB,GAAI,KAAA,CAASC,UAAU,MACpD1G,OAAQiD,EAAO,SACfL,QAAS,EAAG8D,SAAAA,EAAUY,SAAAA,EAAUvH,QAAAA,EAASyH,aAAAA,KAAmBvH,CAAA;;;;;;;;;;;;MAYxD8D,EAAMM,MAAMmD,MACZA,EAAarF,QACflC,CAAA;;;YAGQuH,EAAatH,KACZwH,GAAgBzH,CAAA;;wBAELyH,EAAYpH;;;wBAGZ4C,EAAO3B,IAAI0F,EAAS,CAAEU,UAAWD;;;;;;;MAQnD3D,EAAMM,MAAMiD,MACZA,EAASnF,QACXlC,CAAA;;;;;;qBAMiBqH;kBACHpE,EAAO3B,IAAI8F,EAAW,CAAEO,SAAUC,EAAKC;;;;MAInD/D,EAAMM,MAAMqC,MACZA,EAASvE,QACXlC,CAAA;;;;;;qBAMiByG;kBACHxD,EAAO3B,IAAIgF;;;;MAIvBxC,EAAMM,MAAMtE,MACZA,EAAQoC,QACVlC,CAAA;;;;;mCAK+BF,EAAQ8C,MAAM,EAAG;UAC1C9C,EAAQoC,OAAS,IACnBlC,CAAA;;;;;;sBAMciD,EAAO3B,IAAIqF;;;;;MCrGjC,MAQMmB,EAAwBC,MAAOC,EAA2BC,EAAe,MACzE,WACoBnE,EAAMoE,QAAQF,EAAKtH,UAE7B4B,KAAKpC,OACfiI,EAbkB,uGAelBH,EAAKI,kBAAmB,QAEnBC,GACPC,EAAiB,oBAIrB,IAAAC,EAAe3I,EAA4B,CACzC,CAACqD,EAAOc,SAAU,CAAEzC,IAAK,+BACzBzB,IAAK,0BACLa,QAASoD,EAAM0E,GACfJ,kBAAkB,EAClBK,UAAW,CACT3C,OAAO,EACP4C,QAAQV,EAAMlC,GACRA,GACFgC,EAAsBE,KAI5BjI,OAAQiD,EAAO,SACfL,QAAS,EAAGyF,iBAAAA,KAAuBpI,CAAA;MAC/BoI,GAAoBpI,CAAA;;;;;;;;;;;;;;;;;;;;;;;qBAuBL8H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA8BEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAsCAA;;;;;IAKnBxH,GAAA;;;;;;;;;;MClIJqI,EAAe/I,EAAkC,CAC/C,CAACqD,EAAOc,SAAU,CAAEgD,MAAO,CAACK,GAAY9F,IAAK,wBAC7CzB,IAAK,6BACLE,OAAQiD,EAAO,SACfL,QAAS,IAAM3C,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2BOsE,EAAMsE;;;;;;;;;;;;;wBAaNtE,EAAMuE;;;;;;;;;;wBAUNvE,EAAMwE;;;;;;;;;;;;;;;;wBAgBNxE,EAAMyE;;;;;;;;;wBASNzE,EAAM0E;;;;;;;;;;;wBAWN1E,EAAM2E;;;;;;yCAMWhG,EAAO3B,IAAI8F,EAAW,CAAEO,SAAUC,EAAKC;;;;;;;;;;;;;wBAaxDvD,EAAM4E;;;;;;;;;;;;qBAYT5E,EAAM6E;;;;;;;;;;;;;;wBAcH7E,EAAM8E;;;;;;;;;;;;;;;;wBAgBN9E,EAAM+E;;;;;;;;;;wBAUN/E,EAAM4E;;;;;;;;;;;;wBAYN5E,EAAMgF;;;;;;;;;;MChL9BC,GAAe3J,EAAkC,CAC/C,CAACqD,EAAOc,SAAU,CAACzC,IAAK,sBACxBzB,IAAK,0BACLE,OAAQ,IAAMC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6DZM,GAAA;;;;;;;;;;;;MChEJkJ,GAAe5J,EAAO,CACpB,CAACqD,EAAOc,SAAU,CAAEzC,IAAK,mBACzBzB,IAAK,uBACLE,OAAQiD,EAAO,SACfL,QAAS,IAAM3C,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAqCKiD,EAAO3B,IAAIiI,GAAa,CAAEpG,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0DzD7C,GAAA;;;;;;;;;;MC1FWV,EAAkB,CAC/BC,IAAK,cACL4J,MAAOxG,EAAO,CAACqD,EAAUiC,EAAYI,EAAeY,GAAazC,EAAU0C,KAC3EzJ,OAAQiD,EAAO,SACfL,QAAS,EAAG8G,MAAAA,KAAYzJ,CAAA;;;;kBAIRiD,EAAO3B,IAAIgF;;;;;;;;;;;;;;;;;;QAkBrBrD,EAAOyG,OAAO5C,IAChB9G,CAAA;;QAEEyJ"}