From 9420483ae62aaac1a5bc584ca989772e477c578a Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Thu, 30 Oct 2025 19:11:51 +0100 Subject: [PATCH] migrating vendor frontend to new architecture --- .../vendor/{ => admin}/dashboard.html | 0 app/templates/vendor/base.html | 10 + app/templates/vendor/partials/header.html | 10 + .../vendor/partials/notifications.html | 10 + app/templates/vendor/partials/sidebar.html | 10 + .../vendor/partials/vendor_info.html | 10 + ...=> FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md} | 0 ... FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt} | 0 .../FRONTEND/frontend-structure.txt | 37 +- .../FRONTEND_ARCHITECTURE_OVERVIEW.txt | 1225 ++++++++++++++ .../15.web-architecture-revamping.md | 0 .../16.jinja2_migration_progress-2.md | 0 .../16.jinja2_migration_progress-3.md | 0 .../16.jinja2_migration_progress.md | 0 .../FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md | 1310 +++++++++++++++ .../FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt | 828 ++++++++++ .../FRONTEND_SHOP_ALPINE_PAGE_TEMPLATE.md | 972 +++++++++++ .../FRONTEND_SHOP_ARCHITECTURE_OVERVIEW.txt | 808 +++++++++ .../FRONTEND_VENDOR_ALPINE_PAGE_TEMPLATE.md | 837 ++++++++++ .../FRONTEND_VENDOR_ARCHITECTURE_OVERVIEW.txt | 695 ++++++++ .../vendor/vendor_frontend_migration_plan.md | 1467 +++++++++++++++++ static/shared/css/base.css | 0 .../img/create-account-office-dark.jpeg | Bin .../img/create-account-office.jpeg | Bin .../shop/img/forgot-password-office-dark.jpeg | Bin 0 -> 58822 bytes static/shop/img/forgot-password-office.jpeg | Bin 0 -> 91979 bytes static/shop/img/login-office-dark.jpeg | Bin 0 -> 14198 bytes static/shop/img/login-office.jpeg | Bin 0 -> 37749 bytes static/vendor/css/tailwind.output.css | 1 + .../img/forgot-password-office-dark.jpeg | Bin 0 -> 58822 bytes static/vendor/img/forgot-password-office.jpeg | Bin 0 -> 91979 bytes static/vendor/img/login-office-dark.jpeg | Bin 0 -> 14198 bytes static/vendor/img/login-office.jpeg | Bin 0 -> 37749 bytes 33 files changed, 8194 insertions(+), 36 deletions(-) rename app/templates/vendor/{ => admin}/dashboard.html (100%) create mode 100644 app/templates/vendor/base.html create mode 100644 app/templates/vendor/partials/header.html create mode 100644 app/templates/vendor/partials/notifications.html create mode 100644 app/templates/vendor/partials/sidebar.html create mode 100644 app/templates/vendor/partials/vendor_info.html rename docs/__REVAMPING/FRONTEND/{FRONTEND_ALPINE_PAGE_TEMPLATE.md => FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md} (100%) rename docs/__REVAMPING/FRONTEND/{FRONTEND_ARCHITECTURE_OVERVIEW.txt => FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt} (100%) create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/FRONTEND_ARCHITECTURE_OVERVIEW.txt rename docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/{ => admin}/15.web-architecture-revamping.md (100%) rename docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/{ => admin}/16.jinja2_migration_progress-2.md (100%) rename docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/{ => admin}/16.jinja2_migration_progress-3.md (100%) rename docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/{ => admin}/16.jinja2_migration_progress.md (100%) create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ALPINE_PAGE_TEMPLATE.md create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ARCHITECTURE_OVERVIEW.txt create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/vendor/FRONTEND_VENDOR_ALPINE_PAGE_TEMPLATE.md create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/vendor/FRONTEND_VENDOR_ARCHITECTURE_OVERVIEW.txt create mode 100644 docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/vendor/vendor_frontend_migration_plan.md create mode 100644 static/shared/css/base.css rename static/{admin => shop}/img/create-account-office-dark.jpeg (100%) rename static/{admin => shop}/img/create-account-office.jpeg (100%) create mode 100644 static/shop/img/forgot-password-office-dark.jpeg create mode 100644 static/shop/img/forgot-password-office.jpeg create mode 100644 static/shop/img/login-office-dark.jpeg create mode 100644 static/shop/img/login-office.jpeg create mode 100644 static/vendor/css/tailwind.output.css create mode 100644 static/vendor/img/forgot-password-office-dark.jpeg create mode 100644 static/vendor/img/forgot-password-office.jpeg create mode 100644 static/vendor/img/login-office-dark.jpeg create mode 100644 static/vendor/img/login-office.jpeg diff --git a/app/templates/vendor/dashboard.html b/app/templates/vendor/admin/dashboard.html similarity index 100% rename from app/templates/vendor/dashboard.html rename to app/templates/vendor/admin/dashboard.html diff --git a/app/templates/vendor/base.html b/app/templates/vendor/base.html new file mode 100644 index 00000000..566549bd --- /dev/null +++ b/app/templates/vendor/base.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/app/templates/vendor/partials/header.html b/app/templates/vendor/partials/header.html new file mode 100644 index 00000000..566549bd --- /dev/null +++ b/app/templates/vendor/partials/header.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/app/templates/vendor/partials/notifications.html b/app/templates/vendor/partials/notifications.html new file mode 100644 index 00000000..566549bd --- /dev/null +++ b/app/templates/vendor/partials/notifications.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/app/templates/vendor/partials/sidebar.html b/app/templates/vendor/partials/sidebar.html new file mode 100644 index 00000000..566549bd --- /dev/null +++ b/app/templates/vendor/partials/sidebar.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/app/templates/vendor/partials/vendor_info.html b/app/templates/vendor/partials/vendor_info.html new file mode 100644 index 00000000..566549bd --- /dev/null +++ b/app/templates/vendor/partials/vendor_info.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/docs/__REVAMPING/FRONTEND/FRONTEND_ALPINE_PAGE_TEMPLATE.md b/docs/__REVAMPING/FRONTEND/FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md similarity index 100% rename from docs/__REVAMPING/FRONTEND/FRONTEND_ALPINE_PAGE_TEMPLATE.md rename to docs/__REVAMPING/FRONTEND/FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md diff --git a/docs/__REVAMPING/FRONTEND/FRONTEND_ARCHITECTURE_OVERVIEW.txt b/docs/__REVAMPING/FRONTEND/FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt similarity index 100% rename from docs/__REVAMPING/FRONTEND/FRONTEND_ARCHITECTURE_OVERVIEW.txt rename to docs/__REVAMPING/FRONTEND/FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt diff --git a/docs/__REVAMPING/FRONTEND/frontend-structure.txt b/docs/__REVAMPING/FRONTEND/frontend-structure.txt index c05a520a..2f592f9d 100644 --- a/docs/__REVAMPING/FRONTEND/frontend-structure.txt +++ b/docs/__REVAMPING/FRONTEND/frontend-structure.txt @@ -89,40 +89,5 @@ E:\FASTAPI-MULTITENANT-ECOMMERCE\STATIC | api-client.js | icons.js | utils.js -| -+---shop -| | cart.html -| | checkout.html -| | home.html -| | product.html -| | products.html -| | search.html -| | -| \---account -| addresses.html -| login.html -| orders.html -| profile.html -| register.html -| -\---vendor - | dashboard.html - | login.html - | - \---admin - | customers.html - | inventory.html - | media.html - | notifications.html - | orders.html - | payments.html - | products.html - | settings.html - | teams.html - | - \---marketplace - browse.html - config.html - imports.html - selected.html + diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/FRONTEND_ARCHITECTURE_OVERVIEW.txt b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/FRONTEND_ARCHITECTURE_OVERVIEW.txt new file mode 100644 index 00000000..3dd6a2a9 --- /dev/null +++ b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/FRONTEND_ARCHITECTURE_OVERVIEW.txt @@ -0,0 +1,1225 @@ +╔══════════════════════════════════════════════════════════════════╗ +║ LETZSHOP FRONTEND ARCHITECTURE ║ +║ Complete Multi-Tenant E-Commerce Platform ║ +║ Architecture Overview & Design Patterns ║ +╚══════════════════════════════════════════════════════════════════╝ + +📦 WHAT IS THIS DOCUMENT? +═════════════════════════════════════════════════════════════════ + +This document provides a comprehensive overview of the LetzShop frontend +architecture, covering all three distinct frontend applications and the +shared design patterns that ensure consistency, maintainability, and +developer productivity across the entire platform. + +This serves as the introduction to three detailed architecture documents: + 1. Admin Frontend Architecture + 2. Vendor Frontend Architecture + 3. Shop Frontend Architecture + + +🎯 PLATFORM OVERVIEW +═════════════════════════════════════════════════════════════════ + +LetzShop is a multi-tenant e-commerce marketplace platform with three +distinct frontend applications, each serving different user groups: + +┌─────────────────────────────────────────────────────────────────┐ +│ │ +│ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ +│ │ ADMIN │ │ VENDOR │ │ SHOP │ │ +│ │ FRONTEND │ │ FRONTEND │ │ FRONTEND │ │ +│ └──────────────┘ └──────────────┘ └────────────┘ │ +│ │ │ │ │ +│ ├────────────────────────┴─────────────────────┤ │ +│ │ │ │ +│ │ SHARED ARCHITECTURE │ │ +│ │ • Alpine.js │ │ +│ │ • Jinja2 Templates │ │ +│ │ • Tailwind CSS │ │ +│ │ • FastAPI Backend │ │ +│ │ • Design Patterns │ │ +│ │ │ │ +│ └──────────────────────────────────────────────┘ │ +│ │ +└─────────────────────────────────────────────────────────────────┘ + + +🏛️ THREE FRONTENDS EXPLAINED +═════════════════════════════════════════════════════════════════ + +┌─────────────────────────────────────────────────────────────────┐ +│ 1. ADMIN FRONTEND │ +├─────────────────────────────────────────────────────────────────┤ +│ Purpose: Platform administration and control │ +│ Users: Platform administrators │ +│ Access: /admin/* │ +│ Auth: Admin role required (is_admin=True) │ +│ │ +│ Key Features: │ +│ • Vendor management (create, verify, suspend) │ +│ • User management (roles, permissions) │ +│ • Platform-wide analytics and monitoring │ +│ • Theme customization for vendors │ +│ • Import job monitoring │ +│ • Audit log viewing │ +│ • System settings and configuration │ +│ │ +│ UI Theme: Windmill Dashboard (professional admin UI) │ +│ Colors: Purple (#7c3aed) primary │ +│ │ +│ Pages: │ +│ ├── /admin/dashboard │ +│ ├── /admin/vendors │ +│ ├── /admin/vendors/{code}/edit │ +│ ├── /admin/vendors/{code}/theme │ +│ ├── /admin/users │ +│ ├── /admin/products │ +│ ├── /admin/orders │ +│ ├── /admin/import-jobs │ +│ ├── /admin/audit-logs │ +│ └── /admin/settings │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 2. VENDOR FRONTEND │ +├─────────────────────────────────────────────────────────────────┤ +│ Purpose: Vendor shop management and operations │ +│ Users: Vendor owners and their team members │ +│ Access: /vendor/{vendor_code}/* │ +│ Auth: Vendor role required + vendor ownership │ +│ │ +│ Key Features: │ +│ • Product catalog management │ +│ • Inventory tracking │ +│ • Order management │ +│ • Customer management │ +│ • Marketplace imports (Amazon, eBay, etc.) │ +│ • Shop analytics and reports │ +│ • Team member management │ +│ • Shop settings │ +│ │ +│ UI Theme: Windmill Dashboard (professional admin UI) │ +│ Colors: Purple (#7c3aed) primary │ +│ │ +│ Pages: │ +│ ├── /vendor/{code}/dashboard │ +│ ├── /vendor/{code}/products │ +│ ├── /vendor/{code}/inventory │ +│ ├── /vendor/{code}/orders │ +│ ├── /vendor/{code}/customers │ +│ ├── /vendor/{code}/marketplace │ +│ ├── /vendor/{code}/analytics │ +│ ├── /vendor/{code}/team │ +│ └── /vendor/{code}/settings │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 3. SHOP FRONTEND │ +├─────────────────────────────────────────────────────────────────┤ +│ Purpose: Customer-facing e-commerce storefront │ +│ Users: Customers and visitors │ +│ Access: Vendor-specific domains or subdomains │ +│ Auth: Optional (guest checkout supported) │ +│ │ +│ Key Features: │ +│ • Product browsing and search │ +│ • Shopping cart management │ +│ • Checkout and payment │ +│ • Order tracking │ +│ • Customer account (optional) │ +│ • Wishlist (optional) │ +│ • Product reviews (optional) │ +│ • Multi-theme system (vendor branding) │ +│ │ +│ UI Theme: Custom per vendor (multi-theme system) │ +│ Colors: Vendor-specific via CSS variables │ +│ │ +│ Special Features: │ +│ • Vendor Context Middleware (domain → vendor detection) │ +│ • Theme Context Middleware (loads vendor theme) │ +│ • CSS Variables for dynamic theming │ +│ • Client-side cart (localStorage) │ +│ │ +│ Pages: │ +│ ├── / (homepage) │ +│ ├── /products (catalog) │ +│ ├── /products/{id} (product detail) │ +│ ├── /category/{slug} (category browse) │ +│ ├── /search (search results) │ +│ ├── /cart (shopping cart) │ +│ ├── /checkout (checkout flow) │ +│ ├── /account (customer account) │ +│ ├── /orders (order history) │ +│ ├── /about (about vendor) │ +│ └── /contact (contact form) │ +└─────────────────────────────────────────────────────────────────┘ + + +🏗️ SHARED TECHNOLOGY STACK +═════════════════════════════════════════════════════════════════ + +All three frontends share the same core technologies: + +┌─────────────────────────────────────────────────────────────────┐ +│ LAYER TECHNOLOGY PURPOSE │ +├─────────────────────────────────────────────────────────────────┤ +│ Backend FastAPI REST API + routing │ +│ Templates Jinja2 Server-side rendering │ +│ Interactivity Alpine.js 3.x Client-side reactivity│ +│ Styling Tailwind CSS 2.x Utility-first CSS │ +│ Icons Heroicons SVG icon system │ +│ HTTP Client Fetch API API requests │ +│ State Management Alpine.js reactive No external state lib │ +│ Logging Custom LogConfig Centralized logging │ +│ Error Handling Custom exceptions Structured errors │ +└─────────────────────────────────────────────────────────────────┘ + +Why This Stack? + +✅ Minimal JavaScript complexity (no React/Vue build process) +✅ Server-side rendering for SEO +✅ Progressive enhancement (works without JS) +✅ Fast development iteration +✅ Small bundle sizes +✅ Easy to learn and maintain +✅ Python developers can contribute to frontend + + +🎨 ARCHITECTURE PHILOSOPHY +═════════════════════════════════════════════════════════════════ + +1. API-First Design + ───────────────────────────────────────────────────────────── + • Routes only render templates (no business logic) + • ALL data loaded client-side via REST APIs + • Clear separation: pages.py (templates) vs other API files + • Enables future mobile apps or SPA migrations + +2. Progressive Enhancement + ───────────────────────────────────────────────────────────── + • HTML works without JavaScript (basic functionality) + • JavaScript enhances experience (filters, live updates) + • Graceful degradation for older browsers + • Accessible by default + +3. Component-Based Templates + ───────────────────────────────────────────────────────────── + • Base templates provide layout + • Pages extend base templates + • Partials for reusable components + • Block overrides for customization + +4. Centralized Design Patterns + ───────────────────────────────────────────────────────────── + • Shared utilities (logging, API client, utils) + • Consistent error handling across frontends + • Standardized state management patterns + • Common UI components and patterns + +5. Developer Experience + ───────────────────────────────────────────────────────────── + • Copy-paste templates for new pages + • Consistent patterns reduce cognitive load + • Comprehensive documentation + • Clear file organization + + +📁 FILE ORGANIZATION +═════════════════════════════════════════════════════════════════ + +The project follows a clear, frontend-specific organization: + +app/ +├── templates/ +│ ├── admin/ ← Admin frontend templates +│ │ ├── base.html +│ │ ├── dashboard.html +│ │ └── partials/ +│ ├── vendor/ ← Vendor frontend templates +│ │ ├── base.html +│ │ ├── dashboard.html +│ │ └── partials/ +│ └── shop/ ← Shop frontend templates +│ ├── base.html +│ ├── home.html +│ └── partials/ +│ +├── static/ +│ ├── admin/ ← Admin-specific assets +│ │ ├── css/ +│ │ ├── js/ +│ │ └── img/ +│ ├── vendor/ ← Vendor-specific assets +│ │ ├── css/ +│ │ ├── js/ +│ │ └── img/ +│ ├── shop/ ← Shop-specific assets +│ │ ├── css/ +│ │ ├── js/ +│ │ └── img/ +│ └── shared/ ← Shared across all frontends +│ ├── js/ +│ │ ├── log-config.js ← Centralized logging +│ │ ├── api-client.js ← HTTP client wrapper +│ │ ├── icons.js ← Icon registry +│ │ └── utils.js ← Utility functions +│ └── css/ +│ +├── api/v1/ +│ ├── admin/ ← Admin API endpoints +│ │ ├── pages.py ← Routes (templates only) +│ │ ├── vendors.py ← Business logic +│ │ ├── users.py +│ │ └── ... +│ ├── vendor/ ← Vendor API endpoints +│ │ ├── pages.py +│ │ ├── products.py +│ │ └── ... +│ └── shop/ ← Shop API endpoints +│ ├── pages.py +│ ├── products.py +│ └── ... +│ +└── exceptions/ ← Custom exception classes + ├── base.py ← Base exception classes + ├── admin.py ← Admin-specific exceptions + ├── shop.py ← Shop-specific exceptions + ├── product.py ← Product exceptions + └── handler.py ← Exception handler setup + + +🔄 REQUEST FLOW +═════════════════════════════════════════════════════════════════ + +Understanding the complete request flow: + +┌─────────────────────────────────────────────────────────────────┐ +│ PAGE LOAD FLOW │ +└─────────────────────────────────────────────────────────────────┘ + +1. Browser Request + ↓ +2. FastAPI Route Handler (pages.py) + • Verify authentication + • Extract route parameters + • Render Jinja2 template + ↓ +3. Template Rendering + • Extend base template + • Include partials + • Inject server-side data (user, vendor, theme) + ↓ +4. Browser Receives HTML + • Load CSS (Tailwind) + • Load JavaScript (Alpine.js, page scripts) + ↓ +5. Alpine.js Initialization + • x-data component initialized + • ...data() spreads base state + • init() method runs + • Initialization guard checked + ↓ +6. Client-Side Data Loading + • JavaScript calls REST API + • apiClient handles request + • JSON response received + ↓ +7. Reactive Updates + • Alpine.js updates reactive state + • DOM automatically updates + • Page fully interactive + +┌─────────────────────────────────────────────────────────────────┐ +│ USER INTERACTION FLOW │ +└─────────────────────────────────────────────────────────────────┘ + +1. User Action (click, input, etc.) + ↓ +2. Alpine.js Event Handler + • @click, @input, @change, etc. + • Calls component method + ↓ +3. Business Logic + • Validate input + • Update local state + • Call API if needed + ↓ +4. API Request (if needed) + • apiClient.post/put/delete + • Automatic error handling + • Logging + ↓ +5. Update State + • Modify reactive data + • Alpine.js watches changes + ↓ +6. DOM Updates + • Automatic reactive updates + • No manual DOM manipulation + ↓ +7. User Feedback + • Toast notification + • Loading indicator removed + • Success/error message + + +🎭 DESIGN PATTERNS +═════════════════════════════════════════════════════════════════ + +The platform uses consistent design patterns across all frontends: + + +╔═══════════════════════════════════════════════════════════════╗ +║ 1. BASE LAYOUT INHERITANCE PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Share common UI state across all pages +Location: static/{frontend}/js/init-alpine.js + +Pattern: +──────────────────────────────────────────────────────────────── +// init-alpine.js provides base state +function data() { + return { + // Theme + dark: localStorage.getItem('theme') === 'dark', + toggleTheme() { /* ... */ }, + + // Side menu + isSideMenuOpen: false, + toggleSideMenu() { /* ... */ }, + + // Profile menu + isProfileMenuOpen: false, + toggleProfileMenu() { /* ... */ }, + + // Page identifier + currentPage: '' + }; +} + +// Every page inherits this via spread operator +function adminDashboard() { + return { + ...data(), // ← Inherits ALL base functionality + currentPage: 'dashboard', // ← Override identifier + + // Page-specific state + stats: [], + loading: false + }; +} + +Benefits: + ✅ Dark mode works automatically on all pages + ✅ Menu states consistent across navigation + ✅ No duplicate code + ✅ Easy to add new base functionality + ✅ Sidebar highlighting works automatically + + +╔═══════════════════════════════════════════════════════════════╗ +║ 2. INITIALIZATION GUARD PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Prevent duplicate initialization and API calls +Problem: Alpine.js can sometimes initialize components twice + +Pattern: +──────────────────────────────────────────────────────────────── +async init() { + // Check if already initialized + if (window._dashboardInitialized) { + log.warn('Already initialized, skipping...'); + return; // Exit early + } + + // Set flag BEFORE async operations + window._dashboardInitialized = true; + + // Safe to proceed + await this.loadData(); +} + +Naming Convention: + • Dashboard: window._dashboardInitialized + • Vendors: window._vendorsInitialized + • Products: window._productsInitialized + +Benefits: + ✅ Prevents duplicate API calls + ✅ Prevents duplicate event listeners + ✅ Improves performance + ✅ Avoids state conflicts + ✅ Console warnings help debugging + + +╔═══════════════════════════════════════════════════════════════╗ +║ 3. CENTRALIZED LOGGING PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Consistent, configurable logging across all frontends +Location: static/shared/js/log-config.js + +Old Way (❌ BAD): +──────────────────────────────────────────────────────────────── +// Every file had 15+ lines of duplicate code +const DASHBOARD_LOG_LEVEL = 3; +const dashLog = { + error: (...args) => DASHBOARD_LOG_LEVEL >= 1 && + console.error('❌ [DASHBOARD ERROR]', ...args), + warn: (...args) => DASHBOARD_LOG_LEVEL >= 2 && + console.warn('⚠️ [DASHBOARD WARN]', ...args), + info: (...args) => DASHBOARD_LOG_LEVEL >= 3 && + console.info('ℹ️ [DASHBOARD INFO]', ...args), + debug: (...args) => DASHBOARD_LOG_LEVEL >= 4 && + console.log('🔍 [DASHBOARD DEBUG]', ...args) +}; + +New Way (✅ GOOD): +──────────────────────────────────────────────────────────────── +// Just ONE line per file! +const dashLog = window.LogConfig.loggers.dashboard; + +// Use it +dashLog.info('Dashboard loading...'); +dashLog.error('Failed to load', error); +dashLog.debug('Stats data:', statsData); + +Pre-configured Loggers: +──────────────────────────────────────────────────────────────── +Admin Frontend: + window.LogConfig.loggers.dashboard + window.LogConfig.loggers.vendors + window.LogConfig.loggers.vendorTheme + window.LogConfig.loggers.users + window.LogConfig.loggers.products + window.LogConfig.loggers.orders + window.LogConfig.loggers.imports + window.LogConfig.loggers.audit + +Vendor Frontend: + window.LogConfig.loggers.dashboard + window.LogConfig.loggers.products + window.LogConfig.loggers.inventory + window.LogConfig.loggers.orders + window.LogConfig.loggers.theme + window.LogConfig.loggers.settings + window.LogConfig.loggers.analytics + +Shop Frontend: + window.LogConfig.loggers.catalog + window.LogConfig.loggers.product + window.LogConfig.loggers.search + window.LogConfig.loggers.cart + window.LogConfig.loggers.checkout + window.LogConfig.loggers.account + +Advanced Features: +──────────────────────────────────────────────────────────────── +// Grouped logging +log.group('Loading Theme Data'); +log.info('Fetching vendor...'); +log.info('Fetching theme...'); +log.groupEnd(); + +// API call logging +window.LogConfig.logApiCall('GET', url, data, 'response'); + +// Performance logging +window.LogConfig.logPerformance('Load Stats', duration); + +// Error logging with context +window.LogConfig.logError(error, 'Save Theme'); + +// Table logging +log.table([ + { id: 1, name: 'Vendor A', status: 'active' }, + { id: 2, name: 'Vendor B', status: 'inactive' } +]); + +Environment-Aware: +──────────────────────────────────────────────────────────────── +• Development: Full logging (level 4) +• Production: Errors only (level 1) +• Automatically detects environment +• Can override with localStorage + +Benefits: + ✅ 1 line instead of 15+ lines per file + ✅ Consistent format across all frontends + ✅ Environment-aware (dev vs prod) + ✅ Frontend-aware (admin/vendor/shop) + ✅ Advanced features (groups, perf, API) + ✅ Easy to update globally + ✅ Reduces code duplication by 90% + + +╔═══════════════════════════════════════════════════════════════╗ +║ 4. API CLIENT PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Consistent API communication with automatic error handling +Location: static/shared/js/api-client.js + +CRITICAL: Always use lowercase 'apiClient' + +Usage: +──────────────────────────────────────────────────────────────── +// ✅ CORRECT +const data = await apiClient.get('/api/v1/admin/vendors'); + +await apiClient.post('/api/v1/admin/vendors', { + name: 'New Vendor', + code: 'NEWVENDOR' +}); + +await apiClient.put('/api/v1/admin/vendors/123', { + name: 'Updated Name' +}); + +await apiClient.delete('/api/v1/admin/vendors/123'); + +// ❌ WRONG - Capital letters +await ApiClient.get('/url'); +await API_CLIENT.get('/url'); + +Features: +──────────────────────────────────────────────────────────────── +✅ Automatic auth token injection (from localStorage) +✅ Automatic JSON parsing +✅ Automatic error handling +✅ Request/response logging integration +✅ Timeout handling +✅ Retry logic (optional) + +Error Handling: +──────────────────────────────────────────────────────────────── +try { + const data = await apiClient.get('/endpoint'); + // Success +} catch (error) { + // Error is already logged by apiClient + // Error is formatted with: + // - error.message (user-friendly) + // - error.details (technical details) + // - error.status_code (HTTP status) + + this.error = error.message; + Utils.showToast('Failed to load', 'error'); +} + +Benefits: + ✅ Consistent error handling + ✅ Automatic auth headers + ✅ Integrated logging + ✅ Reduced boilerplate + ✅ Easy to mock for testing + + +╔═══════════════════════════════════════════════════════════════╗ +║ 5. EXCEPTION HANDLING PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Structured, consistent error handling across backend +Location: app/exceptions/ + +Exception Hierarchy: +──────────────────────────────────────────────────────────────── +LetzShopException (base) +├── ValidationException (422) +├── AuthenticationException (401) +├── AuthorizationException (403) +├── ResourceNotFoundException (404) +├── ConflictException (409) +├── BusinessLogicException (400) +├── ExternalServiceException (502) +├── RateLimitException (429) +└── ServiceUnavailableException (503) + +Domain-Specific Exceptions: +──────────────────────────────────────────────────────────────── +app/exceptions/ +├── base.py ← Base exceptions +├── admin.py ← Admin operations +│ ├── UserNotFoundException +│ ├── UserStatusChangeException +│ ├── ShopVerificationException +│ ├── CannotModifyAdminException +│ └── InvalidAdminActionException +├── shop.py ← Shop operations +│ ├── ShopNotFoundException +│ ├── ShopNotActiveException +│ ├── UnauthorizedShopAccessException +│ └── MaxShopsReachedException +├── product.py ← Product operations +│ ├── ProductNotFoundException +│ ├── InvalidProductDataException +│ └── InvalidGTINException +├── stock.py ← Stock operations +│ ├── StockNotFoundException +│ ├── InsufficientStockException +│ └── NegativeStockException +└── marketplace.py ← Marketplace imports + ├── ImportJobNotFoundException + ├── InvalidImportDataException + └── MarketplaceConnectionException + +Exception Structure: +──────────────────────────────────────────────────────────────── +class ProductNotFoundException(ResourceNotFoundException): + def __init__(self, product_id: str): + super().__init__( + resource_type="Product", + identifier=product_id, + message=f"Product with ID '{product_id}' not found", + error_code="PRODUCT_NOT_FOUND", + ) + +# Automatic JSON response: +{ + "error_code": "PRODUCT_NOT_FOUND", + "message": "Product with ID '123' not found", + "status_code": 404, + "details": { + "resource_type": "Product", + "identifier": "123" + } +} + +Global Exception Handler: +──────────────────────────────────────────────────────────────── +Location: app/exceptions/handler.py + +Handles: + • LetzShopException → Custom JSON response + • HTTPException → Formatted JSON response + • RequestValidationError → Cleaned validation errors + • Exception → Generic 500 error + +Automatic Logging: + • All exceptions logged with context + • Structured logging data + • Exception type tracking + +Benefits: + ✅ Consistent error responses + ✅ Automatic logging + ✅ Client-friendly error messages + ✅ Technical details preserved + ✅ Type-safe error handling + ✅ Easy to test + + +╔═══════════════════════════════════════════════════════════════╗ +║ 6. UTILITY FUNCTIONS PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Shared utility functions across all frontends +Location: static/shared/js/utils.js + +Available Functions: +──────────────────────────────────────────────────────────────── +// Toast notifications +Utils.showToast(message, type, duration) +// Types: 'success', 'error', 'warning', 'info' + +// Date formatting +Utils.formatDate(dateString) +// Returns: "Jan 15, 2024" + +Utils.formatDateTime(dateString) +// Returns: "Jan 15, 2024 3:45 PM" + +Utils.formatRelativeTime(dateString) +// Returns: "2 hours ago", "3 days ago" + +// String utilities +Utils.truncate(text, length) +Utils.capitalize(text) +Utils.slugify(text) + +// Number formatting +Utils.formatCurrency(amount, currency) +Utils.formatNumber(number) +Utils.formatPercentage(value) + +// Validation +Utils.isValidEmail(email) +Utils.isValidUrl(url) + +// Debounce +Utils.debounce(func, wait) + +Usage Example: +──────────────────────────────────────────────────────────────── +// Show success toast +Utils.showToast('Saved successfully', 'success'); + +// Format date for display +const formattedDate = Utils.formatDate(item.created_at); + +// Format currency +const price = Utils.formatCurrency(29.99, 'USD'); + +// Debounce search +const debouncedSearch = Utils.debounce( + () => this.performSearch(), + 300 +); + +Benefits: + ✅ No code duplication + ✅ Consistent formatting + ✅ Easy to extend + ✅ Tested and reliable + + +╔═══════════════════════════════════════════════════════════════╗ +║ 7. ICON REGISTRY PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Centralized SVG icon management +Location: static/shared/js/icons.js + +Usage: +──────────────────────────────────────────────────────────────── + + + + + + + +Available Icons: +──────────────────────────────────────────────────────────────── +Navigation: + home, dashboard, settings, menu + +Users: + user, users, user-group, user-circle + +Commerce: + shopping-cart, shopping-bag, credit-card + +Content: + document, folder, archive, download, upload + +Actions: + plus, minus, x, check, trash, pencil, eye + +Arrows: + chevron-left, chevron-right, chevron-up, chevron-down + arrow-left, arrow-right + +Status: + exclamation, exclamation-circle, check-circle, x-circle + spinner (animated) + +Other: + search, filter, bell, star, heart, cube + +Benefits: + ✅ Consistent icon style (Heroicons) + ✅ Easy to use + ✅ Customizable size and color + ✅ No external dependencies + ✅ Reduced duplication + + +╔═══════════════════════════════════════════════════════════════╗ +║ 8. DARK MODE PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Consistent dark mode across all frontends +Implementation: Tailwind CSS dark mode + Alpine.js state + +Pattern: +──────────────────────────────────────────────────────────────── +// Base layout provides dark mode state +function data() { + return { + dark: localStorage.getItem('theme') === 'dark', + + toggleTheme() { + this.dark = !this.dark; + localStorage.setItem('theme', + this.dark ? 'dark' : 'light' + ); + } + }; +} + +// HTML class binding + + +// Tailwind dark mode classes +
+

Content

+
+ +// Toggle button + + +Shop Frontend Special Case: +──────────────────────────────────────────────────────────────── +• Vendor colors adapt to dark mode +• CSS variables for both modes +• Maintains brand identity in dark mode + +Benefits: + ✅ Automatic on all pages + ✅ Persisted preference + ✅ Smooth transitions + ✅ Vendor branding preserved (shop) + + +╔═══════════════════════════════════════════════════════════════╗ +║ 9. MULTI-THEME PATTERN (Shop Frontend Only) ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Vendor-specific branding for shop frontend +Location: Shop frontend only + +Components: +──────────────────────────────────────────────────────────────── +1. Database: vendor_themes table +2. Model: VendorTheme (colors, fonts, logos, layout) +3. Middleware: theme_context_middleware +4. Template: CSS variables injection +5. JavaScript: Theme-aware utilities + +Flow: +──────────────────────────────────────────────────────────────── +1. Request → customdomain1.com +2. Vendor Middleware → Identifies Vendor 1 +3. Theme Middleware → Loads Vendor 1's theme +4. Template → Injects CSS variables +5. Render → Vendor-branded shop + +CSS Variables: +──────────────────────────────────────────────────────────────── +:root { + --color-primary: #6366f1; /* Vendor's color */ + --color-secondary: #8b5cf6; + --color-accent: #ec4899; + --font-heading: Inter, sans-serif; + --font-body: Inter, sans-serif; +} + +Usage: +──────────────────────────────────────────────────────────────── + + +

+ Welcome +

+ +Benefits: + ✅ Each vendor has unique branding + ✅ No code changes per vendor + ✅ Database-driven configuration + ✅ Custom CSS support + ✅ Theme presets available + + +╔═══════════════════════════════════════════════════════════════╗ +║ 10. PAGINATION PATTERN ║ +╚═══════════════════════════════════════════════════════════════╝ + +Purpose: Consistent pagination across all list pages + +State: +──────────────────────────────────────────────────────────────── +pagination: { + currentPage: 1, + totalPages: 1, + perPage: 10, + total: 0, + from: 0, + to: 0 +} + +Methods: +──────────────────────────────────────────────────────────────── +async goToPage(page) { + if (page < 1 || page > this.pagination.totalPages) return; + this.pagination.currentPage = page; + await this.loadData(); +} + +async previousPage() { + await this.goToPage(this.pagination.currentPage - 1); +} + +async nextPage() { + await this.goToPage(this.pagination.currentPage + 1); +} + +get paginationRange() { + const current = this.pagination.currentPage; + const total = this.pagination.totalPages; + const range = []; + + let start = Math.max(1, current - 2); + let end = Math.min(total, start + 4); + + if (end - start < 4) { + start = Math.max(1, end - 4); + } + + for (let i = start; i <= end; i++) { + range.push(i); + } + + return range; +} + +Benefits: + ✅ Consistent UX + ✅ Smart page range calculation + ✅ Easy to implement + + +🔐 SECURITY PATTERNS +═════════════════════════════════════════════════════════════════ + +Authentication & Authorization: +──────────────────────────────────────────────────────────────── +1. JWT Tokens + • Stored in localStorage + • Automatically sent with API requests + • Expiration handling + +2. Role-Based Access + • Admin: Full platform access + • Vendor: Limited to own shop + • Customer: Public + account access + +3. Route Protection + • FastAPI dependencies verify auth + • Middleware for vendor context + • Automatic redirects to login + +Input Validation: +──────────────────────────────────────────────────────────────── +1. Client-Side (Alpine.js) + • Immediate feedback + • Better UX + • Reduces server load + +2. Server-Side (Pydantic) + • Security boundary + • Type validation + • Cannot be bypassed + +3. Both Required + • Client-side for UX + • Server-side for security + +XSS Prevention: +──────────────────────────────────────────────────────────────── +• Jinja2 auto-escapes by default +• Use | safe only when necessary +• Sanitize user content + +CSRF Protection: +──────────────────────────────────────────────────────────────── +• Token-based (if using forms) +• SameSite cookies +• API uses Bearer tokens (CSRF-safe) + + +📚 DETAILED ARCHITECTURE DOCUMENTS +═════════════════════════════════════════════════════════════════ + +This overview introduces the architecture. For complete details: + +┌─────────────────────────────────────────────────────────────────┐ +│ 1. FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt │ +├─────────────────────────────────────────────────────────────────┤ +│ Comprehensive guide to admin frontend: │ +│ • Complete file structure │ +│ • Layer-by-layer architecture │ +│ • All admin pages detailed │ +│ • Authentication and authorization │ +│ • Performance optimization │ +│ • Learning path for new developers │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 2. FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md │ +├─────────────────────────────────────────────────────────────────┤ +│ Complete templates for creating admin pages: │ +│ • Full Jinja2 template boilerplate │ +│ • Complete Alpine.js component structure │ +│ • 4 common page patterns │ +│ • Best practices with examples │ +│ • Testing checklist │ +│ • Quick start guide │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 3. FRONTEND_VENDOR_ARCHITECTURE_OVERVIEW.txt │ +├─────────────────────────────────────────────────────────────────┤ +│ Similar to admin but vendor-specific: │ +│ • Vendor context and scoping │ +│ • Shop management features │ +│ • Marketplace integration │ +│ • Team management │ +│ • Vendor-specific pages │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 4. FRONTEND_VENDOR_ALPINE_PAGE_TEMPLATE.md │ +├─────────────────────────────────────────────────────────────────┤ +│ Templates for vendor pages: │ +│ • Similar to admin templates │ +│ • Vendor context integration │ +│ • Scoped data patterns │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 5. FRONTEND_SHOP_ARCHITECTURE_OVERVIEW.txt │ +├─────────────────────────────────────────────────────────────────┤ +│ Customer-facing shop frontend: │ +│ • Multi-theme system │ +│ • Vendor branding │ +│ • Cart management │ +│ • Search and filters │ +│ • E-commerce patterns │ +│ • SEO optimization │ +└─────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────┐ +│ 6. FRONTEND_SHOP_ALPINE_PAGE_TEMPLATE.md │ +├─────────────────────────────────────────────────────────────────┤ +│ Templates for shop pages: │ +│ • Theme-aware components │ +│ • Cart integration patterns │ +│ • Product display patterns │ +│ • Checkout flow patterns │ +└─────────────────────────────────────────────────────────────────┘ + + +🎓 LEARNING PATH +═════════════════════════════════════════════════════════════════ + +For New Developers: + +Week 1: Foundation +────────────────────────────────────────────────────────────────── +Day 1-2: Read this overview document +Day 3-4: Study one detailed architecture doc (start with admin) +Day 5: Review shared design patterns + +Week 2: Hands-On +────────────────────────────────────────────────────────────────── +Day 1-2: Examine existing dashboard.js (best example) +Day 3-4: Copy template and create simple page +Day 5: Test and understand data flow + +Week 3: Patterns +────────────────────────────────────────────────────────────────── +Day 1: Practice base layout inheritance +Day 2: Implement initialization guards +Day 3: Use centralized logging +Day 4: Work with API client +Day 5: Handle errors properly + +Week 4: Advanced +────────────────────────────────────────────────────────────────── +Day 1-2: Create complex page with filters/pagination +Day 3: Implement modal forms +Day 4: Add dark mode support +Day 5: Review and refactor + +After 1 Month: +────────────────────────────────────────────────────────────────── +✅ Understand all three frontends +✅ Can create new pages independently +✅ Follow all design patterns +✅ Debug issues effectively +✅ Contribute to architecture improvements + + +✅ DEVELOPMENT CHECKLIST +═════════════════════════════════════════════════════════════════ + +Before Creating New Page: +──────────────────────────────────────────────────────────────── +□ Read relevant architecture document +□ Review page template guide +□ Study similar existing page +□ Identify which patterns to use + +While Developing: +──────────────────────────────────────────────────────────────── +□ Use ...data() for base inheritance +□ Add initialization guard +□ Set currentPage identifier +□ Use lowercase apiClient +□ Use centralized logger +□ Handle errors gracefully +□ Add loading states +□ Support dark mode + +Before Committing: +──────────────────────────────────────────────────────────────── +□ No console errors +□ Initialization guard works +□ Dark mode works +□ Mobile responsive +□ API errors handled +□ No duplicate API calls +□ Logging consistent +□ Code matches patterns + + +🚀 BENEFITS OF THIS ARCHITECTURE +═════════════════════════════════════════════════════════════════ + +For Developers: + ✅ Copy-paste templates reduce development time + ✅ Consistent patterns reduce cognitive load + ✅ Centralized utilities eliminate duplication + ✅ Clear documentation speeds onboarding + ✅ Shared patterns enable code reuse + +For The Platform: + ✅ Maintainable codebase + ✅ Consistent user experience + ✅ Easier debugging + ✅ Faster feature development + ✅ Scalable architecture + +For Users: + ✅ Consistent UI/UX + ✅ Fast page loads + ✅ Reliable functionality + ✅ Professional appearance + ✅ Works on all devices + + +══════════════════════════════════════════════════════════════════ + LETZSHOP FRONTEND ARCHITECTURE + Three Frontends, One Cohesive System, Endless Scale +══════════════════════════════════════════════════════════════════ + +Next Steps: + 1. Read the detailed architecture document for the frontend you're + working on (Admin, Vendor, or Shop) + 2. Study the page template guide for that frontend + 3. Review existing code examples (dashboard.js is the best) + 4. Copy templates and start building! + +Questions? Check the detailed architecture docs or review existing +implementations in the codebase. + +Happy Coding! 🚀 diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/15.web-architecture-revamping.md b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/15.web-architecture-revamping.md similarity index 100% rename from docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/15.web-architecture-revamping.md rename to docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/15.web-architecture-revamping.md diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/16.jinja2_migration_progress-2.md b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/16.jinja2_migration_progress-2.md similarity index 100% rename from docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/16.jinja2_migration_progress-2.md rename to docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/16.jinja2_migration_progress-2.md diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/16.jinja2_migration_progress-3.md b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/16.jinja2_migration_progress-3.md similarity index 100% rename from docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/16.jinja2_migration_progress-3.md rename to docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/16.jinja2_migration_progress-3.md diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/16.jinja2_migration_progress.md b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/16.jinja2_migration_progress.md similarity index 100% rename from docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/16.jinja2_migration_progress.md rename to docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/16.jinja2_migration_progress.md diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md new file mode 100644 index 00000000..1c43c413 --- /dev/null +++ b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md @@ -0,0 +1,1310 @@ +# Admin Frontend - Alpine.js/Jinja2 Page Template Guide + +## 📋 Overview + +This guide provides complete templates for creating new admin pages using the established Alpine.js + Jinja2 architecture. Follow these patterns to ensure consistency, proper initialization, and optimal performance across the admin portal. + +--- + +## 🎯 Quick Reference + +### File Structure for New Page +``` +app/ +├── templates/admin/ +│ └── [page-name].html # Jinja2 template +├── static/admin/js/ +│ └── [page-name].js # Alpine.js component +└── api/v1/admin/ + └── pages.py # Route registration +``` + +### Checklist for New Page +- [ ] Create Jinja2 template extending admin/base.html +- [ ] Create Alpine.js JavaScript component +- [ ] Use centralized logger (one line!) +- [ ] Add ...data() for base inheritance +- [ ] Set currentPage identifier +- [ ] Add initialization guard +- [ ] Use lowercase apiClient +- [ ] Register route in pages.py +- [ ] Add sidebar navigation link +- [ ] Test authentication +- [ ] Test dark mode +- [ ] Verify no duplicate initialization + +--- + +## 📄 Template Structure + +### 1. Jinja2 Template + +**File:** `app/templates/admin/[page-name].html` + +```jinja2 +{# app/templates/admin/[page-name].html #} +{% extends "admin/base.html" %} + +{# Page title for browser tab #} +{% block title %}[Page Name]{% endblock %} + +{# ✅ CRITICAL: Alpine.js component name #} +{% block alpine_data %}admin[PageName](){% endblock %} + +{# Page content #} +{% block content %} + + + +
+

+ [Page Name] +

+ + +
+ + + +
+
+ + + + +
+ +

Loading data...

+
+ + + + +
+ +
+

Error

+

+
+
+ + + + +
+
+ +
+ +
+ + +
+ +
+ + +
+ +
+
+
+ + + + +
+
+ + + + + + + + + + + + + + + + +
NameStatusDateActions
+
+ + +
+ + Showing + + - + + of + + + + + + + +
+
+ + + + +
+ +
+ + +
+

+ +
+ + +
+
+ + + + + + + + + + + +
+ + +
+
+
+
+
+ +{% endblock %} + +{# Page-specific JavaScript #} +{% block extra_scripts %} + +{% endblock %} +``` + +--- + +### 2. Alpine.js Component + +**File:** `app/static/admin/js/[page-name].js` + +```javascript +// static/admin/js/[page-name].js +/** + * [Page Name] Component + * Handles [describe functionality] + */ + +// ✅ CRITICAL: Use centralized logger (ONE LINE!) +const pageLog = window.LogConfig.loggers.[pageName]; +// OR create custom logger if not pre-configured: +// const pageLog = window.LogConfig.createLogger('[PAGE-NAME]', window.LogConfig.logLevel); + +/** + * Main Alpine.js component for [page name] + */ +function admin[PageName]() { + return { + // ───────────────────────────────────────────────────── + // ✅ CRITICAL: INHERIT BASE LAYOUT + // ───────────────────────────────────────────────────── + ...data(), + + // ✅ CRITICAL: SET PAGE IDENTIFIER + currentPage: '[page-name]', + + // ───────────────────────────────────────────────────── + // STATE + // ───────────────────────────────────────────────────── + + // Loading states + loading: false, + saving: false, + + // Error handling + error: null, + errors: {}, + + // Data + items: [], + currentItem: null, + + // Pagination + pagination: { + currentPage: 1, + totalPages: 1, + perPage: 10, + total: 0, + from: 0, + to: 0 + }, + + // Filters + filters: { + search: '', + status: '', + sortBy: 'created_at:desc' + }, + + // Modal + showModal: false, + modalMode: 'create', // 'create' or 'edit' + formData: { + name: '', + description: '', + is_active: true + }, + + // ───────────────────────────────────────────────────── + // LIFECYCLE + // ───────────────────────────────────────────────────── + + /** + * ✅ CRITICAL: Initialize component with guard + */ + async init() { + pageLog.info('=== [PAGE NAME] INITIALIZING ==='); + + // ✅ CRITICAL: Initialization guard + if (window._[pageName]Initialized) { + pageLog.warn('Already initialized, skipping...'); + return; + } + window._[pageName]Initialized = true; + + // Track performance + const startTime = performance.now(); + + try { + // Load initial data + await this.loadData(); + + // Log performance + const duration = performance.now() - startTime; + window.LogConfig.logPerformance('[Page Name] Init', duration); + + pageLog.info('=== [PAGE NAME] INITIALIZATION COMPLETE ==='); + + } catch (error) { + window.LogConfig.logError(error, '[Page Name] Init'); + this.error = 'Failed to initialize page'; + } + }, + + // ───────────────────────────────────────────────────── + // DATA LOADING + // ───────────────────────────────────────────────────── + + /** + * Load main data from API + */ + async loadData() { + pageLog.info('Loading data...'); + this.loading = true; + this.error = null; + + try { + const startTime = performance.now(); + + // Build query params + const params = new URLSearchParams({ + page: this.pagination.currentPage, + per_page: this.pagination.perPage, + search: this.filters.search, + status: this.filters.status, + sort_by: this.filters.sortBy + }); + + const url = `/api/v1/admin/items?${params}`; + + // Log API request + window.LogConfig.logApiCall('GET', url, null, 'request'); + + // ✅ CRITICAL: Use lowercase apiClient + const response = await apiClient.get(url); + + // Log API response + window.LogConfig.logApiCall('GET', url, response, 'response'); + + // Update state + this.items = response.items || []; + this.pagination.total = response.total || 0; + this.pagination.totalPages = Math.ceil( + this.pagination.total / this.pagination.perPage + ); + this.pagination.from = (this.pagination.currentPage - 1) * this.pagination.perPage + 1; + this.pagination.to = Math.min( + this.pagination.currentPage * this.pagination.perPage, + this.pagination.total + ); + + // Log performance + const duration = performance.now() - startTime; + window.LogConfig.logPerformance('Load Data', duration); + + pageLog.info(`Data loaded successfully`, { + count: this.items.length, + duration: `${duration}ms`, + page: this.pagination.currentPage + }); + + } catch (error) { + window.LogConfig.logError(error, 'Load Data'); + this.error = error.message || 'Failed to load data'; + Utils.showToast('Failed to load data', 'error'); + } finally { + this.loading = false; + } + }, + + /** + * Refresh data + */ + async refresh() { + pageLog.info('Refreshing data...'); + this.error = null; + await this.loadData(); + Utils.showToast('Data refreshed', 'success'); + }, + + // ───────────────────────────────────────────────────── + // FILTERS & SEARCH + // ───────────────────────────────────────────────────── + + /** + * Apply filters and reload data + */ + async applyFilters() { + pageLog.debug('Applying filters:', this.filters); + this.pagination.currentPage = 1; // Reset to first page + await this.loadData(); + }, + + /** + * Reset filters to default + */ + async resetFilters() { + this.filters = { + search: '', + status: '', + sortBy: 'created_at:desc' + }; + await this.applyFilters(); + }, + + // ───────────────────────────────────────────────────── + // PAGINATION + // ───────────────────────────────────────────────────── + + /** + * Navigate to specific page + */ + async goToPage(page) { + if (page < 1 || page > this.pagination.totalPages) return; + this.pagination.currentPage = page; + await this.loadData(); + }, + + /** + * Go to previous page + */ + async previousPage() { + await this.goToPage(this.pagination.currentPage - 1); + }, + + /** + * Go to next page + */ + async nextPage() { + await this.goToPage(this.pagination.currentPage + 1); + }, + + /** + * Get pagination range for display + */ + get paginationRange() { + const current = this.pagination.currentPage; + const total = this.pagination.totalPages; + const range = []; + + // Show max 5 page numbers + let start = Math.max(1, current - 2); + let end = Math.min(total, start + 4); + + // Adjust start if we're near the end + if (end - start < 4) { + start = Math.max(1, end - 4); + } + + for (let i = start; i <= end; i++) { + range.push(i); + } + + return range; + }, + + // ───────────────────────────────────────────────────── + // CRUD OPERATIONS + // ───────────────────────────────────────────────────── + + /** + * Open create modal + */ + openCreateModal() { + pageLog.info('Opening create modal'); + this.modalMode = 'create'; + this.formData = { + name: '', + description: '', + is_active: true + }; + this.errors = {}; + this.showModal = true; + }, + + /** + * Open edit modal + */ + async editItem(itemId) { + pageLog.info('Opening edit modal for item:', itemId); + + try { + this.modalMode = 'edit'; + + // Load item details + const url = `/api/v1/admin/items/${itemId}`; + window.LogConfig.logApiCall('GET', url, null, 'request'); + + const item = await apiClient.get(url); + + window.LogConfig.logApiCall('GET', url, item, 'response'); + + // Populate form + this.formData = { ...item }; + this.currentItem = item; + this.errors = {}; + this.showModal = true; + + } catch (error) { + window.LogConfig.logError(error, 'Edit Item'); + Utils.showToast('Failed to load item', 'error'); + } + }, + + /** + * View item details + */ + async viewItem(itemId) { + pageLog.info('Viewing item:', itemId); + // Navigate to detail page or open view modal + window.location.href = `/admin/items/${itemId}`; + }, + + /** + * Save item (create or update) + */ + async saveItem() { + pageLog.info('Saving item...'); + + // Validate form + if (!this.validateForm()) { + pageLog.warn('Form validation failed'); + return; + } + + this.saving = true; + this.errors = {}; + + try { + let response; + + if (this.modalMode === 'create') { + // Create new item + const url = '/api/v1/admin/items'; + window.LogConfig.logApiCall('POST', url, this.formData, 'request'); + + response = await apiClient.post(url, this.formData); + + window.LogConfig.logApiCall('POST', url, response, 'response'); + + pageLog.info('Item created successfully'); + Utils.showToast('Item created successfully', 'success'); + + } else { + // Update existing item + const url = `/api/v1/admin/items/${this.currentItem.id}`; + window.LogConfig.logApiCall('PUT', url, this.formData, 'request'); + + response = await apiClient.put(url, this.formData); + + window.LogConfig.logApiCall('PUT', url, response, 'response'); + + pageLog.info('Item updated successfully'); + Utils.showToast('Item updated successfully', 'success'); + } + + // Close modal and reload data + this.closeModal(); + await this.loadData(); + + } catch (error) { + window.LogConfig.logError(error, 'Save Item'); + + // Handle validation errors + if (error.details && error.details.validation_errors) { + this.errors = error.details.validation_errors; + } else { + Utils.showToast('Failed to save item', 'error'); + } + } finally { + this.saving = false; + } + }, + + /** + * Delete item + */ + async deleteItem(itemId) { + pageLog.info('Deleting item:', itemId); + + // Confirm deletion + if (!confirm('Are you sure you want to delete this item?')) { + return; + } + + try { + const url = `/api/v1/admin/items/${itemId}`; + window.LogConfig.logApiCall('DELETE', url, null, 'request'); + + await apiClient.delete(url); + + window.LogConfig.logApiCall('DELETE', url, null, 'response'); + + pageLog.info('Item deleted successfully'); + Utils.showToast('Item deleted successfully', 'success'); + + // Reload data + await this.loadData(); + + } catch (error) { + window.LogConfig.logError(error, 'Delete Item'); + Utils.showToast('Failed to delete item', 'error'); + } + }, + + /** + * Close modal + */ + closeModal() { + this.showModal = false; + this.formData = {}; + this.errors = {}; + this.currentItem = null; + }, + + // ───────────────────────────────────────────────────── + // VALIDATION + // ───────────────────────────────────────────────────── + + /** + * Validate form data + */ + validateForm() { + this.errors = {}; + + if (!this.formData.name || this.formData.name.trim() === '') { + this.errors.name = 'Name is required'; + } + + // Add more validation rules as needed + + return Object.keys(this.errors).length === 0; + }, + + // ───────────────────────────────────────────────────── + // HELPERS + // ───────────────────────────────────────────────────── + + /** + * Format date for display + */ + formatDate(dateString) { + if (!dateString) return '-'; + return Utils.formatDate(dateString); + }, + + /** + * Truncate text + */ + truncate(text, length = 50) { + if (!text) return ''; + if (text.length <= length) return text; + return text.substring(0, length) + '...'; + } + }; +} + +// Make available globally +window.admin[PageName] = admin[PageName]; + +pageLog.info('[Page Name] module loaded'); +``` + +--- + +### 3. Route Registration + +**File:** `app/api/v1/admin/pages.py` + +```python +from fastapi import APIRouter, Request, Depends +from app.core.auth import get_current_admin_user +from app.models.database.user import User + +router = APIRouter() + +@router.get("/admin/[page-route]") +async def [page_name]_page( + request: Request, + current_user: User = Depends(get_current_admin_user) +): + """ + [Page Name] page + Displays [description] + + Requires admin authentication. + """ + return templates.TemplateResponse( + "admin/[page-name].html", + { + "request": request, + "user": current_user, + } + ) +``` + +--- + +### 4. Sidebar Navigation + +**File:** `app/templates/admin/partials/sidebar.html` + +```jinja2 +
  • + + + + [Page Display Name] + +
  • +``` + +--- + +## 🎨 Common Page Patterns + +### Pattern 1: Simple Data List (GET) + +**Use for:** Vendor list, user list, product list + +```javascript +async init() { + if (window._myPageInitialized) return; + window._myPageInitialized = true; + await this.loadData(); +} + +async loadData() { + this.loading = true; + try { + const response = await apiClient.get('/api/v1/admin/items'); + this.items = response.items || []; + } finally { + this.loading = false; + } +} +``` + +--- + +### Pattern 2: Dashboard with Stats + +**Use for:** Dashboard, analytics pages + +```javascript +async init() { + if (window._dashboardInitialized) return; + window._dashboardInitialized = true; + + await Promise.all([ + this.loadStats(), + this.loadRecentActivity() + ]); +} + +async loadStats() { + this.stats = await apiClient.get('/api/v1/admin/stats'); +} + +async loadRecentActivity() { + this.activity = await apiClient.get('/api/v1/admin/recent-activity'); +} +``` + +--- + +### Pattern 3: Single Item Detail/Edit + +**Use for:** Vendor edit, user edit + +```javascript +async init() { + if (window._editPageInitialized) return; + window._editPageInitialized = true; + + const itemId = this.getItemIdFromUrl(); + await this.loadItem(itemId); +} + +async loadItem(id) { + this.item = await apiClient.get(`/api/v1/admin/items/${id}`); + // Populate form with item data + this.formData = { ...this.item }; +} + +async saveItem() { + if (!this.validateForm()) return; + + await apiClient.put( + `/api/v1/admin/items/${this.item.id}`, + this.formData + ); + + Utils.showToast('Saved successfully', 'success'); +} +``` + +--- + +### Pattern 4: With Filters and Pagination + +**Use for:** Large lists with filtering + +```javascript +filters: { + search: '', + status: '', + sortBy: 'created_at:desc' +}, + +pagination: { + currentPage: 1, + totalPages: 1, + perPage: 10 +}, + +async loadData() { + const params = new URLSearchParams({ + page: this.pagination.currentPage, + per_page: this.pagination.perPage, + ...this.filters + }); + + const response = await apiClient.get( + `/api/v1/admin/items?${params}` + ); + + this.items = response.items; + this.pagination.total = response.total; + this.pagination.totalPages = Math.ceil( + response.total / this.pagination.perPage + ); +} + +async applyFilters() { + this.pagination.currentPage = 1; // Reset to page 1 + await this.loadData(); +} +``` + +--- + +## 🔧 Best Practices + +### 1. Base Layout Inheritance + +**✅ ALWAYS include ...data():** +```javascript +function adminMyPage() { + return { + ...data(), // ← Must be first! + currentPage: 'my-page', + // Your state here + }; +} +``` + +### 2. Initialization Guards + +**✅ ALWAYS use initialization guard:** +```javascript +async init() { + if (window._myPageInitialized) { + log.warn('Already initialized'); + return; + } + window._myPageInitialized = true; + + await this.loadData(); +} +``` + +### 3. API Client Usage + +**✅ Use lowercase apiClient:** +```javascript +// ✅ CORRECT +await apiClient.get('/endpoint'); + +// ❌ WRONG +await ApiClient.get('/endpoint'); +await API_CLIENT.get('/endpoint'); +``` + +### 4. Centralized Logging + +**✅ Use pre-configured logger:** +```javascript +// ✅ CORRECT - One line! +const myLog = window.LogConfig.loggers.myPage; + +// ❌ WRONG - 15+ lines +const myLog = { + error: (...args) => console.error(...), + // ... etc +}; +``` + +### 5. Error Handling + +**✅ Handle errors gracefully:** +```javascript +try { + await this.loadData(); +} catch (error) { + window.LogConfig.logError(error, 'Load Data'); + this.error = error.message; + Utils.showToast('Failed to load data', 'error'); + // Don't throw - let UI handle it +} +``` + +### 6. Loading States + +**✅ Always set loading state:** +```javascript +this.loading = true; +try { + // ... operations +} finally { + this.loading = false; // Always executes +} +``` + +### 7. Performance Tracking + +**✅ Track performance for slow operations:** +```javascript +const startTime = performance.now(); +await this.loadData(); +const duration = performance.now() - startTime; +window.LogConfig.logPerformance('Load Data', duration); +``` + +--- + +## 📱 Responsive Design Checklist + +- [ ] Table scrolls horizontally on mobile +- [ ] Modal is scrollable on small screens +- [ ] Filters stack vertically on mobile +- [ ] Action buttons adapt to screen size +- [ ] Text truncates appropriately +- [ ] Icons remain visible +- [ ] Sidebar collapses on mobile +- [ ] Stats cards stack on mobile + +--- + +## ✅ Testing Checklist + +### Functionality +- [ ] Page loads without errors +- [ ] Data loads correctly +- [ ] Loading state displays +- [ ] Error state handles failures +- [ ] Empty state shows when no data +- [ ] Filters work correctly +- [ ] Pagination works +- [ ] Create operation works +- [ ] Edit operation works +- [ ] Delete operation works +- [ ] Modal opens/closes +- [ ] Form validation works + +### Architecture +- [ ] Initialization guard works (no duplicate init) +- [ ] ...data() properly inherited +- [ ] currentPage set correctly +- [ ] Lowercase apiClient used +- [ ] Centralized logging used +- [ ] No console errors +- [ ] Dark mode works +- [ ] Mobile responsive + +--- + +## 🚀 Quick Start Commands + +```bash +# Create new page files +touch app/templates/admin/new-page.html +touch app/static/admin/js/new-page.js + +# Copy templates (start from dashboard.js as base) +cp app/static/admin/js/dashboard.js app/static/admin/js/new-page.js + +# Update files: +# 1. Change logger: dashLog → newPageLog +# 2. Change function: adminDashboard() → adminNewPage() +# 3. Change init flag: _dashboardInitialized → _newPageInitialized +# 4. Change currentPage: 'dashboard' → 'new-page' +# 5. Replace data loading logic +# 6. Update HTML template +# 7. Add route in pages.py +# 8. Add sidebar link +# 9. Test! +``` + +--- + +## 📚 Additional Resources + +### Pre-configured Loggers +```javascript +window.LogConfig.loggers.dashboard +window.LogConfig.loggers.vendors +window.LogConfig.loggers.vendorTheme +window.LogConfig.loggers.users +window.LogConfig.loggers.products +window.LogConfig.loggers.orders +window.LogConfig.loggers.imports +window.LogConfig.loggers.audit +``` + +### From Base Data (via ...data()) +- `this.dark` - Dark mode state +- `this.toggleTheme()` - Toggle theme +- `this.isSideMenuOpen` - Side menu state +- `this.toggleSideMenu()` - Toggle side menu +- `this.isProfileMenuOpen` - Profile menu state +- `this.toggleProfileMenu()` - Toggle profile menu + +### Global Utilities +- `Utils.showToast(message, type, duration)` +- `Utils.formatDate(dateString)` +- `apiClient.get(url)` +- `apiClient.post(url, data)` +- `apiClient.put(url, data)` +- `apiClient.delete(url)` + +### Icon Helper +```html + +``` + +--- + +## ⚠️ Common Mistakes to Avoid + +### 1. Missing ...data() +```javascript +// ❌ WRONG - No base inheritance +function myPage() { + return { + items: [] + }; +} + +// ✅ CORRECT +function myPage() { + return { + ...data(), // Must be first! + items: [] + }; +} +``` + +### 2. Wrong API Client Case +```javascript +// ❌ WRONG +await ApiClient.get('/url'); + +// ✅ CORRECT +await apiClient.get('/url'); +``` + +### 3. Missing Init Guard +```javascript +// ❌ WRONG +async init() { + await this.loadData(); +} + +// ✅ CORRECT +async init() { + if (window._myPageInitialized) return; + window._myPageInitialized = true; + await this.loadData(); +} +``` + +### 4. Old Logging Pattern +```javascript +// ❌ WRONG - 15+ lines +const log = { + error: (...args) => console.error(...), + // ... +}; + +// ✅ CORRECT - 1 line +const log = window.LogConfig.loggers.myPage; +``` + +### 5. Missing currentPage +```javascript +// ❌ WRONG +return { + ...data(), + items: [] +}; + +// ✅ CORRECT +return { + ...data(), + currentPage: 'my-page', // Must set! + items: [] +}; +``` + +--- + +This template provides a complete, production-ready pattern for building admin pages with consistent structure, proper initialization, comprehensive logging, and excellent maintainability. diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt new file mode 100644 index 00000000..60ca7939 --- /dev/null +++ b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/admin/FRONTEND_ADMIN_ARCHITECTURE_OVERVIEW.txt @@ -0,0 +1,828 @@ +╔══════════════════════════════════════════════════════════════════╗ +║ ADMIN FRONTEND ARCHITECTURE OVERVIEW ║ +║ Alpine.js + Jinja2 + Tailwind CSS ║ +╚══════════════════════════════════════════════════════════════════╝ + +📦 WHAT IS THIS? +═════════════════════════════════════════════════════════════════ + +Admin frontend provides platform administrators with complete control +over the marketplace. Built with: + ✅ Jinja2 Templates (server-side rendering) + ✅ Alpine.js (client-side reactivity) + ✅ Tailwind CSS (utility-first styling) + ✅ Windmill Dashboard UI (dark mode ready) + ✅ FastAPI (backend routes) + + +🎯 KEY PRINCIPLES +═════════════════════════════════════════════════════════════════ + +1. Minimal Server-Side Rendering + • Routes handle authentication + template rendering + • NO database queries in route handlers + • ALL data loaded client-side via JavaScript + +2. Component-Based Architecture + • Base template with shared layout + • Reusable partials (header, sidebar, etc.) + • Page-specific templates extend base + +3. Progressive Enhancement + • Works without JavaScript (basic HTML) + • JavaScript adds interactivity + • Graceful degradation + +4. API-First Data Loading + • All data from REST APIs + • Client-side state management + • Real-time updates possible + +5. Centralized State & Logging + • Base layout provides shared state + • Centralized logging system + • Consistent error handling + + +📁 FILE STRUCTURE +═════════════════════════════════════════════════════════════════ + +app/ +├── templates/admin/ +│ ├── base.html ← Base template (layout) +│ ├── login.html ← Admin login page +│ ├── dashboard.html ← Dashboard overview +│ ├── vendors.html ← Vendor management +│ ├── vendor-edit.html ← Single vendor edit +│ ├── users.html ← User management +│ ├── products.html ← Product management +│ ├── orders.html ← Order management +│ ├── import-jobs.html ← Import job tracking +│ ├── audit-logs.html ← Audit log viewer +│ ├── settings.html ← System settings +│ └── partials/ ← Reusable components +│ ├── header.html ← Top navigation +│ ├── sidebar.html ← Main navigation +│ ├── notifications.html ← Toast notifications +│ ├── modal.html ← Modal template +│ └── table.html ← Data table template +│ +├── static/admin/ +│ ├── css/ +│ │ ├── tailwind.output.css ← Generated Tailwind +│ │ └── admin.css ← Custom admin styles +│ ├── js/ +│ │ ├── init-alpine.js ← Base Alpine.js data +│ │ ├── dashboard.js ← Dashboard logic +│ │ ├── vendors.js ← Vendor management logic +│ │ ├── vendor-edit.js ← Vendor edit logic +│ │ ├── vendor-theme.js ← Theme customization +│ │ ├── users.js ← User management logic +│ │ ├── products.js ← Product management logic +│ │ ├── orders.js ← Order management logic +│ │ ├── import-jobs.js ← Import tracking logic +│ │ ├── audit-logs.js ← Audit log logic +│ │ └── settings.js ← Settings logic +│ └── img/ +│ ├── login-office.jpeg +│ └── login-office-dark.jpeg +│ +├── static/shared/ ← Shared across all areas +│ ├── js/ +│ │ ├── log-config.js ← Centralized logging +│ │ ├── icons.js ← Icon registry +│ │ ├── utils.js ← Utility functions +│ │ └── api-client.js ← API wrapper +│ └── css/ +│ └── base.css ← Global styles +│ +└── api/v1/admin/ + ├── pages.py ← Route handlers (templates) + ├── vendors.py ← Vendor API endpoints + ├── users.py ← User API endpoints + ├── products.py ← Product API endpoints + ├── orders.py ← Order API endpoints + └── settings.py ← Settings API endpoints + + +🏗️ ARCHITECTURE LAYERS +═════════════════════════════════════════════════════════════════ + +Layer 1: Routes (FastAPI) + ↓ +Layer 2: Templates (Jinja2) + ↓ +Layer 3: JavaScript (Alpine.js) + ↓ +Layer 4: API (REST endpoints) + ↓ +Layer 5: Database + + +Layer 1: ROUTES (FastAPI) +────────────────────────────────────────────────────────────────── +Purpose: Authentication + Template Rendering +Location: app/api/v1/admin/pages.py + +Example: + @router.get("/admin/dashboard") + async def admin_dashboard_page( + request: Request, + current_user: User = Depends(get_current_admin_user) + ): + return templates.TemplateResponse( + "admin/dashboard.html", + { + "request": request, + "user": current_user, + } + ) + +Responsibilities: + ✅ Verify authentication (admin role required) + ✅ Extract route parameters + ✅ Render template with minimal context + ❌ NO database queries + ❌ NO business logic + + +Layer 2: TEMPLATES (Jinja2) +────────────────────────────────────────────────────────────────── +Purpose: HTML Structure + Server-Side Data +Location: app/templates/admin/ + +Template Hierarchy: + base.html (layout + shared components) + ↓ + dashboard.html (page content) + ↓ + partials/sidebar.html (navigation) + +Example: + {% extends "admin/base.html" %} + {% block title %}Dashboard{% endblock %} + {% block alpine_data %}adminDashboard(){% endblock %} + {% block content %} +
    Loading...
    +
    +
    + +
    +
    + {% endblock %} + +Key Features: + ✅ Template inheritance + ✅ Server-side variables (user info) + ✅ Include partials + ✅ Block overrides + ✅ Alpine.js integration + + +Layer 3: JAVASCRIPT (Alpine.js) +────────────────────────────────────────────────────────────────── +Purpose: Client-Side Interactivity + Data Loading +Location: app/static/admin/js/ + +Component Structure: + function adminDashboard() { + return { + // ✅ CRITICAL: Inherit base layout state + ...data(), + + // ✅ CRITICAL: Set page identifier + currentPage: 'dashboard', + + // Page-specific state + loading: false, + error: null, + stats: [], + + // Initialization + async init() { + // Guard against multiple initialization + if (window._dashboardInitialized) { + dashLog.warn('Already initialized'); + return; + } + window._dashboardInitialized = true; + + await this.loadStats(); + }, + + // Data loading + async loadStats() { + this.loading = true; + try { + this.stats = await apiClient.get( + '/api/v1/admin/stats' + ); + } catch (error) { + this.error = error.message; + } finally { + this.loading = false; + } + } + }; + } + +Responsibilities: + ✅ Load data from API + ✅ Manage UI state + ✅ Handle user interactions + ✅ Update DOM reactively + ✅ Inherit base layout functionality + + +Layer 4: API (REST) +────────────────────────────────────────────────────────────────── +Purpose: Business Logic + Data Access +Location: app/api/v1/admin/*.py (not pages.py) + +Example Endpoints: + GET /api/v1/admin/stats + GET /api/v1/admin/vendors + POST /api/v1/admin/vendors + PUT /api/v1/admin/vendors/{id} + DELETE /api/v1/admin/vendors/{id} + GET /api/v1/admin/users + GET /api/v1/admin/audit-logs + + +🔄 DATA FLOW +═════════════════════════════════════════════════════════════════ + +Page Load Flow: +────────────────────────────────────────────────────────────────── + 1. Admin → GET /admin/dashboard + 2. FastAPI → Check authentication (admin role) + 3. FastAPI → Render template with minimal context + 4. Browser → Load HTML + CSS + JS + 5. Alpine.js → init() executes + 6. JavaScript → Check initialization guard + 7. JavaScript → API call for dashboard stats + 8. API → Return JSON data + 9. Alpine.js → Update reactive state + 10. Browser → DOM updates automatically + +User Interaction Flow: +────────────────────────────────────────────────────────────────── + 1. Admin → Click "Delete Vendor" + 2. Alpine.js → Show confirmation dialog + 3. Admin → Confirms deletion + 4. Alpine.js → DELETE to API + 5. API → Delete vendor + return success + 6. Alpine.js → Update local state (remove from list) + 7. Browser → DOM updates automatically + 8. Alpine.js → Show success toast notification + + +💡 BASE LAYOUT INHERITANCE +═════════════════════════════════════════════════════════════════ + +The ...data() Spread: +────────────────────────────────────────────────────────────────── + +Every page component MUST start with ...data() to inherit +base layout functionality: + +init-alpine.js provides: + function data() { + return { + // Theme state + dark: localStorage.getItem('theme') === 'dark', + toggleTheme() { /* ... */ }, + + // Side menu state + isSideMenuOpen: false, + toggleSideMenu() { /* ... */ }, + closeSideMenu() { /* ... */ }, + + // Profile menu state + isProfileMenuOpen: false, + toggleProfileMenu() { /* ... */ }, + closeProfileMenu() { /* ... */ }, + + // Notifications menu state + isNotificationsMenuOpen: false, + toggleNotificationsMenu() { /* ... */ }, + closeNotificationsMenu() { /* ... */ }, + + // Page identifier (override in each page) + currentPage: '' + }; + } + +Your page inherits ALL of this: + function adminVendors() { + return { + ...data(), // ← Spreads all base functionality + currentPage: 'vendors', // ← Override page identifier + + // Your page-specific state + vendors: [], + loading: false + }; + } + +Benefits: + ✅ Automatic dark mode support + ✅ Menu states work automatically + ✅ No duplicate code + ✅ Consistent behavior across pages + + +🎨 STYLING SYSTEM +═════════════════════════════════════════════════════════════════ + +Tailwind CSS Utility Classes: + • Responsive: sm:, md:, lg:, xl: + • Dark mode: dark:bg-gray-800 + • Hover: hover:bg-purple-700 + • Focus: focus:outline-none + • Transitions: transition-colors duration-150 + +Custom CSS Variables (admin/css/admin.css): + --color-primary: #7c3aed (purple-600) + --color-accent: #ec4899 (pink-500) + --color-success: #10b981 (green-500) + --color-warning: #f59e0b (yellow-500) + --color-danger: #ef4444 (red-500) + +Windmill Dashboard Theme: + • Professional admin UI + • Dark mode ready + • Consistent components + • Accessible by default + + +🔐 AUTHENTICATION +═════════════════════════════════════════════════════════════════ + +Auth Flow: + 1. Login → POST /api/v1/admin/auth/login + 2. API → Verify credentials + check admin role + 3. API → Return JWT token + 4. JavaScript → Store in localStorage + 5. API Client → Add to all requests + 6. Routes → Verify with get_current_admin_user + +Protected Routes: + • All /admin/* routes + • Require valid JWT token + • Require admin role (is_admin=True) + • Redirect to login if unauthorized + +Public Routes: + • /admin/login + • No authentication required + +Role-Based Access: + • Admin: Full platform access + • Vendor: Limited to own shop (vendor portal) + • Customer: No admin access + + +📱 RESPONSIVE DESIGN +═════════════════════════════════════════════════════════════════ + +Breakpoints (Tailwind): + • sm: 640px (mobile landscape) + • md: 768px (tablet) + • lg: 1024px (desktop) + • xl: 1280px (large desktop) + +Mobile-First Approach: + • Base styles for mobile + • Add complexity for larger screens + • Collapsible sidebar on mobile + • Stack cards vertically on mobile + +Example: +
    + +
    + + +🌙 DARK MODE +═════════════════════════════════════════════════════════════════ + +Implementation: + 1. Alpine.js state: dark: boolean + 2. HTML class binding: :class="{ 'dark': dark }" + 3. Tailwind variants: dark:bg-gray-800 + 4. LocalStorage: persist preference + +Toggle Flow: + 1. User clicks dark mode button + 2. toggleTheme() called (from base data) + 3. dark state toggled + 4. Saved to localStorage + 5. HTML class updates + 6. Tailwind dark: variants activate + +Example Usage: +
    +

    Content

    +
    + + +🔒 INITIALIZATION GUARDS +═════════════════════════════════════════════════════════════════ + +Purpose: Prevent Multiple Initialization + +Alpine.js can sometimes initialize components multiple times. +Use a guard to prevent duplicate API calls and setup: + +Pattern: + async init() { + // Check if already initialized + if (window._dashboardInitialized) { + dashLog.warn('Already initialized, skipping...'); + return; // Exit early + } + + // Set flag BEFORE async operations + window._dashboardInitialized = true; + + // Safe to proceed + await this.loadData(); + } + +Naming Convention: + • Dashboard: window._dashboardInitialized + • Vendors: window._vendorsInitialized + • Products: window._productsInitialized + • etc. + +Benefits: + ✅ Prevents duplicate API calls + ✅ Prevents duplicate event listeners + ✅ Improves performance + ✅ Avoids state conflicts + + +🪵 CENTRALIZED LOGGING +═════════════════════════════════════════════════════════════════ + +Location: app/static/shared/js/log-config.js + +Pre-configured Loggers: + window.LogConfig.loggers.dashboard + window.LogConfig.loggers.vendors + window.LogConfig.loggers.vendorTheme + window.LogConfig.loggers.users + window.LogConfig.loggers.products + window.LogConfig.loggers.orders + window.LogConfig.loggers.imports + window.LogConfig.loggers.audit + +Usage: + // Use pre-configured logger + const dashLog = window.LogConfig.loggers.dashboard; + + dashLog.info('Dashboard loading...'); + dashLog.error('Failed to load stats', error); + dashLog.debug('Stats data:', statsData); + dashLog.warn('API response slow'); + +Advanced Features: + // Grouped logs + dashLog.group('Loading Dashboard Data'); + dashLog.info('Fetching stats...'); + dashLog.info('Fetching activity...'); + dashLog.groupEnd(); + + // API call logging + window.LogConfig.logApiCall('GET', url, data, 'response'); + + // Performance logging + window.LogConfig.logPerformance('Load Stats', duration); + + // Error logging + window.LogConfig.logError(error, 'Load Stats'); + +Benefits: + ✅ One line instead of 15+ lines per file + ✅ Consistent logging format + ✅ Environment-aware (dev/prod) + ✅ Frontend-aware (admin/vendor/shop) + ✅ Advanced features (groups, perf, API) + + +📡 API CLIENT +═════════════════════════════════════════════════════════════════ + +Location: app/static/shared/js/api-client.js + +CRITICAL: Always use lowercase 'apiClient' + ✅ apiClient.get() + ❌ ApiClient.get() + ❌ API_CLIENT.get() + +Usage: + const data = await apiClient.get('/api/v1/admin/vendors'); + + await apiClient.post('/api/v1/admin/vendors', { + name: 'New Vendor', + code: 'NEWVENDOR' + }); + + await apiClient.put('/api/v1/admin/vendors/123', { + name: 'Updated Name' + }); + + await apiClient.delete('/api/v1/admin/vendors/123'); + +Features: + ✅ Automatic auth headers + ✅ Error handling + ✅ JSON parsing + ✅ Request/response logging + + +🎭 ICONS +═════════════════════════════════════════════════════════════════ + +Location: app/static/shared/js/icons.js + +Usage: + + + +Available Icons: + • home, dashboard, settings + • user, users, user-group + • shopping-bag, shopping-cart + • cube, download, upload + • plus, minus, x + • pencil, trash, eye + • check, exclamation + • chevron-left, chevron-right + • spinner (for loading) + + +🚀 PERFORMANCE +═════════════════════════════════════════════════════════════════ + +Optimization Techniques: + +1. Template Caching + • Base template cached by FastAPI + • Reduces rendering time + +2. Lazy Loading + • Data loaded after page render + • Progressive content display + +3. Debouncing + • Search inputs debounced + • Reduces API calls + +4. Pagination + • Server-side pagination + • Load only needed data + +5. CDN Assets + • Tailwind CSS from CDN + • Alpine.js from CDN + +6. Initialization Guards + • Prevent duplicate setups + • Reduce unnecessary operations + + +📊 PAGE-BY-PAGE BREAKDOWN +═════════════════════════════════════════════════════════════════ + +/admin/dashboard +────────────────────────────────────────────────────────────────── +Purpose: Overview of platform operations +Components: + • Stats cards (vendors, users, orders, revenue) + • Recent activity feed + • Quick actions panel + • System health indicators +Data Sources: + • GET /api/v1/admin/stats + • GET /api/v1/admin/recent-activity + +/admin/vendors +────────────────────────────────────────────────────────────────── +Purpose: Manage marketplace vendors +Components: + • Vendor list table + • Search and filters + • Create/Edit modal + • Status management + • Verification controls +Data Sources: + • GET /api/v1/admin/vendors + • POST /api/v1/admin/vendors + • PUT /api/v1/admin/vendors/{id} + • DELETE /api/v1/admin/vendors/{id} + +/admin/vendors/{code}/edit +────────────────────────────────────────────────────────────────── +Purpose: Edit single vendor details +Components: + • Vendor information form + • Status controls + • Contact information + • Business details +Data Sources: + • GET /api/v1/admin/vendors/{code} + • PUT /api/v1/admin/vendors/{code} + +/admin/vendors/{code}/theme +────────────────────────────────────────────────────────────────── +Purpose: Customize vendor's shop theme +Components: + • Color picker + • Font selector + • Logo uploader + • Layout options + • Custom CSS editor + • Theme presets +Data Sources: + • GET /api/v1/admin/vendor-themes/{code} + • PUT /api/v1/admin/vendor-themes/{code} + +/admin/users +────────────────────────────────────────────────────────────────── +Purpose: Manage platform users +Components: + • User list table + • Search and filters + • Role management + • Status controls +Data Sources: + • GET /api/v1/admin/users + • PUT /api/v1/admin/users/{id} + • DELETE /api/v1/admin/users/{id} + +/admin/products +────────────────────────────────────────────────────────────────── +Purpose: View all marketplace products +Components: + • Product list table + • Search and filters + • Vendor filter + • Bulk actions +Data Sources: + • GET /api/v1/admin/products + +/admin/orders +────────────────────────────────────────────────────────────────── +Purpose: View all marketplace orders +Components: + • Order list table + • Status filters + • Vendor filter + • Order detail modal +Data Sources: + • GET /api/v1/admin/orders + • GET /api/v1/admin/orders/{id} + +/admin/import-jobs +────────────────────────────────────────────────────────────────── +Purpose: Monitor marketplace import operations +Components: + • Import job list + • Status indicators + • Progress tracking + • Error logs +Data Sources: + • GET /api/v1/admin/import-jobs + • GET /api/v1/admin/import-jobs/{id} + +/admin/audit-logs +────────────────────────────────────────────────────────────────── +Purpose: Track all system actions +Components: + • Audit log table + • Filters (user, action, date) + • Export functionality +Data Sources: + • GET /api/v1/admin/audit-logs + +/admin/settings +────────────────────────────────────────────────────────────────── +Purpose: Configure platform settings +Components: + • Settings tabs + • Configuration forms + • Feature toggles +Data Sources: + • GET /api/v1/admin/settings + • PUT /api/v1/admin/settings + + +🎓 LEARNING PATH +═════════════════════════════════════════════════════════════════ + +For New Developers: + +1. Understand Architecture (1 hour) + → Read this document + → Review file structure + → Examine base template + → Understand ...data() inheritance + +2. Study Existing Page (2 hours) + → Open dashboard.html + → Open dashboard.js + → Trace data flow + → Understand init guard pattern + +3. Create Simple Page (4 hours) + → Copy templates from dashboard + → Modify for new feature + → Test initialization guard + → Verify dark mode works + +4. Add Complex Feature (1 day) + → Forms with validation + → Modal dialogs + → API integration + → Error handling + +5. Master Patterns (1 week) + → All common patterns + → Centralized logging + → Performance optimization + → Best practices + + +🔄 DEPLOYMENT CHECKLIST +═════════════════════════════════════════════════════════════════ + +Before Deploying: + □ Build Tailwind CSS + □ Minify JavaScript + □ Test all routes + □ Verify authentication + □ Check role-based access + □ Verify initialization guards work + □ Check mobile responsive + □ Test dark mode + □ Validate API endpoints + □ Review error handling + □ Test logging in production mode + □ Check console for errors + □ Verify no duplicate initializations + + +🔒 SECURITY +═════════════════════════════════════════════════════════════════ + +Best Practices: + +1. Authentication + ✅ JWT tokens + ✅ Token expiration + ✅ Secure storage (httpOnly cookies option) + +2. Authorization + ✅ Route-level checks (admin role required) + ✅ API-level validation + ✅ Role-based permissions + +3. Input Validation + ✅ Client-side validation + ✅ Server-side validation + ✅ XSS prevention + +4. CSRF Protection + ✅ Token-based + ✅ SameSite cookies + +5. Admin-Specific + ✅ Audit logging for all actions + ✅ Strong password requirements + ✅ Two-factor authentication (optional) + + +📚 REFERENCE LINKS +═════════════════════════════════════════════════════════════════ + +Documentation: + • Alpine.js: https://alpinejs.dev/ + • Tailwind CSS: https://tailwindcss.com/ + • Jinja2: https://jinja.palletsprojects.com/ + • FastAPI: https://fastapi.tiangolo.com/ + • Windmill Dashboard: https://windmill-dashboard.vercel.app/ + +Internal Docs: + • Page Template Guide: FRONTEND_ADMIN_ALPINE_PAGE_TEMPLATE.md + • API Documentation: API_REFERENCE.md + • Database Schema: DATABASE_SCHEMA.md + + +══════════════════════════════════════════════════════════════════ + ADMIN FRONTEND ARCHITECTURE + Powerful, Secure, and Maintainable Platform Control +══════════════════════════════════════════════════════════════════ diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ALPINE_PAGE_TEMPLATE.md b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ALPINE_PAGE_TEMPLATE.md new file mode 100644 index 00000000..5c0c364a --- /dev/null +++ b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ALPINE_PAGE_TEMPLATE.md @@ -0,0 +1,972 @@ +# Shop Frontend - Alpine.js/Jinja2 Page Template Guide + +## 📋 Overview + +This guide provides complete templates for creating new customer-facing shop pages using the established Alpine.js + Jinja2 + Multi-Theme architecture. Follow these patterns to ensure consistency across all vendor shops while maintaining unique branding. + +--- + +## 🎯 Quick Reference + +### File Structure for New Page +``` +app/ +├── templates/shop/ +│ └── [page-name].html # Jinja2 template +├── static/shop/js/ +│ └── [page-name].js # Alpine.js component +└── api/v1/shop/ + └── pages.py # Route registration +``` + +### Checklist for New Page +- [ ] Create Jinja2 template extending shop/base.html +- [ ] Create Alpine.js JavaScript component +- [ ] Register route in pages.py +- [ ] Test with multiple vendor themes +- [ ] Test responsive design (mobile/tablet/desktop) +- [ ] Test dark mode +- [ ] Test cart integration (if applicable) +- [ ] Verify theme CSS variables work +- [ ] Check image optimization + +--- + +## 📄 Template Structure + +### 1. Jinja2 Template + +**File:** `app/templates/shop/[page-name].html` + +```jinja2 +{# app/templates/shop/[page-name].html #} +{% extends "shop/base.html" %} + +{# Page title for browser tab - includes vendor name #} +{% block title %}[Page Name] - {{ vendor.name }}{% endblock %} + +{# Meta description for SEO #} +{% block meta_description %}[Page description for SEO]{% endblock %} + +{# Alpine.js component name #} +{% block alpine_data %}shop[PageName](){% endblock %} + +{# Page content #} +{% block content %} + + + +
    + + + + + +
    +

    + [Page Name] +

    + + + +
    + + + + +
    +
    +
    +

    Loading...

    +
    + + + + +
    +
    + + + +
    +

    Error

    +

    +
    +
    +
    + + + + +
    + + +
    + + + +

    + No items found +

    +

    + Try adjusting your filters or check back later. +

    +
    + + +
    + + +
    + + + + +
    + + + + + + + + + +
    +
    +
    +{% endblock %} + +{# Page-specific JavaScript #} +{% block extra_scripts %} + +{% endblock %} +``` + +--- + +### 2. Alpine.js Component + +**File:** `app/static/shop/js/[page-name].js` + +```javascript +// static/shop/js/[page-name].js +/** + * [Page Name] Component + * Handles [describe functionality] + */ + +const pageLog = { + info: (...args) => console.info('🛍️ [PAGE]', ...args), + warn: (...args) => console.warn('⚠️ [PAGE]', ...args), + error: (...args) => console.error('❌ [PAGE]', ...args), + debug: (...args) => console.log('🔍 [PAGE]', ...args) +}; + +/** + * Main Alpine.js component for [page name] + */ +function shop[PageName]() { + return { + // ───────────────────────────────────────────────────── + // STATE + // ───────────────────────────────────────────────────── + loading: false, + error: '', + items: [], + + // Pagination + pagination: { + currentPage: 1, + totalPages: 1, + perPage: 12, + total: 0 + }, + + // Filters + filters: { + search: '', + category: '', + sortBy: 'created_at:desc' + }, + + // Vendor info (from template) + vendorCode: '{{ vendor.code }}', + + // ───────────────────────────────────────────────────── + // LIFECYCLE + // ───────────────────────────────────────────────────── + + /** + * Initialize component + */ + async init() { + pageLog.info('[PageName] initializing...'); + await this.loadData(); + pageLog.info('[PageName] initialized'); + }, + + // ───────────────────────────────────────────────────── + // DATA LOADING + // ───────────────────────────────────────────────────── + + /** + * Load main data from API + */ + async loadData() { + this.loading = true; + this.error = ''; + + try { + const params = new URLSearchParams({ + page: this.pagination.currentPage, + per_page: this.pagination.perPage, + ...this.filters + }); + + const response = await fetch( + `/api/v1/shop/${this.vendorCode}/items?${params}` + ); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + const data = await response.json(); + + // Update state + this.items = data.items || []; + this.pagination.total = data.total || 0; + this.pagination.totalPages = Math.ceil( + this.pagination.total / this.pagination.perPage + ); + + pageLog.info('Data loaded:', this.items.length, 'items'); + + } catch (error) { + pageLog.error('Failed to load data:', error); + this.error = error.message || 'Failed to load data'; + } finally { + this.loading = false; + } + }, + + /** + * Refresh data + */ + async refresh() { + pageLog.info('Refreshing data...'); + this.error = ''; + await this.loadData(); + }, + + // ───────────────────────────────────────────────────── + // FILTERS & SEARCH + // ───────────────────────────────────────────────────── + + /** + * Apply filters and reload data + */ + async applyFilters() { + pageLog.debug('Applying filters:', this.filters); + this.pagination.currentPage = 1; // Reset to first page + await this.loadData(); + }, + + /** + * Reset filters to default + */ + async resetFilters() { + this.filters = { + search: '', + category: '', + sortBy: 'created_at:desc' + }; + await this.applyFilters(); + }, + + // ───────────────────────────────────────────────────── + // PAGINATION + // ───────────────────────────────────────────────────── + + /** + * Navigate to specific page + */ + async goToPage(page) { + if (page < 1 || page > this.pagination.totalPages) return; + + this.pagination.currentPage = page; + await this.loadData(); + + // Scroll to top + window.scrollTo({ top: 0, behavior: 'smooth' }); + }, + + /** + * Get pagination range for display + */ + get paginationRange() { + const current = this.pagination.currentPage; + const total = this.pagination.totalPages; + const range = []; + + // Show max 7 page numbers + let start = Math.max(1, current - 3); + let end = Math.min(total, start + 6); + + // Adjust start if we're near the end + if (end - start < 6) { + start = Math.max(1, end - 6); + } + + for (let i = start; i <= end; i++) { + range.push(i); + } + + return range; + }, + + // ───────────────────────────────────────────────────── + // CART INTEGRATION + // ───────────────────────────────────────────────────── + + /** + * Add item to cart + */ + addToCart(item, quantity = 1) { + pageLog.info('Adding to cart:', item.name); + + // Get cart from shop layout + const shopLayout = Alpine.store('shop') || window.shopLayoutData(); + + if (shopLayout && typeof shopLayout.addToCart === 'function') { + shopLayout.addToCart(item, quantity); + this.showToast(`${item.name} added to cart`, 'success'); + } else { + pageLog.error('Shop layout not available'); + } + }, + + // ───────────────────────────────────────────────────── + // UI HELPERS + // ───────────────────────────────────────────────────── + + /** + * Show toast notification + */ + showToast(message, type = 'info') { + const shopLayout = Alpine.store('shop') || window.shopLayoutData(); + if (shopLayout && typeof shopLayout.showToast === 'function') { + shopLayout.showToast(message, type); + } + }, + + /** + * Format price as currency + */ + formatPrice(price) { + return new Intl.NumberFormat('en-US', { + style: 'currency', + currency: 'USD' + }).format(price); + }, + + /** + * Format date + */ + formatDate(dateString) { + if (!dateString) return '-'; + const date = new Date(dateString); + return date.toLocaleDateString('en-US', { + year: 'numeric', + month: 'short', + day: 'numeric' + }); + }, + + /** + * Truncate text + */ + truncate(text, length = 100) { + if (!text) return ''; + if (text.length <= length) return text; + return text.substring(0, length) + '...'; + } + }; +} + +// Make available globally +window.shop[PageName] = shop[PageName]; + +pageLog.info('[PageName] module loaded'); +``` + +--- + +### 3. Route Registration + +**File:** `app/api/v1/shop/pages.py` + +```python +from fastapi import APIRouter, Request, Depends +from sqlalchemy.orm import Session +from app.core.database import get_db + +router = APIRouter() + +@router.get("/[page-route]") +async def [page_name]_page( + request: Request, + db: Session = Depends(get_db) +): + """ + [Page Name] page + Displays [description] + """ + # Vendor and theme come from middleware + vendor = request.state.vendor + theme = request.state.theme + + return templates.TemplateResponse( + "shop/[page-name].html", + { + "request": request, + "vendor": vendor, + "theme": theme, + } + ) +``` + +--- + +## 🎨 Common Page Patterns + +### Pattern 1: Product Grid Page (Homepage, Category) + +**Use for:** Homepage, category pages, search results + +```javascript +async init() { + await this.loadProducts(); +} + +async loadProducts() { + this.loading = true; + try { + const response = await fetch( + `/api/v1/shop/${this.vendorCode}/products?category=${this.category}` + ); + const data = await response.json(); + this.products = data.products || []; + } catch (error) { + this.error = error.message; + } finally { + this.loading = false; + } +} +``` + +**Template:** +```html +
    + +
    +``` + +--- + +### Pattern 2: Product Detail Page + +**Use for:** Single product pages + +```javascript +async init() { + const productId = this.getProductIdFromUrl(); + await this.loadProduct(productId); + await this.loadRelatedProducts(productId); +} + +async loadProduct(id) { + const product = await fetch( + `/api/v1/shop/${this.vendorCode}/products/${id}` + ).then(r => r.json()); + + this.product = product; + this.selectedImage = product.images[0]; +} + +addToCartWithQuantity() { + const shopLayout = window.shopLayoutData(); + shopLayout.addToCart(this.product, this.quantity); +} +``` + +**Template:** +```html +
    + +
    + +
    + +
    +
    + + +
    +

    +

    +

    + + +
    + + +
    + + + +
    +
    +``` + +--- + +### Pattern 3: Cart Page + +**Use for:** Shopping cart + +```javascript +async init() { + this.loadCart(); +} + +loadCart() { + const shopLayout = window.shopLayoutData(); + this.cart = shopLayout.cart; + this.calculateTotals(); +} + +updateQuantity(productId, quantity) { + const shopLayout = window.shopLayoutData(); + shopLayout.updateCartItem(productId, quantity); + this.loadCart(); +} + +removeItem(productId) { + const shopLayout = window.shopLayoutData(); + shopLayout.removeFromCart(productId); + this.loadCart(); +} + +get subtotal() { + return this.cart.reduce((sum, item) => sum + (item.price * item.quantity), 0); +} + +get shipping() { + return this.subtotal > 50 ? 0 : 9.99; +} + +get total() { + return this.subtotal + this.shipping; +} +``` + +--- + +### Pattern 4: Search & Filter Page + +**Use for:** Search results, filtered product lists + +```javascript +filters: { + search: '', + category: '', + minPrice: 0, + maxPrice: 1000, + sortBy: 'relevance', + inStock: true +}, + +async performSearch() { + this.loading = true; + try { + const response = await fetch( + `/api/v1/shop/${this.vendorCode}/search`, + { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(this.filters) + } + ); + const data = await response.json(); + this.results = data.results || []; + } finally { + this.loading = false; + } +} +``` + +--- + +## 🔧 Best Practices + +### 1. Theme Integration + +Always use CSS variables for vendor colors: + +```html + + + + + +``` + +### 2. Cart Integration + +Always use the shop layout's cart methods: + +```javascript +// ✅ GOOD: Uses shop layout +const shopLayout = window.shopLayoutData(); +shopLayout.addToCart(product, quantity); + +// ❌ BAD: Direct localStorage manipulation +localStorage.setItem('cart', JSON.stringify(cart)); +``` + +### 3. Loading States + +Always show loading indicators: + +```javascript +this.loading = true; +try { + // ... async operation +} finally { + this.loading = false; // Always executes +} +``` + +### 4. Error Handling + +Always handle errors gracefully: + +```javascript +try { + await this.loadData(); +} catch (error) { + console.error('Load failed:', error); + this.error = 'Unable to load products. Please try again.'; + // Don't throw - let UI handle gracefully +} +``` + +### 5. Responsive Images + +Use lazy loading and responsive images: + +```html + +``` + +### 6. Dark Mode + +Support both light and dark modes: + +```html +
    + Content +
    +``` + +### 7. Accessibility + +Add proper ARIA labels and keyboard navigation: + +```html + +``` + +--- + +## 📱 Responsive Design Checklist + +- [ ] Mobile (< 640px): Single column layout +- [ ] Tablet (640px - 1024px): 2-3 column layout +- [ ] Desktop (> 1024px): 4 column layout +- [ ] Images scale properly on all devices +- [ ] Touch targets are at least 44x44px +- [ ] Text is readable without zooming +- [ ] Navigation adapts to screen size +- [ ] Modals are scrollable on small screens +- [ ] Forms are easy to fill on mobile + +--- + +## ✅ Testing Checklist + +### Functionality +- [ ] Page loads without errors +- [ ] Data loads correctly +- [ ] Loading state displays +- [ ] Error state handles failures +- [ ] Empty state shows when no data +- [ ] Filters work correctly +- [ ] Pagination works +- [ ] Cart integration works + +### Theme Integration +- [ ] Vendor colors display correctly +- [ ] Vendor logo displays +- [ ] Custom fonts load +- [ ] Custom CSS applies +- [ ] Dark mode works with vendor colors + +### Responsive Design +- [ ] Mobile layout works +- [ ] Tablet layout works +- [ ] Desktop layout works +- [ ] Images are responsive +- [ ] Touch interactions work + +### Performance +- [ ] Page loads quickly +- [ ] Images load progressively +- [ ] No console errors +- [ ] No memory leaks + +### Accessibility +- [ ] Keyboard navigation works +- [ ] Screen reader compatible +- [ ] Color contrast sufficient +- [ ] ARIA labels present + +--- + +## 🎯 Component Library + +### Reusable Partials + +Create reusable components in `templates/shop/partials/`: + +**product-card.html:** +```html +
    + +
    +

    +

    + +
    +
    +``` + +**filter-sidebar.html:** +```html +
    +

    Filters

    + + +
    + + +
    + + +
    + + +
    + $0 + +
    +
    + + + +
    +``` + +--- + +## 🚀 Quick Start Commands + +```bash +# Create new page files +touch app/templates/shop/new-page.html +touch app/static/shop/js/new-page.js + +# Copy templates +cp template.html app/templates/shop/new-page.html +cp template.js app/static/shop/js/new-page.js + +# Update placeholders: +# - Replace [page-name] with actual name +# - Replace [PageName] with PascalCase name +# - Add route in pages.py +# - Test with multiple vendor themes! +``` + +--- + +## 📚 Additional Resources + +### Theme System +- **CSS Variables**: All vendor colors in `var(--color-name)` format +- **Fonts**: `var(--font-heading)` and `var(--font-body)` +- **Logo**: Available in both light and dark versions +- **Custom CSS**: Vendor-specific styles automatically injected + +### Shop Layout Functions +- `addToCart(product, quantity)`: Add item to cart +- `showToast(message, type)`: Show notification +- `formatPrice(amount)`: Format as currency +- `formatDate(date)`: Format date string + +### Icons +Use the global icon helper: +```html + + +``` + +### API Client +Shared API wrapper for authenticated requests: +```javascript +const data = await apiClient.get('/endpoint'); +await apiClient.post('/endpoint', { data }); +``` + +--- + +This template provides a complete, theme-aware pattern for building shop pages with consistent structure, vendor branding, cart integration, and excellent user experience across all devices. diff --git a/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ARCHITECTURE_OVERVIEW.txt b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ARCHITECTURE_OVERVIEW.txt new file mode 100644 index 00000000..4f6ea802 --- /dev/null +++ b/docs/__REVAMPING/__PROJECT_ROADMAP/JINJA_MIGRATION/shop/FRONTEND_SHOP_ARCHITECTURE_OVERVIEW.txt @@ -0,0 +1,808 @@ +╔══════════════════════════════════════════════════════════════════╗ +║ SHOP FRONTEND ARCHITECTURE OVERVIEW ║ +║ Alpine.js + Jinja2 + Tailwind CSS + Multi-Theme ║ +╚══════════════════════════════════════════════════════════════════╝ + +📦 WHAT IS THIS? +═════════════════════════════════════════════════════════════════ + +Customer-facing shop frontend provides visitors with a branded +e-commerce experience unique to each vendor. Built with: + ✅ Jinja2 Templates (server-side rendering) + ✅ Alpine.js (client-side reactivity) + ✅ Tailwind CSS (utility-first styling) + ✅ Multi-Theme System (vendor branding) + ✅ FastAPI (backend routes) + + +🎯 KEY PRINCIPLES +═════════════════════════════════════════════════════════════════ + +1. Theme-First Design + • Each vendor has unique colors, fonts, logos + • CSS variables for dynamic theming + • Custom CSS support per vendor + • Dark mode with vendor colors + +2. Progressive Enhancement + • Works without JavaScript (basic HTML) + • JavaScript adds cart, search, filters + • Graceful degradation for older browsers + +3. API-First Data Loading + • All products from REST APIs + • Client-side cart management + • Real-time stock updates + • Search and filtering + +4. Responsive & Mobile-First + • Mobile-first Tailwind approach + • Touch-friendly interactions + • Optimized images + • Fast page loads + + +📁 FILE STRUCTURE +═════════════════════════════════════════════════════════════════ + +app/ +├── templates/shop/ +│ ├── base.html ← Base template (layout) +│ ├── home.html ← Homepage / product grid +│ ├── product-detail.html ← Single product page +│ ├── cart.html ← Shopping cart +│ ├── checkout.html ← Checkout flow +│ ├── search.html ← Search results +│ ├── category.html ← Category browse +│ ├── about.html ← About the shop +│ ├── contact.html ← Contact form +│ └── partials/ ← Reusable components +│ ├── product-card.html ← Product display card +│ ├── cart-item.html ← Cart item row +│ ├── search-modal.html ← Search overlay +│ └── filters.html ← Product filters +│ +├── static/shop/ +│ ├── css/ +│ │ ├── shop.css ← Shop-specific styles +│ │ └── themes/ ← Optional theme stylesheets +│ │ ├── modern.css +│ │ ├── minimal.css +│ │ └── elegant.css +│ ├── js/ +│ │ ├── shop-layout.js ← Base shop functionality +│ │ ├── home.js ← Homepage logic +│ │ ├── product-detail.js ← Product page logic +│ │ ├── cart.js ← Cart management +│ │ ├── checkout.js ← Checkout flow +│ │ ├── search.js ← Search functionality +│ │ └── filters.js ← Product filtering +│ └── img/ +│ ├── placeholder-product.png +│ └── empty-cart.svg +│ +├── static/shared/ ← Shared across all areas +│ ├── js/ +│ │ ├── log-config.js ← Logging setup +│ │ ├── icons.js ← Icon registry +│ │ ├── utils.js ← Utility functions +│ │ └── api-client.js ← API wrapper +│ └── css/ +│ └── base.css ← Global styles +│ +└── api/v1/shop/ + └── pages.py ← Route handlers + + +🏗️ ARCHITECTURE LAYERS +═════════════════════════════════════════════════════════════════ + +Layer 1: Routes (FastAPI) + ↓ +Layer 2: Middleware (Vendor + Theme Detection) + ↓ +Layer 3: Templates (Jinja2) + ↓ +Layer 4: JavaScript (Alpine.js) + ↓ +Layer 5: API (REST endpoints) + ↓ +Layer 6: Database + + +Layer 1: ROUTES (FastAPI) +────────────────────────────────────────────────────────────────── +Purpose: Vendor Detection + Template Rendering +Location: app/api/v1/shop/pages.py + +Example: + @router.get("/") + async def shop_home( + request: Request, + db: Session = Depends(get_db) + ): + vendor = request.state.vendor # From middleware + theme = request.state.theme # From middleware + + return templates.TemplateResponse( + "shop/home.html", + { + "request": request, + "vendor": vendor, + "theme": theme, + } + ) + +Responsibilities: + ✅ Access vendor from middleware + ✅ Access theme from middleware + ✅ Render template + ❌ NO database queries (data loaded client-side) + ❌ NO business logic + + +Layer 2: MIDDLEWARE +────────────────────────────────────────────────────────────────── +Purpose: Vendor & Theme Identification + +Two middleware components work together: + +1. Vendor Context Middleware + • Detects vendor from domain/subdomain + • Sets request.state.vendor + • Returns 404 if vendor not found + +2. Theme Context Middleware + • Loads theme for detected vendor + • Sets request.state.theme + • Falls back to default theme + +Order matters: + vendor_context_middleware → theme_context_middleware + + +Layer 3: TEMPLATES (Jinja2) +────────────────────────────────────────────────────────────────── +Purpose: HTML Structure + Vendor Branding +Location: app/templates/shop/ + +Template Hierarchy: + base.html (layout + theme injection) + ↓ + home.html (product grid) + ↓ + partials/product-card.html (components) + +Example: + {% extends "shop/base.html" %} + {% block title %}{{ vendor.name }}{% endblock %} + {% block alpine_data %}shopHome(){% endblock %} + {% block content %} +
    Loading products...
    +
    + +
    + {% endblock %} + +Key Features: + ✅ Theme CSS variables injection + ✅ Vendor logo (light/dark mode) + ✅ Custom CSS from theme + ✅ Social links from theme + ✅ Dynamic favicon + + +Layer 4: JAVASCRIPT (Alpine.js) +────────────────────────────────────────────────────────────────── +Purpose: Client-Side Interactivity + Cart + Search +Location: app/static/shop/js/ + +Example (shop-layout.js): + function shopLayoutData() { + return { + dark: false, + cartCount: 0, + cart: [], + + init() { + this.loadCart(); + this.loadThemePreference(); + }, + + addToCart(product, quantity) { + // Add to cart logic + this.cart.push({ ...product, quantity }); + this.saveCart(); + }, + + toggleTheme() { + this.dark = !this.dark; + localStorage.setItem('shop-theme', + this.dark ? 'dark' : 'light'); + } + }; + } + +Responsibilities: + ✅ Load products from API + ✅ Manage cart in localStorage + ✅ Handle search and filters + ✅ Update DOM reactively + ✅ Theme toggling + + +Layer 5: API (REST) +────────────────────────────────────────────────────────────────── +Purpose: Product Data + Cart + Orders +Location: app/api/v1/shop/*.py (not pages.py) + +Example Endpoints: + GET /api/v1/shop/{vendor_code}/products + GET /api/v1/shop/{vendor_code}/products/{id} + GET /api/v1/shop/{vendor_code}/categories + POST /api/v1/shop/{vendor_code}/search + POST /api/v1/shop/{vendor_code}/cart/checkout + + +🔄 DATA FLOW +═════════════════════════════════════════════════════════════════ + +Page Load Flow: +────────────────────────────────────────────────────────────────── + 1. Customer → visits acme-shop.com + 2. Vendor Middleware → Identifies "ACME" vendor + 3. Theme Middleware → Loads ACME's theme config + 4. FastAPI → Renders shop/home.html + 5. Browser → Receives HTML with theme CSS variables + 6. Alpine.js → init() executes + 7. JavaScript → GET /api/v1/shop/ACME/products + 8. API → Returns product list JSON + 9. Alpine.js → Updates products array + 10. Browser → DOM updates with product cards + +Add to Cart Flow: +────────────────────────────────────────────────────────────────── + 1. Customer → Clicks "Add to Cart" + 2. Alpine.js → addToCart(product, quantity) + 3. Alpine.js → Updates cart array + 4. Alpine.js → Saves to localStorage + 5. Alpine.js → Updates cartCount badge + 6. Alpine.js → Shows toast notification + 7. Browser → Cart icon updates automatically + +Checkout Flow: +────────────────────────────────────────────────────────────────── + 1. Customer → Goes to /cart + 2. Page → Loads cart from localStorage + 3. Customer → Fills checkout form + 4. Alpine.js → POST /api/v1/shop/ACME/cart/checkout + 5. API → Creates order + payment intent + 6. Alpine.js → Redirects to payment + 7. Payment → Completes + 8. Redirect → /order/{order_id}/confirmation + + +🎨 MULTI-THEME SYSTEM +═════════════════════════════════════════════════════════════════ + +How Themes Work: + +1. Database Storage + • Each vendor has a theme record + • Stores colors, fonts, logos, layout prefs + • Custom CSS per vendor + +2. CSS Variables Injection + • base.html injects variables in + + {% block extra_head %}{% endblock %} + + +
    + + {% include 'vendor/partials/sidebar.html' %} + +
    + + {% include 'vendor/partials/header.html' %} + + +
    +
    + {% block content %}{% endblock %} +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + {% block extra_scripts %}{% endblock %} + + +``` + +### Login Template Structure + +```jinja2 +{# app/templates/vendor/login.html #} + + + + + + Vendor Login - Multi-Tenant Platform + + + + + +
    + +
    + + + + + + + + + + +``` + +### Dashboard Template Structure + +```jinja2 +{# app/templates/vendor/admin/dashboard.html #} +{% extends "vendor/base.html" %} + +{% block title %}Dashboard{% endblock %} + +{% block alpine_data %}vendorDashboard(){% endblock %} + +{% block content %} + +
    +

    + Dashboard +

    + +
    + + +{% include 'vendor/partials/vendor_info.html' %} + + +
    + +
    + + +
    + +
    +{% endblock %} + +{% block extra_scripts %} + +{% endblock %} +``` + +--- + +## 6. Component Breakdown + +### 6.1 Header Component (partials/header.html) + +```jinja2 +{# app/templates/vendor/partials/header.html #} +
    +
    + + + + +
    +
    +
    + +
    + +
    +
    + +
      + +
    • + +
    • + + +
    • + + + + +
    • + + +
    • + + + + +
    • +
    +
    +
    +``` + +### 6.2 Sidebar Component (partials/sidebar.html) + +```jinja2 +{# app/templates/vendor/partials/sidebar.html #} + + + + +
    + + +``` + +### 6.3 Vendor Info Component (partials/vendor_info.html) + +```jinja2 +{# app/templates/vendor/partials/vendor_info.html #} +
    +
    +
    +
    + + {{ vendor.name[0].upper() if vendor and vendor.name else '?' }} + +
    +
    +

    + {{ vendor.name if vendor else 'Loading...' }} +

    +

    + {{ vendor.vendor_code if vendor else '' }} + {% if vendor and vendor.subdomain %} + • {{ vendor.subdomain }}.platform.com + {% endif %} +

    +
    +
    +
    + {% if vendor %} + + {{ 'Verified' if vendor.is_verified else 'Pending Verification' }} + + + {{ 'Active' if vendor.is_active else 'Inactive' }} + + {% endif %} +
    +
    +
    +``` + +--- + +## 7. Static Assets Organization + +### 7.1 JavaScript Files + +#### init-alpine.js +```javascript +// app/static/vendor/js/init-alpine.js +/** + * Alpine.js initialization for vendor pages + * Provides common data and methods for all vendor pages + */ + +function data() { + return { + dark: false, + isSideMenuOpen: false, + isNotificationsMenuOpen: false, + isProfileMenuOpen: false, + currentPage: '', + currentUser: {}, + vendor: null, + vendorCode: null, + + init() { + // Set current page from URL + const path = window.location.pathname; + const segments = path.split('/').filter(Boolean); + this.currentPage = segments[segments.length - 1] || 'dashboard'; + + // Get vendor code from URL + if (segments[0] === 'vendor' && segments[1]) { + this.vendorCode = segments[1]; + } + + // Load user from localStorage + const user = localStorage.getItem('currentUser'); + if (user) { + this.currentUser = JSON.parse(user); + } + + // Load theme preference + const theme = localStorage.getItem('theme'); + if (theme === 'dark') { + this.dark = true; + } + + // Load vendor info + this.loadVendorInfo(); + }, + + async loadVendorInfo() { + if (!this.vendorCode) return; + + try { + const response = await apiClient.get(`/api/v1/vendors/${this.vendorCode}`); + this.vendor = response; + logDebug('Vendor info loaded', this.vendor); + } catch (error) { + logError('Failed to load vendor info', error); + } + }, + + toggleSideMenu() { + this.isSideMenuOpen = !this.isSideMenuOpen; + }, + + closeSideMenu() { + this.isSideMenuOpen = false; + }, + + toggleNotificationsMenu() { + this.isNotificationsMenuOpen = !this.isNotificationsMenuOpen; + if (this.isNotificationsMenuOpen) { + this.isProfileMenuOpen = false; + } + }, + + closeNotificationsMenu() { + this.isNotificationsMenuOpen = false; + }, + + toggleProfileMenu() { + this.isProfileMenuOpen = !this.isProfileMenuOpen; + if (this.isProfileMenuOpen) { + this.isNotificationsMenuOpen = false; + } + }, + + closeProfileMenu() { + this.isProfileMenuOpen = false; + }, + + toggleTheme() { + this.dark = !this.dark; + localStorage.setItem('theme', this.dark ? 'dark' : 'light'); + }, + + async handleLogout() { + try { + // Call logout endpoint + await apiClient.post('/api/v1/vendor/auth/logout'); + } catch (error) { + logError('Logout error', error); + } finally { + // Clear local storage + localStorage.removeItem('accessToken'); + localStorage.removeItem('currentUser'); + + // Redirect to login + window.location.href = `/vendor/${this.vendorCode}/login`; + } + } + }; +} +``` + +#### login.js +```javascript +// app/static/vendor/js/login.js +/** + * Vendor login page logic + */ + +function vendorLogin() { + return { + credentials: { + username: '', + password: '' + }, + vendor: null, + vendorCode: null, + loading: false, + checked: false, + error: '', + success: '', + errors: {}, + + async init() { + // Get vendor code from URL path + const pathSegments = window.location.pathname.split('/').filter(Boolean); + if (pathSegments[0] === 'vendor' && pathSegments[1]) { + this.vendorCode = pathSegments[1]; + await this.loadVendor(); + } else { + // Try to get from query params (backward compatibility) + const urlParams = new URLSearchParams(window.location.search); + this.vendorCode = urlParams.get('vendor') || localStorage.getItem('vendorCode'); + if (this.vendorCode) { + await this.loadVendor(); + } + } + this.checked = true; + }, + + async loadVendor() { + this.loading = true; + try { + const response = await apiClient.get(`/api/v1/vendors/${this.vendorCode}`); + this.vendor = response; + logInfo('Vendor loaded', this.vendor); + } catch (error) { + logError('Failed to load vendor', error); + this.error = 'Failed to load vendor information'; + } finally { + this.loading = false; + } + }, + + async handleLogin() { + this.clearErrors(); + this.loading = true; + + try { + // Validate inputs + if (!this.credentials.username) { + this.errors.username = 'Username is required'; + } + if (!this.credentials.password) { + this.errors.password = 'Password is required'; + } + + if (Object.keys(this.errors).length > 0) { + this.loading = false; + return; + } + + // Call login endpoint + const response = await apiClient.post('/api/v1/vendor/auth/login', { + username: this.credentials.username, + password: this.credentials.password, + vendor_code: this.vendorCode + }); + + logInfo('Login successful', response); + + // Store tokens and user info + localStorage.setItem('accessToken', response.access_token); + localStorage.setItem('currentUser', JSON.stringify(response.user)); + localStorage.setItem('vendorCode', this.vendorCode); + + // Show success message + this.success = 'Login successful! Redirecting...'; + + // Redirect to dashboard + setTimeout(() => { + window.location.href = `/vendor/${this.vendorCode}/dashboard`; + }, 1000); + + } catch (error) { + logError('Login failed', error); + + if (error.status === 401) { + this.error = 'Invalid username or password'; + } else if (error.status === 403) { + this.error = 'Your account does not have access to this vendor'; + } else { + this.error = error.message || 'Login failed. Please try again.'; + } + } finally { + this.loading = false; + } + }, + + clearErrors() { + this.error = ''; + this.errors = {}; + } + }; +} +``` + +#### dashboard.js +```javascript +// app/static/vendor/js/dashboard.js +/** + * Vendor dashboard page logic + */ + +function vendorDashboard() { + return { + loading: false, + error: '', + stats: { + products_count: 0, + orders_count: 0, + customers_count: 0, + revenue: 0 + }, + recentOrders: [], + recentProducts: [], + + async init() { + await this.loadDashboardData(); + }, + + async loadDashboardData() { + this.loading = true; + this.error = ''; + + try { + // Load stats + const statsResponse = await apiClient.get( + `/api/v1/vendors/${this.vendorCode}/stats` + ); + this.stats = statsResponse; + + // Load recent orders + const ordersResponse = await apiClient.get( + `/api/v1/vendors/${this.vendorCode}/orders?limit=5&sort=created_at:desc` + ); + this.recentOrders = ordersResponse.items || []; + + // Load recent products + const productsResponse = await apiClient.get( + `/api/v1/vendors/${this.vendorCode}/products?limit=5&sort=created_at:desc` + ); + this.recentProducts = productsResponse.items || []; + + logInfo('Dashboard data loaded', { + stats: this.stats, + orders: this.recentOrders.length, + products: this.recentProducts.length + }); + + } catch (error) { + logError('Failed to load dashboard data', error); + this.error = 'Failed to load dashboard data. Please try refreshing the page.'; + } finally { + this.loading = false; + } + }, + + async refresh() { + await this.loadDashboardData(); + }, + + formatCurrency(amount) { + return new Intl.NumberFormat('en-US', { + style: 'currency', + currency: 'EUR' + }).format(amount || 0); + }, + + formatDate(dateString) { + if (!dateString) return ''; + const date = new Date(dateString); + return date.toLocaleDateString('en-US', { + year: 'numeric', + month: 'short', + day: 'numeric' + }); + } + }; +} +``` + +### 7.2 CSS Organization + +#### tailwind.config.js +```javascript +// tailwind.config.js for vendor area +module.exports = { + content: [ + './app/templates/vendor/**/*.html', + './app/static/vendor/js/**/*.js' + ], + darkMode: 'class', + theme: { + extend: { + colors: { + purple: { + 50: '#f5f3ff', + 100: '#ede9fe', + 200: '#ddd6fe', + 300: '#c4b5fd', + 400: '#a78bfa', + 500: '#8b5cf6', + 600: '#7c3aed', + 700: '#6d28d9', + 800: '#5b21b6', + 900: '#4c1d95', + } + } + } + }, + plugins: [ + require('@tailwindcss/forms') + ] +}; +``` + +--- + +## 8. Migration Steps + +### Phase 1: Foundation Setup (Week 1) + +#### Step 1.1: Create Base Template Structure +```bash +# Create directory structure +mkdir -p app/templates/vendor/admin +mkdir -p app/templates/vendor/partials +mkdir -p app/static/vendor/js +mkdir -p app/static/vendor/css +mkdir -p app/static/vendor/img + +# Copy base template from admin as starting point +cp app/templates/admin/base.html app/templates/vendor/base.html +``` + +#### Step 1.2: Create Vendor-Specific Partials +```bash +# Create partials +touch app/templates/vendor/partials/header.html +touch app/templates/vendor/partials/sidebar.html +touch app/templates/vendor/partials/vendor_info.html +touch app/templates/vendor/partials/notifications.html +``` + +**Tasks:** +- [ ] Create base.html with vendor-specific styling +- [ ] Create header.html with vendor context +- [ ] Create sidebar.html with vendor navigation +- [ ] Create vendor_info.html component +- [ ] Set up Tailwind CSS for vendor area +- [ ] Create init-alpine.js with vendor data + +#### Step 1.3: Migrate Login Page +```bash +# Create login template +touch app/templates/vendor/login.html +``` + +**Tasks:** +- [ ] Convert login.html to Jinja2 template +- [ ] Create login.js with vendor authentication logic +- [ ] Test login flow with vendor context +- [ ] Verify redirect to dashboard works +- [ ] Test error handling + +**Update pages.py route:** +```python +@router.get("/vendor/{vendor_code}/login", response_class=HTMLResponse) +async def vendor_login_page( + request: Request, + vendor_code: str = Path(...), + db: Session = Depends(get_db) +): + """Render vendor login page with vendor info.""" + # Load vendor from database + vendor = db.query(Vendor).filter(Vendor.vendor_code == vendor_code).first() + + return templates.TemplateResponse( + "vendor/login.html", + { + "request": request, + "vendor_code": vendor_code, + "vendor": vendor + } + ) +``` + +### Phase 2: Core Pages (Week 2) + +#### Step 2.1: Migrate Dashboard +```bash +# Create dashboard template +touch app/templates/vendor/admin/dashboard.html +touch app/static/vendor/js/dashboard.js +``` + +**Tasks:** +- [ ] Create dashboard.html extending base.html +- [ ] Create dashboard.js with data loading logic +- [ ] Implement stats cards +- [ ] Add recent activity section +- [ ] Test with real vendor data +- [ ] Verify navigation works + +**Update pages.py route:** +```python +@router.get("/vendor/{vendor_code}/dashboard", response_class=HTMLResponse) +async def vendor_dashboard_page( + request: Request, + vendor_code: str = Path(...), + current_user: User = Depends(get_current_vendor_user), + db: Session = Depends(get_db) +): + """Render vendor dashboard with initial data.""" + vendor = db.query(Vendor).filter(Vendor.vendor_code == vendor_code).first() + + # Load initial stats + stats = { + 'products_count': db.query(Product).filter(Product.vendor_id == vendor.id).count(), + 'orders_count': db.query(Order).filter(Order.vendor_id == vendor.id).count(), + 'customers_count': db.query(Customer).filter(Customer.vendor_id == vendor.id).count(), + 'revenue': 0 # Calculate from orders + } + + return templates.TemplateResponse( + "vendor/admin/dashboard.html", + { + "request": request, + "vendor_code": vendor_code, + "vendor": vendor, + "current_user": current_user, + "stats": stats + } + ) +``` + +#### Step 2.2: Migrate Marketplace Import +```bash +# Create marketplace template +touch app/templates/vendor/admin/marketplace.html +touch app/static/vendor/js/marketplace.js +``` + +**Tasks:** +- [ ] Create marketplace.html template +- [ ] Create marketplace.js with import logic +- [ ] Implement import job listing +- [ ] Add product selection interface +- [ ] Test import workflow +- [ ] Verify product publishing works + +#### Step 2.3: Migrate Products +```bash +# Create products template +touch app/templates/vendor/admin/products.html +touch app/static/vendor/js/products.js +``` + +**Tasks:** +- [ ] Create products.html template +- [ ] Create products.js with CRUD logic +- [ ] Implement product listing table +- [ ] Add search and filtering +- [ ] Create product detail modal +- [ ] Test product management + +### Phase 3: Management Pages (Week 3) + +#### Step 3.1: Migrate Orders +```bash +# Create orders template +touch app/templates/vendor/admin/orders.html +touch app/static/vendor/js/orders.js +``` + +**Tasks:** +- [ ] Create orders.html template +- [ ] Create orders.js with order management logic +- [ ] Implement order listing with status filters +- [ ] Add order detail view +- [ ] Test order status updates + +#### Step 3.2: Migrate Customers +```bash +# Create customers template +touch app/templates/vendor/admin/customers.html +touch app/static/vendor/js/customers.js +``` + +**Tasks:** +- [ ] Create customers.html template +- [ ] Create customers.js with customer management +- [ ] Implement customer listing +- [ ] Add customer detail view +- [ ] Test customer search + +#### Step 3.3: Migrate Inventory +```bash +# Create inventory template +touch app/templates/vendor/admin/inventory.html +touch app/static/vendor/js/inventory.js +``` + +**Tasks:** +- [ ] Create inventory.html template +- [ ] Create inventory.js with stock management +- [ ] Implement inventory table +- [ ] Add stock adjustment interface +- [ ] Test inventory updates + +### Phase 4: Settings & Team (Week 4) + +#### Step 4.1: Migrate Team Management +```bash +# Create team template +touch app/templates/vendor/admin/team.html +touch app/static/vendor/js/team.js +``` + +**Tasks:** +- [ ] Create team.html template +- [ ] Create team.js with team management logic +- [ ] Implement team member listing +- [ ] Add role assignment interface +- [ ] Test team invitations + +#### Step 4.2: Migrate Settings +```bash +# Create settings template +touch app/templates/vendor/settings.html +touch app/static/vendor/js/settings.js +``` + +**Tasks:** +- [ ] Create settings.html template +- [ ] Create settings.js with settings management +- [ ] Implement settings tabs (General, Payment, Integrations) +- [ ] Add form validation +- [ ] Test settings updates + +#### Step 4.3: Final Testing & Cleanup +**Tasks:** +- [ ] Cross-browser testing (Chrome, Firefox, Safari) +- [ ] Mobile responsiveness testing +- [ ] Dark mode testing +- [ ] Performance optimization +- [ ] Security audit +- [ ] Code cleanup and documentation +- [ ] Remove legacy HTML files +- [ ] Update documentation + +--- + +## 9. Testing Plan + +### 9.1 Unit Testing + +**Template Rendering Tests:** +```python +# tests/test_vendor_templates.py +def test_vendor_login_page_renders(client, test_vendor): + """Test that vendor login page renders correctly.""" + response = client.get(f"/vendor/{test_vendor.vendor_code}/login") + assert response.status_code == 200 + assert test_vendor.name in response.text + assert test_vendor.vendor_code in response.text + +def test_vendor_dashboard_requires_auth(client, test_vendor): + """Test that dashboard requires authentication.""" + response = client.get(f"/vendor/{test_vendor.vendor_code}/dashboard") + assert response.status_code == 302 # Redirect to login + +def test_vendor_dashboard_with_auth(client, test_vendor, auth_token): + """Test that authenticated user can access dashboard.""" + response = client.get( + f"/vendor/{test_vendor.vendor_code}/dashboard", + headers={"Authorization": f"Bearer {auth_token}"} + ) + assert response.status_code == 200 + assert test_vendor.name in response.text +``` + +### 9.2 Integration Testing + +**Full Workflow Tests:** +```python +# tests/test_vendor_workflows.py +def test_vendor_login_to_dashboard_flow(client, test_vendor, test_user): + """Test complete login to dashboard flow.""" + # 1. Access login page + response = client.get(f"/vendor/{test_vendor.vendor_code}/login") + assert response.status_code == 200 + + # 2. Submit login credentials + login_response = client.post( + "/api/v1/vendor/auth/login", + json={ + "username": test_user.username, + "password": "password123", + "vendor_code": test_vendor.vendor_code + } + ) + assert login_response.status_code == 200 + token = login_response.json()["access_token"] + + # 3. Access dashboard + dashboard_response = client.get( + f"/vendor/{test_vendor.vendor_code}/dashboard", + headers={"Authorization": f"Bearer {token}"} + ) + assert dashboard_response.status_code == 200 + assert test_vendor.name in dashboard_response.text +``` + +### 9.3 Frontend Testing + +**Manual Testing Checklist:** + +- [ ] **Login Page** + - [ ] Vendor name and code display correctly + - [ ] Login form validation works + - [ ] Error messages display properly + - [ ] Successful login redirects to dashboard + - [ ] "Vendor not found" state displays correctly + +- [ ] **Dashboard** + - [ ] Stats cards load with correct data + - [ ] Navigation works correctly + - [ ] Dark mode toggle works + - [ ] Responsive design on mobile + - [ ] Profile menu functions properly + +- [ ] **Sidebar Navigation** + - [ ] All links work correctly + - [ ] Active page highlighting works + - [ ] Mobile menu opens/closes properly + - [ ] Vendor branding displays correctly + +- [ ] **Header** + - [ ] Search functionality works + - [ ] Notifications menu opens + - [ ] Profile menu opens + - [ ] Logout works correctly + - [ ] Theme toggle works + +- [ ] **Products Page** + - [ ] Product listing loads + - [ ] Search and filtering work + - [ ] Pagination works + - [ ] Add/Edit/Delete operations work + - [ ] Product images display correctly + +- [ ] **Marketplace Page** + - [ ] Import job creation works + - [ ] Product browsing works + - [ ] Product selection works + - [ ] Publishing to catalog works + +- [ ] **Orders Page** + - [ ] Order listing loads + - [ ] Status filtering works + - [ ] Order details display + - [ ] Status updates work + +- [ ] **Customers Page** + - [ ] Customer listing loads + - [ ] Customer search works + - [ ] Customer details display + +- [ ] **Inventory Page** + - [ ] Inventory listing loads + - [ ] Stock adjustments work + - [ ] Low stock alerts display + +- [ ] **Team Page** + - [ ] Team member listing loads + - [ ] Invitations work + - [ ] Role assignments work + +- [ ] **Settings Page** + - [ ] Settings tabs work + - [ ] Form validation works + - [ ] Updates save correctly + +### 9.4 Performance Testing + +**Metrics to Monitor:** +- [ ] Page load time < 2 seconds +- [ ] Time to interactive < 3 seconds +- [ ] API response time < 500ms +- [ ] Bundle size < 200KB (compressed) +- [ ] Lighthouse score > 90 + +--- + +## 10. Rollback Strategy + +### 10.1 Version Control + +**Git Branching Strategy:** +```bash +# Create feature branch for migration +git checkout -b feature/vendor-jinja2-migration + +# Create checkpoints for each phase +git tag -a vendor-migration-phase1 -m "Phase 1: Foundation complete" +git tag -a vendor-migration-phase2 -m "Phase 2: Core pages complete" +git tag -a vendor-migration-phase3 -m "Phase 3: Management pages complete" +git tag -a vendor-migration-phase4 -m "Phase 4: Settings & team complete" +``` + +### 10.2 Feature Flags + +**Environment Variable Toggle:** +```python +# app/config.py +USE_LEGACY_VENDOR_TEMPLATES = os.getenv("USE_LEGACY_VENDOR_TEMPLATES", "false").lower() == "true" +``` + +**Route Handling:** +```python +# app/api/v1/vendor/pages.py +from app.config import USE_LEGACY_VENDOR_TEMPLATES + +@router.get("/vendor/{vendor_code}/dashboard") +async def vendor_dashboard_page(request: Request, vendor_code: str): + if USE_LEGACY_VENDOR_TEMPLATES: + # Return legacy HTML + return FileResponse("app/static/legacy/vendor/dashboard.html") + else: + # Return Jinja2 template + return templates.TemplateResponse("vendor/admin/dashboard.html", {...}) +``` + +### 10.3 Rollback Procedures + +**Quick Rollback:** +```bash +# Set environment variable to use legacy templates +export USE_LEGACY_VENDOR_TEMPLATES=true + +# Restart application +systemctl restart gunicorn +``` + +**Full Rollback:** +```bash +# Revert to previous tag +git checkout vendor-migration-phase1 + +# Rebuild static assets +npm run build:vendor + +# Restart application +systemctl restart gunicorn +``` + +--- + +## Summary + +This migration plan provides a complete roadmap for converting the vendor frontend from legacy standalone HTML to a modern Jinja2 template-based architecture. The plan follows the exact same patterns and structure as the admin area migration, ensuring consistency across the platform. + +**Key Benefits:** +1. **Reduced Code Duplication**: Shared base templates and partials +2. **Improved Maintainability**: Centralized styling and behavior +3. **Better Performance**: Server-side rendering with progressive enhancement +4. **Consistent UX**: Uniform design across all vendor pages +5. **Easier Testing**: Better separation of concerns + +**Timeline:** +- **Week 1**: Foundation (base templates, partials, login) +- **Week 2**: Core pages (dashboard, marketplace, products) +- **Week 3**: Management pages (orders, customers, inventory) +- **Week 4**: Settings & team, testing, cleanup + +**Success Criteria:** +- All vendor pages migrated to Jinja2 templates +- No legacy HTML files remaining +- All tests passing +- Performance metrics met +- Documentation updated diff --git a/static/shared/css/base.css b/static/shared/css/base.css new file mode 100644 index 00000000..e69de29b diff --git a/static/admin/img/create-account-office-dark.jpeg b/static/shop/img/create-account-office-dark.jpeg similarity index 100% rename from static/admin/img/create-account-office-dark.jpeg rename to static/shop/img/create-account-office-dark.jpeg diff --git a/static/admin/img/create-account-office.jpeg b/static/shop/img/create-account-office.jpeg similarity index 100% rename from static/admin/img/create-account-office.jpeg rename to static/shop/img/create-account-office.jpeg diff --git a/static/shop/img/forgot-password-office-dark.jpeg b/static/shop/img/forgot-password-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cdd69e3193e142e58ecf6c781bcca588b02fcee0 GIT binary patch literal 58822 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 literal 0 HcmV?d00001 diff --git a/static/shop/img/forgot-password-office.jpeg b/static/shop/img/forgot-password-office.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4dcaf51958e491e34f6d0d85f62ffe24c0a88b01 GIT binary patch literal 91979 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 HclLh(wt;3s literal 0 HcmV?d00001 diff --git a/static/shop/img/login-office-dark.jpeg b/static/shop/img/login-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9dda0540ac36f4e36e3f3bee66aea63ea4ef258d GIT binary patch literal 14198 zcmb`tbyOVPvnbj#FgRo&Sa5fDcXxM!1$TE336dZQ?h@SHApsIRI0TpA8rz-SH@j_zP60602%xM|2rkm>0gkRdJsAm9}M2haojW)|));%aJ2!2hvb&BCZ* zZHoCXum2<2|N8*S8%uW!*w6#)``W_A%>w{HMlcxF+r#BAYy*R_&F%kz1OCEpFa=@w z_`k6AzwnoTX#Ry;{-M#*kc82Uz+f@!{|z?(-{Aj}3nKyGEI9t2{{L+rmOe230YF|4 z0RH;)U+(|$)qiksxG)tsVfW(8e{jzE0Kj(%!^i&zXPyQC%@F{AzwjR%RW1O$cnbhc zV-}unUjNDf2w>-7&>)-zJ?NJN1c$1{FFYP17Gly3`E`A_{iSH4-!?I9#CQ1 z9XQpy$M*dEya>DnAP5ME$cQMYs3_@Vz&~qO^^mnep!6x!Q z^XwlhL0~v|2m&I~^8$eMFZ#*2X)$SNx!KC!PoUlJ8L-~JC;j~Uk0@1U_UmfNdXt>J zQ9a`}&ujl~?VTs<#2%-MfQ)JkVjob}(4ylo)7hAnp|^)__x;$+lf_N-nB(tHO8j>; zOnwcv&CHkxdH}+(*JE(MRqIyraJC`myyx%Lt4=yyI-DuQ{?+mPrUl&Kf*GOQ3 zPv+ifph|12vmbBvIvLQ7dO4r`K}sfrBK*J;))`8qgFl+69`Aj((>d0R=GRFIkb!_^ zLcI{W8jK2;#n{aHMkixo6Hx^~O5Cyz7o?y~E9+#a@4Mu4XPj(l9hv|}dJEDmk5967 zM6zg~8s-tI4>IK5Dfjr(S8E0qL#y~vQJ5UV)N*)9m^bP~=qW%#jcgk6320rmRlvsn z@TiID*34-Q#M1vD$pA+HvZ4vJvbSbX~J1 z16UL4f|r+@VgLzPCDB_flfEk@al2q-gm&e|6f#2^~U$@&ZJvjl7jSvAY z_*{x;`PHd*tIqV(`d3Li=WlB%hTFwJQglkS^lDk1`VK5QcB%X=hnV2QXPruUI{KYPqOP`JA)3uP%;zQ-trhEF%G|1XBpu z!)a?+IHTp-^(!h`-LP6sjkJOo@CEPJ+&g`1q1gn>WYl&vl;|)zBSlE4*y^$CPBy=b z`(8u{i(Z771{f6;8@LR_@b_`q>D2>rwNNn4fm$)N&f`D>pIi-)oI$d_De6ZteK90} z0VJn}gNllTLl=XKivkalSJOzbicbO;B0(eykzN>1U3Cku=E5;u#)E;}#AJv98L93i zLC}jB0J7iVxOlqrRSX3Llu9s(6!-3)v(QVSXU`Sf%T!0)cB2kb^g6k}CZqUfKBPdK z=ep4Xz|HL3JI`MPAa3HkjcTXvM+2~WJ{5-Uo?DNx1K^yzr|yTApM%t6JRJ@oTnzvs z27siPDsT6D$lw9E$$RJEjUYZIQ~(8-&n|+YURT%OpNxxi=bt}$-Z+0R{2~VA<9Ic0 zKmp?%!#l)X6VK(ggMxiOL&V;TE+m@#^z!Tz2pkE#=y-ev4h61ZBv!sgm0h|q!zt5#@Jg=zL~Jl| zs^?>IA4Iqp=Nb6)q`Ow7&4M3-3OU(cbnneU3mU!~JK(XbXLM{DkBaRI9_uE5 zDBhV}q!NRmqMeU9I&Irdtv)K>Z68+YTP7b; zeKv=F&po)aN)ImVXd>glAL+l?zO+OwY9x-u)lxwM?`m9C=vnzMw+b* z{do>|caK`V4u{K&gM&yStm{V)=SP$Fcc)ID0i3f;Q*3=PJi(+^r`^TmqwMz<;~rir zrR_5pydG{2%LPG?tMsQiug>)VR58F|KH1wUP~X#e_i+DUe|M%`xKp?*F4(|vuKzR# z^YqCSK(z#r>#a1s{Qa7|FTA|296N8fa;&X{AD0EXoHx2yw_N}LHw2Uuq^a|>v(w){ z(73Zx@Y?eZbz*M#jP%uM2P{04P6UVrQ-to@{X2;tA3HOInddFfgDKBQFvtLqI5Pmp zlKeBaTC$*iVee8g7y$awrUnx!p9|{%@K;zzbfe zK;RZ*9?|ClP+|TIVQy2}gk>j=kPn*x$ngsZ_6sr&V2J^Z$t7Sp08WAcJ}nnO&DZDp zqz(}SDJl&+L{I^^Nm_DJAwW|^?#KWDX~4D;10cyI@-Qie8e}ke(;+bM|GvS&eEaGj z-~Kuv>K#kXIwAT%wGQoy$)j|MdOWefB5P-8( zrVL43UgAq4;TH-qX6)2-EvI1$@{$;as3e3CIgnOqJTaImgrUTAw&G``6b!Idbg%Mn zr6N-(WKc=^DbphXs{xRZztaGODkTj76qAFtFpCTT zSZ-ihZj%R_pP=me z768J6z;Z{hJaYp~;)q?y|H%En0banIE(QfaaIg#n2_7B-2M5y+mH~q?;oz~z*&$GI z^_OH69Aau_t_Wvc{r3BwG*6@-%QQjT*7kKPyZ`v0f~Zc-P;sCg$m8my3=U| zb6zW#Jp=oq9xShyiGucrooYwy8Q%Ej?mJhJOjVT?@=ROdMIm2g5{50rJOgL^FP2|? zU-a7N3&fpT#IGE161oY8c1OLoe%N`OJ0%>Ob@MzLZY25nsM2Rg)SyfC6!ACpHV&SA2=>tuwa)+{?v;~ zHHmF~lntC%z>|IKXYF4OD(Ko>HHP&Er*ooZCv8sSZKTIIy7tDMABo8adG7W)7ph3U z2Z@|q=3JY6gk4IztP@maOnI9qFOY)+^L^!_gC|U^tc{*O=c?S{K&)Dm)Mygu zwldl&Gxh2&X)-igCeL+HAW0^QnSGWq&LB&c{cAWx=+lO(NS-L=`%q{V!+a3VM+^S| zx2f$22CY&pCljSIfAd$VKednNaCR>oS)YNhHblWs#mb5GGXqns&0gg5;kgIdt!Mnp z3|bY6P`$7|T<#A{;^wGWec@|m-XA6o`$RoXokY{*&-jTYS~^(Bx-vZo8Rn zv@B5r4MV$GyKQ)Wlr6U*GcGD*1#0jlxLmJsxeTbe03A{3Nk5j)6CT--9VEz&RC}!p zIUF0^EITyE?s8(7)^Jg zqYWrCKH*|W8zlDTCg~_$R_xs9b(8WtjvygO_bPT*-&fcu#LeZ^ocoTxuKK4gpfj4y<}>Jgt1ZE;_G-ug70l8prIGk5lbmD$BG62n8DycRz+e#xVK*u@zzaG z=I-s#=eAVLSplE@>0VOcr=+N>$gA{A1?E0=Q{+l$>@8|^qK61y4%(Nn|cioI1o#$haLl?o+uN9O+i9;j;zMN-4GOL{Nd ztM#;ZYG!EYk(PxcvoO_I8TqOgEjFl&$iAZo0S|rQRG(R0FjSwW_*yl_G;t200jS;| zc>z^oGUJ|9hww;D%_B}tJKYqfq% zJJRVW)!yH06hW#U?S0K*sBGae#s@sirIX8ZXsPN~7$K+2l+%nnT-n%$P; z4R3HvSki@tUlP~tc}mp!xna>dM_2iavL0-Vj^fNN-&5Dbho-$Yl-@bI#Mia?K`v)r zyYF91usU94jnoIN|ZRY`kE{v}oGFO1xBsk9nFcBh66Q=b-li98@4+@gg9sz~8m$=Z^1OMVUT zEA;)h!N&dDjo*vJ#m37M4h3@{DiMl)dB;TzoKw>FuJu(inDgEjnb9rt@K!TA)6HsS zhQ;cljL3Sp5E6k5ki{5Pzn6-9-})=`iSu1!oqT_cJBG$A^{pR>b+wCgUVn)EWZXoz z3?0#P{1exMFEW#U3~kJ441QZ+Qlv(~_5>#}XqB8ctU!2UsnIdl*B!hbmyzHvK5U+x zl^j)O=-2Hakf^LO_>Je8$v%aksGlZQ+D{*Ay52F6zIZL#iT*foV>aCQnRD90>Pw;(3?VZuGm4wP?rRR9;bMG1JFY*)|Yxp@P3=$>9Xn zR36BGVA;mm{?V3~O{Ban6vK)%+xi2bx?>Bdj!}_8gnNcJMFv<#XjtJtrXKIIH&h-1$>sb>08H z_X^=rdh?ClXx5s^aml<|5qSmNJOTs-n@%lH0>*?+igpTO;y~y(DfSPSnDT&O7?-m) z9$jw##LS@R_r2cEC%DbmS|WH&&H=4Mt5%B|$5S?UkOZeh^Sala^o{pkF2FzVUZA~XUhL4h} zUDLI%dy_9MM-Bz2RO>n#${n?)e8%o??zHVReEf+F*7H!`INo_~WZ77%Acn`o92J+m z9Y&VtEElA$veZKrw=MBNuK(qdxZ zRgDavo+riZ`k>j8!WrHYcZS1IQSx=W1vd-nR3q~b&dO>{UP2j>FE6*}sim%^OuTb> zy{@3lara%4kt{Q!fmSIhE5ZU*JuVGs|L|!D*KpV^YoguC(LRRvN~vbQH-G+KVdXfR z!Rgv|nta_7FQn>;Z2p3ZAg}+kyKXR^j+d4#!d*K@l~=^_wht-svL2-%l{BtcPaKj=$E|PAT4-~ptb}+b->?ILwhar*e z200W90aZ^F^V3uWEm?zU<<&6<-3(meh`d(Xv*T?oqN5c%elGV+3f_Ri*KnC#DW4xF z5lHahk{+p3!Z7zY@Y}e@^MX#Dp9?xwV?=vuyYoC1iD~72kN7_n3xTN0$0Dyhk%?J& z-K^|RextsZE0E)ynNRX;U^#wqZqL8+IYo^t3z~b(SO79pu@z%V(1;u8(ehzWe+#wy z__df5wG#!YJ|RudC-|mJjgr0SKyl$}MsiQ!#r3rzrPFu^zN%FJL_aN!j!?_P9~P>-zidsT(}rQIVnvYg(b1J&EE#{ICh5Ye zVPep_QLyGlVyl3dsj20uJ!xG{I`W$P2LdBy{LNgGzl_t;=9CfzfN_SV)Ou4X%rg5J zIkIm=IzMhQ@rym&*EJuCgsZS7kuFsH4XEM~%i3=~TdO5ZS_oyNx8HPa-KrPOVpwxj zIagJo&6Mo~y6q!;&Q)&ook6wY7DEx&$lQ*Yr=;emQ;Qbtm0#<|*cuNlJA7*g`6&OV zwk;-ICSUz4x4*=LH0b-!E95y-Tg7Ab_Of6$=Ni=@W}_Yd7t+1Ao^K9K+~F!Ap`8cLwjqSOJL2P~IHXqJXKp7}8+` zNqf|Vj1JDkW(~!(8CE2fO$1^#l7Ty8p6OcVc5}4nz*?4mf8X1yA8R_a9%Gi^|9R z5LN3LuU2w1`Sk4?Q2qcp@>jY~v29GP6o~LU@FZw_JJunJSvv-7*y34uV z)4t9I3Dht5e+Oz5u+Q{3W>C;J%siOZM9Na(#4k`WjN*G#v1&$aL7b9EJc#5&c(U`a z%Jee#$jyMvMkzRsa8sM0a#X&p-J1O+3O>WGn?-C%;ak#J! zlrLWa#2q@spUbJI^oWb)IcR!8a)9gG!{8 zKUuuug3`6ntPz9Yw$$;aYK1jDW{TUR=B@Wn+a^Y{(yyI<8#}pvC6obvo zf=_7FJSh_%4x3Scn|4!Dp|BnD#i-8W@5i=ajdDlDww!E4@=sJ*N;kVJyl=Vmdd^m~+ets?d>GK?X++pdFKyh<-UVs3RXm-KWpEv%dsAdc@z(K70o;)KTe&Lx1Y<_QDv!SIVdEuwFn`jY`3GflM`Glma2A}9!IHkmw5~d6fBpD z1PsMme4*7TIZ}NFs6=5E0wyS|A^?K>TO0txRxbak5MYwCi>pJ;TtgG`$k@cxYQIga z|2cJu|DS3AbT<%p*f(t0w8rS0q>sDEALaRB|K2CFw-rGp%z@KtGFg+&&;ofs%@vHx z-hsq3{z8R6NeFeXwVN|WFVg4`s>JzP_QR$s7{e_V(i zdPPmsQxTln;l3-jpEeg|azBn@I1>}xioGz#5Z!#1&v#lm6q_#oEjo4~AnzfX{~F3O z=7*1`HR$O#su%G1Id3`%byqT%a|RQovmlHoa2tI+c6<3Y!mgC93Q7KbnuioRrU;x~ zhi=`3&fd2^X-SEX1fDYI8)OyjPJOV_P;G$Bol#eE2{(aO$x430dCpC6`|L3(fX%n`Bq+y_j9EP+_u~7%0KWZ>Jdi`Mx2}FZf{WCZlHY9=o0` zu2pt3oqnf3$YQ+~ur=ZX_L0{aKk}7cWheF*_OWgmwYm+ysW1GNSi+YWQi6nGMsj$f z;PKk#TtPt${=K3~6=*$?oK|$eN`BTUXU9sTA#u;1W;R^3M@26 zQ&=ae*=2)YrLg8PFYdXDrC^FdoZIo)EjKVMFG}@JCg&Zx{*khE(fz%<=+2^WOCSl^ z?M~m#s9izW5`EVHXYYzvobQ70?}h6)>lJ;gj_etLO*=_7&z4q!uIk* zHpYGBXRc0{sKEDtceK>{MgZ#$zR2b_S^bFNvad&zINg%C5PgHsTr+bx*&}IL;VklP z@ApmbL>a7|A!Br1XQk?50wshV~ zR;0d7S>R@E=vs}6e(O_}8sdJrRA+7^U}eahJe=}*q|N!IJO>H&JYEk2iPhQ0il)Hu zerEtDO|9iN%$L8Gima^ns=qS63<@`~p7c|dH!dz#NMg*N*nVLHNuAhcs>=?wNuw@3 zrB8|N{$kT0Un(7T>s_H(|}?fYxNQ_P+7 zG0IHkK$T`bFRs9-N};<@Al~13GVjo2$eglb)MSXux_KLq^Ok|ITfMPjKr?WIx7x>4 z%AI~i#I1irfa4h;V%>!-&;(<2MWj_CxeJl{CQqhWjWw)u@;Mzq?^WSXFx?8?c>3Hi zXcfWgP2KPnzyFkJ_7!O|Gw6!zjJLRS7Mos$5K57ku_RdNSXtAx&*duLY0dumdZ5u} zZt>@5><3A8Gld$_;r&ur&5D{xqGiu*>pEpcpDE>4Avg0ouRVUHp>NO2CoD#v>{}f46wj zvaK+Y)psc^+@qOk#&H3~i!bKaJ7mkr_>BCQQ;dilt$lI3LD|m%EY&BV+6Ku@#c%9OpG9hH#Fm?SaAqhMb(7 zGwXDAYvsBKhP+Yci``LPjOe{!DqAg60Sg}|kED09Y!_XY=uEZsM_5%w@%}C_9dzN6 zi$v&3^^8o;kBnN~Ma3^_X4SgRi8Wu|$ncNUq#S@ZMz9BV{9~0Yl0k2~<-!0RpAd)y z#rFDYl)qz4V_ak0w?2|rZHkf+fm1~S`Ya~4Y1!}Ux%ZIJGT1e%Dl3C^q|t z9J9*Fjr@QKU#@ zoFC+vL5;*snG23-t{?N>v(2m8VC!PS8{yaWQ|`68Z4EzwO{uYoO#<#*Sxk(2d(p_B zJemS7#wCiW=%@Dxol<124oRqLz11yuPUe=B-xYptS`F9e>Le-AmB8DpD6{id=yi1Z zN~601Dc5fJGI5H=S;3cxzaSta^^NkD*q!lct;5PlsM`V0a_848f@he1uPHgCY z5q&R)$ekuWf{t$@S7sN7IKpzS$vG>UGy51;ekMzK+#&R>KnCqsa{A!X^=^3W%mhET<+8 zi_tx(lZ7($3^M|VDWLHOZ2RV223^D5QM9rFj7_f}j5hv=UktEkg0>W01uw)Z^+c-F^Gc59J6%q$svM`qU8^ntBveOGhwE z?F!ccH^Lg#Wci9LO69C8MEA(>vccS;VZ}-L&yU6t^xPqomee%efTtsb-yh-C%Y7*8 z^0_b{V=gVOs}J`S+d5_&Ia!+4gGqyi9?`9iL$*#w{E#KZ&(O*{>FJJtp%0n9doy#o za|Ah7(xE!aSx`s#0;>A`#vG?aF|bcVs9de9HP&FhZI%ICy@>5#--m$BKknDx?mpWk zYb@`BFLI(^h6AZSVEQO`9k(_jnd+I|wfh~pm9BJw#@XGriI!omYAn^O?HQPKN3vI; z)Y|+_mPu;kSa?g(O7St6e==X8>Q4+D5jO65Q0*+gU*P=^!rl8xC{hzRyzd8jd;AeR zKt6OaAN%?}R!NHnLz3l2TpoxOaXihhdsMMenrM3NoJ82&XDb-V&h*#HfY;0kkhQOM zN7E^#IBfisp*ZXg30hcfQr8CW_XjMY#%&ht(~z8n7B4sVk%$gIhH;S``EoxJiVGH6 zoF4u>=17wq9;-!HCBsfs$d>Lh^PmmWjgkwbs&?`^Us~Z=Yq~h|sA{B3n(QVr{ekzV z3~3$Y+*g$69sHv%s=EG3UunZ>O)T8BgyyYCMqQ+iyvm)*LqA+{4u17@gyxhdbhVmhN-yD2<}J~h ze_bu_M~yt$h=N~X*$F8fB4LQoPjVt5f8W6{zGk7}lS*NNTq4T984vXL?UcE8 zBVRVRm+b2qR_9{<`$2qNjFa-nPu;>%*zNDL;C$s8yh+)h0AJ_?*(a4y90skbG@rrV z6+PhN;2XHNB$EyGJ}l!KFfK5yu&CsE!Qa#o>?KD(WIqFY@bRdaH3GB~N>UHSTs+Zo z<(MB4j(Qh#pyKfG|6IUWC~anL#cp~zqW7hd#P_t}AM9koEAr=1At12vw6cFM?0wQo|^%Z_s3umZycW z1A%rA{l3=V2ot$iYWhE?v`W(-2SepH+;V& z4rKt9?MlUy%sh?+^u5-4qKHah4m%j9yF(aHS;1ah5l{-Eexy_)Q&J?ybQw8ZRpm%1 z*V_z>=JM-t(R_W1LxnB1V5|dYSUYl3LA7rBEA}@6F$46jiYo>Om~l~vXSrVb#?qwT zMG<(6|k$s>H{?f2O=xzjGp30lWZ5) z^mS2p66V&egh3jbSF|L#7r>`#cE?C{EKd_Sd)yw)1=F~uNvX+-_eqSHWK;MEUT80{ zMopb?IGj;NMQ9^IW%aEFULh%o`KOo)%pJe{sufb3_I$=b?3)}|OF9J?$?x8_U+lJ!nj|ptMSgrQsZ60+)Ba7uoGO77EeO!bDUb3V%9@10) z9!D7*i=$VOc4Z=#uBz5|lll&LPh76QPX4g77*5>DSl6VV+PA+{^Nk_00*G(~-?>R^ zI^D#g;4dniua!SUD^d{7g@fk2ixtRHZYD3ELnAEuk&qjpVQl0p%izm*%y&flQ zN8ZCVg-aGJ5?`sgL(oT*vVrzVy`}CeW0bmN7Nvb>t>E>DAlVUINcYQdj0s)XpDQ9( zAxCUzn0_DJyl-?hhS#1~VazrR>lIa1Xa{X+h{OgkpHonPXKxLCD|7#TL z52dRd(cOQN*d#UDe`pGcGRSgg=O@W&|^^X6NolFpKW zLKkCqW)D|4)46swu1uWQH)(KbHYqug%&!p+9ez&s;+iLQ9lDOI?MVK(4GTw0l6S5m z%hmc2tZP$(=UJoe8YwOBmw&OnmSnYHbHg2_Q)~6=Yy>=IFlogi+t!(n0^$@m8HffS z9&zAkZIt5>ENjR1-@VQB4JRPlAXC=dUdIY=W2n>Od4G?shKNId98=TNA+{W#jHch7 zx?VPKRqAJxtS4Oe(8oOIeF{q(OAHvJ{N=aMIThy&-|=PlQM?u;=qtJ%;4b!Am$v$| zhi(rQB<0u)yQYZ1Rwh`z%B5(h)0=NVoi+{gB4OWCA$(0{Ks;(w>K5|j zuICr-pUshym(~O_+C28+sEowm!BdD&!KWjZZ>f&rET!F>CcKXk-CV)f+Di%>MYYRRKii0en-lg-@R-N z?Yywp35Exy+_xs@D1`*y;BTzon=MHjj4Hd+CD7PsZMH4=$O|`5zj#fQ6YuCghJ?6} zYT+@u49zevrxunK=}?=^X}=$?U^^=34%|pn6R>(csF_->MvV4C@1v_#Y$L%z5G{>& z%bN)Lbf1r@xHH;FDCPM&`}YbHO$G$tJi`O5>~x6;zG84Rn90y4*@4jz*z#$mSCMipf?UH82;bL`px zquiJq*rtp>e+_lCyhB|YpOxkC;+3&?my~Y^dmdR~&wMn(_o6%^59kz&}bgJx;0)oBDE9p?4Uv}Rr@!;_g zy6%Q{*LYH!Ds1e&+Trp*e`wXoci93Y8!mVXk-X_*-8oaRJbe@Y9x{$5JYrii?=1z9R2jDhrKlIb~7-N&N z$9PwtR1vek`vu#U+XP!~4bgrE2Az+Lx))a0V3AnNDy+Ckhxu=96CMorUpuEjFbq@- zi;V3hxjMVJMuM6toNLIx8~i{ZQDDVVf&lI!v_zVAR#WWD)kUOFqz@)?Q4W|uHk3ofqdX<&FJy)ckHq737a^^w@ztnL*?+cr7H3b*f!;WSiav67903Z zJqMt3L9}aVuTc@mz5gV+cFEuWkLcHU^D^&{Op67+-|N@?!XFdDh2C?;P1(|F>yTuk zF!Ft0vV!|bD7xI)Vmvc)@-xc4M7}iU6b&UjZ3Ne91_3DopfoMkqV_EH& z!i4+k+8!R7H_Vk~m4RwG?$K3;8|CfP*L?fOkI`i*!~99NqSic9gZKPR*{Z)PD}_>z z?Cg0Sqh}{PO7Hn+vpxO)tBb2t@`91fk2ahI^=qqc{Z>T5vC%1SIl^HKxAnq~Sd*66# zEi!Up%d}x!fBS)f;lm+>_)oWFw-f%apnF&Z68ctrG>FrBWFO0LExy>HM09ybb0{9G zd^lQmEXkP7+-msX-WE3=S!M!+XGakE&=AWuzxxmuRaw|clR zspH}8wp#n5>ccYW=ZFN4SLpULm`Yw_zuwR6e#29w*|e+{-0MQ3bf-#7@WAwNGT)_y z-}tzR*_id=(0Ff|qMzysdA`nBmxeYVUuKZ{_h;ePSeWt4dr?qm*F_y86ku7^7hU{d^z9h-c3dat+{x(yz{%OeO;=Ts$H>@(=iE<#3}6S&0D^$D z1@V|B2-@w$M8xT1y>wlZ4ENB@0|3ZOL73LdC+UbN{CK2d?{@Mo(7>O!EnZ6orkqI*nR-O7y-a3P5&wVzqI-hV$jGNG`;Q|dKSM!z_8b-U$q#_)AM`QaL_|4DyTAYvkBCAfA&3YD z3PMWC3@ns7nogLq_5FLxFl6L}E0TczIN8p}a&1{CNim9+MVsOcJVg6399;p`3r8Zc z5GGZGYFfwV=z6^*s)%CmUX>hMq;Iz$ZvL54wcEiDN! z!UQ~p?+jD>)DE-IU?gQE3k#fwf{a2wG>MlQL7+gR@oXur;RHs`Xnv}cZ)`cVNMu}X zmVL;_ZWaU(4AnJKpx~v)Sydp7MQ^BK7-CX#!=rU#T2o+k?Fi~<9E02_7AsI-`7}`; zi!j2dRZt{RTcYc}W1yWCXf-?x!wbRCVV+vH!7LpxqO{vJ-TF+*#+G=?Tq8tCD^ZUp zyn>h7H55yy!!``FR6#h_buloq5gv}L>458Xk^BoU&nt`U^*0fB{Nk;Q~6(zjwP z8JS=>=qF1)PGnsUn+7Hl18eVMdp7{rS7$ORP^5*^Lt85Z;RFJeB9@mv)H1#es>Fnj zV2BygRl~tlqzIU}5fkm~SLl~ykZ^jqWkoAB6)zlzfWq4+3C0mHBpMm2aaNM4eXs0gzPSA*SeoV>e0@UoRLr! zs1kEKlwXnw1JO_;@QWWMVf6|?rN$HbMxF4HLL--ffq@F+idIu=4ddfz#fdT^=yZ*v zajr-rF4i1pE2xeT0;qU+g&0_<6d;q~N(>ATg_t%(w4)M3bREcW8oI~|CECDuUy4L1 zm9ezs6zZXRP(5^kFkN{$PXt0ml93^TKBe?JEEU6+l9KXDyo(yjZEkBKV2rNiAR0Yw z#Zp@uNQ9^2te^(sQx@T^(O_#rBa8+ZplG5cKDzAzIF9C}RU!hE08fY!ks9$Pp5C&8 z0W$UAI&UNz8xxOb(Th)Jv&2MPC9;u_6_{-y5kVbwb*v~agB68h>tjf(F$04u#^{w) zAALAXIl>Yf-fsHfhK3GQ<@(di``IPTB1r-iL|DZnRTN}ONc09<#m5#-R<_WTDV7#a zDzJv=a#)3_6;2e1tjk7{xZH-euPgCdBeL$J%fTjvuobcmBjD{_7Lk1H(c+;BbdJTk zcq@z*0f~pA->%=+Dl60%pwT-k5sqdcV-SL+TEfa*AsC1nwGdAfwJ@iUA}j)#G7M#8 zWNJ3cE__M}C&JP3p$tM;wtilUB%bz3Py=M=R*)kUtaxyAx*C>>XiH3By|R9iaw0hu zo*u2NAub<5!OF(=6B*v#`sz9@gQZ@vV?~#1d^;P?3gpB zDb=IkXqbi$k{_mF7peMzpEutH#V;M|mg^z$RSfyetp=vlH+@iG0A+E3$=lbfpygDI)BLa#}<|Ho``j4XX}c_vTLk+ziV52 zXSlN3!FAui*9Mij?RNW;d9eR@)@D%c#B`9z38202{hpiz!Nc(|6=7I-8!SS6|E;w; zOJtT4DQ*Mx;hk5|v;8ah-Puj<<)FO1j3+EopI}igtP^*S6V{u*Hi@+cx$Mi8-JyHP z`eM(0i#z0KcJ37_J>c1T=E$+%{`hiW(7O2os&Wd-LPO-o#HifB(CN5Fu(k7X#(f*X z+G=;|Tf2SU2*mErrtX=Ir_LR}JTT8c82>CMeDTh5U{5U4hUC{Qc-UMt=NEKiVE;;c zkfPss4lYDANcu2+d@%@pq=_PNTWmZJ5T@594OQnkmq6h zBY1aQIzV|E0<=Fag$M;;4NF!Y3Ju**qwWVHL%Fa3yH6`BSgU{?2M#_96G|qaa)m^9f-1 z@ThitB2*p`oh#oW7+p&)Pe9{C(V6CYR@wc1hOjj`$zLe)!zsDrxR={Ur5EMM=j2$IffwlY3*m zx%=Gddzm-UEt}^3CxH6Vl}&8u#tFc3NLs&q@tWDCqg!U8hkG*3TE|b19DY_hyruFGjyfi#V~E&aSopfy zVE=ib!?b^<Ib!VuIJ5Trt(@5V4e`w*Ev?MvxxkjC zccgswk-eSi@pBV%>v9d<6NepIDD&#x?GvE%xM|t9Vp;(Kqe4H9B!P1ni&SoVZ>fG& zRaIUdYeR)akwLnQr^8T@L5bVVfX0U%4Sl_re7D>;=K69pV>ldanu$_7`{^RS^?SFL z%qVJTMEBwjtnjTO%~=Vdcv~x*Dx@vx~$gITM)a$@|Dt2787H5_bXm*c7dT+0O3m4#&fY=rlj){Pz zeB-5NQHX+ATAcf4Qe@{8g|*XoUKOp|AI^>**;I zd6!=sCgrp#^XR9Z+kjE|4V}29L-mLvKLjkTuIGEp3gTo*4DvtT{m#V z6TsojgP!Q}B-k4)BALUIPT&J*j3O?U)DTN_`%84L*=Z~72V=cN z5+J^#qXrhILnDSl-FV$SQ9@j5xHjTmDb$_JP7s2!s0~>eLo5S)OY}u_`v=cw@}?cL;^l!UGen^z<-lre2WxO;oV5>n z8Xh@z|19ZbF*a&rvHS-4q^q{Sm6xY4l2^#?TWJ=<^>g3T9^`zweVNsE%jKo9j`ODb z(jeW!jAuP9uC~m{n!P{{r^vX^CM2{(dnpy z@&i)xcDmnc2m3Sgg8r8CGCq5obF+i)Bc6*X_FI8*d9fT-?(Xh$v!`M~WSf%c@u`>} zuMO-uxYm0s6-Gm3xr&Dsu(cjhg~-c?@*#36^Uupj*HqzUt9gw5zrR$~YC8nZ>u7a{%p6Wc>*VotJJUVQX6k@C!CP{}5 z#lw#1@+bu;3vZ`$Y=Z21+Ts$Et#`>~Tvi>I0(>+)ZD(f(@^#97%y-avE@UKUrF9sh zB*i2p#csr!eVR_03X6W&zBJryqcZx!{qr!d zHm&F+U|_A$MqQ=2uxnfo*m(D;^$PRyikyl|NC;2c-!tHNWhNxN(8~PdX;b^?XryLm zHkPA)ufD#1uWG7e&gpJO&%5!0G*EWTbdtf(nr zW+H@lut&&6sORbaxN9)tYyc|87s<(S&pvNR`OKDYHjQ$+e;$(_EH479ONi>-xK#vF z%0}~Ot?>hf+$+kW7pfB?a3k%>#KKQgzPZ{NGFk=5hUr_$>=2K>6eSMQc zlaBKy9`hfFpO&bxu^CP>9=3z|W&r_5H^ohhgu`Uk`g&Ss_r`2qwDc?mT*(=1xT%LQ z3f332C671a))gpZ%8sN#Q@mCr$3Uqlq9gdFEFyWLt-`|zFiQo1>M>M4dEvEo9upuC zOa)LprlQh?p~GPz;JOD&A0J_b2Fa-?mn5H^B%lnC17s|%6l4N~4^&VHH3b8d96=4i z@C%^*JhJ2kbp+)@jQ|F5Dtds2UKa*|(yP^wU<8b_Rmv2Sz$5FH$V3A$L*BzFjM;f0 z%mDd$BO9V5lnPnZJ*}4V3E4vTaHvf6#=A0{v(!|qxM@ks)Z$ZZCINLafC#2G0*gJI zU8z|}7TgVDT|Q#gt|_ij3+>=?9RjtH`?~Aus#}1~x2Z684`&iM(b)|yKhaH@JMT3YU|MisM#eJ z2A+Kh`Jyi%Kp!6r4dxXx0wRq!4pGKMOeEB7V43PhZ^=e z(ASfnkQvoGF+F+2w{*l_cHZ}N_A&1lv`)DE55{Zk^$WN^JJt6YJSIoE**!+kUBc%0(-~9noO!4Kx#J1We{KDey{sv7{2)J zli`y7A&Y2WKXtG&b_9<0o8W8=D=Y-TQoh@3IP#S+QYqW~_&9kzDD?n!X)&;JX=ih3 zIK%G-hUIEoEI3sdlyFG6+5MiK8R+;ONZPCiCr*PBU)L5*l+isSpYi8D?}9QveCQSR z8F3>C6SWA3aZ}PL`Qsl)!Ve4z3lw0HRrHDZ`1NrI;#onr;Yw7@5@_Uok`+r{I`SG@ znIEl{O~twr%5h;btAjUz7rnPbvsDmZ(aHTiB?lxd?cU1g`K{(xsH}jPR1={BfQih^d={1Mb-yl$xqG%Uh;{Y^ zAb9#`<{h9K=2k{4Z>_(7ifH>o2<2%m2i{~ZF`9{ zJltrw#r&`L6U~+07!+-ch;QKm+1y3i58jyHkWx}yt&xTL9(sQ?W zHn2D3h<4lDp*jD7pLj$hvV-pGV9}+&THI%EYjLP&Wa~LAoc0*@RtT~fi}+m>QGVd5pLlII7B7hAVt~ihMtXlGj=3- z-59%=dHis_L8jL6Gby|sf&+~Z58K(T=D_`<1ChciDr*s`6M*^X%pW9<4d-m27hN%2 z8}#JZF|ecMpkwUdQo}Z+{B(A5IF(Qd(8&HhJ==20|G0Va(jCw&wr?>g_5i)+w?)o= zHR~=La_)Pz&noksTdAW}q$a{jd_Cs+l9y419!uRLSd4m++!=7mHXez2igC+Is&^d8 zoJ2`ZgItyo_Jfg~|C$*`)kMB#j0rdi?o}p4}V$>BK>hH}L^``wuB7@R!J z+>k4c8MdmMlsU>&`nGelf*aWs&&JILI_zIQtmqyTnl6hzEZVt8sEK>HM#!0`me|>%+C*eh=8JpHO*^x53t6*2y>;}p-I=Jg}e^w0F_YD3zG~c+v zx#Jr+TfO8bH&nUgye{js-?-wKHf9(z=|9`$U-s>|WyQm>mmlj?FLBJbaQs@M7_Cm` ztXzwzFw%)_GD-ngDWJufX_hYILa4IJ`Zd1#A#_PCtE8u1&N!W=byxROCkTmBo;5aDh zG@PL?s+*WsZ>OkB=kWvQ6mIY{MfkrB* zGZtG`C=Co{8y*faa@t6yPJ0JRKArS2Q*GTfHLvvza$hq?HVb$B_OJbVoW37dJ=6?N zJ8t#%$Hs>@cgA1uqg;l^V}~C(&T+4Zrt)m%cr-mC#1J6qGyLX#E9iyhC1G6?8TwCa_wp{YIA1Kl+ zC^A5K&>DbjI~L&I%(Vw|btzl&J#KDT_Pg9s{%3Qd?EEd$TcBGU9Uq_f4R8*0mg7c| z)*4+H%jV@8mIJWUyLE1B8xxDi;uP&-x&%44DuKJJab*jstA z8tC=g|DtearP-g2E!mZq`(j|#vb`?DOLo&U6B~zRe1=*swVSeOmzsuV4^4xNHyTAX zz{!oXXL^u-bVS5y`=}|?(?CeKTR&TyCm5DRQPGyDjwoX~?K03AP{%~sUk>%V-Z%f$&Z&$ay z{pKw4$F$1CJb8L5W6KW+qY7hmjnK>NZpGVyhL1PQ#WuJlH&9nL%$%btoktHEntHQ# znpWJ0_FdjIX9Qk55}VyUyc~2c^SAdqu@^;NUIi-wV&9GsL$#Z4BZUyzZExOCTV@Hh zg#w{jt_AUlXLSXI?uuT!pv5?StU7h9G!tmvF)@2LW94qn61cC^w{5Q9FuFfpxG$Ew zyq!QT;RCmLlNkxwOXYNxbw+$wvq zml?Ciov`PUIllhms@KCMl3Yec^WAy5%0;>4@qID#9MyA46MNi!Ux^8VIu?ook?L3` z`2zB6UBnxH9qaZ*rgmhdVPtoZ#LM--pRvsmb9=sb1&f6Tp4pUFE{N zxVfgd0ZPh5<=l$AU}Fn`Hx*OXQPA#Wj;HDsw2@dL9g1>Sm}QN|H>(cAnBNcmPk<-j zww2_s!||BkYisLvAFca_hmNzbB1VFgq7q3K7C24=fH)-{VfoS68cw8*X%oGn&A@_% z;o!O@QEcTy5^Fw}S$q9wKlzuDb_2c6q4p~=_Tr&}c98DKH!RfFp*0k=F+@E?xuB>d z6GD_%m(E#S4g25@!v3QXQRC{&hQC(ET2PjKH?5^9A(zCi{Inu3l-&4%4xGXWp2Q4? zhvN~s8d*?SGCQoh7^{YSQ=@VjpU9+thm%6*e)dabIg>_i#V}QYBRZD`4~45IF(NQ< zi>ry<%v7ejELNLXp(tx|1_5nAIkcjUhiJqoNDH1v7$J)hrgsFb!z(^scMz%Q(t&hB ztrrA@lHe6a3I;~%M$`|Cz6(Z@sI4E1gi;w(QzdHTnmQU);Bvc3yfH}-Qw^I+b%Amr zilhhHRDwdx5W;))5M!c5s1ZC0YU)^F9TWb>vbfx#gVU11wXT$30zC3$KRxUO-M{CZ z;P>y5=ilSb)AM@ZJ@``afF5{I1v>B$7$DO-g(yyAXu8#RDmxU)hYBhlYHG5yJb%H{ zl>bGNk^cutCIG;DyFJxk{ukP+jOW{#2@3vwvq^U^{&r2YCEMVUHu6RY3jT3=Wl z1AqSy3PV1qkzHjBWBMnk@kG8`q(E0e9z0N&2lP56=$`%?BD2Pvk?%A~g0Z|jjr<#o zH%WqW6w}6rv#*r-#05<^g8N6aeB1;z;c}OrY2v8D~c?vk{St>ay1s5>@{%?tc$ebBK=D;wcPlsavlk0#J5V;Qul{-#JJle zx>+7(r)vIdubkefohL6Z8cK>twGVzUde6b2@)|_vk;W{$orTpCc{Y=m000pg{8sYy z)2E13c!|D|Mljedu%@1x#k-@apE)rldY^qxQA8th%BVBKzW45yTub|XdJlsF2nGO{ z{ymSe#+P6)7z_dAY73yB^p~M1&IbdKmw)+{{tPH7Z2vz&`70@Z1?9{svrcM*9_Zw$ zcqIM>Dd_(NdB}MrUjB^-=*j5+1*yoWuFL;}B?r|01t|dNzaTjfa^s(PaMR++f06?7 z>i;iDMK1B5cp${+cJO~-9;$yh0PGSF^KU#n_%=YM4HyCJU?e;^1~_x8cIcTa`S%`b ziFdNT^$WoOJ$W$s+M4m)N~x@ja)!UlrG2`+hV2cX{e4$3k30>)-fkv(95~vzx4k2F z#Tb4q6P2HFbJi~yyg4BOaC{aMHQM$Zhu@wvyj8!*-cgD`SkQC0*o-FK|@+#QD+^`&Pt_Sw0+if{_>a`WJJF zd~ z@-M~6=mh{u^;3|FUYl1QAnyhMLdqaOhtGrE79eK=lUd(>@Tu(!8oGGR4b~q4Q%ipY z2q-7<PdBu^mdFYM08IimsQD5g^AfB?Q)JL0Y zFjX)7M^~Gj@&kw0FV9+&IhDEv^A|qI=Cihm{6d}ns7QcOg3Qpk`{mha9q0|=Tk0%> zHIa1PfIvkywR3I{l+U6d*0*Mmh4Yh;jRJYM5E*5S<@fNIrxnwc1~VQJc<=815qUJv z+lssV9*Sz;P11Hslwkl>gd4yNE%}z(T})K#j}!tsO8G=U;8oN$cb4}8FToJld5C-q^2goSM&QO3CY`{x4VC-M{VW0#cj7&UN<>{I4Yd<_29RL15H*Lts z$xnbuYTf3xG%xw%;Q0bnmutW}SE#w0(6M=-aAupx^SzSKFNViq8ghN8@2Zoil(f2HR=Q(JW%6j@5gr9DdkNVV?Z%+E+^Mx`&BZzYVceXQm$>{%n}Mt?!iP^Vg&spImFOmieZ0!QR6A?L!z2VL=hpnq_Upo#ITh~tcQ5A8axUD7 zW{`SBv8_8P%=DYud~GdszYTXmY#|JRQ;}Q@OtWN+LSIeXcJkv|W-wBUooD)BP3x)7 zTrTow!Y)iZBw-J|Z+9tpzeTC0X3h2C>YD4HVSUWu>rJso)4oZo8GSEZzHld9_ATtc z`7CyMMK7c8chkYnTws>m+W?uuFNbv-hTQ?Ki*cm1qG+(Zg3)U7QRpIBS=iqZ(kvZ_U&dZ#WLu6jogfCSY_)AG}H$Za9wAI_U?h z)U2&NTyy;!(API8a^YrWWxaS#tADcz#qy)D^he3PVI3V9{==77RB>&UPJg@WZ@6M# z`2Tf9$G^w_l%4<){*Qn8>zk*#S^CY?wI&wrK2yE>0zXpId?PPiV(1|rW>1^hCWE4D zUOhK!>Vw$%ZPrGuq@%|@GyZn@Xdq|!Qr}*`52wS23guPgca0);#^6BIX&iEO1{3PydqwWtoNFd}ws^GEU*GKQSMO4#1UHdFQO*e&TYN#l>XX;o`RkJBj zt1+^#s$woqq^rnpQKd5W%Xof{(EjP-#PgAK=J08^Ju2PTPgQN;hlAReV~(nBSs^DF zgQ&o!?G>!u!(_H>!q+QbX4g!;Zr9FFFaF$ z6M%ZJ1ihJ@?@{qN!ba`Oc3G2h*pWU(2#r<8_G8QYatE>N<=g`@9yedncye7)+SU0Y z8?2Yauf)296uID6VIxWVO&hs}KR|769(--KPOi1Wnwx-eMkRR^XWmHwFD(<|dscd|`cL1YQ`&-D@-#>6A>R5Sn z-!W&L$KT19r-PrzrPaWSJ?OsM6`lvl#q%a6X+ELpth!U0<^+weRRiYCHAR!lM^V$W z3(|XHE*H<8J9qJNz3*cl;hKYC)m17=lhXc5o*wBl1ZhUeR897<`^lGx10Rsp9eT>D z+IJT^S)VJp#*as*vTIjO58xTm@xPZw%38d^Wck}EzOo;^-)$I*wed$|~?5$dk%Jlmx)1I^ZHtuItq@_Y95~4M(j{PWHefw;! z(81e1;URCIg!NfH>$4hG?egjuoX49zcSe^-yGXr*o&hf3x#ETcGKY`ye*}O}*+@X` z2;J+hhzP?j#T;9)U)vRN>P_U5%p&}fDtwysFQ%Y)aJ}VVa({ZY=`hirz%7hUO^Y*=uqgOL9X?VTMa` ztr|0>qM5mK?;58xC8jjaFvw_3TWPO+d_Mf6Uo~L#z+OFF{L|J9Yoh0-!z;GdiGgRD z$g3?kZ!8s-O|T478|7IrhZvkU^2F(Ly?Q6o`Z7gNk2iaF@-6 zI?KLzv{ZPESIib>dzcUQ=%X;?HO>83iJlF~De9UE(t0!Prq(KIT979VrFHx6bnm66 zV&)MTMn;}kk$Zv_^y#b@YS)oiDxjr#TiPO--6DaV3?ch&n?=Uy`IsCHN8c60<{$yT%-0LjwM?rXjWW~1zvgy> zRF$8Q89lu}7-GP1TE^1eJ54iJ__YKAyAF|ECrL$KM6;{wI#E4wIMQ{NeM^sP&bP19OL(+FLo=}37i8_v-T@;)R%R$5}_?Con$Cj4Gk zSPESnI{sZlObcz~c%$ATe0fAH-^rlNbD?k#9r{UASsFcaRzZBP`Mqt&JRLLc0qn zN%+_1JA(pkzBP)xqvUU;IoT(`>qoT4Z7b^~1`RQ47Yw3$^vuTVIb46JI~X4ctqQ4z zzSg@8zY;<1?8_yz2)*`)6cny*Xcw)s#2GLW(ir{i<1R;E19#v~q5aqEg{+@V^!WVX zwk40qqjmR95TUhp}h7Tq*Q>J9CRB{7)7cm^=T)*wnOWXx>I!bA!Duv(tj#D+X>^a0# zif(Xv2rTle(B3~HB(z2fb|?zcyqfv>@gVhF_;b-hN!gItf$~RDGk*LzZd`d)c~p?X zm6rM#H9{UQ76(`H%D&E*ulvKSR7Fgs{hl%_Ym=TIW>L0nTtmT9$5ffM^-jibQ&OL6 zmEUktU4kE`ot4=-{ChhoLU-6z-8&lBdaPrvq`9bPC#X5RIv4-^+A_z(xNK| zzVFC#-}jSA!}+k5eVywDg>ZwskNLFkl3d(H-i%gNi_BzA>Uoz(zb=PI(BMVAo^PSE zm09P}2G3qqSrIqQnuhN?j$~;jwf%qxesqI9a%seH-d4NEq^IQ|`1O13!60w7aA&PY zc$Z^e#a8xGbdvN~Ekh9}X@R50;Vr9K)bykH*Whk=i2fCyqVo^zw=FUKhDRcrcl&I- z=^JoYF6Su!sk8kS;oe-|^ixsioknE`d7_u<7=}jcetSmxTTxCimXrd|8-BHT;`bF{ z<5^eD>;?W9Ro~I3qpaJoZMjen!TGl)H_RMw zn#~AF$PkKd4pSAa@ol!6Z5q$KqpFaD^nT4l7;B~CXKlvrwToKb`jr1dptzed{b3@J z!i}|A#cwj|reIUQ)tgj(%gABq5ZDtk9QLjA~)a#jtC7bYytVc0O>Z98uUtd+HERU=-be#Kg+pIA?`{)GF zd0jND+dOiS#C!W5^U6oxZYjIrq8UlYAnn(G?wTpNm;|P`{(6}(-gp9lcVtB*wG`K* zCcFl^7z-*m>%&{>mlU{X_zqs2OC6~P*H(gqk!!u9=xfUG)=25Z{iwubLES^zoxMbh zgK70wKQfQ74P{OzK&OE0$I$CKmCApXPy*l5_q^*K=$fkKe9~PI)iupCd+Kaib`75C z`udI^+w&%rSmIa-N*6iOG&|-eG&E^W+w=TJPEF4{ts$7eY+Y4tR0j45H}-B+RadOm zax~Q~cYM^m%OLGy1y#07yf^=|O*qF8yq!=qQ*he>yBd{IHCEMl@ibEfn5kHIHTD{D zG)^<$9+iIr+~W9>i=fU{;=H0RQ!&DTG0RL)Omj)7E3rEeJT|6reJlLI(f6k6mi564 z|6~)dnTh9KC2W^_#+tRBMZFIuMktJh_c(5@E3+0*mfZ@QDKlQgB3Pe%cj@~fmT=Vb z4qHUgF!R&#x}5FON1YxgU2!wW5s@VItz47wx0$4fYo?AMK5twao@{;d%Z1R!>5@V z3+dLM0GGu*#(EX6v-E1Qvb`FqXI>IB2 z=QT5xqbn({H{-q*E4nG@NbH!j(^*7BZYP)B8|8wk2+b8GM^-p2zP3#|cou&cWgsWM zge;;>6>_WJwY$Y`yej@>^)N{~zC80+&JK&`doemfQ<5-tczEbATz3guee2Mk)FtM% zyI9p;?E9-r(NJz%>#Tu4T~S{U-)zJMw>aI9Uuc%O(%;CtMtR1?w=M|@J0C_Vmn`b} zR;{81I}C(oHktd@;Rdn~t+JQ>j=Gxqti9fMA5r6AO6=m#%>QPms%JgUmbO)Dez5XL zIx!g{@LP%h7Su3+CSj~c2L%wC5(-4rX?9ZCWPRgI0*#)gRI-M?Gs9?>3=ut_Yzc@` zC_7^t!mKY_hVbIQyw>+lx{OHaZ~CJceLby)X$qrx6z8fbfzw^ws%1!*>Ry_Q6!YS3 zZGM-hT3jLgqcjO)-$J37<{YXS0!4JBiazJo*{xC%Kd0!!tUjvVq#oL31*#cFp<-hr zqQGO;`kf)w?wnMNE0ky@F2gLtY|bDF))s}%;7fDyF;o6L3D?3M$?hc0SVg-mO`2Q9 zNXizB>6`!;IW+ys5%1dW_~C87>I|9`oq-m2G5V1jS`%EztCGGv!QQ&vRAQOY_U9GB zIPn_cmrq@)1Xo+?0p0u(*G*<$X? zWyu7mFX6wHT{GQbYnEYadS1-z)IDwL+f`6XWpm5#=2{kVPkL9CSnlL=;%_^f2sP4b zys@q@692lBgv8SsD=;Nf5ie~wNvmFWbr^EdCl!hy$MO%e9em@~pLWf42l;MVNgr8? zdIwGDI49>usZVAeCw<%V%{EquN?5-$gIALFW#Vq*Iflt%*X8_G=0Fo6|GWiM(jF@*Fi+H& z#U^SKQ5Hk*m)jK3SqaVcjo4vT?OGAzkq?@*If&KQA@5bpAtX44S$SxYH+&!#JggXk zR*v)HpdpCG(A+xhiZuqme#H8?y4=&4!<)^PJx>V7Y7_e4&H19xNs`IWat+NJ-AlV9(=v|%07yaAu(;dXFX@^9{3c$mi>9{ zvGN2YSxC?g8Yid<#dB?{WuWnPVe_3;9ljd*ZLAQ+BXKPaV}XMqQk^1ev^Ph?fWQXy z8B(q5Le2^cVKkoA@X#upHyVj}8Zi*j^ge`R8 zB^E3uLm#cJ-=)QkYeW#(;i>wroh6_34zwy@(kM80UFAlid8?woS~G&7W=4Ri zk_9)XCyXE|wkzkklEA)1K)=^DQ|1d)cn=&Vu0`W*{LS*Don5UiQ}WAuvqT02xk(j8 zZSr4l{#kE}MMuVoD}H*0R87hHq&+L>o~n^yo1v;GcR8)Ljm2hl(m2or0Zw2{$uulx z?yMmKvYV5}+%3w<{LKU+BmR~UOEjFtWbclMZ~(vF-3h*(zQ9F1)G7?~K;P6&*gZ*Z zKnj}4C*X-VoVoHgo5ev@ksX>05-~yxNmq91vvR4__(68XIJwlTNSE*@AE=$ZAOnw< zSUWN2mst>Dw-Y|XHLRIbIodMWyNFtKPR$rSKAgxOtnwhYEv>KwQ@?;mc3ezeu%uu#& z*FV6xWphPmeXZPJGUwp?RE3E2ValL*n4qlOsyB1ZZ2FE*^a1{|hwfe`p(k^?;wVq7 zDo#tsV~bTwSC&c+5;bA=H2s$nH6{qI|F%d(I4Pk$Re8mb30@x)n934svjr8DV=~Tc zQO2((UVETVvx^b`_C}*hEUc?!)n+BJ(5yrwnmLrnQDog4V}4ePth4q*iEl=lymqs4=9IAl%`Rde5bvFumW$G){w934Pgl zzw3TCiM--{0shZKg9GRIvQvL-ZbWndrj%c==OWXcHm1vP$yU$Pg2-R64wZLiU9W-P zg7w{@&hD?fBSJgT>H4~QN;v#LwIHD7a&n%nRTmwhE#dc-FQ4Jis7c%lp zfonI>)3w`~GiS)p{{8#w-?bY9FH(V?N5{hT@m0M1{jBm2ecBVNYY*Q9|GPnt;ynR= zIiL=&WS#&qSu)^m{pu@93)EF&7U|AzX^3UvSWS6Jq_YaV{PCMni;)>U?WXc}Hc0rm z(%q0bpJJrF6&pG_^MfQO%L`Zu7bgxmFkd9}3jMn^@g6Py!B<%UauJs&V>j&jLL#R{ zQp|LPS8~Ax$FIf_{wV3B&yuT3xG;9KYPmH6q@0Rv~V~bmuHFTK@JEamykI zW?`lrlWDrf@Wia}L(w*k%L#WPV@tm%JP~*s`XJrI2}8xNtEco;yhEAhUe>j0OY`t(4xEj zp2%tNfvyC z-u=1jUkXQFd)v6B=_e(I{{s_-9QzOUcw5+$fd7f^`PuWzz_Bo})frL3gcugfm1cAJsPq?n3@no^IK zSKPpx<431za1hTc^sb5`XEsEz)Ag}}uY)LPF_{bJsHLmkLq9i-ou@C;&6n)iO>1UA z=NBYYGtYUYKjhWIBMcu7hwF>Bg0e*D8GN5|w0kIrTs!w+o163d2@oIDDRU=_8}Nt9 z@Q8KS#;X)Nrf&+qp_{d5v?72xtr9Aze0g4Wdxc&x_`4>Q> zXR}kW9|Lm)9geM4jsD(xQv+MO>>HJE0d>TWO^x(uT;C!Ey~@6&pV8@3^n3LcOh0B% zrN`*YmoMMi)kcJrzTllV6~L2o3FO@O&AgZS8h;caJO%guu3Tf#XTh8JgN*B`U`+(X z&!^R=OWN@7)dX~_Nb#w)SmNyfUiHU|WA0 zrPG9QMhr3-7=a%HJACn|9htS{Ce5d)xJhfoV{2;*_HJG+44%6PBT~~V=;nawW6!n- zBv``I!TK3tgg^~LmSP-tZWGPVc9en2%bIeqAzxb6E_#5qgN4eJP3BJ(4@Ud_3JJ|> zBLCSgdpTYup(%6+?DOT0ISedF^a^ETf0#o8m zj&f()49p4rOOa=DamFw_1tTL&BQrdxqr|9PcD+h1n~EodibwH#J92I_24)QYO`k_T z9FKf@+KqN(Oq`ZH)w!xOCL99>xoTlbyz$4>;KB_YXB^uWo*bqY&!ehn`HhN$gRQ;2 zwOT#`LUH|yBAVfpPBB@px9GqQEnr{?b6-LgdFjK^R18r0#}HTm_g(@_jaV&?7H@6^ zJH+<=`zE^sTvoi((!!p;1_`p6qoXfdPLa4tgsiXwCtF8W%-lzCQwECOiiijurvZLJ z{-G2`E)mK=^_ZOdgIbHu>%C{4a(4)BnlGIz8EvQQ_!=Og+4tyG>c~Akv%d1&xN)`R zOBNmxZOTS6@tCBNkIj7#vLO!VN2cC&{}Q6Q255K|`C>Uxmu*br`=ld}n!gGWGDX=JB`X*x-L8X2A|6%Go;Mt72 zxD_Qz%vy;RVzf0%iPkK!Viv7YMTuRzN^8~%L6A_h_O88G?O0tBtFelr)izaCd-Y4- z_x--#$76HvbFXvHJ@^0rpYzaZIEAOn-51%&3=)i8EGhR#C_}@KIi>tH!4iL|p65~i z4MPm$hT4~V14~IS(MC?#rto_KPLL~NN7MqWpJpe`#+z@Twk;-IJnuzNk5Eb&w8)Zc zjtzp*k8Rv)7>AjFK#&?KrBSgNi_q~3AW)7z%XASy12GV;(U4Grky(7w5Z7n@I zo1yNYsVPppJIPH(*)R~`k-lvWE zdPFBfjAZTrY6JwFr-4+bIWH_$(Xv&p0w3dU70UrtP7P15xw8QB{j{H0{PgQXFuLAX zDp$ROn)EBitHHmIa=B?9B28qb+Mo1O||s`{5$`+1KNY)-=w^jUDlNT&f-ta?V7)~ z10?TupXaY=%M?Bh^S z{Y{NTZk}!bgj9(7sv{dit4eW0lidr&6){u`ln5h{*=$vgpIo)ne<6x9*CEaGd`eQa zzJ_7!$aQZEX1*k#|L3*G%El$P53eFjI~56rnuo9y{eVO{kl3#$sK;Vj1q0KSgKs48Sv2fZ)cod^@=oLR+IuyBsi++tBLI{g;7aPOUjABKiMqggr7>jv zQSb0P|2#Rw!#G{SoSnBuO}A9Iy`#Q?#MczxC`ZTem&b-kkuMu>*s$e!Sp_4bRW%)3QbtJ5 zMFeeX#{46*GQ?yo>~3YLHhm-{b@AmS;gAzOeMf@3$ae3l9?7W@1si4Z`k4=C{k3S| z1-nzEdFh3C`4LgL*xzWG`a%V%OKWT0P(u!}^lw{3C{cF25kpY+0B)r2{-$QQC=eSs z`a;>WNCVov9GZTmsq9ISW{wma{oMzTY0==ogr_`%x*e^Wlb1R;3e(ubDHADir%0mw z1sJI@V4A?J%j89N)d?H)&htQsxD^u3dZUPyoTkGO9pC%rk$sq*7RnBTd-DIeP=O@J zYLLf!R$2emc=7E`hhEXsZOO(kc?#fgDZa_3dfcoFp_!xe;;N zRCPmtd{3>tY6QhGIdx8k9B!HUI z(bf{nWNdmU027RrU444Pe1B}tPmB?p{(g9w6z+<~8alb@8eA5xrS%J6Q7VA|5YS@; z$fxLZTi)(XMHCP>A=7C(-5Y1b2i$r>(V2H_-&&hXd%MLgPRKNQ+>n1>%Bo3me2c_D zRE_RTI9--s(;JhNB5C;3G^THln<7q{0>iK??n88 zXjgbR{w73NRHb!&)~&vWoPC1D9H1RJO zyka3c)YoVwloqlV4`pusrP4TgR>nQBBD+KW(5B@1L%w-hI(n?)B8#X#?of1Kp&ZIw zq>@aDXl|n_PR#p5SsdCZ&I??(Fg_cC=1G^1n);FF#USVEEW2so032veVB$KRHtao~ z)Iq62L#~oEZ63x@+y)yUN-0?%lP;8EFLcbKks~*dB{NTFDLoc1s>Tz^ccAw$K9VX& z{tWxJe#lk#I6HiqWbh=6s8098E#uZ4m(KomdFrl0x0$YYNatDuf2ms9V1A3UK{;{B z3|GFSHssK;+{X{SJLwgT{o7qvo6V8eeJ*MyzCTW)Ef0Xa%-jv? zMWcsuHhy~ZPph7NR>+y^}mj@h+_d|E3|1_ZP;`U>m9uud(nN-eJH227Q zMgc_hgxoOKN-nwu4^Yj)_@t8m~{!J8j8mZ4?14Ih2)R7iaISE z64S94-OQC~5ph~_6H2)+-@&}ub0>2PBygJg_zz3tL3)mK#h|oD;_CPjj5V{{h;dc$Df_6{${!2r_U5!3UH?Tj$t$%~!C7OZLfI5AVeZ4Fm1M#5Ag@Z$lv)ot`J zMUn3C+I|U@YqG@Px+7pYml!ual6&U4Vefa|H*J)`V=#wq*E1SeJU8de?TO6_0WR10 z&@FE%uA|<<9%if-J-EblLx=W{__U}l3AwL#PGb07P8E1htKt~MvzyFn;8|x}tTgsr z_~kcRuNV#c`v~Z3p0xfKGmGYIjJH68_e2_qangemJgJ_u9UuIyqNeMqH@Oxlk!k?z z)mK}Ii9BZHd9_3T@CTZf{L@^<#7w~p&T4ekrCag-@S$V$pYZi(u1AqFfOdKE+n}y% zCs5akesXj34Z(hwZ=rho6lJc!k)sdJ;`TzsL$40l_6}@bNAe3O%PU4Q?yOpXW+O{r z)Bg3#iY~x%KUe!o#8YODIr^p4pi2+wDEz@LFuUSH;>0d%`s2!Qhr-zxe2t9FoH267 z8t=|4gfWUho{&7j&Z&?@?pdg%lQ&wTPR)7X= z1V1ge>r?5qfjDL6g(jY{!R3If)DdpGL9TWH@3eu%JDMn7m9b9scMMkAofR%tZ0qpM z04D=H^C{P@2paflDD&^Fl=p18%Hwjp8cplV&*yn~8v5Nh<@?Et#2-3>v&k%_5jh24id|I4#*WznMDTSVScYi+ z2&)g#*isTlr3L-@ z_`o7!ac4VBj3%Zbt4-6=uY?J&i?s?t>77i!mSIg zxM{nvrrR!uAo^6wg*Tml8t!k!ZV9-CqrXV|iJFluq=?D-$ajvemc`fj?C9R8prxAq zqEFzm;&UmB@I^+sBy0Ucq}OyOgcwJ|PD>5Zz+5v4RD4dUjPoZ^==oCA&cwyNP>#!w z3`MTXEkH`@NxG0L&)#&vyD0k{4`2C{l6l<=;=)#G0aEEZ_f-bxlAQcM-(+yJe;mn- zhb;wMEW+Gp@a;v64!W)hJtrnD>BQtDO?YSW&q}!2ggN>b zgt!e#$HM+%=O#agI@(U;KJuK zNh>`Pzr9}-++qsOIz${btF@`R{`nHd{arQD^Yrp*YA=WSfbNI*i6M0hz+nmnCcgGR zn3$IOA58oYC8oN-#!A77O&x^(!Nf(4w+HSJw^x5Z{C^lR>tCvk0-JA7kkuvM!&sG+ zlzKBK@oKeh$H?D;>qX}@r@wtHlvE3nk3aw_7S?UB%`ld7bpdtW#6JbaXD%{`W9gKlV>U~oKqC9O=sA2(@M~8i%QW&wm{fqe21S7N zYg=$dUE{bexh|!4Z=$r1A>1>iE?BT$)f2mWwX5%Kz>_exsmmXW{!(oxC)XDp|HPTt zRDXMtU}RN!Mo$>E)Sdkvr*|rPI#|sqSV|hbw<%+Kyp@A7o!OJ4*NU?`o!L|$3X_=( zleEhfOWEc&s0p4ZBF2YDQ*0$F0@tHUICB>-W3oq63!3lod_TKcLlIR6^jYtkRH-Ev zm;AtAhuP54~0wH1b&XkO{sy+4z@gSS{9K zWV|Nj_nqSc^Y3~AVJua+B{u_aIOEK zLISwE(@snY(A%q5L_MpsX`35W(z1lnECjoBCN1XV8e5j4$!h{7yZ5-)Nl^g4&+nMO z@WxdZ6&3#vJ^tI(FBw!b(WXX9hP<|j;pXZJ$ZG@Upu~7&d~aj zX?X}>H;?<(=5gw=EoJPRDer^aC0(XPUsGwpPlFfnZ$ z&orGL_V&b(awz$a|LgY(tpz|x$MDWfycScFJdX^vh(|KUoJWQR4!;|AT~9->L5ueh zP3OQ<@sUImDC=#)S?N}j79`QH0L_hfxoNt)IZd7N3sWK&H=rlDarRCjQ4%kW z);&{peK)sIoK2wkD>hXA+C6ro`SuJ6g-o~>&^kWob0fRjZ=~u{3}Rq7h(^F@u-oXn zYFB0mh6M=47KpLm&zQ?>p!lcqVM|KcHHJMklu2P9rx{&(jw958Y)r;+HqE3xkc2iJ zi4y_Y%B;L)l8yM5obZ8*d;tVk7TB}?{@M5oUdsK6etrEl7nbz&bG@o*b2^ALccbXs z=LyM*9T_VlUh=A?by;99DXX(=gSVo_G2Kq8az2WnYG|Q{LIs%-Y}NpmQ{wNu4g!^w zGB8Rn-XBD(yuLldhqpJiLw1)78M!AGGcqAwLz39d7^knBxY+0s<3xo;YY5$p78YS6 zT$*}qysp#^8SnQT6Ch9p0%f<~`{xcllhq==SH^vq@O!r487muP*xT;+Q}_!M|5N(*So+xfkZ9?b&*az#IK2h} zVFpypM(u{}lDm9F4&jgA5tm<@J7KqbTU5;m<0R!D8H8W7eHb{2hi<)X-BPmMs6jgw zX}Pu3_g5PDD^iE*bCPh@vMIB6iKnnGTU$%b)A)wNL(_oio+g;5;uRc26WQQHzK-Sl z&S*=VYf8vi3A#I3?P5cg&5Z}T-R$h+!qB3|sW^u;x!ce!&Omk@26=r3c^Sj06>D+f zCacj(uWM|CwL!N4z@FA0T{;P2Wu_1}bw9iz9(_tPA?dFlpmk3<`6b=-66BIlk*HJm z)>Vm(040AL4O>0p@}IhY95( z-JZptzi@~wwz7A+dbP%62t==23{x9q@y)eyb$k01iw42scIU;`N(AeUvlX1~oy(P; zBQ-(TM>}KK_NJl1k;i`N7d$n2Ug91#`@bcdWaO_+)ipqd9$Z>bPR8MzG9WA~KGT^U zsaWSCmK^1lnpl+X2J``Lj=_w*-C+I>_BrboQ8EjCLP+%f3JJM%R|zSc6|0Ce=qO8M zUsq|F$2q}Q+}r{JG~E+St!q)YIi06IHe@}j%=$u@19n_I!M@Rwc*>Q(RB`Q+(%sya z2XhI!xeRRz(x|WCkqLDuBnVA$yolC0m$|mI~tW7#!JJ)IpbgGTveB}c-+3l=U z>?^5QXknG(%hMS7qEot)Q;cYHhq-MSssEWbB=$sv6(xI-eQ=P;ah%ItmZswoH@mDZ zrg1||g50}GKBQAAJt!OhVMk+ap}vpz@7>gJe4T?o;`}Y}Io+U1d}%xWik_C0d;;W}|bIzUy{!VU3kh8PRX+KLdETQ7##nNp!%b?R6H8J($ zV#K2kKdX>fkAuOA-rFxildR2Ue>ikW$5}|XZuVwceGdp@N>E=R5B#Gckq*&742A-# zmjd)+tdOOeSju;qGoR~>IX8jH3V>S;eynJMmA=yb!YtBcFmO}g%?Wd*Zy;YpjcUdr z%lRFT^Fm^Zr`u>l#3)GcVIqUf<>LEV7&Llj=9qE&D}l0cQxxI-E<=W%9!xM8Og1SL zb%0UA(8|N_HYUAHVAwA!oP0F|OmfGd%#`0g0o}#W$tHh^0st{d*Vib;IqtfpCiG() zW#v4MmsgdF_SD*su1!8QRpRktt-S3EgWVAA7%2(EN0|!S7t^j1jp*+nScQwyLBYHV z9RA>H_81Cr$1|oS?bObH+X4p%lo-O{S|~Dof~NyNYZfJAVtDp=-SPXqFrP#D)uJ-f zl)`@u*GNpEo+e=#F#^RlHlo0VvP1~P8>Y7eT1yhsqm*v8d^jypt{R=B-@-Lu%`U8k zABVzgj^o2jC^4*QN)?7U8=<6dJyRFZ|t%d*4wG=^1KwLX12^UDeM9U$O^sM1yj^YpQ0E53e+^2 z{t#P;7WRa}5b{D%mtIjCQ!szEE5FOhZ(q3igO*5v?x8p%*P`GieScaLD8ah-w7X}mWgmV$9GQAgr#~)jk@q1Ga z2VK3%N_}i#;{nwQHr1FDj)iK1(Czep{D7*_L(&+4LeEl2SC?C$03i(wg{@AK0Kqll zZbt!$b4+Qp^Nm+?DO7$30UfXBb_;rg7o)|j0fEQ>Je`sPC<21;Y@#+Tt09(SN{tdQ z8@!?%IVj*SEli{l@5@KeHhll{W-*1L7P0MtvQs$YhC<{wI?AHpXB{aG&~5N#ar?|x zL(fsdGg7(f775UEPYwh*$tK0$#8YhK`V1G2E*fE)gvDgBE8Ytj;G||iqtV20npYmj z(ELvE-w!F6Uh%~a!gmDlDlXTW%;G2f_>&NH6=oK>xn6EIGw9 z1RBW%!V`}l>g&f@e)>J8I`9kJ{4(V0m2nfQjHr2-@H`ixO}j;^$`T#{BXs?qUlH;p+`rt;Cd>;KG9hcw40Z`14qgBS@bY3oEP zMyrgLUMxfzfVmmmL<`d#E(=9k3NQXvwBnHGi#PrpbXmgcMOC`}T!;EG{4Z4tEW&s0>nG8-uhG0lS*5a9V;W+*pO9nhqQzd*Wm<#W zRA&oe@qFW34n)u!O~cpr{zvlj8bI1a4Zl+{nozynnE#&7YW__KMbdEC^q-Ia{p#O) zla&FAY0$En0fdqxFaI+W8aC2rI7yfKCR@L*Bb1_E&^;_T7ouMQ2vJUdY>asg^HT zS^3Y;g`%!e`l9?H<#+#gB?u*?{=0$yU2K1;=Gyg~+REet8fnek&>+UAjkIi&qcfMI z)Q`$1d5mxz45GL#sE4^Bn%eYQ9WN7BIH0VoU$eyNKLVk~#>Q7x}uT`CzhG~M*B5+X!31o?Z$Q^thG=|{m1*D6j zs2YU(Vl3sawJBknqi)VIyviA|S!ztmw5Oqghz5?|x+`9_nctG7_jvCtl9r7~8(^X} z`G{-+O*&AWpuxoPVGh9Sp2&WGmM;EZh^#gC%%%{A@-k&Ps12nyBZM-reQ+q#5^(3n zlE9~$V9KP0L;q3%I=lXD_96O>k362C4oE7}sf)a%lk zjMr-}wXIa%_bpHgq%Wb3hMN zEEe+DeV>Az_QkQiI!A(#hJ~n~bOr&+H6vc)4{yLB%YOTOetMFfB7yI9@NGZ8L{l~u zK}h-9qd@s3Tsv4G%vviAZc)->)c^S6U#hNnfHQX*wQ|u(q*xo-B@C%ix3r?1xYQ<5 zigdarhG;BG2uK;R+^ZnWR-^OE)|3Hl;G((kciQYYePWC<8k%kbZPe>#*tT-M_L#QO zZL~#)fi+75Y&};ikTL+u`IEm!#$u%7LNH_9i5=aI&)8QCA_Wi|X#*?yqrS_~1M%nq zJ^}hU;C3Le7Ig$9-(<3=^l}?z%I9MPHiI%6X0MrKRIF&~>9bOzBwyG*Jd|#k#wT)Y znYOm8j6(~jFC_0=RB?4*+m{>!e%s`kad@HrY#yF(s^Zz)BTAk2qU>S4HMpJ zWlYLiwD1pp3#}VbV@gJtn3+mY;+SnH7G1oTsY$m$DcHpBv`W!Jkv&KU22js@ zM1XB9n4uVq;}lO%@1fq3WBT9)wqk27ib)TPahI)0q~VWQ$sg10uZRrd_LKhnz$^r~ z6OuNh!o8BOGy4^{n6ch2@(5cv4>$lDVeqgPUuCveyqkEBLf1v7B^2KizDDRq{Mw~o zLDiQj3MsEGxkWFEvH6Wd8hmhy0o^9NVk|*S2y_PS0b^)7Bnfh&<4TC!MGs`#lDu{n zw!UR0d_Ob4JC88nW7pwnA)tVbndRDT<+Ig$i$jglb05|f(Btg?+#3$@EgyXf3>I$u zTyb%(>3&j1v)<1?L|?H)O~maXG2Hmdi)K-8d@j1310ZIOP*@dq*ZJCy$&90U?2u|( zawzyTV=2Cq8zoNtfI;ozqG_kMo()_7`pz?{aYo0R()N*KUn4)P`9!w&FWglVr15VC z`zu{+Caks$;h52x_q+qzJ6SZ zO`53f&xmsUjt3QXKN9Zh1Fpu-Ubv`H+YpDETyzlrjCl%SQPZw5JD`z-o1lz3V$prN z+oGH^zsIsw%@L)u5uz<|ZW$?leOfR3S_c9syF~xutR8E-O6FqcO50!*ICatHfMLb+ zW%8VIYu7RF5N%16%`1IH$7HRHLGl%u&h>Wjs1t6LjKvq-Qq5o+W|&mNr-{gh`Kk3= zi=i~NcNQFya%Gc9`AP8iDCs-ni{3*_8)4u0nsw-cf*a{Z2q!EJVIvec8CrX;`*z*$ zFICYydgW7KEBnHiDuBEjZZXldGIHMh&GI>JKF}i1;$6sBx%U&hR;mCf^fs1SixsLt z&05YIM|rZ&0Ra36^YR89Tv{WWgDBK%eRY<9llx9M=nMx@w+Ooe&3SKc@Yyx&sezfx zvkhmzCboM&GY)(#DBdk|C9`4qV%wn*v|R*i{5k)kGGjyMfp+!yqpa6vi_`$(S zf`OCtfOtm~hJ>5TXCyz<+OffLjYgdcTvoHEc!#mj)a480&=mjhp|Cz06PY4*>7>ClM*8NRY(6KLb2d+}{P z!UnS?3M3zb7q(&IL1QP4JBQ#%mv3iT*FFz<9|&98x5x#VkUS`*>)e;rB|OehxPH>$ z9mFHCpDWY)W(%zgr5_CaC`Rn_{A&PwDFnD>Hxx>D2qYgt-!j{T@lOPg#o)(;XVRvG zKkJGkz1ltpwqo5i*;Xs6B5L;Yw}Mp+4fD~Z|5>CW&ZzIA;-(&EH{JZ_`y02& z!`;fV4C22lYI#xhmQD8?%Qffmd-lXG6@K*CTy!AUxqHlz@ z@(#d;3hT&#Y+&$Wn`%6ci|z=#;BPPmw2}Xd<;B#)?EiWyd5XJ&>5)iFT9T#K&S%w;%=1Id z?D*r%)nQX;WoO#zZk=qo_Dws&v7L6zeRh3z11+pbiMx|mt4QV+d?_{ORDhOzB-$(< zM>d{_#v|O$wK|aMfa_-4U8&jYI()SA57{QIgw4gS>V8K;l&bp$~e2UeU&)s zz*J>ZzxfFLm&%d1i%+>Cj3{G@NhaWId^3Kcr*{_G++lGf|C=)yv`r|mwxD5t?&P1% zeby;x+(B+^q4vesw*rb}Y1bdYK?#~~B(uW{Xp`pOtF-+{hpn4vtGB+|T&1O`un@(; z8g$?y)QDPSSVd6ZU}(lw?eo}=!dazaM&g8z#H2}yoV6zm0Hyplb6#@~vTgxGJ|LYG zLnhr8M1St6G36D|$7jkc#&tt}Z9nB`48iS-qXI+O@DI+lD36s8mRjz}l-v>w=f|h_ zysyubaKk#vON*KqCP(?k;UY?RYE7}_gb z_iL#oH1VcDjctqn)^O*cCOhuvksxXky zb30=DPTS))p$z0hZkEWlP~gp+^l1f}d0^Kn2)?4xy|mPXiZm`=a(>pnQSfhy2wFtrMWai$(Xk9wJ@yqH!CW_|>Ht zx!Nwa2LjOSXASQYJS3%c#49^h~xDDGEe0T)efs3+ftb2??vy#? zH-j2FzP~-Say|RJzkoz^-gx%uoXAFI(IVFIJ8*vdxpy7_Mj8>`F4Kke#LZ>>oFH!7 zffDEKJ&%C)#p(kh8IVF8LUfSeINEv{KmN@Yyes0DgAUxmL)$(5g7Ch$CB-;NL|*3u ztyu5*d|JT(0B0=v~r8$HWVAkNLu2y z2(hpE`8iz@343+18rY*A`8jaQ>n3EPH^${&wqiOACa22n+MD9Rz?81o|24`cIf&w5 zK73X`Wx@ShogUd8XXCJKHIpXA&|nI%fPtc}M6S5ACsl87y{-$AoTED^n3`cZU;6md zJ5M{H=cAq(|H^oZyyH|Jl^sj=@|?G+4_|9iO^%l6v6iHOCSWr5MV3a7bB`V#_OW9l3$JlCd3e zQ5$3Hv7LZ?MvQDlCyW0rC;w69#)^)qMW5#j4#Es>%cMOSk|)T&o9X2l#AIYawGy943armLX6(5#$ zBp-p><)FM=P94?4iz~@~n6c5EdNJUm8L{g-!W+n2Mr-vud~_tbiHm!6--UCjU^?lv z@O%Y+8o796seUIc(Z2Eb>&mP)tXPS~YJHh+^rcV+CDnL~P{6Qw<@Qf`+#Mnh#}Z40 zw4vZrK?T;tv9QrygR+#<2M2#jU)WA%lZ7+^j#tn)BU3050x)gMfQY`mKF1oKPzXR?W8^HZ*LOztOFt-;~CcBvD`?9AD%4~_>zQW_ZBC5tGX-&xgAMAckW)y zQ0Y!vZOUHvY*Va#eGBB->!g}Cq)Fg^85|xEJsmb`ucZ`PX``DCv;3s4xe)%Y7k}J` zD%jO^+Ctl4@9Ju?!X3dBY?Xv)1Y&_PG4Z85kxK))zdMh)hR6{}`;(6A;H8vH{E265 z8ZUg-p9xqX>OWX@Wa*7fLJ#fEmdIQ&RrfJsEF)Fwn$ zR!+1DBaY2WZ$4bl8BC_jc~go*RZE&&IdGI|aX6vl^1889>aPAw@babbiCNf}U5*SiC>cg$-PYxz&hV%rOjec70M}1P2NGfmEOsH$xMGIa5#h=GTDr zCk&jiHxVc!i_%oBo;L5<%OsSJ68W<@1Z%f$ML3Bq6|{pPLCix zag#XX}06lYLG7_?qT@ zu>AC~Cv4!A2tSnVi!(WyUEn%Hhc32pE)@6FH&><^GCZiLntXU5Rq@WiZ;dSKRs(4~ zfB5w#^*rB&pUjVOG3xJG7dH6gVN+j7Bi!@$E+K;=U!Pa`2l236^Sm>t!oZ^&6G%t5 zqQ3IuSpRU_Yv#A@Lju{gl3ZUS@_3`c3oLWVcWtrd zFA7k~t8=MF6!r&O(;B*|6$85k3c=8^^>2e#)Gm;Lx4_;UXk}Vp+q*}l#Wu(86c{(n z8t2|~nKehD04aU0$=%W1!U!wa$=r0#>}I%}OA|PIFvuqQbec?f%k<2V)i^t@2Ds5I z?=&gq*Ld%Wc(>kSQ+kmN@gi^}$2i*f{D)7BLgvarWUs=8y_v9ald%}Pl|keKUJwFy zU+e(6=E&T9!fhDDa_bS)uFtTWXtYj5$lk?BBs9M759(l z9qPmO)at8;AWDhJZ8w&=zf>h`Bt^1`_;487A#Wvo<=(O2f&GrBo&7QUXxcIT`H%0p zqOL<{nmQDJ8liE%IoUflvNl>zQcC`QjzWtasyA^=APc5Itxj9~nL2F8$hwCVJ*rEN zYHm-~C%&KINl9*6(@Om8oix`><8QCKW9V{$bTLw>Tp*0C;iJw-{+dCv==UrF@(NJi zOK>I8G~kt!CS{-C>(w0FuNgI7Z5^nEZSk&LEi0q;#RJlPbKP(vzi8EqEH(H{Q)~0d z_Hj|cVCU&@gi381-;cw{`Z3%$nu6nZqLduQqSy67`yMHS>~n%r=*xaF{HbXU(u1Z# zsRj+Wc#5koeMp%Gvukdj)(#kKWW@18=lHId?<}WTxNZ!^97)+`tBpNJhl))=g>&aP z>`C8kYMnv{I-i>^k9{k1err#V#C@vy*sRsVBa!)O2l9O5g@_U7@U&{}rC;xffs)?C zd(eAvt?TOXuC>QblG1;vnsm5bm&0S!bOa4um()J%IEsfI&@V!dZ?KUjh%}0EC$x66 zQBO9OkLg|?zC0Um|8!$FWnVBxt(K*HqF1tEsnbQd@S*yj0W|l?zr*6SH;{4B(2Hk9 z1yK>xq5UGqE)hN4M0dN(VI^CvtIAHxhBNgt#A9L0%?19x#uI#Yf*sxUXF9KWuI!77 zQryVPC4DfJlvw@;z0w|kRs5xAU1yqAYhP5OQ0B)#vAVPe;Ah*RaL3W+CG6Y6Xq9VC z@|CvI3TKCks{B?DS?yl_@m$NuGs?(zC) z6|j6*g8#mo#m9I(!`t4`L8r-sGFmCc>odxKslEm3;%Tw&?Vkyar`zGxrmL{7pwzw#M-V(aY)W^FT3xG|HLU@utVv8ABz>}Xv45+s`|eMDxl+f*+n+28 z&6=TdLqRSvM@HC$UUch;EVz9MV5L9g<|OB~D?YdGnDJ+#lK}(RCUT4i$A=WZ!L``W z)z#&4#Y8SBf z_r%_Zl1T3RNVs8~;hqtvlUBmZv@3$DS4V1h_+u391|s1716t&$M$d6}Lpm>b!s!Tg2cUEPKP^SVtyRlaJm^@@c zCN%w}y8aMBaiU1+Ukk^OLKB}899<^Hs#PiFa^(W%6Nq^l$zhNwJ`UR})g_WzAbAYunWU z6_UYVpV)<-;pc;P;ily>TwEtNikVdp$cMMf#di#Q>M`kg&6JMJt)E#*nUmh>V;3yEh(#R4C=%(r~Smg%Xeb_jU2 z1|gSSbPU=M`&V3Fa}zQb1RLqACdeXZ2A5$MO3cJ)OuJPGGUK~p<&pK?8vLZ7i>V#v zBDMln<3#-mF1!{&;fRb(N@&K=lw5A& z<1}-)xkidSG2UMI8R7n>ien<#{)BL(upK0tlao{Mtu#yb*ofQTLG25#+UIvu5lu$4 z|6V8o+YS_T;(0)$q32fI=@QSw_Ovi zb|J~kn2=VkcOASU%>J-*<8dVF)V_ zLdd=g*R=o0vo(+n3+zl$171H+Ym~d*bSq0>EQUTSg?M6Pk7V1xssT#VKjBUoB&P;% z&be_`v^HG_xQCCVw|vgLyml?(2ENi*_jt&mum2=+B(q)R{9 zTqN=$yVYIFXL4T(wwG~e3TLve|;9DOsqiqRV-j$51{Sq6{i8UK?edk`tAY3;T_{ zbpp83O!6^PN$ZzNPTVZk;a=3H09D$&YhqHjKpt9f2l+#U@-G@7jDqEe=ZkhYCCX%y~G#x`H1tIr)64nLSTi6^4=mA!&@FKzEIKmIO;(C?lW13 zvnd|oY3~Kluq>CC0H&RpgL{>{F37Q*|l##%XZ*l^n(5rvv zX#m0uZ@Dta)6rzt^lN`J$zH5HesMmhzUXyME(X)RzDS7I$~BV;-t_QVrfacU*Ge*0 zPTCR=H=_00m-7=#zmLYur#aX?g$@P-*RZeIjk`Jg9di8d>)8!qD%YKI4H`Dax8f{H ziCU_J+O~bf#j@(j+k;dYd1u3~=$+N!7cU0Bzqz8rNxuHUvSFs0v;t9N-*cQn;MRw> zFj3gEs9~nolVVD^5}!=c9z_eYt=HTTSdlUP4Y>TMJ2GOfG)t%aPPzNDiaC%u;7MEA zL`kFg9L`whe)4VrVfN}dV_ucS-A^fE<_dQMwbwu8Oo@&8K#@Hb<>@Y_^_$jblirdy zH0r4biq50qu=0@>LlfwhUHCh2iw(^)F>Xf)*vIHS<;f8rnEFRn$9@MG;`FobV^(tI zJd=8X9bDy=Pvw2x^4M0DeWzBkwn%VnK$00mMn@M6v6%-y{Vwc z%fo?<>a5S&U0tsEzvWBy-QKh0DQRtDt6)CmF>UlgikZ^aZGLgfh;>u!tc&GFN#%5Y ztbl6}{f)l87yH5lVly=DTG}3ewOj%iSh#Tq{{{6JeV<;JSrX*$OAGn;B#K`ZH6)4Lv*X5 z6zfoI#eDsXiQMD$ewa__iKxfr_(cGBvCp87BM4$m)+aa^LvLbt4R0t%BYn;ZsiIN(ee97c>=S#C9vn*KM~1 z2Gv28ezi#v_h|L^R=v_=-t1;=jB{J*pD~vpEm}mcG&v3#uMt+H4Eo8!>WyEcF>#T~ zT$vvvOu+0am`{jl>kZ(hIGrG!q;Yu+VOPrE$&aVeksF@K4(&3;ylAH}D4;XC>}d=c z^GE*FHB1<6eXN@X9gF*|moot`FIjy5?hDp%_MCZCv<^XsLcK`jOThN1CE-jue$l;2 zvPjcc;VCaxs7rduLRY@?$gs@_bLYJgeNk`p_@_j=ZS}?#(sZJ1cad`mrBz(r;JnYN&bm&IT_z{Z(?{C$P8m1Xtsa)1^R|v>_aQAmf4Zd9P;3_N6bPl zb@Yij2h!SeWr-k=5~!n93l3@>%?9;s);jd)kj4Fj_zRn?VK+;}jS$nCeqx!TEsB+S zoA_~#;50z)gqgywbzxP_} zW6%0BA*R7#Fk{P-J(X-B&y%vG$e1$L(O?WCWJ{xrlqr*Bk3pr9on)&l^&UOf`zw;K=f3Xi{P8{Ky6?~T`^yx3Uoa4negvdtA~+f6AE$dXm3Q(s$@09+VU>zB*ianG z64S*ol$4W3r6U79El7-ta`t*u;lY3jVo*jXM#obqJ=!Y_aC+l#o`c@03pH4!6ASJY zr79akar)L}eg0DGWlvXQrI`#>mGq&fB?NKla>>MM6XO<_!;Z# z#XYVs=*r6)GNTigWx7P+agvLPll6i@`E!^hNEv1!E^d<(V11pf^eNY{OjmExuPnpH z#oY^3Y7-B0R%t5eAiI|`{G#G?Ri4kq(f#;r852VRxB$QDJfg_iZzoL(AV-CTMXO*M znFmM~0oKV+3fvs;BagX0YUoTMW2`m48&r$stMYK7RdP&(xyU?Bv^C!i?M0JAwoQti zURkp#qGp0jssXsz6{Lz07JM*HoFtNbWeU1gy zSP=_fB2X&B$?@V%HF z9k2Yu)e2nzQ&R}g?|z`HQLVv}Oka4`s#b;4S}2>sz+G1mqgO}P7FSp zz0nobbE=UB6~GTFv9!89jK>rUj$_bPvHscxUbClM$~~PG>Cnp0=qV%pV|lWkujV42 zG<{U;xoe)PC^8_1w#3Ke_u0ZlHOL(ovkv7?v+X?POz|eF8RB92ngI+?q5C)4pSDIz zJ~)ijeESR7GEHa!A_&ZK+>xWii_HUhBcN{wa!Y?Z{`1F%d_lfLCCB%7acB9$i* zYei?zB%AR#aU_Cq=y*8tFz_;aMEh#k`tc#}6q#vr<@+-!#T7Sp zrFQPTrj*0GuzW6htLwJ5bW+znLPML?tjK!iPL~Yue{NnT1ABSIP3Zp5y8q^WPV%CZ zPP^4nt?S+dH`YeRug>fKLyOr+;4G`BjR+TZIt%+a(Mh4T^B0=Ip~6={>%x-JZybE) z|J*mgEZsHEyR(5blDZpyb0fmLI!4=sX799$sy>EC{JpV`l>c!&yb+(*cF?XBGCx6n ztZ)sUuA|U}E_=&g>feu{y4k)r2ZM0IIvT$ckI6=|dexiJ;1nLQP?krUDQnPPiS@+^kU5BCs$Xp>Qh z)@=xz@}#aV0%-~<_FuOE^nfp7TM7|nEVHS#Fv@i8ZArCNqDT{6*<%m2=Es+P-3D8= z!saHP*3mERXBEGe#js|dHEm`U1DjoAyyx2bY;^^r(8@kVH~LwyFNslvpdRn9o@)O9oMM<_1YySJBV-^H|N z57!@U0A?~j&!T@zD2d$In+x1123fsXJ8it#xCROu-C-a35X}!SoIxx0{JP`IU3@KL z5GeFr>TuMVx1P-&-&KYa(n8$KTM?=pvDR;=i#UD`W80!W%_O(ASOjk8!zS|RMl4dk zwT^-4ZQd26k8_FEONrf0+vH9vM2!paw;ma?Z{Ff24MvZ$o47*UHQIM`q{AB2!}0e% zCvf@NNjk%7%#_w`n&xl6B++lzGt=Rk!kmCI4V;TLwAWZU-fn^g`*z8I7W&*i#SohcI$UFvu zRa%oJKW8;=dQ06P@KBEwt`rVY@oCyk9vB7QRBL)dL)b){_q1}L&h)L&7;ueoJppm? zFUBs37#;3q^C8oKK#yVf z`d9v_FyM{dQ{n5oxRVK2aO#&SZHnWL+d28xgOU{g%z+9+nyulBbvKtK$#h&#STxQW zl*df)1TTgp32jD@g1nKOLg@t8d<^Cs^a&qow21wSTs-?~N$BgYzsO+0W%PjrOj?^L1|r-Z7kZ%~@1! zugBQl?KdP!m1fNFhrc@>0#_mXV)c4`&rG>I{E|UKF6Gu7IIU)*H|5ew^yZ8XIAR}! ze7>nhg*r8Xh3`&oh!M_*Q@P}4I@t|5>OK}WTe#w)8Ej8`U7K2eOIrB8Fa>n< ztnQ?HA+drR9<$kL2^Cas6_ur}!15l*(AKQrnq3=e+t_*RCiI-d?|l;S8!;)nV3%=n z+u@`BY}Ayx?_@8=OKBN3_G&7v`@QIiQ>Q6LZPW{z#IJb01P_rdgI24YpWA+%qL#J* zR?=t-3-T0TJr+tD|If-^sQH?*qKQ8oKa;&hAG!Yse=u3#&&~dWqwKXsT-8)tRYi3E#Y>t24Ur@SP#bCQqp}k!0Lu{AoKq?S*p*lg z&|}tND(gq#ub&g^DhZ`PcH9=PD(Q&Xs@`+|Vyl!%hNE+7vrpPPfMM!gDN$bxUXEW~ z2VIgxtA{i5mNQo@c)-;ZMF#O1Tc~^sKL}lgKrc;fK?{jzUY+T?8&-pp@C_zeh-{sXa_n9+W)4N^KEjW-l)Ru07|umAjEYL~d9Gvu9g z7#rN{T4H{n%Aw@i5FLv{FYm4Ef6BVr5F$<-7)u9hf)cZv&58vH5Qw&Slw=JE8w$6n zC~xeB$2X`C%ljmU_C0>CN$2R!zc!m$CH$K9@Bvo3I>5Uxw<&^kC%t^eSm=^5Pu5$E z{7+HT@=X{ic#BLl{Tk^}|L(Yp-Ec&zb$CPkV%#~a%6iGmXPZN>5K6=PA*P@m$N)yQ zf3i6S);$?~ZT}a>PnBY9YW3uE+=|V@WXm(y^PlGJBzbYh1Xf|L_ixu&iE9fXv^VTl<>Roo~h`#)U~9 uOCF~BX{=fiN?cRkgR0DOAd?LoO@g@XaVN;tz9tPq666MAWpqd9H}`)%_?D#r literal 0 HcmV?d00001 diff --git a/static/vendor/css/tailwind.output.css b/static/vendor/css/tailwind.output.css new file mode 100644 index 00000000..b174bcd6 --- /dev/null +++ b/static/vendor/css/tailwind.output.css @@ -0,0 +1 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none;padding:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #d5d6d7}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-moz-placeholder{color:#9e9e9e;opacity:1}.form-input:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::placeholder{color:#9e9e9e;opacity:1}.form-input:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-moz-placeholder{color:#9e9e9e;opacity:1}.form-textarea:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::placeholder{color:#9e9e9e;opacity:1}.form-textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a0aec0'%3E%3Cpath d='M15.3 9.3a1 1 0 011.4 1.4l-4 4a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4l3.3 3.29 3.3-3.3z'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#a0aec0;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.theme-dark .dark\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--divide-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.bg-orange-100{--bg-opacity:1;background-color:#feecdc;background-color:rgba(254,236,220,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-teal-100{--bg-opacity:1;background-color:#d5f5f6;background-color:rgba(213,245,246,var(--bg-opacity))}.bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#047481;background-color:rgba(4,116,129,var(--bg-opacity))}.bg-blue-100{--bg-opacity:1;background-color:#e1effe;background-color:rgba(225,239,254,var(--bg-opacity))}.bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.bg-blue-600{--bg-opacity:1;background-color:#1c64f2;background-color:rgba(28,100,242,var(--bg-opacity))}.bg-purple-600{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6c2bd9;background-color:rgba(108,43,217,var(--bg-opacity))}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.active\:bg-transparent:active{background-color:transparent}.active\:bg-purple-600:active{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.theme-dark .dark\:bg-gray-700{--bg-opacity:1;background-color:#24262d;background-color:rgba(36,38,45,var(--bg-opacity))}.theme-dark .dark\:bg-gray-800{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.theme-dark .dark\:bg-gray-900{--bg-opacity:1;background-color:#121317;background-color:rgba(18,19,23,var(--bg-opacity))}.theme-dark .dark\:bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.theme-dark .dark\:bg-red-700{--bg-opacity:1;background-color:#c81e1e;background-color:rgba(200,30,30,var(--bg-opacity))}.theme-dark .dark\:bg-orange-500{--bg-opacity:1;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity))}.theme-dark .dark\:bg-orange-600{--bg-opacity:1;background-color:#d03801;background-color:rgba(208,56,1,var(--bg-opacity))}.theme-dark .dark\:bg-green-500{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.theme-dark .dark\:bg-green-700{--bg-opacity:1;background-color:#046c4e;background-color:rgba(4,108,78,var(--bg-opacity))}.theme-dark .dark\:bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.theme-dark .dark\:bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.theme-dark .dark\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.bg-opacity-50{--bg-opacity:0.5}.border-transparent{border-color:transparent}.border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d5d6d7;border-color:rgba(213,214,215,var(--border-opacity))}.border-red-600{--border-opacity:1;border-color:#e02424;border-color:rgba(224,36,36,var(--border-opacity))}.border-green-600{--border-opacity:1;border-color:#057a55;border-color:rgba(5,122,85,var(--border-opacity))}.border-purple-600{--border-opacity:1;border-color:#7e3af2;border-color:rgba(126,58,242,var(--border-opacity))}.focus\:border-gray-500:focus{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.focus\:border-red-400:focus{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.focus\:border-green-400:focus{--border-opacity:1;border-color:#31c48d;border-color:rgba(49,196,141,var(--border-opacity))}.focus\:border-purple-300:focus{--border-opacity:1;border-color:#cabffd;border-color:rgba(202,191,253,var(--border-opacity))}.focus\:border-purple-400:focus{--border-opacity:1;border-color:#ac94fa;border-color:rgba(172,148,250,var(--border-opacity))}.hover\:border-gray-500:hover{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.theme-dark .dark\:border-gray-600{--border-opacity:1;border-color:#4c4f52;border-color:rgba(76,79,82,var(--border-opacity))}.theme-dark .dark\:border-gray-700{--border-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--border-opacity))}.theme-dark .dark\:border-gray-800{--border-opacity:1;border-color:#1a1c23;border-color:rgba(26,28,35,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem}.rounded-r-lg,.rounded-t-lg{border-top-right-radius:.5rem}.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.theme-dark .dark\:block{display:block}.theme-dark .dark\:hidden{display:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-12{height:3rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-6xl{font-size:4rem}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mr-3{margin-right:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-5{margin-right:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.mt-16{margin-top:4rem}.-mr-1{margin-right:-.25rem}.-ml-1{margin-left:-.25rem}.-mb-4{margin-bottom:-1rem}.max-h-0{max-height:0}.max-h-xl{max-height:36rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.pr-2{padding-right:.5rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pl-10{padding-left:2.5rem}.pb-16{padding-bottom:4rem}.pr-20{padding-right:5rem}.pl-20{padding-left:5rem}.placeholder-gray-600::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.fill-current{fill:currentColor}.text-left{text-align:left}.text-center{text-align:center}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-700{--text-opacity:1;color:#c81e1e;color:rgba(200,30,30,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-orange-700{--text-opacity:1;color:#b43403;color:rgba(180,52,3,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#0e9f6e;color:rgba(14,159,110,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-700{--text-opacity:1;color:#046c4e;color:rgba(4,108,78,var(--text-opacity))}.text-teal-500{--text-opacity:1;color:#0694a2;color:rgba(6,148,162,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-purple-100{--text-opacity:1;color:#edebfe;color:rgba(237,235,254,var(--text-opacity))}.text-purple-200{--text-opacity:1;color:#dcd7fe;color:rgba(220,215,254,var(--text-opacity))}.text-purple-600{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.focus-within\:text-purple-500:focus-within{--text-opacity:1;color:#9061f9;color:rgba(144,97,249,var(--text-opacity))}.focus-within\:text-purple-600:focus-within{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.active\:text-gray-500:active{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.theme-dark .dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.theme-dark .dark\:text-gray-100{--text-opacity:1;color:#f4f5f7;color:rgba(244,245,247,var(--text-opacity))}.theme-dark .dark\:text-gray-200{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.theme-dark .dark\:text-gray-300{--text-opacity:1;color:#d5d6d7;color:rgba(213,214,215,var(--text-opacity))}.theme-dark .dark\:text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.theme-dark .dark\:text-red-100{--text-opacity:1;color:#fde8e8;color:rgba(253,232,232,var(--text-opacity))}.theme-dark .dark\:text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.theme-dark .dark\:text-orange-100{--text-opacity:1;color:#feecdc;color:rgba(254,236,220,var(--text-opacity))}.theme-dark .dark\:text-green-100{--text-opacity:1;color:#def7ec;color:rgba(222,247,236,var(--text-opacity))}.theme-dark .dark\:text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.theme-dark .dark\:text-teal-100{--text-opacity:1;color:#d5f5f6;color:rgba(213,245,246,var(--text-opacity))}.theme-dark .dark\:text-blue-100{--text-opacity:1;color:#e1effe;color:rgba(225,239,254,var(--text-opacity))}.theme-dark .dark\:text-purple-300{--text-opacity:1;color:#cabffd;color:rgba(202,191,253,var(--text-opacity))}.theme-dark .dark\:text-purple-400{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:focus-within\:text-purple-400:focus-within{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:hover\:text-gray-200:hover{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.uppercase{text-transform:uppercase}.hover\:underline:hover,.underline{text-decoration:underline}.tracking-wide{letter-spacing:.025em}.align-middle{vertical-align:middle}.whitespace-no-wrap{white-space:nowrap}.w-1{width:.25rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-12{width:3rem}.w-56{width:14rem}.w-64{width:16rem}.w-full{width:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.gap-6{grid-gap:1.5rem;gap:1.5rem}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.translate-x-1{--transform-translate-x:0.25rem}.-translate-x-20{--transform-translate-x:-5rem}.-translate-y-1{--transform-translate-y:-0.25rem}.translate-y-1\/2{--transform-translate-y:50%}.transition-all{transition-property:all}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-colors{transition-property:background-color,border-color,color,fill,stroke}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}.focus\:shadow-outline-red:focus{box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-green:focus{box-shadow:0 0 0 3px rgba(132,225,188,.45)}.focus\:shadow-outline-purple:focus{box-shadow:0 0 0 3px rgba(202,191,253,.45)}.theme-dark .dark\:focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:m-4{margin:1rem}.sm\:mt-auto{margin-top:auto}.sm\:max-w-xl{max-width:36rem}.sm\:p-12{padding:3rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:w-auto{width:auto}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width:768px){.md\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.md\:block{display:block}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:h-auto{height:auto}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:mr-32{margin-right:8rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} \ No newline at end of file diff --git a/static/vendor/img/forgot-password-office-dark.jpeg b/static/vendor/img/forgot-password-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cdd69e3193e142e58ecf6c781bcca588b02fcee0 GIT binary patch literal 58822 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 literal 0 HcmV?d00001 diff --git a/static/vendor/img/forgot-password-office.jpeg b/static/vendor/img/forgot-password-office.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4dcaf51958e491e34f6d0d85f62ffe24c0a88b01 GIT binary patch literal 91979 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 HclLh(wt;3s literal 0 HcmV?d00001 diff --git a/static/vendor/img/login-office-dark.jpeg b/static/vendor/img/login-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9dda0540ac36f4e36e3f3bee66aea63ea4ef258d GIT binary patch literal 14198 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 literal 0 HcmV?d00001