From a302ac09b48db4cb885350f6cd4f6b2f4c175dcf Mon Sep 17 00:00:00 2001 From: Matt Edholm Date: Fri, 15 May 2026 12:28:44 -0400 Subject: [PATCH] =?UTF-8?q?feat(design):=20v2=20opt-in=20(atmospheric=20du?= =?UTF-8?q?sks)=20=E2=80=94=20Settings=20toggle,=20cookie-mirrored?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lets users opt into the new atmospheric design without affecting users on v1. Adds a beta-flag toggle in Settings → Design. Server-side preference persists across devices; a cookie mirrors it so unauthenticated Twig pages do correct first-paint without an extra DB roundtrip. Backend: - User.designVersion column (nullable VARCHAR(10); null defaults to 'v1') - Migration Version20260515120000 - PATCH /api/user/design endpoint accepting 'v1'|'v2', sets wevisto_design cookie - SpaController injects data-design on + refreshes the cookie on every SPA load (keeps cross-device pref in sync) - Twig templates (base, login, register, help, setup, token-*) read the cookie via {{ app.request.cookies.get('wevisto_design')|default('v1') }} so login/setup pages also respect the user's design choice Frontend: - design-v2.scss — opt-in overlay scoped under [data-design="v2"]. Overrides --color-* tokens to dusk variants per theme (warm-craft → amber, ocean-dusk stays, etc.), adds harbor photo backdrop via body::before with theme tint via body::after. Glass-card blur on existing surfaces. v1 untouched. - harbor.jpg shipped as a public asset (270KB, single-fetch, cached) - User type gains designVersion ('v1' | 'v2') - SettingsView toggle (Original / Atmospheric) calls the API, updates the data-design attribute optimistically, reverts on failure Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/public/assets/harbor.jpg | Bin 0 -> 269822 bytes frontend/src/main.ts | 1 + frontend/src/styles/design-v2.scss | 117 ++++++++++++++++++ frontend/src/test/App.test.ts | 2 +- .../src/test/composables/useTheme.test.ts | 2 +- frontend/src/test/stores/auth.test.ts | 1 + frontend/src/test/views/SettingsView.test.ts | 50 ++++---- frontend/src/types/index.ts | 2 + frontend/src/views/SettingsView.vue | 93 ++++++++++++++ migrations/Version20260515120000.php | 28 +++++ ...eView-B00rxwa3.js => HomeView-tHIYnQ9q.js} | 2 +- ...ew-DFJIjn5s.js => LibraryView-Br9GLQmy.js} | 2 +- public/build/assets/SettingsView-Buxddglj.css | 1 + public/build/assets/SettingsView-CnrppHZO.js | 1 + public/build/assets/SettingsView-DBUrUua5.css | 1 - public/build/assets/SettingsView-KEutYoup.js | 1 - ...iew-DgN7UeID.js => UploadView-uIaSypRk.js} | 2 +- public/build/assets/harbor.jpg | Bin 0 -> 269822 bytes .../{index-B3RcyMgN.js => index-C81kpUpa.js} | 4 +- public/build/assets/index-CraJX9-T.css | 1 - public/build/assets/index-_dOZGklt.css | 1 + public/build/index.html | 4 +- src/Controller/SpaController.php | 37 ++++-- src/Controller/UserApiController.php | 30 +++++ src/Entity/User.php | 20 +++ templates/base.html.twig | 2 +- templates/help/index.html.twig | 2 +- templates/security/login.html.twig | 2 +- templates/security/register.html.twig | 2 +- templates/setup/configure.html.twig | 2 +- templates/setup/index.html.twig | 2 +- templates/token/approve.html.twig | 2 +- templates/token/approved.html.twig | 2 +- templates/token/decline.html.twig | 2 +- templates/token/declined.html.twig | 2 +- templates/token/invalid.html.twig | 2 +- 36 files changed, 367 insertions(+), 58 deletions(-) create mode 100644 frontend/public/assets/harbor.jpg create mode 100644 frontend/src/styles/design-v2.scss create mode 100644 migrations/Version20260515120000.php rename public/build/assets/{HomeView-B00rxwa3.js => HomeView-tHIYnQ9q.js} (99%) rename public/build/assets/{LibraryView-DFJIjn5s.js => LibraryView-Br9GLQmy.js} (99%) create mode 100644 public/build/assets/SettingsView-Buxddglj.css create mode 100644 public/build/assets/SettingsView-CnrppHZO.js delete mode 100644 public/build/assets/SettingsView-DBUrUua5.css delete mode 100644 public/build/assets/SettingsView-KEutYoup.js rename public/build/assets/{UploadView-DgN7UeID.js => UploadView-uIaSypRk.js} (99%) create mode 100644 public/build/assets/harbor.jpg rename public/build/assets/{index-B3RcyMgN.js => index-C81kpUpa.js} (99%) delete mode 100644 public/build/assets/index-CraJX9-T.css create mode 100644 public/build/assets/index-_dOZGklt.css diff --git a/frontend/public/assets/harbor.jpg b/frontend/public/assets/harbor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a31a4186a089d73fc2e4ea369b3b100ee4c5619d GIT binary patch literal 269822 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�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�H!RkYF*Qn4~A8+U({ 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�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%0DC9+Db+FyM1f&Zk4-8&V_pN;YdGh&sE2^gv9~?- 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ą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 G+5g$mu2ZA{ literal 0 HcmV?d00001 diff --git a/frontend/src/main.ts b/frontend/src/main.ts index 1e476f4..063fd29 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -2,6 +2,7 @@ import { createApp } from 'vue' import { createPinia } from 'pinia' import VueKonva from 'vue-konva' import '@/styles/global.scss' +import '@/styles/design-v2.scss' import App from './App.vue' import router from '@/router' diff --git a/frontend/src/styles/design-v2.scss b/frontend/src/styles/design-v2.scss new file mode 100644 index 0000000..0d5ec55 --- /dev/null +++ b/frontend/src/styles/design-v2.scss @@ -0,0 +1,117 @@ +// ─── Design v2 — atmospheric dusks ────────────────────────────────────── +// Opt-in overlay activated via [data-design="v2"] on . The user's +// theme preference (warm-craft, ocean-dusk, etc.) chooses *which* dusk; +// all six get a tinted-photo backdrop and a darker, glass-friendly token set. +// +// The yellow V (brand) stays #f0d000 across every dusk. + +[data-design="v2"] { + // Brand constants — survive every theme/dusk + --brand-yellow: #f0d000; + + // Default dusk = warm-craft → "amber dusk" + --color-bg: #1a0d05; + --color-surface: rgba(50, 22, 8, 0.55); + --color-surface-2: rgba(80, 38, 14, 0.55); + --color-border: rgba(230, 180, 130, 0.20); + --color-text: #faecd0; + --color-text-muted: #c8a880; + --color-primary: #e89048; + --color-primary-fg: #1a0d05; + --color-secondary: rgba(80, 38, 14, 0.55); + --color-secondary-fg:#faecd0; + --color-destructive: #e08070; + --color-destructive-fg: #ffffff; + --color-focus-ring: var(--brand-yellow); + + // Per-theme dusk overrides — only the bg-tint + accent change between dusks + &[data-theme="ocean-dusk"] { + --color-bg: #06121f; + --color-surface: rgba(10, 28, 48, 0.55); + --color-surface-2: rgba(18, 42, 70, 0.55); + --color-border: rgba(180, 210, 235, 0.18); + --color-text: #f4eed8; + --color-text-muted: #b0c4d8; + --color-primary: #4e9fc8; + --color-primary-fg: #06121f; + } + &[data-theme="sage-cream"] { + --color-bg: #081208; + --color-surface: rgba(18, 38, 22, 0.55); + --color-surface-2: rgba(28, 60, 32, 0.55); + --color-border: rgba(180, 220, 180, 0.18); + --color-text: #ecf3e0; + --color-text-muted: #a8c0a0; + --color-primary: #88c068; + --color-primary-fg: #081208; + } + &[data-theme="playful-pop"] { + --color-bg: #1a060f; + --color-surface: rgba(48, 14, 36, 0.55); + --color-surface-2: rgba(72, 22, 54, 0.55); + --color-border: rgba(230, 180, 200, 0.20); + --color-text: #f8e8ec; + --color-text-muted: #d0a0b8; + --color-primary: #d878a0; + --color-primary-fg: #1a060f; + } + &[data-theme="dusty-mauve"] { + --color-bg: #100618; + --color-surface: rgba(36, 14, 50, 0.55); + --color-surface-2: rgba(54, 22, 74, 0.55); + --color-border: rgba(210, 190, 230, 0.18); + --color-text: #f0e8f8; + --color-text-muted: #c0b0d0; + --color-primary: #b890d8; + --color-primary-fg: #100618; + } + &[data-theme="honey-slate"] { + --color-bg: #18120a; + --color-surface: rgba(42, 32, 12, 0.55); + --color-surface-2: rgba(62, 50, 22, 0.55); + --color-border: rgba(232, 200, 130, 0.22); + --color-text: #faf0d8; + --color-text-muted: #d0b888; + --color-primary: #e8c050; + --color-primary-fg: #18120a; + } + + // Harbor photo backdrop — fixed under everything, theme-tinted + body { + position: relative; + } + body::before { + content: ''; + position: fixed; + inset: 0; + background: url('/build/assets/harbor.jpg') center/cover no-repeat; + filter: brightness(0.55) saturate(0.9); + z-index: -3; + } + body::after { + content: ''; + position: fixed; + inset: 0; + background: var(--color-bg); + opacity: 0.55; + mix-blend-mode: multiply; + z-index: -2; + pointer-events: none; + } + + // Frosted-glass surfaces — anywhere v1 used --color-surface as a solid bg + // becomes a backdrop-blurred semi-translucent panel. + // (The v1 components don't change their structure; they just inherit + // the new token values + glass effect via this overlay.) + .frame-card, + .library__tile, + .settings__section-card, + .home-view__empty-card { + backdrop-filter: saturate(160%) blur(20px); + -webkit-backdrop-filter: saturate(160%) blur(20px); + } + + // The yellow V in the wordmark needs to survive even when the V is + // technically part of the brand glyph (no Vue change required — handled + // by tokens). +} diff --git a/frontend/src/test/App.test.ts b/frontend/src/test/App.test.ts index 8d0e701..89497dc 100644 --- a/frontend/src/test/App.test.ts +++ b/frontend/src/test/App.test.ts @@ -50,7 +50,7 @@ describe('App', () => { it('falls back to auth.user.theme when no stamped theme is present', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'a@b', roles: [], theme: 'ocean-dusk', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'a@b', roles: [], theme: 'ocean-dusk', designVersion: 'v1', timezone: 'UTC' }) await mountApp() expect(document.documentElement.dataset.theme).toBe('ocean-dusk') const meta = document.querySelector('meta[name="theme-color"]') diff --git a/frontend/src/test/composables/useTheme.test.ts b/frontend/src/test/composables/useTheme.test.ts index e37d06d..b8fe643 100644 --- a/frontend/src/test/composables/useTheme.test.ts +++ b/frontend/src/test/composables/useTheme.test.ts @@ -38,7 +38,7 @@ describe('useTheme', () => { it('applyTheme syncs auth.user.theme when a user is signed in', () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'a@b', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'a@b', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const { applyTheme } = useTheme() applyTheme('sage-cream') expect(auth.user?.theme).toBe('sage-cream') diff --git a/frontend/src/test/stores/auth.test.ts b/frontend/src/test/stores/auth.test.ts index f9facb3..deeb666 100644 --- a/frontend/src/test/stores/auth.test.ts +++ b/frontend/src/test/stores/auth.test.ts @@ -7,6 +7,7 @@ const makeUser = (overrides: Partial = {}): User => ({ email: 'test@example.com', roles: ['ROLE_USER'], theme: null, + designVersion: 'v1', timezone: 'America/Chicago', ...overrides, }) diff --git a/frontend/src/test/views/SettingsView.test.ts b/frontend/src/test/views/SettingsView.test.ts index ecd7cc8..0073c99 100644 --- a/frontend/src/test/views/SettingsView.test.ts +++ b/frontend/src/test/views/SettingsView.test.ts @@ -40,7 +40,7 @@ describe('SettingsView', () => { it('renders one swatch per theme and the user email', () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'matt@example.com', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'matt@example.com', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) expect(wrapper.findAll('.theme-swatch')).toHaveLength(THEMES.length) expect(wrapper.text()).toContain('matt@example.com') @@ -48,7 +48,7 @@ describe('SettingsView', () => { it('marks the user current theme as the active swatch', () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'ocean-dusk', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'ocean-dusk', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) const active = wrapper.find('.theme-swatch--active') expect(active.attributes('aria-label')).toBe('Ocean Dusk') @@ -57,14 +57,14 @@ describe('SettingsView', () => { it('falls back to warm-craft as active when user has no theme set', () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: null, timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: null, designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) expect(wrapper.find('.theme-swatch--active').attributes('aria-label')).toBe('Warm Craft') }) it('clicking a swatch saves the theme via PATCH /api/user/theme', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn().mockResolvedValue({ ok: true }) vi.stubGlobal('fetch', fetchMock) @@ -84,7 +84,7 @@ describe('SettingsView', () => { it('renders a Sign out link to /logout', () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) const logout = wrapper.find('a.settings__logout') expect(logout.text()).toBe('Sign out') @@ -93,7 +93,7 @@ describe('SettingsView', () => { it('shows the install button by default (no native prompt yet, not standalone)', () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) const btn = wrapper.find('.settings__install') expect(btn.exists()).toBe(true) @@ -102,7 +102,7 @@ describe('SettingsView', () => { it('opens the iOS-style instructions modal when install button is clicked without a native prompt', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) expect(wrapper.find('.install-modal').exists()).toBe(false) await wrapper.find('.settings__install').trigger('click') @@ -112,7 +112,7 @@ describe('SettingsView', () => { it('closes the modal via the close button', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) await wrapper.find('.settings__install').trigger('click') await wrapper.find('.install-modal__close').trigger('click') @@ -121,7 +121,7 @@ describe('SettingsView', () => { it('clicking the iOS-instructions backdrop closes the modal', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) await wrapper.find('.settings__install').trigger('click') expect(wrapper.find('.install-modal').exists()).toBe(true) @@ -139,7 +139,7 @@ describe('SettingsView', () => { it('shows the native Install button when a beforeinstallprompt event is cached', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) fireBeforeInstallPrompt() const wrapper = mount(SettingsView) await flushPromises() @@ -148,7 +148,7 @@ describe('SettingsView', () => { it('clicking the native Install button invokes prompt() and resolves accepted', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const ev = fireBeforeInstallPrompt({ accepted: true }) const wrapper = mount(SettingsView) await flushPromises() @@ -165,7 +165,7 @@ describe('SettingsView', () => { // This covers lines 187-192: install() returns false (user dismissed) AND // canPromptInstall has flipped false (event consumed) → showIosInstructions. const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) fireBeforeInstallPrompt({ accepted: false }) const wrapper = mount(SettingsView) await flushPromises() @@ -181,7 +181,7 @@ describe('SettingsView', () => { it('opens the change-password modal when the Change password action is clicked', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) expect(wrapper.find('.pw-form').exists()).toBe(false) @@ -192,7 +192,7 @@ describe('SettingsView', () => { it('shows a mismatch error when confirm differs from new password', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) await wrapper.find('.settings__action-link').trigger('click') @@ -212,7 +212,7 @@ describe('SettingsView', () => { it('does not submit when fields are empty (button disabled)', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) await wrapper.find('.settings__action-link').trigger('click') @@ -225,7 +225,7 @@ describe('SettingsView', () => { // submitPasswordChange. Even if the form gets force-submitted with a // mismatch, no fetch fires. const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn() vi.stubGlobal('fetch', fetchMock) @@ -246,7 +246,7 @@ describe('SettingsView', () => { it('submits the new password, shows success, clears fields, and auto-closes', async () => { vi.useFakeTimers() const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn().mockResolvedValue({ status: 204, json: () => Promise.resolve({}) }) vi.stubGlobal('fetch', fetchMock) @@ -283,7 +283,7 @@ describe('SettingsView', () => { it('renders the server-provided error message on a 4xx response', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn().mockResolvedValue({ status: 400, json: () => Promise.resolve({ error: 'Current password is wrong.' }), @@ -307,7 +307,7 @@ describe('SettingsView', () => { it('uses a generic error when the server returns no error message', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn().mockResolvedValue({ status: 500, json: () => Promise.resolve({}), @@ -330,7 +330,7 @@ describe('SettingsView', () => { it('falls back to the generic error when the response body is unparseable JSON', async () => { // res.json() rejecting exercises the `.catch(() => ({}))` branch. const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn().mockResolvedValue({ status: 400, json: () => Promise.reject(new Error('not json')), @@ -352,7 +352,7 @@ describe('SettingsView', () => { it('renders a network-error message when fetch rejects', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const fetchMock = vi.fn().mockRejectedValue(new TypeError('network down')) vi.stubGlobal('fetch', fetchMock) @@ -371,7 +371,7 @@ describe('SettingsView', () => { it('toggles the submit button into a saving state during the request', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) // Pending fetch keeps pwSubmitting=true so the saving label is visible. let resolveFetch!: (v: { status: number; json: () => Promise }) => void const fetchMock = vi.fn(() => new Promise(res => { resolveFetch = res })) @@ -398,7 +398,7 @@ describe('SettingsView', () => { it('closes the modal via the × button and clears entered fields (resetPasswordForm)', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) await wrapper.find('.settings__action-link').trigger('click') @@ -425,7 +425,7 @@ describe('SettingsView', () => { it('renders the iPhone-specific copy in the install modal when the UA is iOS', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) // usePwaInstall calls detectIOS() per-component-instance from // navigator.userAgent, so spoofing the UA before mount picks the iOS branch. @@ -453,7 +453,7 @@ describe('SettingsView', () => { it('closes the password modal when the backdrop is clicked', async () => { const auth = useAuthStore() - auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', timezone: 'UTC' }) + auth.setUser({ id: 1, email: 'm@e', roles: [], theme: 'warm-craft', designVersion: 'v1', timezone: 'UTC' }) const wrapper = mount(SettingsView) await wrapper.find('.settings__action-link').trigger('click') expect(wrapper.find('.pw-form').exists()).toBe(true) diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index b8f090d..78d3075 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -3,6 +3,8 @@ export interface User { email: string roles: string[] theme: string | null + /** Opt-in design version — 'v1' (cream, original) or 'v2' (atmospheric dusks). */ + designVersion: 'v1' | 'v2' timezone: string } diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index 6dbd67d..125aec3 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -25,6 +25,36 @@ +
+

Design (beta)

+

+ Try the new atmospheric look. Your theme picks below still apply — + v2 just renders them as dusks over a Camogli harbor backdrop. +

+
+ + +
+
+

Theme

@@ -177,12 +207,34 @@ const { saveTheme } = useTheme() const { isStandalone, isIOS, canPromptInstall, install } = usePwaInstall() const currentTheme = computed(() => auth.user?.theme ?? 'warm-craft') +const currentDesign = computed(() => auth.user?.designVersion ?? 'v1') const showIosInstructions = ref(false) function select(themeId: string) { saveTheme(themeId) } +async function selectDesign(version: 'v1' | 'v2') { + if (currentDesign.value === version) return + const prev = currentDesign.value + // Optimistic local update so the SPA flips immediately. + if (auth.user) auth.user.designVersion = version + document.documentElement.setAttribute('data-design', version) + try { + const res = await fetch('/api/user/design', { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ designVersion: version }), + }) + if (!res.ok) throw new Error('save failed') + // Cookie is set in the response — read-once nothing else to do here. + } catch { + // Revert on failure. + if (auth.user) auth.user.designVersion = prev + document.documentElement.setAttribute('data-design', prev) + } +} + async function onNativeInstall() { const accepted = await install() // If the native prompt failed for any reason (rare — e.g. the event @@ -535,4 +587,45 @@ async function submitPasswordChange() { font-weight: 700; } } + +// ── Design version toggle (v1 vs v2) ───────────────────────────────────── +.design-toggle { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--space-2); + + &__opt { + background: var(--color-surface); + border: 2px solid var(--color-border); + border-radius: var(--radius-md); + padding: var(--space-3) var(--space-4); + cursor: pointer; + text-align: left; + font-family: inherit; + color: var(--color-text); + transition: border-color var(--duration-fast), background var(--duration-fast); + + &:hover { + border-color: var(--color-primary); + } + + &--active { + border-color: var(--color-primary); + background: var(--color-surface-2); + } + } + + &__label { + display: block; + font-size: var(--text-base); + font-weight: 800; + margin-bottom: 2px; + } + + &__sub { + display: block; + font-size: var(--text-xs); + color: var(--color-text-muted); + } +} diff --git a/migrations/Version20260515120000.php b/migrations/Version20260515120000.php new file mode 100644 index 0000000..ae4868b --- /dev/null +++ b/migrations/Version20260515120000.php @@ -0,0 +1,28 @@ +addSql('ALTER TABLE "user" ADD design_version VARCHAR(10) DEFAULT NULL'); + } + + public function down(Schema $schema): void + { + $this->addSql('ALTER TABLE "user" DROP COLUMN design_version'); + } +} diff --git a/public/build/assets/HomeView-B00rxwa3.js b/public/build/assets/HomeView-tHIYnQ9q.js similarity index 99% rename from public/build/assets/HomeView-B00rxwa3.js rename to public/build/assets/HomeView-tHIYnQ9q.js index 0eea76b..478bc56 100644 --- a/public/build/assets/HomeView-B00rxwa3.js +++ b/public/build/assets/HomeView-tHIYnQ9q.js @@ -1 +1 @@ -import{A as e,B as t,C as n,D as r,F as i,J as a,K as o,N as s,S as c,U as l,V as u,Y as d,_ as ee,a as te,c as ne,f as re,g as f,h as p,i as m,j as ie,l as h,m as ae,p as g,q as _,t as v,u as oe,v as y,x as se,y as b,z as x}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{o as ce,s as le}from"./index-B3RcyMgN.js";import{i as ue,n as de,r as fe,t as pe}from"./BaseBottomSheet-Bsol3Sat.js";import{t as S}from"./types-xv3fXrtW.js";import{t as me}from"./PullToRefresh-CSjUpm5h.js";var C=`https://wevisto.com/devices/`;function he(){let{devices:e}=m(ue()),t=new Map,n=new Map,r=window.__PF_MERCURE_URL__;if(!r)return{connectedCount:()=>0};function i(o){if(!t.has(o))try{let s=new URL(r);s.searchParams.append(`topic`,C+o);let c=new EventSource(s.toString(),{withCredentials:!0});c.onmessage=t=>{try{let n=JSON.parse(t.data);if(`deleted`in n&&n.deleted===!0){e.value=e.value.filter(e=>e.id!==n.id),a(n.id);return}let r=n,i=e.value.findIndex(e=>e.id===r.id);i!==-1&&(e.value[i]=r)}catch(e){console.warn(`[mercure] parse error`,e)}},c.onerror=()=>{if(c.readyState===EventSource.CLOSED){a(o);let e=window.setTimeout(()=>{n.delete(o),i(o)},5e3);n.set(o,e)}},t.set(o,c)}catch(e){console.warn(`[mercure] open failed for device `+o,e)}}function a(e){let r=t.get(e);r&&(r.close(),t.delete(e));let i=n.get(e);i!==void 0&&(clearTimeout(i),n.delete(e))}return x(e,e=>{let n=new Set(e.map(e=>e.id));for(let e of n)t.has(e)||i(e);for(let e of[...t.keys()])n.has(e)||a(e)},{immediate:!0,deep:!1}),ie(()=>{for(let e of[...t.keys()])a(e)}),{connectedCount:()=>t.size}}var w=[`src`,`alt`],T={class:`frame-card__body`},E={class:`frame-card__info`},D={class:`frame-card__name`},O={class:`frame-card__status-line`,"aria-live":`polite`},k={class:`frame-card__status-text`},A={key:0,class:`frame-card__sync-line`},j={key:0},M={key:1,class:`frame-card__sync-sep`,"aria-hidden":`true`},N={key:2},P={key:1,class:`frame-card__count`},F={key:0},I={key:1,"aria-hidden":`true`},L=v(n({__name:`FrameCard`,props:{deviceId:{},name:{},size:{},status:{},orientation:{},model:{},thumbnailUrl:{},photoCount:{},lastSync:{},nextSync:{}},emits:[`add-photo`,`edit`],setup(e){let n=e,r=p(()=>{if(n.size!==`large`)return{};let{width:e,height:t}=S(n.model??`v1`,n.orientation);return{aspectRatio:`${e} / ${t}`}}),i=p(()=>({})),o=p(()=>{switch(n.status){case`ok`:return`Online`;case`sync-fail`:return`Sync issue`;case`offline`:return`Offline`}});return(n,l)=>(s(),b(`div`,{class:_([`frame-card`,`frame-card--${e.size}`,`frame-card--${e.status}`])},[e.size===`large`?(s(),b(`button`,{key:0,class:`frame-card__settings-btn`,type:`button`,"aria-label":`Frame settings`,onClick:l[0]||=t=>n.$emit(`edit`,e.deviceId)},[...l[2]||=[f(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[f(`circle`,{cx:`12`,cy:`12`,r:`3`}),f(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})],-1)]])):y(``,!0),f(`div`,{class:`frame-card__preview`,style:a(r.value)},[e.thumbnailUrl?(s(),b(`img`,{key:0,src:e.thumbnailUrl,alt:`Current photo on ${e.name}`,class:`frame-card__img`},null,8,w)):(s(),b(`div`,{key:1,class:`frame-card__empty-preview`,style:a(i.value),"aria-hidden":`true`},[...l[3]||=[f(`svg`,{width:`32`,height:`32`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[f(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),f(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),f(`polyline`,{points:`21,15 16,10 5,21`})],-1)]],4))],4),f(`div`,T,[f(`div`,E,[f(`p`,D,d(e.name),1),f(`p`,O,[l[4]||=f(`span`,{class:`frame-card__status-dot`,"aria-hidden":`true`},null,-1),f(`span`,k,d(o.value),1)]),e.size===`large`&&(e.lastSync||e.nextSync)?(s(),b(`p`,A,[e.lastSync?(s(),b(`span`,j,`synced `+d(e.lastSync),1)):y(``,!0),e.lastSync&&e.nextSync?(s(),b(`span`,M,`·`)):y(``,!0),e.nextSync?(s(),b(`span`,N,d(e.nextSync),1)):y(``,!0)])):e.size===`compact`&&e.photoCount!==void 0?(s(),b(`p`,P,d(e.photoCount)+` `+d(e.photoCount===1?`photo`:`photos`),1)):y(``,!0)]),c(de,{variant:e.size===`large`?`primary`:`icon-pill`,"aria-label":`Add photo to ${e.name}`,class:`frame-card__add-btn`,onClick:l[1]||=t=>n.$emit(`add-photo`,e.deviceId)},{default:t(()=>[e.size===`large`?(s(),b(`span`,F,`+ Add Photo`)):(s(),b(`span`,I,`+`))]),_:1},8,[`variant`,`aria-label`])])],2))}}),[[`__scopeId`,`data-v-576f3f64`]]),ge=[`id`,`value`,`type`],R=[`for`],_e=[`id`],ve=v(n({__name:`BaseInput`,props:{modelValue:{default:``},label:{},type:{default:`text`},error:{},id:{}},emits:[`update:modelValue`,`blur`],setup(e,{emit:t}){let n=e,i=t,a=p(()=>n.id??`input-${Math.random().toString(36).slice(2)}`);return(t,n)=>(s(),b(`div`,{class:_([`input-wrap`,{"input-wrap--error":!!e.error,"input-wrap--filled":!!e.modelValue}])},[f(`input`,r({id:a.value},t.$attrs,{value:e.modelValue,type:e.type,class:`input-wrap__field`,placeholder:` `,onInput:n[0]||=e=>i(`update:modelValue`,e.target.value),onBlur:n[1]||=e=>i(`blur`,e)}),null,16,ge),f(`label`,{for:a.value,class:`input-wrap__label`},d(e.label),9,R),e.error?(s(),b(`p`,{key:0,id:`${a.value}-error`,class:`input-wrap__error`,role:`alert`},d(e.error),9,_e)):y(``,!0)],2))}}),[[`__scopeId`,`data-v-c8235ab2`]]),ye={class:`orientation-picker`,role:`radiogroup`,"aria-label":`Display orientation`},z=[`aria-checked`,`aria-label`,`onClick`],B=[`viewBox`],V=[`stroke`,`fill`],H=[`fill`],U={class:`orientation-opt__label`},W={class:`orientation-opt__sub`},be=v(n({__name:`OrientationPicker`,props:{modelValue:{}},emits:[`update:modelValue`],setup(e){let t=[{value:`landscape`,label:`Landscape`,sub:`Ribbon at bottom`,viewBox:`0 0 48 48`,rect:{x:4,y:12,width:40,height:24},ribbon:{x:20,y:36,width:8,height:5}},{value:`portrait`,label:`Portrait`,sub:`Ribbon on left`,viewBox:`0 0 48 48`,rect:{x:12,y:4,width:24,height:40},ribbon:{x:7,y:20,width:5,height:8}}];return(n,a)=>(s(),b(`div`,ye,[(s(),b(g,null,i(t,t=>f(`button`,{key:t.value,type:`button`,role:`radio`,"aria-checked":e.modelValue===t.value,"aria-label":t.label,class:_([`orientation-opt`,{"orientation-opt--active":e.modelValue===t.value}]),onClick:e=>n.$emit(`update:modelValue`,t.value)},[(s(),b(`svg`,{class:`orientation-opt__diagram`,viewBox:t.viewBox,fill:`none`,"aria-hidden":`true`},[f(`rect`,r({ref_for:!0},t.rect,{rx:`2`,stroke:e.modelValue===t.value?`var(--color-primary)`:`currentColor`,"stroke-width":`1.5`,fill:e.modelValue===t.value?`color-mix(in srgb, var(--color-primary) 12%, transparent)`:`var(--color-surface-2)`}),null,16,V),f(`rect`,r({ref_for:!0},t.ribbon,{fill:e.modelValue===t.value?`var(--color-primary)`:`var(--color-text-muted)`,rx:`1`}),null,16,H)],8,B)),f(`span`,U,d(t.label),1),f(`span`,W,d(t.sub),1)],10,z)),64))]))}}),[[`__scopeId`,`data-v-679dae08`]]),xe={class:`home-view`},Se={key:0,class:`home-view__loading`,"aria-live":`polite`},Ce={key:1,class:`home-view__empty`},we={key:2,class:`home-view__single`},Te=[`aria-label`],Ee={class:`home-view__sheet-field`},De={class:`home-view__sheet-field`},Oe={class:`home-view__sheet-field`},ke={key:0,class:`home-view__times-mode`},Ae={class:`home-view__times-list`},je=[`value`,`onChange`],Me=[`value`],Ne=[`value`,`onChange`],Pe=[`value`],Fe=[`value`,`onChange`],Ie=[`aria-label`,`onClick`],Le={key:0,class:`home-view__times-empty`},Re=[`label`],ze=[`value`],Be={key:1,class:`home-view__interval-mode`},Ve={class:`home-view__interval-input-row`},He={class:`home-view__next-update`,"aria-live":`polite`},Ue={class:`home-view__sheet-field`},We={class:`home-view__rotation-checkbox`},Ge={class:`home-view__remove-modal-card`},Ke={class:`home-view__remove-confirm-actions`},qe=[`disabled`],Je=[`disabled`],G=v(n({__name:`HomeView`,setup(n){function r(e){return e.wakeTimes.length>0?1440*60*1e3:e.rotationIntervalMinutes*6e4}function a(e){if(!e.lastSeenAt)return`offline`;let t=Date.now()-new Date(e.lastSeenAt).getTime(),n=r(e);return t<=n?`ok`:t<=2*n?`sync-fail`:`offline`}function m(e){if(!e.lastSeenAt)return null;let t=Date.now()-new Date(e.lastSeenAt).getTime();if(t<6e4)return`just now`;if(t<36e5)return`${Math.round(t/6e4)}m ago`;if(t<864e5)return`${Math.round(t/36e5)}h ago`;let n=Math.round(t/864e5);return n===1?`yesterday`:`${n} days ago`}function _(e){let t=Math.floor(e/60),n=e%60,r=t>=12?`PM`:`AM`,i=t%12;i===0&&(i=12);let a=n===0?``:`:${String(n).padStart(2,`0`)}`;return`${i}${a} ${r}`}function v(e,t){let n=new Intl.DateTimeFormat(`en-GB`,{timeZone:t,hour:`2-digit`,minute:`2-digit`,hour12:!1}).formatToParts(e),r=parseInt(n.find(e=>e.type===`hour`)?.value??`0`,10),i=parseInt(n.find(e=>e.type===`minute`)?.value??`0`,10);return r*60+i}function x(e,t){if(e.length===0)return null;let n=v(new Date,t),r=null,i=1/0;for(let t of e){let e=t>n?t-n:1440+(t-n);en})}return r}function S(e){let t=null;if(e.nextPollExpectedAt)t=new Date(e.nextPollExpectedAt).getTime();else if(e.wakeTimes.length>0){let t=x(e.wakeTimes,e.timezone||`UTC`);return t?`next sync ~${_(t.minutes)} ${t.today?`today`:`tomorrow`}`:null}else if(e.lastSeenAt)t=new Date(e.lastSeenAt).getTime()+e.rotationIntervalMinutes*6e4;else return null;let n=t-Date.now();if(n<=0)return null;if(n<6e4)return`next sync in <1m`;if(n<36e5)return`next sync in ${Math.round(n/6e4)}m`;if(n<864e5){let n=e.timezone||`UTC`,r=v(new Date(t),n),i=et(new Date(t),n),a=i===0?`today`:i===1?`tomorrow`:`in ${i}d`;return`next sync ~${_(r)} ${a}`}return`next sync in ${Math.round(n/864e5)}d`}function C(e){return e.currentImageId?`/api/devices/${e.id}/preview?v=${e.currentImageId}`:void 0}let w=le(),T=ce(),E=ue(),D=fe();he(),e(async()=>{await E.fetchDevices(),document.addEventListener(`visibilitychange`,O);let e=Number(T.query.setup);e&&($(e),w.replace({query:{...T.query,setup:void 0}}))}),ie(()=>{document.removeEventListener(`visibilitychange`,O)});function O(){document.visibilityState===`visible`&&E.fetchDevices({silent:!0})}let k=l(null);function A(){return window.scrollY>0?!1:(k.value?.scrollTop??0)===0}async function j(){await E.fetchDevices({silent:!0})}let M=l(null),N=null;function P(e){N=e,M.value?.click()}function F(e){let t=e.target,n=t.files?.[0];t.value=``,n&&(D.init(n,N??void 0),N=null,w.push(`/upload`))}let I=[1,2,3,4,5,6,7,8,9,10,11,12],ge=[0,5,10,15,20,25,30,35,40,45,50,55];function R(e){let t=Math.floor(e/60),n=e%60,r=t>=12?`PM`:`AM`,i=t%12;return i===0&&(i=12),{h:i,mm:n,p:r}}function _e(e,t,n){let r=e%12;return n===`PM`&&(r+=12),r*60+t}let ye=[{label:`Americas`,zones:[{value:`America/New_York`,label:`Eastern — New York, Toronto`},{value:`America/Chicago`,label:`Central — Chicago, Mexico City`},{value:`America/Denver`,label:`Mountain — Denver, Calgary`},{value:`America/Phoenix`,label:`Mountain (no DST) — Phoenix`},{value:`America/Los_Angeles`,label:`Pacific — Los Angeles, Vancouver`},{value:`America/Anchorage`,label:`Alaska — Anchorage`},{value:`Pacific/Honolulu`,label:`Hawaii — Honolulu`},{value:`America/Sao_Paulo`,label:`Brasília — São Paulo`},{value:`America/Argentina/Buenos_Aires`,label:`Argentina — Buenos Aires`},{value:`America/Bogota`,label:`Colombia — Bogotá`}]},{label:`Europe`,zones:[{value:`Europe/London`,label:`GMT/BST — London, Dublin`},{value:`Europe/Lisbon`,label:`WET/WEST — Lisbon`},{value:`Europe/Paris`,label:`CET/CEST — Paris, Brussels, Amsterdam`},{value:`Europe/Berlin`,label:`CET/CEST — Berlin, Vienna, Zurich`},{value:`Europe/Stockholm`,label:`CET/CEST — Stockholm, Oslo, Copenhagen`},{value:`Europe/Helsinki`,label:`EET/EEST — Helsinki, Tallinn, Riga`},{value:`Europe/Warsaw`,label:`CET/CEST — Warsaw, Prague, Budapest`},{value:`Europe/Rome`,label:`CET/CEST — Rome, Madrid`},{value:`Europe/Athens`,label:`EET/EEST — Athens, Bucharest`},{value:`Europe/Istanbul`,label:`TRT — Istanbul`},{value:`Europe/Moscow`,label:`MSK — Moscow`}]},{label:`Asia & Pacific`,zones:[{value:`Asia/Dubai`,label:`GST — Dubai, Abu Dhabi`},{value:`Asia/Karachi`,label:`PKT — Karachi, Islamabad`},{value:`Asia/Kolkata`,label:`IST — India`},{value:`Asia/Dhaka`,label:`BST — Dhaka, Bangladesh`},{value:`Asia/Bangkok`,label:`ICT — Bangkok, Jakarta, Hanoi`},{value:`Asia/Singapore`,label:`SGT — Singapore, Kuala Lumpur`},{value:`Asia/Shanghai`,label:`CST — Beijing, Shanghai, Taipei`},{value:`Asia/Seoul`,label:`KST — Seoul`},{value:`Asia/Tokyo`,label:`JST — Tokyo`},{value:`Australia/Sydney`,label:`AEDT/AEST — Sydney, Melbourne`},{value:`Australia/Brisbane`,label:`AEST (no DST) — Brisbane`},{value:`Australia/Perth`,label:`AWST — Perth`},{value:`Pacific/Auckland`,label:`NZDT/NZST — Auckland`}]},{label:`Africa & Middle East`,zones:[{value:`Africa/Cairo`,label:`EET — Cairo`},{value:`Africa/Nairobi`,label:`EAT — Nairobi, East Africa`},{value:`Africa/Johannesburg`,label:`SAST — Johannesburg`},{value:`Africa/Lagos`,label:`WAT — Lagos, West Africa`}]},{label:`UTC`,zones:[{value:`UTC`,label:`UTC — Coordinated Universal Time`}]}],z=l(!1),B=l(!1),V=l(!1),H=l(!1),U=l(null),W=l(``),G=l(`landscape`),K=l(`interval`),q=l([]),J=l(60),Y=l(`UTC`),X=l(`oldest_upload`),Z=l(!1),Ye=[540,1080,720,1260,360,900,450,1170,0];function Xe(){for(let e of Ye)if(!q.value.includes(e)){q.value=[...q.value,e];return}for(let e=0;e<1440;e+=5)if(!q.value.includes(e)){q.value=[...q.value,e];return}}function Ze(e){q.value=q.value.filter((t,n)=>n!==e)}function Q(e,t,n){let r=R(q.value[e]),i=t===`h`?parseInt(n,10):r.h,a=t===`mm`?parseInt(n,10):r.mm,o=t===`p`?n:r.p,s=[...q.value];s[e]=_e(i,a,o),q.value=s}let Qe=p(()=>{let e=U.value;if(!e)return``;let t=e.timezone||`UTC`,n;if(e.nextPollExpectedAt)n=new Date(e.nextPollExpectedAt).getTime();else if(e.lastSeenAt){let r=new Date(e.lastSeenAt).getTime();n=e.wakeTimes.length>0?$e(r,e.wakeTimes,t):r+e.rotationIntervalMinutes*6e4}else return`Next update: when the frame next connects`;return nt.id===e);t&&(U.value=t,W.value=t.name,G.value=t.orientation,Y.value=t.timezone??`UTC`,J.value=t.rotationIntervalMinutes,q.value=[...t.wakeTimes],K.value=t.wakeTimes.length>0?`times`:`interval`,X.value=t.rotationMode,Z.value=t.prioritizeNeverShown,H.value=!1,z.value=!0)}async function nt(){if(U.value){V.value=!0;try{await E.removeDevice(U.value.id),z.value=!1,H.value=!1}finally{V.value=!1}}}async function rt(){if(U.value){B.value=!0;try{let e={name:W.value.trim()||U.value.name,orientation:G.value,timezone:Y.value,rotationMode:X.value,prioritizeNeverShown:Z.value};K.value===`times`?e.wakeTimes=[...q.value]:(e.wakeTimes=[],e.rotationIntervalMinutes=Math.max(1,Math.min(1440,J.value||1))),await E.updateDevice(U.value.id,e),z.value=!1}finally{B.value=!1}}}return(e,n)=>(s(),b(g,null,[f(`main`,xe,[c(me,{"is-at-top":A,"on-refresh":j},{default:t(()=>[o(E).loading?(s(),b(`div`,Se,` Loading… `)):o(E).devices.length===0?(s(),b(`div`,Ce,[...n[11]||=[f(`div`,{class:`home-view__empty-card`},[f(`svg`,{class:`home-view__empty-icon`,width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[f(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),f(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),f(`polyline`,{points:`21,15 16,10 5,21`})]),f(`p`,{class:`home-view__empty-title`},`Set up your first frame`),f(`p`,{class:`home-view__empty-sub`},` Power on your WeVisto frame and scan the QR code it displays to get started. `)],-1)]])):o(E).devices.length===1?(s(),b(`div`,we,[c(L,{deviceId:o(E).devices[0].id,name:o(E).devices[0].name,size:`large`,status:a(o(E).devices[0]),orientation:o(E).devices[0].orientation,model:o(E).devices[0].model,thumbnailUrl:C(o(E).devices[0]),lastSync:m(o(E).devices[0]),nextSync:S(o(E).devices[0]),onAddPhoto:P,onEdit:$},null,8,[`deviceId`,`name`,`status`,`orientation`,`model`,`thumbnailUrl`,`lastSync`,`nextSync`])])):(s(),b(`div`,{key:3,ref_key:`stackEl`,ref:k,class:`home-view__stack`,role:`list`,"aria-label":`Frames`},[(s(!0),b(g,null,i(o(E).devices,e=>(s(),b(`div`,{key:e.id,class:`home-view__slide`,role:`listitem`,"aria-label":e.name},[c(L,{deviceId:e.id,name:e.name,size:`large`,status:a(e),orientation:e.orientation,model:e.model,thumbnailUrl:C(e),lastSync:m(e),nextSync:S(e),onAddPhoto:P,onEdit:$},null,8,[`deviceId`,`name`,`status`,`orientation`,`model`,`thumbnailUrl`,`lastSync`,`nextSync`])],8,Te))),128))],512))]),_:1}),f(`input`,{ref_key:`fileInputEl`,ref:M,type:`file`,accept:`image/jpeg,image/png,image/webp,image/gif`,hidden:``,onChange:F},null,544)]),c(pe,{modelValue:z.value,"onUpdate:modelValue":n[8]||=e=>z.value=e,label:`Frame settings`},{default:t(()=>[n[24]||=f(`h2`,{class:`home-view__sheet-title`},`Frame settings`,-1),f(`div`,Ee,[c(ve,{modelValue:W.value,"onUpdate:modelValue":n[0]||=e=>W.value=e,label:`Frame name`,maxlength:`100`},null,8,[`modelValue`])]),f(`div`,De,[n[12]||=f(`p`,{class:`home-view__sheet-label`},`Orientation`,-1),c(be,{modelValue:G.value,"onUpdate:modelValue":n[1]||=e=>G.value=e},null,8,[`modelValue`])]),f(`div`,Oe,[n[19]||=f(`p`,{class:`home-view__sheet-label`},`Update frequency`,-1),u(f(`select`,{class:`home-view__mode-select`,"onUpdate:modelValue":n[2]||=e=>K.value=e,"aria-label":`Update frequency mode`},[...n[13]||=[f(`option`,{value:`times`},`At specific time(s)`,-1),f(`option`,{value:`interval`},`Every X minutes`,-1)]],512),[[h,K.value]]),K.value===`times`?(s(),b(`div`,ke,[f(`div`,Ae,[(s(!0),b(g,null,i(q.value,(e,t)=>(s(),b(`div`,{key:t,class:`home-view__time-row`},[f(`select`,{class:`home-view__time-part`,value:R(e).h,"aria-label":`Hour`,onChange:e=>Q(t,`h`,e.target.value)},[(s(),b(g,null,i(I,e=>f(`option`,{key:e,value:e},d(e),9,Me)),64))],40,je),n[16]||=f(`span`,{class:`home-view__time-sep`},`:`,-1),f(`select`,{class:`home-view__time-part`,value:R(e).mm,"aria-label":`Minutes`,onChange:e=>Q(t,`mm`,e.target.value)},[(s(),b(g,null,i(ge,e=>f(`option`,{key:e,value:e},d(String(e).padStart(2,`0`)),9,Pe)),64))],40,Ne),f(`select`,{class:`home-view__time-part home-view__time-part--ampm`,value:R(e).p,"aria-label":`AM or PM`,onChange:e=>Q(t,`p`,e.target.value)},[...n[14]||=[f(`option`,{value:`AM`},`AM`,-1),f(`option`,{value:`PM`},`PM`,-1)]],40,Fe),f(`button`,{type:`button`,class:`home-view__time-remove`,"aria-label":`Remove ${_(e)}`,onClick:e=>Ze(t)},[...n[15]||=[f(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[f(`polyline`,{points:`3 6 5 6 21 6`}),f(`path`,{d:`M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6`}),f(`path`,{d:`M10 11v6`}),f(`path`,{d:`M14 11v6`})],-1)]],8,Ie)]))),128)),q.value.length===0?(s(),b(`p`,Le,`No update times yet — add one below.`)):y(``,!0)]),f(`button`,{type:`button`,class:`home-view__time-add`,onClick:Xe},`+ Add time`),u(f(`select`,{class:`home-view__tz-select`,"onUpdate:modelValue":n[3]||=e=>Y.value=e},[(s(),b(g,null,i(ye,e=>f(`optgroup`,{key:e.label,label:e.label},[(s(!0),b(g,null,i(e.zones,e=>(s(),b(`option`,{key:e.value,value:e.value},d(e.label),9,ze))),128))],8,Re)),64))],512),[[h,Y.value]])])):(s(),b(`div`,Be,[f(`div`,Ve,[n[17]||=f(`span`,null,`Every`,-1),u(f(`input`,{type:`number`,inputmode:`numeric`,pattern:`[0-9]*`,min:`1`,max:`1440`,class:`home-view__interval-input`,"onUpdate:modelValue":n[4]||=e=>J.value=e,"aria-label":`Update interval in minutes`},null,512),[[oe,J.value,void 0,{number:!0}]]),n[18]||=f(`span`,null,`minutes`,-1)])])),f(`p`,He,d(Qe.value),1),n[20]||=f(`p`,{class:`home-view__propagation-note`},` Changes will only take effect at the next device update. To force an immediate refresh, briefly disconnect and reconnect the frame’s power. `,-1)]),f(`div`,Ue,[n[23]||=f(`p`,{class:`home-view__sheet-label`},`Image selection`,-1),u(f(`select`,{class:`home-view__mode-select`,"onUpdate:modelValue":n[5]||=e=>X.value=e,"aria-label":`Image selection mode`},[...n[21]||=[f(`option`,{value:`oldest_upload`},`Oldest upload first`,-1),f(`option`,{value:`newest_upload`},`Newest upload first`,-1),f(`option`,{value:`least_recently_shown`},`Least recently shown`,-1),f(`option`,{value:`random`},`Random`,-1)]],512),[[h,X.value]]),f(`label`,We,[u(f(`input`,{type:`checkbox`,"onUpdate:modelValue":n[6]||=e=>Z.value=e},null,512),[[ne,Z.value]]),n[22]||=f(`span`,null,`Show never-shown images first`,-1)])]),c(de,{variant:`primary`,class:`home-view__sheet-save`,disabled:B.value,onClick:rt},{default:t(()=>[se(d(B.value?`Saving…`:`Save`),1)]),_:1},8,[`disabled`]),f(`button`,{type:`button`,class:`home-view__remove`,onClick:n[7]||=e=>H.value=!0},`Remove this frame`)]),_:1},8,[`modelValue`]),(s(),ee(ae,{to:`body`},[c(te,{name:`home-view__remove-modal`},{default:t(()=>[H.value?(s(),b(`div`,{key:0,class:`home-view__remove-modal`,role:`alertdialog`,"aria-labelledby":`remove-confirm-title`,onClick:n[10]||=re(e=>H.value=!1,[`self`])},[f(`div`,Ge,[n[25]||=f(`p`,{class:`home-view__remove-confirm-title`,id:`remove-confirm-title`},` Remove this frame? `,-1),n[26]||=f(`p`,{class:`home-view__remove-confirm-body`},` Use this if you’re selling or giving away the frame. It deletes this frame from your account and unlinks it from your photos so the next owner can claim it fresh. This can’t be undone. `,-1),n[27]||=f(`p`,{class:`home-view__remove-confirm-aside`},` On the frame itself, the new owner can also do a factory reset by holding the small button on the back until the screen starts to flash. (If they only tap it briefly, the frame just refreshes its current image — keep holding until it flashes.) `,-1),f(`div`,Ke,[f(`button`,{type:`button`,class:`home-view__remove-cancel`,disabled:V.value,onClick:n[9]||=e=>H.value=!1},`Cancel`,8,qe),f(`button`,{type:`button`,class:`home-view__remove-confirm-btn`,disabled:V.value,onClick:nt},d(V.value?`Removing…`:`Yes, remove`),9,Je)])])])):y(``,!0)]),_:1})]))],64))}}),[[`__scopeId`,`data-v-7458107d`]]);export{G as default}; \ No newline at end of file +import{A as e,B as t,C as n,D as r,F as i,J as a,K as o,N as s,S as c,U as l,V as u,Y as d,_ as ee,a as te,c as ne,f as re,g as f,h as p,i as m,j as ie,l as h,m as ae,p as g,q as _,t as v,u as oe,v as y,x as se,y as b,z as x}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{o as ce,s as le}from"./index-C81kpUpa.js";import{i as ue,n as de,r as fe,t as pe}from"./BaseBottomSheet-Bsol3Sat.js";import{t as S}from"./types-xv3fXrtW.js";import{t as me}from"./PullToRefresh-CSjUpm5h.js";var C=`https://wevisto.com/devices/`;function he(){let{devices:e}=m(ue()),t=new Map,n=new Map,r=window.__PF_MERCURE_URL__;if(!r)return{connectedCount:()=>0};function i(o){if(!t.has(o))try{let s=new URL(r);s.searchParams.append(`topic`,C+o);let c=new EventSource(s.toString(),{withCredentials:!0});c.onmessage=t=>{try{let n=JSON.parse(t.data);if(`deleted`in n&&n.deleted===!0){e.value=e.value.filter(e=>e.id!==n.id),a(n.id);return}let r=n,i=e.value.findIndex(e=>e.id===r.id);i!==-1&&(e.value[i]=r)}catch(e){console.warn(`[mercure] parse error`,e)}},c.onerror=()=>{if(c.readyState===EventSource.CLOSED){a(o);let e=window.setTimeout(()=>{n.delete(o),i(o)},5e3);n.set(o,e)}},t.set(o,c)}catch(e){console.warn(`[mercure] open failed for device `+o,e)}}function a(e){let r=t.get(e);r&&(r.close(),t.delete(e));let i=n.get(e);i!==void 0&&(clearTimeout(i),n.delete(e))}return x(e,e=>{let n=new Set(e.map(e=>e.id));for(let e of n)t.has(e)||i(e);for(let e of[...t.keys()])n.has(e)||a(e)},{immediate:!0,deep:!1}),ie(()=>{for(let e of[...t.keys()])a(e)}),{connectedCount:()=>t.size}}var w=[`src`,`alt`],T={class:`frame-card__body`},E={class:`frame-card__info`},D={class:`frame-card__name`},O={class:`frame-card__status-line`,"aria-live":`polite`},k={class:`frame-card__status-text`},A={key:0,class:`frame-card__sync-line`},j={key:0},M={key:1,class:`frame-card__sync-sep`,"aria-hidden":`true`},N={key:2},P={key:1,class:`frame-card__count`},F={key:0},I={key:1,"aria-hidden":`true`},L=v(n({__name:`FrameCard`,props:{deviceId:{},name:{},size:{},status:{},orientation:{},model:{},thumbnailUrl:{},photoCount:{},lastSync:{},nextSync:{}},emits:[`add-photo`,`edit`],setup(e){let n=e,r=p(()=>{if(n.size!==`large`)return{};let{width:e,height:t}=S(n.model??`v1`,n.orientation);return{aspectRatio:`${e} / ${t}`}}),i=p(()=>({})),o=p(()=>{switch(n.status){case`ok`:return`Online`;case`sync-fail`:return`Sync issue`;case`offline`:return`Offline`}});return(n,l)=>(s(),b(`div`,{class:_([`frame-card`,`frame-card--${e.size}`,`frame-card--${e.status}`])},[e.size===`large`?(s(),b(`button`,{key:0,class:`frame-card__settings-btn`,type:`button`,"aria-label":`Frame settings`,onClick:l[0]||=t=>n.$emit(`edit`,e.deviceId)},[...l[2]||=[f(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[f(`circle`,{cx:`12`,cy:`12`,r:`3`}),f(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})],-1)]])):y(``,!0),f(`div`,{class:`frame-card__preview`,style:a(r.value)},[e.thumbnailUrl?(s(),b(`img`,{key:0,src:e.thumbnailUrl,alt:`Current photo on ${e.name}`,class:`frame-card__img`},null,8,w)):(s(),b(`div`,{key:1,class:`frame-card__empty-preview`,style:a(i.value),"aria-hidden":`true`},[...l[3]||=[f(`svg`,{width:`32`,height:`32`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[f(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),f(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),f(`polyline`,{points:`21,15 16,10 5,21`})],-1)]],4))],4),f(`div`,T,[f(`div`,E,[f(`p`,D,d(e.name),1),f(`p`,O,[l[4]||=f(`span`,{class:`frame-card__status-dot`,"aria-hidden":`true`},null,-1),f(`span`,k,d(o.value),1)]),e.size===`large`&&(e.lastSync||e.nextSync)?(s(),b(`p`,A,[e.lastSync?(s(),b(`span`,j,`synced `+d(e.lastSync),1)):y(``,!0),e.lastSync&&e.nextSync?(s(),b(`span`,M,`·`)):y(``,!0),e.nextSync?(s(),b(`span`,N,d(e.nextSync),1)):y(``,!0)])):e.size===`compact`&&e.photoCount!==void 0?(s(),b(`p`,P,d(e.photoCount)+` `+d(e.photoCount===1?`photo`:`photos`),1)):y(``,!0)]),c(de,{variant:e.size===`large`?`primary`:`icon-pill`,"aria-label":`Add photo to ${e.name}`,class:`frame-card__add-btn`,onClick:l[1]||=t=>n.$emit(`add-photo`,e.deviceId)},{default:t(()=>[e.size===`large`?(s(),b(`span`,F,`+ Add Photo`)):(s(),b(`span`,I,`+`))]),_:1},8,[`variant`,`aria-label`])])],2))}}),[[`__scopeId`,`data-v-576f3f64`]]),ge=[`id`,`value`,`type`],R=[`for`],_e=[`id`],ve=v(n({__name:`BaseInput`,props:{modelValue:{default:``},label:{},type:{default:`text`},error:{},id:{}},emits:[`update:modelValue`,`blur`],setup(e,{emit:t}){let n=e,i=t,a=p(()=>n.id??`input-${Math.random().toString(36).slice(2)}`);return(t,n)=>(s(),b(`div`,{class:_([`input-wrap`,{"input-wrap--error":!!e.error,"input-wrap--filled":!!e.modelValue}])},[f(`input`,r({id:a.value},t.$attrs,{value:e.modelValue,type:e.type,class:`input-wrap__field`,placeholder:` `,onInput:n[0]||=e=>i(`update:modelValue`,e.target.value),onBlur:n[1]||=e=>i(`blur`,e)}),null,16,ge),f(`label`,{for:a.value,class:`input-wrap__label`},d(e.label),9,R),e.error?(s(),b(`p`,{key:0,id:`${a.value}-error`,class:`input-wrap__error`,role:`alert`},d(e.error),9,_e)):y(``,!0)],2))}}),[[`__scopeId`,`data-v-c8235ab2`]]),ye={class:`orientation-picker`,role:`radiogroup`,"aria-label":`Display orientation`},z=[`aria-checked`,`aria-label`,`onClick`],B=[`viewBox`],V=[`stroke`,`fill`],H=[`fill`],U={class:`orientation-opt__label`},W={class:`orientation-opt__sub`},be=v(n({__name:`OrientationPicker`,props:{modelValue:{}},emits:[`update:modelValue`],setup(e){let t=[{value:`landscape`,label:`Landscape`,sub:`Ribbon at bottom`,viewBox:`0 0 48 48`,rect:{x:4,y:12,width:40,height:24},ribbon:{x:20,y:36,width:8,height:5}},{value:`portrait`,label:`Portrait`,sub:`Ribbon on left`,viewBox:`0 0 48 48`,rect:{x:12,y:4,width:24,height:40},ribbon:{x:7,y:20,width:5,height:8}}];return(n,a)=>(s(),b(`div`,ye,[(s(),b(g,null,i(t,t=>f(`button`,{key:t.value,type:`button`,role:`radio`,"aria-checked":e.modelValue===t.value,"aria-label":t.label,class:_([`orientation-opt`,{"orientation-opt--active":e.modelValue===t.value}]),onClick:e=>n.$emit(`update:modelValue`,t.value)},[(s(),b(`svg`,{class:`orientation-opt__diagram`,viewBox:t.viewBox,fill:`none`,"aria-hidden":`true`},[f(`rect`,r({ref_for:!0},t.rect,{rx:`2`,stroke:e.modelValue===t.value?`var(--color-primary)`:`currentColor`,"stroke-width":`1.5`,fill:e.modelValue===t.value?`color-mix(in srgb, var(--color-primary) 12%, transparent)`:`var(--color-surface-2)`}),null,16,V),f(`rect`,r({ref_for:!0},t.ribbon,{fill:e.modelValue===t.value?`var(--color-primary)`:`var(--color-text-muted)`,rx:`1`}),null,16,H)],8,B)),f(`span`,U,d(t.label),1),f(`span`,W,d(t.sub),1)],10,z)),64))]))}}),[[`__scopeId`,`data-v-679dae08`]]),xe={class:`home-view`},Se={key:0,class:`home-view__loading`,"aria-live":`polite`},Ce={key:1,class:`home-view__empty`},we={key:2,class:`home-view__single`},Te=[`aria-label`],Ee={class:`home-view__sheet-field`},De={class:`home-view__sheet-field`},Oe={class:`home-view__sheet-field`},ke={key:0,class:`home-view__times-mode`},Ae={class:`home-view__times-list`},je=[`value`,`onChange`],Me=[`value`],Ne=[`value`,`onChange`],Pe=[`value`],Fe=[`value`,`onChange`],Ie=[`aria-label`,`onClick`],Le={key:0,class:`home-view__times-empty`},Re=[`label`],ze=[`value`],Be={key:1,class:`home-view__interval-mode`},Ve={class:`home-view__interval-input-row`},He={class:`home-view__next-update`,"aria-live":`polite`},Ue={class:`home-view__sheet-field`},We={class:`home-view__rotation-checkbox`},Ge={class:`home-view__remove-modal-card`},Ke={class:`home-view__remove-confirm-actions`},qe=[`disabled`],Je=[`disabled`],G=v(n({__name:`HomeView`,setup(n){function r(e){return e.wakeTimes.length>0?1440*60*1e3:e.rotationIntervalMinutes*6e4}function a(e){if(!e.lastSeenAt)return`offline`;let t=Date.now()-new Date(e.lastSeenAt).getTime(),n=r(e);return t<=n?`ok`:t<=2*n?`sync-fail`:`offline`}function m(e){if(!e.lastSeenAt)return null;let t=Date.now()-new Date(e.lastSeenAt).getTime();if(t<6e4)return`just now`;if(t<36e5)return`${Math.round(t/6e4)}m ago`;if(t<864e5)return`${Math.round(t/36e5)}h ago`;let n=Math.round(t/864e5);return n===1?`yesterday`:`${n} days ago`}function _(e){let t=Math.floor(e/60),n=e%60,r=t>=12?`PM`:`AM`,i=t%12;i===0&&(i=12);let a=n===0?``:`:${String(n).padStart(2,`0`)}`;return`${i}${a} ${r}`}function v(e,t){let n=new Intl.DateTimeFormat(`en-GB`,{timeZone:t,hour:`2-digit`,minute:`2-digit`,hour12:!1}).formatToParts(e),r=parseInt(n.find(e=>e.type===`hour`)?.value??`0`,10),i=parseInt(n.find(e=>e.type===`minute`)?.value??`0`,10);return r*60+i}function x(e,t){if(e.length===0)return null;let n=v(new Date,t),r=null,i=1/0;for(let t of e){let e=t>n?t-n:1440+(t-n);en})}return r}function S(e){let t=null;if(e.nextPollExpectedAt)t=new Date(e.nextPollExpectedAt).getTime();else if(e.wakeTimes.length>0){let t=x(e.wakeTimes,e.timezone||`UTC`);return t?`next sync ~${_(t.minutes)} ${t.today?`today`:`tomorrow`}`:null}else if(e.lastSeenAt)t=new Date(e.lastSeenAt).getTime()+e.rotationIntervalMinutes*6e4;else return null;let n=t-Date.now();if(n<=0)return null;if(n<6e4)return`next sync in <1m`;if(n<36e5)return`next sync in ${Math.round(n/6e4)}m`;if(n<864e5){let n=e.timezone||`UTC`,r=v(new Date(t),n),i=et(new Date(t),n),a=i===0?`today`:i===1?`tomorrow`:`in ${i}d`;return`next sync ~${_(r)} ${a}`}return`next sync in ${Math.round(n/864e5)}d`}function C(e){return e.currentImageId?`/api/devices/${e.id}/preview?v=${e.currentImageId}`:void 0}let w=le(),T=ce(),E=ue(),D=fe();he(),e(async()=>{await E.fetchDevices(),document.addEventListener(`visibilitychange`,O);let e=Number(T.query.setup);e&&($(e),w.replace({query:{...T.query,setup:void 0}}))}),ie(()=>{document.removeEventListener(`visibilitychange`,O)});function O(){document.visibilityState===`visible`&&E.fetchDevices({silent:!0})}let k=l(null);function A(){return window.scrollY>0?!1:(k.value?.scrollTop??0)===0}async function j(){await E.fetchDevices({silent:!0})}let M=l(null),N=null;function P(e){N=e,M.value?.click()}function F(e){let t=e.target,n=t.files?.[0];t.value=``,n&&(D.init(n,N??void 0),N=null,w.push(`/upload`))}let I=[1,2,3,4,5,6,7,8,9,10,11,12],ge=[0,5,10,15,20,25,30,35,40,45,50,55];function R(e){let t=Math.floor(e/60),n=e%60,r=t>=12?`PM`:`AM`,i=t%12;return i===0&&(i=12),{h:i,mm:n,p:r}}function _e(e,t,n){let r=e%12;return n===`PM`&&(r+=12),r*60+t}let ye=[{label:`Americas`,zones:[{value:`America/New_York`,label:`Eastern — New York, Toronto`},{value:`America/Chicago`,label:`Central — Chicago, Mexico City`},{value:`America/Denver`,label:`Mountain — Denver, Calgary`},{value:`America/Phoenix`,label:`Mountain (no DST) — Phoenix`},{value:`America/Los_Angeles`,label:`Pacific — Los Angeles, Vancouver`},{value:`America/Anchorage`,label:`Alaska — Anchorage`},{value:`Pacific/Honolulu`,label:`Hawaii — Honolulu`},{value:`America/Sao_Paulo`,label:`Brasília — São Paulo`},{value:`America/Argentina/Buenos_Aires`,label:`Argentina — Buenos Aires`},{value:`America/Bogota`,label:`Colombia — Bogotá`}]},{label:`Europe`,zones:[{value:`Europe/London`,label:`GMT/BST — London, Dublin`},{value:`Europe/Lisbon`,label:`WET/WEST — Lisbon`},{value:`Europe/Paris`,label:`CET/CEST — Paris, Brussels, Amsterdam`},{value:`Europe/Berlin`,label:`CET/CEST — Berlin, Vienna, Zurich`},{value:`Europe/Stockholm`,label:`CET/CEST — Stockholm, Oslo, Copenhagen`},{value:`Europe/Helsinki`,label:`EET/EEST — Helsinki, Tallinn, Riga`},{value:`Europe/Warsaw`,label:`CET/CEST — Warsaw, Prague, Budapest`},{value:`Europe/Rome`,label:`CET/CEST — Rome, Madrid`},{value:`Europe/Athens`,label:`EET/EEST — Athens, Bucharest`},{value:`Europe/Istanbul`,label:`TRT — Istanbul`},{value:`Europe/Moscow`,label:`MSK — Moscow`}]},{label:`Asia & Pacific`,zones:[{value:`Asia/Dubai`,label:`GST — Dubai, Abu Dhabi`},{value:`Asia/Karachi`,label:`PKT — Karachi, Islamabad`},{value:`Asia/Kolkata`,label:`IST — India`},{value:`Asia/Dhaka`,label:`BST — Dhaka, Bangladesh`},{value:`Asia/Bangkok`,label:`ICT — Bangkok, Jakarta, Hanoi`},{value:`Asia/Singapore`,label:`SGT — Singapore, Kuala Lumpur`},{value:`Asia/Shanghai`,label:`CST — Beijing, Shanghai, Taipei`},{value:`Asia/Seoul`,label:`KST — Seoul`},{value:`Asia/Tokyo`,label:`JST — Tokyo`},{value:`Australia/Sydney`,label:`AEDT/AEST — Sydney, Melbourne`},{value:`Australia/Brisbane`,label:`AEST (no DST) — Brisbane`},{value:`Australia/Perth`,label:`AWST — Perth`},{value:`Pacific/Auckland`,label:`NZDT/NZST — Auckland`}]},{label:`Africa & Middle East`,zones:[{value:`Africa/Cairo`,label:`EET — Cairo`},{value:`Africa/Nairobi`,label:`EAT — Nairobi, East Africa`},{value:`Africa/Johannesburg`,label:`SAST — Johannesburg`},{value:`Africa/Lagos`,label:`WAT — Lagos, West Africa`}]},{label:`UTC`,zones:[{value:`UTC`,label:`UTC — Coordinated Universal Time`}]}],z=l(!1),B=l(!1),V=l(!1),H=l(!1),U=l(null),W=l(``),G=l(`landscape`),K=l(`interval`),q=l([]),J=l(60),Y=l(`UTC`),X=l(`oldest_upload`),Z=l(!1),Ye=[540,1080,720,1260,360,900,450,1170,0];function Xe(){for(let e of Ye)if(!q.value.includes(e)){q.value=[...q.value,e];return}for(let e=0;e<1440;e+=5)if(!q.value.includes(e)){q.value=[...q.value,e];return}}function Ze(e){q.value=q.value.filter((t,n)=>n!==e)}function Q(e,t,n){let r=R(q.value[e]),i=t===`h`?parseInt(n,10):r.h,a=t===`mm`?parseInt(n,10):r.mm,o=t===`p`?n:r.p,s=[...q.value];s[e]=_e(i,a,o),q.value=s}let Qe=p(()=>{let e=U.value;if(!e)return``;let t=e.timezone||`UTC`,n;if(e.nextPollExpectedAt)n=new Date(e.nextPollExpectedAt).getTime();else if(e.lastSeenAt){let r=new Date(e.lastSeenAt).getTime();n=e.wakeTimes.length>0?$e(r,e.wakeTimes,t):r+e.rotationIntervalMinutes*6e4}else return`Next update: when the frame next connects`;return nt.id===e);t&&(U.value=t,W.value=t.name,G.value=t.orientation,Y.value=t.timezone??`UTC`,J.value=t.rotationIntervalMinutes,q.value=[...t.wakeTimes],K.value=t.wakeTimes.length>0?`times`:`interval`,X.value=t.rotationMode,Z.value=t.prioritizeNeverShown,H.value=!1,z.value=!0)}async function nt(){if(U.value){V.value=!0;try{await E.removeDevice(U.value.id),z.value=!1,H.value=!1}finally{V.value=!1}}}async function rt(){if(U.value){B.value=!0;try{let e={name:W.value.trim()||U.value.name,orientation:G.value,timezone:Y.value,rotationMode:X.value,prioritizeNeverShown:Z.value};K.value===`times`?e.wakeTimes=[...q.value]:(e.wakeTimes=[],e.rotationIntervalMinutes=Math.max(1,Math.min(1440,J.value||1))),await E.updateDevice(U.value.id,e),z.value=!1}finally{B.value=!1}}}return(e,n)=>(s(),b(g,null,[f(`main`,xe,[c(me,{"is-at-top":A,"on-refresh":j},{default:t(()=>[o(E).loading?(s(),b(`div`,Se,` Loading… `)):o(E).devices.length===0?(s(),b(`div`,Ce,[...n[11]||=[f(`div`,{class:`home-view__empty-card`},[f(`svg`,{class:`home-view__empty-icon`,width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[f(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),f(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),f(`polyline`,{points:`21,15 16,10 5,21`})]),f(`p`,{class:`home-view__empty-title`},`Set up your first frame`),f(`p`,{class:`home-view__empty-sub`},` Power on your WeVisto frame and scan the QR code it displays to get started. `)],-1)]])):o(E).devices.length===1?(s(),b(`div`,we,[c(L,{deviceId:o(E).devices[0].id,name:o(E).devices[0].name,size:`large`,status:a(o(E).devices[0]),orientation:o(E).devices[0].orientation,model:o(E).devices[0].model,thumbnailUrl:C(o(E).devices[0]),lastSync:m(o(E).devices[0]),nextSync:S(o(E).devices[0]),onAddPhoto:P,onEdit:$},null,8,[`deviceId`,`name`,`status`,`orientation`,`model`,`thumbnailUrl`,`lastSync`,`nextSync`])])):(s(),b(`div`,{key:3,ref_key:`stackEl`,ref:k,class:`home-view__stack`,role:`list`,"aria-label":`Frames`},[(s(!0),b(g,null,i(o(E).devices,e=>(s(),b(`div`,{key:e.id,class:`home-view__slide`,role:`listitem`,"aria-label":e.name},[c(L,{deviceId:e.id,name:e.name,size:`large`,status:a(e),orientation:e.orientation,model:e.model,thumbnailUrl:C(e),lastSync:m(e),nextSync:S(e),onAddPhoto:P,onEdit:$},null,8,[`deviceId`,`name`,`status`,`orientation`,`model`,`thumbnailUrl`,`lastSync`,`nextSync`])],8,Te))),128))],512))]),_:1}),f(`input`,{ref_key:`fileInputEl`,ref:M,type:`file`,accept:`image/jpeg,image/png,image/webp,image/gif`,hidden:``,onChange:F},null,544)]),c(pe,{modelValue:z.value,"onUpdate:modelValue":n[8]||=e=>z.value=e,label:`Frame settings`},{default:t(()=>[n[24]||=f(`h2`,{class:`home-view__sheet-title`},`Frame settings`,-1),f(`div`,Ee,[c(ve,{modelValue:W.value,"onUpdate:modelValue":n[0]||=e=>W.value=e,label:`Frame name`,maxlength:`100`},null,8,[`modelValue`])]),f(`div`,De,[n[12]||=f(`p`,{class:`home-view__sheet-label`},`Orientation`,-1),c(be,{modelValue:G.value,"onUpdate:modelValue":n[1]||=e=>G.value=e},null,8,[`modelValue`])]),f(`div`,Oe,[n[19]||=f(`p`,{class:`home-view__sheet-label`},`Update frequency`,-1),u(f(`select`,{class:`home-view__mode-select`,"onUpdate:modelValue":n[2]||=e=>K.value=e,"aria-label":`Update frequency mode`},[...n[13]||=[f(`option`,{value:`times`},`At specific time(s)`,-1),f(`option`,{value:`interval`},`Every X minutes`,-1)]],512),[[h,K.value]]),K.value===`times`?(s(),b(`div`,ke,[f(`div`,Ae,[(s(!0),b(g,null,i(q.value,(e,t)=>(s(),b(`div`,{key:t,class:`home-view__time-row`},[f(`select`,{class:`home-view__time-part`,value:R(e).h,"aria-label":`Hour`,onChange:e=>Q(t,`h`,e.target.value)},[(s(),b(g,null,i(I,e=>f(`option`,{key:e,value:e},d(e),9,Me)),64))],40,je),n[16]||=f(`span`,{class:`home-view__time-sep`},`:`,-1),f(`select`,{class:`home-view__time-part`,value:R(e).mm,"aria-label":`Minutes`,onChange:e=>Q(t,`mm`,e.target.value)},[(s(),b(g,null,i(ge,e=>f(`option`,{key:e,value:e},d(String(e).padStart(2,`0`)),9,Pe)),64))],40,Ne),f(`select`,{class:`home-view__time-part home-view__time-part--ampm`,value:R(e).p,"aria-label":`AM or PM`,onChange:e=>Q(t,`p`,e.target.value)},[...n[14]||=[f(`option`,{value:`AM`},`AM`,-1),f(`option`,{value:`PM`},`PM`,-1)]],40,Fe),f(`button`,{type:`button`,class:`home-view__time-remove`,"aria-label":`Remove ${_(e)}`,onClick:e=>Ze(t)},[...n[15]||=[f(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[f(`polyline`,{points:`3 6 5 6 21 6`}),f(`path`,{d:`M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6`}),f(`path`,{d:`M10 11v6`}),f(`path`,{d:`M14 11v6`})],-1)]],8,Ie)]))),128)),q.value.length===0?(s(),b(`p`,Le,`No update times yet — add one below.`)):y(``,!0)]),f(`button`,{type:`button`,class:`home-view__time-add`,onClick:Xe},`+ Add time`),u(f(`select`,{class:`home-view__tz-select`,"onUpdate:modelValue":n[3]||=e=>Y.value=e},[(s(),b(g,null,i(ye,e=>f(`optgroup`,{key:e.label,label:e.label},[(s(!0),b(g,null,i(e.zones,e=>(s(),b(`option`,{key:e.value,value:e.value},d(e.label),9,ze))),128))],8,Re)),64))],512),[[h,Y.value]])])):(s(),b(`div`,Be,[f(`div`,Ve,[n[17]||=f(`span`,null,`Every`,-1),u(f(`input`,{type:`number`,inputmode:`numeric`,pattern:`[0-9]*`,min:`1`,max:`1440`,class:`home-view__interval-input`,"onUpdate:modelValue":n[4]||=e=>J.value=e,"aria-label":`Update interval in minutes`},null,512),[[oe,J.value,void 0,{number:!0}]]),n[18]||=f(`span`,null,`minutes`,-1)])])),f(`p`,He,d(Qe.value),1),n[20]||=f(`p`,{class:`home-view__propagation-note`},` Changes will only take effect at the next device update. To force an immediate refresh, briefly disconnect and reconnect the frame’s power. `,-1)]),f(`div`,Ue,[n[23]||=f(`p`,{class:`home-view__sheet-label`},`Image selection`,-1),u(f(`select`,{class:`home-view__mode-select`,"onUpdate:modelValue":n[5]||=e=>X.value=e,"aria-label":`Image selection mode`},[...n[21]||=[f(`option`,{value:`oldest_upload`},`Oldest upload first`,-1),f(`option`,{value:`newest_upload`},`Newest upload first`,-1),f(`option`,{value:`least_recently_shown`},`Least recently shown`,-1),f(`option`,{value:`random`},`Random`,-1)]],512),[[h,X.value]]),f(`label`,We,[u(f(`input`,{type:`checkbox`,"onUpdate:modelValue":n[6]||=e=>Z.value=e},null,512),[[ne,Z.value]]),n[22]||=f(`span`,null,`Show never-shown images first`,-1)])]),c(de,{variant:`primary`,class:`home-view__sheet-save`,disabled:B.value,onClick:rt},{default:t(()=>[se(d(B.value?`Saving…`:`Save`),1)]),_:1},8,[`disabled`]),f(`button`,{type:`button`,class:`home-view__remove`,onClick:n[7]||=e=>H.value=!0},`Remove this frame`)]),_:1},8,[`modelValue`]),(s(),ee(ae,{to:`body`},[c(te,{name:`home-view__remove-modal`},{default:t(()=>[H.value?(s(),b(`div`,{key:0,class:`home-view__remove-modal`,role:`alertdialog`,"aria-labelledby":`remove-confirm-title`,onClick:n[10]||=re(e=>H.value=!1,[`self`])},[f(`div`,Ge,[n[25]||=f(`p`,{class:`home-view__remove-confirm-title`,id:`remove-confirm-title`},` Remove this frame? `,-1),n[26]||=f(`p`,{class:`home-view__remove-confirm-body`},` Use this if you’re selling or giving away the frame. It deletes this frame from your account and unlinks it from your photos so the next owner can claim it fresh. This can’t be undone. `,-1),n[27]||=f(`p`,{class:`home-view__remove-confirm-aside`},` On the frame itself, the new owner can also do a factory reset by holding the small button on the back until the screen starts to flash. (If they only tap it briefly, the frame just refreshes its current image — keep holding until it flashes.) `,-1),f(`div`,Ke,[f(`button`,{type:`button`,class:`home-view__remove-cancel`,disabled:V.value,onClick:n[9]||=e=>H.value=!1},`Cancel`,8,qe),f(`button`,{type:`button`,class:`home-view__remove-confirm-btn`,disabled:V.value,onClick:nt},d(V.value?`Removing…`:`Yes, remove`),9,Je)])])])):y(``,!0)]),_:1})]))],64))}}),[[`__scopeId`,`data-v-7458107d`]]);export{G as default}; \ No newline at end of file diff --git a/public/build/assets/LibraryView-DFJIjn5s.js b/public/build/assets/LibraryView-Br9GLQmy.js similarity index 99% rename from public/build/assets/LibraryView-DFJIjn5s.js rename to public/build/assets/LibraryView-Br9GLQmy.js index 41dda4b..eb9b5cc 100644 --- a/public/build/assets/LibraryView-DFJIjn5s.js +++ b/public/build/assets/LibraryView-Br9GLQmy.js @@ -1 +1 @@ -import{A as e,B as t,C as n,F as r,K as i,N as a,S as o,U as s,V as c,Y as l,_ as u,d,f,g as p,h as m,p as h,q as g,t as _,u as v,v as y,x as b,y as x,z as S}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{a as C,i as ee,o as te,s as w}from"./index-B3RcyMgN.js";import{i as T,n as E,r as ne,t as D}from"./BaseBottomSheet-Bsol3Sat.js";import{t as re}from"./PullToRefresh-CSjUpm5h.js";import{t as O}from"./DevicePicker-BnLOaG74.js";var k={class:`approve-card`},A=[`src`,`alt`],j={class:`approve-card__body`},ie={class:`approve-card__from`},M={class:`approve-card__date`},N={key:0,class:`approve-card__status`},P={class:`approve-card__actions`},ae=_(n({__name:`ApproveCard`,props:{item:{}},emits:[`updated`],setup(e,{emit:n}){let r=e,c=n,d=C(),f=T(),_=s(!1),v=s(!1),S=s([]),ee=m(()=>new Date(r.item.sharedAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`}));async function te(){_.value=!1,v.value=!0;try{c(`updated`,await d.approveShared(r.item.id,S.value))}finally{v.value=!1,S.value=[]}}async function w(){v.value=!0;try{c(`updated`,await d.declineShared(r.item.id))}finally{v.value=!1}}return(n,r)=>(a(),x(h,null,[p(`div`,k,[p(`img`,{src:e.item.thumbnailUrl,alt:`Photo from ${e.item.sharedBy}`,class:`approve-card__thumb`,loading:`lazy`},null,8,A),p(`div`,j,[p(`p`,ie,[r[3]||=b(`From `,-1),p(`strong`,null,l(e.item.sharedBy),1)]),p(`p`,M,l(ee.value),1),e.item.status===`pending`?y(``,!0):(a(),x(`div`,N,[p(`span`,{class:g([`approve-card__badge`,`approve-card__badge--${e.item.status}`])},l(e.item.status),3)])),p(`div`,P,[e.item.status===`pending`||e.item.status===`declined`?(a(),u(E,{key:0,variant:`primary`,size:`sm`,disabled:v.value,onClick:r[0]||=e=>_.value=!0},{default:t(()=>[b(l(e.item.status===`declined`?`Add anyway`:`Add to frame`),1)]),_:1},8,[`disabled`])):y(``,!0),e.item.status===`pending`||e.item.status===`approved`?(a(),u(E,{key:1,variant:`ghost`,size:`sm`,disabled:v.value,onClick:w},{default:t(()=>[b(l(e.item.status===`approved`?`Remove`:`Decline`),1)]),_:1},8,[`disabled`])):y(``,!0)])])]),o(O,{modelValue:_.value,"onUpdate:modelValue":r[1]||=e=>_.value=e,devices:i(f).devices,selected:S.value,uploading:v.value,"confirm-label":`Add to frames`,"onUpdate:selected":r[2]||=e=>S.value=e,onConfirm:te},null,8,[`modelValue`,`devices`,`selected`,`uploading`])],64))}}),[[`__scopeId`,`data-v-6d3dd8b4`]]),F={key:0,class:`manage__empty`},I={key:1,class:`manage__list`},L={class:`manage__device`},oe={class:`manage__device-name`},R={class:`manage__device-meta`},se=[`disabled`,`aria-label`,`onClick`],z={width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},ce={key:0,d:`M7 11V7a5 5 0 0 1 10 0v4`},le={key:1,d:`M7 11V7a5 5 0 0 1 9.9-1`},ue={key:0},de={class:`manage__toggle-wrap`},B={class:`manage__toggle-label`},V=[`disabled`,`aria-label`,`onClick`],fe=_(n({__name:`ManageImageSheet`,props:{modelValue:{type:Boolean},image:{},devices:{}},emits:[`update:modelValue`,`approval`,`lock`],setup(e,{emit:n}){let i=e,c=n,d=s(null),f=s(null);function m(e){return!!i.image?.approvedDeviceIds.includes(e)}function _(e){if(!i.image)return;d.value=e.id;let t=!m(e.id);c(`approval`,{imageId:i.image.id,deviceId:e.id,approved:t}),setTimeout(()=>{d.value=null},200)}function v(e){if(!i.image||!m(e.id))return;f.value=e.id;let t=e.lockedImageId!==i.image.id;c(`lock`,{imageId:i.image.id,deviceId:e.id,locked:t}),setTimeout(()=>{f.value=null},200)}return(n,i)=>(a(),u(D,{"model-value":e.modelValue,label:`Manage frames for this photo`,"onUpdate:modelValue":i[1]||=e=>n.$emit(`update:modelValue`,e)},{default:t(()=>[i[4]||=p(`h2`,{class:`manage__title`},`Manage frames`,-1),i[5]||=p(`p`,{class:`manage__sub`},` Toggle which frames show this photo, or lock it to a frame so it stays visible until you unlock it. `,-1),e.devices.length?(a(),x(`div`,I,[(a(!0),x(h,null,r(e.devices,t=>(a(),x(`div`,{key:t.id,class:`manage__row`},[p(`div`,L,[p(`span`,oe,l(t.name),1),p(`span`,R,l(t.orientation),1)]),m(t.id)?(a(),x(`button`,{key:0,type:`button`,class:g([`manage__lock`,{"manage__lock--on":t.lockedImageId===e.image?.id}]),disabled:f.value===t.id,"aria-label":t.lockedImageId===e.image?.id?`Unlock from ${t.name}`:`Lock to ${t.name}`,onClick:e=>v(t)},[(a(),x(`svg`,z,[i[2]||=p(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`,ry:`2`},null,-1),t.lockedImageId===e.image?.id?(a(),x(`path`,ce)):(a(),x(`path`,le))])),t.lockedImageId===e.image?.id?(a(),x(`span`,ue,`Locked`)):y(``,!0)],10,se)):y(``,!0),p(`label`,de,[p(`span`,B,l(m(t.id)?`Show`:`Hidden`),1),p(`button`,{type:`button`,class:g([`manage__toggle`,{"manage__toggle--on":m(t.id)}]),disabled:d.value===t.id,"aria-label":m(t.id)?`Hide this photo from ${t.name}`:`Show this photo on ${t.name}`,onClick:e=>_(t)},null,10,V)])]))),128))])):(a(),x(`div`,F,` You don't have any frames set up yet. `)),o(E,{variant:`primary`,class:`manage__done`,onClick:i[0]||=e=>n.$emit(`update:modelValue`,!1)},{default:t(()=>[...i[3]||=[b(` Done `,-1)]]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-8355addd`]]),H={class:`share-sheet__field`},U=[`onKeydown`],W={key:0,class:`share-sheet__error`},G={key:1,class:`share-sheet__success`},pe=_(n({__name:`ShareSheet`,props:{modelValue:{type:Boolean},imageId:{}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=C(),m=s(``),h=s(!1),g=s(``),_=s(``);async function S(){if(g.value=``,_.value=``,m.value.trim()){h.value=!0;try{await i.shareImage(r.imageId,m.value.trim()),_.value=`Invite sent to ${m.value.trim()}`,m.value=``}catch(e){g.value=e instanceof Error?e.message:`Failed to send`}finally{h.value=!1}}}return(n,r)=>(a(),u(D,{"model-value":e.modelValue,label:`Share photo`,"onUpdate:modelValue":r[1]||=e=>n.$emit(`update:modelValue`,e)},{default:t(()=>[r[2]||=p(`h2`,{class:`share-sheet__title`},`Share with someone`,-1),r[3]||=p(`p`,{class:`share-sheet__sub`},`They'll get an email and can add it to their frame.`,-1),p(`div`,H,[c(p(`input`,{"onUpdate:modelValue":r[0]||=e=>m.value=e,type:`email`,class:`share-sheet__input`,placeholder:`their@email.com`,autocomplete:`email`,onKeydown:d(f(S,[`prevent`]),[`enter`])},null,40,U),[[v,m.value]])]),g.value?(a(),x(`p`,W,l(g.value),1)):y(``,!0),_.value?(a(),x(`p`,G,l(_.value),1)):y(``,!0),o(E,{variant:`primary`,class:`share-sheet__btn`,disabled:h.value||!m.value.trim(),onClick:S},{default:t(()=>[b(l(h.value?`Sending…`:`Send invite`),1)]),_:1},8,[`disabled`])]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-24296e7b`]]),me={class:`library`},he={class:`library__header`},ge={class:`library__tabs`,role:`tablist`},_e=[`aria-selected`,`onClick`],ve={key:0,class:`library__loading`},ye={key:0,class:`library__empty`},be={key:1,class:`library__grid`},xe={class:`library__thumb`},Se=[`src`,`alt`],Ce=[`title`],we={class:`library__thumb-actions`},Te=[`aria-label`,`title`,`onClick`],Ee=[`aria-label`,`disabled`,`onClick`],De={key:0,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},Oe={key:1,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},ke=[`aria-label`,`onClick`],Ae=[`onClick`],je=[`aria-label`,`onClick`],Me={class:`library__manage-summary`},Ne={key:0,class:`library__manage-lock`},Pe={class:`library__subtabs`,role:`tablist`},Fe=[`aria-selected`,`onClick`],Ie={key:0,class:`library__loading`},Le={key:1,class:`library__shared-empty`},Re={class:`library__empty-title`},ze={class:`library__empty-sub`},Be={key:2,class:`library__shared-list`},Ve={key:3,class:`library__pagination`},He=[`disabled`],Ue={class:`library__page-info`},We=[`disabled`],Ge={class:`library__sheet-actions`},K=_(n({__name:`LibraryView`,setup(n){let c=w(),d=C(),f=T(),_=ne(),v=ee(),O=te(),k=[{id:`all`,label:`All`},{id:`mine`,label:`Mine`},{id:`shared`,label:`Shared`}];function A(e){return k.some(t=>t.id===e)?e:`all`}let j=s(A(O.query.tab));S(()=>O.query.tab,e=>{let t=A(e);t!==j.value&&(j.value=t,t===`shared`&&L(M.value))});let ie=[{id:`pending`,label:`Pending`},{id:`approved`,label:`Approved`},{id:`declined`,label:`Declined`}],M=s(`pending`),N=s([]),P=s(!1),F=s(1),I=s(1);async function L(e,t=1){P.value=!0;try{let n=await d.fetchSharedImages(e,t);N.value=n.items,F.value=n.page,I.value=n.totalPages}finally{P.value=!1}}function oe(e){M.value=e,L(e,1)}function R(e){L(M.value,e)}function se(e){let t=N.value.findIndex(t=>t.id===e.id);t!==-1&&(N.value[t]=e)}e(()=>{d.fetchImages(),f.fetchDevices(),d.fetchPendingCount(),j.value===`shared`&&L(M.value)});let z=s(null);function ce(){z.value?.click()}function le(e){let t=e.target,n=t.files?.[0];t.value=``,n&&(_.init(n),c.push(`/upload`))}function ue(){return window.scrollY===0}async function de(){await Promise.all([d.fetchImages({silent:!0}),d.fetchPendingCount(),f.fetchDevices({silent:!0}),j.value===`shared`?L(M.value,F.value):Promise.resolve()])}let B=m(()=>d.images),V=s(!1),H=s(null);function U(e){H.value=e,V.value=!0}let W=s(null);async function G(e,t){if(!W.value){W.value=e.id;try{await _.initEdit(e,t),c.push(`/upload`)}catch{v.show(`Could not load photo for editing`,`error`)}finally{W.value=null}}}function K(e){if(e.cropOrientation)return e.cropOrientation;let t=e.cropParams;return!t?.natW||!t?.natH?null:t.natW>=t.natH?`landscape`:`portrait`}function q(e){let t=K(e);if(!t)return null;for(let n of e.approvedDeviceIds){let e=f.devices.find(e=>e.id===n);if(e&&e.orientation!==t)return e}return null}function J(e){return f.devices.find(t=>t.lockedImageId===e.id)??null}async function Ke(e,t,n){try{await d.setApproval(e,t,n)}catch{v.show(`Failed to update frame approval`,`error`)}}async function qe(e,t,n){try{n?await f.lockImage(t,e):await f.unlockImage(t)}catch{v.show(`Failed to update lock`,`error`)}}let Y=s(!1),X=s(null),Je=m(()=>X.value===null?null:d.images.find(e=>e.id===X.value)??null);function Ye(e){X.value=e.id,Y.value=!0}function Xe(e){Ke(e.imageId,e.deviceId,e.approved)}function Ze(e){qe(e.imageId,e.deviceId,e.locked)}let Z=s(!1),Q=s(null),$=s(!1);function Qe(e){Q.value=e,Z.value=!0}async function $e(){if(Q.value){$.value=!0;try{await d.deleteImage(Q.value),Z.value=!1,v.show(`Photo deleted`,`success`)}catch{v.show(`Delete failed`,`error`)}finally{$.value=!1}}}return(e,n)=>(a(),x(`main`,me,[o(re,{"is-at-top":ue,"on-refresh":de},{default:t(()=>[p(`div`,he,[o(E,{variant:`primary`,class:`library__add-btn`,onClick:ce},{default:t(()=>[...n[6]||=[b(` + Add Photo `,-1)]]),_:1})]),p(`div`,ge,[(a(),x(h,null,r(k,e=>p(`button`,{key:e.id,type:`button`,role:`tab`,"aria-selected":j.value===e.id,class:g([`library__tab`,{"library__tab--active":j.value===e.id}]),onClick:t=>j.value=e.id},l(e.label),11,_e)),64))]),i(d).loading?(a(),x(`div`,ve,`Loading…`)):j.value===`shared`?(a(),x(h,{key:2},[p(`div`,Pe,[(a(),x(h,null,r(ie,e=>p(`button`,{key:e.id,type:`button`,role:`tab`,"aria-selected":M.value===e.id,class:g([`library__subtab`,{"library__subtab--active":M.value===e.id}]),onClick:t=>oe(e.id)},l(e.label),11,Fe)),64))]),P.value?(a(),x(`div`,Ie,`Loading…`)):N.value.length===0?(a(),x(`div`,Le,[n[15]||=p(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[p(`circle`,{cx:`18`,cy:`5`,r:`3`}),p(`circle`,{cx:`6`,cy:`12`,r:`3`}),p(`circle`,{cx:`18`,cy:`19`,r:`3`}),p(`line`,{x1:`8.59`,y1:`13.51`,x2:`15.42`,y2:`17.49`}),p(`line`,{x1:`15.41`,y1:`6.51`,x2:`8.59`,y2:`10.49`})],-1),p(`p`,Re,l(M.value===`pending`?`No pending photos`:M.value===`approved`?`No approved photos`:`No declined photos`),1),p(`p`,ze,l(M.value===`pending`?`Photos shared with you will appear here.`:`Photos you've added to a frame will appear here.`),1)])):(a(),x(`div`,Be,[(a(!0),x(h,null,r(N.value,e=>(a(),u(ae,{key:e.id,item:e,onUpdated:se},null,8,[`item`]))),128))])),I.value>1?(a(),x(`div`,Ve,[p(`button`,{class:`library__page-btn`,disabled:F.value<=1,onClick:n[0]||=e=>R(F.value-1)},`← Prev`,8,He),p(`span`,Ue,l(F.value)+` / `+l(I.value),1),p(`button`,{class:`library__page-btn`,disabled:F.value>=I.value,onClick:n[1]||=e=>R(F.value+1)},`Next →`,8,We)])):y(``,!0)],64)):(a(),x(h,{key:1},[B.value.length===0?(a(),x(`div`,ye,[...n[7]||=[p(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[p(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),p(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),p(`polyline`,{points:`21,15 16,10 5,21`})],-1),p(`p`,{class:`library__empty-title`},`No photos yet`,-1),p(`p`,{class:`library__empty-sub`},`Tap "+ Add Photo" above to upload your first one.`,-1)]])):(a(),x(`div`,be,[(a(!0),x(h,null,r(B.value,e=>(a(),x(`div`,{key:e.id,class:`library__item`},[p(`div`,xe,[p(`img`,{src:e.thumbnailUrl,alt:e.originalFilename,class:`library__img`,loading:`lazy`},null,8,Se),J(e)?(a(),x(`div`,{key:0,class:`library__thumb-lock`,title:`Locked on ${J(e).name}`,"aria-hidden":`true`},[...n[8]||=[p(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`,ry:`2`}),p(`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`})],-1)]],8,Ce)):y(``,!0),p(`div`,we,[q(e)?(a(),x(`button`,{key:0,class:`library__action-btn library__action-btn--warn`,type:`button`,"aria-label":`Crop orientation does not match ${q(e).name}; tap to re-crop`,title:`Cropped ${K(e)}, but ${q(e).name} is set to ${q(e).orientation}.`,onClick:t=>G(e,q(e).id)},[...n[9]||=[p(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),p(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),p(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})],-1)]],8,Te)):y(``,!0),p(`button`,{class:`library__action-btn`,type:`button`,"aria-label":`Edit ${e.originalFilename}`,disabled:W.value===e.id,onClick:t=>G(e)},[W.value===e.id?(a(),x(`svg`,Oe,[...n[11]||=[p(`circle`,{cx:`12`,cy:`12`,r:`10`},null,-1),p(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`12`},null,-1),p(`line`,{x1:`12`,y1:`16`,x2:`12.01`,y2:`16`},null,-1)]])):(a(),x(`svg`,De,[...n[10]||=[p(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`},null,-1),p(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`},null,-1)]]))],8,Ee),p(`button`,{class:`library__action-btn`,type:`button`,"aria-label":`Share ${e.originalFilename}`,onClick:t=>U(e.id)},[...n[12]||=[p(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`circle`,{cx:`18`,cy:`5`,r:`3`}),p(`circle`,{cx:`6`,cy:`12`,r:`3`}),p(`circle`,{cx:`18`,cy:`19`,r:`3`}),p(`line`,{x1:`8.59`,y1:`13.51`,x2:`15.42`,y2:`17.49`}),p(`line`,{x1:`15.41`,y1:`6.51`,x2:`8.59`,y2:`10.49`})],-1)]],8,ke),p(`button`,{class:`library__action-btn library__action-btn--danger`,type:`button`,"aria-label":`Delete photo`,onClick:t=>Qe(e.id)},[...n[13]||=[p(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`polyline`,{points:`3 6 5 6 21 6`}),p(`path`,{d:`M19 6l-1 14H6L5 6`}),p(`path`,{d:`M10 11v6M14 11v6`}),p(`path`,{d:`M9 6V4h6v2`})],-1)]],8,Ae)])]),i(f).devices.length>0?(a(),x(`button`,{key:0,type:`button`,class:`library__manage`,"aria-label":`Manage frames for ${e.originalFilename}`,onClick:t=>Ye(e)},[p(`span`,Me,[p(`b`,null,l(e.approvedDeviceIds.length),1),b(`/`+l(i(f).devices.length)+` `+l(i(f).devices.length===1?`frame`:`frames`)+` `,1),J(e)?(a(),x(`span`,Ne,`· 🔒 `+l(J(e).name),1)):y(``,!0)]),n[14]||=p(`span`,{class:`library__manage-action`},`Manage ▸`,-1)],8,je)):y(``,!0)]))),128))]))],64))]),_:1}),H.value===null?y(``,!0):(a(),u(pe,{key:0,modelValue:V.value,"onUpdate:modelValue":n[2]||=e=>V.value=e,"image-id":H.value},null,8,[`modelValue`,`image-id`])),o(fe,{modelValue:Y.value,"onUpdate:modelValue":n[3]||=e=>Y.value=e,image:Je.value,devices:i(f).devices,onApproval:Xe,onLock:Ze},null,8,[`modelValue`,`image`,`devices`]),o(D,{modelValue:Z.value,"onUpdate:modelValue":n[5]||=e=>Z.value=e,label:`Delete photo`},{default:t(()=>[n[17]||=p(`h2`,{class:`library__sheet-title`},`Delete this photo?`,-1),n[18]||=p(`p`,{class:`library__sheet-sub`},`It will be removed from all frames.`,-1),p(`div`,Ge,[o(E,{variant:`secondary`,onClick:n[4]||=e=>Z.value=!1},{default:t(()=>[...n[16]||=[b(`Cancel`,-1)]]),_:1}),o(E,{variant:`destructive`,disabled:$.value,onClick:$e},{default:t(()=>[b(l($.value?`Deleting…`:`Delete`),1)]),_:1},8,[`disabled`])])]),_:1},8,[`modelValue`]),p(`input`,{ref_key:`fileInputEl`,ref:z,type:`file`,accept:`image/jpeg,image/png,image/webp,image/gif`,hidden:``,onChange:le},null,544)]))}}),[[`__scopeId`,`data-v-dd1ac7ac`]]);export{K as default}; \ No newline at end of file +import{A as e,B as t,C as n,F as r,K as i,N as a,S as o,U as s,V as c,Y as l,_ as u,d,f,g as p,h as m,p as h,q as g,t as _,u as v,v as y,x as b,y as x,z as S}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{a as C,i as ee,o as te,s as w}from"./index-C81kpUpa.js";import{i as T,n as E,r as ne,t as D}from"./BaseBottomSheet-Bsol3Sat.js";import{t as re}from"./PullToRefresh-CSjUpm5h.js";import{t as O}from"./DevicePicker-BnLOaG74.js";var k={class:`approve-card`},A=[`src`,`alt`],j={class:`approve-card__body`},ie={class:`approve-card__from`},M={class:`approve-card__date`},N={key:0,class:`approve-card__status`},P={class:`approve-card__actions`},ae=_(n({__name:`ApproveCard`,props:{item:{}},emits:[`updated`],setup(e,{emit:n}){let r=e,c=n,d=C(),f=T(),_=s(!1),v=s(!1),S=s([]),ee=m(()=>new Date(r.item.sharedAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`}));async function te(){_.value=!1,v.value=!0;try{c(`updated`,await d.approveShared(r.item.id,S.value))}finally{v.value=!1,S.value=[]}}async function w(){v.value=!0;try{c(`updated`,await d.declineShared(r.item.id))}finally{v.value=!1}}return(n,r)=>(a(),x(h,null,[p(`div`,k,[p(`img`,{src:e.item.thumbnailUrl,alt:`Photo from ${e.item.sharedBy}`,class:`approve-card__thumb`,loading:`lazy`},null,8,A),p(`div`,j,[p(`p`,ie,[r[3]||=b(`From `,-1),p(`strong`,null,l(e.item.sharedBy),1)]),p(`p`,M,l(ee.value),1),e.item.status===`pending`?y(``,!0):(a(),x(`div`,N,[p(`span`,{class:g([`approve-card__badge`,`approve-card__badge--${e.item.status}`])},l(e.item.status),3)])),p(`div`,P,[e.item.status===`pending`||e.item.status===`declined`?(a(),u(E,{key:0,variant:`primary`,size:`sm`,disabled:v.value,onClick:r[0]||=e=>_.value=!0},{default:t(()=>[b(l(e.item.status===`declined`?`Add anyway`:`Add to frame`),1)]),_:1},8,[`disabled`])):y(``,!0),e.item.status===`pending`||e.item.status===`approved`?(a(),u(E,{key:1,variant:`ghost`,size:`sm`,disabled:v.value,onClick:w},{default:t(()=>[b(l(e.item.status===`approved`?`Remove`:`Decline`),1)]),_:1},8,[`disabled`])):y(``,!0)])])]),o(O,{modelValue:_.value,"onUpdate:modelValue":r[1]||=e=>_.value=e,devices:i(f).devices,selected:S.value,uploading:v.value,"confirm-label":`Add to frames`,"onUpdate:selected":r[2]||=e=>S.value=e,onConfirm:te},null,8,[`modelValue`,`devices`,`selected`,`uploading`])],64))}}),[[`__scopeId`,`data-v-6d3dd8b4`]]),F={key:0,class:`manage__empty`},I={key:1,class:`manage__list`},L={class:`manage__device`},oe={class:`manage__device-name`},R={class:`manage__device-meta`},se=[`disabled`,`aria-label`,`onClick`],z={width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},ce={key:0,d:`M7 11V7a5 5 0 0 1 10 0v4`},le={key:1,d:`M7 11V7a5 5 0 0 1 9.9-1`},ue={key:0},de={class:`manage__toggle-wrap`},B={class:`manage__toggle-label`},V=[`disabled`,`aria-label`,`onClick`],fe=_(n({__name:`ManageImageSheet`,props:{modelValue:{type:Boolean},image:{},devices:{}},emits:[`update:modelValue`,`approval`,`lock`],setup(e,{emit:n}){let i=e,c=n,d=s(null),f=s(null);function m(e){return!!i.image?.approvedDeviceIds.includes(e)}function _(e){if(!i.image)return;d.value=e.id;let t=!m(e.id);c(`approval`,{imageId:i.image.id,deviceId:e.id,approved:t}),setTimeout(()=>{d.value=null},200)}function v(e){if(!i.image||!m(e.id))return;f.value=e.id;let t=e.lockedImageId!==i.image.id;c(`lock`,{imageId:i.image.id,deviceId:e.id,locked:t}),setTimeout(()=>{f.value=null},200)}return(n,i)=>(a(),u(D,{"model-value":e.modelValue,label:`Manage frames for this photo`,"onUpdate:modelValue":i[1]||=e=>n.$emit(`update:modelValue`,e)},{default:t(()=>[i[4]||=p(`h2`,{class:`manage__title`},`Manage frames`,-1),i[5]||=p(`p`,{class:`manage__sub`},` Toggle which frames show this photo, or lock it to a frame so it stays visible until you unlock it. `,-1),e.devices.length?(a(),x(`div`,I,[(a(!0),x(h,null,r(e.devices,t=>(a(),x(`div`,{key:t.id,class:`manage__row`},[p(`div`,L,[p(`span`,oe,l(t.name),1),p(`span`,R,l(t.orientation),1)]),m(t.id)?(a(),x(`button`,{key:0,type:`button`,class:g([`manage__lock`,{"manage__lock--on":t.lockedImageId===e.image?.id}]),disabled:f.value===t.id,"aria-label":t.lockedImageId===e.image?.id?`Unlock from ${t.name}`:`Lock to ${t.name}`,onClick:e=>v(t)},[(a(),x(`svg`,z,[i[2]||=p(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`,ry:`2`},null,-1),t.lockedImageId===e.image?.id?(a(),x(`path`,ce)):(a(),x(`path`,le))])),t.lockedImageId===e.image?.id?(a(),x(`span`,ue,`Locked`)):y(``,!0)],10,se)):y(``,!0),p(`label`,de,[p(`span`,B,l(m(t.id)?`Show`:`Hidden`),1),p(`button`,{type:`button`,class:g([`manage__toggle`,{"manage__toggle--on":m(t.id)}]),disabled:d.value===t.id,"aria-label":m(t.id)?`Hide this photo from ${t.name}`:`Show this photo on ${t.name}`,onClick:e=>_(t)},null,10,V)])]))),128))])):(a(),x(`div`,F,` You don't have any frames set up yet. `)),o(E,{variant:`primary`,class:`manage__done`,onClick:i[0]||=e=>n.$emit(`update:modelValue`,!1)},{default:t(()=>[...i[3]||=[b(` Done `,-1)]]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-8355addd`]]),H={class:`share-sheet__field`},U=[`onKeydown`],W={key:0,class:`share-sheet__error`},G={key:1,class:`share-sheet__success`},pe=_(n({__name:`ShareSheet`,props:{modelValue:{type:Boolean},imageId:{}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=C(),m=s(``),h=s(!1),g=s(``),_=s(``);async function S(){if(g.value=``,_.value=``,m.value.trim()){h.value=!0;try{await i.shareImage(r.imageId,m.value.trim()),_.value=`Invite sent to ${m.value.trim()}`,m.value=``}catch(e){g.value=e instanceof Error?e.message:`Failed to send`}finally{h.value=!1}}}return(n,r)=>(a(),u(D,{"model-value":e.modelValue,label:`Share photo`,"onUpdate:modelValue":r[1]||=e=>n.$emit(`update:modelValue`,e)},{default:t(()=>[r[2]||=p(`h2`,{class:`share-sheet__title`},`Share with someone`,-1),r[3]||=p(`p`,{class:`share-sheet__sub`},`They'll get an email and can add it to their frame.`,-1),p(`div`,H,[c(p(`input`,{"onUpdate:modelValue":r[0]||=e=>m.value=e,type:`email`,class:`share-sheet__input`,placeholder:`their@email.com`,autocomplete:`email`,onKeydown:d(f(S,[`prevent`]),[`enter`])},null,40,U),[[v,m.value]])]),g.value?(a(),x(`p`,W,l(g.value),1)):y(``,!0),_.value?(a(),x(`p`,G,l(_.value),1)):y(``,!0),o(E,{variant:`primary`,class:`share-sheet__btn`,disabled:h.value||!m.value.trim(),onClick:S},{default:t(()=>[b(l(h.value?`Sending…`:`Send invite`),1)]),_:1},8,[`disabled`])]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-24296e7b`]]),me={class:`library`},he={class:`library__header`},ge={class:`library__tabs`,role:`tablist`},_e=[`aria-selected`,`onClick`],ve={key:0,class:`library__loading`},ye={key:0,class:`library__empty`},be={key:1,class:`library__grid`},xe={class:`library__thumb`},Se=[`src`,`alt`],Ce=[`title`],we={class:`library__thumb-actions`},Te=[`aria-label`,`title`,`onClick`],Ee=[`aria-label`,`disabled`,`onClick`],De={key:0,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},Oe={key:1,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},ke=[`aria-label`,`onClick`],Ae=[`onClick`],je=[`aria-label`,`onClick`],Me={class:`library__manage-summary`},Ne={key:0,class:`library__manage-lock`},Pe={class:`library__subtabs`,role:`tablist`},Fe=[`aria-selected`,`onClick`],Ie={key:0,class:`library__loading`},Le={key:1,class:`library__shared-empty`},Re={class:`library__empty-title`},ze={class:`library__empty-sub`},Be={key:2,class:`library__shared-list`},Ve={key:3,class:`library__pagination`},He=[`disabled`],Ue={class:`library__page-info`},We=[`disabled`],Ge={class:`library__sheet-actions`},K=_(n({__name:`LibraryView`,setup(n){let c=w(),d=C(),f=T(),_=ne(),v=ee(),O=te(),k=[{id:`all`,label:`All`},{id:`mine`,label:`Mine`},{id:`shared`,label:`Shared`}];function A(e){return k.some(t=>t.id===e)?e:`all`}let j=s(A(O.query.tab));S(()=>O.query.tab,e=>{let t=A(e);t!==j.value&&(j.value=t,t===`shared`&&L(M.value))});let ie=[{id:`pending`,label:`Pending`},{id:`approved`,label:`Approved`},{id:`declined`,label:`Declined`}],M=s(`pending`),N=s([]),P=s(!1),F=s(1),I=s(1);async function L(e,t=1){P.value=!0;try{let n=await d.fetchSharedImages(e,t);N.value=n.items,F.value=n.page,I.value=n.totalPages}finally{P.value=!1}}function oe(e){M.value=e,L(e,1)}function R(e){L(M.value,e)}function se(e){let t=N.value.findIndex(t=>t.id===e.id);t!==-1&&(N.value[t]=e)}e(()=>{d.fetchImages(),f.fetchDevices(),d.fetchPendingCount(),j.value===`shared`&&L(M.value)});let z=s(null);function ce(){z.value?.click()}function le(e){let t=e.target,n=t.files?.[0];t.value=``,n&&(_.init(n),c.push(`/upload`))}function ue(){return window.scrollY===0}async function de(){await Promise.all([d.fetchImages({silent:!0}),d.fetchPendingCount(),f.fetchDevices({silent:!0}),j.value===`shared`?L(M.value,F.value):Promise.resolve()])}let B=m(()=>d.images),V=s(!1),H=s(null);function U(e){H.value=e,V.value=!0}let W=s(null);async function G(e,t){if(!W.value){W.value=e.id;try{await _.initEdit(e,t),c.push(`/upload`)}catch{v.show(`Could not load photo for editing`,`error`)}finally{W.value=null}}}function K(e){if(e.cropOrientation)return e.cropOrientation;let t=e.cropParams;return!t?.natW||!t?.natH?null:t.natW>=t.natH?`landscape`:`portrait`}function q(e){let t=K(e);if(!t)return null;for(let n of e.approvedDeviceIds){let e=f.devices.find(e=>e.id===n);if(e&&e.orientation!==t)return e}return null}function J(e){return f.devices.find(t=>t.lockedImageId===e.id)??null}async function Ke(e,t,n){try{await d.setApproval(e,t,n)}catch{v.show(`Failed to update frame approval`,`error`)}}async function qe(e,t,n){try{n?await f.lockImage(t,e):await f.unlockImage(t)}catch{v.show(`Failed to update lock`,`error`)}}let Y=s(!1),X=s(null),Je=m(()=>X.value===null?null:d.images.find(e=>e.id===X.value)??null);function Ye(e){X.value=e.id,Y.value=!0}function Xe(e){Ke(e.imageId,e.deviceId,e.approved)}function Ze(e){qe(e.imageId,e.deviceId,e.locked)}let Z=s(!1),Q=s(null),$=s(!1);function Qe(e){Q.value=e,Z.value=!0}async function $e(){if(Q.value){$.value=!0;try{await d.deleteImage(Q.value),Z.value=!1,v.show(`Photo deleted`,`success`)}catch{v.show(`Delete failed`,`error`)}finally{$.value=!1}}}return(e,n)=>(a(),x(`main`,me,[o(re,{"is-at-top":ue,"on-refresh":de},{default:t(()=>[p(`div`,he,[o(E,{variant:`primary`,class:`library__add-btn`,onClick:ce},{default:t(()=>[...n[6]||=[b(` + Add Photo `,-1)]]),_:1})]),p(`div`,ge,[(a(),x(h,null,r(k,e=>p(`button`,{key:e.id,type:`button`,role:`tab`,"aria-selected":j.value===e.id,class:g([`library__tab`,{"library__tab--active":j.value===e.id}]),onClick:t=>j.value=e.id},l(e.label),11,_e)),64))]),i(d).loading?(a(),x(`div`,ve,`Loading…`)):j.value===`shared`?(a(),x(h,{key:2},[p(`div`,Pe,[(a(),x(h,null,r(ie,e=>p(`button`,{key:e.id,type:`button`,role:`tab`,"aria-selected":M.value===e.id,class:g([`library__subtab`,{"library__subtab--active":M.value===e.id}]),onClick:t=>oe(e.id)},l(e.label),11,Fe)),64))]),P.value?(a(),x(`div`,Ie,`Loading…`)):N.value.length===0?(a(),x(`div`,Le,[n[15]||=p(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[p(`circle`,{cx:`18`,cy:`5`,r:`3`}),p(`circle`,{cx:`6`,cy:`12`,r:`3`}),p(`circle`,{cx:`18`,cy:`19`,r:`3`}),p(`line`,{x1:`8.59`,y1:`13.51`,x2:`15.42`,y2:`17.49`}),p(`line`,{x1:`15.41`,y1:`6.51`,x2:`8.59`,y2:`10.49`})],-1),p(`p`,Re,l(M.value===`pending`?`No pending photos`:M.value===`approved`?`No approved photos`:`No declined photos`),1),p(`p`,ze,l(M.value===`pending`?`Photos shared with you will appear here.`:`Photos you've added to a frame will appear here.`),1)])):(a(),x(`div`,Be,[(a(!0),x(h,null,r(N.value,e=>(a(),u(ae,{key:e.id,item:e,onUpdated:se},null,8,[`item`]))),128))])),I.value>1?(a(),x(`div`,Ve,[p(`button`,{class:`library__page-btn`,disabled:F.value<=1,onClick:n[0]||=e=>R(F.value-1)},`← Prev`,8,He),p(`span`,Ue,l(F.value)+` / `+l(I.value),1),p(`button`,{class:`library__page-btn`,disabled:F.value>=I.value,onClick:n[1]||=e=>R(F.value+1)},`Next →`,8,We)])):y(``,!0)],64)):(a(),x(h,{key:1},[B.value.length===0?(a(),x(`div`,ye,[...n[7]||=[p(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"aria-hidden":`true`},[p(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),p(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),p(`polyline`,{points:`21,15 16,10 5,21`})],-1),p(`p`,{class:`library__empty-title`},`No photos yet`,-1),p(`p`,{class:`library__empty-sub`},`Tap "+ Add Photo" above to upload your first one.`,-1)]])):(a(),x(`div`,be,[(a(!0),x(h,null,r(B.value,e=>(a(),x(`div`,{key:e.id,class:`library__item`},[p(`div`,xe,[p(`img`,{src:e.thumbnailUrl,alt:e.originalFilename,class:`library__img`,loading:`lazy`},null,8,Se),J(e)?(a(),x(`div`,{key:0,class:`library__thumb-lock`,title:`Locked on ${J(e).name}`,"aria-hidden":`true`},[...n[8]||=[p(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`,ry:`2`}),p(`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`})],-1)]],8,Ce)):y(``,!0),p(`div`,we,[q(e)?(a(),x(`button`,{key:0,class:`library__action-btn library__action-btn--warn`,type:`button`,"aria-label":`Crop orientation does not match ${q(e).name}; tap to re-crop`,title:`Cropped ${K(e)}, but ${q(e).name} is set to ${q(e).orientation}.`,onClick:t=>G(e,q(e).id)},[...n[9]||=[p(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),p(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),p(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})],-1)]],8,Te)):y(``,!0),p(`button`,{class:`library__action-btn`,type:`button`,"aria-label":`Edit ${e.originalFilename}`,disabled:W.value===e.id,onClick:t=>G(e)},[W.value===e.id?(a(),x(`svg`,Oe,[...n[11]||=[p(`circle`,{cx:`12`,cy:`12`,r:`10`},null,-1),p(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`12`},null,-1),p(`line`,{x1:`12`,y1:`16`,x2:`12.01`,y2:`16`},null,-1)]])):(a(),x(`svg`,De,[...n[10]||=[p(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`},null,-1),p(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`},null,-1)]]))],8,Ee),p(`button`,{class:`library__action-btn`,type:`button`,"aria-label":`Share ${e.originalFilename}`,onClick:t=>U(e.id)},[...n[12]||=[p(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`circle`,{cx:`18`,cy:`5`,r:`3`}),p(`circle`,{cx:`6`,cy:`12`,r:`3`}),p(`circle`,{cx:`18`,cy:`19`,r:`3`}),p(`line`,{x1:`8.59`,y1:`13.51`,x2:`15.42`,y2:`17.49`}),p(`line`,{x1:`15.41`,y1:`6.51`,x2:`8.59`,y2:`10.49`})],-1)]],8,ke),p(`button`,{class:`library__action-btn library__action-btn--danger`,type:`button`,"aria-label":`Delete photo`,onClick:t=>Qe(e.id)},[...n[13]||=[p(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[p(`polyline`,{points:`3 6 5 6 21 6`}),p(`path`,{d:`M19 6l-1 14H6L5 6`}),p(`path`,{d:`M10 11v6M14 11v6`}),p(`path`,{d:`M9 6V4h6v2`})],-1)]],8,Ae)])]),i(f).devices.length>0?(a(),x(`button`,{key:0,type:`button`,class:`library__manage`,"aria-label":`Manage frames for ${e.originalFilename}`,onClick:t=>Ye(e)},[p(`span`,Me,[p(`b`,null,l(e.approvedDeviceIds.length),1),b(`/`+l(i(f).devices.length)+` `+l(i(f).devices.length===1?`frame`:`frames`)+` `,1),J(e)?(a(),x(`span`,Ne,`· 🔒 `+l(J(e).name),1)):y(``,!0)]),n[14]||=p(`span`,{class:`library__manage-action`},`Manage ▸`,-1)],8,je)):y(``,!0)]))),128))]))],64))]),_:1}),H.value===null?y(``,!0):(a(),u(pe,{key:0,modelValue:V.value,"onUpdate:modelValue":n[2]||=e=>V.value=e,"image-id":H.value},null,8,[`modelValue`,`image-id`])),o(fe,{modelValue:Y.value,"onUpdate:modelValue":n[3]||=e=>Y.value=e,image:Je.value,devices:i(f).devices,onApproval:Xe,onLock:Ze},null,8,[`modelValue`,`image`,`devices`]),o(D,{modelValue:Z.value,"onUpdate:modelValue":n[5]||=e=>Z.value=e,label:`Delete photo`},{default:t(()=>[n[17]||=p(`h2`,{class:`library__sheet-title`},`Delete this photo?`,-1),n[18]||=p(`p`,{class:`library__sheet-sub`},`It will be removed from all frames.`,-1),p(`div`,Ge,[o(E,{variant:`secondary`,onClick:n[4]||=e=>Z.value=!1},{default:t(()=>[...n[16]||=[b(`Cancel`,-1)]]),_:1}),o(E,{variant:`destructive`,disabled:$.value,onClick:$e},{default:t(()=>[b(l($.value?`Deleting…`:`Delete`),1)]),_:1},8,[`disabled`])])]),_:1},8,[`modelValue`]),p(`input`,{ref_key:`fileInputEl`,ref:z,type:`file`,accept:`image/jpeg,image/png,image/webp,image/gif`,hidden:``,onChange:le},null,544)]))}}),[[`__scopeId`,`data-v-dd1ac7ac`]]);export{K as default}; \ No newline at end of file diff --git a/public/build/assets/SettingsView-Buxddglj.css b/public/build/assets/SettingsView-Buxddglj.css new file mode 100644 index 0000000..a5ab36f --- /dev/null +++ b/public/build/assets/SettingsView-Buxddglj.css @@ -0,0 +1 @@ +.settings[data-v-b97700d6]{padding:var(--space-4) var(--space-4) calc(var(--bottom-nav-height) + var(--space-6));max-width:480px;margin:0 auto}@media (width>=960px){.settings[data-v-b97700d6]{max-width:720px;padding-top:var(--space-8);padding-bottom:var(--space-8)}}.settings__title[data-v-b97700d6]{font-size:var(--text-xl);margin-bottom:var(--space-6);font-weight:700}.settings__section[data-v-b97700d6]{margin-bottom:var(--space-6)}.settings__section-title[data-v-b97700d6]{font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3);font-weight:700}.settings__row[data-v-b97700d6]{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-base);justify-content:space-between;align-items:center;display:flex}.settings__row-label[data-v-b97700d6]{color:var(--color-text-muted)}.settings__row-value[data-v-b97700d6]{font-weight:600}.settings__logout[data-v-b97700d6]{min-height:var(--touch-min);padding:var(--space-3) 0;color:var(--color-destructive);font-weight:600;font-size:var(--text-base);align-items:center;text-decoration:none;display:flex}.settings__action-link[data-v-b97700d6]{width:100%;min-height:var(--touch-min);padding:var(--space-3) 0;border:none;border-bottom:1px solid var(--color-border);color:var(--color-primary);font-weight:600;font-size:var(--text-base);cursor:pointer;text-align:left;background:0 0;align-items:center;font-family:inherit;display:flex}.settings__hint[data-v-b97700d6]{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3);line-height:1.4}.settings__install[data-v-b97700d6]{width:100%;min-height:var(--touch-min);background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-pill,9999px);font-size:var(--text-base);cursor:pointer;border:none;justify-content:center;align-items:center;font-weight:700;display:flex}.install-modal[data-v-b97700d6]{padding:var(--space-4);z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.install-modal__card[data-v-b97700d6]{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg,16px);padding:var(--space-5);width:100%;max-width:380px;position:relative;box-shadow:0 20px 60px #00000040}.install-modal__close[data-v-b97700d6]{top:var(--space-2);right:var(--space-3);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none;font-size:1.75rem;line-height:1;position:absolute}.install-modal__title[data-v-b97700d6]{font-size:var(--text-lg);margin-bottom:var(--space-3);padding-right:var(--space-5);font-weight:700}.install-modal__steps[data-v-b97700d6]{margin:0 0 var(--space-3) var(--space-4);padding:0;line-height:1.5}.install-modal__steps li[data-v-b97700d6]{margin-bottom:var(--space-2)}.install-modal__footer[data-v-b97700d6]{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);line-height:1.4}.pw-form[data-v-b97700d6]{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;display:flex}.pw-form__field[data-v-b97700d6]{flex-direction:column;gap:4px;display:flex}.pw-form__label[data-v-b97700d6]{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:600}.pw-form__input[data-v-b97700d6]{min-height:var(--touch-min);padding:0 var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:16px}.pw-form__input[data-v-b97700d6]:focus{outline:2px solid var(--color-primary);outline-offset:2px}.pw-form__input[aria-invalid=true][data-v-b97700d6]{border-color:var(--color-destructive,#c0392b)}.pw-form__hint[data-v-b97700d6]{font-size:var(--text-xs);color:var(--color-text-muted)}.pw-form__error[data-v-b97700d6]{font-size:var(--text-sm);color:var(--color-destructive,#c0392b)}.pw-form__success[data-v-b97700d6]{font-size:var(--text-sm);color:var(--color-success,#2e7d32);font-weight:600}.theme-grid[data-v-b97700d6]{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.theme-swatch[data-v-b97700d6]{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--swatch-bg);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-fast);min-height:var(--touch-min);border:2px solid #0000;flex-direction:column;display:flex;position:relative}.theme-swatch--active[data-v-b97700d6]{border-color:var(--swatch-primary)}.theme-swatch__preview[data-v-b97700d6]{border-radius:var(--radius-sm);background:var(--swatch-bg);border:1px solid color-mix(in srgb, var(--swatch-text) 15%, transparent);flex-direction:column;justify-content:center;gap:4px;width:100%;height:36px;padding:0 6px;display:flex}.theme-swatch__bar[data-v-b97700d6]{background:var(--swatch-primary);border-radius:3px;width:60%;height:6px;display:block}.theme-swatch__dot[data-v-b97700d6]{background:var(--swatch-text);opacity:.4;border-radius:2px;width:80%;height:4px;display:block}.theme-swatch__label[data-v-b97700d6]{font-size:var(--text-xs);color:var(--color-text);text-align:center;font-weight:600;line-height:1.2}.theme-swatch__check[data-v-b97700d6]{top:var(--space-1);right:var(--space-2);font-size:var(--text-sm);color:var(--swatch-primary);font-weight:700;position:absolute}.design-toggle[data-v-b97700d6]{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.design-toggle__opt[data-v-b97700d6]{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;text-align:left;color:var(--color-text);transition:border-color var(--duration-fast), background var(--duration-fast);font-family:inherit}.design-toggle__opt[data-v-b97700d6]:hover{border-color:var(--color-primary)}.design-toggle__opt--active[data-v-b97700d6]{border-color:var(--color-primary);background:var(--color-surface-2)}.design-toggle__label[data-v-b97700d6]{font-size:var(--text-base);margin-bottom:2px;font-weight:800;display:block}.design-toggle__sub[data-v-b97700d6]{font-size:var(--text-xs);color:var(--color-text-muted);display:block} diff --git a/public/build/assets/SettingsView-CnrppHZO.js b/public/build/assets/SettingsView-CnrppHZO.js new file mode 100644 index 0000000..e6daedb --- /dev/null +++ b/public/build/assets/SettingsView-CnrppHZO.js @@ -0,0 +1 @@ +import{C as e,F as t,J as n,K as r,N as i,U as a,V as o,Y as s,f as c,g as l,h as u,p as ee,q as d,t as f,u as p,v as m,x as h,y as g}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{n as te,r as ne,t as re}from"./index-C81kpUpa.js";var _=a(null),v=a(!1);function y(){return typeof window>`u`?!1:window.matchMedia?.(`(display-mode: standalone)`).matches?!0:window.navigator.standalone===!0}function b(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent,t=e.includes(`Mac`)&&navigator.maxTouchPoints>1;return/iPhone|iPod/.test(e)||t}var x=!1;function S(){x||typeof window>`u`||(x=!0,v.value=y(),window.addEventListener(`beforeinstallprompt`,e=>{e.preventDefault(),_.value=e}),window.addEventListener(`appinstalled`,()=>{_.value=null,v.value=!0}),window.matchMedia?.(`(display-mode: standalone)`).addEventListener(`change`,e=>{v.value=e.matches}))}S();function ie(){let e=b(),t=u(()=>_.value!==null);async function n(){let e=_.value;if(!e)return!1;await e.prompt();let t=await e.userChoice;return _.value=null,t.outcome===`accepted`}return{isStandalone:v,isIOS:e,canPromptInstall:t,install:n}}var ae={class:`settings`},oe={key:0,class:`settings__section`},se={class:`settings__section`},ce={class:`design-toggle`,role:`radiogroup`,"aria-label":`Design version`},le=[`aria-checked`],ue=[`aria-checked`],de={class:`settings__section`},fe={class:`theme-grid`,role:`radiogroup`,"aria-label":`Choose theme`},C=[`aria-checked`,`aria-label`,`onClick`],w={class:`theme-swatch__label`},T={key:0,class:`theme-swatch__check`,"aria-hidden":`true`},E={class:`settings__section`},D={class:`settings__row`},O={class:`settings__row-value`},k={class:`install-modal__card`},A={class:`pw-form__field`},j={class:`pw-form__field`},M={class:`pw-form__field`},N=[`aria-invalid`],P={key:0,class:`pw-form__error`},F={key:0,class:`pw-form__error`,role:`alert`},I={key:1,class:`pw-form__success`,role:`status`},L=[`disabled`],R={class:`install-modal__card`},pe={id:`install-modal-title`,class:`install-modal__title`},z={class:`install-modal__steps`},B={key:0},me={key:1},he={key:0},V=f(e({__name:`SettingsView`,setup(e){let f=ne(),{saveTheme:_}=te(),{isStandalone:v,isIOS:y,canPromptInstall:b,install:x}=ie(),S=u(()=>f.user?.theme??`warm-craft`),V=u(()=>f.user?.designVersion??`v1`),H=a(!1);function ge(e){_(e)}async function U(e){if(V.value===e)return;let t=V.value;f.user&&(f.user.designVersion=e),document.documentElement.setAttribute(`data-design`,e);try{if(!(await fetch(`/api/user/design`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({designVersion:e})})).ok)throw Error(`save failed`)}catch{f.user&&(f.user.designVersion=t),document.documentElement.setAttribute(`data-design`,t)}}async function W(){!await x()&&!b.value&&(H.value=!0)}let G=a(!1),K=a(``),q=a(``),J=a(``),Y=a(!1),X=a(null),Z=a(!1),Q=u(()=>J.value.length>0&&J.value!==q.value);function _e(){K.value=``,q.value=``,J.value=``,X.value=null,Z.value=!1,Y.value=!1}function $(){G.value=!1,_e()}async function ve(){if(!Q.value){X.value=null,Z.value=!1,Y.value=!0;try{let e=await fetch(`/api/user/password`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPassword:K.value,newPassword:q.value})});if(e.status===204){Z.value=!0,K.value=``,q.value=``,J.value=``,setTimeout($,1500);return}X.value=(await e.json().catch(()=>({})))?.error??`Could not update password.`}catch{X.value=`Network error. Try again.`}finally{Y.value=!1}}}return(e,a)=>(i(),g(`main`,ae,[a[33]||=l(`h1`,{class:`settings__title`},`Settings`,-1),r(v)?m(``,!0):(i(),g(`section`,oe,[a[9]||=l(`h2`,{class:`settings__section-title`},`Install app`,-1),a[10]||=l(`p`,{class:`settings__hint`},` Pin WeVisto to your home screen so it opens like a native app. `,-1),r(b)?(i(),g(`button`,{key:0,type:`button`,class:`settings__install`,onClick:W},` Install WeVisto `)):(i(),g(`button`,{key:1,type:`button`,class:`settings__install`,onClick:a[0]||=e=>H.value=!0},` Add to Home Screen `))])),l(`section`,se,[a[13]||=l(`h2`,{class:`settings__section-title`},`Design (beta)`,-1),a[14]||=l(`p`,{class:`settings__hint`},` Try the new atmospheric look. Your theme picks below still apply — v2 just renders them as dusks over a Camogli harbor backdrop. `,-1),l(`div`,ce,[l(`button`,{type:`button`,role:`radio`,"aria-checked":V.value===`v1`,class:d([`design-toggle__opt`,{"design-toggle__opt--active":V.value===`v1`}]),onClick:a[1]||=e=>U(`v1`)},[...a[11]||=[l(`span`,{class:`design-toggle__label`},`Original`,-1),l(`span`,{class:`design-toggle__sub`},`cream & terracotta`,-1)]],10,le),l(`button`,{type:`button`,role:`radio`,"aria-checked":V.value===`v2`,class:d([`design-toggle__opt`,{"design-toggle__opt--active":V.value===`v2`}]),onClick:a[2]||=e=>U(`v2`)},[...a[12]||=[l(`span`,{class:`design-toggle__label`},`Atmospheric`,-1),l(`span`,{class:`design-toggle__sub`},`harbor dusks · beta`,-1)]],10,ue)])]),l(`section`,de,[a[16]||=l(`h2`,{class:`settings__section-title`},`Theme`,-1),l(`div`,fe,[(i(!0),g(ee,null,t(r(re),e=>(i(),g(`button`,{key:e.id,type:`button`,role:`radio`,"aria-checked":S.value===e.id,"aria-label":e.label,class:d([`theme-swatch`,{"theme-swatch--active":S.value===e.id}]),style:n({"--swatch-bg":e.bg,"--swatch-primary":e.primary,"--swatch-text":e.text}),onClick:t=>ge(e.id)},[a[15]||=l(`span`,{class:`theme-swatch__preview`,"aria-hidden":`true`},[l(`span`,{class:`theme-swatch__bar`}),l(`span`,{class:`theme-swatch__dot`})],-1),l(`span`,w,s(e.label),1),S.value===e.id?(i(),g(`span`,T,`✓`)):m(``,!0)],14,C))),128))])]),l(`section`,E,[a[18]||=l(`h2`,{class:`settings__section-title`},`Account`,-1),l(`div`,D,[a[17]||=l(`span`,{class:`settings__row-label`},`Signed in as`,-1),l(`span`,O,s(r(f).user?.email),1)]),l(`button`,{type:`button`,class:`settings__action-link`,onClick:a[3]||=e=>G.value=!0},` Change password `),a[19]||=l(`a`,{href:`/logout`,class:`settings__logout`},`Sign out`,-1)]),G.value?(i(),g(`div`,{key:1,class:`install-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`pw-modal-title`,onClick:c($,[`self`])},[l(`div`,k,[l(`button`,{type:`button`,class:`install-modal__close`,"aria-label":`Close`,onClick:$},`×`),a[24]||=l(`h2`,{id:`pw-modal-title`,class:`install-modal__title`},`Change password`,-1),l(`form`,{class:`pw-form`,onSubmit:c(ve,[`prevent`])},[l(`label`,A,[a[20]||=l(`span`,{class:`pw-form__label`},`Current password`,-1),o(l(`input`,{"onUpdate:modelValue":a[4]||=e=>K.value=e,type:`password`,autocomplete:`current-password`,required:``,class:`pw-form__input`},null,512),[[p,K.value]])]),l(`label`,j,[a[21]||=l(`span`,{class:`pw-form__label`},`New password`,-1),o(l(`input`,{"onUpdate:modelValue":a[5]||=e=>q.value=e,type:`password`,autocomplete:`new-password`,minlength:`8`,required:``,class:`pw-form__input`},null,512),[[p,q.value]]),a[22]||=l(`span`,{class:`pw-form__hint`},`At least 8 characters.`,-1)]),l(`label`,M,[a[23]||=l(`span`,{class:`pw-form__label`},`Confirm new password`,-1),o(l(`input`,{"onUpdate:modelValue":a[6]||=e=>J.value=e,type:`password`,autocomplete:`new-password`,required:``,class:`pw-form__input`,"aria-invalid":Q.value?`true`:`false`},null,8,N),[[p,J.value]]),Q.value?(i(),g(`span`,P,`Passwords don't match.`)):m(``,!0)]),X.value?(i(),g(`p`,F,s(X.value),1)):m(``,!0),Z.value?(i(),g(`p`,I,`Password updated.`)):m(``,!0),l(`button`,{type:`submit`,class:`settings__install`,disabled:Y.value||Q.value||!K.value||!q.value},s(Y.value?`Saving…`:`Update password`),9,L)],32)])])):m(``,!0),H.value?(i(),g(`div`,{key:2,class:`install-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`install-modal-title`,onClick:a[8]||=c(e=>H.value=!1,[`self`])},[l(`div`,R,[l(`button`,{type:`button`,class:`install-modal__close`,"aria-label":`Close`,onClick:a[7]||=e=>H.value=!1},`×`),l(`h2`,pe,s(r(y)?`Add to your iPhone home screen`:`Add to your home screen`),1),l(`ol`,z,[r(y)?(i(),g(`li`,B,[...a[25]||=[h(` Tap the `,-1),l(`strong`,null,`Share`,-1),h(` icon at the bottom of Safari (the square with an up-arrow). `,-1)]])):(i(),g(`li`,me,[...a[26]||=[h(` Open your browser's menu (usually the three dots `,-1),l(`strong`,null,`⋮`,-1),h(` in the top right). `,-1)]])),l(`li`,null,[a[28]||=h(` Scroll down and tap `,-1),a[29]||=l(`strong`,null,`Add to Home Screen`,-1),r(y)?m(``,!0):(i(),g(`span`,he,[...a[27]||=[h(`or `,-1),l(`strong`,null,`Install app`,-1)]])),a[30]||=h(`. `,-1)]),a[31]||=l(`li`,null,[h(` Tap `),l(`strong`,null,`Add`),h(` in the top right to confirm. `)],-1)]),a[32]||=l(`p`,{class:`install-modal__footer`},` The app will appear on your home screen. Open it from there and it runs like a regular app — no address bar, no tabs. `,-1)])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-b97700d6`]]);export{V as default}; \ No newline at end of file diff --git a/public/build/assets/SettingsView-DBUrUua5.css b/public/build/assets/SettingsView-DBUrUua5.css deleted file mode 100644 index 796f114..0000000 --- a/public/build/assets/SettingsView-DBUrUua5.css +++ /dev/null @@ -1 +0,0 @@ -.settings[data-v-12810af3]{padding:var(--space-4) var(--space-4) calc(var(--bottom-nav-height) + var(--space-6));max-width:480px;margin:0 auto}@media (width>=960px){.settings[data-v-12810af3]{max-width:720px;padding-top:var(--space-8);padding-bottom:var(--space-8)}}.settings__title[data-v-12810af3]{font-size:var(--text-xl);margin-bottom:var(--space-6);font-weight:700}.settings__section[data-v-12810af3]{margin-bottom:var(--space-6)}.settings__section-title[data-v-12810af3]{font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3);font-weight:700}.settings__row[data-v-12810af3]{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-base);justify-content:space-between;align-items:center;display:flex}.settings__row-label[data-v-12810af3]{color:var(--color-text-muted)}.settings__row-value[data-v-12810af3]{font-weight:600}.settings__logout[data-v-12810af3]{min-height:var(--touch-min);padding:var(--space-3) 0;color:var(--color-destructive);font-weight:600;font-size:var(--text-base);align-items:center;text-decoration:none;display:flex}.settings__action-link[data-v-12810af3]{width:100%;min-height:var(--touch-min);padding:var(--space-3) 0;border:none;border-bottom:1px solid var(--color-border);color:var(--color-primary);font-weight:600;font-size:var(--text-base);cursor:pointer;text-align:left;background:0 0;align-items:center;font-family:inherit;display:flex}.settings__hint[data-v-12810af3]{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3);line-height:1.4}.settings__install[data-v-12810af3]{width:100%;min-height:var(--touch-min);background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-pill,9999px);font-size:var(--text-base);cursor:pointer;border:none;justify-content:center;align-items:center;font-weight:700;display:flex}.install-modal[data-v-12810af3]{padding:var(--space-4);z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.install-modal__card[data-v-12810af3]{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg,16px);padding:var(--space-5);width:100%;max-width:380px;position:relative;box-shadow:0 20px 60px #00000040}.install-modal__close[data-v-12810af3]{top:var(--space-2);right:var(--space-3);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none;font-size:1.75rem;line-height:1;position:absolute}.install-modal__title[data-v-12810af3]{font-size:var(--text-lg);margin-bottom:var(--space-3);padding-right:var(--space-5);font-weight:700}.install-modal__steps[data-v-12810af3]{margin:0 0 var(--space-3) var(--space-4);padding:0;line-height:1.5}.install-modal__steps li[data-v-12810af3]{margin-bottom:var(--space-2)}.install-modal__footer[data-v-12810af3]{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);line-height:1.4}.pw-form[data-v-12810af3]{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;display:flex}.pw-form__field[data-v-12810af3]{flex-direction:column;gap:4px;display:flex}.pw-form__label[data-v-12810af3]{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:600}.pw-form__input[data-v-12810af3]{min-height:var(--touch-min);padding:0 var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:16px}.pw-form__input[data-v-12810af3]:focus{outline:2px solid var(--color-primary);outline-offset:2px}.pw-form__input[aria-invalid=true][data-v-12810af3]{border-color:var(--color-destructive,#c0392b)}.pw-form__hint[data-v-12810af3]{font-size:var(--text-xs);color:var(--color-text-muted)}.pw-form__error[data-v-12810af3]{font-size:var(--text-sm);color:var(--color-destructive,#c0392b)}.pw-form__success[data-v-12810af3]{font-size:var(--text-sm);color:var(--color-success,#2e7d32);font-weight:600}.theme-grid[data-v-12810af3]{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.theme-swatch[data-v-12810af3]{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--swatch-bg);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-fast);min-height:var(--touch-min);border:2px solid #0000;flex-direction:column;display:flex;position:relative}.theme-swatch--active[data-v-12810af3]{border-color:var(--swatch-primary)}.theme-swatch__preview[data-v-12810af3]{border-radius:var(--radius-sm);background:var(--swatch-bg);border:1px solid color-mix(in srgb, var(--swatch-text) 15%, transparent);flex-direction:column;justify-content:center;gap:4px;width:100%;height:36px;padding:0 6px;display:flex}.theme-swatch__bar[data-v-12810af3]{background:var(--swatch-primary);border-radius:3px;width:60%;height:6px;display:block}.theme-swatch__dot[data-v-12810af3]{background:var(--swatch-text);opacity:.4;border-radius:2px;width:80%;height:4px;display:block}.theme-swatch__label[data-v-12810af3]{font-size:var(--text-xs);color:var(--color-text);text-align:center;font-weight:600;line-height:1.2}.theme-swatch__check[data-v-12810af3]{top:var(--space-1);right:var(--space-2);font-size:var(--text-sm);color:var(--swatch-primary);font-weight:700;position:absolute} diff --git a/public/build/assets/SettingsView-KEutYoup.js b/public/build/assets/SettingsView-KEutYoup.js deleted file mode 100644 index 2500104..0000000 --- a/public/build/assets/SettingsView-KEutYoup.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e,F as t,J as n,K as r,N as i,U as a,V as o,Y as s,f as c,g as l,h as u,p as ee,q as d,t as f,u as p,v as m,x as h,y as g}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{n as te,r as _,t as ne}from"./index-B3RcyMgN.js";var v=a(null),y=a(!1);function b(){return typeof window>`u`?!1:window.matchMedia?.(`(display-mode: standalone)`).matches?!0:window.navigator.standalone===!0}function x(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent,t=e.includes(`Mac`)&&navigator.maxTouchPoints>1;return/iPhone|iPod/.test(e)||t}var S=!1;function C(){S||typeof window>`u`||(S=!0,y.value=b(),window.addEventListener(`beforeinstallprompt`,e=>{e.preventDefault(),v.value=e}),window.addEventListener(`appinstalled`,()=>{v.value=null,y.value=!0}),window.matchMedia?.(`(display-mode: standalone)`).addEventListener(`change`,e=>{y.value=e.matches}))}C();function re(){let e=x(),t=u(()=>v.value!==null);async function n(){let e=v.value;if(!e)return!1;await e.prompt();let t=await e.userChoice;return v.value=null,t.outcome===`accepted`}return{isStandalone:y,isIOS:e,canPromptInstall:t,install:n}}var ie={class:`settings`},ae={key:0,class:`settings__section`},oe={class:`settings__section`},se={class:`theme-grid`,role:`radiogroup`,"aria-label":`Choose theme`},ce=[`aria-checked`,`aria-label`,`onClick`],w={class:`theme-swatch__label`},T={key:0,class:`theme-swatch__check`,"aria-hidden":`true`},E={class:`settings__section`},D={class:`settings__row`},O={class:`settings__row-value`},k={class:`install-modal__card`},A={class:`pw-form__field`},j={class:`pw-form__field`},M={class:`pw-form__field`},N=[`aria-invalid`],P={key:0,class:`pw-form__error`},F={key:0,class:`pw-form__error`,role:`alert`},I={key:1,class:`pw-form__success`,role:`status`},L=[`disabled`],R={class:`install-modal__card`},z={id:`install-modal-title`,class:`install-modal__title`},le={class:`install-modal__steps`},B={key:0},V={key:1},H={key:0},U=f(e({__name:`SettingsView`,setup(e){let f=_(),{saveTheme:v}=te(),{isStandalone:y,isIOS:b,canPromptInstall:x,install:S}=re(),C=u(()=>f.user?.theme??`warm-craft`),U=a(!1);function W(e){v(e)}async function ue(){!await S()&&!x.value&&(U.value=!0)}let G=a(!1),K=a(``),q=a(``),J=a(``),Y=a(!1),X=a(null),Z=a(!1),Q=u(()=>J.value.length>0&&J.value!==q.value);function de(){K.value=``,q.value=``,J.value=``,X.value=null,Z.value=!1,Y.value=!1}function $(){G.value=!1,de()}async function fe(){if(!Q.value){X.value=null,Z.value=!1,Y.value=!0;try{let e=await fetch(`/api/user/password`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPassword:K.value,newPassword:q.value})});if(e.status===204){Z.value=!0,K.value=``,q.value=``,J.value=``,setTimeout($,1500);return}X.value=(await e.json().catch(()=>({})))?.error??`Could not update password.`}catch{X.value=`Network error. Try again.`}finally{Y.value=!1}}}return(e,a)=>(i(),g(`main`,ie,[a[27]||=l(`h1`,{class:`settings__title`},`Settings`,-1),r(y)?m(``,!0):(i(),g(`section`,ae,[a[7]||=l(`h2`,{class:`settings__section-title`},`Install app`,-1),a[8]||=l(`p`,{class:`settings__hint`},` Pin WeVisto to your home screen so it opens like a native app. `,-1),r(x)?(i(),g(`button`,{key:0,type:`button`,class:`settings__install`,onClick:ue},` Install WeVisto `)):(i(),g(`button`,{key:1,type:`button`,class:`settings__install`,onClick:a[0]||=e=>U.value=!0},` Add to Home Screen `))])),l(`section`,oe,[a[10]||=l(`h2`,{class:`settings__section-title`},`Theme`,-1),l(`div`,se,[(i(!0),g(ee,null,t(r(ne),e=>(i(),g(`button`,{key:e.id,type:`button`,role:`radio`,"aria-checked":C.value===e.id,"aria-label":e.label,class:d([`theme-swatch`,{"theme-swatch--active":C.value===e.id}]),style:n({"--swatch-bg":e.bg,"--swatch-primary":e.primary,"--swatch-text":e.text}),onClick:t=>W(e.id)},[a[9]||=l(`span`,{class:`theme-swatch__preview`,"aria-hidden":`true`},[l(`span`,{class:`theme-swatch__bar`}),l(`span`,{class:`theme-swatch__dot`})],-1),l(`span`,w,s(e.label),1),C.value===e.id?(i(),g(`span`,T,`✓`)):m(``,!0)],14,ce))),128))])]),l(`section`,E,[a[12]||=l(`h2`,{class:`settings__section-title`},`Account`,-1),l(`div`,D,[a[11]||=l(`span`,{class:`settings__row-label`},`Signed in as`,-1),l(`span`,O,s(r(f).user?.email),1)]),l(`button`,{type:`button`,class:`settings__action-link`,onClick:a[1]||=e=>G.value=!0},` Change password `),a[13]||=l(`a`,{href:`/logout`,class:`settings__logout`},`Sign out`,-1)]),G.value?(i(),g(`div`,{key:1,class:`install-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`pw-modal-title`,onClick:c($,[`self`])},[l(`div`,k,[l(`button`,{type:`button`,class:`install-modal__close`,"aria-label":`Close`,onClick:$},`×`),a[18]||=l(`h2`,{id:`pw-modal-title`,class:`install-modal__title`},`Change password`,-1),l(`form`,{class:`pw-form`,onSubmit:c(fe,[`prevent`])},[l(`label`,A,[a[14]||=l(`span`,{class:`pw-form__label`},`Current password`,-1),o(l(`input`,{"onUpdate:modelValue":a[2]||=e=>K.value=e,type:`password`,autocomplete:`current-password`,required:``,class:`pw-form__input`},null,512),[[p,K.value]])]),l(`label`,j,[a[15]||=l(`span`,{class:`pw-form__label`},`New password`,-1),o(l(`input`,{"onUpdate:modelValue":a[3]||=e=>q.value=e,type:`password`,autocomplete:`new-password`,minlength:`8`,required:``,class:`pw-form__input`},null,512),[[p,q.value]]),a[16]||=l(`span`,{class:`pw-form__hint`},`At least 8 characters.`,-1)]),l(`label`,M,[a[17]||=l(`span`,{class:`pw-form__label`},`Confirm new password`,-1),o(l(`input`,{"onUpdate:modelValue":a[4]||=e=>J.value=e,type:`password`,autocomplete:`new-password`,required:``,class:`pw-form__input`,"aria-invalid":Q.value?`true`:`false`},null,8,N),[[p,J.value]]),Q.value?(i(),g(`span`,P,`Passwords don't match.`)):m(``,!0)]),X.value?(i(),g(`p`,F,s(X.value),1)):m(``,!0),Z.value?(i(),g(`p`,I,`Password updated.`)):m(``,!0),l(`button`,{type:`submit`,class:`settings__install`,disabled:Y.value||Q.value||!K.value||!q.value},s(Y.value?`Saving…`:`Update password`),9,L)],32)])])):m(``,!0),U.value?(i(),g(`div`,{key:2,class:`install-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`install-modal-title`,onClick:a[6]||=c(e=>U.value=!1,[`self`])},[l(`div`,R,[l(`button`,{type:`button`,class:`install-modal__close`,"aria-label":`Close`,onClick:a[5]||=e=>U.value=!1},`×`),l(`h2`,z,s(r(b)?`Add to your iPhone home screen`:`Add to your home screen`),1),l(`ol`,le,[r(b)?(i(),g(`li`,B,[...a[19]||=[h(` Tap the `,-1),l(`strong`,null,`Share`,-1),h(` icon at the bottom of Safari (the square with an up-arrow). `,-1)]])):(i(),g(`li`,V,[...a[20]||=[h(` Open your browser's menu (usually the three dots `,-1),l(`strong`,null,`⋮`,-1),h(` in the top right). `,-1)]])),l(`li`,null,[a[22]||=h(` Scroll down and tap `,-1),a[23]||=l(`strong`,null,`Add to Home Screen`,-1),r(b)?m(``,!0):(i(),g(`span`,H,[...a[21]||=[h(`or `,-1),l(`strong`,null,`Install app`,-1)]])),a[24]||=h(`. `,-1)]),a[25]||=l(`li`,null,[h(` Tap `),l(`strong`,null,`Add`),h(` in the top right to confirm. `)],-1)]),a[26]||=l(`p`,{class:`install-modal__footer`},` The app will appear on your home screen. Open it from there and it runs like a regular app — no address bar, no tabs. `,-1)])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-12810af3`]]);export{U as default}; \ No newline at end of file diff --git a/public/build/assets/UploadView-DgN7UeID.js b/public/build/assets/UploadView-uIaSypRk.js similarity index 99% rename from public/build/assets/UploadView-DgN7UeID.js rename to public/build/assets/UploadView-uIaSypRk.js index 3d0ee4d..01ca774 100644 --- a/public/build/assets/UploadView-DgN7UeID.js +++ b/public/build/assets/UploadView-uIaSypRk.js @@ -1 +1 @@ -import{A as e,B as t,C as n,F as r,J as i,K as a,L as o,N as s,O as c,S as l,U as u,Y as d,_ as f,b as p,f as m,g as h,h as g,k as _,p as v,q as y,t as b,v as x,x as S,y as C,z as w}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{a as T,i as E,s as D}from"./index-B3RcyMgN.js";import{i as O,n as ee,r as k,t as A}from"./BaseBottomSheet-Bsol3Sat.js";import{t as j}from"./types-xv3fXrtW.js";import{t as M}from"./DevicePicker-BnLOaG74.js";var N={class:`crop-editor__top`},te={key:0,class:`crop-editor__label`},P={class:`crop-editor__orient`,role:`radiogroup`,"aria-label":`Crop orientation`},F=[`aria-checked`,`aria-label`,`onClick`],I={width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},L={key:0,x:`2`,y:`6`,width:`20`,height:`12`,rx:`1.5`},R={key:1,x:`6`,y:`2`,width:`12`,height:`20`,rx:`1.5`},z={key:1,class:`crop-editor__mismatch`,role:`status`},ne={class:`crop-editor__actions`},B=b(n({__name:`CropEditor`,props:{src:{},orientation:{},model:{},deviceName:{},initialParams:{},initialOrientation:{}},emits:[`crop`],setup(n,{emit:i}){let a=n,o=i,c=[{value:`landscape`,label:`Landscape crop`},{value:`portrait`,label:`Portrait crop`}],f=u(a.initialOrientation??a.orientation),p=g(()=>{let{width:e,height:t}=j(a.model??`v1`,f.value);return{w:e,h:t}}),m=g(()=>p.value.w/p.value.h),b=g(()=>f.value!==a.orientation),T=u(),E=u(),D=null,O=null,k=0,A=u(0),M=u(0),B=u(1),V={x:0,y:0,w:0,h:0},H=1;function re(e){f.value!==e&&(f.value=e,A.value=0,M.value=0,B.value=1,U())}function U(){let e=E.value,t=T.value;if(!e||!t)return;let n=t.getBoundingClientRect(),r=n.height-80,i=n.width;e.width=i,e.height=r,D=e.getContext(`2d`);let a=i-48,o=r-48,s,c;a/o>m.value?(c=o,s=c*m.value):(s=a,c=s/m.value),V={x:(i-s)/2,y:(r-c)/2,w:s,h:c},O&&W()}function W(){O&&(H=Math.max(V.w/O.naturalWidth,V.h/O.naturalHeight),a.initialParams?G(a.initialParams):(B.value=1,A.value=0,M.value=0,q()))}function G(e){if(!O)return;let t=V.w/e.natW;B.value=t/H,A.value=t*(O.naturalWidth/2-e.natX-e.natW/2),M.value=t*(O.naturalHeight/2-e.natY-e.natH/2);let[n,r]=K(A.value,M.value);A.value=n,M.value=r,q()}function K(e,t){if(!O)return[e,t];let n=H*B.value,r=O.naturalWidth*n,i=O.naturalHeight*n,a=(r-V.w)/2,o=(i-V.h)/2;return[Math.max(-a,Math.min(a,e)),Math.max(-o,Math.min(o,t))]}function q(){if(!D||!O||!E.value)return;let{width:e,height:t}=E.value,n=H*B.value,r=O.naturalWidth*n,i=O.naturalHeight*n,a=V.x+V.w/2+A.value,o=V.y+V.h/2+M.value,s=a-r/2,c=o-i/2;D.clearRect(0,0,e,t),D.drawImage(O,s,c,r,i);let l=V.x+V.w,u=V.y+V.h;D.fillStyle=`rgba(0,0,0,0.6)`,D.fillRect(0,0,e,V.y),D.fillRect(0,u,e,t-u),D.fillRect(0,V.y,V.x,V.h),D.fillRect(l,V.y,e-l,V.h),D.strokeStyle=`#fff`,D.lineWidth=2,D.strokeRect(V.x,V.y,V.w,V.h),D.lineWidth=3,[[V.x,V.y,20,0,0,20],[V.x+V.w,V.y,-20,0,0,20],[V.x,V.y+V.h,20,0,0,-20],[V.x+V.w,V.y+V.h,-20,0,0,-20]].forEach(([e,t,n,r,i,a])=>{D.beginPath(),D.moveTo(e+n,t+r),D.lineTo(e,t),D.lineTo(e+i,t+a),D.stroke()})}let J=new Map,Y=0;function X(e){if(E.value?.setPointerCapture(e.pointerId),J.set(e.pointerId,{x:e.clientX,y:e.clientY}),J.size===2){let e=[...J.values()];Y=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y)}}function ie(e){if(!J.has(e.pointerId))return;let t=J.get(e.pointerId);if(J.set(e.pointerId,{x:e.clientX,y:e.clientY}),J.size===1){let n=e.clientX-t.x,r=e.clientY-t.y,[i,a]=K(A.value+n,M.value+r);A.value=i,M.value=a,Q();return}if(J.size===2){let e=[...J.values()],t=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y);if(Y>0){let e=t/Y;B.value=Math.max(1,B.value*e);let[n,r]=K(A.value,M.value);A.value=n,M.value=r,Q()}Y=t}}function Z(e){J.delete(e.pointerId),Y=0}function Q(){cancelAnimationFrame(k),k=requestAnimationFrame(q)}async function ae(){if(!O)return;let e=H*B.value,t=V.x+V.w/2+A.value,n=V.y+V.h/2+M.value,r=t-O.naturalWidth*e/2,i=n-O.naturalHeight*e/2,a=(V.x-r)/e,s=(V.y-i)/e,c=V.w/e,l=V.h/e,{w:u,h:d}=p.value,m=new OffscreenCanvas(u,d);m.getContext(`2d`).drawImage(O,a,s,c,l,0,0,u,d),o(`crop`,{blob:await m.convertToBlob({type:`image/jpeg`,quality:.92}),params:{natX:a,natY:s,natW:c,natH:l},orientation:f.value})}let oe=new ResizeObserver(U);return e(()=>{T.value&&oe.observe(T.value),U(),O=new Image,O.onload=()=>{U(),W()},O.src=a.src}),w(()=>a.src,e=>{O&&(O.onload=()=>W(),O.src=e)}),_(()=>{oe.disconnect(),cancelAnimationFrame(k)}),(e,i)=>(s(),C(`div`,{class:`crop-editor`,ref_key:`containerRef`,ref:T},[h(`canvas`,{ref_key:`canvasRef`,ref:E,class:`crop-editor__canvas`,onPointerdown:X,onPointermove:ie,onPointerup:Z,onPointercancel:Z},null,544),h(`div`,N,[n.deviceName?(s(),C(`div`,te,d(n.deviceName),1)):x(``,!0),h(`div`,P,[(s(),C(v,null,r(c,e=>h(`button`,{key:e.value,type:`button`,role:`radio`,"aria-checked":f.value===e.value,"aria-label":e.label,class:y([`crop-editor__orient-btn`,{"crop-editor__orient-btn--active":f.value===e.value}]),onClick:t=>re(e.value)},[(s(),C(`svg`,I,[e.value===`landscape`?(s(),C(`rect`,L)):(s(),C(`rect`,R))]))],10,F)),64))]),b.value?(s(),C(`div`,z,[i[0]||=h(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[h(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),h(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),h(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})],-1),h(`span`,null,`Frame is set to `+d(n.orientation)+`. Use the tool above to recrop for the current frame orientation, or switch the frame in Settings to display this crop.`,1)])):x(``,!0)]),h(`div`,ne,[l(ee,{variant:`primary`,class:`crop-editor__use-btn`,onClick:ae},{default:t(()=>[...i[1]||=[S(` Use this crop `,-1)]]),_:1})])],512))}}),[[`__scopeId`,`data-v-f090bd2d`]]),V=[{id:`santa-hat`,label:`Santa hat`,url:`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%3e%3cpath%20d='M%208%2052%20L%2056%2052%20Q%2050%2030%2042%2012%20Q%2032%2022%2024%2032%20Q%2014%2042%208%2052%20Z'%20fill='%23cf2030'/%3e%3cpath%20d='M%2024%2032%20Q%2014%2042%208%2052%20Q%2018%2050%2028%2044%20Q%2026%2038%2024%2032%20Z'%20fill='%23a8141d'%20opacity='0.55'/%3e%3crect%20x='6'%20y='48'%20width='52'%20height='10'%20rx='5'%20fill='%23ffffff'/%3e%3cellipse%20cx='14'%20cy='53'%20rx='2.2'%20ry='1.6'%20fill='%23ececec'/%3e%3cellipse%20cx='28'%20cy='53'%20rx='2.2'%20ry='1.6'%20fill='%23ececec'/%3e%3cellipse%20cx='42'%20cy='53'%20rx='2.2'%20ry='1.6'%20fill='%23ececec'/%3e%3cellipse%20cx='52'%20cy='53'%20rx='2'%20ry='1.4'%20fill='%23ececec'/%3e%3ccircle%20cx='42'%20cy='12'%20r='7.5'%20fill='%23ffffff'/%3e%3ccircle%20cx='40'%20cy='10'%20r='2'%20fill='%23f4f4f4'%20opacity='0.6'/%3e%3c/svg%3e`}],H={class:`sticker-tray`},re={key:0,class:`sticker-tray__section`},U={class:`sticker-tray__row`},W=[`aria-label`,`onClick`],G={key:0,class:`sticker-tray__emoji`,"aria-hidden":`true`},K=[`src`],q={class:`sticker-tray__section`},J={class:`sticker-tray__row`},Y=[`aria-label`,`onClick`],X=[`src`,`alt`],ie={class:`sticker-tray__section`},Z=`pf.stickerTray.recents`,Q=12,ae=b(n({__name:`StickerTray`,props:{modelValue:{type:Boolean}},emits:[`update:modelValue`,`pick`],setup(n,{emit:i}){let o=i,c=u([]);e(()=>{c.value=l()});function l(){try{let e=localStorage.getItem(Z);return e?JSON.parse(e).map(e=>{if(e.kind===`image`&&e.imageAsset){let t=V.find(t=>t.id===e.imageAsset);return{...e,url:t?.url,label:t?.label??e.label}}return e}).filter(e=>e.kind===`emoji`?!!e.emoji:!!e.url):[]}catch{return[]}}function p(){try{localStorage.setItem(Z,JSON.stringify(c.value))}catch{}}function m(e){c.value=[e,...c.value.filter(t=>t.key!==e.key)].slice(0,Q),p()}function g(e){if(!e)return null;if(typeof Intl<`u`&&Intl.Segmenter){let t=[...new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)];return t[t.length-1]?.segment??null}return[...e].pop()??null}function _(e){let t=e.target,n=g(t.value);t.value=``,n&&(m({key:`emoji:${n}`,kind:`emoji`,label:n,emoji:n}),o(`pick`,{emoji:n}))}function y(e){m({key:`image:${e.id}`,kind:`image`,label:e.label,imageAsset:e.id,url:e.url}),o(`pick`,{imageAsset:e.id})}function b(e){m(e),e.kind===`emoji`&&e.emoji?o(`pick`,{emoji:e.emoji}):e.kind===`image`&&e.imageAsset&&o(`pick`,{imageAsset:e.imageAsset})}return(e,i)=>(s(),f(A,{"model-value":n.modelValue,label:`Add sticker`,"onUpdate:modelValue":i[0]||=t=>e.$emit(`update:modelValue`,t)},{default:t(()=>[h(`div`,H,[c.value.length?(s(),C(`section`,re,[i[1]||=h(`h3`,{class:`sticker-tray__heading`},`Recent`,-1),h(`div`,U,[(s(!0),C(v,null,r(c.value,e=>(s(),C(`button`,{key:e.key,type:`button`,class:`sticker-tray__chip`,"aria-label":e.label,onClick:t=>b(e)},[e.kind===`emoji`?(s(),C(`span`,G,d(e.emoji),1)):(s(),C(`img`,{key:1,src:e.url,alt:``,class:`sticker-tray__img`},null,8,K))],8,W))),128))])])):x(``,!0),h(`section`,q,[i[2]||=h(`h3`,{class:`sticker-tray__heading`},`Stickers`,-1),h(`div`,J,[(s(!0),C(v,null,r(a(V),e=>(s(),C(`button`,{key:e.id,type:`button`,class:`sticker-tray__chip`,"aria-label":e.label,onClick:t=>y(e)},[h(`img`,{src:e.url,alt:e.label,class:`sticker-tray__img`},null,8,X)],8,Y))),128))])]),h(`section`,ie,[i[3]||=h(`h3`,{class:`sticker-tray__heading`},`Any emoji`,-1),i[4]||=h(`p`,{class:`sticker-tray__hint`},`Tap the box, then pick from your keyboard's emoji button.`,-1),h(`input`,{type:`text`,class:`sticker-tray__emoji-input`,inputmode:`text`,autocomplete:`off`,autocorrect:`off`,autocapitalize:`off`,spellcheck:`false`,placeholder:`😀 🎉 🐶 …`,"aria-label":`Emoji input — use your keyboard's emoji button`,onInput:_},null,32)])])]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-9a64b78a`]]),oe=[{id:`sea-snow`,category:`seasonal`,label:`Snowflake`,emoji:`❄️`},{id:`sea-sun`,category:`seasonal`,label:`Sun`,emoji:`☀️`},{id:`sea-leaves`,category:`seasonal`,label:`Autumn`,emoji:`🍂`},{id:`sea-blossom`,category:`seasonal`,label:`Blossom`,emoji:`🌸`},{id:`sea-snowman`,category:`seasonal`,label:`Snowman`,emoji:`⛄`},{id:`hol-tree`,category:`holidays`,label:`Tree`,emoji:`🎄`},{id:`hol-gift`,category:`holidays`,label:`Gift`,emoji:`🎁`},{id:`hol-heart`,category:`holidays`,label:`Heart`,emoji:`❤️`},{id:`hol-party`,category:`holidays`,label:`Party`,emoji:`🎉`},{id:`hol-cake`,category:`holidays`,label:`Cake`,emoji:`🎂`},{id:`fun-star`,category:`fun`,label:`Star`,emoji:`⭐`},{id:`fun-rainbow`,category:`fun`,label:`Rainbow`,emoji:`🌈`},{id:`fun-balloon`,category:`fun`,label:`Balloon`,emoji:`🎈`},{id:`fun-sparkle`,category:`fun`,label:`Sparkles`,emoji:`✨`},{id:`fun-fire`,category:`fun`,label:`Fire`,emoji:`🔥`},{id:`fam-house`,category:`family`,label:`Home`,emoji:`🏠`},{id:`fam-paw`,category:`family`,label:`Paw`,emoji:`🐾`},{id:`fam-camera`,category:`family`,label:`Camera`,emoji:`📷`},{id:`fam-plane`,category:`family`,label:`Airplane`,emoji:`✈️`},{id:`fam-music`,category:`family`,label:`Music`,emoji:`🎵`},{id:`nat-tree`,category:`nature`,label:`Tree`,emoji:`🌲`},{id:`nat-flower`,category:`nature`,label:`Flower`,emoji:`🌺`},{id:`nat-bee`,category:`nature`,label:`Bee`,emoji:`🐝`},{id:`nat-fly`,category:`nature`,label:`Butterfly`,emoji:`🦋`},{id:`nat-moon`,category:`nature`,label:`Moon`,emoji:`🌙`}],se={class:`sticker-canvas__bar`},ce=52,le=96,ue=b(n({__name:`StickerCanvas`,props:{croppedUrl:{},orientation:{},model:{},stickers:{}},emits:[`add-sticker`,`update-sticker`,`remove-sticker`,`done`],setup(n,{emit:a}){let d=n,y=a,b=u(),T=u(),E=u(),D=u(),O=u(!1),k=u(null),A=u(375),M=u(225),{width:N,height:te}=j(d.model??`v1`,d.orientation),P=N/te;function F(){if(!b.value)return;let{width:e,height:t}=b.value.getBoundingClientRect(),n=t-72;e/n>P?(M.value=n,A.value=n*P):(A.value=e,M.value=e/P),R()}let I=new ResizeObserver(F);e(()=>{b.value&&I.observe(b.value),F(),ge()}),_(()=>{I.disconnect(),_e(),K?.()}),w(()=>d.stickers,()=>{if(!k.value)return;let e=(D.value?.getNode())?.findOne(`#${k.value}`);e&&q(e)},{deep:!0});let L=u(null);function R(){let e=new Image;e.onload=()=>{L.value=e},e.src=d.croppedUrl}w(()=>d.croppedUrl,()=>R(),{immediate:!0});let z=u({});e(()=>{for(let e of V){let t=new Image;t.onload=()=>{z.value={...z.value,[e.id]:t}},t.src=e.url}});let ne=g(()=>({width:A.value,height:M.value})),B=g(()=>({image:L.value,x:0,y:0,width:A.value,height:M.value})),H={enabledAnchors:[`top-left`,`top-right`,`bottom-left`,`bottom-right`],rotateEnabled:!0,borderStroke:`rgba(255,255,255,0.8)`,anchorFill:`#fff`,anchorSize:18,keepRatio:!0,boundBoxFunc:(e,t)=>t};function re(e){return{id:e.id,text:W(e),fontSize:ce,fontFamily:`"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif`,x:e.x,y:e.y,scaleX:e.scale,scaleY:e.scale,rotation:e.rotation,draggable:!0,offsetX:ce/2,offsetY:ce/2}}function U(e){return{id:e.id,image:e.imageAsset?z.value[e.imageAsset]:null,x:e.x,y:e.y,width:le,height:le,scaleX:e.scale,scaleY:e.scale,rotation:e.rotation,draggable:!0,offsetX:le/2,offsetY:le/2}}function W(e){return e.emoji?e.emoji:oe.find(t=>t.id===e.type)?.emoji??`⭐`}let G=u(null),K=null;function q(e){let t=e.getClientRect(),n=t.x+t.width+4-14,r=t.y-4-14;n=Math.max(14,Math.min(A.value-14,n)),r=Math.max(14,Math.min(M.value-14,r)),G.value={x:n,y:r}}function J(e){K?.(),K=null;let t=(D.value?.getNode())?.findOne(`#${e}`);if(!t){G.value=null;return}q(t),t.on(`dragmove.handle transform.handle transformend.handle dragend.handle`,()=>q(t)),K=()=>t.off(`.handle`)}function Y(e,t){t.cancelBubble=!0,k.value=e,c(()=>{let t=(D.value?.getNode())?.findOne(`#${e}`),n=E.value?.getNode();t&&n&&n.nodes([t]),J(e)})}function X(e){e.target===e.target.getStage()&&(k.value=null,E.value?.getNode()?.nodes([]),K?.(),K=null,G.value=null)}function ie(){k.value&&(y(`remove-sticker`,k.value),k.value=null,E.value?.getNode()?.nodes([]),K?.(),K=null,G.value=null)}function Z(e,t){y(`update-sticker`,e,{x:t.target.x(),y:t.target.y()})}function Q(e,t){y(`update-sticker`,e,{x:t.target.x(),y:t.target.y(),scale:t.target.scaleX(),rotation:t.target.rotation()})}function ue(e){let t={id:`${e.imageAsset??e.emoji??`sticker`}-${Date.now()}`,type:e.imageAsset?`image`:`emoji`,emoji:e.emoji,imageAsset:e.imageAsset,x:A.value/2,y:M.value/2,scale:1,rotation:0};y(`add-sticker`,t),O.value=!1,c(()=>Y(t.id,{cancelBubble:!1}))}let $=0,de=1;function fe(e){let t=e[0].clientX-e[1].clientX,n=e[0].clientY-e[1].clientY;return Math.hypot(t,n)}function pe(e){e.touches.length!==2||!k.value||($=fe(e.touches),de=d.stickers.find(e=>e.id===k.value)?.scale??1)}function me(e){if(e.touches.length!==2||!k.value||$===0)return;e.preventDefault();let t=Math.max(.2,Math.min(6,de*(fe(e.touches)/$)));y(`update-sticker`,k.value,{scale:t})}function he(){$=0,de=1}function ge(){let e=b.value;e&&(e.addEventListener(`touchstart`,pe,{passive:!0}),e.addEventListener(`touchmove`,me,{passive:!1}),e.addEventListener(`touchend`,he,{passive:!0}))}function _e(){let e=b.value;e&&(e.removeEventListener(`touchstart`,pe),e.removeEventListener(`touchmove`,me),e.removeEventListener(`touchend`,he))}async function ve(){k.value=null,E.value?.getNode()?.nodes([]),await c();let e=T.value?.getNode();if(!e)return;let t=N/A.value,n=await e.toBlob({pixelRatio:t,mimeType:`image/jpeg`,quality:.92});n&&y(`done`,n)}return(e,a)=>{let c=o(`v-image`),u=o(`v-layer`),d=o(`v-text`),g=o(`v-transformer`),_=o(`v-stage`);return s(),C(`div`,{class:`sticker-canvas`,ref_key:`containerRef`,ref:b},[l(_,{ref_key:`stageRef`,ref:T,config:ne.value,onClick:X,onTap:X},{default:t(()=>[l(u,null,{default:t(()=>[l(c,{config:B.value},null,8,[`config`])]),_:1}),l(u,{ref_key:`stickerLayerRef`,ref:D},{default:t(()=>[(s(!0),C(v,null,r(n.stickers,e=>(s(),C(v,{key:e.id},[e.imageAsset?(s(),f(c,{key:0,config:U(e),onClick:t=>Y(e.id,t),onTap:t=>Y(e.id,t),onDragend:t=>Z(e.id,t),onTransformend:t=>Q(e.id,t)},null,8,[`config`,`onClick`,`onTap`,`onDragend`,`onTransformend`])):(s(),f(d,{key:1,config:re(e),onClick:t=>Y(e.id,t),onTap:t=>Y(e.id,t),onDragend:t=>Z(e.id,t),onTransformend:t=>Q(e.id,t)},null,8,[`config`,`onClick`,`onTap`,`onDragend`,`onTransformend`]))],64))),128)),l(g,{ref_key:`transformerRef`,ref:E,config:H},null,512)]),_:1},512)]),_:1},8,[`config`]),G.value?(s(),C(`button`,{key:0,class:`sticker-canvas__delete-handle`,type:`button`,"aria-label":`Remove sticker`,style:i({left:G.value.x+`px`,top:G.value.y+`px`}),onPointerdown:a[0]||=m(()=>{},[`stop`]),onClick:m(ie,[`stop`])},[...a[3]||=[p(``,1)]],36)):x(``,!0),h(`div`,se,[h(`button`,{class:`sticker-canvas__add-btn`,type:`button`,onClick:a[1]||=e=>O.value=!0},[...a[4]||=[h(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[h(`circle`,{cx:`12`,cy:`12`,r:`10`}),h(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`16`}),h(`line`,{x1:`8`,y1:`12`,x2:`16`,y2:`12`})],-1),S(` Add sticker `,-1)]]),l(ee,{variant:`primary`,class:`sticker-canvas__next-btn`,onClick:ve},{default:t(()=>[...a[5]||=[S(`Next`,-1)]]),_:1})]),l(ae,{modelValue:O.value,"onUpdate:modelValue":a[2]||=e=>O.value=e,onPick:ue},null,8,[`modelValue`])],512)}}}),[[`__scopeId`,`data-v-23d2647e`]]),$={class:`upload-view`},de={class:`upload-view__header`},fe=[`aria-label`],pe={key:0,width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},me={key:1,width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},he={class:`upload-view__step-label`},ge={key:2,class:`upload-view__done`},_e={class:`upload-view__done-title`},ve=b(n({__name:`UploadView`,setup(n){let r=D(),i=k(),o=O(),c=T(),p=E(),m=u(`crop`),_=u(!1),v=u(!1),y=null,b=g(()=>i.editingImageId!==null);e(async()=>{if(await o.fetchDevices(),!i.originalFile){r.replace(`/`);return}m.value=`crop`});let w=g(()=>i.contextDeviceId?o.devices.find(e=>e.id===i.contextDeviceId):o.devices[0]),A=g(()=>w.value?.model??`v1`),j=g(()=>w.value?.orientation??`landscape`),N=g(()=>i.cropOrientation??j.value),te=g(()=>w.value?.name),P=g(()=>m.value===`crop`?b.value?`Edit crop`:`Crop photo`:m.value===`stickers`?`Add stickers`:b.value?`Updated`:`Added`);function F({blob:e,params:t,orientation:n}){i.setCrop(e,t,n),m.value=`stickers`}function I(){i.croppedBlob&&(y=i.croppedBlob,b.value?z():v.value=!0)}function L(e){y=e,b.value?z():v.value=!0}function R(){if(m.value===`crop`){i.cleanup(),r.replace(`/library`);return}m.value===`stickers`&&(m.value=`crop`)}async function z(){if(y){_.value=!0;try{let e=new File([y],`photo.jpg`,{type:`image/jpeg`});if(b.value){await c.reprocessImage(i.editingImageId,e,{cropParams:i.cropParams??void 0,stickerState:i.stickers,cropOrientation:i.cropOrientation??void 0}),v.value=!1,m.value=`done`;return}let t=await c.uploadImage(e,{original:i.originalFile??void 0,cropParams:i.cropParams??void 0,stickerState:i.stickers,cropOrientation:i.cropOrientation??void 0});await Promise.all(i.selectedDeviceIds.map(e=>c.setApproval(t.id,e,!0))),v.value=!1,m.value=`done`}catch(e){p.show(e instanceof Error?e.message:`Upload failed`,`error`)}finally{_.value=!1}}}function ne(){i.cleanup(),r.replace(`/library`)}return(e,n)=>(s(),C(`div`,$,[h(`header`,de,[m.value===`done`?x(``,!0):(s(),C(`button`,{key:0,class:`upload-view__back`,type:`button`,"aria-label":m.value===`crop`?`Cancel`:`Back`,onClick:R},[m.value===`crop`?(s(),C(`svg`,pe,[...n[2]||=[h(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`},null,-1),h(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`},null,-1)]])):(s(),C(`svg`,me,[...n[3]||=[h(`polyline`,{points:`15 18 9 12 15 6`},null,-1)]]))],8,fe)),h(`span`,he,d(P.value),1),m.value===`stickers`?(s(),C(`button`,{key:1,class:`upload-view__skip`,type:`button`,onClick:I},`Skip`)):x(``,!0)]),m.value===`crop`&&a(i).originalUrl?(s(),f(B,{key:0,src:a(i).originalUrl,orientation:j.value,model:A.value,"device-name":te.value,"initial-params":a(i).cropParams,"initial-orientation":a(i).cropOrientation,class:`upload-view__stage`,onCrop:F},null,8,[`src`,`orientation`,`model`,`device-name`,`initial-params`,`initial-orientation`])):m.value===`stickers`&&a(i).croppedUrl?(s(),f(ue,{key:1,"cropped-url":a(i).croppedUrl,orientation:N.value,model:A.value,stickers:a(i).stickers,class:`upload-view__stage`,onAddSticker:a(i).addSticker,onUpdateSticker:a(i).updateSticker,onRemoveSticker:a(i).removeSticker,onDone:L},null,8,[`cropped-url`,`orientation`,`model`,`stickers`,`onAddSticker`,`onUpdateSticker`,`onRemoveSticker`])):m.value===`done`?(s(),C(`div`,ge,[n[5]||=h(`div`,{class:`upload-view__done-icon`,"aria-hidden":`true`},`🎉`,-1),h(`p`,_e,d(b.value?`Photo updated!`:`Photo added!`),1),n[6]||=h(`p`,{class:`upload-view__done-sub`},`It'll appear on your frame at the next update.`,-1),l(ee,{variant:`primary`,class:`upload-view__done-btn`,onClick:ne},{default:t(()=>[...n[4]||=[S(`Done`,-1)]]),_:1})])):x(``,!0),b.value?x(``,!0):(s(),f(M,{key:3,modelValue:v.value,"onUpdate:modelValue":n[0]||=e=>v.value=e,devices:a(o).devices,selected:a(i).selectedDeviceIds,uploading:_.value,"onUpdate:selected":n[1]||=e=>a(i).selectedDeviceIds=e,onConfirm:z},null,8,[`modelValue`,`devices`,`selected`,`uploading`]))]))}}),[[`__scopeId`,`data-v-83d73c7a`]]);export{ve as default}; \ No newline at end of file +import{A as e,B as t,C as n,F as r,J as i,K as a,L as o,N as s,O as c,S as l,U as u,Y as d,_ as f,b as p,f as m,g as h,h as g,k as _,p as v,q as y,t as b,v as x,x as S,y as C,z as w}from"./_plugin-vue_export-helper-BNDVmFr7.js";import{a as T,i as E,s as D}from"./index-C81kpUpa.js";import{i as O,n as ee,r as k,t as A}from"./BaseBottomSheet-Bsol3Sat.js";import{t as j}from"./types-xv3fXrtW.js";import{t as M}from"./DevicePicker-BnLOaG74.js";var N={class:`crop-editor__top`},te={key:0,class:`crop-editor__label`},P={class:`crop-editor__orient`,role:`radiogroup`,"aria-label":`Crop orientation`},F=[`aria-checked`,`aria-label`,`onClick`],I={width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},L={key:0,x:`2`,y:`6`,width:`20`,height:`12`,rx:`1.5`},R={key:1,x:`6`,y:`2`,width:`12`,height:`20`,rx:`1.5`},z={key:1,class:`crop-editor__mismatch`,role:`status`},ne={class:`crop-editor__actions`},B=b(n({__name:`CropEditor`,props:{src:{},orientation:{},model:{},deviceName:{},initialParams:{},initialOrientation:{}},emits:[`crop`],setup(n,{emit:i}){let a=n,o=i,c=[{value:`landscape`,label:`Landscape crop`},{value:`portrait`,label:`Portrait crop`}],f=u(a.initialOrientation??a.orientation),p=g(()=>{let{width:e,height:t}=j(a.model??`v1`,f.value);return{w:e,h:t}}),m=g(()=>p.value.w/p.value.h),b=g(()=>f.value!==a.orientation),T=u(),E=u(),D=null,O=null,k=0,A=u(0),M=u(0),B=u(1),V={x:0,y:0,w:0,h:0},H=1;function re(e){f.value!==e&&(f.value=e,A.value=0,M.value=0,B.value=1,U())}function U(){let e=E.value,t=T.value;if(!e||!t)return;let n=t.getBoundingClientRect(),r=n.height-80,i=n.width;e.width=i,e.height=r,D=e.getContext(`2d`);let a=i-48,o=r-48,s,c;a/o>m.value?(c=o,s=c*m.value):(s=a,c=s/m.value),V={x:(i-s)/2,y:(r-c)/2,w:s,h:c},O&&W()}function W(){O&&(H=Math.max(V.w/O.naturalWidth,V.h/O.naturalHeight),a.initialParams?G(a.initialParams):(B.value=1,A.value=0,M.value=0,q()))}function G(e){if(!O)return;let t=V.w/e.natW;B.value=t/H,A.value=t*(O.naturalWidth/2-e.natX-e.natW/2),M.value=t*(O.naturalHeight/2-e.natY-e.natH/2);let[n,r]=K(A.value,M.value);A.value=n,M.value=r,q()}function K(e,t){if(!O)return[e,t];let n=H*B.value,r=O.naturalWidth*n,i=O.naturalHeight*n,a=(r-V.w)/2,o=(i-V.h)/2;return[Math.max(-a,Math.min(a,e)),Math.max(-o,Math.min(o,t))]}function q(){if(!D||!O||!E.value)return;let{width:e,height:t}=E.value,n=H*B.value,r=O.naturalWidth*n,i=O.naturalHeight*n,a=V.x+V.w/2+A.value,o=V.y+V.h/2+M.value,s=a-r/2,c=o-i/2;D.clearRect(0,0,e,t),D.drawImage(O,s,c,r,i);let l=V.x+V.w,u=V.y+V.h;D.fillStyle=`rgba(0,0,0,0.6)`,D.fillRect(0,0,e,V.y),D.fillRect(0,u,e,t-u),D.fillRect(0,V.y,V.x,V.h),D.fillRect(l,V.y,e-l,V.h),D.strokeStyle=`#fff`,D.lineWidth=2,D.strokeRect(V.x,V.y,V.w,V.h),D.lineWidth=3,[[V.x,V.y,20,0,0,20],[V.x+V.w,V.y,-20,0,0,20],[V.x,V.y+V.h,20,0,0,-20],[V.x+V.w,V.y+V.h,-20,0,0,-20]].forEach(([e,t,n,r,i,a])=>{D.beginPath(),D.moveTo(e+n,t+r),D.lineTo(e,t),D.lineTo(e+i,t+a),D.stroke()})}let J=new Map,Y=0;function X(e){if(E.value?.setPointerCapture(e.pointerId),J.set(e.pointerId,{x:e.clientX,y:e.clientY}),J.size===2){let e=[...J.values()];Y=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y)}}function ie(e){if(!J.has(e.pointerId))return;let t=J.get(e.pointerId);if(J.set(e.pointerId,{x:e.clientX,y:e.clientY}),J.size===1){let n=e.clientX-t.x,r=e.clientY-t.y,[i,a]=K(A.value+n,M.value+r);A.value=i,M.value=a,Q();return}if(J.size===2){let e=[...J.values()],t=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y);if(Y>0){let e=t/Y;B.value=Math.max(1,B.value*e);let[n,r]=K(A.value,M.value);A.value=n,M.value=r,Q()}Y=t}}function Z(e){J.delete(e.pointerId),Y=0}function Q(){cancelAnimationFrame(k),k=requestAnimationFrame(q)}async function ae(){if(!O)return;let e=H*B.value,t=V.x+V.w/2+A.value,n=V.y+V.h/2+M.value,r=t-O.naturalWidth*e/2,i=n-O.naturalHeight*e/2,a=(V.x-r)/e,s=(V.y-i)/e,c=V.w/e,l=V.h/e,{w:u,h:d}=p.value,m=new OffscreenCanvas(u,d);m.getContext(`2d`).drawImage(O,a,s,c,l,0,0,u,d),o(`crop`,{blob:await m.convertToBlob({type:`image/jpeg`,quality:.92}),params:{natX:a,natY:s,natW:c,natH:l},orientation:f.value})}let oe=new ResizeObserver(U);return e(()=>{T.value&&oe.observe(T.value),U(),O=new Image,O.onload=()=>{U(),W()},O.src=a.src}),w(()=>a.src,e=>{O&&(O.onload=()=>W(),O.src=e)}),_(()=>{oe.disconnect(),cancelAnimationFrame(k)}),(e,i)=>(s(),C(`div`,{class:`crop-editor`,ref_key:`containerRef`,ref:T},[h(`canvas`,{ref_key:`canvasRef`,ref:E,class:`crop-editor__canvas`,onPointerdown:X,onPointermove:ie,onPointerup:Z,onPointercancel:Z},null,544),h(`div`,N,[n.deviceName?(s(),C(`div`,te,d(n.deviceName),1)):x(``,!0),h(`div`,P,[(s(),C(v,null,r(c,e=>h(`button`,{key:e.value,type:`button`,role:`radio`,"aria-checked":f.value===e.value,"aria-label":e.label,class:y([`crop-editor__orient-btn`,{"crop-editor__orient-btn--active":f.value===e.value}]),onClick:t=>re(e.value)},[(s(),C(`svg`,I,[e.value===`landscape`?(s(),C(`rect`,L)):(s(),C(`rect`,R))]))],10,F)),64))]),b.value?(s(),C(`div`,z,[i[0]||=h(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},[h(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),h(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),h(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})],-1),h(`span`,null,`Frame is set to `+d(n.orientation)+`. Use the tool above to recrop for the current frame orientation, or switch the frame in Settings to display this crop.`,1)])):x(``,!0)]),h(`div`,ne,[l(ee,{variant:`primary`,class:`crop-editor__use-btn`,onClick:ae},{default:t(()=>[...i[1]||=[S(` Use this crop `,-1)]]),_:1})])],512))}}),[[`__scopeId`,`data-v-f090bd2d`]]),V=[{id:`santa-hat`,label:`Santa hat`,url:`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%3e%3cpath%20d='M%208%2052%20L%2056%2052%20Q%2050%2030%2042%2012%20Q%2032%2022%2024%2032%20Q%2014%2042%208%2052%20Z'%20fill='%23cf2030'/%3e%3cpath%20d='M%2024%2032%20Q%2014%2042%208%2052%20Q%2018%2050%2028%2044%20Q%2026%2038%2024%2032%20Z'%20fill='%23a8141d'%20opacity='0.55'/%3e%3crect%20x='6'%20y='48'%20width='52'%20height='10'%20rx='5'%20fill='%23ffffff'/%3e%3cellipse%20cx='14'%20cy='53'%20rx='2.2'%20ry='1.6'%20fill='%23ececec'/%3e%3cellipse%20cx='28'%20cy='53'%20rx='2.2'%20ry='1.6'%20fill='%23ececec'/%3e%3cellipse%20cx='42'%20cy='53'%20rx='2.2'%20ry='1.6'%20fill='%23ececec'/%3e%3cellipse%20cx='52'%20cy='53'%20rx='2'%20ry='1.4'%20fill='%23ececec'/%3e%3ccircle%20cx='42'%20cy='12'%20r='7.5'%20fill='%23ffffff'/%3e%3ccircle%20cx='40'%20cy='10'%20r='2'%20fill='%23f4f4f4'%20opacity='0.6'/%3e%3c/svg%3e`}],H={class:`sticker-tray`},re={key:0,class:`sticker-tray__section`},U={class:`sticker-tray__row`},W=[`aria-label`,`onClick`],G={key:0,class:`sticker-tray__emoji`,"aria-hidden":`true`},K=[`src`],q={class:`sticker-tray__section`},J={class:`sticker-tray__row`},Y=[`aria-label`,`onClick`],X=[`src`,`alt`],ie={class:`sticker-tray__section`},Z=`pf.stickerTray.recents`,Q=12,ae=b(n({__name:`StickerTray`,props:{modelValue:{type:Boolean}},emits:[`update:modelValue`,`pick`],setup(n,{emit:i}){let o=i,c=u([]);e(()=>{c.value=l()});function l(){try{let e=localStorage.getItem(Z);return e?JSON.parse(e).map(e=>{if(e.kind===`image`&&e.imageAsset){let t=V.find(t=>t.id===e.imageAsset);return{...e,url:t?.url,label:t?.label??e.label}}return e}).filter(e=>e.kind===`emoji`?!!e.emoji:!!e.url):[]}catch{return[]}}function p(){try{localStorage.setItem(Z,JSON.stringify(c.value))}catch{}}function m(e){c.value=[e,...c.value.filter(t=>t.key!==e.key)].slice(0,Q),p()}function g(e){if(!e)return null;if(typeof Intl<`u`&&Intl.Segmenter){let t=[...new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)];return t[t.length-1]?.segment??null}return[...e].pop()??null}function _(e){let t=e.target,n=g(t.value);t.value=``,n&&(m({key:`emoji:${n}`,kind:`emoji`,label:n,emoji:n}),o(`pick`,{emoji:n}))}function y(e){m({key:`image:${e.id}`,kind:`image`,label:e.label,imageAsset:e.id,url:e.url}),o(`pick`,{imageAsset:e.id})}function b(e){m(e),e.kind===`emoji`&&e.emoji?o(`pick`,{emoji:e.emoji}):e.kind===`image`&&e.imageAsset&&o(`pick`,{imageAsset:e.imageAsset})}return(e,i)=>(s(),f(A,{"model-value":n.modelValue,label:`Add sticker`,"onUpdate:modelValue":i[0]||=t=>e.$emit(`update:modelValue`,t)},{default:t(()=>[h(`div`,H,[c.value.length?(s(),C(`section`,re,[i[1]||=h(`h3`,{class:`sticker-tray__heading`},`Recent`,-1),h(`div`,U,[(s(!0),C(v,null,r(c.value,e=>(s(),C(`button`,{key:e.key,type:`button`,class:`sticker-tray__chip`,"aria-label":e.label,onClick:t=>b(e)},[e.kind===`emoji`?(s(),C(`span`,G,d(e.emoji),1)):(s(),C(`img`,{key:1,src:e.url,alt:``,class:`sticker-tray__img`},null,8,K))],8,W))),128))])])):x(``,!0),h(`section`,q,[i[2]||=h(`h3`,{class:`sticker-tray__heading`},`Stickers`,-1),h(`div`,J,[(s(!0),C(v,null,r(a(V),e=>(s(),C(`button`,{key:e.id,type:`button`,class:`sticker-tray__chip`,"aria-label":e.label,onClick:t=>y(e)},[h(`img`,{src:e.url,alt:e.label,class:`sticker-tray__img`},null,8,X)],8,Y))),128))])]),h(`section`,ie,[i[3]||=h(`h3`,{class:`sticker-tray__heading`},`Any emoji`,-1),i[4]||=h(`p`,{class:`sticker-tray__hint`},`Tap the box, then pick from your keyboard's emoji button.`,-1),h(`input`,{type:`text`,class:`sticker-tray__emoji-input`,inputmode:`text`,autocomplete:`off`,autocorrect:`off`,autocapitalize:`off`,spellcheck:`false`,placeholder:`😀 🎉 🐶 …`,"aria-label":`Emoji input — use your keyboard's emoji button`,onInput:_},null,32)])])]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-9a64b78a`]]),oe=[{id:`sea-snow`,category:`seasonal`,label:`Snowflake`,emoji:`❄️`},{id:`sea-sun`,category:`seasonal`,label:`Sun`,emoji:`☀️`},{id:`sea-leaves`,category:`seasonal`,label:`Autumn`,emoji:`🍂`},{id:`sea-blossom`,category:`seasonal`,label:`Blossom`,emoji:`🌸`},{id:`sea-snowman`,category:`seasonal`,label:`Snowman`,emoji:`⛄`},{id:`hol-tree`,category:`holidays`,label:`Tree`,emoji:`🎄`},{id:`hol-gift`,category:`holidays`,label:`Gift`,emoji:`🎁`},{id:`hol-heart`,category:`holidays`,label:`Heart`,emoji:`❤️`},{id:`hol-party`,category:`holidays`,label:`Party`,emoji:`🎉`},{id:`hol-cake`,category:`holidays`,label:`Cake`,emoji:`🎂`},{id:`fun-star`,category:`fun`,label:`Star`,emoji:`⭐`},{id:`fun-rainbow`,category:`fun`,label:`Rainbow`,emoji:`🌈`},{id:`fun-balloon`,category:`fun`,label:`Balloon`,emoji:`🎈`},{id:`fun-sparkle`,category:`fun`,label:`Sparkles`,emoji:`✨`},{id:`fun-fire`,category:`fun`,label:`Fire`,emoji:`🔥`},{id:`fam-house`,category:`family`,label:`Home`,emoji:`🏠`},{id:`fam-paw`,category:`family`,label:`Paw`,emoji:`🐾`},{id:`fam-camera`,category:`family`,label:`Camera`,emoji:`📷`},{id:`fam-plane`,category:`family`,label:`Airplane`,emoji:`✈️`},{id:`fam-music`,category:`family`,label:`Music`,emoji:`🎵`},{id:`nat-tree`,category:`nature`,label:`Tree`,emoji:`🌲`},{id:`nat-flower`,category:`nature`,label:`Flower`,emoji:`🌺`},{id:`nat-bee`,category:`nature`,label:`Bee`,emoji:`🐝`},{id:`nat-fly`,category:`nature`,label:`Butterfly`,emoji:`🦋`},{id:`nat-moon`,category:`nature`,label:`Moon`,emoji:`🌙`}],se={class:`sticker-canvas__bar`},ce=52,le=96,ue=b(n({__name:`StickerCanvas`,props:{croppedUrl:{},orientation:{},model:{},stickers:{}},emits:[`add-sticker`,`update-sticker`,`remove-sticker`,`done`],setup(n,{emit:a}){let d=n,y=a,b=u(),T=u(),E=u(),D=u(),O=u(!1),k=u(null),A=u(375),M=u(225),{width:N,height:te}=j(d.model??`v1`,d.orientation),P=N/te;function F(){if(!b.value)return;let{width:e,height:t}=b.value.getBoundingClientRect(),n=t-72;e/n>P?(M.value=n,A.value=n*P):(A.value=e,M.value=e/P),R()}let I=new ResizeObserver(F);e(()=>{b.value&&I.observe(b.value),F(),ge()}),_(()=>{I.disconnect(),_e(),K?.()}),w(()=>d.stickers,()=>{if(!k.value)return;let e=(D.value?.getNode())?.findOne(`#${k.value}`);e&&q(e)},{deep:!0});let L=u(null);function R(){let e=new Image;e.onload=()=>{L.value=e},e.src=d.croppedUrl}w(()=>d.croppedUrl,()=>R(),{immediate:!0});let z=u({});e(()=>{for(let e of V){let t=new Image;t.onload=()=>{z.value={...z.value,[e.id]:t}},t.src=e.url}});let ne=g(()=>({width:A.value,height:M.value})),B=g(()=>({image:L.value,x:0,y:0,width:A.value,height:M.value})),H={enabledAnchors:[`top-left`,`top-right`,`bottom-left`,`bottom-right`],rotateEnabled:!0,borderStroke:`rgba(255,255,255,0.8)`,anchorFill:`#fff`,anchorSize:18,keepRatio:!0,boundBoxFunc:(e,t)=>t};function re(e){return{id:e.id,text:W(e),fontSize:ce,fontFamily:`"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif`,x:e.x,y:e.y,scaleX:e.scale,scaleY:e.scale,rotation:e.rotation,draggable:!0,offsetX:ce/2,offsetY:ce/2}}function U(e){return{id:e.id,image:e.imageAsset?z.value[e.imageAsset]:null,x:e.x,y:e.y,width:le,height:le,scaleX:e.scale,scaleY:e.scale,rotation:e.rotation,draggable:!0,offsetX:le/2,offsetY:le/2}}function W(e){return e.emoji?e.emoji:oe.find(t=>t.id===e.type)?.emoji??`⭐`}let G=u(null),K=null;function q(e){let t=e.getClientRect(),n=t.x+t.width+4-14,r=t.y-4-14;n=Math.max(14,Math.min(A.value-14,n)),r=Math.max(14,Math.min(M.value-14,r)),G.value={x:n,y:r}}function J(e){K?.(),K=null;let t=(D.value?.getNode())?.findOne(`#${e}`);if(!t){G.value=null;return}q(t),t.on(`dragmove.handle transform.handle transformend.handle dragend.handle`,()=>q(t)),K=()=>t.off(`.handle`)}function Y(e,t){t.cancelBubble=!0,k.value=e,c(()=>{let t=(D.value?.getNode())?.findOne(`#${e}`),n=E.value?.getNode();t&&n&&n.nodes([t]),J(e)})}function X(e){e.target===e.target.getStage()&&(k.value=null,E.value?.getNode()?.nodes([]),K?.(),K=null,G.value=null)}function ie(){k.value&&(y(`remove-sticker`,k.value),k.value=null,E.value?.getNode()?.nodes([]),K?.(),K=null,G.value=null)}function Z(e,t){y(`update-sticker`,e,{x:t.target.x(),y:t.target.y()})}function Q(e,t){y(`update-sticker`,e,{x:t.target.x(),y:t.target.y(),scale:t.target.scaleX(),rotation:t.target.rotation()})}function ue(e){let t={id:`${e.imageAsset??e.emoji??`sticker`}-${Date.now()}`,type:e.imageAsset?`image`:`emoji`,emoji:e.emoji,imageAsset:e.imageAsset,x:A.value/2,y:M.value/2,scale:1,rotation:0};y(`add-sticker`,t),O.value=!1,c(()=>Y(t.id,{cancelBubble:!1}))}let $=0,de=1;function fe(e){let t=e[0].clientX-e[1].clientX,n=e[0].clientY-e[1].clientY;return Math.hypot(t,n)}function pe(e){e.touches.length!==2||!k.value||($=fe(e.touches),de=d.stickers.find(e=>e.id===k.value)?.scale??1)}function me(e){if(e.touches.length!==2||!k.value||$===0)return;e.preventDefault();let t=Math.max(.2,Math.min(6,de*(fe(e.touches)/$)));y(`update-sticker`,k.value,{scale:t})}function he(){$=0,de=1}function ge(){let e=b.value;e&&(e.addEventListener(`touchstart`,pe,{passive:!0}),e.addEventListener(`touchmove`,me,{passive:!1}),e.addEventListener(`touchend`,he,{passive:!0}))}function _e(){let e=b.value;e&&(e.removeEventListener(`touchstart`,pe),e.removeEventListener(`touchmove`,me),e.removeEventListener(`touchend`,he))}async function ve(){k.value=null,E.value?.getNode()?.nodes([]),await c();let e=T.value?.getNode();if(!e)return;let t=N/A.value,n=await e.toBlob({pixelRatio:t,mimeType:`image/jpeg`,quality:.92});n&&y(`done`,n)}return(e,a)=>{let c=o(`v-image`),u=o(`v-layer`),d=o(`v-text`),g=o(`v-transformer`),_=o(`v-stage`);return s(),C(`div`,{class:`sticker-canvas`,ref_key:`containerRef`,ref:b},[l(_,{ref_key:`stageRef`,ref:T,config:ne.value,onClick:X,onTap:X},{default:t(()=>[l(u,null,{default:t(()=>[l(c,{config:B.value},null,8,[`config`])]),_:1}),l(u,{ref_key:`stickerLayerRef`,ref:D},{default:t(()=>[(s(!0),C(v,null,r(n.stickers,e=>(s(),C(v,{key:e.id},[e.imageAsset?(s(),f(c,{key:0,config:U(e),onClick:t=>Y(e.id,t),onTap:t=>Y(e.id,t),onDragend:t=>Z(e.id,t),onTransformend:t=>Q(e.id,t)},null,8,[`config`,`onClick`,`onTap`,`onDragend`,`onTransformend`])):(s(),f(d,{key:1,config:re(e),onClick:t=>Y(e.id,t),onTap:t=>Y(e.id,t),onDragend:t=>Z(e.id,t),onTransformend:t=>Q(e.id,t)},null,8,[`config`,`onClick`,`onTap`,`onDragend`,`onTransformend`]))],64))),128)),l(g,{ref_key:`transformerRef`,ref:E,config:H},null,512)]),_:1},512)]),_:1},8,[`config`]),G.value?(s(),C(`button`,{key:0,class:`sticker-canvas__delete-handle`,type:`button`,"aria-label":`Remove sticker`,style:i({left:G.value.x+`px`,top:G.value.y+`px`}),onPointerdown:a[0]||=m(()=>{},[`stop`]),onClick:m(ie,[`stop`])},[...a[3]||=[p(``,1)]],36)):x(``,!0),h(`div`,se,[h(`button`,{class:`sticker-canvas__add-btn`,type:`button`,onClick:a[1]||=e=>O.value=!0},[...a[4]||=[h(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[h(`circle`,{cx:`12`,cy:`12`,r:`10`}),h(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`16`}),h(`line`,{x1:`8`,y1:`12`,x2:`16`,y2:`12`})],-1),S(` Add sticker `,-1)]]),l(ee,{variant:`primary`,class:`sticker-canvas__next-btn`,onClick:ve},{default:t(()=>[...a[5]||=[S(`Next`,-1)]]),_:1})]),l(ae,{modelValue:O.value,"onUpdate:modelValue":a[2]||=e=>O.value=e,onPick:ue},null,8,[`modelValue`])],512)}}}),[[`__scopeId`,`data-v-23d2647e`]]),$={class:`upload-view`},de={class:`upload-view__header`},fe=[`aria-label`],pe={key:0,width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},me={key:1,width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"aria-hidden":`true`},he={class:`upload-view__step-label`},ge={key:2,class:`upload-view__done`},_e={class:`upload-view__done-title`},ve=b(n({__name:`UploadView`,setup(n){let r=D(),i=k(),o=O(),c=T(),p=E(),m=u(`crop`),_=u(!1),v=u(!1),y=null,b=g(()=>i.editingImageId!==null);e(async()=>{if(await o.fetchDevices(),!i.originalFile){r.replace(`/`);return}m.value=`crop`});let w=g(()=>i.contextDeviceId?o.devices.find(e=>e.id===i.contextDeviceId):o.devices[0]),A=g(()=>w.value?.model??`v1`),j=g(()=>w.value?.orientation??`landscape`),N=g(()=>i.cropOrientation??j.value),te=g(()=>w.value?.name),P=g(()=>m.value===`crop`?b.value?`Edit crop`:`Crop photo`:m.value===`stickers`?`Add stickers`:b.value?`Updated`:`Added`);function F({blob:e,params:t,orientation:n}){i.setCrop(e,t,n),m.value=`stickers`}function I(){i.croppedBlob&&(y=i.croppedBlob,b.value?z():v.value=!0)}function L(e){y=e,b.value?z():v.value=!0}function R(){if(m.value===`crop`){i.cleanup(),r.replace(`/library`);return}m.value===`stickers`&&(m.value=`crop`)}async function z(){if(y){_.value=!0;try{let e=new File([y],`photo.jpg`,{type:`image/jpeg`});if(b.value){await c.reprocessImage(i.editingImageId,e,{cropParams:i.cropParams??void 0,stickerState:i.stickers,cropOrientation:i.cropOrientation??void 0}),v.value=!1,m.value=`done`;return}let t=await c.uploadImage(e,{original:i.originalFile??void 0,cropParams:i.cropParams??void 0,stickerState:i.stickers,cropOrientation:i.cropOrientation??void 0});await Promise.all(i.selectedDeviceIds.map(e=>c.setApproval(t.id,e,!0))),v.value=!1,m.value=`done`}catch(e){p.show(e instanceof Error?e.message:`Upload failed`,`error`)}finally{_.value=!1}}}function ne(){i.cleanup(),r.replace(`/library`)}return(e,n)=>(s(),C(`div`,$,[h(`header`,de,[m.value===`done`?x(``,!0):(s(),C(`button`,{key:0,class:`upload-view__back`,type:`button`,"aria-label":m.value===`crop`?`Cancel`:`Back`,onClick:R},[m.value===`crop`?(s(),C(`svg`,pe,[...n[2]||=[h(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`},null,-1),h(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`},null,-1)]])):(s(),C(`svg`,me,[...n[3]||=[h(`polyline`,{points:`15 18 9 12 15 6`},null,-1)]]))],8,fe)),h(`span`,he,d(P.value),1),m.value===`stickers`?(s(),C(`button`,{key:1,class:`upload-view__skip`,type:`button`,onClick:I},`Skip`)):x(``,!0)]),m.value===`crop`&&a(i).originalUrl?(s(),f(B,{key:0,src:a(i).originalUrl,orientation:j.value,model:A.value,"device-name":te.value,"initial-params":a(i).cropParams,"initial-orientation":a(i).cropOrientation,class:`upload-view__stage`,onCrop:F},null,8,[`src`,`orientation`,`model`,`device-name`,`initial-params`,`initial-orientation`])):m.value===`stickers`&&a(i).croppedUrl?(s(),f(ue,{key:1,"cropped-url":a(i).croppedUrl,orientation:N.value,model:A.value,stickers:a(i).stickers,class:`upload-view__stage`,onAddSticker:a(i).addSticker,onUpdateSticker:a(i).updateSticker,onRemoveSticker:a(i).removeSticker,onDone:L},null,8,[`cropped-url`,`orientation`,`model`,`stickers`,`onAddSticker`,`onUpdateSticker`,`onRemoveSticker`])):m.value===`done`?(s(),C(`div`,ge,[n[5]||=h(`div`,{class:`upload-view__done-icon`,"aria-hidden":`true`},`🎉`,-1),h(`p`,_e,d(b.value?`Photo updated!`:`Photo added!`),1),n[6]||=h(`p`,{class:`upload-view__done-sub`},`It'll appear on your frame at the next update.`,-1),l(ee,{variant:`primary`,class:`upload-view__done-btn`,onClick:ne},{default:t(()=>[...n[4]||=[S(`Done`,-1)]]),_:1})])):x(``,!0),b.value?x(``,!0):(s(),f(M,{key:3,modelValue:v.value,"onUpdate:modelValue":n[0]||=e=>v.value=e,devices:a(o).devices,selected:a(i).selectedDeviceIds,uploading:_.value,"onUpdate:selected":n[1]||=e=>a(i).selectedDeviceIds=e,onConfirm:z},null,8,[`modelValue`,`devices`,`selected`,`uploading`]))]))}}),[[`__scopeId`,`data-v-83d73c7a`]]);export{ve as default}; \ No newline at end of file diff --git a/public/build/assets/harbor.jpg b/public/build/assets/harbor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a31a4186a089d73fc2e4ea369b3b100ee4c5619d GIT binary patch literal 269822 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�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�H!RkYF*Qn4~A8+U({ zW;yikbc~fX2=0+px+*g&##x&HbLivp#+0Hd6>wsFz&4x{>~oDYcm1rnJOW2y@2^ge zIo#==(dC)?Hsvg=S=!>DvG2qQ{rb17Kg-i#{{Ygb{6keI=<=m{7Q5f|qmRlM#;wY~ z{Gylt09>E(4S7Eh`uQG{NA(c-8`fv-^aDS>=lBh9-&Q16SE$H-tFLpDnwih2{{W_aZSZcgGI+1K0U9c{kISe6F(hT1B}NVu zfyMwmy|mIAiCvLC(p_I0_&}%EutBYp5<>UV$NtrflnWE=%!fOz3gf6HC= zjx0{m@Q*+8Mbm^I{y_f#?v10rQhr(m@Qe}Q_f2ORHq>K|+_68`M?fCh@w%U_m(8B1 zAGsfr8eF)ei$DFbAM@8Fc->btUNGJM&ojo}Y)W>4$nq21jdiuu{{V@@^Qnw~6Rtn; zreNMPUsX_HDk4%#0h8n*_2XN-BkNzt%i>>BzF>tlMN87p=giW9vucyZa&zi^G{(AF z-nLP`Vm=+AWRwBG>=ffl)2kxNcE*Dl_(~Dj{{Ux6RKvcaMkoo$9DscX&t8+c=kJp1 z{TxF#Qr%gH+_uJ?lb^m1ul4zA@9|Xs0QI<#d(}Wco~X~!x?FXw?gNbeu8D{HORK}h zf=7p=(>0Kf;M()PBmBqQdXEP8as2-P$w*7Y58Lh^<*P@i&d&>NP9u3X+kWB#OMbz4 z0CTFoVnsZd{=0jq_&-KLY^}2+XMgf3+e^dm$L4oDTk6q7*7Uv73i%<1+g&ty z+>VseHdOKt-S#?TQPbCzO~%V|1KiR{kN9H0>bN?N;ccc)lt%wgqBjfB2K zE&yOzPCIaQUfud{tz)^xcClQeS{?gpEfrNzNZT0gEey!Swlk2d199J8&RE_!sY$B+ zc04Mc_S9D(e7!Z)8&sPW)Bgad<^KS)tLBCZicisM*G*Lfu*#Ishl*7w%6`yJ3Z6mL zCnd7x^=3KN;Di&FbdUk_BFXJ#~t%8f}JO zDgvS8Si!@wJh20|sJMD==&80wx38uR%A1du`A?=l_!zxBX^1~dR}=e@Ldt!JcOZ|R zxwSm9g!yWucM7;4hqwAam$tnxg{S0jcnx)VoP;UUwQ5Of+bV;Rhq}_^*yMSgy$+R< z&nrOj&v>#aRR?&w!dPq{1A-Xkka3^hL-Nq-amW}N%&gHyU095EDtmw3-}sGmT9tJ% zro9fLzYV?u(V=MDZ7mL3A_^b5%8|hy+N)1Gv+iIY(caz$)3%C)d_U@Hu_v8)+56At z&wJsYQ~LBlr-fW~t$+Uj+t>d9d^82(-3={O@|EYi(a^HVPy*EnJ}=sS@0N}7@1x%f z5B~rb)uZ0u{{Y>WRnLteHP(U9hEqLA1bTwt>vx9zdN}?y)?Z)_EjGM!)z*-I^)*NT z0J!VgYZba#AW2$kI90|_RL&!2AKC!=cfs|>y{|>jspk0fIs&7^E}fooYHhpYKYA%w zDt{6(KRp@K21Yduh3~0shTzYoYE=u_|BL?V(J;`%|$m?UDc1oQN&WB zlac`5htub*FpTp$Mu|!|`DEynmE*oWwUwKZ!O+z7oo7c8cIp~QcKTG?B0t48{yJNC zT+`Ee%)LKQfZ&r9@bT~PxzW8QMc5Ud9-#|KwkCX>fKD^2W5mk38GJCkMQ*y%S5(hO zNeoa^vln2eG7zOfz#x5ebz6Aq$gR`OHI~u#c1Iq3RkD81;3WJknLUrMwy3Jh#ch30 zO51+Z`nozQikT#l4-@&ws=Kj(0&EB3&PgYYGXz{4#`tU;wKSx{{V{KuDC3S`y!BhCy|W%{{W+` z^q*K=`pVHyCBRcGk==sEBTb+xz|su+`)5w$>8a?buCc=|TIQuBk&bo~oRB}(JZnEr z7}>?$dIEJpt^WX{#e29Y(+5+yV>_i){zF;tLI7#56O`Omoj~K%$jAP!o^>n@Xz;E( zBh9(eWJ2LE8{=o}bnC)MfU#aACN&0V;|__pvXlG2Hq^UpsH#a8B|QkJh`fs+1&GLH z!Qd0$@YIzR6f`m{kh7^{gTjyEG#AufA+JSNQPTdbdWNW1n6k~cXap`Xj(cdcr!S|e z?37pIOXU5e97fN$fEccGf!`VlCZlC3E3V_KA$e&lh>}cCaHu>5KXmN}xA~p)`k$q2 z``7$Rm@puQG%=D7zI6*~tcKsv{{XEjoze)!MO2Q1du=ZvI0KX4wxlfHD0G)lSEZWU zQ&MZDRxzZMj~P2g;&N95fPHj4^Fb#b;XOR<6d)_9P}@Nesn77vqb}VWXX=N7uIo(& zS&d3WS!Bwt;z;ASB!FJ5$ohIs9ltL-fAwE6Ko}0 zAmEkY=UFmilv;A`cQpFUIUy$n#7kSDZWZa^<>KotY?DnK?jmVh%-o^j5dc&9iW58@ny2ljUQMI+|>kNjGEakTav%$d}&%QROVLThc?!~31mj^AbK z%X`*0?BR}vtpu;?e(x>7C!F@qpgiuYud&>3@WF0sbd}mD-ii{_Mj5v@d*ML!KpwnJn~XSIHIVljtH>GIT3DLjOUY_bB!^*RYyL#?jYS>RIS4i3L*0 z{yj%PA!H&pVgV%JfS~ii2S#!1*hb;)jX-rI%N6E@vM~(>%A}w4X-NM7t*o(|lcRq3 zPRNDp4-I5R1H@`4sAt}_0<`&<^ilh}eKEHf^!3)&RCim?T3sk%wAiJlq1geixX}5G z>=6l5w2zD8CxL;kN$KiltLnQw5zpvQYbp@j-Mh*&Y-9yVoS|P2j6bh{{XA4 zIq|Gr%z8ab&AGME8M9CJ2=CBe+SSuk)J+I_x>#13SUGi8+{Azm7YDwit+$Shuej3D zS$furqOaDPny^gOAx7i5S(`j5jk#j}3a+l!7F$wNmHY0346ws(-;X1I8F? znSb(YeRTQuD@?=s=%I&xH#_JKqgLUXIFjpMiE-3Tb(5uEs%7a8oqBm>Coe)vl_NfB zJHF{B8Ta{W$hSQ_eks()RB4hp?DVPS&mn|l%PGR`9Pm3GL0n?;dx28dFvm) z{+O@y(1(e(YqwSPBr9i#)Wnwbr%VE(Codzix2{g$bLa>fIq=q!OAm$C%RRwmin^{`B5}%_^K>YUq01Xp(HyR%a zHyoYU88UJ08fqJ@I!^i3T|q;1wcBeZh8h^+l?wA8GRjC&K>N7kIV6BJJJ5i1zfQ-~ zms@>Js;%mzof4`tzi1@}6>;#5s-unG{Bfx{FC`_^k%X33+Td&A{bVt8<%)s6^!HYM zowBMU2mT?gIuf=xx|gdYbe?G@lVC7H(iX#DkQ5va-}pLtUupey)D)A}Ed=vW)4WBh zYSJ+#_sJo4F$5JHk8!6KYh`V-sHJzWwixOl@=DXlWqb!LaM%E3;Gd?AWrEY}@BaWo zc;xc$?f(D?s47~n5_EvpCTz^jT2*%y}d{vYdUXk(mJ~YrDlTVG%U;+ z8)*tL&H)GM&W1XU@mUpkgwZ_6vH6~CXLbheL02v!lC0I78OB0y3)l?uWgN_1d^L`>-R=~rlu&VW8EoZfLrd9 z^wJ((l5QtSX`_}AjQR|#{5k2!EG8NX_$p+c85TI@hEk;CC-;VV2b~yN;+3s*CR*vI z*+(1=x-z49&PZKERK|v$Eu?RYdiU-R{{RO|(^L5{#G*`qi;N!pf8VOfndD1wcr=j1 zD}g*yqO3f5eYkeJ@h|&=({IWUFoL0-f7h-=+YSCmX=n>Id0AebM5J;=%daU zZr?pEQ4|Y0OCdPMal5{P85|v zSS@$x`gS#}rl|7B@}23Ma%2|TVj;WwFed}&qYoxIBQ*$AXFP7wcJziCErpkoG|B2E zHB3e=4m@(*9;2FCoKnFotF_%jGLPLjZxct>R%Sm2Zb5(CacbkPc~Qw*7|XOEf|$-4UXwWR6wi83Y~&Bb@f&>HQ)rc=`72@2xSM zx+4tnLANOb>q%>BLmf2~0nR@AKHQ#t6l2pWRQ_Bc6UkP?3~tFJ@=kvZ zHHytnDZ|GO8L&2#+CI8+w40}KBt?ROx0X3x-_uHRZtT$vaEna{HC)BU=p$U@0!9bp zohbyXC1i6rq-RD}2o$$w2Lyqfe|geojdv6FKz<;g`Dc&er23NO{ttAlwMYbY5}z&& z!yKOHpJDt+)W-)oD4_DrFpHDuO4MHM_KO`weRY<}O9D%QH1SBgOST6iCz3}v`sqpD zl51?WHB@%5JR-Def=$C6#&?e1oM>{v)IYB}UDjG-B}@P;=rY@fqkd!gYF4(MqB!?M z46+A|Z~dEa-Oq8YnN!8=OR3Mp7-f6o&X0mnYt zfw$OdUiJPfA*YdlY7u5-17fIPtDm{sBe%!%(a%s(OE9NDXOY53jineLrg5nUw#fxO zzHhQlXH3M6&jfvSanVMwS|Et7z_BXrKAd*f zX985dM+;FW&&B@$un(yyTAtA|h7N%lGBQBnxaa*H2-{+LWJzMdXb7AJ83$m`;5=<1@RYy5LTzhF16_H;_(L9IJ&7AX29vcOL!q8C^g8+SJ?r85|LhaKLbXJ#C#RS};Le(r8Ay zx_bMCWn;*%Oi%c}Q)`6{@aORSbrs=v#o`s&l}i&zA8t?FheTC2hifmNOy%8_5*Yj} z4=3_E73c~G>iXLM07Y1=(S4RBc*B+C2u?v#2ss0>*E3ZXv9}|9XBWhK7ZqK`iq}BZ zR~ooz;0&>uCt!*h*dne^sb&Cubwv2xXuDR|^vlxFR#m{1G9gN6S<1Hc&PY>(!0+v= zrh?lTw3-TsmZcHPM)gi+W%XWLC*eK4wSm)+I|h_dNa0mWwJu9wU}WysA5WQK$fwkH zOlvG08>=~Ti=;Y(?U3iD?xH?J?}eN4_yG0w(ksw+`CwOWpS}6Tcd!)481%p^pX08w zPMM?!{Dr^&0H~Dz09`pwnWPJkCg1-6)G7V?=zjQL+FHC5g<7(lxQ;mf9Asp$AIDb3Q2ziMr3bi~NBhG}=&Z0(GkHRtQMqJ}ony)LJbP)( z%ErEp7d%M30i5zR$<$?8X6BbuqmLfQs4l}fZx+hFrF(5HbWc}r;;KC0!d+F9B=Osy zm#(zKC`nruB z8%2-)HrogP06;FEqt>l8(z_R_(=72xx}%Qi`X8&pPb8f)Qy-X{QX<95W8C^@Bzoz! zM@RM9rf5^8okIeo`Nt`h$6|1M>$F#+=-0IcxPSURb-3v&e@ZKG{{ZL({{3!#Gyeed z_?Xv)!GBla4fuaoMbq9GbfvoEJHa&2#cxQT<8d(z+Z%2|;3?0b_0j(ChvlYJmQhC& zMj?zL?6E=Rf%D^12~Od0v5)$?#1oV`wpjUXyRQALGueSR&eS|hx{7+CEOULKHn;52css$s!5@aYzOvNSUQtl- zv~mdn^7GgqPsHh`_%>LQ77}~&M5j7-msRw6Zb%H+W11UT#*%n@)k>`?wxHvbN#g_f zzkM>7qI&GfAzq%fN;B{@l~8VAJ7+Df*Z%+qTPOUN{{T@gvU+*f`y>AVp%+{K0DQmg z{7hfFG2gsUJ_1;87A^pEL5sevyUl&0p`kTYsT=}2xTP#qsM-QCBY;Wc9lf~aY^;u?{{Uv4LH=3=@uJN2eji4X zB&2=1Ccw&^?S67Sb&`68sLQ$Vbo6+l({(UPJ57WbMn#b z9cyw+buBENJ!+^F@T@BGtgJ{?1K;JQMW{5+*0%;s=_n&hPf6BP#R;pj*TPXd&24r$ zIQJdKKk?f|F!bcq(8abZf%4e8qS2HD{{T+ILno_ivByeSNB;mr$bYWA{ubPGk<$G> zKl%;N_0#fZ#W`+p{7!5RMN7$eU_EuJC%b2 z$s^EuXeX93RYS07Gh>>Q2g_iQoa<|SeI-9x*eNEMEY%kXe5A+T+aebFa7M7SlOlj2 zkPq}uvXIRUbv0r`nQ7)plX4OXRtedIn;C zq_&a&012)ixzqhTpZ<+M_O;N{c#FZ0Vu|K+cqUx4+}HvC04AMI7am=xAD!NefA?J@ zH-^1V%E%tX7=i$6-5AgQ*Z%+?maJd!n(3d0(_kMVZT|r9wW;b`*ySzOLG-of{S^d!mSUxaJr|O4tO(>2>NNzk?-&3^zZxJrk z$-N$yhir`^kf-B~@(-xPbM1{V>%Nt4p}ImX_X{C{3FKunS0DvWG2HXpvBsHNt8R8n zvs^85BvZUb7Ba#l1xp6(NXH;*a$gX-%_*gHtfZPnMr4cZk*@Xtkhv#}oDAvMGdwfj z6k^wCGHM(20cP;d*IxStlxHh$Qy^i;Mtg}%H#jc~3p{PkA zz=_v!Dp(wT<95$&S(e!&iUEk*I}#R+$H6F72M6d_kVkCmoID?9xpgN}U6C1{vg=aH z6l9(_$NvCM*GR_+hC(V3$0)*vEs}7fBjwy{v7^SLk)_b&>SW~v*_!AnB#K3i_Xbh9 zWFH!2_HRyc!5kl#ZEZ(R$qJ(~81s;={WRGmSysALkcMZ%kU97U2lD!k{X9( z9{W*1{<`C8l9owH{0;aUii}sp8tZuIx?bULiW^ilDVb*pB&@hRE_mLbLO*{d&<2~t$NbeyuBhRluecJ&H0bJHsHJ{4P@ zo*^ven8=88hAhP3$hvk;@V9^3})P4MyJs z9}~CN^<^_t$5SFhN)Wtp7hIQOMn|u0TOA1T(fDgVYk)G zLsfR9hGUFoRhh1N(Bsn-#b$i7e{o-+#LmM8JmIm?};`AJfjVhZ!n$tOnC zTW$9mIu({!$DK42B76tTBZVh8#+`JBO&*HAEtc@BTPn<}Go);*8J7ilAoI5w?WwWi ze@RJ69XqrIBXc4ks6n-e13XBi@CSWCUiyM-w^CQ!rwElYPObZB!mt2fsR+yt4*&!6 z(A=t-uT70Sj=QQMter7_rSX1FsIR10=+>&PwWZz&P*zf>gP!DR+)ztb(|5XB0rr}f zwLB{fYD;C_H6#ps6PVIzRzYA0%_YJaP5WMt;`siJn*&mE~W+ zsQe(b-L0K>aId)9>uFLuHDE@X22fn8fTJUla&QMav?_X($>D`JPpzK1D!Cy_Id{V9 zks|FI_Z8 zv+6dz%*h)^J4lf$6N8dh0YLT1^y8ijB>c&4CX-CCLt=JSUO3A2UO3)b1(D)~Ag5PF zBz!S0KqKZ(kNPg{OJnf+!}+Qd$r8m_(u6rNnI$W@fu6(DzBGM#v~?w2{;FzDt7;lD ztK`8Pd&t57%)sLu9cJk+bj&743j>amQodQh9el zLb?dSqw@1Sw{}c_haDcN@n0ZZoDI>)zx8x4)Lm0Sbsa@Lwal>FdT!uFK;dL*6$ipG zoO6zQ>OpT7)&MVyE^vE1FdyccMH;gDZ&uoC?H^Gr~T!wduNzK4;l z@rsMHY@u;!9M$2xCa10eVR^V|U_ zc^HDeDUOnYB#~Deivl?xQ-j-66oxYgSJbnYjNIjpN<^s$ z@_`&N@G*nmzI{GgOlsX5GWAFz>zNs8Z4|IzF{mJ8-BTaeP?dJ1q_NgbLq`oXg$WH! zE5zG|NXb$;$vyL}e#2iS>Wyc%-8|2U<7%q(sY0Uwg~J>i?dRpGStzPyq4LEWcPiYk z2euD78M@{_(5SY;S$>e+J zvQ#^g5uBevr4%tocd3?GMoKD@A~`1>*!pQkB+B0aIbEmW`RDm#OCrj~W?2;H3P?gp z<39Sz+oWkm`j3be1O&$)E_4eldRcD(p{vT9T&M zMX}mDgH%TTW8;PLfygH(oZw^ES{!8Eq$w`UIck`eAsj5ORFLD;AALpLp(_IraT_j3 zC*`Q_pS$!e_oi+4CF&TdC#i%?@J)AsOB)fLjJ}LLe=SSb+U?aeraEiqoVyPRG%}oR z&PE-6nm;OaK`AS;Qp;0ir|J886oI4=g5%00=L5ON{xPYmb$3nE(Ij)dC!5`iKuHAp zecp5lX_DaWg{NeNejMPA!;U_GT}l}45=XiNENR)BoDav-TZ9%HUE_F_FpuH8Ntj+_w%Qvd*bKjO`w_%&a=S7N!1q+}->)H97Q5?p@LB9d8h zsgfIZatZlpHorl>UO(;*#qPo-$!LO(aw(sm_jIh6`vb5$qrmkPuh09s0We=3+sd9r z!0bUd9=@8{Y5InFR!LvWL&o4wa5Xl|(4JmD?hn_fY$6s4z_IoFEB^r5*1xap=>ZD4 zC%^c+^ZxFE8iMb;;Atfb!(%ua-4gcH<2L$$xe8kc8P)BZ?8@1Ne^6d;_PpnND(>tc zbI1ESS^A363{3uHqv=g2Kkn+jXs^bdSW{FxFD2t)jyvc0YgC@`1o5@ff@tZo0gx#w zt(**>O;X1t)iOBZeIyrty|+bo`%65fOXPmVz#kFFz#aM2tQ~1&o|T|_shMJ3sft!P z1D`>Ha0mBj24{jIOI4(@D-z0FCqfj&hyn*d0o}AxQk@Chs{5jTXy7tY!q0IGzb1v01u2_w|z{hP?boV=OWmybrqZ~LR zp8S#d>UAPn9gGe_G6EYp2mAF-VXY)kRC?~nn2eh3%yYQXx{rQ%)obF#>MQfwrl*>3 zv#Lm}Bt}iFN^(K@ZRb-aDFsiLxq=Lx+4c7Pv_00fv=r93?bT8!lAuWYfaQMZ9QtIb z{EoEfU-6NfU4}8j+8cOvQ6;OYWcyH>IK*xnV98_b0Q?TE)#~dw!btT&@<1Y;vfktW z03Q0NZ1oiM^ij<_N**d;H%18|noyt>A9x&(rZcH0xW*U*kihQF!azFH;-2(n@H2R3 zB{<1HP~Pj*mRaE{k=K`yk+w=_13uvAOaB0d7WnP)(fyj?BgUgI9XSC=KIHN-^gouX z_PavR0X)uFV+^sJ4}SWQNqpr=9g)!OA%WoXHOe}ROo;CX@9?!}QN2KzJzdUuLdKaR zEKUxtfhX+ak6~8;95EaZbI!Tb!l{H7>dKtt=eu170Q)E+Kvy4lp4iuCPWfjO zQ;jIa`iyQDIARfQNw*mp(~JYK5PrGI!1d4!_sd7vlkEl;X4|$pn26&fbHN$o-#R9{ zy)`vAksQx4F0LPU-RC4^{WVkhwK3hRs45EW6Tg<;zYFIF<+nkR+Zm4%QLw$Mx?XvF zxv0W0JeW>E`TQsPYbM`iszNC$rHzAf81cdM$mD2VrW#o!XQ`$PMnYjn#6k7r`24ij z$O||~a~@a)3dCbSL#4h0QGJ+Cb(Jgz4V5($EUpzI5u84K0UT$a>*=A3{TEa8H&D;j zRu8gNQcD6F`bpI8P^!C`e+35|at;qVmY|-pnuMym` zypcsl$ceKgmJTp5Mmv659L>CCMjq9&$*^9j?-m+MoO@#vrsElIRkMOVcp&O-I*394 z04jw40HvTG52z|nhj!{raD2DSC;UO|LoL{{a10C;hEtTCHWUS-<+KPy1R>P*wL6Q-8AG->ixXzT#?M z_Fwz;d=i(buj;EuW@1nO05r+}0Bc@bMVuh`zdD%@{cUgd3bTM}DY*XtF~7f9`vqRm zJnC%wgm3TESz+i9hXV6UAFisd_F4L>q--0g2p^@W1)mJ~S19f67u1 zas%ossIIZ}#jY!r#x|&g%jE2&OukB!pNxTzgy`|QlA)M5$eQHmFV&X)*(l%rIsX8^ zUKYz}Kjhp00H(k9>gWFel|G*Jwq3{n062^O-mpAU>F&bYcOU%^AN{>+-y^T*Z?%g1C#TW&;4y&pYo^E$Gy7lfBGIj`+C@TtJ9omWxuMV@A9J ze)E5RuKxh}QR$q28z_V(p|&vU%LXo z9$JCOe_@<_^(p@VDg7_&OM3qR>OubiZ%4kn0q5oZ$NKvYe)xTQHY5K4(c}LBz3V&? z&qc4(?aTiF-t~X~0LphvfA+2GpZ-)I_Vwf9e@u`5MZDwx0GS8S?J z4t{7+hdm7*Kl!;w{{V8<-?Q6+(6Hw{{@TC&>sRY|pVM1@8hg*-NloM6)5 zKl+d#`ud({z@Bzr?0>JYpz@#p07Afim1+L~-nF(eIOr%y{{ZHt{{Zh=zL&)wnFJrR z-oN^f{{X_)r^ODM1Bh>bg&+R_g{$8E3iI;+0B7s&D&CpDTP+ruX=}O_!v;P3)N2Y)CH?RJr{{Zl{?O&Mv1h+QtWBq-FZQ-9ybsYsL9ejWsBa$UE5UK%X!7KMpTb%Kz zMe*mM)W(qc=^1a@G^!M;;PZ^~bAgYUKAPP4sp0j`MDwekYvo(aOzapZB#iq3kDk3M za$P!}LxUo(`;!KJ#Ztddilfd#&2hN~NZn-wZ0j3ZgFOVorJO=mvtW zmWs)GO3P`4#Us;7&pF?SP$Sqr(ouq>csUG%AG~xa za_EkzqpX$*?f8-~G6U`nkQiWrj>Kv>&MulOY$e>PJWH>mo2V!g%~p*dAmHa2et#Sd zPxPoCsA<|I#7~!r3FT0ew0&{>^dI6Cvg&%Efn~2z93dIaJMGR%{D4~e_Tc?Rh2e|VA_xWm0Nzz5&#^B`Nai@rt^>)smq5B0? z)Y3gsQc&TFggkvaX)3VIUvPg5aLa)o`taTlVUa1t+etW{uGrELL z+1-JbIpA@rTTexcU5E8tH#rzHZ;{MkWSnOh>^K?=j>_&^a#^pi_wDw}n>`X$tNF3A zY+>IV9uBDM%~X^fQ(tYSf{IAsn4*a(RN!_Tj2`D#MZcsLn&BN{U0lfvHWA|BmL2#% zJw(mm;i|q#acllsN&M!GsklED?WFF`HBfMiRYySXSMwOiI&{wOa>!+ullFm`&sghw+EWUJsQZ)<*ZvOy#7|xHnvZ<}&x@IaG-_q4? zPx;3Q{{T~5>(JC2e@BbtN<@uu>I-EGl?USc?SY?|8oU^k+f2)<)K4DB#q};P61;4% zbhX~$({XhDQN2LM2daRg2qb9Hw=14W!(ihajceAOPjvA2qq=tg0Cc}zDou3ZCxR*W zU~Tg-yRrMAsn4m^A>zX&=k%58G>Szk{Y6m#8RUU5j9`5iR)6VA3RpTy*pC>*wGwS( zjO|20kId+@VT@-OuHvz4GI?{8?M0ghh+Qi5GS$6`u8luao7~B;9h8j2?-g!Xl0Ffk z3J(+Q{c+c{-8azER?rpmWU7*A6e|G3;~R@-jNoyc=xeCV^mM&@6dQq|=sQgUsO%nD z>2r^sH)v<{aHNu77;Y6ZY#V4KZWuN)>N&@47F|3e9mQhSWb-2*R&;W7_1%XZTT*^+ zZ>Dehx`BrDy*8Kn&bX<~4ZZ1t$w>mMH<<0P;vfrW0PQ))IzNx$1P4QppM6$dJsLVs z3a0xKM>E&WMdnpT5Ek0Z+gPvP!2|+%7&$(g$ES1&~|V5DnY4rT-bJ}*q?vHrTH zJQ{{rx`y|1c%)e3v0NQoslg{|aD9IEHPqJC6rDdu5ym2>j1ivOV;|k3&jpH9fY9nC zmmc|gfYhC1(zb4&wpI0&&I@HlWOJCKf;Nga2{8n%7zEG@a?-7AGq$jZ3~;=t7z;|z+n9*Bq>6K0;E`}}nT{{T%*csl?-8eg1@nv1=* zm!D7=F(1cAED2)sFOgBzN$R|s;Ir*CcYA+Z*y6ZYtdK2WGI_MrDvuk4W+}TT;usv` z7$;L!=c+v^dZ=k?{>4#wsmjwvjUbclL04j&5^{^j@YDL^=J<`%aUX;)+U4Wr8mK?- zYAdC#)@n-?g)6JAwDq?u%gqYOR1#^I?UJ4l<2;2K1oB6|m5-BNX;V#)DC+AerY4em zj1xwUi0kN5EGxE4D91S}a&)AfLw`hlwRDUa7t2wv-p)^AGuZxmf7KIj>l9Iwwu&%G zKX)=Y{+frLBN_J&g~ms|v*eSp*rOT6HoBDk`^Ik)ZMRy>dJ8;XXPKfBMMBPdWMg!g z?Z<6cwmY{}RPruOGGF2xsf@i)ZC=c$Q0i)?Vp@p-iLbjVw2AQd|f z2f}r4^yIhcx;lzV{-e3eR>-m%gFi2kyBNkjN2jK#`rCYBrm7gC{hQW0?b>h`bMQV~ z>i3Eif{aG0Fp0DQ>4nCJGf65dNA1d2*rhtF#a|S9diPyyr@BV;l#Yw$MN1FCy+f*! zRGq*u1pDZN!wcV5^-Ze2?Rme~&aTD*3%cx#s0Sb_f!OFv#Abv1GrrUBMK5rs1ve-M zY*7M8&V3I$vwS*=CFr9h3m8YNpKq4imjHpm9s6rWXsF>+OP5A{EZp@{#`-HDd`GLl zbnF(2t31%wJyN^^8R@CylX59`Ahdn3N8)u$UHX#gexa(NtBNSlK_f7ZmKeby3BlPI zKgUHh#aREa*(Qr=^*UATn?GJa%gtfZ%`wcXBkD1au&aTbt4@A&yX_D<-aAvh%>;C{%MYG#7A3wTClo~jgH#0<#0yY>WoeD%$~C@km4 zPO%csW@Wq7gCRgOhah(2fB^h7+)d?tIxypT|?tbhS%VNGWbtb%|L)X(|DB;BXgj82$@2|y5dgICXs*#gWR1p<8glT6N^#3KV<`A%+S!bE|)U9zC?HjoD& zhM4%+Tz-yyPZV<$9&Hl7S3B3wOs~s4ep<$|N##&X+dOfOCnmWYuU+^*BLLnpGr3}0 zZe!;i&LaToPQh^S>#S~5+4^s-t`}Ot37SabsyGph0^A_%S#Sy0Al@N`ZdUjeC1PqY z!I4xE#{-UabpDTUr8kUKwJ41QaaiYOLxaCFL!|e{WJq|@pHp*YO0`y{{T-FQQV$oLeA1e@)mwYc=l$cXnpNjFZJPDj{*AX{T$j@IjmEs2m9X07w<~!o zRpmW6EC*%;fxDjmx>frA>Z`SGHg#X@Ekfh+-Kg$}w=CWOndLjgx0AI`?(L_129cD_@FU9+;u0 zi>fHu$q13{eDc@>?)=9-n&!*>B134E)j%hXH3egf{(YuWIWj2x-A0C5C^QG}T-c|# zugvWZs_N?xN7~}Azf`m^R7vEcq)jiyjozKO9radqw^dqtiq9WYbo8%TN-86vW-zu@ zz<0nxGyB7znAV;@%Z`Jw#72L{oS(ulKdy$l2FFo(@M2|vf&TzJ@|hWCDH^Ub^*_f! zqtnGL{mokKWZq|kv1`~WXKIUURk2BYs9sX1B}R8(`=9UA$MJ8$7nsQPSN1Fi2G25p zF~?*Yh#~1Z!D*sm1tl~o$F2g9ap{tI`sgm#K}NRg+qnTv8psc>0M8oTo(ge}nO;(3MW>Jf zlfdo3=f1hN>u?oywQ$AEaEvo4&SWe;5%N$m_0FTHKx(W8eoBsi(_LkjjuVQpk?~B} zr%Ji?I+wzE){mznsFEa*yzDl&p)HK@tKzBShM1&Fha|Dd{IRZo@aJmuL{hhJJ)hX0 zjQ;?3x(CTx+CeNBF+5?^f(}9U#+Qm-)X~z^L-=^)1l(#Wq__y>-5N0%R>nBcEpjD4 zT~su?9ywVgAgCk>Bih*Z^*PmvS!ie=sh!-()jU0vF@Xl*eezrg0c=z)SYPriWL;_xC+c;1(*(aC)d|p z$Z4gi%_zi~Ge-_JIUQ1yz<=qJ^V68-fZz#}@jBtL;@64r$Gy7N>G2E!xpF^-oDUZ~ zR6;S=HLL!b#DD7ROYmI2sLT7)7o+?R<4Iy>+OnxWm^wyKe_B!u{{H~U;N9 zbTsw-MRS_tRTaVFS>#n;ghZq$3ZQUF_wTDxPA-(W^l#{O$|P`kj`pjh(KH zeSy|;3FA5o@YefV)ZQLhFV_}`)z(rOW-y>d-Mo$mrvPZvli2H(lN-k;7u6f$)RL0! zdpH@+IPa}@41MwW>Ak?8)fFTk`ZL>9w~Rh4UpznRi*2&SMQN)0O*2m@tX5`2yn**z zU=TgO9Wzg-mU(Q4P;%ssDDR&_^4;hdetOPxjievPT#x?%!!OqnozisoPBP;^2%G-i zm5cP6>jzEW;HOW>3CKQVtH;xRw|?i;dVVHP-a3Eo{0_0kdCw!z9Rm2acJxgkC%tOq zf2i6S@Q=jnkBGmm7UgK6ppt|{!|aajxH({RxSrcbZ+#MYzyRqQE`RwqpY|JBWrkRC zY@bu5p`3DLgyGPpvIl-Ok_a7`ei}xpiqOndawB7$_TclYPsGm@rT?$-e6 zv`*2KD2R9g7`AtNdTT@>DZQ~)&epeC9V}GjxGN3^1pfdHV7mVRXle2NC@M4Ycym+- z{{S^h{{Z^>!hV#rhF>a9fvMgHDl0)hk%vFSPx=;r?fi~!{{SJ={;&NEeAu)1*Ynm4 zk#M3!`fk*i{U@yKaVLkBq#tS2{{T32f6-lcW$`DYuXhSQo)+;%zMYbB8k*L9mjC0PgM>@$oX_eBj(OKuL3d~{wu%{oq z0rWok)JokVN=hlo_8gP1dU3425=H>z1C44(?llW$Hs_PCV~h=BcDzVEwF)t`dh6QG zeqd|bx*)W4_8Omx39Ypm@3GPU0FgTL^v#-}5-pUipX|gxyH%e?_=n+D4@5(6>yDn1 z;eUo=lTG#%b1E|(tQauJRoV`D`skbdGw>=$s5IRzSXwdyY@zb}-1j5n_(1vN<*!q> z;(W#9XrCPsX%ZI}h!`L3L;nDFl9Qn*L;i5Pq&v*fuT2>FwPli%+A z^un91Y{_nm?XT5|GDKQ-inDr#9N|HJLHFb7q2tuOlL;m0aMo$5DXwxyBQNaasHTRX zBYeXqSbVZRx~r<}eQ#^(%YByg{U1e5T|bc()~1l9I{yHk%^n#?Y>Z@Qx2~=3ny0Ah zuAH~tZFjrnJav&7Rw}6@W=v;;l{>S8$kyE(9XE*9%k=~uL0VdZb*GhUZP3XPU>vfQ z<8b%}7!i#%IdnvguB8om>TaXysp?^9Ej5urJe2uNjj!mNtkw#uxaY-Gdmbg)j)ZT>Q<6UR zFneQ9?zTz`eH}H*hBS%l>1ozzIVW+FF}!n+iEvImeY1@@lL)sm;N_!U*DU##4|1Q|X@Mep&*x)YxioFI94=V-S3R7bpqsypQFp zDJoa&%l1-?rE-N%20byXv*6K=ZQYVoaj2~SALFJB#P@gC=75_9B@C*Q>x^3cU9Gifw)r4 zJceg7QNS>`=LDyIc*j24sKqd4Dtwm&7Y?C{XB1a>YNJ_LZg>`Kk-<{R{D6JEM}0^` zf9p7jEhQAd@&nPZ$I}g=Y8ZNIm-KUzfX4y9R9s_;Boyb(RNo$dYqtPlPXV*Z(p@{# za$M%ER`X(nNLDsk2;4n!gQNO8Xdgao-a6_Pu{>&^vCefhfjEK)%UKETm1)7By^QD@|gF{F)@wg0!Soq5aR>a zR%b?jmN!nCvRmpY`aW44Q&U=VOZ3N)dlIxZ zzZNdGm!`M)PjsKmjge)H$e?5qoXUz1e^aSDXXxkRjn0a#>pE_Z-7}R~MQwb43gG92 zW;yN28aCo9U6x@0PR3D;0T}sN;{ZrHQCpkV?nxTi#>{0x5 zRzF0DKF4qK`pP=FX=U@6R9cnOcHqsh?%bg59m&*<59vG7m39~}AFXfEQ_n1rqSRTT zEx9qf?l*6UbM?`Ei^iG@?2sk83%ur{HD~yO-7?6 zZe2cH71xSB6ZQRV73C~O)jW4AS+`E@t$$lwA-%~R2T01) zUQ#!i36uPxEtLU=Z~$M#>PH-5?z24R@-*hU9COuvAKz;{ZWo@Nx2r`ZSKH;Crv*%} zF_D;w2*+{ofsXjmAB`P9*S&Yt);VeVdHjkvij;;}mGo)%WyKrdJrqaevIYQ;?$mDdT7AxvYGpuR8lw)%+QIZ>hk~z>< z=?zpQwnb}-7~+TZnku@Ih)PE*fX5(mTeLI^}8lX1U~`qMEj2lJu1I2`j&rvHsDW*#e*) zfCoGdH1_9c6j!Q2W-!yqUpazinirR6?4)5RAg&y33zN8D4{T{#E}ghro>Zi-rV>a1 zarTFAh>}ZkoyjDV>#EG8?blGW&m2-$(4f3fs;ipuO9f(mnhQ;qmKYVt_>sOZHSwG) zHsC!#9_K|q8C-u;_(wHWT{Tfy`kJ0bNmFCUvB0MzKIbHTb!^piT`g3yNYs|eT(K&$ zn6u~y#?ku^T`1iZRY6Nn6^@eK0|sW1l4v6geGUc({{RD3JdNYowUvt$Bc0`PLY8i( zw%3nP;usN|D@ z!T<^NBSsf^I-90CZod0)nv$NH3U_HHS?SpJ;001yi8#Oj{WPUJ#RrG|H2}F=;(4i% zR5i{4A|nVxW3cBZ0O?qpg}S3gbquu|;F`G04NqOoE82)c-vICL9J-hxo9IYg%FAwK)XFPa?<;mCAnF5mL?qUoNqN0p`dbm6_jR%JG z0e&6xR5%}5TU4)9RHbiP*RvHvCF-VDS8Nne_#3^uYU}Xz#9kTM$s0+HpYL}DMj-w~ zYj&@U5nnIJ=lE~6tH}O;m@VSp*(z=pDp@Cql|^i<7D4-}fDR9QjaI!s6j9oqX4)Ql zNmP=5^w5ld6Ql1IC#Qa=poSHV1U9;Z~edSe4ze{-%%t3B$fDT~KfbDm`& z{45$$LH;`5pyt`b@t(0m-wj?F{8Q;lGF;~COPu3x600BOuG*r_O-xd|vtW{?z0beT zTyx=#Hath@LhYY6=@|-1-~h+B;jYA?k}66#<&s5q+8Y5kkX3SafzEI~c_&*k^+p{k z_E`^Zf}J|D<1AqOXO_k?Ny+{vP(C?IApIVCftiR?T|%X?{{W>!+wjq~SfrAID}^hh zQWLoOfPz68!wh5|M+diUR$f0<$tURVaPtF3CA!h54aV-r`fHgSZaLFB*|I6%ZF(HJ zalO&jT&SlHF^U-rFxVFZ9++eN^?QDdm2{QXJLoDj%`oHlzv`}zx1gio%G@t`eY(9(%?!sUHp$H|XJAHCyfS>#8al z$lSz6sM!3*v*`Y*9Sv_f*?pgq3+ee$dvu8i+A==9 z^`*1oxkjL|%#n_N^^2<_<>2pM+l52Y+G4I%I4w&mvG>l_Ad$%D8WOJQ{-v@`zppH{ zw&Uh0StX`ul;DH+v5!xEMw&)kiM*-&j)Cy*0(?89a)1I^vQ*=f-0IV^+#{v7=Ae~8 zK?O+%)aN7c)lbm0@l$kEVv<4`A$$nrAfd)oaDHIu;>qFXSzUTEil*D*d^IMjiE0cV zt)eW2kT$}s2?w@Eq1PuCH#y10o})f!;>8HbbtLQhi7s%|QxPL9k|QHI`Nj)fF1{9Juw%+_WQ^z9*Sm$>S}# zop+(E-l2|gHxdsYL&l1F00Df6PXLX~6=z`t^X9{YgP(lsq5Ul6uX!BDUo^k1Dy2yb zay>+(n3#-`?VWV&b=5NXLDUIR6i|~#2#pZ2JgDT8^2hP_*E7XL_dD#cz*+wQYb=M# zjL6$nn34eh0LDnyQQYnCN8ugXq2pv(?ex;dTm2LaGxBVY%ULzQSN5;Wo*(bZ%Lk-^ z9ur!)#$u2E0C}!#@xZhA>vje9fekPi@BTr1YoKVW<+k`OX_^psv?zCfX9s`u#<}yx ziQ_&q-dLo9TvLJvWnZ(Q$JZxWyf+M%S!I14uf-1W9E-|O?`W^41wsx6efc_AZdJ)t z9CtkH0aBu!FeNYMVTl}V$0zH~ws8zq43Wr43_vA4Ju}9;XAaJ-{TjLOqDRQj>si3; zKj`Dt$ix12rO&zl0EM+r{*DTZ;e}6>=0q22ovh2WoJSb#>8pW>H;Pa(>yStJt*;m2 zKg>+^T23&-c9NW2MMdT-*CEZ@${FJ@f_O z=RON`upj!tI5ne1@=Tz*UP8{A3#Pgm>vA~nlDr0Sx0k7Ox; z=GsX<{{XgdHPqJ({-&z`0M(sx@98faOX5ABZU)O%=E=tfcOTDNd>{FR@-ujs^3Uc` z@=3XHN1;E%T0mID0LDGDrDcJPGDrX`AKqYlXMwF&7lsrQDz4=YGDjft4!vpR+0cKY z^X`|bV=3_{rX>62r2gTnZ^jNfPK0;=03H7T?ro}<^ka$QsOq64O&KDLg< zwtQf~>1%i=y=ngdfa}Wmhx2ds*!CU??qm7C&6KrJBHvJP{{Te)0PvkT{U;)gqUfoL z?sN8t$T%Y#B0Y#BxjvdgsOExk{{W+JR0(#B7F`{t*8FNcGTPqnJ_QuUIMCpjS412mVSvKz|Kl@eiqgVbJj3<|0K$%`zYJ zNAl8h{{ZCfNA^y(ib$S{CyqsQbPTMga3dYT9mchksfoR?b-+HAWPKU`0G#T+ss8}G zT}fn&>Mo3r)-_*L{{Vq?BfMu;#inhZH63|DFHYA)(g?wUvg8s5IrREz>3?lBt`kjb zs)_){SBaGZ_a_`<=c|uY4o+a#z1R#oG1 zXDe~6U1J>Ci7fLO92HQKZshPd#;2(I%7VjYp`f_fE=cJJK<8)=j^qQV7~q;3 zj!2ZUk=?!%+c_FpspqMcWu4x!_F;<*ZTv?XuPW6Qxe~R#ZD_tz#ciRr+A0l$63NzRP*lKws-gXa$OHBuc-8n2wtrAizZyk!9pX78q`ZPlA z(S1pDAc0kN-mRYF$pn8FI_Ihis`TktV71L$kV7QzT3|)V48=hWp1~9irybAKop@K` z<$pue)pW_0-35-Ryvb@FEz(CJRNU%Mp$I@+VM)%KxOTv5(WhQndYi;=6>qK5^c9yl zsjf14^2inxjHV(~R*^uBWf26ctfaQd7?oOpMBf_YexP1dsd?iP+j)ZOqEr> zS~Q3y-W00FzydLjc^>0Tl2M9%%7mS@ToQ0xE>$#CVhX9Cl*bg3c}@^W!2@IfIs4f4 z)iGCH6cbj`T%mI_QBN584KG!r=43>)>paR9!M!A42ojS1m-0{i~uvZ4m*1M z^$%UqR*Qu^G~cW1pm8w6G^ zn7LYQ^_8(na0WD*NI@IG!**_XU^w|{l}Ad?bEco}J?_8=|3%ht4sR$-v3b8e64Ue$@2xhzZyvWFdEBwok6D zn7U5RZa!hXTjj`P5H&2H32wk{9+>UhOH_2-qFOOqH1WMG3P$#a0eKn1fsi#(j8{Nr zoPm0NzP{Y)X!-?~nJm=zCaR5AG9}y@o8oNpGEW%x)x%|$-(l!zW_umVwz{zvcWPut z6tFv((0OISk)4YA4j2LIbzjhUWlq&`-YwM?MVR@h%vYVmIod{jbE$jPj^iInQPJ01 zzSy)*sT4^8Nf~lUW@Q97EJ*|o!;z|#oMT9iHu)x|>l$lUPfujEQ8{aY1u7*-;}Lm{ zhus=48Ewp?aX4iMwyW!lLDLevcSvJ1EmxLSkSJ8_Hz-w6jCue*ykySSTBz;)A5m9z zqOOnjLH_{7DS(y~%7ojv{qEbdgWuDg4%J$I+iH%Q8&x#ZEYUz}A8~a}q@GDTNn?^m zJ9}v3l2TVD7TBdopXyGrv0N)|G2897+2^XZnqRe4QKnWf_ze>5?s7)_=ixl_s6MEw zQ_)>1O#?#cV47^kbCO+Dlk?z@!(OP0%WR5hEV3G#WVG(A{$ZCgGbzC>i~+G5xbKf# zYEz_bl@xc0k~@K#f>;Ev9ZM{VB`y27#?W~9k-5@3qf? z^P6b@0EbYObrg-%(8Uc%6GurV@RAV0$p;)B_*~;s{{Z0yVTP(nsbUdQ$K^!`IWFq^ zeFg%O#E?6Ebq7&rOKqaNtxY{eO+=Li7BwUUQpFgk$HkMkzhDlt?5R0=n_g?f9A1F! z>#6#h%?h-4iiRyIPz;ZayphK3Hl*=St!b&uiFv9(9arJ0nR|om{{SsHzry$DOMSdl z7?F(aH1wuFB|>&5oy3;+_TxFw-A_+VOKqf*dXeN*$U!m0S(SpEah^fvR~S-wqIYV(K~pR*Y`Vg^m1M+;xgbGkzFZZGm-%G&u;yWtD0_< zc`3!$?Xh{v4M>5(#?g(c$I+OP@*cW9>3*8(KB=@wZ4{L7PaCR8(@zvw&PggHKN|2x zKt9^3#V&=x-%(qX)i!?&s%mKJTAsdIh}X}6lySO52Mynyr%ZZ6{nQinwXT-0scv&q zwLH9eLD=QF)}Jo_K=B zB=a3#GGU1doyTr*qs4*39I*4{StW4^dVj4vK)6`q>I)bDud%cW)36++cBytJ^f+mp9!k?wPaCxCIPtEMU7hV;|a1W0_r z8OyOw8A%MlWCBXAMtNbJchT*OsbQUDvQyHeau^<|Dypj^r;adG#!K!QJe+{M<38Ea zGRjes+t0u(N-h;H7%L~~E7$bX6q5TSy~0~k_x*F8>8irR@%;2AnN5NmvTWTB)APaqVLvyLDF@W%cXrCO*;=e%ch`?DIJg!stPD4 zB#u81T^!eV!O*=6)O6i5)Rze<>uDfQ*v%6<;o>4Zkr`FP6wX_K4yoS^t#=6gX6j3Y zZ9PprHEl{QJ5Cu^P-i5NeFgwI*SgQ8Df-LwrRv{1FHdNurj@BsoJ>o>3~>oFkfo-{ zAZKb2Ic$Z+IZC9*&Pp-3D!vQiNNF#Wu+}{CENX;<19@fm#~VueZ8^ujwxYDveWGVs zqjqhoBy#1HW0l>LpRS!-_fSx(B*laPFm(7pZ;1B%zm}ZXNBji`BdtXB@t(kW6M@n+&LbccF%n4#X_7uHnj)zA{D#9D}6o&32xuIBM1^$k9&bSsFi#V2%L;8PDPM)0@rn zd~3ciz$xv>9CP{S8b-@jU|gyH04U*{sW~4n<)c!cRt3dz9t7%o4#{w+dYSqz-t$Vu z-Pxk$$;&bLPpLY`kqwS0t&}$Q3aTTDB&kDy0XR{&f!p|KlD77qaDtr)k9w~4JAHA$ zInZ<5BWu}t-KB&~&G8-CUvH@Z4Ii76ClcrahCEK-xjldAi#JhI)6~@4q-x03QDk_U zbTRTsK3gHqPriY#y%fDIQB4&rbc-EbRXWVkK{A+vNUzTMB*4RRc=Xk~Xt>2$O7X>X zN?FxHL}YNdJW_j(nc9ko?9$v(*>hkxvgf$)af$DYGD z`fk%@oAzHr9;Xx=^AhA_D=Ft?Z?w}Mcq=O7`RY;`W1KrtR78>p{KS#4;BXHsk@M7b zWy`Dtl+A7HE0>mHz>c|Pk)z1KBz$0>hz-mzNY0$w?p`U<-6N%rdMN81L!(Nur1P(< z1u^a;*Ery3fvS2>MmcL=c>W=WLexB+O+__NlqwbpWR+v>kcT)KJag`K#gbLio|<}P z-{-vEX3&^WrHgm`y*1c0y+`6|S4kCPQ%oXXE_PaYaGvBikCIm)f;c0w=RuXdAJX+z z?@T%x!Ac{DsEI7%qFERMMm(P^{{Uw^d*eFQrpB!+)(RS-{0PX!qfyE$3al|*i<+i!ACGm+a>MGY;Jqi?WYZT%zD zG!^vw*UorrU@fm&nKL5qbd%!xmD4;wS6aTaKk8RYh@eHqYTJUMRjx8I{yHtW9bXEzWZ%Rs#2{c zr=B<76f%vzWNWy5ew^{DjA`2sBe=MumoC%8QPh-WY9W?23JW6uqn!8GK>m$U(#zHz zZC;G5Bev4StdF>1q;f`mPr^Sf4oTo|NzQ!O`l9(tk;Y7-dPRI3`+xu(9&%3@#)!HK zUV`wx8|)OFQF6J@bb=_>Ke5FbLm6Ul-fkO-0qik@qRs8&agS3jn;V8zDfBJ-joyRG zy3xT`zG!Kg=BE;8U?@mzdS~UwKKl9kLdTte428f09)n$#Pu1N!Exx$ai;);H$7ddq0M#sk|ktxU>`W^-R@trI}-PqL8zqa9FBm2OYDF^Q^ikyf&xBn*2*2 zowv&7ulxqxF6ci-J3590nya30bBr!9eUCrKLGkVK)prb+e11!-Poz3}-xou{(p8qO zsj7;GYKc~^iV9eK;V~H{B$Tkm&^ZHA@c4Dn(AJ8HXuAG2*jHm)sa<&^oUETMZ;nXO zo;c)^O&sag(n2hB@uL$rn%lwb1_m+toe%VqZtELr_swKHf37un_>bWHcM6(XzK}P% zhn}HhnwIBp`zpuqfE`>h2eHUF^u}}_(*6^5y$4uZXQ{DBBZjeFSv6V#p)aLMO>q1Dh^?tCmb9GQ?>E{C6cYlakjKb5%7tCLWE=t8+gDFR z_2){#)3mnNxm&I?MrCkTrY1iVvjMXqiNPFq&PJ-+rIgRncUn2NZ-6q!qlF&{$;We^ z`mH*5r{b*YN@}-^Y^Mu5C;*n)2Gs-Hu~i>4tuT{|uqKp|*W&wTn(DV2JMuw5u!zkZ z6sYSV+)FvgW?Wi;9_kBZTeLLqsS3eATMru@+kXeHy=(rU@e8Ky9Wim~5^fb0l`;9rByop{M&SEN-JG4R*kiVSSv5G`#})AW#%aBl zui{ykSynFutdF>%c#tZC>#+9q{yL%jPM(6R#VXpWi0j#;r=^z*uptJXK2(vMagW1S zk5WW`$;lq|Fiz=63LS%5z?a zuNUGE{{SL?Gu3H6rXL_j#MwXk*L9O@kPp=o;FLK303>~X9dQcD8!LQ4n>fhH*KT;F zQ583a9br6#t1Y;qNTZczKn4g09Ffkr#tXfAQ<%)rNP&r8GMXs}{7Qdac6<}+rSmzS zFI(aAA?1}tP|K)1j!5md8jui3v5J+akf7u^jN|hIAIDl7&CMz^9Z-Z4+`|lUp2M+K z1ZjD$mv1o6mrCI&{qa*Ke=v31PvMh1EafOXkmEhw9_sm^9yR{#ViR zSMxd5nd17$y)$nz$-J7z0~lSWVdu9x^7{V(=AY}a>--np$M*hgs4BnmDTaUO+xcnN z=|efDr0D4t_AoUYST@u5VjLYMaET|gR8>%u2}qBf3HbcJIB-uT3Gbd%{D?X<@kgNg zx2`3%#bLZlM3m98&g)8XAaIx;3w&7Gat;S0N2FDjEa-UZ--l}bbUAGj`fy{ZxsZDg zv`x>;;*4qK2TfjTYt40CWLB_2{k2rNk-msB$J4$wd0Rh6UZ8rDHFfr)Ot4}aBvs&c z!#e;zgGSW80@7_oxYn0m-deFxbKfF0UOydn-dEW2G15VGXDwCRr=`jN00`%o18_fK z;r@j2u7>a*rmyyY3a@o{t9+KqOQhynTAP7de>6NIG%FrUZDu0`fIUWZLDjw+Q}mBS zv|S@XYg($^)DuflM3VVXx;EmQi6OWcAn~0#sOrYO+djozd6t^0I!Wa)6j?(q!U*^{ z8%8#^2^@AKBwS;aY{V*4t*Dj_qa_Av+DvG>K9BMV+Uqr7|G5_13sRd>AHUj!JSFXyZ9XpzB{SF zqN0;uABB8LC&jm^u2##8k z#JC>d;!6>8_0x zWa(1`Q0@j=a0ngneF)>Wk&nSt{{X6u8GmUWH?>0kHgTo4+j6~BH9eY&Ta2lV$w`Sy z=e9sUEpJm}>Pi7L)AZ%;BLLjnsAfTsH*ni=>D*@;>-sLA>6WUFx-Oox$5hBcnkp#c zc3hmHV7V%A2_E2TRV7F*6^TX`n_yr(nM$5J9zAi6d+Ce7((55I{id7gkB^zd(9ze_ zph`P^Y{5`B!wb1p$96dO^*GaQzyKUb9GnH%c^>)fHQN_$w|cqe11eQ!rVWj&K#eCC9`7_<#jY8yZ$$ z261&68gPEmDMsZF#Hze9EWRKdDLJ>x*njCG)fd-p@%XLOtx>TN?h|Y>Fa&_aWOME@ zuFUEFoav|Od$sPH!^#?J>NP15ht7>;%W^j(oUQ^n3&;m){{ViyrnA>p%~118Qx}-$b8VxA27XGY0Q?5MtyXe2uTWF<-4Zy(iHSUg74o)6 z;jEjjzG+oy?5NTFI z=!$Nb@HVNU7Jm@BwPIr1Y31qFsS%K&h~Bd)Z%#;ERmhwbGTzic*y;OplVIa=HW!~_ z-0__~qqs{XUUgN5)f_{)@{c~a8E*O~ymXC*C~j4~Cw;2F(c6(KD&(r5G*d#3>V>?m z&ASdjIBo$4-w_j0z-{VMo;8KjB4?9mlaa!y!6YA-_v&tSWpH8&*(zvcduZRJq6*W1bH_m>Otp*K1AQOLc8jP*g)FmdHp7&72%M z@qynwk8Le$sI92Fnp)ZEw#uPA)?b92{__urfHV9wE!(24hJ7J55u}n^p$X>8x-^EQ zL`nhsrLYeqXIoR#-YOcdX^OlFRk9U^rCjVl#E_wn9+^4QwUOxPsp5|9O;jbK1>>ig z8BqfqBLX-8s5?)5`s*}Q7Kj!(`hc?u1dIpSFqVt+`3Y0VkebsE@FC@i*%Bba&`d2 z0B8RIft@$&D$0Mk==$620NP=!jYCZ81J5R8(DKAiaJ_3yyb;UwmN)GOIv}UquYIs6J>f-ZYiRdCmETG6- zk&ri^bB}Ctc*dZhu|n2$y4|l!O3SpYEHk-x5Pfn^KtDsMio4yem7OUrHMOOW-zl+A z;hgAgvIlPRLkX!$g0QH=ZmD#U*>k}FkO?Gb1op<1wq0tP%jUs%x(%ldzNK6f#x|xm zcF(_XKDC-(5GKmGSSdN$Q*iXgM|^SHMHa56mFnPH8i27V`_$YY$J@Eoy6QllN~+mX zDAuBysiganG%<&6I~Ci`PC4h$eFrHtM;J)S^LDd^$6|L8@(Z8{ z@6`@wy1cn~@dXlL2s1uHkR1N%?|u(;8jYsB$ZpY0m2-!MytNeTfXcnw1fDzh(MEOD zuAyK`3MgZeY6xoHRwxYZCg7~+w$>Q?qda5lrD~GH9FGL{lI7WBSm|r36uQUCxZJF& zq>OXUhbu4li{z45h-7&tVp&s}HYoT(K8GCZ*GlV+9ZSnyNhB^vT)GfJAG`87?lh@n zk_}TOE|!j*w^i(}ro2-LVvMRoaY=^Ujkv-Q$pB>gokk9T>BdTTif*ThIovHiTAoic z0H#$&2_5+Z8THooYHp!=s#~Ax*x{yZ`BBdpA(RurPhNkPw6DEIChEGa(oR{v&l>z9 zGk|x1qiPR82dV93{o-}++TNF#Y(qI#hrRtbOvY4MNZqd7V)pQ~fJ z*_uj=bzQnNc;#sYM)5N%F$i)!*yQ?SP!^k_R)E(rwwVmz+%}ITy@J5zU9KQtFpht$N-ESdW}Zkx?cBHJv@~5 zx^)oI!Au&Oq945)09gEaEKW&2{kYNOmdaUbT+F6NL`5EN5tSbiCmB0&+qd-8gcMf9 z={f69lC+3Qw1sf($T$N&+71Jwx; z`X8rYR&W+EVl1)_=W><=kWT=7{c))&yhEx==&0oAuAZiffhDCLUA@E8hAdVX8UfIs)yt8Qg^5_6`H<)Rqp1t;MlIK*UbCky5m!pmz`kuF ztc0(c!b9#xHiCX*-&UZS>RXpKhV~B>Ei+eBL0M_E)6{v$5@_h&5~nN3_^<|Z-{tS9 zKApc%+&@gZ>&4!*TP^cXD>@e~8I#H$R4h}2@$Ej@QS#G{ueCj!sOM`0G~%5$M)dT_ zPW#ITB!*yc2GNt-zpl6GN*kr$s_CJe+Qep|yymB*jhIHMzkWamz84@KdwhptNub>1 z>G~ZbNc}xo(&Czq<4;y9C5|?do^(5RJ~9ud40+U*7ejdzkFvAQ+`8GXQ90zrsD|?yLtgw0K0gyPxM}9{Gy6}DU-Fk1RV7Jyw6$En_ z)Hc{8QqPY}dY*rVJv0qZ)ICJcQ9AXNV5LW4g{Xo>X$}gNMpPr6!;ag2nw+QV{-uh- zw;8T9L4)j;S))fTSK`4LDmcd(Cyv@bq9iZrENgJ0zs=<=w&MVwD61r@tOz{ibMW>f zoi7a68VdO+<+aWxrd-S-9$;Jy2as6sgh`$b4Z6Ye-uP09$~=*47Pa( zzim!f`u?^`nUv7lDyrXf#lLL}%5%>FNNxwX2O2M<#q~h>@?FTPs*30fNw#R#1tr0oqgFU;B(pl!lmS*&N8QFZVH?|lk~`|Yj=Kf)heGzcs)3OlfEk}*+uWS` ze+^C6R|)L25+ICAaG?{jCSN-yDx+>kB?5EnyHTAh)crMou9k)?4ED;#rgnxY<`a36 z;D8hlPzWVCB#t;5cVf6xeyz0hQhP+>+&sK^Q!WDWt&eRK_c>D!d%vaaQ9f|VqaFs9y2 zaly5-$^t+bCxecCd+6Gd=F3xyT{$eN+Lm;BxMrx5s9+?BRG9{QWfzZ!*!ujAq^j>1 z2C0SOuBeVWsSI(f)r-G!f=I~N!{Jgn#&Ub;A`9&eJp_^0THWdf;wB9u89g#W$Uy*p z?f~t`)J-o^RLy+yriW!~!7D9f(l?v`#iM=;2Xa9avzLvLHM}iPHi1l)$}T~wE!|m&sMHC1YG2mRv@MW0od`t9=Z*x zri!kDntr8?swm(AX)5WN6iUQyJIqItdv5KH2R!Ohj{R+_tynEq`&3fA1!9EDEHDSa zC7W<3aNy(jibf zhFR)jEb*-2{t9LTAo-$AqthX~=Nt_SE$;6F`va$FFp(l1RxUs_aJ^0fYYc6*COUqYc zs-{p3gc?w)=XO7Iw7K3sp`JXX`UFtBL*MZ1IG=LJ#snk#;;C|yxZcqQC3y$f*NP?{K;1Z8)#g5 z`{zX(l-Bheye>IDk)GD%i@vv>jx654&&Izkl1p07YJwwr+A@x9}yI6Yeg2^KndFf@h zdC4S%j!Dl19o>iTbIzx&eKl8Yp@s|PY?mswohjw1g_<=_*q1I9MtR%F#|5xB8k*@E z=&L$eE2-jmp{bT>;f=-$M$)lPKhfK$$~%PhJ%4(JrW9BxtB}(%VoS(j8DhP#ici## zHCc4{WfbKVW>{y*7Sdp}70q+G*4u63Y5vK)2B-l`DzIMM@=4%&{yGWq8Pb;1b!KIS zKEo+1kO=*ojQ%8X_4??}>sd+B9eCGzIyvO~Z5ksI!;ec0Z*+R{X_jeZjWVn0>Z*IUN!_U$9Mnxs z9LVFGH`$aU+)VfDbp^;qdPeING>$yH@`F0F;Y7#YuF$yA-k7i_5v&g;Ct#YMb#=lKm=-U4`XE%y7bT~t$I8hK3} zF+Gf>PWDmms&?nypW9mFHx6h-qq~67Dmrz7+u?g;{{U!K^WkWhGY#2rNC4nrag1}@ zLU->7`V*+0qP~%8=_G)5p{z29z&{Fw3ee;{?v z)6m^%>kS=><6BEnBgax?qm|LV>B-8Ux)n=%ah)7mgc)q!l!Z)bgVM2|in8Ncjf`oPmL%sC-N4UZUz6K8vWQsz<1Avlp$TjiPw&u`g@2l~TFhON#nUAYce6k1)*g^$7BfNFJUEZ{`zm0v2P3?G-7^!&7p zo(ObYvKfBMF7in%($x(8a>rKeQJ_$$flv%8uVo&9eFmK*PBDT&`D@I-63(9zXGv)= z*Dyd=PT1zog?fK=cgP7fN~ zM*M=!`RN=myF$B<3g5`<9!#$z-7cf!6%|XN1=co{zSu9e84CrtKq<>4h^&C1_<(K> zG24%>sT!}*=6Pm$1^!aba(7X}!}v@!(yWN*GDjPq^OPN9?9|M1X&^uR>}y7w#4_pQ zvI4W|ac61dT@GWY{T;54R@E`xVRmr9quYp#5;o)nn4h25NYVa|cW0Vbx%D-!iWsBw z0eWde$=q#KBxLY=6Z6+m{fdpaG;nk5fM->|UUf|+m#TkMNo_+*9Xv8QEw?+%;e&c( z03CI-J|~wxRgQH=EZ!Z0F>;D_6LftW^yf-h>`^JJ`z#4aSjwVOpl8e}&(N;y@Nu5R zv|y(r8m78)tL>1~tTdMggK6GY6Y#(rhgQe5nC!C0w8Ae<#!D9GYQI3e5-@ZNYqnBQ5=aRcrKw!fHzI^)1mJ`@{MTIV9G3s7#4hQ9Gx6JQ{lf_7_hxNR9$j@8DVhWFNMyV zpAR~^o;BaocY^zVAhc}i4?T*5pG|f&h-xH>1ueY!u2EX11#EmJhus6)8pM_=!_Vq| zoS1gzBER(xyV-nNcxAUFIr*HNeiw@>-3jsXD*ph{!x1)r1 z^G7zXR&@OFNN8^EDnhrGt4%VJdu3a0KZw^$bSH`49d$2G3P$Q$JAK3L59HI_9buWk zRSZJp*1w&X(@d7Fv6d+*&cozfyZneHt2q@tD@?dA-Go5$ww@S z9H|>_ZJUPT3FUhZ-SL7o*2SfcH@OPcYqDxmQ~VF0DSqi?%P&+~WkB9p*;1$C#&O55 zt~4EZ@z=rY8Wx|eV5^mKrk>qTEkwEP$P0n^k)UWS_L{m%i-$*wSp*d{vd+}N<+k~o zw+v@?)(7X0mWFzq^bI9VB}Y?Q;9BbHb5SI*boy1Shs<>>(rqkT;pd-keL8z_$8-D) zQO7)z*#*zU_lh1o^uJhHt(Lxxil(ZdRWrI=X=H#BS7IvdZ;6XB8Oa}aIw!wCy;sxyQ)1})tL469UsrJZRj#PPGs(Yum2r@&#TV1! z_`7a8ZX9vR6*~LGvz-$4i_PcRqpY3cAUt=vtcNZmE+b4p|6R3OVH%^T!&Z z+Fv?Yqa{?$3nCMe3kd%JE;;Y6it%vV>3kcu-t7KT)X=`>YKTmV%G(vtjE>@L`+_yi zSNo-^u3<{_i4{bWBmJ6~OAzc1Hv%~sJdA5j9ZJCD+UrGSgUcAl(*FPxt~wsHPQ4X$ zp!1}LqQgR2X-bHO)8#OBZhjJ2U~`?`+O|t>#QVsc%~ zS=Bln+ga8m4kS|yn^-XikNjs!)1$S*ww>NbQ@M5+!2lEQ>~p3t1cF7C7A1yc9|*`G z`i_4+NbLr?2@b-{3}o*k;>RDD{#w$|frM)_+YBi4p?Jyy6lF;SWFGtyKZdH_hKsLj zdOxdas;`|nOIRQ@R`;NGl_024>*mVLUkq}9jOQ!6Z@rvpVN0V|@54<2jIWwNBX&sx z(C0jlajN>)(UdfouDiNa%?(vedn6SKv3Y2Gwk(C?ISj-R`#^ATc+PbjNigHoY0!3$ z5*Nb$s-d}EqmI64qf2kvDn8RJEUAfH$jU(6+qUO$R^)&<&~J&h`}qAAy3KA?pKGBP zx-)3=q>ZYK3m^x~D8z2hILSYIupkRwD+C=w(>F_DnzbjnP)|r|0;E!}n4}$~06X)~ z=gz90s_^{u*XXh0G=}Z^-a45n>Q!Reu|&{HirYaa4ttZpBW^M|((=hm9Gj&5C~R+X z^f@7^rw&xM!aJil1$}wv=zkr1QS#1$W(L^#&$MUy>)PZF+K#7_^l$JYFA-z6b#I7Q z$$E~aqB-hqi2;qg*^coBQCKhD18zwk`P8per|7}q)#jt3>#r16`ukl|N>-lLQzN8| zs!GW;a&B>eJ_cd|=NZ+vW$^o@Y&~Xr`iNfcRr3idkQ@aG<6M>(W zsotpl8hQXxUOKkAyR9p(0t%~(v9qGQHA5(M}hx8S9 z4xH%5xXEkk8;y>l+A3t;$po>@D;(eu3o!Ud&N$ar+P_xQ+ToVbPi&=Fq5z^>kxVK( z0Llp4k8`S;_Aa(-O#;|1RTQ+8mMeTvD%#_!mwVHMR}v8Xd}RC~a5n;dbUR@2SH$a$ z0HvG5kJc5COwpy%cqgHXWK)H60z&Rvx%~|Jlv}H*fn;Vq&&IcM8>R%8lIwQofLDtq= zKT*Y9Sm{$0&eSRH6j^P%%&~0F8MzL*IPdJf9|IQ!Ut#IFBkNm4bX1il0aYBc`N%>d zhR-YkARJ>jCq1*RtNK#UU2wV8+^J=bs#?j5e%yutImy_=+tb%qE$_rX33_L)I)>d{ z(-+G$_LQOAQn!NqJEizf$JR_04IuBRhgoQ@XA*lj>nET(0zRjc3Ro$ zCb-_ zl<3OqwZg?ueWsNo74(lf)b9eKMwA9kt-&Qh+;RcVnG92sZ6GC)Myy}_H!Vp@^(v0D zq=rVRh8YZsFux90gTVvoscxOQQPjm#TRc>h(9p4M@zX}GNk+l~F}cVbas~nU4M$dV zh@`pxskd~cKT;H$aU9UpZ;?jk%EpmNltG5uxl1z_JR`+V_h1#soSkgC?q9tEQ)C>SUxW<>Sf}Vq>?6T6B%}qr-wG%Tg8<|;D6Y4OZ zhIOsJ-G9FIGW7kP*;O?~T*N#vd=DrGl~Q{z&)2#1(PvorGuIt9DPyaojp7u>7Lis( zM3EZ~GRiVC#|$_)IPIdYEfn7%2T&7BUrh*&qs<*Wt}=ONh&gV3_XF+iuXNoNO=ZGq z>FR1BmIPOfK!mi6&Zrl-Y$4$F%*&B=(BzcUbhrkq`X|UX9wcV?(v=t3W zQBO-LiPYhhpAq-@ha>US*q2h`*|iN#>ho}hl9H;TNr>F6@~{X1$>%%`64Lbl0Eksg zk)@$!2zvNfbkTp+|4JNCVh@8m_E9#lzDbBhn)F_JvBUwOZBuO)4 zc~UY$1CBAPXT@%`PZ~TV>HfL2^qN`e&DpKc(KK|`7!kqdyYFQ|v;ue>A5wGk z)Td8eY~43QUs=@<)FiT%dTMk+@=Dz210w^sCjfEpqTZSC&O3Y-Ub5<16LPU!AzFGn zUA|4S%^==dIpr&|5wU#6IV?BE00fdf)Ltz3Wz$_>a~O0}=6X(ZY3 zHYIjq$_OAFE^*se2(GM!ZCm0^aT3$oXriX1lmsbI1jhq70CoePo}=OM4*dd%rMM$g z?PWCS3~0Ri00u{=;l{1m6TwdtJRj>`qOf>BaOqpMqTlDiQ%QMwp?ZQzE3wZi5EeM> z2h3-g%VIBt0rSUw7RZ-nm1^;R?Q5m`B(~Zbh=T?Vf{ZbcF^)fYp4^;j#p$k~wB4(g zy2W&oK^R4789-z?EONcnbKG}10N@>Sy+Tn6I##EeXQ*XkP#r*2ZO3R+-25OCea<~K zV0e3Cjji_!+<$2`G*s|1Dkk)Ho?{jq0uIo;;C#vK2BV7X5@C&9#=4eMoJ*MuKMVT$xvD)IF3>W!hLzj zUBj^oeGZh>kr9?Ryxiq#`r0T38^yMr<|O{# zl;F8?9G# zrf@T%Yc6WKl8Py1UH<@WkK)3qZMkM7dS?Sy+?|FMkgc-wUriSM@v(&+vz!x?k8*RZ zF3#0(&{^C{W~|!^q>Km$EtymgK!?|{I#s1hk5kQET8*00@Y+?l=03z)SRvdsmSmBpI=Ek z>@`--tufnLWO{@l7N0whIAAf!$RmNIs^EGnoD^y)U8JsII!TgUwgbr=jiJZ#_tO1A zKrNG6Xuj04{gMftrIkqxRh71pobBgm8TJ~g;36tosi`ZHt?30vl|DSTU9o#IoytJ< z`V;Sr4O_Z;8ov;!qORK`B|6O-kZ>Dr?_TG(KI23e87{ZU#oDspQe=`tEmXAV7B@^U zI}~xZJe=c^z&a@C9-o5c)z=%;>dYykPqP4U2JQUu++YqqT4p#~peHH?I-cJpzF4J} zc4gf+j6C>~2=suwh8g?;k(_ zInc^GT{1=P2&!VHq`XU09eniFiIj!mh_=EJcWxhdoR9|G)Q~qKyu1+~peNVQV+he#_*=i@NtMh8*iD`?-RtHuQ{6`IppNWCzIUM@x4&_Fa z78vc7R@#}N^FUc=^JJ1z*(H?_ggD!`AdKvL<;xgZ22MUOauu*Mf^Y#Ir%3eWO~AzrQS}VbA(~i`DY%lMG63720l__h z;A2Mpm24I5x8rz?c@>3Aoqjh&epm$YYe1Ykck*SETamhQST_lwS zqaIwW3{oLHC@vS`T>P`nK6(+Zxzy8MtEyDic}zYwq=Y_Hk(>;9b* zO-o;LmO$<{nwn2BRA;%s&VA3zjS{}V(k;pf;h?LPWrCeu@IanD%tt$LM{dIy{s&S0 zLnWpN0#H#=LtnUl$V6An4aP>&GmWj2$G)N|Ztf^4ZdT@`Wni+$He`_|Q|O~`+7BL_ z`()~7?;N)(IIa@Y)BUzMw@VygZDWl5B;erZIL99R>eK8=M~en2?DTU_6@TiAXk?K} zJ5Z@}f-+d4Ipf^>omd?iLMi%u8GN|i{wPUMIA%F2zWDX@#+q4Di)?}!`VRfEt#18Med+2db8fd=>l$jer;3)PSZ&}l5bDEl{h(Z9oD3Zsjew;? z>z_?qY2ta~xIC>oWn-s@1ZSRk=hS1rIpaaJrs+X{YD#u^GN=tgg2XeaaEFc$7(X+q zZkzE!O0Kdr{Y6DVKxv^SNIc0hsf=$>RGB-0!*S{~Syy!FOO$d?EymuyXxy>|Q6M9* zAdHjP;N);P^wq{GDk;g`l9n!@>&}MhJ4G#31tiwOqAF=-kd2Cgu(B0AXD1tv?vBSo zcV4>cnoGq+!m6gIt$j)~)YS01#z|1TE`9;<_XpQRbd3#fPkyAItkUL@Af4iQ(8rJf z+ri1;e8=W=jU^f+ zg6Vji&s*j?LMf0a7-9e*e1PQS47Lv#3*G8os@YL9!xcX0q(X{v2w2V!elk5ix{>Nv zVyp1Ea82&jBuu?KG7D8}-y#D|#Shm|OwpuCcnyN^uU`28m10GC;Q9Z}q$vp5z ztFH?r3DU(182dLyLR51!6 z9BVs-@`JEuA%0$2{vGw1N0no@@kq36bw-P)u{8~@rjk=6yXq>IBGI#MIrs?&z5)3R zXGBmu#v z^X;m?#H#A2x73xVl_{2?l9`LE`REsDlL~kQk}%jjXV*Ftsj7-+LX(wcR@$+?-a_X* za(zZU$ka9Vwyu7cG|{s&$2$@jkl5M|N9Wu7wM&+`CqzQpEOqzAhMLy#O*Hk`Up0aR zA}9Ep6%`fxB1l~82qG-0b?|T9nZ9JxrrqGbyjpl6w4K@-maFBjPpE| z6%uVo@-deDGCp}8`nzoPoeyb@&U&WG(=fx-OIZ@J`3`;&@*l@b)XQxJi=IHfy`i|$ zbU1sAsFKYbijg77MN~b{VopZ`x4yLSTcu%Jgd!9B)(j-)&ytF+N{jPYFVR5Y$+i)g5- zNXr2b85@Ym&l%F&enWq*rQfzi_^D}%&(R4*Ngm2Jll)yr{SZ-|p7HDag;~ zjAyo_mI}DY4NW=|?v2mz)PlS~4=&|MFa)tIZJsG6bUMFn>;AOb^bayx}9C&6%~WAdm&{dMNN&_yAD-KdsP z-3?kPABN$jeHD6z=llrOxj>+JVB_-*ueD_vDo?Y20QqBmwZB=$ML0F%c6YL<%KBL0$>EeKF0(%~~l zNfdHy0JAm`MtgEjqwhW%(A~O`FBjXbJrzRJtvP}XrPwPoDP~}MZa4u?*V9I<)V(o9 zEHNywtfWaTbu4P(jxq5e89+S<$j5Rt*>5$oK(kwG(zZ4q4DwE;2hVCRKc2m3hIkY( z)=Zqs@HqOP5}cb@xJ7#>g1tFi8wjiFq=Dabk-O=jgj;eFthpIe$jCf{omLZgtJc*OsXa$lRJcam zu!zvcc?XmWhU`1*#^mtaxaGEdG^`e(21y-P&|lXPps@(@_V zT$=(B+-@1q%eT*0lTDLi$tQpC7|Isnl@=>cNwA&ZdiFXQ>iYYm*`l-ComzspOqHj~ z-LgHPH9<7FZ9(`>NxNkX=Q?|jJ#)0xRB7k4 zmvcKYa(-l;O?2m3N7A)YR9o(|(Z?X!Bowo}ODgx;Lbp8g>91Dse-4x6<*e(?Q)`Pl z9-pdZu=J%xq8KD;>+2$vNCpBbaly}Wc*ksKM16Nh8XpvHmZ@rL?z9~}aafBiwFr!pNgx~%B9<%;1_>D% z$EKSHnk#FOgFLb2mBtj`#?G?8TgCgp!A~)YNgmr#D!PpAf3s4{k?ozWu1V@kdo-~| ze8VKTZp0~GMsw@O<&)c8i_%>~XSj6NO;HJ{*0K!87ItS02P*4D+Vqzoe(Ni0NmjsABmLRJ&CSjzGh)Jm6#l#(Nzy z8ra~EQ4_-%yJg``;`fJb0z*GlD;HwoXz8SQ`97?wN4Wg;BSqrphBDMkNWFJ%X{p^2 z)W;@Khzy|o9-#jK9drCtoeq`NRWtPEsyf}+l*cTPi34X23~jKS`jz0G{<>C!rhGiC zs;jED{gN8moSBwujJQ@_FvtfO1ac1<9-6rLq_WDPLBmU@uWi4wj*y$Gx?-x?_Nr_3 z6ROC_OklS-=Zt6P_0>1j{w;K8MEIL?pst4O&vT;vV3O1MO$^Fd2HJ)|#z12rf;c(H zbC#6UG*Cqxjafv>$;_0KI`3Q&oDqgO^amaF5!HPk;pbcZo(ttI&Z^(se^mXpClGRs9<_b%#ww-6Ea$Olg z0G*^@jFNdg@u1fIBf9$GWVl%CYHd6wT;lF-B`?=10gU19AG=FgY9{e}B z)kd*g`i6j^0#zir_Q7co_Q2!QKa*)cMgEohNvF5)_s@P9R-IQ>1v5ea04QBUG)xLSaaYA7VDNBc z$j{eN{ZH4OLjD|IyzaECaV5T~L=scdyA^1d1um#L!Nx{DTB;!MJEW4G%UI%8LI=eg zw|{b2WB&jhw4LX|{+#LliMZa9%@i$3O7kf&?K`o7jIs42U55DO93@_$PfGrlekk;a zik3>)u9VS393V}Y*eW1U0bV!*1A(g^#rkH^;S%hfO>YsaY+4%SR7N24%x+FHP7fK^ zFU@9={uQ@75IHLm(=lP1Nj5DcihG=?7}j~>hgiw4xBNRsh~;(%6*m6>06Lcc09Vw9uP?FQrI&P3)QVcvIR|J|0|kQ+ zS9W3Ycy79}6)F(1=Q()4}E*TdzQ5x0ytnsPbd_SShuU8nee=ww_M^s}_D z-WXGLlhohuFHKclJcJgyQWTw5Fe6oIsoEz51jZOPH3dh|{R3%|6uo#l*O<}2X)PC0 zOwS_v;yH|1KHm}33lCcOjbrfg+h#p2Z@V=tA|JN3(b1{^&&I){Cnx8qitiG9Me|rm z;nk{Nt-yaZRnxaL0c)fmqV2|;{1}753$2RlUlYXzMaJ0kc}!OxZ=92rUA&x@1B~Qq zfV9igHqNz!p{$4PYg1f_`piI)&p8r+r0pjoX(MW#xg?DD(~Iv>c#GE7`hJ#@$wOtJ zil^<;M?hn%oXN1LCwzg}00tCb43cxkg4UAV2aYpR+U=JWr>2}bNnXBHQf)-u(f~^C z$#ag_Iwg``rBXV-rfl~=cMF_#5{tG4G6x5qQbg zeIe3j!uLmvEj{uNHnx(5WiT=$lKEv&O19Ff#|41M)p2X_o2RTk6xpcgC#kpGHkjvl zY?CynXvReTQ7zA^u;Uu0JZ9?!>Q0mLsg|x}mUyI+NvN6cH^w`FAwc z@*3qL-qBYfoA*lY7*@e6l2>y`U6eWejMLAVl=Di!%v~Z($>!yd`+_|tsh$5$|x!ldCb5A z!5oJJeeR2@ zZPMPa6*aUlPaD-n?vu!3Br^;)FvMrL$R|7@{XX`ciatmgzzh!OoYVvsF^Gzp%C;onLb=VBvYkC%@&TIYl&vxUH{h zck^H9A?lvAvdIO3Y_VQE%4J8dNbw8JQIHfw@cd*hTkjrlJ#{Z%&^=REMfU!jTiwdC zYI6fMZ6BKL5g!_gg;bOb3?Gk?kWLBI&w`(&Pfzuih}1nJ1%%ow?iHqj-3<*QMGuj) zaFSkFw7F6{@ICT%H)-+W{o)*bGi<51+$`qp1!;<=DI*cdBmtvm+6Lj1zi7@d4nfY7 zsm}}$d1U_pNnhlN2+D0iBAlz~9<-;9ucxcJ4uacpq*Sg+E9D=8y(Hn`7Wt5V(8{vS|uU;&YQk3MP7QY zUbnMXttDkVw^}-zRm23QkpM)6mm3Ih@h=%8Zy6cI!OC2*S#iQE+55*GQ&no}uD`b3 zs%rW(q=gkDK?S0U)hz^a%2k4yT6JGFxmDbA>+g*h_0>pV5Iw&@Q>8T3wY?#3 zSfL1BqU^7qc0N)NProNuCyT1^czs7#)0HfR46&%u*NcT zs+xnT{CTw4X(?^@Iq2xsm@N=67K<(c46+RJMt!;NHF3o0a$CvI2(jt^07b5=vv_AE zo{OydOvgR0N?B>%IV4!5k(K7DW*mnsu_}u>`rE5KzA*L=&=Iaqx zRnA#g?_hzD3WM_1!*=mM#ft8pgh^R%wocKSdWl+^o#U-icMt~)76=`S9#11yCs*~= zecQt7%K9#<>WT}anI!uK4c3`f7G~P8?L{P@9-Fi2yG?q0id$L(&W&#DaQ^^^z7k!$ zG3yI;A5~lGt=5Z@nJFqh(G^6JBB%@RrL(*dAUPQVUDV*CP|zFge@ZSM=~=p$zs3)p>v^| zr-T=Zo1v?Nrl=lC6;8`^vO^w1fx?f4PZ=YQN#oO0^tr0k8~X+gxC457wT zxZ|HesH&=Yyf1<}`TA-*b!HpvP5Qu8IGbqzlm{xKcI=#Bjx{CWSBiHFhgwxz?pBIo zZp#%Is-cZyF%>N1a|)Hx)Tr+*+Qblt_e){@QDHrm^5URI)b z>fs^k;{)%j5y?2&>~o&^&q7&mbzMDjx89<%)XO~@$6E?X8EB<3kltC@+W-Q`BN#jk zfuZWVWya-usWi~DQ&6;R_OT}4DVwsW&J<*aIOLprXwItYwX}B|Y!c0Hia6RM63G_L zt@rR;i2|NkxzEo@pAu-e*3|t(?j2bz->2{9=JcyoJz$zq5ZoLV-tMROh#tCur@5rJ zi!_n5pR=s8HVHenh8zNLpzt{L2iH?e(;YWeSxp@s!mg^OGU+8O6QY1wSxT-qI8p)i zB>Eh1M(y!YTYCQ8agsUO$4lnOB6nT#qBsYFz_12FNx;tEL!eT3?FA^u`a-xUprm>T zr;@HIkQd%0R#pUZp)tbg^(xP8@ZzeXK4hw@#A-n*27SAc-#XK%YitusB}KNfRf>uh zSp@rwp$NosFji&QSumjf^AIq7GIVQ% z!Et;sja6ZbtZdRN0a8QE;$eZjvt*A^oN_tmPcIi0x?Qd{Rof#M+DBvjgN&GvJqn?ngYAb}Zh9I>p zaFvY@#5O1ddJ~-JHpwZZsF`Vs)J+UuXNn1i{3w6gajAGNai6o5Dz%cTL+vEVW5tex}+U9 zK)$s(@+ z7Rvxf2R!3a4?|52u_b5~Neo^-BWlV)#&E=f;AbbXIXKj9J_zF|^1%3Pw0GN`ZBZ8+WVFUT z)O4GWt~g*&;YrR2E4$~<0FI`TilW>lu92ReCD|X_A_heO42%(ycm(8w&$gagX#W6I zsw_!RcL_hnV0k==BP90S!EkfI0CAC>JZR#QrD$fJIbKD~s!7}xhsFj7#zOE%=5;o% z#cqAr4PVj_(^~2-u~bf?HE9sKsaGw4p<9irqaObNT~<9s)2nTg15nVEOvni;+Dp(fzo;wT$1M$h#JzGa5Mbz5iRr4pDL4Y!MZrj1eK=%GQ z)Jl;zHWN|6YI+l=;YtZHB_d&b%!0d$u5vJ^;ox(gF{8>W9bLlF9k!v`IbJ=%8gL4> zMm{v`cpQW4^VEd}Jud26XycV2p-9tc2pHo4g1J17PkzAX+fr~rPjb7-Ju()6G4m4` z0|W08PayH>-vdin(snjkTZ%yYLTq$l%ElTrb&M(9=19jaAwHlFgnWS0ZnCUc`j@BT zP|hh;Y6_`d@=K5gPBXPs9Pl+IdU|TQ+IlsQddo6Ks(>ik2+2P!py(&AD}{Gm*7-6h zMUX=qISQaC3Nn2LLH_{3(F!GQmU>~;^G`FSBCI4lq+|ec#eWh%Ea{)>${1EeYn41v zs^%$-oMWCbj{Gpm_Bw5Gt`gbk3=ikXFa**zLD&>yJa!@T&&y4&YaK&SNj_qo=ALO1 z70gK)!C&=@Df|XbGtOL_<&o2*IvZ3~u0^Tp-ql-MB`l;=h{?(m@s{*cj&Zl&oP6~h z*QcwG?2^-&3V_*=v0Z=@CJ&=Ch2(t3lDSpG4^OL8%N(*)V435|eXGD+o(_F+>NM7v ztk&Adl^Dul*zdfLGco`G;NX4Hp68r#k*3F|AhZ)je5b9vA%w+EM;$&2JClqqP6h^l zxcca_&pOTF{BlM>jKeWIcLBVkXTLoE0Dh`%@>AAKvDeKcVTgBNa8Lz|AEp5V@YS)? z^20Ymd64{3JI$0;3I1rn1mhjMoi`scpd_gP{v8yjudAX|1x0kMx%AsRjB(#PMz!l2 z*y(Q-HS2S>Ni)V6Q3+jY6OyCh#xQU_eR~}|=(HlLva1V~y40yT$7-oh@+U(5M^I<| zB5162P_Nk@q8~Cy!QNw4GB$tB0Zx9J(UXV@?iN|&j*6zDqIl<}dE$5#N&;jo0+5P( z{_x${XTPSObfSj5+~B3N3hIWdiUf(2OscW%&m?C(`Qtq6UY-;&Tm{YL^Ic>N!PhL? zL1N5Kea1iT)c*iM+0rhX{{RT9DQlF;BUO2=3p8hY91sTwD}l~C>pX9$&V#%TA zOv^!Vm7%JusFE>CJj6#<0gu4v0Y*p|>@W{J=o)iKCXJiUsdiwD0+3s`Z=VNKy?1e{ zy!Dw@Xc}0fSmKN~!W6FTjz}ls!65UYY2yiAki%1h8}3p;!k=FLxzO?vy-i=)Dt88s zl0P8kp)&qhVn#j5;~Jam{*tzI=R?>k(xR?O?-VOpP$Xq#SNJ$xy@nW$NzkW|YoF}K zMJnv1lErtZIUxM7bz*qaAdjMYGMbTN@|MJ)2L$ayv}fz>^V4ywObNbF0g8Gak%D9a z9KZm;&T`=Y0AKzNf$Qe2tE@SyI~5BuXSl~7_`uYsh&5Go9ta1co#T`CO42XF<1Rtx z+ZY+u6>qtNKI+*R=Z28-#D9LTEK_KZlS_l4dNmyMh4H+c87fs3@sOXfW3>B|p8o(X zLHM^9ozqtNB#jALA<16Ddj9}+o_K5al<>m7YIkX&lH?Ev$N>GAk)PxF>VK&1u-xrd z#HoxtQqYX4JmVyH{4}huW+wh$m~i%{hz|`Y-aiemGqeT_%SwpF09Oke z;)ZUSx+Je0QG-r*$hlGRCOF9V9=^IIv09G3ozJ0VITcHirH;~NgLOS!1epM!joEi+#Wav>o}q^)zqZ%=a#9ahHRhpkn4D_*QsF= zP1Dv|#pe!a7BlQlV=8mTGxF8#UVwR@5QdJ|4kDGVi8VXngoy{2oRYgpVUTh^mY-f= zs;8z^w$eoWjSth`FBd+mvQf`&qqfr;h#(a7(2$G_gP)AC=W+G* z)$t!os?AeQD5$57blQH?PO}uoa8S1@ewxFmlrhO}HDPXP?Eoy6+k}>A4c3+ftHJXY zH3S2nm&+N(x`Xs(=}LQby7ku;FvhbM7Romx8wLYP!|F_HpJ09USVhzH^i+OrP-Uly zcR7uD3O$CpW2UHJ>Hh!-Z5H}S*<+HJR=j(+mNFgeH(+Fd;|Bxo>7EaX=FjFni}MFt zlVmn`VFf2pM>&#ufwi#A$Uk&s=byt-l~i_Hg>Ra)L1ugwk|$_b{K--|`sjMkDXFQe zq%Nh6NP(Dk2tG1@6$A6p1q_E|m0)}_vD?q(uU`je8LAhzP|;f_Y2t|an{Z{8MwPbv zZfu-9!sH6K3ci^l4|5YGgh=hK}HRLt>F%LgNC22-CykbkD0odH&7 z#M@jQec>J2f;a@Vw&weNCI(nMUwudVQI{C?z||vB(mgo77ROr^tVeW$*>0^Bk<>Wz zjZE^RtdWvb;bRzKgYTVRy)SS|TA1f$XU#(bfMh;SPy3_t`s$nUv!Jhay*1RGC(;(0 ztAxk&k{y3_I!)$8f5tr+7h~o+1N$ zLmtEVYpa4W#;Pijl5NS`CNBLmYq?Hp2K1EoF*Y;vAnBb4O3+eOq^ER@4|!OBElQc0 zBMT&i0y|1SuC~|h zRL>nkr8P$DWQH%gR#Yf>_S`}GfuYLNMZ)Y>>3+RQR~t~(y|Q#A5Cf2;tEd}?sjM`w6n8aT5%~;kdil;cX5scoD6foIpY8du-BR&yc;%>V z?-HmA(gH%LKNfdnG1{Y}T^*#>TY3d?rsH$$$`7KdU6r7>j z%<7v!<0Oy(9^`TaT7utt6#YNa_X@)}R)VS;fXNi9Irx0Mhg^3&5rQ;N;#JPwVDKWx z6-6URsaZLMfxH8Z0^1L$Jb|1Xk4;lH4;kp}RSbN~eLY!ivZ5rAiBN4SkB~_KjQ%=i zNXAJfj$~lFmQ~(^r)*V{-Yaf(_Ufv{4)OW1)JGGPD#Yq;z1IPxWFtp z`t#iB9-ERJJ!@jmX4NLDeHQ|7^X(UF4j(do>OD<*R_90iGN3%?fH=(Zl;>eRNh5QYM}4mBJ3m% zFvsG~aoZ%HO;^2ZcBGS~8qXkqE~ZotvP@kzt_j|%fr955Ad)|Zq~76ijvp$Tn%6s? zWX0)~m)j}92OmGKhq{V;on&%ME$ZS*SraQXa|R?}u`EgcIX;@xIdEc(c`6j9hsi}~CDuc8slqmeU)c*iUq?FHFEi*h?So&mSWAXkPiE>kAhHo_Q1T+!c z1f-&ckIQLK(1kc(Y~xW^8lNI!i&zWpuE(j$0`|2XAt7y93uBNM}Ix5}MRFv$Iv{aRo)b3{lsKloW!k@YaaiUXA&`%ty z$Q#^r$yHBQrCM1D-6F0t>C1cZ+fmk)-PRRXX+n?{-FBQ{l_Q-zy3^GCzK)2aPb9Id zu}2!^n|U|@0ngp^&YRK4JhXLRXWV8nNa@dgs9PNI{{Vxd0WM3v&r3;i={hT2MC(u} z;%%y+#_BLQAcB28K*0PpO?aY^QVM!1Sc9!Zq{t*7i6aZbo&g-5{^L3<>8s^Xf}UwB zAfTF9+|)R#5r$GX1GgZKO6|e-8i2ddS9NDr(_8FOTyFJZGD<6!1P)8&lYl)=btNt- z7L{^TFVhjr51$oEEDUh0R54TimgI6h{e3<~oeee1r|frHdKb0K^6glS!Z_uMCw#_b z2_{rJj?O{a3Dw1T@H53um93WDU(?A`Jd}@AV4$mxp!qSC4#iaNPz$KsMgcr$O_Qej ziqBwz#aBitWvs0-qgG7}SSX8-Shhm}k+;`(9r2~KF*2^|+CGeapQl*rtL~ji_Bbh) zqR_!D`=Vm3%pNfEvnQ%;8-eu3h^!qQPu72-zfmO}k{LRKr7uZZDpm|swH(Sk)GP+# zpn}*r#@$GDZB3H0pY;`nuk6vFbb5ghgD)I!Ac>1(cKI?sABgZfX!pWOKh<~2OD(}G zuJjj>&0RrnW`bFg6(tkQQ=Dblw(uKn3C5|*nn5T!w$6F*rkyOlIdq-cvX&Z}I%}*A zQ5>0cXv>9gMmhLN)zj5~qUB|E6@5jb<0NofYbt)mqL8qjg{5al&hSeva6s$*RY)I}CrYH;3P-oOaJu04l3IO{uC zOWrChyA%s_ zsif&UT^jXk)l<_vcUn4H%0__F8Qoq;$x_4?FoI4y^N&qh{w80#Tcvz0z4awGQ(Nk) zE%cMr!v~p7GtDBz;Rf6iL2`iobsy39K9GB3T&LL< z9D0M?ojt~CDl4$aYud*crP02AeN1&1PIY%wcv)|@THowuu12b8=d2S)AwFz?Zon$J ze4K;#S5zO5HMXkCt8apxHPZBzHBUg06H_v*@!TZZX^)(|9f~;(!4u%)(*36EuAQK~ zB^uwZ)e~E-@X*uI+UFHgOHjxjP@rcDphOvt6-gsG2SZm|6$e(^X=jV0EpYWEV@Xp5 z!Rjfdtfi7L9c7ZDH4D5-6cyb60C+BSA-d{a1WzQK7Bu)=k1U=ObWImXP|ttq3Tquq zR*H11nTy3c&SD7R+iugA2RLl^=Tz-SSV7UgA5~sH)pB%_su<)FvpQ7DT*C_PW5HDt zN<#MmP7ZP`uM~Vhz1u9Nnx>jdWy+$F7N}0qOB%y0xL{*J@v+#&LCHA4``OhoQC(5h zJr`-UEyXU+PUf<*$5R@@k~~bzCyh~y7XxYx;FZFUKy&1tuw*Vrdx@Y;`|=)vixcEa@d(u;+s|#x!@icZbq7xVv9FykwUsr(jz)^( ze7rSexM17BGCsvE{%V7U!0oDz`PHk`y;Dn9WUQvFk}?a-CkhZ0+EI%TFmdcj91Lep zoO&s81YdL-(_egI>QI+!Pg^ams%eb#J#7?I4bn=^$fU+`wM0X2r^x3}SF1mXRgg+= zz9-aFN3fF}w%;61-yjq&bkC>YyIXCBlF>aq5~0tG6DU4Hd)TEyl3PB}YZ1j9(|siB#bBJDd&QGo#0zQBDnqU4s6%D z+jTQFWHLhX%4C6rWQzlK(vt}&YFuXf@h7>dtQh0AQ>ak)<%bWSp zLW|5xxF9=6-TQ|Fo&oH24Hdo{l|1#=c&Ov3otk(T3ZY7YCejW9hT%p%c;`B>5`q=C z(8)YEx_Bw%4FST{pxcZpNQZF7?^HPF1G&@%6_%>4w$WVe74FgHVwQGaHOM>5MzYVBU_qp)7MJyk&jn z9k|ss91&G@6xEg0#t8h^sSg}JW*;SxGUowudGCM@x?NBPCEO zwFS0H!z1DmZo%K!XN-5#^CXf&px<+O>{Nf@Ei8)#R9;0voz~|OQ5jxx%BmZ`VTK3l zF{!SjrHW6m!5wThQzX&M?@Fy3#EZbs2jE@f=u3L>sj7?oQ(h~&gQ@K+U3RZSPh_sQ zPGU5eBq@9xrrpbfk{AZhEJnbUX3rZPYIO2@?rz8Lvz5psacRcE;tm-?w(~_~t zBS=FGBxI1lHgVVveTJ;=q3NsNRl`$wwN=||kkYgXK$E(w|H2(l*r;Ur3RgNzC^ltmJ-1`1{t*NG#X`+bbo&NxM zovHvG&*k#<(#tH=7Z;9pDbDdCjIXdGJ;xu8m&nCId-Pv0| z;{zD=?yB zM5Z#YIY8l0KI9FjpI?6ZQSJU)Nb#=n>xCtY@srq|+>b-0=&Kl3(^k~iRMtpj`%78e|2fwcexEd>u5F)Ie z{YgPj=Q;8NIE^#q@8=}?kg5)#x<{uvo({92uee%Tof1R8L71V5kz6DsnJ;4{v{7 z`OrChMn;n58$n7$yZptJfXNJniDd_q@b+x>`h(jV-!f9t&giirAi^A+gZ z%T5B>AW37EsMdU6vyERI`Y9(Lm(N38L3yXP*sAUm)5l9ppdT#|Gjc#69N-Lv8okS~ zw3(VTTArq+nrT)uPKSUw2N>t@+G>bSNutXVr40bptw`^%{dt+m< z;&~-Q%1)?`-%_@D?Dna+b@QsCF7fP-b6|mzS;+&pC!cKyO*JHSt6a45wLG#Wox)M&zGd<4nZ427L$)f}G1yRFQB$ zTh#4d;O3$5K73?;I*zHQNql*^)~h5=l!*pO3-HLl5Z&qUu0Pg1^QC+;1?rW63}d^> zLa7-)<1%ynG`+&IN)ENIk`-!8sZ2$8)L9fUc^F(MNBrqM?|}0t zj|gMrA?vyNa?ce4)Y=~3TUHi2cP`{RDFYu7I81;r2N?&`8VKqNItohZDg62BB@H*2 zX`y1utDlb;&cU?g`ha_Su&lV(byrhT)ZP5)sj22wN_%u_e54pI5EI51o)0~N($~0e zklg2zW}uPlW6ce^Hf9BPACrYs1_%X5SMK3Ws%3(XDcf;YCuB$CwS z=P)aXU^rv7cK|XqF=ci;{1;zC*PK|`ncx_h{ zv4YZF!Cklr*`;6zANcju@J}|)X#^fAanJf~p}vo6MBWt7Q(>)|t|NF=e>NhLM&_M{ z2=y2|V?|c9^K4e;!N`cI&!G}HI>)Q}mOl@?jq6j%=txBORzd#*&kyF~Q zz$o~lNe=%2izjk6tbU^@PtlOav=@4oCqCO$4FGt8s`WQWUO@=^ELoF`02(|Vbb4>9 zh&jFHQPEVjTq;P7NF)&$Aa>M^9Yw(&7$`S1vOd&J`$lk2^wWx~XpRP{ioTwqfyb7p z0VMJ1-&#>EL=!<%2Gx=_-iAcT2N?Q$>Bbi&y2)OjdaBT zhPL7Q&<(xOkMY+e^m;q^q0{nB<@u9dsbp=VjG0$FdVMw8<^Y#?Nl6$qZZR4cJ;$K* z*B8Z~wG?#xJ^M0c8REBy@6#9fdM?jNPc>Zdtd(*~H*7}d%LBIJfSjJ$A6<1fPF$q9 zcvsUCtjd%Asim7N41+#O@s$TW93OCX!@eq5rHjQ5rt1jqG#4l&D$vPJ&*oBn^<*g9 zek52KTeuk*5)YGVDct<7?>$!d=7$@N*54*0{geYN( zOTS;4msZ|MUt^(czD(7Z2De7uY_l~uP)Pzpsv89JfT6qSx}5@#fq{YnfZSo59rK~i zh*dQgU5aV|s*`ChSYee3$vu~iPgl)wtyHA8P_c=A{XmJ5GJW#Hx6fXO8!$-Psf_f7 zbnd;uJ;sG^2+`CMx!WobKcDj&mw71dk-Sw`7%C+^6^xUQr=k4y8CfkYO#?+wKkbL@ zB1urj>_@Oad+^qU$^)Q>P28n!m8Vsqh}pEEh!cVBW7FEDG)=Ks&aAGEW>2u7x^@Yx;wxY9fwGh+J%RRAP?dSQ5-v zw*cXPK6`IcWt*uegm(!TnzDz?L}td^{{UobiJK&%(njn!)Rne!$LUFN>C4ZIt8(dj zx_X#px5E_vS_CmnjOxnkwQ#^~CnG%Sh_(X--dJX6OGp*Q_A8%G4!T3cj}3=V^ao#c zwG61Wy)%Dyo-@avO&|gAbHP>$z<;Ik*EkQ`NG6X0SopzEcMoi9Rw-^mq^ZzOWPO|& zMnAKM8uV`Lyh%A9=0~(?ojihCb$HYeM|fn%@H%n>i1*19$LA!Ve=TTCP}cWfJsqLs zLr^3H1uWoX{XKNcp{0_OtgTfAO2{iBZO!W2!T$a~Eit;c+vdzBwJw0Hf`&C^JVKGzo8+FjV;!afTkJ;Pp5MumeAUKSbJ=t*W0EIb1Vm z5nNzmIrRjNJ8CvwousRrz}+!dQ8?w4($Y(hsUZ64Z%n;GS=xOH2Geb6Km1+>gY`30 z`3_|J6z&76t-~a5BLRx!hWBqxQx`R;Zk46J+3m7YZ@EEVRUA_mMMRO9q7FDahDWwQ z^w)V!W~ys@+vK)h4I};d9@h(@_3W$9BRT}?UkW;6^V9Vsp(s)Yk}DHTWu9h;)201L|JODmS{G`9F9EjjSQ^##&A1~o(SU^8P#h& zgQDI+CGW%Ae$q=xR<$B2Rekm-0Q`XD>!Ny(!@DfqKWnhZ)z*B`82^mw*-6ZpL~8aRsJK>)747R!)LV9QO6xJ2Sz^>ulGjYT1Gq`*cum!!3XB7j>i|C=G zfKJj00auVuw>J-mz8v^d)poim?a+&z9bHO8RaJ0Trz)zzPEi;FHV#8)k8`T}^=;{^ zKUp~G{H+lj-EOXABH;bKUmooI}MD&sX z%_UkSXr~>cLzdb;e?E0n^#@s{b=D&o+lg9KK*XeNu!75;#E(&pLsVX;mIPA7VL;bg zOQ7E!*(A)_v+Z>lqSdeQ;`eN*SZA8X9oNjn7XJW*a!2-;+uL5(JYE_~ipbfYksdfd z=P~}e_O5z7YE3Kq#jMh6lImowTLg6SP?|^s7D#Fn1CjldlfTazhOHGQjnfnbEiYmZGAlHm;VrMyj$wb&gufI;6nBTAjh6BijUE z_C58sQH~~_NT#3JWn;xWsl0aUuX;J3tEEUf4rPe$5*X7ZgA@D25Hm=2Fa!JY2jruY#@-NWruO!)1OhUu&U`>HQI#TZv7|ImugiTnp02C3@}u-&=@b_j{35^S(ByOx2G)qJJ6jy zW}aHe<8-B_AUa5(EK>Ygd~Q}e_XFEfw(ku(BF$ZAtfR9^E);e0Pc>BTRMeyIPzlHZ zQ#>kxfIWR?s=6ZG)ICKN+UIAjg{kCe;D_z){xGk&ZYn+{+_@v1;~2&UkIIk_ByPZX zx;?tO?@13!TCLU!i-eB~(MpmmWz!jSGH%-z*8AOqA;*0mQ1~})=}W~u>H52;>FQP@ z;pynAo618Q24)W_QaH#PejpEH+E1k6@UqR-^|e2(+S64eZv<3vyHvvwBomJ?WfT=3 zyu|a3A#<(rDTO6-SB#==6!&UPwOezyabOu&obB)1+ZqVQeamhRsDiOwEVaL+=TpB@ z->apjsCl)iVnT%E0aF@$kOLfwi%8FQjlZ-FMpdbXd0CG7T zHKp*{(6>5g9Ua&8R}F=s7dy06>kwo2$CNTTJde*svQ(_AL!S#eTf?rl@#^X?t5Gek zO1C!aT@-~x?Y=;ud|S3EC}v^FB=f<~NYnNI0EgZW_;DmIO|F~ujMNm)iVTwwOR-W; z=KyiIlfWNMQgj|3+`2N;16sOh*&~QY5UrNJX{9V!Dz@Z{0PY~3N2$|3uM~9`xH?9t z(AHJhV^}0ZG^Q$JBMj~&jAZTjo1R8{>9~|*#L&4$Q@0n;=*w@6JvG$55_*Q&cB)HN zJIfsM*2-8j4X2UL2RI(Or|;f8bfw1s039`^*L+)kLe$Al&lNlK%LHS$_Q$bH?9`!5jIo&? z9>DF80)DzJqq^4JQmXORy(twm)PgE{6u3(qu|T_;Mm|J&RRF4RMtB(2G5Y#@1-_EH zB}q+XO?Q&-_ZRky3Wfo>8A3D1VsXZ|>M1&2k!4<*7g~BMt8{fvmGYvuo)J}qTQmD3 zxShmg=Nd+A+oQ1#h8DfI&@1a3M*xT!8Kc3Y1Rg&w$q%<(m0HL_5oLJ zMiU&d;G3xKz8hPu_THqiz-lO9k{URLT=O&$%7A%FA;>a0#z|nqBak!AO3wM{x;EF|Fb>idxWGBj0HN7J@H5H9t!7n^-;&f7y<9M)>MnPi2MoeXV; zBr*arBp#$5J8LdE0bkAGKYp=H2sVOUJZB(grR-fZ$L{M=V2PE=N zTb$=W7dxHfsOavu``usa1)`?=G?dl^G^rl>;Xw*8JD6eS+)4P(HBtVysfZ?J<*Mp=>pI?!rg@@@J)l8AskAGw3J&KEM&F2Jlg4z?l7jI) zg(ZsoC>}Xrjx?oGk{!&MEW-zIMmQi7k*xDgN#Ap+hddrQMlQDX`TnSptF&~Pfo}BF zw3SuQ@K1A{3o&J49lkv501m?)j*gqId^EAzV!1C|S!$$ecc5xYdXX#59Ei#oDgsL* zHZlHljZ@~5%|+v7+OoFr)wW|&!iwEcUU5epsWSyD%94tJXV4OG4hV78R?daAR)KQq ziK=F7#cqvj>y|!C0LL+<4G9$Td64z>pDnf!!~!UW_Zz4 zASegbjyNaN13H+gqoSgUDJf}8G^&X3?r-vIfIjv|WBi7zBbD-0Vyl8K{{R_=?^adf zgf&#)F3gkyRv7te3+EH9Mp=Z*=47JmG%E%~` z+9T>IX-_KhQdG;G+?>C~yB_46cGn(B(ibnavl(Z(QqTuQmeWNv>JKA3@CE>4dF`DV z+B#i2Bf@z4&R-C3oi{y9GYD;FGfrxN%Bm{vCChgtF4Y~_9WCRO8r-`6zQFw0$#CqS z>HGb|#*Vh?80#((S~`BqP)!Ta(x94opL{}T9z~F}f+c)o0XLnXWa`YeS$|Ym=&cs| zscPtL>Jm8XQOT8e24#`>&UUUzQ`=no;740^2S(G>(NWu|X0TV*`SmqbP`P-cQRRmP zGEP7sC#MV<{7tjlFS1#uru#KQQZ0PONeUz}xcGPM-q{OTx zn`@Eu;t1L^U(^0+S1lx#dXWQVv%3K8z{%~;85)MAp^E8O8r<(cVp!5W>vg3^KOQ40 zgn&K}s!u15+L7tWC+bQEo|md^7l_LMf`fc)r;Fd9B2)Tif25_DKm{z{GsKV5*FccVKop zvYOmsoIH_1ODP}aAc{zvBazMk?oNihMd@4Z^TAu~uEkSbREduAyBV_Xk9zw=R&ONj6J(rIK3LQk588!dwJG8-!$1r1!`f85-z#?snnR zQQNC-cKYhb>59OU!S;C}ae|U0jup2YDLFevIQG!%bYga`{?NMoG1UgRp$_IUc2!1$HasfPJSCUsm zM5M`ELDP`GPZ?HtCPrymbec7T0i-36D@w(;U?0mmYb6TZZ*ekGwDp3g6#iu9m`Rpn zv>;VxIR%bbl^P{eXvP;#M8c6NYR8!E?#AmGgN|Fk;cA}3)I0FQ6f^`W+=2Fr$mGpH{#ZKlK zN&%}8A#+ePR zt=#~VeTbhDV@NuRlc#EHqo?x`q?bDos}Mv>BPj|=B%V7AXP&`5LmeQwLq%?NCY}X| z$q0{QlYxaQFx-q2o^kTkxzV>VXzLs2Rn%LixGi6o50_{V);E`yX90J7AfGQMz7&sL zR~K4ZnvSBm-|MKFj%v9js9JY}V5cle3I_mVBe3+*NvdfPb+$&+M>Q;eZCbsvvlt*! zcI`OfkFGJDXcl^_l#))tqudcm8~_J=`*ZxYv4%=mMN~u2gMnc<0mj>JGAMmzq+LnAL}u z5sx@+++=*a{#qn-sfs#pjy91t>;QrT9AJMfFjyXv_|b{OLXZ}!Dt_r~t`0qNPaj=G zin0Fvw!G5CR*v)N^5Jp9s^=Yn0B{F$?W;Geu2pr^i%um?TD0(JX8k7=jAtzF2YJzZ#vE<#nZoS}17bBBog45=yKV zUfC*r7b-qn@#~`0MJdun?Z}Me<7r-4Wr63hKEqNpZ&y8` zsv0+F;$T`;7*qv@3m;;AN4eC6!j^)L$s{vF95qtaAKJjq|+N>C5 zK--4rCyo!H&ZJ$`Q~BSu5woa}1vw3qxDS7+#-=Pb3w`R5>niI$!Agj#BmlT}4i^U} z9P_{<7|*VbJe0^P+2cM$QQ_0dK<_66yJV6$$Q1HrKlUr^BAJ4G470Jc5Hj_Px03MTSW~|Qmf5T3}$LnE(S|3*vALvbH+d) zJv%43E zTPkkUR?3LwIou>kpo$@h0Vff#!Qh-8;~4I7#LY}5p37!YB|)e&Ng!mvEgBSnMi`8$ zk1lojWq2L+i)DI>+9+wMfJcM}8*%0p7!=qe?c7HLfHlN${B_IAS@pO?=XBJtSyeNP2Ehj0`$=(xe`g!B06 z*G^J0$e979nCuKm-~dlPYhucf0>`_rs3f*C)EX>4#f&zo?_sG zY>Au>d&-~8Dc2xf?Q3Fx6YOPnwH0zxsvZv2t7XnTyMAL`ci{35v{xa>0^I;WyZ}oQ zKZrW2I;W+rvi_33A;WUFM^R5$)OCV6hX>6bmbA(?kf^$B0q}aJLE+`%k7x?F zN_h(~`?-yW^!|FXx_(QQVY6E4XM#7L41+3e0}Ue{6lb!Wej3D`D`e^3hq;>#u_%R1 z^yW>h%nK=PxC~A^wvy?J$SE#18mfqd(893^Vw>WSm8=?kS?U|-978ncyQCqp?tDfGXcE+bpDD;9IYfg+N1 z+jUoaCB9a;)?KL~rKY8pX{2dJ)J57!AalU{b;F$|Klr<|dSbd0{`l8N*3#Q=mimir z-qdSptEt%-J2Lq!uB@yXNFlPLkI#)_)#%oCn|%(Bi#x{`NULkAZ5>x~zRlCrRe!1K z?=szLgz6%n%4on38Rs#UaK&@G1x`5Cd-nP+mAO?dEg5>cY0|pYbBV%FOEQo`zDC(1 z@0BAUfI-0^+1IX?tm*iKHb?|kwGkSc$j|Lq<&`2}GD4~3_6K&U{fKLnJR* zNRzyBF5RuY)Q|Tys}wf-E1_;%)7*D&fIW9t*Ip4N_Df__RLxl;RY6NBr-~_2PykQf zZ-;9D2GP42BpqA6MQpHbt(VDMaTeu}5BB0G`0M9qhQ1>8)u+Q$u-W>qy3uNaszxzT z?M5Z=S(xK3&Ii-Bp3l^MS5Z_<{bPNo%YE^1lLwD*-%WM&`Q)OwvnEJIzNdUVRgg)V zXl=46^^zn*`JrFssQT*Jm3CL#DIH19<*M@l{{T_WKaRLom#g~LD~rKR*BwZkQz1pl zQ-hO^?d&xrOX7!#RCPPz@doOsjgpltvu+-oI-Kidbx*v15ib(#&ZMoiK?TO4UK*By zYPH0V#_faGX68V!6B+@rJ8u;*|CEBB18lh7&#fp z828sRB-fjNG2FaPKDGEU?KR5fJ+iLYh=yYuD!LNP4l~cLFc0UgsH>``>#Jf(PUsr5 z4e;Otv9YKdEkU{8_QiXq63UXFItrc7#B6c3z&PXj>Gw=eG~H!sc)Y10YPC#7D#?Hm zxgkl`4NNylHR^29%AnH*t7;No(fP5HWZKI{`eKm8A#nIG>Urh>3mr7JL%+93lK^RrakO}}) z5=MLK-gKVP@Y2d~b4NXyqNa_vFlIcHpX08h@J7MaUKaGqb%iR$OLx7(shWrbG!Ql! zV*$qnxMD|tgk<{ieVOBHfR%Si=XMxCE?@re{V=Zs*EbI8yzQb8mq#gHYY9Lk^+xso6fxsLQ#(CAWl{D%K znoEk2l0h;NpQk5V32oEB4AIV~A9TXZGx(<(W5l0S3dtqVr}}%ss{Wp${Y7g1UsGs` znKsl*QVmS=vy(9@I7H{+8=E*8I+*I7mwKynR$Y2{+$(9_TAHFtRh+=!j7X31G7--? z(eIOCV~J^FjJ5{pAXE9DFG5OhxpmxSKxJZck=L16VM87rlDS2Xm*zQzv$yIL^ zw4#=xZJ-G0BVjD#HG$x!jDVNiK$bLpy4NwM&J zSd6y`8u=1}Fcq`)*nhuM#-Umv&m?FHmSTE@0DDAFJoBQ}li(Tb21(Y$2|cDF>MzkpXYd zSS+d#s)9;)6I90_!(^zIGJg;?UU-f#@7GYzcdnAQktt#nFfal*AqWDh@_Td0#z`mF zR!rSK$wqv+wkZ43d_12{0LF#7p4Tr?^_-9+5Rtwza3Ry1*f-^0MXD* zc$%KsZ?#lOR^Z1^PYk#orx+sucO;TMbE{Ci(`_Ad>TJnOu_p0P}X;=iK4-S?-iB(b({fLcpax zw%?&7_48ZnR(cxRn|(s^C54(6&-zG4rQq=s#42TT4_DVz2Eoltf~4>C2X(hsU?xCEqew|77B@xNcjc~-^bfo(vs-T zwDtHW^_cJMOt5IYW$KDpqg$1Wr|xQlX?CMD@;Jw=kTUc0*0p{*+vAziv!kowR>{Q; z?r?;WgO!*+aqIYKA9qX13o<3)kD{!Bhp!~<9QOKr^$}9GlMrxkBaiLE;C~~d^K(a| zGq`wc-?aw5^2#13_)S_BtGZLD%4x)oVI6SJPBdg69+wK=FABQyBll*_tfAv3%Hu_5V?G`^4I?~-uNgtAFsBP44au|b`ExAvy zB=L-Cv>q*N=xhB{ooUs5Sw-hlEcDm7k`0*N%FT$Kn()b!DdO z0#H!YMQfpr;8^Nvpa>PFlq!Sf61f2Ka(Efg9c^TGj|HTP0wj*%ca}KI#!-k!6frsO z0boDYI%>^1zb&O-Bb@N*)*b1+{++)f;jux}cTSgHtEZ~*2I!tkwDgtNc&h@ZA9ax! zEAj>z7aa5LFVggOHoe6ayQVMnV&0;*DvHX;rV~h8x9k)t+x~Ys)eY12T{CX!>LC^C z_0v_=1lIY=rlA{dW6L~6Bt+qe8(-JlYUl8l9>43)5N)<3>z!f99JWhtb6|}_E%I>unNQAIcm0$9W9@gGQcw8PxC$_tz#BT)r zJD%2O>n^gtLmeO+XGmF=BJ30>4Kw#73}+nZTHX35cvWn_MKxDcU24RDuaPabNX&$h z@W}B?fV|-F4n0N*)|_&jp-wLTHU1kF7NYrfRCen;*GsHRb)r2<8=}<2)E5*_h^ymr zpxhNylgfz|q_4TpuR=Z4R{%oj)DkQ6s zob8j$bHB<%8!13=$GF>^grO$VsvG9}6xl_1KjEi|9d%1%t+#Zo#tSqxNm%zv&?#ve zHCae8JDj#%*OUkD>MO*W9<1q~(jNCw)ie-8a*~bAzh(?zmIjDKvMzotkF;`da(fMR zy7lpO!)pDULfsmO>M8b(p_96Xz#IXzfVdoIRX2!~6+M5}m#2rPuCY|g zv=p@!s9LJBcvenD5 z>7NYxeZ{s*g-2HT)op4NX(V#T5yULVxNVIihT|CoofdUG7QUgjTqUBRODvR>al<0r zZt+Oc6>R({pqz#$Cp$(#_tcVVJ(B8P4U)?hE|#z45%gb!QFWaiRk|DXw$BCPnmND6 z*?!p!RE)@K5+RJl``HFrazXUxQP+-)vC`F9E~Bq%Yba)hC%IYHO{UnA<~V?Ckg7fg zW9!dgbVcBwLe|~7X8!sy8TlEvqJnwEk&j6ZHxQgB@IAOwa1NDM$dhc+$J-yI)? z7RYFAOHX;IrrVtBL`9umd)>hy2XkaoH4s!57*vs{oa$R z=`4ohalK7wrD(T8l~Rg%YY6m;C0{YYKfXXg{jFNQ9`rq`_26lm`!tDLERJcU{c!6k zQUh-C5A4c<4oNvAfrG|}EBY$c)%9;xTXw9YtTFQ24NXN-s*{kcLY_$_na139)b#f% z=xh;m{{Tl@ELJKQSy8KMT`TGt&<~4bVdGaU0VS9pKtKZ;CyB;QE^E1lGH#nCd@$(> z4uR`=F7wx{OHU4ItE!jEMrjvl0m%iN2Oz49j(xc)9arNwQN4XHMc8Yqt!ubSe$5>^ zO9(xgq#101?f4y1{asUWqqtDZQQ{1Bw^{tglB0BM6al^k5;SikuF^~W?!&gNt8ZKQ zx7S`8P*C*!)~4{3-}8L84xX~fBy8*0WsFE0X;OZmp86QiBKK*2KkNLGaEs~%^&gKO zAzUt%v=&72q>7>Z`s5oCToa$#NJs<>Q*ezCn)u}Nl@Mt4*r z(|Il2<1O>R8nQ2*4|t^wzOu5ihV5#!+v(m}YO5jwq2gS5l7x?Y6a@0fp+`LT)qQHS zcwyCX+Jv4;}DSJ=#`3+7nTp`VZ_i?ne6m;y-vpg_I z5I|5a?(zf4&)3wB0oE(JzNLDG;Zl^g{7)Q^l19zmW9+~K{L%e%b>aM;AKj{M^uMW+ zwzX!Btgu(s8fg{*8D^Q-5RU7B-1fi#V^_7Cr21wmXzHw88)~PHRSc66A3oS+ zNarS-Y8>Uw`Tw*H6n$X|1x( zmu03_s1^3-f?D}ihUpq+ee8(DfS?TR8Q>AC)2ObUJJIyYI^MBqfsDx=irxcUD%T%$ zCNl~g;K?Cg4*|8v{v&vicIr(mvNQfaOWa?#>{PF2=A^(7_F)l}aDRMS*D6OQ?A9eK}gHDTH>eH(wJhAU0^ zYS;jx38xad#~%{NcW39{T)!t!wC>au;u@7qqDe2nK+aT#^%x@@j`~j1O+j_)m?-?I zD9{#`XL&{zBpaB9JPyEj?!#C%HPF|-`kiZAOGg#1P?XXLV+v+Of7vHE1(acXpRS{5 z>Mb?X{hr@*rk&RSQ??O?Mn|tX2aIPt>V#gozTE1n(uPqrBy7+vERH0Pj1qPp4oF|9 zA3aXmd`qsd$qUtV9h!JdfUJp3BHDX=1wrHksHD*y7adKiC}Cuhl~70sZz^vrNC?5s z(lf!wI&(*DxFM&KlCh)mBr_saNQHCd?B%oI0jf=HvT|MU_m*HlwAe3FP-RGffZh5fMr zjm^2YW08@JuE#L>t}RXJw$b;w=BfJtMGZ!MFlEcfK6ikA4aaETUL zYHOfkRwZR;-6m85<$nbu8Z?@oNvfo%d!=bDACwE>z*0f%NBN`h)|G2~si_q|X{MAg zl_V0=l=D_eR#Gyoae}zuc4MMN73J&o{hHruJxvlUbx6}mEp4hP5f^AEyW_!PNkC5o z7VW5~x!c@A)pRzxQuGgSbc&{;l%~_fE9Mqfb{wuaVT>Nyw(eIcZWn4A`nv_bf3r{K zzmZZ8m;xQDM2I*Iu<~)nwY61K$5U%-rHWvblwL`8g=bWM+3>qbQLvD(qTYW9e(A91kg5hkP9Gqn`0=PIC zBl&2Ds;!$o?cE*agKErkR6~{siB@aTb-ifje^pOxVNw%gYY?0PEQ2)IpbNk zS}sT$R-&t6Bl(3PkIhBTuITpx*bI-zjUHLL9`{Fctc5S}$0W4zSJX#WNRq}Sl1D-h zZp$BWjN>@asOZJ3>dH%;BHj|BXNDw(DQQxml=B3K%8(Uo6~+z#=Lc5G9Z=Zl>guG1 z8sD-@FW-W#us0HT91X`OQFT^#>ASr4$m{9qq%plrl~hav0iHu}c<;ya(nhnaZ3+al zT~>}Nm#1l7aZ-*|ig08HjDwB_c+_(BHOkveCXsCMR~Z%;rIOeZX`^skdD*uhE)UGG z168?t7e)n4#+b)POC>x3cy|m~lkpNbbrhRF>K1r<}rRX)9%>kfz`j(H|hG2R|X-wvef(vBytxY3O>c z*&9kIr>%#`s94>AZJEG4f~0>xO;HHGtGLf|>29C6R!EXb`*(TdP^?r)Pz-xuen4tC zJkiwzq^NmNOsohf09XEfYS5icEG%^Fc zfHFel5(pgRDevfWv~knY&eXHV<-eG}9_^%s9PUyx&U5wSN@zPFDlBrKg{kTmdA#8v z*a|Sl4tew##(humoa!5=+31A|S`nzNZ=E9{&JMJCswSy+sto<$xmY zn<%o5HxfD8pp1<7$nT{lw)G8dd)y(Wc_$@#QY`XI zK!hn_AX5oEHV%7wfyX@RPUkvFMOw=N@{%=TzQK6o+qly)FK8LNMStOZHObRf%tjVD zglr@&&oVNT$8JFyFzRanmdtM^6yFqaE4abP4UA*go-^~tgnTfVM`^aa^K6PD(K?O` zfiqxzMtkbUyDL)oYizA%M0(T=5f+QsVW&Z$%wWhMiU0+Ex!e1sC=K?G!*vuGw7|+Y^AC?C>)a+K6B)8GWa;bVy z@wIzN8isIXEaM>dzym(LvB}a@)U=k4uc4BPrdqT76=Dn^YK$54eBMqdr?*(2qQX@#IEifYIvi61-uB_9vo$N+JUdjY1mXz?rU6U&@r=1+lEjmeeUAgz*FxG|LZZXARK*=_0o{g{ z5<;(h@yEBorf4cWuA&k&Ng6dUi83&tc|J+H2cBY)~2-A)M7G36p-U27H^1w?atwx`f3Zu z8E!Wooax&80iIgQXEDtM1Z^uS$bg@PMnZ;<9Dq3*)oDh=(`dz?bM;4y*gxP+#k!nu@~#AuMa9_>KZDjsv)h4I6lz_l;$==ykmk! zcK%x0*F)5G6sRaVch09|i^{2Dz&D{>jx&>tpJSxCTWn=uQN{Wd{&y^B8NhG;AIO8MzCB||zsk>&V{al;%U*x8G zq*KG<4bdX<^ak&rBjeRkTqWXH>NMNGr-k+AAv5ebc403bv zHq5a-$vl&jrZV(@N>yM~bO%fnBPV^n9RC3B^?eR}u-mlHpPe4K>-#ZaO8v4f-|1_j zpcNYn;OyF1D{w&n0N`rpe-6AmO4#b*@c#g(V5*FUNnxTzWMS$s1~jSZZkZ<^;PoB| z!xRj^o*P#|V}`{=4b^hX2Z#6Xu`4x0QIZu{oRwvNe_%)Bu6FCWZhb*f4aPcoWuT#> zSP{ztQA0BmjO2m1Wa9&j_t$(?^e;?LJOWEtj+$W6FiBqok;h}6aKk|tZ_%s6O8QX} z3!N6!^1!FBVU<3IdYtz?{{THisoe}zarZ^NeY2yD&1up~Y3p7Qyk`uEjDLfF1F0!$ zX04phPe5q<9q=*O*dM&V5GPkpi+&W?ygTrko~x(QwmL(1Q1DK{)fz}yNmG-I>|e-g zmZz>&r)69Nj&;z}dr&iGbuIzeuGKJgJwiz$=gZrb?8iAD&r*+YfdexKX-QBsj0|_w zCCb$}piZM)2%fr1Pnl(nAO60!rb#RA6!cLaj(HLl&-R>!AH?eJtrpiqwtOS7EtA5| zp6UtdVMeWuYHDfZQ<(&>CP%V#1(!Qk8j*{ z9k%huY;mR%(#b*7bapCOrjjaHAfqho0K`B5*!BCPA6;(@(NbKh#Oi+QVb#8B z-h>MA)ysxnLnaF`>5>Ny?tc=eqPZC^@UB&MoC2!bZ8EEaFHd0-4E&Js{u zVD})fJ@hS0&~^1xk=L!7)xs>BQlh3Jc<-Ie2j!$?z1$DSNpe%wm6i6d0=!kW!{zO( zm1K9^!PIW}h{p#Yp8Dk}c5iZ+Rrw5SxjO#_XJekgF!i zCP#L5_aL(!zMZ>zXdlaxY1SyCX&u-qstlGVfB+u4QW|z(3#sQs;H3EqIVAbY;TKORITcD*=uPR1Jadeqj8fXm+D+g2yVVNg{%IqXVkU~by-|9w;>N`;CdV#BU0LpHNea&GJJI$ zTx_(9P*tHuWsOt-#aTu$F^}|hQT0zu-e~%QrnK%g+QzDd;UK8P0s~}V=hH#g2A%3QR$Aa#o%bZEDP(M%@(N{t@y?1dPAQ>n zxVo@6r@Tt>N2c6EbCK^V!yzs8N@!}QY=LKA@^UBj0 z%|TQj5g05Kvk$H~<5uT9YlakJr_}C?KV9B$3$ZK^K{mocHR>Xe`YN|4KhIOpUOK5p zXX&Y3TbxtYDcZQ~a>FM++WDB?7InQPSCLCkXx-cvtCv5UW7}D#>CY9Yt5lhq2vv!B zY3p1V)C`u$lpF=;MIBVSGNq@Fsc(Lhy?0U79y9)|cxI)Cr)eIW$d#0lP~Q}U?IeF- zckH_5>iLf14{?#57u+rq*4%5WrItwyrI@^oU7J4SoRf@lbOl`@6R|nRrgZ++$}dCivy<9(5l1m#?r2P8jSPwECKxVixNUq+NKJ^nx>fgv_=C7U!QaQG{iz) z{ZUwCc;=IC~b|NsDe|eVNJj187<}PR)cb1o zrdQKgJvE)cIGza{4pms6>8F+pEnGcML09%VNrZBSG1RD%Hy)vvIU_{WlcGP`Bl|i? z%a&Qm9Q=sm=i5(Wk~ppgXv~3goxyO&KF1$lO;*KVy<2IjAg|UoyWgJIX0M^9qVvr{ z!z&7C_hYyO;A5N&=S}*LrD&>Z`d6f0t*T9`hPJ-x9Vg#;8dh&AB1ReAQB_U|?s)@5 zHT3j131n)hR%l(b<+VXcPo;2mdEEBJ%Zom)pwM{k-Xpn_u>>|8REa;{u_XLdks*&~6b_CFPD{SDW5 z3-5+eboHHN4^2*LX`9Y8#ltE|ypUVqO~iK~`{;Y4y4FhTclb4R7W9S-RIyXkRLoTr zuK5X&KIC?7!E!*rQID9_N;P%fVmeOBw6aXbHjbrYF-A!vb44aN9q^~Nx)`!~Q)+nB zzSsWHmmTrqRr>o*pz!O*%lA@sJgwIKL(`Gbc|k+#v05;jL8c7FCwJv4fr7QHm4OEtHn zAWz(QXv8ljI~=kA82bjtZ<#wDetpfque8eXr~OuRbjIJ+_A7PDqDn(bXx4zh7C3^0G0fRfpIj4Z#Z- ze&JcpKM!3;$!+TwNu{XiE05YEF^D3RNb4Zyc1p%DKtK2Ca-3SCmM(0$DsB|F+YDV% zSsbf>s!hp8m1(*q87P5$HiOP{l1V=(OG4kQ-ElqMy0(s)Wr`COH=5GPCe@zK0D=zgF_WkE+t*azIzp=1b&6T8=9@6x7?@kn z!6VFHP&fsE_XK+Dk*@kusA%H3eDTlB^d1nrJ+}4D@VMuXm#X}U{{S0nXewZ|T zbGTXUw0C;SbefzKE5u0~j_}0+D#)=EB>m#Wh1H;1;%94X9ZO0-ux~6^AYc*tsNxsMyiCmMC50{rCzZZ%q(}TcZQz(7?p3 zWctd)pY}&5*BalU{hZH_+tlRy7wH&$L&Y??f0e}5^}q02(D<`cE#lGP-K(T1#Tk|* ztgeOIYZ)RTR%CHwp8CMY2>(7M3pnsx~tC_Z0*Y_0CK=!amK9vw(0wqPW803aCnz= zwND(Gp;%R4Y%RHzGO@wnupk4Hp!(n*czHRtC3Rg+bYAG))q!1O;XjR6`bC0Xm#C@- z0IOW!nsoKrV^_pr@Nx9ga(EGIu=G+-)fWKQI))1h#Z?<5OWe3#@@It}oa6`evwC8h z{{U<7s;1V8tdWi^jELA|jZ@O6I z0C>sbxQD20wDl2GRCr}mR;r2ZaoA!GyTq`xDxmv%E>*84h^r`VK;av~vzX>STq0y<; z?$v8Xg-Zs;$71-vT#S3@3!&{E7~8tC?RN1$p!y;!<-)&xzRPO3dCf= zfXAYNr@aAhyY;oLqQ1rUdKaw3@fH*)6$b5~22xj$NC4-YoM`)~Y(5+GMT%=}FHTuv z6H=7_02MKBkg_%g;g;^BB=Lja(_IXEGDmwjI*fAC=6J1I^#1^*VSJ?U`a4ZX>E4i` zxz$$IR@8~;qcJo@D2=JsW+MpUu%jDCBn~sAdK0F6PGlAym1z2Y25~HuRzPN|my8cK zu21r7>F{kB?X37?K}%oPwLLY}6&02mcz2n^ka<-tApm3+`?+9Mc*_PP5rLaCtbBXv z4-I-KBuPIRw^cdr$?(tFJW z7Ot4LUhC>4q80KOq05r#8UP8~k+3&y!~v!H60(oR{{YgK(^2AWY-?=8%G8QW2Z|tE zLAZZt{o*|`2XU^M@e+QTxpmmO^wl%d)WaA>k1O_SXH^KZ6a(RKxCYn`t=u5$&PXxGlaqst6kVxUWN%r_l<RCQER89>Q9&@UJs+FCnQ=)=pXm=5H69VOEZFt!`*n!4e+mQ{4YWsyeLIr;K` z0z2vS6;?W#%|$eEd9+RDO7XT8TR#FS@=Ftr262P<0m%hGSyAcaa7Nreui`YVJ#n?# zj8Ic~et+G5Nm2n&-kHWuGwMm_15;^eE^7OwZG9!0ioeZTHhPMQ21%Aol~UNjJ6GWY z91_RZIwGR$KDDyIiT3GgAd$ALGqT7IF~-N_WBTfyg0`}TtyY3!id3iv)3<#0_tf1L z-m*D7yNy-Kpval{BSN5$Ps>!{eL_-ep>5mzU+TV}u11oADynBewwh@kHdEY{Jmb`D z?c0qP+dOr%R-sAkQqoFrWoK>b2h~R7$?dncx$>K?p4m#&wbb+0Q#`vvIs{F^!8G7Qh6KNhc!%o(_S)E%tOh^TvB!C9*j!wA7XL zMj+8s%Om9F_JFF&r@2139rWUZ#M;@ZR;~_>tQ3zCW|B#gGc)o6!V_}x!wZ%Jp8DqM zfkkmjDcR(NRX6!u?){pQJD)&Tx2`>gh@qjDk~?s+Ts)Cb>rlQ<;87t`v4B^(Eb^bO zttaYJYtZUiD~ng!;WZJx9FC!kGP*aGagrD>4egz4S8nN<5!QQk41))Bb5bG5^f?$K z(;VxXDY}!c`g*2OOI16dZO=|zKG1pWaz}q+G)qb2z4D3D3)QlYq7u0)GWkq!KpDe%TmhH(+jmD$sd$WEp(CP0AL0S9tQTuAG~p>`mUOgQPQmk zQd}usilkOk31dmhFpVP}wwwfv4W~SA_s{_SAbMweLr+A|fY?@tEX9AccI^xFB%X9f zW${0!F7eGIS6XBNwgEXsF2oiiYqn2g{rbJnxm$e#8R~w`;x<^lVo~xy58ltUWNZJ;SzzCsR;w4)c82}A=y4$5GuMj~ft%9Ox z_rc`T83PO)<7Q3(86@yM^o3uET^&nPADeY)WR#E|I37)h*@ytUKt#VAhJE{Jl#}RF zi(E8%{Pqi_=2~ejO${w`zzfYr=pt?H<}qTpQ?xH`In+(=%h8liOZu_ZYAPxflAe;W zfRW=IE)~8OEI%HU@9C(E!Kb@jV|$gNx@ts{Aqu3Z{#XIp zM+zTtVsNH*-JxmpAg)DjCagBS!5LVyo)M{fEer-ria zdV{B8wb>q~N)J6A&vkeeq1+fF1`Zjs&fa@xjaXedQDwJDQ%_k@G9jr)iLNN&%9Kp} zY&pSFIX;8FhokAvo4NGFcQH>xQCBQ}RBWs~#b%odcsbm=zPQw~fr=HOqUz+Ko`b0( zuA>eblk7=SrLY@+nFl8u)aM6=A0epw)4?Z4++?JcCRq?|m@5TrxELXTBalZU(DADv z^j)=j%Bm|ZU1gL|nBo%9O32G5)pt8iROER>7{|gjT=i8lSm~}7%6iEvk_Q={VjZOJ z$0qb=}Ku@A#bIe zN#>BNB$G%$+DZ6;j4}G04_#H=2`HzbsZgQgdfJ3lCzS$ne-FIh!$sB_+kBL;!+E^j zX_`&$TPX{ryB(I^U6XvrTUame>NDWB~B0ITALmfL5(hpc*8Zff6WM_>b} z+M|pkDbKiJ+-QHP5|Y?!s2`_ij^j>-dJ`2^B9TEmn3AVvF`RqgcIQZ|LD>(~Q&QGP zZKS1*jXKWWb2$6#yH(idfCe^>-*@S!@ml`Pagy&@GQXIqJ2UPAF~B6`5>KG?{u)oF z>c3mk+1V*kY3b;`B$sQk7~amr@LN2OT}@iyy;a%emJ2mad(^ul)C{H@OTTl*GOGQsq;rr*Ki!=Hc!5_fef~=7l}RO-B#g=e zfJ$?~>^pv1A)>A7n@?FRbrvb=b^;?6l#JkjMmFx}jFXUafOI?8vM1|`i4vJtVmh20%&wAb0*s;c^Jlf;n27FaBDZj2l@NarKpM2DvD_S(m) z@+PmO3d*ZbSC%S49hl(vKZb_-Ue|8A_)T9;TXeS3Jd?)pHB`bZm5D$(IR$b+AnE{H zZ+6=yT`iihR>dUof%>wm&W(`B75?Ty$2mTkI$l_BkXYxn4Em}nx;~gRbqvCHmv}kB z;c?IB{53CNW{0LNaKt}r62VfypS;I#1pJN%@Y4P)&n?FF4Myn1P@+?LU;&Mzc6jf@ zpUYGB%MBGrN82uPR(T{-M-ITjv#~dpDck~B4Cfj2(^{y}c(F??w#TR+)R%L4s+zn+ z(eI{_ytcsrY{%i)>c;RYo@;GHcZz#O=4GCSD{-kxXwQ_WicWIe1}dKa03+OLsbb<8W^qJ`T;4@p}L1zGa64TG5zR@h90>i)1S{-6>&y_1Xak_-WCns1UooD`0vSQb6?e({l`4)S7kO>6q6)!$yj1VRL{rwI>h{*+{Ym z+5u6V5t1?M?asDGK)V%{2{^%pRG-U@ZFYoytDSs_J`~)1u^~KsSSkSo9D3_@xKhtX zjU^Kj>KROQq@sccY`;DAQXx?Oka1Ji_z8FjArn%~Pf{};);ncYI3Qq*KfbuPbfPbY zJciFJ$gAxf{*S#COB2d}HIo{%BRfbQK={EJA9x-;Muxlzr>TeZ zgy}@5sHmoY)<{2Nz$=E_q)6)Kj~-q1FhNQnOKS{K`=a*kyp3&hCjbrB^_j-$yY+j2Xr*j4&LRl z&(j{d#ElG2PLhUdI_0!fB@@+0<<4TM5-T4@DBvkL8 z)Oa`p)U5vi(@w<>_44Viv%~4OMe`VZ{vZJSj*^QqNurp_2r@i7fZKzDfa9F^ z#--OnU67qZ{bh9NE3KA#Zl0`$u7+qH1T$sB#zxVGBRui=Yv#2|JT&`dR#snxt8hW~ zKRta;S{H^ko6M#`2rfxiQGw2I4{kj*^4|41si~-)fCfpPUJggZ#PRFvql@(;EYH!Z z%GVDZY449`7fO39Emmo_Ak2s0jN!N>Gj95*(1%*spQn69zS(4_dT~o#Dy(mSQ41D9 z{>v_}KhaO3uC+ZMe(HDtSZeB0fEEgV7}t9c2?y^wjE`*x{*hfa_AeD7tadN@#*JiW z$so%aF|h7=z(Rhy7`EnIlG;>MQJF4O@eCJf5l5-zfY;Y~>u7GY6!FD4o|VY`r97jN zw;+N$5I{QlG1H<}>q|>h`C?_QfT3;%eAUK(9eq5dilPf8w&_a@Ms&^e zfc;fdGQ%4&5;{n%(Ub!t2Ls~w)L@C~6vUOZ6#+Qd#K!*sA&znB>7+WU@hzXi+r`d~ zSRSZ^I;d)VWxbu$l>Q&bJ;Qn<)=65ALm7139k4vi1<4>OASvYI zI%f$|0Vgg?4)$fV($8?Lq%c!c#?wh6NUjwXa>VxZ2UO=uU+8Zz+#Tv*npb5iB5=nW zf%Ns`Q#OvGm#e%E>dAVJnIgJUwM`9Nbki}2$$){PBaMeDz;+z#oRh*7xJcEsJwr7d zhIdpFLz3H9c1tM-*GS3F41PX2I%-&L=}RkAFZo!B4Ea*0^5a2%BVB0ioe5V@N5qvf zc?iIA%10+ZL5)@veG%eC07atfH=Z07QTDlU+qTC9V>tEGE}@^Pp`nV|)fLTASqr?J zl_6B%3>5=8!8#mxt&DO6Y9tHhC?14hXg0Nr%yK?wM3s|~A?GCMZo7#xzmByrY-1GL zE2C`SgU{1M4O6%cr+_j40FU9Jclc^UWN>q-N_otRN#iFt(8gReN>^jz?VjXo+DH~7 zUeQ?&qe?ZTxnimtb1cO9Qp*qujo)F(;~*SrTo6a`*3(c? zK~EypMFWi@lrL036ndAz< ze$9EuoxGSZs$wxdUroCli3DttRAHXLhZy`ub#y_kAlX>0_Qi%waZ)95K-r=%`okv|N6L-&q_mLWf!>P(TyV^!r#cu8$v5rO=D5v~+DWl1BwC%WENB=B6@6K@G?RdW|xrwDg=6 zQ_E_ed1P25G09adY^rwmD65iiNFKz4>7{>AG?3KE=fc|vhzLO;n1Dw=ko2 ztnKzzk=`H|ECBcK_zpjowPTZv(~}hB+Gz(A{d;CMT1$2FpzOCLf)#{RDDq|?C>bmP z$>YA2gQ`3`018CvuAP4W0OA#;(0vB)>8jdE>hXu7UKjUf$Mn>Ev&_W*0ExK&0Oy1I zwWB5tBa@anPA&RMRrfnzfV^_cRWzU7{{RbU_5Dm!$Ss~H-xeir*^1=eSbX;mJ%2Br ziR?X1*Eg7RXYm$-wq-*kkQy{Bi<|=GNXMr?J#(u`E=VxAKTvgO^z}`#`cf)NNFLtG zt5Gt_L6Pyvn|JRFa6hx0W1d^5(#t%QBb~3BkNQDQaf02q@qg^KqU#Q$x7<;BkE!FX zs41AOwr%QIlYr95PSjsv&*P0Ytm@k8nO#;>Ope4KAe^_&ocv9l19Y8z$?kGi!Bp_i zG8%x~5}=ZU8TMQcmXmwMO*w^Dni+iOWlZE9tH-9jCZA6n5u{^giv~l2#mNJY zU^)I8vpfasF0+Q)a<|wz_Oi)SEX`J6T4<(Pu%T6*%MHY-Dm(BG9=aWFwP42Pm6H}H zIZ-1=A6VZynJhMF?X@+FX{)YlZ8cpx)U1l8IHRACv9NXwW6$pMp4t_E34B+fk>0nV zB!n;DmP&eH2RO-K*cm?hx9?q7;sVf>uCM9Zxh8#!P_}sDoUzLijIG096Pz4lI>g;q za=7%&c6+ZubdAcFbZpBdJjkRd@1Km8&th|qPIImT@pmV3ueqCEnz%schkX;)HjcEk zRMyzxrp-!4QN1ACs3ca&#z_1*_y@kM9Ob!)T2pnshV*FsS2_Up~EA%K*J@@OCC=r zRk5^mRc*eCuKCqBY8h*$`$(l(mPUd;RD$Y2A&v-OKI)7Pb#ryiHT$pb@k`Xdqo-Be z4Lm}cGHwDi3%hYY1j;!ipUc>3y}QC1bf}JK{{TkHL@?*eTene%QInI9WMJ7o7mY|>E4FuZwq8s@U5=Y=68y&o}Q*j46H(u zSwJr#DEU@q;41(@#%wwndWX$*lD-O=GrmdfjKUXV@i9ZeEAwOcV^9^d+Am%q%hVR` zwyEiwho)LtrTZLJziLo-479ijw2!@moQ~Mm32O1IvBcB4Up2z7UqeE{Hy!EpC_nie ziZ2vLTzGkCo$R*s6-JJpwdvr3K)ZaQHA3W;W(R03fEXMN6W&jV;i@b>J>iAkI{3!v zCzhPF3nP8v3}CAqoac70>winoUR2YsjJLalj6cZ3Jq$yiO^X(PkLRgJ@S@QeNiN+( z)fMWl50zbfk{Fxnv3YqPEbBv2?8SRs&Ox?#0pgW>ZF{;~o}8GPMy9TvB9SG@?0}q) zP!2o#chV!GtoHt;dQPsl!fv9Sk{B)Z!Jehr8_UWgluR%LmmqP12|Ddqd@Sf;Kb=!$ zwN*M~FWW?wp?z?oR&WQqo)Ht+sjn=KRhVpH5gS*%a9E}js_yyxlMA7}5!>*)sem**1 zBpx%~LN(vF4-q^%nkg-9;*|vjVO*#;s(&W>%t-suYzY`=Un6Z3<36!6$>p ztDdjui}y_RHOHp9j^5V$jSDE27hwBI0|YQQDnS?{AnWREmG+1)Fu~Sz?Zc z-M(N$l_ieQOEkytGQ&w7MDs+AF3969LaOd&Aa)7{N$fSM(9}e^X@q|d!_MV@ zo;BEq^mOqKOLaw`r{uA8)g61ZmpbX{+G@(;T#$##LJ}1i#9_HSvCgIJKcYP`#A zWh4pusiA3LMM#*)NJUTvNe2VpKRta?gTs#rY*n;$kaQPFQB+kkECM?$EX-9)G0BgB z0PpnYol0K1X3I-siaTASrsG)7S}KclLKg&#D|{mWupIWt9^6L01=;d~9;50wP?l*Q z_ufx1cF*n++qZ7`I+3*XK>ce|C1qFa8uKF%r1#-K`!;{bi`bCKI$Iw59AN{!OHWHI$`Kmq)F{PZ-7 zvd#TRY_E(oblZF>+9TWGxWiR%Bclh4!ew{hX9;l9o&QJF` zvXqkxsM76ZTdb6`JX1^~gUpTbh}FZ82>$>@N8)~ZB(->z;uX4#8e9C;bm4R5RYa4i zA2LRNj;rVDTKMUy>Dr1p7zSo_d=&)nqjr4&_4U)5PN#yNqB!TIxl||eWbry$yVOZ^>A1Y<)47Ca|kF=$_xc_+H5Fe`T5OX^ZM{}Y z8dD-i<VBK5rV%xCRMLeFEHDt^9fondWaM%? z0DlpucH7TQT^z%0xLNC&7kkG~Dzk+r86X^vayc61>aMuzOI5(fb7~8e@a@D^@di*f z@&Mx>5IG~%YFDQ`K5OqgPGNnRZt)fQ-QPQfNGx!1s(W$T;O%1vVX zV4gj-Uv+qb1-Za?)Rai}5&O(Xa(MiG`PH>gRTa*hwLR7fki>=ZsuECm@53H7Qgz)t zwKuz^40Q+242!*oBm@BW^!ShEr(%_`Ca4hTxXe#g8>SRj%oz9D82WyCwt6DAl8dFN zs%sW_z_&*dN@8-3Ritmc0Uy1p$EK;xH7v45Ng|>`%%>s$0BEEi$m-kZX`xRIY^^%( z-Ao8j`0h{Rrsel22=y6MimHef?{5($3>Qkvl#NQ!%KlnLkzmvAQp>lTt7M-}bp?6p z`MT;j>up_Q458v`Nm;G_Qy~52+8mW(pHauQtVt*+DxxaXPN!=ict}~4H*vcFkVmFY zfp0w_Jav_o)G!)~f=fjwnf6(sknR1j+BUg6c?SgK`{^oGz;rjH@V2&s(G49vbrn;@ zN0e$Em0ykl3P&E8$UL1u4wLH6fvJ0q9YuN;Lai$0wvmE25y1zZNc!lbrn;A_W2~sQ zUK%Rpf*B@Qs%C0=o;7aS0D{4APE_OHQ|;FFSZ$Tn6!70#nuM}dZl+0*SwJil`GA~f z`#Ks=pj`p(n(;c}TNsA(OqE>W!jOzd`Ul}S&!#n3_3EVENq6#<0xe52h2sNu20mT2 zVBNZl!rHkbmf=fwqj^_)v7!+(dmN)<`uz1@t}&y9-z6~1 zpkuaO9)qXu6lqe1jq8d?$7F>{g;oQdx#aRQ+qQIjRn^@~ZkuH-T?wa%`D;n`IDC-3 zfC>P>;BYbgbQ|G?9kx54>j^3=1;uQVz#|bTfFaw1zdN^*ag1Z+w;1)$Z0nz_-6qrxc%H zBh13%;m%c8x4=(1)xmDD(%Nz;D(hoVyH+-=l1R~Wk%eMF10J2UtsTFoXs95jqksx% zV_JC7Z!HjBJ|YkCJ^4KM($Ue6r0tT{#ndg*?gC@%E=qY{hFpFTI#e%$1zn?5<&WmkK?VD*EEps zqpVRH@C7u?6#Yjy{50h%L{KDATkY`2j05Iw3O;zokea3f3mEPE=lquCY!(OeXg_I*0sm?uI58zKe+QL#pCg%NJSG1CUU>$+> zKN|D&&XfIHOSnwXRY5jz42S_ALJ!N^KoJMlm9bkqD!<&Lt9GcSw$!*NhYs%DN!!*3o-F0Eg0%4sAZa-S&U6NjT%EVo4Lk4HD3OdvTk7P$XI7WjVnIaP{=p(Yt?E%WkuZTkNq1 z`(rB9Lb4cCGZs(VNqtQv|`Ah`v8 zD5UsL-R`H;oj14jrQUmUM$u7JR3bv^(9FJOH)2F8-@SlF25?9tBaKE~`j&TkI?II= z_TXby4N!m$`-1=&dyU=IeRQm{PBxtd2sFYdF1G81zM`I@MUc0{H9ciGk9iC*HXnrN z9+@5V8om#Bb3I)}T3PC;;hmOgD4?#EI&#AxA1F2k0V5r-PKj;O(A}Y)DC$9;Ii+|+ zGh-m2W5D2!FmgQBlo~E*j<0UZN<+3sFk6h?7K1O3)29U(^&4j@mZBBb@%%KRroOviU={qc|fczMRCw40ifxAo(qm2`X&tb?r5d zHuAwPMs@8pqv&0ez@blWk)`Q-WxAlgLg8y& zJi=SGDps=7`D@6Ndyj|MgOYFvIRiqSQ~FN$nQ*npI%A?`w9zwcNvDoVsYyTVC_n3C zReip16FTzzmkzP1xz*Ft&*m*G()o=jV1LQO2q+m_7%k5|_|^poHk=W$f2A^i_pVIW$6y7bWFz?s-m4yV*?0x1cY<#yMgPSFpI&D8!vWx+A7-&F~eCr zwKY!BQO3^F9mfpwJFj2?2O}Nzp{hnF8z`E{qn>{^?82cNk|c->lm2$Kr-VS{Q>1+4 zh*gf&{{UFyonDl`qK{p&lJwMw7y=ecv_KD+5x%4o^i1m)RTI|q^lGC4WxCW!{3EAd z;B*%K3i7YIIl+o1X$Yq`60)ykqd6V0QimSHkRP75!cAPs_4ZN^9>j@qtf=xaQ; zs(P-bhUwA*bumR=VS36C+?7*;UNMu5t1$zd9V;ZHnpDSOz?yE;1}uW6OXAbVMHNO) z>4Z^WI*vKuVOiO432=<%r}$%n0@0xbQf}2D8;Y5!8JdTTS}b*tOJEKubqk zNW!X?u>sELq)~!B!2pj@sJJHcDtx@HENXZ)9|Eti##cVwy)^#DO0F27f}R7Gh6++g zG9frWKK`0|9-3%F!%8Q8+f0#eKA)DG&MBU$Bbwn%Vm}v_xCgg<>HRdjt%zcT#v3ZX zwK-wxc=XEfu<4g1UP^oiQBK$tf8Tr5uMpEa{6_ zs!Kd`!0<{2Rb}{pF@kk!!$}=%-dxpnQd88Ds-mTSCHEz;e}K~Qbls#6v&7E^Io}>P zpO#npoiphZeFdy2tU61lDQf!O*B4ORD`&GkN~KYYbUy+2lWEvJ+XR7}4H9+a-2wg` z&qLBQmG*i#<9HfLD_Xf`B|*mgV{YYMz-<8JXSCtz`(-OkwKOu-Kr+H<>KM9=XRthe z9O}KfEoE&})Vxx`LmL#QQZ^hCPsB5x*zcy|o<}6{zED)6xejP;6*h(yCu79`YIbN` zI*<^If;b~^2R}Us&peAgAS58Cq-J)00<#jwIR09A8hI_VQ<>!Q)k((V-_uYN+sB^! z_qzE?N|V9k=dVij?XFRYV?uR^Df%{7UFXkqZOkxETRe|W6lw2E^+kV4brpu`Z3xpx z8#Bhh9myo8aOZ$ZsOQsB71YZ8Jx&*P41g6U&;!P?dzvea>{LS>yF_tDJkkpdss=Iu z&Nu*`c-9>Ht?z4(2AD-C+I*cZZcz0HRZ+`HTGeS!O!Z&oRGi9opdcO?D07cY>U({3 z5##K0f$~Ci#@EUN1FW7@kx7;WV;zsn*HN)tZuHImEni&@Ke00}@;dXmA+^%zZI89d z-2F9Dv-Qoco~D?|8`J>N%@$R-JP<|>k9w=Zj}1D%rg79gA#IXWjmWE|h*M6u$;gsC zAI~G@t}5^&sydQS(hsGnYcJPHsU)f@@Jm$gjqo-yq~P<7ca`R-!_jrmpSw*jr@E2- zb+<(n@yRnbqT?k@rx&9tgzHz-gQYnM+-$Oy(aV0nrE01m7r5Vrrqephn(g*Z*x|Vo+Q?kZb0tnUtG*&={jgh^`(|be}c9&m#3Gg z#gZ?v)|7rBcr9}HX#7g)3V|Y&Df-p{xmaM1SRO|jVgCRpJ_uac%WSW=M#LF2X}*?X z0Ox83Z1Ly;*B({=kG>mBcR>}}l=^vfo3Z}Vojd7I4x{KF5^cR6z4(7l`DRzL~Of{!=@)jPMRf9A}M9^tWE$I*+Pp zZFj0_SRkdODNL{*g+M3@fsO{><)Tadj#}|Qk#Lfor75{uHI_0JSOqBDVD8EHz|tu$ zC~oHYCTtep13Kp3wH+06>FcBJR`TMmb&!nmg&Fd>?UBgQFZ`PHJu}AhbmY{oSQK}j zf4%Zx$M|cSZ+;1MwbJBjYizVsGleWJ7I_+yUo(t+EAamSX!iCWRy4ge;`c~4dJo3C z?K~=e8e5_JLSx$}Kg&hz_akzB&aSKQ{{W|IsH#HSs^*$V%B#y)S1!};12F^g)fd*C z3DPkBochvbjLPeUDSw#e$J?jCFt)FLaC1gK?V8-Tzb z4nW45+B?E(z-{-6HuY?Zz>U6XS7=!42MuNIG#A+_K z>b|4tMYc_Dymakm%9N5o@yLQ!j7W{&_eNBKjl+|wI$s$7083kqVM=cUsI75l5=~JL zW%a>#P)>mDHxC%0@!92}t4^5f4yBG5?lZ$om2p5Mb>9A376k!O$T=M689E7JlzN1u zpF_9qcUyI(P}Wvcz#DS`B&wu^QpW(Co(JcwS}*kR&`n)40{kj z2j#ABym&j~4f>6wukk~wYi^!m{@LWBx4_64ZbBh4OM)|k8;@-UQGSU1V|lxS*Ippo zt{-ReUT7H9y0|jDgfnha@eSy3Mgd$Ohg0ZsljW84h@@MVFC987rtY;jKELYQ6g5-8 zv~(7lc|O-!0{Nu*Y^jl!BxeNVh4dP(I)n78qrDrwPeF8=^(+FhAxc`+Xye@8Yl#ap zme{9v0}IFGrcz+xlk35s@THiaH2>){Kl9NS;P_&lvnpmbCaI;JRCu zf*B&7QrY`b)T}cRo)9uBjiay{e~_0AfxcU9MVx8kcZnT;)wgOy>$}V~J8>*ln|k?F zbVE1+P;kxPEPoAGD;j;OXrqN>mjla*$iol`BOarUap|w29ZUK>cvC@FNpP2^UTAi> zs5Lbev#aNB&Fv0MV0=U|;ODof4ZV1C;ME^c{;H+$kt?EFe==KzCsNAL)61R^g4>Vo zo(4cCIL47YF6_AGT@D?+^+npIYo$%lGuKzs1&KoK5l121=Lep_K*o5-I2vtiw8K|o zrk)v9iz)LEISsfTeX;4Tg#9CY0_mQa>8o#7^qH%qR&+|6G^;gF+4CQoLrlW~gky0| zJ`hhB)eCXy*=y)2Wv6D2c_v1;=YD#$g$c)js00M`BkCv*)nHb`sl3yzEQe#kXC5;YypTkdWb@vEEM_Ew` zh=}rH?ndxf;P?1J?WU7QRT~%b;eEhluqsdGt$gAlm1K>9+B44JIrk$_mPku|dYYd; zdVe-XU5dm4!{TBNdH&GRwVT5`mF}|n)lfVFik9GD6nM+agvlX$Z5TeeBpx+d!m4M9 zN}&aSBjuf1T@T_jbl*o^AdZ?!i4lr~jQn7;F(fc4ShgdDxDfX%w#iK?|x zC0I!S^3(z(jzh3ylgQ^Bw_}WOJ+z%A6ewm&8R3nTAB`LWdv+t7^Y5YSwcguP_L*X- zmI`U7+KU_H#V5i`6&z!bGJE5W+Kq~??L#r!EOG)0vXCQUK6&8&7}UuPuYyKaxh+%F zy-iF!&(>dV8zWURqDmE2Knhiqo&d+tYRXEQ>fa6x(4PakHQEF11Mc=5DaN_h zE9GL-#Vn93>qbX(IMSkyKPWv)BDgta9iZKthiB9Sr!9&@z);B$`0 z8VTu#l6n(Gh*A^`K~Q~w1D~J%IM7#7MNL;<3~f^DID#KCFo%KVpvd>_+f2%?B!j7P zj)tr2E2LE3d_6lyT1X*U3W7uOJ2t>L8@)&;10$VnX6rY&)x|+2mb#Kh-2VXiKKSEM zxlrwqgXw?|Kc2bHoo-M^ZmqQ69Sm`OnE{oN(_mw?b{j_QOM zj#5FqkUR6=`0FJ|e&{~OLDt)Bb@2Ij3U4u&I0+FL$iX11WFC8tbUPWZb4f@etTxcmT6tm8oS>dITWGj)8$9{D}^~3M#i<_1tn#l+Q>U8XK zuq0dl8e6Exh4Wkwl1%W(BrP6aY-|GUZsB{9zNZJAY8tnwr>MBB->U0XWpf%9WN-?A zFhZP;6l7_|gR5;lH_$Xz%A18HJxuhB=#qkR8bREB0VCpt)W_VBMAo|3$iZ-h~($fLtYbfU3XP@hI;DbM$yn(>g1M@ z2mEBl`^R8+0r7hbo&e*GI%-m?r|ql&&J^t&_s(?u)=WbAu%_p149S2`s2M%~0KZ90 zt{s%YBx)BVk_S2M{{WADJqj9#3Mr0Synu35Qv>qP@zKAh*}`RhP48t;vi_R5jQveNJL+D8}! ze*jK(ppoPQ%0_N^;A1~sM2jNs)w3miqKYWkZm0#A7gAM6AZ^b$C;tF}salJyB}6Sx zENkd+SHH-Q;iy^*vfMh#Ijs;&aY{HHCz6=NL~Qu`tmI@6IoeOL(N~zVmiuX|iZZzv!2yK92HTIidPLHMO}v&~M%3FKMQOA}2hY0r99K=kwRk&lf5sz4(!OsC&i2;~aG^ zw6a&m(aMpQBq>60fk`R=7{Jf2v}vxv$cLS9C%pJ0(H9X}m$bEImPl1{(V%sxjgPn@ zQZxQ;h<`;Z9jfc&RM#5NOqO~ltbrJ9S9W0*Ng#o=I}yhx9@@p1!t0Xw4^48u-0oJi zud4lHN|aFjs3c-NiqehXpXW_?g+L`cy?wtYFw08?PUi6*Lp5Y=>)zdWcERsST z{3SMJTPGlUf$5x_ry6N8lv&r09V)XlWMJd8nFH`pGxa&ru}Nu(gH0nM<)q^k8J*3wAJcNGlEu;TRalR zmHz-gT{Nh#t9s>%rdoA{jsir@?qRL3I;v(^sB8d@mYL4y}8^!)6JlBhHMny6N04_N>U^vuDiG7an@Up6cpTTaIqqapo(v}NcD3x(isCh6B zTgz{VbDRQwGwYzQ(oT{|{0gX)E#v%Jx;SArkh%Rt40VMjKz!UP< z&YJ`eb?Wm7G6mZMy}Bf zNi){OwJgn*Wg$RZ5^lx18*2bS| zs;PMLNmiv~4Z+}?gO8W4H3?Tl(aKsXIMs8*MI!!XMIsCl_xurUW$qmY)CcINcDEL8@_Kf4uo;A~Twa`T9454t`t8hm? zpzD|VkD@wyqp9mCswm`AC4H>~r4Qck?c3$2PM8qjo3q!((5~6VP%;3o3x*u}oNBD= zX8!=5>Z2zLBp`$Dok+#uwJasYE#|5dpM_Zi1Nf;^p`N3Wqqxs)X?Mv^-dT|T{suGn z=&^+$Qg8B@9kh(Zw0ll*rDRzZ#{lQsNl7MhtTCnlG1_-=r_^!f!#Ln+8g6PZR31BO zMM_3;RDv`yRmp5vgXlQdw3AgF{42)2qq2{rodH2nVd>j_EEe9AsHvufV>R`5fYmeY z7~Ld=$t-)5>UsHSnohFodW9%2aMDNpiYST?;@WpX;qTb46*JP@?o5*b`x$A~a8+;! z+{?~5a*O@V$LeDrWNl<%I>#D!5I!mgl zER}SfJ>sWG+G?b4hFQ`^br?A#0lqE(91uA@@Ig*V#*s0?Ta|(q?zHjhpQmZA^UyrB zvc{6{nrez+h92zT5Bzu2ioY5&5GrQ5TsF~F-?V~=9|f_;G1xmbE4YAVWkT8c7=4OO+gwqOe6288j2->L3OxNkq;UYREv0C?1&g{B&93#lNR)vr_cuP1@j!Do6~E zGRw(kImsmaZG{}3!11BDywrvhD#|C771${_+vrX^@&5pWp_F#IVx=`cPefjLM02z*8lEtq5*gflKze{XemZjuGSyQ?Xb?#@3T%w* zTpmcyHnyWCi5k7C7MdzXjkaLO%1_LKe;(SFw$g=_ri!keU~$U3WXOH{;C@<#*&!VT zWj-RQrzui!N|0Z;2{u?BGJk~m4;S4V5;}s zoaE$ufEt6Gy+wOK&kN4E1x&}4{oIfSXB7eMe~XRIB8w6f_(r!oc{oRhVGWHK5CjeCW>NH z;AA{8{C#yHEOj+>7<&48$k&&t`oolfH1Ls)A)}Z#MORZADYtW|dZH;H zAT<8~vkY=}=ZxTY)L;CT)xwPxU0pYqJc|)9#>_|u=Ztqcb}X49p29f6zi7E<{U&-E zNf^sRcaJAI+Y^5$(>cFLo`7Y^lH{Kw3ZLZqsz-%ZNSiXvQr{pIf2NWi9aut>epZu0b z`8b%UPQN|vB@WAvt&m#W-k0e{M8+jzQJ=k^!=uWq)@uQ{E z&XrM9-6cwi8B{GV#6n{y8SRz>KI(n61w+#`^s`AMzFfzCV%rj+MfM#f}YQHrxjB*Kc7(=q7BHvXP;AzbrnRV zp;dVoMW#dqlm;`dM7sx5aLy}GhWc^Wnn zP)0$=w$Ly>T35X5xW&S{;On}XOs+!B3Y_39k_6AtoqQ2;?Qf8qx#RPn%Ut6 zr=^yvT6*h^Z1);riMD<RJ&&Wg~an-#F6 za&TMUopW_xir0@3D|&wOOGxrn^z{=78bBC%gzx0B%kr5g9go*t1>nu~>O2RgygHzm zQ&x|FW8xD?p#4b$^V776N^MKf4M(#C(OLk`Krz4d=SC$DOw{$8R#nMxskwgHWso|* zo90NeG5f|$6a|Sn2cFvNevIl)mg*jXvD{wiJoR(YMI`la<)gfXem%;H6cE`Q4^4C5 zi^7VB!)m{_%O}~^=}w|3a2`#IWeAJMhHY?|3a(t<>WN03Sqwboc0 zZb6rE!$t@>Wdqw8IM6(gPoH&g{{S<5F)dz=V^7+PZ|v@Mo#vaV=_zWj7VfXIt*!{# zXBAWq%^HD{%;_N*0C(H<)E%d&`iA{NB((KEN!?>~;jQorpz6bh%u}%(AMEOx@e8Rs zv!X80SfJ__s;8=_6#{br4i|Y-8N&?r89zSS=bOJu(%m|i;eB_fHFZ-o%G;%YrcQD2 z5(Wkb9@=E}u#?)SUqAgYad>W_!B5IkUkd*Kf8g%6>Mp#u!R5_CYz0&g+DB0X9C46Z zBb{=Ok9|_{evq{FokaEY(#L3}YH93sdwhoyN_TRpxZw69BN_mvsqs$Az*u_Ms40~wuWBB=T+k*H3fqVX@SdZLP}sow8-sc6J6RbMi(Se3gpnZN-_=RUe#NvW!N6ZtTu zf^lC`E5R4X~_YkbTx2)^vJo#)pf|8EZFY#oo`vxlon=NYr_uHNWy5~2^c`5X(d1k zzsEt89c|Q>#1PZnuDW^!JFAma?DV{{UX~k4?Dk63-!z@>0wEHI7*_!`_2mB%kHa;A&03 zcOrj2KRyqk3(;>+Rx54Sc;cOT8G{KS7~%GxiFoa!NGfg*bb^lEX6ezth@Md(DpdG~{v~>`tPdTEwTj80)4(!}3V0x3=*HiRTHimGi@Uzmbdf;7z#V|mslJw`qgsLJ2a>g`on-hW=(Y2(~V#wa9a zQJx0k**df-{{TsE1}cUox!oxn)Kyw0TxZ_^>PnCFlki60yiL>_(a2!UY?-m?kGaOK zP?PBB6zi%gI#1BzIGIfTC7}a6C9^)5^_NmHeuowZRr9<+x-$;u8+2noo1I({{*@jD zDuSI;GUuEnny3E8wv+U&@QOH?(^qv3QBj?+S*kPqRA_ve_m|*a_38MPTKXp*<|-SDQ6 zx7n>dV_I+s5nFcW-#ecJLU%vYtEZ$5`lrH9qOD=Vn#!1If&8}}XUm3tW0tq ze;4}S#Ga*~gR1(@s`$dC3{;S)hKd89-Hd!B`ef(prQw!GI&!e(7}r2aXmLd16$uK| zC~7kyA=Ihv3ilr8-&372P?66SP2$>>kkd-4f_2{#p6ZN!LjXVx+a2_>QC)$RYA9LJ zWHN~W8Osb3*zfWkhLIjvQUb5V@R6>X%4TSF*0$>%lKD>;Ox9G_Tj!&WQBhihdpQ_& zG2jIX>fj!7J#}(;Zx;Um1ZmxmnyXCmG+-PS^PG|SYLTglo+#j&S24wvj6Y==Cj;1I zllbc8=$e`7yeo>CCQykPLWFWhnEa2+SB?!+fRWCn{O_IWBjNF=SUSr$mEOv;}Y$6`Zq$kc^DRI)0xlE zaYVRa9y7q?4X5dmjU-}}1B!_=oT`=#qwqZc039NR2J{_QZP>Kcbm=s0CRj}gW1{6iZ~ zTxZ>M@1(j)uc`XVhQVdr;<3aNNS_~*7Ct#x4@Cn%Tn}9-))o%EzE+uS?F-vuP>{vF zQ_Ddg?*ohG|l9Opcye zoy>+6j02nzkUa+;nn@;Q5*Z?puh3Bk{INSkU#huX)FM6B_)fHKWGj; zIX>DjM)L^S(PR;jc>Smu2i)=X(^{GuRx$~wX=HrhgA%cC!x_iVQY{3|?8|}%Rlx+~ z-2C+4>=lV2oo8s2ch9%JPhs^sv_O8>0@YX5O#v}Tj#un)(#FO#AOOG;2>ZQ<9k|rc zwoDfW;^~qbn0arI!*Tg)Go)6SRn%8L`X4cl$EuXYxlhHpTNrHTB!kCpbYJ^p2w3Xv z%%i?)0~~vt=u{M)vfSF}3Qb^=SZ37(2z&m5N#7;jAS<{KtK~qUl-{46U9DCS^OUJc%O$757z*!+<@2JP)R&D7t3FW22EQbQXG3$qNFi zD<5;SY0+e&sjF6MI%;;)$R3AYcqggdx-tei+m^@IjUnBQRYWZ{OTwW( z+R-t_4LoYV{tQ^_dW+1IkstBO%9DbjHoRx^2LtP;j}xaKW|VM#5ir60*ZS#=OpO%5 zytYs{!?@e|ja9Iz3rAU6@vGZfoXUA*kwlC?-OusUikqZ06s-l?ny{%|t%Oad{gIKa zZMOOvsQ&=R?SibX8C_q0J@K#~;x!>HrrR_u#U-IrkBn}FuO7|DH8)c#f$Hm}p00vR zVKTu+V=**@#>hb&sZvSj*snV03)h1EOL6L2y6ZjW(;Yobz{b^z@k+?D2TjPTK*2@r z+z(9arr)P*$yLqHidl#bR(V4?9*vN5jyvN?HMGW$<;PPp=e-p}O`dysY&B_;sE44Z zz5d2)jcJmpSK^&r_LKYA!5JC!I_9s^5|^j1o+VN}y0Vgdx@Cha7#`9S^wi6ijUwQH$56SX&bn4%@_a*#PAC!fi62UmKpot#ABiSE*jf8+8R zStu@Xs)^}nAt$oNW^?}l66!9xhpJjluv@5RLJ8j!m2a04H}(8>Q;KSdDj>aF;*v=AH9guFnjyC& zZ4LKNBxPHik726b?|p`^siL`0JrI^>+RFoNQb_a+N%a{X`mk#{r>B~sp=7R&#~7L} zGx_9ds_}A$j-}}ZtJs zji`FsqE$`N&WkFr9CA7SAn98}EX;z>d%IiNN5u*Ff}dVhvU`7LJn6?#{id>ksw!`B zTxO>ngOMt(aB>QQM{aeh3Yezs26-2f4te#{S(Tkm0+HVbzMsgD%7lTny$+ep6RYhm zjJV0pbnpoEX(OptP(cTb>RlX77$XN!Y*k$yNjN#jeLh^q11b1UmX#L8%yIgTewy~T z2XclUzb$)5MID=4`ebz#N|^1o2Xc4{jHLcb8$(ym(m%!qqFTl2%DO6PWLT0}mS77p zzyJ`LKOw4$Umm*6KonQCqaKmb(!&7$3!Prx7S#1uR9GSE{!BLUeWIb=`jf^as#ZS~Hl?1ZeKIy7(a($)JC9INMN4L;hMHuNpFU%{zV7J5 z?(HYyz#n^_`OQyj@MEklb?5E(D}5r!OEE=f+n-^;)yqwf`kQR1>Lk^wLAOoVJQTUi z)KoVMrA^h!#}ikmrj2)T<`TRGUjG0Sa&QJo(Qi_8y|2TLf|948A%x!pZWWTmDkYR0 zWRqRAjhG?k8Lh_ zBBg!)0dmz3x{9WX@7DKP+B<|-5mi$pa7!d*SfI+GL61-YA1rBw6+;_M8|`o;iE<)L zdJLTRCyx2kYI>_wR;g-e-Cm&~BobM^EOFf9zo^uO9b8nl_+x4~WsVYx7I|BcqmWb{ z%yFMy{EX`axnq6@jYNht467rd%BqqH_RdegzZ%|Km338Hr`T$0pp5Nh6Kq}HybNc) zw~o4!nv$g;vwgDbR^Dptl)(%UkKI_8xcQ#mgFNa&-_n67W2n3J4^B}#CRR4C4pTh; z0F#Sz6VGGMzNtmNgl@WxoI=neG%E)Ie56c)&mf%h$EKEyQ`@04Qd_C1rH_r!oUjMK zBlzb`t0C#iYQsrSR4bz!i%%6KkgntHxrskqY0zszS%`|&P_@8wSv18_7t|y|F_K3c ziTYzhMUyucx5LvhNcXCl46dQ0jfgMnfaI?oxC0z|Y7(qTPN8Wcq=mxdq?H@Xe49R= zzTZ7-`n=ylNkL0(k``UEM=PH-h#5P6665gBo6BmFnxw3h@X$jO9l${-b{OQdGL!j@ zTj!F7uLxR-bNb4SS=g~rwL~Cx<0rqiq$dwn(M?NQ17jX^%&5q@<^zf&?cV);qWS1XsNih88^Npt+i1ZmeY2{tA zt|;0%8j5}syO%lRk4|)@7^SG8M}bhnL1kd1C_ea6&X%OKNp+KLMSL*F z8QufP(W@u!?ErJ{kDsoqe`+mbU2Iy*Kn>!jarT$ zH5t6&ASF)$K_@?+k+NEiEzV%FM=B7C%@I3yjN}Y~*kkk7Z`F3_Yw4nzzM3`#&fhR+ zk&FO2&p*Rku_}iqS^L}#rNfR2okdqv)6u|Ys;Q@^h<^Nx0MonI>nNNEC;)JyB?i7J7TF9P$p) zmnsk96yx&KSo*@u&=Xx(3^Hf@oF%0{@QpF*3k`kBpuE*|5ULE|)0o+D-z*0@ePyGh z>Dxq6RoY&zSxJ-4r(jH(;1C!B032W(XPqWlYvMLAZS%n9lJjh@by_o4?0)Dp?78}9 z8gCu8s=lB=CHplpxl(&b22W+rKbX_%!qsubFWIhvWRxm-=^Ks5fD{Ao>EA?`j+DLh zZQdJSRNB!h<%`aRW2r?UIR_y(jOT(f2*=M!d0QT_rNA+1u)#yr6!nq4M1^-9@~{Ms z-G|g^&Cj7M6<3+=Rdmff%FQ6!bH!Bhl|wm9DfzW)GV0)zA% z`fA{>@GHbP;G~jDD{@O$D#GzqRR|gxU+$@5HokZnLU2w97&=^cIk)f|I#`nU{{VxX zZe1PI@x{I?1uHorKpTMik`Dvtrvsqvba0uXq@`{%zLpg${?oQ`_-b-yIFTo|O-}L1 z(XeCKjtJw8M$|@YcEf)iD!31_6x(W8=YV7GA zoADaU;nMWyPh0Hu5yiSyN~(qhqj@)vjBr6T*F#Vp_A_f&uST6bfBd;ZUjq_Dv3 z8HPz@+TB@sIEAHULE=Y-o;&qFOH*5<@cIgqB!;G0ZPzGf5wMdWC@u-lIX;6QJyv%< zhw*o$C>Dkei|U#k$9-jWJ-%1_Lv{+xfR>F%VUdz@bH+RFZk?(V7((DM6KFr#|QI{{XZ&{PC`wvBp^TKfk$`9-?^VxqaP_n>Qa3 zE3OgS=)6Itt%2?FH9R$I8A1?{aLV8w2=&G_HEf~jyVOCg9ZydqH~k!dD}O$J4Sfuq zE%z9_y1_?ShxaN1Ob_7M(2diA79I%?%pUxj*SewCk0Z!j!qbPVSrb zig;=}ZGOA|0J}K0r=siOiRAlC1ypY25uc`-$nI{{T9eu>6SBRd?v?b=m&_Hg$z0j1G5JTbMEW?Q%bcxzq5>sqx9(!TU?5 zlJ?V2?>SNI7rJ&1wAmx~qmUE)^$%CmNhxD+>8K{pt5TyM%nfw4cY*#Q+vy9eHaq0` zCF7v2`#Ft4_)4UT2P5wWZV1RYI1X(73>tv2U+=GNt91+^rKS_CdGu)u1!6FAsge$s zv{}=njbFZeKO}cfUt?VV0F#iax<94nZL(M)jQW_%$NY|(({x8lQrw}eN?L~U+jo-H zB%^(J&+*q-UOW}0w%e*{%ob;S+Fj6_!9kIx&Hvrw%6jffR@|PjC(#Qwil7S{anPPM&;)jZM8^m_H&V}iFO4h+6$2wHO_GsEBPyrzZODP;q5=?rLl00$?}M%|yY&ZCR94R=U2S|qNg41#i@DEXjCbv>uzsGahMlB> zshB4%@Urpmq*l{$nF?ZAPi?s*en(2n;wvP#JZtR#0MR4+GZ?ClZ@quhj%1o?-*nQv zjqc1?{{S6MTWG0iE_RxPt`knvt4S1N{Fv|G-(4Se=}w(U+HR$yu|Xa=YM7%E5%Md8 z{B>L2tzH;SP~)MR?rZ3PnqBfMQ%bvnu|P)PS8(Gzj@`M@gHh&iqS4Cn4-1x&Tbh5F zwJlvd%;`|?xsL;R41W>EylvF-OR_a6xyj26{{SsV+oUqoA1bh_u>i8Fus>YtP2ogR z&-+Ogd-ey{(~W4Oj>KfMq>5pVsl$#`IT$C~R&|Ohicb&Y+Mt$(S$kxRPayt7RaG5) zu~ZGTQ3Z31lgVFymaa=<7wAeQE&{a-;h6d#K0*$P9`Oi%oqd%7-BhZ~5qS3m{(Syg z2J8O-DD}L-mxE6T?fzztYyh)PtPTXIz>jPX%hynSXGFEPRfPnb{FDSC11B7J^~Rf( zdj&3~Y}V+cIT95+Nh|%_X)$g^TyETZ_R%9+Bj1>%mw|u?1pYkfw3ITep8_?+_!o^-R>%)@yu$w$5;s zbv&5i-P;*m%rod0_qAX}OFi4gC8ngO^D8Q95;)`RRe)2!2@z_l%$33zA+7{{lp19h& zdY0bv+Gbj4(m%8;3_QjQfyq6OC!A_s?X{*d@yiq*Vg1H!qXQkW$J0%OHj13Df=Q|w zrg#4U8C744<5PzooRh%qtgT|mxHS#AdBFu+)EsB=<4h^(>tTXsm`unU;t@)$8{39B z&u>k7O6zP*PaDRKFdUM~ zPX~_U+qR6!37G;p;|!>H{7-Ivnq_;hih{>H(!^p%QxKGu_*zeadyMyBK3|5da9U%2 zk(%JWF&s5ktBp-FGkJ1CVr4}b+mDDA93M|yXHt_IS)A{*Tq9s}x#&pzv7G7eOVdei z>6lWgvX*4PJD{7*MZ)0xU5`1`n5?9Dnc}NQML!bm&OZ%jcw+ev%wSy9_IRXKl$tQd zX!EIA3$Zu=621BD>#RvfNl93u8fv8YK^0JjjZe5F9zP$Rr|Vo?0HvitG&%jF7|4wM zeb3WM($Fj@AX# zY^jc>5I_>fk|Qs24%3``^ZDtGHP#1T*iyW5DcZ{$?ZapM<^vkKU5RXoxL7BEw9?Jy zMU0tXjWWLbhjFbSrG;Sf=eRXwMTu3brVsfa>!N{CewDw)?X>KtyUgl;f@JAAXs;>E zbhJ^1Y{-ZX)9>(+-|5H8Qjsl@h|#Wg(ZDzhlpb4P4{!;`Sr~v5-Zz@{XxKz|6+xU$Ynv@0g0DS1K2ASkA1YDuH9Sbr{OY=m;tYJnKJaqYMNMd{02FB8A7xoes#Cxsg)P)l`6I~7c2Ag7Dtak!X(3Oz^}#(f5Z>ijCQN@a`fQ_#M6BXJJ7?%BvE z<=a-!jvBzwLl_FfBsj<;>87(#z^K4gLc2jHX#^j`9{LIlrRuyNvC}AedE=UCGna~$ zGJT04ZiBeN>mseEiZL;!C*UZN%YP+)&BG}uEpW0qm6*wlwz&)&U@>6 zdFmmYH1&y9P86N59_CUr#&C6O;6vxFS_O%gF_%+<4{`O>TM09l8Tota_VM?_L(}*7 z>njXJ?AIwb%!r$Q$vb3~Bl`?;RQu$6W{;YwU|)@;F z9F^nbep*}^P9>QPC{Mu{`_6y6NmRulgiII~cEAhi>)%j<@E0*>MsVB~u44eLqoo^587ij{C&yQDTKHvRm5uMODCe1f=qMv;oA_uB=lV%>9kw|j>F$cSUSuGzopPK(8P6Ya zGD!N7u6LyA`l+S}pR{suvJ^76J%~m05~a70ncs@mvoMmb zDq4DmjL5kL2|!dI+Bw12iE5S`rr)T25H z(_G~98;lw=P>uPH{{V)GEIkXsn~q zvg17!3{hd2($>cEACOJsKY%AzvCnSmbPJNbx5y<~VX3pnOK`5Eu83UW`%M#6(W)&( zc`N2d52isL{{Sx9XB^EWri$Sl^}PHsJz0c&fK^kIuB(Hl;p(5z`ijw3lSx@YK=oGn z%)2FuqBedvFYdTqtUY)=z}GfWTCUAhX{c=13b`3~;@#)WT%Iz|jEw@8=RwLlNILo& zdWjaMsz#uh1{R%Sd5QKNxId1aTe@qgZgj*_bk*9o8QHRmLd5&Do=mY+)wxt4;D;Flk6!vDse5Uc z8|xNgve33Tp@y>4a$1%dXe)w6gYs0*93JF)eD$q8RXxJE#UvD=sfJbLLzc+K)yc;m z$2v-~$7HqCBR5xDu3m20XNu7S)HXMBmSt7obB@PE^ndb9DFmxQ)W2y1aan3<<5GL) z8-J(ask5H7_JpU$sS_P-MW?8#WT*2Z5X!TJF|br9Lw(?IKJTu&`^GDM4^ntPB+|(e z9m!EoD}L({kVgm5x2J6DkM5L`RJ_s~x(a!L+Y>k?RGtAN89lki54O7g)k#&>pQ3#e z+iR)X<1L;e2^A==Btl{gaz@;gah~1%w0K&nATukYkd`RrNZL8+HaR2B^JIA&2M6MB zgb${4tklr?K6G_Zp;Lt-Q}C{Sxc2tZoZbm_o7=^0y&}BV#%23VG-YQrp+~?2At8&5 z?F;RKdEy7CI%exbYXSN@sBJUjY^`&NnP2F>Py?QGllbX7TjXkzTm#j2ItVQ?TJBR^ zDk>#s+?2}lNWh%rfa3~#az7nK(b32d)m6`OhMiw29ZWIg0q7SjbKBEAXr7J}FGs9G z&i#+3XJP=lfV1UANG7)VhzOmUw3bp(_|6V2YgrDD>RN zo<9w0v@!jUWHQK%#GTaa>fHC|C)??$`bzm~YbG*O2qAR~4#HpJ9>*Wc-%}K#cG(3m zt*)(C*%UPKw5r6Oe9ZC)^gV#kw8BkLhm|Z7tio1lV_$^NUXg7o0p3fMQhr&_eH-0w zeM91}S=w!uh}wIku*DQHjJm5b29iQl3?U@3^ihGG4cxjK=XRc+g8u+D9kH5WBs8?~ znPy@;4guUxunmt~YWMJ4p!&n69@l-ebo9?8w6ap%g~+uZnxwFdmvBOig*aTFgbWkT ziZHgUxipog4i5u*yQk`*rRo~$3afo&Q$+1)CRyp_D}-fc+M9zA;CA>3&aMuCw|JXX zUp3C}V764u>d0%WYZ(Miv#~2;88+hv;rnp)u=`9sB&0HVLo_Qi~A_N`$ur`u=0gM5Y^48aeH%QGKvPq3A zJS6bm-p_LCgHdssX$bNlsg^28axzgvF?a3D5(y_qjp5Hk*K{;pKU2__Xsz?cvPn+_ z9$8l__qTz(FwfrIol=!ORaHaOD^q%d^^|bV@gb*x<~ZYU4%nBz;#jsac4RD zJCG`r3+5o?a!y%6)lW_OJ^1I)(3@>fOH=hNo6PfkiaN38Lf*1Kcw~RzeMhdog*DO| zn7>?FYSOk6pv@di8+Hc_xb^oQqv@xy%>}}kNfW6DoE}F%Eh{FP8J64qer3Zm#mkNU zzVE=}UY_x1#xD-(;-$D!)n9FK{36@b@U=Z;0DkIE`@``gR?kcRm3|rBWlCP7Hx84n zCk8vDWueconFcZS8oK4Cr}BzaBC2|+CkOpr$50m@kLb$y-KzRx$5o#H0BpBH;Qep` z{(6{j>M-!gma00K#gmVOI6-6S!1|cYhiJa*7;+RNdEv-omO{G2>J>^RWD3*^&d-Jq+ETr&VVBx<9tMI zWzTRhetMv8cAmHCYl>5KM@?7~c7Cq4 zT`xNwoolM9872yG@O)r`1~})}R$T|_8{x%$HYS$kY?P1wNu@5J{{W>KZ{?xK;utb7 zdcI@xe$VUia`8649R5}v-!6Y-f$1ro%n@Pbf4UdgWMerv1JslB(|S5fjU~RC8Lgse zrUqwMe3-!?VTs^&9CCY|4qCeJ!)ofd?K#K|i2ws=&NJ%VV;Rw; zJx$Y9aLrQ(QQHhrKF#ksq907J#mFS%Bh(*lY>sSwAnfJk(`Ls10Eq^^YKVHPY;AUt z>a8DZiT0vFSxU7Ll^|t9;jy){M(!}j+Zv9l@Xx~ee{WgQbQafU1I(w5>2k#2d{C9{ zPs>LzG*wt?N~&6bdCW7bAK|5b&s2bw+)tn;NQKT(4fKlO}Osr9*miK+OvJ4@j zyStS;!{-wDnK=M+pNA{h>AU!4eTfOTc$IlZ=K`{ZmUTZ}sE6{#i|VN>l9p+1QqxTW zE?dl{$s^ae@9oZ#vMScL_KoPcXNoFvQJD*H47%vS-}yfCEpesk zEf-qUExM%Ah}3W;n9Cu zc&SIyJy!*n>^G`{z=XJHtuqM5~CgS zs@kTf^n|iZu-y7SQ5j}%wGjvbQ^_0LCP2@rByp~#x%ll#)SW;&ccLYuwgB5|?zQto zOd~ixQn3nK+b8RdY1K5=ZlCCi{;j5~r0UzvGeF?pYlTkaY2!&4DmKtn8JGoMO=bEt z8vYvK*Yy1Nc_#1Y`bRRqRCS#U23!3{PTL=7BAq6hwsJqwM#uZw4!`)4Byk;c{_5s*8D&O2zw zr)fMI@fz6E*<$G4pr=4Q$mF1>XNx_9qsAS75v9EpS4uTQ#&WNDzr+0>HflU%>*-LC zEzkqTLTCBtdgJ0xTvww@HYDyHC`8V>a%~+TjOd*{NZKQ zWz?UbPlT71X6fsPQgrP2_(XLpSrGpKQc=78{WBhy8u#DakQqEya_N6;pZKHa4NX*) zb9t3jH5G1udS^KNwKLIG5iefQ$5I&5)G?!(P=)v<1r7-W0to~hcLQA$)W4#99TaOC zmhVf{zhnc>sjl5gN=EazN40@3v|~9cq#j8i3Q0OhQQs$yC?!ZDsB;rI%iuZKN%z1S z?P&Cvb16p`EiUILRjibGmw!RMGsLxfYL^U)wc>CBAPlRLOAbC{_W5gO<#=45eQ_G6Lsuw! z_MuUE6GVcTJcNkjVgiDG==pkT;jjUZt(hx z4JH~X7jyDXXE{GH>G|s6?-n(-$F_z>KThufcla`-AuzLX@()3Wc|^m<@ZWmNad`lg;2y4umhGP@;hhe z@23=164fz+UEY5rGI9sY<)$R!FgAo6kHR~5$9+7uPb@W?_kg&;?s55RD+T^wix zbyFE?nSoOHF%=3QW(tycz$b&7FTnnUj?-0B*B45Ks<_rj^t1>Rx0Mo%ImrF?Dn@-3 zf6h7q>96qTtA9wFr%B6D(by;|QcH}fFP37XIAj6X=P!_-4?esAb=7deEN5hI6l@b{ zf(BIz27V9};A1_$ns%QX_kqtp=@SU^$0ylf2Y15aVgLiw{YSQwdT3>d6ex~U@Z}HQ zWAZul8eV9h?RW&FjUL1fyU`Cn5hK?Gj(z?0w68ikq;b;iUL^-`$Rh(`AJk9>3 zXE`VCoN?$o>CBMG?Y3H-tHF$%{6Ac2Hw~2uD>4FAum;@vdk}s@zM*4j;iGAuStu#y zVcZn}jQer;>N-kleTyVCvPTd(K3ll&jEsZFr}uNI#hs&7j!_#(2_*B6eDXQtOx>b# zHx`KFuy2GO{l}-ib!nAEPuOEZ-{ZF^OAtu&_l`K@a6guq-YIJS#T6RYOH#FRDyhKS zj;t7V7(4@_R)NfH8A~w)WFA?5pZNFC#r6p1>We)iP`*RRT41>Hfm~pmf)5~q2BUly zht(Z7Z8aZgg4;-b5D8UPascC={q)9rZ03FHW@b~jGVW#r`yif3)Z*JxDn{Q?TBVO> zm6#rVat;ogTxo7=6H7r|Dq{z1k*kdH&tQ2S@$w_s;CSTU4A8PA*k?^|o|3t9RUqD@ z;oMh_{jxYkaSc3qdHsqxwp^S+#x{o;L*LVc6_9XVvV@9)*VU=Wz4nYeb=hIAT?KHE-^s_9Qq3GR@V+sItEh`7Is1;d)SWdw zYzVols+J*@DN?>?9=l{AYd+vsW%1qHnNXKCXD=C};Mk@}q;+beM$UrSn) zBBIkTmm>ULWR>e8g#h{xbIv>V(@P?XyDUCkY^uAMlwdFpa@fEa$vwV$n|pn}gp%|)>{ggN# zUOCYW+jbR>f|fM{07iVEK7epE&Mu#hBtK=iT%shFz?ldiK*~Vl*lP`Et&TMEZ`F*< z55+P>Mm;|2jT4I|sai*;nbdbNvu{!OsL1|0@T8)cY^}G{@-WQ|o??DnF#NTO zU$l#y^io`>Nl@inBChr0pZm4FZ7t54MR{usk+S89Kp1}v9Rsu)5vPWZI@O}Km6gEa zo^&cl$Yg`t*quKSO$Ju3!E>kdESud}e6+yC)4!6+^#p)IFjXXbf$BbEQWW)7v{ZsR zX>L)jct@#OReph#>R+jQUt%_<+iiN}sH2v2kr=+&gH0Rpf*2g*>N{gksphsq-c?_h z44BSbFP7iyfq|c9#-2xayvWiWlX6;H~bQ@ScNjdh$G4wju^&KlRg;(JGEQ`qh09jAhOp+^Usq5?1K~Re!RpWp4fT?Q|?264;F#D^`)oP^cD1 zU~DtX<>C22S`Lx6(@3%ke=*0br+4t}qAGi3yb&c`Ae<=pBWEiferi7V zfIf4WH}WYmyQsswGVAyb^{ zCYq93iiqM?Lo1vG$j*hy*=Zu&qo|^(jEHI>WBzQ4Pvj1RI>Meuu8uJ@j6!cQsUTpI z27e=`7W+NMnwZkPTqxjWAIuC;6Q6?^=RV}=^7QOAb0Dm)xm8ZX3`ZjaoE!tjs#z0M z62{mAPe#chGN%Wy0Q30hlEE2Tih+n3LT7I5jt`*q(S@?v;r%pTWy+JO<|FTUEl#LU z`J{u#sbG2x#{$H3-_nCP}yr^T1x;T}f2I ze@kLli$wJFau5=+qiEqi*kauN8doo%?iW%*3cjC$m}A2lXmOY5uyN_|-QOZk+bM}*m(0O*KpjyxIOJp!2lC1OI4M=Ps zya_5X?Z-bo4^~~NOZm0;DU9mb5YsBWcpMD!2jQs-d%x;LioW4%qOXx#IkdEx^tWEtj;5lHm}{WXnb%_BzLZfatGI3y1KZ$7hb2PK)F^)YucrU)COUpKqsZIdSsFZM9%3U zB#*8SZ>EkdpWr;H=XFKe^1DghPi~>6MfrZvzVE;f$5XL&7lC%AEltqZd#fJuS4)!r z09?pN@Yb~r{K`x35~SnAV!&$>bm>WEzg69mWBWM2S0rb09tb;*Tj)3#)0(*~&091U z+L`{ysu2vZ1(~op$WTU4$djus%Uja@MNj7R=Y|~_NT|d{Zx?li^X?-Yk@Ff->1(5> zrj{GcUxeK$5d;}&Q|(m%p5=Mq{PcfCa*e9|fAmj1C(rl=?OjvWw?}Ios-ovu;uEr- z2xECJ{TgkwgQsp?J9?n0qrA|KvO!caz9~lKZHJA@#lT_c=iglGS<{^p zQBJhBj}dC_HKc8gE%s?8cO-Tjdwp^=y`!wUlfbUCv-OSo({QGvn56||Zlim~<=J0u z?&D)H2fhmW>P1QoIrH|}9@#HvkFt)X=_(26dXD!MO%(Lf(Nr}C`8ZjCA;TaY*J)Fe z&RF_r@(JbHwPtWVgAu0o+m(;RPMxFbUYNO4Ow+`&E5_TSoPj$uQ4^BrQ5XLJ(L=-Q<<@JB z9p3kAsFS*)!7M}M7h>RkIu^P9i5G=`GQ-vus+j=7HOiJ`armn^*HMV20O3I&BcQJn zx|;W4u-fe%HHf-~_g@_i36TSY%MH#~)C`ZqKHATd4m!FU3Cif_c)v$G-4!~|LmWL# zTNIKd$~$YA>EJ3xB1dLZG=vgJ7z>OZ`mpR?7}nIyO=q4Pe@;r&%{@d^tYnsjal~)5 z?P=Hy?G5mNa!#z?t-7~{-Wgl1T{0kg_m(;uFSil|jrZi0{aBnAY;sE-0rV8&{{XS+ zsUF!kiH^%~6aK}wBroVM6fwLTwsHPdwuMNvyjB)(Xl z@p7Cr)3XdN=RJ;C{3Ec=dule-;w&9QG?egOZP!ZGPdSY(U!AqNUHAhE54XOG>~;z| zexkcs>nW+ORJ7ETh+*W+7M*JL%c*>!DI-sHEvzbp+A^uQj<^jo5n=5nVc+ ze-D8PtM>T@D<~9FV4pFH@>q8|9ggooMN=gmG&5J+768RSI=^RkrKSLw{w_SnI9SJT zymQZEqZ|E^t#{6zx7w~X%q|sg46s#8_KZdoJA*LX06#r6>W+>}T$HavaA{3lXl0{l zc86^4+(3j|t33>}eVXAtMaF7SCXSgHa2t+8 z79gBs_G6L8lkool^oQu4rdVk@>eB?WsKV7Nn5T>V2}i^S$+ADr*F(k79ZfZ{YN#H9 zstFXJ4L-(j2~yZ$j4|9tJ&4Y!p1A!M9_L3|mJX0>Ez0LpP7Q4$tguru$(EOD9HQ-K z+!p}+JZDLs9nXAvn=oshIQdeiA4mQ>r}Fztho>zaHF{*N=sysinrFi#6>O^^`36!0 z{eCSF&vEesqo)&GtcLYNoIOpu9%_$Mu;VA?>#k?I{)*l#^jt!-!_Kp(>L}E1YFeag zeM5223|cnl`$Qj}hp7JmN>3HMGwO!vuDPe4mbRN}%}HM#$19ErWh5{o*Rj+}QTLbH ziIL);)jzTG_^~X)9Kgz?e)sj5Hz#xO)vC@|=nzUYRZ*RTRMPErLElpOdA`(47 zBRTnwbrC;_7JGP!u6G-ElQ#)dNl+vM>N}6&^whn!?_#)vJq`MbRb$8#D1W921ZnZf z397R!v1P>VrkP#dJO=41vShH;-1>e00I^9ak^}XP&mV!%CEN6QzC%MjV7*u>k|bv> zQ3Uh-^<9Auq*GVUb-8)f+Y#Xgo_l`c|5LXyy z<2dZU>1zhJNu`V)Nh&+O6XM<@Jh8)$SMyi+_54Z>PMn5V#E}Y^K^>FhAMCe3$4#ZM z+!i#AE0yA0Y>H%P0)dmpK^e<8uda(Ek*!wADk^@=B876!)0O%UiBBi%sGB|B?bkhF z4Tq+yt=2dI^CYjk%#Z@3j?JFr@Sqkw&IWbm@xoJn%07ds@eFuU^Lukuf3Lg~v(Wf~ zYpS@-SzA{;O))h80Aid-BV3#Tu;dJF7(T@4w%6j%h;}wn1@dAMe6W?Y$tMHk>z_>* z^>09R=SFm-{Y_td=)0w|5uZEEXj)U~sm2+PqK;03Y<*W>dXQ2zjKqf<w)X1PtV5pCtoIF)9SPt;<31?_3Ewj&!Z>k{{To{zK*GyxZ3OCZVU}du#dr`!w=6z z)Ssl|U?t0=$zR?ycM^p0>A4O+JqBK6=xJnWD~9 zdyG`|R*IqqB%Tj&J8KfzFI2N+(bOldS0H|RDR|Ckq_RW&3dj2+q?>OJR=#}y0HAt;%i(V6 zXS(>iYql_aBn@k-sgRF+s-o(|@WZY=5b(pqcsj87oz!=>h8ZDhJ8gnmbeu52SsA4} zkROX~IU!G`hFPoQ7@W(r9?}it_~dJGB{Z)RNo}E!d`3w;u#Cry4~GZe*F*d9zLETY z;EewOv003O`e2F8}%PTb#1`yVy`4=PNjh0dXNdg&!&Jnlk~;$XQ-`J z7VezrYh{X_WGH8;tCDGuA5c_{r&av62=A4U&|51iZ1pt`5hR5podG`UBIFOFYO(8& z4m#F5e6>`4M^)5uLGaHED9Um^@k9iMQS$nXjTSEu&8X<(752aMay5Pdn@0V(H}dE5 z=kPYY^)=G6H@0;bS?`Wl0d4e7NJ2@L)Z+6Qvx?&4y-HQOP;M z$EJY-O-WjUc;t!Efhx*Wj2~m8TM`9^dd0@(MvEnVNjtIle?4^YDMOh`*~H6FgolvE z2`o2cvB5p@^V6ltPlqJ-z}ARBBnANIN_niRJ|o*4aiRe7kGcXK$FLyt^wrN|l2|-2 zwaU@vZ?VcZW1Rh|v8sMAGD#zicANvWlZ<-m)U;0D@^3=}G2CHwLJm$%K|TKfuC5;O zXwr#`$1F;6sUj1B{&B$2M^Z*xs3njg0b)Qu+0l)*QnEZ7hyj2A<2dC106hv`ng0M^ zNCcP$H28LB_kHx-y$T`YNSZS#lXn0W_WU%FBAfP!@$<$Gajl~T>x+3?3NZ&_ALFSz zWsR?wC7`!cR8&;T!6SwQ8=1YbNCUAXo&Xs-&RsXqA?Oa7pQ-NiU1}(d){975s?jWh z7~BR2%HG@(!#@s2N2t!aZr|2jKX##}nvU;GrcZ?+3Q_lCJ4YOx4gk+>R=qvp&skI0 z>Fm{4Wa;~IoXHineA(t~f?4Hnha`_dfCn6E#^?(tPjscm*By05*0w4F{{UcFT+Fe` zPck?d`@4=0?v}{bdh;blt|1%l8+2zy(extRD(MlWyrsD@~rw};wEQR$KCf`1Qf zYV>h}@f21vA?5cjexBd=Yp)3HRE~7ryJ8L15&}ZfG>f=^cH^9K4s-JUdT|F((`<|y zDNuuzQ6qd_#~gkdY}6nku%#@{yonfv$vph?$MVyEDj4Sn?4@J?`VhF!eg<)oqM&S% zd!%zfyQy4C7zRaUP~4o8*prQVO4XK-vO!lPe(YXimM4z+I2h-*wlvkL$bp$rj!rYX z45!<_82S2XoX=2W*&8|I{*!_^>_3m^s@j=$ZF0NbW1>G{qm%6i;6m|+NXhjhaoy?1 z=b`&`&#NQ62EE)aaM6Uztvwt|&!HqCBi!KXTuD&zI*Ls0JOX>;_p$H5*3nf;6<~Ef zW<=ho@_6DywIuzSmMQ+Z9-hMI;XDzYmrfO9jC_oAJmxR$e0LICA+VDXbPN zJW+(VeU2t1Vk0DlzMmJv>F=k8J9KO!`xn|~JgDwj z(R6s9Buxxa${2jG{{YibZzD*;&iLfm zK_jsRPv_g|tj%_++{!H7Nfy)CTNvPHgI;kwSP_meRG(ctx6N4w;BnB#LO2SDp#O$Vop+2 zi2#glWkzBE=f0=3x+3`X9MeGag1@irhC#|B!tfLFD(*=92A6APH)SLGN7Gnqoi)mpWHP%j&dH*Q*T2brAK|0k!Prk!+XYO>^Vup@ z)MQT?MUhGN+Q9yK8XjBOr8JFf-jr$@<5dKN0LWx5hQ}ax<4E~e z7@0(oMnT}6!L#{*efiQgcM4i4L)6hst{V!m!dwyVG5z|bD=%o~rjcb*W38a7kJdSx zX$RbK-%TgC-k>UJV3i^4S||HTpO+_a{P@#rJQMXSvsG74v~V0OS0l5y!s+ z9FBN8oHklmq74OAbvPXU%B8XR=OabOaxMr8nrfM+jyZ3X@iQJ{DdoS@4BY8Tn-#`M z6x3YJL-zbO?9fJArn!u(iAz7DH2Fo z)Ox7iMt)cs)J0jWQPWcmi(*Iu@LB~)N6R=Hj+cPg-g5Fu4AYJXkpyS`pG|s_C~Ijp z8|74soZzad{CLiEoppvR5uX15jtYMjgoc z>`Wie-%Rb6+M3#cki$>p=i;8B50-=Gf4fJP=pv_dLez@_@FJx{2>OCcAH?&ljz(xe z8=-%u}D4?nlc`WV_SNnmRcWBy6cF7`Xoc zMEYuOPYNkK&oblJT{x^c+HP$len^DrdJ9K~Jv}p%$lhKT;6|bV{Y8g}Y zCt6k4$nAy?ZrO$PJD9T{pdXf_>27l@4?`^^b0m#~CJ-b5asEyJ0GAommrrY9VyL$baB{HJhbjyL6>Z%4%v_1xw9E*6rm|!wSu@6$n>s z5=KTy@7qJ&Z{X)jb(e_MSF2^$sj8?hlf6NjlH4MpS$2%jp4HCXJj+hnK6{{Uo<xzKb#`JXuBk0?K`h4{%=db%A9dnN3oeFfPhrTd$!DgGm zxLC&Iy+vK2CvY*w*WH7Y?XJ{WBPWu&S~dXgjfx+1JAam!=F0ar7R6MN%Cwzn;)Nw_ zRF$0(_DGAUmEfgRkS2aDfXEkiJ7j9L@uS14Nc<|f-+x+l6;)I*Eqqa33N(O;)f_ep z90YPf-RMrc>DlLx%bmpO{fX2{KPCrISB{D3?xCQXit*Ccs;Fm%NF-H_p(P|;u0LkO zxYNFtr5c|i))yIEcs^@*HRCr{_-Rm9$yO$#-{whesB`5?-la(9H^=WU;tsoW!++AZ z!*39N&uqR)4Z7-ZqLSybIdknChv1X&Dt=mtx&DTJ2-dlh*9TKrWX?y}u0nJl>dcIP z-qm;1AE0FoT#`%E-Y7C>krm$3a6i|D&-^-zQy$DWiq6iqHL7T~+bYs>#J`gv^4w?H za0Wh_dMRWlGOw4P-1XNNbXS4Dq{oIgSfRD`ZI7xf3JU(Oj_b^PaM8z9tAYT4}^lou$e z+*8FQPaf$=z`!F19r$C|Y0rjIbpHTDcq>g6Rmz@P$YGY{b8z3~Dj)We0NtA(3}gKf zt8-FliY+3v@v{9>b@4vBnu4Gt9Vu%J-wQtK%DEOO<5gZukj;Vr0Hb5+tDB=bCd1KP zJ56o2D^BSG#`SX#j$SfOFgAioY-73SCsgNywp#w8>!>=4>6s<3sh6wj$D*&tO>RT= zCZ=#b2F-L^Mo0q(>)%rnw&cRe!cijWt+cfF8--K0_NkEZwh z#+!9r{)VrqEzw&pl=YIq9L6=L%Wjyc+nja*gnXVdaoK>(@m+fgy0$bzD z1wc+}Cvr~!03!MNYD=OmlS>tvHHZmziiVQ_fJys9d^zvUKYlp;HHBnybi11TwH3Mc zERVA#n%M*ryiq|<8p0jq3J%Z*uXDz+6zw!?Dnl?vNnzsa2QAIv~+Eb~+6wE)$k@7kj>yEbR&knj}@109?r>B8V(HRGPtVhDC2PB_t z9zIz*rpusS<=`iRw_;6ig`F$EKYpH%?9KVaS3|X*qQ8R`Bm7#$cDA>nqPtDU&`4Zp z+ok%_!PXY~d%88^p<5C}TAit)PCKgSC%@h~&Wk~%RW(yqJWzpvtbKl`ztdH z=@d&);f_4a06!zAOD!X3_VOqCQRn#`B3f*BZYIorC8>g_b;Lq3QMcbo28eN&VlI9B+44 zSUj$#=x(Z`jazK-v?ax;ZR=enmb?opCrDw6kpl@0JDR|i=*n{5zuu7 zJFj&Kaf!m8a1XADDQT&wZHrHCk}(nje`6{;Irk?#vHAZ14Rqzp!~Xydu2;Biw+{^Z zez46?B|)ugL;@5l=(`!04ZQEj0CoqRLf3wdJ_}p}89Y6pr6>33Dyk`n`UR5%^3vzw zj$ApKFn-fx#P>%6PvHLm;mb+WRhPSj*Gt{b!APB>p_bzmb2#>wW=I~V_nR2_M{xfD z75qKwJMY=9*2`r*V%uNHMxnSvQ121J4wUh^^3_-X6+s{zu{@o1MbGp(@Rqe0(N=YR zq?5s>x`{yl09IJr`RGcs^c=UE=%loGyVNw$hXzEcw?iwH&%_ncmko}@uD0RRtWl_= zjjQnwrDSu-)6nF)eu3*c&TB2#k`HqwBOhOVy|pDv;Z@!ljOlE;Bj5~(-3R0_HQ3+$ zCmk0AK+DzMAXT^+-4$&*=lx$VT>1JycvWWTDCh@7^_N#Pk2jT6_k~$$Q+5IoJZb>L zZVjB{9lhV>WSW>IUFpJ(b}eto-vHE zS7DbKzy}MQ9tRoT)zf}IO=mW{RlBTVpmOYK*UW-8E-=J`KT^(vOQz z6l)BmzH+tqQPA&w>DoJTM|0|XbkY&=mXRHMasrI;q1%^<9vaZ8S*z%(F~%aM$v;k4 zRV}~taq(*60jjpsTi3R0YfxkGQpZJ>-_c^CCRgenu7Lpi(NI8K{{Xc3AHzzIghle~ z=uh^yI#mRh-~K3fLE|q(rS?Nb1yo5OYGtQbH?-nK!6HU{L^&T^-%;erj&&B?z z=Fid}prx?*kxg4`5KCvMrG^T272={o(L%msKISYk+m26uaiLC_T604^HC;oPmOv4M zWDkTB>GS>?o&6wPCH*A2hCe1I3eYDj{{Wy*@6*1Swos=^)4Jat8Dxx9JYoh454L@9 zIMi`VgkpIdxs$d-JT&P!jb}+0(T6(AtVHG+H++iYQ+4zbP%!hSj(DH$vTbY+nC=dl z#XzOi)?K8JhkE26?$8iQm1h%(*Bh9E4;}mQs}_P%-6ud9wv~a^fx!g*p^x`y07iSs zJXj}=c?0RATYD4I)DeYJzho>9eSG%Lu02T+&5AdYB`gLSW?lgF$3FPuLYI=it>lrj zxJ4cYG7rO|{+~%2Sn5s+7TmZakBbLE*Nm;;k1s#6h~)g#A6+ve;FLzvRVMi=B~W8O z2?OEC9{TAI33?FPI(d4UqTY#Fa*GiptMNkt!Cnty=LhMudYw@{DQTj-^-Ol!nzH+_3}`>6Quvf`-00-C#Vu4RxvC3F%7kQX3CAaC&hEf_=$0yqn1*U@7U)0$0>K=l z01g8j{{XG@2U|3__Q!O(ne$5BA?MoaO*1N%Uodd8jlVs;v+74bJvWx&9I=QYl20!n z{6lb2^FE#Qnl(jUU|NV~b@&RB%BP%Q9&?aK8e0_}Se9rgwvmi94X3VdyoKj!(2=YD4CsB(t%L1KjQyKi5+1lsJlHR?N~I6SY-vFgf7k z(;qKQB<~E0VGgXL;UYkOynhWRB{VZezD+GuY7~;E;vjwp9^B*k>nY_UM-w!$k&(5d z+C~mR{{Y7tt0Ef_5px?WFf2hTK*oK!<63=`Btceb04tCQ-N)D0OG^UE#MG_{B#B{N zyyt*H^w!bG5mr8M7)&cBau^;CJ9;0(P_Ypn9YVg; zkf;qLiic4#VrkNu0RZ5g+^8OYIaCroBq-1?NFC$bO6YM8bPt?fdNDN8| z!3mN1fI!keXM&l7z2mO`cei}25;Er2xM!yhBMYNoRtmcjvdC&q%GxT3UbcJDS}US0R4IEQE~z0BsYK z^#@E+^+2@!M-bK2ouF61_!!weI3)fmNAlBwEx}NaCWXRE~saDSee(p?2?VcL$a z9At%_m?>Uxc*b${152ese$iu=V9a|6U;DB6jTM4L+&ZRO2?E@06);80dGQpIGx(ei zee|qdLT8D7#Ya$4jvE0uZ?EI@(~0lYbS$w|&pWdZ@&=i?2h-vJerHg!i(}jb*8ZKk zQM)fP(ae;@jAyWN7-#&^t8FffiF%=Gt9RRHjz&>MD;$?VT2B6?VLve4^o*98siHB( zd#Gs7B{wbrC$|{yrj>P9+E{S~RZ~X1v8##}bqDu%0f+pDw;I~pajm!k_G{7yWAMaj zl?fpHL$M(JMs%kAMkVNao2TWr#$=$GAtZ*AY*Dag_1rd%DIL|R)WdR&N6uD4jLY~D z$U0hfxJDe$EmE!yOlBfR4;ThD{wG^2tklgcwe@qMUL-V85(mwI(6{Q#qe&*FlQPrQ zqUW%94)MlRZQ?s>*VCbYwAteuV%Zhs#n+ zPYWXKzC6l%A2u}v`wj-C-$Gd*`l8hH2^I&Ze1p0+k|WQr!bU$WDfVjkVlmU+tJMo` z25Ch28SR!`*!**kT_IgfT|-zZrMOo$5#{BKCR6G*9FM1_qy+><6%o%?Jw&78E$R+& ztJ+H%h^l~j5;pS~jn5r?(UbGR+yDroD>KsLfW3{(rd_{mh zhdNF^n7F|K{a^aN9Jl#59%>QtQ;oldjYT4Zih660*+N$}rKbmvB3U-SKEx8I<<66+ zt*N)6YU^dfIFO&((t%RA_xOGx{?3I`hH)yzJ%X4?pNPXI@;!)Cf=B14FeMCx#`Q3x zgUl};#z1{A*wtAmZ&!1&SJk~|PSsCSRLTA^PfZl4&NIOu4g-&#GBc<37RsN9$u-M6 zaB(3gx6_?(_9|C~L`a}u!yAI_z|Xij{I%+Ix>7krsE&2#Y*M?qBOZ^OjQqjvp_6@r zjdvO?6Qn_Y&L_wAl-)0B8HjF{{Uw*K_Hqrl^s4MVexU; z`gSK=pGiW|U+xepFkV3(ymPL{hfjQ3^e}4UwV{Pg1cIfFC=VIr5;A^=Ueugz5l&n$ z$ee51-e#f^BdgjYom4T;?BSP%`thH~wv|Yvfqp7zoQ~V1!N=vM5Zx2W%n+ z1Mxb`l4e=Fkvp-&E8{9Yef8!j>uy4_LnQ7cYB*!roE_yyttoNHpmgia#jQwKTva>TCgP0s>uP3(Ilpbk?|K&%zj(5 zuTw`sN?22@0hnaCke|zpjY68*U4>SLo;Dc!+ll&Pfu_w^8bSUe0LQFqa(|AGYZtv1 ze@V`tVVZ_1#D!$@lMG22;EsNpN3JOruGdd=DoLl|+i@QWIOiV6AD)LgQsFe6VQ!$c z+p$$yAf`z7V{^9(GRFfa9rbj7$@f;$Q5kQ2FxlU*@2=^`(kr zQlXZXmPsVro*M|Z07Vrq%xky;3$jYlrzrWJj;0Rd-EVENc7Cq4PoW9;#@ekC=0+X8ME?+L$A(%Hqz@kMQ=k)~MH9y2_IV9hTFb7O&@x;Pl; zP)XBW0n{$FeKx&de4;l`1-+^l822C%?~rtJW&IXVO*QhLYG$^=OXle?{G0$c) zrW6m5=jEcRUj^TR-JLsqE9L2Q>Al^o4=!K#(va=ruVvR`g3lP`7KvtEpsG#A{t{g`XH122mDI zsn6l5tJQt((;29)@bj#mMFcda&{a-7n=OIz&=p^ZBDZ{Vctv}w3(jgO;|D*AXHRPs z6-BSd{fka--cRuV07S2cek=5cLin>A+j?iGEOFkds%_O53OdPMQDbx>NubCWCDiU1 z$Hk7?>29N?y3y1}Jk*&L^$Qx!Y$8-i8yL#TjBYs~Vfbj;UTpcX>jwVX%$FZuf9+G8t`ybqIU7Pb-hWnuMP=~G#D zfF0CS^Ne?bpsDTCO18B7C2E3vh9l*T zJ4^MIrt-g7#|)>9ldD8e({LJp8$~eP4ADwG(SvDk0trkWk!MByq!KUsNOg#0D*27d zH@Y?t@X{F-KgIgsBDngt(JRjmfZ#Ks4fxELoGBuOAyE6 z+!p|@NGwR-x*a z`-C({V%i~&!ED<5@m*e8CYK-%V}Mo3k=O;%?2>A_7Mki4_<7Q>9-Nz~ZP&}i0$i#Z zN-~=qnmE5>O}imaD24D2F#WV|5bDZaDf+&eqz~MGYtXf`Zy3N=j&w z2vBjhG*GHPAT)zpYK!3P1J#M`p!4%Z@Kb~zENu<*t715)vD$7bKYoV1M&Im7jYoA? zR7%|^RZml5x?3ihahjw77y>dC)be|F^v;M)jTuJTmfenWfQ<)TsT%9zJr7SqP?ASZ z;pIi(4WAnm^UuThY3os$s*(fBh1zD8+FpZBlKoD#>?&rZb)J+NVv?q!MZ=O$u5bVV za6N{k`Y6EjRMx?8w<8ErIM#VS5?q%%a7O`FCHkq-opW`rwDie(`C0te05QajqaYR@ zpbfzKcGPvVr>s@oIZszx({$2(pfs_#S4LRN9e^?rHth;W*XO9U5nj_&M~+X63oEDV zm5rLuWw2a7vzv>>pZ$|)53735$2(;uD)hI6bhnDXD>bVn&1s^BOq?W6=nTUc_<&KJ zK5mlfu_~=E>xvg*aA~V|D8SDl)c*iIX(vuz;RISb_P(6{>ef=bf%wNL{#s|#F}~n= zGF^&#@#BZ-VL>j#`Z|;u#^`EVsD5#_ob-=`on_(&SjFNWjI$+W$n!;Hg||^#S0Ld* zC(V;1;&YMcH(+AOmLC}D*gdNe-rK0EaFEOit3Z*smy z!Ha&QsH3hif!GzwG0&y}{506*gZ`qW87_#iztrXUG zr=5^z;vpOofbo;YNXLCc-G515oaqaVRkx_D{Xt@=iOWirR*IwtKfSx+1Rs3!rn#oo zF-i}m7JYS6LscFK7#fxD25)Hh1l)FK~XU|Z0*1bd*I{gqLkAGL5G4!-vslmkCIr74Df&P`Dg<9 z;%82Dy@Gqy?!i+_NtzM^RF^*;Oy%*&oMLZNv1S@S@LDAg`*YrhEqS=B$uE`#xSrg>RVkbhi4U<7;kuhTbuZ5UMln z&YRW#oZcS5zGW0N<<)kmS}ELt>^BfJFgz}_sDioo8D9XvGP{{XB@om4$r`e68z)N1k5EL5?dT8W;d zkHFzS-PN}eD9_OP3F2>wbbUEzc<8QiOCl$oQzbmesE8dyL{3QslYcoF^%j$?-H{$O^36aqxqT{q1o_P<5YJb$;n@x4O#Mkmt&0 z+YpH5#qYe%0HE6HbIRdsDTA^oD0^Ew>3b&WcPV<+XVW?vUBl@W;R zD(69rF^(hz{vc;b%hdLpxj%2a%)lmAIo?1$J{|@$_2Z8Ed?g7lc?)rp>|8ZnZEdBh zo>1vYxmkKE!AWbzibE7+eaQPX?$jXnNxn!P_SzTJT zjIhod0mA-1y3I#Z+G!|4(?%*>Aw<{$0iH*0K^&g?jxmb8$ceYb1U@w-HFu8J>x43^ zqg05?FYgtN06+Nl(v&n5^tK8_t(r*)j191|I3B&#kH4;ksAHF@CTfFF;x>@7#_UN$ zoDq}3&H>2vJnF}@bj2e_PL)-)(8zG4tV*f}`g^s_YUJq9xavc^R$~Xlb*YWO&J;9* z>DXgUJhaFWSI>^*$bm=m&Wx_TJ#C_wG1Jww3yssPh<6k7EC+v(zrIXyM7m>F z5+0>kVr}2Cr$UNGOL<_C^6XA@M`T%2=MEGuPjTD60RB3gqv$@Msz<+DZQ^FCRRU8Y zk1bOP*z=N9=jDudI=qgfVMSY@D#u}}xl}_1R8dsGjzEf@m;=3-6)z?^=L0RWsN_DGa`2^OA9#0#5_jduuifK6LI~5d68ks8o87ql%82 zNKi)c4TVC48&L+_4Z!|b`Dr;~r>Cg$L5^70{*xQQ_6H-_`{}b%O0_LsV_4xW%aCx# z12_X2^&j{;-m+FeRw_w2P3z_E1^vd>AZMKVgRaAZ>~m8TN2U&GpL7g^%wk9zut3@f z87GZ1j=JA9;b3W`mR~Ryr!X?HQd{B9FiuC_2ezFEUFl>-sc4FAUnh24j^}A^>Be!~ zcGimqCi9ZAc!Qm-1d~3-_0G@$(72H?MtV;$wHcKha!HV6H>L>#AInRB&Qj3)2~r|+ zxVY!|;N#OsH7A)^Bb697;#BNn6!G%|=bx^%ee`lMM?kD_Sh)C)pxMUL#yR@xwvx@A zB!n{6%Tk0l3Q3W1^T@~_J#4cSLeBFA1b~jmBjWhB_T%a4tTkO?P=h67lx&YE%eZ4F zupE!#HK7G**W!|OT&`O<=a6xZJ$q+<#1HimWGE6M_f8;&^xl6|x6eYLR(<~kKtG)*SesY#X2VK%u5`6Ox%z;@16k~^|Pmq zHN7DFL?{uNj~H^q6NG7``uj?Fad31Jp(%n%aGvTN_#eqwC+-ON^cH6IKz_TkW;Q zVVWv=qZ|Oxs435IM{Pk@S?jEk&0Rs7s>SG>*zt6WvJd$MPKOF?A)rYJJZdMY#9# z2>xTfwyV9+OK+&8hOi?A1Z=2QJo~8R{Re#;o$%30G&;3i&CZi}i^wbRx|u#SBaT$_ z{SUsqJaN=W7OE&^P)hD)BlwR^Ms)NR@o+9;YI~eZvO1xHw(RzYoX|MwY1_eJfK zj`v8jNszy5rauekft-=Gv-o>y%@R=*{{YA;&`I$S8aY5GoQ<#BNHrU>542Yql}=ZA zCu#Nd{{Y5x(J0=Ipv_5Fv*O5w({dlr`He4fVbesMm1Zs8T@`!w_`c4nSLd9c<)%os zcY(gpCs_w!RSPyV^DBe@0Dhz??rG(!)l)+ggOem}xaF{JC1MyveLy|O$oBeo(Wvpm19zz5 zr;-VBE2*Wx&RH@@9>oCG>2)J^*kEqu_B*4n`Ve#Nrqt3+<(jmK<$_ECR|J529^Cyj zv|ut7R#s7s+z?0c$o^W0wuV);cAKp*TI)T+oD~>wHx=xA4^TkvIQP?vPNk)%RED~5 zw5U5o@u7^LV(X3%p~oLhDn$NEL<=LYU^&Kp56ew_i05pX3p$gz8{usF_VxLC=+i)x ziqsYHZ-v9Jf4;5wdymIRPe`d55{!i8GhpM_k)i2r5&g664*;rwft5$tLHs$-_i4<3 zVvRymO;bQykQ#DS`g@#eH|Ru!t};9|Fvk>$8EG&^0>(ic5=i4G+djH`4IM+qtxa-_ zNKazQ0Q!1q8jE|?N9E63JIB~yh7IeVa6X!49T|cC#Fdk(ah=c!LG{4{pTv4-9M@pf zM^joWs;XmpsaD|(QVABE%B-P>W5>_()1y;c9`RF4GZ0BGs7jtVJpTYaAq}Ew<)j!vy*WjG-k!*8mjnmdI&kSn7rGAUEE zf*ax=B75tZueSB+&Z@4anpbk8$};2v+zdD3Fm=Y_h8%z5IFM;Rn#Ol5|02=~z9Tx;WuD%t9W&%Gl`NpGf9Ys{TH^&ARGghWP?CV1Su ze?2EN8bn7}WRX#`Eu!UD^ zej^83$8a&{?DWzMpM)!I82S32&s`IB{TOR)7XJX&y;IgUY6=qxlkD>++3N`z$Sd)T z;A8+;_8Ma^g8m%a>R_f98EvRS!*1CDxt^qbpff(KJuxl0F^8k}?i8)4!wi zR$jXBLdi#crLB(PWTbmRhtHA~nvz5WD<*yrmdD7O+?f-D@~3# zrRmvd38bv0pZt%P<(LdaWE_G>Z*k6f1^q2ctj311Q7V;70*kdLLEYmXpXVoZKjx5h zAJA5szKglZ;Z@3}S*dODeW#{t>PX#LM}xWsBN>(k`@naNknyVmD>SuM_NKf~Pg6GW zB27sVrf5z$W%$^J2X-4hxH%cll+|!8k(IGi)WYyisU&U+v~B|{0x&@bf(YXpt!jF9 z{{Z3Zn%@l4mafw8zJ8IboJAV{0BPuDWBV5E`zHOF^xAc7nwf0CuTi9JLcA^2V+k7k zrUQu2`QLE+srYo2#i6gJjypA?3%w;sF;2#%>9#50kic_+oQ@AXXdAwTt3dw%OLdi# zt1YcnY^uXXc27%CzD-3l{{UiG+m$~)$G9YDjY1y4X|!D#Wj#SlewN)A>ndtPMHNHH z@|fZ{$|!Pp_(yV2=5;bCAjS^t{D5EJG)#k7a|S3O_ge}sK&}C}!7ZDqsavI}=;DQXb%~LrniK$3D{Ts_#1d2y-vqV>tqU#sOUubo zQ)9W&WAhg=e(d(g|N>tv?rYrOI2deO=g zJp4sUukm4}X}WUJ6}|{1w$dLW6^zKJ5r)+OlFN^7`ibjeQ>7L+sC8K?Vg+D;&*p&O z?IA%sasfEOAa~QrC$GNAwyK%vp#fd#o-ovXQ1jp$x3PIktd2KWs54iN5T#Q<9EoN6ZkP|xK>_i?^94c zOp!+|`k?uWq}10BE|?wI%jjjh$q1#I^)p=>3}D3@fVA;^f+OVarpN9bOq5AF5PHu z^MmKyZPM0mZ|s_YtNDf9{_i(O4FKeCYoln?e)>Wf5V+b=#VwKS25V6)Q)A%H3-e1XTm#(&t+KI0nU7lFV7 zjSX}P?&+(KQ`}i%d!1aBFC(3yV^URePhp+{rU;Xoe0>Z^@c>fV`w$zzYS?f9Gh z5PJ`q)iO~%biCUwv5|2|-ebzZpfjJZu=$-0i;Y!!RMss7G_*+>#t2mh=FQywG{&0K z8e9y1Ti$MY%#kbN7*D*idY_klKDg6cDH(slTE?!c7};&48)IA?fJfjv_x93qMNLx< zEv89BN>-jIUYVj$p;b!YUsTc8^ZypXsbcFI81V_P?@FTWCkd5v4J@ zf$CU-KbCpwj)fHqxS(c_I@|ZVbvW3AMA74#mcv>8#VcW+f>Zvrc zOSkUtazOfPQ%_WY?2<(o+xL$n+XvH8mX5vY%it1QDy=s#eQ0Zy&-*z#oflhMkK036 zNhO#cX z>f3btLX4#~LVylOWJAV%^+kQUEcv6{4UlIy zc!S_ih&^4Ndw z;hFi!^aBI=XuhA3E>RXJ_C8PbAL#kxmrScqeDKSukq6$I8dj-K_M_Z2Th!B4QPj0P zToS=DoHTN&Mjudl*V>qb)bfwA&n#>^>~g=$Oz*ujW9rH?N!6V>X1~Jx6uD7HF+WBl za6dz)N5mKPB6)21yN1Ew@yXUT^gpjZMLz<%uAbvn&{G=~;*MY1P{nfc>1H7ONIc+h zJu-&_Tsh)5haFGhe_G4aeNjycP83TN^wNo-sEqb_+;B&5eL(~e4z|ZClHdvivURdL zD1Gto%HU*?wEOE#FBL1wKo1)8kBPCUt&zGC-rF{3;m&cQuAHMjO=ShzDWIjAAtu>X zkU0m9r)l`P1bscU&K{MjnFFO&F+bTP>SltD=}9n#=T_4z0AW)pa53DB_Vm+U38ivE zyy!j?By6#C?V6%#BeGUpp{R?B0Ob*Blcv1u-vpS)sZv24Xo3m=$_Y=zX~DLs?!0!@JZK&4ud4bw>u;CJxYNl; zFL4~hYaf{RA2Fl{PQFg*ivIwsomzDA+-RUMMKF?^kZGquG)F(?Fd%(Kk!Y>66ZWf0 zqa2;oau~neJD2hUQ)2Whe7#D~{2q{#iGd!OQZ+GS=*cb*DX5X6rHc;j>c<_2&qd`l9y)vC>vhhNCyTJq%@oc|wqa z$L1W9_-U2Gd(ze@rLT>WGnH7WRg`@AI^Le=Z$yHY@ol-?Dv*L|mJpzU?n^oT9-3OB zT6U5qrn6L`jrZn6X?Kri&KDf^+oeg<7?NU?HJ4c#W|ER>nSuSG6y!!np*bJ}>)dwJ zm6*$2JkIM;8paMo@7@U+__A~D-1gKpX{@=`q*GGQBJKw=R3KHyY#=;fW45PEMIwyN zBQ%mgLlU7&VBBaiC%c5hsmg70Z>%{${%lw+Z}<>v>jJM_XrW9lkCR@+C^3o5Pg9qyL^b$ z#Vyv|GAz+uAdX?fZIO^UCm1`p^vU$@H8ILq)gWf0H*8hu7}ez!C47&HMKU4Jx%y<_ zYe|IdER87ut0)MI@P^ML9PRD@0KwCUqoI{!6w<>}6PzfC)PhGHm(+2_dF`h!6+|fJ zRM^Z4vuSjF^xcE0gyL5dL6^**m~<}tEC7dnL^9E1eDrXdIOQ$9)n9%s6})3 zQ0z~Z%pCk@*yrcYdD3%54CXZyazMa_!^loZUgT%-&-ZG)+a}SSEkzPe(tWyGIcESj zm|c_*I10P4r|H4chN7in2}@Z~BtYXO$`8XNcF$w{bm|G~rAR){D!Kwnv~c9BW1O7x zjCzsS=}M@X6_TQVGm(anlmHK0AG$N^?WwqwGcv;}hfU}Tg34RD{0SYw*3wVq$m>$i zxRLjjnBbpYGmhMPep+)#Of&h>RWivT&SPPmkD%6SXOguRN~tB4f`r`pk$}g3JC6Ov zhU|!Gxm`%v<{{1s550_b0P)AmN}`q!kx#V=E#~bi3hv|B`gYTmm444CW_FC^{{WK; z2cYfgkHfyPBE%_xc#H$@7EW;3^;SHd-L*_4LBPAbO|9~gp;lcaGkP-FxM?Jfp2K2ns)b%}7umF6?pA5jL3$aNg9^m{q^zEY;dGH`G zi4}nx2V>57$J4&EWa=>*syws0ZbWrBBVh%z$A9Vb*5VRf<3s`DJOBaq?mbSDYDS7o z%JW97c>tUZIccFW7xPzn;f`{^WPC(=XehCTO(j0!#+olNv4-;3pToYG&uDpwdE%y2 z&PxTs1K-mJ<*CWh#OUb4IPt+GXZd&5i!a5!5!LaMj4(ehUwv9_5FMznG;WjAIgGDt zN;8~}#{lEE2Rf3r-lLvYqPW6o>T|R+HWE%xDt!lRgWI2$q#cWp(c#sB_+#UrQ;Z&U z8&hndsgY%!1e=M&mLRFYwoD#BL<*Z0GXy?X4IV#7II)0E4iBVb^hT=;p0DI$ZquZpS`%~1zP-K*h1+0uZ zAN+i@*gsGj^cB5ZdT`t$xY0`issWj(kxY@x>Q31H<6s;&Z55a~jNtE{lolArYP z6eH6kjbbP(Az0v+(Z+Wx+oWB&{{TRcN7Gm}R3fav&*V)10D3yW(Uv}>2F8C3>6Qf! zV6=4AY;ns)NQoHx!;JfTch7A18gM#p*1NV@=-4kI-W(sN{rX`os+K|?C^j9q5>vO9 zKpgRp7IcTTr>I1@kkn>m!Pu?1k@5;b{4uEZ$RwnPG1SJu`4zL%l{gSAjLVOscKk+~ zO?|o2$>yxkRHE^QO^=UmJwBRBYTBy*04-~(V-cVmT1DE!InI7w-^Uu4rnTA{C26Kv z+aQ4=s8RGCzmAsh#3eRsP1aP^Q*5ZE#HY{@><7zKcaPN&)n92UVZrk$6f+Lz48vU* zsYof5Q$b2p9DFgU2lDN%cl{ycFVzt&2oyy}69NDO4ZA#jMxUaBj!{|Vx&;WcmB{() z+SO7}43xM-LS`()}IZsqc2GI%bJg>sn8=$u={@aVSy8Y_Uu#;CmEp^b(zJf;1ZJn#pJUq*DDvPybK6~d5hG`7@H6h9_zBai)Jx}|Slq-|B|3xu}oid!vI5&4x;TGUSX zJ(KMY1YybG1X(`1<;#VCQgxliIy=nucQ<`?U$&!oH%qU!$u z4cggNa;l-XM=ohuO{nGqVWf)MY6tDwA$)O z73Q0Cvor+ZmPwm*jgiLCRZe?jO4IfIWy&h3DDUvtZ0O}_yqakqaDZV|LW~XoJ;pwI zX>_r#hMhlC)AZBC_iLp?8jAWh+>p}3d>WP0A;YU#_hEVPw(YTCPe=_N%}aK+@aM%gOGOp*-$ z0BMKNXp^SAZR%S;h?G~V3rqrmMOj+qXD(M>PYyBrz#Z_BCR&<71$ec-m@kYw2 z@djPXjQ;kvIA&|wYK-xoH0>jK_bzYUwW%?7-308he5!XQP>bnjdq= z4!`H9{{ToXl(^-OYtWhN2$IdveMf$ts-n8KS}(K36-=ApSs(UD5;O3wT0xu+eRYnN z>5HFFbd(g9YvoJLPVSP^T-eJDr*?i4J}9yXBN+ofcSv>8)7D(NZ>43t99G<6tDR<* z2karsgPaWRlgb0%pKTVx)ruyUWOJ)eAwF61+lJZL@%x_RRsCEM^cW{m!A~O7->GG@ z&c|xBJ$*H{;7rZ?IOh91qTm(B!?CgmJdxj04Ss?EKU!L@R6g%5F_tm^0M8@b zKOE?6luHFj+ja;(tj8q&Ct8R>uWF@whLDY*G^|j46FYx~o6%h@Hv$C((w<^@*&M-- z`zM`dzTF+tl4@CJAUYV^%PJjyVDp3X)UwA-BdNnE`VozL%tAgS$K$57lrd1zr7R|W zr~u5f8Cd=&N)*rU2G!YADi#S2HjMibq#+jSvi|^PmKnUZ+Wt$1+I@~Y9Vn5ubBuiT z=@Om@H%jRgdB^rfepv2)nw>~$)G-bf*d1tS*c^!gKQXP<A{8PCuk&s+JGk(}mGJ%=Mp zKxbG0s(9s>)uKX+_ySM!(x9p1k@e8|YqKWi3U${|&1UE-+0!3usRE9igaL!d2qYhH zp~(4xsSca5MP=x#e@`%#S`-a0lQE36$CmBilY#OBQ5SgAsC;Cy+FKG**`aHdLi%}x zfPnr!U;8bhPN%p>W$6o@-+Xb&1v|1x-Id6~lk_AX!%A?wY+{vgQgi+;0?x{;O zhMsxTr>UhlVq+k+RGIa}5y&(D0Lvp+fb*0DN$A=&0aY3%i)xO;f=2@b@YP-5)eR+o zmvD^lN-KID-SbmeeAy0t(kS4I{Zp%9=z(q|BSRckx&=AYt28wxoGVQr8=GPXpUo_B zoGO8nz&@H9v)<^cyj;CosiCb8Ej$YKuIH&#-y&4*9hw9rJ<)Y zG;YF8!GbEV9F_p!@I5&h?WQ$X>wT`JZKCl6l`~56`EgB<8IE>?*qoEV$>UVvL{h$j z6nE=A&&0}#sjI2urnbT4(ixjzo!^FZCx!qA86VoyPZgz(zr(hBU34;5iFUxSNUYKZ zQmmk7u?Gk1r_Uv}u~n<6DWzrOGSe$#@gt27b$usIQgkiSqLz-1o>30fc!tBv0q^rV zrxigb$c?`17g^fHC6eO@>KjY746-8-k;@OmAaX$5;j@w06QT=cxYkiTcJ^y!omX_# z?eI-dzN9h#04AS4=hIr)tlc$hw#ywAwwc9Iidn@&G~3-1YO&l;AZMQBl1@p^rS5TC zFP7ic_eunsn2^Resw9Xp^v=`Ipwg~ECg?J@X?DL<8KDf^w`P6lHM%gUZ zx{A3v-rB}BV31W?>ZxUw#(o71q;4c*1mo8@8h4esa)o(`cLXW#wPg}In3|ZXgbf+O zfH)Wn1`S!va$rD!B0B}n9cBSW2HWP_w@T9V`~ z3RDl)m9oc81S_}}JKcf%p@u;9@2(*057VcuD-hB2ymqddrp5zPt6Zw_^O|3PAD+{$ zdFp=^ddIG>LVJ~M&ih(;NiI`0Qx1P}Ke)eu(0vjYa^Rk1yB)Vt`apO!;bc-%*eGV} zI=MkgyR>y|Vq!9Rl2lYHxc%6{@7$epPl=u*pBt*-vf3@3J8qy_X=SB~j)+sbRIVH( zk~hS}sBjpZ9mM)^O4d`klkGiGc4nD)6p*lzZ=wCz$Jd{ho%D^y+ibtJV>u#Jkz=Cr z{K1kA(9GY=4Et&EaDMOJQ%!XRj83jqfdx(oJ;Bn*s2E_Jdhw_Cnpo-jj=mT{2$c>L z6OsmdX{tr)MwpcWDGur592lw!C}o=^3ovoXImaJPKaQFp*x=)jQSYMb zRW+un@D-_=Dq$JiC78DIamGLx(;U?aR^J3Yj{8|=k&Iy~BYx>FNEr6^(Y3d$Xe**` zwRu!huVCy-x8sdN&C)Q#&KHylRCP$6X8SD|*amkiluYG807kCwVIw8OUq8CI{1l|95Lj2 zYTK-%rO3sNQ6hZb0UqrV!h|(Ijcj zWv=lwtm5xYOpC(D3lV|zAK#@pb3+p1$t!)vo_h0YnwGALu2K>gtN6k(Ba$(neH7nf zmfh5mP*l^3S?S5*^9J|^I};0 zC^!RL`T9O}6-}SR>)pc4Ar}gYnrPz^##od@eZT-a_vh1-#;xc)L%K^*QXBPr$?%9x zURQVnAcO-fqz1=qa(UHF?nSN{U`h6Zl2U?|0!1IQl0a}X$z?oqk*2L^wASyZuCpRZ zoMtp!lY%fYjQV;Jq4;{zpv{`QH5iSU9l_mL208ii7mWMk=ZP8)y|T?S$5Bc4XwK}R zDvsTj{7(7!HVUP5Q=iK(~roZ3~6xF5e-BWRi z&=+BWCg3>$5WtKde{-qWIlfarZp0{NU0uF1(?17ARO(^Ng#8Bz{Zzl2vz~-#QOqy z&Wc7)CnV<{zn{oxyvDkNw!rngUg|0QnvRvOC5a98f7%dzbDrao{50Y3MlG|;)0e7d zh=OF2or;0$fP|6w=e~*M2>Ehjkgvmn!Ag_aK)}E_9sYRIs)*4sUC`~r@D5qI`?$w! zb{zZaEWZLc0b{AUeF<1)CBexO!su6y_{XO``)Aj-og2-mkfhh@ba}g!V!?6G#gXgJ zd}xlMp4n1@8rpbkqZn{m3t(r1*#24467=^@%67e$nM{kgvPZQ}Gn|o+{2tmRkpr}b zgvC)}zB8sA% zs}Su?P+K0OhR+_p`qjE76%Hf6U6rsvR&dAi$87o!Z%;#65nEW@>M9D80jB#vK8`r~ z3>*XbjcGMx(p#lPScHU}RI>TY!R>&+=eP%qaCNivmr+GP$ z&gFfhy1lZhrZ$-$YsRQH{K4!%!Su#+-$xlI$y9I95!6F=HFZoghwOpy`WCJEDicvDNbHfmF2P3z)uC}N9K&6Rm z)|^ZK07)f0P7%I%Vo3acT230e876dFy*oa37}>&Qk6=N@d+Gd;v`~qBxk|9gkVgaS zsqidgH74vbfgoNm@^DmffIDfeO@;;wJATGYd=f_6N}o&-&ZUvzjv}m$9Ay30Anp0~ z$^1CeQxFwmc;mMPE6ju+FnV$^jGvj+rq@D<>f43d%M4OAT=kGKA*6AYi1!|GLejhDt$&`=14AC@@^Cw2;m9LDEO2#Ml9s;z02iCOD}0PO z8$+STxb_;t+%DrAtrU_0!n)M=`e#;`p-qcNJ@uKSTf{#90J5Q6XWN$2ziYk_+b#jY z9gQLl-^WqL^*nV7jcH_e?4^RK`DEaK9V)kbv6#dx1+YLZ=L}=(pXH*a4T??r_ClyG zQNlq7G18Uo?SrJ*FVd-kTjEUvj2P-E702XGoeKKLRX?dAMcfAFs{^0*Pt!=vQ+ReP zw!3<$UU$zU9{dlwKRruiVC`fVYXwviin*GSMj_sava0cr2qf*#AYk2q4qB3N%!~~J#`wzYApX;JcK7^o>qorveki$t& z<+0=fKbD~8wp{H-MXsb;nqbEgZ5x33sO~;v@gDLtk4jWYY@SHfxo;++(C6C$wIb47 zyrYYSYo^>`<=lVX2R~h1S}2L5N+|~DDpjA}ET^^y1Zu4D&e2ff)nB>a&W-4rO}X02 zOQuh;1%|Atx@xKFTBe%oB2>S{@t|GbG7t~X8TTY{s9z9axWnOHO;yBFPAR5^aPR5J&waKh!(#Ym#HXTvu#PINM&i*5M2YrjlT|I4lD^d_u zFu&x9^w^*;J+OOcTg_dQna#9e=Hk`KSetY10V^v#e zjO|0tvbOXcj`1b#{{RJNP*>EPts2%U#S$n1RG=U%U<_rqXV~XM$Hlv?EdiwIZk(}N zDN%5#8u_Juplt*3AD)3NlyukH>8K&Q(9wkC3i(ouE;EEtl31Uo8cK^4w?#*_n4*cW z^RbRb$GArLTj)-l^%DMtNXoG%?{dWNg1@P$t~FBI>7<%CWRcCfmN>$a4=y7?kEuG4 zm!a=*Px17H&_ynG;+{rfkCriyuBOfN#C7QV)jbU?RW<_zkw4k3u~Viy0!k|L*!Mo# zEU5ngmmAE5XO(Ty@8KezDt7!xC629QQs#N6Vdslx^lC8U}iRdrVf`UmpVlNQnpjpK7K`m2Ls{$ER#Uz-|mFjW_ zBol$ItFv7#*Bg9QR_f>~De4Q$0apyJti`?;1c^JILHq{3VfdeUv)?SQZ?w^>ODyW~ znBwx-$W8+>_viTO9}m1o@khdWyt+$`MI|$_4@FlWok>tZ!OEPeKQV?HetZuc>L6pD z_}q`HJK3_bsA1}?GCwUxJ+9qDK~+^xOvy1uB0(#L+;{*GMmZymb00!}nB6s31XP`4 zMOS00zzrlSYUvy10X}ShOt97cXYmWBdalt;S7NzQ-07sKh%}b^g`5G)fXTz5B}W8l z4c84&&9AEDAf;chRo2qCoh%W&cyaN%e#rpb2PAwa2h#^m(yotoQsD}>vp&Q8aCDVD zeFXIlBvQfWI05z>C}PN^ zq;=ij1ScarjW(s}sycqRu9kx1R}@k?jo_k~#r9yRrAavU3OAk^-Zl1$?O2?;Z z#E(p6ZK1Gnvv(Z#7#f^`YGr98k>Y5H{g{v9KQddf{508Zlr9gq@{2ES*4aQ;>tB4O;t%<0H~p=f~Fkf%!WY2^VVo8 z>R#SesvcH`X=%)v<+eFcPtO2n=b_7)TMu5^uCbtwitgsyS`=Uj$lU~|=162G*CSHd z344S+Kx*TX)muc70yjfZ0c?+7iFx^qV^5XMEfY;$GDxu@l37A|V*nCxJvjO4QMf6} zk)WRxu2pdKJa#){;^ls-j@eDlF};T7`T@!LXH_S`aaPT|Gmd)uUDK?qRQdP1#*#e# z?L2JAfP9O2jr1c(c%2{XxjKKKqbvpXuq{^8f+>&_DfwjtgYwaxG&CJQ(~#50B2n7y z^yvyqDcS-eg$JJ5$JCRmN2&VQ%i=Y|sV%j?W`dTKTWKm;KWLkjJdGNjLy%L`ATjNr zeJD8c?6oeJj*jsD-qecJ_Q3MBN7yKrGCQ%!C4Do;CmMk1uNNr#uJK!Kx7y^6N^~*_ zC6p0>z;ZATufL(yV{fn}Wa)6ZPGvK)Is(PoK*Sx+$G&sVVfF8+o|LDGm&Ir!BGU9I(>18C6!x)Ez_mp5xS%w1|kc64RH%G-ZnX2rv&SL1rWlI69KH zbk|N()wOAco$45QVd;uAn>oVyg}39MO}Wpmsj7=DRd?xg(w#!pF)bZ6uC|GyAeVQM zSp5J14s~;$o}inbEUEcvizR^JL$$S1w7aS3DJi2-jh|e&=Vl?I}bp=~73ra(|wt<>*1#wA!q1%)8TrePq{_U=Z!~H#pJ~#^GeJ{T<#?2 z15!;T(2C4b^)H!P^z^h+PXc@*R&b2OcjFzj`sH<~{{RNA1{-BpoAz0Ju)AL;VIJc` z{W1$vET_A3`SY({d`P6Tc(2pF04z5Pl$WJ-lCFuBzQn*ZTOkN_yJslyGT~X zbYX3-`EHiWM#|H~zC?KQV00tl9mY7+lvURGjuNt+kFjtM@z$XgkKO!nthF69i~C4X zz4A4DmBEP3&~+4%ib{XgpJzsjqBcHno4D@>AG?fWOIOctw?x-lgwzy?3J}$GURns$ z_Z!==KH29?&8m@3=#<3X=*54Qqk4y=t$kHudoNKz9oF2;Bs8_iCP2U(Fx)s{lY%>E zQ92_@lJt*ltG9WU_-JILt3fE5g!yYSk&waSBRK~-9{R0%-}HLuF1ikGS8leTk@^1s z73vy^qX+*0RWmyN8Ys0-c%Y$<8+=yUx>|B*(wY=8$rqRKYzhtz0*=_xWg5>kYb|_n z)3<*qUvd0SIQny=j9j_`-5h1qKcKDplC^F=9(biflf>d!qPyFCh71l@GR3$aar?UG z&anLvJbUSflCJI3a$RU*8G7qX#^5pU<)AWtYBlwA#RGlT1L$?Ar+C|ZOhNYtQh3-= z$b3PlhSh4SmYRAx+N!9Sqa{c*>Zj(Mzvf1p&wH9lj$833Ut>H% z@N>hj7HDOo>u!^xuBg~TTv0?daQhUUelNh~eZkktKO4L=lfo|?Z=DEhB(0~Sm0Fgn zMA~MB)H)Ie8-P1bILe%9GQyWHk+8|QuXDzq*#`cjp^s^8^P*sP<$(UWVX2FKzKB)R zNl|>Kr_73Sip*1y&!=r#Esn0NwHNyOh3xe*x8PjkNGu@w^QmiqU8+JK zh@MaP{v%986M!=Wqt`nQjTzbz^2RhxVzIh_%J#8}xz$1JumP7Bf@N_(k z_HU^-YO+pA5zJoF7#@^QSLERV^e< z2o(s!aGh9uVDdQZG~Tk`6IVTKsf$O5p(e%Smt(;Ix^*&{SnlyxyT-;P+%KSSxMO6q%b*95PLDriy1 zF{i@0`5boBn_YxOcOwPH;Z5;FTT>ZdRFr~0j-yMpRMJaPP)ie%U5REomaC17k1RiD z0f`|NKyj$1ib%kgcpRbQb~x2pQnG5@_GuvyQ%Mstjl@o;c7DFvBIxd$uJI47;psaV zoCi}aRbreaBq~Pv4t=r!9;`sng}R*7%^qovGl1}t7#~1!@5Z|`!LEUypt@P=D$r71 zu56Olgj}>qkAfWfmB}ssa~}B8-%;_m5~}e7q$B9Au9DAdide0Z)5Sd`Qp>!mD(q|? zc?BDfo~w(6H1&0qyq9k)22X$5Hz(zc9dtkG2C>W2)_c`mL~B5UKn_=cNF@6kevjaeR3q(qS=;ud*~yAR-IqB8^VkkY(?G~H4LmH$3@lg~QdeE4X&g4= z$#dv1M}Jd|YbVWDl_sp)2bQ`gl2C1fl6 zS-Bgs0uho_Wsd;<_dMfLw3pkWtz9L)`zyRlz2X>fgBbXfXK2O<4UO6s>iDIzcyD&P zP*KEg5igw`QYxdntf+SZlZPX31b4v4rh)t!gn8GR%BuE>rl>@BcLY>1QgOKV__6KB zt`3Fs!FF8V;a^fIb%wqwsW%5w&?6&cV4U&B><@fnPwBivy9%Zi7L}NJjT;DDs}KP7 z1deh>?@Ve5!(tkdg*4mW45|YD=^5LcZOPzcjAY3#t4=qX+zQ**sAaLWGt1{)rv6<$#zZUNg-9j z3}hY{ot^muC$~MdU(HDEJyktR(}<+YhDh<0Y%3d_ZJ&;1R}jTbVYZ*QV-Q6>3QkxKqf$Zz{*jIRiep@5dwMk*BqnT3b!IYG#rq zfqpEkfFU{l-f+IBC)6EM;tGnnqEi_pDe~h($wuQOF~$G~gO9t<%UEPKg{V6gIyYa7 zG9M|pB;&r}?xUXMV?`W_`9QdO7u1jBTBWU$s)6a|I1@=X!gqHihB)~t{QW8Gokd;h z{Z(5h?YFaHNaHFBV{SkPKX)CDfiG89w^?56UqIEC)X1h)XK5I)Vlf-?px~%%sCrG_xm zHo&owo_mbrli$9Z%Ue?#N%nd{Dla?CV<*?#=hOJ=O5rS&?zE|uK2qc|f>i$U;17qK z;2&>J+GQKGQyD^}n}G}n!k(8Li z<*I0jj;ZLXDduOEQi~uPVvKhlha`6TchlOie#z%Df@4N>RRkBn&nG9_+e;6~bHsqT*lOH>C_8Jbk4jf7=)2RxoWOYida($a0%RxQ!eTPkf6 zQq|E)T?-~s86^??Y#26GuyPm-=O7N+BHLn-g*cwtIKc|plkpfB^y417PoZpeHZGjo zQvx*%!cjg)WW}%Q~(~o^A2ToY&hm>faZ>zJG$@j_ATAq=jjg0g)Qo*~i4jnO^pM#ID z2aa@7QIScsD=jTc!Y53*jNvvv-}!rd$J0$#Sr$eQ<|B+{c?a^-S*_hgZI=|)DCjUr zg#j7=07Zz>6I|}K6$?*QUMc5qg<5(e(J8R|o9w50xi9yL<;3fNVZ~)XzLewQZ)H+aKC|}p?=pIEwpWfQd zx3)9ytJtN`tDw>vg4CGvW(7VL1MaE$gM;s_9&EN8p^f-bq+|H%F)zVjHMKPEf!E?_ z7)*?PIpE_Sy48Ay%vYZ|8zYek@mBODpbpkh62Wmy&qTu9uQFU}BCJE->E<44*bx> zS2$93opo_R�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%0DC9+Db+FyM1f&Zk4-8&V_pN;YdGh&sE2^gv9~?- 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ą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 G+5g$mu2ZA{ literal 0 HcmV?d00001 diff --git a/public/build/assets/index-B3RcyMgN.js b/public/build/assets/index-C81kpUpa.js similarity index 99% rename from public/build/assets/index-B3RcyMgN.js rename to public/build/assets/index-C81kpUpa.js index 5102898..18f405a 100644 --- a/public/build/assets/index-B3RcyMgN.js +++ b/public/build/assets/index-C81kpUpa.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomeView-B00rxwa3.js","assets/_plugin-vue_export-helper-BNDVmFr7.js","assets/BaseBottomSheet-Bsol3Sat.js","assets/BaseBottomSheet-9_gNUOjo.css","assets/PullToRefresh-CSjUpm5h.js","assets/PullToRefresh-Dh6ArHZZ.css","assets/types-xv3fXrtW.js","assets/HomeView-CMN2y8EI.css","assets/LibraryView-DFJIjn5s.js","assets/DevicePicker-BnLOaG74.js","assets/DevicePicker-B4xrdE2f.css","assets/LibraryView-DPCUHw5M.css","assets/UploadView-DgN7UeID.js","assets/UploadView-BkAycBrO.css","assets/SettingsView-KEutYoup.js","assets/SettingsView-DBUrUua5.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomeView-tHIYnQ9q.js","assets/_plugin-vue_export-helper-BNDVmFr7.js","assets/BaseBottomSheet-Bsol3Sat.js","assets/BaseBottomSheet-9_gNUOjo.css","assets/PullToRefresh-CSjUpm5h.js","assets/PullToRefresh-Dh6ArHZZ.css","assets/types-xv3fXrtW.js","assets/HomeView-CMN2y8EI.css","assets/LibraryView-Br9GLQmy.js","assets/DevicePicker-BnLOaG74.js","assets/DevicePicker-B4xrdE2f.css","assets/LibraryView-DPCUHw5M.css","assets/UploadView-uIaSypRk.js","assets/UploadView-BkAycBrO.css","assets/SettingsView-CnrppHZO.js","assets/SettingsView-Buxddglj.css"])))=>i.map(i=>d[i]); import{A as e,B as t,C as n,E as r,F as i,G as a,H as o,K as s,L as c,M as l,N as u,O as d,P as f,S as p,T as m,U as h,W as g,Y as _,_ as v,g as y,h as b,j as x,k as S,n as C,o as w,p as ee,q as te,r as ne,s as T,t as E,v as D,w as O,x as re,y as k,z as A}from"./_plugin-vue_export-helper-BNDVmFr7.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var j=Math.PI/180;function M(){return typeof window<`u`&&({}.toString.call(window)===`[object Window]`||{}.toString.call(window)===`[object global]`)}var ie=typeof global<`u`?global:typeof window<`u`?window:typeof WorkerGlobalScope<`u`?self:{},N={_global:ie,version:`10.3.0`,isBrowser:M(),isUnminified:/param/.test(function(e){}.toString()),dblClickWindow:400,getAngle(e){return N.angleDeg?e*j:e},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_mouseListenClick:!1,_touchListenClick:!1,_pointerListenClick:!1,_mouseInDblClickWindow:!1,_touchInDblClickWindow:!1,_pointerInDblClickWindow:!1,_mouseDblClickPointerId:null,_touchDblClickPointerId:null,_pointerDblClickPointerId:null,_renderBackend:`web`,legacyTextRendering:!1,pixelRatio:typeof window<`u`&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return N.DD.isDragging},isTransforming(){return N.Transformer?.isTransforming()??!1},isDragReady(){return!!N.DD.node},releaseCanvasOnDestroy:!0,document:ie.document,_injectGlobal(e){ie.Konva!==void 0&&console.error(`Several Konva instances detected. It is not recommended to use multiple Konva instances in the same environment.`),ie.Konva=e}},P=e=>{N[e.prototype.getClassName()]=e};N._injectGlobal(N);var ae=`Konva.js unsupported environment. Looks like you are trying to use Konva.js in Node.js environment. because "document" object is undefined. @@ -13,4 +13,4 @@ or bash: npm install skia-canvas js: import "konva/skia-backend"; `,oe=()=>{if(typeof document>`u`)throw Error(ae)},F=class e{constructor(e=[1,0,0,1,0,0]){this.dirty=!1,this.m=e&&e.slice()||[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new e(this.m)}copyInto(e){e.m[0]=this.m[0],e.m[1]=this.m[1],e.m[2]=this.m[2],e.m[3]=this.m[3],e.m[4]=this.m[4],e.m[5]=this.m[5]}point(e){let t=this.m;return{x:t[0]*e.x+t[2]*e.y+t[4],y:t[1]*e.x+t[3]*e.y+t[5]}}translate(e,t){return this.m[4]+=this.m[0]*e+this.m[2]*t,this.m[5]+=this.m[1]*e+this.m[3]*t,this}scale(e,t){return this.m[0]*=e,this.m[1]*=e,this.m[2]*=t,this.m[3]*=t,this}rotate(e){let t=Math.cos(e),n=Math.sin(e),r=this.m[0]*t+this.m[2]*n,i=this.m[1]*t+this.m[3]*n,a=this.m[0]*-n+this.m[2]*t,o=this.m[1]*-n+this.m[3]*t;return this.m[0]=r,this.m[1]=i,this.m[2]=a,this.m[3]=o,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(e,t){let n=this.m[0]+this.m[2]*t,r=this.m[1]+this.m[3]*t,i=this.m[2]+this.m[0]*e,a=this.m[3]+this.m[1]*e;return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=a,this}multiply(e){let t=this.m[0]*e.m[0]+this.m[2]*e.m[1],n=this.m[1]*e.m[0]+this.m[3]*e.m[1],r=this.m[0]*e.m[2]+this.m[2]*e.m[3],i=this.m[1]*e.m[2]+this.m[3]*e.m[3],a=this.m[0]*e.m[4]+this.m[2]*e.m[5]+this.m[4],o=this.m[1]*e.m[4]+this.m[3]*e.m[5]+this.m[5];return this.m[0]=t,this.m[1]=n,this.m[2]=r,this.m[3]=i,this.m[4]=a,this.m[5]=o,this}invert(){let e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),t=this.m[3]*e,n=-this.m[1]*e,r=-this.m[2]*e,i=this.m[0]*e,a=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),o=e*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=t,this.m[1]=n,this.m[2]=r,this.m[3]=i,this.m[4]=a,this.m[5]=o,this}getMatrix(){return this.m}decompose(){let e=this.m[0],t=this.m[1],n=this.m[2],r=this.m[3],i=this.m[4],a=this.m[5],o=e*r-t*n,s={x:i,y:a,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(e!=0||t!=0){let i=Math.sqrt(e*e+t*t);s.rotation=t>0?Math.acos(e/i):-Math.acos(e/i),s.scaleX=i,s.scaleY=o/i,s.skewX=(e*n+t*r)/o,s.skewY=0}else if(n!=0||r!=0){let i=Math.sqrt(n*n+r*r);s.rotation=Math.PI/2-(r>0?Math.acos(-n/i):-Math.acos(n/i)),s.scaleX=o/i,s.scaleY=i,s.skewX=0,s.skewY=(e*n+t*r)/o}return s.rotation=I._getRotation(s.rotation),s}},se=`[object Array]`,ce=`[object Number]`,le=`[object String]`,ue=`[object Boolean]`,de=Math.PI/180,fe=180/Math.PI,pe=`#`,me=``,he=`0`,ge=`Konva warning: `,_e=`Konva error: `,ve=`rgb(`,ye={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,132,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,255,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,203],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[119,128,144],slategrey:[119,128,144],snow:[255,255,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[255,255,255,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,5]},be=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/,xe=[],Se=null,Ce=typeof requestAnimationFrame<`u`&&requestAnimationFrame||function(e){setTimeout(e,16)},I={_isElement(e){return!!(e&&e.nodeType==1)},_isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},_isPlainObject(e){return!!e&&e.constructor===Object},_isArray(e){return Object.prototype.toString.call(e)===se},_isNumber(e){return Object.prototype.toString.call(e)===ce&&!isNaN(e)&&isFinite(e)},_isString(e){return Object.prototype.toString.call(e)===le},_isBoolean(e){return Object.prototype.toString.call(e)===ue},isObject(e){return e instanceof Object},isValidSelector(e){if(typeof e!=`string`)return!1;let t=e[0];return t===`#`||t===`.`||t===t.toUpperCase()},_sign(e){return e===0||e>0?1:-1},requestAnimFrame(e){xe.push(e),xe.length===1&&Ce(function(){let e=xe;xe=[],e.forEach(function(e){e()})})},createCanvasElement(){oe();let e=document.createElement(`canvas`);try{e.style=e.style||{}}catch{}return e},createImageElement(){return oe(),document.createElement(`img`)},_isInDocument(e){for(;e=e.parentNode;)if(e==document)return!0;return!1},_urlToImage(e,t){let n=I.createImageElement();n.onload=function(){t(n)},n.src=e},_rgbToHex(e,t,n){return((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)},_hexToRgb(e){e=e.replace(pe,me);let t=parseInt(e,16);return{r:t>>16&255,g:t>>8&255,b:t&255}},getRandomColor(){let e=(Math.random()*16777215<<0).toString(16);for(;e.length<6;)e=he+e;return pe+e},isCanvasFarblingActive(){if(Se!==null)return Se;if(typeof document>`u`)return Se=!1,!1;let e=this.createCanvasElement();e.width=10,e.height=10;let t=e.getContext(`2d`,{willReadFrequently:!0});t.clearRect(0,0,10,10),t.fillStyle=`#282828`,t.fillRect(0,0,10,10);let n=t.getImageData(0,0,10,10).data,r=!1;for(let e=0;e<100;e++)if(n[e*4]!==40||n[e*4+1]!==40||n[e*4+2]!==40||n[e*4+3]!==255){r=!0;break}return Se=r,this.releaseCanvas(e),Se},getHitColor(){let e=this.getRandomColor();return this.isCanvasFarblingActive()?this.getSnappedHexColor(e):e},getHitColorKey(e,t,n){return this.isCanvasFarblingActive()&&(e=Math.round(e/5)*5,t=Math.round(t/5)*5,n=Math.round(n/5)*5),pe+this._rgbToHex(e,t,n)},getSnappedHexColor(e){let t=this._hexToRgb(e);return pe+this._rgbToHex(Math.round(t.r/5)*5,Math.round(t.g/5)*5,Math.round(t.b/5)*5)},getRGB(e){let t;return e in ye?(t=ye[e],{r:t[0],g:t[1],b:t[2]}):e[0]===pe?this._hexToRgb(e.substring(1)):e.substr(0,4)===ve?(t=be.exec(e.replace(/ /g,``)),{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)}):{r:0,g:0,b:0}},colorToRGBA(e){return e||=`black`,I._namedColorToRBA(e)||I._hex3ColorToRGBA(e)||I._hex4ColorToRGBA(e)||I._hex6ColorToRGBA(e)||I._hex8ColorToRGBA(e)||I._rgbColorToRGBA(e)||I._rgbaColorToRGBA(e)||I._hslColorToRGBA(e)},_namedColorToRBA(e){let t=ye[e.toLowerCase()];return t?{r:t[0],g:t[1],b:t[2],a:1}:null},_rgbColorToRGBA(e){if(e.indexOf(`rgb(`)===0){e=e.match(/rgb\(([^)]+)\)/)[1];let t=e.split(/ *, */).map(Number);return{r:t[0],g:t[1],b:t[2],a:1}}},_rgbaColorToRGBA(e){if(e.indexOf(`rgba(`)===0){e=e.match(/rgba\(([^)]+)\)/)[1];let t=e.split(/ *, */).map((e,t)=>e.slice(-1)===`%`?t===3?parseInt(e)/100:parseInt(e)/100*255:Number(e));return{r:t[0],g:t[1],b:t[2],a:t[3]}}},_hex8ColorToRGBA(e){if(e[0]===`#`&&e.length===9)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:parseInt(e.slice(7,9),16)/255}},_hex6ColorToRGBA(e){if(e[0]===`#`&&e.length===7)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:1}},_hex4ColorToRGBA(e){if(e[0]===`#`&&e.length===5)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:parseInt(e[4]+e[4],16)/255}},_hex3ColorToRGBA(e){if(e[0]===`#`&&e.length===4)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:1}},_hslColorToRGBA(e){if(/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(e)){let[t,...n]=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(e),r=Number(n[0])/360,i=Number(n[1])/100,a=Number(n[2])/100,o,s,c;if(i===0)return c=a*255,{r:Math.round(c),g:Math.round(c),b:Math.round(c),a:1};o=a<.5?a*(1+i):a+i-a*i;let l=2*a-o,u=[0,0,0];for(let e=0;e<3;e++)s=r+1/3*-(e-1),s<0&&s++,s>1&&s--,c=6*s<1?l+(o-l)*6*s:2*s<1?o:3*s<2?l+(o-l)*(2/3-s)*6:l,u[e]=c*255;return{r:Math.round(u[0]),g:Math.round(u[1]),b:Math.round(u[2]),a:1}}},haveIntersection(e,t){return!(t.x>e.x+e.width||t.x+t.widthe.y+e.height||t.y+t.height1?(o=n,s=r,c=(n-i)*(n-i)+(r-a)*(r-a)):(o=e+u*(n-e),s=t+u*(r-t),c=(o-i)*(o-i)+(s-a)*(s-a))}return[o,s,c]},_getProjectionToLine(e,t,n){let r=I.cloneObject(e),i=Number.MAX_VALUE;return t.forEach(function(a,o){if(!n&&o===t.length-1)return;let s=t[(o+1)%t.length],c=I._getProjectionToSegment(a.x,a.y,s.x,s.y,e.x,e.y),l=c[0],u=c[1],d=c[2];dt.length){let n=t;t=e,e=n}for(let t=0;t{e.width=0,e.height=0})},drawRoundedRectPath(e,t,n,r){let i=t<0?t:0,a=n<0?n:0;t=Math.abs(t),n=Math.abs(n);let o=0,s=0,c=0,l=0;typeof r==`number`?o=s=c=l=Math.min(r,t/2,n/2):(o=Math.min(r[0]||0,t/2,n/2),s=Math.min(r[1]||0,t/2,n/2),l=Math.min(r[2]||0,t/2,n/2),c=Math.min(r[3]||0,t/2,n/2)),e.moveTo(i+o,a),e.lineTo(i+t-s,a),e.arc(i+t-s,a+s,s,Math.PI*3/2,0,!1),e.lineTo(i+t,a+n-l),e.arc(i+t-l,a+n-l,l,0,Math.PI/2,!1),e.lineTo(i+c,a+n),e.arc(i+c,a+n-c,c,Math.PI/2,Math.PI,!1),e.lineTo(i,a+o),e.arc(i+o,a+o,o,Math.PI,Math.PI*3/2,!1)},drawRoundedPolygonPath(e,t,n,r,i){r=Math.abs(r);for(let a=0;atypeof e==`number`?Math.floor(e):e)),i+=Ee+c.join(Te)+De)):(i+=o.property,e||(i+=Me+o.val)),i+=Ae;return i}clearTrace(){this.traceArr=[]}_trace(e){let t=this.traceArr,n;t.push(e),n=t.length,n>=Fe&&t.shift()}reset(){let e=this.getCanvas().getPixelRatio();this.setTransform(1*e,0,0,1*e,0,0)}getCanvas(){return this.canvas}clear(e){let t=this.getCanvas();e?this.clearRect(e.x||0,e.y||0,e.width||0,e.height||0):this.clearRect(0,0,t.getWidth()/t.pixelRatio,t.getHeight()/t.pixelRatio)}_applyLineCap(e){let t=e.attrs.lineCap;t&&this.setAttr(`lineCap`,t)}_applyOpacity(e){let t=e.getAbsoluteOpacity();t!==1&&this.setAttr(`globalAlpha`,t)}_applyLineJoin(e){let t=e.attrs.lineJoin;t&&this.setAttr(`lineJoin`,t)}_applyMiterLimit(e){let t=e.attrs.miterLimit;t!=null&&this.setAttr(`miterLimit`,t)}setAttr(e,t){this._context[e]=t}arc(e,t,n,r,i,a){this._context.arc(e,t,n,r,i,a)}arcTo(e,t,n,r,i){this._context.arcTo(e,t,n,r,i)}beginPath(){this._context.beginPath()}bezierCurveTo(e,t,n,r,i,a){this._context.bezierCurveTo(e,t,n,r,i,a)}clearRect(e,t,n,r){this._context.clearRect(e,t,n,r)}clip(...e){this._context.clip.apply(this._context,e)}closePath(){this._context.closePath()}createImageData(e,t){let n=arguments;if(n.length===2)return this._context.createImageData(e,t);if(n.length===1)return this._context.createImageData(e)}createLinearGradient(e,t,n,r){return this._context.createLinearGradient(e,t,n,r)}createPattern(e,t){return this._context.createPattern(e,t)}createRadialGradient(e,t,n,r,i,a){return this._context.createRadialGradient(e,t,n,r,i,a)}drawImage(e,t,n,r,i,a,o,s,c){let l=arguments,u=this._context;l.length===3?u.drawImage(e,t,n):l.length===5?u.drawImage(e,t,n,r,i):l.length===9&&u.drawImage(e,t,n,r,i,a,o,s,c)}ellipse(e,t,n,r,i,a,o,s){this._context.ellipse(e,t,n,r,i,a,o,s)}isPointInPath(e,t,n,r){return n?this._context.isPointInPath(n,e,t,r):this._context.isPointInPath(e,t,r)}fill(...e){this._context.fill.apply(this._context,e)}fillRect(e,t,n,r){this._context.fillRect(e,t,n,r)}strokeRect(e,t,n,r){this._context.strokeRect(e,t,n,r)}fillText(e,t,n,r){r?this._context.fillText(e,t,n,r):this._context.fillText(e,t,n)}measureText(e){return this._context.measureText(e)}getImageData(e,t,n,r){return this._context.getImageData(e,t,n,r)}lineTo(e,t){this._context.lineTo(e,t)}moveTo(e,t){this._context.moveTo(e,t)}rect(e,t,n,r){this._context.rect(e,t,n,r)}roundRect(e,t,n,r,i){this._context.roundRect(e,t,n,r,i)}putImageData(e,t,n){this._context.putImageData(e,t,n)}quadraticCurveTo(e,t,n,r){this._context.quadraticCurveTo(e,t,n,r)}restore(){this._context.restore()}rotate(e){this._context.rotate(e)}save(){this._context.save()}scale(e,t){this._context.scale(e,t)}setLineDash(e){this._context.setLineDash?this._context.setLineDash(e):`mozDash`in this._context?this._context.mozDash=e:`webkitLineDash`in this._context&&(this._context.webkitLineDash=e)}getLineDash(){return this._context.getLineDash()}setTransform(e,t,n,r,i,a){this._context.setTransform(e,t,n,r,i,a)}stroke(e){e?this._context.stroke(e):this._context.stroke()}strokeText(e,t,n,r){this._context.strokeText(e,t,n,r)}transform(e,t,n,r,i,a){this._context.transform(e,t,n,r,i,a)}translate(e,t){this._context.translate(e,t)}_enableTrace(){let e=this,t=Ne.length,n=this.setAttr,r,i,a=function(t){let n=e[t],r;e[t]=function(){return i=we(Array.prototype.slice.call(arguments,0)),r=n.apply(e,arguments),e._trace({method:t,args:i}),r}};for(r=0;r{t.dragStatus===`dragging`&&(e=!0)}),e},justDragged:!1,get node(){let e;return L._dragElements.forEach(t=>{e=t.node}),e},_dragElements:new Map,_drag(e){let t=[];L._dragElements.forEach((n,r)=>{let{node:i}=n,a=i.getStage();a.setPointersPositions(e),n.pointerId===void 0&&(n.pointerId=I._getFirstPointerId(e));let o=a._changedPointerPositions.find(e=>e.id===n.pointerId);if(o){if(n.dragStatus!==`dragging`){let t=i.dragDistance();if(Math.max(Math.abs(o.x-n.startPointerPos.x),Math.abs(o.y-n.startPointerPos.y)){t.getStage()&&t.fire(`dragmove`,{type:`dragmove`,target:t,evt:e},!0)})},_endDragBefore(e){let t=[];L._dragElements.forEach(n=>{let{node:r}=n,i=r.getStage();if(e&&i.setPointersPositions(e),!i._changedPointerPositions.find(e=>e.id===n.pointerId))return;(n.dragStatus===`dragging`||n.dragStatus===`stopped`)&&(L.justDragged=!0,N._mouseListenClick=!1,N._touchListenClick=!1,N._pointerListenClick=!1,n.dragStatus=`stopped`);let a=n.node.getLayer()||n.node instanceof N.Stage&&n.node;a&&t.indexOf(a)===-1&&t.push(a)}),t.forEach(e=>{e.draw()})},_endDragAfter(e){L._dragElements.forEach((t,n)=>{t.dragStatus===`stopped`&&t.node.fire(`dragend`,{type:`dragend`,target:t.node,evt:e},!0),t.dragStatus!==`dragging`&&L._dragElements.delete(n)})}};N.isBrowser&&(window.addEventListener(`mouseup`,L._endDragBefore,!0),window.addEventListener(`touchend`,L._endDragBefore,!0),window.addEventListener(`touchcancel`,L._endDragBefore,!0),window.addEventListener(`mousemove`,L._drag),window.addEventListener(`touchmove`,L._drag),window.addEventListener(`mouseup`,L._endDragAfter,!1),window.addEventListener(`touchend`,L._endDragAfter,!1),window.addEventListener(`touchcancel`,L._endDragAfter,!1));function Ke(e){return I._isString(e)?`"`+e+`"`:Object.prototype.toString.call(e)===`[object Number]`||I._isBoolean(e)?e:Object.prototype.toString.call(e)}function qe(e){return e>255?255:e<0?0:Math.round(e)}function R(){if(N.isUnminified)return function(e,t){return I._isNumber(e)||I.warn(Ke(e)+` is a not valid value for "`+t+`" attribute. The value should be a number.`),e}}function Je(e){if(N.isUnminified)return function(t,n){let r=I._isNumber(t),i=I._isArray(t)&&t.length==e;return!r&&!i&&I.warn(Ke(t)+` is a not valid value for "`+n+`" attribute. The value should be a number or Array(`+e+`)`),t}}function Ye(){if(N.isUnminified)return function(e,t){return I._isNumber(e)||e===`auto`||I.warn(Ke(e)+` is a not valid value for "`+t+`" attribute. The value should be a number or "auto".`),e}}function Xe(){if(N.isUnminified)return function(e,t){return I._isString(e)||I.warn(Ke(e)+` is a not valid value for "`+t+`" attribute. The value should be a string.`),e}}function Ze(){if(N.isUnminified)return function(e,t){let n=I._isString(e),r=Object.prototype.toString.call(e)===`[object CanvasGradient]`||e&&e.addColorStop;return n||r||I.warn(Ke(e)+` is a not valid value for "`+t+`" attribute. The value should be a string or a native gradient.`),e}}function Qe(){if(N.isUnminified)return function(e,t){let n=Int8Array?Object.getPrototypeOf(Int8Array):null;return n&&e instanceof n||(I._isArray(e)?e.forEach(function(e){I._isNumber(e)||I.warn(`"`+t+`" attribute has non numeric element `+e+`. Make sure that all elements are numbers.`)}):I.warn(Ke(e)+` is a not valid value for "`+t+`" attribute. The value should be a array of numbers.`)),e}}function $e(){if(N.isUnminified)return function(e,t){return e===!0||e===!1||I.warn(Ke(e)+` is a not valid value for "`+t+`" attribute. The value should be a boolean.`),e}}function et(e){if(N.isUnminified)return function(t,n){return t==null||I.isObject(t)||I.warn(Ke(t)+` is a not valid value for "`+n+`" attribute. The value should be an object with properties `+e),t}}var tt=`get`,nt=`set`,z={addGetterSetter(e,t,n,r,i){z.addGetter(e,t,n),z.addSetter(e,t,r,i),z.addOverloadedGetterSetter(e,t)},addGetter(e,t,n){let r=tt+I._capitalize(t);e.prototype[r]=e.prototype[r]||function(){let e=this.attrs[t];return e===void 0?n:e}},addSetter(e,t,n,r){let i=nt+I._capitalize(t);e.prototype[i]||z.overWriteSetter(e,t,n,r)},overWriteSetter(e,t,n,r){let i=nt+I._capitalize(t);e.prototype[i]=function(e){return n&&e!=null&&(e=n.call(this,e,t)),this._setAttr(t,e),r&&r.call(this),this}},addComponentsGetterSetter(e,t,n,r,i){let a=n.length,o=I._capitalize,s=tt+o(t),c=nt+o(t);e.prototype[s]=function(){let e={};for(let r=0;r{this._setAttr(t+o(e),void 0)}),this._fireChangeEvent(t,a,e),i&&i.call(this),this},z.addOverloadedGetterSetter(e,t)},addOverloadedGetterSetter(e,t){let n=I._capitalize(t),r=nt+n,i=tt+n;e.prototype[t]=function(){return arguments.length?(this[r](arguments[0]),this):this[i]()}},addDeprecatedGetterSetter(e,t,n,r){I.error(`Adding deprecated `+t);let i=tt+I._capitalize(t),a=t+` property is deprecated and will be removed soon. Look at Konva change log for more information.`;e.prototype[i]=function(){I.error(a);let e=this.attrs[t];return e===void 0?n:e},z.addSetter(e,t,r,function(){I.error(a)}),z.addOverloadedGetterSetter(e,t)},backCompat(e,t){I.each(t,function(t,n){let r=e.prototype[n],i=tt+I._capitalize(t),a=nt+I._capitalize(t);function o(){r.apply(this,arguments),I.error(`"`+t+`" method is deprecated and will be removed soon. Use ""`+n+`" instead.`)}e.prototype[t]=o,e.prototype[i]=o,e.prototype[a]=o})},afterSetFilter(){this._filterUpToDate=!1}};function rt(e){let t=/(\w+)\(([^)]+)\)/g,n;for(;(n=t.exec(e))!==null;){let[,e,t]=n;switch(e){case`blur`:{let e=parseFloat(t.replace(`px`,``));return function(t){this.blurRadius(e*.5);let n=N.Filters;n&&n.Blur&&n.Blur.call(this,t)}}case`brightness`:{let e=t.includes(`%`)?parseFloat(t)/100:parseFloat(t);return function(t){this.brightness(e);let n=N.Filters;n&&n.Brightness&&n.Brightness.call(this,t)}}case`contrast`:{let e=parseFloat(t);return function(t){let n=100*(Math.sqrt(e)-1);this.contrast(n);let r=N.Filters;r&&r.Contrast&&r.Contrast.call(this,t)}}case`grayscale`:return function(e){let t=N.Filters;t&&t.Grayscale&&t.Grayscale.call(this,e)};case`sepia`:return function(e){let t=N.Filters;t&&t.Sepia&&t.Sepia.call(this,e)};case`invert`:return function(e){let t=N.Filters;t&&t.Invert&&t.Invert.call(this,e)};default:I.warn(`CSS filter "${e}" is not supported in fallback mode. Consider using function filters for better compatibility.`);break}}return()=>{}}var it=`absoluteOpacity`,at=`allEventListeners`,ot=`absoluteTransform`,st=`absoluteScale`,ct=`canvas`,lt=`Change`,ut=`children`,dt=`konva`,ft=`listening`,pt=`mouseenter`,mt=`mouseleave`,ht=`pointerenter`,gt=`pointerleave`,_t=`touchenter`,vt=`touchleave`,yt=`set`,bt=`Shape`,xt=` `,St=`stage`,Ct=`transform`,wt=`Stage`,Tt=`visible`,Et=[`xChange.konva`,`yChange.konva`,`scaleXChange.konva`,`scaleYChange.konva`,`skewXChange.konva`,`skewYChange.konva`,`rotationChange.konva`,`offsetXChange.konva`,`offsetYChange.konva`,`transformsEnabledChange.konva`].join(xt),Dt=1,B=class e{constructor(e){this._id=Dt++,this.eventListeners={},this.attrs={},this.index=0,this._allEventListeners=null,this.parent=null,this._cache=new Map,this._attachedDepsListeners=new Map,this._lastPos=null,this._batchingTransformChange=!1,this._needClearTransformCache=!1,this._filterUpToDate=!1,this._isUnderCache=!1,this._dragEventId=null,this._shouldFireChangeEvents=!1,this.setAttrs(e),this._shouldFireChangeEvents=!0}hasChildren(){return!1}_clearCache(e){(e===Ct||e===ot)&&this._cache.get(e)?this._cache.get(e).dirty=!0:e?this._cache.delete(e):this._cache.clear()}_getCache(e,t){let n=this._cache.get(e);return(n===void 0||(e===Ct||e===ot)&&n.dirty===!0)&&(n=t.call(this),this._cache.set(e,n)),n}_calculate(e,t,n){if(!this._attachedDepsListeners.get(e)){let n=t.map(e=>e+`Change.konva`).join(xt);this.on(n,()=>{this._clearCache(e)}),this._attachedDepsListeners.set(e,!0)}return this._getCache(e,n)}_getCanvasCache(){return this._cache.get(ct)}_clearSelfAndDescendantCache(e){this._clearCache(e),e===ot&&this.fire(`absoluteTransformChange`)}clearCache(){if(this._cache.has(ct)){let{scene:e,filter:t,hit:n}=this._cache.get(ct);I.releaseCanvas(e._canvas,t._canvas,n._canvas),this._cache.delete(ct)}return this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(e){let t=e||{},n={};(t.x===void 0||t.y===void 0||t.width===void 0||t.height===void 0)&&(n=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()||void 0}));let r=Math.ceil(t.width||n.width),i=Math.ceil(t.height||n.height),a=t.pixelRatio,o=t.x===void 0?Math.floor(n.x):t.x,s=t.y===void 0?Math.floor(n.y):t.y,c=t.offset||0,l=t.drawBorder||!1,u=t.hitCanvasPixelRatio||1;if(!r||!i){I.error(`Can not cache the node. Width or height of the node equals 0. Caching is skipped.`);return}let d=+(Math.abs(Math.round(n.x)-o)>.5),f=+(Math.abs(Math.round(n.y)-s)>.5);r+=c*2+d,i+=c*2+f,o-=c,s-=c;let p=new We({pixelRatio:a,width:r,height:i}),m=new We({pixelRatio:a,width:0,height:0,willReadFrequently:!0}),h=new Ge({pixelRatio:u,width:r,height:i}),g=p.getContext(),_=h.getContext(),v=new We({width:p.width/p.pixelRatio+Math.abs(o),height:p.height/p.pixelRatio+Math.abs(s),pixelRatio:p.pixelRatio}),y=v.getContext();return h.isCache=!0,p.isCache=!0,this._cache.delete(ct),this._filterUpToDate=!1,t.imageSmoothingEnabled===!1&&(p.getContext()._context.imageSmoothingEnabled=!1,m.getContext()._context.imageSmoothingEnabled=!1),g.save(),_.save(),y.save(),g.translate(-o,-s),_.translate(-o,-s),y.translate(-o,-s),v.x=o,v.y=s,this._isUnderCache=!0,this._clearSelfAndDescendantCache(it),this._clearSelfAndDescendantCache(st),this.drawScene(p,this,v),this.drawHit(h,this),this._isUnderCache=!1,g.restore(),_.restore(),l&&(g.save(),g.beginPath(),g.rect(0,0,r,i),g.closePath(),g.setAttr(`strokeStyle`,`red`),g.setAttr(`lineWidth`,5),g.stroke(),g.restore()),I.releaseCanvas(v._canvas),this._cache.set(ct,{scene:p,filter:m,hit:h,x:o,y:s}),this._requestDraw(),this}isCached(){return this._cache.has(ct)}getClientRect(e){throw Error(`abstract "getClientRect" method call`)}_transformedRect(e,t){let n=[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}],r=1/0,i=1/0,a=-1/0,o=-1/0,s=this.getAbsoluteTransform(t);return n.forEach(function(e){let t=s.point(e);r===void 0&&(r=a=t.x,i=o=t.y),r=Math.min(r,t.x),i=Math.min(i,t.y),a=Math.max(a,t.x),o=Math.max(o,t.y)}),{x:r,y:i,width:a-r,height:o-i}}_drawCachedSceneCanvas(e){e.save(),e._applyOpacity(this),e._applyGlobalCompositeOperation(this);let t=this._getCanvasCache();e.translate(t.x,t.y);let n=this._getCachedSceneCanvas(),r=n.pixelRatio;e.drawImage(n._canvas,0,0,n.width/r,n.height/r),e.restore()}_drawCachedHitCanvas(e){let t=this._getCanvasCache(),n=t.hit;e.save(),e.translate(t.x,t.y),e.drawImage(n._canvas,0,0,n.width/n.pixelRatio,n.height/n.pixelRatio),e.restore()}_getCachedSceneCanvas(){let e=this.filters(),t=this._getCanvasCache(),n=t.scene,r=t.filter,i=r.getContext(),a,o,s,c;if(!e||e.length===0)return n;if(this._filterUpToDate)return r;let l=!0;for(let t=0;t{this.isAncestorOf(e.node)&&L._dragElements.delete(t)}),this._remove(),this}_clearCaches(){this._clearSelfAndDescendantCache(ot),this._clearSelfAndDescendantCache(it),this._clearSelfAndDescendantCache(st),this._clearSelfAndDescendantCache(St),this._clearSelfAndDescendantCache(Tt),this._clearSelfAndDescendantCache(ft)}_remove(){this._clearCaches();let e=this.getParent();e&&e.children&&(e.children.splice(this.index,1),e._setChildrenIndices(),this.parent=null)}destroy(){return this.remove(),this.clearCache(),this}getAttr(e){let t=`get`+I._capitalize(e);return I._isFunction(this[t])?this[t]():this.attrs[e]}getAncestors(){let e=this.getParent(),t=[];for(;e;)t.push(e),e=e.getParent();return t}getAttrs(){return this.attrs||{}}setAttrs(e){return this._batchTransformChanges(()=>{let t,n;if(!e)return this;for(t in e)t!==ut&&(n=yt+I._capitalize(t),I._isFunction(this[n])?this[n](e[t]):this._setAttr(t,e[t]))}),this}isListening(){return this._getCache(ft,this._isListening)}_isListening(e){if(!this.listening())return!1;let t=this.getParent();return t&&t!==e&&this!==e?t._isListening(e):!0}isVisible(){return this._getCache(Tt,this._isVisible)}_isVisible(e){if(!this.visible())return!1;let t=this.getParent();return t&&t!==e&&this!==e?t._isVisible(e):!0}shouldDrawHit(e,t=!1){if(e)return this._isVisible(e)&&this._isListening(e);let n=this.getLayer(),r=!1;L._dragElements.forEach(e=>{e.dragStatus===`dragging`&&(e.node.nodeType===`Stage`||e.node.getLayer()===n)&&(r=!0)});let i=!t&&!N.hitOnDragEnabled&&(r||N.isTransforming());return this.isListening()&&this.isVisible()&&!i}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){let e=this.getDepth(),t=this,n=0,r,i,a,o;function s(c){for(r=[],i=c.length,a=0;a0&&r[0].getDepth()<=e&&s(r)}let c=this.getStage();return t.nodeType!==wt&&c&&s(c.getChildren()),n}getDepth(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}_batchTransformChanges(e){this._batchingTransformChange=!0,e(),this._batchingTransformChange=!1,this._needClearTransformCache&&(this._clearCache(Ct),this._clearSelfAndDescendantCache(ot)),this._needClearTransformCache=!1}setPosition(e){return this._batchTransformChanges(()=>{this.x(e.x),this.y(e.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){let e=this.getStage();if(!e)return null;let t=e.getPointerPosition();if(!t)return null;let n=this.getAbsoluteTransform().copy();return n.invert(),n.point(t)}getAbsolutePosition(e){let t=!1,n=this.parent;for(;n;){if(n.isCached()){t=!0;break}n=n.parent}t&&!e&&(e=!0);let r=this.getAbsoluteTransform(e).getMatrix(),i=new F,a=this.offset();return i.m=r.slice(),i.translate(a.x,a.y),i.getTranslation()}setAbsolutePosition(e){let{x:t,y:n,...r}=this._clearTransform();this.attrs.x=t,this.attrs.y=n,this._clearCache(Ct);let i=this._getAbsoluteTransform().copy();return i.invert(),i.translate(e.x,e.y),e={x:this.attrs.x+i.getTranslation().x,y:this.attrs.y+i.getTranslation().y},this._setTransform(r),this.setPosition({x:e.x,y:e.y}),this._clearCache(Ct),this._clearSelfAndDescendantCache(ot),this}_setTransform(e){let t;for(t in e)this.attrs[t]=e[t]}_clearTransform(){let e={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,e}move(e){let t=e.x,n=e.y,r=this.x(),i=this.y();return t!==void 0&&(r+=t),n!==void 0&&(i+=n),this.setPosition({x:r,y:i}),this}_eachAncestorReverse(e,t){let n=[],r=this.getParent(),i,a;if(!(t&&t._id===this._id)){for(n.unshift(this);r&&(!t||r._id!==t._id);)n.unshift(r),r=r.parent;for(i=n.length,a=0;a0?(this.parent.children.splice(e,1),this.parent.children.splice(e-1,0,this),this.parent._setChildrenIndices(),!0):!1}moveToBottom(){if(!this.parent)return I.warn(`Node has no parent. moveToBottom function is ignored.`),!1;let e=this.index;return e>0?(this.parent.children.splice(e,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0):!1}setZIndex(e){if(!this.parent)return I.warn(`Node has no parent. zIndex parameter is ignored.`),this;(e<0||e>=this.parent.children.length)&&I.warn(`Unexpected value `+e+` for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to `+(this.parent.children.length-1)+`.`);let t=this.index;return this.parent.children.splice(t,1),this.parent.children.splice(e,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(it,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){let e=this.opacity(),t=this.getParent();return t&&!t._isUnderCache&&(e*=t.getAbsoluteOpacity()),e}moveTo(e){return this.getParent()!==e&&(this._remove(),e.add(this)),this}toObject(){let e=this.getAttrs(),t,n,r,i,a,o={attrs:{},className:this.getClassName()};for(t in e)n=e[t],a=I.isObject(n)&&!I._isPlainObject(n)&&!I._isArray(n),!a&&(r=typeof this[t]==`function`&&this[t],delete e[t],i=r?r.call(this):null,e[t]=n,i!==n&&(o.attrs[t]=n));return I._prepareToStringify(o)}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(e,t,n){let r=[];t&&this._isMatch(e)&&r.push(this);let i=this.parent;for(;i;){if(i===n)return r;i._isMatch(e)&&r.push(i),i=i.parent}return r}isAncestorOf(e){return!1}findAncestor(e,t,n){return this.findAncestors(e,t,n)[0]}_isMatch(e){if(!e)return!1;if(typeof e==`function`)return e(this);let t=e.replace(/ /g,``).split(`,`),n=t.length,r,i;for(r=0;r{try{let n=e?.callback;n&&delete e.callback,I._urlToImage(this.toDataURL(e),function(e){t(e),n?.(e)})}catch(e){n(e)}})}toBlob(e){return new Promise((t,n)=>{try{let n=e?.callback;n&&delete e.callback,this.toCanvas(e).toBlob(e=>{t(e),n?.(e)},e?.mimeType,e?.quality)}catch(e){n(e)}})}setSize(e){return this.width(e.width),this.height(e.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance===void 0?this.parent?this.parent.getDragDistance():N.dragDistance:this.attrs.dragDistance}_off(e,t,n){let r=this.eventListeners[e],i,a,o;for(i=0;i=0)||this.isDragging())return;let t=!1;L._dragElements.forEach(e=>{this.isAncestorOf(e.node)&&(t=!0)}),t||this._createDragElement(e)})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{if(this._dragCleanup(),!this.getStage())return;let e=L._dragElements.get(this._id),t=e&&e.dragStatus===`dragging`,n=e&&e.dragStatus===`ready`;t?this.stopDrag():n&&L._dragElements.delete(this._id)}}_dragCleanup(){this.off(`mousedown.konva`),this.off(`touchstart.konva`)}isClientRectOnScreen(e={x:0,y:0}){let t=this.getStage();if(!t)return!1;let n={x:-e.x,y:-e.y,width:t.width()+2*e.x,height:t.height()+2*e.y};return I.haveIntersection(n,this.getClientRect())}static create(e,t){return I._isString(e)&&(e=JSON.parse(e)),this._createNode(e,t)}static _createNode(t,n){let r=e.prototype.getClassName.call(t),i=t.children,a,o,s;n&&(t.attrs.container=n),N[r]||(I.warn(`Can not find a node with class name "`+r+`". Fallback to "Shape".`),r=`Shape`);let c=N[r];if(a=new c(t.attrs),i)for(o=i.length,s=0;s0}removeChildren(){return this.getChildren().forEach(e=>{e.parent=null,e.index=0,e.remove()}),this.children=[],this._requestDraw(),this}destroyChildren(){return this.getChildren().forEach(e=>{e.parent=null,e.index=0,e.destroy()}),this.children=[],this._requestDraw(),this}add(...e){if(e.length===0)return this;if(e.length>1){for(let t=0;t0?t[0]:void 0}_generalFind(e,t){let n=[];return this._descendants(r=>{let i=r._isMatch(e);return i&&n.push(r),!!(i&&t)}),n}_descendants(e){let t=!1,n=this.getChildren();for(let r of n)if(t=e(r),t||r.hasChildren()&&(t=r._descendants(e),t))return!0;return!1}toObject(){let e=B.prototype.toObject.call(this);return e.children=[],this.getChildren().forEach(t=>{e.children.push(t.toObject())}),e}isAncestorOf(e){let t=e.getParent();for(;t;){if(t._id===this._id)return!0;t=t.getParent()}return!1}clone(e){let t=B.prototype.clone.call(this,e);return this.getChildren().forEach(function(e){t.add(e.clone())}),t}getAllIntersections(e){let t=[];return this.find(`Shape`).forEach(n=>{n.isVisible()&&n.intersects(e)&&t.push(n)}),t}_clearSelfAndDescendantCache(e){var t;super._clearSelfAndDescendantCache(e),!this.isCached()&&((t=this.children)==null||t.forEach(function(t){t._clearSelfAndDescendantCache(e)}))}_setChildrenIndices(){var e;(e=this.children)==null||e.forEach(function(e,t){e.index=t}),this._requestDraw()}drawScene(e,t,n){let r=this.getLayer(),i=e||r&&r.getCanvas(),a=i&&i.getContext(),o=this._getCanvasCache(),s=o&&o.scene,c=i&&i.isCache;if(!this.isVisible()&&!c)return this;if(s){a.save();let e=this.getAbsoluteTransform(t).getMatrix();a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedSceneCanvas(a),a.restore()}else this._drawChildren(`drawScene`,i,t,n);return this}drawHit(e,t){if(!this.shouldDrawHit(t))return this;let n=this.getLayer(),r=e||n&&n.hitCanvas,i=r&&r.getContext(),a=this._getCanvasCache();if(a&&a.hit){i.save();let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedHitCanvas(i),i.restore()}else this._drawChildren(`drawHit`,r,t);return this}_drawChildren(e,t,n,r){var i;let a=t&&t.getContext(),o=this.clipWidth(),s=this.clipHeight(),c=this.clipFunc(),l=typeof o==`number`&&typeof s==`number`||c,u=n===this;if(l){a.save();let e=this.getAbsoluteTransform(n),t=e.getMatrix();a.transform(t[0],t[1],t[2],t[3],t[4],t[5]),a.beginPath();let r;if(c)r=c.call(this,a,this);else{let e=this.clipX(),t=this.clipY();a.rect(e||0,t||0,o,s)}a.clip.apply(a,r),t=e.copy().invert().getMatrix(),a.transform(t[0],t[1],t[2],t[3],t[4],t[5])}let d=!u&&this.globalCompositeOperation()!==`source-over`&&e===`drawScene`;d&&(a.save(),a._applyGlobalCompositeOperation(this)),(i=this.children)==null||i.forEach(function(i){i[e](t,n,r)}),d&&a.restore(),l&&a.restore()}getClientRect(e={}){var t;let n=e.skipTransform,r=e.relativeTo,i,a,o,s,c={x:1/0,y:1/0,width:0,height:0},l=this;(t=this.children)==null||t.forEach(function(t){if(!t.visible())return;let n=t.getClientRect({relativeTo:l,skipShadow:e.skipShadow,skipStroke:e.skipStroke});n.width===0&&n.height===0||(i===void 0?(i=n.x,a=n.y,o=n.x+n.width,s=n.y+n.height):(i=Math.min(i,n.x),a=Math.min(a,n.y),o=Math.max(o,n.x+n.width),s=Math.max(s,n.y+n.height)))});let u=this.find(`Shape`),d=!1;for(let e=0;ee.indexOf(`pointer`)>=0?`pointer`:e.indexOf(`touch`)>=0?`touch`:`mouse`,dn=e=>{let t=un(e);if(t===`pointer`)return N.pointerEventsEnabled&&ln.pointer;if(t===`touch`)return ln.touch;if(t===`mouse`)return ln.mouse};function fn(e={}){return(e.clipFunc||e.clipWidth||e.clipHeight)&&I.warn(`Stage does not support clipping. Please use clip for Layers or Groups.`),e}var pn=`Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`,mn=[],hn=class extends H{constructor(e){super(fn(e)),this._pointerPositions=[],this._changedPointerPositions=[],this._buildDOM(),this._bindContentEvents(),mn.push(this),this.on(`widthChange.konva heightChange.konva`,this._resizeDOM),this.on(`visibleChange.konva`,this._checkVisibility),this.on(`clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva`,()=>{fn(this.attrs)}),this._checkVisibility()}_validateAdd(e){let t=e.getType()===`Layer`,n=e.getType()===`FastLayer`;t||n||I.throw(`You may only add layers to the stage.`)}_checkVisibility(){if(!this.content)return;let e=this.visible()?``:`none`;this.content.style.display=e}setContainer(e){if(typeof e===It){let t;if(e.charAt(0)===`.`){let t=e.slice(1);e=document.getElementsByClassName(t)[0]}else t=e.charAt(0)===`#`?e.slice(1):e,e=document.getElementById(t);if(!e)throw`Can not find container in document with id `+t}return this._setAttr(`container`,e),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),e.appendChild(this.content)),this}shouldDrawHit(){return!0}clear(){let e=this.children,t=e.length;for(let n=0;n-1&&mn.splice(t,1),I.releaseCanvas(this.bufferCanvas._canvas,this.bufferHitCanvas._canvas),this}getPointerPosition(){let e=this._pointerPositions[0]||this._changedPointerPositions[0];return e?{x:e.x,y:e.y}:(I.warn(pn),null)}_getPointerById(e){return this._pointerPositions.find(t=>t.id===e)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(e){e={...e},e.x=e.x||0,e.y=e.y||0,e.width=e.width||this.width(),e.height=e.height||this.height();let t=new We({width:e.width,height:e.height,pixelRatio:e.pixelRatio||1}),n=t.getContext()._context,r=this.children;return(e.x||e.y)&&n.translate(-1*e.x,-1*e.y),r.forEach(function(t){if(!t.isVisible())return;let r=t._toKonvaCanvas(e);n.drawImage(r._canvas,e.x,e.y,r.getWidth()/r.getPixelRatio(),r.getHeight()/r.getPixelRatio())}),t}getIntersection(e){if(!e)return null;let t=this.children,n=t.length-1;for(let r=n;r>=0;r--){let n=t[r].getIntersection(e);if(n)return n}return null}_resizeDOM(){let e=this.width(),t=this.height();this.content&&(this.content.style.width=e+Lt,this.content.style.height=t+Lt),this.bufferCanvas.setSize(e,t),this.bufferHitCanvas.setSize(e,t),this.children.forEach(n=>{n.setSize({width:e,height:t}),n.draw()})}add(e,...t){if(arguments.length>1){for(let e=0;esn&&I.warn(`The stage has `+n+` layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.`),e.setSize({width:this.width(),height:this.height()}),e.draw(),N.isBrowser&&this.content.appendChild(e.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(e){return Mt(e,this)}setPointerCapture(e){Nt(e,this)}releaseCapture(e){Pt(e,this)}getLayers(){return this.children}_bindContentEvents(){N.isBrowser&&cn.forEach(([e,t])=>{this.content.addEventListener(e,e=>{this[t](e)},{passive:!1})})}_pointerenter(e){this.setPointersPositions(e);let t=dn(e.type);t&&this._fire(t.pointerenter,{evt:e,target:this,currentTarget:this})}_pointerover(e){this.setPointersPositions(e);let t=dn(e.type);t&&this._fire(t.pointerover,{evt:e,target:this,currentTarget:this})}_getTargetShape(e){let t=this[e+`targetShape`];return t&&!t.getStage()&&(t=null),t}_pointerleave(e){let t=dn(e.type),n=un(e.type);if(!t)return;this.setPointersPositions(e);let r=this._getTargetShape(n),i=!(N.isDragging()||N.isTransforming())||N.hitOnDragEnabled;r&&i?(r._fireAndBubble(t.pointerout,{evt:e}),r._fireAndBubble(t.pointerleave,{evt:e}),this._fire(t.pointerleave,{evt:e,target:this,currentTarget:this}),this[n+`targetShape`]=null):i&&(this._fire(t.pointerleave,{evt:e,target:this,currentTarget:this}),this._fire(t.pointerout,{evt:e,target:this,currentTarget:this})),this.pointerPos=null,this._pointerPositions=[]}_pointerdown(e){let t=dn(e.type),n=un(e.type);if(!t)return;this.setPointersPositions(e);let r=!1;this._changedPointerPositions.forEach(i=>{let a=this.getIntersection(i);if(L.justDragged=!1,N[`_`+n+`ListenClick`]=!0,!a||!a.isListening()){this[n+`ClickStartShape`]=void 0;return}N.capturePointerEventsEnabled&&a.setPointerCapture(i.id),this[n+`ClickStartShape`]=a,a._fireAndBubble(t.pointerdown,{evt:e,pointerId:i.id}),r=!0;let o=e.type.indexOf(`touch`)>=0;a.preventDefault()&&e.cancelable&&o&&e.preventDefault()}),r||this._fire(t.pointerdown,{evt:e,target:this,currentTarget:this,pointerId:this._pointerPositions[0].id})}_pointermove(e){let t=dn(e.type),n=un(e.type);if(!t)return;let r=e.type.indexOf(`touch`)>=0||e.pointerType===`touch`;if(N.isDragging()&&L.node.preventDefault()&&e.cancelable&&r&&e.preventDefault(),this.setPointersPositions(e),!(!(N.isDragging()||N.isTransforming())||N.hitOnDragEnabled))return;let i={},a=!1,o=this._getTargetShape(n);this._changedPointerPositions.forEach(r=>{let s=At(r.id)||this.getIntersection(r),c=r.id,l={evt:e,pointerId:c},u=o!==s;if(u&&o&&(o._fireAndBubble(t.pointerout,{...l},s),o._fireAndBubble(t.pointerleave,{...l},s)),s){if(i[s._id])return;i[s._id]=!0}s&&s.isListening()?(a=!0,u&&(s._fireAndBubble(t.pointerover,{...l},o),s._fireAndBubble(t.pointerenter,{...l},o),this[n+`targetShape`]=s),s._fireAndBubble(t.pointermove,{...l})):o&&(this._fire(t.pointerover,{evt:e,target:this,currentTarget:this,pointerId:c}),this[n+`targetShape`]=null)}),a||this._fire(t.pointermove,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(e){let t=dn(e.type),n=un(e.type);if(!t)return;this.setPointersPositions(e);let r=this[n+`ClickStartShape`],i=this[n+`ClickEndShape`],a={},o=!1;this._changedPointerPositions.forEach(s=>{let c=At(s.id)||this.getIntersection(s);if(c){if(c.releaseCapture(s.id),a[c._id])return;a[c._id]=!0}let l=s.id,u={evt:e,pointerId:l},d=!1;N[`_`+n+`InDblClickWindow`]?(d=!0,clearTimeout(this[n+`DblTimeout`])):L.justDragged||(N[`_`+n+`InDblClickWindow`]=!0,clearTimeout(this[n+`DblTimeout`])),this[n+`DblTimeout`]=setTimeout(function(){N[`_`+n+`InDblClickWindow`]=!1},N.dblClickWindow),c&&c.isListening()?(o=!0,this[n+`ClickEndShape`]=c,c._fireAndBubble(t.pointerup,{...u}),N[`_`+n+`ListenClick`]&&r&&r===c&&(c._fireAndBubble(t.pointerclick,{...u}),d&&i&&i===c&&c._fireAndBubble(t.pointerdblclick,{...u}))):(this[n+`ClickEndShape`]=null,o||=(this._fire(t.pointerup,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),!0),N[`_`+n+`ListenClick`]&&this._fire(t.pointerclick,{evt:e,target:this,currentTarget:this,pointerId:l}),d&&this._fire(t.pointerdblclick,{evt:e,target:this,currentTarget:this,pointerId:l}))}),o||this._fire(t.pointerup,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),N[`_`+n+`ListenClick`]=!1,e.cancelable&&n!==`touch`&&n!==`pointer`&&e.preventDefault()}_contextmenu(e){this.setPointersPositions(e);let t=this.getIntersection(this.getPointerPosition());t&&t.isListening()?t._fireAndBubble(en,{evt:e}):this._fire(en,{evt:e,target:this,currentTarget:this})}_wheel(e){this.setPointersPositions(e);let t=this.getIntersection(this.getPointerPosition());t&&t.isListening()?t._fireAndBubble(on,{evt:e}):this._fire(on,{evt:e,target:this,currentTarget:this})}_pointercancel(e){this.setPointersPositions(e);let t=At(e.pointerId)||this.getIntersection(this.getPointerPosition());t&&t._fireAndBubble(qt,jt(e)),Pt(e.pointerId)}_lostpointercapture(e){Pt(e.pointerId)}setPointersPositions(e){let t=this._getContentPosition(),n=null,r=null;e||=window.event,e.touches===void 0?(n=(e.clientX-t.left)/t.scaleX,r=(e.clientY-t.top)/t.scaleY,this.pointerPos={x:n,y:r},this._pointerPositions=[{x:n,y:r,id:I._getFirstPointerId(e)}],this._changedPointerPositions=[{x:n,y:r,id:I._getFirstPointerId(e)}]):(this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(e.touches,e=>{this._pointerPositions.push({id:e.identifier,x:(e.clientX-t.left)/t.scaleX,y:(e.clientY-t.top)/t.scaleY})}),Array.prototype.forEach.call(e.changedTouches||e.touches,e=>{this._changedPointerPositions.push({id:e.identifier,x:(e.clientX-t.left)/t.scaleX,y:(e.clientY-t.top)/t.scaleY})}))}_setPointerPosition(e){I.warn(`Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.`),this.setPointersPositions(e)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};let e=this.content.getBoundingClientRect();return{top:e.top,left:e.left,scaleX:e.width/this.content.clientWidth||1,scaleY:e.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferCanvas=new We({width:this.width(),height:this.height()}),this.bufferHitCanvas=new Ge({pixelRatio:1,width:this.width(),height:this.height()}),!N.isBrowser)return;let e=this.container();if(!e)throw`Stage has no container. A container is required.`;e.innerHTML=``,this.content=document.createElement(`div`),this.content.style.position=`relative`,this.content.style.userSelect=`none`,this.content.className=`konvajs-content`,this.content.setAttribute(`role`,`presentation`),e.appendChild(this.content),this._resizeDOM()}cache(){return I.warn(`Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.`),this}clearCache(){return this}batchDraw(){return this.getChildren().forEach(function(e){e.batchDraw()}),this}};hn.prototype.nodeType=Ft,P(hn),z.addGetterSetter(hn,`container`),N.isBrowser&&document.addEventListener(`visibilitychange`,()=>{mn.forEach(e=>{e.batchDraw()})});var gn=`hasShadow`,_n=`shadowRGBA`,vn=`patternImage`,yn=`linearGradient`,bn=`radialGradient`,xn;function Sn(){return xn||(xn=I.createCanvasElement().getContext(`2d`),xn)}var Cn={};function wn(e){let t=this.attrs.fillRule;t?e.fill(t):e.fill()}function Tn(e){e.stroke()}function En(e){let t=this.attrs.fillRule;t?e.fill(t):e.fill()}function Dn(e){e.stroke()}function On(){this._clearCache(gn)}function kn(){this._clearCache(_n)}function An(){this._clearCache(vn)}function jn(){this._clearCache(yn)}function Mn(){this._clearCache(bn)}var U=class extends B{constructor(e){super(e);let t,n=0;for(;t=I.getHitColor(),!(t&&!(t in Cn));)if(n++,n>=1e4){I.warn(`Failed to find a unique color key for a shape. Konva may work incorrectly. Most likely your browser is using canvas farbling. Consider disabling it.`),t=I.getRandomColor();break}this.colorKey=t,Cn[t]=this}getContext(){return I.warn(`shape.getContext() method is deprecated. Please do not use it.`),this.getLayer().getContext()}getCanvas(){return I.warn(`shape.getCanvas() method is deprecated. Please do not use it.`),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(gn,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(vn,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){let e=Sn().createPattern(this.fillPatternImage(),this.fillPatternRepeat()||`repeat`);if(e&&e.setTransform){let t=new F;t.translate(this.fillPatternX(),this.fillPatternY()),t.rotate(N.getAngle(this.fillPatternRotation())),t.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),t.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());let n=t.getMatrix(),r=typeof DOMMatrix>`u`?{a:n[0],b:n[1],c:n[2],d:n[3],e:n[4],f:n[5]}:new DOMMatrix(n);e.setTransform(r)}return e}}_getLinearGradient(){return this._getCache(yn,this.__getLinearGradient)}__getLinearGradient(){let e=this.fillLinearGradientColorStops();if(e){let t=Sn(),n=this.fillLinearGradientStartPoint(),r=this.fillLinearGradientEndPoint(),i=t.createLinearGradient(n.x,n.y,r.x,r.y);for(let t=0;tthis.fillEnabled()&&!!(this.fill()||this.fillPatternImage()||this.fillLinearGradientColorStops()||this.fillRadialGradientColorStops()))}hasStroke(){return this._calculate(`hasStroke`,[`strokeEnabled`,`strokeWidth`,`stroke`,`strokeLinearGradientColorStops`],()=>this.strokeEnabled()&&this.strokeWidth()&&!!(this.stroke()||this.strokeLinearGradientColorStops()))}hasHitStroke(){let e=this.hitStrokeWidth();return e===`auto`?this.hasStroke():this.strokeEnabled()&&!!e}intersects(e){let t=this.getStage();if(!t)return!1;let n=t.bufferHitCanvas;return n.getContext().clear(),this.drawHit(n,void 0,!0),n.context.getImageData(Math.round(e.x),Math.round(e.y),1,1).data[3]>0}destroy(){return B.prototype.destroy.call(this),delete Cn[this.colorKey],delete this.colorKey,this}_useBufferCanvas(e){if(!(this.attrs.perfectDrawEnabled??!0))return!1;let t=e||this.hasFill(),n=this.hasStroke(),r=this.getAbsoluteOpacity()!==1;if(t&&n&&r)return!0;let i=this.hasShadow(),a=this.shadowForStrokeEnabled();return!!(t&&n&&i&&a)}setStrokeHitEnabled(e){I.warn(`strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.`),e?this.hitStrokeWidth(`auto`):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){let e=this.size();return{x:this._centroid?-e.width/2:0,y:this._centroid?-e.height/2:0,width:e.width,height:e.height}}getClientRect(e={}){let t=!1,n=this.getParent();for(;n;){if(n.isCached()){t=!0;break}n=n.getParent()}let r=e.skipTransform,i=e.relativeTo||t&&this.getStage()||void 0,a=this.getSelfRect(),o=!e.skipStroke&&this.hasStroke()&&this.strokeWidth()||0,s=a.width+o,c=a.height+o,l=!e.skipShadow&&this.hasShadow(),u=l?this.shadowOffsetX():0,d=l?this.shadowOffsetY():0,f=s+Math.abs(u),p=c+Math.abs(d),m=l&&this.shadowBlur()||0,h={width:f+m*2,height:p+m*2,x:-(o/2+m)+Math.min(u,0)+a.x,y:-(o/2+m)+Math.min(d,0)+a.y};return r?h:this._transformedRect(h,i)}drawScene(e,t,n){let r=this.getLayer(),i=(e||r.getCanvas()).getContext(),a=this._getCanvasCache(),o=this.getSceneFunc(),s=this.hasShadow(),c,l=t===this;if(!this.isVisible()&&!l)return this;if(a){i.save();let e=this.getAbsoluteTransform(t).getMatrix();return i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedSceneCanvas(i),i.restore(),this}if(!o)return this;if(i.save(),this._useBufferCanvas()){c=this.getStage();let e=n||c.bufferCanvas,r=e.getContext();n?(r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore()):r.clear(),r.save(),r._applyLineJoin(this),r._applyMiterLimit(this);let a=this.getAbsoluteTransform(t).getMatrix();r.transform(a[0],a[1],a[2],a[3],a[4],a[5]),o.call(this,r,this),r.restore();let u=e.pixelRatio;s&&i._applyShadow(this),l||(i._applyOpacity(this),i._applyGlobalCompositeOperation(this)),i.drawImage(e._canvas,e.x||0,e.y||0,e.width/u,e.height/u)}else{if(i._applyLineJoin(this),i._applyMiterLimit(this),!l){let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),i._applyOpacity(this),i._applyGlobalCompositeOperation(this)}s&&i._applyShadow(this),o.call(this,i,this)}return i.restore(),this}drawHit(e,t,n=!1){if(!this.shouldDrawHit(t,n))return this;let r=this.getLayer(),i=e||r.hitCanvas,a=i&&i.getContext(),o=this.hitFunc()||this.sceneFunc(),s=this._getCanvasCache(),c=s&&s.hit;if(this.colorKey||I.warn(`Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()`),c){a.save();let e=this.getAbsoluteTransform(t).getMatrix();return a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedHitCanvas(a),a.restore(),this}if(!o)return this;if(a.save(),a._applyLineJoin(this),a._applyMiterLimit(this),this!==t){let e=this.getAbsoluteTransform(t).getMatrix();a.transform(e[0],e[1],e[2],e[3],e[4],e[5])}return o.call(this,a,this),a.restore(),this}drawHitFromCache(e=0){let t=this._getCanvasCache(),n=this._getCachedSceneCanvas(),r=t.hit,i=r.getContext(),a=r.getWidth(),o=r.getHeight();i.clear(),i.drawImage(n._canvas,0,0,a,o);try{let t=i.getImageData(0,0,a,o),n=t.data,r=n.length,s=I._hexToRgb(this.colorKey);for(let t=0;te?(n[t]=s.r,n[t+1]=s.g,n[t+2]=s.b,n[t+3]=255):n[t+3]=0;i.putImageData(t,0,0)}catch(e){I.error(`Unable to draw hit graph from cached scene canvas. `+e.message)}return this}hasPointerCapture(e){return Mt(e,this)}setPointerCapture(e){Nt(e,this)}releaseCapture(e){Pt(e,this)}};U.prototype._fillFunc=wn,U.prototype._strokeFunc=Tn,U.prototype._fillFuncHit=En,U.prototype._strokeFuncHit=Dn,U.prototype._centroid=!1,U.prototype.nodeType=`Shape`,P(U),U.prototype.eventListeners={},U.prototype.on(`shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva`,On),U.prototype.on(`shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva`,kn),U.prototype.on(`fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva`,An),U.prototype.on(`fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva`,jn),U.prototype.on(`fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva`,Mn),z.addGetterSetter(U,`stroke`,void 0,Ze()),z.addGetterSetter(U,`strokeWidth`,2,R()),z.addGetterSetter(U,`fillAfterStrokeEnabled`,!1),z.addGetterSetter(U,`hitStrokeWidth`,`auto`,Ye()),z.addGetterSetter(U,`strokeHitEnabled`,!0,$e()),z.addGetterSetter(U,`perfectDrawEnabled`,!0,$e()),z.addGetterSetter(U,`shadowForStrokeEnabled`,!0,$e()),z.addGetterSetter(U,`lineJoin`),z.addGetterSetter(U,`lineCap`),z.addGetterSetter(U,`miterLimit`),z.addGetterSetter(U,`sceneFunc`),z.addGetterSetter(U,`hitFunc`),z.addGetterSetter(U,`dash`),z.addGetterSetter(U,`dashOffset`,0,R()),z.addGetterSetter(U,`shadowColor`,void 0,Xe()),z.addGetterSetter(U,`shadowBlur`,0,R()),z.addGetterSetter(U,`shadowOpacity`,1,R()),z.addComponentsGetterSetter(U,`shadowOffset`,[`x`,`y`]),z.addGetterSetter(U,`shadowOffsetX`,0,R()),z.addGetterSetter(U,`shadowOffsetY`,0,R()),z.addGetterSetter(U,`fillPatternImage`),z.addGetterSetter(U,`fill`,void 0,Ze()),z.addGetterSetter(U,`fillPatternX`,0,R()),z.addGetterSetter(U,`fillPatternY`,0,R()),z.addGetterSetter(U,`fillLinearGradientColorStops`),z.addGetterSetter(U,`strokeLinearGradientColorStops`),z.addGetterSetter(U,`fillRadialGradientStartRadius`,0),z.addGetterSetter(U,`fillRadialGradientEndRadius`,0),z.addGetterSetter(U,`fillRadialGradientColorStops`),z.addGetterSetter(U,`fillPatternRepeat`,`repeat`),z.addGetterSetter(U,`fillEnabled`,!0),z.addGetterSetter(U,`strokeEnabled`,!0),z.addGetterSetter(U,`shadowEnabled`,!0),z.addGetterSetter(U,`dashEnabled`,!0),z.addGetterSetter(U,`strokeScaleEnabled`,!0),z.addGetterSetter(U,`fillPriority`,`color`),z.addComponentsGetterSetter(U,`fillPatternOffset`,[`x`,`y`]),z.addGetterSetter(U,`fillPatternOffsetX`,0,R()),z.addGetterSetter(U,`fillPatternOffsetY`,0,R()),z.addComponentsGetterSetter(U,`fillPatternScale`,[`x`,`y`]),z.addGetterSetter(U,`fillPatternScaleX`,1,R()),z.addGetterSetter(U,`fillPatternScaleY`,1,R()),z.addComponentsGetterSetter(U,`fillLinearGradientStartPoint`,[`x`,`y`]),z.addComponentsGetterSetter(U,`strokeLinearGradientStartPoint`,[`x`,`y`]),z.addGetterSetter(U,`fillLinearGradientStartPointX`,0),z.addGetterSetter(U,`strokeLinearGradientStartPointX`,0),z.addGetterSetter(U,`fillLinearGradientStartPointY`,0),z.addGetterSetter(U,`strokeLinearGradientStartPointY`,0),z.addComponentsGetterSetter(U,`fillLinearGradientEndPoint`,[`x`,`y`]),z.addComponentsGetterSetter(U,`strokeLinearGradientEndPoint`,[`x`,`y`]),z.addGetterSetter(U,`fillLinearGradientEndPointX`,0),z.addGetterSetter(U,`strokeLinearGradientEndPointX`,0),z.addGetterSetter(U,`fillLinearGradientEndPointY`,0),z.addGetterSetter(U,`strokeLinearGradientEndPointY`,0),z.addComponentsGetterSetter(U,`fillRadialGradientStartPoint`,[`x`,`y`]),z.addGetterSetter(U,`fillRadialGradientStartPointX`,0),z.addGetterSetter(U,`fillRadialGradientStartPointY`,0),z.addComponentsGetterSetter(U,`fillRadialGradientEndPoint`,[`x`,`y`]),z.addGetterSetter(U,`fillRadialGradientEndPointX`,0),z.addGetterSetter(U,`fillRadialGradientEndPointY`,0),z.addGetterSetter(U,`fillPatternRotation`,0),z.addGetterSetter(U,`fillRule`,void 0,Xe()),z.backCompat(U,{dashArray:`dash`,getDashArray:`getDash`,setDashArray:`getDash`,drawFunc:`sceneFunc`,getDrawFunc:`getSceneFunc`,setDrawFunc:`setSceneFunc`,drawHitFunc:`hitFunc`,getDrawHitFunc:`getHitFunc`,setDrawHitFunc:`setHitFunc`});var Nn=`beforeDraw`,Pn=`draw`,Fn=[{x:0,y:0},{x:-1,y:-1},{x:1,y:-1},{x:1,y:1},{x:-1,y:1}],In=Fn.length,Ln=class extends H{constructor(e){super(e),this.canvas=new We,this.hitCanvas=new Ge({pixelRatio:1}),this._waitingForDraw=!1,this.on(`visibleChange.konva`,this._checkVisibility),this._checkVisibility(),this.on(`imageSmoothingEnabledChange.konva`,this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(e){return this.getContext().clear(e),this.getHitCanvas().getContext().clear(e),this}setZIndex(e){super.setZIndex(e);let t=this.getStage();return t&&t.content&&(t.content.removeChild(this.getNativeCanvasElement()),e{this.draw(),this._waitingForDraw=!1})),this}getIntersection(e){if(!this.isListening()||!this.isVisible())return null;let t=1,n=!1;for(;;){for(let r=0;r0)return{antialiased:!0};return{}}drawScene(e,t,n){let r=this.getLayer(),i=e||r&&r.getCanvas();return this._fire(Nn,{node:this}),this.clearBeforeDraw()&&i.getContext().clear(),H.prototype.drawScene.call(this,i,t,n),this._fire(Pn,{node:this}),this}drawHit(e,t){let n=this.getLayer(),r=e||n&&n.hitCanvas;return n&&n.clearBeforeDraw()&&n.getHitCanvas().getContext().clear(),H.prototype.drawHit.call(this,r,t),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(e){I.warn(`hitGraphEnabled method is deprecated. Please use layer.listening() instead.`),this.listening(e)}getHitGraphEnabled(e){return I.warn(`hitGraphEnabled method is deprecated. Please use layer.listening() instead.`),this.listening()}toggleHitCanvas(){if(!this.parent||!this.parent.content)return;let e=this.parent;this.hitCanvas._canvas.parentNode?e.content.removeChild(this.hitCanvas._canvas):e.content.appendChild(this.hitCanvas._canvas)}destroy(){return I.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}};Ln.prototype.nodeType=`Layer`,P(Ln),z.addGetterSetter(Ln,`imageSmoothingEnabled`,!0),z.addGetterSetter(Ln,`clearBeforeDraw`,!0),z.addGetterSetter(Ln,`hitGraphEnabled`,!0,$e());var Rn=class extends Ln{constructor(e){super(e),this.listening(!1),I.warn(`Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.`)}};Rn.prototype.nodeType=`FastLayer`,P(Rn);var zn=class extends H{_validateAdd(e){let t=e.getType();t!==`Group`&&t!==`Shape`&&I.throw(`You may only add groups and shapes to groups.`)}};zn.prototype.nodeType=`Group`,P(zn);var Bn=(function(){return ie.performance&&ie.performance.now?function(){return ie.performance.now()}:function(){return new Date().getTime()}})(),Vn=class e{constructor(t,n){this.id=e.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:Bn(),frameRate:0},this.func=t,this.setLayers(n)}setLayers(e){let t=[];return e&&(t=Array.isArray(e)?e:[e]),this.layers=t,this}getLayers(){return this.layers}addLayer(e){let t=this.layers,n=t.length;for(let r=0;rthis.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():e<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=e,this.update())}getTime(){return this._time}setPosition(e){this.prevPos=this._pos,this.propFunc(e),this._pos=e}getPosition(e){return e===void 0&&(e=this._time),this.func(e,this.begin,this._change,this.duration)}play(){this.state=Wn,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire(`onPlay`)}reverse(){this.state=Gn,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire(`onReverse`)}seek(e){this.pause(),this._time=e,this.update(),this.fire(`onSeek`)}reset(){this.pause(),this._time=0,this.update(),this.fire(`onReset`)}finish(){this.pause(),this._time=this.duration,this.update(),this.fire(`onFinish`)}update(){this.setPosition(this.getPosition(this._time)),this.fire(`onUpdate`)}onEnterFrame(){let e=this.getTimer()-this._startTime;this.state===Wn?this.setTime(e):this.state===Gn&&this.setTime(this.duration-e)}pause(){this.state=Un,this.fire(`onPause`)}getTimer(){return new Date().getTime()}},Yn=class e{constructor(t){let n=this,r=t.node,i=r._id,a=t.easing||Xn.Linear,o=!!t.yoyo,s,c;s=t.duration===void 0?.3:t.duration===0?.001:t.duration,this.node=r,this._id=qn++;let l=r.getLayer()||(r instanceof N.Stage?r.getLayers():null);for(c in l||I.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new Vn(function(){n.tween.onEnterFrame()},l),this.tween=new Jn(c,function(e){n._tweenFunc(e)},a,0,1,s*1e3,o),this._addListeners(),e.attrs[i]||(e.attrs[i]={}),e.attrs[i][this._id]||(e.attrs[i][this._id]={}),e.tweens[i]||(e.tweens[i]={}),t)Hn[c]===void 0&&this._addAttr(c,t[c]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,n){let r=this.node,i=r._id,a,o,s,c,l,u=e.tweens[i][t];u&&delete e.attrs[i][u][t];let d=r.getAttr(t);if(I._isArray(n))if(a=[],o=Math.max(n.length,d.length),t===`points`&&n.length!==d.length&&(n.length>d.length?(c=d,d=I._prepareArrayForTween(d,n,r.closed())):(s=n,n=I._prepareArrayForTween(n,d,r.closed()))),t.indexOf(`fill`)===0)for(let e=0;e{this.anim.start()},this.tween.onReverse=()=>{this.anim.start()},this.tween.onPause=()=>{this.anim.stop()},this.tween.onFinish=()=>{let t=this.node,n=e.attrs[t._id][this._id];n.points&&n.points.trueEnd&&t.setAttr(`points`,n.points.trueEnd),this.onFinish&&this.onFinish.call(this)},this.tween.onReset=()=>{let t=this.node,n=e.attrs[t._id][this._id];n.points&&n.points.trueStart&&t.points(n.points.trueStart),this.onReset&&this.onReset()},this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(e){return this.tween.seek(e*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){let t=this.node._id,n=this._id,r=e.tweens[t];this.pause(),this.anim&&this.anim.stop();for(let n in r)delete e.tweens[t][n];delete e.attrs[t][n],e.tweens[t]&&(Object.keys(e.tweens[t]).length===0&&delete e.tweens[t],Object.keys(e.attrs[t]).length===0&&delete e.attrs[t])}};Yn.attrs={},Yn.tweens={},B.prototype.to=function(e){let t=e.onFinish;e.node=this,e.onFinish=function(){this.destroy(),t&&t()},new Yn(e).play()};var Xn={BackEaseIn(e,t,n,r){let i=1.70158;return n*(e/=r)*e*((i+1)*e-i)+t},BackEaseOut(e,t,n,r){let i=1.70158;return n*((e=e/r-1)*e*((i+1)*e+i)+1)+t},BackEaseInOut(e,t,n,r){let i=1.70158;return(e/=r/2)<1?n/2*(e*e*(((i*=1.525)+1)*e-i))+t:n/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+t},ElasticEaseIn(e,t,n,r,i,a){let o=0;return e===0?t:(e/=r)===1?t+n:(a||=r*.3,!i||i0?e:t),c=1*t,l=a*(a>0?e:t),u=o*(o>0?t:e);return{x:s,y:n?-1*u:l,width:c-s,height:u-l}}};Qn.prototype._centroid=!0,Qn.prototype.className=`Arc`,Qn.prototype._attrsAffectingSize=[`innerRadius`,`outerRadius`,`angle`,`clockwise`],P(Qn),z.addGetterSetter(Qn,`innerRadius`,0,R()),z.addGetterSetter(Qn,`outerRadius`,0,R()),z.addGetterSetter(Qn,`angle`,0,R()),z.addGetterSetter(Qn,`clockwise`,!1,$e());function $n(e,t,n,r,i,a,o){let s=Math.sqrt((n-e)**2+(r-t)**2),c=Math.sqrt((i-n)**2+(a-r)**2),l=o*s/(s+c),u=o*c/(s+c);return[n-l*(i-e),r-l*(a-t),n+u*(i-e),r+u*(a-t)]}function er(e,t){let n=e.length,r=[];for(let i=2;i=0){let e=Math.sqrt(a);n.push((-r+e)/(2*t)),n.push((-r-e)/(2*t))}}}return n.filter(e=>e>0&&e<1).flatMap(e=>t.map(t=>{let n=1-e;return n*n*n*t[0]+3*n*n*e*t[1]+3*n*e*e*t[2]+e*e*e*t[3]}))}var nr=class extends U{constructor(e){super(e),this.on(`pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva`,function(){this._clearCache(`tensionPoints`)})}_sceneFunc(e){let t=this.points(),n=t.length,r=this.tension(),i=this.closed(),a=this.bezier();if(!n)return;let o=0;if(e.beginPath(),e.moveTo(t[0],t[1]),r!==0&&n>4){let r=this.getTensionPoints(),a=r.length;for(o=i?0:4,i||e.quadraticCurveTo(r[0],r[1],r[2],r[3]);o{let r,i,a=n/2;r=0;for(let n=0;n<20;n++)i=a*rr[20][n]+a,r+=ir[20][n]*cr(e,t,i);return a*r},sr=(e,t,n)=>{n===void 0&&(n=1);let r=e[0]-2*e[1]+e[2],i=t[0]-2*t[1]+t[2],a=2*e[1]-2*e[0],o=2*t[1]-2*t[0],s=4*(r*r+i*i),c=4*(r*a+i*o),l=a*a+o*o;if(s===0)return n*Math.sqrt((e[2]-e[0])**2+(t[2]-t[0])**2);let u=c/(2*s),d=l/s,f=n+u,p=d-u*u,m=f*f+p>0?Math.sqrt(f*f+p):0,h=u*u+p>0?Math.sqrt(u*u+p):0,g=u+Math.sqrt(u*u+p)===0?0:p*Math.log(Math.abs((f+m)/(u+h)));return Math.sqrt(s)/2*(f*m-u*h+g)};function cr(e,t,n){let r=lr(1,n,e),i=lr(1,n,t),a=r*r+i*i;return Math.sqrt(a)}var lr=(e,t,n)=>{let r=n.length-1,i,a;if(r===0)return 0;if(e===0){a=0;for(let e=0;e<=r;e++)a+=ar[r][e]*(1-t)**(r-e)*t**+e*n[e];return a}else{i=Array(r);for(let e=0;e{let r=1,i=e/t,a=(e-n(i))/t,o=0;for(;r>.001;){let s=n(i+a),c=Math.abs(e-s)/t;if(c500)break}return i},W=class e extends U{constructor(e){super(e),this.dataArray=[],this.pathLength=0,this._readDataAttribute(),this.on(`dataChange.konva`,function(){this._readDataAttribute()})}_readDataAttribute(){this.dataArray=e.parsePathData(this.data()),this.pathLength=e.getPathLength(this.dataArray)}_sceneFunc(e){let t=this.dataArray;e.beginPath();let n=!1;for(let r=0;ro?i:o,f=i>o?1:i/o,p=i>o?o/i:1;e.translate(t,r),e.rotate(l),e.scale(f,p),e.arc(0,0,d,s,s+c,1-u),e.scale(1/f,1/p),e.rotate(-l),e.translate(-t,-r);break;case`z`:n=!0,e.closePath();break}}!n&&!this.hasFill()?e.strokeShape(this):e.fillStrokeShape(this)}getSelfRect(){let t=[];this.dataArray.forEach(function(n){if(n.command===`A`){let r=n.points[4],i=n.points[5],a=n.points[4]+i,o=Math.PI/180;if(Math.abs(r-a)a;i-=o){let r=e.getPointOnEllipticalArc(n.points[0],n.points[1],n.points[2],n.points[3],i,0);t.push(r.x,r.y)}else for(let i=r+o;in[i].pathLength;)t-=n[i].pathLength,++i;if(i===a)return r=n[i-1].points.slice(-2),{x:r[0],y:r[1]};if(t<.01)return n[i].command===`M`?(r=n[i].points.slice(0,2),{x:r[0],y:r[1]}):{x:n[i].start.x,y:n[i].start.y};let o=n[i],s=o.points;switch(o.command){case`L`:return e.getPointOnLine(t,o.start.x,o.start.y,s[0],s[1]);case`C`:return e.getPointOnCubicBezier(ur(t,e.getPathLength(n),e=>or([o.start.x,s[0],s[2],s[4]],[o.start.y,s[1],s[3],s[5]],e)),o.start.x,o.start.y,s[0],s[1],s[2],s[3],s[4],s[5]);case`Q`:return e.getPointOnQuadraticBezier(ur(t,e.getPathLength(n),e=>sr([o.start.x,s[0],s[2]],[o.start.y,s[1],s[3]],e)),o.start.x,o.start.y,s[0],s[1],s[2],s[3]);case`A`:let r=s[0],i=s[1],a=s[2],c=s[3],l=s[5],u=s[6],d=s[4];return d+=l*t/o.pathLength,e.getPointOnEllipticalArc(r,i,a,c,d,u)}return null}static getPointOnLine(e,t,n,r,i,a,o){a??=t,o??=n;let s=this.getLineLength(t,n,r,i);if(s<1e-10)return{x:t,y:n};if(r===t)return{x:a,y:o+(i>n?e:-e)};let c=(i-n)/(r-t),l=Math.sqrt(e*e/(1+c*c))*(r=0&&(d+=2,d>=7&&(d-=7));continue}if(d>=0){if(d===3){if(/^[01]{2}\d+(?:\.\d+)?$/.test(t)){u.push(parseInt(t[0],10)),u.push(parseInt(t[1],10)),u.push(parseFloat(t.slice(2))),d+=3,d>=7&&(d-=7);continue}if(t===`11`||t===`10`||t===`01`){u.push(parseInt(t[0],10)),u.push(parseInt(t[1],10)),d+=2,d>=7&&(d-=7);continue}if(t===`0`||t===`1`){u.push(parseInt(t,10)),d+=1,d>=7&&(d-=7);continue}}else if(d===4){if(/^[01]\d+(?:\.\d+)?$/.test(t)){u.push(parseInt(t[0],10)),u.push(parseFloat(t.slice(1))),d+=2,d>=7&&(d-=7);continue}if(t===`0`||t===`1`){u.push(parseInt(t,10)),d+=1,d>=7&&(d-=7);continue}}let e=parseFloat(t);isNaN(e)?u.push(0):u.push(e),d+=1,d>=7&&(d-=7)}else{let e=parseFloat(t);isNaN(e)?u.push(0):u.push(e)}}for(;u.length>0&&!isNaN(u[0]);){let e=``,t=[],r=o,a=s,c,l,d,f,p,m,h,g,_,v;switch(n){case`l`:o+=u.shift(),s+=u.shift(),e=`L`,t.push(o,s);break;case`L`:o=u.shift(),s=u.shift(),t.push(o,s);break;case`m`:let r=u.shift(),a=u.shift();if(o+=r,s+=a,e=`M`,i.length>2&&i[i.length-1].command===`z`){for(let e=i.length-2;e>=0;e--)if(i[e].command===`M`){o=i[e].points[0]+r,s=i[e].points[1]+a;break}}t.push(o,s),n=`l`;break;case`M`:o=u.shift(),s=u.shift(),e=`M`,t.push(o,s),n=`L`;break;case`h`:o+=u.shift(),e=`L`,t.push(o,s);break;case`H`:o=u.shift(),e=`L`,t.push(o,s);break;case`v`:s+=u.shift(),e=`L`,t.push(o,s);break;case`V`:s=u.shift(),e=`L`,t.push(o,s);break;case`C`:t.push(u.shift(),u.shift(),u.shift(),u.shift()),o=u.shift(),s=u.shift(),t.push(o,s);break;case`c`:t.push(o+u.shift(),s+u.shift(),o+u.shift(),s+u.shift()),o+=u.shift(),s+=u.shift(),e=`C`,t.push(o,s);break;case`S`:l=o,d=s,c=i[i.length-1],c.command===`C`&&(l=o+(o-c.points[2]),d=s+(s-c.points[3])),t.push(l,d,u.shift(),u.shift()),o=u.shift(),s=u.shift(),e=`C`,t.push(o,s);break;case`s`:l=o,d=s,c=i[i.length-1],c.command===`C`&&(l=o+(o-c.points[2]),d=s+(s-c.points[3])),t.push(l,d,o+u.shift(),s+u.shift()),o+=u.shift(),s+=u.shift(),e=`C`,t.push(o,s);break;case`Q`:t.push(u.shift(),u.shift()),o=u.shift(),s=u.shift(),t.push(o,s);break;case`q`:t.push(o+u.shift(),s+u.shift()),o+=u.shift(),s+=u.shift(),e=`Q`,t.push(o,s);break;case`T`:l=o,d=s,c=i[i.length-1],c.command===`Q`&&(l=o+(o-c.points[0]),d=s+(s-c.points[1])),o=u.shift(),s=u.shift(),e=`Q`,t.push(l,d,o,s);break;case`t`:l=o,d=s,c=i[i.length-1],c.command===`Q`&&(l=o+(o-c.points[0]),d=s+(s-c.points[1])),o+=u.shift(),s+=u.shift(),e=`Q`,t.push(l,d,o,s);break;case`A`:f=u.shift(),p=u.shift(),m=u.shift(),h=u.shift(),g=u.shift(),_=o,v=s,o=u.shift(),s=u.shift(),e=`A`,t=this.convertEndpointToCenterParameterization(_,v,o,s,h,g,f,p,m);break;case`a`:f=u.shift(),p=u.shift(),m=u.shift(),h=u.shift(),g=u.shift(),_=o,v=s,o+=u.shift(),s+=u.shift(),e=`A`,t=this.convertEndpointToCenterParameterization(_,v,o,s,h,g,f,p,m);break}i.push({command:e||n,points:t,start:{x:r,y:a},pathLength:this.calcLength(r,a,e||n,t)})}(n===`z`||n===`Z`)&&i.push({command:`z`,points:[],start:void 0,pathLength:0})}return i}static calcLength(t,n,r,i){let a,o,s,c,l=e;switch(r){case`L`:return l.getLineLength(t,n,i[0],i[1]);case`C`:return or([t,i[0],i[2],i[4]],[n,i[1],i[3],i[5]],1);case`Q`:return sr([t,i[0],i[2]],[n,i[1],i[3]],1);case`A`:a=0;let e=i[4],r=i[5],u=i[4]+r,d=Math.PI/180;if(Math.abs(e-u)u;c-=d)s=l.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],c,0),a+=l.getLineLength(o.x,o.y,s.x,s.y),o=s;else for(c=e+d;c1&&(o*=Math.sqrt(f),s*=Math.sqrt(f));let p=Math.sqrt((o*o*(s*s)-o*o*(d*d)-s*s*(u*u))/(o*o*(d*d)+s*s*(u*u)));i===a&&(p*=-1),isNaN(p)&&(p=0);let m=p*o*d/s,h=p*-s*u/o,g=(e+n)/2+Math.cos(l)*m-Math.sin(l)*h,_=(t+r)/2+Math.sin(l)*m+Math.cos(l)*h,v=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},y=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(v(e)*v(t))},b=function(e,t){return(e[0]*t[1]=1&&(w=0),a===0&&w>0&&(w-=2*Math.PI),a===1&&w<0&&(w+=2*Math.PI),[g,_,o,s,x,w,l,a]}};W.prototype.className=`Path`,W.prototype._attrsAffectingSize=[`data`],P(W),z.addGetterSetter(W,`data`);var dr=class extends nr{_sceneFunc(e){super._sceneFunc(e);let t=Math.PI*2,n=this.points(),r=n,i=this.tension()!==0&&n.length>4;i&&(r=this.getTensionPoints());let a=this.pointerLength(),o=n.length,s,c;if(i){let e=[r[r.length-4],r[r.length-3],r[r.length-2],r[r.length-1],n[o-2],n[o-1]],t=W.calcLength(r[r.length-4],r[r.length-3],`C`,e),i=W.getPointOnQuadraticBezier(Math.min(1,1-a/t),e[0],e[1],e[2],e[3],e[4],e[5]);s=n[o-2]-i.x,c=n[o-1]-i.y}else s=n[o-2]-n[o-4],c=n[o-1]-n[o-3];let l=(Math.atan2(c,s)+t)%t,u=this.pointerWidth();this.pointerAtEnding()&&(e.save(),e.beginPath(),e.translate(n[o-2],n[o-1]),e.rotate(l),e.moveTo(0,0),e.lineTo(-a,u/2),e.lineTo(-a,-u/2),e.closePath(),e.restore(),this.__fillStroke(e)),this.pointerAtBeginning()&&(e.save(),e.beginPath(),e.translate(n[0],n[1]),i?(s=(r[0]+r[2])/2-n[0],c=(r[1]+r[3])/2-n[1]):(s=n[2]-n[0],c=n[3]-n[1]),e.rotate((Math.atan2(-c,-s)+t)%t),e.moveTo(0,0),e.lineTo(-a,u/2),e.lineTo(-a,-u/2),e.closePath(),e.restore(),this.__fillStroke(e))}__fillStroke(e){let t=this.dashEnabled();t&&(this.attrs.dashEnabled=!1,e.setLineDash([])),e.fillStrokeShape(this),t&&(this.attrs.dashEnabled=!0)}getSelfRect(){let e=super.getSelfRect(),t=this.pointerWidth()/2;return{x:e.x,y:e.y-t,width:e.width,height:e.height+t*2}}};dr.prototype.className=`Arrow`,P(dr),z.addGetterSetter(dr,`pointerLength`,10,R()),z.addGetterSetter(dr,`pointerWidth`,10,R()),z.addGetterSetter(dr,`pointerAtBeginning`,!1),z.addGetterSetter(dr,`pointerAtEnding`,!0);var fr=class extends U{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.attrs.radius||0,0,Math.PI*2,!1),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius()!==e/2&&this.radius(e/2)}setHeight(e){this.radius()!==e/2&&this.radius(e/2)}};fr.prototype._centroid=!0,fr.prototype.className=`Circle`,fr.prototype._attrsAffectingSize=[`radius`],P(fr),z.addGetterSetter(fr,`radius`,0,R());var pr=class extends U{_sceneFunc(e){let t=this.radiusX(),n=this.radiusY();e.beginPath(),e.save(),t!==n&&e.scale(1,n/t),e.arc(0,0,t,0,Math.PI*2,!1),e.restore(),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radiusX()*2}getHeight(){return this.radiusY()*2}setWidth(e){this.radiusX(e/2)}setHeight(e){this.radiusY(e/2)}};pr.prototype.className=`Ellipse`,pr.prototype._centroid=!0,pr.prototype._attrsAffectingSize=[`radiusX`,`radiusY`],P(pr),z.addComponentsGetterSetter(pr,`radius`,[`x`,`y`]),z.addGetterSetter(pr,`radiusX`,0,R()),z.addGetterSetter(pr,`radiusY`,0,R());var mr=class e extends U{constructor(e){super(e),this._loadListener=()=>{this._requestDraw()},this.on(`imageChange.konva`,e=>{this._removeImageLoad(e.oldVal),this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){let e=this.image();e&&e.complete||e&&e.readyState===4||e&&e.addEventListener&&e.addEventListener(`load`,this._loadListener)}_removeImageLoad(e){e&&e.removeEventListener&&e.removeEventListener(`load`,this._loadListener)}destroy(){return this._removeImageLoad(this.image()),super.destroy(),this}_useBufferCanvas(){let e=!!this.cornerRadius(),t=this.hasShadow();return e&&t?!0:super._useBufferCanvas(!0)}_sceneFunc(e){let t=this.getWidth(),n=this.getHeight(),r=this.cornerRadius(),i=this.attrs.image,a;if(i){let e=this.attrs.cropWidth,r=this.attrs.cropHeight;a=e&&r?[i,this.cropX(),this.cropY(),e,r,0,0,t,n]:[i,0,0,t,n]}(this.hasFill()||this.hasStroke()||r)&&(e.beginPath(),r?I.drawRoundedRectPath(e,t,n,r):e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)),i&&(r&&e.clip(),e.drawImage.apply(e,a))}_hitFunc(e){let t=this.width(),n=this.height(),r=this.cornerRadius();e.beginPath(),r?I.drawRoundedRectPath(e,t,n,r):e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.attrs.width??this.image()?.width??0}getHeight(){return this.attrs.height??this.image()?.height??0}static fromURL(t,n,r=null){let i=I.createImageElement();i.onload=function(){n(new e({image:i}))},i.onerror=r,i.crossOrigin=`Anonymous`,i.src=t}};mr.prototype.className=`Image`,mr.prototype._attrsAffectingSize=[`image`],P(mr),z.addGetterSetter(mr,`cornerRadius`,0,Je(4)),z.addGetterSetter(mr,`image`),z.addComponentsGetterSetter(mr,`crop`,[`x`,`y`,`width`,`height`]),z.addGetterSetter(mr,`cropX`,0,R()),z.addGetterSetter(mr,`cropY`,0,R()),z.addGetterSetter(mr,`cropWidth`,0,R()),z.addGetterSetter(mr,`cropHeight`,0,R());var hr=[`fontFamily`,`fontSize`,`fontStyle`,`padding`,`lineHeight`,`text`,`width`,`height`,`pointerDirection`,`pointerWidth`,`pointerHeight`],gr=`Change.konva`,_r=`none`,vr=`up`,yr=`right`,br=`down`,xr=`left`,Sr=hr.length,Cr=class extends zn{constructor(e){super(e),this.on(`add.konva`,function(e){this._addListeners(e.child),this._sync()})}getText(){return this.find(`Text`)[0]}getTag(){return this.find(`Tag`)[0]}_addListeners(e){let t=this,n,r=function(){t._sync()};for(n=0;n{t=Math.min(t,e.x),n=Math.max(n,e.x),r=Math.min(r,e.y),i=Math.max(i,e.y)}),{x:t,y:r,width:n-t,height:i-r}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};Er.prototype.className=`RegularPolygon`,Er.prototype._centroid=!0,Er.prototype._attrsAffectingSize=[`radius`],P(Er),z.addGetterSetter(Er,`radius`,0,R()),z.addGetterSetter(Er,`sides`,0,R()),z.addGetterSetter(Er,`cornerRadius`,0,Je(4));var Dr=Math.PI*2,Or=class extends U{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.innerRadius(),0,Dr,!1),e.moveTo(this.outerRadius(),0),e.arc(0,0,this.outerRadius(),Dr,0,!0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.outerRadius()*2}getHeight(){return this.outerRadius()*2}setWidth(e){this.outerRadius(e/2)}setHeight(e){this.outerRadius(e/2)}};Or.prototype.className=`Ring`,Or.prototype._centroid=!0,Or.prototype._attrsAffectingSize=[`innerRadius`,`outerRadius`],P(Or),z.addGetterSetter(Or,`innerRadius`,0,R()),z.addGetterSetter(Or,`outerRadius`,0,R());var kr=class extends U{constructor(e){super(e),this._updated=!0,this.anim=new Vn(()=>{let e=this._updated;return this._updated=!1,e}),this.on(`animationChange.konva`,function(){this.frameIndex(0)}),this.on(`frameIndexChange.konva`,function(){this._updated=!0}),this.on(`frameRateChange.konva`,function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_sceneFunc(e){let t=this.animation(),n=this.frameIndex(),r=n*4,i=this.animations()[t],a=this.frameOffsets(),o=i[r+0],s=i[r+1],c=i[r+2],l=i[r+3],u=this.image();if((this.hasFill()||this.hasStroke())&&(e.beginPath(),e.rect(0,0,c,l),e.closePath(),e.fillStrokeShape(this)),u)if(a){let r=a[t],i=n*2;e.drawImage(u,o,s,c,l,r[i+0],r[i+1],c,l)}else e.drawImage(u,o,s,c,l,0,0,c,l)}_hitFunc(e){let t=this.animation(),n=this.frameIndex(),r=n*4,i=this.animations()[t],a=this.frameOffsets(),o=i[r+2],s=i[r+3];if(e.beginPath(),a){let r=a[t],i=n*2;e.rect(r[i+0],r[i+1],o,s)}else e.rect(0,0,o,s);e.closePath(),e.fillShape(this)}_useBufferCanvas(){return super._useBufferCanvas(!0)}_setInterval(){let e=this;this.interval=setInterval(function(){e._updateIndex()},1e3/this.frameRate())}start(){if(this.isRunning())return;let e=this.getLayer();this.anim.setLayers(e),this._setInterval(),this.anim.start()}stop(){this.anim.stop(),clearInterval(this.interval)}isRunning(){return this.anim.isRunning()}_updateIndex(){let e=this.frameIndex(),t=this.animation();e{if(/\p{Emoji}/u.test(t)){let i=r[n+1];i&&/\p{Emoji_Modifier}|\u200D/u.test(i)?(e.push(t+i),r[n+1]=``):e.push(t)}else /\p{Regional_Indicator}{2}/u.test(t+(r[n+1]||``))?e.push(t+r[n+1]):n>0&&/\p{Mn}|\p{Me}|\p{Mc}/u.test(t)?e[e.length-1]+=t:t&&e.push(t);return e},[])}var Mr=`auto`,Nr=`center`,Pr=`inherit`,Fr=`justify`,Ir=`Change.konva`,Lr=`2d`,Rr=`-`,zr=`left`,Br=`text`,Vr=`Text`,Hr=`top`,Ur=`bottom`,Wr=`middle`,Gr=`normal`,Kr=`px `,qr=` `,Jr=`right`,Yr=`rtl`,Xr=`word`,Zr=`char`,Qr=`none`,$r=`…`,ei=[`direction`,`fontFamily`,`fontSize`,`fontStyle`,`fontVariant`,`padding`,`align`,`verticalAlign`,`lineHeight`,`text`,`width`,`height`,`wrap`,`ellipsis`,`letterSpacing`],ti=ei.length,ni=null;function ri(){if(ni!==null)return ni;ni=!1;try{let e=document.createElement(`canvas`);e.width=10,e.height=10;let t=e.getContext(Lr);if(t){t.globalAlpha=0,t.shadowColor=`black`,t.shadowBlur=5,t.shadowOffsetX=5,t.shadowOffsetY=5,t.fillStyle=`black`,t.font=`10px Arial`,t.fillText(`X`,0,10);let e=t.getImageData(0,0,10,10).data;for(let t=3;t0){ni=!0;break}}}catch{}return ni}function ii(e){return e.split(`,`).map(e=>{e=e.trim();let t=e.indexOf(` `)>=0,n=e.indexOf(`"`)>=0||e.indexOf(`'`)>=0;return t&&!n&&(e=`"${e}"`),e}).join(`, `)}var ai;function oi(){return ai||(ai=I.createCanvasElement().getContext(Lr),ai)}function si(e){e.fillText(this._partialText,this._partialTextX,this._partialTextY)}function ci(e){e.setAttr(`miterLimit`,2),e.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function li(e){return e||={},!e.fillLinearGradientColorStops&&!e.fillRadialGradientColorStops&&!e.fillPatternImage&&(e.fill=e.fill||`black`),e}var G=class extends U{constructor(e){super(li(e)),this._partialTextX=0,this._partialTextY=0;for(let e=0;ee+jr(t.text).length,0);f({char:s,index:a+n,x:o,y:y+0,lineIndex:v,column:a,isLastInLine:x,width:this.measureSize(s).width,context:e})}e.fillStrokeShape(this),f&&e.restore(),o+=this.measureSize(s).width+d}}else d!==0&&e.setAttr(`letterSpacing`,`${d}px`),this._partialTextX=o,this._partialTextY=y+0,this._partialText=m,e.fillStrokeShape(this);if(_){e.save(),e.beginPath();let t=N.legacyTextRendering?0:-Math.round(i/4),n=S;e.moveTo(n,y+0+t);let a=l===Fr&&!x?u-r*2:b;e.lineTo(n+Math.round(a),y+0+t),e.lineWidth=i/15,e.strokeStyle=this._getLinearGradient()||p,e.stroke(),e.restore()}e.restore(),n>1&&(y+=a)}}_hitFunc(e){let t=this.getWidth(),n=this.getHeight();e.beginPath(),e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)}setText(e){let t=I._isString(e)?e:e==null?``:e+``;return this._setAttr(Br,t),this}getWidth(){return this.attrs.width===Mr||this.attrs.width===void 0?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){return this.attrs.height===Mr||this.attrs.height===void 0?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return I.warn(`text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.`),this.textHeight}measureSize(e){let t=oi(),n=this.fontSize(),r;t.save(),t.font=this._getContextFont(),r=t.measureText(e),t.restore();let i=n/100;return{actualBoundingBoxAscent:r.actualBoundingBoxAscent??71.58203125*i,actualBoundingBoxDescent:r.actualBoundingBoxDescent??0,actualBoundingBoxLeft:r.actualBoundingBoxLeft??-7.421875*i,actualBoundingBoxRight:r.actualBoundingBoxRight??75.732421875*i,alphabeticBaseline:r.alphabeticBaseline??0,emHeightAscent:r.emHeightAscent??100*i,emHeightDescent:r.emHeightDescent??-20*i,fontBoundingBoxAscent:r.fontBoundingBoxAscent??91*i,fontBoundingBoxDescent:r.fontBoundingBoxDescent??21*i,hangingBaseline:r.hangingBaseline??72.80000305175781*i,ideographicBaseline:r.ideographicBaseline??-21*i,width:r.width,height:n}}_getContextFont(){return this.fontStyle()+qr+this.fontVariant()+qr+(this.fontSize()+Kr)+ii(this.fontFamily())}_addTextLine(e){this.align()===Fr&&(e=e.trim());let t=this._getTextWidth(e);return this.textArr.push({text:e,width:t,lastInParagraph:!1})}_getTextWidth(e){let t=this.letterSpacing(),n=e.length;return oi().measureText(e).width+t*n}_setTextData(){let e=this.text().split(` -`),t=+this.fontSize(),n=0,r=this.lineHeight()*t,i=this.attrs.width,a=this.attrs.height,o=i!==Mr&&i!==void 0,s=a!==Mr&&a!==void 0,c=this.padding(),l=i-c*2,u=a-c*2,d=0,f=this.wrap(),p=f!==Zr&&f!==Qr,m=this.ellipsis();this.textArr=[],oi().font=this._getContextFont();let h=m?this._getTextWidth($r):0;for(let t=0,i=e.length;tl)for(;a.length>0;){let e=0,t=jr(a).length,i=``,o=0;for(;e>>1,c=jr(a).slice(0,n+1).join(``),f=this._getTextWidth(c);(m&&s&&d+r>u?f+h:f)<=l?(e=n+1,i=c,o=f):t=n}if(i){if(p){let t=jr(a),n=jr(i),r=t[n.length],s=r===qr||r===Rr,c;if(s&&o<=l)c=n.length;else{let e=n.lastIndexOf(qr),t=n.lastIndexOf(Rr);c=Math.max(e,t)+1}c>0&&(e=c,i=t.slice(0,e).join(``),o=this._getTextWidth(i))}if(i=i.trimRight(),this._addTextLine(i),n=Math.max(n,o),d+=r,this._shouldHandleEllipsis(d)){this._tryToAddEllipsisToLastLine();break}if(a=jr(a).slice(e).join(``).trimLeft(),a.length>0&&(c=this._getTextWidth(a),c<=l)){this._addTextLine(a),d+=r,n=Math.max(n,c);break}}else break}else this._addTextLine(a),d+=r,n=Math.max(n,c),this._shouldHandleEllipsis(d)&&tu)break}this.textHeight=t,this.textWidth=n}_shouldHandleEllipsis(e){let t=+this.fontSize(),n=this.lineHeight()*t,r=this.attrs.height,i=r!==Mr&&r!==void 0,a=r-this.padding()*2;return this.wrap()===Qr||i&&e+n>a}_tryToAddEllipsisToLastLine(){let e=this.attrs.width,t=e!==Mr&&e!==void 0,n=e-this.padding()*2,r=this.ellipsis(),i=this.textArr[this.textArr.length-1];!i||!r||(t&&(this._getTextWidth(i.text+$r)this.pathLength?null:W.getPointAtLengthOfDataArray(e,this.dataArray)}_readDataAttribute(){this.dataArray=W.parsePathData(this.attrs.data),this.pathLength=this._getTextPathLength()}_sceneFunc(e){e.setAttr(`font`,this._getContextFont()),e.setAttr(`textBaseline`,this.textBaseline()),e.setAttr(`textAlign`,`left`),e.save();let t=this.textDecoration(),n=this.fill(),r=this.fontSize(),i=this.glyphInfo,a=t.indexOf(`underline`)!==-1,o=t.indexOf(`line-through`)!==-1;a&&e.beginPath();for(let t=0;t=1){let n=t[0].p0;e.moveTo(n.x,n.y)}for(let n=0;nthis.pathLength&&f-this.pathLength<=c?this.pathLength:f);if(!p)return;let m=W.getLineLength(r.x,r.y,p.x,p.y),h=0;if(s)try{h=s(t[n-1].char,i)*this.fontSize()}catch{h=0}r.x+=h,p.x+=h,this.textWidth+=h;let g=W.getPointOnLine(h+m/2,r.x,r.y,p.x,p.y),_=Math.atan2(p.y-r.y,p.x-r.x);this.glyphInfo.push({transposeX:g.x,transposeY:g.y,text:e[n],rotation:_,p0:r,p1:p,width:m}),d+=u}}getSelfRect(){if(!this.glyphInfo.length)return{x:0,y:0,width:0,height:0};let e=[];this.glyphInfo.forEach(function(t){e.push(t.p0.x),e.push(t.p0.y),e.push(t.p1.x),e.push(t.p1.y)});let t=e[0]||0,n=e[0]||0,r=e[1]||0,i=e[1]||0,a,o;for(let s=0;se+`.${mi}`).join(` `),gi=`nodesRect`,_i=[`widthChange`,`heightChange`,`scaleXChange`,`scaleYChange`,`skewXChange`,`skewYChange`,`rotationChange`,`offsetXChange`,`offsetYChange`,`transformsEnabledChange`,`strokeWidthChange`,`draggableChange`],vi={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135},yi=`ontouchstart`in N._global;function bi(e,t,n){if(e===`rotater`)return n;t+=I.degToRad(vi[e]||0);let r=(I.radToDeg(t)%360+360)%360;return I._inRange(r,337.5,360)||I._inRange(r,0,22.5)?`ns-resize`:I._inRange(r,22.5,67.5)?`nesw-resize`:I._inRange(r,67.5,112.5)?`ew-resize`:I._inRange(r,112.5,157.5)?`nwse-resize`:I._inRange(r,157.5,202.5)?`ns-resize`:I._inRange(r,202.5,247.5)?`nesw-resize`:I._inRange(r,247.5,292.5)?`ew-resize`:I._inRange(r,292.5,337.5)?`nwse-resize`:(I.error(`Transformer has unknown angle for cursor detection: `+r),`pointer`)}var xi=[`top-left`,`top-center`,`top-right`,`middle-right`,`middle-left`,`bottom-left`,`bottom-center`,`bottom-right`],Si=1e8;function Ci(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function wi(e,t,n){let r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return{...e,rotation:e.rotation+t,x:r,y:i}}function Ti(e,t){return wi(e,t,Ci(e))}function Ei(e,t,n){let r=t;for(let i=0;ie.isAncestorOf(this)?(I.error(`Konva.Transformer cannot be an a child of the node you are trying to attach`),!1):!0);return this._nodes=e=t,e.length===1&&this.useSingleNodeRotation()?this.rotation(e[0].getAbsoluteRotation()):this.rotation(0),this._nodes.forEach(e=>{let t=()=>{this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),!this._transforming&&!this.isDragging()&&this.update()};if(e._attrsAffectingSize.length){let n=e._attrsAffectingSize.map(e=>e+`Change.`+this._getEventNamespace()).join(` `);e.on(n,t)}e.on(_i.map(e=>e+`.${this._getEventNamespace()}`).join(` `),t),e.on(`absoluteTransformChange.${this._getEventNamespace()}`,t),this._proxyDrag(e)}),this._resetTransformCache(),this.findOne(`.top-left`)&&this.update(),this}_proxyDrag(e){let t;e.on(`dragstart.${this._getEventNamespace()}`,n=>{t=e.getAbsolutePosition(),!this.isDragging()&&e!==this.findOne(`.back`)&&this.startDrag(n,!1)}),e.on(`dragmove.${this._getEventNamespace()}`,n=>{if(!t)return;let r=e.getAbsolutePosition(),i=r.x-t.x,a=r.y-t.y;this.nodes().forEach(t=>{if(t===e||t.isDragging())return;let r=t.getAbsolutePosition();t.setAbsolutePosition({x:r.x+i,y:r.y+a}),t.startDrag(n)}),t=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(e=>{e.off(`.`+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache(gi),this._clearCache(`transform`),this._clearSelfAndDescendantCache(`absoluteTransform`)}_getNodeRect(){return this._getCache(gi,this.__getNodeRect)}__getNodeShape(e,t=this.rotation(),n){let r=e.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),i=e.getAbsoluteScale(n),a=e.getAbsolutePosition(n),o=r.x*i.x-e.offsetX()*i.x,s=r.y*i.y-e.offsetY()*i.y,c=(N.getAngle(e.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2);return wi({x:a.x+o*Math.cos(c)+s*Math.sin(-c),y:a.y+s*Math.cos(c)+o*Math.sin(c),width:r.width*i.x,height:r.height*i.y,rotation:c},-N.getAngle(t),{x:0,y:0})}__getNodeRect(){if(!this.getNode())return{x:-Si,y:-Si,width:0,height:0,rotation:0};let e=[];this.nodes().map(t=>{let n=t.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),r=[{x:n.x,y:n.y},{x:n.x+n.width,y:n.y},{x:n.x+n.width,y:n.y+n.height},{x:n.x,y:n.y+n.height}],i=t.getAbsoluteTransform();r.forEach(function(t){let n=i.point(t);e.push(n)})});let t=new F;t.rotate(-N.getAngle(this.rotation()));let n=1/0,r=1/0,i=-1/0,a=-1/0;e.forEach(function(e){let o=t.point(e);n===void 0&&(n=i=o.x,r=a=o.y),n=Math.min(n,o.x),r=Math.min(r,o.y),i=Math.max(i,o.x),a=Math.max(a,o.y)}),t.invert();let o=t.point({x:n,y:r});return{x:o.x,y:o.y,width:i-n,height:a-r,rotation:N.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),xi.forEach(e=>{this._createAnchor(e)}),this._createAnchor(`rotater`),this._elementsCreated=!0}_createAnchor(e){let t=new Tr({stroke:`rgb(0, 161, 255)`,fill:`white`,strokeWidth:1,name:e+` _anchor`,dragDistance:0,draggable:!0,hitStrokeWidth:yi?10:`auto`}),n=this;t.on(`mousedown touchstart`,function(e){n._handleMouseDown(e)}),t.on(`dragstart`,e=>{t.stopDrag(),e.cancelBubble=!0}),t.on(`dragend`,e=>{e.cancelBubble=!0}),t.on(`mouseenter`,()=>{let n=bi(e,N.getAngle(this.rotation()),this.rotateAnchorCursor());t.getStage().content&&(t.getStage().content.style.cursor=n),this._cursorChange=!0}),t.on(`mouseout`,()=>{t.getStage().content&&(t.getStage().content.style.cursor=``),this._cursorChange=!1}),this.add(t)}_createBack(){let e=new U({name:`back`,width:0,height:0,sceneFunc(e,t){let n=t.getParent(),r=n.padding(),i=t.width(),a=t.height();if(e.beginPath(),e.rect(-r,-r,i+r*2,a+r*2),n.rotateEnabled()&&n.rotateLineVisible()){let t=n.rotateAnchorAngle(),r=n.rotateAnchorOffset(),o=I.degToRad(t),s=Math.sin(o),c=-Math.cos(o),l=i/2,u=a/2,d=1/0;c<0?d=Math.min(d,-u/c):c>0&&(d=Math.min(d,(a-u)/c)),s<0?d=Math.min(d,-l/s):s>0&&(d=Math.min(d,(i-l)/s));let f=l+s*d,p=u+c*d,m=I._sign(a),h=f+s*r*m,g=p+c*r*m;e.moveTo(f,p),e.lineTo(h,g)}e.fillStrokeShape(t)},hitFunc:(e,t)=>{if(!this.shouldOverdrawWholeArea())return;let n=this.padding();e.beginPath(),e.rect(-n,-n,t.width()+n*2,t.height()+n*2),e.fillStrokeShape(t)}});this.add(e),this._proxyDrag(e),e.on(`dragstart`,e=>{e.cancelBubble=!0}),e.on(`dragmove`,e=>{e.cancelBubble=!0}),e.on(`dragend`,e=>{e.cancelBubble=!0}),this.on(`dragmove`,e=>{this.update()})}_handleMouseDown(e){if(this._transforming)return;this._movingAnchorName=e.target.name().split(` `)[0];let t=this._getNodeRect(),n=t.width,r=t.height,i=Math.sqrt(n**2+r**2);this.sin=Math.abs(r/i),this.cos=Math.abs(n/i),typeof window<`u`&&(window.addEventListener(`mousemove`,this._handleMouseMove),window.addEventListener(`touchmove`,this._handleMouseMove),window.addEventListener(`mouseup`,this._handleMouseUp,!0),window.addEventListener(`touchend`,this._handleMouseUp,!0)),this._transforming=!0;let a=e.target.getAbsolutePosition(),o=e.target.getStage().getPointerPosition();this._anchorDragOffset={x:o.x-a.x,y:o.y-a.y},Di++,this._fire(`transformstart`,{evt:e.evt,target:this.getNode()}),this._nodes.forEach(t=>{t._fire(`transformstart`,{evt:e.evt,target:t})})}_handleMouseMove(e){let t,n,r,i=this.findOne(`.`+this._movingAnchorName),a=i.getStage();a.setPointersPositions(e);let o=a.getPointerPosition(),s={x:o.x-this._anchorDragOffset.x,y:o.y-this._anchorDragOffset.y},c=i.getAbsolutePosition();this.anchorDragBoundFunc()&&(s=this.anchorDragBoundFunc()(c,s,e)),i.setAbsolutePosition(s);let l=i.getAbsolutePosition();if(c.x===l.x&&c.y===l.y)return;if(this._movingAnchorName===`rotater`){let r=this._getNodeRect();t=i.x()-r.width/2,n=-i.y()+r.height/2;let a=N.getAngle(this.rotateAnchorAngle()),o=Math.atan2(-n,t)+Math.PI/2-a;r.height<0&&(o-=Math.PI);let s=N.getAngle(this.rotation())+o,c=N.getAngle(this.rotationSnapTolerance()),l=Ti(r,Ei(this.rotationSnaps(),s,c)-r.rotation);this._fitNodesInto(l,e);return}let u=this.shiftBehavior(),d;d=u===`inverted`?this.keepRatio()&&!e.shiftKey:u===`none`?this.keepRatio():this.keepRatio()||e.shiftKey;let f=this.centeredScaling()||e.altKey;if(this._movingAnchorName===`top-left`){if(d){let e=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(`.bottom-right`).x(),y:this.findOne(`.bottom-right`).y()};r=Math.sqrt((e.x-i.x())**2+(e.y-i.y())**2);let a=this.findOne(`.top-left`).x()>e.x?-1:1,o=this.findOne(`.top-left`).y()>e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this.findOne(`.top-left`).x(e.x-t),this.findOne(`.top-left`).y(e.y-n)}}else if(this._movingAnchorName===`top-center`)this.findOne(`.top-left`).y(i.y());else if(this._movingAnchorName===`top-right`){if(d){let e=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(`.bottom-left`).x(),y:this.findOne(`.bottom-left`).y()};r=Math.sqrt((i.x()-e.x)**2+(e.y-i.y())**2);let a=this.findOne(`.top-right`).x()e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this.findOne(`.top-right`).x(e.x+t),this.findOne(`.top-right`).y(e.y-n)}var p=i.position();this.findOne(`.top-left`).y(p.y),this.findOne(`.bottom-right`).x(p.x)}else if(this._movingAnchorName===`middle-left`)this.findOne(`.top-left`).x(i.x());else if(this._movingAnchorName===`middle-right`)this.findOne(`.bottom-right`).x(i.x());else if(this._movingAnchorName===`bottom-left`){if(d){let e=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(`.top-right`).x(),y:this.findOne(`.top-right`).y()};r=Math.sqrt((e.x-i.x())**2+(i.y()-e.y)**2);let a=e.x{var n;t._fire(`transformend`,{evt:e,target:t}),(n=t.getLayer())==null||n.batchDraw()}),this._movingAnchorName=null}}_fitNodesInto(e,t){let n=this._getNodeRect();if(I._inRange(e.width,-this.padding()*2-1,1)){this.update();return}if(I._inRange(e.height,-this.padding()*2-1,1)){this.update();return}let r=new F;if(r.rotate(N.getAngle(this.rotation())),this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`left`)>=0){let t=r.point({x:-this.padding()*2,y:0});e.x+=t.x,e.y+=t.y,e.width+=this.padding()*2,this._movingAnchorName=this._movingAnchorName.replace(`left`,`right`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y}else if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`right`)>=0){let t=r.point({x:this.padding()*2,y:0});this._movingAnchorName=this._movingAnchorName.replace(`right`,`left`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y,e.width+=this.padding()*2}if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`top`)>=0){let t=r.point({x:0,y:-this.padding()*2});e.x+=t.x,e.y+=t.y,this._movingAnchorName=this._movingAnchorName.replace(`top`,`bottom`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y,e.height+=this.padding()*2}else if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`bottom`)>=0){let t=r.point({x:0,y:this.padding()*2});this._movingAnchorName=this._movingAnchorName.replace(`bottom`,`top`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y,e.height+=this.padding()*2}if(this.boundBoxFunc()){let t=this.boundBoxFunc()(n,e);t?e=t:I.warn(`boundBoxFunc returned falsy. You should return new bound rect from it!`)}let i=1e7,a=new F;a.translate(n.x,n.y),a.rotate(n.rotation),a.scale(n.width/i,n.height/i);let o=new F,s=e.width/i,c=e.height/i;this.flipEnabled()===!1?(o.translate(e.x,e.y),o.rotate(e.rotation),o.translate(e.width<0?e.width:0,e.height<0?e.height:0),o.scale(Math.abs(s),Math.abs(c))):(o.translate(e.x,e.y),o.rotate(e.rotation),o.scale(s,c));let l=o.multiply(a.invert());this._nodes.forEach(e=>{var t;if(!e.getStage())return;let n=e.getParent().getAbsoluteTransform(),r=e.getTransform().copy();r.translate(e.offsetX(),e.offsetY());let i=new F;i.multiply(n.copy().invert()).multiply(l).multiply(n).multiply(r);let a=i.decompose();e.setAttrs(a),(t=e.getLayer())==null||t.batchDraw()}),this.rotation(I._getRotation(e.rotation)),this._nodes.forEach(e=>{this._fire(`transform`,{evt:t,target:e}),e._fire(`transform`,{evt:t,target:e})}),this._resetTransformCache(),this.update(),this.getLayer().batchDraw()}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(e,t){this.findOne(e).setAttrs(t)}update(){var e;let t=this._getNodeRect();this.rotation(I._getRotation(t.rotation));let n=t.width,r=t.height,i=this.enabledAnchors(),a=this.resizeEnabled(),o=this.padding(),s=this.anchorSize(),c=this.find(`._anchor`);c.forEach(e=>{e.setAttrs({width:s,height:s,offsetX:s/2,offsetY:s/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(`.top-left`,{x:0,y:0,offsetX:s/2+o,offsetY:s/2+o,visible:a&&i.indexOf(`top-left`)>=0}),this._batchChangeChild(`.top-center`,{x:n/2,y:0,offsetY:s/2+o,visible:a&&i.indexOf(`top-center`)>=0}),this._batchChangeChild(`.top-right`,{x:n,y:0,offsetX:s/2-o,offsetY:s/2+o,visible:a&&i.indexOf(`top-right`)>=0}),this._batchChangeChild(`.middle-left`,{x:0,y:r/2,offsetX:s/2+o,visible:a&&i.indexOf(`middle-left`)>=0}),this._batchChangeChild(`.middle-right`,{x:n,y:r/2,offsetX:s/2-o,visible:a&&i.indexOf(`middle-right`)>=0}),this._batchChangeChild(`.bottom-left`,{x:0,y:r,offsetX:s/2+o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-left`)>=0}),this._batchChangeChild(`.bottom-center`,{x:n/2,y:r,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-center`)>=0}),this._batchChangeChild(`.bottom-right`,{x:n,y:r,offsetX:s/2-o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-right`)>=0});let l=this.rotateAnchorAngle(),u=this.rotateAnchorOffset(),d=I.degToRad(l),f=Math.sin(d),p=-Math.cos(d),m=n/2,h=r/2,g=1/0;p<0?g=Math.min(g,-h/p):p>0&&(g=Math.min(g,(r-h)/p)),f<0?g=Math.min(g,-m/f):f>0&&(g=Math.min(g,(n-m)/f));let _=m+f*g,v=h+p*g,y=I._sign(r);this._batchChangeChild(`.rotater`,{x:_+f*u*y,y:v+p*u*y-o*p,visible:this.rotateEnabled()}),this._batchChangeChild(`.back`,{width:n,height:r,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),draggable:this.nodes().some(e=>e.draggable()),x:0,y:0});let b=this.anchorStyleFunc();b&&c.forEach(e=>{b(e)}),(e=this.getLayer())==null||e.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();let e=this.findOne(`.`+this._movingAnchorName);e&&e.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=``),zn.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}add(...e){return this._elementsCreated?(I.error(`You cannot add external nodes to the Transformer. Use tr.nodes([node]) instead.`),this):super.add(...e)}toObject(){return B.prototype.toObject.call(this)}clone(e){return B.prototype.clone.call(this,e)}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}};q.isTransforming=()=>Di>0;function Oi(e){return e instanceof Array||I.warn(`enabledAnchors value should be an array`),e instanceof Array&&e.forEach(function(e){xi.indexOf(e)===-1&&I.warn(`Unknown anchor name: `+e+`. Available names are: `+xi.join(`, `))}),e||[]}q.prototype.className=`Transformer`,P(q),z.addGetterSetter(q,`enabledAnchors`,xi,Oi),z.addGetterSetter(q,`flipEnabled`,!0,$e()),z.addGetterSetter(q,`resizeEnabled`,!0),z.addGetterSetter(q,`anchorSize`,10,R()),z.addGetterSetter(q,`rotateEnabled`,!0),z.addGetterSetter(q,`rotateLineVisible`,!0),z.addGetterSetter(q,`rotationSnaps`,[]),z.addGetterSetter(q,`rotateAnchorOffset`,50,R()),z.addGetterSetter(q,`rotateAnchorAngle`,0,R()),z.addGetterSetter(q,`rotateAnchorCursor`,`crosshair`),z.addGetterSetter(q,`rotationSnapTolerance`,5,R()),z.addGetterSetter(q,`borderEnabled`,!0),z.addGetterSetter(q,`anchorStroke`,`rgb(0, 161, 255)`),z.addGetterSetter(q,`anchorStrokeWidth`,1,R()),z.addGetterSetter(q,`anchorFill`,`white`),z.addGetterSetter(q,`anchorCornerRadius`,0,R()),z.addGetterSetter(q,`borderStroke`,`rgb(0, 161, 255)`),z.addGetterSetter(q,`borderStrokeWidth`,1,R()),z.addGetterSetter(q,`borderDash`),z.addGetterSetter(q,`keepRatio`,!0),z.addGetterSetter(q,`shiftBehavior`,`default`),z.addGetterSetter(q,`centeredScaling`,!1),z.addGetterSetter(q,`ignoreStroke`,!1),z.addGetterSetter(q,`padding`,0,R()),z.addGetterSetter(q,`nodes`),z.addGetterSetter(q,`node`),z.addGetterSetter(q,`boundBoxFunc`),z.addGetterSetter(q,`anchorDragBoundFunc`),z.addGetterSetter(q,`anchorStyleFunc`),z.addGetterSetter(q,`shouldOverdrawWholeArea`,!1),z.addGetterSetter(q,`useSingleNodeRotation`,!0),z.backCompat(q,{lineEnabled:`borderEnabled`,rotateHandlerOffset:`rotateAnchorOffset`,enabledHandlers:`enabledAnchors`});var ki=class extends U{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.radius(),0,N.getAngle(this.angle()),this.clockwise()),e.lineTo(0,0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};ki.prototype.className=`Wedge`,ki.prototype._centroid=!0,ki.prototype._attrsAffectingSize=[`radius`],P(ki),z.addGetterSetter(ki,`radius`,0,R()),z.addGetterSetter(ki,`angle`,0,R()),z.addGetterSetter(ki,`clockwise`,!1),z.backCompat(ki,{angleDeg:`angle`,getAngleDeg:`getAngle`,setAngleDeg:`setAngle`});function Ai(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var ji=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],Mi=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function Ni(e,t){let n=e.data,r=e.width,i=e.height,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,ee=t+t+1,te=r-1,ne=i-1,T=t+1,E=T*(T+1)/2,D=new Ai,O=ji[t],re=Mi[t],k=null,A=D,j=null,M=null;for(let e=1;e>re,C===0?n[o]=n[o+1]=n[o+2]=0:(C=255/C,n[o]=(c*O>>re)*C,n[o+1]=(l*O>>re)*C,n[o+2]=(u*O>>re)*C),c-=f,l-=p,u-=m,d-=h,f-=j.r,p-=j.g,m-=j.b,h-=j.a,a=s+((a=e+t+1)>re,C>0?(C=255/C,n[a]=(c*O>>re)*C,n[a+1]=(l*O>>re)*C,n[a+2]=(u*O>>re)*C):n[a]=n[a+1]=n[a+2]=0,c-=f,l-=p,u-=m,d-=h,f-=j.r,p-=j.g,m-=j.b,h-=j.a,a=e+((a=t+T)0&&Ni(e,t)};z.addGetterSetter(B,`blurRadius`,0,R(),z.afterSetFilter);var Fi=function(e){let t=this.brightness()*255,n=e.data,r=n.length;for(let e=0;e255?255:i,a=a<0?0:a>255?255:a,o=o<0?0:o>255?255:o,n[e]=i,n[e+1]=a,n[e+2]=o};z.addGetterSetter(B,`contrast`,0,R(),z.afterSetFilter);var Ri=function(e){let t=e.data,n=e.width,r=e.height,i=Math.min(1,Math.max(0,this.embossStrength?.call(this)??.5)),a=Math.min(1,Math.max(0,this.embossWhiteLevel?.call(this)??.5)),o={"top-left":315,top:270,"top-right":225,right:180,"bottom-right":135,bottom:90,"bottom-left":45,left:0}[this.embossDirection?.call(this)??`top-left`]??315,s=!!(this.embossBlend?.call(this)??!1),c=i*10,l=a*255,u=o*Math.PI/180,d=Math.cos(u),f=Math.sin(u),p=128/1020*c,m=new Uint8ClampedArray(t),h=new Float32Array(n*r);for(let e=0,n=0;ne<0?0:e>255?255:e;for(let e=1;ei&&(i=a),c=t[e+1],cs&&(s=c),d=t[e+2],du&&(u=d);i===r&&(i=255,r=0),s===o&&(s=255,o=0),u===l&&(u=255,l=0);let p,m,h,g,_,v;if(f>0)p=i+f*(255-i),m=r-f*(r-0),h=s+f*(255-s),g=o-f*(o-0),_=u+f*(255-u),v=l-f*(l-0);else{let e=(i+r)*.5;p=i+f*(i-e),m=r+f*(r-e);let t=(s+o)*.5;h=s+f*(s-t),g=o+f*(o-t);let n=(u+l)*.5;_=u+f*(u-n),v=l+f*(l-n)}for(let e=0;el?f:l;let p=o,m=a,h=360/m*Math.PI/180;for(let e=0;el?f:l;let p=o,m=a,h=n.polarRotation||0,g,_;for(u=0;ut&&(b=y,x=0,S=-1),i=0;i=0&&d=0&&f=0&&d=0&&f=1020?255:0}return o}function ta(e,t,n){let r=[1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9],i=Math.round(Math.sqrt(r.length)),a=Math.floor(i/2),o=[];for(let s=0;s=0&&d=0&&f=n))for(let t=f;t=r)continue;let i=(n*t+e)*4;a+=o[i+0],s+=o[i+1],c+=o[i+2],l+=o[i+3],m+=1}a/=m,s/=m,c/=m,l/=m;for(let e=u;e=n))for(let t=f;t=r)continue;let i=(n*t+e)*4;o[i+0]=a,o[i+1]=s,o[i+2]=c,o[i+3]=l}}};z.addGetterSetter(B,`pixelSize`,8,R(),z.afterSetFilter);var aa=function(e){let t=Math.round(this.levels()*254)+1,n=e.data,r=n.length,i=255/t;for(let e=0;e255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`green`,0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`blue`,0,qe,z.afterSetFilter);var sa=function(e){let t=e.data,n=t.length,r=this.red(),i=this.green(),a=this.blue(),o=this.alpha();for(let e=0;e255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`green`,0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`blue`,0,qe,z.afterSetFilter),z.addGetterSetter(B,`alpha`,1,function(e){return this._filterUpToDate=!1,e>1?1:e<0?0:e});var ca=function(e){let t=e.data,n=t.length;for(let e=0;e=128&&(t[e]=255-n,t[e+1]=255-r,t[e+2]=255-i)}return e},ua=function(e){let t=this.threshold()*255,n=e.data,r=n.length;for(let e=0;e{i(e.getAttr(r))})}}var ya=`V`;function ba(e){function t(e){return e?.__konvaNode?e:e?.parent?t(e.parent):(console.error(`vue-konva error: Can not find parent node`),null)}return t(e.parent)}function xa(e){return e.component?e.component.__konvaNode||xa(e.component.subTree):null}function Sa(e){let{el:t,component:n}=e,r=xa(e);if(t?.tagName&&n&&!r){let e=t.tagName.toLowerCase();return console.error(`vue-konva error: You are trying to render "${e}" inside your component tree. Looks like it is not a Konva node. You can render only Konva components inside the Stage.`),null}return r}function Ca(e){let t=e=>!!e&&typeof e==`object`&&`component`in e,n=e=>Array.isArray(e),r=e=>t(e)?[e,...r(e.children)]:n(e)?e.flatMap(r):[];return r(e.children)}function wa(e,t){let n=Ca(e),r=[];n.forEach(e=>{let t=Sa(e);t&&r.push(t)});let i=!1;r.forEach((e,t)=>{e.getZIndex()!==t&&(e.setZIndex(t),i=!0)}),i&&fa(t)}var Ta=da.default?.Stage||da.Stage,Ea=n({name:`Stage`,props:{config:{type:Object,default:function(){return{}}},__useStrictMode:{type:Boolean}},inheritAttrs:!1,setup(t,{attrs:n,slots:r,expose:i}){let a=O();if(!a)return;let s=o({}),c=h(null),u=new Ta({width:t.config.width,height:t.config.height,container:document.createElement(`div`)});a.__konvaNode=u,p();function d(){return a?.__konvaNode}function f(){return a?.__konvaNode}function p(){if(!a)return;let e=s||{},r={...n,...t.config};ha(a,r,e,t.__useStrictMode),Object.assign(s,r)}return e(()=>{c.value&&u.container(c.value),p(),va(u,a)}),l(()=>{p(),wa(a.subTree,u),va(u,a)}),S(()=>{u.destroy()}),A(()=>t.config,p,{deep:!0}),i({getStage:f,getNode:d}),()=>m(`div`,{ref:c,id:n?.id,accesskey:n?.accesskey,class:n?.class,role:n?.role,style:n?.style,tabindex:n?.tabindex,title:n?.title},r.default?.())}}),Da=`.vue-konva-event`,Oa={Group:!0,Layer:!0,FastLayer:!0,Label:!0};function J(t,r){return n({name:t,props:{config:{type:Object,default:function(){return{}}},__useStrictMode:{type:Boolean}},setup(n,{attrs:i,slots:a,expose:s}){let c=O();if(!c)return;let u=o({}),d=new r;c.__konvaNode=d,c.vnode.__konvaNode=d,m();function f(){return c?.__konvaNode}function p(){return c?.__konvaNode}function m(){if(!c)return;let e={};for(let t in c?.vnode.props)t.slice(0,2)===`on`&&(e[t]=c.vnode.props[t]);let t=u||{},r={...i,...n.config,...e};ha(c,r,t,n.__useStrictMode),Object.assign(u,r)}e(()=>{let e=ba(c)?.__konvaNode;e&&`add`in e&&e.add(d),fa(d),va(d,c)}),x(()=>{fa(d),d.destroy(),d.off(Da),d.off(ga)}),l(()=>{m(),wa(c.subTree,d),va(d,c)}),A(()=>n.config,m,{deep:!0}),s({getStage:p,getNode:f});let h=Oa.hasOwnProperty(t);return()=>h?a.default?.():null}})}var Y=da.default||da,ka=J(`Arc`,Y.Arc),Aa=J(`Arrow`,Y.Arrow),ja=J(`Circle`,Y.Circle),Ma=J(`Ellipse`,Y.Ellipse),Na=J(`FastLayer`,Y.FastLayer),Pa=J(`Group`,Y.Group),Fa=J(`Image`,Y.Image),Ia=J(`Label`,Y.Label),La=J(`Layer`,Y.Layer),Ra=J(`Line`,Y.Line),za=J(`Path`,Y.Path),Ba=J(`Rect`,Y.Rect),Va=J(`RegularPolygon`,Y.RegularPolygon),Ha=J(`Ring`,Y.Ring),Ua=J(`Shape`,Y.Shape),Wa=J(`Sprite`,Y.Sprite),Ga=J(`Star`,Y.Star),Ka=J(`Tag`,Y.Tag),qa=J(`Text`,Y.Text),Ja=J(`TextPath`,Y.TextPath),Ya=J(`Transformer`,Y.Transformer),Xa=J(`Wedge`,Y.Wedge),Za=Object.freeze(Object.defineProperty({__proto__:null,Arc:ka,Arrow:Aa,Circle:ja,Ellipse:Ma,FastLayer:Na,Group:Pa,Image:Fa,Label:Ia,Layer:La,Line:Ra,Path:za,Rect:Ba,RegularPolygon:Va,Ring:Ha,Shape:Ua,Sprite:Wa,Star:Ga,Tag:Ka,Text:qa,TextPath:Ja,Transformer:Ya,Wedge:Xa},Symbol.toStringTag,{value:`Module`})),Qa={install:(e,t)=>{let n=t?.prefix||ya,r=t?.customNodes?Object.entries(t.customNodes).map(([e,t])=>J(e,t)):[];[Ea,...Object.values(Za),...r].forEach(t=>{e.component(`${n}${t.name}`,t)})}},$a=typeof document<`u`;function eo(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function to(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&eo(e.default)}var X=Object.assign;function no(e,t){let n={};for(let r in t){let i=t[r];n[r]=io(i)?i.map(e):e(i)}return n}var ro=()=>{},io=Array.isArray;function ao(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var oo=/#/g,so=/&/g,co=/\//g,lo=/=/g,uo=/\?/g,fo=/\+/g,po=/%5B/g,mo=/%5D/g,ho=/%5E/g,go=/%60/g,_o=/%7B/g,vo=/%7C/g,yo=/%7D/g,bo=/%20/g;function xo(e){return e==null?``:encodeURI(``+e).replace(vo,`|`).replace(po,`[`).replace(mo,`]`)}function So(e){return xo(e).replace(_o,`{`).replace(yo,`}`).replace(ho,`^`)}function Co(e){return xo(e).replace(fo,`%2B`).replace(bo,`+`).replace(oo,`%23`).replace(so,`%26`).replace(go,"`").replace(_o,`{`).replace(yo,`}`).replace(ho,`^`)}function wo(e){return Co(e).replace(lo,`%3D`)}function To(e){return xo(e).replace(oo,`%23`).replace(uo,`%3F`)}function Eo(e){return To(e).replace(co,`%2F`)}function Do(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Oo=/\/$/,ko=e=>e.replace(Oo,``);function Ao(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Ro(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Do(o)}}function jo(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Mo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function No(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Po(t.matched[r],n.matched[i])&&Fo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Io(e[n],t[n]))return!1;return!0}function Io(e,t){return io(e)?Lo(e,t):io(t)?Lo(t,e):e?.valueOf()===t?.valueOf()}function Lo(e,t){return io(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Ro(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var zo={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},Bo=function(e){return e.pop=`pop`,e.push=`push`,e}({}),Vo=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function Ho(e){if(!e)if($a){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ko(e)}var Uo=/^[^#]+#/;function Wo(e,t){return e.replace(Uo,`#`)+t}function Go(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Ko=()=>({left:window.scrollX,top:window.scrollY});function qo(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Go(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Jo(e,t){return(history.state?history.state.position-t:-1)+e}var Yo=new Map;function Xo(e,t){Yo.set(e,t)}function Zo(e){let t=Yo.get(e);return Yo.delete(e),t}function Qo(e){return typeof e==`string`||e&&typeof e==`object`}function $o(e){return typeof e==`string`||typeof e==`symbol`}var Z=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),es=Symbol(``);Z.MATCHER_NOT_FOUND,Z.NAVIGATION_GUARD_REDIRECT,Z.NAVIGATION_ABORTED,Z.NAVIGATION_CANCELLED,Z.NAVIGATION_DUPLICATED;function ts(e,t){return X(Error(),{type:e,[es]:!0},t)}function ns(e,t){return e instanceof Error&&es in e&&(t==null||!!(e.type&t))}function rs(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Co(e)):[r&&Co(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function as(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=io(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var os=Symbol(``),ss=Symbol(``),cs=Symbol(``),ls=Symbol(``),us=Symbol(``);function ds(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function fs(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(ts(Z.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Qo(e)?c(ts(Z.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function ps(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(eo(s)){let c=(s.__vccOpts||s)[t];c&&a.push(fs(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=to(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&fs(c,n,r,o,e,i)()}))}}return a}function ms(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oPo(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Po(e,s))||i.push(s))}return[n,r,i]}var hs=()=>location.protocol+`//`+location.host;function gs(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Mo(n,``)}return Mo(n,e)+r+i}function _s(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=gs(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bo.pop,direction:u?u>0?Vo.forward:Vo.back:Vo.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(X({},e.state,{scroll:Ko()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function vs(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Ko():null}}function ys(e){let{history:t,location:n}=window,r={value:gs(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:hs()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,X({},t.state,vs(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=X({},i.value,t.state,{forward:e,scroll:Ko()});a(o.current,o,!0),a(e,X({},vs(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function bs(e){e=Ho(e);let t=ys(e),n=_s(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=X({location:``,base:e,go:r,createHref:Wo.bind(null,e)},t,n);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>t.state.value}),i}var xs=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),Q=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(Q||{}),Ss={type:xs.Static,value:``},Cs=/[a-zA-Z0-9_]/;function ws(e){if(!e)return[[]];if(e===`/`)return[[Ss]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=Q.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===Q.Static?a.push({type:xs.Static,value:l}):n===Q.Param||n===Q.ParamRegExp||n===Q.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:xs.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===$.Static+$.Segment?1:-1:0}function As(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Ms={strict:!1,end:!0,sensitive:!1};function Ns(e,t,n){let r=X(Os(ws(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ps(e,t){let n=[],r=new Map;t=ao(Ms,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Is(e);s.aliasOf=r&&r.record;let l=ao(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Is(X({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Ns(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Rs(d)&&o(e.name)),Hs(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:ro}function o(e){if($o(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Bs(e,n);n.splice(t,0,e),e.record.name&&!Rs(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw ts(Z.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=X(Fs(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Fs(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw ts(Z.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=X({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:zs(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Fs(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Is(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ls(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,`mods`,{value:{}}),t}function Ls(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Rs(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function zs(e){return e.reduce((e,t)=>X(e,t.meta),{})}function Bs(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;As(e,t[i])<0?r=i:n=i+1}let i=Vs(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Vs(e){let t=e;for(;t=t.parent;)if(Hs(t)&&As(e,t)===0)return t}function Hs({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Us(e){let t=r(cs),n=r(ls),i=b(()=>{let n=s(e.to);return t.resolve(n)}),a=b(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(Po.bind(null,r));if(o>-1)return o;let s=Js(e[t-2]);return t>1&&Js(r)===s&&a[a.length-1].path!==s?a.findIndex(Po.bind(null,e[t-2])):o}),o=b(()=>a.value>-1&&qs(n.params,i.value.params)),c=b(()=>a.value>-1&&a.value===n.matched.length-1&&Fo(n.params,i.value.params));function l(n={}){if(Ks(n)){let n=t[s(e.replace)?`replace`:`push`](s(e.to)).catch(ro);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:b(()=>i.value.href),isActive:o,isExactActive:c,navigate:l}}function Ws(e){return e.length===1?e[0]:e}var Gs=n({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Us,setup(e,{slots:t}){let n=o(Us(e)),{options:i}=r(cs),a=b(()=>({[Ys(e.activeClass,i.linkActiveClass,`router-link-active`)]:n.isActive,[Ys(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ws(t.default(n));return e.custom?r:m(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},r)}}});function Ks(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function qs(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!io(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Js(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Ys=(e,t,n)=>e??t??n,Xs=n({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let i=r(us),a=b(()=>e.route||i.value),o=r(ss,0),c=b(()=>{let e=s(o),{matched:t}=a.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),l=b(()=>a.value.matched[c.value]);f(ss,b(()=>c.value+1)),f(os,l),f(us,a);let u=h();return A(()=>[u.value,l.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Po(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=a.value,i=e.name,o=l.value,s=o&&o.components[i];if(!s)return Zs(n.default,{Component:s,route:r});let c=o.props[i],d=m(s,X({},c?c===!0?r.params:typeof c==`function`?c(r):c:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:u}));return Zs(n.default,{Component:d,route:r})||d}}});function Zs(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Qs=Xs;function $s(e){let t=Ps(e.routes,e),n=e.parseQuery||rs,r=e.stringifyQuery||is,i=e.history,o=ds(),c=ds(),l=ds(),u=a(zo),f=zo;$a&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let p=no.bind(null,e=>``+e),m=no.bind(null,Eo),h=no.bind(null,Do);function _(e,n){let r,i;return $o(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function v(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function y(){return t.getRoutes().map(e=>e.record)}function b(e){return!!t.getRecordMatcher(e)}function x(e,a){if(a=X({},a||u.value),typeof e==`string`){let r=Ao(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return X(r,o,{params:h(o.params),hash:Do(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=X({},e,{path:Ao(n,e.path,a.path).path});else{let t=X({},e.params);for(let e in t)t[e]??delete t[e];o=X({},e,{params:m(t)}),a.params=m(a.params)}let s=t.resolve(o,a),c=e.hash||``;s.params=p(h(s.params));let l=jo(r,X({},e,{hash:So(c),path:s.path})),d=i.createHref(l);return X({fullPath:l,hash:c,query:r===is?as(e.query):e.query||{}},s,{redirectedFrom:void 0,href:d})}function S(e){return typeof e==`string`?Ao(n,e,u.value.path):X({},e)}function C(e,t){if(f!==e)return ts(Z.NAVIGATION_CANCELLED,{from:t,to:e})}function w(e){return ne(e)}function ee(e){return w(X(S(e),{replace:!0}))}function te(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=S(i):{path:i},i.params={}),X({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function ne(e,t){let n=f=x(e),i=u.value,a=e.state,o=e.force,s=e.replace===!0,c=te(n,i);if(c)return ne(X(S(c),{state:typeof c==`object`?X({},a,c.state):a,force:o,replace:s}),t||n);let l=n;l.redirectedFrom=t;let d;return!o&&No(r,i,n)&&(d=ts(Z.NAVIGATION_DUPLICATED,{to:l,from:i}),oe(i,i,!0,!1)),(d?Promise.resolve(d):D(l,i)).catch(e=>ns(e)?ns(e,Z.NAVIGATION_GUARD_REDIRECT)?e:ae(e):N(e,l,i)).then(e=>{if(e){if(ns(e,Z.NAVIGATION_GUARD_REDIRECT))return ne(X({replace:s},S(e.to),{state:typeof e.to==`object`?X({},a,e.to.state):a,force:o}),t||l)}else e=re(l,i,!0,s,a);return O(l,i,e),e})}function T(e,t){let n=C(e,t);return n?Promise.reject(n):Promise.resolve()}function E(e){let t=ce.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function D(e,t){let n,[r,i,a]=ms(e,t);n=ps(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(fs(r,e,t))});let s=T.bind(null,e,t);return n.push(s),ue(n).then(()=>{n=[];for(let r of o.list())n.push(fs(r,e,t));return n.push(s),ue(n)}).then(()=>{n=ps(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(fs(r,e,t))});return n.push(s),ue(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(io(r.beforeEnter))for(let i of r.beforeEnter)n.push(fs(i,e,t));else n.push(fs(r.beforeEnter,e,t));return n.push(s),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=ps(a,`beforeRouteEnter`,e,t,E),n.push(s),ue(n))).then(()=>{n=[];for(let r of c.list())n.push(fs(r,e,t));return n.push(s),ue(n)}).catch(e=>ns(e,Z.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function O(e,t,n){l.list().forEach(r=>E(()=>r(e,t,n)))}function re(e,t,n,r,a){let o=C(e,t);if(o)return o;let s=t===zo,c=$a?history.state:{};n&&(r||s?i.replace(e.fullPath,X({scroll:s&&c&&c.scroll},a)):i.push(e.fullPath,a)),u.value=e,oe(e,t,n,s),ae()}let k;function A(){k||=i.listen((e,t,n)=>{if(!le.listening)return;let r=x(e),a=te(r,le.currentRoute.value);if(a){ne(X(a,{replace:!0,force:!0}),r).catch(ro);return}f=r;let o=u.value;$a&&Xo(Jo(o.fullPath,n.delta),Ko()),D(r,o).catch(e=>ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_CANCELLED)?e:ns(e,Z.NAVIGATION_GUARD_REDIRECT)?(ne(X(S(e.to),{force:!0}),r).then(e=>{ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bo.pop&&i.go(-1,!1)}).catch(ro),Promise.reject()):(n.delta&&i.go(-n.delta,!1),N(e,r,o))).then(e=>{e||=re(r,o,!1),e&&(n.delta&&!ns(e,Z.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bo.pop&&ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),O(r,o,e)}).catch(ro)})}let j=ds(),M=ds(),ie;function N(e,t,n){ae(e);let r=M.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function P(){return ie&&u.value!==zo?Promise.resolve():new Promise((e,t)=>{j.add([e,t])})}function ae(e){return ie||(ie=!e,A(),j.list().forEach(([t,n])=>e?n(e):t()),j.reset()),e}function oe(t,n,r,i){let{scrollBehavior:a}=e;if(!$a||!a)return Promise.resolve();let o=!r&&Zo(Jo(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return d().then(()=>a(t,n,o)).then(e=>e&&qo(e)).catch(e=>N(e,t,n))}let F=e=>i.go(e),se,ce=new Set,le={currentRoute:u,listening:!0,addRoute:_,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:y,resolve:x,options:e,push:w,replace:ee,go:F,back:()=>F(-1),forward:()=>F(1),beforeEach:o.add,beforeResolve:c.add,afterEach:l.add,onError:M.add,isReady:P,install(e){e.component(`RouterLink`,Gs),e.component(`RouterView`,Qs),e.config.globalProperties.$router=le,Object.defineProperty(e.config.globalProperties,`$route`,{enumerable:!0,get:()=>s(u)}),$a&&!se&&u.value===zo&&(se=!0,w(i.location).catch(e=>{}));let t={};for(let e in zo)Object.defineProperty(t,e,{get:()=>u.value[e],enumerable:!0});e.provide(cs,le),e.provide(ls,g(t)),e.provide(us,u);let n=e.unmount;ce.add(e),e.unmount=function(){ce.delete(e),ce.size<1&&(f=zo,k&&k(),k=null,u.value=zo,se=!1,ie=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>E(t)),Promise.resolve())}return le}function ec(){return r(cs)}function tc(e){return r(ls)}var nc=ne(`images`,()=>{let e=h([]),t=h(!1),n=h(null),r=h(0);async function i(r={}){r.silent||(t.value=!0),n.value=null;try{let t=await fetch(`/api/images`);if(!t.ok)throw Error(`Failed to load images`);e.value=await t.json()}catch(e){n.value=e instanceof Error?e.message:`Unknown error`}finally{t.value=!1}}async function a(t,n){let r=new FormData;r.append(`file`,t),n?.original&&r.append(`original`,n.original),n?.cropParams&&r.append(`cropParams`,JSON.stringify(n.cropParams)),n?.stickerState&&r.append(`stickerState`,JSON.stringify(n.stickerState)),n?.cropOrientation&&r.append(`cropOrientation`,n.cropOrientation);let i=await fetch(`/api/images`,{method:`POST`,body:r});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`Upload failed`)}let a=await i.json();return e.value.unshift(a),a}async function o(t,n,r){let i=new FormData;i.append(`file`,n),r?.cropParams&&i.append(`cropParams`,JSON.stringify(r.cropParams)),r?.stickerState&&i.append(`stickerState`,JSON.stringify(r.stickerState)),r?.cropOrientation&&i.append(`cropOrientation`,r.cropOrientation);let a=await fetch(`/api/images/${t}/reprocess`,{method:`POST`,body:i});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error??`Reprocess failed`)}let o=await a.json(),s=e.value.findIndex(e=>e.id===t);return s!==-1&&(e.value[s]=o),o}async function s(t){if(!(await fetch(`/api/images/${t}`,{method:`DELETE`})).ok)throw Error(`Delete failed`);e.value=e.value.filter(e=>e.id!==t)}async function c(t,n,r){let i=r?`POST`:`DELETE`,a=await fetch(`/api/images/${t}/approve/${n}`,{method:i});if(!a.ok)throw Error(`Failed to update approval`);let o=await a.json(),s=e.value.findIndex(e=>e.id===t);s!==-1&&(e.value[s]=o)}async function l(e,t=1,n=20){let r=new URLSearchParams({page:String(t),limit:String(n)});e&&r.set(`status`,e);let i=await fetch(`/api/shared-images?${r}`);if(!i.ok)throw Error(`Failed to load shared images`);return i.json()}async function u(){let e=await fetch(`/api/shared-images/pending-count`);e.ok&&(r.value=(await e.json()).count)}async function d(e,t){let n=await fetch(`/api/shared-images/${e}/approve`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({deviceIds:t})});if(!n.ok)throw Error(`Failed to approve`);return r.value>0&&r.value--,n.json()}async function f(e){let t=await fetch(`/api/shared-images/${e}/decline`,{method:`POST`});if(!t.ok)throw Error(`Failed to decline`);return r.value>0&&r.value--,t.json()}async function p(e,t){let n=await fetch(`/api/images/${e}/share`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({recipientEmail:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`Failed to share`)}}return{images:e,loading:t,error:n,pendingCount:r,fetchImages:i,uploadImage:a,reprocessImage:o,deleteImage:s,setApproval:c,fetchSharedImages:l,fetchPendingCount:u,approveShared:d,declineShared:f,shareImage:p}}),rc={class:`top-nav`,"aria-label":`Main navigation`},ic={class:`top-nav__tabs`},ac=[`innerHTML`],oc={class:`top-nav__label`},sc={key:0,class:`top-nav__badge`},cc=`/build/icons/apple-touch-icon.png`,lc=E(n({__name:`TopNav`,setup(e){let n=tc(),r=nc(),a=[{name:`home`,label:`Home`,to:`/`,icon:``,isActive:e=>e.path===`/`},{name:`library`,label:`Library`,to:`/library`,icon:``,isActive:e=>e.path.startsWith(`/library`)},{name:`settings`,label:`Settings`,to:`/settings`,icon:``,isActive:e=>e.path.startsWith(`/settings`)}];return(e,o)=>{let l=c(`RouterLink`);return u(),k(`header`,rc,[p(l,{to:`/`,class:`top-nav__brand`},{default:t(()=>[y(`span`,{class:`top-nav__mark`},[y(`img`,{src:cc,alt:``})]),o[0]||=y(`span`,{class:`top-nav__wordmark`},`WeVisto`,-1)]),_:1}),y(`nav`,ic,[(u(),k(ee,null,i(a,e=>p(l,{key:e.name,to:e.to,class:te([`top-nav__tab`,{"top-nav__tab--active":e.isActive(s(n))}]),"aria-current":e.isActive(s(n))?`page`:void 0},{default:t(()=>[y(`span`,{class:`top-nav__icon`,"aria-hidden":`true`,innerHTML:e.icon},null,8,ac),y(`span`,oc,_(e.label),1),e.name===`library`&&s(r).pendingCount>0?(u(),k(`span`,sc,_(s(r).pendingCount>9?`9+`:s(r).pendingCount),1)):D(``,!0)]),_:2},1032,[`to`,`class`,`aria-current`])),64))])])}}}),[[`__scopeId`,`data-v-80a94b6a`]]),uc={class:`bottom-nav`,"aria-label":`Main navigation`},dc={class:`bottom-nav__icon-wrap`,"aria-hidden":`true`},fc=[`innerHTML`],pc={key:0,class:`bottom-nav__badge`},mc={class:`bottom-nav__label`},hc=E(n({__name:`BottomNav`,setup(e){let n=tc(),r=nc(),a=[{name:`home`,label:`Home`,to:`/`,icon:``,isActive:e=>e.path===`/`},{name:`library`,label:`Library`,to:`/library`,icon:``,isActive:e=>e.path.startsWith(`/library`)},{name:`settings`,label:`Settings`,to:`/settings`,icon:``,isActive:e=>e.path.startsWith(`/settings`)}];return(e,o)=>{let l=c(`RouterLink`);return u(),k(`nav`,uc,[(u(),k(ee,null,i(a,e=>p(l,{key:e.name,to:e.to,class:te([`bottom-nav__tab`,{"bottom-nav__tab--active":e.isActive(s(n))}]),"aria-label":e.label,"aria-current":e.isActive(s(n))?`page`:void 0},{default:t(()=>[y(`span`,dc,[y(`span`,{class:`bottom-nav__icon`,innerHTML:e.icon},null,8,fc),e.name===`library`&&s(r).pendingCount>0?(u(),k(`span`,pc,_(s(r).pendingCount>9?`9+`:s(r).pendingCount),1)):D(``,!0)]),y(`span`,mc,_(e.label),1)]),_:2},1032,[`to`,`class`,`aria-label`,`aria-current`])),64))])}}}),[[`__scopeId`,`data-v-e670448a`]]),gc=0,_c=ne(`toast`,()=>{let e=h([]);function t(t,r=`info`){let i=++gc;e.value.push({id:i,message:t,type:r}),setTimeout(()=>n(i),2500)}function n(t){let n=e.value.findIndex(e=>e.id===t);n!==-1&&e.value.splice(n,1)}return{toasts:e,show:t,dismiss:n}}),vc={class:`toast-region`,"aria-live":`polite`,"aria-atomic":`false`},yc=[`onClick`],bc=E(n({__name:`BaseToast`,setup(e){let n=_c();return(e,r)=>(u(),k(`div`,vc,[p(w,{name:`toast`,tag:`ul`,class:`toast-list`},{default:t(()=>[(u(!0),k(ee,null,i(s(n).toasts,e=>(u(),k(`li`,{key:e.id,class:te([`toast`,`toast--${e.type}`]),role:`status`},[re(_(e.message)+` `,1),y(`button`,{class:`toast__close`,"aria-label":`Dismiss`,onClick:t=>s(n).dismiss(e.id)},` × `,8,yc)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-546af507`]]),xc=ne(`auth`,()=>{let e=h(window.__PF_USER__??null),t=b(()=>e.value!==null);function n(t){e.value=t}return{user:e,isAuthenticated:t,setUser:n}}),Sc=[{id:`warm-craft`,label:`Warm Craft`,primary:`#c97c3a`,bg:`#fdf6ee`,text:`#3a2e22`},{id:`playful-pop`,label:`Playful Pop`,primary:`#d63aab`,bg:`#fff0fb`,text:`#2d0a28`},{id:`sage-cream`,label:`Sage & Cream`,primary:`#4e7c3a`,bg:`#f6f8f3`,text:`#1e2b1a`},{id:`dusty-mauve`,label:`Dusty Mauve`,primary:`#8e4a84`,bg:`#f6f0f4`,text:`#2a1828`},{id:`ocean-dusk`,label:`Ocean Dusk`,primary:`#1a6ea8`,bg:`#eef3f8`,text:`#0e2030`},{id:`honey-slate`,label:`Honey & Slate`,primary:`#c49a20`,bg:`#f2f2ee`,text:`#1c1c18`}];function Cc(){let e=xc(),t=_c();function n(t){document.documentElement.dataset.theme=t,e.user&&(e.user.theme=t);let n=Sc.find(e=>e.id===t);if(n){let e=document.querySelector(`meta[name="theme-color"]`);e&&e.setAttribute(`content`,n.bg)}}async function r(e){n(e);try{if(!(await fetch(`/api/user/theme`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({theme:e})})).ok)throw Error(`Failed to save theme`)}catch{t.show(`Could not save theme — try again`,`error`)}}return{THEMES:Sc,applyTheme:n,saveTheme:r}}var wc=n({__name:`App`,setup(t){let n=tc(),r=xc(),{applyTheme:i}=Cc();return e(()=>{let e=document.documentElement.dataset.theme||r.user?.theme;e&&i(e)}),(e,t)=>{let r=c(`RouterView`);return u(),k(ee,null,[s(n).meta.hideNav?D(``,!0):(u(),v(lc,{key:0})),p(r),s(n).meta.hideNav?D(``,!0):(u(),v(hc,{key:1})),p(bc)],64)}}}),Tc=`modulepreload`,Ec=function(e){return`/build/`+e},Dc={},Oc=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Ec(t,n),t in Dc)return;Dc[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Tc,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},kc=$s({history:bs(),routes:[{path:`/`,name:`home`,component:()=>Oc(()=>import(`./HomeView-B00rxwa3.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),meta:{requiresAuth:!0}},{path:`/library`,name:`library`,component:()=>Oc(()=>import(`./LibraryView-DFJIjn5s.js`),__vite__mapDeps([8,1,2,3,9,10,4,5,11])),meta:{requiresAuth:!0}},{path:`/upload`,name:`upload`,component:()=>Oc(()=>import(`./UploadView-DgN7UeID.js`),__vite__mapDeps([12,1,2,3,9,10,6,13])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/settings`,name:`settings`,component:()=>Oc(()=>import(`./SettingsView-KEutYoup.js`),__vite__mapDeps([14,1,15])),meta:{requiresAuth:!0}},{path:`/shared`,redirect:`/library?tab=shared`},{path:`/:pathMatch(.*)*`,redirect:`/`}]});kc.beforeEach(e=>{let t=xc();if(e.meta.requiresAuth&&!t.isAuthenticated)return window.location.href=`/login`,!1});var Ac=T(wc);Ac.use(C()),Ac.use(kc),Ac.use(Qa),Ac.mount(`#app`),`serviceWorker`in navigator&&window.addEventListener(`load`,()=>{navigator.serviceWorker.register(`/sw.js`).catch(()=>{})});export{nc as a,_c as i,Cc as n,tc as o,xc as r,ec as s,Sc as t}; \ No newline at end of file +`),t=+this.fontSize(),n=0,r=this.lineHeight()*t,i=this.attrs.width,a=this.attrs.height,o=i!==Mr&&i!==void 0,s=a!==Mr&&a!==void 0,c=this.padding(),l=i-c*2,u=a-c*2,d=0,f=this.wrap(),p=f!==Zr&&f!==Qr,m=this.ellipsis();this.textArr=[],oi().font=this._getContextFont();let h=m?this._getTextWidth($r):0;for(let t=0,i=e.length;tl)for(;a.length>0;){let e=0,t=jr(a).length,i=``,o=0;for(;e>>1,c=jr(a).slice(0,n+1).join(``),f=this._getTextWidth(c);(m&&s&&d+r>u?f+h:f)<=l?(e=n+1,i=c,o=f):t=n}if(i){if(p){let t=jr(a),n=jr(i),r=t[n.length],s=r===qr||r===Rr,c;if(s&&o<=l)c=n.length;else{let e=n.lastIndexOf(qr),t=n.lastIndexOf(Rr);c=Math.max(e,t)+1}c>0&&(e=c,i=t.slice(0,e).join(``),o=this._getTextWidth(i))}if(i=i.trimRight(),this._addTextLine(i),n=Math.max(n,o),d+=r,this._shouldHandleEllipsis(d)){this._tryToAddEllipsisToLastLine();break}if(a=jr(a).slice(e).join(``).trimLeft(),a.length>0&&(c=this._getTextWidth(a),c<=l)){this._addTextLine(a),d+=r,n=Math.max(n,c);break}}else break}else this._addTextLine(a),d+=r,n=Math.max(n,c),this._shouldHandleEllipsis(d)&&tu)break}this.textHeight=t,this.textWidth=n}_shouldHandleEllipsis(e){let t=+this.fontSize(),n=this.lineHeight()*t,r=this.attrs.height,i=r!==Mr&&r!==void 0,a=r-this.padding()*2;return this.wrap()===Qr||i&&e+n>a}_tryToAddEllipsisToLastLine(){let e=this.attrs.width,t=e!==Mr&&e!==void 0,n=e-this.padding()*2,r=this.ellipsis(),i=this.textArr[this.textArr.length-1];!i||!r||(t&&(this._getTextWidth(i.text+$r)this.pathLength?null:W.getPointAtLengthOfDataArray(e,this.dataArray)}_readDataAttribute(){this.dataArray=W.parsePathData(this.attrs.data),this.pathLength=this._getTextPathLength()}_sceneFunc(e){e.setAttr(`font`,this._getContextFont()),e.setAttr(`textBaseline`,this.textBaseline()),e.setAttr(`textAlign`,`left`),e.save();let t=this.textDecoration(),n=this.fill(),r=this.fontSize(),i=this.glyphInfo,a=t.indexOf(`underline`)!==-1,o=t.indexOf(`line-through`)!==-1;a&&e.beginPath();for(let t=0;t=1){let n=t[0].p0;e.moveTo(n.x,n.y)}for(let n=0;nthis.pathLength&&f-this.pathLength<=c?this.pathLength:f);if(!p)return;let m=W.getLineLength(r.x,r.y,p.x,p.y),h=0;if(s)try{h=s(t[n-1].char,i)*this.fontSize()}catch{h=0}r.x+=h,p.x+=h,this.textWidth+=h;let g=W.getPointOnLine(h+m/2,r.x,r.y,p.x,p.y),_=Math.atan2(p.y-r.y,p.x-r.x);this.glyphInfo.push({transposeX:g.x,transposeY:g.y,text:e[n],rotation:_,p0:r,p1:p,width:m}),d+=u}}getSelfRect(){if(!this.glyphInfo.length)return{x:0,y:0,width:0,height:0};let e=[];this.glyphInfo.forEach(function(t){e.push(t.p0.x),e.push(t.p0.y),e.push(t.p1.x),e.push(t.p1.y)});let t=e[0]||0,n=e[0]||0,r=e[1]||0,i=e[1]||0,a,o;for(let s=0;se+`.${mi}`).join(` `),gi=`nodesRect`,_i=[`widthChange`,`heightChange`,`scaleXChange`,`scaleYChange`,`skewXChange`,`skewYChange`,`rotationChange`,`offsetXChange`,`offsetYChange`,`transformsEnabledChange`,`strokeWidthChange`,`draggableChange`],vi={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135},yi=`ontouchstart`in N._global;function bi(e,t,n){if(e===`rotater`)return n;t+=I.degToRad(vi[e]||0);let r=(I.radToDeg(t)%360+360)%360;return I._inRange(r,337.5,360)||I._inRange(r,0,22.5)?`ns-resize`:I._inRange(r,22.5,67.5)?`nesw-resize`:I._inRange(r,67.5,112.5)?`ew-resize`:I._inRange(r,112.5,157.5)?`nwse-resize`:I._inRange(r,157.5,202.5)?`ns-resize`:I._inRange(r,202.5,247.5)?`nesw-resize`:I._inRange(r,247.5,292.5)?`ew-resize`:I._inRange(r,292.5,337.5)?`nwse-resize`:(I.error(`Transformer has unknown angle for cursor detection: `+r),`pointer`)}var xi=[`top-left`,`top-center`,`top-right`,`middle-right`,`middle-left`,`bottom-left`,`bottom-center`,`bottom-right`],Si=1e8;function Ci(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function wi(e,t,n){let r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return{...e,rotation:e.rotation+t,x:r,y:i}}function Ti(e,t){return wi(e,t,Ci(e))}function Ei(e,t,n){let r=t;for(let i=0;ie.isAncestorOf(this)?(I.error(`Konva.Transformer cannot be an a child of the node you are trying to attach`),!1):!0);return this._nodes=e=t,e.length===1&&this.useSingleNodeRotation()?this.rotation(e[0].getAbsoluteRotation()):this.rotation(0),this._nodes.forEach(e=>{let t=()=>{this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),!this._transforming&&!this.isDragging()&&this.update()};if(e._attrsAffectingSize.length){let n=e._attrsAffectingSize.map(e=>e+`Change.`+this._getEventNamespace()).join(` `);e.on(n,t)}e.on(_i.map(e=>e+`.${this._getEventNamespace()}`).join(` `),t),e.on(`absoluteTransformChange.${this._getEventNamespace()}`,t),this._proxyDrag(e)}),this._resetTransformCache(),this.findOne(`.top-left`)&&this.update(),this}_proxyDrag(e){let t;e.on(`dragstart.${this._getEventNamespace()}`,n=>{t=e.getAbsolutePosition(),!this.isDragging()&&e!==this.findOne(`.back`)&&this.startDrag(n,!1)}),e.on(`dragmove.${this._getEventNamespace()}`,n=>{if(!t)return;let r=e.getAbsolutePosition(),i=r.x-t.x,a=r.y-t.y;this.nodes().forEach(t=>{if(t===e||t.isDragging())return;let r=t.getAbsolutePosition();t.setAbsolutePosition({x:r.x+i,y:r.y+a}),t.startDrag(n)}),t=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(e=>{e.off(`.`+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache(gi),this._clearCache(`transform`),this._clearSelfAndDescendantCache(`absoluteTransform`)}_getNodeRect(){return this._getCache(gi,this.__getNodeRect)}__getNodeShape(e,t=this.rotation(),n){let r=e.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),i=e.getAbsoluteScale(n),a=e.getAbsolutePosition(n),o=r.x*i.x-e.offsetX()*i.x,s=r.y*i.y-e.offsetY()*i.y,c=(N.getAngle(e.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2);return wi({x:a.x+o*Math.cos(c)+s*Math.sin(-c),y:a.y+s*Math.cos(c)+o*Math.sin(c),width:r.width*i.x,height:r.height*i.y,rotation:c},-N.getAngle(t),{x:0,y:0})}__getNodeRect(){if(!this.getNode())return{x:-Si,y:-Si,width:0,height:0,rotation:0};let e=[];this.nodes().map(t=>{let n=t.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),r=[{x:n.x,y:n.y},{x:n.x+n.width,y:n.y},{x:n.x+n.width,y:n.y+n.height},{x:n.x,y:n.y+n.height}],i=t.getAbsoluteTransform();r.forEach(function(t){let n=i.point(t);e.push(n)})});let t=new F;t.rotate(-N.getAngle(this.rotation()));let n=1/0,r=1/0,i=-1/0,a=-1/0;e.forEach(function(e){let o=t.point(e);n===void 0&&(n=i=o.x,r=a=o.y),n=Math.min(n,o.x),r=Math.min(r,o.y),i=Math.max(i,o.x),a=Math.max(a,o.y)}),t.invert();let o=t.point({x:n,y:r});return{x:o.x,y:o.y,width:i-n,height:a-r,rotation:N.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),xi.forEach(e=>{this._createAnchor(e)}),this._createAnchor(`rotater`),this._elementsCreated=!0}_createAnchor(e){let t=new Tr({stroke:`rgb(0, 161, 255)`,fill:`white`,strokeWidth:1,name:e+` _anchor`,dragDistance:0,draggable:!0,hitStrokeWidth:yi?10:`auto`}),n=this;t.on(`mousedown touchstart`,function(e){n._handleMouseDown(e)}),t.on(`dragstart`,e=>{t.stopDrag(),e.cancelBubble=!0}),t.on(`dragend`,e=>{e.cancelBubble=!0}),t.on(`mouseenter`,()=>{let n=bi(e,N.getAngle(this.rotation()),this.rotateAnchorCursor());t.getStage().content&&(t.getStage().content.style.cursor=n),this._cursorChange=!0}),t.on(`mouseout`,()=>{t.getStage().content&&(t.getStage().content.style.cursor=``),this._cursorChange=!1}),this.add(t)}_createBack(){let e=new U({name:`back`,width:0,height:0,sceneFunc(e,t){let n=t.getParent(),r=n.padding(),i=t.width(),a=t.height();if(e.beginPath(),e.rect(-r,-r,i+r*2,a+r*2),n.rotateEnabled()&&n.rotateLineVisible()){let t=n.rotateAnchorAngle(),r=n.rotateAnchorOffset(),o=I.degToRad(t),s=Math.sin(o),c=-Math.cos(o),l=i/2,u=a/2,d=1/0;c<0?d=Math.min(d,-u/c):c>0&&(d=Math.min(d,(a-u)/c)),s<0?d=Math.min(d,-l/s):s>0&&(d=Math.min(d,(i-l)/s));let f=l+s*d,p=u+c*d,m=I._sign(a),h=f+s*r*m,g=p+c*r*m;e.moveTo(f,p),e.lineTo(h,g)}e.fillStrokeShape(t)},hitFunc:(e,t)=>{if(!this.shouldOverdrawWholeArea())return;let n=this.padding();e.beginPath(),e.rect(-n,-n,t.width()+n*2,t.height()+n*2),e.fillStrokeShape(t)}});this.add(e),this._proxyDrag(e),e.on(`dragstart`,e=>{e.cancelBubble=!0}),e.on(`dragmove`,e=>{e.cancelBubble=!0}),e.on(`dragend`,e=>{e.cancelBubble=!0}),this.on(`dragmove`,e=>{this.update()})}_handleMouseDown(e){if(this._transforming)return;this._movingAnchorName=e.target.name().split(` `)[0];let t=this._getNodeRect(),n=t.width,r=t.height,i=Math.sqrt(n**2+r**2);this.sin=Math.abs(r/i),this.cos=Math.abs(n/i),typeof window<`u`&&(window.addEventListener(`mousemove`,this._handleMouseMove),window.addEventListener(`touchmove`,this._handleMouseMove),window.addEventListener(`mouseup`,this._handleMouseUp,!0),window.addEventListener(`touchend`,this._handleMouseUp,!0)),this._transforming=!0;let a=e.target.getAbsolutePosition(),o=e.target.getStage().getPointerPosition();this._anchorDragOffset={x:o.x-a.x,y:o.y-a.y},Di++,this._fire(`transformstart`,{evt:e.evt,target:this.getNode()}),this._nodes.forEach(t=>{t._fire(`transformstart`,{evt:e.evt,target:t})})}_handleMouseMove(e){let t,n,r,i=this.findOne(`.`+this._movingAnchorName),a=i.getStage();a.setPointersPositions(e);let o=a.getPointerPosition(),s={x:o.x-this._anchorDragOffset.x,y:o.y-this._anchorDragOffset.y},c=i.getAbsolutePosition();this.anchorDragBoundFunc()&&(s=this.anchorDragBoundFunc()(c,s,e)),i.setAbsolutePosition(s);let l=i.getAbsolutePosition();if(c.x===l.x&&c.y===l.y)return;if(this._movingAnchorName===`rotater`){let r=this._getNodeRect();t=i.x()-r.width/2,n=-i.y()+r.height/2;let a=N.getAngle(this.rotateAnchorAngle()),o=Math.atan2(-n,t)+Math.PI/2-a;r.height<0&&(o-=Math.PI);let s=N.getAngle(this.rotation())+o,c=N.getAngle(this.rotationSnapTolerance()),l=Ti(r,Ei(this.rotationSnaps(),s,c)-r.rotation);this._fitNodesInto(l,e);return}let u=this.shiftBehavior(),d;d=u===`inverted`?this.keepRatio()&&!e.shiftKey:u===`none`?this.keepRatio():this.keepRatio()||e.shiftKey;let f=this.centeredScaling()||e.altKey;if(this._movingAnchorName===`top-left`){if(d){let e=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(`.bottom-right`).x(),y:this.findOne(`.bottom-right`).y()};r=Math.sqrt((e.x-i.x())**2+(e.y-i.y())**2);let a=this.findOne(`.top-left`).x()>e.x?-1:1,o=this.findOne(`.top-left`).y()>e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this.findOne(`.top-left`).x(e.x-t),this.findOne(`.top-left`).y(e.y-n)}}else if(this._movingAnchorName===`top-center`)this.findOne(`.top-left`).y(i.y());else if(this._movingAnchorName===`top-right`){if(d){let e=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(`.bottom-left`).x(),y:this.findOne(`.bottom-left`).y()};r=Math.sqrt((i.x()-e.x)**2+(e.y-i.y())**2);let a=this.findOne(`.top-right`).x()e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this.findOne(`.top-right`).x(e.x+t),this.findOne(`.top-right`).y(e.y-n)}var p=i.position();this.findOne(`.top-left`).y(p.y),this.findOne(`.bottom-right`).x(p.x)}else if(this._movingAnchorName===`middle-left`)this.findOne(`.top-left`).x(i.x());else if(this._movingAnchorName===`middle-right`)this.findOne(`.bottom-right`).x(i.x());else if(this._movingAnchorName===`bottom-left`){if(d){let e=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(`.top-right`).x(),y:this.findOne(`.top-right`).y()};r=Math.sqrt((e.x-i.x())**2+(i.y()-e.y)**2);let a=e.x{var n;t._fire(`transformend`,{evt:e,target:t}),(n=t.getLayer())==null||n.batchDraw()}),this._movingAnchorName=null}}_fitNodesInto(e,t){let n=this._getNodeRect();if(I._inRange(e.width,-this.padding()*2-1,1)){this.update();return}if(I._inRange(e.height,-this.padding()*2-1,1)){this.update();return}let r=new F;if(r.rotate(N.getAngle(this.rotation())),this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`left`)>=0){let t=r.point({x:-this.padding()*2,y:0});e.x+=t.x,e.y+=t.y,e.width+=this.padding()*2,this._movingAnchorName=this._movingAnchorName.replace(`left`,`right`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y}else if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`right`)>=0){let t=r.point({x:this.padding()*2,y:0});this._movingAnchorName=this._movingAnchorName.replace(`right`,`left`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y,e.width+=this.padding()*2}if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`top`)>=0){let t=r.point({x:0,y:-this.padding()*2});e.x+=t.x,e.y+=t.y,this._movingAnchorName=this._movingAnchorName.replace(`top`,`bottom`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y,e.height+=this.padding()*2}else if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`bottom`)>=0){let t=r.point({x:0,y:this.padding()*2});this._movingAnchorName=this._movingAnchorName.replace(`bottom`,`top`),this._anchorDragOffset.x-=t.x,this._anchorDragOffset.y-=t.y,e.height+=this.padding()*2}if(this.boundBoxFunc()){let t=this.boundBoxFunc()(n,e);t?e=t:I.warn(`boundBoxFunc returned falsy. You should return new bound rect from it!`)}let i=1e7,a=new F;a.translate(n.x,n.y),a.rotate(n.rotation),a.scale(n.width/i,n.height/i);let o=new F,s=e.width/i,c=e.height/i;this.flipEnabled()===!1?(o.translate(e.x,e.y),o.rotate(e.rotation),o.translate(e.width<0?e.width:0,e.height<0?e.height:0),o.scale(Math.abs(s),Math.abs(c))):(o.translate(e.x,e.y),o.rotate(e.rotation),o.scale(s,c));let l=o.multiply(a.invert());this._nodes.forEach(e=>{var t;if(!e.getStage())return;let n=e.getParent().getAbsoluteTransform(),r=e.getTransform().copy();r.translate(e.offsetX(),e.offsetY());let i=new F;i.multiply(n.copy().invert()).multiply(l).multiply(n).multiply(r);let a=i.decompose();e.setAttrs(a),(t=e.getLayer())==null||t.batchDraw()}),this.rotation(I._getRotation(e.rotation)),this._nodes.forEach(e=>{this._fire(`transform`,{evt:t,target:e}),e._fire(`transform`,{evt:t,target:e})}),this._resetTransformCache(),this.update(),this.getLayer().batchDraw()}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(e,t){this.findOne(e).setAttrs(t)}update(){var e;let t=this._getNodeRect();this.rotation(I._getRotation(t.rotation));let n=t.width,r=t.height,i=this.enabledAnchors(),a=this.resizeEnabled(),o=this.padding(),s=this.anchorSize(),c=this.find(`._anchor`);c.forEach(e=>{e.setAttrs({width:s,height:s,offsetX:s/2,offsetY:s/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(`.top-left`,{x:0,y:0,offsetX:s/2+o,offsetY:s/2+o,visible:a&&i.indexOf(`top-left`)>=0}),this._batchChangeChild(`.top-center`,{x:n/2,y:0,offsetY:s/2+o,visible:a&&i.indexOf(`top-center`)>=0}),this._batchChangeChild(`.top-right`,{x:n,y:0,offsetX:s/2-o,offsetY:s/2+o,visible:a&&i.indexOf(`top-right`)>=0}),this._batchChangeChild(`.middle-left`,{x:0,y:r/2,offsetX:s/2+o,visible:a&&i.indexOf(`middle-left`)>=0}),this._batchChangeChild(`.middle-right`,{x:n,y:r/2,offsetX:s/2-o,visible:a&&i.indexOf(`middle-right`)>=0}),this._batchChangeChild(`.bottom-left`,{x:0,y:r,offsetX:s/2+o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-left`)>=0}),this._batchChangeChild(`.bottom-center`,{x:n/2,y:r,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-center`)>=0}),this._batchChangeChild(`.bottom-right`,{x:n,y:r,offsetX:s/2-o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-right`)>=0});let l=this.rotateAnchorAngle(),u=this.rotateAnchorOffset(),d=I.degToRad(l),f=Math.sin(d),p=-Math.cos(d),m=n/2,h=r/2,g=1/0;p<0?g=Math.min(g,-h/p):p>0&&(g=Math.min(g,(r-h)/p)),f<0?g=Math.min(g,-m/f):f>0&&(g=Math.min(g,(n-m)/f));let _=m+f*g,v=h+p*g,y=I._sign(r);this._batchChangeChild(`.rotater`,{x:_+f*u*y,y:v+p*u*y-o*p,visible:this.rotateEnabled()}),this._batchChangeChild(`.back`,{width:n,height:r,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),draggable:this.nodes().some(e=>e.draggable()),x:0,y:0});let b=this.anchorStyleFunc();b&&c.forEach(e=>{b(e)}),(e=this.getLayer())==null||e.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();let e=this.findOne(`.`+this._movingAnchorName);e&&e.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=``),zn.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}add(...e){return this._elementsCreated?(I.error(`You cannot add external nodes to the Transformer. Use tr.nodes([node]) instead.`),this):super.add(...e)}toObject(){return B.prototype.toObject.call(this)}clone(e){return B.prototype.clone.call(this,e)}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}};q.isTransforming=()=>Di>0;function Oi(e){return e instanceof Array||I.warn(`enabledAnchors value should be an array`),e instanceof Array&&e.forEach(function(e){xi.indexOf(e)===-1&&I.warn(`Unknown anchor name: `+e+`. Available names are: `+xi.join(`, `))}),e||[]}q.prototype.className=`Transformer`,P(q),z.addGetterSetter(q,`enabledAnchors`,xi,Oi),z.addGetterSetter(q,`flipEnabled`,!0,$e()),z.addGetterSetter(q,`resizeEnabled`,!0),z.addGetterSetter(q,`anchorSize`,10,R()),z.addGetterSetter(q,`rotateEnabled`,!0),z.addGetterSetter(q,`rotateLineVisible`,!0),z.addGetterSetter(q,`rotationSnaps`,[]),z.addGetterSetter(q,`rotateAnchorOffset`,50,R()),z.addGetterSetter(q,`rotateAnchorAngle`,0,R()),z.addGetterSetter(q,`rotateAnchorCursor`,`crosshair`),z.addGetterSetter(q,`rotationSnapTolerance`,5,R()),z.addGetterSetter(q,`borderEnabled`,!0),z.addGetterSetter(q,`anchorStroke`,`rgb(0, 161, 255)`),z.addGetterSetter(q,`anchorStrokeWidth`,1,R()),z.addGetterSetter(q,`anchorFill`,`white`),z.addGetterSetter(q,`anchorCornerRadius`,0,R()),z.addGetterSetter(q,`borderStroke`,`rgb(0, 161, 255)`),z.addGetterSetter(q,`borderStrokeWidth`,1,R()),z.addGetterSetter(q,`borderDash`),z.addGetterSetter(q,`keepRatio`,!0),z.addGetterSetter(q,`shiftBehavior`,`default`),z.addGetterSetter(q,`centeredScaling`,!1),z.addGetterSetter(q,`ignoreStroke`,!1),z.addGetterSetter(q,`padding`,0,R()),z.addGetterSetter(q,`nodes`),z.addGetterSetter(q,`node`),z.addGetterSetter(q,`boundBoxFunc`),z.addGetterSetter(q,`anchorDragBoundFunc`),z.addGetterSetter(q,`anchorStyleFunc`),z.addGetterSetter(q,`shouldOverdrawWholeArea`,!1),z.addGetterSetter(q,`useSingleNodeRotation`,!0),z.backCompat(q,{lineEnabled:`borderEnabled`,rotateHandlerOffset:`rotateAnchorOffset`,enabledHandlers:`enabledAnchors`});var ki=class extends U{_sceneFunc(e){e.beginPath(),e.arc(0,0,this.radius(),0,N.getAngle(this.angle()),this.clockwise()),e.lineTo(0,0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};ki.prototype.className=`Wedge`,ki.prototype._centroid=!0,ki.prototype._attrsAffectingSize=[`radius`],P(ki),z.addGetterSetter(ki,`radius`,0,R()),z.addGetterSetter(ki,`angle`,0,R()),z.addGetterSetter(ki,`clockwise`,!1),z.backCompat(ki,{angleDeg:`angle`,getAngleDeg:`getAngle`,setAngleDeg:`setAngle`});function Ai(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var ji=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],Mi=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function Ni(e,t){let n=e.data,r=e.width,i=e.height,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,ee=t+t+1,te=r-1,ne=i-1,T=t+1,E=T*(T+1)/2,D=new Ai,O=ji[t],re=Mi[t],k=null,A=D,j=null,M=null;for(let e=1;e>re,C===0?n[o]=n[o+1]=n[o+2]=0:(C=255/C,n[o]=(c*O>>re)*C,n[o+1]=(l*O>>re)*C,n[o+2]=(u*O>>re)*C),c-=f,l-=p,u-=m,d-=h,f-=j.r,p-=j.g,m-=j.b,h-=j.a,a=s+((a=e+t+1)>re,C>0?(C=255/C,n[a]=(c*O>>re)*C,n[a+1]=(l*O>>re)*C,n[a+2]=(u*O>>re)*C):n[a]=n[a+1]=n[a+2]=0,c-=f,l-=p,u-=m,d-=h,f-=j.r,p-=j.g,m-=j.b,h-=j.a,a=e+((a=t+T)0&&Ni(e,t)};z.addGetterSetter(B,`blurRadius`,0,R(),z.afterSetFilter);var Fi=function(e){let t=this.brightness()*255,n=e.data,r=n.length;for(let e=0;e255?255:i,a=a<0?0:a>255?255:a,o=o<0?0:o>255?255:o,n[e]=i,n[e+1]=a,n[e+2]=o};z.addGetterSetter(B,`contrast`,0,R(),z.afterSetFilter);var Ri=function(e){let t=e.data,n=e.width,r=e.height,i=Math.min(1,Math.max(0,this.embossStrength?.call(this)??.5)),a=Math.min(1,Math.max(0,this.embossWhiteLevel?.call(this)??.5)),o={"top-left":315,top:270,"top-right":225,right:180,"bottom-right":135,bottom:90,"bottom-left":45,left:0}[this.embossDirection?.call(this)??`top-left`]??315,s=!!(this.embossBlend?.call(this)??!1),c=i*10,l=a*255,u=o*Math.PI/180,d=Math.cos(u),f=Math.sin(u),p=128/1020*c,m=new Uint8ClampedArray(t),h=new Float32Array(n*r);for(let e=0,n=0;ne<0?0:e>255?255:e;for(let e=1;ei&&(i=a),c=t[e+1],cs&&(s=c),d=t[e+2],du&&(u=d);i===r&&(i=255,r=0),s===o&&(s=255,o=0),u===l&&(u=255,l=0);let p,m,h,g,_,v;if(f>0)p=i+f*(255-i),m=r-f*(r-0),h=s+f*(255-s),g=o-f*(o-0),_=u+f*(255-u),v=l-f*(l-0);else{let e=(i+r)*.5;p=i+f*(i-e),m=r+f*(r-e);let t=(s+o)*.5;h=s+f*(s-t),g=o+f*(o-t);let n=(u+l)*.5;_=u+f*(u-n),v=l+f*(l-n)}for(let e=0;el?f:l;let p=o,m=a,h=360/m*Math.PI/180;for(let e=0;el?f:l;let p=o,m=a,h=n.polarRotation||0,g,_;for(u=0;ut&&(b=y,x=0,S=-1),i=0;i=0&&d=0&&f=0&&d=0&&f=1020?255:0}return o}function ta(e,t,n){let r=[1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9],i=Math.round(Math.sqrt(r.length)),a=Math.floor(i/2),o=[];for(let s=0;s=0&&d=0&&f=n))for(let t=f;t=r)continue;let i=(n*t+e)*4;a+=o[i+0],s+=o[i+1],c+=o[i+2],l+=o[i+3],m+=1}a/=m,s/=m,c/=m,l/=m;for(let e=u;e=n))for(let t=f;t=r)continue;let i=(n*t+e)*4;o[i+0]=a,o[i+1]=s,o[i+2]=c,o[i+3]=l}}};z.addGetterSetter(B,`pixelSize`,8,R(),z.afterSetFilter);var aa=function(e){let t=Math.round(this.levels()*254)+1,n=e.data,r=n.length,i=255/t;for(let e=0;e255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`green`,0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`blue`,0,qe,z.afterSetFilter);var sa=function(e){let t=e.data,n=t.length,r=this.red(),i=this.green(),a=this.blue(),o=this.alpha();for(let e=0;e255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`green`,0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`blue`,0,qe,z.afterSetFilter),z.addGetterSetter(B,`alpha`,1,function(e){return this._filterUpToDate=!1,e>1?1:e<0?0:e});var ca=function(e){let t=e.data,n=t.length;for(let e=0;e=128&&(t[e]=255-n,t[e+1]=255-r,t[e+2]=255-i)}return e},ua=function(e){let t=this.threshold()*255,n=e.data,r=n.length;for(let e=0;e{i(e.getAttr(r))})}}var ya=`V`;function ba(e){function t(e){return e?.__konvaNode?e:e?.parent?t(e.parent):(console.error(`vue-konva error: Can not find parent node`),null)}return t(e.parent)}function xa(e){return e.component?e.component.__konvaNode||xa(e.component.subTree):null}function Sa(e){let{el:t,component:n}=e,r=xa(e);if(t?.tagName&&n&&!r){let e=t.tagName.toLowerCase();return console.error(`vue-konva error: You are trying to render "${e}" inside your component tree. Looks like it is not a Konva node. You can render only Konva components inside the Stage.`),null}return r}function Ca(e){let t=e=>!!e&&typeof e==`object`&&`component`in e,n=e=>Array.isArray(e),r=e=>t(e)?[e,...r(e.children)]:n(e)?e.flatMap(r):[];return r(e.children)}function wa(e,t){let n=Ca(e),r=[];n.forEach(e=>{let t=Sa(e);t&&r.push(t)});let i=!1;r.forEach((e,t)=>{e.getZIndex()!==t&&(e.setZIndex(t),i=!0)}),i&&fa(t)}var Ta=da.default?.Stage||da.Stage,Ea=n({name:`Stage`,props:{config:{type:Object,default:function(){return{}}},__useStrictMode:{type:Boolean}},inheritAttrs:!1,setup(t,{attrs:n,slots:r,expose:i}){let a=O();if(!a)return;let s=o({}),c=h(null),u=new Ta({width:t.config.width,height:t.config.height,container:document.createElement(`div`)});a.__konvaNode=u,p();function d(){return a?.__konvaNode}function f(){return a?.__konvaNode}function p(){if(!a)return;let e=s||{},r={...n,...t.config};ha(a,r,e,t.__useStrictMode),Object.assign(s,r)}return e(()=>{c.value&&u.container(c.value),p(),va(u,a)}),l(()=>{p(),wa(a.subTree,u),va(u,a)}),S(()=>{u.destroy()}),A(()=>t.config,p,{deep:!0}),i({getStage:f,getNode:d}),()=>m(`div`,{ref:c,id:n?.id,accesskey:n?.accesskey,class:n?.class,role:n?.role,style:n?.style,tabindex:n?.tabindex,title:n?.title},r.default?.())}}),Da=`.vue-konva-event`,Oa={Group:!0,Layer:!0,FastLayer:!0,Label:!0};function J(t,r){return n({name:t,props:{config:{type:Object,default:function(){return{}}},__useStrictMode:{type:Boolean}},setup(n,{attrs:i,slots:a,expose:s}){let c=O();if(!c)return;let u=o({}),d=new r;c.__konvaNode=d,c.vnode.__konvaNode=d,m();function f(){return c?.__konvaNode}function p(){return c?.__konvaNode}function m(){if(!c)return;let e={};for(let t in c?.vnode.props)t.slice(0,2)===`on`&&(e[t]=c.vnode.props[t]);let t=u||{},r={...i,...n.config,...e};ha(c,r,t,n.__useStrictMode),Object.assign(u,r)}e(()=>{let e=ba(c)?.__konvaNode;e&&`add`in e&&e.add(d),fa(d),va(d,c)}),x(()=>{fa(d),d.destroy(),d.off(Da),d.off(ga)}),l(()=>{m(),wa(c.subTree,d),va(d,c)}),A(()=>n.config,m,{deep:!0}),s({getStage:p,getNode:f});let h=Oa.hasOwnProperty(t);return()=>h?a.default?.():null}})}var Y=da.default||da,ka=J(`Arc`,Y.Arc),Aa=J(`Arrow`,Y.Arrow),ja=J(`Circle`,Y.Circle),Ma=J(`Ellipse`,Y.Ellipse),Na=J(`FastLayer`,Y.FastLayer),Pa=J(`Group`,Y.Group),Fa=J(`Image`,Y.Image),Ia=J(`Label`,Y.Label),La=J(`Layer`,Y.Layer),Ra=J(`Line`,Y.Line),za=J(`Path`,Y.Path),Ba=J(`Rect`,Y.Rect),Va=J(`RegularPolygon`,Y.RegularPolygon),Ha=J(`Ring`,Y.Ring),Ua=J(`Shape`,Y.Shape),Wa=J(`Sprite`,Y.Sprite),Ga=J(`Star`,Y.Star),Ka=J(`Tag`,Y.Tag),qa=J(`Text`,Y.Text),Ja=J(`TextPath`,Y.TextPath),Ya=J(`Transformer`,Y.Transformer),Xa=J(`Wedge`,Y.Wedge),Za=Object.freeze(Object.defineProperty({__proto__:null,Arc:ka,Arrow:Aa,Circle:ja,Ellipse:Ma,FastLayer:Na,Group:Pa,Image:Fa,Label:Ia,Layer:La,Line:Ra,Path:za,Rect:Ba,RegularPolygon:Va,Ring:Ha,Shape:Ua,Sprite:Wa,Star:Ga,Tag:Ka,Text:qa,TextPath:Ja,Transformer:Ya,Wedge:Xa},Symbol.toStringTag,{value:`Module`})),Qa={install:(e,t)=>{let n=t?.prefix||ya,r=t?.customNodes?Object.entries(t.customNodes).map(([e,t])=>J(e,t)):[];[Ea,...Object.values(Za),...r].forEach(t=>{e.component(`${n}${t.name}`,t)})}},$a=typeof document<`u`;function eo(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function to(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&eo(e.default)}var X=Object.assign;function no(e,t){let n={};for(let r in t){let i=t[r];n[r]=io(i)?i.map(e):e(i)}return n}var ro=()=>{},io=Array.isArray;function ao(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var oo=/#/g,so=/&/g,co=/\//g,lo=/=/g,uo=/\?/g,fo=/\+/g,po=/%5B/g,mo=/%5D/g,ho=/%5E/g,go=/%60/g,_o=/%7B/g,vo=/%7C/g,yo=/%7D/g,bo=/%20/g;function xo(e){return e==null?``:encodeURI(``+e).replace(vo,`|`).replace(po,`[`).replace(mo,`]`)}function So(e){return xo(e).replace(_o,`{`).replace(yo,`}`).replace(ho,`^`)}function Co(e){return xo(e).replace(fo,`%2B`).replace(bo,`+`).replace(oo,`%23`).replace(so,`%26`).replace(go,"`").replace(_o,`{`).replace(yo,`}`).replace(ho,`^`)}function wo(e){return Co(e).replace(lo,`%3D`)}function To(e){return xo(e).replace(oo,`%23`).replace(uo,`%3F`)}function Eo(e){return To(e).replace(co,`%2F`)}function Do(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Oo=/\/$/,ko=e=>e.replace(Oo,``);function Ao(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Ro(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Do(o)}}function jo(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Mo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function No(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Po(t.matched[r],n.matched[i])&&Fo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Io(e[n],t[n]))return!1;return!0}function Io(e,t){return io(e)?Lo(e,t):io(t)?Lo(t,e):e?.valueOf()===t?.valueOf()}function Lo(e,t){return io(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Ro(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var zo={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},Bo=function(e){return e.pop=`pop`,e.push=`push`,e}({}),Vo=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function Ho(e){if(!e)if($a){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ko(e)}var Uo=/^[^#]+#/;function Wo(e,t){return e.replace(Uo,`#`)+t}function Go(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Ko=()=>({left:window.scrollX,top:window.scrollY});function qo(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Go(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Jo(e,t){return(history.state?history.state.position-t:-1)+e}var Yo=new Map;function Xo(e,t){Yo.set(e,t)}function Zo(e){let t=Yo.get(e);return Yo.delete(e),t}function Qo(e){return typeof e==`string`||e&&typeof e==`object`}function $o(e){return typeof e==`string`||typeof e==`symbol`}var Z=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),es=Symbol(``);Z.MATCHER_NOT_FOUND,Z.NAVIGATION_GUARD_REDIRECT,Z.NAVIGATION_ABORTED,Z.NAVIGATION_CANCELLED,Z.NAVIGATION_DUPLICATED;function ts(e,t){return X(Error(),{type:e,[es]:!0},t)}function ns(e,t){return e instanceof Error&&es in e&&(t==null||!!(e.type&t))}function rs(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Co(e)):[r&&Co(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function as(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=io(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var os=Symbol(``),ss=Symbol(``),cs=Symbol(``),ls=Symbol(``),us=Symbol(``);function ds(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function fs(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(ts(Z.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Qo(e)?c(ts(Z.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function ps(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(eo(s)){let c=(s.__vccOpts||s)[t];c&&a.push(fs(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=to(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&fs(c,n,r,o,e,i)()}))}}return a}function ms(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oPo(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Po(e,s))||i.push(s))}return[n,r,i]}var hs=()=>location.protocol+`//`+location.host;function gs(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Mo(n,``)}return Mo(n,e)+r+i}function _s(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=gs(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bo.pop,direction:u?u>0?Vo.forward:Vo.back:Vo.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(X({},e.state,{scroll:Ko()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function vs(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Ko():null}}function ys(e){let{history:t,location:n}=window,r={value:gs(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:hs()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,X({},t.state,vs(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=X({},i.value,t.state,{forward:e,scroll:Ko()});a(o.current,o,!0),a(e,X({},vs(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function bs(e){e=Ho(e);let t=ys(e),n=_s(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=X({location:``,base:e,go:r,createHref:Wo.bind(null,e)},t,n);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>t.state.value}),i}var xs=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),Q=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(Q||{}),Ss={type:xs.Static,value:``},Cs=/[a-zA-Z0-9_]/;function ws(e){if(!e)return[[]];if(e===`/`)return[[Ss]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=Q.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===Q.Static?a.push({type:xs.Static,value:l}):n===Q.Param||n===Q.ParamRegExp||n===Q.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:xs.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===$.Static+$.Segment?1:-1:0}function As(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Ms={strict:!1,end:!0,sensitive:!1};function Ns(e,t,n){let r=X(Os(ws(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ps(e,t){let n=[],r=new Map;t=ao(Ms,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Is(e);s.aliasOf=r&&r.record;let l=ao(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Is(X({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Ns(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Rs(d)&&o(e.name)),Hs(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:ro}function o(e){if($o(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Bs(e,n);n.splice(t,0,e),e.record.name&&!Rs(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw ts(Z.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=X(Fs(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Fs(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw ts(Z.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=X({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:zs(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Fs(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Is(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ls(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,`mods`,{value:{}}),t}function Ls(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Rs(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function zs(e){return e.reduce((e,t)=>X(e,t.meta),{})}function Bs(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;As(e,t[i])<0?r=i:n=i+1}let i=Vs(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Vs(e){let t=e;for(;t=t.parent;)if(Hs(t)&&As(e,t)===0)return t}function Hs({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Us(e){let t=r(cs),n=r(ls),i=b(()=>{let n=s(e.to);return t.resolve(n)}),a=b(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(Po.bind(null,r));if(o>-1)return o;let s=Js(e[t-2]);return t>1&&Js(r)===s&&a[a.length-1].path!==s?a.findIndex(Po.bind(null,e[t-2])):o}),o=b(()=>a.value>-1&&qs(n.params,i.value.params)),c=b(()=>a.value>-1&&a.value===n.matched.length-1&&Fo(n.params,i.value.params));function l(n={}){if(Ks(n)){let n=t[s(e.replace)?`replace`:`push`](s(e.to)).catch(ro);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:b(()=>i.value.href),isActive:o,isExactActive:c,navigate:l}}function Ws(e){return e.length===1?e[0]:e}var Gs=n({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Us,setup(e,{slots:t}){let n=o(Us(e)),{options:i}=r(cs),a=b(()=>({[Ys(e.activeClass,i.linkActiveClass,`router-link-active`)]:n.isActive,[Ys(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ws(t.default(n));return e.custom?r:m(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},r)}}});function Ks(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function qs(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!io(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Js(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Ys=(e,t,n)=>e??t??n,Xs=n({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let i=r(us),a=b(()=>e.route||i.value),o=r(ss,0),c=b(()=>{let e=s(o),{matched:t}=a.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),l=b(()=>a.value.matched[c.value]);f(ss,b(()=>c.value+1)),f(os,l),f(us,a);let u=h();return A(()=>[u.value,l.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Po(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=a.value,i=e.name,o=l.value,s=o&&o.components[i];if(!s)return Zs(n.default,{Component:s,route:r});let c=o.props[i],d=m(s,X({},c?c===!0?r.params:typeof c==`function`?c(r):c:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:u}));return Zs(n.default,{Component:d,route:r})||d}}});function Zs(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Qs=Xs;function $s(e){let t=Ps(e.routes,e),n=e.parseQuery||rs,r=e.stringifyQuery||is,i=e.history,o=ds(),c=ds(),l=ds(),u=a(zo),f=zo;$a&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let p=no.bind(null,e=>``+e),m=no.bind(null,Eo),h=no.bind(null,Do);function _(e,n){let r,i;return $o(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function v(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function y(){return t.getRoutes().map(e=>e.record)}function b(e){return!!t.getRecordMatcher(e)}function x(e,a){if(a=X({},a||u.value),typeof e==`string`){let r=Ao(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return X(r,o,{params:h(o.params),hash:Do(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=X({},e,{path:Ao(n,e.path,a.path).path});else{let t=X({},e.params);for(let e in t)t[e]??delete t[e];o=X({},e,{params:m(t)}),a.params=m(a.params)}let s=t.resolve(o,a),c=e.hash||``;s.params=p(h(s.params));let l=jo(r,X({},e,{hash:So(c),path:s.path})),d=i.createHref(l);return X({fullPath:l,hash:c,query:r===is?as(e.query):e.query||{}},s,{redirectedFrom:void 0,href:d})}function S(e){return typeof e==`string`?Ao(n,e,u.value.path):X({},e)}function C(e,t){if(f!==e)return ts(Z.NAVIGATION_CANCELLED,{from:t,to:e})}function w(e){return ne(e)}function ee(e){return w(X(S(e),{replace:!0}))}function te(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=S(i):{path:i},i.params={}),X({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function ne(e,t){let n=f=x(e),i=u.value,a=e.state,o=e.force,s=e.replace===!0,c=te(n,i);if(c)return ne(X(S(c),{state:typeof c==`object`?X({},a,c.state):a,force:o,replace:s}),t||n);let l=n;l.redirectedFrom=t;let d;return!o&&No(r,i,n)&&(d=ts(Z.NAVIGATION_DUPLICATED,{to:l,from:i}),oe(i,i,!0,!1)),(d?Promise.resolve(d):D(l,i)).catch(e=>ns(e)?ns(e,Z.NAVIGATION_GUARD_REDIRECT)?e:ae(e):N(e,l,i)).then(e=>{if(e){if(ns(e,Z.NAVIGATION_GUARD_REDIRECT))return ne(X({replace:s},S(e.to),{state:typeof e.to==`object`?X({},a,e.to.state):a,force:o}),t||l)}else e=re(l,i,!0,s,a);return O(l,i,e),e})}function T(e,t){let n=C(e,t);return n?Promise.reject(n):Promise.resolve()}function E(e){let t=ce.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function D(e,t){let n,[r,i,a]=ms(e,t);n=ps(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(fs(r,e,t))});let s=T.bind(null,e,t);return n.push(s),ue(n).then(()=>{n=[];for(let r of o.list())n.push(fs(r,e,t));return n.push(s),ue(n)}).then(()=>{n=ps(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(fs(r,e,t))});return n.push(s),ue(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(io(r.beforeEnter))for(let i of r.beforeEnter)n.push(fs(i,e,t));else n.push(fs(r.beforeEnter,e,t));return n.push(s),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=ps(a,`beforeRouteEnter`,e,t,E),n.push(s),ue(n))).then(()=>{n=[];for(let r of c.list())n.push(fs(r,e,t));return n.push(s),ue(n)}).catch(e=>ns(e,Z.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function O(e,t,n){l.list().forEach(r=>E(()=>r(e,t,n)))}function re(e,t,n,r,a){let o=C(e,t);if(o)return o;let s=t===zo,c=$a?history.state:{};n&&(r||s?i.replace(e.fullPath,X({scroll:s&&c&&c.scroll},a)):i.push(e.fullPath,a)),u.value=e,oe(e,t,n,s),ae()}let k;function A(){k||=i.listen((e,t,n)=>{if(!le.listening)return;let r=x(e),a=te(r,le.currentRoute.value);if(a){ne(X(a,{replace:!0,force:!0}),r).catch(ro);return}f=r;let o=u.value;$a&&Xo(Jo(o.fullPath,n.delta),Ko()),D(r,o).catch(e=>ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_CANCELLED)?e:ns(e,Z.NAVIGATION_GUARD_REDIRECT)?(ne(X(S(e.to),{force:!0}),r).then(e=>{ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bo.pop&&i.go(-1,!1)}).catch(ro),Promise.reject()):(n.delta&&i.go(-n.delta,!1),N(e,r,o))).then(e=>{e||=re(r,o,!1),e&&(n.delta&&!ns(e,Z.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bo.pop&&ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),O(r,o,e)}).catch(ro)})}let j=ds(),M=ds(),ie;function N(e,t,n){ae(e);let r=M.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function P(){return ie&&u.value!==zo?Promise.resolve():new Promise((e,t)=>{j.add([e,t])})}function ae(e){return ie||(ie=!e,A(),j.list().forEach(([t,n])=>e?n(e):t()),j.reset()),e}function oe(t,n,r,i){let{scrollBehavior:a}=e;if(!$a||!a)return Promise.resolve();let o=!r&&Zo(Jo(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return d().then(()=>a(t,n,o)).then(e=>e&&qo(e)).catch(e=>N(e,t,n))}let F=e=>i.go(e),se,ce=new Set,le={currentRoute:u,listening:!0,addRoute:_,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:y,resolve:x,options:e,push:w,replace:ee,go:F,back:()=>F(-1),forward:()=>F(1),beforeEach:o.add,beforeResolve:c.add,afterEach:l.add,onError:M.add,isReady:P,install(e){e.component(`RouterLink`,Gs),e.component(`RouterView`,Qs),e.config.globalProperties.$router=le,Object.defineProperty(e.config.globalProperties,`$route`,{enumerable:!0,get:()=>s(u)}),$a&&!se&&u.value===zo&&(se=!0,w(i.location).catch(e=>{}));let t={};for(let e in zo)Object.defineProperty(t,e,{get:()=>u.value[e],enumerable:!0});e.provide(cs,le),e.provide(ls,g(t)),e.provide(us,u);let n=e.unmount;ce.add(e),e.unmount=function(){ce.delete(e),ce.size<1&&(f=zo,k&&k(),k=null,u.value=zo,se=!1,ie=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>E(t)),Promise.resolve())}return le}function ec(){return r(cs)}function tc(e){return r(ls)}var nc=ne(`images`,()=>{let e=h([]),t=h(!1),n=h(null),r=h(0);async function i(r={}){r.silent||(t.value=!0),n.value=null;try{let t=await fetch(`/api/images`);if(!t.ok)throw Error(`Failed to load images`);e.value=await t.json()}catch(e){n.value=e instanceof Error?e.message:`Unknown error`}finally{t.value=!1}}async function a(t,n){let r=new FormData;r.append(`file`,t),n?.original&&r.append(`original`,n.original),n?.cropParams&&r.append(`cropParams`,JSON.stringify(n.cropParams)),n?.stickerState&&r.append(`stickerState`,JSON.stringify(n.stickerState)),n?.cropOrientation&&r.append(`cropOrientation`,n.cropOrientation);let i=await fetch(`/api/images`,{method:`POST`,body:r});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`Upload failed`)}let a=await i.json();return e.value.unshift(a),a}async function o(t,n,r){let i=new FormData;i.append(`file`,n),r?.cropParams&&i.append(`cropParams`,JSON.stringify(r.cropParams)),r?.stickerState&&i.append(`stickerState`,JSON.stringify(r.stickerState)),r?.cropOrientation&&i.append(`cropOrientation`,r.cropOrientation);let a=await fetch(`/api/images/${t}/reprocess`,{method:`POST`,body:i});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error??`Reprocess failed`)}let o=await a.json(),s=e.value.findIndex(e=>e.id===t);return s!==-1&&(e.value[s]=o),o}async function s(t){if(!(await fetch(`/api/images/${t}`,{method:`DELETE`})).ok)throw Error(`Delete failed`);e.value=e.value.filter(e=>e.id!==t)}async function c(t,n,r){let i=r?`POST`:`DELETE`,a=await fetch(`/api/images/${t}/approve/${n}`,{method:i});if(!a.ok)throw Error(`Failed to update approval`);let o=await a.json(),s=e.value.findIndex(e=>e.id===t);s!==-1&&(e.value[s]=o)}async function l(e,t=1,n=20){let r=new URLSearchParams({page:String(t),limit:String(n)});e&&r.set(`status`,e);let i=await fetch(`/api/shared-images?${r}`);if(!i.ok)throw Error(`Failed to load shared images`);return i.json()}async function u(){let e=await fetch(`/api/shared-images/pending-count`);e.ok&&(r.value=(await e.json()).count)}async function d(e,t){let n=await fetch(`/api/shared-images/${e}/approve`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({deviceIds:t})});if(!n.ok)throw Error(`Failed to approve`);return r.value>0&&r.value--,n.json()}async function f(e){let t=await fetch(`/api/shared-images/${e}/decline`,{method:`POST`});if(!t.ok)throw Error(`Failed to decline`);return r.value>0&&r.value--,t.json()}async function p(e,t){let n=await fetch(`/api/images/${e}/share`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({recipientEmail:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`Failed to share`)}}return{images:e,loading:t,error:n,pendingCount:r,fetchImages:i,uploadImage:a,reprocessImage:o,deleteImage:s,setApproval:c,fetchSharedImages:l,fetchPendingCount:u,approveShared:d,declineShared:f,shareImage:p}}),rc={class:`top-nav`,"aria-label":`Main navigation`},ic={class:`top-nav__tabs`},ac=[`innerHTML`],oc={class:`top-nav__label`},sc={key:0,class:`top-nav__badge`},cc=`/build/icons/apple-touch-icon.png`,lc=E(n({__name:`TopNav`,setup(e){let n=tc(),r=nc(),a=[{name:`home`,label:`Home`,to:`/`,icon:``,isActive:e=>e.path===`/`},{name:`library`,label:`Library`,to:`/library`,icon:``,isActive:e=>e.path.startsWith(`/library`)},{name:`settings`,label:`Settings`,to:`/settings`,icon:``,isActive:e=>e.path.startsWith(`/settings`)}];return(e,o)=>{let l=c(`RouterLink`);return u(),k(`header`,rc,[p(l,{to:`/`,class:`top-nav__brand`},{default:t(()=>[y(`span`,{class:`top-nav__mark`},[y(`img`,{src:cc,alt:``})]),o[0]||=y(`span`,{class:`top-nav__wordmark`},`WeVisto`,-1)]),_:1}),y(`nav`,ic,[(u(),k(ee,null,i(a,e=>p(l,{key:e.name,to:e.to,class:te([`top-nav__tab`,{"top-nav__tab--active":e.isActive(s(n))}]),"aria-current":e.isActive(s(n))?`page`:void 0},{default:t(()=>[y(`span`,{class:`top-nav__icon`,"aria-hidden":`true`,innerHTML:e.icon},null,8,ac),y(`span`,oc,_(e.label),1),e.name===`library`&&s(r).pendingCount>0?(u(),k(`span`,sc,_(s(r).pendingCount>9?`9+`:s(r).pendingCount),1)):D(``,!0)]),_:2},1032,[`to`,`class`,`aria-current`])),64))])])}}}),[[`__scopeId`,`data-v-80a94b6a`]]),uc={class:`bottom-nav`,"aria-label":`Main navigation`},dc={class:`bottom-nav__icon-wrap`,"aria-hidden":`true`},fc=[`innerHTML`],pc={key:0,class:`bottom-nav__badge`},mc={class:`bottom-nav__label`},hc=E(n({__name:`BottomNav`,setup(e){let n=tc(),r=nc(),a=[{name:`home`,label:`Home`,to:`/`,icon:``,isActive:e=>e.path===`/`},{name:`library`,label:`Library`,to:`/library`,icon:``,isActive:e=>e.path.startsWith(`/library`)},{name:`settings`,label:`Settings`,to:`/settings`,icon:``,isActive:e=>e.path.startsWith(`/settings`)}];return(e,o)=>{let l=c(`RouterLink`);return u(),k(`nav`,uc,[(u(),k(ee,null,i(a,e=>p(l,{key:e.name,to:e.to,class:te([`bottom-nav__tab`,{"bottom-nav__tab--active":e.isActive(s(n))}]),"aria-label":e.label,"aria-current":e.isActive(s(n))?`page`:void 0},{default:t(()=>[y(`span`,dc,[y(`span`,{class:`bottom-nav__icon`,innerHTML:e.icon},null,8,fc),e.name===`library`&&s(r).pendingCount>0?(u(),k(`span`,pc,_(s(r).pendingCount>9?`9+`:s(r).pendingCount),1)):D(``,!0)]),y(`span`,mc,_(e.label),1)]),_:2},1032,[`to`,`class`,`aria-label`,`aria-current`])),64))])}}}),[[`__scopeId`,`data-v-e670448a`]]),gc=0,_c=ne(`toast`,()=>{let e=h([]);function t(t,r=`info`){let i=++gc;e.value.push({id:i,message:t,type:r}),setTimeout(()=>n(i),2500)}function n(t){let n=e.value.findIndex(e=>e.id===t);n!==-1&&e.value.splice(n,1)}return{toasts:e,show:t,dismiss:n}}),vc={class:`toast-region`,"aria-live":`polite`,"aria-atomic":`false`},yc=[`onClick`],bc=E(n({__name:`BaseToast`,setup(e){let n=_c();return(e,r)=>(u(),k(`div`,vc,[p(w,{name:`toast`,tag:`ul`,class:`toast-list`},{default:t(()=>[(u(!0),k(ee,null,i(s(n).toasts,e=>(u(),k(`li`,{key:e.id,class:te([`toast`,`toast--${e.type}`]),role:`status`},[re(_(e.message)+` `,1),y(`button`,{class:`toast__close`,"aria-label":`Dismiss`,onClick:t=>s(n).dismiss(e.id)},` × `,8,yc)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-546af507`]]),xc=ne(`auth`,()=>{let e=h(window.__PF_USER__??null),t=b(()=>e.value!==null);function n(t){e.value=t}return{user:e,isAuthenticated:t,setUser:n}}),Sc=[{id:`warm-craft`,label:`Warm Craft`,primary:`#c97c3a`,bg:`#fdf6ee`,text:`#3a2e22`},{id:`playful-pop`,label:`Playful Pop`,primary:`#d63aab`,bg:`#fff0fb`,text:`#2d0a28`},{id:`sage-cream`,label:`Sage & Cream`,primary:`#4e7c3a`,bg:`#f6f8f3`,text:`#1e2b1a`},{id:`dusty-mauve`,label:`Dusty Mauve`,primary:`#8e4a84`,bg:`#f6f0f4`,text:`#2a1828`},{id:`ocean-dusk`,label:`Ocean Dusk`,primary:`#1a6ea8`,bg:`#eef3f8`,text:`#0e2030`},{id:`honey-slate`,label:`Honey & Slate`,primary:`#c49a20`,bg:`#f2f2ee`,text:`#1c1c18`}];function Cc(){let e=xc(),t=_c();function n(t){document.documentElement.dataset.theme=t,e.user&&(e.user.theme=t);let n=Sc.find(e=>e.id===t);if(n){let e=document.querySelector(`meta[name="theme-color"]`);e&&e.setAttribute(`content`,n.bg)}}async function r(e){n(e);try{if(!(await fetch(`/api/user/theme`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({theme:e})})).ok)throw Error(`Failed to save theme`)}catch{t.show(`Could not save theme — try again`,`error`)}}return{THEMES:Sc,applyTheme:n,saveTheme:r}}var wc=n({__name:`App`,setup(t){let n=tc(),r=xc(),{applyTheme:i}=Cc();return e(()=>{let e=document.documentElement.dataset.theme||r.user?.theme;e&&i(e)}),(e,t)=>{let r=c(`RouterView`);return u(),k(ee,null,[s(n).meta.hideNav?D(``,!0):(u(),v(lc,{key:0})),p(r),s(n).meta.hideNav?D(``,!0):(u(),v(hc,{key:1})),p(bc)],64)}}}),Tc=`modulepreload`,Ec=function(e){return`/build/`+e},Dc={},Oc=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Ec(t,n),t in Dc)return;Dc[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Tc,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},kc=$s({history:bs(),routes:[{path:`/`,name:`home`,component:()=>Oc(()=>import(`./HomeView-tHIYnQ9q.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),meta:{requiresAuth:!0}},{path:`/library`,name:`library`,component:()=>Oc(()=>import(`./LibraryView-Br9GLQmy.js`),__vite__mapDeps([8,1,2,3,9,10,4,5,11])),meta:{requiresAuth:!0}},{path:`/upload`,name:`upload`,component:()=>Oc(()=>import(`./UploadView-uIaSypRk.js`),__vite__mapDeps([12,1,2,3,9,10,6,13])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/settings`,name:`settings`,component:()=>Oc(()=>import(`./SettingsView-CnrppHZO.js`),__vite__mapDeps([14,1,15])),meta:{requiresAuth:!0}},{path:`/shared`,redirect:`/library?tab=shared`},{path:`/:pathMatch(.*)*`,redirect:`/`}]});kc.beforeEach(e=>{let t=xc();if(e.meta.requiresAuth&&!t.isAuthenticated)return window.location.href=`/login`,!1});var Ac=T(wc);Ac.use(C()),Ac.use(kc),Ac.use(Qa),Ac.mount(`#app`),`serviceWorker`in navigator&&window.addEventListener(`load`,()=>{navigator.serviceWorker.register(`/sw.js`).catch(()=>{})});export{nc as a,_c as i,Cc as n,tc as o,xc as r,ec as s,Sc as t}; \ No newline at end of file diff --git a/public/build/assets/index-CraJX9-T.css b/public/build/assets/index-CraJX9-T.css deleted file mode 100644 index a9101e6..0000000 --- a/public/build/assets/index-CraJX9-T.css +++ /dev/null @@ -1 +0,0 @@ -:root{--font-family:"Nunito Variable", "Nunito", sans-serif;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:28px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-full:9999px;--duration-fast:.15s;--duration-base:.25s;--ease-out:cubic-bezier(0, 0, .2, 1);--touch-min:44px;--bottom-nav-height:calc(64px + env(safe-area-inset-bottom))}[data-theme=warm-craft],:root{--color-bg:#fdf6ee;--color-surface:#fff9f2;--color-surface-2:#f5ead8;--color-border:#e8d9c4;--color-text:#3a2e22;--color-text-muted:#8a7060;--color-primary:#c97c3a;--color-primary-fg:#fff;--color-secondary:#e8d9c4;--color-secondary-fg:#3a2e22;--color-destructive:#c0392b;--color-destructive-fg:#fff;--color-focus-ring:#c97c3a}[data-theme=playful-pop]{--color-bg:#fff0fb;--color-surface:#fff8fe;--color-surface-2:#ffe4f7;--color-border:#f0c8ea;--color-text:#2d0a28;--color-text-muted:#7a4272;--color-primary:#d63aab;--color-primary-fg:#fff;--color-secondary:#ffe4f7;--color-secondary-fg:#2d0a28;--color-destructive:#e03030;--color-destructive-fg:#fff;--color-focus-ring:#d63aab}[data-theme=sage-cream]{--color-bg:#f6f8f3;--color-surface:#fafcf7;--color-surface-2:#e4ede0;--color-border:#ccd9c4;--color-text:#1e2b1a;--color-text-muted:#607050;--color-primary:#4e7c3a;--color-primary-fg:#fff;--color-secondary:#e4ede0;--color-secondary-fg:#1e2b1a;--color-destructive:#a83020;--color-destructive-fg:#fff;--color-focus-ring:#4e7c3a}[data-theme=dusty-mauve]{--color-bg:#f6f0f4;--color-surface:#fdf8fb;--color-surface-2:#ead8e8;--color-border:#d8c4d4;--color-text:#2a1828;--color-text-muted:#7a5874;--color-primary:#8e4a84;--color-primary-fg:#fff;--color-secondary:#ead8e8;--color-secondary-fg:#2a1828;--color-destructive:#b83030;--color-destructive-fg:#fff;--color-focus-ring:#8e4a84}[data-theme=ocean-dusk]{--color-bg:#eef3f8;--color-surface:#f4f8fc;--color-surface-2:#d4e4f0;--color-border:#b8d0e4;--color-text:#0e2030;--color-text-muted:#4a6880;--color-primary:#1a6ea8;--color-primary-fg:#fff;--color-secondary:#d4e4f0;--color-secondary-fg:#0e2030;--color-destructive:#b83020;--color-destructive-fg:#fff;--color-focus-ring:#1a6ea8}[data-theme=honey-slate]{--color-bg:#f2f2ee;--color-surface:#f8f8f4;--color-surface-2:#e4e0d4;--color-border:#d0cc bc;--color-text:#1c1c18;--color-text-muted:#6c6858;--color-primary:#c49a20;--color-primary-fg:#1c1c18;--color-secondary:#e4e0d4;--color-secondary-fg:#1c1c18;--color-destructive:#b03020;--color-destructive-fg:#fff;--color-focus-ring:#c49a20}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}body{min-height:100dvh}#app{min-height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.top-nav[data-v-80a94b6a]{z-index:30;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding-top:env(safe-area-inset-top);display:none;position:sticky;top:0}@media (width>=960px){.top-nav[data-v-80a94b6a]{padding-left:var(--space-6);padding-right:var(--space-6);align-items:center;gap:var(--space-6);height:60px;display:flex}}.top-nav__brand[data-v-80a94b6a]{align-items:center;gap:var(--space-3);color:var(--color-text);text-decoration:none;display:flex}.top-nav__mark[data-v-80a94b6a]{background:var(--color-surface-2);border-radius:8px;flex-shrink:0;width:36px;height:36px;display:block;overflow:hidden}.top-nav__mark img[data-v-80a94b6a]{width:100%;height:100%;display:block}.top-nav__wordmark[data-v-80a94b6a]{font-size:var(--text-lg);letter-spacing:-.01em;color:var(--color-text);font-weight:800}.top-nav__tabs[data-v-80a94b6a]{gap:var(--space-1);margin-left:var(--space-4);flex:1;justify-content:flex-start;display:flex}.top-nav__tab[data-v-80a94b6a]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--text-base);border-radius:var(--radius-md);transition:color var(--duration-fast), background var(--duration-fast);font-weight:700;text-decoration:none;display:inline-flex;position:relative}.top-nav__tab[data-v-80a94b6a]:hover{background:var(--color-surface-2);color:var(--color-text)}.top-nav__tab--active[data-v-80a94b6a]{color:var(--color-primary);background:var(--color-surface-2)}.top-nav__icon[data-v-80a94b6a]{justify-content:center;align-items:center;display:flex}.top-nav__label[data-v-80a94b6a]{line-height:1}.top-nav__badge[data-v-80a94b6a]{background:var(--color-primary);min-width:16px;height:16px;color:var(--color-primary-fg);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:6px;right:4px}.bottom-nav[data-v-e670448a]{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=960px){.bottom-nav[data-v-e670448a]{display:none}}.bottom-nav__tab[data-v-e670448a]{height:64px;color:var(--color-text-muted);min-height:var(--touch-min);transition:color var(--duration-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.bottom-nav__tab--active[data-v-e670448a]{color:var(--color-primary)}.bottom-nav__icon-wrap[data-v-e670448a]{justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:relative}.bottom-nav__icon[data-v-e670448a]{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.bottom-nav__badge[data-v-e670448a]{background:var(--color-primary);min-width:16px;height:16px;color:var(--color-primary-fg);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-6px}.bottom-nav__label[data-v-e670448a]{font-size:var(--text-xs);font-weight:600}.toast-region[data-v-546af507]{bottom:calc(var(--bottom-nav-height,64px) + var(--space-4));z-index:200;width:min(100vw - var(--space-8), 420px);pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.toast-list[data-v-546af507]{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.toast[data-v-546af507]{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);pointer-events:auto;justify-content:space-between;align-items:center;font-weight:600;display:flex;box-shadow:0 4px 16px #0000001f}.toast--info[data-v-546af507]{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.toast--success[data-v-546af507]{color:#155724;background:#d4edda}.toast--error[data-v-546af507]{color:#721c24;background:#f8d7da}.toast__close[data-v-546af507]{cursor:pointer;font-size:var(--text-lg);padding:0 0 0 var(--space-3);color:inherit;min-height:var(--touch-min);min-width:var(--touch-min);background:0 0;border:none;justify-content:flex-end;align-items:center;line-height:1;display:flex}.toast-enter-active[data-v-546af507],.toast-leave-active[data-v-546af507]{transition:all var(--duration-base) var(--ease-out)}.toast-enter-from[data-v-546af507],.toast-leave-to[data-v-546af507]{opacity:0;transform:translateY(12px)} diff --git a/public/build/assets/index-_dOZGklt.css b/public/build/assets/index-_dOZGklt.css new file mode 100644 index 0000000..6284352 --- /dev/null +++ b/public/build/assets/index-_dOZGklt.css @@ -0,0 +1 @@ +:root{--font-family:"Nunito Variable", "Nunito", sans-serif;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:28px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-full:9999px;--duration-fast:.15s;--duration-base:.25s;--ease-out:cubic-bezier(0, 0, .2, 1);--touch-min:44px;--bottom-nav-height:calc(64px + env(safe-area-inset-bottom))}[data-theme=warm-craft],:root{--color-bg:#fdf6ee;--color-surface:#fff9f2;--color-surface-2:#f5ead8;--color-border:#e8d9c4;--color-text:#3a2e22;--color-text-muted:#8a7060;--color-primary:#c97c3a;--color-primary-fg:#fff;--color-secondary:#e8d9c4;--color-secondary-fg:#3a2e22;--color-destructive:#c0392b;--color-destructive-fg:#fff;--color-focus-ring:#c97c3a}[data-theme=playful-pop]{--color-bg:#fff0fb;--color-surface:#fff8fe;--color-surface-2:#ffe4f7;--color-border:#f0c8ea;--color-text:#2d0a28;--color-text-muted:#7a4272;--color-primary:#d63aab;--color-primary-fg:#fff;--color-secondary:#ffe4f7;--color-secondary-fg:#2d0a28;--color-destructive:#e03030;--color-destructive-fg:#fff;--color-focus-ring:#d63aab}[data-theme=sage-cream]{--color-bg:#f6f8f3;--color-surface:#fafcf7;--color-surface-2:#e4ede0;--color-border:#ccd9c4;--color-text:#1e2b1a;--color-text-muted:#607050;--color-primary:#4e7c3a;--color-primary-fg:#fff;--color-secondary:#e4ede0;--color-secondary-fg:#1e2b1a;--color-destructive:#a83020;--color-destructive-fg:#fff;--color-focus-ring:#4e7c3a}[data-theme=dusty-mauve]{--color-bg:#f6f0f4;--color-surface:#fdf8fb;--color-surface-2:#ead8e8;--color-border:#d8c4d4;--color-text:#2a1828;--color-text-muted:#7a5874;--color-primary:#8e4a84;--color-primary-fg:#fff;--color-secondary:#ead8e8;--color-secondary-fg:#2a1828;--color-destructive:#b83030;--color-destructive-fg:#fff;--color-focus-ring:#8e4a84}[data-theme=ocean-dusk]{--color-bg:#eef3f8;--color-surface:#f4f8fc;--color-surface-2:#d4e4f0;--color-border:#b8d0e4;--color-text:#0e2030;--color-text-muted:#4a6880;--color-primary:#1a6ea8;--color-primary-fg:#fff;--color-secondary:#d4e4f0;--color-secondary-fg:#0e2030;--color-destructive:#b83020;--color-destructive-fg:#fff;--color-focus-ring:#1a6ea8}[data-theme=honey-slate]{--color-bg:#f2f2ee;--color-surface:#f8f8f4;--color-surface-2:#e4e0d4;--color-border:#d0cc bc;--color-text:#1c1c18;--color-text-muted:#6c6858;--color-primary:#c49a20;--color-primary-fg:#1c1c18;--color-secondary:#e4e0d4;--color-secondary-fg:#1c1c18;--color-destructive:#b03020;--color-destructive-fg:#fff;--color-focus-ring:#c49a20}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}body{min-height:100dvh}#app{min-height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}[data-design=v2]{--brand-yellow:#f0d000;--color-bg:#1a0d05;--color-surface:#3216088c;--color-surface-2:#50260e8c;--color-border:#e6b48233;--color-text:#faecd0;--color-text-muted:#c8a880;--color-primary:#e89048;--color-primary-fg:#1a0d05;--color-secondary:#50260e8c;--color-secondary-fg:#faecd0;--color-destructive:#e08070;--color-destructive-fg:#fff;--color-focus-ring:var(--brand-yellow)}[data-design=v2][data-theme=ocean-dusk]{--color-bg:#06121f;--color-surface:#0a1c308c;--color-surface-2:#122a468c;--color-border:#b4d2eb2e;--color-text:#f4eed8;--color-text-muted:#b0c4d8;--color-primary:#4e9fc8;--color-primary-fg:#06121f}[data-design=v2][data-theme=sage-cream]{--color-bg:#081208;--color-surface:#1226168c;--color-surface-2:#1c3c208c;--color-border:#b4dcb42e;--color-text:#ecf3e0;--color-text-muted:#a8c0a0;--color-primary:#88c068;--color-primary-fg:#081208}[data-design=v2][data-theme=playful-pop]{--color-bg:#1a060f;--color-surface:#300e248c;--color-surface-2:#4816368c;--color-border:#e6b4c833;--color-text:#f8e8ec;--color-text-muted:#d0a0b8;--color-primary:#d878a0;--color-primary-fg:#1a060f}[data-design=v2][data-theme=dusty-mauve]{--color-bg:#100618;--color-surface:#240e328c;--color-surface-2:#36164a8c;--color-border:#d2bee62e;--color-text:#f0e8f8;--color-text-muted:#c0b0d0;--color-primary:#b890d8;--color-primary-fg:#100618}[data-design=v2][data-theme=honey-slate]{--color-bg:#18120a;--color-surface:#2a200c8c;--color-surface-2:#3e32168c;--color-border:#e8c88238;--color-text:#faf0d8;--color-text-muted:#d0b888;--color-primary:#e8c050;--color-primary-fg:#18120a}[data-design=v2] body{position:relative}[data-design=v2] body:before{content:"";filter:brightness(.55)saturate(.9);z-index:-3;background:url(/build/assets/harbor.jpg) 50%/cover no-repeat;position:fixed;inset:0}[data-design=v2] body:after{content:"";background:var(--color-bg);opacity:.55;mix-blend-mode:multiply;z-index:-2;pointer-events:none;position:fixed;inset:0}[data-design=v2] .frame-card,[data-design=v2] .library__tile,[data-design=v2] .settings__section-card,[data-design=v2] .home-view__empty-card{-webkit-backdrop-filter:saturate(160%)blur(20px)}.top-nav[data-v-80a94b6a]{z-index:30;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding-top:env(safe-area-inset-top);display:none;position:sticky;top:0}@media (width>=960px){.top-nav[data-v-80a94b6a]{padding-left:var(--space-6);padding-right:var(--space-6);align-items:center;gap:var(--space-6);height:60px;display:flex}}.top-nav__brand[data-v-80a94b6a]{align-items:center;gap:var(--space-3);color:var(--color-text);text-decoration:none;display:flex}.top-nav__mark[data-v-80a94b6a]{background:var(--color-surface-2);border-radius:8px;flex-shrink:0;width:36px;height:36px;display:block;overflow:hidden}.top-nav__mark img[data-v-80a94b6a]{width:100%;height:100%;display:block}.top-nav__wordmark[data-v-80a94b6a]{font-size:var(--text-lg);letter-spacing:-.01em;color:var(--color-text);font-weight:800}.top-nav__tabs[data-v-80a94b6a]{gap:var(--space-1);margin-left:var(--space-4);flex:1;justify-content:flex-start;display:flex}.top-nav__tab[data-v-80a94b6a]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--text-base);border-radius:var(--radius-md);transition:color var(--duration-fast), background var(--duration-fast);font-weight:700;text-decoration:none;display:inline-flex;position:relative}.top-nav__tab[data-v-80a94b6a]:hover{background:var(--color-surface-2);color:var(--color-text)}.top-nav__tab--active[data-v-80a94b6a]{color:var(--color-primary);background:var(--color-surface-2)}.top-nav__icon[data-v-80a94b6a]{justify-content:center;align-items:center;display:flex}.top-nav__label[data-v-80a94b6a]{line-height:1}.top-nav__badge[data-v-80a94b6a]{background:var(--color-primary);min-width:16px;height:16px;color:var(--color-primary-fg);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:6px;right:4px}.bottom-nav[data-v-e670448a]{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=960px){.bottom-nav[data-v-e670448a]{display:none}}.bottom-nav__tab[data-v-e670448a]{height:64px;color:var(--color-text-muted);min-height:var(--touch-min);transition:color var(--duration-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.bottom-nav__tab--active[data-v-e670448a]{color:var(--color-primary)}.bottom-nav__icon-wrap[data-v-e670448a]{justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:relative}.bottom-nav__icon[data-v-e670448a]{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.bottom-nav__badge[data-v-e670448a]{background:var(--color-primary);min-width:16px;height:16px;color:var(--color-primary-fg);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-6px}.bottom-nav__label[data-v-e670448a]{font-size:var(--text-xs);font-weight:600}.toast-region[data-v-546af507]{bottom:calc(var(--bottom-nav-height,64px) + var(--space-4));z-index:200;width:min(100vw - var(--space-8), 420px);pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.toast-list[data-v-546af507]{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.toast[data-v-546af507]{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);pointer-events:auto;justify-content:space-between;align-items:center;font-weight:600;display:flex;box-shadow:0 4px 16px #0000001f}.toast--info[data-v-546af507]{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.toast--success[data-v-546af507]{color:#155724;background:#d4edda}.toast--error[data-v-546af507]{color:#721c24;background:#f8d7da}.toast__close[data-v-546af507]{cursor:pointer;font-size:var(--text-lg);padding:0 0 0 var(--space-3);color:inherit;min-height:var(--touch-min);min-width:var(--touch-min);background:0 0;border:none;justify-content:flex-end;align-items:center;line-height:1;display:flex}.toast-enter-active[data-v-546af507],.toast-leave-active[data-v-546af507]{transition:all var(--duration-base) var(--ease-out)}.toast-enter-from[data-v-546af507],.toast-leave-to[data-v-546af507]{opacity:0;transform:translateY(12px)} diff --git a/public/build/index.html b/public/build/index.html index 0a5ed32..56db4e2 100644 --- a/public/build/index.html +++ b/public/build/index.html @@ -16,9 +16,9 @@ - + - +
diff --git a/src/Controller/SpaController.php b/src/Controller/SpaController.php index e7104a7..78f2dd0 100644 --- a/src/Controller/SpaController.php +++ b/src/Controller/SpaController.php @@ -7,6 +7,7 @@ namespace App\Controller; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\Attribute\Autowire; +use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Attribute\IsGranted; @@ -36,21 +37,28 @@ class SpaController extends AbstractController } /** @var User $user */ - $user = $this->getUser(); - $theme = $user->getTheme() ?? 'warm-craft'; + $user = $this->getUser(); + $theme = $user->getTheme() ?? 'warm-craft'; + $designVersion = $user->getDesignVersion(); // 'v1' or 'v2'; defaults to 'v1' $userData = json_encode([ - 'id' => $user->getId(), - 'email' => $user->getEmail(), - 'roles' => $user->getRoles(), - 'theme' => $theme, - 'timezone' => $user->getTimezone(), + 'id' => $user->getId(), + 'email' => $user->getEmail(), + 'roles' => $user->getRoles(), + 'theme' => $theme, + 'designVersion' => $designVersion, + 'timezone' => $user->getTimezone(), ], JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT); $html = (string) file_get_contents($indexFile); - // Inject theme on so CSS applies before JS hydrates (no FOUC) - $html = str_replace('', '', $html); + // Inject theme + design version on so CSS applies before JS hydrates (no FOUC) + $html = str_replace( + '', + '', + $html, + ); // Bootstrap current user into window so Pinia auth store needs no initial API call. // Also expose the Mercure public URL so the live-updates composable can subscribe @@ -62,6 +70,15 @@ class SpaController extends AbstractController $html, ); - return new Response($html, headers: ['Content-Type' => 'text/html; charset=utf-8']); + $response = new Response($html, headers: ['Content-Type' => 'text/html; charset=utf-8']); + // Refresh the design cookie on every SPA load so Twig pages (login, + // setup, help) reflect the current server-side preference even after + // a login on a new browser. + $response->headers->setCookie(Cookie::create('wevisto_design', $designVersion) + ->withPath('/') + ->withExpires(new \DateTimeImmutable('+1 year')) + ->withHttpOnly(false) + ->withSameSite('Lax')); + return $response; } } diff --git a/src/Controller/UserApiController.php b/src/Controller/UserApiController.php index fcd861e..0272f86 100644 --- a/src/Controller/UserApiController.php +++ b/src/Controller/UserApiController.php @@ -7,6 +7,7 @@ namespace App\Controller; use App\Entity\User; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -27,6 +28,9 @@ class UserApiController extends AbstractController 'honey-slate', ]; + private const VALID_DESIGN_VERSIONS = ['v1', 'v2']; + public const DESIGN_COOKIE = 'wevisto_design'; + #[Route('/search', name: 'api_users_search', methods: ['GET'])] public function search(Request $request, EntityManagerInterface $em): JsonResponse { @@ -73,6 +77,32 @@ class UserApiController extends AbstractController return $this->json(['theme' => $theme]); } + #[Route('/design', name: 'api_user_design', methods: ['PATCH'])] + public function updateDesignVersion(Request $request, EntityManagerInterface $em): JsonResponse + { + $body = json_decode($request->getContent(), true); + $version = $body['designVersion'] ?? null; + + if (!is_string($version) || !in_array($version, self::VALID_DESIGN_VERSIONS, true)) { + return $this->json(['error' => 'Invalid designVersion'], Response::HTTP_UNPROCESSABLE_ENTITY); + } + + /** @var User $user */ + $user = $this->getUser(); + $user->setDesignVersion($version); + $em->flush(); + + $response = $this->json(['designVersion' => $version]); + // Cookie mirrors the server-side preference so Twig pages (login, + // setup, help) can do correct first-paint without re-querying the DB. + $response->headers->setCookie(Cookie::create(self::DESIGN_COOKIE, $version) + ->withPath('/') + ->withExpires(new \DateTimeImmutable('+1 year')) + ->withHttpOnly(false) // readable from JS so the SPA can swap design without reload + ->withSameSite('Lax')); + return $response; + } + #[Route('/password', name: 'api_user_password', methods: ['PATCH'])] public function updatePassword( Request $request, diff --git a/src/Entity/User.php b/src/Entity/User.php index ecb98db..ee8960c 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -36,6 +36,14 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface #[ORM\Column(length: 50, nullable: true)] private ?string $theme = null; + /** + * Design version preference: 'v1' (cream, the original) or 'v2' (dusks, + * the atmospheric redesign). Null means the user has never opted in, + * which the app treats as v1. Cookie-mirrored on login. + */ + #[ORM\Column(length: 10, nullable: true)] + private ?string $designVersion = null; + #[ORM\Column(length: 60, nullable: true)] private ?string $timezone = null; @@ -105,6 +113,18 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface return $this; } + /** Returns 'v1' or 'v2'; defaults to 'v1' when unset. */ + public function getDesignVersion(): string + { + return $this->designVersion ?? 'v1'; + } + + public function setDesignVersion(?string $version): static + { + $this->designVersion = $version; + return $this; + } + public function getTimezone(): string { return $this->timezone ?? 'UTC'; diff --git a/templates/base.html.twig b/templates/base.html.twig index 5475aaa..2ce9b9a 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -1,5 +1,5 @@ - + {% block title %}Welcome!{% endblock %} diff --git a/templates/help/index.html.twig b/templates/help/index.html.twig index 972e630..31fd04a 100644 --- a/templates/help/index.html.twig +++ b/templates/help/index.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/security/login.html.twig b/templates/security/login.html.twig index 79b8453..e436fae 100644 --- a/templates/security/login.html.twig +++ b/templates/security/login.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/security/register.html.twig b/templates/security/register.html.twig index f3d37ff..c7fcb1f 100644 --- a/templates/security/register.html.twig +++ b/templates/security/register.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/setup/configure.html.twig b/templates/setup/configure.html.twig index 2b5793e..fb2b32a 100644 --- a/templates/setup/configure.html.twig +++ b/templates/setup/configure.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/setup/index.html.twig b/templates/setup/index.html.twig index 691d965..0d0c369 100644 --- a/templates/setup/index.html.twig +++ b/templates/setup/index.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/token/approve.html.twig b/templates/token/approve.html.twig index b3c15d1..789c2e9 100644 --- a/templates/token/approve.html.twig +++ b/templates/token/approve.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/token/approved.html.twig b/templates/token/approved.html.twig index d188640..94f9316 100644 --- a/templates/token/approved.html.twig +++ b/templates/token/approved.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/token/decline.html.twig b/templates/token/decline.html.twig index f4ad650..ef55a8c 100644 --- a/templates/token/decline.html.twig +++ b/templates/token/decline.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/token/declined.html.twig b/templates/token/declined.html.twig index 967e357..808d014 100644 --- a/templates/token/declined.html.twig +++ b/templates/token/declined.html.twig @@ -1,5 +1,5 @@ - + diff --git a/templates/token/invalid.html.twig b/templates/token/invalid.html.twig index c1b3c90..cfee08d 100644 --- a/templates/token/invalid.html.twig +++ b/templates/token/invalid.html.twig @@ -1,5 +1,5 @@ - +