From 68b2ac00896d2d7fcc21a35e3c6e3bd8e3cd074d Mon Sep 17 00:00:00 2001 From: knuthtimo-lab Date: Mon, 6 Jul 2026 21:50:34 +0200 Subject: [PATCH] 11 seo pages --- .agents/pricing-strategy.md | 468 +- .claude/hooks/check-gstack.sh | 38 +- .claude/settings.json | 30 +- .claude/settings.local.json | 6 +- .codex-temp/awesome-design-md-SKILL.md | 60 - .github/pull_request_template.md | 78 +- .gitignore | 11 + .mcp.json | 22 +- .planning/industry-pages-batch2.md | 2562 +-- AI-SEO-CONTENT-PRIORITIES.md | 96 +- AI-SEO-TOP5-REWRITE-PLAN.md | 838 +- DESIGN.md | 644 +- FINAL_DELIVERY_PACKAGE_TIMO.md | 314 +- PLAN_bulk_dynamic_and_barcode_.md | 358 +- PRODUCT.md | 102 +- .../bulk-qr-code-generator-excel-guide.md | 242 +- articles/dynamic-vs-static-decision-matrix.md | 362 +- articles/linkedin-business-card-qr.md | 68 +- docker/entrypoint.sh | 16 +- docs/automations/README.md | 90 +- .../greenlens-pain-mining-machine.md | 320 +- .../greenlens-viral-slideshow-machine.md | 278 +- .../qrmaster-broken-link-cta-checker.md | 114 +- docs/automations/qrmaster-pr-seo-review.md | 326 +- .../qrmaster-seo-sprint-2026-05-11.md | 316 +- .../qrmaster-seo-sprint-machine.md | 422 +- guest-post-pitches.md | 614 +- linear.app/DESIGN.md | 1096 +- marketing/apify-research-report.md | 50 +- marketing/industry-image-prompts.txt | 202 +- marketing/programmatic-seo-1000-page-plan.md | 914 +- marketing/programmatic-seo-top-50.md | 310 +- marketing/sales-deck-marketing-manager.md | 290 +- marketing/seo-outreach-top-20-emails.md | 816 +- marketing/tiktok-slideshow-25-pack-prompts.md | 4300 ++--- marketing/tiktok-top5-slideshow-pack.md | 1042 +- memory/meta_ads_competitor_analysis.md | 1402 +- memory/project_summary.md | 48 +- memory/upgrade_nudge_status.md | 82 +- meta-fix.js | 23 - output/paused-qr-preview/index.html | 1552 +- .../migration.sql | 8 +- .../migration.sql | 6 +- public/blog/teams-qr-code.svg | 102 +- public/images/restaurant_qr_flat_mockup.png | Bin 0 -> 404718 bytes public/images/restaurant_qr_mockup.png | Bin 0 -> 577540 bytes public/producthunt-featured.svg | 22 +- qrmaster-lighthouse.report.html | 2897 --- qrmaster-lighthouse.report.json | 15107 ---------------- quora_antwort_statisch_dynamisch.txt | 45 - read-inbox.mjs | 49 - scripts/build.js | 368 +- scripts/check-links-and-ctas.js | 498 +- scripts/outreach-resource-emails.ts | 768 +- scripts/scrape-us-qrmaster-leads.mjs | 842 +- scripts/validate-lead-emails.mjs | 652 +- seo-keywords.csv | 254 +- seo-plan-april.md | 840 +- social-content-30-days.md | 624 +- sql/revops_onboarding_v1.sql | 526 +- .../alternatives/beaconstac/page.tsx | 1144 +- .../(marketing)/alternatives/bitly/page.tsx | 1310 +- .../alternatives/flowcode/page.tsx | 1256 +- .../(main)/(marketing)/alternatives/page.tsx | 686 +- .../alternatives/qr-code-generator/page.tsx | 1248 +- .../(main)/(marketing)/blog/[slug]/page.tsx | 330 +- .../dynamic-barcode-generator/page.tsx | 2786 +-- src/app/(main)/(marketing)/page.tsx | 268 +- .../(marketing)/qr-code-analytics/page.tsx | 454 +- .../qr-code-for/[industry]/page.tsx | 336 +- .../(main)/(marketing)/qr-code-for/page.tsx | 670 +- .../qr-code-print-size-guide/page.tsx | 642 +- .../(main)/(marketing)/restaurants/page.tsx | 1762 +- .../tools/barcode-generator/page.tsx | 1146 +- .../GoogleReviewGenerator.tsx | 438 +- .../tools/google-review-qr-code/page.tsx | 1208 +- .../tools/instagram-qr-code/page.tsx | 794 +- .../(marketing)/tools/vcard-qr-code/page.tsx | 746 +- .../(marketing)/tools/wifi-qr-code/page.tsx | 788 +- .../(marketing)/use-cases/[slug]/page.tsx | 156 +- .../(main)/(marketing)/vs/beaconstac/page.tsx | 1104 +- src/app/(main)/(marketing)/vs/page.tsx | 316 +- src/app/(main)/api/auth/logout/route.ts | 60 +- .../(main)/api/cron/retention-emails/route.ts | 226 +- src/app/(main)/api/onboarding/route.ts | 238 +- src/app/(main)/api/user/stats/route.ts | 128 +- .../(main)/onboarding/OnboardingClient.tsx | 1720 +- src/app/(main)/onboarding/page.tsx | 30 +- src/app/(main)/tools/page.tsx | 236 +- .../(marketing-de)/barcode-generator/page.tsx | 904 +- .../(marketing-de)/qr-code-erstellen/page.tsx | 632 +- src/components/aeo/FAQSection.tsx | 76 +- .../dashboard/OnboardingChecklist.tsx | 342 +- src/components/marketing/AnswerFirstBlock.tsx | 136 +- src/components/marketing/FAQ.tsx | 230 +- src/components/marketing/FreeToolsGrid.tsx | 250 +- src/components/marketing/Hero.tsx | 454 +- .../marketing/IndustryPageTemplate.tsx | 952 +- .../marketing/PostDownloadPopup.tsx | 198 +- src/components/marketing/Pricing.tsx | 328 +- .../marketing/TestimonialsCarousel.tsx | 222 +- .../marketing/UseCasePageTemplate.tsx | 1156 +- src/lib/auth-flow.ts | 94 +- src/lib/competitor-data.ts | 610 +- src/lib/growth-pages.ts | 2657 +-- src/lib/metaConversions.ts | 136 +- src/lib/plans.ts | 20 +- src/lib/pseo-page-types.ts | 168 +- src/lib/revops.ts | 740 +- src/lib/temp-industries-1.ts | 398 +- src/lib/temp-industries-2.ts | 398 +- src/lib/temp-industries-3.ts | 398 +- src/lib/temp-industries-4.ts | 398 +- src/lib/temp-industries-5.ts | 398 +- src/lib/testimonial-data.ts | 424 +- task.md | 60 +- tasks/lessons.md | 22 +- tmp/apify_input.json | 5 - tmp/apify_input_mult.json | 5 - tmp/apify_results.json | Bin 20860 -> 0 bytes tmp/clean_articles.py | 47 - tmp/email_log.txt | Bin 670 -> 0 bytes tmp/leads/2026-04-15-leads.md | 380 - tmp/leads/2026-04-16-leads.md | 838 - tmp/leads/2026-04-19-leads.md | 1075 -- tmp/leads/AGENT_INSTRUCTIONS.md | 116 - tmp/leads/INSTRUCTIONS_competitor_pain.md | 74 - tmp/leads/INSTRUCTIONS_restaurant.md | 47 - tmp/leads/INSTRUCTIONS_tradeshow.md | 54 - tmp/run-send-leads.bat | 3 - tmp/runs_list.json | Bin 6678 -> 0 bytes tmp/send-leads-2026-04-16.js | 735 - tmp/send-leads-2026-04-19.js | 878 - tmp/send_all_3_email_pitches.py | 117 - tmp/slugs.txt | Bin 23324 -> 0 bytes tmp/slugs_utf8.txt | 149 - tmp/test_email.py | 178 - tmp_email_size_test.js | 119 - ...master.net_2026-05-31_13-09-41.report.html | 2897 --- 139 files changed, 30953 insertions(+), 56321 deletions(-) delete mode 100644 .codex-temp/awesome-design-md-SKILL.md delete mode 100644 meta-fix.js create mode 100644 public/images/restaurant_qr_flat_mockup.png create mode 100644 public/images/restaurant_qr_mockup.png delete mode 100644 qrmaster-lighthouse.report.html delete mode 100644 qrmaster-lighthouse.report.json delete mode 100644 quora_antwort_statisch_dynamisch.txt delete mode 100644 read-inbox.mjs delete mode 100644 tmp/apify_input.json delete mode 100644 tmp/apify_input_mult.json delete mode 100644 tmp/apify_results.json delete mode 100644 tmp/clean_articles.py delete mode 100644 tmp/email_log.txt delete mode 100644 tmp/leads/2026-04-15-leads.md delete mode 100644 tmp/leads/2026-04-16-leads.md delete mode 100644 tmp/leads/2026-04-19-leads.md delete mode 100644 tmp/leads/AGENT_INSTRUCTIONS.md delete mode 100644 tmp/leads/INSTRUCTIONS_competitor_pain.md delete mode 100644 tmp/leads/INSTRUCTIONS_restaurant.md delete mode 100644 tmp/leads/INSTRUCTIONS_tradeshow.md delete mode 100644 tmp/run-send-leads.bat delete mode 100644 tmp/runs_list.json delete mode 100644 tmp/send-leads-2026-04-16.js delete mode 100644 tmp/send-leads-2026-04-19.js delete mode 100644 tmp/send_all_3_email_pitches.py delete mode 100644 tmp/slugs.txt delete mode 100644 tmp/slugs_utf8.txt delete mode 100644 tmp/test_email.py delete mode 100644 tmp_email_size_test.js delete mode 100644 www.qrmaster.net_2026-05-31_13-09-41.report.html diff --git a/.agents/pricing-strategy.md b/.agents/pricing-strategy.md index 77816dd..b484c72 100644 --- a/.agents/pricing-strategy.md +++ b/.agents/pricing-strategy.md @@ -1,234 +1,234 @@ -# QR Master — Pricing Strategy -*Erstellt: April 2026 | Basiert auf Marktforschung, Competitor-Scraping & SaaS-Benchmarks* - ---- - -## 1. Marktkontext - -### QR-Code-Markt 2025/2026 -| Metrik | Wert | -|--------|------| -| Globale Marktgröße | $15,3 Mrd. (2025) | -| CAGR bis 2030 | 16,1% | -| US-Smartphone-User die QR scannen | 100+ Mio. monatlich | -| Business-Adoption | 50% der Unternehmen nutzen QR-Codes aktiv | - -**Fazit:** Wachstumsmarkt mit noch großem Potenzial, besonders im KMU-Segment. - ---- - -## 2. Wettbewerbs-Pricing-Map - -### Vollständige Marktübersicht (aus Firecrawl-Recherche) - -| Tool | Preis/Monat | Analytics | Dynamic | Bulk | Branding | Positionierung | -|------|------------|-----------|---------|------|----------|----------------| -| TQRCG | $5 | ✅ | ✅ | ❌ | ✅ | Value-Leader | -| QRStuff | $5 | ❌ | ❌ | ✅ | ❌ | Budget | -| ViralQR | $1,49 | ✅ | ✅ | ❌ | ✅ | Ultra-Budget | -| Beaconstac | $5–24 | ✅ | ✅ | ✅ | ✅ | SMB–Enterprise | -| Bitly QR | $10 | ✅ | ✅ | ❌ | ✅ | Mid-Market | -| Unitag | $10 | ❌ | ✅ | ✅ | ✅ | Mid-Market | -| ZebraQR | $9 | ✅ | ✅ | ❌ | ✅ | Hospitality-Nische | -| QR Tiger | $12–15 | ✅ | ✅ | ✅ | ✅ | Mid-Market+ | -| Hovercode | $15 | ✅ | ✅ | ✅ | ✅ | Growth-Fokus | -| Flowcode | $10–15 | ✅ | ✅ | ❌ | ✅ | Design-Fokus | -| Scanova | $20 | ✅ | ✅ | ✅ | ✅ | Premium | -| QR Code Chimp | $20 | ✅ | ✅ | ✅ | ✅ | Premium-Design | -| Uniqode | $10–30 | ✅ | ✅ | ✅ | ✅ | Enterprise | -| QRFY | $25 | ✅ | ✅ | ✅ | ✅ | Premium-Flat | -| QR Code Generator Pro | $15–29 | ✅ | ✅ | ✅ | ✅ | Agency | - -### Marktlücke für QR Master -> **Kein einziges Tool unter $12 bietet Analytics + Bulk + Custom Branding + DSGVO gleichzeitig.** -> Das ist exakt QR Masters Sweet Spot. - ---- - -## 3. SaaS-Benchmark-Daten (Industrie) - -| Metrik | Benchmark | Quelle | -|--------|-----------|--------| -| Median Entry-Level Preis (SaaS) | $29/mo | Monetizely 2025 | -| Free-to-Paid Conversion | ~5% | RevenueCat 2026 | -| Anteil Jahres-Abos (vs. Monatlich) | 68% annual / 32% monthly | RevenueCat 2026 | -| ARPU (Subscription Apps) | ~$30 | RevenueCat 2026 | -| Freemium-Anteil unter SaaS | 38% der Unternehmen | Monetizely 2025 | -| Hybrid-Pricing-Adoption | 61% | Monetizely 2025 | -| SaaS Churn (SMB) | 3–5%/Monat | Benchmark | - -**Key Insight:** 68% der Subscriber wählen Jahrestarife. Das ist der wichtigste Hebel für Cashflow und Churn-Reduktion. - ---- - -## 4. Value Metric Empfehlung - -### Aktuelles Modell: Anzahl dynamischer QR-Codes -**Bewertung: Gut, aber optimierbar.** - -Die Anzahl dynamischer Codes skaliert mit dem wahrgenommenen Wert (mehr Codes = mehr Kampagnen = mehr Wert). Jedoch: -- Limit von 8 FREE / 50 PRO / 500 BUSINESS ist nicht intuitiv kommuniziert -- Kunden denken in "Projekten" oder "Kampagnen", nicht in "Codes" - -### Empfehlung: Hybrid-Metric einführen -Primär-Metric behalten (Dynamic Codes), aber mit Sekundär-Metriken ergänzen: - -| Tier | Primär-Metric | Sekundär-Metriken | -|------|--------------|-------------------| -| FREE | 8 Dynamic Codes | 1 User, Basic Analytics, 30 Tage History | -| PRO | 50 Dynamic Codes | 1–3 User, Full Analytics, 1 Jahr History, Custom Domain | -| BUSINESS | 500 Dynamic Codes | Unlimitierte User, Advanced Analytics, Bulk, API | - ---- - -## 5. Empfohlene Pricing-Struktur - -### Tier-Empfehlung (Monatlich / Jährlich) - -#### FREE — Kostenlos, für immer -- **8 dynamische QR-Codes** (klar kommuniziert als "8 Kampagnen") -- Unlimitierte statische Codes -- Basis-Analytics (Scans, Datum) -- QR Master Branding (nicht entfernbar) -- **Ziel:** Acquisition, Habit-Building, Virality durch Branding - -#### PRO — €9/Monat (monatlich) | **€7/Monat (jährlich = €84/Jahr)** -*Empfohlen für: Restaurants, lokale Unternehmen, Marketing-Einsteiger* -- **50 dynamische QR-Codes** -- Custom Branding (kein QR Master Logo) -- Vollständige Analytics (Device, Location, OS, UTM) -- 1 Jahr Analytics-History -- Custom Domain für Redirects -- Prioritäts-Support -- **Rationale:** $7–9 liegt im bewiesenen Sweet Spot ($5–$10) für diese Zielgruppe. Beaconstac Starter bei $5 hat nur 100 Scans — wir haben keine Scan-Limits. - -#### BUSINESS — €24/Monat (monatlich) | **€19/Monat (jährlich = €228/Jahr)** -*Empfohlen für: Agenturen, Retail-Chains, Event-Organisatoren* -- **500 dynamische QR-Codes** -- Bulk-Upload (Excel/CSV bis 1.000 Zeilen) -- API-Zugriff -- Team-Management (bis 5 User) -- Erweiterte Analytics + Export (CSV, PDF) -- White-Label Option -- DSGVO-Compliance-Report -- **Rationale:** $19–24 ist der Bereich wo Scanova ($20), Hovercode ($15) und QR Code Chimp ($20) spielen — aber keiner hat DSGVO + Bulk + Analytics zusammen. - -#### ENTERPRISE — Auf Anfrage (ab €99/Monat) -*Für: Corporations, Franchise-Ketten* -- Unlimitierte Codes -- Dedizierter Account Manager -- Custom SLA -- SSO / SAML -- On-Premise Option (optional) - ---- - -## 6. Psychologische Preisgestaltung - -### Anchoring-Strategie -Reihenfolge auf Pricing-Page: **BUSINESS → PRO → FREE** (von teuer nach günstig) -→ PRO wirkt dadurch als "vernünftiger Kompromiss" - -### Decoy-Effekt -PRO muss der offensichtliche "Best Deal" sein: -- BUSINESS ist 2,7× teurer als PRO aber hat 10× mehr Codes → Nur für Power-User -- FREE hat 6× weniger Codes als PRO → Upgrade liegt nahe - -### Jahres-Pricing-Push -- Monatlich: €9 / €24 -- Jährlich: €7 / €19 (sparst 22% / 21%) -- **Wichtig:** Jahrespreis prominent anzeigen mit "Spare 2 Monate" statt Prozent -- Default-Toggle: **Jährlich** (da 68% aller Subscriber Jahrestarife wählen) - -### Charm vs. Round Pricing -- PRO: **€9** (nicht €10) → Charm Pricing für Conversion -- BUSINESS: **€24** (nicht €25) → Knapp unter psychologischer Grenze -- Jahrestarife: **€84/Jahr** und **€228/Jahr** (rund → Premium-Signal) - ---- - -## 7. Jahres-Discount-Strategie - -| Tier | Monatlich | Jährlich | Ersparnis | -|------|-----------|----------|-----------| -| PRO | €9/Mo | €84/Jahr (€7/Mo) | 22% / 2 Monate gratis | -| BUSINESS | €24/Mo | €228/Jahr (€19/Mo) | 21% / 2,5 Monate gratis | - -**Kommunikation:** "2 Monate kostenlos bei jährlicher Zahlung" schlägt "20% Rabatt" in A/B-Tests regelmäßig. - ---- - -## 8. Free-Tier-Optimierung - -### Ziel des Free-Tiers -Nicht monetarisieren — **qualifizieren und konvertieren**. - -### Empfohlene Trigger für Upgrade-Prompts -1. **Code-Limit erreicht** → "Du hast 8/8 Codes verwendet. Upgrade auf PRO für 50 Codes." -2. **Analytics-Feature geklickt** → "Detaillierte Location-Analytics nur in PRO." -3. **Custom Branding versucht** → "Entferne das QR Master Logo — upgrade auf PRO." -4. **Bulk-Upload versucht** → "Bulk-Upload ist nur in BUSINESS verfügbar." -5. **Nach 7 Tagen aktive Nutzung** → In-App Prompt: "Du nutzt QR Master aktiv — hole mehr raus." - -### Virality-Mechanismus -- FREE-Codes enthalten subtiles "Made with QR Master" in Metadaten -- QR-Code-Landing-Pages (bei Dynamic Redirects) zeigen "Powered by QR Master" Footer -- Jeder Scan ist eine potenzielle Akquisition - ---- - -## 9. Positioning Statement je Tier - -**FREE:** -> "Starte kostenlos mit 8 professionellen QR-Codes — keine Kreditkarte erforderlich." - -**PRO:** -> "Für Restaurants, lokale Geschäfte und Marketer: Unbegrenzte Änderungen, echte Analytics, dein Branding — für weniger als ein Mittagessen pro Monat." - -**BUSINESS:** -> "Für Agenturen und Retail-Chains: Erstelle 500 Codes auf einmal, per Excel-Upload — DSGVO-konform, skalierbar, professionell." - ---- - -## 10. Pricing Page Struktur (Empfehlung) - -### Elemente above the fold -1. **Toggle: Monatlich / Jährlich** (Default: Jährlich) -2. **3 Tier-Karten** in Reihenfolge: FREE → PRO (highlighted "Beliebteste Wahl") → BUSINESS -3. **CTA je Tier:** "Kostenlos starten" / "14 Tage gratis testen" / "Jetzt upgraden" -4. **Trust-Signal:** "Keine Kreditkarte für Free • DSGVO-konform • Jederzeit kündbar" - -### Weitere Sektionen -- Feature-Vergleichstabelle (vollständig) -- ROI-Rechner: "Wie viel sparst du durch dynamische QR-Codes vs. Neudruck?" -- FAQ (Objections aus Product-Marketing-Context) -- Testimonials-Sektion (Platzhalter für spätere echte Reviews) -- Enterprise-CTA am Ende - ---- - -## 11. Kurzfristige Maßnahmen (Quick Wins) - -| Priorität | Maßnahme | Impact | -|-----------|----------|--------| -| 🔴 Hoch | Jahrestarif als Default auf Pricing-Page setzen | +20–30% ARPU sofort | -| 🔴 Hoch | "2 Monate gratis" Kommunikation (statt %) | +Conversion | -| 🟡 Mittel | Upgrade-Prompts bei Feature-Gates einbauen | +Free-to-Paid | -| 🟡 Mittel | 14-Tage PRO Trial (kreditkartenlos) | +Trial Signups | -| 🟢 Niedrig | BUSINESS Jahrespreis auf €228 festlegen | Cashflow | -| 🟢 Niedrig | Enterprise-Kontaktformular ergänzen | Upmarket | - ---- - -## 12. Risiken & Gegenmaßnahmen - -| Risiko | Wahrscheinlichkeit | Gegenmaßnahme | -|--------|-------------------|---------------| -| ViralQR mit $1,49 unterbietbar | Mittel | Auf Analytics + DSGVO differenzieren, nicht Preis | -| FREE-User konvertieren nicht | Hoch | Smarte Feature-Gates + E-Mail-Nurturing | -| BUSINESS-Preis zu hoch für KMU | Mittel | Jährlich-Preis betonen: €19/mo fühlt sich zugänglich an | -| Konkurrenten senken Preise | Niedrig | Value-Story stärken, nicht mitziehen | - ---- - -*Datenbasis: Firecrawl-Scraping von 5+ Competitor-Seiten, QR Marktstatistiken 2026, RevenueCat State of Subscription Apps 2026, Monetizely SaaS Benchmark 2025, Product Marketing Context QR Master.* +# QR Master — Pricing Strategy +*Erstellt: April 2026 | Basiert auf Marktforschung, Competitor-Scraping & SaaS-Benchmarks* + +--- + +## 1. Marktkontext + +### QR-Code-Markt 2025/2026 +| Metrik | Wert | +|--------|------| +| Globale Marktgröße | $15,3 Mrd. (2025) | +| CAGR bis 2030 | 16,1% | +| US-Smartphone-User die QR scannen | 100+ Mio. monatlich | +| Business-Adoption | 50% der Unternehmen nutzen QR-Codes aktiv | + +**Fazit:** Wachstumsmarkt mit noch großem Potenzial, besonders im KMU-Segment. + +--- + +## 2. Wettbewerbs-Pricing-Map + +### Vollständige Marktübersicht (aus Firecrawl-Recherche) + +| Tool | Preis/Monat | Analytics | Dynamic | Bulk | Branding | Positionierung | +|------|------------|-----------|---------|------|----------|----------------| +| TQRCG | $5 | ✅ | ✅ | ❌ | ✅ | Value-Leader | +| QRStuff | $5 | ❌ | ❌ | ✅ | ❌ | Budget | +| ViralQR | $1,49 | ✅ | ✅ | ❌ | ✅ | Ultra-Budget | +| Beaconstac | $5–24 | ✅ | ✅ | ✅ | ✅ | SMB–Enterprise | +| Bitly QR | $10 | ✅ | ✅ | ❌ | ✅ | Mid-Market | +| Unitag | $10 | ❌ | ✅ | ✅ | ✅ | Mid-Market | +| ZebraQR | $9 | ✅ | ✅ | ❌ | ✅ | Hospitality-Nische | +| QR Tiger | $12–15 | ✅ | ✅ | ✅ | ✅ | Mid-Market+ | +| Hovercode | $15 | ✅ | ✅ | ✅ | ✅ | Growth-Fokus | +| Flowcode | $10–15 | ✅ | ✅ | ❌ | ✅ | Design-Fokus | +| Scanova | $20 | ✅ | ✅ | ✅ | ✅ | Premium | +| QR Code Chimp | $20 | ✅ | ✅ | ✅ | ✅ | Premium-Design | +| Uniqode | $10–30 | ✅ | ✅ | ✅ | ✅ | Enterprise | +| QRFY | $25 | ✅ | ✅ | ✅ | ✅ | Premium-Flat | +| QR Code Generator Pro | $15–29 | ✅ | ✅ | ✅ | ✅ | Agency | + +### Marktlücke für QR Master +> **Kein einziges Tool unter $12 bietet Analytics + Bulk + Custom Branding + DSGVO gleichzeitig.** +> Das ist exakt QR Masters Sweet Spot. + +--- + +## 3. SaaS-Benchmark-Daten (Industrie) + +| Metrik | Benchmark | Quelle | +|--------|-----------|--------| +| Median Entry-Level Preis (SaaS) | $29/mo | Monetizely 2025 | +| Free-to-Paid Conversion | ~5% | RevenueCat 2026 | +| Anteil Jahres-Abos (vs. Monatlich) | 68% annual / 32% monthly | RevenueCat 2026 | +| ARPU (Subscription Apps) | ~$30 | RevenueCat 2026 | +| Freemium-Anteil unter SaaS | 38% der Unternehmen | Monetizely 2025 | +| Hybrid-Pricing-Adoption | 61% | Monetizely 2025 | +| SaaS Churn (SMB) | 3–5%/Monat | Benchmark | + +**Key Insight:** 68% der Subscriber wählen Jahrestarife. Das ist der wichtigste Hebel für Cashflow und Churn-Reduktion. + +--- + +## 4. Value Metric Empfehlung + +### Aktuelles Modell: Anzahl dynamischer QR-Codes +**Bewertung: Gut, aber optimierbar.** + +Die Anzahl dynamischer Codes skaliert mit dem wahrgenommenen Wert (mehr Codes = mehr Kampagnen = mehr Wert). Jedoch: +- Limit von 8 FREE / 50 PRO / 500 BUSINESS ist nicht intuitiv kommuniziert +- Kunden denken in "Projekten" oder "Kampagnen", nicht in "Codes" + +### Empfehlung: Hybrid-Metric einführen +Primär-Metric behalten (Dynamic Codes), aber mit Sekundär-Metriken ergänzen: + +| Tier | Primär-Metric | Sekundär-Metriken | +|------|--------------|-------------------| +| FREE | 8 Dynamic Codes | 1 User, Basic Analytics, 30 Tage History | +| PRO | 50 Dynamic Codes | 1–3 User, Full Analytics, 1 Jahr History, Custom Domain | +| BUSINESS | 500 Dynamic Codes | Unlimitierte User, Advanced Analytics, Bulk, API | + +--- + +## 5. Empfohlene Pricing-Struktur + +### Tier-Empfehlung (Monatlich / Jährlich) + +#### FREE — Kostenlos, für immer +- **8 dynamische QR-Codes** (klar kommuniziert als "8 Kampagnen") +- Unlimitierte statische Codes +- Basis-Analytics (Scans, Datum) +- QR Master Branding (nicht entfernbar) +- **Ziel:** Acquisition, Habit-Building, Virality durch Branding + +#### PRO — €9/Monat (monatlich) | **€7/Monat (jährlich = €84/Jahr)** +*Empfohlen für: Restaurants, lokale Unternehmen, Marketing-Einsteiger* +- **50 dynamische QR-Codes** +- Custom Branding (kein QR Master Logo) +- Vollständige Analytics (Device, Location, OS, UTM) +- 1 Jahr Analytics-History +- Custom Domain für Redirects +- Prioritäts-Support +- **Rationale:** $7–9 liegt im bewiesenen Sweet Spot ($5–$10) für diese Zielgruppe. Beaconstac Starter bei $5 hat nur 100 Scans — wir haben keine Scan-Limits. + +#### BUSINESS — €24/Monat (monatlich) | **€19/Monat (jährlich = €228/Jahr)** +*Empfohlen für: Agenturen, Retail-Chains, Event-Organisatoren* +- **500 dynamische QR-Codes** +- Bulk-Upload (Excel/CSV bis 1.000 Zeilen) +- API-Zugriff +- Team-Management (bis 5 User) +- Erweiterte Analytics + Export (CSV, PDF) +- White-Label Option +- DSGVO-Compliance-Report +- **Rationale:** $19–24 ist der Bereich wo Scanova ($20), Hovercode ($15) und QR Code Chimp ($20) spielen — aber keiner hat DSGVO + Bulk + Analytics zusammen. + +#### ENTERPRISE — Auf Anfrage (ab €99/Monat) +*Für: Corporations, Franchise-Ketten* +- Unlimitierte Codes +- Dedizierter Account Manager +- Custom SLA +- SSO / SAML +- On-Premise Option (optional) + +--- + +## 6. Psychologische Preisgestaltung + +### Anchoring-Strategie +Reihenfolge auf Pricing-Page: **BUSINESS → PRO → FREE** (von teuer nach günstig) +→ PRO wirkt dadurch als "vernünftiger Kompromiss" + +### Decoy-Effekt +PRO muss der offensichtliche "Best Deal" sein: +- BUSINESS ist 2,7× teurer als PRO aber hat 10× mehr Codes → Nur für Power-User +- FREE hat 6× weniger Codes als PRO → Upgrade liegt nahe + +### Jahres-Pricing-Push +- Monatlich: €9 / €24 +- Jährlich: €7 / €19 (sparst 22% / 21%) +- **Wichtig:** Jahrespreis prominent anzeigen mit "Spare 2 Monate" statt Prozent +- Default-Toggle: **Jährlich** (da 68% aller Subscriber Jahrestarife wählen) + +### Charm vs. Round Pricing +- PRO: **€9** (nicht €10) → Charm Pricing für Conversion +- BUSINESS: **€24** (nicht €25) → Knapp unter psychologischer Grenze +- Jahrestarife: **€84/Jahr** und **€228/Jahr** (rund → Premium-Signal) + +--- + +## 7. Jahres-Discount-Strategie + +| Tier | Monatlich | Jährlich | Ersparnis | +|------|-----------|----------|-----------| +| PRO | €9/Mo | €84/Jahr (€7/Mo) | 22% / 2 Monate gratis | +| BUSINESS | €24/Mo | €228/Jahr (€19/Mo) | 21% / 2,5 Monate gratis | + +**Kommunikation:** "2 Monate kostenlos bei jährlicher Zahlung" schlägt "20% Rabatt" in A/B-Tests regelmäßig. + +--- + +## 8. Free-Tier-Optimierung + +### Ziel des Free-Tiers +Nicht monetarisieren — **qualifizieren und konvertieren**. + +### Empfohlene Trigger für Upgrade-Prompts +1. **Code-Limit erreicht** → "Du hast 8/8 Codes verwendet. Upgrade auf PRO für 50 Codes." +2. **Analytics-Feature geklickt** → "Detaillierte Location-Analytics nur in PRO." +3. **Custom Branding versucht** → "Entferne das QR Master Logo — upgrade auf PRO." +4. **Bulk-Upload versucht** → "Bulk-Upload ist nur in BUSINESS verfügbar." +5. **Nach 7 Tagen aktive Nutzung** → In-App Prompt: "Du nutzt QR Master aktiv — hole mehr raus." + +### Virality-Mechanismus +- FREE-Codes enthalten subtiles "Made with QR Master" in Metadaten +- QR-Code-Landing-Pages (bei Dynamic Redirects) zeigen "Powered by QR Master" Footer +- Jeder Scan ist eine potenzielle Akquisition + +--- + +## 9. Positioning Statement je Tier + +**FREE:** +> "Starte kostenlos mit 8 professionellen QR-Codes — keine Kreditkarte erforderlich." + +**PRO:** +> "Für Restaurants, lokale Geschäfte und Marketer: Unbegrenzte Änderungen, echte Analytics, dein Branding — für weniger als ein Mittagessen pro Monat." + +**BUSINESS:** +> "Für Agenturen und Retail-Chains: Erstelle 500 Codes auf einmal, per Excel-Upload — DSGVO-konform, skalierbar, professionell." + +--- + +## 10. Pricing Page Struktur (Empfehlung) + +### Elemente above the fold +1. **Toggle: Monatlich / Jährlich** (Default: Jährlich) +2. **3 Tier-Karten** in Reihenfolge: FREE → PRO (highlighted "Beliebteste Wahl") → BUSINESS +3. **CTA je Tier:** "Kostenlos starten" / "14 Tage gratis testen" / "Jetzt upgraden" +4. **Trust-Signal:** "Keine Kreditkarte für Free • DSGVO-konform • Jederzeit kündbar" + +### Weitere Sektionen +- Feature-Vergleichstabelle (vollständig) +- ROI-Rechner: "Wie viel sparst du durch dynamische QR-Codes vs. Neudruck?" +- FAQ (Objections aus Product-Marketing-Context) +- Testimonials-Sektion (Platzhalter für spätere echte Reviews) +- Enterprise-CTA am Ende + +--- + +## 11. Kurzfristige Maßnahmen (Quick Wins) + +| Priorität | Maßnahme | Impact | +|-----------|----------|--------| +| 🔴 Hoch | Jahrestarif als Default auf Pricing-Page setzen | +20–30% ARPU sofort | +| 🔴 Hoch | "2 Monate gratis" Kommunikation (statt %) | +Conversion | +| 🟡 Mittel | Upgrade-Prompts bei Feature-Gates einbauen | +Free-to-Paid | +| 🟡 Mittel | 14-Tage PRO Trial (kreditkartenlos) | +Trial Signups | +| 🟢 Niedrig | BUSINESS Jahrespreis auf €228 festlegen | Cashflow | +| 🟢 Niedrig | Enterprise-Kontaktformular ergänzen | Upmarket | + +--- + +## 12. Risiken & Gegenmaßnahmen + +| Risiko | Wahrscheinlichkeit | Gegenmaßnahme | +|--------|-------------------|---------------| +| ViralQR mit $1,49 unterbietbar | Mittel | Auf Analytics + DSGVO differenzieren, nicht Preis | +| FREE-User konvertieren nicht | Hoch | Smarte Feature-Gates + E-Mail-Nurturing | +| BUSINESS-Preis zu hoch für KMU | Mittel | Jährlich-Preis betonen: €19/mo fühlt sich zugänglich an | +| Konkurrenten senken Preise | Niedrig | Value-Story stärken, nicht mitziehen | + +--- + +*Datenbasis: Firecrawl-Scraping von 5+ Competitor-Seiten, QR Marktstatistiken 2026, RevenueCat State of Subscription Apps 2026, Monetizely SaaS Benchmark 2025, Product Marketing Context QR Master.* diff --git a/.claude/hooks/check-gstack.sh b/.claude/hooks/check-gstack.sh index f7fe488..23b9b7f 100644 --- a/.claude/hooks/check-gstack.sh +++ b/.claude/hooks/check-gstack.sh @@ -1,19 +1,19 @@ -#!/bin/bash - -# Block skill usage when gstack is not installed globally. -if [ ! -d "$HOME/.claude/skills/gstack/bin" ]; then - cat >&2 <<'MSG' -BLOCKED: gstack is not installed globally. -gstack is required for AI-assisted work in this repo. - -Install it: -git clone --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack -cd ~/.claude/skills/gstack && ./setup --team - -Then restart your AI coding tool. -MSG - echo '{"permissionDecision":"deny","message":"gstack is required but not installed. See stderr for install instructions."}' - exit 0 -fi - -echo '{}' +#!/bin/bash + +# Block skill usage when gstack is not installed globally. +if [ ! -d "$HOME/.claude/skills/gstack/bin" ]; then + cat >&2 <<'MSG' +BLOCKED: gstack is not installed globally. +gstack is required for AI-assisted work in this repo. + +Install it: +git clone --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack +cd ~/.claude/skills/gstack && ./setup --team + +Then restart your AI coding tool. +MSG + echo '{"permissionDecision":"deny","message":"gstack is required but not installed. See stderr for install instructions."}' + exit 0 +fi + +echo '{}' diff --git a/.claude/settings.json b/.claude/settings.json index 13181ed..38b27c1 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,15 +1,15 @@ -{ - "hooks": { - "PreToolUse": [ - { - "matcher": "Skill", - "hooks": [ - { - "type": "command", - "command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/check-gstack.sh\"" - } - ] - } - ] - } -} +{ + "hooks": { + "PreToolUse": [ + { + "matcher": "Skill", + "hooks": [ + { + "type": "command", + "command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/check-gstack.sh\"" + } + ] + } + ] + } +} diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 171d5bc..666a270 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -31,9 +31,5 @@ ], "deny": [], "ask": [] - }, - "enabledMcpjsonServers": [ - "firecrawl", - "apify" - ] + } } diff --git a/.codex-temp/awesome-design-md-SKILL.md b/.codex-temp/awesome-design-md-SKILL.md deleted file mode 100644 index 2b5dd74..0000000 --- a/.codex-temp/awesome-design-md-SKILL.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -name: awesome-design-md -description: Use VoltAgent's awesome-design-md collection when the user wants UI inspired by a specific brand or asks for a DESIGN.md reference, visual system, or brand-style implementation such as Stripe, Linear, Vercel, Claude, or Supabase. Resolve the brand slug from the installed `design-md/` folder, fetch the matching `getdesign.md` design document for that slug, and apply it as the design-system reference for implementation. ---- - -# Awesome DESIGN.md - -Use this skill to turn the installed `awesome-design-md` collection into a practical design reference workflow. - -The local `design-md/` directory is the index of supported brand slugs. Its per-brand `README.md` files are only pointers. The actual design-system document lives at: - -```text -https://getdesign.md//design-md -``` - -## Workflow - -1. Identify the target brand or closest visual reference. -2. Resolve the brand slug from the local `design-md/` folder. -3. Prefer exact folder names for dotted brands such as `linear.app`, `mistral.ai`, `opencode.ai`, `together.ai`, and `x.ai`. -4. Fetch `https://getdesign.md//design-md`. -5. Use the fetched document in one of two ways: - - write or update the project's root `DESIGN.md` - - keep it as an external design reference while implementing UI -6. Preserve the user's product semantics and content model. Borrow visual language, spacing, typography, motion, and component patterns, not product-specific copy. - -## Local Source Of Truth - -Use the installed folder below to confirm which slugs exist before fetching: - -```text -C:\Users\a931627\.claude\skills\awesome-design-md\design-md -``` - -If needed, list the available slugs with: - -```powershell -Get-ChildItem -Name C:\Users\a931627\.claude\skills\awesome-design-md\design-md -``` - -## Practical Rules - -- Treat `DESIGN.md` as a visual system reference, not as code to mirror verbatim. -- If the user asks for "something like X, but lighter, warmer, or more minimal", adapt the reference instead of cloning it literally. -- If multiple brands fit, choose the closest one and state the choice. -- If a slug is missing locally or the remote fetch fails, pick the nearest available brand or ask the user for a replacement target. -- When working inside an existing design system, merge the borrowed visual cues with the established component structure instead of replacing everything. - -## Common Slug Examples - -- `stripe` -- `vercel` -- `claude` -- `cursor` -- `supabase` -- `linear.app` -- `mistral.ai` -- `opencode.ai` -- `together.ai` -- `x.ai` diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7f455d9..bbc0936 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,39 +1,39 @@ -## Summary - -- - -## Change Type - -- [ ] QRMaster SEO page -- [ ] QRMaster landing/tool page -- [ ] QRMaster conversion/pricing change -- [ ] GreenLens content/ASO workflow -- [ ] Bug fix -- [ ] Other - -## SEO / Content Review - -- [ ] Primary search intent is clear. -- [ ] Metadata is present and specific. -- [ ] Exactly one H1 is rendered for each new or changed page. -- [ ] Internal links are added to relevant money pages. -- [ ] CTA is specific to the page/use case. -- [ ] Duplicate or thin content risk was checked. -- [ ] Schema/structured data was added or intentionally skipped. - -## Verification - -- [ ] Build passes. -- [ ] Lint passes. -- [ ] Links/CTAs checked. -- [ ] Screenshots or notes included for UI changes. - -## Codex Review Prompt - -For QRMaster SEO/page changes, run: - -```text -Use docs/automations/qrmaster-pr-seo-review.md and review this PR for SEO, -conversion, internal linking, duplicate content, schema, and build/lint risk. -``` - +## Summary + +- + +## Change Type + +- [ ] QRMaster SEO page +- [ ] QRMaster landing/tool page +- [ ] QRMaster conversion/pricing change +- [ ] GreenLens content/ASO workflow +- [ ] Bug fix +- [ ] Other + +## SEO / Content Review + +- [ ] Primary search intent is clear. +- [ ] Metadata is present and specific. +- [ ] Exactly one H1 is rendered for each new or changed page. +- [ ] Internal links are added to relevant money pages. +- [ ] CTA is specific to the page/use case. +- [ ] Duplicate or thin content risk was checked. +- [ ] Schema/structured data was added or intentionally skipped. + +## Verification + +- [ ] Build passes. +- [ ] Lint passes. +- [ ] Links/CTAs checked. +- [ ] Screenshots or notes included for UI changes. + +## Codex Review Prompt + +For QRMaster SEO/page changes, run: + +```text +Use docs/automations/qrmaster-pr-seo-review.md and review this PR for SEO, +conversion, internal linking, duplicate content, schema, and build/lint risk. +``` + diff --git a/.gitignore b/.gitignore index 840e04a..f6fcc0c 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,14 @@ dev-server.js .gstack/ .env.meta + +# Local temporary files, test scripts, and reports +tmp/ +.codex-temp/ +*.report.html +*.report.json +tmp_*.js +test_email.py +meta-fix.js +read-inbox.mjs +quora_antwort_statisch_dynamisch.txt diff --git a/.mcp.json b/.mcp.json index f579574..16be37d 100644 --- a/.mcp.json +++ b/.mcp.json @@ -1,11 +1,11 @@ -{ - "mcpServers": { - "apify": { - "type": "sse", - "url": "https://mcp.apify.com/sse", - "headers": { - "Authorization": "Bearer apify_api_0D7RWI6eW1H9LETBuLY7PHNpAErxL72ua6lo" - } - } - } -} +{ + "mcpServers": { + "apify": { + "type": "sse", + "url": "https://mcp.apify.com/sse", + "headers": { + "Authorization": "Bearer apify_api_0D7RWI6eW1H9LETBuLY7PHNpAErxL72ua6lo" + } + } + } +} diff --git a/.planning/industry-pages-batch2.md b/.planning/industry-pages-batch2.md index 91442c7..c1fdb3d 100644 --- a/.planning/industry-pages-batch2.md +++ b/.planning/industry-pages-batch2.md @@ -1,1281 +1,1281 @@ -# Industry Pages — Batch 2 (30 Pages) - -Build order: High-CPC B2B first, then high-volume consumer services. - -All entries follow the `IndustryPage` type from `src/lib/industry-pages.ts`. - ---- - -## Build Order - -### Group A — High CPC, B2B Service Trades (build first) -1. plumbers -2. roofing-companies -3. electricians -4. moving-companies -5. financial-advisors -6. construction-companies -7. cleaning-services -8. auto-repair -9. landscaping -10. tutors -11. dog-trainers - -### Group B — High Volume, Low Competition, Consumer Services (build second) -12. vacation-rentals -13. massage-therapists -14. escape-rooms -15. pilates-studios -16. wedding-venues -17. architects -18. hair-salons -19. hostels -20. crossfit -21. sports-bars -22. laundromats -23. aquariums - -### Group C — Retail & Lifestyle (build third) -24. gift-shops -25. bike-shops -26. ice-cream-shops -27. delis -28. resorts -29. toy-stores -30. sporting-goods - ---- - -## Full Data - -```ts - { - slug: "plumbers", - name: "Plumbers", - title: "QR Codes for Plumbers", - metaTitle: "QR Codes for Plumbers: Win More Jobs from Flyers and Vans", - metaDescription: "Help plumbing businesses turn printed flyers, van graphics, and invoices into instant quote requests with dynamic QR codes and scan analytics.", - headline: "QR Codes for Plumbers: Turn Every Flyer and Van Into a Lead", - subheadline: "Let customers scan to request a quote, save your number, or leave a Google review — from any printed surface you already have.", - heroImage: "/marketing/industries/plumbers.png", - statistics: [ - { value: "68%", label: "of customers research tradespeople online before calling" }, - { value: "3x", label: "More quote requests from QR-coded flyers vs URL-only" }, - { value: "40%", label: "of reviews come from post-job follow-up prompts" } - ], - benefits: [ - { title: "Instant Quote Requests", description: "A scan on your van or flyer opens your contact form directly — no typing, no friction." }, - { title: "Review Collection on Autopilot", description: "Add a QR code to invoices linking straight to your Google review page and watch 5-star reviews accumulate." }, - { title: "Update Without Reprinting", description: "Changed your phone number or service area? Dynamic QR codes let you update the destination without reprinting a single flyer." } - ], - useCases: [ - "Van and vehicle graphics linking to a quote request form", - "Flyers and door drops with scannable contact or booking links", - "Invoices with a QR code to leave a Google review", - "Business cards linking to full service list and vCard", - "Job site signage driving local visibility and inquiries" - ], - tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], - faq: [ - { question: "What should a plumber's QR code link to?", answer: "A quote request form or a click-to-call page works best. Avoid linking to a generic homepage — make it one action." }, - { question: "Should I put a QR code on my work van?", answer: "Yes. Van graphics are one of the highest-ROI placements for tradespeople. A dynamic QR code lets you change the destination later without a new wrap." }, - { question: "Can I track how many leads come from my flyers?", answer: "Yes. Dynamic QR codes give you scan counts by date, device, and location so you can compare flyer drops and know which areas convert." } - ], - placementTips: [ - "Apply a sticker with QR code to the rear and side of your work van", - "Print on invoices and job completion cards next to the review request", - "Include on door-drop flyers with a clear call to action like 'Scan for a free quote'" - ] - }, - { - slug: "roofing-companies", - name: "Roofing Companies", - title: "QR Codes for Roofing Companies", - metaTitle: "QR Codes for Roofing Companies: More Leads from Every Printed Surface", - metaDescription: "Help roofing businesses convert truck graphics, yard signs, and flyers into qualified leads with dynamic QR codes that track every scan.", - headline: "QR Codes for Roofing Companies: Every Truck and Yard Sign Should Be Working for You", - subheadline: "Turn passive signage into active lead generation with scannable QR codes on vehicles, yard signs, and direct mail.", - heroImage: "/marketing/industries/roofing-companies.png", - statistics: [ - { value: "72%", label: "of homeowners get multiple quotes before choosing a roofer" }, - { value: "5x", label: "More inquiries from yard signs with QR codes vs phone number only" }, - { value: "60%", label: "of roofing leads start with an online search or referral" } - ], - benefits: [ - { title: "Yard Sign Lead Capture", description: "A QR code on every active job site yard sign turns neighbors into your next customers." }, - { title: "Trackable Direct Mail", description: "Know exactly which neighborhoods respond to your flyer drops with per-code scan analytics." }, - { title: "Dynamic Links", description: "Update your estimate form or seasonal offer without replacing yard signs or reprinting mailers." } - ], - useCases: [ - "Yard signs at active job sites linking to a free estimate form", - "Truck and trailer graphics with a scannable quote request", - "Direct mail campaigns with unique QR codes per neighborhood", - "Business cards with vCard and portfolio link", - "Post-job door hangers driving reviews and referrals" - ], - tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], - faq: [ - { question: "What should a roofing company QR code link to?", answer: "A free estimate request form is the highest-converting destination. Keep it short — name, address, and contact only." }, - { question: "How do I track which job site signs bring in the most leads?", answer: "Create one unique dynamic QR code per yard sign location. QR Master's analytics show scans per code so you know exactly which sites perform." }, - { question: "Can I use QR codes on seasonal storm-damage mailers?", answer: "Yes, and they're especially effective. A QR code linking to a storm damage assessment form converts better than a phone number alone." } - ], - placementTips: [ - "Place yard signs at every active job site with a 'Scan for a Free Estimate' prompt", - "Add to the rear of every truck and trailer with high visibility contrast", - "Include on door hangers left at neighboring properties after completing a job" - ] - }, - { - slug: "electricians", - name: "Electricians", - title: "QR Codes for Electricians", - metaTitle: "QR Codes for Electricians: Turn Van Graphics and Flyers Into Quote Requests", - metaDescription: "Help electrical contractors generate more leads from printed materials with dynamic QR codes for quote forms, reviews, and service bookings.", - headline: "QR Codes for Electricians: Make Your Printed Materials Work as Hard as You Do", - subheadline: "From van graphics to invoices, every surface is a lead generation opportunity when you add a dynamic QR code.", - heroImage: "/marketing/industries/electricians.png", - statistics: [ - { value: "74%", label: "of customers check online reviews before hiring an electrician" }, - { value: "2x", label: "More callbacks from flyers with QR codes vs phone-only" }, - { value: "50%", label: "of electrical jobs come from repeat customers and referrals" } - ], - benefits: [ - { title: "Frictionless Quote Requests", description: "Customers scan and land directly on your booking form — no searching, no typing, no lost business." }, - { title: "Professional First Impression", description: "QR-coded business cards and invoices signal a modern, trustworthy business to homeowners and property managers." }, - { title: "Google Review Acceleration", description: "A QR code on completion cards makes leaving a review a 10-second task, not a forgotten promise." } - ], - useCases: [ - "Van and vehicle signage with a quote request or contact link", - "Business cards linking to full service list and vCard", - "Invoices with a post-job review QR code", - "Flyers targeting landlords and property managers", - "Panel stickers linking to emergency contact or service info" - ], - tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], - faq: [ - { question: "What QR code placement works best for electricians?", answer: "Work vans are the highest-visibility surface. Pair with an invoice QR code linking to your Google review page for maximum impact." }, - { question: "Can I use different QR codes for residential vs commercial leads?", answer: "Yes. Create one code per campaign — one for residential flyers, one for commercial property management outreach — and track which converts better." }, - { question: "Should my QR code link to my website or a form?", answer: "A direct quote request form converts better than a homepage. Fewer clicks between the scan and a submitted lead means more jobs." } - ], - placementTips: [ - "Apply QR sticker to the rear of your van at eye level with a clear prompt", - "Print on completion certificates and invoices next to the review ask", - "Add to property management flyers targeting landlord portfolios" - ] - }, - { - slug: "moving-companies", - name: "Moving Companies", - title: "QR Codes for Moving Companies", - metaTitle: "QR Codes for Moving Companies: More Bookings from Trucks and Flyers", - metaDescription: "Help moving companies convert truck graphics, flyers, and partnerships into instant booking requests with dynamic QR codes and scan analytics.", - headline: "QR Codes for Moving Companies: Turn Your Fleet Into a Booking Machine", - subheadline: "Every truck on the road and every flyer in a building lobby is a chance to capture the next move — if you make it scannable.", - heroImage: "/marketing/industries/moving-companies.png", - statistics: [ - { value: "80%", label: "of people moving research removalists online first" }, - { value: "4x", label: "Booking rate from QR flyers in apartment lobbies vs cold outreach" }, - { value: "65%", label: "of moves are booked within 48 hours of first contact" } - ], - benefits: [ - { title: "Fleet-as-Advertising", description: "A dynamic QR code on every truck turns your fleet into a 24/7 booking channel across every neighborhood you serve." }, - { title: "Lobby and Building Partnerships", description: "Leave flyers with QR codes in apartment lobbies, storage facilities, and real estate offices where moving intent is highest." }, - { title: "Seasonal Campaign Flexibility", description: "Update your QR destination to a summer promotion or student move special without reprinting a single flyer." } - ], - useCases: [ - "Truck livery QR codes linking directly to an instant quote form", - "Apartment lobby flyers with a booking or price estimate link", - "Partnerships with real estate agents — QR cards for new homebuyers", - "Post-move review request QR codes on thank-you cards", - "Storage facility referral flyers with unique tracking codes" - ], - tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], - faq: [ - { question: "Where should I place QR codes for maximum bookings?", answer: "Apartment building lobbies and your truck fleet are the two highest-intent placements. People in lobbies are often planning a move." }, - { question: "Can I track which locations send the most bookings?", answer: "Yes. Create a unique dynamic QR code for each placement — one per building, one per truck — and compare scan data in QR Master's dashboard." }, - { question: "What should the QR code link to?", answer: "An instant quote calculator or a simple booking form. The faster you get the customer to a price, the lower the drop-off rate." } - ], - placementTips: [ - "Apply to the rear doors and sides of every moving truck in your fleet", - "Leave A5 flyers with QR codes in apartment building lobbies and notice boards", - "Give QR-coded referral cards to real estate agents and property managers" - ] - }, - { - slug: "financial-advisors", - name: "Financial Advisors", - title: "QR Codes for Financial Advisors", - metaTitle: "QR Codes for Financial Advisors: Share Credentials and Book Consultations", - metaDescription: "Help financial advisors modernize business card exchanges, seminar follow-ups, and referral marketing with dynamic QR codes that track engagement.", - headline: "QR Codes for Financial Advisors: Every Handshake Should Start a Digital Relationship", - subheadline: "From seminar handouts to business cards, dynamic QR codes make sharing credentials, booking calls, and collecting leads effortless.", - heroImage: "/marketing/industries/financial-advisors.png", - statistics: [ - { value: "83%", label: "of high-net-worth clients research their advisor online before meeting" }, - { value: "3x", label: "Higher follow-up rate from seminar QR codes vs business card alone" }, - { value: "70%", label: "of new advisory clients come from referrals" } - ], - benefits: [ - { title: "Professional Digital Handshake", description: "A vCard QR code on your business card lets prospects save your full contact details and LinkedIn in one scan." }, - { title: "Seminar Lead Capture", description: "Collect attendee contact details or drive consultation bookings from printed handouts and presentation slides." }, - { title: "Referral Tracking", description: "Give each referring partner a unique QR code so you know exactly which relationships drive the most business." } - ], - useCases: [ - "Business cards with vCard QR code and booking link", - "Seminar and workshop handouts linking to a consultation form", - "Referral partner cards with unique tracking codes per partner", - "Printed guides and whitepapers with a download or follow-up link", - "Office signage linking to client portal or contact page" - ], - tools: ["vcard-qr-code", "url-qr-code", "email-qr-code"], - faq: [ - { question: "What should a financial advisor's QR code link to?", answer: "A calendar booking link for a free consultation is the highest-converting destination. Pair with a vCard QR on the same business card." }, - { question: "Are QR codes appropriate for a high-trust profession like finance?", answer: "Yes. A clean, professionally designed QR code signals that you're modern and efficient — qualities clients want in an advisor." }, - { question: "Can I track which referral sources generate the most leads?", answer: "Yes. Create a unique dynamic QR code for each referral partner. QR Master shows scans per code so you know exactly where leads come from." } - ], - placementTips: [ - "Print on business cards with a 'Book a free call' prompt alongside the QR code", - "Include in seminar slide decks and printed handouts at the top and bottom", - "Add to direct mail campaigns targeting high-net-worth residential addresses" - ] - }, - { - slug: "construction-companies", - name: "Construction Companies", - title: "QR Codes for Construction Companies", - metaTitle: "QR Codes for Construction Companies: Site Signage That Generates Leads", - metaDescription: "Help construction firms turn site hoardings, vehicle graphics, and project brochures into measurable lead generation assets with dynamic QR codes.", - headline: "QR Codes for Construction Companies: Your Site Hoarding Should Be Selling", - subheadline: "Turn every project site, company vehicle, and brochure into an active lead channel with scannable dynamic QR codes.", - heroImage: "/marketing/industries/construction-companies.png", - statistics: [ - { value: "60%", label: "of construction leads start with an online search for local contractors" }, - { value: "8x", label: "ROI on site hoarding QR codes vs static contact details alone" }, - { value: "55%", label: "of project inquiries come from neighbors noticing active build sites" } - ], - benefits: [ - { title: "Site Hoarding That Converts", description: "A QR code on every hoarding drives neighbors and passersby to your project portfolio, estimate form, or contact page." }, - { title: "Fleet and Equipment Visibility", description: "Branded QR codes on plant and vehicles generate awareness and inquiries across every area you work in." }, - { title: "Proposal and Brochure Tracking", description: "Know which clients engaged with your PDF proposal by using a unique QR code per prospect." } - ], - useCases: [ - "Site hoarding and boarding QR codes linking to company portfolio", - "Vehicle and plant graphics with scannable quote request links", - "Project brochures with unique tracking QR codes per prospect", - "Safety signage linking to RAMS documents and accreditations", - "Subcontractor and supply chain recruitment via QR-coded adverts" - ], - tools: ["url-qr-code", "pdf-qr-code", "vcard-qr-code"], - faq: [ - { question: "What should a construction company's site hoarding QR code link to?", answer: "Your best project portfolio page or a simple inquiry form. Neighbors want to see your work quality before they call." }, - { question: "Can QR codes be used for health and safety documentation?", answer: "Yes. A QR code linking to RAMS, COSHH sheets, or site induction materials saves paper and keeps documents current without reprinting." }, - { question: "How do I track which sites generate the most inquiries?", answer: "Create a unique dynamic QR code per site hoarding. QR Master's scan analytics show date, device, and location for each code." } - ], - placementTips: [ - "Place prominently on site hoarding at pedestrian eye level with a clear CTA", - "Apply to the rear and sides of all company vehicles and plant equipment", - "Include in tender documents and proposals with a unique code per submission" - ] - }, - { - slug: "cleaning-services", - name: "Cleaning Services", - title: "QR Codes for Cleaning Services", - metaTitle: "QR Codes for Cleaning Services: Bookings from Flyers and Vehicle Signage", - metaDescription: "Help cleaning businesses turn door drops, vehicle graphics, and referral cards into instant online bookings with dynamic QR codes.", - headline: "QR Codes for Cleaning Services: Every Door Drop Should Book a Job", - subheadline: "Turn flyers, van graphics, and completion cards into a 24/7 booking engine with one scannable QR code.", - heroImage: "/marketing/industries/cleaning-services.png", - statistics: [ - { value: "65%", label: "of cleaning clients book based on neighbor recommendations" }, - { value: "3x", label: "Booking rate from door drops with QR codes vs phone-only flyers" }, - { value: "45%", label: "of recurring cleaning clients came from a single positive review" } - ], - benefits: [ - { title: "Instant Online Booking", description: "A scan on your flyer takes customers straight to your booking form — removing every barrier between interest and conversion." }, - { title: "Neighborhood Expansion", description: "Leave door-drop cards after completing a job. Neighbors who see your branded vehicle are already warm prospects." }, - { title: "Review Generation", description: "A QR code on completion cards linking to your Google review page turns satisfied customers into your best marketing." } - ], - useCases: [ - "Door-drop flyers with a 'Scan to book your first clean' QR code", - "Van graphics with a scannable booking or contact link", - "Completion cards left after each job with a review QR code", - "Referral cards for existing clients to share with neighbors", - "Building lobby flyers targeting apartment and office managers" - ], - tools: ["url-qr-code", "call-qr-code-generator", "email-qr-code"], - faq: [ - { question: "What should a cleaning company's QR code link to?", answer: "An online booking form or instant quote calculator. The fewer steps between scanning and booking, the higher your conversion rate." }, - { question: "Should I use different QR codes for different areas?", answer: "Yes. Create a unique code per neighborhood and track scan data to identify which areas respond best to your flyers." }, - { question: "How do QR codes help with recurring bookings?", answer: "A follow-up card left after each clean with a QR code to rebook or refer a friend increases both retention and word-of-mouth." } - ], - placementTips: [ - "Door-drop cards in residential streets where you regularly work", - "Van rear and side panels with a high-contrast booking prompt", - "Completion cards placed on kitchen counters or front doors after each job" - ] - }, - { - slug: "auto-repair", - name: "Auto Repair Shops", - title: "QR Codes for Auto Repair Shops", - metaTitle: "QR Codes for Auto Repair Shops: Book More Services Without Extra Staff", - metaDescription: "Help auto repair shops turn waiting room posters, invoices, and vehicle handouts into booking requests and 5-star reviews with dynamic QR codes.", - headline: "QR Codes for Auto Repair Shops: Turn Your Waiting Room Into a Booking Tool", - subheadline: "From service reminders to review requests, dynamic QR codes keep customers coming back and spread the word for you.", - heroImage: "/marketing/industries/auto-repair.png", - statistics: [ - { value: "70%", label: "of car owners use the same garage for 3+ years if satisfied" }, - { value: "88%", label: "of customers trust online reviews as much as personal recommendations" }, - { value: "40%", label: "of auto repair bookings now happen outside business hours" } - ], - benefits: [ - { title: "After-Hours Bookings", description: "A QR code on your invoice links to your online booking page so customers can schedule their next service at midnight if they want." }, - { title: "Review Collection", description: "A scan-to-review QR on every completed job paperwork turns happy customers into a steady flow of Google reviews." }, - { title: "Service Reminders Without Printing New Material", description: "Update your dynamic QR code destination to a seasonal promotion or MOT reminder without reprinting any in-garage signage." } - ], - useCases: [ - "Invoices and job cards with a QR code to book next service", - "Waiting room posters linking to service menu and pricing", - "Windscreen stickers with service due date and a rebooking link", - "Post-job review request cards with a Google review QR code", - "Flyers for local businesses with fleet vehicle servicing offers" - ], - tools: ["url-qr-code", "call-qr-code-generator", "email-qr-code"], - faq: [ - { question: "What is the best QR code placement for a garage?", answer: "Job completion paperwork and waiting room posters are the highest-engagement placements. Customers have time to scan while waiting." }, - { question: "Can I put a QR code on a windscreen service sticker?", answer: "Yes. A small dynamic QR code on a service reminder sticker linking to your booking page is one of the most effective retention tools." }, - { question: "How do QR codes help with fleet clients?", answer: "Give fleet managers a unique QR code linking to a dedicated booking portal or account manager contact so they can log service requests instantly." } - ], - placementTips: [ - "Print on every job card and invoice at the bottom with a rebooking prompt", - "Post A3 posters in the waiting area with service menu and booking QR", - "Apply QR-coded service reminder stickers to windscreens at job completion" - ] - }, - { - slug: "landscaping", - name: "Landscaping Companies", - title: "QR Codes for Landscaping Companies", - metaTitle: "QR Codes for Landscaping Companies: Leads from Signs and Vehicles", - metaDescription: "Help landscaping businesses turn yard signs, vehicle graphics, and flyers into instant quote requests with trackable dynamic QR codes.", - headline: "QR Codes for Landscaping Companies: Your Best Jobs Are in the Yards Next Door", - subheadline: "Every project site is a live portfolio. Make it work harder with a yard sign QR code that turns neighbors into the next booking.", - heroImage: "/marketing/industries/landscaping.png", - statistics: [ - { value: "67%", label: "of landscaping clients come from neighbor referrals or visible work" }, - { value: "5x", label: "More inquiries from job-site signs with QR codes vs phone only" }, - { value: "3x", label: "Higher retention rate when clients can rebook in under 60 seconds" } - ], - benefits: [ - { title: "Yard Signs That Generate Leads", description: "A QR code on job-site yard signs lets neighbors see your portfolio and request a quote instantly — no cold calling required." }, - { title: "Seasonal Campaign Swaps", description: "Update your QR destination from a spring planting offer to a winter clearance special without ordering new signs." }, - { title: "Before and After Portfolio", description: "Link QR codes to a visual before-and-after gallery for the exact type of garden you just transformed." } - ], - useCases: [ - "Yard signs at active job sites linking to portfolio and quote form", - "Vehicle and trailer graphics with a scannable estimate request", - "Post-job door hangers for neighboring properties", - "Flyers for seasonal services like lawn care, snow removal, or planting", - "Business cards with vCard and portfolio gallery link" - ], - tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], - faq: [ - { question: "What should a landscaping yard sign QR code link to?", answer: "A project gallery showing work similar to the job in progress, plus a one-click quote request form. Visual proof converts best." }, - { question: "Can I use the same QR code on all my yard signs?", answer: "You can, but using unique codes per sign lets you measure which neighborhoods generate the most leads and focus your marketing accordingly." }, - { question: "How do seasonal promotions work with dynamic QR codes?", answer: "You update the link destination in QR Master's dashboard and all existing printed signs automatically point to the new page." } - ], - placementTips: [ - "Place yard signs at every active project site, visible from the street", - "Apply to trailer tailgates and vehicle sides on the passenger-facing side", - "Leave door hangers at the 5 properties on each side of every completed job" - ] - }, - { - slug: "tutors", - name: "Tutors", - title: "QR Codes for Tutors", - metaTitle: "QR Codes for Tutors: Fill Your Schedule from Flyers and School Boards", - metaDescription: "Help private tutors and tutoring centers convert notice board flyers, parent handouts, and social posts into bookings with dynamic QR codes.", - headline: "QR Codes for Tutors: Every Notice Board Flyer Should Be Booking Sessions", - subheadline: "Make it effortless for parents to check availability, read reviews, and book a trial session — from a single scan.", - heroImage: "/marketing/industries/tutors.png", - statistics: [ - { value: "78%", label: "of parents prefer to book services digitally rather than by phone" }, - { value: "4x", label: "Higher response rate from notice board flyers with QR booking links" }, - { value: "60%", label: "of tutoring referrals come from satisfied parents sharing contact details" } - ], - benefits: [ - { title: "Instant Booking from Flyers", description: "A QR code on every notice board flyer sends parents directly to your availability calendar — no phone tag needed." }, - { title: "Easy Referral Sharing", description: "A vCard QR code lets parents share your full contact details with one tap to another parent in the school car park." }, - { title: "Subject-Specific Campaigns", description: "Create one QR code per subject or year group and track which produces the most bookings across different schools." } - ], - useCases: [ - "School notice board flyers linking to booking calendar or inquiry form", - "Business cards with vCard QR for easy contact sharing between parents", - "PDF resource sheets for students with a follow-up QR code", - "End-of-term review requests sent via printed or digital card", - "Subject-specific flyers with unique tracking QR codes per campaign" - ], - tools: ["url-qr-code", "vcard-qr-code", "email-qr-code"], - faq: [ - { question: "What should a tutor's QR code link to?", answer: "A simple booking or inquiry form works best. Include your subjects, availability, and a brief bio so parents can qualify you before they reach out." }, - { question: "Can I track which schools send the most inquiries?", answer: "Yes. Use a unique dynamic QR code on flyers for each school and track scan data in QR Master's dashboard to see which locations perform best." }, - { question: "Should I add a QR code to printed worksheets?", answer: "Yes. A QR code at the bottom of student handouts linking to video explanations or supplementary resources adds value and keeps your brand visible to parents." } - ], - placementTips: [ - "Pin A5 flyers with booking QR code on notice boards at local schools and libraries", - "Print on business cards designed for parent-to-parent sharing", - "Add to printed worksheets and resource packs sent home with students" - ] - }, - { - slug: "dog-trainers", - name: "Dog Trainers", - title: "QR Codes for Dog Trainers", - metaTitle: "QR Codes for Dog Trainers: Fill Classes and Share Training Resources", - metaDescription: "Help dog trainers and training schools convert park flyers, vet referrals, and training handouts into bookings with dynamic QR codes.", - headline: "QR Codes for Dog Trainers: Reach New Clients Where Their Dogs Actually Are", - subheadline: "Parks, vet waiting rooms, and pet shop notice boards — put a scannable QR code in every place dog owners spend time.", - heroImage: "/marketing/industries/dog-trainers.png", - statistics: [ - { value: "72%", label: "of new dog owners seek professional training within the first 6 months" }, - { value: "85%", label: "of dog owner referrals happen in person, at parks or vet practices" }, - { value: "3x", label: "More class sign-ups from vet waiting room flyers with QR codes" } - ], - benefits: [ - { title: "Book Classes Instantly", description: "A QR code on your park flyer or business card takes new dog owners straight to your class schedule and booking form." }, - { title: "Share Training Resources", description: "Link QR codes on handouts to video guides, training tips, and homework assignments so clients practice between sessions." }, - { title: "Vet and Pet Shop Referrals", description: "Leave QR-coded referral cards with local vets and pet shops. A unique code per location tells you who sends the most clients." } - ], - useCases: [ - "Park and trail flyers linking to class schedule and booking", - "Vet waiting room cards with training package overview", - "Post-session handouts with QR links to training video resources", - "Business cards with vCard and booking link for park encounters", - "End-of-course review request QR codes on graduation certificates" - ], - tools: ["url-qr-code", "vcard-qr-code", "youtube-qr-code"], - faq: [ - { question: "Where should dog trainers distribute QR code flyers?", answer: "Dog parks, vet waiting rooms, pet shops, and grooming salons are your highest-intent locations. These are where motivated dog owners already spend time." }, - { question: "Can I share training videos via QR code?", answer: "Yes. Link a QR code on printed handouts to a YouTube playlist or private video library. Clients scan during the session or at home for reinforcement." }, - { question: "How do I track which referral partners send the most clients?", answer: "Give each vet or pet shop a unique dynamic QR code. QR Master tracks scans per code so you can thank and reward your best referral sources." } - ], - placementTips: [ - "Post A5 flyers at dog park notice boards and water stations", - "Leave referral cards with local veterinary practices and pet shops", - "Print on post-session handouts with links to homework video resources" - ] - }, - { - slug: "vacation-rentals", - name: "Vacation Rentals", - title: "QR Codes for Vacation Rentals", - metaTitle: "QR Codes for Vacation Rentals: Streamline Guest Check-In and House Guides", - metaDescription: "Help vacation rental owners deliver WiFi passwords, house manuals, local guides, and checkout instructions through a single scannable QR code.", - headline: "QR Codes for Vacation Rentals: Give Guests Everything They Need with One Scan", - subheadline: "Replace printed house manuals, WiFi cards, and welcome books with a dynamic QR code you can update between every stay.", - heroImage: "/marketing/industries/vacation-rentals.png", - statistics: [ - { value: "89%", label: "of guests check WiFi details within 10 minutes of arrival" }, - { value: "4x", label: "Fewer support messages when house rules are on a scannable guide" }, - { value: "35%", label: "of vacation rental reviews mention ease of check-in as a factor" } - ], - benefits: [ - { title: "Zero-Touch Check-In", description: "A welcome card with a QR code replaces printed manuals, sticky notes, and host messages — guests get everything in one scan." }, - { title: "Always Up to Date", description: "Dynamic QR codes mean you update the house guide or local restaurant list once, and it's live for every future guest without reprinting." }, - { title: "Review Collection", description: "A QR code left with the checkout card prompts guests to leave a review when their experience is freshest." } - ], - useCases: [ - "Welcome card with QR code linking to digital house guide", - "WiFi QR code printed on a framed card or fridge magnet", - "Local area guide with restaurant, activity, and emergency links", - "Checkout instructions checklist accessible via scan", - "Post-stay review request via QR on checkout reminder card" - ], - tools: ["wifi-qr-code", "url-qr-code", "pdf-qr-code"], - faq: [ - { question: "What should a vacation rental QR code link to?", answer: "A digital welcome guide covering WiFi, house rules, appliance instructions, local recommendations, and emergency contacts covers 90% of guest questions." }, - { question: "Can I use the same QR code for multiple properties?", answer: "Create a unique code per property so each links to the correct guide. With dynamic codes you can update the guide content without replacing the printed cards." }, - { question: "How do QR codes reduce guest messages?", answer: "Most guest messages ask the same questions — WiFi, checkout time, bin collection. A scannable guide that answers all of these cuts support messages significantly." } - ], - placementTips: [ - "Frame a WiFi QR code card and place on the kitchen counter or entry table", - "Add a house guide QR code to the welcome card included with keys", - "Leave a checkout reminder card with a review QR code on the dining table" - ] - }, - { - slug: "massage-therapists", - name: "Massage Therapists", - title: "QR Codes for Massage Therapists", - metaTitle: "QR Codes for Massage Therapists: Rebook Clients Before They Leave", - metaDescription: "Help massage therapists and clinics use dynamic QR codes for rebooking, aftercare guides, review collection, and gift voucher promotions.", - headline: "QR Codes for Massage Therapists: The Easiest Rebook Starts Right After the Session", - subheadline: "A QR code on your aftercare card turns a relaxed, satisfied client into a confirmed repeat booking before they leave the room.", - heroImage: "/marketing/industries/massage-therapists.png", - statistics: [ - { value: "65%", label: "of clients who rebook do so within 48 hours of their last session" }, - { value: "4x", label: "Higher rebook rate when clients leave with a QR-coded aftercare card" }, - { value: "80%", label: "of massage clients come from word-of-mouth and reviews" } - ], - benefits: [ - { title: "Instant Rebooking", description: "A QR code on your aftercare card linked to your online booking calendar turns every completed session into the next one." }, - { title: "Aftercare and Treatment Information", description: "Share post-treatment advice, hydration tips, and what to expect — all linked from a single scannable code on a printed card." }, - { title: "Gift Voucher Promotion", description: "A QR code on a branded card or display stand links to your gift voucher page — perfect for holiday and birthday gift traffic." } - ], - useCases: [ - "Aftercare cards with rebooking QR code and treatment notes", - "Reception desk signage linking to online booking and treatment menu", - "Gift voucher cards with QR code for purchase or redemption", - "Review request QR on checkout receipts and follow-up texts", - "Referral cards for clients to share with friends and family" - ], - tools: ["url-qr-code", "vcard-qr-code", "email-qr-code"], - faq: [ - { question: "What is the best way to use QR codes as a massage therapist?", answer: "An aftercare card with a rebooking QR code is the single highest-converting use case. Clients are relaxed and receptive right after a session." }, - { question: "Should I link to my booking platform or my own website?", answer: "Link directly to your booking calendar — Calendly, Fresha, or your own system. Fewer clicks between the QR code and a confirmed appointment means more bookings." }, - { question: "How can QR codes help with gift voucher sales?", answer: "A framed QR code display at reception linking to your gift voucher purchase page generates passive sales, especially around Christmas, Valentine's Day, and Mother's Day." } - ], - placementTips: [ - "Include aftercare card with rebook QR in every treatment room", - "Place a framed QR code stand at reception for gift voucher purchases", - "Print on loyalty cards alongside a 'Refer a friend' QR for tracking referrals" - ] - }, - { - slug: "escape-rooms", - name: "Escape Rooms", - title: "QR Codes for Escape Rooms", - metaTitle: "QR Codes for Escape Rooms: More Bookings and Better Reviews", - metaDescription: "Help escape room businesses use QR codes for instant booking, post-game review requests, group offers, and in-game hint systems.", - headline: "QR Codes for Escape Rooms: From Booking to the Last Clue", - subheadline: "Use QR codes at every touchpoint — from street-level marketing to post-game review collection — to fill more sessions and grow your reputation.", - heroImage: "/marketing/industries/escape-rooms.png", - statistics: [ - { value: "74%", label: "of escape room bookings are made online or via mobile" }, - { value: "3x", label: "More reviews collected with a post-game QR card vs verbal requests" }, - { value: "65%", label: "of escape room customers come in groups of 3 or more" } - ], - benefits: [ - { title: "Instant Group Bookings", description: "A QR code on outdoor signage or flyers links directly to your booking calendar — groups can split the cost and book on the spot." }, - { title: "Post-Game Review Rush", description: "Hand every team a QR-coded feedback card as they exit. The adrenaline is still running — reviews written immediately are more enthusiastic." }, - { title: "In-Game Hint Systems", description: "Use QR codes within game rooms to link to optional hint videos, audio clues, or additional story context." } - ], - useCases: [ - "Outdoor and window signage linking to booking calendar", - "Post-game review request cards handed to every team", - "Group discount flyers distributed in nearby hospitality venues", - "In-game QR codes for optional hints or story additions", - "Gift voucher QR codes sold at reception or online" - ], - tools: ["url-qr-code", "youtube-qr-code", "event-qr-code"], - faq: [ - { question: "Where should escape rooms use QR codes for maximum bookings?", answer: "Outdoor street-level signage and nearby hospitality venue flyers capture walk-by and post-dinner impulse bookings, which are common for escape rooms." }, - { question: "Can QR codes be used inside the escape room itself?", answer: "Yes. QR codes linked to video hints, audio clues, or optional story elements add a digital layer to physical puzzles without breaking immersion." }, - { question: "How do I get more Google reviews from escape room customers?", answer: "A branded QR review card handed to every team right after their game, while the experience is fresh, consistently outperforms follow-up emails for review conversion." } - ], - placementTips: [ - "Place booking QR codes on A-frame signs outside the venue entrance", - "Hand every exiting team a review card with a QR code before they leave", - "Distribute group booking flyers in nearby restaurants and bowling alleys" - ] - }, - { - slug: "pilates-studios", - name: "Pilates Studios", - title: "QR Codes for Pilates Studios", - metaTitle: "QR Codes for Pilates Studios: Fill Classes and Retain Members", - metaDescription: "Help pilates studios use dynamic QR codes for class bookings, membership sign-ups, tutorial videos, and referral programs.", - headline: "QR Codes for Pilates Studios: Every Class Should Be Full and Every Member Should Feel Seen", - subheadline: "From first-time visitor flyers to member referral cards, dynamic QR codes make growing your studio effortless.", - heroImage: "/marketing/industries/pilates-studios.png", - statistics: [ - { value: "68%", label: "of pilates clients discover studios through friend referrals" }, - { value: "4x", label: "Higher class attendance when booking reminders include a QR rescheduling link" }, - { value: "55%", label: "of new members join within 2 weeks of a free trial class" } - ], - benefits: [ - { title: "Free Trial Conversions", description: "A QR code on your street-level poster links directly to a free trial class booking — reducing friction for first-time visitors." }, - { title: "Member Referral Tracking", description: "Give each member a unique QR referral card. Track which members bring in the most new clients and reward them accordingly." }, - { title: "Video Tutorial Library", description: "Link QR codes on printed training cards to a private video library of exercises and corrections for home practice." } - ], - useCases: [ - "Exterior signage and flyers with free trial class booking link", - "Member referral cards with unique per-member tracking codes", - "Training cards linking to video exercise demonstrations", - "Class timetable posters with a booking QR code", - "Post-class review request cards for Google and social platforms" - ], - tools: ["url-qr-code", "youtube-qr-code", "email-qr-code"], - faq: [ - { question: "What should a pilates studio's QR code link to?", answer: "A free trial class booking page is the highest-converting destination for new visitors. For existing members, link to the class schedule and rebook flow." }, - { question: "How can I use QR codes to reduce class no-shows?", answer: "Add a QR code to booking confirmation printouts linking to a rescheduling page. Making it easy to change reduces last-minute drops rather than simply losing the booking." }, - { question: "Are QR codes useful for in-studio printed materials?", answer: "Yes. Training cards with QR codes linking to form correction videos, breathing tutorials, and at-home practice guides extend the studio experience beyond class time." } - ], - placementTips: [ - "Post free trial QR flyers on studio windows and nearby community boards", - "Place booking QR codes on class timetable printouts at reception", - "Hand members referral cards with their name on them to personalise the ask" - ] - }, - { - slug: "wedding-venues", - name: "Wedding Venues", - title: "QR Codes for Wedding Venues", - metaTitle: "QR Codes for Wedding Venues: Show Off Your Venue and Book More Tours", - metaDescription: "Help wedding venues use dynamic QR codes on brochures, open day signage, and printed packs to drive virtual tours, inquiry forms, and availability checks.", - headline: "QR Codes for Wedding Venues: Every Brochure Should Book a Tour", - subheadline: "Turn printed venue brochures, open day displays, and wedding fair materials into interactive digital experiences with a single scan.", - heroImage: "/marketing/industries/wedding-venues.png", - statistics: [ - { value: "87%", label: "of couples research venues online before visiting in person" }, - { value: "3x", label: "More inquiry form completions from brochures with QR codes" }, - { value: "70%", label: "of venue bookings are made within 2 weeks of the first site visit" } - ], - benefits: [ - { title: "Virtual Tour on the Spot", description: "A QR code in your brochure links to a video walkthrough so couples can revisit the feeling of your venue at home." }, - { title: "Wedding Fair Lead Capture", description: "A branded QR code on your fair display captures couple details and books consultations without needing manual sign-up sheets." }, - { title: "Availability and Pricing on Demand", description: "Dynamic QR codes update to current availability calendars and pricing packages without reprinting any printed materials." } - ], - useCases: [ - "Printed brochures with QR links to virtual tours and photo galleries", - "Wedding fair display signage with inquiry form QR code", - "Site visit follow-up packs with a 'Check your date' availability link", - "Supplier partnership cards with a referral tracking QR code", - "Guest WiFi QR codes for couples to share on the day itself" - ], - tools: ["url-qr-code", "wifi-qr-code", "youtube-qr-code"], - faq: [ - { question: "What should a wedding venue's QR code link to?", answer: "A virtual tour or photo gallery linked from your brochure is most compelling. Pair it with a date availability checker for the highest inquiry conversion." }, - { question: "How do QR codes help at wedding fairs?", answer: "Replace paper sign-up sheets with a QR code linking to a simple consultation booking form. Couples submit details on their own phone — faster, cleaner, and better data." }, - { question: "Can I give couples a WiFi QR code for their wedding day?", answer: "Yes. A framed WiFi QR code is a popular detail that guests appreciate, and it keeps your venue branding visible in guest photos from the day." } - ], - placementTips: [ - "Print a QR code on the inside front cover of every printed venue brochure", - "Display a large format QR poster at wedding fair stands with a 'Book your tour' prompt", - "Include a QR availability link in every site visit follow-up pack sent to couples" - ] - }, - { - slug: "architects", - name: "Architects", - title: "QR Codes for Architects", - metaTitle: "QR Codes for Architects: Turn Site Hoardings and Proposals Into Portfolio Visits", - metaDescription: "Help architecture firms use dynamic QR codes on site hoardings, pitch documents, and business cards to showcase portfolios and capture project inquiries.", - headline: "QR Codes for Architects: Your Best Work Should Be One Scan Away", - subheadline: "Turn site hoardings, award entries, and proposal documents into living portfolio links with QR codes that update as your projects evolve.", - heroImage: "/marketing/industries/architects.png", - statistics: [ - { value: "82%", label: "of clients select an architect based on visible portfolio quality" }, - { value: "6x", label: "More portfolio views from QR-coded site hoardings vs URL text alone" }, - { value: "55%", label: "of architecture inquiries start with seeing an active project in a neighborhood" } - ], - benefits: [ - { title: "Site Hoardings as Portfolio Windows", description: "A QR code on every project hoarding lets passersby view your full portfolio of similar work and submit an inquiry on the spot." }, - { title: "Living Proposal Documents", description: "Link QR codes in pitch documents to CGI walkthroughs, specification sheets, and project timeline videos that update without reprinting." }, - { title: "Award and Press Coverage", description: "QR codes in printed press materials link journalists and judges directly to project photography, case studies, and contact details." } - ], - useCases: [ - "Site hoarding QR codes linking to portfolio and contact form", - "Proposal and tender documents with QR links to CGI and specification assets", - "Business cards with vCard and portfolio gallery link", - "Award submission materials with QR codes to project photography", - "Planning application notices with public consultation QR codes" - ], - tools: ["url-qr-code", "vcard-qr-code", "pdf-qr-code"], - faq: [ - { question: "What should an architect's site hoarding QR code link to?", answer: "A project page showing similar completed work in the same sector — residential, commercial, or heritage — converts browsers into inquirers most effectively." }, - { question: "Can I use QR codes in architectural proposal documents?", answer: "Yes. A QR code linking to a 3D walkthrough or specification video in a printed proposal significantly increases perceived quality and engagement." }, - { question: "How do QR codes help with public planning consultations?", answer: "A QR code on planning notices allows local residents to access consultation documents, submit feedback, and attend virtual Q&A sessions without searching online." } - ], - placementTips: [ - "Apply QR to all site hoardings at pedestrian eye level with a project preview prompt", - "Include QR codes inside proposal covers linking to CGI animations or project films", - "Print on award submission folders and press kits with a portfolio link" - ] - }, - { - slug: "hair-salons", - name: "Hair Salons", - title: "QR Codes for Hair Salons", - metaTitle: "QR Codes for Hair Salons: Rebook Clients and Collect More Reviews", - metaDescription: "Help hair salons use dynamic QR codes for rebooking, style lookbooks, WiFi access, and review collection to retain clients and attract new ones.", - headline: "QR Codes for Hair Salons: Every Client Should Leave With a Next Appointment", - subheadline: "From WiFi access to rebooking links, dynamic QR codes keep clients connected to your salon between visits.", - heroImage: "/marketing/industries/hair-salons.png", - statistics: [ - { value: "70%", label: "of salon clients who rebook do so within 6 weeks of their last visit" }, - { value: "88%", label: "of new salon clients check reviews before booking for the first time" }, - { value: "3x", label: "More repeat bookings when clients leave with a rebook QR card" } - ], - benefits: [ - { title: "Frictionless Rebooking", description: "A QR code on your appointment card links clients straight to your booking calendar before they've even left the chair." }, - { title: "Style Lookbook Access", description: "Display a QR code at stations linking to your Instagram or a curated gallery so clients can browse styles during their appointment." }, - { title: "WiFi Without Passwords", description: "A framed WiFi QR code at reception removes the awkward password conversation and improves the client experience instantly." } - ], - useCases: [ - "Appointment reminder cards with a rebook QR code", - "Reception desk WiFi QR code display", - "Mirror or station QR codes linking to style lookbook or Instagram", - "Post-visit review request QR on receipts or follow-up cards", - "Referral cards with a 'Give a friend 10% off' QR link" - ], - tools: ["wifi-qr-code", "url-qr-code", "instagram-qr-code"], - faq: [ - { question: "What QR codes work best for hair salons?", answer: "WiFi QR codes at reception and rebooking links on appointment cards are the two most impactful placements. Both improve the client experience directly." }, - { question: "Should I link my QR code to Instagram or my booking platform?", answer: "Use your QR code for your booking platform when the goal is rebooking. Reserve Instagram QR codes for style inspiration at the styling station." }, - { question: "How do QR codes help with salon referrals?", answer: "A referral card with a QR code linking to a discount for a friend makes it easy for satisfied clients to share your salon without needing to remember your details." } - ], - placementTips: [ - "Frame a WiFi QR code card on the reception desk or entry table", - "Print rebook QR codes on the back of every appointment card", - "Place style lookbook QR codes at each styling station mirror" - ] - }, - { - slug: "hostels", - name: "Hostels", - title: "QR Codes for Hostels", - metaTitle: "QR Codes for Hostels: Simplify Check-In and Delight Budget Travelers", - metaDescription: "Help hostels use QR codes for WiFi access, local area guides, check-in instructions, tour bookings, and review collection.", - headline: "QR Codes for Hostels: Give Every Guest Everything They Need the Moment They Arrive", - subheadline: "WiFi, local tips, tour bookings, and house rules — all in one scan. No printed guides. No repeated questions at reception.", - heroImage: "/marketing/industries/hostels.png", - statistics: [ - { value: "92%", label: "of hostel guests check WiFi details within minutes of arrival" }, - { value: "3x", label: "Fewer front desk interruptions when digital guest guides are QR-accessible" }, - { value: "78%", label: "of backpacker travelers discover activities through hostel recommendations" } - ], - benefits: [ - { title: "Self-Service Check-In", description: "A QR code at the entrance links guests to check-in instructions, room assignments, and house rules without queue time at reception." }, - { title: "Local Area Partner Revenue", description: "Link a local guide QR code to partner tour operators, restaurants, and activities — each click is a potential affiliate or commission booking." }, - { title: "Review Collection at Checkout", description: "A QR card left on every bed or in the common room prompts departing guests to leave a review before they even leave the building." } - ], - useCases: [ - "Dorm room WiFi QR code framed on the wall", - "Reception desk local area guide QR linking to activities and restaurants", - "Check-in instruction QR on entry door for self-check-in properties", - "Common room tour booking QR codes with partner operators", - "Checkout review request QR on thank-you card or whiteboard" - ], - tools: ["wifi-qr-code", "url-qr-code", "pdf-qr-code"], - faq: [ - { question: "What is the most valuable QR code placement in a hostel?", answer: "A WiFi QR code in every dorm room eliminates the most common guest question and removes the need to share passwords repeatedly." }, - { question: "Can I use QR codes to promote partner tours and activities?", answer: "Yes. A local guide QR code linking to vetted partner experiences turns guest interest into bookings — and can generate affiliate income for your hostel." }, - { question: "How do QR codes help with self-check-in hostels?", answer: "A QR code at the entrance linking to a step-by-step check-in guide, lockbox instructions, and room details allows fully unattended arrival with no staff required." } - ], - placementTips: [ - "Frame WiFi QR codes next to each set of bunk beds in dorm rooms", - "Post local guide QR codes in the common room, kitchen, and corridor noticeboards", - "Leave checkout review QR cards on beds during daily room refresh" - ] - }, - { - slug: "crossfit", - name: "CrossFit Gyms", - title: "QR Codes for CrossFit Gyms", - metaTitle: "QR Codes for CrossFit Gyms: Fill Classes and Build Community", - metaDescription: "Help CrossFit gyms and boxes use QR codes for free trial bookings, WOD tracking, member referrals, and competition sign-ups.", - headline: "QR Codes for CrossFit Gyms: Every Workout Should Build the Community, Not Just the Athletes", - subheadline: "Free trial sign-ups, WOD results, member referrals, and competition registrations — all accessible from a single scan on your box wall.", - heroImage: "/marketing/industries/crossfit.png", - statistics: [ - { value: "75%", label: "of CrossFit members joined after a free trial or friend referral" }, - { value: "4x", label: "Higher free trial conversion from flyers with QR booking links" }, - { value: "85%", label: "of CrossFit members follow their box on social media" } - ], - benefits: [ - { title: "Free Trial on the Spot", description: "A QR code on your exterior sign or flyer books a free trial class in under a minute — perfect for people walking past the box." }, - { title: "Member Referral Tracking", description: "Give each member a unique referral QR code. When friends scan and sign up, you know exactly who to reward." }, - { title: "WOD and Programming Access", description: "Link a wall-mounted QR code to daily programming, tracking sheets, or a private member app for easy in-box access." } - ], - useCases: [ - "Exterior sign QR code for free trial class booking", - "Member referral cards with unique per-member QR codes", - "Box whiteboard or wall QR linking to daily WOD and programming", - "Competition sign-up QR codes posted in the gym", - "Merchandise and apparel order QR code for member purchasing" - ], - tools: ["url-qr-code", "instagram-qr-code", "youtube-qr-code"], - faq: [ - { question: "What should a CrossFit box's QR code link to?", answer: "A free trial class booking page converts best for new member acquisition. For existing members, link to daily programming or the member portal." }, - { question: "How do I track which members refer the most new clients?", answer: "Create a unique dynamic QR code for each member referral card. QR Master's analytics show scans and conversions per code." }, - { question: "Can QR codes be used inside the CrossFit box?", answer: "Yes. Wall-mounted QR codes linking to daily WOD videos, lift technique tutorials, or scaling options are popular in well-run boxes." } - ], - placementTips: [ - "Apply QR free trial code to exterior window or A-frame sign facing foot traffic", - "Print member referral QR cards to hand out at milestone workouts and events", - "Mount a durable QR code near the whiteboard linking to programming and tracking" - ] - }, - { - slug: "sports-bars", - name: "Sports Bars", - title: "QR Codes for Sports Bars", - metaTitle: "QR Codes for Sports Bars: Digital Menus, Events, and Table Ordering", - metaDescription: "Help sports bars use QR codes for digital drinks menus, event schedules, table ordering, loyalty programs, and review collection.", - headline: "QR Codes for Sports Bars: Keep the Game on the Screen and the Orders Moving", - subheadline: "Digital menus, event schedules, and group booking links — scannable from every table so your staff can focus on service.", - heroImage: "/marketing/industries/sports-bars.png", - statistics: [ - { value: "42%", label: "Increase in drinks orders when digital menus include promotional items" }, - { value: "3x", label: "More event pre-bookings when game schedules are QR-accessible" }, - { value: "68%", label: "of sports bar regulars book big game seats in advance" } - ], - benefits: [ - { title: "Dynamic Drinks Menu", description: "Update daily specials, cocktail promotions, and game-day offers instantly without reprinting laminated menus on every table." }, - { title: "Event and Game Schedule", description: "A QR code linking to your upcoming fixtures list and table reservation form converts curious visitors into confirmed bookings." }, - { title: "Group Booking Engine", description: "Large groups scan once and access your group booking form, function room details, and set menu options without waiting for staff." } - ], - useCases: [ - "Table QR codes linking to digital drinks and food menu", - "Bar top and entrance signage with upcoming fixtures and booking link", - "Group booking QR codes on function room brochures", - "Loyalty program QR codes for scan-to-earn drink stamps", - "Post-event review request QR on receipts and closing announcements" - ], - tools: ["url-qr-code", "wifi-qr-code", "facebook-qr-code"], - faq: [ - { question: "What QR code placement drives the most revenue in a sports bar?", answer: "Table QR menus with promoted specials consistently increase average order values. Add a fixtures calendar QR at the entrance to drive advance bookings." }, - { question: "Can I update my drinks specials on the QR menu without reprinting?", answer: "Yes. A dynamic QR code lets you change the destination URL — point it to an updated specials page before every match day with no new print materials." }, - { question: "How do QR codes help with group bookings?", answer: "A dedicated group booking QR on your function brochures eliminates phone calls. Groups scan, see availability and packages, and submit a booking request instantly." } - ], - placementTips: [ - "Place QR table tents at every table and bar stool station", - "Post a large fixtures and booking QR poster near the entrance and main screen", - "Include group booking QR on every paper napkin or function inquiry card" - ] - }, - { - slug: "laundromats", - name: "Laundromats", - title: "QR Codes for Laundromats", - metaTitle: "QR Codes for Laundromats: Machine Instructions, WiFi, and Loyalty Programs", - metaDescription: "Help laundromats use QR codes for machine instructions, WiFi access, loyalty programs, maintenance reporting, and customer reviews.", - headline: "QR Codes for Laundromats: Make Waiting Time Work for Your Business", - subheadline: "Customers spend 45–90 minutes in your laundromat. QR codes on every machine and wall turn that dwell time into reviews, loyalty sign-ups, and referrals.", - heroImage: "/marketing/industries/laundromats.png", - statistics: [ - { value: "45 min", label: "Average customer dwell time — highest of any retail category" }, - { value: "3x", label: "More loyalty sign-ups from in-venue QR codes vs external campaigns" }, - { value: "60%", label: "of laundromat customers return weekly or more" } - ], - benefits: [ - { title: "Machine Instructions That Never Go Missing", description: "A QR code on every machine links to the correct video or PDF guide so customers help themselves and staff handle fewer interruptions." }, - { title: "Loyalty Program Enrollment", description: "Long dwell times make laundromats one of the highest-converting venues for QR-based loyalty sign-ups — customers have nothing but time." }, - { title: "Fault Reporting Without Staff", description: "A QR code linking to a simple fault report form on out-of-order or underperforming machines keeps maintenance up to date without relying on verbal reports." } - ], - useCases: [ - "Machine instruction QR codes linking to video guides per model", - "WiFi QR code displayed at the entrance and seating area", - "Loyalty program enrollment QR codes on posters and table cards", - "Fault reporting QR on every machine for maintenance tracking", - "Review request QR displayed near exit and on receipts" - ], - tools: ["wifi-qr-code", "url-qr-code", "youtube-qr-code"], - faq: [ - { question: "What is the best QR code use case for a laundromat?", answer: "Machine instruction QR codes reduce staff interruptions most. WiFi QR codes and loyalty program sign-ups are the next most valuable for customer experience and retention." }, - { question: "Can QR codes help with machine maintenance?", answer: "Yes. A fault reporting QR on every machine creates a digital paper trail for maintenance issues — faster to act on than verbal reports and useful for warranty claims." }, - { question: "How do I grow my laundromat loyalty program with QR codes?", answer: "Place QR enrollment codes at eye level on every machine and at the entrance. Customers waiting for a cycle are captive — conversion rates in laundromats are unusually high." } - ], - placementTips: [ - "Apply QR instruction stickers to the front panel of every washer and dryer", - "Frame a WiFi QR code at the entrance and seating area", - "Post loyalty sign-up QR codes at the detergent vending machine and folding tables" - ] - }, - { - slug: "aquariums", - name: "Aquariums", - title: "QR Codes for Aquariums", - metaTitle: "QR Codes for Aquariums: Interactive Exhibits and Visitor Engagement", - metaDescription: "Help aquariums use QR codes to deliver species information, audio guides, feeding schedules, ticketing, and membership sign-ups to visitors.", - headline: "QR Codes for Aquariums: Every Tank Should Tell a Story", - subheadline: "Species info, feeding times, audio guides, and conservation content — all accessible from a single scan next to every exhibit.", - heroImage: "/marketing/industries/aquariums.png", - statistics: [ - { value: "78%", label: "of aquarium visitors want more information about the species they see" }, - { value: "4x", label: "Longer exhibit engagement when interactive QR content is available" }, - { value: "35%", label: "of aquarium memberships are purchased after a positive first visit" } - ], - benefits: [ - { title: "Interactive Species Information", description: "Replace static plaques with QR codes linking to rich species profiles, video content, and conservation stories accessible on any smartphone." }, - { title: "Audio Guide Access", description: "A QR code near each exhibit entrance delivers a narrated audio guide without equipment rental desks or app downloads." }, - { title: "Membership Conversion on Site", description: "A QR code at the exit links directly to membership purchase — converting engaged visitors at the moment of peak enthusiasm." } - ], - useCases: [ - "Exhibit QR codes linking to species profiles and video content", - "Audio guide QR codes at each zone entrance", - "Feeding schedule QR codes at high-interest tanks", - "Membership purchase QR code at exit and gift shop", - "Conservation program donation QR codes on campaign signage" - ], - tools: ["url-qr-code", "youtube-qr-code", "pdf-qr-code"], - faq: [ - { question: "How do QR codes improve the aquarium visitor experience?", answer: "QR codes next to tanks deliver species details, conservation context, and feeding times on demand — far richer than static plaques and appreciated by curious visitors of all ages." }, - { question: "Can QR codes replace printed audio guide equipment?", answer: "Yes. A QR code linking to a web-based audio guide eliminates rental desk queues and equipment hygiene concerns while reducing operational costs." }, - { question: "How do I use QR codes to sell more memberships?", answer: "Place a membership QR code prominently at the exit and in the gift shop. Visitors who've just had a great experience are at peak conversion motivation." } - ], - placementTips: [ - "Mount QR codes at eye level next to every major tank and exhibit", - "Place audio guide QR codes at the entrance to each themed zone", - "Display membership QR codes prominently at the exit and gift shop checkout" - ] - }, - { - slug: "gift-shops", - name: "Gift Shops", - title: "QR Codes for Gift Shops", - metaTitle: "QR Codes for Gift Shops: Product Stories, Reviews, and Reorder Links", - metaDescription: "Help gift shops use QR codes on product tags, packaging, and displays to share product stories, collect reviews, and enable easy reordering.", - headline: "QR Codes for Gift Shops: Every Product Tag Should Be a Story", - subheadline: "Turn packaging and price tags into interactive experiences with QR codes that share provenance, inspire gifting ideas, and make reordering effortless.", - heroImage: "/marketing/industries/gift-shops.png", - statistics: [ - { value: "64%", label: "of gift buyers research product provenance before purchasing" }, - { value: "3x", label: "Higher review rates from QR-coded thank-you inserts vs email follow-ups" }, - { value: "45%", label: "of gift shop repeat purchases are driven by online reorder convenience" } - ], - benefits: [ - { title: "Product Story Tags", description: "A QR code on product tags links to the maker's story, ingredients, or craftsmanship details — the context that turns browsers into buyers." }, - { title: "Easy Reordering", description: "A QR code on packaging inserts links directly to the product page so gift recipients can reorder without searching." }, - { title: "Seasonal Collection Updates", description: "Dynamic QR codes on seasonal displays update to new collection pages without printing new signs for every rotation." } - ], - useCases: [ - "Product hang tags with QR codes linking to maker stories and provenance", - "Packaging inserts with reorder and 'discover more' QR codes", - "In-store display QR codes linking to full collection pages", - "Gift receipt inserts with an exchange or reorder QR link", - "Social follow QR codes at point of sale for Instagram and newsletter" - ], - tools: ["url-qr-code", "instagram-qr-code", "facebook-qr-code"], - faq: [ - { question: "What should a gift shop product tag QR code link to?", answer: "A product detail page with the story behind the item — maker, materials, care instructions, and related products. Context sells gifts more than price." }, - { question: "How do QR codes help with post-purchase retention?", answer: "An insert in every bag with a QR code linking to your newsletter sign-up, Instagram, or reorder page converts one-time buyers into repeat customers." }, - { question: "Can I use QR codes for seasonal promotions without reprinting signs?", answer: "Yes. Dynamic QR codes on in-store displays update to new collection pages or seasonal offers without new print materials — swap the content, not the sign." } - ], - placementTips: [ - "Print QR codes on product hang tags alongside the product name and price", - "Include a QR insert in every shopping bag or gift box", - "Place a social follow QR code at the register for post-purchase engagement" - ] - }, - { - slug: "bike-shops", - name: "Bike Shops", - title: "QR Codes for Bike Shops", - metaTitle: "QR Codes for Bike Shops: Service Bookings, Trail Maps, and Product Info", - metaDescription: "Help bike shops use QR codes for service bookings, trail guide downloads, product manuals, and post-repair review collection.", - headline: "QR Codes for Bike Shops: From the Workshop to the Trail", - subheadline: "Service booking links, trail maps, and product guides — give cyclists the information they need exactly where they need it.", - heroImage: "/marketing/industries/bike-shops.png", - statistics: [ - { value: "72%", label: "of cyclists research service options online before calling a shop" }, - { value: "3x", label: "Higher review rates from post-repair QR cards vs no follow-up" }, - { value: "65%", label: "of bike shop revenue comes from repeat service customers" } - ], - benefits: [ - { title: "Service Booking On Demand", description: "A QR code on your window or workshop board links directly to your online service booking form — no calls, no waiting." }, - { title: "Trail and Route Guides", description: "QR codes on local trail maps or in-store displays link to GPX files, elevation guides, and local club rides — adding value beyond the purchase." }, - { title: "Product Manual Access", description: "Replace lost paper manuals with QR codes on bike frames and component packaging linking to PDF guides and setup videos." } - ], - useCases: [ - "Window and workshop signage with a service booking QR code", - "Trail map displays linking to GPX downloads and route details", - "Post-service review request QR codes on repair invoices", - "Product hang tags linking to manuals, setup guides, and warranty registration", - "Local cycling event and club ride promotion via QR posters" - ], - tools: ["url-qr-code", "pdf-qr-code", "youtube-qr-code"], - faq: [ - { question: "What should a bike shop QR code link to?", answer: "A service booking form is the highest-converting destination. Trail guides and route maps are valuable for community building and in-store dwell time." }, - { question: "Can I add QR codes to bikes I've serviced?", answer: "Yes. A small QR sticker with the service date and a rebooking link on the frame or seatpost is a subtle but effective retention tool." }, - { question: "How do QR codes help sell accessories and components?", answer: "A QR code on component displays linking to compatibility guides, installation videos, and compatible model lists helps customers self-qualify purchases without staff intervention." } - ], - placementTips: [ - "Post a service booking QR code on the shop window and workshop entrance", - "Apply small QR rebooking stickers to frames after every completed service", - "Display trail guide QR codes next to local maps and ride planning resources" - ] - }, - { - slug: "ice-cream-shops", - name: "Ice Cream Shops", - title: "QR Codes for Ice Cream Shops", - metaTitle: "QR Codes for Ice Cream Shops: Daily Flavors, Loyalty, and Social Follows", - metaDescription: "Help ice cream shops use QR codes for daily flavor menus, loyalty program sign-ups, social media follows, and seasonal promotion campaigns.", - headline: "QR Codes for Ice Cream Shops: Let Customers Scan Today's Flavors Before They Queue", - subheadline: "Daily flavor menus, loyalty stamps, and social follows — all from a single scannable QR code on your window or counter.", - heroImage: "/marketing/industries/ice-cream-shops.png", - statistics: [ - { value: "58%", label: "of ice cream customers decide their order before joining the queue" }, - { value: "4x", label: "More social follows from in-store QR codes vs word-of-mouth alone" }, - { value: "45%", label: "of specialty ice cream customers are loyal to one shop" } - ], - benefits: [ - { title: "Daily Flavor Board Without a Chalkboard", description: "A dynamic QR code on your window links to today's flavor lineup — update it from your phone each morning before opening." }, - { title: "Loyalty Without the Card", description: "A QR code linking to a digital loyalty program eliminates lost stamp cards and lets customers track their progress on their phone." }, - { title: "Social Growth on Every Visit", description: "A framed Instagram QR code at the counter turns every photo-worthy visit into a new follower." } - ], - useCases: [ - "Window QR code linking to today's flavor menu", - "Counter Instagram QR code for social follows and user-generated content", - "Digital loyalty program sign-up QR on receipts and in-store signage", - "Seasonal special QR codes linking to limited edition flavor announcements", - "Review request QR on cups, bags, or receipts" - ], - tools: ["url-qr-code", "instagram-qr-code", "facebook-qr-code"], - faq: [ - { question: "What is the best QR code use for an ice cream shop?", answer: "A daily flavor menu QR on your window is the most immediately practical — it reduces queue confusion and lets customers plan before they arrive." }, - { question: "Can a QR code help grow my ice cream shop's Instagram?", answer: "Yes. An Instagram QR code at the counter next to a sign like 'Tag us and get a free scoop' drives follows and user-generated content simultaneously." }, - { question: "How do digital loyalty QR codes work for ice cream shops?", answer: "Link the QR code to your loyalty app or a simple stamp card system. Customers scan on each visit to earn rewards — no physical card to lose." } - ], - placementTips: [ - "Post a daily flavor QR code on the shop window at eye level before opening", - "Frame an Instagram QR code at the point of sale or selfie wall", - "Print loyalty QR codes on the bottom of every receipt" - ] - }, - { - slug: "delis", - name: "Delis", - title: "QR Codes for Delis", - metaTitle: "QR Codes for Delis: Daily Specials, Online Ordering, and Catering Inquiries", - metaDescription: "Help delis and specialty food shops use QR codes for daily specials menus, pre-order links, catering inquiries, and loyalty programs.", - headline: "QR Codes for Delis: Tell Customers What's Fresh Today Before They Walk In", - subheadline: "Daily specials, pre-order links, and catering menus — all accessible from a single QR code on your window or counter.", - heroImage: "/marketing/industries/delis.png", - statistics: [ - { value: "62%", label: "of deli customers decide on a special before arriving at the counter" }, - { value: "3x", label: "Higher catering inquiry rate from window QR menus vs phone-only displays" }, - { value: "55%", label: "of deli regulars visit weekly and prefer to pre-order" } - ], - benefits: [ - { title: "Daily Specials Without a Sandwich Board", description: "Update your specials page from your phone each morning and your window QR code always shows today's menu." }, - { title: "Catering Inquiry Capture", description: "A QR code linking to your catering menu and inquiry form converts curious office managers and event planners into leads." }, - { title: "Pre-Order and Skip the Queue", description: "Link your QR code to an online pre-order system so regulars can pick up without waiting — improving throughput at peak times." } - ], - useCases: [ - "Window QR code linking to daily specials and pre-order form", - "Counter catering menu QR for office and event inquiries", - "Loyalty card QR for digital stamp collection", - "Provenance and maker story QR codes on artisan product labels", - "Review request QR on bags, wrapping, and receipts" - ], - tools: ["url-qr-code", "pdf-qr-code", "instagram-qr-code"], - faq: [ - { question: "What should a deli's window QR code link to?", answer: "A daily specials page updated each morning and a pre-order link. Customers who can plan ahead are more likely to commit to a purchase before they arrive." }, - { question: "How can QR codes help with catering sales?", answer: "A QR code linking to your catering menu and a simple inquiry form on your counter and website converts browsing office workers into catering clients." }, - { question: "Can QR codes replace printed menus in a deli?", answer: "For daily-changing specials, yes. A dynamic QR menu is always current, looks clean, and saves daily printing costs without sacrificing the handcrafted feel of a good deli." } - ], - placementTips: [ - "Post a daily specials QR code on the front window at eye level", - "Display a catering inquiry QR prominently on the counter and near artisan products", - "Print loyalty QR codes on every bag and receipt" - ] - }, - { - slug: "resorts", - name: "Resorts", - title: "QR Codes for Resorts", - metaTitle: "QR Codes for Resorts: Guest Guides, Activity Booking, and In-Room Services", - metaDescription: "Help resorts use QR codes for digital welcome guides, activity bookings, in-room service menus, WiFi access, and guest feedback collection.", - headline: "QR Codes for Resorts: Every Guest Touch Point Should Be Seamlessly Connected", - subheadline: "From arrival to checkout, dynamic QR codes deliver the right information and booking options exactly when guests need them.", - heroImage: "/marketing/industries/resorts.png", - statistics: [ - { value: "91%", label: "of resort guests consult in-room materials for activity and dining options" }, - { value: "4x", label: "More activity bookings when QR codes are placed at poolside and in rooms" }, - { value: "38%", label: "of resort reviews mention quality of information and ease of access" } - ], - benefits: [ - { title: "Paperless Guest Compendium", description: "Replace thick in-room binders with a single QR code on the bedside table linking to a digital guest guide — always current, never outdated." }, - { title: "Activity and Dining Upsells", description: "QR codes at the pool, spa, and reception desk linking to activity booking pages consistently increase ancillary revenue per guest." }, - { title: "Instant Feedback Collection", description: "A QR code on the checkout invoice captures feedback at departure — before the review motivation fades on the journey home." } - ], - useCases: [ - "In-room QR codes replacing printed guest compendiums", - "Pool and spa signage linking to activity and treatment bookings", - "WiFi QR codes framed at reception and in every room", - "Restaurant and bar QR menus at tables and poolside", - "Checkout feedback QR codes on invoice cards" - ], - tools: ["wifi-qr-code", "url-qr-code", "pdf-qr-code"], - faq: [ - { question: "What is the best QR code use case for a resort?", answer: "An in-room digital compendium QR code replacing the printed binder delivers the most operational savings and guest satisfaction improvement simultaneously." }, - { question: "How do QR codes increase resort ancillary revenue?", answer: "QR codes placed at high-dwell locations — pool loungers, spa waiting areas, restaurant tables — drive spontaneous activity and treatment bookings that guests wouldn't otherwise make." }, - { question: "Can QR codes be used for checkout feedback at resorts?", answer: "Yes. A QR code on the checkout invoice linking to a brief satisfaction survey captures feedback at the highest-motivation moment before guests disperse." } - ], - placementTips: [ - "Place in-room compendium QR codes on the bedside table and minibar area", - "Mount activity booking QR codes at pool entrances and spa reception", - "Include WiFi QR codes in every room — framed cards are most professional" - ] - }, - { - slug: "toy-stores", - name: "Toy Stores", - title: "QR Codes for Toy Stores", - metaTitle: "QR Codes for Toy Stores: Age Guides, Gift Ideas, and Assembly Instructions", - metaDescription: "Help toy stores use QR codes on displays and packaging to deliver age guides, gift recommendations, video demos, and assembly instructions.", - headline: "QR Codes for Toy Stores: Help Parents Find the Perfect Gift Without Asking Staff", - subheadline: "Age guides, video demos, and gift recommendation quizzes — QR codes on every display let parents self-serve and buy with confidence.", - heroImage: "/marketing/industries/toy-stores.png", - statistics: [ - { value: "76%", label: "of toy purchases are made by parents uncertain about age suitability" }, - { value: "3x", label: "Higher conversion when video demos are linked from product displays" }, - { value: "55%", label: "of toy store customers are gift buyers visiting without the recipient" } - ], - benefits: [ - { title: "Age Suitability Guides", description: "A QR code on display shelves links to age-by-age gift guides — removing the most common hesitation that prevents a purchase." }, - { title: "Video Demos That Sell", description: "Link product display QR codes to unboxing and play demonstration videos — letting the toy sell itself without staff involvement." }, - { title: "Assembly Instructions On Demand", description: "A QR code on packaging linking to step-by-step assembly videos reduces returns and post-purchase frustration." } - ], - useCases: [ - "Shelf and display QR codes linking to age guides and gift recommendations", - "Product packaging QR codes with video unboxings and demos", - "Assembly instruction QR codes replacing printed manuals", - "In-store gift quiz QR linking to curated gift recommendation tool", - "Post-purchase review QR codes on receipts and inserts" - ], - tools: ["url-qr-code", "youtube-qr-code", "pdf-qr-code"], - faq: [ - { question: "How do QR codes help sell more toys?", answer: "Video demonstrations linked from product displays are the most effective QR use case in toy retail — seeing a toy in action converts hesitant buyers faster than any product description." }, - { question: "Can QR codes reduce toy returns?", answer: "Yes. Assembly instruction QR codes linking to video guides reduce setup frustration, which is one of the most common reasons for returns of complex toys." }, - { question: "What QR content works best for gift buyers in toy stores?", answer: "Age-based gift guides and curated recommendation quizzes address the core anxiety of gift buyers who don't know the child well. These convert browsers into confident purchasers." } - ], - placementTips: [ - "Place QR age guide codes at eye level on every shelf section organized by age group", - "Apply video demo QR codes to the front of product display boxes", - "Include assembly instruction QR codes on packaging inserts and gift receipts" - ] - }, - { - slug: "sporting-goods", - name: "Sporting Goods Stores", - title: "QR Codes for Sporting Goods Stores", - metaTitle: "QR Codes for Sporting Goods Stores: Size Guides, Demos, and Expert Advice", - metaDescription: "Help sporting goods retailers use QR codes on displays and product tags to deliver size guides, video demos, expert reviews, and warranty registration.", - headline: "QR Codes for Sporting Goods Stores: Give Every Shopper Access to Expert Knowledge", - subheadline: "Size guides, fit advisors, and performance comparison videos — QR codes on every product let serious athletes self-qualify purchases without staff.", - heroImage: "/marketing/industries/sporting-goods.png", - statistics: [ - { value: "82%", label: "of sporting goods buyers research specifications before visiting a store" }, - { value: "4x", label: "Higher purchase confidence when size guides are QR-accessible in store" }, - { value: "60%", label: "of athletic equipment purchases involve a comparison with at least one competitor" } - ], - benefits: [ - { title: "In-Store Size and Fit Guides", description: "A QR code on shoe walls and apparel racks links to precise sizing guides, width charts, and fit recommendations — reducing returns and staff interruptions." }, - { title: "Performance Comparison Content", description: "Link display QR codes to product comparison videos and expert reviews so technically-minded shoppers get the depth they need without monopolizing staff time." }, - { title: "Warranty and Registration", description: "A QR code inside equipment packaging links directly to warranty registration, removing post-purchase friction and building a direct customer relationship." } - ], - useCases: [ - "Shoe and apparel wall QR codes linking to size guides and fit tools", - "Equipment display QR codes with performance comparison videos", - "Product packaging QR links to warranty registration pages", - "Clearance section QR codes linking to remaining size availability online", - "Club and team sales QR codes for bulk order inquiries" - ], - tools: ["url-qr-code", "youtube-qr-code", "pdf-qr-code"], - faq: [ - { question: "What sporting goods QR code placement drives the most sales?", answer: "Shoe wall size guide QR codes have the highest measurable impact — fit uncertainty is the number one reason athletic footwear purchases are abandoned in store." }, - { question: "Can QR codes help with team and club bulk orders?", answer: "Yes. A QR code on team equipment displays linking to a bulk order inquiry form captures club purchasing decisions that would otherwise require a sales call." }, - { question: "How do QR codes reduce sporting goods returns?", answer: "Size guide and fit advisor QR codes on apparel and footwear displays address the most common return reason. Customers who buy the right size don't return it." } - ], - placementTips: [ - "Apply QR size guide codes to shoe display walls at eye level per category", - "Place performance comparison QR codes on premium equipment shelf-edge labels", - "Include warranty registration QR codes on packaging inserts for all major equipment" - ] - }, -``` - ---- - -## Remaining Tier 2 (build after above) - -conferences, personal-trainers, music-schools, language-schools, seminars, marketing-agencies, nonprofits, musicians, sports-clubs, interior-designers, nutritionists, life-coaches, dance-schools, real-estate-developers, online-courses, childcare, recruitment-agencies - ---- - -## Hub Page Updates Needed - -Add new slugs to `/qr-code-for/page.tsx` under existing or new categories: - -### New category: "Fitness, Wellness & Active Services" -``` -pilates-studios, crossfit, massage-therapists, dog-trainers -``` - -### Extend "Food, Hospitality, and Guest Experience" -``` -ice-cream-shops, delis, resorts, vacation-rentals, hostels -``` - -### Extend "Services, Real Estate, and Lead Capture" -``` -plumbers, electricians, roofing-companies, moving-companies, cleaning-services, -auto-repair, landscaping, construction-companies, financial-advisors, architects -``` - -### Extend "Retail, Packaging, and Product Discovery" -``` -gift-shops, toy-stores, bike-shops, sporting-goods -``` - -### Extend "Education, Culture, and Public Spaces" -``` -escape-rooms, aquariums, tutors -``` - -### Add to "Services" or new "Hospitality & Lifestyle" -``` -hair-salons, wedding-venues, hostels, sports-bars, laundromats -``` - ---- - -## CTA Map (add to `[industry]/page.tsx`) - -```ts -// industryPrimaryCtas additions -"plumbers": { href: "/tools/call-qr-code-generator", label: "Create a Call QR Code for Your Van" }, -"roofing-companies": { href: "/tools/url-qr-code", label: "Create a Yard Sign QR Code" }, -"electricians": { href: "/tools/call-qr-code-generator", label: "Create a Call QR Code" }, -"moving-companies": { href: "/qr-code-tracking", label: "Track Flyer and Truck QR Scans" }, -"financial-advisors": { href: "/tools/vcard-qr-code", label: "Create a vCard QR Code" }, -"construction-companies": { href: "/qr-code-tracking", label: "Track Site Hoarding QR Scans" }, -"cleaning-services": { href: "/tools/url-qr-code", label: "Create a Booking QR Code" }, -"auto-repair": { href: "/tools/url-qr-code", label: "Create a Service Booking QR Code" }, -"landscaping": { href: "/tools/url-qr-code", label: "Create a Yard Sign QR Code" }, -"tutors": { href: "/tools/url-qr-code", label: "Create a Booking QR Code" }, -"dog-trainers": { href: "/tools/url-qr-code", label: "Create a Class Booking QR Code" }, -"vacation-rentals": { href: "/tools/wifi-qr-code", label: "Create a WiFi QR Code" }, -"massage-therapists": { href: "/tools/url-qr-code", label: "Create a Rebooking QR Code" }, -"escape-rooms": { href: "/tools/url-qr-code", label: "Create a Booking QR Code" }, -"pilates-studios": { href: "/tools/url-qr-code", label: "Create a Free Trial Booking QR Code" }, -"wedding-venues": { href: "/tools/url-qr-code", label: "Create a Tour Booking QR Code" }, -"architects": { href: "/tools/vcard-qr-code", label: "Create a Portfolio vCard QR Code" }, -"hair-salons": { href: "/tools/wifi-qr-code", label: "Create a Salon WiFi QR Code" }, -"hostels": { href: "/tools/wifi-qr-code", label: "Create a Hostel WiFi QR Code" }, -"crossfit": { href: "/tools/url-qr-code", label: "Create a Free Trial QR Code" }, -"sports-bars": { href: "/tools/url-qr-code", label: "Create a Menu QR Code" }, -"laundromats": { href: "/tools/wifi-qr-code", label: "Create a WiFi QR Code" }, -"aquariums": { href: "/tools/url-qr-code", label: "Create an Exhibit QR Code" }, -"gift-shops": { href: "/tools/url-qr-code", label: "Create a Product QR Code" }, -"bike-shops": { href: "/tools/url-qr-code", label: "Create a Service Booking QR Code" }, -"ice-cream-shops": { href: "/tools/url-qr-code", label: "Create a Daily Menu QR Code" }, -"delis": { href: "/tools/url-qr-code", label: "Create a Daily Specials QR Code" }, -"resorts": { href: "/tools/wifi-qr-code", label: "Create a Resort WiFi QR Code" }, -"toy-stores": { href: "/tools/url-qr-code", label: "Create a Product Demo QR Code" }, -"sporting-goods": { href: "/tools/url-qr-code", label: "Create a Size Guide QR Code" }, -``` - ---- - -## Notes - -- `heroImage` paths follow pattern `/marketing/industries/[slug].png` — images need to be added to `/public/marketing/industries/` -- All `germanKeyword` fields omitted — add if German SEO pages are in scope -- `industryPages` export in `industry-pages.ts` should export `allIndustries` (check current export alias) +# Industry Pages — Batch 2 (30 Pages) + +Build order: High-CPC B2B first, then high-volume consumer services. + +All entries follow the `IndustryPage` type from `src/lib/industry-pages.ts`. + +--- + +## Build Order + +### Group A — High CPC, B2B Service Trades (build first) +1. plumbers +2. roofing-companies +3. electricians +4. moving-companies +5. financial-advisors +6. construction-companies +7. cleaning-services +8. auto-repair +9. landscaping +10. tutors +11. dog-trainers + +### Group B — High Volume, Low Competition, Consumer Services (build second) +12. vacation-rentals +13. massage-therapists +14. escape-rooms +15. pilates-studios +16. wedding-venues +17. architects +18. hair-salons +19. hostels +20. crossfit +21. sports-bars +22. laundromats +23. aquariums + +### Group C — Retail & Lifestyle (build third) +24. gift-shops +25. bike-shops +26. ice-cream-shops +27. delis +28. resorts +29. toy-stores +30. sporting-goods + +--- + +## Full Data + +```ts + { + slug: "plumbers", + name: "Plumbers", + title: "QR Codes for Plumbers", + metaTitle: "QR Codes for Plumbers: Win More Jobs from Flyers and Vans", + metaDescription: "Help plumbing businesses turn printed flyers, van graphics, and invoices into instant quote requests with dynamic QR codes and scan analytics.", + headline: "QR Codes for Plumbers: Turn Every Flyer and Van Into a Lead", + subheadline: "Let customers scan to request a quote, save your number, or leave a Google review — from any printed surface you already have.", + heroImage: "/marketing/industries/plumbers.png", + statistics: [ + { value: "68%", label: "of customers research tradespeople online before calling" }, + { value: "3x", label: "More quote requests from QR-coded flyers vs URL-only" }, + { value: "40%", label: "of reviews come from post-job follow-up prompts" } + ], + benefits: [ + { title: "Instant Quote Requests", description: "A scan on your van or flyer opens your contact form directly — no typing, no friction." }, + { title: "Review Collection on Autopilot", description: "Add a QR code to invoices linking straight to your Google review page and watch 5-star reviews accumulate." }, + { title: "Update Without Reprinting", description: "Changed your phone number or service area? Dynamic QR codes let you update the destination without reprinting a single flyer." } + ], + useCases: [ + "Van and vehicle graphics linking to a quote request form", + "Flyers and door drops with scannable contact or booking links", + "Invoices with a QR code to leave a Google review", + "Business cards linking to full service list and vCard", + "Job site signage driving local visibility and inquiries" + ], + tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], + faq: [ + { question: "What should a plumber's QR code link to?", answer: "A quote request form or a click-to-call page works best. Avoid linking to a generic homepage — make it one action." }, + { question: "Should I put a QR code on my work van?", answer: "Yes. Van graphics are one of the highest-ROI placements for tradespeople. A dynamic QR code lets you change the destination later without a new wrap." }, + { question: "Can I track how many leads come from my flyers?", answer: "Yes. Dynamic QR codes give you scan counts by date, device, and location so you can compare flyer drops and know which areas convert." } + ], + placementTips: [ + "Apply a sticker with QR code to the rear and side of your work van", + "Print on invoices and job completion cards next to the review request", + "Include on door-drop flyers with a clear call to action like 'Scan for a free quote'" + ] + }, + { + slug: "roofing-companies", + name: "Roofing Companies", + title: "QR Codes for Roofing Companies", + metaTitle: "QR Codes for Roofing Companies: More Leads from Every Printed Surface", + metaDescription: "Help roofing businesses convert truck graphics, yard signs, and flyers into qualified leads with dynamic QR codes that track every scan.", + headline: "QR Codes for Roofing Companies: Every Truck and Yard Sign Should Be Working for You", + subheadline: "Turn passive signage into active lead generation with scannable QR codes on vehicles, yard signs, and direct mail.", + heroImage: "/marketing/industries/roofing-companies.png", + statistics: [ + { value: "72%", label: "of homeowners get multiple quotes before choosing a roofer" }, + { value: "5x", label: "More inquiries from yard signs with QR codes vs phone number only" }, + { value: "60%", label: "of roofing leads start with an online search or referral" } + ], + benefits: [ + { title: "Yard Sign Lead Capture", description: "A QR code on every active job site yard sign turns neighbors into your next customers." }, + { title: "Trackable Direct Mail", description: "Know exactly which neighborhoods respond to your flyer drops with per-code scan analytics." }, + { title: "Dynamic Links", description: "Update your estimate form or seasonal offer without replacing yard signs or reprinting mailers." } + ], + useCases: [ + "Yard signs at active job sites linking to a free estimate form", + "Truck and trailer graphics with a scannable quote request", + "Direct mail campaigns with unique QR codes per neighborhood", + "Business cards with vCard and portfolio link", + "Post-job door hangers driving reviews and referrals" + ], + tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], + faq: [ + { question: "What should a roofing company QR code link to?", answer: "A free estimate request form is the highest-converting destination. Keep it short — name, address, and contact only." }, + { question: "How do I track which job site signs bring in the most leads?", answer: "Create one unique dynamic QR code per yard sign location. QR Master's analytics show scans per code so you know exactly which sites perform." }, + { question: "Can I use QR codes on seasonal storm-damage mailers?", answer: "Yes, and they're especially effective. A QR code linking to a storm damage assessment form converts better than a phone number alone." } + ], + placementTips: [ + "Place yard signs at every active job site with a 'Scan for a Free Estimate' prompt", + "Add to the rear of every truck and trailer with high visibility contrast", + "Include on door hangers left at neighboring properties after completing a job" + ] + }, + { + slug: "electricians", + name: "Electricians", + title: "QR Codes for Electricians", + metaTitle: "QR Codes for Electricians: Turn Van Graphics and Flyers Into Quote Requests", + metaDescription: "Help electrical contractors generate more leads from printed materials with dynamic QR codes for quote forms, reviews, and service bookings.", + headline: "QR Codes for Electricians: Make Your Printed Materials Work as Hard as You Do", + subheadline: "From van graphics to invoices, every surface is a lead generation opportunity when you add a dynamic QR code.", + heroImage: "/marketing/industries/electricians.png", + statistics: [ + { value: "74%", label: "of customers check online reviews before hiring an electrician" }, + { value: "2x", label: "More callbacks from flyers with QR codes vs phone-only" }, + { value: "50%", label: "of electrical jobs come from repeat customers and referrals" } + ], + benefits: [ + { title: "Frictionless Quote Requests", description: "Customers scan and land directly on your booking form — no searching, no typing, no lost business." }, + { title: "Professional First Impression", description: "QR-coded business cards and invoices signal a modern, trustworthy business to homeowners and property managers." }, + { title: "Google Review Acceleration", description: "A QR code on completion cards makes leaving a review a 10-second task, not a forgotten promise." } + ], + useCases: [ + "Van and vehicle signage with a quote request or contact link", + "Business cards linking to full service list and vCard", + "Invoices with a post-job review QR code", + "Flyers targeting landlords and property managers", + "Panel stickers linking to emergency contact or service info" + ], + tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], + faq: [ + { question: "What QR code placement works best for electricians?", answer: "Work vans are the highest-visibility surface. Pair with an invoice QR code linking to your Google review page for maximum impact." }, + { question: "Can I use different QR codes for residential vs commercial leads?", answer: "Yes. Create one code per campaign — one for residential flyers, one for commercial property management outreach — and track which converts better." }, + { question: "Should my QR code link to my website or a form?", answer: "A direct quote request form converts better than a homepage. Fewer clicks between the scan and a submitted lead means more jobs." } + ], + placementTips: [ + "Apply QR sticker to the rear of your van at eye level with a clear prompt", + "Print on completion certificates and invoices next to the review ask", + "Add to property management flyers targeting landlord portfolios" + ] + }, + { + slug: "moving-companies", + name: "Moving Companies", + title: "QR Codes for Moving Companies", + metaTitle: "QR Codes for Moving Companies: More Bookings from Trucks and Flyers", + metaDescription: "Help moving companies convert truck graphics, flyers, and partnerships into instant booking requests with dynamic QR codes and scan analytics.", + headline: "QR Codes for Moving Companies: Turn Your Fleet Into a Booking Machine", + subheadline: "Every truck on the road and every flyer in a building lobby is a chance to capture the next move — if you make it scannable.", + heroImage: "/marketing/industries/moving-companies.png", + statistics: [ + { value: "80%", label: "of people moving research removalists online first" }, + { value: "4x", label: "Booking rate from QR flyers in apartment lobbies vs cold outreach" }, + { value: "65%", label: "of moves are booked within 48 hours of first contact" } + ], + benefits: [ + { title: "Fleet-as-Advertising", description: "A dynamic QR code on every truck turns your fleet into a 24/7 booking channel across every neighborhood you serve." }, + { title: "Lobby and Building Partnerships", description: "Leave flyers with QR codes in apartment lobbies, storage facilities, and real estate offices where moving intent is highest." }, + { title: "Seasonal Campaign Flexibility", description: "Update your QR destination to a summer promotion or student move special without reprinting a single flyer." } + ], + useCases: [ + "Truck livery QR codes linking directly to an instant quote form", + "Apartment lobby flyers with a booking or price estimate link", + "Partnerships with real estate agents — QR cards for new homebuyers", + "Post-move review request QR codes on thank-you cards", + "Storage facility referral flyers with unique tracking codes" + ], + tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], + faq: [ + { question: "Where should I place QR codes for maximum bookings?", answer: "Apartment building lobbies and your truck fleet are the two highest-intent placements. People in lobbies are often planning a move." }, + { question: "Can I track which locations send the most bookings?", answer: "Yes. Create a unique dynamic QR code for each placement — one per building, one per truck — and compare scan data in QR Master's dashboard." }, + { question: "What should the QR code link to?", answer: "An instant quote calculator or a simple booking form. The faster you get the customer to a price, the lower the drop-off rate." } + ], + placementTips: [ + "Apply to the rear doors and sides of every moving truck in your fleet", + "Leave A5 flyers with QR codes in apartment building lobbies and notice boards", + "Give QR-coded referral cards to real estate agents and property managers" + ] + }, + { + slug: "financial-advisors", + name: "Financial Advisors", + title: "QR Codes for Financial Advisors", + metaTitle: "QR Codes for Financial Advisors: Share Credentials and Book Consultations", + metaDescription: "Help financial advisors modernize business card exchanges, seminar follow-ups, and referral marketing with dynamic QR codes that track engagement.", + headline: "QR Codes for Financial Advisors: Every Handshake Should Start a Digital Relationship", + subheadline: "From seminar handouts to business cards, dynamic QR codes make sharing credentials, booking calls, and collecting leads effortless.", + heroImage: "/marketing/industries/financial-advisors.png", + statistics: [ + { value: "83%", label: "of high-net-worth clients research their advisor online before meeting" }, + { value: "3x", label: "Higher follow-up rate from seminar QR codes vs business card alone" }, + { value: "70%", label: "of new advisory clients come from referrals" } + ], + benefits: [ + { title: "Professional Digital Handshake", description: "A vCard QR code on your business card lets prospects save your full contact details and LinkedIn in one scan." }, + { title: "Seminar Lead Capture", description: "Collect attendee contact details or drive consultation bookings from printed handouts and presentation slides." }, + { title: "Referral Tracking", description: "Give each referring partner a unique QR code so you know exactly which relationships drive the most business." } + ], + useCases: [ + "Business cards with vCard QR code and booking link", + "Seminar and workshop handouts linking to a consultation form", + "Referral partner cards with unique tracking codes per partner", + "Printed guides and whitepapers with a download or follow-up link", + "Office signage linking to client portal or contact page" + ], + tools: ["vcard-qr-code", "url-qr-code", "email-qr-code"], + faq: [ + { question: "What should a financial advisor's QR code link to?", answer: "A calendar booking link for a free consultation is the highest-converting destination. Pair with a vCard QR on the same business card." }, + { question: "Are QR codes appropriate for a high-trust profession like finance?", answer: "Yes. A clean, professionally designed QR code signals that you're modern and efficient — qualities clients want in an advisor." }, + { question: "Can I track which referral sources generate the most leads?", answer: "Yes. Create a unique dynamic QR code for each referral partner. QR Master shows scans per code so you know exactly where leads come from." } + ], + placementTips: [ + "Print on business cards with a 'Book a free call' prompt alongside the QR code", + "Include in seminar slide decks and printed handouts at the top and bottom", + "Add to direct mail campaigns targeting high-net-worth residential addresses" + ] + }, + { + slug: "construction-companies", + name: "Construction Companies", + title: "QR Codes for Construction Companies", + metaTitle: "QR Codes for Construction Companies: Site Signage That Generates Leads", + metaDescription: "Help construction firms turn site hoardings, vehicle graphics, and project brochures into measurable lead generation assets with dynamic QR codes.", + headline: "QR Codes for Construction Companies: Your Site Hoarding Should Be Selling", + subheadline: "Turn every project site, company vehicle, and brochure into an active lead channel with scannable dynamic QR codes.", + heroImage: "/marketing/industries/construction-companies.png", + statistics: [ + { value: "60%", label: "of construction leads start with an online search for local contractors" }, + { value: "8x", label: "ROI on site hoarding QR codes vs static contact details alone" }, + { value: "55%", label: "of project inquiries come from neighbors noticing active build sites" } + ], + benefits: [ + { title: "Site Hoarding That Converts", description: "A QR code on every hoarding drives neighbors and passersby to your project portfolio, estimate form, or contact page." }, + { title: "Fleet and Equipment Visibility", description: "Branded QR codes on plant and vehicles generate awareness and inquiries across every area you work in." }, + { title: "Proposal and Brochure Tracking", description: "Know which clients engaged with your PDF proposal by using a unique QR code per prospect." } + ], + useCases: [ + "Site hoarding and boarding QR codes linking to company portfolio", + "Vehicle and plant graphics with scannable quote request links", + "Project brochures with unique tracking QR codes per prospect", + "Safety signage linking to RAMS documents and accreditations", + "Subcontractor and supply chain recruitment via QR-coded adverts" + ], + tools: ["url-qr-code", "pdf-qr-code", "vcard-qr-code"], + faq: [ + { question: "What should a construction company's site hoarding QR code link to?", answer: "Your best project portfolio page or a simple inquiry form. Neighbors want to see your work quality before they call." }, + { question: "Can QR codes be used for health and safety documentation?", answer: "Yes. A QR code linking to RAMS, COSHH sheets, or site induction materials saves paper and keeps documents current without reprinting." }, + { question: "How do I track which sites generate the most inquiries?", answer: "Create a unique dynamic QR code per site hoarding. QR Master's scan analytics show date, device, and location for each code." } + ], + placementTips: [ + "Place prominently on site hoarding at pedestrian eye level with a clear CTA", + "Apply to the rear and sides of all company vehicles and plant equipment", + "Include in tender documents and proposals with a unique code per submission" + ] + }, + { + slug: "cleaning-services", + name: "Cleaning Services", + title: "QR Codes for Cleaning Services", + metaTitle: "QR Codes for Cleaning Services: Bookings from Flyers and Vehicle Signage", + metaDescription: "Help cleaning businesses turn door drops, vehicle graphics, and referral cards into instant online bookings with dynamic QR codes.", + headline: "QR Codes for Cleaning Services: Every Door Drop Should Book a Job", + subheadline: "Turn flyers, van graphics, and completion cards into a 24/7 booking engine with one scannable QR code.", + heroImage: "/marketing/industries/cleaning-services.png", + statistics: [ + { value: "65%", label: "of cleaning clients book based on neighbor recommendations" }, + { value: "3x", label: "Booking rate from door drops with QR codes vs phone-only flyers" }, + { value: "45%", label: "of recurring cleaning clients came from a single positive review" } + ], + benefits: [ + { title: "Instant Online Booking", description: "A scan on your flyer takes customers straight to your booking form — removing every barrier between interest and conversion." }, + { title: "Neighborhood Expansion", description: "Leave door-drop cards after completing a job. Neighbors who see your branded vehicle are already warm prospects." }, + { title: "Review Generation", description: "A QR code on completion cards linking to your Google review page turns satisfied customers into your best marketing." } + ], + useCases: [ + "Door-drop flyers with a 'Scan to book your first clean' QR code", + "Van graphics with a scannable booking or contact link", + "Completion cards left after each job with a review QR code", + "Referral cards for existing clients to share with neighbors", + "Building lobby flyers targeting apartment and office managers" + ], + tools: ["url-qr-code", "call-qr-code-generator", "email-qr-code"], + faq: [ + { question: "What should a cleaning company's QR code link to?", answer: "An online booking form or instant quote calculator. The fewer steps between scanning and booking, the higher your conversion rate." }, + { question: "Should I use different QR codes for different areas?", answer: "Yes. Create a unique code per neighborhood and track scan data to identify which areas respond best to your flyers." }, + { question: "How do QR codes help with recurring bookings?", answer: "A follow-up card left after each clean with a QR code to rebook or refer a friend increases both retention and word-of-mouth." } + ], + placementTips: [ + "Door-drop cards in residential streets where you regularly work", + "Van rear and side panels with a high-contrast booking prompt", + "Completion cards placed on kitchen counters or front doors after each job" + ] + }, + { + slug: "auto-repair", + name: "Auto Repair Shops", + title: "QR Codes for Auto Repair Shops", + metaTitle: "QR Codes for Auto Repair Shops: Book More Services Without Extra Staff", + metaDescription: "Help auto repair shops turn waiting room posters, invoices, and vehicle handouts into booking requests and 5-star reviews with dynamic QR codes.", + headline: "QR Codes for Auto Repair Shops: Turn Your Waiting Room Into a Booking Tool", + subheadline: "From service reminders to review requests, dynamic QR codes keep customers coming back and spread the word for you.", + heroImage: "/marketing/industries/auto-repair.png", + statistics: [ + { value: "70%", label: "of car owners use the same garage for 3+ years if satisfied" }, + { value: "88%", label: "of customers trust online reviews as much as personal recommendations" }, + { value: "40%", label: "of auto repair bookings now happen outside business hours" } + ], + benefits: [ + { title: "After-Hours Bookings", description: "A QR code on your invoice links to your online booking page so customers can schedule their next service at midnight if they want." }, + { title: "Review Collection", description: "A scan-to-review QR on every completed job paperwork turns happy customers into a steady flow of Google reviews." }, + { title: "Service Reminders Without Printing New Material", description: "Update your dynamic QR code destination to a seasonal promotion or MOT reminder without reprinting any in-garage signage." } + ], + useCases: [ + "Invoices and job cards with a QR code to book next service", + "Waiting room posters linking to service menu and pricing", + "Windscreen stickers with service due date and a rebooking link", + "Post-job review request cards with a Google review QR code", + "Flyers for local businesses with fleet vehicle servicing offers" + ], + tools: ["url-qr-code", "call-qr-code-generator", "email-qr-code"], + faq: [ + { question: "What is the best QR code placement for a garage?", answer: "Job completion paperwork and waiting room posters are the highest-engagement placements. Customers have time to scan while waiting." }, + { question: "Can I put a QR code on a windscreen service sticker?", answer: "Yes. A small dynamic QR code on a service reminder sticker linking to your booking page is one of the most effective retention tools." }, + { question: "How do QR codes help with fleet clients?", answer: "Give fleet managers a unique QR code linking to a dedicated booking portal or account manager contact so they can log service requests instantly." } + ], + placementTips: [ + "Print on every job card and invoice at the bottom with a rebooking prompt", + "Post A3 posters in the waiting area with service menu and booking QR", + "Apply QR-coded service reminder stickers to windscreens at job completion" + ] + }, + { + slug: "landscaping", + name: "Landscaping Companies", + title: "QR Codes for Landscaping Companies", + metaTitle: "QR Codes for Landscaping Companies: Leads from Signs and Vehicles", + metaDescription: "Help landscaping businesses turn yard signs, vehicle graphics, and flyers into instant quote requests with trackable dynamic QR codes.", + headline: "QR Codes for Landscaping Companies: Your Best Jobs Are in the Yards Next Door", + subheadline: "Every project site is a live portfolio. Make it work harder with a yard sign QR code that turns neighbors into the next booking.", + heroImage: "/marketing/industries/landscaping.png", + statistics: [ + { value: "67%", label: "of landscaping clients come from neighbor referrals or visible work" }, + { value: "5x", label: "More inquiries from job-site signs with QR codes vs phone only" }, + { value: "3x", label: "Higher retention rate when clients can rebook in under 60 seconds" } + ], + benefits: [ + { title: "Yard Signs That Generate Leads", description: "A QR code on job-site yard signs lets neighbors see your portfolio and request a quote instantly — no cold calling required." }, + { title: "Seasonal Campaign Swaps", description: "Update your QR destination from a spring planting offer to a winter clearance special without ordering new signs." }, + { title: "Before and After Portfolio", description: "Link QR codes to a visual before-and-after gallery for the exact type of garden you just transformed." } + ], + useCases: [ + "Yard signs at active job sites linking to portfolio and quote form", + "Vehicle and trailer graphics with a scannable estimate request", + "Post-job door hangers for neighboring properties", + "Flyers for seasonal services like lawn care, snow removal, or planting", + "Business cards with vCard and portfolio gallery link" + ], + tools: ["url-qr-code", "vcard-qr-code", "call-qr-code-generator"], + faq: [ + { question: "What should a landscaping yard sign QR code link to?", answer: "A project gallery showing work similar to the job in progress, plus a one-click quote request form. Visual proof converts best." }, + { question: "Can I use the same QR code on all my yard signs?", answer: "You can, but using unique codes per sign lets you measure which neighborhoods generate the most leads and focus your marketing accordingly." }, + { question: "How do seasonal promotions work with dynamic QR codes?", answer: "You update the link destination in QR Master's dashboard and all existing printed signs automatically point to the new page." } + ], + placementTips: [ + "Place yard signs at every active project site, visible from the street", + "Apply to trailer tailgates and vehicle sides on the passenger-facing side", + "Leave door hangers at the 5 properties on each side of every completed job" + ] + }, + { + slug: "tutors", + name: "Tutors", + title: "QR Codes for Tutors", + metaTitle: "QR Codes for Tutors: Fill Your Schedule from Flyers and School Boards", + metaDescription: "Help private tutors and tutoring centers convert notice board flyers, parent handouts, and social posts into bookings with dynamic QR codes.", + headline: "QR Codes for Tutors: Every Notice Board Flyer Should Be Booking Sessions", + subheadline: "Make it effortless for parents to check availability, read reviews, and book a trial session — from a single scan.", + heroImage: "/marketing/industries/tutors.png", + statistics: [ + { value: "78%", label: "of parents prefer to book services digitally rather than by phone" }, + { value: "4x", label: "Higher response rate from notice board flyers with QR booking links" }, + { value: "60%", label: "of tutoring referrals come from satisfied parents sharing contact details" } + ], + benefits: [ + { title: "Instant Booking from Flyers", description: "A QR code on every notice board flyer sends parents directly to your availability calendar — no phone tag needed." }, + { title: "Easy Referral Sharing", description: "A vCard QR code lets parents share your full contact details with one tap to another parent in the school car park." }, + { title: "Subject-Specific Campaigns", description: "Create one QR code per subject or year group and track which produces the most bookings across different schools." } + ], + useCases: [ + "School notice board flyers linking to booking calendar or inquiry form", + "Business cards with vCard QR for easy contact sharing between parents", + "PDF resource sheets for students with a follow-up QR code", + "End-of-term review requests sent via printed or digital card", + "Subject-specific flyers with unique tracking QR codes per campaign" + ], + tools: ["url-qr-code", "vcard-qr-code", "email-qr-code"], + faq: [ + { question: "What should a tutor's QR code link to?", answer: "A simple booking or inquiry form works best. Include your subjects, availability, and a brief bio so parents can qualify you before they reach out." }, + { question: "Can I track which schools send the most inquiries?", answer: "Yes. Use a unique dynamic QR code on flyers for each school and track scan data in QR Master's dashboard to see which locations perform best." }, + { question: "Should I add a QR code to printed worksheets?", answer: "Yes. A QR code at the bottom of student handouts linking to video explanations or supplementary resources adds value and keeps your brand visible to parents." } + ], + placementTips: [ + "Pin A5 flyers with booking QR code on notice boards at local schools and libraries", + "Print on business cards designed for parent-to-parent sharing", + "Add to printed worksheets and resource packs sent home with students" + ] + }, + { + slug: "dog-trainers", + name: "Dog Trainers", + title: "QR Codes for Dog Trainers", + metaTitle: "QR Codes for Dog Trainers: Fill Classes and Share Training Resources", + metaDescription: "Help dog trainers and training schools convert park flyers, vet referrals, and training handouts into bookings with dynamic QR codes.", + headline: "QR Codes for Dog Trainers: Reach New Clients Where Their Dogs Actually Are", + subheadline: "Parks, vet waiting rooms, and pet shop notice boards — put a scannable QR code in every place dog owners spend time.", + heroImage: "/marketing/industries/dog-trainers.png", + statistics: [ + { value: "72%", label: "of new dog owners seek professional training within the first 6 months" }, + { value: "85%", label: "of dog owner referrals happen in person, at parks or vet practices" }, + { value: "3x", label: "More class sign-ups from vet waiting room flyers with QR codes" } + ], + benefits: [ + { title: "Book Classes Instantly", description: "A QR code on your park flyer or business card takes new dog owners straight to your class schedule and booking form." }, + { title: "Share Training Resources", description: "Link QR codes on handouts to video guides, training tips, and homework assignments so clients practice between sessions." }, + { title: "Vet and Pet Shop Referrals", description: "Leave QR-coded referral cards with local vets and pet shops. A unique code per location tells you who sends the most clients." } + ], + useCases: [ + "Park and trail flyers linking to class schedule and booking", + "Vet waiting room cards with training package overview", + "Post-session handouts with QR links to training video resources", + "Business cards with vCard and booking link for park encounters", + "End-of-course review request QR codes on graduation certificates" + ], + tools: ["url-qr-code", "vcard-qr-code", "youtube-qr-code"], + faq: [ + { question: "Where should dog trainers distribute QR code flyers?", answer: "Dog parks, vet waiting rooms, pet shops, and grooming salons are your highest-intent locations. These are where motivated dog owners already spend time." }, + { question: "Can I share training videos via QR code?", answer: "Yes. Link a QR code on printed handouts to a YouTube playlist or private video library. Clients scan during the session or at home for reinforcement." }, + { question: "How do I track which referral partners send the most clients?", answer: "Give each vet or pet shop a unique dynamic QR code. QR Master tracks scans per code so you can thank and reward your best referral sources." } + ], + placementTips: [ + "Post A5 flyers at dog park notice boards and water stations", + "Leave referral cards with local veterinary practices and pet shops", + "Print on post-session handouts with links to homework video resources" + ] + }, + { + slug: "vacation-rentals", + name: "Vacation Rentals", + title: "QR Codes for Vacation Rentals", + metaTitle: "QR Codes for Vacation Rentals: Streamline Guest Check-In and House Guides", + metaDescription: "Help vacation rental owners deliver WiFi passwords, house manuals, local guides, and checkout instructions through a single scannable QR code.", + headline: "QR Codes for Vacation Rentals: Give Guests Everything They Need with One Scan", + subheadline: "Replace printed house manuals, WiFi cards, and welcome books with a dynamic QR code you can update between every stay.", + heroImage: "/marketing/industries/vacation-rentals.png", + statistics: [ + { value: "89%", label: "of guests check WiFi details within 10 minutes of arrival" }, + { value: "4x", label: "Fewer support messages when house rules are on a scannable guide" }, + { value: "35%", label: "of vacation rental reviews mention ease of check-in as a factor" } + ], + benefits: [ + { title: "Zero-Touch Check-In", description: "A welcome card with a QR code replaces printed manuals, sticky notes, and host messages — guests get everything in one scan." }, + { title: "Always Up to Date", description: "Dynamic QR codes mean you update the house guide or local restaurant list once, and it's live for every future guest without reprinting." }, + { title: "Review Collection", description: "A QR code left with the checkout card prompts guests to leave a review when their experience is freshest." } + ], + useCases: [ + "Welcome card with QR code linking to digital house guide", + "WiFi QR code printed on a framed card or fridge magnet", + "Local area guide with restaurant, activity, and emergency links", + "Checkout instructions checklist accessible via scan", + "Post-stay review request via QR on checkout reminder card" + ], + tools: ["wifi-qr-code", "url-qr-code", "pdf-qr-code"], + faq: [ + { question: "What should a vacation rental QR code link to?", answer: "A digital welcome guide covering WiFi, house rules, appliance instructions, local recommendations, and emergency contacts covers 90% of guest questions." }, + { question: "Can I use the same QR code for multiple properties?", answer: "Create a unique code per property so each links to the correct guide. With dynamic codes you can update the guide content without replacing the printed cards." }, + { question: "How do QR codes reduce guest messages?", answer: "Most guest messages ask the same questions — WiFi, checkout time, bin collection. A scannable guide that answers all of these cuts support messages significantly." } + ], + placementTips: [ + "Frame a WiFi QR code card and place on the kitchen counter or entry table", + "Add a house guide QR code to the welcome card included with keys", + "Leave a checkout reminder card with a review QR code on the dining table" + ] + }, + { + slug: "massage-therapists", + name: "Massage Therapists", + title: "QR Codes for Massage Therapists", + metaTitle: "QR Codes for Massage Therapists: Rebook Clients Before They Leave", + metaDescription: "Help massage therapists and clinics use dynamic QR codes for rebooking, aftercare guides, review collection, and gift voucher promotions.", + headline: "QR Codes for Massage Therapists: The Easiest Rebook Starts Right After the Session", + subheadline: "A QR code on your aftercare card turns a relaxed, satisfied client into a confirmed repeat booking before they leave the room.", + heroImage: "/marketing/industries/massage-therapists.png", + statistics: [ + { value: "65%", label: "of clients who rebook do so within 48 hours of their last session" }, + { value: "4x", label: "Higher rebook rate when clients leave with a QR-coded aftercare card" }, + { value: "80%", label: "of massage clients come from word-of-mouth and reviews" } + ], + benefits: [ + { title: "Instant Rebooking", description: "A QR code on your aftercare card linked to your online booking calendar turns every completed session into the next one." }, + { title: "Aftercare and Treatment Information", description: "Share post-treatment advice, hydration tips, and what to expect — all linked from a single scannable code on a printed card." }, + { title: "Gift Voucher Promotion", description: "A QR code on a branded card or display stand links to your gift voucher page — perfect for holiday and birthday gift traffic." } + ], + useCases: [ + "Aftercare cards with rebooking QR code and treatment notes", + "Reception desk signage linking to online booking and treatment menu", + "Gift voucher cards with QR code for purchase or redemption", + "Review request QR on checkout receipts and follow-up texts", + "Referral cards for clients to share with friends and family" + ], + tools: ["url-qr-code", "vcard-qr-code", "email-qr-code"], + faq: [ + { question: "What is the best way to use QR codes as a massage therapist?", answer: "An aftercare card with a rebooking QR code is the single highest-converting use case. Clients are relaxed and receptive right after a session." }, + { question: "Should I link to my booking platform or my own website?", answer: "Link directly to your booking calendar — Calendly, Fresha, or your own system. Fewer clicks between the QR code and a confirmed appointment means more bookings." }, + { question: "How can QR codes help with gift voucher sales?", answer: "A framed QR code display at reception linking to your gift voucher purchase page generates passive sales, especially around Christmas, Valentine's Day, and Mother's Day." } + ], + placementTips: [ + "Include aftercare card with rebook QR in every treatment room", + "Place a framed QR code stand at reception for gift voucher purchases", + "Print on loyalty cards alongside a 'Refer a friend' QR for tracking referrals" + ] + }, + { + slug: "escape-rooms", + name: "Escape Rooms", + title: "QR Codes for Escape Rooms", + metaTitle: "QR Codes for Escape Rooms: More Bookings and Better Reviews", + metaDescription: "Help escape room businesses use QR codes for instant booking, post-game review requests, group offers, and in-game hint systems.", + headline: "QR Codes for Escape Rooms: From Booking to the Last Clue", + subheadline: "Use QR codes at every touchpoint — from street-level marketing to post-game review collection — to fill more sessions and grow your reputation.", + heroImage: "/marketing/industries/escape-rooms.png", + statistics: [ + { value: "74%", label: "of escape room bookings are made online or via mobile" }, + { value: "3x", label: "More reviews collected with a post-game QR card vs verbal requests" }, + { value: "65%", label: "of escape room customers come in groups of 3 or more" } + ], + benefits: [ + { title: "Instant Group Bookings", description: "A QR code on outdoor signage or flyers links directly to your booking calendar — groups can split the cost and book on the spot." }, + { title: "Post-Game Review Rush", description: "Hand every team a QR-coded feedback card as they exit. The adrenaline is still running — reviews written immediately are more enthusiastic." }, + { title: "In-Game Hint Systems", description: "Use QR codes within game rooms to link to optional hint videos, audio clues, or additional story context." } + ], + useCases: [ + "Outdoor and window signage linking to booking calendar", + "Post-game review request cards handed to every team", + "Group discount flyers distributed in nearby hospitality venues", + "In-game QR codes for optional hints or story additions", + "Gift voucher QR codes sold at reception or online" + ], + tools: ["url-qr-code", "youtube-qr-code", "event-qr-code"], + faq: [ + { question: "Where should escape rooms use QR codes for maximum bookings?", answer: "Outdoor street-level signage and nearby hospitality venue flyers capture walk-by and post-dinner impulse bookings, which are common for escape rooms." }, + { question: "Can QR codes be used inside the escape room itself?", answer: "Yes. QR codes linked to video hints, audio clues, or optional story elements add a digital layer to physical puzzles without breaking immersion." }, + { question: "How do I get more Google reviews from escape room customers?", answer: "A branded QR review card handed to every team right after their game, while the experience is fresh, consistently outperforms follow-up emails for review conversion." } + ], + placementTips: [ + "Place booking QR codes on A-frame signs outside the venue entrance", + "Hand every exiting team a review card with a QR code before they leave", + "Distribute group booking flyers in nearby restaurants and bowling alleys" + ] + }, + { + slug: "pilates-studios", + name: "Pilates Studios", + title: "QR Codes for Pilates Studios", + metaTitle: "QR Codes for Pilates Studios: Fill Classes and Retain Members", + metaDescription: "Help pilates studios use dynamic QR codes for class bookings, membership sign-ups, tutorial videos, and referral programs.", + headline: "QR Codes for Pilates Studios: Every Class Should Be Full and Every Member Should Feel Seen", + subheadline: "From first-time visitor flyers to member referral cards, dynamic QR codes make growing your studio effortless.", + heroImage: "/marketing/industries/pilates-studios.png", + statistics: [ + { value: "68%", label: "of pilates clients discover studios through friend referrals" }, + { value: "4x", label: "Higher class attendance when booking reminders include a QR rescheduling link" }, + { value: "55%", label: "of new members join within 2 weeks of a free trial class" } + ], + benefits: [ + { title: "Free Trial Conversions", description: "A QR code on your street-level poster links directly to a free trial class booking — reducing friction for first-time visitors." }, + { title: "Member Referral Tracking", description: "Give each member a unique QR referral card. Track which members bring in the most new clients and reward them accordingly." }, + { title: "Video Tutorial Library", description: "Link QR codes on printed training cards to a private video library of exercises and corrections for home practice." } + ], + useCases: [ + "Exterior signage and flyers with free trial class booking link", + "Member referral cards with unique per-member tracking codes", + "Training cards linking to video exercise demonstrations", + "Class timetable posters with a booking QR code", + "Post-class review request cards for Google and social platforms" + ], + tools: ["url-qr-code", "youtube-qr-code", "email-qr-code"], + faq: [ + { question: "What should a pilates studio's QR code link to?", answer: "A free trial class booking page is the highest-converting destination for new visitors. For existing members, link to the class schedule and rebook flow." }, + { question: "How can I use QR codes to reduce class no-shows?", answer: "Add a QR code to booking confirmation printouts linking to a rescheduling page. Making it easy to change reduces last-minute drops rather than simply losing the booking." }, + { question: "Are QR codes useful for in-studio printed materials?", answer: "Yes. Training cards with QR codes linking to form correction videos, breathing tutorials, and at-home practice guides extend the studio experience beyond class time." } + ], + placementTips: [ + "Post free trial QR flyers on studio windows and nearby community boards", + "Place booking QR codes on class timetable printouts at reception", + "Hand members referral cards with their name on them to personalise the ask" + ] + }, + { + slug: "wedding-venues", + name: "Wedding Venues", + title: "QR Codes for Wedding Venues", + metaTitle: "QR Codes for Wedding Venues: Show Off Your Venue and Book More Tours", + metaDescription: "Help wedding venues use dynamic QR codes on brochures, open day signage, and printed packs to drive virtual tours, inquiry forms, and availability checks.", + headline: "QR Codes for Wedding Venues: Every Brochure Should Book a Tour", + subheadline: "Turn printed venue brochures, open day displays, and wedding fair materials into interactive digital experiences with a single scan.", + heroImage: "/marketing/industries/wedding-venues.png", + statistics: [ + { value: "87%", label: "of couples research venues online before visiting in person" }, + { value: "3x", label: "More inquiry form completions from brochures with QR codes" }, + { value: "70%", label: "of venue bookings are made within 2 weeks of the first site visit" } + ], + benefits: [ + { title: "Virtual Tour on the Spot", description: "A QR code in your brochure links to a video walkthrough so couples can revisit the feeling of your venue at home." }, + { title: "Wedding Fair Lead Capture", description: "A branded QR code on your fair display captures couple details and books consultations without needing manual sign-up sheets." }, + { title: "Availability and Pricing on Demand", description: "Dynamic QR codes update to current availability calendars and pricing packages without reprinting any printed materials." } + ], + useCases: [ + "Printed brochures with QR links to virtual tours and photo galleries", + "Wedding fair display signage with inquiry form QR code", + "Site visit follow-up packs with a 'Check your date' availability link", + "Supplier partnership cards with a referral tracking QR code", + "Guest WiFi QR codes for couples to share on the day itself" + ], + tools: ["url-qr-code", "wifi-qr-code", "youtube-qr-code"], + faq: [ + { question: "What should a wedding venue's QR code link to?", answer: "A virtual tour or photo gallery linked from your brochure is most compelling. Pair it with a date availability checker for the highest inquiry conversion." }, + { question: "How do QR codes help at wedding fairs?", answer: "Replace paper sign-up sheets with a QR code linking to a simple consultation booking form. Couples submit details on their own phone — faster, cleaner, and better data." }, + { question: "Can I give couples a WiFi QR code for their wedding day?", answer: "Yes. A framed WiFi QR code is a popular detail that guests appreciate, and it keeps your venue branding visible in guest photos from the day." } + ], + placementTips: [ + "Print a QR code on the inside front cover of every printed venue brochure", + "Display a large format QR poster at wedding fair stands with a 'Book your tour' prompt", + "Include a QR availability link in every site visit follow-up pack sent to couples" + ] + }, + { + slug: "architects", + name: "Architects", + title: "QR Codes for Architects", + metaTitle: "QR Codes for Architects: Turn Site Hoardings and Proposals Into Portfolio Visits", + metaDescription: "Help architecture firms use dynamic QR codes on site hoardings, pitch documents, and business cards to showcase portfolios and capture project inquiries.", + headline: "QR Codes for Architects: Your Best Work Should Be One Scan Away", + subheadline: "Turn site hoardings, award entries, and proposal documents into living portfolio links with QR codes that update as your projects evolve.", + heroImage: "/marketing/industries/architects.png", + statistics: [ + { value: "82%", label: "of clients select an architect based on visible portfolio quality" }, + { value: "6x", label: "More portfolio views from QR-coded site hoardings vs URL text alone" }, + { value: "55%", label: "of architecture inquiries start with seeing an active project in a neighborhood" } + ], + benefits: [ + { title: "Site Hoardings as Portfolio Windows", description: "A QR code on every project hoarding lets passersby view your full portfolio of similar work and submit an inquiry on the spot." }, + { title: "Living Proposal Documents", description: "Link QR codes in pitch documents to CGI walkthroughs, specification sheets, and project timeline videos that update without reprinting." }, + { title: "Award and Press Coverage", description: "QR codes in printed press materials link journalists and judges directly to project photography, case studies, and contact details." } + ], + useCases: [ + "Site hoarding QR codes linking to portfolio and contact form", + "Proposal and tender documents with QR links to CGI and specification assets", + "Business cards with vCard and portfolio gallery link", + "Award submission materials with QR codes to project photography", + "Planning application notices with public consultation QR codes" + ], + tools: ["url-qr-code", "vcard-qr-code", "pdf-qr-code"], + faq: [ + { question: "What should an architect's site hoarding QR code link to?", answer: "A project page showing similar completed work in the same sector — residential, commercial, or heritage — converts browsers into inquirers most effectively." }, + { question: "Can I use QR codes in architectural proposal documents?", answer: "Yes. A QR code linking to a 3D walkthrough or specification video in a printed proposal significantly increases perceived quality and engagement." }, + { question: "How do QR codes help with public planning consultations?", answer: "A QR code on planning notices allows local residents to access consultation documents, submit feedback, and attend virtual Q&A sessions without searching online." } + ], + placementTips: [ + "Apply QR to all site hoardings at pedestrian eye level with a project preview prompt", + "Include QR codes inside proposal covers linking to CGI animations or project films", + "Print on award submission folders and press kits with a portfolio link" + ] + }, + { + slug: "hair-salons", + name: "Hair Salons", + title: "QR Codes for Hair Salons", + metaTitle: "QR Codes for Hair Salons: Rebook Clients and Collect More Reviews", + metaDescription: "Help hair salons use dynamic QR codes for rebooking, style lookbooks, WiFi access, and review collection to retain clients and attract new ones.", + headline: "QR Codes for Hair Salons: Every Client Should Leave With a Next Appointment", + subheadline: "From WiFi access to rebooking links, dynamic QR codes keep clients connected to your salon between visits.", + heroImage: "/marketing/industries/hair-salons.png", + statistics: [ + { value: "70%", label: "of salon clients who rebook do so within 6 weeks of their last visit" }, + { value: "88%", label: "of new salon clients check reviews before booking for the first time" }, + { value: "3x", label: "More repeat bookings when clients leave with a rebook QR card" } + ], + benefits: [ + { title: "Frictionless Rebooking", description: "A QR code on your appointment card links clients straight to your booking calendar before they've even left the chair." }, + { title: "Style Lookbook Access", description: "Display a QR code at stations linking to your Instagram or a curated gallery so clients can browse styles during their appointment." }, + { title: "WiFi Without Passwords", description: "A framed WiFi QR code at reception removes the awkward password conversation and improves the client experience instantly." } + ], + useCases: [ + "Appointment reminder cards with a rebook QR code", + "Reception desk WiFi QR code display", + "Mirror or station QR codes linking to style lookbook or Instagram", + "Post-visit review request QR on receipts or follow-up cards", + "Referral cards with a 'Give a friend 10% off' QR link" + ], + tools: ["wifi-qr-code", "url-qr-code", "instagram-qr-code"], + faq: [ + { question: "What QR codes work best for hair salons?", answer: "WiFi QR codes at reception and rebooking links on appointment cards are the two most impactful placements. Both improve the client experience directly." }, + { question: "Should I link my QR code to Instagram or my booking platform?", answer: "Use your QR code for your booking platform when the goal is rebooking. Reserve Instagram QR codes for style inspiration at the styling station." }, + { question: "How do QR codes help with salon referrals?", answer: "A referral card with a QR code linking to a discount for a friend makes it easy for satisfied clients to share your salon without needing to remember your details." } + ], + placementTips: [ + "Frame a WiFi QR code card on the reception desk or entry table", + "Print rebook QR codes on the back of every appointment card", + "Place style lookbook QR codes at each styling station mirror" + ] + }, + { + slug: "hostels", + name: "Hostels", + title: "QR Codes for Hostels", + metaTitle: "QR Codes for Hostels: Simplify Check-In and Delight Budget Travelers", + metaDescription: "Help hostels use QR codes for WiFi access, local area guides, check-in instructions, tour bookings, and review collection.", + headline: "QR Codes for Hostels: Give Every Guest Everything They Need the Moment They Arrive", + subheadline: "WiFi, local tips, tour bookings, and house rules — all in one scan. No printed guides. No repeated questions at reception.", + heroImage: "/marketing/industries/hostels.png", + statistics: [ + { value: "92%", label: "of hostel guests check WiFi details within minutes of arrival" }, + { value: "3x", label: "Fewer front desk interruptions when digital guest guides are QR-accessible" }, + { value: "78%", label: "of backpacker travelers discover activities through hostel recommendations" } + ], + benefits: [ + { title: "Self-Service Check-In", description: "A QR code at the entrance links guests to check-in instructions, room assignments, and house rules without queue time at reception." }, + { title: "Local Area Partner Revenue", description: "Link a local guide QR code to partner tour operators, restaurants, and activities — each click is a potential affiliate or commission booking." }, + { title: "Review Collection at Checkout", description: "A QR card left on every bed or in the common room prompts departing guests to leave a review before they even leave the building." } + ], + useCases: [ + "Dorm room WiFi QR code framed on the wall", + "Reception desk local area guide QR linking to activities and restaurants", + "Check-in instruction QR on entry door for self-check-in properties", + "Common room tour booking QR codes with partner operators", + "Checkout review request QR on thank-you card or whiteboard" + ], + tools: ["wifi-qr-code", "url-qr-code", "pdf-qr-code"], + faq: [ + { question: "What is the most valuable QR code placement in a hostel?", answer: "A WiFi QR code in every dorm room eliminates the most common guest question and removes the need to share passwords repeatedly." }, + { question: "Can I use QR codes to promote partner tours and activities?", answer: "Yes. A local guide QR code linking to vetted partner experiences turns guest interest into bookings — and can generate affiliate income for your hostel." }, + { question: "How do QR codes help with self-check-in hostels?", answer: "A QR code at the entrance linking to a step-by-step check-in guide, lockbox instructions, and room details allows fully unattended arrival with no staff required." } + ], + placementTips: [ + "Frame WiFi QR codes next to each set of bunk beds in dorm rooms", + "Post local guide QR codes in the common room, kitchen, and corridor noticeboards", + "Leave checkout review QR cards on beds during daily room refresh" + ] + }, + { + slug: "crossfit", + name: "CrossFit Gyms", + title: "QR Codes for CrossFit Gyms", + metaTitle: "QR Codes for CrossFit Gyms: Fill Classes and Build Community", + metaDescription: "Help CrossFit gyms and boxes use QR codes for free trial bookings, WOD tracking, member referrals, and competition sign-ups.", + headline: "QR Codes for CrossFit Gyms: Every Workout Should Build the Community, Not Just the Athletes", + subheadline: "Free trial sign-ups, WOD results, member referrals, and competition registrations — all accessible from a single scan on your box wall.", + heroImage: "/marketing/industries/crossfit.png", + statistics: [ + { value: "75%", label: "of CrossFit members joined after a free trial or friend referral" }, + { value: "4x", label: "Higher free trial conversion from flyers with QR booking links" }, + { value: "85%", label: "of CrossFit members follow their box on social media" } + ], + benefits: [ + { title: "Free Trial on the Spot", description: "A QR code on your exterior sign or flyer books a free trial class in under a minute — perfect for people walking past the box." }, + { title: "Member Referral Tracking", description: "Give each member a unique referral QR code. When friends scan and sign up, you know exactly who to reward." }, + { title: "WOD and Programming Access", description: "Link a wall-mounted QR code to daily programming, tracking sheets, or a private member app for easy in-box access." } + ], + useCases: [ + "Exterior sign QR code for free trial class booking", + "Member referral cards with unique per-member QR codes", + "Box whiteboard or wall QR linking to daily WOD and programming", + "Competition sign-up QR codes posted in the gym", + "Merchandise and apparel order QR code for member purchasing" + ], + tools: ["url-qr-code", "instagram-qr-code", "youtube-qr-code"], + faq: [ + { question: "What should a CrossFit box's QR code link to?", answer: "A free trial class booking page converts best for new member acquisition. For existing members, link to daily programming or the member portal." }, + { question: "How do I track which members refer the most new clients?", answer: "Create a unique dynamic QR code for each member referral card. QR Master's analytics show scans and conversions per code." }, + { question: "Can QR codes be used inside the CrossFit box?", answer: "Yes. Wall-mounted QR codes linking to daily WOD videos, lift technique tutorials, or scaling options are popular in well-run boxes." } + ], + placementTips: [ + "Apply QR free trial code to exterior window or A-frame sign facing foot traffic", + "Print member referral QR cards to hand out at milestone workouts and events", + "Mount a durable QR code near the whiteboard linking to programming and tracking" + ] + }, + { + slug: "sports-bars", + name: "Sports Bars", + title: "QR Codes for Sports Bars", + metaTitle: "QR Codes for Sports Bars: Digital Menus, Events, and Table Ordering", + metaDescription: "Help sports bars use QR codes for digital drinks menus, event schedules, table ordering, loyalty programs, and review collection.", + headline: "QR Codes for Sports Bars: Keep the Game on the Screen and the Orders Moving", + subheadline: "Digital menus, event schedules, and group booking links — scannable from every table so your staff can focus on service.", + heroImage: "/marketing/industries/sports-bars.png", + statistics: [ + { value: "42%", label: "Increase in drinks orders when digital menus include promotional items" }, + { value: "3x", label: "More event pre-bookings when game schedules are QR-accessible" }, + { value: "68%", label: "of sports bar regulars book big game seats in advance" } + ], + benefits: [ + { title: "Dynamic Drinks Menu", description: "Update daily specials, cocktail promotions, and game-day offers instantly without reprinting laminated menus on every table." }, + { title: "Event and Game Schedule", description: "A QR code linking to your upcoming fixtures list and table reservation form converts curious visitors into confirmed bookings." }, + { title: "Group Booking Engine", description: "Large groups scan once and access your group booking form, function room details, and set menu options without waiting for staff." } + ], + useCases: [ + "Table QR codes linking to digital drinks and food menu", + "Bar top and entrance signage with upcoming fixtures and booking link", + "Group booking QR codes on function room brochures", + "Loyalty program QR codes for scan-to-earn drink stamps", + "Post-event review request QR on receipts and closing announcements" + ], + tools: ["url-qr-code", "wifi-qr-code", "facebook-qr-code"], + faq: [ + { question: "What QR code placement drives the most revenue in a sports bar?", answer: "Table QR menus with promoted specials consistently increase average order values. Add a fixtures calendar QR at the entrance to drive advance bookings." }, + { question: "Can I update my drinks specials on the QR menu without reprinting?", answer: "Yes. A dynamic QR code lets you change the destination URL — point it to an updated specials page before every match day with no new print materials." }, + { question: "How do QR codes help with group bookings?", answer: "A dedicated group booking QR on your function brochures eliminates phone calls. Groups scan, see availability and packages, and submit a booking request instantly." } + ], + placementTips: [ + "Place QR table tents at every table and bar stool station", + "Post a large fixtures and booking QR poster near the entrance and main screen", + "Include group booking QR on every paper napkin or function inquiry card" + ] + }, + { + slug: "laundromats", + name: "Laundromats", + title: "QR Codes for Laundromats", + metaTitle: "QR Codes for Laundromats: Machine Instructions, WiFi, and Loyalty Programs", + metaDescription: "Help laundromats use QR codes for machine instructions, WiFi access, loyalty programs, maintenance reporting, and customer reviews.", + headline: "QR Codes for Laundromats: Make Waiting Time Work for Your Business", + subheadline: "Customers spend 45–90 minutes in your laundromat. QR codes on every machine and wall turn that dwell time into reviews, loyalty sign-ups, and referrals.", + heroImage: "/marketing/industries/laundromats.png", + statistics: [ + { value: "45 min", label: "Average customer dwell time — highest of any retail category" }, + { value: "3x", label: "More loyalty sign-ups from in-venue QR codes vs external campaigns" }, + { value: "60%", label: "of laundromat customers return weekly or more" } + ], + benefits: [ + { title: "Machine Instructions That Never Go Missing", description: "A QR code on every machine links to the correct video or PDF guide so customers help themselves and staff handle fewer interruptions." }, + { title: "Loyalty Program Enrollment", description: "Long dwell times make laundromats one of the highest-converting venues for QR-based loyalty sign-ups — customers have nothing but time." }, + { title: "Fault Reporting Without Staff", description: "A QR code linking to a simple fault report form on out-of-order or underperforming machines keeps maintenance up to date without relying on verbal reports." } + ], + useCases: [ + "Machine instruction QR codes linking to video guides per model", + "WiFi QR code displayed at the entrance and seating area", + "Loyalty program enrollment QR codes on posters and table cards", + "Fault reporting QR on every machine for maintenance tracking", + "Review request QR displayed near exit and on receipts" + ], + tools: ["wifi-qr-code", "url-qr-code", "youtube-qr-code"], + faq: [ + { question: "What is the best QR code use case for a laundromat?", answer: "Machine instruction QR codes reduce staff interruptions most. WiFi QR codes and loyalty program sign-ups are the next most valuable for customer experience and retention." }, + { question: "Can QR codes help with machine maintenance?", answer: "Yes. A fault reporting QR on every machine creates a digital paper trail for maintenance issues — faster to act on than verbal reports and useful for warranty claims." }, + { question: "How do I grow my laundromat loyalty program with QR codes?", answer: "Place QR enrollment codes at eye level on every machine and at the entrance. Customers waiting for a cycle are captive — conversion rates in laundromats are unusually high." } + ], + placementTips: [ + "Apply QR instruction stickers to the front panel of every washer and dryer", + "Frame a WiFi QR code at the entrance and seating area", + "Post loyalty sign-up QR codes at the detergent vending machine and folding tables" + ] + }, + { + slug: "aquariums", + name: "Aquariums", + title: "QR Codes for Aquariums", + metaTitle: "QR Codes for Aquariums: Interactive Exhibits and Visitor Engagement", + metaDescription: "Help aquariums use QR codes to deliver species information, audio guides, feeding schedules, ticketing, and membership sign-ups to visitors.", + headline: "QR Codes for Aquariums: Every Tank Should Tell a Story", + subheadline: "Species info, feeding times, audio guides, and conservation content — all accessible from a single scan next to every exhibit.", + heroImage: "/marketing/industries/aquariums.png", + statistics: [ + { value: "78%", label: "of aquarium visitors want more information about the species they see" }, + { value: "4x", label: "Longer exhibit engagement when interactive QR content is available" }, + { value: "35%", label: "of aquarium memberships are purchased after a positive first visit" } + ], + benefits: [ + { title: "Interactive Species Information", description: "Replace static plaques with QR codes linking to rich species profiles, video content, and conservation stories accessible on any smartphone." }, + { title: "Audio Guide Access", description: "A QR code near each exhibit entrance delivers a narrated audio guide without equipment rental desks or app downloads." }, + { title: "Membership Conversion on Site", description: "A QR code at the exit links directly to membership purchase — converting engaged visitors at the moment of peak enthusiasm." } + ], + useCases: [ + "Exhibit QR codes linking to species profiles and video content", + "Audio guide QR codes at each zone entrance", + "Feeding schedule QR codes at high-interest tanks", + "Membership purchase QR code at exit and gift shop", + "Conservation program donation QR codes on campaign signage" + ], + tools: ["url-qr-code", "youtube-qr-code", "pdf-qr-code"], + faq: [ + { question: "How do QR codes improve the aquarium visitor experience?", answer: "QR codes next to tanks deliver species details, conservation context, and feeding times on demand — far richer than static plaques and appreciated by curious visitors of all ages." }, + { question: "Can QR codes replace printed audio guide equipment?", answer: "Yes. A QR code linking to a web-based audio guide eliminates rental desk queues and equipment hygiene concerns while reducing operational costs." }, + { question: "How do I use QR codes to sell more memberships?", answer: "Place a membership QR code prominently at the exit and in the gift shop. Visitors who've just had a great experience are at peak conversion motivation." } + ], + placementTips: [ + "Mount QR codes at eye level next to every major tank and exhibit", + "Place audio guide QR codes at the entrance to each themed zone", + "Display membership QR codes prominently at the exit and gift shop checkout" + ] + }, + { + slug: "gift-shops", + name: "Gift Shops", + title: "QR Codes for Gift Shops", + metaTitle: "QR Codes for Gift Shops: Product Stories, Reviews, and Reorder Links", + metaDescription: "Help gift shops use QR codes on product tags, packaging, and displays to share product stories, collect reviews, and enable easy reordering.", + headline: "QR Codes for Gift Shops: Every Product Tag Should Be a Story", + subheadline: "Turn packaging and price tags into interactive experiences with QR codes that share provenance, inspire gifting ideas, and make reordering effortless.", + heroImage: "/marketing/industries/gift-shops.png", + statistics: [ + { value: "64%", label: "of gift buyers research product provenance before purchasing" }, + { value: "3x", label: "Higher review rates from QR-coded thank-you inserts vs email follow-ups" }, + { value: "45%", label: "of gift shop repeat purchases are driven by online reorder convenience" } + ], + benefits: [ + { title: "Product Story Tags", description: "A QR code on product tags links to the maker's story, ingredients, or craftsmanship details — the context that turns browsers into buyers." }, + { title: "Easy Reordering", description: "A QR code on packaging inserts links directly to the product page so gift recipients can reorder without searching." }, + { title: "Seasonal Collection Updates", description: "Dynamic QR codes on seasonal displays update to new collection pages without printing new signs for every rotation." } + ], + useCases: [ + "Product hang tags with QR codes linking to maker stories and provenance", + "Packaging inserts with reorder and 'discover more' QR codes", + "In-store display QR codes linking to full collection pages", + "Gift receipt inserts with an exchange or reorder QR link", + "Social follow QR codes at point of sale for Instagram and newsletter" + ], + tools: ["url-qr-code", "instagram-qr-code", "facebook-qr-code"], + faq: [ + { question: "What should a gift shop product tag QR code link to?", answer: "A product detail page with the story behind the item — maker, materials, care instructions, and related products. Context sells gifts more than price." }, + { question: "How do QR codes help with post-purchase retention?", answer: "An insert in every bag with a QR code linking to your newsletter sign-up, Instagram, or reorder page converts one-time buyers into repeat customers." }, + { question: "Can I use QR codes for seasonal promotions without reprinting signs?", answer: "Yes. Dynamic QR codes on in-store displays update to new collection pages or seasonal offers without new print materials — swap the content, not the sign." } + ], + placementTips: [ + "Print QR codes on product hang tags alongside the product name and price", + "Include a QR insert in every shopping bag or gift box", + "Place a social follow QR code at the register for post-purchase engagement" + ] + }, + { + slug: "bike-shops", + name: "Bike Shops", + title: "QR Codes for Bike Shops", + metaTitle: "QR Codes for Bike Shops: Service Bookings, Trail Maps, and Product Info", + metaDescription: "Help bike shops use QR codes for service bookings, trail guide downloads, product manuals, and post-repair review collection.", + headline: "QR Codes for Bike Shops: From the Workshop to the Trail", + subheadline: "Service booking links, trail maps, and product guides — give cyclists the information they need exactly where they need it.", + heroImage: "/marketing/industries/bike-shops.png", + statistics: [ + { value: "72%", label: "of cyclists research service options online before calling a shop" }, + { value: "3x", label: "Higher review rates from post-repair QR cards vs no follow-up" }, + { value: "65%", label: "of bike shop revenue comes from repeat service customers" } + ], + benefits: [ + { title: "Service Booking On Demand", description: "A QR code on your window or workshop board links directly to your online service booking form — no calls, no waiting." }, + { title: "Trail and Route Guides", description: "QR codes on local trail maps or in-store displays link to GPX files, elevation guides, and local club rides — adding value beyond the purchase." }, + { title: "Product Manual Access", description: "Replace lost paper manuals with QR codes on bike frames and component packaging linking to PDF guides and setup videos." } + ], + useCases: [ + "Window and workshop signage with a service booking QR code", + "Trail map displays linking to GPX downloads and route details", + "Post-service review request QR codes on repair invoices", + "Product hang tags linking to manuals, setup guides, and warranty registration", + "Local cycling event and club ride promotion via QR posters" + ], + tools: ["url-qr-code", "pdf-qr-code", "youtube-qr-code"], + faq: [ + { question: "What should a bike shop QR code link to?", answer: "A service booking form is the highest-converting destination. Trail guides and route maps are valuable for community building and in-store dwell time." }, + { question: "Can I add QR codes to bikes I've serviced?", answer: "Yes. A small QR sticker with the service date and a rebooking link on the frame or seatpost is a subtle but effective retention tool." }, + { question: "How do QR codes help sell accessories and components?", answer: "A QR code on component displays linking to compatibility guides, installation videos, and compatible model lists helps customers self-qualify purchases without staff intervention." } + ], + placementTips: [ + "Post a service booking QR code on the shop window and workshop entrance", + "Apply small QR rebooking stickers to frames after every completed service", + "Display trail guide QR codes next to local maps and ride planning resources" + ] + }, + { + slug: "ice-cream-shops", + name: "Ice Cream Shops", + title: "QR Codes for Ice Cream Shops", + metaTitle: "QR Codes for Ice Cream Shops: Daily Flavors, Loyalty, and Social Follows", + metaDescription: "Help ice cream shops use QR codes for daily flavor menus, loyalty program sign-ups, social media follows, and seasonal promotion campaigns.", + headline: "QR Codes for Ice Cream Shops: Let Customers Scan Today's Flavors Before They Queue", + subheadline: "Daily flavor menus, loyalty stamps, and social follows — all from a single scannable QR code on your window or counter.", + heroImage: "/marketing/industries/ice-cream-shops.png", + statistics: [ + { value: "58%", label: "of ice cream customers decide their order before joining the queue" }, + { value: "4x", label: "More social follows from in-store QR codes vs word-of-mouth alone" }, + { value: "45%", label: "of specialty ice cream customers are loyal to one shop" } + ], + benefits: [ + { title: "Daily Flavor Board Without a Chalkboard", description: "A dynamic QR code on your window links to today's flavor lineup — update it from your phone each morning before opening." }, + { title: "Loyalty Without the Card", description: "A QR code linking to a digital loyalty program eliminates lost stamp cards and lets customers track their progress on their phone." }, + { title: "Social Growth on Every Visit", description: "A framed Instagram QR code at the counter turns every photo-worthy visit into a new follower." } + ], + useCases: [ + "Window QR code linking to today's flavor menu", + "Counter Instagram QR code for social follows and user-generated content", + "Digital loyalty program sign-up QR on receipts and in-store signage", + "Seasonal special QR codes linking to limited edition flavor announcements", + "Review request QR on cups, bags, or receipts" + ], + tools: ["url-qr-code", "instagram-qr-code", "facebook-qr-code"], + faq: [ + { question: "What is the best QR code use for an ice cream shop?", answer: "A daily flavor menu QR on your window is the most immediately practical — it reduces queue confusion and lets customers plan before they arrive." }, + { question: "Can a QR code help grow my ice cream shop's Instagram?", answer: "Yes. An Instagram QR code at the counter next to a sign like 'Tag us and get a free scoop' drives follows and user-generated content simultaneously." }, + { question: "How do digital loyalty QR codes work for ice cream shops?", answer: "Link the QR code to your loyalty app or a simple stamp card system. Customers scan on each visit to earn rewards — no physical card to lose." } + ], + placementTips: [ + "Post a daily flavor QR code on the shop window at eye level before opening", + "Frame an Instagram QR code at the point of sale or selfie wall", + "Print loyalty QR codes on the bottom of every receipt" + ] + }, + { + slug: "delis", + name: "Delis", + title: "QR Codes for Delis", + metaTitle: "QR Codes for Delis: Daily Specials, Online Ordering, and Catering Inquiries", + metaDescription: "Help delis and specialty food shops use QR codes for daily specials menus, pre-order links, catering inquiries, and loyalty programs.", + headline: "QR Codes for Delis: Tell Customers What's Fresh Today Before They Walk In", + subheadline: "Daily specials, pre-order links, and catering menus — all accessible from a single QR code on your window or counter.", + heroImage: "/marketing/industries/delis.png", + statistics: [ + { value: "62%", label: "of deli customers decide on a special before arriving at the counter" }, + { value: "3x", label: "Higher catering inquiry rate from window QR menus vs phone-only displays" }, + { value: "55%", label: "of deli regulars visit weekly and prefer to pre-order" } + ], + benefits: [ + { title: "Daily Specials Without a Sandwich Board", description: "Update your specials page from your phone each morning and your window QR code always shows today's menu." }, + { title: "Catering Inquiry Capture", description: "A QR code linking to your catering menu and inquiry form converts curious office managers and event planners into leads." }, + { title: "Pre-Order and Skip the Queue", description: "Link your QR code to an online pre-order system so regulars can pick up without waiting — improving throughput at peak times." } + ], + useCases: [ + "Window QR code linking to daily specials and pre-order form", + "Counter catering menu QR for office and event inquiries", + "Loyalty card QR for digital stamp collection", + "Provenance and maker story QR codes on artisan product labels", + "Review request QR on bags, wrapping, and receipts" + ], + tools: ["url-qr-code", "pdf-qr-code", "instagram-qr-code"], + faq: [ + { question: "What should a deli's window QR code link to?", answer: "A daily specials page updated each morning and a pre-order link. Customers who can plan ahead are more likely to commit to a purchase before they arrive." }, + { question: "How can QR codes help with catering sales?", answer: "A QR code linking to your catering menu and a simple inquiry form on your counter and website converts browsing office workers into catering clients." }, + { question: "Can QR codes replace printed menus in a deli?", answer: "For daily-changing specials, yes. A dynamic QR menu is always current, looks clean, and saves daily printing costs without sacrificing the handcrafted feel of a good deli." } + ], + placementTips: [ + "Post a daily specials QR code on the front window at eye level", + "Display a catering inquiry QR prominently on the counter and near artisan products", + "Print loyalty QR codes on every bag and receipt" + ] + }, + { + slug: "resorts", + name: "Resorts", + title: "QR Codes for Resorts", + metaTitle: "QR Codes for Resorts: Guest Guides, Activity Booking, and In-Room Services", + metaDescription: "Help resorts use QR codes for digital welcome guides, activity bookings, in-room service menus, WiFi access, and guest feedback collection.", + headline: "QR Codes for Resorts: Every Guest Touch Point Should Be Seamlessly Connected", + subheadline: "From arrival to checkout, dynamic QR codes deliver the right information and booking options exactly when guests need them.", + heroImage: "/marketing/industries/resorts.png", + statistics: [ + { value: "91%", label: "of resort guests consult in-room materials for activity and dining options" }, + { value: "4x", label: "More activity bookings when QR codes are placed at poolside and in rooms" }, + { value: "38%", label: "of resort reviews mention quality of information and ease of access" } + ], + benefits: [ + { title: "Paperless Guest Compendium", description: "Replace thick in-room binders with a single QR code on the bedside table linking to a digital guest guide — always current, never outdated." }, + { title: "Activity and Dining Upsells", description: "QR codes at the pool, spa, and reception desk linking to activity booking pages consistently increase ancillary revenue per guest." }, + { title: "Instant Feedback Collection", description: "A QR code on the checkout invoice captures feedback at departure — before the review motivation fades on the journey home." } + ], + useCases: [ + "In-room QR codes replacing printed guest compendiums", + "Pool and spa signage linking to activity and treatment bookings", + "WiFi QR codes framed at reception and in every room", + "Restaurant and bar QR menus at tables and poolside", + "Checkout feedback QR codes on invoice cards" + ], + tools: ["wifi-qr-code", "url-qr-code", "pdf-qr-code"], + faq: [ + { question: "What is the best QR code use case for a resort?", answer: "An in-room digital compendium QR code replacing the printed binder delivers the most operational savings and guest satisfaction improvement simultaneously." }, + { question: "How do QR codes increase resort ancillary revenue?", answer: "QR codes placed at high-dwell locations — pool loungers, spa waiting areas, restaurant tables — drive spontaneous activity and treatment bookings that guests wouldn't otherwise make." }, + { question: "Can QR codes be used for checkout feedback at resorts?", answer: "Yes. A QR code on the checkout invoice linking to a brief satisfaction survey captures feedback at the highest-motivation moment before guests disperse." } + ], + placementTips: [ + "Place in-room compendium QR codes on the bedside table and minibar area", + "Mount activity booking QR codes at pool entrances and spa reception", + "Include WiFi QR codes in every room — framed cards are most professional" + ] + }, + { + slug: "toy-stores", + name: "Toy Stores", + title: "QR Codes for Toy Stores", + metaTitle: "QR Codes for Toy Stores: Age Guides, Gift Ideas, and Assembly Instructions", + metaDescription: "Help toy stores use QR codes on displays and packaging to deliver age guides, gift recommendations, video demos, and assembly instructions.", + headline: "QR Codes for Toy Stores: Help Parents Find the Perfect Gift Without Asking Staff", + subheadline: "Age guides, video demos, and gift recommendation quizzes — QR codes on every display let parents self-serve and buy with confidence.", + heroImage: "/marketing/industries/toy-stores.png", + statistics: [ + { value: "76%", label: "of toy purchases are made by parents uncertain about age suitability" }, + { value: "3x", label: "Higher conversion when video demos are linked from product displays" }, + { value: "55%", label: "of toy store customers are gift buyers visiting without the recipient" } + ], + benefits: [ + { title: "Age Suitability Guides", description: "A QR code on display shelves links to age-by-age gift guides — removing the most common hesitation that prevents a purchase." }, + { title: "Video Demos That Sell", description: "Link product display QR codes to unboxing and play demonstration videos — letting the toy sell itself without staff involvement." }, + { title: "Assembly Instructions On Demand", description: "A QR code on packaging linking to step-by-step assembly videos reduces returns and post-purchase frustration." } + ], + useCases: [ + "Shelf and display QR codes linking to age guides and gift recommendations", + "Product packaging QR codes with video unboxings and demos", + "Assembly instruction QR codes replacing printed manuals", + "In-store gift quiz QR linking to curated gift recommendation tool", + "Post-purchase review QR codes on receipts and inserts" + ], + tools: ["url-qr-code", "youtube-qr-code", "pdf-qr-code"], + faq: [ + { question: "How do QR codes help sell more toys?", answer: "Video demonstrations linked from product displays are the most effective QR use case in toy retail — seeing a toy in action converts hesitant buyers faster than any product description." }, + { question: "Can QR codes reduce toy returns?", answer: "Yes. Assembly instruction QR codes linking to video guides reduce setup frustration, which is one of the most common reasons for returns of complex toys." }, + { question: "What QR content works best for gift buyers in toy stores?", answer: "Age-based gift guides and curated recommendation quizzes address the core anxiety of gift buyers who don't know the child well. These convert browsers into confident purchasers." } + ], + placementTips: [ + "Place QR age guide codes at eye level on every shelf section organized by age group", + "Apply video demo QR codes to the front of product display boxes", + "Include assembly instruction QR codes on packaging inserts and gift receipts" + ] + }, + { + slug: "sporting-goods", + name: "Sporting Goods Stores", + title: "QR Codes for Sporting Goods Stores", + metaTitle: "QR Codes for Sporting Goods Stores: Size Guides, Demos, and Expert Advice", + metaDescription: "Help sporting goods retailers use QR codes on displays and product tags to deliver size guides, video demos, expert reviews, and warranty registration.", + headline: "QR Codes for Sporting Goods Stores: Give Every Shopper Access to Expert Knowledge", + subheadline: "Size guides, fit advisors, and performance comparison videos — QR codes on every product let serious athletes self-qualify purchases without staff.", + heroImage: "/marketing/industries/sporting-goods.png", + statistics: [ + { value: "82%", label: "of sporting goods buyers research specifications before visiting a store" }, + { value: "4x", label: "Higher purchase confidence when size guides are QR-accessible in store" }, + { value: "60%", label: "of athletic equipment purchases involve a comparison with at least one competitor" } + ], + benefits: [ + { title: "In-Store Size and Fit Guides", description: "A QR code on shoe walls and apparel racks links to precise sizing guides, width charts, and fit recommendations — reducing returns and staff interruptions." }, + { title: "Performance Comparison Content", description: "Link display QR codes to product comparison videos and expert reviews so technically-minded shoppers get the depth they need without monopolizing staff time." }, + { title: "Warranty and Registration", description: "A QR code inside equipment packaging links directly to warranty registration, removing post-purchase friction and building a direct customer relationship." } + ], + useCases: [ + "Shoe and apparel wall QR codes linking to size guides and fit tools", + "Equipment display QR codes with performance comparison videos", + "Product packaging QR links to warranty registration pages", + "Clearance section QR codes linking to remaining size availability online", + "Club and team sales QR codes for bulk order inquiries" + ], + tools: ["url-qr-code", "youtube-qr-code", "pdf-qr-code"], + faq: [ + { question: "What sporting goods QR code placement drives the most sales?", answer: "Shoe wall size guide QR codes have the highest measurable impact — fit uncertainty is the number one reason athletic footwear purchases are abandoned in store." }, + { question: "Can QR codes help with team and club bulk orders?", answer: "Yes. A QR code on team equipment displays linking to a bulk order inquiry form captures club purchasing decisions that would otherwise require a sales call." }, + { question: "How do QR codes reduce sporting goods returns?", answer: "Size guide and fit advisor QR codes on apparel and footwear displays address the most common return reason. Customers who buy the right size don't return it." } + ], + placementTips: [ + "Apply QR size guide codes to shoe display walls at eye level per category", + "Place performance comparison QR codes on premium equipment shelf-edge labels", + "Include warranty registration QR codes on packaging inserts for all major equipment" + ] + }, +``` + +--- + +## Remaining Tier 2 (build after above) + +conferences, personal-trainers, music-schools, language-schools, seminars, marketing-agencies, nonprofits, musicians, sports-clubs, interior-designers, nutritionists, life-coaches, dance-schools, real-estate-developers, online-courses, childcare, recruitment-agencies + +--- + +## Hub Page Updates Needed + +Add new slugs to `/qr-code-for/page.tsx` under existing or new categories: + +### New category: "Fitness, Wellness & Active Services" +``` +pilates-studios, crossfit, massage-therapists, dog-trainers +``` + +### Extend "Food, Hospitality, and Guest Experience" +``` +ice-cream-shops, delis, resorts, vacation-rentals, hostels +``` + +### Extend "Services, Real Estate, and Lead Capture" +``` +plumbers, electricians, roofing-companies, moving-companies, cleaning-services, +auto-repair, landscaping, construction-companies, financial-advisors, architects +``` + +### Extend "Retail, Packaging, and Product Discovery" +``` +gift-shops, toy-stores, bike-shops, sporting-goods +``` + +### Extend "Education, Culture, and Public Spaces" +``` +escape-rooms, aquariums, tutors +``` + +### Add to "Services" or new "Hospitality & Lifestyle" +``` +hair-salons, wedding-venues, hostels, sports-bars, laundromats +``` + +--- + +## CTA Map (add to `[industry]/page.tsx`) + +```ts +// industryPrimaryCtas additions +"plumbers": { href: "/tools/call-qr-code-generator", label: "Create a Call QR Code for Your Van" }, +"roofing-companies": { href: "/tools/url-qr-code", label: "Create a Yard Sign QR Code" }, +"electricians": { href: "/tools/call-qr-code-generator", label: "Create a Call QR Code" }, +"moving-companies": { href: "/qr-code-tracking", label: "Track Flyer and Truck QR Scans" }, +"financial-advisors": { href: "/tools/vcard-qr-code", label: "Create a vCard QR Code" }, +"construction-companies": { href: "/qr-code-tracking", label: "Track Site Hoarding QR Scans" }, +"cleaning-services": { href: "/tools/url-qr-code", label: "Create a Booking QR Code" }, +"auto-repair": { href: "/tools/url-qr-code", label: "Create a Service Booking QR Code" }, +"landscaping": { href: "/tools/url-qr-code", label: "Create a Yard Sign QR Code" }, +"tutors": { href: "/tools/url-qr-code", label: "Create a Booking QR Code" }, +"dog-trainers": { href: "/tools/url-qr-code", label: "Create a Class Booking QR Code" }, +"vacation-rentals": { href: "/tools/wifi-qr-code", label: "Create a WiFi QR Code" }, +"massage-therapists": { href: "/tools/url-qr-code", label: "Create a Rebooking QR Code" }, +"escape-rooms": { href: "/tools/url-qr-code", label: "Create a Booking QR Code" }, +"pilates-studios": { href: "/tools/url-qr-code", label: "Create a Free Trial Booking QR Code" }, +"wedding-venues": { href: "/tools/url-qr-code", label: "Create a Tour Booking QR Code" }, +"architects": { href: "/tools/vcard-qr-code", label: "Create a Portfolio vCard QR Code" }, +"hair-salons": { href: "/tools/wifi-qr-code", label: "Create a Salon WiFi QR Code" }, +"hostels": { href: "/tools/wifi-qr-code", label: "Create a Hostel WiFi QR Code" }, +"crossfit": { href: "/tools/url-qr-code", label: "Create a Free Trial QR Code" }, +"sports-bars": { href: "/tools/url-qr-code", label: "Create a Menu QR Code" }, +"laundromats": { href: "/tools/wifi-qr-code", label: "Create a WiFi QR Code" }, +"aquariums": { href: "/tools/url-qr-code", label: "Create an Exhibit QR Code" }, +"gift-shops": { href: "/tools/url-qr-code", label: "Create a Product QR Code" }, +"bike-shops": { href: "/tools/url-qr-code", label: "Create a Service Booking QR Code" }, +"ice-cream-shops": { href: "/tools/url-qr-code", label: "Create a Daily Menu QR Code" }, +"delis": { href: "/tools/url-qr-code", label: "Create a Daily Specials QR Code" }, +"resorts": { href: "/tools/wifi-qr-code", label: "Create a Resort WiFi QR Code" }, +"toy-stores": { href: "/tools/url-qr-code", label: "Create a Product Demo QR Code" }, +"sporting-goods": { href: "/tools/url-qr-code", label: "Create a Size Guide QR Code" }, +``` + +--- + +## Notes + +- `heroImage` paths follow pattern `/marketing/industries/[slug].png` — images need to be added to `/public/marketing/industries/` +- All `germanKeyword` fields omitted — add if German SEO pages are in scope +- `industryPages` export in `industry-pages.ts` should export `allIndustries` (check current export alias) diff --git a/AI-SEO-CONTENT-PRIORITIES.md b/AI-SEO-CONTENT-PRIORITIES.md index a29c196..76c1e36 100644 --- a/AI-SEO-CONTENT-PRIORITIES.md +++ b/AI-SEO-CONTENT-PRIORITIES.md @@ -1,48 +1,48 @@ -# AI SEO Content Priorities - -Last updated: 2026-04-14 - -Purpose: prioritize the next content pass after the raw rollout, visible freshness fix, and `llms.txt` expansion. - -## Priority 1 - -1. `qr-code-scan-statistics-2026` -Reason: strongest citation potential because statistics pages are the easiest source type for LLMs to quote. -Next move: verify every stat has a current primary source and an explicit inline citation in the article body. - -2. `qr-code-analytics` -Reason: high commercial intent and strong fit for QR Master's differentiation around measurement and ROI. -Next move: sharpen answer blocks around scan metrics, dashboards, and campaign decisions. - -3. `qr-code-marketing` -Reason: bridges informational and product-intent queries around campaign ROI, CTAs, and tracking. -Next move: tighten the first-screen answer and add more comparative guidance for common campaign use cases. - -4. `free-vs-paid-qr-generator` -Reason: strong comparison intent and a natural path into dynamic QR, tracking, and upgrade logic. -Next move: strengthen side-by-side comparison blocks and source any claims about reliability or limits. - -## Priority 2 - -5. `best-qr-code-generator-2026` -Reason: "best" queries are heavily represented in AI answers but need balanced, defensible comparisons. -Next move: review neutrality, keep claims sourced, and make evaluation criteria more explicit. - -6. `bulk-qr-code-generator-excel` -Reason: strong workflow intent and direct fit with a high-value product capability. -Next move: improve step extraction and source support for operational best practices where possible. - -7. `qr-code-events` -Reason: clear use-case page with practical intent and good overlap with tracking and dynamic QR value. -Next move: add stronger answer passages around tickets, check-in, UTMs, and event ROI. - -8. `qr-code-security` -Reason: security content earns citations when it is current, specific, and source-heavy. -Next move: validate the quishing data points and make safe-deployment recommendations easier to quote. - -## Review Criteria - -- The first 40 to 60 words should answer the core query directly. -- Major claims should point to a primary source, not an unsourced assertion. -- Comparison and checklist content should prefer tables or tightly structured blocks over long prose. -- Posts that support product evaluation should link clearly into the relevant QR Master marketing pages. +# AI SEO Content Priorities + +Last updated: 2026-04-14 + +Purpose: prioritize the next content pass after the raw rollout, visible freshness fix, and `llms.txt` expansion. + +## Priority 1 + +1. `qr-code-scan-statistics-2026` +Reason: strongest citation potential because statistics pages are the easiest source type for LLMs to quote. +Next move: verify every stat has a current primary source and an explicit inline citation in the article body. + +2. `qr-code-analytics` +Reason: high commercial intent and strong fit for QR Master's differentiation around measurement and ROI. +Next move: sharpen answer blocks around scan metrics, dashboards, and campaign decisions. + +3. `qr-code-marketing` +Reason: bridges informational and product-intent queries around campaign ROI, CTAs, and tracking. +Next move: tighten the first-screen answer and add more comparative guidance for common campaign use cases. + +4. `free-vs-paid-qr-generator` +Reason: strong comparison intent and a natural path into dynamic QR, tracking, and upgrade logic. +Next move: strengthen side-by-side comparison blocks and source any claims about reliability or limits. + +## Priority 2 + +5. `best-qr-code-generator-2026` +Reason: "best" queries are heavily represented in AI answers but need balanced, defensible comparisons. +Next move: review neutrality, keep claims sourced, and make evaluation criteria more explicit. + +6. `bulk-qr-code-generator-excel` +Reason: strong workflow intent and direct fit with a high-value product capability. +Next move: improve step extraction and source support for operational best practices where possible. + +7. `qr-code-events` +Reason: clear use-case page with practical intent and good overlap with tracking and dynamic QR value. +Next move: add stronger answer passages around tickets, check-in, UTMs, and event ROI. + +8. `qr-code-security` +Reason: security content earns citations when it is current, specific, and source-heavy. +Next move: validate the quishing data points and make safe-deployment recommendations easier to quote. + +## Review Criteria + +- The first 40 to 60 words should answer the core query directly. +- Major claims should point to a primary source, not an unsourced assertion. +- Comparison and checklist content should prefer tables or tightly structured blocks over long prose. +- Posts that support product evaluation should link clearly into the relevant QR Master marketing pages. diff --git a/AI-SEO-TOP5-REWRITE-PLAN.md b/AI-SEO-TOP5-REWRITE-PLAN.md index e503466..95f03ab 100644 --- a/AI-SEO-TOP5-REWRITE-PLAN.md +++ b/AI-SEO-TOP5-REWRITE-PLAN.md @@ -1,419 +1,419 @@ -# AI SEO Top 5 Rewrite Plan - -Last updated: 2026-04-14 - -Method: `ai-seo` - -Goal: define the exact AEO/GEO rewrite moves for the five blog posts with the strongest combination of keyword demand, product fit, and AI citation potential. - -## 1. `dynamic-vs-static-qr-codes` - -File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:707) - -### Target queries - -- `dynamic qr code` -- `dynamic qr code generator` -- `create dynamic qr code` -- `static qr codes` -- `editable qr code` - -### What already works - -- Strong `quickAnswer` -- Clear FAQ intent -- Good internal link path into tracking and comparison content -- Sources already exist - -### Exact sections to change - -1. Replace the opening body paragraph with a direct definition + decision summary. -Current issue: the intro starts with a conversational framing instead of a highly extractable answer block. -Change to: a 40 to 60 word paragraph that answers: -"A static QR code cannot be edited after printing. A dynamic QR code can be updated, tracked, and reused. For business campaigns, menus, and promotions, dynamic QR codes are usually the better choice because they prevent reprints and enable analytics." - -2. Add an early comparison table directly after the intro. -New section: -`## Static vs Dynamic QR Code Comparison` -Include rows for: -- editable after printing -- analytics -- best use case -- risk of reprint cost -- ideal for marketing -- ideal for permanent utility use - -3. Add a decision section that maps user intent to format choice. -New section: -`## When To Use Static QR Codes` -New section: -`## When To Use Dynamic QR Codes` -Each section should open with a one-sentence answer, then 3 to 5 bullets. - -4. Add a cost/risk section. -New section: -`## Why Dynamic QR Codes Save Money` -This should translate product value into a business outcome: -- changed menu URL -- campaign landing page update -- print correction avoidance - -5. Expand FAQ to cover high-intent objections. -Add: -- "Are dynamic QR codes worth paying for?" -- "Can a dynamic QR code become inactive?" -- "Is a static QR code ever better than a dynamic one?" - -### AEO focus - -- Make the first screen answer self-contained. -- Prefer table + decision logic over generic prose. -- Keep the distinction between "editable" and "trackable" explicit in every major section. - -### Authority upgrades - -- Add at least one explicit sourced statement in the intro or first comparison section. -- Where possible, cite original sources for adoption or tracking claims rather than broad vendor summaries. - -### Internal linking - -- Link to `/dynamic-qr-code-generator` -- Link to `/qr-code-tracking` -- Link to `/pricing` -- Keep links to `trackable-qr-codes` and `free-vs-paid-qr-generator` - -## 2. `qr-code-tracking-guide-2025` - -File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:653) - -### Target queries - -- `qr code tracking` -- `track qr scans` -- `dynamic qr code analytics` -- `google analytics qr` -- `utm qr codes` - -### What already works - -- High commercial relevance -- Strong `quickAnswer` -- Good `keySteps` -- FAQ already aligned to the query - -### Exact sections to change - -1. Replace `Why Track QR Codes?` with a sharper query-matching heading. -Rename to: -`## What Is QR Code Tracking?` -The first paragraph should define tracking in one extractable block: -"QR code tracking means measuring what happens after a scan. With a dynamic QR code, you can log scan time, device type, location, and destination performance. If you also add UTM parameters, you can measure campaign attribution in tools like GA4." - -2. Split "tracking" and "analytics" clearly. -New section: -`## QR Code Tracking vs QR Code Analytics` -Reason: this is already in the FAQ and deserves a visible answer block because it is highly citable. - -3. Add a metrics section with a structured list. -New section: -`## What Metrics Should You Track?` -Use a table with: -- total scans -- unique scans -- scan time -- device type -- location -- landing page conversions -- cost per conversion - -4. Add an implementation section for GA4 and UTMs. -New section: -`## How To Track QR Codes In Google Analytics 4` -Keep it procedural: -- create dynamic QR destination -- append UTM parameters -- define conversion event in GA4 -- compare placements - -5. Add a limitations section. -New section: -`## What QR Tracking Can And Cannot Measure` -This improves trust and helps citation because it sounds more rigorous. - -### AEO focus - -- The first H2 should match the core query exactly. -- One section should answer "Can I track a static QR code?" before the FAQ. -- Use one metric table instead of only prose. - -### Authority upgrades - -- Keep Bitly and Google Analytics references, but tighten them around specific claims. -- If scan or attribution claims are broad, attach dates and exact measurement context. - -### Internal linking - -- Link to `/qr-code-tracking` -- Link to `utm-parameter-qr-codes` -- Link to `qr-code-analytics` -- Link to `/dynamic-qr-code-generator` - -## 3. `bulk-qr-code-generator-excel` - -File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:759) - -### Target queries - -- `bulk qr code generator` -- `qr code generator bulk` -- `qr code generator excel` -- `qr codes from excel` -- `csv qr code generator` - -### What already works - -- Strong workflow intent -- Good step list -- Good FAQ coverage -- Strong product fit for a paid/business feature - -### Exact sections to change - -1. Rewrite the intro to answer the exact workflow query faster. -Current issue: the intro starts with narrative scale examples before the direct instruction. -Change to: -"To generate bulk QR codes from Excel, prepare a spreadsheet with one row per QR destination, export it as CSV, upload it to a bulk QR generator, and download the generated batch. This is the standard workflow for product labels, badges, inventory, and large campaigns." - -2. Add a file format section. -New section: -`## Excel vs CSV: Which Format Do You Actually Need?` -This should explicitly explain that CSV is usually the upload format even when users say Excel. - -3. Add a required-column section. -New section: -`## Recommended Spreadsheet Columns` -Use a table: -- `url` -- `label` -- `campaign` -- `utm_source` -- `utm_medium` -- `utm_campaign` -- optional `filename` - -4. Add a common-errors section. -New section: -`## Common Bulk QR Upload Errors` -Include: -- broken URLs -- inconsistent columns -- spaces in headers -- mixed protocols -- untested redirect destinations - -5. Add a dynamic-vs-static decision block for batches. -New section: -`## Should Bulk QR Codes Be Static Or Dynamic?` -This should explicitly tie bulk use cases to tracking, editing, and reprint risk. - -6. Add a QA checklist before production. -New section: -`## Pre-Print Quality Check` -Use a numbered list with 5 to 7 checks. - -### AEO focus - -- This post should behave like a procedural answer, not a generic guide. -- The column table and error list are likely the most citable parts. -- Make "Excel" and "CSV" relationship explicit because users search for Excel but often need CSV. - -### Authority upgrades - -- Existing sources are serviceable, but add at least one stronger operational source if available. -- Where no authoritative external source exists, use precise first-party workflow guidance without overclaiming. - -### Internal linking - -- Link to `/bulk-qr-code-generator` -- Link to `qr-code-print-size-guide` -- Link to `qr-code-tracking-guide-2025` -- Link to `dynamic-vs-static-qr-codes` - -## 4. `vcard-qr-code-generator` - -File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:504) - -### Target queries - -- `vcard qr code generator` -- `vcard qr code` -- `vcard generator` -- `vcard qr` -- `create vcard qr code` - -### What already works - -- Good keyword fit -- Good query-to-tool match -- Strong utility use case - -### Exact sections to change - -1. Tighten the opening definition. -The first paragraph should answer: -"A vCard QR code stores contact details such as name, phone number, email, company, and website. When someone scans it, they can save the contact directly to their phone without typing." - -2. Add a static-vs-dynamic contact section. -New section: -`## Static vs Dynamic vCard QR Codes` -Cover: -- when static is enough -- when dynamic is better -- when tracking matters - -3. Add a field breakdown section. -New section: -`## What Information Can A vCard QR Code Include?` -Use a compact list or table: -- full name -- phone -- email -- company -- job title -- website -- address -- social profile - -4. Add a use-case section. -New section: -`## Best Use Cases For vCard QR Codes` -Examples: -- business cards -- trade shows -- packaging inserts -- storefronts -- service professionals - -5. Add a scannability and contact-save section. -New section: -`## Best Practices For High Save Rates` -Focus on CTA language: -- scan to save contact -- add me instantly -- connect without typing - -### AEO focus - -- Treat this as a definitional + use-case post, not just a tool page. -- The definition block and field list are the most important extractable components. - -### Authority upgrades - -- If current sources are weak or missing, add at least one standards-oriented or platform-oriented source. -- Avoid unsupported claims around conversion unless sourced. - -### Internal linking - -- Link to the vCard tool page -- Link to `business-card-qr-code` -- Link to `dynamic-vs-static-qr-codes` -- Link to `/pricing` if dynamic/contact-management features are relevant - -## 5. `qr-code-print-size-guide` - -File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:604) - -### Target queries - -- `minimum qr code size` -- `qr code print size` -- `qr code size guide` -- `qr code scanning distance` - -### What already works - -- Very strong query structure -- Excellent snippet potential -- Good `quickAnswer` -- Good FAQ fit - -### Exact sections to change - -1. Keep the 10:1 rule, but make it the first body paragraph in exact answer form. -Suggested phrasing: -"The standard starting rule for QR print size is 10:1: the code should be about one-tenth of the expected scanning distance. A QR code scanned from 2 meters away should usually be around 20 centimeters wide." - -2. Add a distance-to-size table immediately after the intro. -New section: -`## QR Code Size Chart By Scanning Distance` -Include examples for: -- 20 cm -- 50 cm -- 1 m -- 2 m -- 5 m - -3. Add format-specific minimums. -New section: -`## Minimum QR Code Sizes For Common Print Formats` -Use rows for: -- business card -- flyer -- poster -- packaging -- menu stand -- window signage - -4. Add a density warning section. -New section: -`## Why More Data Requires A Larger QR Code` -Cover: -- long URLs -- vCard payloads -- WiFi payloads -- error correction tradeoffs - -5. Add a print-production checklist. -New section: -`## Print Checklist Before You Go Live` -Include: -- SVG preferred -- 300 DPI minimum for raster -- quiet zone intact -- strong contrast -- test in real lighting -- test with average phones, not only flagship devices - -### AEO focus - -- This post should be built around tables and formulas, not narrative. -- The size chart is likely the strongest snippet and AI Overview asset. -- Keep measurements concrete and example-heavy. - -### Authority upgrades - -- If possible, support the 10:1 rule with an external reference or state it clearly as an operational best-practice baseline. -- Avoid over-precision if it is based on heuristics rather than a standard. - -### Internal linking - -- Link to `business-card-qr-code` -- Link to `qr-code-restaurant-menu` -- Link to `bulk-qr-code-generator-excel` -- Link to relevant tool or generator pages - -## Execution Order - -1. `dynamic-vs-static-qr-codes` -2. `qr-code-tracking-guide-2025` -3. `bulk-qr-code-generator-excel` -4. `qr-code-print-size-guide` -5. `vcard-qr-code-generator` - -## Acceptance Criteria - -- The first paragraph on each post answers the target query directly. -- Each post includes at least one visibly structured block that is easy to quote: - table, checklist, comparison block, or metric summary. -- Claims that imply data, performance, or market adoption are tied to a source. -- The post clearly routes users into the relevant QR Master product or feature page. +# AI SEO Top 5 Rewrite Plan + +Last updated: 2026-04-14 + +Method: `ai-seo` + +Goal: define the exact AEO/GEO rewrite moves for the five blog posts with the strongest combination of keyword demand, product fit, and AI citation potential. + +## 1. `dynamic-vs-static-qr-codes` + +File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:707) + +### Target queries + +- `dynamic qr code` +- `dynamic qr code generator` +- `create dynamic qr code` +- `static qr codes` +- `editable qr code` + +### What already works + +- Strong `quickAnswer` +- Clear FAQ intent +- Good internal link path into tracking and comparison content +- Sources already exist + +### Exact sections to change + +1. Replace the opening body paragraph with a direct definition + decision summary. +Current issue: the intro starts with a conversational framing instead of a highly extractable answer block. +Change to: a 40 to 60 word paragraph that answers: +"A static QR code cannot be edited after printing. A dynamic QR code can be updated, tracked, and reused. For business campaigns, menus, and promotions, dynamic QR codes are usually the better choice because they prevent reprints and enable analytics." + +2. Add an early comparison table directly after the intro. +New section: +`## Static vs Dynamic QR Code Comparison` +Include rows for: +- editable after printing +- analytics +- best use case +- risk of reprint cost +- ideal for marketing +- ideal for permanent utility use + +3. Add a decision section that maps user intent to format choice. +New section: +`## When To Use Static QR Codes` +New section: +`## When To Use Dynamic QR Codes` +Each section should open with a one-sentence answer, then 3 to 5 bullets. + +4. Add a cost/risk section. +New section: +`## Why Dynamic QR Codes Save Money` +This should translate product value into a business outcome: +- changed menu URL +- campaign landing page update +- print correction avoidance + +5. Expand FAQ to cover high-intent objections. +Add: +- "Are dynamic QR codes worth paying for?" +- "Can a dynamic QR code become inactive?" +- "Is a static QR code ever better than a dynamic one?" + +### AEO focus + +- Make the first screen answer self-contained. +- Prefer table + decision logic over generic prose. +- Keep the distinction between "editable" and "trackable" explicit in every major section. + +### Authority upgrades + +- Add at least one explicit sourced statement in the intro or first comparison section. +- Where possible, cite original sources for adoption or tracking claims rather than broad vendor summaries. + +### Internal linking + +- Link to `/dynamic-qr-code-generator` +- Link to `/qr-code-tracking` +- Link to `/pricing` +- Keep links to `trackable-qr-codes` and `free-vs-paid-qr-generator` + +## 2. `qr-code-tracking-guide-2025` + +File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:653) + +### Target queries + +- `qr code tracking` +- `track qr scans` +- `dynamic qr code analytics` +- `google analytics qr` +- `utm qr codes` + +### What already works + +- High commercial relevance +- Strong `quickAnswer` +- Good `keySteps` +- FAQ already aligned to the query + +### Exact sections to change + +1. Replace `Why Track QR Codes?` with a sharper query-matching heading. +Rename to: +`## What Is QR Code Tracking?` +The first paragraph should define tracking in one extractable block: +"QR code tracking means measuring what happens after a scan. With a dynamic QR code, you can log scan time, device type, location, and destination performance. If you also add UTM parameters, you can measure campaign attribution in tools like GA4." + +2. Split "tracking" and "analytics" clearly. +New section: +`## QR Code Tracking vs QR Code Analytics` +Reason: this is already in the FAQ and deserves a visible answer block because it is highly citable. + +3. Add a metrics section with a structured list. +New section: +`## What Metrics Should You Track?` +Use a table with: +- total scans +- unique scans +- scan time +- device type +- location +- landing page conversions +- cost per conversion + +4. Add an implementation section for GA4 and UTMs. +New section: +`## How To Track QR Codes In Google Analytics 4` +Keep it procedural: +- create dynamic QR destination +- append UTM parameters +- define conversion event in GA4 +- compare placements + +5. Add a limitations section. +New section: +`## What QR Tracking Can And Cannot Measure` +This improves trust and helps citation because it sounds more rigorous. + +### AEO focus + +- The first H2 should match the core query exactly. +- One section should answer "Can I track a static QR code?" before the FAQ. +- Use one metric table instead of only prose. + +### Authority upgrades + +- Keep Bitly and Google Analytics references, but tighten them around specific claims. +- If scan or attribution claims are broad, attach dates and exact measurement context. + +### Internal linking + +- Link to `/qr-code-tracking` +- Link to `utm-parameter-qr-codes` +- Link to `qr-code-analytics` +- Link to `/dynamic-qr-code-generator` + +## 3. `bulk-qr-code-generator-excel` + +File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:759) + +### Target queries + +- `bulk qr code generator` +- `qr code generator bulk` +- `qr code generator excel` +- `qr codes from excel` +- `csv qr code generator` + +### What already works + +- Strong workflow intent +- Good step list +- Good FAQ coverage +- Strong product fit for a paid/business feature + +### Exact sections to change + +1. Rewrite the intro to answer the exact workflow query faster. +Current issue: the intro starts with narrative scale examples before the direct instruction. +Change to: +"To generate bulk QR codes from Excel, prepare a spreadsheet with one row per QR destination, export it as CSV, upload it to a bulk QR generator, and download the generated batch. This is the standard workflow for product labels, badges, inventory, and large campaigns." + +2. Add a file format section. +New section: +`## Excel vs CSV: Which Format Do You Actually Need?` +This should explicitly explain that CSV is usually the upload format even when users say Excel. + +3. Add a required-column section. +New section: +`## Recommended Spreadsheet Columns` +Use a table: +- `url` +- `label` +- `campaign` +- `utm_source` +- `utm_medium` +- `utm_campaign` +- optional `filename` + +4. Add a common-errors section. +New section: +`## Common Bulk QR Upload Errors` +Include: +- broken URLs +- inconsistent columns +- spaces in headers +- mixed protocols +- untested redirect destinations + +5. Add a dynamic-vs-static decision block for batches. +New section: +`## Should Bulk QR Codes Be Static Or Dynamic?` +This should explicitly tie bulk use cases to tracking, editing, and reprint risk. + +6. Add a QA checklist before production. +New section: +`## Pre-Print Quality Check` +Use a numbered list with 5 to 7 checks. + +### AEO focus + +- This post should behave like a procedural answer, not a generic guide. +- The column table and error list are likely the most citable parts. +- Make "Excel" and "CSV" relationship explicit because users search for Excel but often need CSV. + +### Authority upgrades + +- Existing sources are serviceable, but add at least one stronger operational source if available. +- Where no authoritative external source exists, use precise first-party workflow guidance without overclaiming. + +### Internal linking + +- Link to `/bulk-qr-code-generator` +- Link to `qr-code-print-size-guide` +- Link to `qr-code-tracking-guide-2025` +- Link to `dynamic-vs-static-qr-codes` + +## 4. `vcard-qr-code-generator` + +File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:504) + +### Target queries + +- `vcard qr code generator` +- `vcard qr code` +- `vcard generator` +- `vcard qr` +- `create vcard qr code` + +### What already works + +- Good keyword fit +- Good query-to-tool match +- Strong utility use case + +### Exact sections to change + +1. Tighten the opening definition. +The first paragraph should answer: +"A vCard QR code stores contact details such as name, phone number, email, company, and website. When someone scans it, they can save the contact directly to their phone without typing." + +2. Add a static-vs-dynamic contact section. +New section: +`## Static vs Dynamic vCard QR Codes` +Cover: +- when static is enough +- when dynamic is better +- when tracking matters + +3. Add a field breakdown section. +New section: +`## What Information Can A vCard QR Code Include?` +Use a compact list or table: +- full name +- phone +- email +- company +- job title +- website +- address +- social profile + +4. Add a use-case section. +New section: +`## Best Use Cases For vCard QR Codes` +Examples: +- business cards +- trade shows +- packaging inserts +- storefronts +- service professionals + +5. Add a scannability and contact-save section. +New section: +`## Best Practices For High Save Rates` +Focus on CTA language: +- scan to save contact +- add me instantly +- connect without typing + +### AEO focus + +- Treat this as a definitional + use-case post, not just a tool page. +- The definition block and field list are the most important extractable components. + +### Authority upgrades + +- If current sources are weak or missing, add at least one standards-oriented or platform-oriented source. +- Avoid unsupported claims around conversion unless sourced. + +### Internal linking + +- Link to the vCard tool page +- Link to `business-card-qr-code` +- Link to `dynamic-vs-static-qr-codes` +- Link to `/pricing` if dynamic/contact-management features are relevant + +## 5. `qr-code-print-size-guide` + +File reference: [src/lib/blog-data.ts](/abs/path/C:/Users/a931627/Documents/QRMASTER/src/lib/blog-data.ts:604) + +### Target queries + +- `minimum qr code size` +- `qr code print size` +- `qr code size guide` +- `qr code scanning distance` + +### What already works + +- Very strong query structure +- Excellent snippet potential +- Good `quickAnswer` +- Good FAQ fit + +### Exact sections to change + +1. Keep the 10:1 rule, but make it the first body paragraph in exact answer form. +Suggested phrasing: +"The standard starting rule for QR print size is 10:1: the code should be about one-tenth of the expected scanning distance. A QR code scanned from 2 meters away should usually be around 20 centimeters wide." + +2. Add a distance-to-size table immediately after the intro. +New section: +`## QR Code Size Chart By Scanning Distance` +Include examples for: +- 20 cm +- 50 cm +- 1 m +- 2 m +- 5 m + +3. Add format-specific minimums. +New section: +`## Minimum QR Code Sizes For Common Print Formats` +Use rows for: +- business card +- flyer +- poster +- packaging +- menu stand +- window signage + +4. Add a density warning section. +New section: +`## Why More Data Requires A Larger QR Code` +Cover: +- long URLs +- vCard payloads +- WiFi payloads +- error correction tradeoffs + +5. Add a print-production checklist. +New section: +`## Print Checklist Before You Go Live` +Include: +- SVG preferred +- 300 DPI minimum for raster +- quiet zone intact +- strong contrast +- test in real lighting +- test with average phones, not only flagship devices + +### AEO focus + +- This post should be built around tables and formulas, not narrative. +- The size chart is likely the strongest snippet and AI Overview asset. +- Keep measurements concrete and example-heavy. + +### Authority upgrades + +- If possible, support the 10:1 rule with an external reference or state it clearly as an operational best-practice baseline. +- Avoid over-precision if it is based on heuristics rather than a standard. + +### Internal linking + +- Link to `business-card-qr-code` +- Link to `qr-code-restaurant-menu` +- Link to `bulk-qr-code-generator-excel` +- Link to relevant tool or generator pages + +## Execution Order + +1. `dynamic-vs-static-qr-codes` +2. `qr-code-tracking-guide-2025` +3. `bulk-qr-code-generator-excel` +4. `qr-code-print-size-guide` +5. `vcard-qr-code-generator` + +## Acceptance Criteria + +- The first paragraph on each post answers the target query directly. +- Each post includes at least one visibly structured block that is easy to quote: + table, checklist, comparison block, or metric summary. +- Claims that imply data, performance, or market adoption are tied to a source. +- The post clearly routes users into the relevant QR Master product or feature page. diff --git a/DESIGN.md b/DESIGN.md index 2e73de5..635c1a6 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,322 +1,322 @@ -# Design System Inspired by Stripe - -## 1. Visual Theme & Atmosphere - -Stripe's website is the gold standard of fintech design -- a system that manages to feel simultaneously technical and luxurious, precise and warm. The page opens on a clean white canvas (`#ffffff`) with deep navy headings (`#061b31`) and a signature purple (`#533afd`) that functions as both brand anchor and interactive accent. This isn't the cold, clinical purple of enterprise software; it's a rich, saturated violet that reads as confident and premium. The overall impression is of a financial institution redesigned by a world-class type foundry. - -The custom `sohne-var` variable font is the defining element of Stripe's visual identity. Every text element enables the OpenType `"ss01"` stylistic set, which modifies character shapes for a distinctly geometric, modern feel. At display sizes (48px-56px), sohne-var runs at weight 300 -- an extraordinarily light weight for headlines that creates an ethereal, almost whispered authority. This is the opposite of the "bold hero headline" convention; Stripe's headlines feel like they don't need to shout. The negative letter-spacing (-1.4px at 56px, -0.96px at 48px) tightens the text into dense, engineered blocks. At smaller sizes, the system also uses weight 300 with proportionally reduced tracking, and tabular numerals via `"tnum"` for financial data display. - -What truly distinguishes Stripe is its shadow system. Rather than the flat or single-layer approach of most sites, Stripe uses multi-layer, blue-tinted shadows: the signature `rgba(50,50,93,0.25)` combined with `rgba(0,0,0,0.1)` creates shadows with a cool, almost atmospheric depth -- like elements are floating in a twilight sky. The blue-gray undertone of the primary shadow color (50,50,93) ties directly to the navy-purple brand palette, making even elevation feel on-brand. - -**Key Characteristics:** -- sohne-var with OpenType `"ss01"` on all text -- a custom stylistic set that defines the brand's letterforms -- Weight 300 as the signature headline weight -- light, confident, anti-convention -- Negative letter-spacing at display sizes (-1.4px at 56px, progressive relaxation downward) -- Blue-tinted multi-layer shadows using `rgba(50,50,93,0.25)` -- elevation that feels brand-colored -- Deep navy (`#061b31`) headings instead of black -- warm, premium, financial-grade -- Conservative border-radius (4px-8px) -- nothing pill-shaped, nothing harsh -- Ruby (`#ea2261`) and magenta (`#f96bee`) accents for gradient and decorative elements -- `SourceCodePro` as the monospace companion for code and technical labels - -## 2. Color Palette & Roles - -### Primary -- **Stripe Purple** (`#533afd`): Primary brand color, CTA backgrounds, link text, interactive highlights. A saturated blue-violet that anchors the entire system. -- **Deep Navy** (`#061b31`): `--hds-color-heading-solid`. Primary heading color. Not black, not gray -- a very dark blue that adds warmth and depth to text. -- **Pure White** (`#ffffff`): Page background, card surfaces, button text on dark backgrounds. - -### Brand & Dark -- **Brand Dark** (`#1c1e54`): `--hds-color-util-brand-900`. Deep indigo for dark sections, footer backgrounds, and immersive brand moments. -- **Dark Navy** (`#0d253d`): `--hds-color-core-neutral-975`. The darkest neutral -- almost-black with a blue undertone for maximum depth without harshness. - -### Accent Colors -- **Ruby** (`#ea2261`): `--hds-color-accentColorMode-ruby-icon-solid`. Warm red-pink for icons, alerts, and accent elements. -- **Magenta** (`#f96bee`): `--hds-color-accentColorMode-magenta-icon-gradientMiddle`. Vivid pink-purple for gradients and decorative highlights. -- **Magenta Light** (`#ffd7ef`): `--hds-color-util-accent-magenta-100`. Tinted surface for magenta-themed cards and badges. - -### Interactive -- **Primary Purple** (`#533afd`): Primary link color, active states, selected elements. -- **Purple Hover** (`#4434d4`): Darker purple for hover states on primary elements. -- **Purple Deep** (`#2e2b8c`): `--hds-color-button-ui-iconHover`. Dark purple for icon hover states. -- **Purple Light** (`#b9b9f9`): `--hds-color-action-bg-subduedHover`. Soft lavender for subdued hover backgrounds. -- **Purple Mid** (`#665efd`): `--hds-color-input-selector-text-range`. Range selector and input highlight color. - -### Neutral Scale -- **Heading** (`#061b31`): Primary headings, nav text, strong labels. -- **Label** (`#273951`): `--hds-color-input-text-label`. Form labels, secondary headings. -- **Body** (`#64748d`): Secondary text, descriptions, captions. -- **Success Green** (`#15be53`): Status badges, success indicators (with 0.2-0.4 alpha for backgrounds/borders). -- **Success Text** (`#108c3d`): Success badge text color. -- **Lemon** (`#9b6829`): `--hds-color-core-lemon-500`. Warning and highlight accent. - -### Surface & Borders -- **Border Default** (`#e5edf5`): Standard border color for cards, dividers, and containers. -- **Border Purple** (`#b9b9f9`): Active/selected state borders on buttons and inputs. -- **Border Soft Purple** (`#d6d9fc`): Subtle purple-tinted borders for secondary elements. -- **Border Magenta** (`#ffd7ef`): Pink-tinted borders for magenta-themed elements. -- **Border Dashed** (`#362baa`): Dashed borders for drop zones and placeholder elements. - -### Shadow Colors -- **Shadow Blue** (`rgba(50,50,93,0.25)`): The signature -- blue-tinted primary shadow color. -- **Shadow Dark Blue** (`rgba(3,3,39,0.25)`): Deeper blue shadow for elevated elements. -- **Shadow Black** (`rgba(0,0,0,0.1)`): Secondary shadow layer for depth reinforcement. -- **Shadow Ambient** (`rgba(23,23,23,0.08)`): Soft ambient shadow for subtle elevation. -- **Shadow Soft** (`rgba(23,23,23,0.06)`): Minimal ambient shadow for light lift. - -## 3. Typography Rules - -### Font Family -- **Primary**: `sohne-var`, with fallback: `SF Pro Display` -- **Monospace**: `SourceCodePro`, with fallback: `SFMono-Regular` -- **OpenType Features**: `"ss01"` enabled globally on all sohne-var text; `"tnum"` for tabular numbers on financial data and captions. - -### Hierarchy - -| Role | Font | Size | Weight | Line Height | Letter Spacing | Features | Notes | -|------|------|------|--------|-------------|----------------|----------|-------| -| Display Hero | sohne-var | 56px (3.50rem) | 300 | 1.03 (tight) | -1.4px | ss01 | Maximum size, whisper-weight authority | -| Display Large | sohne-var | 48px (3.00rem) | 300 | 1.15 (tight) | -0.96px | ss01 | Secondary hero headlines | -| Section Heading | sohne-var | 32px (2.00rem) | 300 | 1.10 (tight) | -0.64px | ss01 | Feature section titles | -| Sub-heading Large | sohne-var | 26px (1.63rem) | 300 | 1.12 (tight) | -0.26px | ss01 | Card headings, sub-sections | -| Sub-heading | sohne-var | 22px (1.38rem) | 300 | 1.10 (tight) | -0.22px | ss01 | Smaller section heads | -| Body Large | sohne-var | 18px (1.13rem) | 300 | 1.40 | normal | ss01 | Feature descriptions, intro text | -| Body | sohne-var | 16px (1.00rem) | 300-400 | 1.40 | normal | ss01 | Standard reading text | -| Button | sohne-var | 16px (1.00rem) | 400 | 1.00 (tight) | normal | ss01 | Primary button text | -| Button Small | sohne-var | 14px (0.88rem) | 400 | 1.00 (tight) | normal | ss01 | Secondary/compact buttons | -| Link | sohne-var | 14px (0.88rem) | 400 | 1.00 (tight) | normal | ss01 | Navigation links | -| Caption | sohne-var | 13px (0.81rem) | 400 | normal | normal | ss01 | Small labels, metadata | -| Caption Small | sohne-var | 12px (0.75rem) | 300-400 | 1.33-1.45 | normal | ss01 | Fine print, timestamps | -| Caption Tabular | sohne-var | 12px (0.75rem) | 300-400 | 1.33 | -0.36px | tnum | Financial data, numbers | -| Micro | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | 0.1px | ss01 | Tiny labels, axis markers | -| Micro Tabular | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | -0.3px | tnum | Chart data, small numbers | -| Nano | sohne-var | 8px (0.50rem) | 300 | 1.07 (tight) | normal | ss01 | Smallest labels | -| Code Body | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | -- | Code blocks, syntax | -| Code Bold | SourceCodePro | 12px (0.75rem) | 700 | 2.00 (relaxed) | normal | -- | Bold code, keywords | -| Code Label | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | uppercase | Technical labels | -| Code Micro | SourceCodePro | 9px (0.56rem) | 500 | 1.00 (tight) | normal | ss01 | Tiny code annotations | - -### Principles -- **Light weight as signature**: Weight 300 at display sizes is Stripe's most distinctive typographic choice. Where others use 600-700 to command attention, Stripe uses lightness as luxury -- the text is so confident it doesn't need weight to be authoritative. -- **ss01 everywhere**: The `"ss01"` stylistic set is non-negotiable. It modifies specific glyphs (likely alternate `a`, `g`, `l` forms) to create a more geometric, contemporary feel across all sohne-var text. -- **Two OpenType modes**: `"ss01"` for display/body text, `"tnum"` for tabular numerals in financial data. These never overlap -- a number in a paragraph uses ss01, a number in a data table uses tnum. -- **Progressive tracking**: Letter-spacing tightens proportionally with size: -1.4px at 56px, -0.96px at 48px, -0.64px at 32px, -0.26px at 26px, normal at 16px and below. -- **Two-weight simplicity**: Primarily 300 (body and headings) and 400 (UI/buttons). No bold (700) in the primary font -- SourceCodePro uses 500/700 for code contrast. - -## 4. Component Stylings - -### Buttons - -**Primary Purple** -- Background: `#533afd` -- Text: `#ffffff` -- Padding: 8px 16px -- Radius: 4px -- Font: 16px sohne-var weight 400, `"ss01"` -- Hover: `#4434d4` background -- Use: Primary CTA ("Start now", "Contact sales") - -**Ghost / Outlined** -- Background: transparent -- Text: `#533afd` -- Padding: 8px 16px -- Radius: 4px -- Border: `1px solid #b9b9f9` -- Font: 16px sohne-var weight 400, `"ss01"` -- Hover: background shifts to `rgba(83,58,253,0.05)` -- Use: Secondary actions - -**Transparent Info** -- Background: transparent -- Text: `#2874ad` -- Padding: 8px 16px -- Radius: 4px -- Border: `1px solid rgba(43,145,223,0.2)` -- Use: Tertiary/info-level actions - -**Neutral Ghost** -- Background: transparent (`rgba(255,255,255,0)`) -- Text: `rgba(16,16,16,0.3)` -- Padding: 8px 16px -- Radius: 4px -- Outline: `1px solid rgb(212,222,233)` -- Use: Disabled or muted actions - -### Cards & Containers -- Background: `#ffffff` -- Border: `1px solid #e5edf5` (standard) or `1px solid #061b31` (dark accent) -- Radius: 4px (tight), 5px (standard), 6px (comfortable), 8px (featured) -- Shadow (standard): `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` -- Shadow (ambient): `rgba(23,23,23,0.08) 0px 15px 35px 0px` -- Hover: shadow intensifies, often adding the blue-tinted layer - -### Badges / Tags / Pills -**Neutral Pill** -- Background: `#ffffff` -- Text: `#000000` -- Padding: 0px 6px -- Radius: 4px -- Border: `1px solid #f6f9fc` -- Font: 11px weight 400 - -**Success Badge** -- Background: `rgba(21,190,83,0.2)` -- Text: `#108c3d` -- Padding: 1px 6px -- Radius: 4px -- Border: `1px solid rgba(21,190,83,0.4)` -- Font: 10px weight 300 - -### Inputs & Forms -- Border: `1px solid #e5edf5` -- Radius: 4px -- Focus: `1px solid #533afd` or purple ring -- Label: `#273951`, 14px sohne-var -- Text: `#061b31` -- Placeholder: `#64748d` - -### Navigation -- Clean horizontal nav on white, sticky with blur backdrop -- Brand logotype left-aligned -- Links: sohne-var 14px weight 400, `#061b31` text with `"ss01"` -- Radius: 6px on nav container -- CTA: purple button right-aligned ("Sign in", "Start now") -- Mobile: hamburger toggle with 6px radius - -### Decorative Elements -**Dashed Borders** -- `1px dashed #362baa` (purple) for placeholder/drop zones -- `1px dashed #ffd7ef` (magenta) for magenta-themed decorative borders - -**Gradient Accents** -- Ruby-to-magenta gradients (`#ea2261` to `#f96bee`) for hero decorations -- Brand dark sections use `#1c1e54` backgrounds with white text - -## 5. Layout Principles - -### Spacing System -- Base unit: 8px -- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 11px, 12px, 14px, 16px, 18px, 20px -- Notable: The scale is dense at the small end (every 2px from 4-12), reflecting Stripe's precision-oriented UI for financial data - -### Grid & Container -- Max content width: approximately 1080px -- Hero: centered single-column with generous padding, lightweight headlines -- Feature sections: 2-3 column grids for feature cards -- Full-width dark sections with `#1c1e54` background for brand immersion -- Code/dashboard previews as contained cards with blue-tinted shadows - -### Whitespace Philosophy -- **Precision spacing**: Unlike the vast emptiness of minimalist systems, Stripe uses measured, purposeful whitespace. Every gap is a deliberate typographic choice. -- **Dense data, generous chrome**: Financial data displays (tables, charts) are tightly packed, but the UI chrome around them is generously spaced. This creates a sense of controlled density -- like a well-organized spreadsheet in a beautiful frame. -- **Section rhythm**: White sections alternate with dark brand sections (`#1c1e54`), creating a dramatic light/dark cadence that prevents monotony without introducing arbitrary color. - -### Border Radius Scale -- Micro (1px): Fine-grained elements, subtle rounding -- Standard (4px): Buttons, inputs, badges, cards -- the workhorse -- Comfortable (5px): Standard card containers -- Relaxed (6px): Navigation, larger interactive elements -- Large (8px): Featured cards, hero elements -- Compound: `0px 0px 6px 6px` for bottom-rounded containers (tab panels, dropdown footers) - -## 6. Depth & Elevation - -| Level | Treatment | Use | -|-------|-----------|-----| -| Flat (Level 0) | No shadow | Page background, inline text | -| Ambient (Level 1) | `rgba(23,23,23,0.06) 0px 3px 6px` | Subtle card lift, hover hints | -| Standard (Level 2) | `rgba(23,23,23,0.08) 0px 15px 35px` | Standard cards, content panels | -| Elevated (Level 3) | `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` | Featured cards, dropdowns, popovers | -| Deep (Level 4) | `rgba(3,3,39,0.25) 0px 14px 21px -14px, rgba(0,0,0,0.1) 0px 8px 17px -8px` | Modals, floating panels | -| Ring (Accessibility) | `2px solid #533afd` outline | Keyboard focus ring | - -**Shadow Philosophy**: Stripe's shadow system is built on a principle of chromatic depth. Where most design systems use neutral gray or black shadows, Stripe's primary shadow color (`rgba(50,50,93,0.25)`) is a deep blue-gray that echoes the brand's navy palette. This creates shadows that don't just add depth -- they add brand atmosphere. The multi-layer approach pairs this blue-tinted shadow with a pure black secondary layer (`rgba(0,0,0,0.1)`) at a different offset, creating a parallax-like depth where the branded shadow sits farther from the element and the neutral shadow sits closer. The negative spread values (-30px, -18px) ensure shadows don't extend beyond the element's footprint horizontally, keeping elevation vertical and controlled. - -### Decorative Depth -- Dark brand sections (`#1c1e54`) create immersive depth through background color contrast -- Gradient overlays with ruby-to-magenta transitions for hero decorations -- Shadow color `rgba(0,55,112,0.08)` (`--hds-color-shadow-sm-top`) for top-edge shadows on sticky elements - -## 7. Do's and Don'ts - -### Do -- Use sohne-var with `"ss01"` on every text element -- the stylistic set IS the brand -- Use weight 300 for all headlines and body text -- lightness is the signature -- Apply blue-tinted shadows (`rgba(50,50,93,0.25)`) for all elevated elements -- Use `#061b31` (deep navy) for headings instead of `#000000` -- the warmth matters -- Keep border-radius between 4px-8px -- conservative rounding is intentional -- Use `"tnum"` for any tabular/financial number display -- Layer shadows: blue-tinted far + neutral close for depth parallax -- Use `#533afd` purple as the primary interactive/CTA color - -### Don't -- Don't use weight 600-700 for sohne-var headlines -- weight 300 is the brand voice -- Don't use large border-radius (12px+, pill shapes) on cards or buttons -- Stripe is conservative -- Don't use neutral gray shadows -- always tint with blue (`rgba(50,50,93,...)`) -- Don't skip `"ss01"` on any sohne-var text -- the alternate glyphs define the personality -- Don't use pure black (`#000000`) for headings -- always `#061b31` deep navy -- Don't use warm accent colors (orange, yellow) for interactive elements -- purple is primary -- Don't apply positive letter-spacing at display sizes -- Stripe tracks tight -- Don't use the magenta/ruby accents for buttons or links -- they're decorative/gradient only - -## 8. Responsive Behavior - -### Breakpoints -| Name | Width | Key Changes | -|------|-------|-------------| -| Mobile | <640px | Single column, reduced heading sizes, stacked cards | -| Tablet | 640-1024px | 2-column grids, moderate padding | -| Desktop | 1024-1280px | Full layout, 3-column feature grids | -| Large Desktop | >1280px | Centered content with generous margins | - -### Touch Targets -- Buttons use comfortable padding (8px-16px vertical) -- Navigation links at 14px with adequate spacing -- Badges have 6px horizontal padding minimum for tap targets -- Mobile nav toggle with 6px radius button - -### Collapsing Strategy -- Hero: 56px display -> 32px on mobile, weight 300 maintained -- Navigation: horizontal links + CTAs -> hamburger toggle -- Feature cards: 3-column -> 2-column -> single column stacked -- Dark brand sections: maintain full-width treatment, reduce internal padding -- Financial data tables: horizontal scroll on mobile -- Section spacing: 64px+ -> 40px on mobile -- Typography scale compresses: 56px -> 48px -> 32px hero sizes across breakpoints - -### Image Behavior -- Dashboard/product screenshots maintain blue-tinted shadow at all sizes -- Hero gradient decorations simplify on mobile -- Code blocks maintain `SourceCodePro` treatment, may horizontally scroll -- Card images maintain consistent 4px-6px border-radius - -## 9. Agent Prompt Guide - -### Quick Color Reference -- Primary CTA: Stripe Purple (`#533afd`) -- CTA Hover: Purple Dark (`#4434d4`) -- Background: Pure White (`#ffffff`) -- Heading text: Deep Navy (`#061b31`) -- Body text: Slate (`#64748d`) -- Label text: Dark Slate (`#273951`) -- Border: Soft Blue (`#e5edf5`) -- Link: Stripe Purple (`#533afd`) -- Dark section: Brand Dark (`#1c1e54`) -- Success: Green (`#15be53`) -- Accent decorative: Ruby (`#ea2261`), Magenta (`#f96bee`) - -### Example Component Prompts -- "Create a hero section on white background. Headline at 48px sohne-var weight 300, line-height 1.15, letter-spacing -0.96px, color #061b31, font-feature-settings 'ss01'. Subtitle at 18px weight 300, line-height 1.40, color #64748d. Purple CTA button (#533afd, 4px radius, 8px 16px padding, white text) and ghost button (transparent, 1px solid #b9b9f9, #533afd text, 4px radius)." -- "Design a card: white background, 1px solid #e5edf5 border, 6px radius. Shadow: rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px. Title at 22px sohne-var weight 300, letter-spacing -0.22px, color #061b31, 'ss01'. Body at 16px weight 300, #64748d." -- "Build a success badge: rgba(21,190,83,0.2) background, #108c3d text, 4px radius, 1px 6px padding, 10px sohne-var weight 300, border 1px solid rgba(21,190,83,0.4)." -- "Create navigation: white sticky header with backdrop-filter blur(12px). sohne-var 14px weight 400 for links, #061b31 text, 'ss01'. Purple CTA 'Start now' right-aligned (#533afd bg, white text, 4px radius). Nav container 6px radius." -- "Design a dark brand section: #1c1e54 background, white text. Headline 32px sohne-var weight 300, letter-spacing -0.64px, 'ss01'. Body 16px weight 300, rgba(255,255,255,0.7). Cards inside use rgba(255,255,255,0.1) border with 6px radius." - -### Iteration Guide -1. Always enable `font-feature-settings: "ss01"` on sohne-var text -- this is the brand's typographic DNA -2. Weight 300 is the default; use 400 only for buttons/links/navigation -3. Shadow formula: `rgba(50,50,93,0.25) 0px Y1 B1 -S1, rgba(0,0,0,0.1) 0px Y2 B2 -S2` where Y1/B1 are larger (far shadow) and Y2/B2 are smaller (near shadow) -4. Heading color is `#061b31` (deep navy), body is `#64748d` (slate), labels are `#273951` (dark slate) -5. Border-radius stays in the 4px-8px range -- never use pill shapes or large rounding -6. Use `"tnum"` for any numbers in tables, charts, or financial displays -7. Dark sections use `#1c1e54` -- not black, not gray, but a deep branded indigo -8. SourceCodePro for code at 12px/500 with 2.00 line-height (very generous for readability) +# Design System Inspired by Stripe + +## 1. Visual Theme & Atmosphere + +Stripe's website is the gold standard of fintech design -- a system that manages to feel simultaneously technical and luxurious, precise and warm. The page opens on a clean white canvas (`#ffffff`) with deep navy headings (`#061b31`) and a signature purple (`#533afd`) that functions as both brand anchor and interactive accent. This isn't the cold, clinical purple of enterprise software; it's a rich, saturated violet that reads as confident and premium. The overall impression is of a financial institution redesigned by a world-class type foundry. + +The custom `sohne-var` variable font is the defining element of Stripe's visual identity. Every text element enables the OpenType `"ss01"` stylistic set, which modifies character shapes for a distinctly geometric, modern feel. At display sizes (48px-56px), sohne-var runs at weight 300 -- an extraordinarily light weight for headlines that creates an ethereal, almost whispered authority. This is the opposite of the "bold hero headline" convention; Stripe's headlines feel like they don't need to shout. The negative letter-spacing (-1.4px at 56px, -0.96px at 48px) tightens the text into dense, engineered blocks. At smaller sizes, the system also uses weight 300 with proportionally reduced tracking, and tabular numerals via `"tnum"` for financial data display. + +What truly distinguishes Stripe is its shadow system. Rather than the flat or single-layer approach of most sites, Stripe uses multi-layer, blue-tinted shadows: the signature `rgba(50,50,93,0.25)` combined with `rgba(0,0,0,0.1)` creates shadows with a cool, almost atmospheric depth -- like elements are floating in a twilight sky. The blue-gray undertone of the primary shadow color (50,50,93) ties directly to the navy-purple brand palette, making even elevation feel on-brand. + +**Key Characteristics:** +- sohne-var with OpenType `"ss01"` on all text -- a custom stylistic set that defines the brand's letterforms +- Weight 300 as the signature headline weight -- light, confident, anti-convention +- Negative letter-spacing at display sizes (-1.4px at 56px, progressive relaxation downward) +- Blue-tinted multi-layer shadows using `rgba(50,50,93,0.25)` -- elevation that feels brand-colored +- Deep navy (`#061b31`) headings instead of black -- warm, premium, financial-grade +- Conservative border-radius (4px-8px) -- nothing pill-shaped, nothing harsh +- Ruby (`#ea2261`) and magenta (`#f96bee`) accents for gradient and decorative elements +- `SourceCodePro` as the monospace companion for code and technical labels + +## 2. Color Palette & Roles + +### Primary +- **Stripe Purple** (`#533afd`): Primary brand color, CTA backgrounds, link text, interactive highlights. A saturated blue-violet that anchors the entire system. +- **Deep Navy** (`#061b31`): `--hds-color-heading-solid`. Primary heading color. Not black, not gray -- a very dark blue that adds warmth and depth to text. +- **Pure White** (`#ffffff`): Page background, card surfaces, button text on dark backgrounds. + +### Brand & Dark +- **Brand Dark** (`#1c1e54`): `--hds-color-util-brand-900`. Deep indigo for dark sections, footer backgrounds, and immersive brand moments. +- **Dark Navy** (`#0d253d`): `--hds-color-core-neutral-975`. The darkest neutral -- almost-black with a blue undertone for maximum depth without harshness. + +### Accent Colors +- **Ruby** (`#ea2261`): `--hds-color-accentColorMode-ruby-icon-solid`. Warm red-pink for icons, alerts, and accent elements. +- **Magenta** (`#f96bee`): `--hds-color-accentColorMode-magenta-icon-gradientMiddle`. Vivid pink-purple for gradients and decorative highlights. +- **Magenta Light** (`#ffd7ef`): `--hds-color-util-accent-magenta-100`. Tinted surface for magenta-themed cards and badges. + +### Interactive +- **Primary Purple** (`#533afd`): Primary link color, active states, selected elements. +- **Purple Hover** (`#4434d4`): Darker purple for hover states on primary elements. +- **Purple Deep** (`#2e2b8c`): `--hds-color-button-ui-iconHover`. Dark purple for icon hover states. +- **Purple Light** (`#b9b9f9`): `--hds-color-action-bg-subduedHover`. Soft lavender for subdued hover backgrounds. +- **Purple Mid** (`#665efd`): `--hds-color-input-selector-text-range`. Range selector and input highlight color. + +### Neutral Scale +- **Heading** (`#061b31`): Primary headings, nav text, strong labels. +- **Label** (`#273951`): `--hds-color-input-text-label`. Form labels, secondary headings. +- **Body** (`#64748d`): Secondary text, descriptions, captions. +- **Success Green** (`#15be53`): Status badges, success indicators (with 0.2-0.4 alpha for backgrounds/borders). +- **Success Text** (`#108c3d`): Success badge text color. +- **Lemon** (`#9b6829`): `--hds-color-core-lemon-500`. Warning and highlight accent. + +### Surface & Borders +- **Border Default** (`#e5edf5`): Standard border color for cards, dividers, and containers. +- **Border Purple** (`#b9b9f9`): Active/selected state borders on buttons and inputs. +- **Border Soft Purple** (`#d6d9fc`): Subtle purple-tinted borders for secondary elements. +- **Border Magenta** (`#ffd7ef`): Pink-tinted borders for magenta-themed elements. +- **Border Dashed** (`#362baa`): Dashed borders for drop zones and placeholder elements. + +### Shadow Colors +- **Shadow Blue** (`rgba(50,50,93,0.25)`): The signature -- blue-tinted primary shadow color. +- **Shadow Dark Blue** (`rgba(3,3,39,0.25)`): Deeper blue shadow for elevated elements. +- **Shadow Black** (`rgba(0,0,0,0.1)`): Secondary shadow layer for depth reinforcement. +- **Shadow Ambient** (`rgba(23,23,23,0.08)`): Soft ambient shadow for subtle elevation. +- **Shadow Soft** (`rgba(23,23,23,0.06)`): Minimal ambient shadow for light lift. + +## 3. Typography Rules + +### Font Family +- **Primary**: `sohne-var`, with fallback: `SF Pro Display` +- **Monospace**: `SourceCodePro`, with fallback: `SFMono-Regular` +- **OpenType Features**: `"ss01"` enabled globally on all sohne-var text; `"tnum"` for tabular numbers on financial data and captions. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Features | Notes | +|------|------|------|--------|-------------|----------------|----------|-------| +| Display Hero | sohne-var | 56px (3.50rem) | 300 | 1.03 (tight) | -1.4px | ss01 | Maximum size, whisper-weight authority | +| Display Large | sohne-var | 48px (3.00rem) | 300 | 1.15 (tight) | -0.96px | ss01 | Secondary hero headlines | +| Section Heading | sohne-var | 32px (2.00rem) | 300 | 1.10 (tight) | -0.64px | ss01 | Feature section titles | +| Sub-heading Large | sohne-var | 26px (1.63rem) | 300 | 1.12 (tight) | -0.26px | ss01 | Card headings, sub-sections | +| Sub-heading | sohne-var | 22px (1.38rem) | 300 | 1.10 (tight) | -0.22px | ss01 | Smaller section heads | +| Body Large | sohne-var | 18px (1.13rem) | 300 | 1.40 | normal | ss01 | Feature descriptions, intro text | +| Body | sohne-var | 16px (1.00rem) | 300-400 | 1.40 | normal | ss01 | Standard reading text | +| Button | sohne-var | 16px (1.00rem) | 400 | 1.00 (tight) | normal | ss01 | Primary button text | +| Button Small | sohne-var | 14px (0.88rem) | 400 | 1.00 (tight) | normal | ss01 | Secondary/compact buttons | +| Link | sohne-var | 14px (0.88rem) | 400 | 1.00 (tight) | normal | ss01 | Navigation links | +| Caption | sohne-var | 13px (0.81rem) | 400 | normal | normal | ss01 | Small labels, metadata | +| Caption Small | sohne-var | 12px (0.75rem) | 300-400 | 1.33-1.45 | normal | ss01 | Fine print, timestamps | +| Caption Tabular | sohne-var | 12px (0.75rem) | 300-400 | 1.33 | -0.36px | tnum | Financial data, numbers | +| Micro | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | 0.1px | ss01 | Tiny labels, axis markers | +| Micro Tabular | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | -0.3px | tnum | Chart data, small numbers | +| Nano | sohne-var | 8px (0.50rem) | 300 | 1.07 (tight) | normal | ss01 | Smallest labels | +| Code Body | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | -- | Code blocks, syntax | +| Code Bold | SourceCodePro | 12px (0.75rem) | 700 | 2.00 (relaxed) | normal | -- | Bold code, keywords | +| Code Label | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | uppercase | Technical labels | +| Code Micro | SourceCodePro | 9px (0.56rem) | 500 | 1.00 (tight) | normal | ss01 | Tiny code annotations | + +### Principles +- **Light weight as signature**: Weight 300 at display sizes is Stripe's most distinctive typographic choice. Where others use 600-700 to command attention, Stripe uses lightness as luxury -- the text is so confident it doesn't need weight to be authoritative. +- **ss01 everywhere**: The `"ss01"` stylistic set is non-negotiable. It modifies specific glyphs (likely alternate `a`, `g`, `l` forms) to create a more geometric, contemporary feel across all sohne-var text. +- **Two OpenType modes**: `"ss01"` for display/body text, `"tnum"` for tabular numerals in financial data. These never overlap -- a number in a paragraph uses ss01, a number in a data table uses tnum. +- **Progressive tracking**: Letter-spacing tightens proportionally with size: -1.4px at 56px, -0.96px at 48px, -0.64px at 32px, -0.26px at 26px, normal at 16px and below. +- **Two-weight simplicity**: Primarily 300 (body and headings) and 400 (UI/buttons). No bold (700) in the primary font -- SourceCodePro uses 500/700 for code contrast. + +## 4. Component Stylings + +### Buttons + +**Primary Purple** +- Background: `#533afd` +- Text: `#ffffff` +- Padding: 8px 16px +- Radius: 4px +- Font: 16px sohne-var weight 400, `"ss01"` +- Hover: `#4434d4` background +- Use: Primary CTA ("Start now", "Contact sales") + +**Ghost / Outlined** +- Background: transparent +- Text: `#533afd` +- Padding: 8px 16px +- Radius: 4px +- Border: `1px solid #b9b9f9` +- Font: 16px sohne-var weight 400, `"ss01"` +- Hover: background shifts to `rgba(83,58,253,0.05)` +- Use: Secondary actions + +**Transparent Info** +- Background: transparent +- Text: `#2874ad` +- Padding: 8px 16px +- Radius: 4px +- Border: `1px solid rgba(43,145,223,0.2)` +- Use: Tertiary/info-level actions + +**Neutral Ghost** +- Background: transparent (`rgba(255,255,255,0)`) +- Text: `rgba(16,16,16,0.3)` +- Padding: 8px 16px +- Radius: 4px +- Outline: `1px solid rgb(212,222,233)` +- Use: Disabled or muted actions + +### Cards & Containers +- Background: `#ffffff` +- Border: `1px solid #e5edf5` (standard) or `1px solid #061b31` (dark accent) +- Radius: 4px (tight), 5px (standard), 6px (comfortable), 8px (featured) +- Shadow (standard): `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` +- Shadow (ambient): `rgba(23,23,23,0.08) 0px 15px 35px 0px` +- Hover: shadow intensifies, often adding the blue-tinted layer + +### Badges / Tags / Pills +**Neutral Pill** +- Background: `#ffffff` +- Text: `#000000` +- Padding: 0px 6px +- Radius: 4px +- Border: `1px solid #f6f9fc` +- Font: 11px weight 400 + +**Success Badge** +- Background: `rgba(21,190,83,0.2)` +- Text: `#108c3d` +- Padding: 1px 6px +- Radius: 4px +- Border: `1px solid rgba(21,190,83,0.4)` +- Font: 10px weight 300 + +### Inputs & Forms +- Border: `1px solid #e5edf5` +- Radius: 4px +- Focus: `1px solid #533afd` or purple ring +- Label: `#273951`, 14px sohne-var +- Text: `#061b31` +- Placeholder: `#64748d` + +### Navigation +- Clean horizontal nav on white, sticky with blur backdrop +- Brand logotype left-aligned +- Links: sohne-var 14px weight 400, `#061b31` text with `"ss01"` +- Radius: 6px on nav container +- CTA: purple button right-aligned ("Sign in", "Start now") +- Mobile: hamburger toggle with 6px radius + +### Decorative Elements +**Dashed Borders** +- `1px dashed #362baa` (purple) for placeholder/drop zones +- `1px dashed #ffd7ef` (magenta) for magenta-themed decorative borders + +**Gradient Accents** +- Ruby-to-magenta gradients (`#ea2261` to `#f96bee`) for hero decorations +- Brand dark sections use `#1c1e54` backgrounds with white text + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 11px, 12px, 14px, 16px, 18px, 20px +- Notable: The scale is dense at the small end (every 2px from 4-12), reflecting Stripe's precision-oriented UI for financial data + +### Grid & Container +- Max content width: approximately 1080px +- Hero: centered single-column with generous padding, lightweight headlines +- Feature sections: 2-3 column grids for feature cards +- Full-width dark sections with `#1c1e54` background for brand immersion +- Code/dashboard previews as contained cards with blue-tinted shadows + +### Whitespace Philosophy +- **Precision spacing**: Unlike the vast emptiness of minimalist systems, Stripe uses measured, purposeful whitespace. Every gap is a deliberate typographic choice. +- **Dense data, generous chrome**: Financial data displays (tables, charts) are tightly packed, but the UI chrome around them is generously spaced. This creates a sense of controlled density -- like a well-organized spreadsheet in a beautiful frame. +- **Section rhythm**: White sections alternate with dark brand sections (`#1c1e54`), creating a dramatic light/dark cadence that prevents monotony without introducing arbitrary color. + +### Border Radius Scale +- Micro (1px): Fine-grained elements, subtle rounding +- Standard (4px): Buttons, inputs, badges, cards -- the workhorse +- Comfortable (5px): Standard card containers +- Relaxed (6px): Navigation, larger interactive elements +- Large (8px): Featured cards, hero elements +- Compound: `0px 0px 6px 6px` for bottom-rounded containers (tab panels, dropdown footers) + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page background, inline text | +| Ambient (Level 1) | `rgba(23,23,23,0.06) 0px 3px 6px` | Subtle card lift, hover hints | +| Standard (Level 2) | `rgba(23,23,23,0.08) 0px 15px 35px` | Standard cards, content panels | +| Elevated (Level 3) | `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` | Featured cards, dropdowns, popovers | +| Deep (Level 4) | `rgba(3,3,39,0.25) 0px 14px 21px -14px, rgba(0,0,0,0.1) 0px 8px 17px -8px` | Modals, floating panels | +| Ring (Accessibility) | `2px solid #533afd` outline | Keyboard focus ring | + +**Shadow Philosophy**: Stripe's shadow system is built on a principle of chromatic depth. Where most design systems use neutral gray or black shadows, Stripe's primary shadow color (`rgba(50,50,93,0.25)`) is a deep blue-gray that echoes the brand's navy palette. This creates shadows that don't just add depth -- they add brand atmosphere. The multi-layer approach pairs this blue-tinted shadow with a pure black secondary layer (`rgba(0,0,0,0.1)`) at a different offset, creating a parallax-like depth where the branded shadow sits farther from the element and the neutral shadow sits closer. The negative spread values (-30px, -18px) ensure shadows don't extend beyond the element's footprint horizontally, keeping elevation vertical and controlled. + +### Decorative Depth +- Dark brand sections (`#1c1e54`) create immersive depth through background color contrast +- Gradient overlays with ruby-to-magenta transitions for hero decorations +- Shadow color `rgba(0,55,112,0.08)` (`--hds-color-shadow-sm-top`) for top-edge shadows on sticky elements + +## 7. Do's and Don'ts + +### Do +- Use sohne-var with `"ss01"` on every text element -- the stylistic set IS the brand +- Use weight 300 for all headlines and body text -- lightness is the signature +- Apply blue-tinted shadows (`rgba(50,50,93,0.25)`) for all elevated elements +- Use `#061b31` (deep navy) for headings instead of `#000000` -- the warmth matters +- Keep border-radius between 4px-8px -- conservative rounding is intentional +- Use `"tnum"` for any tabular/financial number display +- Layer shadows: blue-tinted far + neutral close for depth parallax +- Use `#533afd` purple as the primary interactive/CTA color + +### Don't +- Don't use weight 600-700 for sohne-var headlines -- weight 300 is the brand voice +- Don't use large border-radius (12px+, pill shapes) on cards or buttons -- Stripe is conservative +- Don't use neutral gray shadows -- always tint with blue (`rgba(50,50,93,...)`) +- Don't skip `"ss01"` on any sohne-var text -- the alternate glyphs define the personality +- Don't use pure black (`#000000`) for headings -- always `#061b31` deep navy +- Don't use warm accent colors (orange, yellow) for interactive elements -- purple is primary +- Don't apply positive letter-spacing at display sizes -- Stripe tracks tight +- Don't use the magenta/ruby accents for buttons or links -- they're decorative/gradient only + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, reduced heading sizes, stacked cards | +| Tablet | 640-1024px | 2-column grids, moderate padding | +| Desktop | 1024-1280px | Full layout, 3-column feature grids | +| Large Desktop | >1280px | Centered content with generous margins | + +### Touch Targets +- Buttons use comfortable padding (8px-16px vertical) +- Navigation links at 14px with adequate spacing +- Badges have 6px horizontal padding minimum for tap targets +- Mobile nav toggle with 6px radius button + +### Collapsing Strategy +- Hero: 56px display -> 32px on mobile, weight 300 maintained +- Navigation: horizontal links + CTAs -> hamburger toggle +- Feature cards: 3-column -> 2-column -> single column stacked +- Dark brand sections: maintain full-width treatment, reduce internal padding +- Financial data tables: horizontal scroll on mobile +- Section spacing: 64px+ -> 40px on mobile +- Typography scale compresses: 56px -> 48px -> 32px hero sizes across breakpoints + +### Image Behavior +- Dashboard/product screenshots maintain blue-tinted shadow at all sizes +- Hero gradient decorations simplify on mobile +- Code blocks maintain `SourceCodePro` treatment, may horizontally scroll +- Card images maintain consistent 4px-6px border-radius + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Stripe Purple (`#533afd`) +- CTA Hover: Purple Dark (`#4434d4`) +- Background: Pure White (`#ffffff`) +- Heading text: Deep Navy (`#061b31`) +- Body text: Slate (`#64748d`) +- Label text: Dark Slate (`#273951`) +- Border: Soft Blue (`#e5edf5`) +- Link: Stripe Purple (`#533afd`) +- Dark section: Brand Dark (`#1c1e54`) +- Success: Green (`#15be53`) +- Accent decorative: Ruby (`#ea2261`), Magenta (`#f96bee`) + +### Example Component Prompts +- "Create a hero section on white background. Headline at 48px sohne-var weight 300, line-height 1.15, letter-spacing -0.96px, color #061b31, font-feature-settings 'ss01'. Subtitle at 18px weight 300, line-height 1.40, color #64748d. Purple CTA button (#533afd, 4px radius, 8px 16px padding, white text) and ghost button (transparent, 1px solid #b9b9f9, #533afd text, 4px radius)." +- "Design a card: white background, 1px solid #e5edf5 border, 6px radius. Shadow: rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px. Title at 22px sohne-var weight 300, letter-spacing -0.22px, color #061b31, 'ss01'. Body at 16px weight 300, #64748d." +- "Build a success badge: rgba(21,190,83,0.2) background, #108c3d text, 4px radius, 1px 6px padding, 10px sohne-var weight 300, border 1px solid rgba(21,190,83,0.4)." +- "Create navigation: white sticky header with backdrop-filter blur(12px). sohne-var 14px weight 400 for links, #061b31 text, 'ss01'. Purple CTA 'Start now' right-aligned (#533afd bg, white text, 4px radius). Nav container 6px radius." +- "Design a dark brand section: #1c1e54 background, white text. Headline 32px sohne-var weight 300, letter-spacing -0.64px, 'ss01'. Body 16px weight 300, rgba(255,255,255,0.7). Cards inside use rgba(255,255,255,0.1) border with 6px radius." + +### Iteration Guide +1. Always enable `font-feature-settings: "ss01"` on sohne-var text -- this is the brand's typographic DNA +2. Weight 300 is the default; use 400 only for buttons/links/navigation +3. Shadow formula: `rgba(50,50,93,0.25) 0px Y1 B1 -S1, rgba(0,0,0,0.1) 0px Y2 B2 -S2` where Y1/B1 are larger (far shadow) and Y2/B2 are smaller (near shadow) +4. Heading color is `#061b31` (deep navy), body is `#64748d` (slate), labels are `#273951` (dark slate) +5. Border-radius stays in the 4px-8px range -- never use pill shapes or large rounding +6. Use `"tnum"` for any numbers in tables, charts, or financial displays +7. Dark sections use `#1c1e54` -- not black, not gray, but a deep branded indigo +8. SourceCodePro for code at 12px/500 with 2.00 line-height (very generous for readability) diff --git a/FINAL_DELIVERY_PACKAGE_TIMO.md b/FINAL_DELIVERY_PACKAGE_TIMO.md index f5f23ce..4f7684f 100644 --- a/FINAL_DELIVERY_PACKAGE_TIMO.md +++ b/FINAL_DELIVERY_PACKAGE_TIMO.md @@ -1,157 +1,157 @@ -# FINAL DELIVERY PACKAGE — QR Master Outreach - -> [!IMPORTANT] -> **Recipient:** knuth.timo@gmail.com -> **Sender:** Antigravity AI -> **Date:** 2026-04-13 -> -> This document contains all the outreach emails, guest post pitches, and corresponding articles prepared for the QR Master SEO and content marketing campaign. -> -> **Note:** I cannot send emails directly from this interface. Please copy the content below into your email client to send to the respective targets. - ---- - -## Table of Contents -1. [Guest Post Pitches & Articles](#1-guest-post-pitches--articles) - - [DigitalGpoint](#digitalgpoint) - - [Techdee](#techdee) - - [SEO Sandwitch](#seo-sandwitch) -2. [Web 2.0 & Self-Publishing Articles](#2-web-20--self-publishing-articles) - - [Medium](#medium) - - [LinkedIn Pulse](#linkedin-pulse) - - [Substack Series](#substack-series) -3. [Resource Outreach Emails (10 Targets)](#3-resource-outreach-emails-10-targets) - ---- - -## 1. Guest Post Pitches & Articles - -### DigitalGpoint -**Recipent:** digitalgpoint.webmail@gmail.com -**Article Type:** Guest Post - -#### Submission Email -**Subject:** Solving the "print gap" for small businesses - -Hi [Name], - -I’ve noticed DigitalGpoint covers a lot of practical tools for business growth. One area that often gets overlooked is the bridge between physical marketing (flyers, menus, signage) and digital analytics. - -I’ve put together a practical guide on "Managing the Move from Static to Dynamic Print." It explains how small business owners are using dynamic redirect layers to make their physical materials editable after printing—saving them from costly reprints when a URL or price changes. - -It’s a straightforward, workflow-focused piece that I believe your readers would find highly actionable. - -Would you be open to reviewing a draft for a guest contribution? - -Best, - -Timo -(Writer & Strategist) - -#### Accompanying Article: "Every Print Order Feels Final (Until You Use a Dynamic Layer)" -[View full article content in digitalGpoint-dynamic-vs-static-qr-codes.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/digitalGpoint-dynamic-vs-static-qr-codes.md) - ---- - -### Techdee -**Recipient:** Blayget@gmail.com -**Article Type:** Guest Post (Tier 2) - -#### Submission Email -**Subject:** Offline-to-Online marketing workflows - -Hi [Name], - -I’ve been following Techdee’s tech and marketing tutorials for some time. - -I’m currently finalizing a piece titled: **"Beyond the Scan: 5 Professional QR Strategies for Modern Marketing."** - -The article moves past the basic "link a code to a site" approach and explores practical technical workflows: using dynamic redirects to avoid reprints, pulling scan data into GA4 for attribution, and managing bulk physical assets. - -It’s a 700-word, list-style tutorial that fits your current format. Is this something you'd like to see for a guest contribution? - -Best, - -Timo -(Writer & Strategist) - -#### Accompanying Article: "Beyond the Scan: 5 Professional QR Strategies for Modern Marketing" -[View full article content in techdee-5-qr-code-strategies.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/techdee-5-qr-code-strategies.md) - ---- - -### SEO Sandwitch -**Recipient:** joydeep@seosandwitch.com -**Article Type:** Guest Post (Tier 1 - High Value) - -#### Submission Email -**Subject:** Attribution blind spots in physical marketing - -Hi Joydeep, - -I’ve been following SEO Sandwitch for a while—your recent piece on AI SEO and GEO was excellent. - -I’m reaching out because I’ve been working on a technical deep-dive that explores a massive attribution blind spot: physical marketing campaigns. - -The piece, **"QR Codes as an Offline-to-Online Signal,"** breaks down how marketers can pull scan data from flyers, packaging, and OOH materials into GA4 to finally close the loop on offline attribution. - -It covers: -- Using dynamic redirect layers as an attribution signal. -- The indirect impact of physical touchpoints on branded search volume. -- Technical setup for UTM-tagged dynamic codes. - -It’s not a superficial "marketing tips" post; it’s a strategist-level look at attribution data. - -I have a ~2,000 word draft ready. Would you be open to taking a look for a potential guest contribution? - -Best, - -Timo -(Writer & Strategist) - -#### Accompanying Article: "QR Codes as an Offline-to-Online Signal" -[View full article content in seosandwitch-qr-codes-offline-attribution.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/seosandwitch-qr-codes-offline-attribution.md) - ---- - -## 2. Web 2.0 & Self-Publishing Articles - -### Medium -**Target Platform:** Medium.com -**Publication:** Self-publish or submit to a marketing pub (e.g., Better Marketing) - -#### Article: "Beyond the Menu: 5 Practical Ways to Use QR Codes for Business Growth" -[View full article content in medium-5-underrated-qr-use-cases.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/medium-5-underrated-qr-use-cases.md) - ---- - -### LinkedIn Pulse -**Target Platform:** LinkedIn Personal Account - -#### Article: "Why Your Business Card Still Needs a QR Code in 2025" -[View full article content in linkedin-business-card-qr.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/linkedin-business-card-qr.md) - ---- - -### Substack Series -**Target Platform:** Substack Newsletter ("The QR Code Playbook") - -#### Content: 3-Issue Intro Series -[View full issues content in substack-playbook-series.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/substack-playbook-series.md) - ---- - -## 3. Resource Outreach Emails (10 Targets) - -These are short link-request emails targeting sites that list QR tools or marketing resources. - -**Targets & Templates:** -[View all 10 target details and templates in outreach-seo-emails.md](file:///c:/Users/a931627/Documents/QRMASTER/outreach-seo-emails.md) - ---- - -> [!TIP] -> **Next Steps:** -> 1. Start with **Web 2.0 publishing** (Medium, LinkedIn, Substack) to build topical authority. -> 2. Send the **Guest Post Pitches** (DigitalGpoint, Techdee, SEO Sandwitch) once the Web 2.0 posts are live so editors can see your writing quality. -> 3. Send the **Resource Outreach** emails in a batch of 5-10 per week. +# FINAL DELIVERY PACKAGE — QR Master Outreach + +> [!IMPORTANT] +> **Recipient:** knuth.timo@gmail.com +> **Sender:** Antigravity AI +> **Date:** 2026-04-13 +> +> This document contains all the outreach emails, guest post pitches, and corresponding articles prepared for the QR Master SEO and content marketing campaign. +> +> **Note:** I cannot send emails directly from this interface. Please copy the content below into your email client to send to the respective targets. + +--- + +## Table of Contents +1. [Guest Post Pitches & Articles](#1-guest-post-pitches--articles) + - [DigitalGpoint](#digitalgpoint) + - [Techdee](#techdee) + - [SEO Sandwitch](#seo-sandwitch) +2. [Web 2.0 & Self-Publishing Articles](#2-web-20--self-publishing-articles) + - [Medium](#medium) + - [LinkedIn Pulse](#linkedin-pulse) + - [Substack Series](#substack-series) +3. [Resource Outreach Emails (10 Targets)](#3-resource-outreach-emails-10-targets) + +--- + +## 1. Guest Post Pitches & Articles + +### DigitalGpoint +**Recipent:** digitalgpoint.webmail@gmail.com +**Article Type:** Guest Post + +#### Submission Email +**Subject:** Solving the "print gap" for small businesses + +Hi [Name], + +I’ve noticed DigitalGpoint covers a lot of practical tools for business growth. One area that often gets overlooked is the bridge between physical marketing (flyers, menus, signage) and digital analytics. + +I’ve put together a practical guide on "Managing the Move from Static to Dynamic Print." It explains how small business owners are using dynamic redirect layers to make their physical materials editable after printing—saving them from costly reprints when a URL or price changes. + +It’s a straightforward, workflow-focused piece that I believe your readers would find highly actionable. + +Would you be open to reviewing a draft for a guest contribution? + +Best, + +Timo +(Writer & Strategist) + +#### Accompanying Article: "Every Print Order Feels Final (Until You Use a Dynamic Layer)" +[View full article content in digitalGpoint-dynamic-vs-static-qr-codes.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/digitalGpoint-dynamic-vs-static-qr-codes.md) + +--- + +### Techdee +**Recipient:** Blayget@gmail.com +**Article Type:** Guest Post (Tier 2) + +#### Submission Email +**Subject:** Offline-to-Online marketing workflows + +Hi [Name], + +I’ve been following Techdee’s tech and marketing tutorials for some time. + +I’m currently finalizing a piece titled: **"Beyond the Scan: 5 Professional QR Strategies for Modern Marketing."** + +The article moves past the basic "link a code to a site" approach and explores practical technical workflows: using dynamic redirects to avoid reprints, pulling scan data into GA4 for attribution, and managing bulk physical assets. + +It’s a 700-word, list-style tutorial that fits your current format. Is this something you'd like to see for a guest contribution? + +Best, + +Timo +(Writer & Strategist) + +#### Accompanying Article: "Beyond the Scan: 5 Professional QR Strategies for Modern Marketing" +[View full article content in techdee-5-qr-code-strategies.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/techdee-5-qr-code-strategies.md) + +--- + +### SEO Sandwitch +**Recipient:** joydeep@seosandwitch.com +**Article Type:** Guest Post (Tier 1 - High Value) + +#### Submission Email +**Subject:** Attribution blind spots in physical marketing + +Hi Joydeep, + +I’ve been following SEO Sandwitch for a while—your recent piece on AI SEO and GEO was excellent. + +I’m reaching out because I’ve been working on a technical deep-dive that explores a massive attribution blind spot: physical marketing campaigns. + +The piece, **"QR Codes as an Offline-to-Online Signal,"** breaks down how marketers can pull scan data from flyers, packaging, and OOH materials into GA4 to finally close the loop on offline attribution. + +It covers: +- Using dynamic redirect layers as an attribution signal. +- The indirect impact of physical touchpoints on branded search volume. +- Technical setup for UTM-tagged dynamic codes. + +It’s not a superficial "marketing tips" post; it’s a strategist-level look at attribution data. + +I have a ~2,000 word draft ready. Would you be open to taking a look for a potential guest contribution? + +Best, + +Timo +(Writer & Strategist) + +#### Accompanying Article: "QR Codes as an Offline-to-Online Signal" +[View full article content in seosandwitch-qr-codes-offline-attribution.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/seosandwitch-qr-codes-offline-attribution.md) + +--- + +## 2. Web 2.0 & Self-Publishing Articles + +### Medium +**Target Platform:** Medium.com +**Publication:** Self-publish or submit to a marketing pub (e.g., Better Marketing) + +#### Article: "Beyond the Menu: 5 Practical Ways to Use QR Codes for Business Growth" +[View full article content in medium-5-underrated-qr-use-cases.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/medium-5-underrated-qr-use-cases.md) + +--- + +### LinkedIn Pulse +**Target Platform:** LinkedIn Personal Account + +#### Article: "Why Your Business Card Still Needs a QR Code in 2025" +[View full article content in linkedin-business-card-qr.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/linkedin-business-card-qr.md) + +--- + +### Substack Series +**Target Platform:** Substack Newsletter ("The QR Code Playbook") + +#### Content: 3-Issue Intro Series +[View full issues content in substack-playbook-series.md](file:///c:/Users/a931627/Documents/QRMASTER/articles/substack-playbook-series.md) + +--- + +## 3. Resource Outreach Emails (10 Targets) + +These are short link-request emails targeting sites that list QR tools or marketing resources. + +**Targets & Templates:** +[View all 10 target details and templates in outreach-seo-emails.md](file:///c:/Users/a931627/Documents/QRMASTER/outreach-seo-emails.md) + +--- + +> [!TIP] +> **Next Steps:** +> 1. Start with **Web 2.0 publishing** (Medium, LinkedIn, Substack) to build topical authority. +> 2. Send the **Guest Post Pitches** (DigitalGpoint, Techdee, SEO Sandwitch) once the Web 2.0 posts are live so editors can see your writing quality. +> 3. Send the **Resource Outreach** emails in a batch of 5-10 per week. diff --git a/PLAN_bulk_dynamic_and_barcode_.md b/PLAN_bulk_dynamic_and_barcode_.md index 62d8e9d..2b5a780 100644 --- a/PLAN_bulk_dynamic_and_barcode_.md +++ b/PLAN_bulk_dynamic_and_barcode_.md @@ -1,179 +1,179 @@ -# Feature Plan: Bulk Dynamic QR + Dynamic Barcode Generator - -## Feature 1: Bulk Generator → Dynamic QR freischalten - -### Ziel -Nutzer können beim Bulk-Import wählen ob sie statische oder dynamische QR-Codes erstellen. Dynamisch = DB-Einträge mit Slugs + Tracking. Nur für PRO/BUSINESS. - -### Aktueller Stand (Ist) -- `bulk-creation/page.tsx` generiert QR-Codes rein client-seitig (kein DB-Eintrag) -- `generateStaticQRCodes()` rendert SVGs lokal via `qrcode`-Library -- `saveQRCodesToDatabase()` sendet an `POST /api/qrs` mit `isStatic: true` — also immer statisch -- Kein Toggle Static/Dynamic vorhanden -- Kein Plan-Check für Dynamic im Bulk-Flow - -### Änderungen - -#### A) Frontend: `bulk-creation/page.tsx` - -1. **Toggle "Static / Dynamic" hinzufügen** (nach Plan-Check) - - Nur sichtbar/aktivierbar wenn `userPlan === 'PRO' || 'BUSINESS'` - - FREE-Nutzer sehen den Toggle gesperrt mit Upgrade-Hinweis - - State: `const [isDynamic, setIsDynamic] = useState(false)` - -2. **Interface erweitern** - ```ts - interface GeneratedQR { - title: string; - content: string; - svg: string; - slug?: string; // nur bei dynamic, nach API-Antwort gesetzt - redirectUrl?: string; // z.B. https://qrmaster.net/r/abc123 - } - ``` - -3. **Generierungslogik aufteilen** - - Static (wie bisher): client-seitig SVG generieren, kein DB-Eintrag nötig - - Dynamic: direkt `POST /api/qrs` pro Eintrag mit `isDynamic: true` → API gibt Slug zurück → QR encodiert `/r/[slug]` statt Original-URL - -4. **Preview-Spalte erweitern** - - Bei dynamic: Slug-Link anzeigen + "Ziel änderbar" Badge - - Download-ZIP enthält QR-SVGs die `/r/[slug]` encodieren - -5. **Limit-Anzeige** - - PRO: max 50 dynamic / Bulk-Run (entspricht QR-Limit) - - BUSINESS: max 500 - -#### B) Backend: `POST /api/qrs` - -Keine strukturelle Änderung nötig — der bestehende Endpunkt unterstützt bereits `isDynamic: false/true` und gibt `slug` zurück. Nur sicherstellen: - -- Plan-Limit-Check zählt korrekt bei Bulk-Erstellung (momentan prüft `POST /api/qrs` nur ob Gesamtanzahl < Limit — das bleibt so, aber Bulk erstellt X Requests nacheinander → ggf. Rate-Limit beachten) -- Evtl. neuen Endpunkt `POST /api/qrs/bulk` der ein Array entgegennimmt und in einer DB-Transaktion schreibt (besser als 500 Einzelrequests) - -#### C) Optionaler neuer Endpunkt: `POST /api/qrs/bulk` (empfohlen) - -```ts -// Body: { qrCodes: Array<{ title, content, contentType, isDynamic }>, plan } -// Response: { created: Array<{ id, slug, redirectUrl }>, failed: number } -// Vorteile: eine DB-Transaktion, ein CSRF-Check, schneller -``` - -Plan-Check: `if (isDynamic && plan === 'FREE') return 403` - ---- - -### Reihenfolge der Umsetzung - -1. Toggle + Plan-Check im Frontend -2. Dynamic-Generierungslogik (nutzt bestehenden `POST /api/qrs`) -3. (Optional) `POST /api/qrs/bulk` für Performance -4. ZIP-Download mit Redirect-URLs als Metadaten-CSV - ---- - -## Feature 2: Dynamischer Barcode Generator - -### Aufteilung: Landingpage (Marketing) + Dashboard (Funktion) - -**Wichtig:** "Dynamic" existiert nur im Dashboard `/create`. Die Landingpage erklärt das Konzept und treibt Nutzer zum Signup/Login — sie hat keinen eigenen Dynamic-Modus. - ---- - -### 2a) Landingpage: `/tools/dynamic-barcode-generator` - -**Ziel:** SEO-Traffic auf Keyword "barcode generator" (100k–1M, 0% Competition) konvertieren zu Signups. - -**Was die Landingpage NICHT hat:** -- Keinen Dynamic-Toggle -- Keine echte Dynamic-Funktionalität - -**Was die Landingpage HAT:** -- Bestehenden `BarcodeGeneratorClient` eingebettet (statischer Generator, unverändert) -- Erklärung was ein dynamischer Barcode ist + Vorteile -- Klarer CTA: "Create Dynamic Barcode → Sign up / Dashboard" - -**Aufbau** (`src/app/(main)/(marketing)/tools/dynamic-barcode-generator/page.tsx`): - -``` -Hero-Section - H1: "Dynamic Barcode Generator — Update Any Barcode Without Reprinting" - Subtext: Erklärt Tracking + Redirect-Konzept - CTA-Button: "Create Dynamic Barcode" → /login oder /signup - -Tool-Section - BarcodeGeneratorClient (statisch, wie bisher, keine Änderungen) - Banner darunter: "Want dynamic barcodes? Sign up free →" - -How It Works (3 Schritte) - 1. Sign up & create barcode in dashboard - 2. Print it once - 3. Update the destination anytime — no reprint needed - -Use Cases - Retail-Verpackungen, Logistik-Labels, Produktkataloge, Event-Badges - -FAQ-Section (schema.org FAQ markup) - - "Was ist ein dynamischer Barcode?" - - "Wie unterscheidet sich dynamisch von statisch?" - - "Welche Formate werden unterstützt?" - -RelatedTools-Komponente (bereits vorhanden) -``` - -**Metadata:** -```ts -title: 'Dynamic Barcode Generator — Trackable & Editable Barcodes' -description: 'Create dynamic barcodes that you can update without reprinting. Track scans, change destinations, and manage all barcodes from one dashboard.' -canonical: 'https://www.qrmaster.net/tools/dynamic-barcode-generator' -keywords: ['dynamic barcode generator', 'barcode generator', 'trackable barcode', 'editable barcode'] -``` - -**Sitemap:** `/tools/dynamic-barcode-generator` hinzufügen. - ---- - -### 2b) Dashboard `/create` — BARCODE als ContentType - -**Ziel:** Eingeloggte Nutzer können Barcodes (statisch oder dynamisch) im Dashboard erstellen, speichern und tracken. - -**DB-Änderung (kein migrate!):** -```sql --- Direkt gegen PostgreSQL ausführen (npm run docker:db) -ALTER TYPE "ContentType" ADD VALUE 'BARCODE'; -``` -Danach: `npx prisma generate` - -**Änderungen `create/page.tsx`:** -- BARCODE zu `contentTypes` Array hinzufügen -- `renderContentFields()` Case: Barcode-Wert + Format-Picker (CODE128, EAN13, UPC, etc.) -- Preview: `react-barcode` statt `QRCodeSVG` wenn ContentType === BARCODE -- QR-spezifische Optionen ausblenden bei BARCODE (Frames, Logo, Corner Style) -- Dynamic Barcode = encodiert `/r/[slug]` → nutzt bestehendes Redirect- + Tracking-System -- Static Barcode = encodiert Rohwert direkt - -**Kein neues Backend nötig** — `POST /api/qrs` + `/r/[slug]`-Redirect funktionieren bereits. - ---- - -### Reihenfolge der Umsetzung - -**Phase 1 — Landingpage (kein DB-Change):** -1. `page.tsx` unter `/tools/dynamic-barcode-generator` erstellen -2. Sitemap-Eintrag - -**Phase 2 — Dashboard BARCODE:** -1. SQL ausführen: `ALTER TYPE "ContentType" ADD VALUE 'BARCODE'` -2. `npx prisma generate` -3. `create/page.tsx` erweitern - ---- - -## Abhängigkeiten zwischen den Features - -| Feature | Hängt ab von | -|---------|-------------| -| Bulk Dynamic | Bestehendem `POST /api/qrs` (bereits fertig) | -| Bulk Dynamic (optional) | Neuem `POST /api/qrs/bulk` Endpunkt | -| Landingpage Dynamic Barcode | Bestehendem BarcodeGeneratorClient (keine Änderungen) | -| Dashboard BARCODE | SQL-Enum-Erweiterung + `prisma generate` | +# Feature Plan: Bulk Dynamic QR + Dynamic Barcode Generator + +## Feature 1: Bulk Generator → Dynamic QR freischalten + +### Ziel +Nutzer können beim Bulk-Import wählen ob sie statische oder dynamische QR-Codes erstellen. Dynamisch = DB-Einträge mit Slugs + Tracking. Nur für PRO/BUSINESS. + +### Aktueller Stand (Ist) +- `bulk-creation/page.tsx` generiert QR-Codes rein client-seitig (kein DB-Eintrag) +- `generateStaticQRCodes()` rendert SVGs lokal via `qrcode`-Library +- `saveQRCodesToDatabase()` sendet an `POST /api/qrs` mit `isStatic: true` — also immer statisch +- Kein Toggle Static/Dynamic vorhanden +- Kein Plan-Check für Dynamic im Bulk-Flow + +### Änderungen + +#### A) Frontend: `bulk-creation/page.tsx` + +1. **Toggle "Static / Dynamic" hinzufügen** (nach Plan-Check) + - Nur sichtbar/aktivierbar wenn `userPlan === 'PRO' || 'BUSINESS'` + - FREE-Nutzer sehen den Toggle gesperrt mit Upgrade-Hinweis + - State: `const [isDynamic, setIsDynamic] = useState(false)` + +2. **Interface erweitern** + ```ts + interface GeneratedQR { + title: string; + content: string; + svg: string; + slug?: string; // nur bei dynamic, nach API-Antwort gesetzt + redirectUrl?: string; // z.B. https://qrmaster.net/r/abc123 + } + ``` + +3. **Generierungslogik aufteilen** + - Static (wie bisher): client-seitig SVG generieren, kein DB-Eintrag nötig + - Dynamic: direkt `POST /api/qrs` pro Eintrag mit `isDynamic: true` → API gibt Slug zurück → QR encodiert `/r/[slug]` statt Original-URL + +4. **Preview-Spalte erweitern** + - Bei dynamic: Slug-Link anzeigen + "Ziel änderbar" Badge + - Download-ZIP enthält QR-SVGs die `/r/[slug]` encodieren + +5. **Limit-Anzeige** + - PRO: max 50 dynamic / Bulk-Run (entspricht QR-Limit) + - BUSINESS: max 500 + +#### B) Backend: `POST /api/qrs` + +Keine strukturelle Änderung nötig — der bestehende Endpunkt unterstützt bereits `isDynamic: false/true` und gibt `slug` zurück. Nur sicherstellen: + +- Plan-Limit-Check zählt korrekt bei Bulk-Erstellung (momentan prüft `POST /api/qrs` nur ob Gesamtanzahl < Limit — das bleibt so, aber Bulk erstellt X Requests nacheinander → ggf. Rate-Limit beachten) +- Evtl. neuen Endpunkt `POST /api/qrs/bulk` der ein Array entgegennimmt und in einer DB-Transaktion schreibt (besser als 500 Einzelrequests) + +#### C) Optionaler neuer Endpunkt: `POST /api/qrs/bulk` (empfohlen) + +```ts +// Body: { qrCodes: Array<{ title, content, contentType, isDynamic }>, plan } +// Response: { created: Array<{ id, slug, redirectUrl }>, failed: number } +// Vorteile: eine DB-Transaktion, ein CSRF-Check, schneller +``` + +Plan-Check: `if (isDynamic && plan === 'FREE') return 403` + +--- + +### Reihenfolge der Umsetzung + +1. Toggle + Plan-Check im Frontend +2. Dynamic-Generierungslogik (nutzt bestehenden `POST /api/qrs`) +3. (Optional) `POST /api/qrs/bulk` für Performance +4. ZIP-Download mit Redirect-URLs als Metadaten-CSV + +--- + +## Feature 2: Dynamischer Barcode Generator + +### Aufteilung: Landingpage (Marketing) + Dashboard (Funktion) + +**Wichtig:** "Dynamic" existiert nur im Dashboard `/create`. Die Landingpage erklärt das Konzept und treibt Nutzer zum Signup/Login — sie hat keinen eigenen Dynamic-Modus. + +--- + +### 2a) Landingpage: `/tools/dynamic-barcode-generator` + +**Ziel:** SEO-Traffic auf Keyword "barcode generator" (100k–1M, 0% Competition) konvertieren zu Signups. + +**Was die Landingpage NICHT hat:** +- Keinen Dynamic-Toggle +- Keine echte Dynamic-Funktionalität + +**Was die Landingpage HAT:** +- Bestehenden `BarcodeGeneratorClient` eingebettet (statischer Generator, unverändert) +- Erklärung was ein dynamischer Barcode ist + Vorteile +- Klarer CTA: "Create Dynamic Barcode → Sign up / Dashboard" + +**Aufbau** (`src/app/(main)/(marketing)/tools/dynamic-barcode-generator/page.tsx`): + +``` +Hero-Section + H1: "Dynamic Barcode Generator — Update Any Barcode Without Reprinting" + Subtext: Erklärt Tracking + Redirect-Konzept + CTA-Button: "Create Dynamic Barcode" → /login oder /signup + +Tool-Section + BarcodeGeneratorClient (statisch, wie bisher, keine Änderungen) + Banner darunter: "Want dynamic barcodes? Sign up free →" + +How It Works (3 Schritte) + 1. Sign up & create barcode in dashboard + 2. Print it once + 3. Update the destination anytime — no reprint needed + +Use Cases + Retail-Verpackungen, Logistik-Labels, Produktkataloge, Event-Badges + +FAQ-Section (schema.org FAQ markup) + - "Was ist ein dynamischer Barcode?" + - "Wie unterscheidet sich dynamisch von statisch?" + - "Welche Formate werden unterstützt?" + +RelatedTools-Komponente (bereits vorhanden) +``` + +**Metadata:** +```ts +title: 'Dynamic Barcode Generator — Trackable & Editable Barcodes' +description: 'Create dynamic barcodes that you can update without reprinting. Track scans, change destinations, and manage all barcodes from one dashboard.' +canonical: 'https://www.qrmaster.net/tools/dynamic-barcode-generator' +keywords: ['dynamic barcode generator', 'barcode generator', 'trackable barcode', 'editable barcode'] +``` + +**Sitemap:** `/tools/dynamic-barcode-generator` hinzufügen. + +--- + +### 2b) Dashboard `/create` — BARCODE als ContentType + +**Ziel:** Eingeloggte Nutzer können Barcodes (statisch oder dynamisch) im Dashboard erstellen, speichern und tracken. + +**DB-Änderung (kein migrate!):** +```sql +-- Direkt gegen PostgreSQL ausführen (npm run docker:db) +ALTER TYPE "ContentType" ADD VALUE 'BARCODE'; +``` +Danach: `npx prisma generate` + +**Änderungen `create/page.tsx`:** +- BARCODE zu `contentTypes` Array hinzufügen +- `renderContentFields()` Case: Barcode-Wert + Format-Picker (CODE128, EAN13, UPC, etc.) +- Preview: `react-barcode` statt `QRCodeSVG` wenn ContentType === BARCODE +- QR-spezifische Optionen ausblenden bei BARCODE (Frames, Logo, Corner Style) +- Dynamic Barcode = encodiert `/r/[slug]` → nutzt bestehendes Redirect- + Tracking-System +- Static Barcode = encodiert Rohwert direkt + +**Kein neues Backend nötig** — `POST /api/qrs` + `/r/[slug]`-Redirect funktionieren bereits. + +--- + +### Reihenfolge der Umsetzung + +**Phase 1 — Landingpage (kein DB-Change):** +1. `page.tsx` unter `/tools/dynamic-barcode-generator` erstellen +2. Sitemap-Eintrag + +**Phase 2 — Dashboard BARCODE:** +1. SQL ausführen: `ALTER TYPE "ContentType" ADD VALUE 'BARCODE'` +2. `npx prisma generate` +3. `create/page.tsx` erweitern + +--- + +## Abhängigkeiten zwischen den Features + +| Feature | Hängt ab von | +|---------|-------------| +| Bulk Dynamic | Bestehendem `POST /api/qrs` (bereits fertig) | +| Bulk Dynamic (optional) | Neuem `POST /api/qrs/bulk` Endpunkt | +| Landingpage Dynamic Barcode | Bestehendem BarcodeGeneratorClient (keine Änderungen) | +| Dashboard BARCODE | SQL-Enum-Erweiterung + `prisma generate` | diff --git a/PRODUCT.md b/PRODUCT.md index 8a4f4f1..91e7fa9 100644 --- a/PRODUCT.md +++ b/PRODUCT.md @@ -1,51 +1,51 @@ -# Product - -## Register - -brand - -## Users - -Two primary personas, both aesthetically-driven professionals who have outgrown generic tools: - -**Marketing / Agency Lead** — manages multiple client campaigns simultaneously. Needs organized folders, detailed analytics, and design output that doesn't betray itself as "internet freeware." They evaluate tools by how their outputs look to clients, not just how the tool works internally. - -**Modern Restaurateur** — owner of a boutique restaurant, cafe, or hotel. Their physical space is carefully designed; their digital touchpoints must match. They rely on Dynamic QR codes to swap menu PDFs and URLs seasonally without reprinting expensive acrylic table stands. Brand consistency between print and digital is non-negotiable for them. - -**Arrival context:** Both land on QR Master after being burned by "free" tools that expired, injected third-party ads, or looked visually cheap. They are actively comparing options and arrive skeptical. They're not discovering QR tools for the first time — they're looking for a permanent, professional home. - -## Product Purpose - -QR Master is a precision QR code platform — creation, dynamic editing, and analytics — for professionals who refuse to compromise on aesthetics. Success means users choose QR Master not because they have to, but because they want to: the tool itself feels like an extension of their creative workflow, not a clunky utility they tolerate. - -## Brand Personality - -**Confident, Minimal, Crafted.** - -"The Leica of QR Generators." A precision instrument that earns trust through intentionality, not decoration. Every pixel deliberate. Think Linear's pro-tool clarity, Raycast's utilitarian beauty, Framer's implied creative freedom — combined into something that feels high-performance without performing. - -Tone of voice: direct and assured. No hedging, no exclamation points for emphasis, no "Amazing!" copy. Let the product speak. Copy is short, specific, and treats the user as a professional. - -## Anti-references - -- **SEO ad farms** (QR-Code-Generator.com style): cluttered sidebars, aggressive upsell banners, walls of keyword-stuffed text. The opposite of QR Master. -- **Bubbly link-in-bio tools**: neon gradients, Gen-Z playfulness, the Linktree aesthetic. QR Master is for businesses, not social profiles. -- **Legacy enterprise software**: cold gray, mechanical, joyless. High-end is not the same as corporate. QR Master should feel premium, not bureaucratic. - -## Design Principles - -1. **Precision over decoration.** Every element earns its place. No UX furniture — no gratuitous dividers, decorative gradients, or filler icons. If removing it doesn't hurt, remove it. - -2. **Show, don't explain.** The product's quality is demonstrated by how the interface looks and behaves, not described in marketing copy. A beautifully rendered QR preview communicates more than three bullet points about "custom branding." - -3. **Premium through restraint.** Sophistication comes from what's removed. More whitespace, fewer words, tighter hierarchy. The instinct to add is the enemy of craft. - -4. **Trustworthy at a glance.** Clarity and professionalism must be instantaneous — users arriving skeptical decide in 5 seconds. No clever puzzles, no mystery-meat navigation. Confidence is expressed through legibility. - -5. **Tool-like beauty.** Functional elegance, like a well-made physical instrument. Interactions should feel responsive and precise. Animations are subtle cues, not performances. The UI should feel fast even when it isn't. - -## Accessibility & Inclusion - -- **Standard**: WCAG 2.1 AA -- **Reduced motion**: Full `prefers-reduced-motion` support. Animations (where used) default to subtle fades or scale shifts; no motion for motion's sake. -- **Color contrast**: Critical for a QR creation tool. The dashboard must warn users when foreground/background color combinations produce insufficient contrast — both for readability and QR scannability. This is a functional requirement, not a nice-to-have. +# Product + +## Register + +brand + +## Users + +Two primary personas, both aesthetically-driven professionals who have outgrown generic tools: + +**Marketing / Agency Lead** — manages multiple client campaigns simultaneously. Needs organized folders, detailed analytics, and design output that doesn't betray itself as "internet freeware." They evaluate tools by how their outputs look to clients, not just how the tool works internally. + +**Modern Restaurateur** — owner of a boutique restaurant, cafe, or hotel. Their physical space is carefully designed; their digital touchpoints must match. They rely on Dynamic QR codes to swap menu PDFs and URLs seasonally without reprinting expensive acrylic table stands. Brand consistency between print and digital is non-negotiable for them. + +**Arrival context:** Both land on QR Master after being burned by "free" tools that expired, injected third-party ads, or looked visually cheap. They are actively comparing options and arrive skeptical. They're not discovering QR tools for the first time — they're looking for a permanent, professional home. + +## Product Purpose + +QR Master is a precision QR code platform — creation, dynamic editing, and analytics — for professionals who refuse to compromise on aesthetics. Success means users choose QR Master not because they have to, but because they want to: the tool itself feels like an extension of their creative workflow, not a clunky utility they tolerate. + +## Brand Personality + +**Confident, Minimal, Crafted.** + +"The Leica of QR Generators." A precision instrument that earns trust through intentionality, not decoration. Every pixel deliberate. Think Linear's pro-tool clarity, Raycast's utilitarian beauty, Framer's implied creative freedom — combined into something that feels high-performance without performing. + +Tone of voice: direct and assured. No hedging, no exclamation points for emphasis, no "Amazing!" copy. Let the product speak. Copy is short, specific, and treats the user as a professional. + +## Anti-references + +- **SEO ad farms** (QR-Code-Generator.com style): cluttered sidebars, aggressive upsell banners, walls of keyword-stuffed text. The opposite of QR Master. +- **Bubbly link-in-bio tools**: neon gradients, Gen-Z playfulness, the Linktree aesthetic. QR Master is for businesses, not social profiles. +- **Legacy enterprise software**: cold gray, mechanical, joyless. High-end is not the same as corporate. QR Master should feel premium, not bureaucratic. + +## Design Principles + +1. **Precision over decoration.** Every element earns its place. No UX furniture — no gratuitous dividers, decorative gradients, or filler icons. If removing it doesn't hurt, remove it. + +2. **Show, don't explain.** The product's quality is demonstrated by how the interface looks and behaves, not described in marketing copy. A beautifully rendered QR preview communicates more than three bullet points about "custom branding." + +3. **Premium through restraint.** Sophistication comes from what's removed. More whitespace, fewer words, tighter hierarchy. The instinct to add is the enemy of craft. + +4. **Trustworthy at a glance.** Clarity and professionalism must be instantaneous — users arriving skeptical decide in 5 seconds. No clever puzzles, no mystery-meat navigation. Confidence is expressed through legibility. + +5. **Tool-like beauty.** Functional elegance, like a well-made physical instrument. Interactions should feel responsive and precise. Animations are subtle cues, not performances. The UI should feel fast even when it isn't. + +## Accessibility & Inclusion + +- **Standard**: WCAG 2.1 AA +- **Reduced motion**: Full `prefers-reduced-motion` support. Animations (where used) default to subtle fades or scale shifts; no motion for motion's sake. +- **Color contrast**: Critical for a QR creation tool. The dashboard must warn users when foreground/background color combinations produce insufficient contrast — both for readability and QR scannability. This is a functional requirement, not a nice-to-have. diff --git a/articles/bulk-qr-code-generator-excel-guide.md b/articles/bulk-qr-code-generator-excel-guide.md index 3400772..15cffa9 100644 --- a/articles/bulk-qr-code-generator-excel-guide.md +++ b/articles/bulk-qr-code-generator-excel-guide.md @@ -1,121 +1,121 @@ -# Bulk QR Code Generator Guide: Creating QR Codes from Excel & CSV - -If you need to generate hundreds or thousands of QR codes, creating them manually is no longer a realistic option. Whether you are managing product labels for a retail launch, printing badges for a large-scale event, or tracking inventory across multiple warehouses, the manual entry of data into a generator is time-consuming and prone to human error. - -The most efficient workflow is to prepare your data in a spreadsheet—Excel or CSV—and use a **Bulk QR Code Generator** to turn each row into a named, export-ready asset. This guide explains how to structure your files, choose the correct output formats, and follow technical best practices to ensure your codes are scanable and secure. - ---- - -## 1. Why Use a Bulk QR Code Generator? - -Industrializing your QR code workflow is about more than just speed; it is about data integrity. As the industry moves closer to the **GS1 Digital Link** standards—the global transition from 1D barcodes to 2D symbols—the complexity of the data embedded in QR codes has increased. - -A bulk generation workflow allows you to: -- **Minimize Errors:** Copy-pasting thousands of URLs or IDs into a spreadsheet is safer than manual entry into a web form. -- **Automate Naming:** You can assign specific filenames to each QR code based on SKU or ID, making it easy for design and print teams to find the right assets. -- **Maintain Consistency:** Standardize colors, error correction levels, and dimensions across an entire batch of assets. - ---- - -## 2. How to Structure Your Excel or CSV File for Bulk Generation - -The success of a bulk project depends entirely on the formatting of your source file. Most professional tools require a simple, tabular structure. - -### Column Mapping -At a minimum, your spreadsheet should include two primary columns: -1. **The Payload (Target URL/Data):** This is the information the scanner will read. It could be a website URL, a vCard string, or a product ID. -2. **The Filename (Identifier):** This column tells the generator how to name the exported image files. Use unique identifiers like SKUs or internal IDs (e.g., `SKU-9942`). - -### Data Formatting Rules -To prevent generation errors, follow these technical constraints: -- **Encoding special characters:** If your URLs contain localized characters or symbols, ensure your CSV is saved with **UTF-8 encoding**. -- **No empty rows:** Ensure there are no gaps in your data, as some automated engines may stop processing at the first empty cell. -- **Consistent protocol:** Always include the `https://` prefix for URLs to ensure they are recognized as links by mobile OS cameras. -- **Avoid duplicate identifiers:** If two rows have the same identifier in your "Filename" column, the second file may overwrite the first during the export process. - ---- - -## 3. Step-by-Step: From Spreadsheet to Production-Ready Assets - -Generating a batch of codes involves three critical phases: preparation, design application, and extraction. - -### Step 1: Data Validation -Before uploading your file to a tool like **QR Master**, perform a quick audit. Use Excel’s "Remove Duplicates" feature on your identifier column. If you are generating thousands of codes, verify that your browser has enough memory to handle the local processing; professional tools typically process generation in the browser to maintain data privacy. - -### Step 2: Choosing Design and Scanability Parameters -When applying a design in bulk, you are setting a global rule for all images: -- **Error Correction Level:** For bulk projects, we recommend **Level M (15%)** or **Level H (30%)**. This adds redundancy to the code, allowing it to remain scanable even if it is slightly damaged or partially obscured by a logo. -- **Color Contrast:** High contrast is the single most important factor for scanability. A dark foreground (usually black) on a white background remains the gold standard for universal compatibility. -- **Quiet Zones:** Modern scanners require a "quiet zone"—a small margin of empty space around the code—to identify the boundaries of the pattern. Ensure your design template respects this margin. - -### Step 3: Exporting and Organization -Once generated, the assets are usually provided in a single compressed ZIP file. Because you utilized a "Filename" column, the resulting folder will be organized by your internal IDs rather than generic numbers (e.g., `inventory_ID202.svg` instead of `qrcode_1.png`). - ---- - -## 4. Technical File Standards: SVG vs. PNG - -The choice of file format determines the quality of the final physical or digital product. - -### When to use SVG (Scalable Vector Graphics) -For any project involving **print**, SVG is the industry standard. -- **Infinite Scalability:** Vector files do not lose quality when resized. A code generated for a small product tag can be scaled to fit a shipping crate without pixelation. -- **Sharpness:** Printers can interpret the exact mathematical lines of a vector, resulting in sharper edges and higher scan success rates. -- **Small File Size:** Despite their high quality, vector files are often smaller in size than high-resolution rasters. - -### When to use PNG (Portable Network Graphics) -PNG should be reserved for **digital-first** applications. -- **Web and Email:** PNGs are universally supported by web browsers and email clients. -- **App Displays:** Use PNG when the QR code is intended to be displayed on screens, such as mobile tickets or digital menus. - ---- - -## 5. Security and Privacy: Critical Technical Requirements - -Bulk data often contains sensitive internal links or proprietary product information. In 2026, security standards for QR generators have become more stringent. - -### Browser-Side Generation -Browser-side generation is often the safest option for organizations looking to minimize the privacy footprint of a bulk workflow. By ensuring that sensitive spreadsheet data is processed locally on your machine and never sent to a third-party server, you can more effectively align with data privacy regulations like GDPR or CCPA. -Browser-side generation is often the preferred option for organizations looking to minimize the privacy footprint of a bulk workflow. By ensuring that sensitive spreadsheet data is processed locally on your machine and not transmitted to a third-party server, you can more effectively manage data handling requirements. - -### Avoiding Redirect Loops -If you are using a generator that tracks scans (Dynamic QR codes), ensure the service is reputable. If their servers go down, every code in your bulk batch will stop working. For mission-critical internal logistics or permanent packaging, **Static QR codes** are often the safer, stateless choice. - ---- - -## 6. Common Use Case Patterns - -### Inventory and Asset Tracking -Operations teams use bulk generation to label machinery, office equipment, or warehouse bins. By including unique batch IDs in the Excel file, they can generate thousands of individual tracking codes that link directly to their internal ERP or database. - -### Event Management and Ticketing -For large conferences, organizers use attendee lists to create unique vCard or entry codes. In this scenario, the "Filename" column is usually the attendee's registration number, allowing for easy integration into badge-printing software. - -### Retail and Smart Packaging -With the ongoing shift toward the GS1 Digital Link, brands are moving away from simple UPCs and toward unique-at-the-batch level QR codes. Bulk generation allows for the creation of unique labels that can track a product’s journey from the factory floor to the store shelf. - ---- - -## 7. Troubleshooting Technical Errors - -If your bulk batch fails to generate or scan correctly, check these common causes: - -### Why is my QR code not scanning? -- **Low Contrast:** The colors are too similar. Always favor a dark pattern on a light background. -- **Inverted Colors:** Many older scanners cannot read "negative" QR codes (white pattern on a black background). -- **Too much data:** If you encode a very long URL, the QR code squares become smaller and harder to scan. Use a URL shortener if necessary. - -### Why did my bulk upload fail? -- **Incorrect Delimiters:** Ensure your CSV uses commas (`,`) or semicolons (`;`) as expected by the tool. -- **Hidden Formatting:** Excel sometimes adds hidden formatting to cells. Clean your data using a "Paste as Values" operation before exporting to CSV. -- **UTF-8 Warnings:** If your tool returns an error about character encoding, re-save your file as "CSV UTF-8 (Comma delimited)". - ---- - -## Conclusion: Mastering Large-Scale QR Operations - -Once your spreadsheet is structured properly, bulk QR generation becomes a repeatable, high-integrity workflow rather than a manual design task. For teams working across print, packaging, events, or inventory, transitioning to a bulk process saves time, eliminates naming errors, and makes large deployments manageable. - -By focusing on high-contrast designs, vector outputs, and browser-side security, you can ensure that your mass QR code deployment is both technically sound and professional. - -**Ready to start? [Generate your first bulk batch with QR Master →](https://qrmaster.net)** +# Bulk QR Code Generator Guide: Creating QR Codes from Excel & CSV + +If you need to generate hundreds or thousands of QR codes, creating them manually is no longer a realistic option. Whether you are managing product labels for a retail launch, printing badges for a large-scale event, or tracking inventory across multiple warehouses, the manual entry of data into a generator is time-consuming and prone to human error. + +The most efficient workflow is to prepare your data in a spreadsheet—Excel or CSV—and use a **Bulk QR Code Generator** to turn each row into a named, export-ready asset. This guide explains how to structure your files, choose the correct output formats, and follow technical best practices to ensure your codes are scanable and secure. + +--- + +## 1. Why Use a Bulk QR Code Generator? + +Industrializing your QR code workflow is about more than just speed; it is about data integrity. As the industry moves closer to the **GS1 Digital Link** standards—the global transition from 1D barcodes to 2D symbols—the complexity of the data embedded in QR codes has increased. + +A bulk generation workflow allows you to: +- **Minimize Errors:** Copy-pasting thousands of URLs or IDs into a spreadsheet is safer than manual entry into a web form. +- **Automate Naming:** You can assign specific filenames to each QR code based on SKU or ID, making it easy for design and print teams to find the right assets. +- **Maintain Consistency:** Standardize colors, error correction levels, and dimensions across an entire batch of assets. + +--- + +## 2. How to Structure Your Excel or CSV File for Bulk Generation + +The success of a bulk project depends entirely on the formatting of your source file. Most professional tools require a simple, tabular structure. + +### Column Mapping +At a minimum, your spreadsheet should include two primary columns: +1. **The Payload (Target URL/Data):** This is the information the scanner will read. It could be a website URL, a vCard string, or a product ID. +2. **The Filename (Identifier):** This column tells the generator how to name the exported image files. Use unique identifiers like SKUs or internal IDs (e.g., `SKU-9942`). + +### Data Formatting Rules +To prevent generation errors, follow these technical constraints: +- **Encoding special characters:** If your URLs contain localized characters or symbols, ensure your CSV is saved with **UTF-8 encoding**. +- **No empty rows:** Ensure there are no gaps in your data, as some automated engines may stop processing at the first empty cell. +- **Consistent protocol:** Always include the `https://` prefix for URLs to ensure they are recognized as links by mobile OS cameras. +- **Avoid duplicate identifiers:** If two rows have the same identifier in your "Filename" column, the second file may overwrite the first during the export process. + +--- + +## 3. Step-by-Step: From Spreadsheet to Production-Ready Assets + +Generating a batch of codes involves three critical phases: preparation, design application, and extraction. + +### Step 1: Data Validation +Before uploading your file to a tool like **QR Master**, perform a quick audit. Use Excel’s "Remove Duplicates" feature on your identifier column. If you are generating thousands of codes, verify that your browser has enough memory to handle the local processing; professional tools typically process generation in the browser to maintain data privacy. + +### Step 2: Choosing Design and Scanability Parameters +When applying a design in bulk, you are setting a global rule for all images: +- **Error Correction Level:** For bulk projects, we recommend **Level M (15%)** or **Level H (30%)**. This adds redundancy to the code, allowing it to remain scanable even if it is slightly damaged or partially obscured by a logo. +- **Color Contrast:** High contrast is the single most important factor for scanability. A dark foreground (usually black) on a white background remains the gold standard for universal compatibility. +- **Quiet Zones:** Modern scanners require a "quiet zone"—a small margin of empty space around the code—to identify the boundaries of the pattern. Ensure your design template respects this margin. + +### Step 3: Exporting and Organization +Once generated, the assets are usually provided in a single compressed ZIP file. Because you utilized a "Filename" column, the resulting folder will be organized by your internal IDs rather than generic numbers (e.g., `inventory_ID202.svg` instead of `qrcode_1.png`). + +--- + +## 4. Technical File Standards: SVG vs. PNG + +The choice of file format determines the quality of the final physical or digital product. + +### When to use SVG (Scalable Vector Graphics) +For any project involving **print**, SVG is the industry standard. +- **Infinite Scalability:** Vector files do not lose quality when resized. A code generated for a small product tag can be scaled to fit a shipping crate without pixelation. +- **Sharpness:** Printers can interpret the exact mathematical lines of a vector, resulting in sharper edges and higher scan success rates. +- **Small File Size:** Despite their high quality, vector files are often smaller in size than high-resolution rasters. + +### When to use PNG (Portable Network Graphics) +PNG should be reserved for **digital-first** applications. +- **Web and Email:** PNGs are universally supported by web browsers and email clients. +- **App Displays:** Use PNG when the QR code is intended to be displayed on screens, such as mobile tickets or digital menus. + +--- + +## 5. Security and Privacy: Critical Technical Requirements + +Bulk data often contains sensitive internal links or proprietary product information. In 2026, security standards for QR generators have become more stringent. + +### Browser-Side Generation +Browser-side generation is often the safest option for organizations looking to minimize the privacy footprint of a bulk workflow. By ensuring that sensitive spreadsheet data is processed locally on your machine and never sent to a third-party server, you can more effectively align with data privacy regulations like GDPR or CCPA. +Browser-side generation is often the preferred option for organizations looking to minimize the privacy footprint of a bulk workflow. By ensuring that sensitive spreadsheet data is processed locally on your machine and not transmitted to a third-party server, you can more effectively manage data handling requirements. + +### Avoiding Redirect Loops +If you are using a generator that tracks scans (Dynamic QR codes), ensure the service is reputable. If their servers go down, every code in your bulk batch will stop working. For mission-critical internal logistics or permanent packaging, **Static QR codes** are often the safer, stateless choice. + +--- + +## 6. Common Use Case Patterns + +### Inventory and Asset Tracking +Operations teams use bulk generation to label machinery, office equipment, or warehouse bins. By including unique batch IDs in the Excel file, they can generate thousands of individual tracking codes that link directly to their internal ERP or database. + +### Event Management and Ticketing +For large conferences, organizers use attendee lists to create unique vCard or entry codes. In this scenario, the "Filename" column is usually the attendee's registration number, allowing for easy integration into badge-printing software. + +### Retail and Smart Packaging +With the ongoing shift toward the GS1 Digital Link, brands are moving away from simple UPCs and toward unique-at-the-batch level QR codes. Bulk generation allows for the creation of unique labels that can track a product’s journey from the factory floor to the store shelf. + +--- + +## 7. Troubleshooting Technical Errors + +If your bulk batch fails to generate or scan correctly, check these common causes: + +### Why is my QR code not scanning? +- **Low Contrast:** The colors are too similar. Always favor a dark pattern on a light background. +- **Inverted Colors:** Many older scanners cannot read "negative" QR codes (white pattern on a black background). +- **Too much data:** If you encode a very long URL, the QR code squares become smaller and harder to scan. Use a URL shortener if necessary. + +### Why did my bulk upload fail? +- **Incorrect Delimiters:** Ensure your CSV uses commas (`,`) or semicolons (`;`) as expected by the tool. +- **Hidden Formatting:** Excel sometimes adds hidden formatting to cells. Clean your data using a "Paste as Values" operation before exporting to CSV. +- **UTF-8 Warnings:** If your tool returns an error about character encoding, re-save your file as "CSV UTF-8 (Comma delimited)". + +--- + +## Conclusion: Mastering Large-Scale QR Operations + +Once your spreadsheet is structured properly, bulk QR generation becomes a repeatable, high-integrity workflow rather than a manual design task. For teams working across print, packaging, events, or inventory, transitioning to a bulk process saves time, eliminates naming errors, and makes large deployments manageable. + +By focusing on high-contrast designs, vector outputs, and browser-side security, you can ensure that your mass QR code deployment is both technically sound and professional. + +**Ready to start? [Generate your first bulk batch with QR Master →](https://qrmaster.net)** diff --git a/articles/dynamic-vs-static-decision-matrix.md b/articles/dynamic-vs-static-decision-matrix.md index 911ef2d..93844f2 100644 --- a/articles/dynamic-vs-static-decision-matrix.md +++ b/articles/dynamic-vs-static-decision-matrix.md @@ -1,181 +1,181 @@ -# Dynamic vs. Static QR Codes: The Professional Decision Matrix - -## The Shift from "Static Print" to "Digital Agility" - -In the traditional marketing and logistics era, the relationship between a physical asset and its digital counterpart was often viewed as a one-time deployment. You printed a code, it pointed to a URL, and that was the end of the lifecycle. However, as business cycles accelerate and data privacy regulations tighten, this "print and pray" approach is no longer sufficient. - -For enterprise architects, marketing directors, and logistics managers, the choice between **Static** and **Dynamic** QR codes is not merely a technical preference—it is a strategic decision that affects campaign longevity, data security, and operational scalability. This guide provides a technical and strategic framework for deciding which architecture fits your specific professional requirements. - ---- - -## 1. The Technical Foundation: How Data is Encoded - -To make an informed decision, one must first understand the fundamental engineering difference between the two formats. - -### Static QR Codes: Direct Data Encoding -A Static QR code encodes the payload directly into the data modules; Reed-Solomon error correction is added to improve recovery from damage. - -* **Pixel Density:** As the payload size increases (e.g., from a 20-character URL to a 200-character description), the "version" of the QR code increases, leading to a denser, more complex pixel grid. -* **Immutability:** Once the code is generated, the underlying data cannot be changed. The patterns are fixed geographically in the physical modules. -* **Zero Latency & Independence:** A static code does not require a central server to function. As long as a scanner can interpret the pattern, the data is retrieved locally. This is the ultimate "fail-safe" architecture. - -### Dynamic QR Codes: The Managed Redirect Layer -A Dynamic QR code typically encodes a short redirect URL that points to a destination managed on a server. - -* **Pixel Consistency:** Because only a short URL is encoded (regardless of the final destination's length), the pixel density remains low (usually Version 1 or 2). This maximizes scanning speed and reliability. -* **Flexibility:** The destination URL can be updated in the database at any time—even after thousands of stickers or brochures have been distributed. -* **Metadata Harvesting:** The intermediate redirect acts as a sentinel, capturing device operating systems, browser locales, and precise timestamps before the user is seamlessly passed to the final destination. - ---- - -## 2. The Case for Static QR Codes: Security and Stability - -Despite the obvious flexibility of dynamic codes, Static QR codes remain the gold standard for specific professional use cases. - -### Zero-Dependency Infrastructure -Static codes are entirely self-contained. They do not rely on an external service or a redirect server to function. For critical infrastructure or products with a 20-year shelf life, this zero-dependency profile is essential. If a redirect service goes out of business, every dynamic code pointing to its servers becomes a "dead" asset. Static codes, conversely, will work as long as the physical substrate exists. - -### Data Privacy and Security Nuances -Static codes avoid redirect-layer tracking; however, any analytics on the destination page still depend on the target system. No intermediate scan logs are created by a generator service, making them ideal for healthcare, government, or high-security internal logistics where data sovereignty is the absolute priority. - -### Latency Mitigation -While dynamic codes introduce a redirect, professional infrastructure can minimize this to negligible levels. -* **Edge-Cached Redirects:** Use providers that leverage global CDNs (Content Delivery Networks) to resolve the redirect at the edge server closest to the user. -* **TTFB Monitoring:** Monitor the **Time-to-First-Byte** of your redirect server. A high TTFB on a mobile connection can turn a 100ms redirect into a 5-second frustration. - -**Primary Use Cases for Static:** -* **Hardware Labels:** Serial numbers and technical specifications. -* **Asset Management:** Permanent inventory IDs for internal tracking. -* **Personal Data:** Plain text credentials or permanent WiFi configurations. - ---- - -## 3. The Power of Dynamic QR Codes: Agility and Attribution - -For marketing and customer-facing operations, the advantages of Dynamic QR codes are overwhelming. - -### The "Post-Print" Edit -Errors in URLs or changes in landing page strategy are inevitable. A dynamic code acts as an insurance policy. If a campaign landing page is retired, you simply update the redirect to a new URL. This eliminates the catastrophic cost of reprinting OOH (Out-of-Home) signage or packaging. - -### Granular Attribution (The "Offline Analytics" Gap) -In a professional campaign, "what gets measured gets managed." Dynamic codes provide a bridge between the physical world and your CRM or Analytics dashboard. -* **Geographic Insights:** Identifying which city or physical location is driving the most scans. -* **A/B Testing:** Sending 50% of scans to "Page A" and 50% to "Page B" to optimize conversion rates in real-time. - -### Short URL Scannability -Because the encoded data is always a short URL (e.g., `qr.master/x1z`), the QR module size can remain small. This allows for higher scan reliability even on small surfaces (like medicine bottles) or from long distances (like billboards). - ---- - -## 4. The Decision Matrix: A Professional Framework - -Use the following matrix to determine the correct architecture for your next deployment. - -```mermaid -graph TD - A[Start: New QR Deployment] --> B{Does the destination URL
have a 1% chance of changing?} - B -- Yes --> C[Dynamic QR Code] - B -- No --> D{Do you need scan analytics
or geographic data?} - D -- Yes --> C - D -- No --> E{Is the code part of
critical/permanent infrastructure?} - E -- Yes --> F[Static QR Code] - E -- No --> G{Is data privacy/GDPR compliance
the absolute priority?} - G -- Yes --> F - G -- No --> C -``` - -### Table 1: Comparative Metric Overview - -| Feature | Static QR Code | Dynamic QR Code | -| :--- | :--- | :--- | -| **Sustainability** | Infinite (Zero dependency) | Dependent on Redirect Provider | -| **Editability** | Immutable | Real-time Updates | -| **Scannability** | Denser with more data | Consistent & Low-density | -| **Privacy** | High (Internal/Self-contained) | Variable (Infrastructure dependent) | -| **Analytics** | Hard-coded (Off-platform) | Full Engagement Data | -| **Latency** | Instant | Infrastructure/Network Dependent | - ---- - -## 5. Strategic Implementation: Best Practices for Professionals - -### Resolving the "Vendor Lock-in" Risk -The biggest risk of Dynamic QR codes is being tied to a single provider. For enterprise-level deployments, mitigation is essential: -* **Custom Domain Hosting:** Use your own subdomain (e.g., `qr.yourcompany.com`). If you switch providers, you simply point your DNS to the new server, and existing codes remain functional. -* **The Self-Hosted Option:** For mission-critical environments, consider a self-hosted redirect layer (e.g., using **YOURLS** or a custom-built API). This ensures you own the "sentinel" that processes the scan. -* **Disaster Recovery:** Maintain an annual export of all redirect mappings (CSV/JSON). In a provider outage, this data allows for a rapid "emergency restore" to a secondary redirect service. - -### Dynamic QR Analytics: The GDPR Tightrope -While dynamic codes enable tracking, they also introduce a data processing layer. Professionals must ensure compliance through a "Privacy by Design" lens: -* **IP Anonymization:** Ensure your provider masks the last octet of IP addresses to prevent the collection of PII (Personally Identifiable Information). -* **DPA Enforcement:** Only work with providers that offer a clear **Data Processing Agreement (DPA)** under GDPR or CCPA. -* **Consent Management:** If the redirect landing page uses tracking scripts (e.g., Meta Pixel), ensure a cookie banner is triggered *before* data collection begins. For the "pure" redirect phase, minimize log retention to the absolute minimum required for deduplication. - -### Error Correction and Surface Geometry -In professional printing, always use at least **Level M (15%) or Level Q (25%)** Error Correction. This ensures that even if a code on a curved surface or a dusty warehouse floor is partially damaged, the data remains recoverable. - -### The "Quiet Zone" Rule -Professionals never ignore the Quiet Zone. A minimum of **4 modules (blocks)** of empty white space must surround the code on all sides. Cutting into this space for "aesthetic" reasons is the #1 cause of scan failures in professional environments. Scanners use this zone to "bracket" the code and calibrate the optical sensor; without it, the algorithms may fail to distinguish the code from surrounding background noise. - -### Reed-Solomon Error Correction Selection -For professional use, the choice of error correction (EC) level is critical. Higher EC levels allow for better recovery from physical damage but increase the code's version (size). - -| EC Level | Damage Tolerance | Practical Example | -| :--- | :--- | :--- | -| **L (7%)** | Minor scratches | Indoor brochures in controlled, clean environments | -| **M (15%)** | Moderate wear | Industry standard; outdoor posters, retail packaging | -| **Q (25%)** | Heavy damage | Warehouse labels, industrial assets, curved surfaces | -| **H (30%)** | Logo embedding | Branded QR codes with 20-30% logo coverage | - ---- - -## 6. The Hybrid Strategy: The "Static Fallback" Pattern - -Modern enterprise architecture often avoids the binary "Static vs. Dynamic" choice in favor of a hybrid approach. This maximizes both flexibility and reliability. - -### The "Dual-Payload" Pattern -Some QR payloads combine machine-readable static data with a URL field, giving scanners useful fallback information even if the online destination is unavailable. This pattern is common in vCards or complex sensor data strings. - -### Use Case: Critical Field Service -An industrial generator might have a QR code. -* **Static Data:** Hardware specs and emergency shutdown procedures (works even in a basement with zero signal). -* **Dynamic Data:** A link to a "Real-time Parts Order" page or the latest PDF manual. - ---- - -## 7. Enterprise Operations: Beyond the Redirect - -### Legacy Code Migration: The "Wrapper" Strategy -If you have deployed static codes that now need analytics, you do not necessarily need a reprint: -* **Custom Logging Logic:** Create a listener in your backend that parses the static payload scan results from your proprietary scan app. -* **Visual Recognition APIs:** Use computer vision to detect static codes and trigger background analytics calls in a controlled mobile app environment. -* **NFC Augmentation:** Deploy NFC tags alongside existing QR codes for dual-mode tracking without altering the original print. - -### Security Best Practices for Dynamic Redirects -* **HTTPS-Only:** Never use `http://` in redirect URLs to prevent man-in-the-middle attacks. -* **Rate Limiting:** Protect your short-link infrastructure from redirect-abuse and DDoS via "QR spam." -* **Expiration Management:** Set automatic expiration for time-sensitive marketing campaigns. -* **Redirect Validation:** Ensure no malicious intermediate redirects can be injected into your dashboard. - -### Cost Analysis: The ROI Perspective -| Scenario | Static Approach | Dynamic Approach | Break-Even Point | -| :--- | :--- | :--- | :--- | -| **1000 assets, 0 changes** | €50 (one-time) | Subscription costs | Never (Use Static) | -| **1000 assets, 1 URL fix** | €50 + €2,000 reprint | Subscription costs | After first change | -| **A/B Testing Campaign** | Impossible | Subscription costs | Immediate | - ---- - -## 8. Conclusion: Architecture for the Hybrid Era - -The choice between static and dynamic is not about which technology is "better," but about which architecture aligns with your project’s risk profile and measurement needs. - -* **Choose Static** when the code is part of a machine, a permanent archive, or a privacy-sensitive internal workflow. -* **Choose Dynamic** when the code is a gateway to a campaign, a product support page, or any asset where the digital destination is subject to the speed of business. - -Tools like **QR Master** are designed to support both workflows, providing the high-resolution exports and professional-grade security required for enterprise-level bridge-building between the physical and digital worlds. - ---- - -> [!TIP] -> **Pro Tip for Logistics Managers:** Use Static codes for internal bin tracking to ensure zero downtime, but use Dynamic codes for customer-facing return labels to allow for carrier or address updates on the fly. +# Dynamic vs. Static QR Codes: The Professional Decision Matrix + +## The Shift from "Static Print" to "Digital Agility" + +In the traditional marketing and logistics era, the relationship between a physical asset and its digital counterpart was often viewed as a one-time deployment. You printed a code, it pointed to a URL, and that was the end of the lifecycle. However, as business cycles accelerate and data privacy regulations tighten, this "print and pray" approach is no longer sufficient. + +For enterprise architects, marketing directors, and logistics managers, the choice between **Static** and **Dynamic** QR codes is not merely a technical preference—it is a strategic decision that affects campaign longevity, data security, and operational scalability. This guide provides a technical and strategic framework for deciding which architecture fits your specific professional requirements. + +--- + +## 1. The Technical Foundation: How Data is Encoded + +To make an informed decision, one must first understand the fundamental engineering difference between the two formats. + +### Static QR Codes: Direct Data Encoding +A Static QR code encodes the payload directly into the data modules; Reed-Solomon error correction is added to improve recovery from damage. + +* **Pixel Density:** As the payload size increases (e.g., from a 20-character URL to a 200-character description), the "version" of the QR code increases, leading to a denser, more complex pixel grid. +* **Immutability:** Once the code is generated, the underlying data cannot be changed. The patterns are fixed geographically in the physical modules. +* **Zero Latency & Independence:** A static code does not require a central server to function. As long as a scanner can interpret the pattern, the data is retrieved locally. This is the ultimate "fail-safe" architecture. + +### Dynamic QR Codes: The Managed Redirect Layer +A Dynamic QR code typically encodes a short redirect URL that points to a destination managed on a server. + +* **Pixel Consistency:** Because only a short URL is encoded (regardless of the final destination's length), the pixel density remains low (usually Version 1 or 2). This maximizes scanning speed and reliability. +* **Flexibility:** The destination URL can be updated in the database at any time—even after thousands of stickers or brochures have been distributed. +* **Metadata Harvesting:** The intermediate redirect acts as a sentinel, capturing device operating systems, browser locales, and precise timestamps before the user is seamlessly passed to the final destination. + +--- + +## 2. The Case for Static QR Codes: Security and Stability + +Despite the obvious flexibility of dynamic codes, Static QR codes remain the gold standard for specific professional use cases. + +### Zero-Dependency Infrastructure +Static codes are entirely self-contained. They do not rely on an external service or a redirect server to function. For critical infrastructure or products with a 20-year shelf life, this zero-dependency profile is essential. If a redirect service goes out of business, every dynamic code pointing to its servers becomes a "dead" asset. Static codes, conversely, will work as long as the physical substrate exists. + +### Data Privacy and Security Nuances +Static codes avoid redirect-layer tracking; however, any analytics on the destination page still depend on the target system. No intermediate scan logs are created by a generator service, making them ideal for healthcare, government, or high-security internal logistics where data sovereignty is the absolute priority. + +### Latency Mitigation +While dynamic codes introduce a redirect, professional infrastructure can minimize this to negligible levels. +* **Edge-Cached Redirects:** Use providers that leverage global CDNs (Content Delivery Networks) to resolve the redirect at the edge server closest to the user. +* **TTFB Monitoring:** Monitor the **Time-to-First-Byte** of your redirect server. A high TTFB on a mobile connection can turn a 100ms redirect into a 5-second frustration. + +**Primary Use Cases for Static:** +* **Hardware Labels:** Serial numbers and technical specifications. +* **Asset Management:** Permanent inventory IDs for internal tracking. +* **Personal Data:** Plain text credentials or permanent WiFi configurations. + +--- + +## 3. The Power of Dynamic QR Codes: Agility and Attribution + +For marketing and customer-facing operations, the advantages of Dynamic QR codes are overwhelming. + +### The "Post-Print" Edit +Errors in URLs or changes in landing page strategy are inevitable. A dynamic code acts as an insurance policy. If a campaign landing page is retired, you simply update the redirect to a new URL. This eliminates the catastrophic cost of reprinting OOH (Out-of-Home) signage or packaging. + +### Granular Attribution (The "Offline Analytics" Gap) +In a professional campaign, "what gets measured gets managed." Dynamic codes provide a bridge between the physical world and your CRM or Analytics dashboard. +* **Geographic Insights:** Identifying which city or physical location is driving the most scans. +* **A/B Testing:** Sending 50% of scans to "Page A" and 50% to "Page B" to optimize conversion rates in real-time. + +### Short URL Scannability +Because the encoded data is always a short URL (e.g., `qr.master/x1z`), the QR module size can remain small. This allows for higher scan reliability even on small surfaces (like medicine bottles) or from long distances (like billboards). + +--- + +## 4. The Decision Matrix: A Professional Framework + +Use the following matrix to determine the correct architecture for your next deployment. + +```mermaid +graph TD + A[Start: New QR Deployment] --> B{Does the destination URL
have a 1% chance of changing?} + B -- Yes --> C[Dynamic QR Code] + B -- No --> D{Do you need scan analytics
or geographic data?} + D -- Yes --> C + D -- No --> E{Is the code part of
critical/permanent infrastructure?} + E -- Yes --> F[Static QR Code] + E -- No --> G{Is data privacy/GDPR compliance
the absolute priority?} + G -- Yes --> F + G -- No --> C +``` + +### Table 1: Comparative Metric Overview + +| Feature | Static QR Code | Dynamic QR Code | +| :--- | :--- | :--- | +| **Sustainability** | Infinite (Zero dependency) | Dependent on Redirect Provider | +| **Editability** | Immutable | Real-time Updates | +| **Scannability** | Denser with more data | Consistent & Low-density | +| **Privacy** | High (Internal/Self-contained) | Variable (Infrastructure dependent) | +| **Analytics** | Hard-coded (Off-platform) | Full Engagement Data | +| **Latency** | Instant | Infrastructure/Network Dependent | + +--- + +## 5. Strategic Implementation: Best Practices for Professionals + +### Resolving the "Vendor Lock-in" Risk +The biggest risk of Dynamic QR codes is being tied to a single provider. For enterprise-level deployments, mitigation is essential: +* **Custom Domain Hosting:** Use your own subdomain (e.g., `qr.yourcompany.com`). If you switch providers, you simply point your DNS to the new server, and existing codes remain functional. +* **The Self-Hosted Option:** For mission-critical environments, consider a self-hosted redirect layer (e.g., using **YOURLS** or a custom-built API). This ensures you own the "sentinel" that processes the scan. +* **Disaster Recovery:** Maintain an annual export of all redirect mappings (CSV/JSON). In a provider outage, this data allows for a rapid "emergency restore" to a secondary redirect service. + +### Dynamic QR Analytics: The GDPR Tightrope +While dynamic codes enable tracking, they also introduce a data processing layer. Professionals must ensure compliance through a "Privacy by Design" lens: +* **IP Anonymization:** Ensure your provider masks the last octet of IP addresses to prevent the collection of PII (Personally Identifiable Information). +* **DPA Enforcement:** Only work with providers that offer a clear **Data Processing Agreement (DPA)** under GDPR or CCPA. +* **Consent Management:** If the redirect landing page uses tracking scripts (e.g., Meta Pixel), ensure a cookie banner is triggered *before* data collection begins. For the "pure" redirect phase, minimize log retention to the absolute minimum required for deduplication. + +### Error Correction and Surface Geometry +In professional printing, always use at least **Level M (15%) or Level Q (25%)** Error Correction. This ensures that even if a code on a curved surface or a dusty warehouse floor is partially damaged, the data remains recoverable. + +### The "Quiet Zone" Rule +Professionals never ignore the Quiet Zone. A minimum of **4 modules (blocks)** of empty white space must surround the code on all sides. Cutting into this space for "aesthetic" reasons is the #1 cause of scan failures in professional environments. Scanners use this zone to "bracket" the code and calibrate the optical sensor; without it, the algorithms may fail to distinguish the code from surrounding background noise. + +### Reed-Solomon Error Correction Selection +For professional use, the choice of error correction (EC) level is critical. Higher EC levels allow for better recovery from physical damage but increase the code's version (size). + +| EC Level | Damage Tolerance | Practical Example | +| :--- | :--- | :--- | +| **L (7%)** | Minor scratches | Indoor brochures in controlled, clean environments | +| **M (15%)** | Moderate wear | Industry standard; outdoor posters, retail packaging | +| **Q (25%)** | Heavy damage | Warehouse labels, industrial assets, curved surfaces | +| **H (30%)** | Logo embedding | Branded QR codes with 20-30% logo coverage | + +--- + +## 6. The Hybrid Strategy: The "Static Fallback" Pattern + +Modern enterprise architecture often avoids the binary "Static vs. Dynamic" choice in favor of a hybrid approach. This maximizes both flexibility and reliability. + +### The "Dual-Payload" Pattern +Some QR payloads combine machine-readable static data with a URL field, giving scanners useful fallback information even if the online destination is unavailable. This pattern is common in vCards or complex sensor data strings. + +### Use Case: Critical Field Service +An industrial generator might have a QR code. +* **Static Data:** Hardware specs and emergency shutdown procedures (works even in a basement with zero signal). +* **Dynamic Data:** A link to a "Real-time Parts Order" page or the latest PDF manual. + +--- + +## 7. Enterprise Operations: Beyond the Redirect + +### Legacy Code Migration: The "Wrapper" Strategy +If you have deployed static codes that now need analytics, you do not necessarily need a reprint: +* **Custom Logging Logic:** Create a listener in your backend that parses the static payload scan results from your proprietary scan app. +* **Visual Recognition APIs:** Use computer vision to detect static codes and trigger background analytics calls in a controlled mobile app environment. +* **NFC Augmentation:** Deploy NFC tags alongside existing QR codes for dual-mode tracking without altering the original print. + +### Security Best Practices for Dynamic Redirects +* **HTTPS-Only:** Never use `http://` in redirect URLs to prevent man-in-the-middle attacks. +* **Rate Limiting:** Protect your short-link infrastructure from redirect-abuse and DDoS via "QR spam." +* **Expiration Management:** Set automatic expiration for time-sensitive marketing campaigns. +* **Redirect Validation:** Ensure no malicious intermediate redirects can be injected into your dashboard. + +### Cost Analysis: The ROI Perspective +| Scenario | Static Approach | Dynamic Approach | Break-Even Point | +| :--- | :--- | :--- | :--- | +| **1000 assets, 0 changes** | €50 (one-time) | Subscription costs | Never (Use Static) | +| **1000 assets, 1 URL fix** | €50 + €2,000 reprint | Subscription costs | After first change | +| **A/B Testing Campaign** | Impossible | Subscription costs | Immediate | + +--- + +## 8. Conclusion: Architecture for the Hybrid Era + +The choice between static and dynamic is not about which technology is "better," but about which architecture aligns with your project’s risk profile and measurement needs. + +* **Choose Static** when the code is part of a machine, a permanent archive, or a privacy-sensitive internal workflow. +* **Choose Dynamic** when the code is a gateway to a campaign, a product support page, or any asset where the digital destination is subject to the speed of business. + +Tools like **QR Master** are designed to support both workflows, providing the high-resolution exports and professional-grade security required for enterprise-level bridge-building between the physical and digital worlds. + +--- + +> [!TIP] +> **Pro Tip for Logistics Managers:** Use Static codes for internal bin tracking to ensure zero downtime, but use Dynamic codes for customer-facing return labels to allow for carrier or address updates on the fly. diff --git a/articles/linkedin-business-card-qr.md b/articles/linkedin-business-card-qr.md index f6318a9..13a1432 100644 --- a/articles/linkedin-business-card-qr.md +++ b/articles/linkedin-business-card-qr.md @@ -1,35 +1,35 @@ -# Is Your Business Card a Dead End? - -Professional Scanning QR Business Card - - -I was at a local networking booth last week, and I collected about 20 business cards. When I sat down to follow up, I realized that 15 of them required me to manually type in a name, find them on LinkedIn, or search for their website. - -In a world where attention spans are measured in seconds, that’s a lot of friction. - -Adding a QR code to your business card isn’t just about "looking techy." It’s about making the leap from physical paper to digital connection as effortless as possible. - -But here’s the thing: most people do it wrong. - -### The 3 Biggest QR Mistakes on Business Cards - -1️⃣ **Using a Static Link** -If you print 500 cards with a direct link to your current portfolio, and you change your URL next month, you now have 500 pieces of expensive trash. **Always use a dynamic QR code.** You can change the destination URL anytime without reprinting. - -2️⃣ **Linking to Your Home Page** -Don't send me to a generic website where I have to search for your contact info. Link directly to a **vCard/Digital Business Card** or a specific landing page that says: "Add to Contacts." - -3️⃣ **The "Fine Print" Sizing** -If the code is too small or has zero border (the "quiet zone"), phone cameras will struggle to focus. If I have to try three times to scan it, I'm going to stop trying. - -### Why I think about this so much... - -I kept running into this problem often enough that I eventually built a small tool called **[QR Master](https://qrmaster.net)** to make dynamic QR codes easier to create and test. I wanted a way to create trackable codes without the baggage of monthly subscriptions or complex dashboards. - -If you’re still handing out plain paper cards, try adding a small dynamic square on the next batch. It turns a piece of cardstock into a portal. - -**Quit handing out dead-end cards. Start handing out connections.** - ---- - +# Is Your Business Card a Dead End? + +Professional Scanning QR Business Card + + +I was at a local networking booth last week, and I collected about 20 business cards. When I sat down to follow up, I realized that 15 of them required me to manually type in a name, find them on LinkedIn, or search for their website. + +In a world where attention spans are measured in seconds, that’s a lot of friction. + +Adding a QR code to your business card isn’t just about "looking techy." It’s about making the leap from physical paper to digital connection as effortless as possible. + +But here’s the thing: most people do it wrong. + +### The 3 Biggest QR Mistakes on Business Cards + +1️⃣ **Using a Static Link** +If you print 500 cards with a direct link to your current portfolio, and you change your URL next month, you now have 500 pieces of expensive trash. **Always use a dynamic QR code.** You can change the destination URL anytime without reprinting. + +2️⃣ **Linking to Your Home Page** +Don't send me to a generic website where I have to search for your contact info. Link directly to a **vCard/Digital Business Card** or a specific landing page that says: "Add to Contacts." + +3️⃣ **The "Fine Print" Sizing** +If the code is too small or has zero border (the "quiet zone"), phone cameras will struggle to focus. If I have to try three times to scan it, I'm going to stop trying. + +### Why I think about this so much... + +I kept running into this problem often enough that I eventually built a small tool called **[QR Master](https://qrmaster.net)** to make dynamic QR codes easier to create and test. I wanted a way to create trackable codes without the baggage of monthly subscriptions or complex dashboards. + +If you’re still handing out plain paper cards, try adding a small dynamic square on the next batch. It turns a piece of cardstock into a portal. + +**Quit handing out dead-end cards. Start handing out connections.** + +--- + #Networking #Marketing #B2B #DigitalTransformation #SmallBusiness #Productivity \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 2e8863a..b405f20 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,8 +1,8 @@ -#!/bin/sh -set -eu - -echo "Applying Prisma migrations..." -npx prisma migrate deploy - -echo "Starting application..." -exec node server.js +#!/bin/sh +set -eu + +echo "Applying Prisma migrations..." +npx prisma migrate deploy + +echo "Starting application..." +exec node server.js diff --git a/docs/automations/README.md b/docs/automations/README.md index 0a9764d..55343ba 100644 --- a/docs/automations/README.md +++ b/docs/automations/README.md @@ -1,45 +1,45 @@ -# Codex Automation System - -This folder defines reusable Codex workflows for QRMaster and GreenLens Pro. -Use these as operating playbooks when asking Codex to run growth, SEO, content, -or app-store work. - -## Active Automations - -### QRMaster - -1. `qrmaster-pr-seo-review.md` - - Purpose: review every SEO, landing page, and conversion change before it is merged. - - Primary plugins/tools: GitHub, Codex. - - Primary skills: `ai-seo`, `content-strategy`, `careful`, `qa`. - -2. `qrmaster-seo-sprint-machine.md` - - Purpose: plan and produce a weekly SEO sprint from keyword backlog to PR-ready work. - - Primary plugins/tools: GitHub, Coupler or CSV exports, Codex. - - Primary skills: `content-strategy`, `ai-seo`, `copywriting`, `qa`. - -3. `qrmaster-broken-link-cta-checker.md` - - Purpose: catch broken internal links and broken CTAs after direct `main` - branch changes. - - Primary plugins/tools: Codex, GitHub Actions or local npm script. - - Primary skills: `qa`, `ai-seo`. - -### GreenLens Pro - -1. `greenlens-pain-mining-machine.md` - - Purpose: turn reviews, comments, competitor messaging, and search questions into - product, ASO, and content opportunities. - - Primary plugins/tools: Codex, Gmail, Coupler or CSV exports. - - Primary skills: `app-store-aso`, `content-strategy`, `copywriting`. - -2. `greenlens-viral-slideshow-machine.md` - - Purpose: turn validated plant pains into TikTok, Instagram, and Canva-ready - slideshow assets. - - Primary plugins/tools: Canva, Codex, Gmail/Fyxer for creator briefs. - - Primary skills: `content-strategy`, `copywriting`, `ad-creative`, `app-store-aso`. - -## Operating Rule - -Do not automate publishing directly. Automate drafts, PRs, reviews, and packaged -outputs first. A human should approve live SEO pages, store metadata, influencer -messages, and paid/conversion changes. +# Codex Automation System + +This folder defines reusable Codex workflows for QRMaster and GreenLens Pro. +Use these as operating playbooks when asking Codex to run growth, SEO, content, +or app-store work. + +## Active Automations + +### QRMaster + +1. `qrmaster-pr-seo-review.md` + - Purpose: review every SEO, landing page, and conversion change before it is merged. + - Primary plugins/tools: GitHub, Codex. + - Primary skills: `ai-seo`, `content-strategy`, `careful`, `qa`. + +2. `qrmaster-seo-sprint-machine.md` + - Purpose: plan and produce a weekly SEO sprint from keyword backlog to PR-ready work. + - Primary plugins/tools: GitHub, Coupler or CSV exports, Codex. + - Primary skills: `content-strategy`, `ai-seo`, `copywriting`, `qa`. + +3. `qrmaster-broken-link-cta-checker.md` + - Purpose: catch broken internal links and broken CTAs after direct `main` + branch changes. + - Primary plugins/tools: Codex, GitHub Actions or local npm script. + - Primary skills: `qa`, `ai-seo`. + +### GreenLens Pro + +1. `greenlens-pain-mining-machine.md` + - Purpose: turn reviews, comments, competitor messaging, and search questions into + product, ASO, and content opportunities. + - Primary plugins/tools: Codex, Gmail, Coupler or CSV exports. + - Primary skills: `app-store-aso`, `content-strategy`, `copywriting`. + +2. `greenlens-viral-slideshow-machine.md` + - Purpose: turn validated plant pains into TikTok, Instagram, and Canva-ready + slideshow assets. + - Primary plugins/tools: Canva, Codex, Gmail/Fyxer for creator briefs. + - Primary skills: `content-strategy`, `copywriting`, `ad-creative`, `app-store-aso`. + +## Operating Rule + +Do not automate publishing directly. Automate drafts, PRs, reviews, and packaged +outputs first. A human should approve live SEO pages, store metadata, influencer +messages, and paid/conversion changes. diff --git a/docs/automations/greenlens-pain-mining-machine.md b/docs/automations/greenlens-pain-mining-machine.md index 113c257..8c782b4 100644 --- a/docs/automations/greenlens-pain-mining-machine.md +++ b/docs/automations/greenlens-pain-mining-machine.md @@ -1,160 +1,160 @@ -# GreenLens Pro Pain Mining Machine - -## Goal - -Turn real plant-owner pains into content, ASO, influencer, landing page, and -product opportunities. - -## Why This Exists - -GreenLens Pro should be driven by what users actually worry about: -yellow leaves, brown spots, root rot, overwatering, underwatering, pests, -curling leaves, and not knowing what to do next. - -## Plugins And Skills - -| Need | Use | -|---|---| -| Review/comment exports | Coupler, CSV exports, Codex | -| App Store optimization | `app-store-aso` skill | -| Content clustering | `content-strategy` skill | -| Copy and hooks | `copywriting` skill | -| Support/outreach drafting | Gmail/Fyxer plugin | -| Product issue creation | GitHub plugin | - -## Data Sources - -Use any available source, but label the source for every pain: - -- App Store competitor reviews -- Google Play competitor reviews -- Reddit plant-care threads -- TikTok or Instagram comments -- Google autocomplete or People Also Ask exports -- Support emails or user feedback -- Existing GreenLens analytics or onboarding responses - -## Pain Taxonomy - -Cluster each item into one primary category: - -- Yellow leaves -- Brown spots -- Root rot -- Overwatering -- Underwatering -- Curling leaves -- Drooping leaves -- Pests -- Light problems -- Soil and repotting -- Beginner confusion -- Diagnosis trust -- Price/paywall objection -- App usability issue - -## Scoring Model - -Score each pain from 0-100: - -| Factor | Weight | -|---|---:| -| User urgency | 30 | -| App fit | 25 | -| Content virality | 20 | -| ASO/search value | 15 | -| Product learning value | 10 | - -Prioritize urgent, visual, diagnosis-driven pains where GreenLens can credibly -help the user decide what to check next. - -## Weekly Output - -Produce: - -1. Top 20 pains. -2. Top 10 social hooks. -3. Top 5 ASO keyword opportunities. -4. Top 5 blog or landing page ideas. -5. Top 5 product issues or feature hypotheses. -6. Top 10 influencer angles. - -## Codex Pain Mining Prompt - -```text -Run the GreenLens Pro Pain Mining Machine. - -Use: -- docs/automations/greenlens-pain-mining-machine.md -- app-store-aso skill -- content-strategy skill - -Input source: [reviews/comments/export/pasted text] -Market: [US / DE / global] -Platform focus: [iOS / Android / both] - -Tasks: -1. Extract raw plant-owner pains. -2. Cluster them into the GreenLens pain taxonomy. -3. Score each pain by urgency, app fit, virality, ASO value, and product learning. -4. Convert winners into: - - social hooks - - ASO keyword ideas - - blog/landing page ideas - - product issues - - influencer outreach angles - -Do not invent source quotes. If evidence is weak, label it as hypothesis. -``` - -## Output Template - -```markdown -# GreenLens Pain Mining Report - -## Source Summary - -## Top Pains -| Rank | Pain | Source | Score | Why it matters | -|---|---|---|---:|---| - -## Hook Backlog - -## ASO Opportunities - -## Product Issues - -## Influencer Angles - -## Next Actions -``` - -## Product Issue Template - -```markdown -Title: [Feature or improvement] - -User pain: -[What the user is struggling with] - -Hypothesis: -If GreenLens [change], users will [outcome]. - -Acceptance criteria: -- [criterion] -- [criterion] -- [criterion] - -Measurement: -- activation -- scan completion -- paywall conversion -- retention -``` - -## Success Criteria - -- Every recommendation traces back to a real pain or explicitly marked hypothesis. -- Top pains can feed both ASO and social content. -- Product issues are concrete enough for GitHub. - +# GreenLens Pro Pain Mining Machine + +## Goal + +Turn real plant-owner pains into content, ASO, influencer, landing page, and +product opportunities. + +## Why This Exists + +GreenLens Pro should be driven by what users actually worry about: +yellow leaves, brown spots, root rot, overwatering, underwatering, pests, +curling leaves, and not knowing what to do next. + +## Plugins And Skills + +| Need | Use | +|---|---| +| Review/comment exports | Coupler, CSV exports, Codex | +| App Store optimization | `app-store-aso` skill | +| Content clustering | `content-strategy` skill | +| Copy and hooks | `copywriting` skill | +| Support/outreach drafting | Gmail/Fyxer plugin | +| Product issue creation | GitHub plugin | + +## Data Sources + +Use any available source, but label the source for every pain: + +- App Store competitor reviews +- Google Play competitor reviews +- Reddit plant-care threads +- TikTok or Instagram comments +- Google autocomplete or People Also Ask exports +- Support emails or user feedback +- Existing GreenLens analytics or onboarding responses + +## Pain Taxonomy + +Cluster each item into one primary category: + +- Yellow leaves +- Brown spots +- Root rot +- Overwatering +- Underwatering +- Curling leaves +- Drooping leaves +- Pests +- Light problems +- Soil and repotting +- Beginner confusion +- Diagnosis trust +- Price/paywall objection +- App usability issue + +## Scoring Model + +Score each pain from 0-100: + +| Factor | Weight | +|---|---:| +| User urgency | 30 | +| App fit | 25 | +| Content virality | 20 | +| ASO/search value | 15 | +| Product learning value | 10 | + +Prioritize urgent, visual, diagnosis-driven pains where GreenLens can credibly +help the user decide what to check next. + +## Weekly Output + +Produce: + +1. Top 20 pains. +2. Top 10 social hooks. +3. Top 5 ASO keyword opportunities. +4. Top 5 blog or landing page ideas. +5. Top 5 product issues or feature hypotheses. +6. Top 10 influencer angles. + +## Codex Pain Mining Prompt + +```text +Run the GreenLens Pro Pain Mining Machine. + +Use: +- docs/automations/greenlens-pain-mining-machine.md +- app-store-aso skill +- content-strategy skill + +Input source: [reviews/comments/export/pasted text] +Market: [US / DE / global] +Platform focus: [iOS / Android / both] + +Tasks: +1. Extract raw plant-owner pains. +2. Cluster them into the GreenLens pain taxonomy. +3. Score each pain by urgency, app fit, virality, ASO value, and product learning. +4. Convert winners into: + - social hooks + - ASO keyword ideas + - blog/landing page ideas + - product issues + - influencer outreach angles + +Do not invent source quotes. If evidence is weak, label it as hypothesis. +``` + +## Output Template + +```markdown +# GreenLens Pain Mining Report + +## Source Summary + +## Top Pains +| Rank | Pain | Source | Score | Why it matters | +|---|---|---|---:|---| + +## Hook Backlog + +## ASO Opportunities + +## Product Issues + +## Influencer Angles + +## Next Actions +``` + +## Product Issue Template + +```markdown +Title: [Feature or improvement] + +User pain: +[What the user is struggling with] + +Hypothesis: +If GreenLens [change], users will [outcome]. + +Acceptance criteria: +- [criterion] +- [criterion] +- [criterion] + +Measurement: +- activation +- scan completion +- paywall conversion +- retention +``` + +## Success Criteria + +- Every recommendation traces back to a real pain or explicitly marked hypothesis. +- Top pains can feed both ASO and social content. +- Product issues are concrete enough for GitHub. + diff --git a/docs/automations/greenlens-viral-slideshow-machine.md b/docs/automations/greenlens-viral-slideshow-machine.md index 0c079a4..5b09fe1 100644 --- a/docs/automations/greenlens-viral-slideshow-machine.md +++ b/docs/automations/greenlens-viral-slideshow-machine.md @@ -1,139 +1,139 @@ -# GreenLens Pro Viral Slideshow Machine - -## Goal - -Convert validated plant pains into TikTok, Instagram, and Canva-ready slideshow -assets that drive awareness and app downloads. - -## Plugins And Skills - -| Need | Use | -|---|---| -| Creative generation | Canva plugin | -| Hook and caption writing | `copywriting`, `ad-creative` skills | -| Content planning | `content-strategy` skill | -| ASO alignment | `app-store-aso` skill | -| Creator briefs and outreach | Gmail/Fyxer plugin | - -## Required Input - -Use outputs from `greenlens-pain-mining-machine.md`: - -- pain cluster -- urgency score -- source evidence -- target audience -- desired CTA -- app positioning angle - -## Content Pillars - -- Diagnosis before guessing -- Overwatering mistakes -- Yellow leaves -- Brown spots -- Root rot warnings -- Beginner plant rescue -- Plant symptoms explained -- "Do not water yet" warnings -- App scan/use-case demos - -## Slideshow Formula - -1. Hook: direct warning, contradiction, or curiosity. -2. Problem: show the common wrong assumption. -3. Explanation: simple plant-care reason. -4. Check: what the user should inspect first. -5. Risk: what happens if they guess. -6. GreenLens bridge: scan or diagnose before acting. -7. CTA: download, scan, or save. - -## Hook Patterns - -- "Do not water your plant before checking this." -- "Yellow leaves do not always mean your plant is thirsty." -- "Brown spots can mean more than sunburn." -- "Your plant was warning you before it started dying." -- "Overwatering often looks like underwatering." -- "Scan before you guess." - -## Canva Direction - -Use GreenLens as a calm diagnosis-first plant app: - -- natural plant photography or close-up symptom imagery -- clear readable overlay text -- botanical but not decorative-only -- show symptoms clearly -- app screenshot or phone mockup only when it explains the action -- avoid vague wellness aesthetics that do not show the plant problem - -## Codex Slideshow Prompt - -```text -Run the GreenLens Pro Viral Slideshow Machine. - -Use: -- docs/automations/greenlens-pain-mining-machine.md -- docs/automations/greenlens-viral-slideshow-machine.md -- app-store-aso skill -- content-strategy skill -- copywriting/ad-creative skills - -Input pain cluster: [pain] -Audience: [beginner plant owners / plant rescue followers / houseplant collectors] -CTA: [Download GreenLens Pro / Scan your plant / Save this checklist] -Channel: [TikTok / Instagram / both] -Quantity: [number] - -Return for each concept: -1. hook -2. 5-7 slide script -3. visual direction per slide -4. Canva prompt -5. caption -6. hashtags -7. ASO keyword tie-in -8. creator brief version - -Rules: -- Keep claims educational, not medical/certain beyond evidence. -- Do not promise perfect diagnosis. -- Make the symptom visually inspectable. -- The app CTA should feel like the next practical step, not a hard sell. -``` - -## Output Template - -```markdown -# GreenLens Slideshow Pack: [Pain Cluster] - -## Concept 1: [Hook] - -### Slides -1. [text] -- [visual] -2. [text] -- [visual] -3. [text] -- [visual] -4. [text] -- [visual] -5. [text] -- [visual] -6. [text] -- [visual] -7. [text] -- [visual] - -### Canva Prompt - -### Caption - -### Hashtags - -### ASO Tie-In - -### Creator Brief -``` - -## Quality Bar - -- The first slide must be understandable in under 2 seconds. -- Every slide should be shorter than 12 words when possible. -- The visual must show the symptom or action, not just a plant mood shot. -- The final CTA should match the pain: scan, check, save, or download. - +# GreenLens Pro Viral Slideshow Machine + +## Goal + +Convert validated plant pains into TikTok, Instagram, and Canva-ready slideshow +assets that drive awareness and app downloads. + +## Plugins And Skills + +| Need | Use | +|---|---| +| Creative generation | Canva plugin | +| Hook and caption writing | `copywriting`, `ad-creative` skills | +| Content planning | `content-strategy` skill | +| ASO alignment | `app-store-aso` skill | +| Creator briefs and outreach | Gmail/Fyxer plugin | + +## Required Input + +Use outputs from `greenlens-pain-mining-machine.md`: + +- pain cluster +- urgency score +- source evidence +- target audience +- desired CTA +- app positioning angle + +## Content Pillars + +- Diagnosis before guessing +- Overwatering mistakes +- Yellow leaves +- Brown spots +- Root rot warnings +- Beginner plant rescue +- Plant symptoms explained +- "Do not water yet" warnings +- App scan/use-case demos + +## Slideshow Formula + +1. Hook: direct warning, contradiction, or curiosity. +2. Problem: show the common wrong assumption. +3. Explanation: simple plant-care reason. +4. Check: what the user should inspect first. +5. Risk: what happens if they guess. +6. GreenLens bridge: scan or diagnose before acting. +7. CTA: download, scan, or save. + +## Hook Patterns + +- "Do not water your plant before checking this." +- "Yellow leaves do not always mean your plant is thirsty." +- "Brown spots can mean more than sunburn." +- "Your plant was warning you before it started dying." +- "Overwatering often looks like underwatering." +- "Scan before you guess." + +## Canva Direction + +Use GreenLens as a calm diagnosis-first plant app: + +- natural plant photography or close-up symptom imagery +- clear readable overlay text +- botanical but not decorative-only +- show symptoms clearly +- app screenshot or phone mockup only when it explains the action +- avoid vague wellness aesthetics that do not show the plant problem + +## Codex Slideshow Prompt + +```text +Run the GreenLens Pro Viral Slideshow Machine. + +Use: +- docs/automations/greenlens-pain-mining-machine.md +- docs/automations/greenlens-viral-slideshow-machine.md +- app-store-aso skill +- content-strategy skill +- copywriting/ad-creative skills + +Input pain cluster: [pain] +Audience: [beginner plant owners / plant rescue followers / houseplant collectors] +CTA: [Download GreenLens Pro / Scan your plant / Save this checklist] +Channel: [TikTok / Instagram / both] +Quantity: [number] + +Return for each concept: +1. hook +2. 5-7 slide script +3. visual direction per slide +4. Canva prompt +5. caption +6. hashtags +7. ASO keyword tie-in +8. creator brief version + +Rules: +- Keep claims educational, not medical/certain beyond evidence. +- Do not promise perfect diagnosis. +- Make the symptom visually inspectable. +- The app CTA should feel like the next practical step, not a hard sell. +``` + +## Output Template + +```markdown +# GreenLens Slideshow Pack: [Pain Cluster] + +## Concept 1: [Hook] + +### Slides +1. [text] -- [visual] +2. [text] -- [visual] +3. [text] -- [visual] +4. [text] -- [visual] +5. [text] -- [visual] +6. [text] -- [visual] +7. [text] -- [visual] + +### Canva Prompt + +### Caption + +### Hashtags + +### ASO Tie-In + +### Creator Brief +``` + +## Quality Bar + +- The first slide must be understandable in under 2 seconds. +- Every slide should be shorter than 12 words when possible. +- The visual must show the symptom or action, not just a plant mood shot. +- The final CTA should match the pain: scan, check, save, or download. + diff --git a/docs/automations/qrmaster-broken-link-cta-checker.md b/docs/automations/qrmaster-broken-link-cta-checker.md index 800a47a..43a7750 100644 --- a/docs/automations/qrmaster-broken-link-cta-checker.md +++ b/docs/automations/qrmaster-broken-link-cta-checker.md @@ -1,57 +1,57 @@ -# QRMaster Broken Link + CTA Checker - -## Goal - -Catch broken internal links and broken conversion CTAs on `main`, especially -after direct edits without a pull request. - -## What It Checks - -- Static internal `href` values in source files. -- Static `router.push("/...")` destinations. -- Internal links against known Next.js app routes and files in `public/`. -- CTA-like links such as "Get started", "Create QR", "Start free", - "Generate QR", "Pricing", and "Upgrade". -- Pages that appear to have no obvious CTA link. - -## Command - -```bash -npm run check:links -``` - -The command prints a JSON report. It exits with a non-zero status if broken -internal links or broken CTA links are found. - -## Known Limits - -- Dynamic CMS/blog slugs are allowed by prefix and not fully validated. -- Runtime-only links built from variables are skipped. -- External links are not checked by this local script. -- This is a fast safety check, not a full crawl of the deployed website. - -## Codex Automation Prompt - -```text -Run the QRMaster Broken Link + CTA Checker. - -Use: -- docs/automations/qrmaster-broken-link-cta-checker.md -- scripts/check-links-and-ctas.js - -Run npm run check:links. Review the JSON report and summarize: -1. broken internal links -2. broken CTA links -3. important pages without obvious CTAs -4. concrete fixes with file paths - -If the script fails, inspect the listed files and propose the smallest safe fix. -Do not modify production configuration automatically. -``` - -## Success Criteria - -- No broken internal links. -- No broken CTA links. -- Important marketing, tool, and pricing pages have a clear CTA. - +# QRMaster Broken Link + CTA Checker + +## Goal + +Catch broken internal links and broken conversion CTAs on `main`, especially +after direct edits without a pull request. + +## What It Checks + +- Static internal `href` values in source files. +- Static `router.push("/...")` destinations. +- Internal links against known Next.js app routes and files in `public/`. +- CTA-like links such as "Get started", "Create QR", "Start free", + "Generate QR", "Pricing", and "Upgrade". +- Pages that appear to have no obvious CTA link. + +## Command + +```bash +npm run check:links +``` + +The command prints a JSON report. It exits with a non-zero status if broken +internal links or broken CTA links are found. + +## Known Limits + +- Dynamic CMS/blog slugs are allowed by prefix and not fully validated. +- Runtime-only links built from variables are skipped. +- External links are not checked by this local script. +- This is a fast safety check, not a full crawl of the deployed website. + +## Codex Automation Prompt + +```text +Run the QRMaster Broken Link + CTA Checker. + +Use: +- docs/automations/qrmaster-broken-link-cta-checker.md +- scripts/check-links-and-ctas.js + +Run npm run check:links. Review the JSON report and summarize: +1. broken internal links +2. broken CTA links +3. important pages without obvious CTAs +4. concrete fixes with file paths + +If the script fails, inspect the listed files and propose the smallest safe fix. +Do not modify production configuration automatically. +``` + +## Success Criteria + +- No broken internal links. +- No broken CTA links. +- Important marketing, tool, and pricing pages have a clear CTA. + diff --git a/docs/automations/qrmaster-pr-seo-review.md b/docs/automations/qrmaster-pr-seo-review.md index 8336535..477e380 100644 --- a/docs/automations/qrmaster-pr-seo-review.md +++ b/docs/automations/qrmaster-pr-seo-review.md @@ -1,163 +1,163 @@ -# QRMaster PR SEO Review - -## Goal - -Catch SEO, conversion, content-quality, and technical issues before a QRMaster -page change is merged. - -## Use When - -- A PR changes landing pages, tool pages, comparison pages, blog posts, metadata, - schema, sitemap behavior, internal links, pricing copy, or CTAs. -- Codex generated new SEO pages from `marketing/programmatic-seo-top-50.md`. -- Existing pages were refreshed from Google Search Console or keyword data. - -## Plugins And Skills - -| Need | Use | -|---|---| -| Diff and PR review | GitHub plugin | -| Code/content inspection | Codex | -| SEO/AEO review | `ai-seo` skill | -| Content intent and cluster fit | `content-strategy` skill | -| Build/lint verification | GitHub Actions, `qa` skill | -| Careful merge decision | `careful` skill | - -## Review Checklist - -### 1. Technical SEO - -- Exactly one H1 on the rendered page. -- Meta title exists and is specific to the page intent. -- Meta title places the primary keyword near the start where natural. -- Meta title stays under roughly 60 characters unless there is a clear reason. -- Meta description exists and promises the right outcome. -- Meta description includes the target keyword naturally, states the user benefit, - and stays concise enough to avoid likely truncation. -- Canonical URL is correct. -- Page is not accidentally noindexed. -- FAQ, Article, Product, Breadcrumb, or HowTo schema is valid where used. -- Sitemap and internal routing include the page where required. -- No broken internal links or CTA links. -- Language and locale are consistent. -- URL slug is short, descriptive, hyphenated, and does not include stale dates. -- Meaningful images have descriptive alt text and useful filenames where local - image handling allows it. -- Large visual assets are compressed or already optimized. -- Mobile layout is readable and CTAs are tappable. -- The page does not introduce obvious Core Web Vitals risks. -- Robots rules do not block important pages or desired AI/search crawlers. - -### 2. Search Intent - -- The first screen makes it obvious the page answers the target query. -- The opening paragraph states the problem directly. -- The page matches one primary intent only. -- The content is not a generic rewrite of another QRMaster page. -- The page includes concrete examples for its audience or use case. -- The target keyword intent is labeled as informational, commercial, - transactional, or navigational. -- The page covers the related subtopics a search or AI system would fan out to - for the main query. -- Each H2/H3 section answers the heading directly in the first sentence before - adding background or nuance. - -### 3. QRMaster Conversion Fit - -- Primary CTA is visible early. -- CTA copy matches the use case, not just generic "Get started". -- The page explains why dynamic QR codes matter when links change after printing. -- Scan analytics or tracking is mentioned when relevant. -- Privacy/GDPR positioning is included where tracking is discussed. -- The copy avoids unsupported claims. - -### 4. Internal Linking - -- New page links to the relevant money page: - - `/dynamic-qr-code-generator` - - `/qr-code-tracking` - - `/bulk-qr-code-generator` - - `/pricing` - - relevant `/tools/...` page -- Existing related pages should link back to the new page. -- Anchor text is natural and varied. - -### 5. AI Search Extractability - -- Important answer blocks are self-contained. -- Comparison content uses tables where useful. -- FAQ questions are written in natural user language. -- Definitions answer the query in 40-60 words when possible. -- Claims that need evidence include a source or are framed as product positioning. -- Sections are focused on one question or subtopic at a time. -- Bullet lists, tables, and short paragraphs are used where they improve - extraction and scanning. -- The page can be cited by AI systems without relying on surrounding context. - -### 6. E-E-A-T And Quality - -- Content is accurate, current, and not copied from competitors. -- Any competitor, pricing, legal, privacy, or compliance claim is verified or - clearly avoided. -- The page adds QRMaster-specific value, examples, workflows, or product context. -- The tone stays direct, useful, and trustworthy. - -## Codex Review Prompt - -```text -Review this QRMaster PR as an SEO, conversion, and technical quality gate. - -Use: -- docs/automations/qrmaster-pr-seo-review.md -- .agents/product-marketing-context.md -- marketing/programmatic-seo-top-50.md - -Check the diff for: -1. technical SEO issues -2. search intent mismatch -3. weak or missing CTA -4. duplicate/thin content -5. missing internal links -6. invalid or missing schema -7. weak AI/agentic-search extractability -8. missing visual/mobile/performance considerations -9. build/lint risks - -Return findings ordered by severity. For each finding include: -- file path -- exact line if possible -- why it matters -- concrete fix - -Also include: -- merge recommendation: approve / request changes -- required follow-up tasks -``` - -## Review Output Format - -```markdown -## QRMaster PR SEO Review - -Decision: Request changes - -### Findings -1. [High] Missing internal link to `/dynamic-qr-code-generator` -2. [Medium] CTA is too generic for the target intent -3. [Low] FAQ question overlaps with another page - -### Required Fixes -- Add contextual link from the "after printing" section to `/dynamic-qr-code-generator`. -- Change CTA from "Get started" to "Create an editable QR code for your flyer". - -### Verification -- Build: -- Lint: -- Link/schema check: -``` - -## Success Criteria - -- No high-severity SEO or conversion findings remain. -- Build and lint pass. -- The PR has a clear human approval before merge. +# QRMaster PR SEO Review + +## Goal + +Catch SEO, conversion, content-quality, and technical issues before a QRMaster +page change is merged. + +## Use When + +- A PR changes landing pages, tool pages, comparison pages, blog posts, metadata, + schema, sitemap behavior, internal links, pricing copy, or CTAs. +- Codex generated new SEO pages from `marketing/programmatic-seo-top-50.md`. +- Existing pages were refreshed from Google Search Console or keyword data. + +## Plugins And Skills + +| Need | Use | +|---|---| +| Diff and PR review | GitHub plugin | +| Code/content inspection | Codex | +| SEO/AEO review | `ai-seo` skill | +| Content intent and cluster fit | `content-strategy` skill | +| Build/lint verification | GitHub Actions, `qa` skill | +| Careful merge decision | `careful` skill | + +## Review Checklist + +### 1. Technical SEO + +- Exactly one H1 on the rendered page. +- Meta title exists and is specific to the page intent. +- Meta title places the primary keyword near the start where natural. +- Meta title stays under roughly 60 characters unless there is a clear reason. +- Meta description exists and promises the right outcome. +- Meta description includes the target keyword naturally, states the user benefit, + and stays concise enough to avoid likely truncation. +- Canonical URL is correct. +- Page is not accidentally noindexed. +- FAQ, Article, Product, Breadcrumb, or HowTo schema is valid where used. +- Sitemap and internal routing include the page where required. +- No broken internal links or CTA links. +- Language and locale are consistent. +- URL slug is short, descriptive, hyphenated, and does not include stale dates. +- Meaningful images have descriptive alt text and useful filenames where local + image handling allows it. +- Large visual assets are compressed or already optimized. +- Mobile layout is readable and CTAs are tappable. +- The page does not introduce obvious Core Web Vitals risks. +- Robots rules do not block important pages or desired AI/search crawlers. + +### 2. Search Intent + +- The first screen makes it obvious the page answers the target query. +- The opening paragraph states the problem directly. +- The page matches one primary intent only. +- The content is not a generic rewrite of another QRMaster page. +- The page includes concrete examples for its audience or use case. +- The target keyword intent is labeled as informational, commercial, + transactional, or navigational. +- The page covers the related subtopics a search or AI system would fan out to + for the main query. +- Each H2/H3 section answers the heading directly in the first sentence before + adding background or nuance. + +### 3. QRMaster Conversion Fit + +- Primary CTA is visible early. +- CTA copy matches the use case, not just generic "Get started". +- The page explains why dynamic QR codes matter when links change after printing. +- Scan analytics or tracking is mentioned when relevant. +- Privacy/GDPR positioning is included where tracking is discussed. +- The copy avoids unsupported claims. + +### 4. Internal Linking + +- New page links to the relevant money page: + - `/dynamic-qr-code-generator` + - `/qr-code-tracking` + - `/bulk-qr-code-generator` + - `/pricing` + - relevant `/tools/...` page +- Existing related pages should link back to the new page. +- Anchor text is natural and varied. + +### 5. AI Search Extractability + +- Important answer blocks are self-contained. +- Comparison content uses tables where useful. +- FAQ questions are written in natural user language. +- Definitions answer the query in 40-60 words when possible. +- Claims that need evidence include a source or are framed as product positioning. +- Sections are focused on one question or subtopic at a time. +- Bullet lists, tables, and short paragraphs are used where they improve + extraction and scanning. +- The page can be cited by AI systems without relying on surrounding context. + +### 6. E-E-A-T And Quality + +- Content is accurate, current, and not copied from competitors. +- Any competitor, pricing, legal, privacy, or compliance claim is verified or + clearly avoided. +- The page adds QRMaster-specific value, examples, workflows, or product context. +- The tone stays direct, useful, and trustworthy. + +## Codex Review Prompt + +```text +Review this QRMaster PR as an SEO, conversion, and technical quality gate. + +Use: +- docs/automations/qrmaster-pr-seo-review.md +- .agents/product-marketing-context.md +- marketing/programmatic-seo-top-50.md + +Check the diff for: +1. technical SEO issues +2. search intent mismatch +3. weak or missing CTA +4. duplicate/thin content +5. missing internal links +6. invalid or missing schema +7. weak AI/agentic-search extractability +8. missing visual/mobile/performance considerations +9. build/lint risks + +Return findings ordered by severity. For each finding include: +- file path +- exact line if possible +- why it matters +- concrete fix + +Also include: +- merge recommendation: approve / request changes +- required follow-up tasks +``` + +## Review Output Format + +```markdown +## QRMaster PR SEO Review + +Decision: Request changes + +### Findings +1. [High] Missing internal link to `/dynamic-qr-code-generator` +2. [Medium] CTA is too generic for the target intent +3. [Low] FAQ question overlaps with another page + +### Required Fixes +- Add contextual link from the "after printing" section to `/dynamic-qr-code-generator`. +- Change CTA from "Get started" to "Create an editable QR code for your flyer". + +### Verification +- Build: +- Lint: +- Link/schema check: +``` + +## Success Criteria + +- No high-severity SEO or conversion findings remain. +- Build and lint pass. +- The PR has a clear human approval before merge. diff --git a/docs/automations/qrmaster-seo-sprint-2026-05-11.md b/docs/automations/qrmaster-seo-sprint-2026-05-11.md index de63f7e..c439a98 100644 --- a/docs/automations/qrmaster-seo-sprint-2026-05-11.md +++ b/docs/automations/qrmaster-seo-sprint-2026-05-11.md @@ -1,158 +1,158 @@ -# QRMaster SEO Sprint: Tracking and Analytics - -Run date: 2026-05-11 -Automation: QRMaster SEO Sprint Machine -Status: Recommendation package only; do not publish without human approval. - -## Input Notes - -- Used `docs/automations/qrmaster-seo-sprint-machine.md`, `docs/automations/qrmaster-pr-seo-review.md`, `.agents/product-marketing-context.md`, `marketing/programmatic-seo-top-50.md`, `seo-plan-april.md`, and `seo-keywords.csv`. -- `marketing/keyword-strategy-seo-plan.md` was not present in this worktree. `seo-plan-april.md` appears to be the local keyword strategy fallback and includes the same cluster-level keyword data. -- Existing routing redirects selected legacy `/guide/...` paths to `/learn/...`, so this sprint should avoid creating duplicate guide URLs without a clear canonical/routing decision. - -## Cluster Scoring - -| Cluster | Product fit /30 | Commercial intent /25 | Differentiation /15 | Cluster leverage /10 | Winability /10 | Effort /10 | Score | Decision | -|---|---:|---:|---:|---:|---:|---:|---:|---| -| Tracking and analytics | 29 | 24 | 15 | 10 | 8 | 8 | 94 | Select | -| Dynamic QR buying decision | 30 | 24 | 13 | 10 | 7 | 7 | 91 | Next best | -| Bulk QR generation | 27 | 19 | 14 | 8 | 9 | 8 | 85 | Hold for later | -| Commercial alternatives | 22 | 25 | 12 | 8 | 6 | 5 | 78 | Needs current competitor verification | -| Restaurant/menu QR | 25 | 16 | 12 | 8 | 7 | 7 | 75 | Good vertical support, weaker immediate demand | -| Custom/design QR | 20 | 18 | 9 | 8 | 8 | 8 | 71 | Tool-led, less differentiated | -| Print reliability | 21 | 13 | 10 | 7 | 9 | 8 | 68 | Useful support content, weaker commercial pull | - -## Rationale - -Tracking and analytics is the highest-fit weekly cluster because it maps directly to QRMaster's differentiators: dynamic QR redirects, scan analytics, placement comparison, and privacy-first reporting. The keyword set includes `qr code tracking` at 1k-10k monthly volume with +900% 3-month YoY trend, `track qr code scans` with +900% 3-month trend, and `trackable qr code` with the highest CPC ceiling in the file at EUR 34.25. The cluster also has strong internal-link leverage into `/dynamic-qr-code-generator`, `/qr-code-analytics`, `/qr-code-tracking`, `/qr-code-for-marketing-campaigns`, pricing, and use-case pages. - -## Selected Work - -| Type | URL | Score | Reason | -|---|---|---:|---| -| Refresh | `/qr-code-tracking` | 94 | Money page for `qr code tracking`, `track qr code scans`, and `trackable qr code`; already has schema but should strengthen privacy and placement examples. | -| Refresh | `/qr-code-analytics` | 90 | Needs clearer separation from tracking: analytics should own dashboard interpretation, ROI, and performance insights. | -| Refresh | `/blog/trackable-qr-codes` | 88 | Existing support article should capture `trackable qr code` and link strongly to `/qr-code-tracking`. | -| Refresh | `/blog/utm-parameter-qr-codes` | 86 | Existing support article should capture fan-out intent around GA4, UTM naming, placement comparison, and offline attribution. | -| New support page | `/use-cases/qr-codes-for-review-collection` | 86 | Existing backlog item with natural tracking CTA; use as a measurable review funnel page, not a generic Google reviews tool duplicate. | - -## Keyword Intent And Fan-Out - -| URL | Primary keyword | Intent | Fan-out subtopics | -|---|---|---|---| -| `/qr-code-tracking` | `qr code tracking` | Commercial | What can be tracked, static vs dynamic tracking, scan count vs unique scans, device/location/time context, privacy/GDPR, placement comparison, UTM pairing, dashboard workflow, pricing limits. | -| `/qr-code-analytics` | `qr code analytics` | Commercial | Analytics dashboard, ROI interpretation, campaign attribution, useful metrics vs vanity metrics, offline-to-online measurement, reporting cadence, route naming, export/share needs. | -| `/blog/trackable-qr-codes` | `trackable qr code` | Informational-commercial | Definition, how tracking works, dynamic redirect layer, privacy limits, examples by placement, pros/cons, setup checklist, when not to track. | -| `/blog/utm-parameter-qr-codes` | `qr code UTM tracking` | Informational | GA4 source/medium/campaign/content conventions, examples for flyers/events/packaging, common mistakes, naming templates, QR destination testing. | -| `/use-cases/qr-codes-for-review-collection` | `QR codes for review collection` | Commercial | Google review link workflow, in-store placement, happy-path routing, feedback triage, scan tracking, QR privacy, dynamic destination updates. | - -## 2026 On-Page And Agentic-Search Rules - -- Titles/H1s should put the target keyword near the start: - - `/qr-code-tracking`: `QR Code Tracking: Track QR Code Scans` - - `/qr-code-analytics`: `QR Code Analytics: Measure Offline Campaigns` - - `/blog/trackable-qr-codes`: `Trackable QR Codes: What You Can Measure` - - `/blog/utm-parameter-qr-codes`: `QR Code UTM Tracking: GA4 Setup Guide` - - `/use-cases/qr-codes-for-review-collection`: `QR Codes for Review Collection` -- Each H2 should start with a direct answer in the first sentence. -- Add compact tables for `static vs dynamic`, `tracking vs analytics`, and `UTM examples by placement`. -- Add FAQ schema to refreshed informational pages where the existing blog system supports it; preserve SoftwareApplication and HowTo schema on money pages. -- Use self-contained answer blocks of roughly 40-60 words for definitions and "can you track..." questions. -- Visuals should be meaningful: dashboard screenshot/mockup, placement comparison example, UTM naming table, and review-flow diagram. -- Robots/indexing: current `robots.ts` allows major search/AI crawlers and disallows private app/API paths. Keep these pages indexed, sitemap-included, and canonicalized to their final URLs. -- Mobile/speed risks: avoid heavy dashboard imagery; use compressed static images and keep tables horizontally readable on mobile. - -## Recommended New Page - -### `/use-cases/qr-codes-for-review-collection` - -Purpose: Create a commercially useful support page for restaurants, cafes, retail, hotels, and service businesses that want measurable review capture. - -Required sections: - -1. Direct answer: a review-collection QR code sends satisfied customers to the right review or feedback flow and lets teams measure which physical prompts get scanned. -2. Workflow: in-store sign, receipt, table card, counter card, packaging insert. -3. Dynamic vs static: use dynamic if the review platform, routing rule, or offer changes. -4. Tracking angle: compare scan volume by placement, store, or campaign. -5. Privacy note: describe scan analytics without promising personally identifiable tracking. -6. CTA: `Create a trackable review QR code` to `/qr-code-tracking` or `/signup`. -7. Internal links: `/tools/google-review-qr-code`, `/qr-code-tracking`, `/dynamic-qr-code-generator`, `/restaurants`, `/use-cases/feedback-qr-codes`. -8. Schema: FAQPage + BreadcrumbList; consider HowTo if step-by-step content is included. - -## Recommended Page Refreshes - -### `/qr-code-tracking` - -- Strengthen first-screen answer: "QR code tracking uses a dynamic redirect to record scan time, device context, and approximate location before sending the scanner to the final destination." -- Add a privacy-first section explaining hashed/anonymized IP positioning from QRMaster. -- Add a table: "What QRMaster tracks / what it does not track." -- Add examples for flyer, menu, event booth, packaging, and review collection. -- Link to `/qr-code-analytics`, `/blog/utm-parameter-qr-codes`, `/reprint-calculator`, `/pricing`, and the new review-collection page. - -### `/qr-code-analytics` - -- Separate from tracking: tracking collects scan events; analytics helps interpret placement and campaign performance. -- Add an "analytics questions" table: which placement worked, when scans peaked, which destination converted, what to reprint. -- Add a section on useful metrics vs vanity metrics. -- Link back to `/qr-code-tracking`, `/qr-code-for-marketing-campaigns`, `/use-cases/flyer-qr-codes`, `/use-cases/packaging-qr-codes`, and `/pricing`. - -### `/blog/trackable-qr-codes` - -- Refresh title/meta around `trackable qr code`. -- Add a 40-60 word definition block near the top. -- Update FAQ to include "Can a static QR code be tracked?", "Are trackable QR codes GDPR-friendly?", and "Do trackable QR codes need a redirect?" -- Link early to `/qr-code-tracking` with anchor `track QR code scans`. - -### `/blog/utm-parameter-qr-codes` - -- Add a QR-specific UTM template table by placement. -- Add GA4 naming convention examples. -- Clarify when to use separate QR codes versus one QR with different `utm_content` values. -- Link to `/qr-code-analytics` and `/qr-code-tracking`. - -## Internal-Link Plan - -| Source | Destination | Anchor | -|---|---|---| -| `/dynamic-qr-code-generator` | `/qr-code-tracking` | `track QR code scans` | -| `/dynamic-qr-code-generator` | `/qr-code-analytics` | `QR code analytics dashboard` | -| `/qr-code-tracking` | `/qr-code-analytics` | `interpret QR scan analytics` | -| `/qr-code-tracking` | `/blog/utm-parameter-qr-codes` | `use UTMs with QR codes` | -| `/qr-code-analytics` | `/qr-code-tracking` | `collect QR scan data` | -| `/qr-code-analytics` | `/qr-code-for-marketing-campaigns` | `measure offline QR campaigns` | -| `/blog/trackable-qr-codes` | `/qr-code-tracking` | `QR code tracking` | -| `/blog/utm-parameter-qr-codes` | `/qr-code-analytics` | `QR code analytics` | -| `/use-cases/feedback-qr-codes` | `/use-cases/qr-codes-for-review-collection` | `review collection QR codes` | -| `/tools/google-review-qr-code` | `/use-cases/qr-codes-for-review-collection` | `review collection workflow` | - -## PR Plan - -1. Add the new review-collection use-case content in the existing use-case page data/routing pattern. -2. Refresh copy, FAQ, metadata, and link sections on `/qr-code-tracking` and `/qr-code-analytics`. -3. Refresh the two support blog entries without creating duplicate `/guide/...` pages. -4. Add internal links in both directions from money pages, blog support pages, and relevant use-case/tool pages. -5. Update sitemap data only if the new page is not automatically included by the existing use-case sitemap mapping. -6. Run the PR SEO review using `docs/automations/qrmaster-pr-seo-review.md`. - -## Verification Checklist - -- One H1 per rendered page. -- Primary keyword appears naturally in title, H1, intro, and metadata. -- Canonical URL points to the final public URL. -- Page is public in middleware and included in sitemap. -- No duplicate `/guide/...` URL is introduced without canonical strategy. -- FAQ/schema validates where used. -- Internal links resolve and use natural anchor text. -- Each section begins with a direct answer. -- Mobile tables do not overflow unreadably. -- Visual assets are compressed and include descriptive alt text. -- Robots rules continue to allow target pages and desired search/AI crawlers. -- Build/lint pass before PR. - -## Social And Outreach Follow-Up - -- LinkedIn post: "Most QR campaigns fail because teams only count scans. The useful question is which printed placement created action." -- X thread: "QR tracking setup in 5 steps: dynamic QR, placement naming, UTM convention, dashboard review, reprint decision." -- Short demo video: show flyer A vs flyer B scan comparison and a destination update without reprinting. -- Outreach angle for marketing newsletters: "Offline attribution checklist for QR campaigns." -- Community answer target: questions around "Can I track a static QR code?" and "How do I track QR codes in GA4?" +# QRMaster SEO Sprint: Tracking and Analytics + +Run date: 2026-05-11 +Automation: QRMaster SEO Sprint Machine +Status: Recommendation package only; do not publish without human approval. + +## Input Notes + +- Used `docs/automations/qrmaster-seo-sprint-machine.md`, `docs/automations/qrmaster-pr-seo-review.md`, `.agents/product-marketing-context.md`, `marketing/programmatic-seo-top-50.md`, `seo-plan-april.md`, and `seo-keywords.csv`. +- `marketing/keyword-strategy-seo-plan.md` was not present in this worktree. `seo-plan-april.md` appears to be the local keyword strategy fallback and includes the same cluster-level keyword data. +- Existing routing redirects selected legacy `/guide/...` paths to `/learn/...`, so this sprint should avoid creating duplicate guide URLs without a clear canonical/routing decision. + +## Cluster Scoring + +| Cluster | Product fit /30 | Commercial intent /25 | Differentiation /15 | Cluster leverage /10 | Winability /10 | Effort /10 | Score | Decision | +|---|---:|---:|---:|---:|---:|---:|---:|---| +| Tracking and analytics | 29 | 24 | 15 | 10 | 8 | 8 | 94 | Select | +| Dynamic QR buying decision | 30 | 24 | 13 | 10 | 7 | 7 | 91 | Next best | +| Bulk QR generation | 27 | 19 | 14 | 8 | 9 | 8 | 85 | Hold for later | +| Commercial alternatives | 22 | 25 | 12 | 8 | 6 | 5 | 78 | Needs current competitor verification | +| Restaurant/menu QR | 25 | 16 | 12 | 8 | 7 | 7 | 75 | Good vertical support, weaker immediate demand | +| Custom/design QR | 20 | 18 | 9 | 8 | 8 | 8 | 71 | Tool-led, less differentiated | +| Print reliability | 21 | 13 | 10 | 7 | 9 | 8 | 68 | Useful support content, weaker commercial pull | + +## Rationale + +Tracking and analytics is the highest-fit weekly cluster because it maps directly to QRMaster's differentiators: dynamic QR redirects, scan analytics, placement comparison, and privacy-first reporting. The keyword set includes `qr code tracking` at 1k-10k monthly volume with +900% 3-month YoY trend, `track qr code scans` with +900% 3-month trend, and `trackable qr code` with the highest CPC ceiling in the file at EUR 34.25. The cluster also has strong internal-link leverage into `/dynamic-qr-code-generator`, `/qr-code-analytics`, `/qr-code-tracking`, `/qr-code-for-marketing-campaigns`, pricing, and use-case pages. + +## Selected Work + +| Type | URL | Score | Reason | +|---|---|---:|---| +| Refresh | `/qr-code-tracking` | 94 | Money page for `qr code tracking`, `track qr code scans`, and `trackable qr code`; already has schema but should strengthen privacy and placement examples. | +| Refresh | `/qr-code-analytics` | 90 | Needs clearer separation from tracking: analytics should own dashboard interpretation, ROI, and performance insights. | +| Refresh | `/blog/trackable-qr-codes` | 88 | Existing support article should capture `trackable qr code` and link strongly to `/qr-code-tracking`. | +| Refresh | `/blog/utm-parameter-qr-codes` | 86 | Existing support article should capture fan-out intent around GA4, UTM naming, placement comparison, and offline attribution. | +| New support page | `/use-cases/qr-codes-for-review-collection` | 86 | Existing backlog item with natural tracking CTA; use as a measurable review funnel page, not a generic Google reviews tool duplicate. | + +## Keyword Intent And Fan-Out + +| URL | Primary keyword | Intent | Fan-out subtopics | +|---|---|---|---| +| `/qr-code-tracking` | `qr code tracking` | Commercial | What can be tracked, static vs dynamic tracking, scan count vs unique scans, device/location/time context, privacy/GDPR, placement comparison, UTM pairing, dashboard workflow, pricing limits. | +| `/qr-code-analytics` | `qr code analytics` | Commercial | Analytics dashboard, ROI interpretation, campaign attribution, useful metrics vs vanity metrics, offline-to-online measurement, reporting cadence, route naming, export/share needs. | +| `/blog/trackable-qr-codes` | `trackable qr code` | Informational-commercial | Definition, how tracking works, dynamic redirect layer, privacy limits, examples by placement, pros/cons, setup checklist, when not to track. | +| `/blog/utm-parameter-qr-codes` | `qr code UTM tracking` | Informational | GA4 source/medium/campaign/content conventions, examples for flyers/events/packaging, common mistakes, naming templates, QR destination testing. | +| `/use-cases/qr-codes-for-review-collection` | `QR codes for review collection` | Commercial | Google review link workflow, in-store placement, happy-path routing, feedback triage, scan tracking, QR privacy, dynamic destination updates. | + +## 2026 On-Page And Agentic-Search Rules + +- Titles/H1s should put the target keyword near the start: + - `/qr-code-tracking`: `QR Code Tracking: Track QR Code Scans` + - `/qr-code-analytics`: `QR Code Analytics: Measure Offline Campaigns` + - `/blog/trackable-qr-codes`: `Trackable QR Codes: What You Can Measure` + - `/blog/utm-parameter-qr-codes`: `QR Code UTM Tracking: GA4 Setup Guide` + - `/use-cases/qr-codes-for-review-collection`: `QR Codes for Review Collection` +- Each H2 should start with a direct answer in the first sentence. +- Add compact tables for `static vs dynamic`, `tracking vs analytics`, and `UTM examples by placement`. +- Add FAQ schema to refreshed informational pages where the existing blog system supports it; preserve SoftwareApplication and HowTo schema on money pages. +- Use self-contained answer blocks of roughly 40-60 words for definitions and "can you track..." questions. +- Visuals should be meaningful: dashboard screenshot/mockup, placement comparison example, UTM naming table, and review-flow diagram. +- Robots/indexing: current `robots.ts` allows major search/AI crawlers and disallows private app/API paths. Keep these pages indexed, sitemap-included, and canonicalized to their final URLs. +- Mobile/speed risks: avoid heavy dashboard imagery; use compressed static images and keep tables horizontally readable on mobile. + +## Recommended New Page + +### `/use-cases/qr-codes-for-review-collection` + +Purpose: Create a commercially useful support page for restaurants, cafes, retail, hotels, and service businesses that want measurable review capture. + +Required sections: + +1. Direct answer: a review-collection QR code sends satisfied customers to the right review or feedback flow and lets teams measure which physical prompts get scanned. +2. Workflow: in-store sign, receipt, table card, counter card, packaging insert. +3. Dynamic vs static: use dynamic if the review platform, routing rule, or offer changes. +4. Tracking angle: compare scan volume by placement, store, or campaign. +5. Privacy note: describe scan analytics without promising personally identifiable tracking. +6. CTA: `Create a trackable review QR code` to `/qr-code-tracking` or `/signup`. +7. Internal links: `/tools/google-review-qr-code`, `/qr-code-tracking`, `/dynamic-qr-code-generator`, `/restaurants`, `/use-cases/feedback-qr-codes`. +8. Schema: FAQPage + BreadcrumbList; consider HowTo if step-by-step content is included. + +## Recommended Page Refreshes + +### `/qr-code-tracking` + +- Strengthen first-screen answer: "QR code tracking uses a dynamic redirect to record scan time, device context, and approximate location before sending the scanner to the final destination." +- Add a privacy-first section explaining hashed/anonymized IP positioning from QRMaster. +- Add a table: "What QRMaster tracks / what it does not track." +- Add examples for flyer, menu, event booth, packaging, and review collection. +- Link to `/qr-code-analytics`, `/blog/utm-parameter-qr-codes`, `/reprint-calculator`, `/pricing`, and the new review-collection page. + +### `/qr-code-analytics` + +- Separate from tracking: tracking collects scan events; analytics helps interpret placement and campaign performance. +- Add an "analytics questions" table: which placement worked, when scans peaked, which destination converted, what to reprint. +- Add a section on useful metrics vs vanity metrics. +- Link back to `/qr-code-tracking`, `/qr-code-for-marketing-campaigns`, `/use-cases/flyer-qr-codes`, `/use-cases/packaging-qr-codes`, and `/pricing`. + +### `/blog/trackable-qr-codes` + +- Refresh title/meta around `trackable qr code`. +- Add a 40-60 word definition block near the top. +- Update FAQ to include "Can a static QR code be tracked?", "Are trackable QR codes GDPR-friendly?", and "Do trackable QR codes need a redirect?" +- Link early to `/qr-code-tracking` with anchor `track QR code scans`. + +### `/blog/utm-parameter-qr-codes` + +- Add a QR-specific UTM template table by placement. +- Add GA4 naming convention examples. +- Clarify when to use separate QR codes versus one QR with different `utm_content` values. +- Link to `/qr-code-analytics` and `/qr-code-tracking`. + +## Internal-Link Plan + +| Source | Destination | Anchor | +|---|---|---| +| `/dynamic-qr-code-generator` | `/qr-code-tracking` | `track QR code scans` | +| `/dynamic-qr-code-generator` | `/qr-code-analytics` | `QR code analytics dashboard` | +| `/qr-code-tracking` | `/qr-code-analytics` | `interpret QR scan analytics` | +| `/qr-code-tracking` | `/blog/utm-parameter-qr-codes` | `use UTMs with QR codes` | +| `/qr-code-analytics` | `/qr-code-tracking` | `collect QR scan data` | +| `/qr-code-analytics` | `/qr-code-for-marketing-campaigns` | `measure offline QR campaigns` | +| `/blog/trackable-qr-codes` | `/qr-code-tracking` | `QR code tracking` | +| `/blog/utm-parameter-qr-codes` | `/qr-code-analytics` | `QR code analytics` | +| `/use-cases/feedback-qr-codes` | `/use-cases/qr-codes-for-review-collection` | `review collection QR codes` | +| `/tools/google-review-qr-code` | `/use-cases/qr-codes-for-review-collection` | `review collection workflow` | + +## PR Plan + +1. Add the new review-collection use-case content in the existing use-case page data/routing pattern. +2. Refresh copy, FAQ, metadata, and link sections on `/qr-code-tracking` and `/qr-code-analytics`. +3. Refresh the two support blog entries without creating duplicate `/guide/...` pages. +4. Add internal links in both directions from money pages, blog support pages, and relevant use-case/tool pages. +5. Update sitemap data only if the new page is not automatically included by the existing use-case sitemap mapping. +6. Run the PR SEO review using `docs/automations/qrmaster-pr-seo-review.md`. + +## Verification Checklist + +- One H1 per rendered page. +- Primary keyword appears naturally in title, H1, intro, and metadata. +- Canonical URL points to the final public URL. +- Page is public in middleware and included in sitemap. +- No duplicate `/guide/...` URL is introduced without canonical strategy. +- FAQ/schema validates where used. +- Internal links resolve and use natural anchor text. +- Each section begins with a direct answer. +- Mobile tables do not overflow unreadably. +- Visual assets are compressed and include descriptive alt text. +- Robots rules continue to allow target pages and desired search/AI crawlers. +- Build/lint pass before PR. + +## Social And Outreach Follow-Up + +- LinkedIn post: "Most QR campaigns fail because teams only count scans. The useful question is which printed placement created action." +- X thread: "QR tracking setup in 5 steps: dynamic QR, placement naming, UTM convention, dashboard review, reprint decision." +- Short demo video: show flyer A vs flyer B scan comparison and a destination update without reprinting. +- Outreach angle for marketing newsletters: "Offline attribution checklist for QR campaigns." +- Community answer target: questions around "Can I track a static QR code?" and "How do I track QR codes in GA4?" diff --git a/docs/automations/qrmaster-seo-sprint-machine.md b/docs/automations/qrmaster-seo-sprint-machine.md index 395af6a..37e03de 100644 --- a/docs/automations/qrmaster-seo-sprint-machine.md +++ b/docs/automations/qrmaster-seo-sprint-machine.md @@ -1,211 +1,211 @@ -# QRMaster SEO Sprint Machine - -## Goal - -Run a weekly controlled SEO sprint that chooses the right pages, creates or -updates them, adds internal links, and ships through a reviewed PR. - -## Why This Exists - -QRMaster should not publish random daily content. The goal is to build -commercially useful SEO clusters around dynamic QR codes, tracking, tool pages, -comparison pages, and industry workflows. - -## Plugins And Skills - -| Need | Use | -|---|---| -| Repository changes and PRs | GitHub plugin | -| Keyword and performance imports | Coupler, CSV exports, Google Search Console export | -| Page creation and refactors | Codex | -| SEO/content planning | `content-strategy`, `ai-seo` skills | -| Copy generation | `copywriting` skill | -| Verification | GitHub Actions, `qa` skill | - -## Weekly Inputs - -- Current keyword backlog: - - `marketing/programmatic-seo-top-50.md` - - `marketing/keyword-strategy-seo-plan.md` - - `seo-keywords.csv` -- Existing product positioning: - - `.agents/product-marketing-context.md` -- Performance data when available: - - Google Search Console export - - signup/conversion report - - top landing pages by traffic -- Sprint focus: - - Dynamic QR - - Tracking/analytics - - Restaurant/menu QR - - Print marketing - - Bulk QR - - Comparison/alternatives - -## Scoring Model - -Score each candidate from 0-100: - -| Factor | Weight | -|---|---:| -| Product fit | 30 | -| Commercial intent | 25 | -| Differentiation potential | 15 | -| Cluster leverage | 10 | -| Search winability | 10 | -| Production effort | 10 | - -Do not select pages only because they have volume. Prefer pages where QRMaster -can naturally sell dynamic QR, scan tracking, bulk creation, or privacy-first -analytics. - -## On-Page And Agentic Search Rules - -Every new or refreshed page must follow these checks before review: - -- Identify the primary keyword and intent type: informational, commercial, - transactional, or navigational. -- Cover the query fan-out: list the related subtopics an AI/search system would - need to answer the query well. -- Put the primary keyword naturally near the start of the title tag and H1. -- Keep title tags under roughly 60 characters when possible. -- Keep meta descriptions concise, benefit-led, and naturally keyword-aligned. -- Use one clear H1 and a logical H2/H3 hierarchy. -- Start each section with a direct answer to the heading. -- Use short paragraphs, bullets, and comparison tables where they improve - scanning and AI extraction. -- Add descriptive internal links with natural anchor text. -- Add useful visuals, screenshots, or examples where the page needs them. -- Add schema when the page type supports it. -- Check mobile readability, CTA tap targets, and obvious speed risks. -- Verify robots/indexing assumptions for important SEO pages. - -## Default Weekly Sprint - -1. Select one cluster. -2. Create 3 new pages. -3. Refresh 2 existing pages with impressions, weak CTR, or position 8-20. -4. Add internal links in both directions. -5. Create one GitHub PR. -6. Run `qrmaster-pr-seo-review.md`. -7. Produce social and outreach drafts after the PR is ready. - -## Page Types - -### Tool Pages - -Examples: - -- `/tools/pdf-qr-code` -- `/tools/vcard-qr-code` -- `/tools/wifi-qr-code` -- `/tools/menu-qr-code` -- `/tools/google-review-qr-code` - -Must include: - -- direct tool-oriented hero -- use cases -- dynamic vs static guidance -- FAQ -- CTA into the app -- internal links to related use cases - -### Industry Workflow Pages - -Examples: - -- `/qr-code-for/restaurants/menu-updates` -- `/qr-code-for/events/check-in` -- `/qr-code-for/real-estate/open-house-flyers` - -Must include: - -- specific audience pain -- example workflow -- print-risk or tracking angle -- CTA matching the industry - -### Comparison Pages - -Examples: - -- `/compare/dynamic-vs-static-qr-codes` -- `/compare/free-vs-paid-qr-code-generator` -- `/compare/flowcode-alternative` - -Must include: - -- comparison table -- fair positioning -- current facts verified before publishing -- "who this is best for" section -- CTA to the best-fit QRMaster feature - -## Codex Sprint Prompt - -```text -Run the QRMaster SEO Sprint Machine. - -Use: -- docs/automations/qrmaster-seo-sprint-machine.md -- docs/automations/qrmaster-pr-seo-review.md -- .agents/product-marketing-context.md -- marketing/programmatic-seo-top-50.md -- marketing/keyword-strategy-seo-plan.md - -Sprint focus: [cluster] -Target output: 3 new SEO/tool pages, 2 page refreshes, internal links, and one PR-ready diff. - -Rules: -- Follow existing code and page patterns. -- Do not invent competitor pricing or claims. -- Prioritize dynamic QR, edit-after-print, analytics, bulk, and privacy-first messaging. -- Add metadata, FAQ/schema where local patterns support it. -- Apply the on-page and agentic search rules from the automation doc. -- Keep pages specific enough to avoid thin programmatic content. -- Run build/lint or explain why not. - -Return: -1. selected pages and scoring -2. target keyword, intent, and fan-out subtopics per page -3. files changed -4. internal links added -5. PR summary -6. SEO review status -7. follow-up social/outreach package -``` - -## Sprint Output Template - -```markdown -# QRMaster SEO Sprint: [Cluster] - -## Selected Work -| Type | URL | Score | Reason | -|---|---|---:|---| - -## Keyword Intent And Fan-Out - -| URL | Primary keyword | Intent | Fan-out subtopics | -|---|---|---|---| - -## New Pages - -## Updated Pages - -## Internal Links - -## PR Summary - -## Verification - -## Social/Outreach Follow-Up -``` - -## Success Criteria - -- Each new page has clear commercial intent or cluster leverage. -- Refreshed pages have a measurable reason for the update. -- Internal links support money pages. -- PR SEO Review passes before merge. +# QRMaster SEO Sprint Machine + +## Goal + +Run a weekly controlled SEO sprint that chooses the right pages, creates or +updates them, adds internal links, and ships through a reviewed PR. + +## Why This Exists + +QRMaster should not publish random daily content. The goal is to build +commercially useful SEO clusters around dynamic QR codes, tracking, tool pages, +comparison pages, and industry workflows. + +## Plugins And Skills + +| Need | Use | +|---|---| +| Repository changes and PRs | GitHub plugin | +| Keyword and performance imports | Coupler, CSV exports, Google Search Console export | +| Page creation and refactors | Codex | +| SEO/content planning | `content-strategy`, `ai-seo` skills | +| Copy generation | `copywriting` skill | +| Verification | GitHub Actions, `qa` skill | + +## Weekly Inputs + +- Current keyword backlog: + - `marketing/programmatic-seo-top-50.md` + - `marketing/keyword-strategy-seo-plan.md` + - `seo-keywords.csv` +- Existing product positioning: + - `.agents/product-marketing-context.md` +- Performance data when available: + - Google Search Console export + - signup/conversion report + - top landing pages by traffic +- Sprint focus: + - Dynamic QR + - Tracking/analytics + - Restaurant/menu QR + - Print marketing + - Bulk QR + - Comparison/alternatives + +## Scoring Model + +Score each candidate from 0-100: + +| Factor | Weight | +|---|---:| +| Product fit | 30 | +| Commercial intent | 25 | +| Differentiation potential | 15 | +| Cluster leverage | 10 | +| Search winability | 10 | +| Production effort | 10 | + +Do not select pages only because they have volume. Prefer pages where QRMaster +can naturally sell dynamic QR, scan tracking, bulk creation, or privacy-first +analytics. + +## On-Page And Agentic Search Rules + +Every new or refreshed page must follow these checks before review: + +- Identify the primary keyword and intent type: informational, commercial, + transactional, or navigational. +- Cover the query fan-out: list the related subtopics an AI/search system would + need to answer the query well. +- Put the primary keyword naturally near the start of the title tag and H1. +- Keep title tags under roughly 60 characters when possible. +- Keep meta descriptions concise, benefit-led, and naturally keyword-aligned. +- Use one clear H1 and a logical H2/H3 hierarchy. +- Start each section with a direct answer to the heading. +- Use short paragraphs, bullets, and comparison tables where they improve + scanning and AI extraction. +- Add descriptive internal links with natural anchor text. +- Add useful visuals, screenshots, or examples where the page needs them. +- Add schema when the page type supports it. +- Check mobile readability, CTA tap targets, and obvious speed risks. +- Verify robots/indexing assumptions for important SEO pages. + +## Default Weekly Sprint + +1. Select one cluster. +2. Create 3 new pages. +3. Refresh 2 existing pages with impressions, weak CTR, or position 8-20. +4. Add internal links in both directions. +5. Create one GitHub PR. +6. Run `qrmaster-pr-seo-review.md`. +7. Produce social and outreach drafts after the PR is ready. + +## Page Types + +### Tool Pages + +Examples: + +- `/tools/pdf-qr-code` +- `/tools/vcard-qr-code` +- `/tools/wifi-qr-code` +- `/tools/menu-qr-code` +- `/tools/google-review-qr-code` + +Must include: + +- direct tool-oriented hero +- use cases +- dynamic vs static guidance +- FAQ +- CTA into the app +- internal links to related use cases + +### Industry Workflow Pages + +Examples: + +- `/qr-code-for/restaurants/menu-updates` +- `/qr-code-for/events/check-in` +- `/qr-code-for/real-estate/open-house-flyers` + +Must include: + +- specific audience pain +- example workflow +- print-risk or tracking angle +- CTA matching the industry + +### Comparison Pages + +Examples: + +- `/compare/dynamic-vs-static-qr-codes` +- `/compare/free-vs-paid-qr-code-generator` +- `/compare/flowcode-alternative` + +Must include: + +- comparison table +- fair positioning +- current facts verified before publishing +- "who this is best for" section +- CTA to the best-fit QRMaster feature + +## Codex Sprint Prompt + +```text +Run the QRMaster SEO Sprint Machine. + +Use: +- docs/automations/qrmaster-seo-sprint-machine.md +- docs/automations/qrmaster-pr-seo-review.md +- .agents/product-marketing-context.md +- marketing/programmatic-seo-top-50.md +- marketing/keyword-strategy-seo-plan.md + +Sprint focus: [cluster] +Target output: 3 new SEO/tool pages, 2 page refreshes, internal links, and one PR-ready diff. + +Rules: +- Follow existing code and page patterns. +- Do not invent competitor pricing or claims. +- Prioritize dynamic QR, edit-after-print, analytics, bulk, and privacy-first messaging. +- Add metadata, FAQ/schema where local patterns support it. +- Apply the on-page and agentic search rules from the automation doc. +- Keep pages specific enough to avoid thin programmatic content. +- Run build/lint or explain why not. + +Return: +1. selected pages and scoring +2. target keyword, intent, and fan-out subtopics per page +3. files changed +4. internal links added +5. PR summary +6. SEO review status +7. follow-up social/outreach package +``` + +## Sprint Output Template + +```markdown +# QRMaster SEO Sprint: [Cluster] + +## Selected Work +| Type | URL | Score | Reason | +|---|---|---:|---| + +## Keyword Intent And Fan-Out + +| URL | Primary keyword | Intent | Fan-out subtopics | +|---|---|---|---| + +## New Pages + +## Updated Pages + +## Internal Links + +## PR Summary + +## Verification + +## Social/Outreach Follow-Up +``` + +## Success Criteria + +- Each new page has clear commercial intent or cluster leverage. +- Refreshed pages have a measurable reason for the update. +- Internal links support money pages. +- PR SEO Review passes before merge. diff --git a/guest-post-pitches.md b/guest-post-pitches.md index d62e86e..55f0f64 100644 --- a/guest-post-pitches.md +++ b/guest-post-pitches.md @@ -1,307 +1,307 @@ -# Guest Post Pitches — QR Master - ---- - -## Submitted / In Progress - ---- - -### DigitalGpoint — Guest Post Submission -- **Submit to:** digitalgpoint.webmail@gmail.com -- **Zielgruppe:** Small business, marketers, entrepreneurs (EN) -- **Segment:** Founders / Marketing -- **Tier:** 2 (niche tech blog, solid topical fit) - -**Submission Email:** - ---- - -**To:** digitalgpoint.webmail@gmail.com -**Subject:** Solving the "print gap" for small businesses - -Hi [Name], - -I’ve noticed DigitalGpoint covers a lot of practical tools for business growth. One area that often gets overlooked is the bridge between physical marketing (flyers, menus, signage) and digital analytics. - -I’ve put together a practical guide on "Managing the Move from Static to Dynamic Print." It explains how small business owners are using dynamic redirect layers to make their physical materials editable after printing—saving them from costly reprints when a URL or price changes. - -It’s a straightforward, workflow-focused piece that I believe your readers would find highly actionable. - -Would you be open to reviewing a draft for a guest contribution? - -Best, - -Timo -(Writer & Strategist) - ---- - -> 🔒 **INTERNAL — DO NOT INCLUDE IN SUBMISSION EMAIL** - -**Notes:** -- Word count: 1,200+ -- Tone: Practical, professional -- **Link Policy:** Bio-only link. No links or product mentions in the body or signature of the pitch email. Link to `qrmaster.net` in the author bio of the published article only. -- **Top SEO keywords:** `static qr codes`, `dynamic qr code`, `editable qr code` - ---- - -### Techdee — Guest Post Submission *(Tier 2 — High Priority)* -- **Submit to:** Blayget@gmail.com -- **Audience:** Tech enthusiasts, small business owners, marketers (EN) -- **Segment:** Founders / Marketing / Technology -- **Tier:** 2 — no editorial gatekeeping, do-follow, no sponsored label, fast turnaround -- **Requirements:** 500–1,000 words · Original · Max 3–4 links · 1 link per 300 words · Lists/tutorials preferred - -> 🚨 **TECHDEE PRE-FLIGHT CHECK** *(complete before investing time in draft)* -> - [ ] Does Techdee have real organic traffic? Check Similarweb/Ahrefs — DR alone is not enough -> - [ ] Are the last 20+ posts mostly guest posts with outbound money links? If yes → likely link farm, remove or downgrade to Tier 3 -> - [ ] Run `site:techdee.com` to confirm recent articles are indexed by Google -> - [ ] Is there a real editorial contact, or only a blanket Gmail? If Gmail-only and no standards → treat as low-ROI - -**Submission Email:** - ---- - -**To:** Blayget@gmail.com -**Subject:** Offline-to-Online marketing workflows - -Hi [Name], - -I’ve been following Techdee’s tech and marketing tutorials for some time. - -I’m currently finalizing a piece titled: **"Beyond the Scan: 5 Professional QR Strategies for Modern Marketing."** - -The article moves past the basic "link a code to a site" approach and explores practical technical workflows: using dynamic redirects to avoid reprints, pulling scan data into GA4 for attribution, and managing bulk physical assets. - -It’s a 700-word, list-style tutorial that fits your current format. Is this something you'd like to see for a guest contribution? - -Best, - -Timo -(Writer & Strategist) - ---- - -> 🔒 **INTERNAL — DO NOT INCLUDE IN SUBMISSION EMAIL** - -**Notes:** -- **Link Policy:** Bio-only link. No links or product mentions in the pitch email. -- **Primary link:** "free QR code generator" → `https://qrmaster.net` in Author Bio. -- **Secondary link:** "QR code tracking" → `https://qrmaster.net/analytics` (1K–10K vol · +900% YoY 🔥 · C_Analytics) -- **Top SEO keywords matched:** `qr code tracking` (+900%), `qr code generator for business`, `qr code generator with tracking`, `free qr code generator` -- External: 1 Statista/Forbes stat on QR adoption for authority signal -- No Techdee internal links required; add 1 opportunistically if they have a relevant article -- Follow up once after 7 days, then drop - ---- - -### SEO Sandwitch — Guest Post Submission *(Tier 1 — High Value)* -- **Submit to:** joydeep@seosandwitch.com -- **Audience:** SEO professionals, digital marketers, content strategists (EN) -- **Segment:** Marketing / SEO -- **Tier:** 1 — high DR, editorial audience, topically powerful if angle is right -- **Requirements:** 2,000+ words · Unique · No AI spam · Link to inner SEO Sandwitch pages · No images unless own screenshots · Grammarly-checked - -**Submission Email:** - ---- - -**To:** joydeep@seosandwitch.com -**Subject:** Attribution blind spots in physical marketing - -Hi Joydeep, - -I’ve been following SEO Sandwitch for a while—your recent piece on AI SEO and GEO was excellent. - -I’m reaching out because I’ve been working on a technical deep-dive that explores a massive attribution blind spot: physical marketing campaigns. - -The piece, **"QR Codes as an Offline-to-Online Signal,"** breaks down how marketers can pull scan data from flyers, packaging, and OOH materials into GA4 to finally close the loop on offline attribution. - -It covers: -- Using dynamic redirect layers as an attribution signal. -- The indirect impact of physical touchpoints on branded search volume. -- Technical setup for UTM-tagged dynamic codes. - -It’s not a superficial "marketing tips" post; it’s a strategist-level look at attribution data. - -I have a ~2,000 word draft ready. Would you be open to taking a look for a potential guest contribution? - -Best, - -Timo -(Writer & Strategist) - ---- - -> 🔒 **INTERNAL — DO NOT INCLUDE IN SUBMISSION EMAIL** - -**Notes:** -- **Link Policy:** Bio-only link. Strictly no links or product names in the pitch. Link to `qrmaster.net` in the author bio of the final article. -- Draft length target: 2,200–2,500 words -- Must link 2–3 inner SEO Sandwitch pages (check site for relevant attribution/content posts) -- No stock images — any visuals must be own screenshots of qrmaster.net or GA4 -- **Primary body link:** "QR code analytics" → `https://qrmaster.net/analytics` (C_Analytics · 100–1K vol) -- **Secondary body link:** "dynamic QR code generator" → `https://qrmaster.net/dynamic` (A_Dynamic · 1K–10K vol) -- **Top SEO keywords matched:** `qr code tracking` (+900% 🔥), `track qr code scans` (+900% 🔥), `qr code analytics`, `trackable qr code`, `dynamic qr code tracking` -- Follow up once after 10 days; offer to adjust the angle if needed - ---- - -### HubSpot Agency Blog / MarketingProfs — Status: SKIP -- **Reason:** Both require enterprise B2B marketing angles and have extremely long queues (2–4 months). HubSpot explicitly prohibits homepage/tool links in body copy. MarketingProfs is B2B/enterprise only with no SaaS tool coverage. -- **Revisit if:** QR Master has a published case study with measurable ROI data that could be framed as a B2B marketing success story. -- **Alternative:** Pitch the same SEO Sandwitch angle to similar mid-tier marketing blogs (SmartBizLoans, Startup Mindset, trickyenough.com — all on Charles Floate's list below) - ---- - -## Web 2.0 & Free Guest Posts — Charles Floate List (QR Master Filtered) -**Source:** presswhizz.com/blog — "My Top 100+ Free Guest Posting Sites For 2026" -**Filter criteria:** Tech tools / SaaS / Marketing / Small Business / Event / Startup niches — no gambling, adult, finance-only - ---- - -### PHASE A — Web 2.0 (Publish Immediately, No Editor Required) - -These 5 platforms require zero pitch approval. Create account → write → publish → link. Do these first as a supporting layer before editorial outreach. - -| Priority | Platform | DA | Link Type | Action | Anchor to Use | -|----------|----------|----|-----------|--------|---------------| -| 🟢 1 | **Medium.com** | 95 | No-follow (but crawled heavily) | Publish "5 underrated QR code use cases for small businesses" — 600–900 words | Partial match: "free QR code generator" | -| 🟢 2 | **LinkedIn Pulse** | 97 | No-follow | Publish thought leadership: "Why your business card still needs a QR code in 2025" — short-form 400–500 words | Branded: "QR Master" | -| 🟢 3 | **Substack** | 86 | Do-follow | Set up a mini newsletter: "The QR Code Playbook" — first 3 issues = offline-to-online basics, event use cases, dynamic code strategy | Contextual: "qrmaster.net" | -| 🟡 4 | **Tealfeed** | 59 | Do-follow (lenient) | Write a **fresh angle** — e.g. "Why Startups Should Use Dynamic QR Codes at Events" — NOT a reworded Medium post (duplicate/thin content risk). | Natural: "dynamic QR code tool" or branded "QR Master" — never exact-match same anchor as Medium post | -| 🟡 5 | **Vocal.Media** | 76 | Do-follow (relaxed moderation) | "How Restaurant Owners Use QR Codes to Cut Printing Costs" — niche use case, 700 words | Partial: "QR codes for restaurants" | - -**Web 2.0 Execution order:** Medium → LinkedIn → Substack (ongoing) → Tealfeed → Vocal -**Time investment:** ~3 hours total for all 5 -**Anchor rotation rule:** Never use the same exact-match anchor across posts — rotate: *"QR Master"* · *"qrmaster.net"* · *"dynamic QR code tool"* · *"free QR code generator"* · *"QR code analytics"* — one per post maximum. - ---- - -### PHASE B — Editorial Guest Posts (Pitch Required, High DR) - -Filtered from Charles Floate’s Top 20 + niche 70+ list. Sorted by fit + DR. - -> ✅ **Pre-Submission Quality Checklist — Tier 1 Articles** -> Run through this before any Tier 1 article ships: -> - [ ] Grammarly: 0 errors, no unresolved passive-voice flags on key claims -> - [ ] Every stat/claim has a source link (no “studies show” without a reference) -> - [ ] At least 1 original screenshot included (qrmaster.net UI or GA4 data) -> - [ ] 2–3 internal links from target site researched and woven into draft -> - [ ] Draft read cold by a second person before submission -> - [ ] Author bio finalised — LinkedIn or portfolio URL included -> - [ ] Confirmed article angle is NOT already covered by the target site recently - -#### 🟢 Tier 1 — Best Fit, Highest Authority - -| # | Site | DR | Traffic | Niche Match | Pitch Angle | URL | -|---|------|----|---------|-------------|-------------|-----| -| 1 | **Hackernoon** | 88 | 395K | Tech/startup founders | "QR Codes Are Having a Quiet Comeback — And It's More Interesting Than You Think" — data-driven, contrarian tech angle | hackernoon.com | -| 2 | **Techopedia** | 88 | 1.1M | Technology — responsive editorial | "Static vs. Dynamic QR Codes: A Developer's Guide to Choosing the Right Type" — technical, tool-comparison angle | techopedia.com | -| 3 | **G2 Learning Hub** ⚠️ *Long Shot* | 91 | 278K | SaaS tools/software reviews | "How to Pick a QR Code Generator: 7 Features That Actually Matter" — tool evaluation guide, high commercial intent. *Internal content team; rarely accepts external pitches without established brand track record.* | learn.g2.com | -| 4 | **Visme** ⚠️ *Long Shot* | 86 | 1.3M | Visual/marketing content | "How to Design QR Codes That Don’t Look Like an Eyesore" — visual + branding angle. *In-house editorial team; external submissions very rare. Pitch only if you have a strong writing portfolio.* | visme.co | -| 5 | **Smart Data Collective** | ~70 | Med | Data/analytics | "What QR Code Scan Data Tells You About Your Offline Campaigns" — analytics angle, ties into qrmaster.net scan tracking feature | smartdatacollective.com | - -#### 🟡 Tier 2 — Strong Fit, Mid Effort - -| # | Site | DR | Traffic | Niche Match | Pitch Angle | URL | -|---|------|----|---------|-------------|-------------|-----| -| 6 | **Startup Mindset** | ~60 | Med | Startup founders | "5 Physical Marketing Tools Still Worth Using in 2025 (And How to Make Them Digital)" — QR codes as bridge between offline/online | startupmindset.com | -| 7 | **Small Biz Daily** | ~55 | Med | Small business owners | "How Small Businesses Can Use QR Codes to Run Campaigns Without a Developer" — exact audience match | smallbizdaily.com | -| 8 | **MobileAppDaily** | 73 | 38K | Mobile/app/SaaS | "Best QR Code Generator Apps Reviewed: What to Look for in 2025" — app comparison article | mobileappdaily.com | -| 9 | **trickyenough.com** | ~50 | Med | Marketing/SEO | "QR Codes in Marketing: How to Track ROI From Print Campaigns" — UTM + QR code tracking guide | trickyenough.com | -| 10 | **Martech Series** | ~65 | Med | Marketing tech | "QR Codes as a MarTech Asset: Closing the Attribution Gap Between Print and Digital" — B2B marketing tech angle | martechseries.com | - -#### 🔵 Tier 3 — Niche Specific, Lower Effort - -| # | Site | DR | Niche Match | Pitch Angle | URL | -|---|------|----|-------------|-------------|-----| -| 11 | **PageFly** | 78 | eCommerce/Shopify | "How Shopify Stores Use QR Codes on Packaging to Boost Repeat Purchases" | pagefly.io | -| 12 | **SurveySparrow** | 80 | B2B/feedback tools | "How to Collect Event Feedback in Under 30 Seconds Using QR Codes" | surveysparrow.com | -| 13 | **Bplans (articles)** | ~75 | Business planning | "Adding QR Codes to Your Business Plan: The Physical-Digital Marketing Layer" | articles.bplans.com | -| 14 | **Innotech Today** | ~45 | Tech/innovation | "Dynamic QR Codes: The Quiet Innovation Reshaping Physical Marketing" | innotechtoday.com | -| 15 | **nichemarket.co.za** | ~40 | Small biz / emerging markets | "Why QR Codes Are the Cheapest Digital Marketing Tool for Local Businesses" | nichemarket.co.za | - ---- - -### SKIP LIST (from Floate's list — not suitable for QR Master) - -| Site | Reason | -|------|--------| -| ClickUp | Productivity-only, no tools/marketing content | -| Edutopia | K-12 education only, already covered in existing outreach | -| Outbrain | Native advertising platform, not accepting product content | -| FinancesOnline | Finance/SaaS review site, requires formal product listing | -| Clutch.co | Agency reviews only, no editorial content | -| DataScienceCentral | ML/AI/data science only — QR codes too shallow | -| OpenSource.com | Dev/open-source only — no marketing/tool angle | -| Fylehq | Corporate expense management only | -| All HR/Productivity sites | No QR code angle that isn't forced | -| All Finance/Fintech sites | Wrong audience entirely | -| All Security/Privacy sites | Wrong audience entirely | - ---- - -### Execution Plan — Charles Floate List - -> 🔍 **Contact Research Guide** — Complete *before* Woche-1 pitches go out. Hunter.io alone is insufficient for smaller blogs. -> -> | Method | When to use | -> |--------|-------------| -> | `site:domain.com "write for us"` | Always — check first | -> | `site:domain.com "contact" OR "editor"` | If no write-for-us page | -> | LinkedIn: search “[site name] editor” or “content manager” | Tier 1 always | -> | Hunter.io | Larger sites with company domains | -> | Whois + MXToolbox | Smaller/independent blogs | -> | Contact form on site | Fallback when no direct email | -> | LinkedIn DM to editor | Last resort for Tier 1 targets | -> -> **Goal: all Tier 1 contacts confirmed before the first pitch goes out.** - -**Week 1 (immediate):** -- [ ] Publish Medium post (Phase A #1) -- [ ] Publish LinkedIn Pulse post (Phase A #2) -- [ ] Set up Substack, publish first issue (Phase A #3) -- [ ] Send pitch to Hackernoon (Tier 1 #1) -- [ ] Send pitch to Techopedia (Tier 1 #2) - -**Week 2:** -- [ ] Publish Tealfeed + Vocal posts (Phase A #4–5) -- [ ] Send pitch to G2 Learning Hub (Tier 1 #3) -- [ ] Send pitch to Visme (Tier 1 #4) -- [ ] Send pitch to Startup Mindset (Tier 2 #6) - -**Week 3:** -- [ ] Follow up on Week 1 pitches (if no reply) -- [ ] Send pitches to Tier 2 targets: Small Biz Daily, MobileAppDaily, trickyenough -- [ ] Send pitch to Smart Data Collective + Martech Series - -**Week 4:** -- [ ] Follow up on Week 2 pitches -- [ ] Begin Tier 3 pitches (PageFly, SurveySparrow, Bplans) - ---- - -### Guest Post Tracking — Charles Floate List - -| Tier | Site | Contact | Sent | Reply | Status | -|------|------|---------|------|-------|--------| -| Web 2.0 | Medium | — (self-publish) | — | — | — | -| Web 2.0 | LinkedIn Pulse | — (self-publish) | — | — | — | -| Web 2.0 | Substack | — (self-publish) | — | — | — | -| Web 2.0 | Tealfeed | — (self-publish) | — | — | — | -| Web 2.0 | Vocal.Media | — (self-publish) | — | — | — | -| 1 | Hackernoon | editorial@hackernoon.com | — | — | — | -| 1 | Techopedia | (find via Hunter.io) | — | — | — | -| 1 | G2 Learning Hub | (find via Hunter.io) | — | — | — | -| 1 | Visme | (find via Hunter.io) | — | — | — | -| 1 | Smart Data Collective | (find via Hunter.io) | — | — | — | -| 2 | Startup Mindset | (find via Hunter.io) | — | — | — | -| 2 | Small Biz Daily | (find via site contact) | — | — | — | -| 2 | MobileAppDaily | (find via Hunter.io) | — | — | — | -| 2 | trickyenough.com | (find via site contact) | — | — | — | -| 2 | Martech Series | (find via Hunter.io) | — | — | — | -| 3 | PageFly | (find via Hunter.io) | — | — | — | -| 3 | SurveySparrow | (find via Hunter.io) | — | — | — | -| 3 | Bplans | (find via Hunter.io) | — | — | — | +# Guest Post Pitches — QR Master + +--- + +## Submitted / In Progress + +--- + +### DigitalGpoint — Guest Post Submission +- **Submit to:** digitalgpoint.webmail@gmail.com +- **Zielgruppe:** Small business, marketers, entrepreneurs (EN) +- **Segment:** Founders / Marketing +- **Tier:** 2 (niche tech blog, solid topical fit) + +**Submission Email:** + +--- + +**To:** digitalgpoint.webmail@gmail.com +**Subject:** Solving the "print gap" for small businesses + +Hi [Name], + +I’ve noticed DigitalGpoint covers a lot of practical tools for business growth. One area that often gets overlooked is the bridge between physical marketing (flyers, menus, signage) and digital analytics. + +I’ve put together a practical guide on "Managing the Move from Static to Dynamic Print." It explains how small business owners are using dynamic redirect layers to make their physical materials editable after printing—saving them from costly reprints when a URL or price changes. + +It’s a straightforward, workflow-focused piece that I believe your readers would find highly actionable. + +Would you be open to reviewing a draft for a guest contribution? + +Best, + +Timo +(Writer & Strategist) + +--- + +> 🔒 **INTERNAL — DO NOT INCLUDE IN SUBMISSION EMAIL** + +**Notes:** +- Word count: 1,200+ +- Tone: Practical, professional +- **Link Policy:** Bio-only link. No links or product mentions in the body or signature of the pitch email. Link to `qrmaster.net` in the author bio of the published article only. +- **Top SEO keywords:** `static qr codes`, `dynamic qr code`, `editable qr code` + +--- + +### Techdee — Guest Post Submission *(Tier 2 — High Priority)* +- **Submit to:** Blayget@gmail.com +- **Audience:** Tech enthusiasts, small business owners, marketers (EN) +- **Segment:** Founders / Marketing / Technology +- **Tier:** 2 — no editorial gatekeeping, do-follow, no sponsored label, fast turnaround +- **Requirements:** 500–1,000 words · Original · Max 3–4 links · 1 link per 300 words · Lists/tutorials preferred + +> 🚨 **TECHDEE PRE-FLIGHT CHECK** *(complete before investing time in draft)* +> - [ ] Does Techdee have real organic traffic? Check Similarweb/Ahrefs — DR alone is not enough +> - [ ] Are the last 20+ posts mostly guest posts with outbound money links? If yes → likely link farm, remove or downgrade to Tier 3 +> - [ ] Run `site:techdee.com` to confirm recent articles are indexed by Google +> - [ ] Is there a real editorial contact, or only a blanket Gmail? If Gmail-only and no standards → treat as low-ROI + +**Submission Email:** + +--- + +**To:** Blayget@gmail.com +**Subject:** Offline-to-Online marketing workflows + +Hi [Name], + +I’ve been following Techdee’s tech and marketing tutorials for some time. + +I’m currently finalizing a piece titled: **"Beyond the Scan: 5 Professional QR Strategies for Modern Marketing."** + +The article moves past the basic "link a code to a site" approach and explores practical technical workflows: using dynamic redirects to avoid reprints, pulling scan data into GA4 for attribution, and managing bulk physical assets. + +It’s a 700-word, list-style tutorial that fits your current format. Is this something you'd like to see for a guest contribution? + +Best, + +Timo +(Writer & Strategist) + +--- + +> 🔒 **INTERNAL — DO NOT INCLUDE IN SUBMISSION EMAIL** + +**Notes:** +- **Link Policy:** Bio-only link. No links or product mentions in the pitch email. +- **Primary link:** "free QR code generator" → `https://qrmaster.net` in Author Bio. +- **Secondary link:** "QR code tracking" → `https://qrmaster.net/analytics` (1K–10K vol · +900% YoY 🔥 · C_Analytics) +- **Top SEO keywords matched:** `qr code tracking` (+900%), `qr code generator for business`, `qr code generator with tracking`, `free qr code generator` +- External: 1 Statista/Forbes stat on QR adoption for authority signal +- No Techdee internal links required; add 1 opportunistically if they have a relevant article +- Follow up once after 7 days, then drop + +--- + +### SEO Sandwitch — Guest Post Submission *(Tier 1 — High Value)* +- **Submit to:** joydeep@seosandwitch.com +- **Audience:** SEO professionals, digital marketers, content strategists (EN) +- **Segment:** Marketing / SEO +- **Tier:** 1 — high DR, editorial audience, topically powerful if angle is right +- **Requirements:** 2,000+ words · Unique · No AI spam · Link to inner SEO Sandwitch pages · No images unless own screenshots · Grammarly-checked + +**Submission Email:** + +--- + +**To:** joydeep@seosandwitch.com +**Subject:** Attribution blind spots in physical marketing + +Hi Joydeep, + +I’ve been following SEO Sandwitch for a while—your recent piece on AI SEO and GEO was excellent. + +I’m reaching out because I’ve been working on a technical deep-dive that explores a massive attribution blind spot: physical marketing campaigns. + +The piece, **"QR Codes as an Offline-to-Online Signal,"** breaks down how marketers can pull scan data from flyers, packaging, and OOH materials into GA4 to finally close the loop on offline attribution. + +It covers: +- Using dynamic redirect layers as an attribution signal. +- The indirect impact of physical touchpoints on branded search volume. +- Technical setup for UTM-tagged dynamic codes. + +It’s not a superficial "marketing tips" post; it’s a strategist-level look at attribution data. + +I have a ~2,000 word draft ready. Would you be open to taking a look for a potential guest contribution? + +Best, + +Timo +(Writer & Strategist) + +--- + +> 🔒 **INTERNAL — DO NOT INCLUDE IN SUBMISSION EMAIL** + +**Notes:** +- **Link Policy:** Bio-only link. Strictly no links or product names in the pitch. Link to `qrmaster.net` in the author bio of the final article. +- Draft length target: 2,200–2,500 words +- Must link 2–3 inner SEO Sandwitch pages (check site for relevant attribution/content posts) +- No stock images — any visuals must be own screenshots of qrmaster.net or GA4 +- **Primary body link:** "QR code analytics" → `https://qrmaster.net/analytics` (C_Analytics · 100–1K vol) +- **Secondary body link:** "dynamic QR code generator" → `https://qrmaster.net/dynamic` (A_Dynamic · 1K–10K vol) +- **Top SEO keywords matched:** `qr code tracking` (+900% 🔥), `track qr code scans` (+900% 🔥), `qr code analytics`, `trackable qr code`, `dynamic qr code tracking` +- Follow up once after 10 days; offer to adjust the angle if needed + +--- + +### HubSpot Agency Blog / MarketingProfs — Status: SKIP +- **Reason:** Both require enterprise B2B marketing angles and have extremely long queues (2–4 months). HubSpot explicitly prohibits homepage/tool links in body copy. MarketingProfs is B2B/enterprise only with no SaaS tool coverage. +- **Revisit if:** QR Master has a published case study with measurable ROI data that could be framed as a B2B marketing success story. +- **Alternative:** Pitch the same SEO Sandwitch angle to similar mid-tier marketing blogs (SmartBizLoans, Startup Mindset, trickyenough.com — all on Charles Floate's list below) + +--- + +## Web 2.0 & Free Guest Posts — Charles Floate List (QR Master Filtered) +**Source:** presswhizz.com/blog — "My Top 100+ Free Guest Posting Sites For 2026" +**Filter criteria:** Tech tools / SaaS / Marketing / Small Business / Event / Startup niches — no gambling, adult, finance-only + +--- + +### PHASE A — Web 2.0 (Publish Immediately, No Editor Required) + +These 5 platforms require zero pitch approval. Create account → write → publish → link. Do these first as a supporting layer before editorial outreach. + +| Priority | Platform | DA | Link Type | Action | Anchor to Use | +|----------|----------|----|-----------|--------|---------------| +| 🟢 1 | **Medium.com** | 95 | No-follow (but crawled heavily) | Publish "5 underrated QR code use cases for small businesses" — 600–900 words | Partial match: "free QR code generator" | +| 🟢 2 | **LinkedIn Pulse** | 97 | No-follow | Publish thought leadership: "Why your business card still needs a QR code in 2025" — short-form 400–500 words | Branded: "QR Master" | +| 🟢 3 | **Substack** | 86 | Do-follow | Set up a mini newsletter: "The QR Code Playbook" — first 3 issues = offline-to-online basics, event use cases, dynamic code strategy | Contextual: "qrmaster.net" | +| 🟡 4 | **Tealfeed** | 59 | Do-follow (lenient) | Write a **fresh angle** — e.g. "Why Startups Should Use Dynamic QR Codes at Events" — NOT a reworded Medium post (duplicate/thin content risk). | Natural: "dynamic QR code tool" or branded "QR Master" — never exact-match same anchor as Medium post | +| 🟡 5 | **Vocal.Media** | 76 | Do-follow (relaxed moderation) | "How Restaurant Owners Use QR Codes to Cut Printing Costs" — niche use case, 700 words | Partial: "QR codes for restaurants" | + +**Web 2.0 Execution order:** Medium → LinkedIn → Substack (ongoing) → Tealfeed → Vocal +**Time investment:** ~3 hours total for all 5 +**Anchor rotation rule:** Never use the same exact-match anchor across posts — rotate: *"QR Master"* · *"qrmaster.net"* · *"dynamic QR code tool"* · *"free QR code generator"* · *"QR code analytics"* — one per post maximum. + +--- + +### PHASE B — Editorial Guest Posts (Pitch Required, High DR) + +Filtered from Charles Floate’s Top 20 + niche 70+ list. Sorted by fit + DR. + +> ✅ **Pre-Submission Quality Checklist — Tier 1 Articles** +> Run through this before any Tier 1 article ships: +> - [ ] Grammarly: 0 errors, no unresolved passive-voice flags on key claims +> - [ ] Every stat/claim has a source link (no “studies show” without a reference) +> - [ ] At least 1 original screenshot included (qrmaster.net UI or GA4 data) +> - [ ] 2–3 internal links from target site researched and woven into draft +> - [ ] Draft read cold by a second person before submission +> - [ ] Author bio finalised — LinkedIn or portfolio URL included +> - [ ] Confirmed article angle is NOT already covered by the target site recently + +#### 🟢 Tier 1 — Best Fit, Highest Authority + +| # | Site | DR | Traffic | Niche Match | Pitch Angle | URL | +|---|------|----|---------|-------------|-------------|-----| +| 1 | **Hackernoon** | 88 | 395K | Tech/startup founders | "QR Codes Are Having a Quiet Comeback — And It's More Interesting Than You Think" — data-driven, contrarian tech angle | hackernoon.com | +| 2 | **Techopedia** | 88 | 1.1M | Technology — responsive editorial | "Static vs. Dynamic QR Codes: A Developer's Guide to Choosing the Right Type" — technical, tool-comparison angle | techopedia.com | +| 3 | **G2 Learning Hub** ⚠️ *Long Shot* | 91 | 278K | SaaS tools/software reviews | "How to Pick a QR Code Generator: 7 Features That Actually Matter" — tool evaluation guide, high commercial intent. *Internal content team; rarely accepts external pitches without established brand track record.* | learn.g2.com | +| 4 | **Visme** ⚠️ *Long Shot* | 86 | 1.3M | Visual/marketing content | "How to Design QR Codes That Don’t Look Like an Eyesore" — visual + branding angle. *In-house editorial team; external submissions very rare. Pitch only if you have a strong writing portfolio.* | visme.co | +| 5 | **Smart Data Collective** | ~70 | Med | Data/analytics | "What QR Code Scan Data Tells You About Your Offline Campaigns" — analytics angle, ties into qrmaster.net scan tracking feature | smartdatacollective.com | + +#### 🟡 Tier 2 — Strong Fit, Mid Effort + +| # | Site | DR | Traffic | Niche Match | Pitch Angle | URL | +|---|------|----|---------|-------------|-------------|-----| +| 6 | **Startup Mindset** | ~60 | Med | Startup founders | "5 Physical Marketing Tools Still Worth Using in 2025 (And How to Make Them Digital)" — QR codes as bridge between offline/online | startupmindset.com | +| 7 | **Small Biz Daily** | ~55 | Med | Small business owners | "How Small Businesses Can Use QR Codes to Run Campaigns Without a Developer" — exact audience match | smallbizdaily.com | +| 8 | **MobileAppDaily** | 73 | 38K | Mobile/app/SaaS | "Best QR Code Generator Apps Reviewed: What to Look for in 2025" — app comparison article | mobileappdaily.com | +| 9 | **trickyenough.com** | ~50 | Med | Marketing/SEO | "QR Codes in Marketing: How to Track ROI From Print Campaigns" — UTM + QR code tracking guide | trickyenough.com | +| 10 | **Martech Series** | ~65 | Med | Marketing tech | "QR Codes as a MarTech Asset: Closing the Attribution Gap Between Print and Digital" — B2B marketing tech angle | martechseries.com | + +#### 🔵 Tier 3 — Niche Specific, Lower Effort + +| # | Site | DR | Niche Match | Pitch Angle | URL | +|---|------|----|-------------|-------------|-----| +| 11 | **PageFly** | 78 | eCommerce/Shopify | "How Shopify Stores Use QR Codes on Packaging to Boost Repeat Purchases" | pagefly.io | +| 12 | **SurveySparrow** | 80 | B2B/feedback tools | "How to Collect Event Feedback in Under 30 Seconds Using QR Codes" | surveysparrow.com | +| 13 | **Bplans (articles)** | ~75 | Business planning | "Adding QR Codes to Your Business Plan: The Physical-Digital Marketing Layer" | articles.bplans.com | +| 14 | **Innotech Today** | ~45 | Tech/innovation | "Dynamic QR Codes: The Quiet Innovation Reshaping Physical Marketing" | innotechtoday.com | +| 15 | **nichemarket.co.za** | ~40 | Small biz / emerging markets | "Why QR Codes Are the Cheapest Digital Marketing Tool for Local Businesses" | nichemarket.co.za | + +--- + +### SKIP LIST (from Floate's list — not suitable for QR Master) + +| Site | Reason | +|------|--------| +| ClickUp | Productivity-only, no tools/marketing content | +| Edutopia | K-12 education only, already covered in existing outreach | +| Outbrain | Native advertising platform, not accepting product content | +| FinancesOnline | Finance/SaaS review site, requires formal product listing | +| Clutch.co | Agency reviews only, no editorial content | +| DataScienceCentral | ML/AI/data science only — QR codes too shallow | +| OpenSource.com | Dev/open-source only — no marketing/tool angle | +| Fylehq | Corporate expense management only | +| All HR/Productivity sites | No QR code angle that isn't forced | +| All Finance/Fintech sites | Wrong audience entirely | +| All Security/Privacy sites | Wrong audience entirely | + +--- + +### Execution Plan — Charles Floate List + +> 🔍 **Contact Research Guide** — Complete *before* Woche-1 pitches go out. Hunter.io alone is insufficient for smaller blogs. +> +> | Method | When to use | +> |--------|-------------| +> | `site:domain.com "write for us"` | Always — check first | +> | `site:domain.com "contact" OR "editor"` | If no write-for-us page | +> | LinkedIn: search “[site name] editor” or “content manager” | Tier 1 always | +> | Hunter.io | Larger sites with company domains | +> | Whois + MXToolbox | Smaller/independent blogs | +> | Contact form on site | Fallback when no direct email | +> | LinkedIn DM to editor | Last resort for Tier 1 targets | +> +> **Goal: all Tier 1 contacts confirmed before the first pitch goes out.** + +**Week 1 (immediate):** +- [ ] Publish Medium post (Phase A #1) +- [ ] Publish LinkedIn Pulse post (Phase A #2) +- [ ] Set up Substack, publish first issue (Phase A #3) +- [ ] Send pitch to Hackernoon (Tier 1 #1) +- [ ] Send pitch to Techopedia (Tier 1 #2) + +**Week 2:** +- [ ] Publish Tealfeed + Vocal posts (Phase A #4–5) +- [ ] Send pitch to G2 Learning Hub (Tier 1 #3) +- [ ] Send pitch to Visme (Tier 1 #4) +- [ ] Send pitch to Startup Mindset (Tier 2 #6) + +**Week 3:** +- [ ] Follow up on Week 1 pitches (if no reply) +- [ ] Send pitches to Tier 2 targets: Small Biz Daily, MobileAppDaily, trickyenough +- [ ] Send pitch to Smart Data Collective + Martech Series + +**Week 4:** +- [ ] Follow up on Week 2 pitches +- [ ] Begin Tier 3 pitches (PageFly, SurveySparrow, Bplans) + +--- + +### Guest Post Tracking — Charles Floate List + +| Tier | Site | Contact | Sent | Reply | Status | +|------|------|---------|------|-------|--------| +| Web 2.0 | Medium | — (self-publish) | — | — | — | +| Web 2.0 | LinkedIn Pulse | — (self-publish) | — | — | — | +| Web 2.0 | Substack | — (self-publish) | — | — | — | +| Web 2.0 | Tealfeed | — (self-publish) | — | — | — | +| Web 2.0 | Vocal.Media | — (self-publish) | — | — | — | +| 1 | Hackernoon | editorial@hackernoon.com | — | — | — | +| 1 | Techopedia | (find via Hunter.io) | — | — | — | +| 1 | G2 Learning Hub | (find via Hunter.io) | — | — | — | +| 1 | Visme | (find via Hunter.io) | — | — | — | +| 1 | Smart Data Collective | (find via Hunter.io) | — | — | — | +| 2 | Startup Mindset | (find via Hunter.io) | — | — | — | +| 2 | Small Biz Daily | (find via site contact) | — | — | — | +| 2 | MobileAppDaily | (find via Hunter.io) | — | — | — | +| 2 | trickyenough.com | (find via site contact) | — | — | — | +| 2 | Martech Series | (find via Hunter.io) | — | — | — | +| 3 | PageFly | (find via Hunter.io) | — | — | — | +| 3 | SurveySparrow | (find via Hunter.io) | — | — | — | +| 3 | Bplans | (find via Hunter.io) | — | — | — | diff --git a/linear.app/DESIGN.md b/linear.app/DESIGN.md index 1589d6d..f457dec 100644 --- a/linear.app/DESIGN.md +++ b/linear.app/DESIGN.md @@ -1,548 +1,548 @@ ---- -version: alpha -name: Linear -description: "A near-black product-focused marketing canvas built around #010102 (the deepest dark surface of any tool in this collection), light gray text (#f7f8f8), and the signature Linear lavender-blue (#5e6ad2) used as the single chromatic accent. The system reads as software-craft documentation: dense, technical, and quietly luxurious. Display type is set in the Linear custom sans (SF Pro Display fallback) at 500–700 with measured negative tracking. Cards live as charcoal panels (#0f1011) with hairline borders. The accent lavender appears on the brand mark, focus rings, and a few intentional CTAs — never decoratively. Page rhythm leans on product UI screenshots framed in dark panels rather than atmospheric color." - -colors: - primary: "#5e6ad2" - on-primary: "#ffffff" - primary-hover: "#828fff" - primary-focus: "#5e69d1" - ink: "#f7f8f8" - ink-muted: "#d0d6e0" - ink-subtle: "#8a8f98" - ink-tertiary: "#62666d" - canvas: "#010102" - surface-1: "#0f1011" - surface-2: "#141516" - surface-3: "#18191a" - surface-4: "#191a1b" - hairline: "#23252a" - hairline-strong: "#34343a" - hairline-tertiary: "#3e3e44" - inverse-canvas: "#ffffff" - inverse-surface-1: "#f5f6f6" - inverse-surface-2: "#f6f7f7" - inverse-ink: "#000000" - brand-secure: "#7a7fad" - semantic-success: "#27a644" - semantic-overlay: "#000000" - -typography: - display-xl: - fontFamily: Linear Display - fontSize: 80px - fontWeight: 600 - lineHeight: 1.05 - letterSpacing: -3.0px - display-lg: - fontFamily: Linear Display - fontSize: 56px - fontWeight: 600 - lineHeight: 1.10 - letterSpacing: -1.8px - display-md: - fontFamily: Linear Display - fontSize: 40px - fontWeight: 600 - lineHeight: 1.15 - letterSpacing: -1.0px - headline: - fontFamily: Linear Display - fontSize: 28px - fontWeight: 600 - lineHeight: 1.20 - letterSpacing: -0.6px - card-title: - fontFamily: Linear Display - fontSize: 22px - fontWeight: 500 - lineHeight: 1.25 - letterSpacing: -0.4px - subhead: - fontFamily: Linear Display - fontSize: 20px - fontWeight: 400 - lineHeight: 1.40 - letterSpacing: -0.2px - body-lg: - fontFamily: Linear Text - fontSize: 18px - fontWeight: 400 - lineHeight: 1.50 - letterSpacing: -0.1px - body: - fontFamily: Linear Text - fontSize: 16px - fontWeight: 400 - lineHeight: 1.50 - letterSpacing: -0.05px - body-sm: - fontFamily: Linear Text - fontSize: 14px - fontWeight: 400 - lineHeight: 1.50 - letterSpacing: 0 - caption: - fontFamily: Linear Text - fontSize: 12px - fontWeight: 400 - lineHeight: 1.40 - letterSpacing: 0 - button: - fontFamily: Linear Text - fontSize: 14px - fontWeight: 500 - lineHeight: 1.20 - letterSpacing: 0 - eyebrow: - fontFamily: Linear Text - fontSize: 13px - fontWeight: 500 - lineHeight: 1.30 - letterSpacing: 0.4px - mono: - fontFamily: Linear Mono - fontSize: 13px - fontWeight: 400 - lineHeight: 1.50 - letterSpacing: 0 - -rounded: - xs: 4px - sm: 6px - md: 8px - lg: 12px - xl: 16px - xxl: 24px - pill: 9999px - full: 9999px - -spacing: - xxs: 4px - xs: 8px - sm: 12px - md: 16px - lg: 24px - xl: 32px - xxl: 48px - section: 96px - -components: - button-primary: - backgroundColor: "{colors.primary}" - textColor: "{colors.on-primary}" - typography: "{typography.button}" - rounded: "{rounded.md}" - padding: 8px 14px - button-primary-pressed: - backgroundColor: "{colors.primary-focus}" - textColor: "{colors.on-primary}" - typography: "{typography.button}" - rounded: "{rounded.md}" - button-primary-hover: - backgroundColor: "{colors.primary-hover}" - textColor: "{colors.on-primary}" - typography: "{typography.button}" - rounded: "{rounded.md}" - button-secondary: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.button}" - rounded: "{rounded.md}" - padding: 8px 14px - button-tertiary: - backgroundColor: "{colors.canvas}" - textColor: "{colors.ink}" - typography: "{typography.button}" - rounded: "{rounded.md}" - padding: 8px 14px - button-inverse: - backgroundColor: "{colors.inverse-canvas}" - textColor: "{colors.inverse-ink}" - typography: "{typography.button}" - rounded: "{rounded.md}" - padding: 8px 14px - pricing-card: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.lg}" - padding: 24px - pricing-card-featured: - backgroundColor: "{colors.surface-2}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.lg}" - padding: 24px - feature-card: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.lg}" - padding: 24px - product-screenshot-card: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.xl}" - padding: 24px - testimonial-card: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.body-lg}" - rounded: "{rounded.lg}" - padding: 32px - customer-logo-tile: - backgroundColor: "{colors.canvas}" - textColor: "{colors.ink-subtle}" - typography: "{typography.caption}" - rounded: "{rounded.xs}" - padding: 16px - text-input: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.md}" - padding: 8px 12px - text-input-focused: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.md}" - padding: 8px 12px - pricing-tab-default: - backgroundColor: "{colors.canvas}" - textColor: "{colors.ink-subtle}" - typography: "{typography.button}" - rounded: "{rounded.pill}" - padding: 6px 14px - pricing-tab-selected: - backgroundColor: "{colors.surface-2}" - textColor: "{colors.ink}" - typography: "{typography.button}" - rounded: "{rounded.pill}" - padding: 6px 14px - cta-banner: - backgroundColor: "{colors.surface-1}" - textColor: "{colors.ink}" - typography: "{typography.headline}" - rounded: "{rounded.lg}" - padding: 48px - changelog-row: - backgroundColor: "{colors.canvas}" - textColor: "{colors.ink}" - typography: "{typography.body}" - rounded: "{rounded.xs}" - padding: 24px 0 - status-badge: - backgroundColor: "{colors.surface-2}" - textColor: "{colors.ink-muted}" - typography: "{typography.caption}" - rounded: "{rounded.pill}" - padding: 2px 8px - top-nav: - backgroundColor: "{colors.canvas}" - textColor: "{colors.ink}" - typography: "{typography.body-sm}" - rounded: "{rounded.xs}" - height: 56px - footer: - backgroundColor: "{colors.canvas}" - textColor: "{colors.ink-subtle}" - typography: "{typography.caption}" - rounded: "{rounded.xs}" - padding: 64px 32px ---- - -## Overview - -Linear's marketing canvas is the deepest dark surface in this collection — `{colors.canvas}` is #010102, essentially pure black with a faint blue tint. On top sits a four-step surface ladder (`{colors.surface-1}` through `{colors.surface-4}`) for cards, panels, and lifted tiles, with hairline borders running from `{colors.hairline}` (#23252a) up through `{colors.hairline-strong}` and `{colors.hairline-tertiary}`. Light gray text (`{colors.ink}` #f7f8f8) carries the body and headlines. - -The single chromatic accent is **Linear lavender-blue** `{colors.primary}` (#5e6ad2) — used on the brand mark, focus rings, and the primary CTA button. A lighter hover state (`{colors.primary-hover}` #828fff) and a focus-tinted variant (`{colors.primary-focus}` #5e69d1) extend the same hue. Linear avoids saturated greens, oranges, reds, etc. on the marketing canvas — the only semantic color is `{colors.semantic-success}` (#27a644) for status pills and the rare success indicator. - -Display type runs Linear's custom sans (with `SF Pro Display` fallback) at weight 500–700 with negative letter-spacing scaling from -3.0px at 80px down to 0 at body. The body family is Linear's text cut, and a Linear Mono is reserved for code snippets in product screenshots. - -The page rhythm is **dense product screenshots** — Linear's marketing leads with high-fidelity captures of the product UI (issue list, project view, dashboard) framed in `{colors.surface-1}` panels with `{rounded.xl}` 16px corners. The chrome is intentionally minimal so the app screenshots can do the heavy lifting. - -**Key Characteristics:** -- **Dark-canvas marketing system** — `{colors.canvas}` (#010102) is the deepest dark in this collection. -- **Lavender-blue brand accent** (`{colors.primary}` #5e6ad2) — used scarcely on brand mark, focus, and the primary CTA. -- Four-step surface ladder (canvas → surface-1 → surface-2 → surface-3 → surface-4) carries hierarchy without shadow. -- Display tracking pulls aggressively negative (-3.0px at 80px); body holds at -0.05px. -- Cards use `{rounded.lg}` 12px corners with 1px hairline borders — never pill, rarely 16px. -- **Product UI screenshots** dominate the page. The marketing chrome is a dark frame for the app. -- No second chromatic color. No atmospheric gradients. No spotlight cards. - -## Colors - -> Source pages: linear.app (home), /intake, /pricing, /contact/sales, /build. - -### Brand & Accent -- **Lavender-Blue** ({colors.primary}): The signature Linear accent — primary CTA, brand mark, link emphasis. -- **Lavender Hover** ({colors.primary-hover}): Lighter lavender (#828fff) — hovered state of the primary CTA. -- **Lavender Focus** ({colors.primary-focus}): Focus-ring tint (#5e69d1) — focused inputs, focused buttons. -- **Brand Secure** ({colors.brand-secure}): Muted lavender-gray (#7a7fad) — used in "Linear Security" surfaces. - -### Surface -- **Canvas** ({colors.canvas}): Default page background — #010102, near-pure black with a faint blue tint. -- **Surface 1** ({colors.surface-1}): One step above canvas — feature cards, pricing cards, product screenshot panels. -- **Surface 2** ({colors.surface-2}): Two steps above — featured pricing card, hovered cards. -- **Surface 3** ({colors.surface-3}): Three steps above — line-tertiary backgrounds, sub-nav. -- **Surface 4** ({colors.surface-4}): Four steps above — bg-level-3, deepest lifted surface. -- **Hairline** ({colors.hairline}): 1px borders on cards and dividers. -- **Hairline Strong** ({colors.hairline-strong}): Stronger 1px borders — input focus rings. -- **Hairline Tertiary** ({colors.hairline-tertiary}): Tertiary borders for nested surfaces. -- **Inverse Canvas** ({colors.inverse-canvas}): Pure white — surface of the inverse pill CTA on a small set of section openers. -- **Inverse Surface 1** ({colors.inverse-surface-1}): One step above inverse canvas. -- **Inverse Surface 2** ({colors.inverse-surface-2}): Two steps above inverse canvas. - -### Text -- **Ink** ({colors.ink}): All headlines and emphasized body type — light gray #f7f8f8. -- **Ink Muted** ({colors.ink-muted}): Secondary type at #d0d6e0 — meta info on hero panels. -- **Ink Subtle** ({colors.ink-subtle}): Tertiary type at #8a8f98 — deselected pricing tabs, footer columns. -- **Ink Tertiary** ({colors.ink-tertiary}): Quaternary at #62666d — disabled, footnotes. - -### Semantic -- **Success Green** ({colors.semantic-success}): Status pills, success indicators. The only semantic color on marketing. -- **Overlay** ({colors.semantic-overlay}): Pure black overlay scrim for modals. - -## Typography - -### Font Family - -- **Linear Display** — Linear's custom display sans; fallback `SF Pro Display, -apple-system, system-ui, Segoe UI, Roboto`. Carries display-xl through subhead. -- **Linear Text** — Linear's custom text sans (a slightly different cut tuned for body sizes); same fallback stack. Carries body sizes, button labels, captions. -- **Linear Mono** — Linear's custom mono; fallback `ui-monospace, SF Mono, Menlo`. Used for code snippets in product screenshots and for status / ID tokens. - -The marketing surface treats Display and Text as one continuous voice; the family change is silent. - -### Hierarchy - -| Token | Size | Weight | Line Height | Letter Spacing | Use | -|---|---|---|---|---|---| -| `{typography.display-xl}` | 80px | 600 | 1.05 | -3.0px | Largest hero headline | -| `{typography.display-lg}` | 56px | 600 | 1.10 | -1.8px | Section opener headlines | -| `{typography.display-md}` | 40px | 600 | 1.15 | -1.0px | Sub-section headlines | -| `{typography.headline}` | 28px | 600 | 1.20 | -0.6px | Pricing tier titles, CTA banner heading | -| `{typography.card-title}` | 22px | 500 | 1.25 | -0.4px | Feature card title | -| `{typography.subhead}` | 20px | 400 | 1.40 | -0.2px | Lead body, intro paragraphs | -| `{typography.body-lg}` | 18px | 400 | 1.50 | -0.1px | Hero subhead, lead paragraphs | -| `{typography.body}` | 16px | 400 | 1.50 | -0.05px | Default body | -| `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Card body, footer columns | -| `{typography.caption}` | 12px | 400 | 1.40 | 0 | Captions, meta, status | -| `{typography.button}` | 14px | 500 | 1.20 | 0 | All button labels | -| `{typography.eyebrow}` | 13px | 500 | 1.30 | 0.4px | Section eyebrow (slight positive tracking) | -| `{typography.mono}` | 13px | 400 | 1.50 | 0 | Linear Mono for code in product screenshots | - -### Principles - -- **Aggressive negative tracking on display** (-3.0px at 80px ≈ 4% of size). -- **Single voice from display to body.** Display-xl at 600 → body at 400 — same family, narrower weights. -- **Eyebrow uses positive tracking** (+0.4px) — contrast against the negative-tracked display marks the eyebrow as taxonomy. -- **Mono only in code contexts.** Linear Mono lives inside product screenshots — not on marketing chrome. - -### Note on Font Substitutes - -Linear's custom typeface isn't publicly distributed; the documented fallback `SF Pro Display, -apple-system, system-ui` is the recommended substitute on macOS. For cross-platform implementation, **Inter** at weight 500 / 600 / 700 is the closest free substitute. **Geist Sans** is also viable. For mono, **JetBrains Mono** or **Geist Mono** at weight 400 closely approximates Linear Mono. - -## Layout - -### Spacing System - -- **Base unit**: 4px. -- **Tokens (front matter)**: `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px. -- Card interior padding: `{spacing.lg}` 24px on feature/pricing cards; `{spacing.xl}` 32px on testimonial cards; `{spacing.xxl}` 48px on CTA banners. -- Pill button padding: 8px vertical · 14px horizontal — Linear's compact button spec. -- Form input padding: 8px vertical · 12px horizontal. - -### Grid & Container - -- Max content width sits around 1280px. -- Card grids are 3-up at desktop, 2-up at tablet, 1-up at mobile. -- Pricing tier grid is 3-up; comparison strip below shows checkmarks per tier. -- Product screenshot panels span full content width — they're the protagonist. - -### Whitespace Philosophy - -The dark canvas IS the whitespace. Sections separate by lift onto surface-1 panels, not by gaps in white. Within a panel, generous `{spacing.lg}` 24px gaps between content blocks; `{spacing.section}` 96px between sections. - -## Elevation & Depth - -| Level | Treatment | Use | -|---|---|---| -| 0 (flat) | No shadow, no border | Default for body type, hero text, footer | -| 1 (charcoal lift) | `{colors.surface-1}` background on canvas, 1px `{colors.hairline}` | Default cards, product panels | -| 2 (surface-2 lift) | `{colors.surface-2}` background, 1px `{colors.hairline-strong}` | Featured pricing card, hovered cards | -| 3 (surface-3 lift) | `{colors.surface-3}` background | Sub-nav, dropdown menus | -| 4 (focus ring) | 2px `{colors.primary-focus}` outline at 50% opacity | Focused input, focused button | - -Linear's depth is carried by surface ladder + hairline borders. The brand resists drop shadows on dark almost entirely. - -### Decorative Depth - -- **Product UI screenshots** dominate as decorative depth. -- **No atmospheric gradients, no spotlight cards.** -- **Subtle white edge highlight** on the top edge of lifted panels — gives the dark surface a faint "pixel rendered" feel. - -## Shapes - -### Border Radius Scale - -| Token | Value | Use | -|---|---|---| -| `{rounded.xs}` | 4px | Small chips, status badges | -| `{rounded.sm}` | 6px | Inline tags | -| `{rounded.md}` | 8px | All buttons, form inputs | -| `{rounded.lg}` | 12px | Pricing cards, feature cards, testimonial cards | -| `{rounded.xl}` | 16px | Product screenshot panels | -| `{rounded.xxl}` | 24px | Oversized CTA banners (rare) | -| `{rounded.pill}` | 9999px | Pricing tab toggles, status pills | -| `{rounded.full}` | 9999px | Avatar circles | - -### Photography & Illustration Geometry - -- Product UI screenshots dominate; they sit in `{rounded.xl}` 16px tiles with `{spacing.lg}` 24px outer padding. -- Customer logo tiles render at small sizes (~24px logo height) on `{colors.canvas}` with no border. -- Avatar circles in testimonial cards use `{rounded.full}` at 32–40px sizes. - -## Components - -### Buttons - -**`button-primary`** — Lavender CTA. The default primary CTA across all pages. -- Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}`, padding 8px 14px, rounded `{rounded.md}`. -- Pressed state lives in `button-primary-pressed` (background shifts to `{colors.primary-focus}`). -- Hover state lives in `button-primary-hover` (background shifts to `{colors.primary-hover}` lighter lavender). - -**`button-secondary`** — Charcoal button. Used for secondary CTAs ("Sign in", "Read changelog"). -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.button}`, padding 8px 14px, rounded `{rounded.md}`. 1px `{colors.hairline}` border. - -**`button-tertiary`** — Plain text button. -- Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.button}`, rounded `{rounded.md}`, padding 8px 14px. - -**`button-inverse`** — White-on-dark inverse CTA. -- Background `{colors.inverse-canvas}`, text `{colors.inverse-ink}`, type `{typography.button}`, rounded `{rounded.md}`, padding 8px 14px. - -### Pricing Tabs - -**`pricing-tab-default`** + **`pricing-tab-selected`** — Pill-toggle on `/pricing`. -- Default: `{colors.canvas}` background, `{colors.ink-subtle}` text, rounded `{rounded.pill}`, padding 6px 14px. -- Selected: `{colors.surface-2}` background, `{colors.ink}` text — selected = surface lift. - -### Cards & Containers - -**`pricing-card`** — Each tier on `/pricing`. -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.lg}`, padding 24px. 1px `{colors.hairline}` border. - -**`pricing-card-featured`** — Recommended tier — surface lift to surface-2. -- Background `{colors.surface-2}`, otherwise identical structure. - -**`feature-card`** — Generic feature highlight tile. -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.lg}`, padding 24px. - -**`product-screenshot-card`** — The dominant card type — frames a high-fidelity Linear app UI screenshot. -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.xl}`, padding 24px. - -**`testimonial-card`** — Customer quote with avatar + name + role. -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body-lg}`, rounded `{rounded.lg}`, padding 32px. - -**`customer-logo-tile`** — Small tile in the customer marquee. -- Background `{colors.canvas}`, text `{colors.ink-subtle}`, type `{typography.caption}`, rounded `{rounded.xs}`, padding 16px. - -**`cta-banner`** — Closing CTA panel near page bottom. -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.headline}`, rounded `{rounded.lg}`, padding 48px. - -### Inputs & Forms - -**`text-input`** + **`text-input-focused`** — Form fields on `/contact/sales` and signup overlays. -- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.md}`, padding 8px 12px. -- Focused state retains the same surface; the focus ring is a 2px `{colors.primary-focus}` outline at 50% opacity. - -### Status & Build Page - -**`changelog-row`** — Each row in `/build` (changelog page) listing version, date, and changes. -- Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.xs}`, padding 24px 0. 1px `{colors.hairline}` bottom rule. - -**`status-badge`** — Small status pill. -- Background `{colors.surface-2}`, text `{colors.ink-muted}`, type `{typography.caption}`, rounded `{rounded.pill}`, padding 2px 8px. - -### Navigation - -**`top-nav`** — Sticky dark bar with the Linear wordmark left, primary nav links centered, and a `button-secondary` ("Sign in") + `button-primary` ("Get started") pair right. -- Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-sm}`, height 56px. - -### Footer - -**`footer`** — Dense link grid on `{colors.canvas}` with the Linear wordmark left. -- Background `{colors.canvas}`, text `{colors.ink-subtle}`, type `{typography.caption}`, padding 64px 32px. - -## Do's and Don'ts - -### Do - -- Reserve `{colors.canvas}` (#010102) as the system's anchor surface — the faint blue tint is intentional. -- Use `{colors.primary}` lavender ONLY for: brand mark, primary CTA, focus ring, link emphasis. -- Use the four-step surface ladder for hierarchy. Avoid skipping levels. -- Pair display weight 600 with body weight 400 — Linear resists 700+ display weights. -- Apply negative letter-spacing aggressively on display. -- Use product UI screenshots as the protagonist of every section. -- Compose CTAs as `{rounded.md}` 8px corners. - -### Don't - -- Don't ship a light-mode marketing page. -- Don't use lavender as a section background or card fill. -- Don't introduce a second chromatic accent (orange, pink, green for marketing). -- Don't add atmospheric gradients or spotlight cards. -- Don't pill-round CTAs. -- Don't use `#000000` true black as the canvas. -- Don't combine multiple bright accents in product screenshot mockups. - -## Responsive Behavior - -### Breakpoints - -| Name | Width | Key Changes | -|---|---|---| -| Desktop-XL | 1440px | Default desktop layout | -| Desktop | 1280px | Card grid 3-up maintained | -| Tablet | 1024px | Card grid 3-up → 2-up | -| Mobile-Lg | 768px | Pricing comparison becomes accordion; nav hamburger | -| Mobile | 480px | Single-column; display-xl scales 80px → ~36px | - -### Touch Targets - -- CTAs hold ≥40px tap height across viewports. -- Pricing tab pills hold ≥36px tap height; touch viewports grow to ≥44px. -- Form inputs hold ≥44px tap target on touch. - -### Collapsing Strategy - -- **Top nav**: links collapse to hamburger below 768px. -- **Card grids**: 3-up → 2-up at 1024px → 1-up below 768px. -- **Pricing comparison**: per-tier accordion below 768px. -- **Display type**: `{typography.display-xl}` 80px scales toward `{typography.display-md}` 40px on mobile. - -### Image Behavior - -- Product UI screenshots maintain aspect ratio and never crop. -- Customer logos in the marquee may collapse from 6-up to 3-up below 768px. - -## Iteration Guide - -1. Focus on ONE component at a time and reference it by its `components:` token name. -2. When introducing a section, decide first which surface lift it lives on. -3. Default body to `{typography.body}` at weight 400. -4. Run `npx @google/design.md lint DESIGN.md` after edits. -5. Add new variants as separate component entries. -6. Treat lavender as scarce: brand mark, primary CTA, focus, link emphasis. -7. Lead every section with a product UI screenshot. - -## Known Gaps - -- The four-step surface ladder values are extracted directly from Linear's `--color-bg-level-3`, `--color-line-tint`, etc. CSS variables; they are Linear's canonical surface spec. -- Form-field error and validation styling is not visible on the inspected pages. -- Light mode is not documented because the marketing site does not ship a light theme. -- Linear's actual product UI uses a richer color-tag palette (red, orange, yellow, green, blue, purple) for issue priorities and project labels — those colors live in the in-product surfaces shown in mockups. -- The custom display, text, and mono families are proprietary; an open-source substitute is acceptable. +--- +version: alpha +name: Linear +description: "A near-black product-focused marketing canvas built around #010102 (the deepest dark surface of any tool in this collection), light gray text (#f7f8f8), and the signature Linear lavender-blue (#5e6ad2) used as the single chromatic accent. The system reads as software-craft documentation: dense, technical, and quietly luxurious. Display type is set in the Linear custom sans (SF Pro Display fallback) at 500–700 with measured negative tracking. Cards live as charcoal panels (#0f1011) with hairline borders. The accent lavender appears on the brand mark, focus rings, and a few intentional CTAs — never decoratively. Page rhythm leans on product UI screenshots framed in dark panels rather than atmospheric color." + +colors: + primary: "#5e6ad2" + on-primary: "#ffffff" + primary-hover: "#828fff" + primary-focus: "#5e69d1" + ink: "#f7f8f8" + ink-muted: "#d0d6e0" + ink-subtle: "#8a8f98" + ink-tertiary: "#62666d" + canvas: "#010102" + surface-1: "#0f1011" + surface-2: "#141516" + surface-3: "#18191a" + surface-4: "#191a1b" + hairline: "#23252a" + hairline-strong: "#34343a" + hairline-tertiary: "#3e3e44" + inverse-canvas: "#ffffff" + inverse-surface-1: "#f5f6f6" + inverse-surface-2: "#f6f7f7" + inverse-ink: "#000000" + brand-secure: "#7a7fad" + semantic-success: "#27a644" + semantic-overlay: "#000000" + +typography: + display-xl: + fontFamily: Linear Display + fontSize: 80px + fontWeight: 600 + lineHeight: 1.05 + letterSpacing: -3.0px + display-lg: + fontFamily: Linear Display + fontSize: 56px + fontWeight: 600 + lineHeight: 1.10 + letterSpacing: -1.8px + display-md: + fontFamily: Linear Display + fontSize: 40px + fontWeight: 600 + lineHeight: 1.15 + letterSpacing: -1.0px + headline: + fontFamily: Linear Display + fontSize: 28px + fontWeight: 600 + lineHeight: 1.20 + letterSpacing: -0.6px + card-title: + fontFamily: Linear Display + fontSize: 22px + fontWeight: 500 + lineHeight: 1.25 + letterSpacing: -0.4px + subhead: + fontFamily: Linear Display + fontSize: 20px + fontWeight: 400 + lineHeight: 1.40 + letterSpacing: -0.2px + body-lg: + fontFamily: Linear Text + fontSize: 18px + fontWeight: 400 + lineHeight: 1.50 + letterSpacing: -0.1px + body: + fontFamily: Linear Text + fontSize: 16px + fontWeight: 400 + lineHeight: 1.50 + letterSpacing: -0.05px + body-sm: + fontFamily: Linear Text + fontSize: 14px + fontWeight: 400 + lineHeight: 1.50 + letterSpacing: 0 + caption: + fontFamily: Linear Text + fontSize: 12px + fontWeight: 400 + lineHeight: 1.40 + letterSpacing: 0 + button: + fontFamily: Linear Text + fontSize: 14px + fontWeight: 500 + lineHeight: 1.20 + letterSpacing: 0 + eyebrow: + fontFamily: Linear Text + fontSize: 13px + fontWeight: 500 + lineHeight: 1.30 + letterSpacing: 0.4px + mono: + fontFamily: Linear Mono + fontSize: 13px + fontWeight: 400 + lineHeight: 1.50 + letterSpacing: 0 + +rounded: + xs: 4px + sm: 6px + md: 8px + lg: 12px + xl: 16px + xxl: 24px + pill: 9999px + full: 9999px + +spacing: + xxs: 4px + xs: 8px + sm: 12px + md: 16px + lg: 24px + xl: 32px + xxl: 48px + section: 96px + +components: + button-primary: + backgroundColor: "{colors.primary}" + textColor: "{colors.on-primary}" + typography: "{typography.button}" + rounded: "{rounded.md}" + padding: 8px 14px + button-primary-pressed: + backgroundColor: "{colors.primary-focus}" + textColor: "{colors.on-primary}" + typography: "{typography.button}" + rounded: "{rounded.md}" + button-primary-hover: + backgroundColor: "{colors.primary-hover}" + textColor: "{colors.on-primary}" + typography: "{typography.button}" + rounded: "{rounded.md}" + button-secondary: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.button}" + rounded: "{rounded.md}" + padding: 8px 14px + button-tertiary: + backgroundColor: "{colors.canvas}" + textColor: "{colors.ink}" + typography: "{typography.button}" + rounded: "{rounded.md}" + padding: 8px 14px + button-inverse: + backgroundColor: "{colors.inverse-canvas}" + textColor: "{colors.inverse-ink}" + typography: "{typography.button}" + rounded: "{rounded.md}" + padding: 8px 14px + pricing-card: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.lg}" + padding: 24px + pricing-card-featured: + backgroundColor: "{colors.surface-2}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.lg}" + padding: 24px + feature-card: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.lg}" + padding: 24px + product-screenshot-card: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.xl}" + padding: 24px + testimonial-card: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.body-lg}" + rounded: "{rounded.lg}" + padding: 32px + customer-logo-tile: + backgroundColor: "{colors.canvas}" + textColor: "{colors.ink-subtle}" + typography: "{typography.caption}" + rounded: "{rounded.xs}" + padding: 16px + text-input: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.md}" + padding: 8px 12px + text-input-focused: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.md}" + padding: 8px 12px + pricing-tab-default: + backgroundColor: "{colors.canvas}" + textColor: "{colors.ink-subtle}" + typography: "{typography.button}" + rounded: "{rounded.pill}" + padding: 6px 14px + pricing-tab-selected: + backgroundColor: "{colors.surface-2}" + textColor: "{colors.ink}" + typography: "{typography.button}" + rounded: "{rounded.pill}" + padding: 6px 14px + cta-banner: + backgroundColor: "{colors.surface-1}" + textColor: "{colors.ink}" + typography: "{typography.headline}" + rounded: "{rounded.lg}" + padding: 48px + changelog-row: + backgroundColor: "{colors.canvas}" + textColor: "{colors.ink}" + typography: "{typography.body}" + rounded: "{rounded.xs}" + padding: 24px 0 + status-badge: + backgroundColor: "{colors.surface-2}" + textColor: "{colors.ink-muted}" + typography: "{typography.caption}" + rounded: "{rounded.pill}" + padding: 2px 8px + top-nav: + backgroundColor: "{colors.canvas}" + textColor: "{colors.ink}" + typography: "{typography.body-sm}" + rounded: "{rounded.xs}" + height: 56px + footer: + backgroundColor: "{colors.canvas}" + textColor: "{colors.ink-subtle}" + typography: "{typography.caption}" + rounded: "{rounded.xs}" + padding: 64px 32px +--- + +## Overview + +Linear's marketing canvas is the deepest dark surface in this collection — `{colors.canvas}` is #010102, essentially pure black with a faint blue tint. On top sits a four-step surface ladder (`{colors.surface-1}` through `{colors.surface-4}`) for cards, panels, and lifted tiles, with hairline borders running from `{colors.hairline}` (#23252a) up through `{colors.hairline-strong}` and `{colors.hairline-tertiary}`. Light gray text (`{colors.ink}` #f7f8f8) carries the body and headlines. + +The single chromatic accent is **Linear lavender-blue** `{colors.primary}` (#5e6ad2) — used on the brand mark, focus rings, and the primary CTA button. A lighter hover state (`{colors.primary-hover}` #828fff) and a focus-tinted variant (`{colors.primary-focus}` #5e69d1) extend the same hue. Linear avoids saturated greens, oranges, reds, etc. on the marketing canvas — the only semantic color is `{colors.semantic-success}` (#27a644) for status pills and the rare success indicator. + +Display type runs Linear's custom sans (with `SF Pro Display` fallback) at weight 500–700 with negative letter-spacing scaling from -3.0px at 80px down to 0 at body. The body family is Linear's text cut, and a Linear Mono is reserved for code snippets in product screenshots. + +The page rhythm is **dense product screenshots** — Linear's marketing leads with high-fidelity captures of the product UI (issue list, project view, dashboard) framed in `{colors.surface-1}` panels with `{rounded.xl}` 16px corners. The chrome is intentionally minimal so the app screenshots can do the heavy lifting. + +**Key Characteristics:** +- **Dark-canvas marketing system** — `{colors.canvas}` (#010102) is the deepest dark in this collection. +- **Lavender-blue brand accent** (`{colors.primary}` #5e6ad2) — used scarcely on brand mark, focus, and the primary CTA. +- Four-step surface ladder (canvas → surface-1 → surface-2 → surface-3 → surface-4) carries hierarchy without shadow. +- Display tracking pulls aggressively negative (-3.0px at 80px); body holds at -0.05px. +- Cards use `{rounded.lg}` 12px corners with 1px hairline borders — never pill, rarely 16px. +- **Product UI screenshots** dominate the page. The marketing chrome is a dark frame for the app. +- No second chromatic color. No atmospheric gradients. No spotlight cards. + +## Colors + +> Source pages: linear.app (home), /intake, /pricing, /contact/sales, /build. + +### Brand & Accent +- **Lavender-Blue** ({colors.primary}): The signature Linear accent — primary CTA, brand mark, link emphasis. +- **Lavender Hover** ({colors.primary-hover}): Lighter lavender (#828fff) — hovered state of the primary CTA. +- **Lavender Focus** ({colors.primary-focus}): Focus-ring tint (#5e69d1) — focused inputs, focused buttons. +- **Brand Secure** ({colors.brand-secure}): Muted lavender-gray (#7a7fad) — used in "Linear Security" surfaces. + +### Surface +- **Canvas** ({colors.canvas}): Default page background — #010102, near-pure black with a faint blue tint. +- **Surface 1** ({colors.surface-1}): One step above canvas — feature cards, pricing cards, product screenshot panels. +- **Surface 2** ({colors.surface-2}): Two steps above — featured pricing card, hovered cards. +- **Surface 3** ({colors.surface-3}): Three steps above — line-tertiary backgrounds, sub-nav. +- **Surface 4** ({colors.surface-4}): Four steps above — bg-level-3, deepest lifted surface. +- **Hairline** ({colors.hairline}): 1px borders on cards and dividers. +- **Hairline Strong** ({colors.hairline-strong}): Stronger 1px borders — input focus rings. +- **Hairline Tertiary** ({colors.hairline-tertiary}): Tertiary borders for nested surfaces. +- **Inverse Canvas** ({colors.inverse-canvas}): Pure white — surface of the inverse pill CTA on a small set of section openers. +- **Inverse Surface 1** ({colors.inverse-surface-1}): One step above inverse canvas. +- **Inverse Surface 2** ({colors.inverse-surface-2}): Two steps above inverse canvas. + +### Text +- **Ink** ({colors.ink}): All headlines and emphasized body type — light gray #f7f8f8. +- **Ink Muted** ({colors.ink-muted}): Secondary type at #d0d6e0 — meta info on hero panels. +- **Ink Subtle** ({colors.ink-subtle}): Tertiary type at #8a8f98 — deselected pricing tabs, footer columns. +- **Ink Tertiary** ({colors.ink-tertiary}): Quaternary at #62666d — disabled, footnotes. + +### Semantic +- **Success Green** ({colors.semantic-success}): Status pills, success indicators. The only semantic color on marketing. +- **Overlay** ({colors.semantic-overlay}): Pure black overlay scrim for modals. + +## Typography + +### Font Family + +- **Linear Display** — Linear's custom display sans; fallback `SF Pro Display, -apple-system, system-ui, Segoe UI, Roboto`. Carries display-xl through subhead. +- **Linear Text** — Linear's custom text sans (a slightly different cut tuned for body sizes); same fallback stack. Carries body sizes, button labels, captions. +- **Linear Mono** — Linear's custom mono; fallback `ui-monospace, SF Mono, Menlo`. Used for code snippets in product screenshots and for status / ID tokens. + +The marketing surface treats Display and Text as one continuous voice; the family change is silent. + +### Hierarchy + +| Token | Size | Weight | Line Height | Letter Spacing | Use | +|---|---|---|---|---|---| +| `{typography.display-xl}` | 80px | 600 | 1.05 | -3.0px | Largest hero headline | +| `{typography.display-lg}` | 56px | 600 | 1.10 | -1.8px | Section opener headlines | +| `{typography.display-md}` | 40px | 600 | 1.15 | -1.0px | Sub-section headlines | +| `{typography.headline}` | 28px | 600 | 1.20 | -0.6px | Pricing tier titles, CTA banner heading | +| `{typography.card-title}` | 22px | 500 | 1.25 | -0.4px | Feature card title | +| `{typography.subhead}` | 20px | 400 | 1.40 | -0.2px | Lead body, intro paragraphs | +| `{typography.body-lg}` | 18px | 400 | 1.50 | -0.1px | Hero subhead, lead paragraphs | +| `{typography.body}` | 16px | 400 | 1.50 | -0.05px | Default body | +| `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Card body, footer columns | +| `{typography.caption}` | 12px | 400 | 1.40 | 0 | Captions, meta, status | +| `{typography.button}` | 14px | 500 | 1.20 | 0 | All button labels | +| `{typography.eyebrow}` | 13px | 500 | 1.30 | 0.4px | Section eyebrow (slight positive tracking) | +| `{typography.mono}` | 13px | 400 | 1.50 | 0 | Linear Mono for code in product screenshots | + +### Principles + +- **Aggressive negative tracking on display** (-3.0px at 80px ≈ 4% of size). +- **Single voice from display to body.** Display-xl at 600 → body at 400 — same family, narrower weights. +- **Eyebrow uses positive tracking** (+0.4px) — contrast against the negative-tracked display marks the eyebrow as taxonomy. +- **Mono only in code contexts.** Linear Mono lives inside product screenshots — not on marketing chrome. + +### Note on Font Substitutes + +Linear's custom typeface isn't publicly distributed; the documented fallback `SF Pro Display, -apple-system, system-ui` is the recommended substitute on macOS. For cross-platform implementation, **Inter** at weight 500 / 600 / 700 is the closest free substitute. **Geist Sans** is also viable. For mono, **JetBrains Mono** or **Geist Mono** at weight 400 closely approximates Linear Mono. + +## Layout + +### Spacing System + +- **Base unit**: 4px. +- **Tokens (front matter)**: `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px. +- Card interior padding: `{spacing.lg}` 24px on feature/pricing cards; `{spacing.xl}` 32px on testimonial cards; `{spacing.xxl}` 48px on CTA banners. +- Pill button padding: 8px vertical · 14px horizontal — Linear's compact button spec. +- Form input padding: 8px vertical · 12px horizontal. + +### Grid & Container + +- Max content width sits around 1280px. +- Card grids are 3-up at desktop, 2-up at tablet, 1-up at mobile. +- Pricing tier grid is 3-up; comparison strip below shows checkmarks per tier. +- Product screenshot panels span full content width — they're the protagonist. + +### Whitespace Philosophy + +The dark canvas IS the whitespace. Sections separate by lift onto surface-1 panels, not by gaps in white. Within a panel, generous `{spacing.lg}` 24px gaps between content blocks; `{spacing.section}` 96px between sections. + +## Elevation & Depth + +| Level | Treatment | Use | +|---|---|---| +| 0 (flat) | No shadow, no border | Default for body type, hero text, footer | +| 1 (charcoal lift) | `{colors.surface-1}` background on canvas, 1px `{colors.hairline}` | Default cards, product panels | +| 2 (surface-2 lift) | `{colors.surface-2}` background, 1px `{colors.hairline-strong}` | Featured pricing card, hovered cards | +| 3 (surface-3 lift) | `{colors.surface-3}` background | Sub-nav, dropdown menus | +| 4 (focus ring) | 2px `{colors.primary-focus}` outline at 50% opacity | Focused input, focused button | + +Linear's depth is carried by surface ladder + hairline borders. The brand resists drop shadows on dark almost entirely. + +### Decorative Depth + +- **Product UI screenshots** dominate as decorative depth. +- **No atmospheric gradients, no spotlight cards.** +- **Subtle white edge highlight** on the top edge of lifted panels — gives the dark surface a faint "pixel rendered" feel. + +## Shapes + +### Border Radius Scale + +| Token | Value | Use | +|---|---|---| +| `{rounded.xs}` | 4px | Small chips, status badges | +| `{rounded.sm}` | 6px | Inline tags | +| `{rounded.md}` | 8px | All buttons, form inputs | +| `{rounded.lg}` | 12px | Pricing cards, feature cards, testimonial cards | +| `{rounded.xl}` | 16px | Product screenshot panels | +| `{rounded.xxl}` | 24px | Oversized CTA banners (rare) | +| `{rounded.pill}` | 9999px | Pricing tab toggles, status pills | +| `{rounded.full}` | 9999px | Avatar circles | + +### Photography & Illustration Geometry + +- Product UI screenshots dominate; they sit in `{rounded.xl}` 16px tiles with `{spacing.lg}` 24px outer padding. +- Customer logo tiles render at small sizes (~24px logo height) on `{colors.canvas}` with no border. +- Avatar circles in testimonial cards use `{rounded.full}` at 32–40px sizes. + +## Components + +### Buttons + +**`button-primary`** — Lavender CTA. The default primary CTA across all pages. +- Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}`, padding 8px 14px, rounded `{rounded.md}`. +- Pressed state lives in `button-primary-pressed` (background shifts to `{colors.primary-focus}`). +- Hover state lives in `button-primary-hover` (background shifts to `{colors.primary-hover}` lighter lavender). + +**`button-secondary`** — Charcoal button. Used for secondary CTAs ("Sign in", "Read changelog"). +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.button}`, padding 8px 14px, rounded `{rounded.md}`. 1px `{colors.hairline}` border. + +**`button-tertiary`** — Plain text button. +- Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.button}`, rounded `{rounded.md}`, padding 8px 14px. + +**`button-inverse`** — White-on-dark inverse CTA. +- Background `{colors.inverse-canvas}`, text `{colors.inverse-ink}`, type `{typography.button}`, rounded `{rounded.md}`, padding 8px 14px. + +### Pricing Tabs + +**`pricing-tab-default`** + **`pricing-tab-selected`** — Pill-toggle on `/pricing`. +- Default: `{colors.canvas}` background, `{colors.ink-subtle}` text, rounded `{rounded.pill}`, padding 6px 14px. +- Selected: `{colors.surface-2}` background, `{colors.ink}` text — selected = surface lift. + +### Cards & Containers + +**`pricing-card`** — Each tier on `/pricing`. +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.lg}`, padding 24px. 1px `{colors.hairline}` border. + +**`pricing-card-featured`** — Recommended tier — surface lift to surface-2. +- Background `{colors.surface-2}`, otherwise identical structure. + +**`feature-card`** — Generic feature highlight tile. +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.lg}`, padding 24px. + +**`product-screenshot-card`** — The dominant card type — frames a high-fidelity Linear app UI screenshot. +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.xl}`, padding 24px. + +**`testimonial-card`** — Customer quote with avatar + name + role. +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body-lg}`, rounded `{rounded.lg}`, padding 32px. + +**`customer-logo-tile`** — Small tile in the customer marquee. +- Background `{colors.canvas}`, text `{colors.ink-subtle}`, type `{typography.caption}`, rounded `{rounded.xs}`, padding 16px. + +**`cta-banner`** — Closing CTA panel near page bottom. +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.headline}`, rounded `{rounded.lg}`, padding 48px. + +### Inputs & Forms + +**`text-input`** + **`text-input-focused`** — Form fields on `/contact/sales` and signup overlays. +- Background `{colors.surface-1}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.md}`, padding 8px 12px. +- Focused state retains the same surface; the focus ring is a 2px `{colors.primary-focus}` outline at 50% opacity. + +### Status & Build Page + +**`changelog-row`** — Each row in `/build` (changelog page) listing version, date, and changes. +- Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body}`, rounded `{rounded.xs}`, padding 24px 0. 1px `{colors.hairline}` bottom rule. + +**`status-badge`** — Small status pill. +- Background `{colors.surface-2}`, text `{colors.ink-muted}`, type `{typography.caption}`, rounded `{rounded.pill}`, padding 2px 8px. + +### Navigation + +**`top-nav`** — Sticky dark bar with the Linear wordmark left, primary nav links centered, and a `button-secondary` ("Sign in") + `button-primary` ("Get started") pair right. +- Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-sm}`, height 56px. + +### Footer + +**`footer`** — Dense link grid on `{colors.canvas}` with the Linear wordmark left. +- Background `{colors.canvas}`, text `{colors.ink-subtle}`, type `{typography.caption}`, padding 64px 32px. + +## Do's and Don'ts + +### Do + +- Reserve `{colors.canvas}` (#010102) as the system's anchor surface — the faint blue tint is intentional. +- Use `{colors.primary}` lavender ONLY for: brand mark, primary CTA, focus ring, link emphasis. +- Use the four-step surface ladder for hierarchy. Avoid skipping levels. +- Pair display weight 600 with body weight 400 — Linear resists 700+ display weights. +- Apply negative letter-spacing aggressively on display. +- Use product UI screenshots as the protagonist of every section. +- Compose CTAs as `{rounded.md}` 8px corners. + +### Don't + +- Don't ship a light-mode marketing page. +- Don't use lavender as a section background or card fill. +- Don't introduce a second chromatic accent (orange, pink, green for marketing). +- Don't add atmospheric gradients or spotlight cards. +- Don't pill-round CTAs. +- Don't use `#000000` true black as the canvas. +- Don't combine multiple bright accents in product screenshot mockups. + +## Responsive Behavior + +### Breakpoints + +| Name | Width | Key Changes | +|---|---|---| +| Desktop-XL | 1440px | Default desktop layout | +| Desktop | 1280px | Card grid 3-up maintained | +| Tablet | 1024px | Card grid 3-up → 2-up | +| Mobile-Lg | 768px | Pricing comparison becomes accordion; nav hamburger | +| Mobile | 480px | Single-column; display-xl scales 80px → ~36px | + +### Touch Targets + +- CTAs hold ≥40px tap height across viewports. +- Pricing tab pills hold ≥36px tap height; touch viewports grow to ≥44px. +- Form inputs hold ≥44px tap target on touch. + +### Collapsing Strategy + +- **Top nav**: links collapse to hamburger below 768px. +- **Card grids**: 3-up → 2-up at 1024px → 1-up below 768px. +- **Pricing comparison**: per-tier accordion below 768px. +- **Display type**: `{typography.display-xl}` 80px scales toward `{typography.display-md}` 40px on mobile. + +### Image Behavior + +- Product UI screenshots maintain aspect ratio and never crop. +- Customer logos in the marquee may collapse from 6-up to 3-up below 768px. + +## Iteration Guide + +1. Focus on ONE component at a time and reference it by its `components:` token name. +2. When introducing a section, decide first which surface lift it lives on. +3. Default body to `{typography.body}` at weight 400. +4. Run `npx @google/design.md lint DESIGN.md` after edits. +5. Add new variants as separate component entries. +6. Treat lavender as scarce: brand mark, primary CTA, focus, link emphasis. +7. Lead every section with a product UI screenshot. + +## Known Gaps + +- The four-step surface ladder values are extracted directly from Linear's `--color-bg-level-3`, `--color-line-tint`, etc. CSS variables; they are Linear's canonical surface spec. +- Form-field error and validation styling is not visible on the inspected pages. +- Light mode is not documented because the marketing site does not ship a light theme. +- Linear's actual product UI uses a richer color-tag palette (red, orange, yellow, green, blue, purple) for issue priorities and project labels — those colors live in the in-product surfaces shown in mockups. +- The custom display, text, and mono families are proprietary; an open-source substitute is acceptable. diff --git a/marketing/apify-research-report.md b/marketing/apify-research-report.md index c6ce744..b0edc2a 100644 --- a/marketing/apify-research-report.md +++ b/marketing/apify-research-report.md @@ -1,25 +1,25 @@ -# QRMaster Content Research (Powered by Apify) - -## 💆 Spas & Wellness Centers -- **Core Use Cases:** - - **Seamless Booking:** QR codes on posters or reception desks for instant appointment scheduling. - - **Digital Guest Intake:** Contactless check-in via QR-linked intake forms to enhance safety and privacy. - - **Menu of Services:** Dynamic digital menus allowing for easy service selection without physical pamphlets. - - **Reviews & Feedback:** "Scan to Rate" prompts on mirrors or checkout to boost TripAdvisor and Google ratings. - -## 💄 Beauty Salons -- **Core Use Cases:** - - **Portfolio Showcasing:** QR codes at styling stations leading to "before and after" galleries on social media. - - **Loyalty Program:** Instant sign-up for digital reward systems upon scan. - - **Social Sharing:** "Scan to Tag Us" with integrated Instagram/TikTok handles to drive organic reach. - - **Product Upsell:** QR codes on retail display shelves linking to product tutorials and educational content. - -## 💈 Barbershops -- **Core Use Cases:** - - **Smart Waitlists:** Scan to join the queue from outside the shop, reducing crowded waiting areas. - - **Tip-to-Tap Integration:** Simplified tipping through QR leading directly to payment apps. - - **Aftercare Sales:** Selling hair waxes or beard oils through QR codes on receipts for easy re-ordering. - - **Community Building:** Linking to local events or barbershop blogs to foster neighborhood presence. - ---- -*Next Steps: Deep-diving into the remaining 40 industries to generate specific marketing content.* +# QRMaster Content Research (Powered by Apify) + +## 💆 Spas & Wellness Centers +- **Core Use Cases:** + - **Seamless Booking:** QR codes on posters or reception desks for instant appointment scheduling. + - **Digital Guest Intake:** Contactless check-in via QR-linked intake forms to enhance safety and privacy. + - **Menu of Services:** Dynamic digital menus allowing for easy service selection without physical pamphlets. + - **Reviews & Feedback:** "Scan to Rate" prompts on mirrors or checkout to boost TripAdvisor and Google ratings. + +## 💄 Beauty Salons +- **Core Use Cases:** + - **Portfolio Showcasing:** QR codes at styling stations leading to "before and after" galleries on social media. + - **Loyalty Program:** Instant sign-up for digital reward systems upon scan. + - **Social Sharing:** "Scan to Tag Us" with integrated Instagram/TikTok handles to drive organic reach. + - **Product Upsell:** QR codes on retail display shelves linking to product tutorials and educational content. + +## 💈 Barbershops +- **Core Use Cases:** + - **Smart Waitlists:** Scan to join the queue from outside the shop, reducing crowded waiting areas. + - **Tip-to-Tap Integration:** Simplified tipping through QR leading directly to payment apps. + - **Aftercare Sales:** Selling hair waxes or beard oils through QR codes on receipts for easy re-ordering. + - **Community Building:** Linking to local events or barbershop blogs to foster neighborhood presence. + +--- +*Next Steps: Deep-diving into the remaining 40 industries to generate specific marketing content.* diff --git a/marketing/industry-image-prompts.txt b/marketing/industry-image-prompts.txt index 3842b4a..20b2ea4 100644 --- a/marketing/industry-image-prompts.txt +++ b/marketing/industry-image-prompts.txt @@ -1,101 +1,101 @@ -FILENAME: spas.png -PROMPT: Clean, modern hero image for a QR code for spas and wellness centers landing page. Luxurious spa reception desk with white orchids, candles, rolled white towels, soft warm lighting, calming neutral palette, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: beauty-salons.png -PROMPT: Clean, modern hero image for a QR code for beauty salons landing page. Stylish modern beauty salon interior with large illuminated mirror station, elegant product display, soft warm lighting, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: barbershops.png -PROMPT: Clean, modern hero image for a QR code for barbershops landing page. Classic modern barbershop with leather barber chair, chrome tools on shelf, clean black and white tiled floor, warm lighting. Professional, no text. Premium aesthetic. - -FILENAME: nail-salons.png -PROMPT: Clean, modern hero image for a QR code for nail salons landing page. Elegant nail salon station with colorful nail polish bottles neatly arranged, manicure tools, soft pastel lighting, minimal clean composition. Professional, no text. Premium aesthetic. - -FILENAME: tattoo-studios.png -PROMPT: Clean, modern hero image for a QR code for tattoo studios landing page. Stylish tattoo studio interior with clean black bench, framed flash art on white walls, professional lighting, minimal edgy aesthetic. Professional, no text. Premium aesthetic. - -FILENAME: pharmacies.png -PROMPT: Clean, modern hero image for a QR code for pharmacies landing page. Clean modern pharmacy interior with white shelving, organized product displays, soft clinical lighting, minimal professional composition. Professional, no text. Premium aesthetic. - -FILENAME: clothing-stores.png -PROMPT: Clean, modern hero image for a QR code for clothing stores landing page. Elegant boutique clothing store with curated rack of garments, clean minimal interior, warm spotlighting, fitting room in background. Professional, no text. Premium aesthetic. - -FILENAME: car-dealerships.png -PROMPT: Clean, modern hero image for a QR code for car dealerships landing page. Sleek modern car showroom with a luxury vehicle on a polished floor, dramatic overhead lighting, minimal glass and chrome architecture. Professional, no text. Premium aesthetic. - -FILENAME: florists.png -PROMPT: Clean, modern hero image for a QR code for florists and flower shops landing page. Beautiful artisan florist shop with abundant colorful floral arrangements, rustic wooden counter, soft natural light. Professional, no text. Premium aesthetic. - -FILENAME: pet-stores.png -PROMPT: Clean, modern hero image for a QR code for pet stores and groomers landing page. Bright modern pet store interior with organized shelving, cute dog being groomed in foreground, warm friendly lighting. Professional, no text. Premium aesthetic. - -FILENAME: electronics-stores.png -PROMPT: Clean, modern hero image for a QR code for electronics stores landing page. Sleek modern electronics retail interior with backlit product displays, tablets and devices on clean white shelving, cool blue accent lighting. Professional, no text. Premium aesthetic. - -FILENAME: jewelry-stores.png -PROMPT: Clean, modern hero image for a QR code for jewelry stores landing page. Luxurious jewelry store interior with glass display counter, diamond rings and necklaces elegantly arranged, warm spotlight lighting, dark rich background. Professional, no text. Premium aesthetic. - -FILENAME: hardware-stores.png -PROMPT: Clean, modern hero image for a QR code for hardware and DIY stores landing page. Bright hardware store aisle with well-organized tools on shelving, clean modern signage, warm industrial lighting. Professional, no text. Premium aesthetic. - -FILENAME: bookstores.png -PROMPT: Clean, modern hero image for a QR code for bookstores landing page. Cozy independent bookstore interior with floor-to-ceiling wooden shelves of books, warm reading lamp light, inviting atmosphere. Professional, no text. Premium aesthetic. - -FILENAME: universities.png -PROMPT: Clean, modern hero image for a QR code for universities and colleges landing page. Impressive university campus building facade with students walking, classical architecture, blue sky, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: schools.png -PROMPT: Clean, modern hero image for a QR code for schools landing page. Bright modern school corridor with lockers, natural light from windows, students walking, clean minimal educational environment. Professional, no text. Premium aesthetic. - -FILENAME: museums.png -PROMPT: Clean, modern hero image for a QR code for museums and exhibitions landing page. Grand museum hall with high ceilings, dramatic artifact display, dramatic lighting on exhibits, minimal modern architecture. Professional, no text. Premium aesthetic. - -FILENAME: libraries.png -PROMPT: Clean, modern hero image for a QR code for public libraries landing page. Stunning modern library interior with towering bookshelves, warm reading area, soft natural light from skylights, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: theaters.png -PROMPT: Clean, modern hero image for a QR code for theaters and performing arts landing page. Elegant theater auditorium interior with red velvet seats, stage lit with warm spotlight, ornate architecture, dramatic ambiance. Professional, no text. Premium aesthetic. - -FILENAME: cinemas.png -PROMPT: Clean, modern hero image for a QR code for cinemas and movie theaters landing page. Modern cinema foyer with glowing box office, dramatic neon lighting accents, minimal sleek design, movie poster frames blurred in background. Professional, no text. Premium aesthetic. - -FILENAME: churches.png -PROMPT: Clean, modern hero image for a QR code for churches and places of worship landing page. Beautiful church interior with stained glass windows casting colored light, wooden pews, peaceful minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: art-galleries.png -PROMPT: Clean, modern hero image for a QR code for art galleries landing page. Clean white-walled contemporary art gallery with large paintings on walls, polished concrete floor, dramatic track lighting on artwork. Professional, no text. Premium aesthetic. - -FILENAME: stadiums.png -PROMPT: Clean, modern hero image for a QR code for stadiums and sports venues landing page. Aerial view of a large modern stadium at golden hour, dramatic scale, vibrant field, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: wedding-planners.png -PROMPT: Clean, modern hero image for a QR code for wedding planners landing page. Elegant wedding reception venue setup with floral centerpieces, candlelight, white tablecloths, soft bokeh in background, romantic minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: photographers.png -PROMPT: Clean, modern hero image for a QR code for photography studios landing page. Professional photography studio with camera on tripod, softbox lighting setup, white seamless backdrop, minimal clean setup. Professional, no text. Premium aesthetic. - -FILENAME: trade-shows.png -PROMPT: Clean, modern hero image for a QR code for trade shows and exhibitions landing page. Large exhibition hall with branded stands, people networking, dramatic overhead lighting, minimal busy-but-clean composition. Professional, no text. Premium aesthetic. - -FILENAME: law-firms.png -PROMPT: Clean, modern hero image for a QR code for law firms landing page. Prestigious law firm office with dark wood shelving, legal books, leather chairs, clean executive desk, soft warm lighting. Professional, no text. Premium aesthetic. - -FILENAME: accountants.png -PROMPT: Clean, modern hero image for a QR code for accounting firms landing page. Clean modern accountancy office with sleek desk, laptop, neat files, large window with city view, minimal professional composition. Professional, no text. Premium aesthetic. - -FILENAME: insurance-agencies.png -PROMPT: Clean, modern hero image for a QR code for insurance agencies landing page. Professional insurance agency office with friendly advisor desk, clean modern interior, trust-inspiring warm neutral tones, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: travel-agencies.png -PROMPT: Clean, modern hero image for a QR code for travel agencies landing page. Vibrant travel agency window display with destination cards, tropical beach and mountain imagery, warm inviting lighting, minimal composition. Professional, no text. Premium aesthetic. - -FILENAME: coworking-spaces.png -PROMPT: Clean, modern hero image for a QR code for coworking spaces landing page. Bright modern coworking office with open desk plan, natural light, plants, people working on laptops, minimal Scandinavian aesthetic. Professional, no text. Premium aesthetic. - -FILENAME: property-management.png -PROMPT: Clean, modern hero image for a QR code for property management landing page. Modern apartment building lobby with clean reception desk, architectural lighting, minimal contemporary interior design. Professional, no text. Premium aesthetic. - -FILENAME: airports.png -PROMPT: Clean, modern hero image for a QR code for airports and travel hubs landing page. Dramatic modern airport terminal interior with high glass ceilings, people with luggage walking, departure boards, minimal futuristic composition. Professional, no text. Premium aesthetic. - -FILENAME: dentists.png -PROMPT: Clean, modern hero image for a QR code for dental practices landing page. Clean modern dental practice waiting room with white interior, comfortable seating, reception desk, plants, calming warm lighting. Professional, no text. Premium aesthetic. +FILENAME: spas.png +PROMPT: Clean, modern hero image for a QR code for spas and wellness centers landing page. Luxurious spa reception desk with white orchids, candles, rolled white towels, soft warm lighting, calming neutral palette, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: beauty-salons.png +PROMPT: Clean, modern hero image for a QR code for beauty salons landing page. Stylish modern beauty salon interior with large illuminated mirror station, elegant product display, soft warm lighting, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: barbershops.png +PROMPT: Clean, modern hero image for a QR code for barbershops landing page. Classic modern barbershop with leather barber chair, chrome tools on shelf, clean black and white tiled floor, warm lighting. Professional, no text. Premium aesthetic. + +FILENAME: nail-salons.png +PROMPT: Clean, modern hero image for a QR code for nail salons landing page. Elegant nail salon station with colorful nail polish bottles neatly arranged, manicure tools, soft pastel lighting, minimal clean composition. Professional, no text. Premium aesthetic. + +FILENAME: tattoo-studios.png +PROMPT: Clean, modern hero image for a QR code for tattoo studios landing page. Stylish tattoo studio interior with clean black bench, framed flash art on white walls, professional lighting, minimal edgy aesthetic. Professional, no text. Premium aesthetic. + +FILENAME: pharmacies.png +PROMPT: Clean, modern hero image for a QR code for pharmacies landing page. Clean modern pharmacy interior with white shelving, organized product displays, soft clinical lighting, minimal professional composition. Professional, no text. Premium aesthetic. + +FILENAME: clothing-stores.png +PROMPT: Clean, modern hero image for a QR code for clothing stores landing page. Elegant boutique clothing store with curated rack of garments, clean minimal interior, warm spotlighting, fitting room in background. Professional, no text. Premium aesthetic. + +FILENAME: car-dealerships.png +PROMPT: Clean, modern hero image for a QR code for car dealerships landing page. Sleek modern car showroom with a luxury vehicle on a polished floor, dramatic overhead lighting, minimal glass and chrome architecture. Professional, no text. Premium aesthetic. + +FILENAME: florists.png +PROMPT: Clean, modern hero image for a QR code for florists and flower shops landing page. Beautiful artisan florist shop with abundant colorful floral arrangements, rustic wooden counter, soft natural light. Professional, no text. Premium aesthetic. + +FILENAME: pet-stores.png +PROMPT: Clean, modern hero image for a QR code for pet stores and groomers landing page. Bright modern pet store interior with organized shelving, cute dog being groomed in foreground, warm friendly lighting. Professional, no text. Premium aesthetic. + +FILENAME: electronics-stores.png +PROMPT: Clean, modern hero image for a QR code for electronics stores landing page. Sleek modern electronics retail interior with backlit product displays, tablets and devices on clean white shelving, cool blue accent lighting. Professional, no text. Premium aesthetic. + +FILENAME: jewelry-stores.png +PROMPT: Clean, modern hero image for a QR code for jewelry stores landing page. Luxurious jewelry store interior with glass display counter, diamond rings and necklaces elegantly arranged, warm spotlight lighting, dark rich background. Professional, no text. Premium aesthetic. + +FILENAME: hardware-stores.png +PROMPT: Clean, modern hero image for a QR code for hardware and DIY stores landing page. Bright hardware store aisle with well-organized tools on shelving, clean modern signage, warm industrial lighting. Professional, no text. Premium aesthetic. + +FILENAME: bookstores.png +PROMPT: Clean, modern hero image for a QR code for bookstores landing page. Cozy independent bookstore interior with floor-to-ceiling wooden shelves of books, warm reading lamp light, inviting atmosphere. Professional, no text. Premium aesthetic. + +FILENAME: universities.png +PROMPT: Clean, modern hero image for a QR code for universities and colleges landing page. Impressive university campus building facade with students walking, classical architecture, blue sky, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: schools.png +PROMPT: Clean, modern hero image for a QR code for schools landing page. Bright modern school corridor with lockers, natural light from windows, students walking, clean minimal educational environment. Professional, no text. Premium aesthetic. + +FILENAME: museums.png +PROMPT: Clean, modern hero image for a QR code for museums and exhibitions landing page. Grand museum hall with high ceilings, dramatic artifact display, dramatic lighting on exhibits, minimal modern architecture. Professional, no text. Premium aesthetic. + +FILENAME: libraries.png +PROMPT: Clean, modern hero image for a QR code for public libraries landing page. Stunning modern library interior with towering bookshelves, warm reading area, soft natural light from skylights, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: theaters.png +PROMPT: Clean, modern hero image for a QR code for theaters and performing arts landing page. Elegant theater auditorium interior with red velvet seats, stage lit with warm spotlight, ornate architecture, dramatic ambiance. Professional, no text. Premium aesthetic. + +FILENAME: cinemas.png +PROMPT: Clean, modern hero image for a QR code for cinemas and movie theaters landing page. Modern cinema foyer with glowing box office, dramatic neon lighting accents, minimal sleek design, movie poster frames blurred in background. Professional, no text. Premium aesthetic. + +FILENAME: churches.png +PROMPT: Clean, modern hero image for a QR code for churches and places of worship landing page. Beautiful church interior with stained glass windows casting colored light, wooden pews, peaceful minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: art-galleries.png +PROMPT: Clean, modern hero image for a QR code for art galleries landing page. Clean white-walled contemporary art gallery with large paintings on walls, polished concrete floor, dramatic track lighting on artwork. Professional, no text. Premium aesthetic. + +FILENAME: stadiums.png +PROMPT: Clean, modern hero image for a QR code for stadiums and sports venues landing page. Aerial view of a large modern stadium at golden hour, dramatic scale, vibrant field, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: wedding-planners.png +PROMPT: Clean, modern hero image for a QR code for wedding planners landing page. Elegant wedding reception venue setup with floral centerpieces, candlelight, white tablecloths, soft bokeh in background, romantic minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: photographers.png +PROMPT: Clean, modern hero image for a QR code for photography studios landing page. Professional photography studio with camera on tripod, softbox lighting setup, white seamless backdrop, minimal clean setup. Professional, no text. Premium aesthetic. + +FILENAME: trade-shows.png +PROMPT: Clean, modern hero image for a QR code for trade shows and exhibitions landing page. Large exhibition hall with branded stands, people networking, dramatic overhead lighting, minimal busy-but-clean composition. Professional, no text. Premium aesthetic. + +FILENAME: law-firms.png +PROMPT: Clean, modern hero image for a QR code for law firms landing page. Prestigious law firm office with dark wood shelving, legal books, leather chairs, clean executive desk, soft warm lighting. Professional, no text. Premium aesthetic. + +FILENAME: accountants.png +PROMPT: Clean, modern hero image for a QR code for accounting firms landing page. Clean modern accountancy office with sleek desk, laptop, neat files, large window with city view, minimal professional composition. Professional, no text. Premium aesthetic. + +FILENAME: insurance-agencies.png +PROMPT: Clean, modern hero image for a QR code for insurance agencies landing page. Professional insurance agency office with friendly advisor desk, clean modern interior, trust-inspiring warm neutral tones, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: travel-agencies.png +PROMPT: Clean, modern hero image for a QR code for travel agencies landing page. Vibrant travel agency window display with destination cards, tropical beach and mountain imagery, warm inviting lighting, minimal composition. Professional, no text. Premium aesthetic. + +FILENAME: coworking-spaces.png +PROMPT: Clean, modern hero image for a QR code for coworking spaces landing page. Bright modern coworking office with open desk plan, natural light, plants, people working on laptops, minimal Scandinavian aesthetic. Professional, no text. Premium aesthetic. + +FILENAME: property-management.png +PROMPT: Clean, modern hero image for a QR code for property management landing page. Modern apartment building lobby with clean reception desk, architectural lighting, minimal contemporary interior design. Professional, no text. Premium aesthetic. + +FILENAME: airports.png +PROMPT: Clean, modern hero image for a QR code for airports and travel hubs landing page. Dramatic modern airport terminal interior with high glass ceilings, people with luggage walking, departure boards, minimal futuristic composition. Professional, no text. Premium aesthetic. + +FILENAME: dentists.png +PROMPT: Clean, modern hero image for a QR code for dental practices landing page. Clean modern dental practice waiting room with white interior, comfortable seating, reception desk, plants, calming warm lighting. Professional, no text. Premium aesthetic. diff --git a/marketing/programmatic-seo-1000-page-plan.md b/marketing/programmatic-seo-1000-page-plan.md index 4d219af..09b08fb 100644 --- a/marketing/programmatic-seo-1000-page-plan.md +++ b/marketing/programmatic-seo-1000-page-plan.md @@ -1,457 +1,457 @@ -# Programmatic SEO Plan: 1000 Pages for QR Master - -Date: 2026-03-31 -Owner: QR Master -Scope: Organic growth plan for roughly 1000 indexable SEO pages - -## Executive Decision - -Do not build `1000 blog posts`. - -For QR Master, the better model is: - -- `80-120` editorial blog posts -- `150-250` commercial tool pages -- `200-300` use-case and workflow pages -- `100-150` industry pages -- `150-250` comparison and alternative pages -- `150-250` support, glossary, template, and problem-solution pages - -That gets you to roughly `1000` pages without creating a thin-content footprint. - -## Why 1000 blog posts is the wrong move - -QR Master already has a stronger pSEO base than a typical blog-first site: - -- `22` blog posts in [src/lib/blog-data.ts](C:\Users\a931627\Documents\QRMASTER\src\lib\blog-data.ts) -- `20` tool pages in [src/app/sitemap.ts](C:\Users\a931627\Documents\QRMASTER\src\app\sitemap.ts) -- `9` use-case pages in [src/lib/growth-pages.ts](C:\Users\a931627\Documents\QRMASTER\src\lib\growth-pages.ts) -- `8` industry pages in [src/lib/industry-pages.ts](C:\Users\a931627\Documents\QRMASTER\src\lib\industry-pages.ts) -- static generation already exists for blog, use-cases, learn hubs, and industry pages - -The current architecture is already optimized for scalable landing pages, not for managing 1000 long-form editorial articles in one monolithic blog dataset. - -There is also a search-quality risk. Google explicitly warns against: - -- scaled content abuse -- doorway-style pages -- large volumes of low-value, near-duplicate content - -Relevant guidance: - -- Google spam policies: https://developers.google.com/search/docs/advanced/guidelines/auto-gen-content -- Google people-first content guidance: https://developers.google.com/search/docs/fundamentals/creating-helpful-content -- Google generative AI content guidance: https://developers.google.com/search/docs/fundamentals/using-gen-ai-content - -## What live SERPs suggest right now - -Spot checks on 2026-03-31 indicate that high-intent QR queries are mostly served by dedicated landing pages, generators, and comparison pages, not by generic blog posts. - -Examples: - -- restaurant menu QR: GustoQR, Menulizer, QRMake, Jampos, WebsitesQR -- WiFi QR: WiQRCode, Q-WiFi -- dynamic QR: GeckoQR, QRFlow, QRelix -- bulk QR: QRMass, TofuQR, BulkQRBarcode - -This means the highest-value SEO surface for QR Master is: - -- generator pages -- workflow pages -- industry pages -- comparison pages -- practical support content tied to specific jobs - -Not 1000 generic “what is” articles. - -## Recommended 1000-page mix - -### 1. Tool intent pages: 180 pages - -Goal: capture users searching for a specific QR type, format, or action. - -Current base: - -- `/tools/url-qr-code` -- `/tools/wifi-qr-code` -- `/tools/vcard-qr-code` -- `/tools/instagram-qr-code` -- etc. - -Expand with sub-intents around each tool: - -- format intent: `svg`, `png`, `pdf`, `eps` -- output intent: `for print`, `for stickers`, `for packaging` -- job intent: `for flyers`, `for tables`, `for business cards` -- modifier intent: `free`, `custom`, `dynamic`, `trackable` - -Example cluster: - -- `/tools/wifi-qr-code` -- `/tools/wifi-qr-code/for-restaurants` -- `/tools/wifi-qr-code/for-hotels` -- `/tools/wifi-qr-code/for-airbnb` -- `/tools/wifi-qr-code/print-size` -- `/tools/wifi-qr-code/svg` -- `/tools/wifi-qr-code/how-to` -- `/tools/wifi-qr-code/troubleshooting` - -Requirement: - -- every page must change the workflow, examples, FAQ, CTA, and placement guidance -- not just the H1 - -### 2. Use-case and workflow pages: 260 pages - -Goal: map product capabilities to specific offline-to-online jobs. - -Current base: - -- `/use-cases/restaurant-menu-qr-codes` -- `/use-cases/business-card-qr-codes` -- `/use-cases/event-qr-codes` -- etc. - -Expand by combining: - -- surface: table tent, flyer, poster, window, packaging, receipt, label, badge -- workflow: menu, reviews, payment, lead capture, coupon, check-in, support, manual, onboarding -- intent: editable, trackable, branded, bulk, privacy-safe - -Example patterns: - -- `/use-cases/qr-codes-for-product-packaging` -- `/use-cases/qr-codes-for-brochures` -- `/use-cases/qr-codes-for-trade-show-booths` -- `/use-cases/qr-codes-for-real-estate-flyers` -- `/use-cases/qr-codes-for-table-ordering` -- `/use-cases/qr-codes-for-manuals-and-inserts` -- `/use-cases/qr-codes-for-review-collection` - -### 3. Industry pages: 140 pages - -Goal: capture commercial intent by vertical. - -Current base: - -- restaurants -- cafes -- hotels -- real estate -- gyms -- doctors and dentists -- retail -- events - -Best expansion model: - -- industry hub -- industry plus workflow -- industry plus operational pain point - -Example patterns: - -- `/qr-code-for/restaurants` -- `/qr-code-for/restaurants/menu-updates` -- `/qr-code-for/restaurants/table-ordering` -- `/qr-code-for/restaurants/review-collection` -- `/qr-code-for/hotels/guest-wifi` -- `/qr-code-for/retail/packaging` -- `/qr-code-for/events/check-in` - -Important: - -- keep the base industry pages -- add second-level workflow pages only where search intent and product fit are strong - -### 4. Comparison and alternative pages: 180 pages - -Goal: capture bottom-funnel evaluation traffic. - -Patterns: - -- `[competitor] alternative` -- `[competitor] vs QR Master` -- `dynamic vs static` -- `free vs paid` -- `[feature A] vs [feature B]` - -Examples: - -- `/compare/qr-code-generator-com-alternative` -- `/compare/beaconstac-alternative` -- `/compare/flowcode-alternative` -- `/compare/qr-code-monkey-vs-qr-master` -- `/compare/dynamic-vs-static-qr-codes` -- `/compare/free-vs-paid-qr-code-generator` - -These pages should include: - -- actual comparison tables -- pricing logic -- use-case fit -- privacy and GDPR angle -- migration guidance - -### 5. Support, glossary, and problem-solution pages: 140 pages - -Goal: capture informational searches with strong product adjacency. - -Patterns: - -- how to -- troubleshooting -- best practices -- definitions -- safety and compliance - -Examples: - -- `/guide/qr-code-print-size` -- `/guide/why-my-qr-code-is-not-scanning` -- `/guide/how-to-track-qr-code-scans` -- `/guide/qr-code-gdpr` -- `/guide/qr-code-phishing` -- `/guide/how-to-create-a-vcard-qr-code` -- `/guide/how-to-use-utm-with-qr-codes` - -These are not filler pages. They should support tool, use-case, and comparison clusters. - -### 6. Editorial blog: 100 pages - -Goal: publish expert-led, citation-worthy content. - -Use blog posts for: - -- original research -- industry benchmarks -- deep tutorials -- opinionated comparisons -- campaign strategy examples -- security explainers - -Do not use the blog for every long-tail keyword variation. - -## URL architecture - -Stay with subfolders. Do not use subdomains. - -Recommended structure: - -- `/tools/[tool]` -- `/tools/[tool]/[modifier-or-job]` -- `/use-cases/[slug]` -- `/qr-code-for/[industry]` -- `/qr-code-for/[industry]/[workflow]` -- `/compare/[slug]` -- `/guide/[slug]` -- `/blog/[slug]` -- `/learn/[pillar]` - -This keeps topical authority consolidated under one domain and matches the existing app structure. - -## What makes each page unique - -Every indexable page should contain at least 3 of these: - -- unique quick answer -- workflow-specific steps -- vertical-specific FAQ -- placement guidance -- examples tied to the page context -- comparison logic -- recommended tool stack -- CTA matched to that exact query -- internal links to adjacent nodes -- proprietary insights from QR Master product usage once available - -If a page only swaps: - -- city -- industry -- social platform name -- file format - -then it is not ready to index. - -## The best programmatic page families for QR Master - -### Highest priority - -1. Tool x job-to-be-done -2. Industry x workflow -3. Use-case x printed surface -4. Comparison and alternative pages -5. Tracking, analytics, and GDPR support pages - -### Medium priority - -1. Glossary pages -2. Generator template pages -3. Print specification pages -4. Security and trust pages - -### Low priority - -1. city pages -2. country pages -3. “near me” pages -4. large-scale locale combinations - -Those are the most likely to drift into doorway territory for this product. - -## Data model recommendation - -Do not keep scaling everything inside one giant `blog-data.ts`. - -Instead, split content into typed datasets: - -- `src/lib/tool-pages.ts` -- `src/lib/use-case-pages.ts` -- `src/lib/industry-pages.ts` -- `src/lib/comparison-pages.ts` -- `src/lib/guide-pages.ts` -- `src/lib/blog-data.ts` - -Each record should support: - -- slug -- query intent -- primary CTA -- secondary CTA -- unique answer block -- unique workflow steps -- unique FAQ -- related links -- schema fields -- publish and update metadata - -## Internal linking model - -Every page should sit inside a clear cluster. - -Example cluster: - -- tool: `/tools/wifi-qr-code` -- industry: `/qr-code-for/hotels` -- workflow: `/qr-code-for/hotels/guest-wifi` -- guide: `/guide/how-to-create-a-wifi-qr-code` -- comparison: `/compare/free-vs-paid-qr-code-generator` -- commercial: `/dynamic-qr-code-generator` - -Rules: - -- hub links down to spoke pages -- spoke links back to hub -- spoke links sideways to 2-4 adjacent pages -- editorial blog links into commercial and programmatic pages -- every page should have breadcrumb schema - -## Indexation policy - -Do not index everything on day one. - -Recommended rollout: - -- launch first `100-150` strongest pages -- measure impressions, clicks, engagement, and conversions -- only expand page families that show traction -- noindex weak template variants until they have enough differentiated content - -This matters because a bad 1000-page rollout can lower perceived site quality faster than it grows traffic. - -## 90-day rollout - -### Phase 1: Foundation - -- keep current blog, tool, use-case, and industry system -- create new page-family schemas for `comparison` and `guide` -- move content datasets out of oversized single files where needed -- update sitemap generation to support multiple page families - -### Phase 2: First 150 pages - -- publish 40 tool-adjacent pages -- publish 40 industry-workflow pages -- publish 30 use-case surface pages -- publish 20 comparison pages -- publish 20 support and guide pages - -### Phase 3: Measure - -Track: - -- indexation rate -- impressions per page family -- click-through rate -- assisted signups -- free-to-paid influence -- pages with zero impressions after 60 days - -### Phase 4: Scale winners - -Double down only on page families that show: - -- meaningful impressions -- rankings entering top 20 -- conversion assistance -- internal-link engagement - -## Suggested page count by family - -| Family | Target | -|---|---:| -| Tool base pages | 20 | -| Tool modifiers and job pages | 160 | -| Use-case pages | 120 | -| Use-case surface and workflow expansions | 140 | -| Industry hubs | 20 | -| Industry workflow pages | 120 | -| Comparison pages | 180 | -| Guides and troubleshooting | 140 | -| Editorial blog | 100 | -| Hubs and utility pages | 20 | -| Total | 1000 | - -## What not to do - -Avoid: - -- 1000 AI-written blog posts targeting slight keyword variations -- city pages without local operations or local proof -- dozens of pages that all funnel to the same generic generator with no new value -- near-duplicate intros with only one variable changed -- indexable pages with no cluster context or internal links - -## Best next step for this codebase - -If the goal is execution, the best sequence is: - -1. add `comparison` and `guide` page families -2. restructure page content into typed datasets -3. ship the first `50-100` high-fit pages -4. measure what gets indexed and clicked -5. then scale toward `300`, `500`, and finally `1000` - -## Sources - -Live search spot checks on 2026-03-31: - -- https://www.gustoqr.com/ -- https://www.menulizer.com/ -- https://qrmake.io/menu-qr-code -- https://www.jampos.app/qr-generator -- https://www.websitesqr.com/menu-qr-code -- https://wiqrcode.com/ -- https://www.q-wifi.com/ -- https://www.geckoqr.com/ -- https://qrflow.co/ -- https://qrmass.com/ -- https://tofu-qr.com/qr-generator/bulk/ -- https://bulkqrbarcode.com/ - -Google guidance: - -- https://developers.google.com/search/docs/advanced/guidelines/auto-gen-content -- https://developers.google.com/search/docs/fundamentals/creating-helpful-content -- https://developers.google.com/search/docs/fundamentals/using-gen-ai-content +# Programmatic SEO Plan: 1000 Pages for QR Master + +Date: 2026-03-31 +Owner: QR Master +Scope: Organic growth plan for roughly 1000 indexable SEO pages + +## Executive Decision + +Do not build `1000 blog posts`. + +For QR Master, the better model is: + +- `80-120` editorial blog posts +- `150-250` commercial tool pages +- `200-300` use-case and workflow pages +- `100-150` industry pages +- `150-250` comparison and alternative pages +- `150-250` support, glossary, template, and problem-solution pages + +That gets you to roughly `1000` pages without creating a thin-content footprint. + +## Why 1000 blog posts is the wrong move + +QR Master already has a stronger pSEO base than a typical blog-first site: + +- `22` blog posts in [src/lib/blog-data.ts](C:\Users\a931627\Documents\QRMASTER\src\lib\blog-data.ts) +- `20` tool pages in [src/app/sitemap.ts](C:\Users\a931627\Documents\QRMASTER\src\app\sitemap.ts) +- `9` use-case pages in [src/lib/growth-pages.ts](C:\Users\a931627\Documents\QRMASTER\src\lib\growth-pages.ts) +- `8` industry pages in [src/lib/industry-pages.ts](C:\Users\a931627\Documents\QRMASTER\src\lib\industry-pages.ts) +- static generation already exists for blog, use-cases, learn hubs, and industry pages + +The current architecture is already optimized for scalable landing pages, not for managing 1000 long-form editorial articles in one monolithic blog dataset. + +There is also a search-quality risk. Google explicitly warns against: + +- scaled content abuse +- doorway-style pages +- large volumes of low-value, near-duplicate content + +Relevant guidance: + +- Google spam policies: https://developers.google.com/search/docs/advanced/guidelines/auto-gen-content +- Google people-first content guidance: https://developers.google.com/search/docs/fundamentals/creating-helpful-content +- Google generative AI content guidance: https://developers.google.com/search/docs/fundamentals/using-gen-ai-content + +## What live SERPs suggest right now + +Spot checks on 2026-03-31 indicate that high-intent QR queries are mostly served by dedicated landing pages, generators, and comparison pages, not by generic blog posts. + +Examples: + +- restaurant menu QR: GustoQR, Menulizer, QRMake, Jampos, WebsitesQR +- WiFi QR: WiQRCode, Q-WiFi +- dynamic QR: GeckoQR, QRFlow, QRelix +- bulk QR: QRMass, TofuQR, BulkQRBarcode + +This means the highest-value SEO surface for QR Master is: + +- generator pages +- workflow pages +- industry pages +- comparison pages +- practical support content tied to specific jobs + +Not 1000 generic “what is” articles. + +## Recommended 1000-page mix + +### 1. Tool intent pages: 180 pages + +Goal: capture users searching for a specific QR type, format, or action. + +Current base: + +- `/tools/url-qr-code` +- `/tools/wifi-qr-code` +- `/tools/vcard-qr-code` +- `/tools/instagram-qr-code` +- etc. + +Expand with sub-intents around each tool: + +- format intent: `svg`, `png`, `pdf`, `eps` +- output intent: `for print`, `for stickers`, `for packaging` +- job intent: `for flyers`, `for tables`, `for business cards` +- modifier intent: `free`, `custom`, `dynamic`, `trackable` + +Example cluster: + +- `/tools/wifi-qr-code` +- `/tools/wifi-qr-code/for-restaurants` +- `/tools/wifi-qr-code/for-hotels` +- `/tools/wifi-qr-code/for-airbnb` +- `/tools/wifi-qr-code/print-size` +- `/tools/wifi-qr-code/svg` +- `/tools/wifi-qr-code/how-to` +- `/tools/wifi-qr-code/troubleshooting` + +Requirement: + +- every page must change the workflow, examples, FAQ, CTA, and placement guidance +- not just the H1 + +### 2. Use-case and workflow pages: 260 pages + +Goal: map product capabilities to specific offline-to-online jobs. + +Current base: + +- `/use-cases/restaurant-menu-qr-codes` +- `/use-cases/business-card-qr-codes` +- `/use-cases/event-qr-codes` +- etc. + +Expand by combining: + +- surface: table tent, flyer, poster, window, packaging, receipt, label, badge +- workflow: menu, reviews, payment, lead capture, coupon, check-in, support, manual, onboarding +- intent: editable, trackable, branded, bulk, privacy-safe + +Example patterns: + +- `/use-cases/qr-codes-for-product-packaging` +- `/use-cases/qr-codes-for-brochures` +- `/use-cases/qr-codes-for-trade-show-booths` +- `/use-cases/qr-codes-for-real-estate-flyers` +- `/use-cases/qr-codes-for-table-ordering` +- `/use-cases/qr-codes-for-manuals-and-inserts` +- `/use-cases/qr-codes-for-review-collection` + +### 3. Industry pages: 140 pages + +Goal: capture commercial intent by vertical. + +Current base: + +- restaurants +- cafes +- hotels +- real estate +- gyms +- doctors and dentists +- retail +- events + +Best expansion model: + +- industry hub +- industry plus workflow +- industry plus operational pain point + +Example patterns: + +- `/qr-code-for/restaurants` +- `/qr-code-for/restaurants/menu-updates` +- `/qr-code-for/restaurants/table-ordering` +- `/qr-code-for/restaurants/review-collection` +- `/qr-code-for/hotels/guest-wifi` +- `/qr-code-for/retail/packaging` +- `/qr-code-for/events/check-in` + +Important: + +- keep the base industry pages +- add second-level workflow pages only where search intent and product fit are strong + +### 4. Comparison and alternative pages: 180 pages + +Goal: capture bottom-funnel evaluation traffic. + +Patterns: + +- `[competitor] alternative` +- `[competitor] vs QR Master` +- `dynamic vs static` +- `free vs paid` +- `[feature A] vs [feature B]` + +Examples: + +- `/compare/qr-code-generator-com-alternative` +- `/compare/beaconstac-alternative` +- `/compare/flowcode-alternative` +- `/compare/qr-code-monkey-vs-qr-master` +- `/compare/dynamic-vs-static-qr-codes` +- `/compare/free-vs-paid-qr-code-generator` + +These pages should include: + +- actual comparison tables +- pricing logic +- use-case fit +- privacy and GDPR angle +- migration guidance + +### 5. Support, glossary, and problem-solution pages: 140 pages + +Goal: capture informational searches with strong product adjacency. + +Patterns: + +- how to +- troubleshooting +- best practices +- definitions +- safety and compliance + +Examples: + +- `/guide/qr-code-print-size` +- `/guide/why-my-qr-code-is-not-scanning` +- `/guide/how-to-track-qr-code-scans` +- `/guide/qr-code-gdpr` +- `/guide/qr-code-phishing` +- `/guide/how-to-create-a-vcard-qr-code` +- `/guide/how-to-use-utm-with-qr-codes` + +These are not filler pages. They should support tool, use-case, and comparison clusters. + +### 6. Editorial blog: 100 pages + +Goal: publish expert-led, citation-worthy content. + +Use blog posts for: + +- original research +- industry benchmarks +- deep tutorials +- opinionated comparisons +- campaign strategy examples +- security explainers + +Do not use the blog for every long-tail keyword variation. + +## URL architecture + +Stay with subfolders. Do not use subdomains. + +Recommended structure: + +- `/tools/[tool]` +- `/tools/[tool]/[modifier-or-job]` +- `/use-cases/[slug]` +- `/qr-code-for/[industry]` +- `/qr-code-for/[industry]/[workflow]` +- `/compare/[slug]` +- `/guide/[slug]` +- `/blog/[slug]` +- `/learn/[pillar]` + +This keeps topical authority consolidated under one domain and matches the existing app structure. + +## What makes each page unique + +Every indexable page should contain at least 3 of these: + +- unique quick answer +- workflow-specific steps +- vertical-specific FAQ +- placement guidance +- examples tied to the page context +- comparison logic +- recommended tool stack +- CTA matched to that exact query +- internal links to adjacent nodes +- proprietary insights from QR Master product usage once available + +If a page only swaps: + +- city +- industry +- social platform name +- file format + +then it is not ready to index. + +## The best programmatic page families for QR Master + +### Highest priority + +1. Tool x job-to-be-done +2. Industry x workflow +3. Use-case x printed surface +4. Comparison and alternative pages +5. Tracking, analytics, and GDPR support pages + +### Medium priority + +1. Glossary pages +2. Generator template pages +3. Print specification pages +4. Security and trust pages + +### Low priority + +1. city pages +2. country pages +3. “near me” pages +4. large-scale locale combinations + +Those are the most likely to drift into doorway territory for this product. + +## Data model recommendation + +Do not keep scaling everything inside one giant `blog-data.ts`. + +Instead, split content into typed datasets: + +- `src/lib/tool-pages.ts` +- `src/lib/use-case-pages.ts` +- `src/lib/industry-pages.ts` +- `src/lib/comparison-pages.ts` +- `src/lib/guide-pages.ts` +- `src/lib/blog-data.ts` + +Each record should support: + +- slug +- query intent +- primary CTA +- secondary CTA +- unique answer block +- unique workflow steps +- unique FAQ +- related links +- schema fields +- publish and update metadata + +## Internal linking model + +Every page should sit inside a clear cluster. + +Example cluster: + +- tool: `/tools/wifi-qr-code` +- industry: `/qr-code-for/hotels` +- workflow: `/qr-code-for/hotels/guest-wifi` +- guide: `/guide/how-to-create-a-wifi-qr-code` +- comparison: `/compare/free-vs-paid-qr-code-generator` +- commercial: `/dynamic-qr-code-generator` + +Rules: + +- hub links down to spoke pages +- spoke links back to hub +- spoke links sideways to 2-4 adjacent pages +- editorial blog links into commercial and programmatic pages +- every page should have breadcrumb schema + +## Indexation policy + +Do not index everything on day one. + +Recommended rollout: + +- launch first `100-150` strongest pages +- measure impressions, clicks, engagement, and conversions +- only expand page families that show traction +- noindex weak template variants until they have enough differentiated content + +This matters because a bad 1000-page rollout can lower perceived site quality faster than it grows traffic. + +## 90-day rollout + +### Phase 1: Foundation + +- keep current blog, tool, use-case, and industry system +- create new page-family schemas for `comparison` and `guide` +- move content datasets out of oversized single files where needed +- update sitemap generation to support multiple page families + +### Phase 2: First 150 pages + +- publish 40 tool-adjacent pages +- publish 40 industry-workflow pages +- publish 30 use-case surface pages +- publish 20 comparison pages +- publish 20 support and guide pages + +### Phase 3: Measure + +Track: + +- indexation rate +- impressions per page family +- click-through rate +- assisted signups +- free-to-paid influence +- pages with zero impressions after 60 days + +### Phase 4: Scale winners + +Double down only on page families that show: + +- meaningful impressions +- rankings entering top 20 +- conversion assistance +- internal-link engagement + +## Suggested page count by family + +| Family | Target | +|---|---:| +| Tool base pages | 20 | +| Tool modifiers and job pages | 160 | +| Use-case pages | 120 | +| Use-case surface and workflow expansions | 140 | +| Industry hubs | 20 | +| Industry workflow pages | 120 | +| Comparison pages | 180 | +| Guides and troubleshooting | 140 | +| Editorial blog | 100 | +| Hubs and utility pages | 20 | +| Total | 1000 | + +## What not to do + +Avoid: + +- 1000 AI-written blog posts targeting slight keyword variations +- city pages without local operations or local proof +- dozens of pages that all funnel to the same generic generator with no new value +- near-duplicate intros with only one variable changed +- indexable pages with no cluster context or internal links + +## Best next step for this codebase + +If the goal is execution, the best sequence is: + +1. add `comparison` and `guide` page families +2. restructure page content into typed datasets +3. ship the first `50-100` high-fit pages +4. measure what gets indexed and clicked +5. then scale toward `300`, `500`, and finally `1000` + +## Sources + +Live search spot checks on 2026-03-31: + +- https://www.gustoqr.com/ +- https://www.menulizer.com/ +- https://qrmake.io/menu-qr-code +- https://www.jampos.app/qr-generator +- https://www.websitesqr.com/menu-qr-code +- https://wiqrcode.com/ +- https://www.q-wifi.com/ +- https://www.geckoqr.com/ +- https://qrflow.co/ +- https://qrmass.com/ +- https://tofu-qr.com/qr-generator/bulk/ +- https://bulkqrbarcode.com/ + +Google guidance: + +- https://developers.google.com/search/docs/advanced/guidelines/auto-gen-content +- https://developers.google.com/search/docs/fundamentals/creating-helpful-content +- https://developers.google.com/search/docs/fundamentals/using-gen-ai-content diff --git a/marketing/programmatic-seo-top-50.md b/marketing/programmatic-seo-top-50.md index 8029e89..42be5e9 100644 --- a/marketing/programmatic-seo-top-50.md +++ b/marketing/programmatic-seo-top-50.md @@ -1,155 +1,155 @@ -# Programmatic SEO Top 50 Backlog - -Date: 2026-03-31 -Project: QR Master -Purpose: Prioritized first-wave backlog for the new `comparison` and `guide` families plus adjacent high-fit commercial clusters. - -## Scoring Model - -Each URL idea is scored from `0-100`. - -Weights: - -- Commercial intent: `30` -- Product fit: `25` -- Differentiation potential: `15` -- Cluster leverage: `10` -- SERP winability: `10` -- Production effort: `10` - -Interpretation: - -- `90+`: ship immediately -- `85-89`: first-wave priority -- `80-84`: second-wave after initial measurement -- `<80`: hold until stronger cluster support exists - -## Top 50 - -| Rank | URL | Family | Score | Primary CTA | -|---|---|---|---:|---| -| 1 | `/compare/dynamic-vs-static-qr-codes` | comparison | 93 | `/dynamic-qr-code-generator` | -| 2 | `/compare/free-vs-paid-qr-code-generator` | comparison | 92 | `/pricing` | -| 3 | `/guide/how-to-track-qr-code-scans` | guide-problem | 91 | `/qr-code-tracking` | -| 4 | `/guide/why-my-qr-code-is-not-scanning` | guide-problem | 91 | `/custom-qr-code-generator` | -| 5 | `/guide/qr-code-print-size` | guide-problem | 90 | `/custom-qr-code-generator` | -| 6 | `/compare/qr-code-monkey-vs-qr-master` | comparison | 90 | `/dynamic-qr-code-generator` | -| 7 | `/compare/flowcode-alternative` | comparison | 89 | `/qr-code-tracking` | -| 8 | `/compare/beaconstac-alternative` | comparison | 89 | `/dynamic-qr-code-generator` | -| 9 | `/guide/how-to-use-utm-with-qr-codes` | guide-problem | 89 | `/qr-code-tracking` | -| 10 | `/guide/dynamic-qr-code-best-practices` | guide-strategic | 88 | `/dynamic-qr-code-generator` | -| 11 | `/guide/qr-code-gdpr` | guide-strategic | 88 | `/qr-code-tracking` | -| 12 | `/compare/bulk-qr-generator-vs-single-qr-generator` | comparison | 88 | `/bulk-qr-code-generator` | -| 13 | `/qr-code-for/restaurants/menu-updates` | industry-workflow | 88 | `/dynamic-qr-code-generator` | -| 14 | `/qr-code-for/restaurants/review-collection` | industry-workflow | 87 | `/qr-code-tracking` | -| 15 | `/tools/wifi-qr-code/for-hotels` | tool-job | 87 | `/tools/wifi-qr-code` | -| 16 | `/guide/how-to-create-a-vcard-qr-code` | guide-problem | 87 | `/tools/vcard-qr-code` | -| 17 | `/qr-code-for/hotels/guest-wifi` | industry-workflow | 87 | `/tools/wifi-qr-code` | -| 18 | `/use-cases/qr-codes-for-product-packaging` | use-case | 87 | `/bulk-qr-code-generator` | -| 19 | `/qr-code-for/retail/packaging` | industry-workflow | 86 | `/bulk-qr-code-generator` | -| 20 | `/tools/url-qr-code/for-flyers` | tool-job | 86 | `/tools/url-qr-code` | -| 21 | `/guide/qr-code-security-best-practices` | guide-strategic | 86 | `/dynamic-qr-code-generator` | -| 22 | `/compare/qr-code-generator-com-alternative` | comparison | 86 | `/dynamic-qr-code-generator` | -| 23 | `/compare/bitly-qr-code-generator-alternative` | comparison | 86 | `/qr-code-tracking` | -| 24 | `/qr-code-for/events/check-in` | industry-workflow | 86 | `/tools/event-qr-code` | -| 25 | `/use-cases/qr-codes-for-review-collection` | use-case | 86 | `/qr-code-tracking` | -| 26 | `/tools/wifi-qr-code/for-restaurants` | tool-job | 85 | `/tools/wifi-qr-code` | -| 27 | `/tools/vcard-qr-code/for-business-cards` | tool-job | 85 | `/tools/vcard-qr-code` | -| 28 | `/guide/how-to-create-a-wifi-qr-code` | guide-problem | 85 | `/tools/wifi-qr-code` | -| 29 | `/guide/how-to-update-a-qr-code-after-printing` | guide-problem | 85 | `/dynamic-qr-code-generator` | -| 30 | `/compare/canva-qr-code-vs-qr-master` | comparison | 85 | `/custom-qr-code-generator` | -| 31 | `/qr-code-for/real-estate/open-house-flyers` | industry-workflow | 85 | `/qr-code-tracking` | -| 32 | `/use-cases/qr-codes-for-brochures` | use-case | 85 | `/dynamic-qr-code-generator` | -| 33 | `/tools/url-qr-code/for-packaging` | tool-job | 85 | `/tools/url-qr-code` | -| 34 | `/compare/uniqode-alternative` | comparison | 84 | `/qr-code-tracking` | -| 35 | `/compare/adobe-express-qr-code-vs-qr-master` | comparison | 84 | `/custom-qr-code-generator` | -| 36 | `/tools/whatsapp-qr-code/for-customer-support` | tool-job | 84 | `/tools/whatsapp-qr-code` | -| 37 | `/qr-code-for/cafes/loyalty-signups` | industry-workflow | 84 | `/tools/url-qr-code` | -| 38 | `/qr-code-for/events/booth-lead-capture` | industry-workflow | 84 | `/qr-code-tracking` | -| 39 | `/guide/qr-code-landing-page-best-practices` | guide-strategic | 84 | `/dynamic-qr-code-generator` | -| 40 | `/use-cases/qr-codes-for-table-ordering` | use-case | 84 | `/dynamic-qr-code-generator` | -| 41 | `/tools/pdf-qr-code/for-menus` | tool-job | 83 | `/dynamic-qr-code-generator` | -| 42 | `/guide/qr-code-analytics-for-offline-campaigns` | guide-strategic | 83 | `/qr-code-analytics` | -| 43 | `/compare/linktree-vs-qr-master-for-offline-campaigns` | comparison | 83 | `/qr-code-for-marketing-campaigns` | -| 44 | `/qr-code-for/doctors-dentists/intake-forms` | industry-workflow | 83 | `/tools/url-qr-code` | -| 45 | `/tools/paypal-qr-code/for-invoices` | tool-job | 82 | `/tools/paypal-qr-code` | -| 46 | `/guide/how-to-test-a-qr-code-before-printing` | guide-problem | 82 | `/custom-qr-code-generator` | -| 47 | `/use-cases/qr-codes-for-manuals-and-inserts` | use-case | 82 | `/bulk-qr-code-generator` | -| 48 | `/qr-code-for/retail/window-shopping` | industry-workflow | 81 | `/qr-code-for-marketing-campaigns` | -| 49 | `/tools/email-qr-code/for-event-follow-up` | tool-job | 81 | `/tools/email-qr-code` | -| 50 | `/guide/qr-code-branding-best-practices` | guide-strategic | 80 | `/custom-qr-code-generator` | - -## Shipment Mix For First 50 - -Recommended composition: - -- `15` comparison pages -- `15` guide pages -- `10` tool-job pages -- `10` industry-workflow or use-case pages - -This keeps the first wave biased toward: - -- bottom-funnel demand -- strong CTA fit -- cluster leverage into existing product pages - -## First 10 To Ship - -1. `/compare/dynamic-vs-static-qr-codes` -2. `/compare/free-vs-paid-qr-code-generator` -3. `/guide/how-to-track-qr-code-scans` -4. `/guide/why-my-qr-code-is-not-scanning` -5. `/guide/qr-code-print-size` -6. `/compare/qr-code-monkey-vs-qr-master` -7. `/compare/flowcode-alternative` -8. `/compare/beaconstac-alternative` -9. `/guide/how-to-use-utm-with-qr-codes` -10. `/guide/dynamic-qr-code-best-practices` - -## Cluster Notes - -### Cluster A: Dynamic QR buying decision - -- `/compare/dynamic-vs-static-qr-codes` -- `/compare/free-vs-paid-qr-code-generator` -- `/guide/dynamic-qr-code-best-practices` -- `/guide/how-to-update-a-qr-code-after-printing` -- `/dynamic-qr-code-generator` - -### Cluster B: Tracking and analytics - -- `/guide/how-to-track-qr-code-scans` -- `/guide/how-to-use-utm-with-qr-codes` -- `/guide/qr-code-analytics-for-offline-campaigns` -- `/qr-code-tracking` -- `/qr-code-analytics` - -### Cluster C: Print reliability - -- `/guide/why-my-qr-code-is-not-scanning` -- `/guide/qr-code-print-size` -- `/guide/how-to-test-a-qr-code-before-printing` -- `/custom-qr-code-generator` - -### Cluster D: Commercial alternatives - -- `/compare/qr-code-monkey-vs-qr-master` -- `/compare/flowcode-alternative` -- `/compare/beaconstac-alternative` -- `/compare/qr-code-generator-com-alternative` -- `/compare/uniqode-alternative` - -## Default Indexing Recommendation - -Default to `index` only when: - -- the page has a strong cluster position -- the CTA is specific and commercially coherent -- the page has distinct FAQs, workflow logic, and related links - -Default to `hold` or `noindex` when: - -- the page is still too close to an existing sibling -- the page has weak differentiation -- the cluster around it is not yet live +# Programmatic SEO Top 50 Backlog + +Date: 2026-03-31 +Project: QR Master +Purpose: Prioritized first-wave backlog for the new `comparison` and `guide` families plus adjacent high-fit commercial clusters. + +## Scoring Model + +Each URL idea is scored from `0-100`. + +Weights: + +- Commercial intent: `30` +- Product fit: `25` +- Differentiation potential: `15` +- Cluster leverage: `10` +- SERP winability: `10` +- Production effort: `10` + +Interpretation: + +- `90+`: ship immediately +- `85-89`: first-wave priority +- `80-84`: second-wave after initial measurement +- `<80`: hold until stronger cluster support exists + +## Top 50 + +| Rank | URL | Family | Score | Primary CTA | +|---|---|---|---:|---| +| 1 | `/compare/dynamic-vs-static-qr-codes` | comparison | 93 | `/dynamic-qr-code-generator` | +| 2 | `/compare/free-vs-paid-qr-code-generator` | comparison | 92 | `/pricing` | +| 3 | `/guide/how-to-track-qr-code-scans` | guide-problem | 91 | `/qr-code-tracking` | +| 4 | `/guide/why-my-qr-code-is-not-scanning` | guide-problem | 91 | `/custom-qr-code-generator` | +| 5 | `/guide/qr-code-print-size` | guide-problem | 90 | `/custom-qr-code-generator` | +| 6 | `/compare/qr-code-monkey-vs-qr-master` | comparison | 90 | `/dynamic-qr-code-generator` | +| 7 | `/compare/flowcode-alternative` | comparison | 89 | `/qr-code-tracking` | +| 8 | `/compare/beaconstac-alternative` | comparison | 89 | `/dynamic-qr-code-generator` | +| 9 | `/guide/how-to-use-utm-with-qr-codes` | guide-problem | 89 | `/qr-code-tracking` | +| 10 | `/guide/dynamic-qr-code-best-practices` | guide-strategic | 88 | `/dynamic-qr-code-generator` | +| 11 | `/guide/qr-code-gdpr` | guide-strategic | 88 | `/qr-code-tracking` | +| 12 | `/compare/bulk-qr-generator-vs-single-qr-generator` | comparison | 88 | `/bulk-qr-code-generator` | +| 13 | `/qr-code-for/restaurants/menu-updates` | industry-workflow | 88 | `/dynamic-qr-code-generator` | +| 14 | `/qr-code-for/restaurants/review-collection` | industry-workflow | 87 | `/qr-code-tracking` | +| 15 | `/tools/wifi-qr-code/for-hotels` | tool-job | 87 | `/tools/wifi-qr-code` | +| 16 | `/guide/how-to-create-a-vcard-qr-code` | guide-problem | 87 | `/tools/vcard-qr-code` | +| 17 | `/qr-code-for/hotels/guest-wifi` | industry-workflow | 87 | `/tools/wifi-qr-code` | +| 18 | `/use-cases/qr-codes-for-product-packaging` | use-case | 87 | `/bulk-qr-code-generator` | +| 19 | `/qr-code-for/retail/packaging` | industry-workflow | 86 | `/bulk-qr-code-generator` | +| 20 | `/tools/url-qr-code/for-flyers` | tool-job | 86 | `/tools/url-qr-code` | +| 21 | `/guide/qr-code-security-best-practices` | guide-strategic | 86 | `/dynamic-qr-code-generator` | +| 22 | `/compare/qr-code-generator-com-alternative` | comparison | 86 | `/dynamic-qr-code-generator` | +| 23 | `/compare/bitly-qr-code-generator-alternative` | comparison | 86 | `/qr-code-tracking` | +| 24 | `/qr-code-for/events/check-in` | industry-workflow | 86 | `/tools/event-qr-code` | +| 25 | `/use-cases/qr-codes-for-review-collection` | use-case | 86 | `/qr-code-tracking` | +| 26 | `/tools/wifi-qr-code/for-restaurants` | tool-job | 85 | `/tools/wifi-qr-code` | +| 27 | `/tools/vcard-qr-code/for-business-cards` | tool-job | 85 | `/tools/vcard-qr-code` | +| 28 | `/guide/how-to-create-a-wifi-qr-code` | guide-problem | 85 | `/tools/wifi-qr-code` | +| 29 | `/guide/how-to-update-a-qr-code-after-printing` | guide-problem | 85 | `/dynamic-qr-code-generator` | +| 30 | `/compare/canva-qr-code-vs-qr-master` | comparison | 85 | `/custom-qr-code-generator` | +| 31 | `/qr-code-for/real-estate/open-house-flyers` | industry-workflow | 85 | `/qr-code-tracking` | +| 32 | `/use-cases/qr-codes-for-brochures` | use-case | 85 | `/dynamic-qr-code-generator` | +| 33 | `/tools/url-qr-code/for-packaging` | tool-job | 85 | `/tools/url-qr-code` | +| 34 | `/compare/uniqode-alternative` | comparison | 84 | `/qr-code-tracking` | +| 35 | `/compare/adobe-express-qr-code-vs-qr-master` | comparison | 84 | `/custom-qr-code-generator` | +| 36 | `/tools/whatsapp-qr-code/for-customer-support` | tool-job | 84 | `/tools/whatsapp-qr-code` | +| 37 | `/qr-code-for/cafes/loyalty-signups` | industry-workflow | 84 | `/tools/url-qr-code` | +| 38 | `/qr-code-for/events/booth-lead-capture` | industry-workflow | 84 | `/qr-code-tracking` | +| 39 | `/guide/qr-code-landing-page-best-practices` | guide-strategic | 84 | `/dynamic-qr-code-generator` | +| 40 | `/use-cases/qr-codes-for-table-ordering` | use-case | 84 | `/dynamic-qr-code-generator` | +| 41 | `/tools/pdf-qr-code/for-menus` | tool-job | 83 | `/dynamic-qr-code-generator` | +| 42 | `/guide/qr-code-analytics-for-offline-campaigns` | guide-strategic | 83 | `/qr-code-analytics` | +| 43 | `/compare/linktree-vs-qr-master-for-offline-campaigns` | comparison | 83 | `/qr-code-for-marketing-campaigns` | +| 44 | `/qr-code-for/doctors-dentists/intake-forms` | industry-workflow | 83 | `/tools/url-qr-code` | +| 45 | `/tools/paypal-qr-code/for-invoices` | tool-job | 82 | `/tools/paypal-qr-code` | +| 46 | `/guide/how-to-test-a-qr-code-before-printing` | guide-problem | 82 | `/custom-qr-code-generator` | +| 47 | `/use-cases/qr-codes-for-manuals-and-inserts` | use-case | 82 | `/bulk-qr-code-generator` | +| 48 | `/qr-code-for/retail/window-shopping` | industry-workflow | 81 | `/qr-code-for-marketing-campaigns` | +| 49 | `/tools/email-qr-code/for-event-follow-up` | tool-job | 81 | `/tools/email-qr-code` | +| 50 | `/guide/qr-code-branding-best-practices` | guide-strategic | 80 | `/custom-qr-code-generator` | + +## Shipment Mix For First 50 + +Recommended composition: + +- `15` comparison pages +- `15` guide pages +- `10` tool-job pages +- `10` industry-workflow or use-case pages + +This keeps the first wave biased toward: + +- bottom-funnel demand +- strong CTA fit +- cluster leverage into existing product pages + +## First 10 To Ship + +1. `/compare/dynamic-vs-static-qr-codes` +2. `/compare/free-vs-paid-qr-code-generator` +3. `/guide/how-to-track-qr-code-scans` +4. `/guide/why-my-qr-code-is-not-scanning` +5. `/guide/qr-code-print-size` +6. `/compare/qr-code-monkey-vs-qr-master` +7. `/compare/flowcode-alternative` +8. `/compare/beaconstac-alternative` +9. `/guide/how-to-use-utm-with-qr-codes` +10. `/guide/dynamic-qr-code-best-practices` + +## Cluster Notes + +### Cluster A: Dynamic QR buying decision + +- `/compare/dynamic-vs-static-qr-codes` +- `/compare/free-vs-paid-qr-code-generator` +- `/guide/dynamic-qr-code-best-practices` +- `/guide/how-to-update-a-qr-code-after-printing` +- `/dynamic-qr-code-generator` + +### Cluster B: Tracking and analytics + +- `/guide/how-to-track-qr-code-scans` +- `/guide/how-to-use-utm-with-qr-codes` +- `/guide/qr-code-analytics-for-offline-campaigns` +- `/qr-code-tracking` +- `/qr-code-analytics` + +### Cluster C: Print reliability + +- `/guide/why-my-qr-code-is-not-scanning` +- `/guide/qr-code-print-size` +- `/guide/how-to-test-a-qr-code-before-printing` +- `/custom-qr-code-generator` + +### Cluster D: Commercial alternatives + +- `/compare/qr-code-monkey-vs-qr-master` +- `/compare/flowcode-alternative` +- `/compare/beaconstac-alternative` +- `/compare/qr-code-generator-com-alternative` +- `/compare/uniqode-alternative` + +## Default Indexing Recommendation + +Default to `index` only when: + +- the page has a strong cluster position +- the CTA is specific and commercially coherent +- the page has distinct FAQs, workflow logic, and related links + +Default to `hold` or `noindex` when: + +- the page is still too close to an existing sibling +- the page has weak differentiation +- the cluster around it is not yet live diff --git a/marketing/sales-deck-marketing-manager.md b/marketing/sales-deck-marketing-manager.md index e2bbcf8..f61c783 100644 --- a/marketing/sales-deck-marketing-manager.md +++ b/marketing/sales-deck-marketing-manager.md @@ -1,145 +1,145 @@ -# QR Master Sales Deck - -Audience: Marketing Manager -Use case: AE-led first demo / sales presentation -Stage: Discovery to first solution presentation -Format: 11-slide outline with presentation notes - -## Slide 1: Print Campaigns Should Not Go Dark After They Ship - -Body copy: -- Printed flyers, packaging, menus, and posters still drive action -- Static QR codes break the moment a link, offer, or landing page changes -- Marketing teams lose both flexibility and attribution - -Speaker notes: -Lead with the operational reality: print is still valuable, but static QR codes make it fragile. Position the problem as a marketing control issue, not just a design or ops issue. - -## Slide 2: The Cost of Static QR Codes Is Bigger Than Reprints - -Body copy: -- Reprints create direct waste every time a destination changes -- Campaign teams lose scan-level visibility into offline performance -- Manual updates slow launches and create avoidable errors - -Speaker notes: -Use the ROI angle here. QR Master already frames this as reprint waste plus lost measurement. If relevant, quantify with the prospect's own print budget and update frequency. - -## Slide 3: Marketing Teams Need Trackable Offline-to-Online Journeys - -Body copy: -- Offline campaigns now need the same measurement discipline as digital -- Teams want scan, device, and location insights without adding complexity -- Privacy expectations are higher, especially in Europe - -Speaker notes: -This is the urgency slide. The shift is not "QR codes are new" but "QR codes now need to behave like measurable campaign infrastructure." - -## Slide 4: QR Master Makes Printed Assets Editable, Trackable, and Privacy-First - -Body copy: -- Change QR destinations after printing with dynamic QR codes -- Track scans with analytics designed for marketing use cases -- Stay privacy-conscious with hashed IP handling and no PII-based tracking model - -Speaker notes: -Keep this simple. The core promise is control after print, measurable outcomes, and lower compliance anxiety. - -## Slide 5: Launch Campaign QR Codes Fast - -Body copy: -- Create dynamic or static QR codes in minutes -- Use specialized generators for URL, WiFi, menus, vCards, events, and more -- Download ready-to-use assets for print and packaging workflows - -Speaker notes: -Show speed to launch. This matters for marketers running many campaigns with changing assets and deadlines. - -## Slide 6: Update Destinations Without Reprinting - -Body copy: -- Swap landing pages, PDFs, menus, or promotions after distribution -- Keep the same printed QR code live while the destination evolves -- Reduce wasted inventory, signage, and packaging runs - -Speaker notes: -This is the core economic benefit. Tie it to seasonal campaigns, corrected links, changing offers, and localized landing pages. - -## Slide 7: Measure What Offline Campaigns Actually Drive - -Body copy: -- See scan activity, devices, and location patterns -- Understand which printed assets and campaigns create engagement -- Give marketing a better feedback loop for offline spend - -Speaker notes: -Frame analytics as decision support. The point is not dashboards for their own sake; it is knowing what to scale, fix, or stop. - -## Slide 8: Scale Beyond One-Off QR Campaigns - -Body copy: -- Business plan supports bulk QR creation up to 1,000 rows per upload -- Generate large batches for packaging, retail, events, and distributed campaigns -- Move from ad hoc QR creation to repeatable campaign operations - -Speaker notes: -Use this slide when the buyer has many SKUs, locations, or campaigns. For smaller teams, keep it brief and treat it as future-proofing. - -## Slide 9: Why Teams Choose QR Master - -Body copy: -- Privacy-first approach with hashed IPs and Do Not Track respect -- Bulk creation and advanced analytics in one platform -- More focused than generic design tools, simpler and more cost-conscious than enterprise-heavy alternatives - -Speaker notes: -This is where you position against free tools, Canva-style utilities, and more expensive enterprise QR platforms. Stay outcome-focused rather than feature-dense. - -## Slide 10: Value and Packaging - -Body copy: -- Free: 3 active dynamic QR codes and unlimited static QR codes -- Pro: EUR 9/month or EUR 90/year for 50 dynamic QR codes, advanced analytics, and branding -- Business: EUR 29/month or EUR 290/year for 500 dynamic QR codes, bulk creation, and priority support -- Enterprise: custom for larger rollouts - -Speaker notes: -Anchor pricing against reprint waste and attribution value, not against free QR generators. For many prospects, one avoided reprint can justify the upgrade. - -## Slide 11: Next Step - -Body copy: -- Start with one live campaign, menu, or packaging workflow -- Validate savings, scan visibility, and campaign agility -- Expand to broader printed assets once the first workflow is proven - -Speaker notes: -Push toward a concrete next step: free signup, guided walkthrough, or a pilot tied to one real campaign. Avoid vague closes. - -## Optional Proof Slide: Replace With Customer Evidence - -Use this only when you have real proof. - -Suggested content: -- Named customer logo -- Before / after workflow -- One quantified result -- One short buyer quote - -Current status: -- Replace composite examples with a real customer story before broad sales use -- Good first targets: restaurant groups, agencies, event operators, or retail packaging teams - -## Customization Notes For AEs - -- For restaurant buyers, emphasize menu changes and reprint savings earlier. -- For agency buyers, emphasize campaign measurement and client reporting. -- For operations or IT stakeholders, elevate privacy posture and workflow control. -- If the buyer is price-sensitive, open the reprint calculator before the pricing slide. - -## Missing Proof To Add Later - -- Named customer logos -- Verified customer quote -- Measured ROI or payback period from a live account -- Competitive win story versus Beaconstac, Flowcode, or generic free tools +# QR Master Sales Deck + +Audience: Marketing Manager +Use case: AE-led first demo / sales presentation +Stage: Discovery to first solution presentation +Format: 11-slide outline with presentation notes + +## Slide 1: Print Campaigns Should Not Go Dark After They Ship + +Body copy: +- Printed flyers, packaging, menus, and posters still drive action +- Static QR codes break the moment a link, offer, or landing page changes +- Marketing teams lose both flexibility and attribution + +Speaker notes: +Lead with the operational reality: print is still valuable, but static QR codes make it fragile. Position the problem as a marketing control issue, not just a design or ops issue. + +## Slide 2: The Cost of Static QR Codes Is Bigger Than Reprints + +Body copy: +- Reprints create direct waste every time a destination changes +- Campaign teams lose scan-level visibility into offline performance +- Manual updates slow launches and create avoidable errors + +Speaker notes: +Use the ROI angle here. QR Master already frames this as reprint waste plus lost measurement. If relevant, quantify with the prospect's own print budget and update frequency. + +## Slide 3: Marketing Teams Need Trackable Offline-to-Online Journeys + +Body copy: +- Offline campaigns now need the same measurement discipline as digital +- Teams want scan, device, and location insights without adding complexity +- Privacy expectations are higher, especially in Europe + +Speaker notes: +This is the urgency slide. The shift is not "QR codes are new" but "QR codes now need to behave like measurable campaign infrastructure." + +## Slide 4: QR Master Makes Printed Assets Editable, Trackable, and Privacy-First + +Body copy: +- Change QR destinations after printing with dynamic QR codes +- Track scans with analytics designed for marketing use cases +- Stay privacy-conscious with hashed IP handling and no PII-based tracking model + +Speaker notes: +Keep this simple. The core promise is control after print, measurable outcomes, and lower compliance anxiety. + +## Slide 5: Launch Campaign QR Codes Fast + +Body copy: +- Create dynamic or static QR codes in minutes +- Use specialized generators for URL, WiFi, menus, vCards, events, and more +- Download ready-to-use assets for print and packaging workflows + +Speaker notes: +Show speed to launch. This matters for marketers running many campaigns with changing assets and deadlines. + +## Slide 6: Update Destinations Without Reprinting + +Body copy: +- Swap landing pages, PDFs, menus, or promotions after distribution +- Keep the same printed QR code live while the destination evolves +- Reduce wasted inventory, signage, and packaging runs + +Speaker notes: +This is the core economic benefit. Tie it to seasonal campaigns, corrected links, changing offers, and localized landing pages. + +## Slide 7: Measure What Offline Campaigns Actually Drive + +Body copy: +- See scan activity, devices, and location patterns +- Understand which printed assets and campaigns create engagement +- Give marketing a better feedback loop for offline spend + +Speaker notes: +Frame analytics as decision support. The point is not dashboards for their own sake; it is knowing what to scale, fix, or stop. + +## Slide 8: Scale Beyond One-Off QR Campaigns + +Body copy: +- Business plan supports bulk QR creation up to 1,000 rows per upload +- Generate large batches for packaging, retail, events, and distributed campaigns +- Move from ad hoc QR creation to repeatable campaign operations + +Speaker notes: +Use this slide when the buyer has many SKUs, locations, or campaigns. For smaller teams, keep it brief and treat it as future-proofing. + +## Slide 9: Why Teams Choose QR Master + +Body copy: +- Privacy-first approach with hashed IPs and Do Not Track respect +- Bulk creation and advanced analytics in one platform +- More focused than generic design tools, simpler and more cost-conscious than enterprise-heavy alternatives + +Speaker notes: +This is where you position against free tools, Canva-style utilities, and more expensive enterprise QR platforms. Stay outcome-focused rather than feature-dense. + +## Slide 10: Value and Packaging + +Body copy: +- Free: 3 active dynamic QR codes and unlimited static QR codes +- Pro: EUR 9/month or EUR 90/year for 50 dynamic QR codes, advanced analytics, and branding +- Business: EUR 29/month or EUR 290/year for 500 dynamic QR codes, bulk creation, and priority support +- Enterprise: custom for larger rollouts + +Speaker notes: +Anchor pricing against reprint waste and attribution value, not against free QR generators. For many prospects, one avoided reprint can justify the upgrade. + +## Slide 11: Next Step + +Body copy: +- Start with one live campaign, menu, or packaging workflow +- Validate savings, scan visibility, and campaign agility +- Expand to broader printed assets once the first workflow is proven + +Speaker notes: +Push toward a concrete next step: free signup, guided walkthrough, or a pilot tied to one real campaign. Avoid vague closes. + +## Optional Proof Slide: Replace With Customer Evidence + +Use this only when you have real proof. + +Suggested content: +- Named customer logo +- Before / after workflow +- One quantified result +- One short buyer quote + +Current status: +- Replace composite examples with a real customer story before broad sales use +- Good first targets: restaurant groups, agencies, event operators, or retail packaging teams + +## Customization Notes For AEs + +- For restaurant buyers, emphasize menu changes and reprint savings earlier. +- For agency buyers, emphasize campaign measurement and client reporting. +- For operations or IT stakeholders, elevate privacy posture and workflow control. +- If the buyer is price-sensitive, open the reprint calculator before the pricing slide. + +## Missing Proof To Add Later + +- Named customer logos +- Verified customer quote +- Measured ROI or payback period from a live account +- Competitive win story versus Beaconstac, Flowcode, or generic free tools diff --git a/marketing/seo-outreach-top-20-emails.md b/marketing/seo-outreach-top-20-emails.md index 54ed9e1..cc42fc4 100644 --- a/marketing/seo-outreach-top-20-emails.md +++ b/marketing/seo-outreach-top-20-emails.md @@ -1,408 +1,408 @@ -# SEO Outreach Emails for Top 20 qrmaster.net Targets - -## Notes - -- Use a real sender name and personal email. -- Keep the signature plain. -- One follow-up after 5-7 days is enough. -- For weaker Tier 3 targets, send only if Tier 1 and Tier 2 are exhausted. - ---- - -## 1. Mailchimp -- URL: https://www.mailchimp.com/resources/startup-tools/ -- Contact: content@mailchimp.com -- Subject: startup tools - -Hi, - -Your startup tools page is strong on software founders use to run growth, but it skips one offline-to-online tool that shows up constantly in real campaigns: dynamic QR codes. - -Teams use them on flyers, packaging inserts, event signage, and direct mail when they need the destination to stay editable after print. That is the part most free QR generators do not handle well. - -qrmaster.net gives you free dynamic codes to start, plus tracking and bulk creation if a team needs to scale. - -Would that be worth considering for the list? - -Best, -[Your Name] - ---- - -## 2. Edutopia -- URL: https://www.edutopia.org/article/make-digital-classroom-tools-work-for-you/ -- Contact: community@edutopia.org -- Subject: classroom links - -Hi, - -Your piece on making digital classroom tools work is practical, especially around how teachers combine tools rather than add more noise. - -One missing piece is the handoff from paper to digital. Teachers still use printed worksheets, wall stations, and take-home sheets, and QR codes are often the cleanest way to get students from paper to the right resource without typing links. - -qrmaster.net is a simple QR tool with dynamic codes, so the destination can be updated later without reprinting the material. - -Could that be a useful addition to the article? - -Best, -[Your Name] - ---- - -## 3. Zendesk -- URL: https://www.zendesk.com/blog/startup-tools/ -- Contact: content@zendesk.com -- Subject: startup stack - -Hi, - -Your startup tools post covers the usual operating stack well. One category I expected to see but did not was dynamic QR codes. - -Founders end up using them for trade shows, one-pagers, packaging, retail counters, and printed onboarding material when they need a link that can still change after the asset is already out. - -qrmaster.net is built around that use case, with dynamic destinations, scan analytics, and bulk creation when a team moves beyond one-off codes. - -Would that fit the page? - -Best, -[Your Name] - ---- - -## 4. Eventbrite -- URL: https://www.eventbrite.com/blog/free-event-planning-software/ -- Contact: press@eventbrite.com -- Subject: event updates - -Hi, - -Your roundup of event planning software is useful, especially for people trying to avoid fragmented tools. - -One practical gap: a QR tool for printed signage, schedules, check-in pages, menus, or speaker updates when details change after assets are already printed. - -That is exactly where dynamic QR codes help. qrmaster.net lets event teams keep the printed code but update the destination later, which is useful when rooms, agendas, or landing pages change at the last minute. - -Would that be worth adding to the resource list? - -Best, -[Your Name] - ---- - -## 5. Cvent -- URL: https://www.cvent.com/en/blog/events/event-management-software-features -- Contact: blog@cvent.com -- Subject: event signage - -Hi, - -Your article on event management software features is grounded in actual event workflows, not generic feature talk. - -One adjacent tool worth including is a dynamic QR code generator. Event teams use it for printed agendas, venue signage, exhibitor material, and check-in flows when the target page may need to change after print. - -qrmaster.net was built for that kind of use: editable destinations, scan tracking, and bulk creation if an event needs many codes at once. - -Would that be relevant for the piece? - -Best, -[Your Name] - ---- - -## 6. t3n -- URL: https://t3n.de/news/kostenlose-tools-fuer-startups-608883/ -- Contact: redaktion@t3n.de -- Subject: startup tools - -Hallo, - -eure Liste mit kostenlosen Tools für Startups deckt viele typische SaaS-Kategorien ab. Was darin noch fehlt, ist ein sinnvoller QR-Code-Use-Case für Teams, die auch offline unterwegs sind. - -Startups nutzen QR-Codes inzwischen nicht nur auf Flyern, sondern auch auf Eventmaterial, Packaging, One-Pagern oder Print-Assets im Vertrieb. Relevant wird es vor allem dann, wenn sich die Zielseite nach dem Druck noch ändern können muss. - -qrmaster.net ist genau dafür gebaut: dynamische QR-Codes, Tracking und bei Bedarf Bulk-Erstellung. - -Wäre das eine sinnvolle Ergänzung für eure Liste? - -Viele Grüße -[Dein Name] - ---- - -## 7. Gründerszene -- URL: https://www.gruenderszene.de/business/startup-tools-marketing-vertrieb-it -- Contact: redaktion@gruenderszene.de -- Subject: marketing tools - -Hallo, - -in eurer Übersicht zu Startup-Tools für Marketing, Vertrieb und IT fehlt eine eher unscheinbare, aber in der Praxis oft genutzte Kategorie: dynamische QR-Codes. - -Gerade bei Events, Flyern, Print-Beilagen oder Sales-Unterlagen hilft ein QR-Code nur dann wirklich, wenn der Link später noch geändert werden kann. Sonst wird aus einem nützlichen Asset schnell ein Neudruck-Thema. - -qrmaster.net löst genau diesen Teil sauber, inklusive Tracking und Bulk-Erstellung für größere Kampagnen. - -Passt das als Ergänzung in euren Beitrag? - -Viele Grüße -[Dein Name] - ---- - -## 8. Common Sense Education -- URL: https://www.commonsense.org/education/articles/the-best-family-communication-platforms-for-teachers-and-schools -- Contact: editor@commonsense.org -- Subject: school handouts - -Hi, - -Your piece on family communication platforms is useful for the messaging layer between schools and families. - -One small tool that fits that workflow well is a QR code generator for printed handouts, take-home sheets, event reminders, and classroom notices. It gives schools a simple bridge from paper to the correct digital destination without asking families to type long links. - -qrmaster.net focuses on dynamic QR codes, so schools can update the destination later without reprinting the notice itself. - -Would that be a sensible addition to the article? - -Best, -[Your Name] - ---- - -## 9. Shopify -- URL: https://www.shopify.com/blog/startup-tools -- Contact: blog@shopify.com -- Subject: offline traffic - -Hi, - -Your startup tools piece covers the usual software stack well. One practical category that often gets missed is dynamic QR codes for offline traffic. - -Founders and small commerce teams use them on packaging, inserts, shelf talkers, retail posters, and pop-up event material when they want the printed asset to stay usable even if the destination changes later. - -qrmaster.net is built around that use case, with dynamic links, scan analytics, and bulk creation for larger campaigns. - -Worth a look for the list? - -Best, -[Your Name] - ---- - -## 10. Lehrer-Online -- URL: https://www.lehrer-online.de/unterricht/sekundarstufen/naturwissenschaften/informatik/ -- Contact: redaktion@lehrer-online.de -- Subject: unterricht links - -Hallo, - -eure Informatik-Ressourcen sind stark, vor allem weil sie direkt aus Unterrichtssituationen gedacht wirken. - -Ein Werkzeug, das dort noch gut hineinpasst, ist ein QR-Code-Generator für Arbeitsblätter, Stationen oder Aufgabenblätter mit digitalen Ergänzungen. Gerade im Unterricht spart das viel Reibung, weil niemand Links abtippen muss. - -qrmaster.net bietet dynamische QR-Codes, sodass Lehrkräfte den Ziel-Link später noch anpassen können, ohne Materialien neu zu drucken. - -Wäre das etwas für eure Ressourcen? - -Viele Grüße -[Dein Name] - ---- - -## 11. Fast Company -- URL: https://www.fastcompany.com/90645634/the-best-productivity-tools-for-small-business-owners -- Contact: tips@fastcompany.com -- Subject: small business tools - -Hi, - -Your productivity tools piece is broader than a standard startup roundup, which is why one omission stood out to me: dynamic QR codes. - -Small businesses use them in surprisingly practical ways, from printed menus and flyers to trade-show materials and packaging inserts. The useful part is not the code itself, it is being able to change the destination later without wasting the print run. - -qrmaster.net is focused on that exact job, with dynamic destinations and scan tracking built in. - -Would it be worth considering for the article? - -Best, -[Your Name] - ---- - -## 12. Canva -- URL: https://www.canva.com/learn/startup-tools/ -- Contact: content@canva.com -- Subject: printed campaigns - -Hi, - -Your startup tools page is useful for early teams that are assembling a practical stack, not just chasing shiny tools. - -One category that fits well there is dynamic QR codes for print-driven campaigns. Founders use them on postcards, brochures, packaging, event signage, and in-store material when they need the destination to stay editable after design work is already done. - -qrmaster.net handles that well, with dynamic links, scan analytics, and bulk generation when the use case grows beyond a single code. - -Could that fit the page? - -Best, -[Your Name] - ---- - -## 13. TechCrunch -- URL: https://www.techcrunch.com/2012/08/01/what-startups-should-do-before-they-get-into-the-vcs-office/ -- Contact: tips@techcrunch.com -- Subject: founder resources - -Hi, - -This is a slightly different angle than a typical software pitch. - -For founders doing events, investor meetings, demo days, and printed leave-behinds, dynamic QR codes are one of those low-profile tools that keep showing up because they make offline material measurable and editable after it is already in circulation. - -qrmaster.net is built for that, with dynamic destinations and scan tracking rather than just static code generation. - -Might be worth including anywhere you keep founder resource roundups. - -Best, -[Your Name] - ---- - -## 14. Notion -- URL: https://www.notion.so/blog/startup-tools-stack -- Contact: blog-team@makenotion.com -- Subject: startup ops - -Hi, - -Your startup stack article is close to how teams actually work, which is why this feels adjacent rather than random. - -One tool type that often belongs in that stack is dynamic QR codes for offline touchpoints: printed onboarding, trade-show assets, internal signage, product packaging, or field material that still needs an editable destination. - -qrmaster.net focuses on that layer, with dynamic links, scan analytics, and bulk creation if a team needs many codes at once. - -Would that be relevant for the piece? - -Best, -[Your Name] - ---- - -## 15. HubSpot -- URL: https://blog.hubspot.com/sales/entrepreneur-resources -- Contact: blog@hubspot.com -- Subject: entrepreneur resources - -Hi, - -Your entrepreneur resources page is broad enough that one missing category stood out: dynamic QR codes. - -Founders and small marketing teams use them on flyers, print inserts, trade-show handouts, and retail material when they need the destination to stay editable after the asset is out in the world. That is where a basic static QR generator usually stops being enough. - -qrmaster.net is built around that exact use case, with dynamic links, scan analytics, and bulk creation when campaigns expand. - -Would that be worth adding? - -Best, -[Your Name] - ---- - -## 16. Entrepreneur -- URL: https://www.entrepreneur.com/science-technology/10-essential-tools-for-every-startup-founder/336457 -- Contact: editorial@entrepreneur.com -- Subject: founder stack - -Hi, - -Your startup founder tools piece covers the standard software stack well. One practical category I expected to see was dynamic QR codes. - -They are useful anywhere founders still rely on physical touchpoints, whether that is an expo booth, a one-pager, packaging, or printed collateral. The important part is being able to update the destination later without reprinting. - -qrmaster.net focuses on that, with dynamic links, scan data, and bulk creation for larger sets of codes. - -Could that fit the article? - -Best, -[Your Name] - ---- - -## 17. Buffer -- URL: https://www.buffer.com/library/startup-tools/ -- Contact: hello@buffer.com -- Subject: startup list - -Hi, - -Your startup tools list is practical and readable, which is probably why one missing category stood out to me: dynamic QR codes. - -They are useful for more than events. Founders use them on packaging, printed promo material, customer onboarding cards, and offline campaigns when the link may need to change later. - -qrmaster.net is built for that layer, with dynamic destinations, tracking, and bulk creation when there are many codes to manage. - -Would that be worth adding to the list? - -Best, -[Your Name] - ---- - -## 18. Intercom -- URL: https://www.intercom.com/blog/startup-tools-for-growth/ -- Contact: blog@intercom.io -- Subject: growth tools - -Hi, - -Your startup growth tools piece is naturally focused on digital channels, but one useful edge case missing from the list is dynamic QR codes for offline growth touchpoints. - -Teams use them for packaging inserts, event materials, direct mail, posters, and printed onboarding flows when they want a link they can still update later and measure. - -qrmaster.net was built for that use case, with editable destinations, scan analytics, and bulk generation. - -Would that be relevant for the page? - -Best, -[Your Name] - ---- - -## 19. Inc. -- URL: https://www.inc.com/guides/2010/06/best-free-software-for-startups.html -- Contact: editorial@inc.com -- Subject: free software - -Hi, - -Your free software for startups guide is old enough to have room for one very practical update: dynamic QR codes. - -They are useful whenever a startup has printed material in market but still wants to change where people land later, whether that is a promo flyer, event handout, packaging insert, or storefront sign. - -qrmaster.net offers that in a straightforward way, with free dynamic codes to start and analytics if a team needs more than a static generator. - -Would it make sense as an addition? - -Best, -[Your Name] - ---- - -## 20. Forbes / Bernard Marr -- URL: https://www.forbes.com/sites/bernardmarr/2025/06/23/20-game-changing-ai-tools-every-small-business-leader-needs-now/ -- Contact: hello@bernardmarr.com -- Subject: small business tools - -Hi, - -Your roundup focuses on AI tools, so this is slightly adjacent rather than a direct category match. - -The reason I am reaching out anyway is that small business teams increasingly use dynamic QR codes anywhere print meets digital: brochures, packaging, event materials, menus, and in-store signage. The useful part is being able to change the destination after print and still measure scans. - -qrmaster.net is built around that use case. - -If you ever expand the list beyond AI-only tools, would that be relevant? - -Best, -[Your Name] +# SEO Outreach Emails for Top 20 qrmaster.net Targets + +## Notes + +- Use a real sender name and personal email. +- Keep the signature plain. +- One follow-up after 5-7 days is enough. +- For weaker Tier 3 targets, send only if Tier 1 and Tier 2 are exhausted. + +--- + +## 1. Mailchimp +- URL: https://www.mailchimp.com/resources/startup-tools/ +- Contact: content@mailchimp.com +- Subject: startup tools + +Hi, + +Your startup tools page is strong on software founders use to run growth, but it skips one offline-to-online tool that shows up constantly in real campaigns: dynamic QR codes. + +Teams use them on flyers, packaging inserts, event signage, and direct mail when they need the destination to stay editable after print. That is the part most free QR generators do not handle well. + +qrmaster.net gives you free dynamic codes to start, plus tracking and bulk creation if a team needs to scale. + +Would that be worth considering for the list? + +Best, +[Your Name] + +--- + +## 2. Edutopia +- URL: https://www.edutopia.org/article/make-digital-classroom-tools-work-for-you/ +- Contact: community@edutopia.org +- Subject: classroom links + +Hi, + +Your piece on making digital classroom tools work is practical, especially around how teachers combine tools rather than add more noise. + +One missing piece is the handoff from paper to digital. Teachers still use printed worksheets, wall stations, and take-home sheets, and QR codes are often the cleanest way to get students from paper to the right resource without typing links. + +qrmaster.net is a simple QR tool with dynamic codes, so the destination can be updated later without reprinting the material. + +Could that be a useful addition to the article? + +Best, +[Your Name] + +--- + +## 3. Zendesk +- URL: https://www.zendesk.com/blog/startup-tools/ +- Contact: content@zendesk.com +- Subject: startup stack + +Hi, + +Your startup tools post covers the usual operating stack well. One category I expected to see but did not was dynamic QR codes. + +Founders end up using them for trade shows, one-pagers, packaging, retail counters, and printed onboarding material when they need a link that can still change after the asset is already out. + +qrmaster.net is built around that use case, with dynamic destinations, scan analytics, and bulk creation when a team moves beyond one-off codes. + +Would that fit the page? + +Best, +[Your Name] + +--- + +## 4. Eventbrite +- URL: https://www.eventbrite.com/blog/free-event-planning-software/ +- Contact: press@eventbrite.com +- Subject: event updates + +Hi, + +Your roundup of event planning software is useful, especially for people trying to avoid fragmented tools. + +One practical gap: a QR tool for printed signage, schedules, check-in pages, menus, or speaker updates when details change after assets are already printed. + +That is exactly where dynamic QR codes help. qrmaster.net lets event teams keep the printed code but update the destination later, which is useful when rooms, agendas, or landing pages change at the last minute. + +Would that be worth adding to the resource list? + +Best, +[Your Name] + +--- + +## 5. Cvent +- URL: https://www.cvent.com/en/blog/events/event-management-software-features +- Contact: blog@cvent.com +- Subject: event signage + +Hi, + +Your article on event management software features is grounded in actual event workflows, not generic feature talk. + +One adjacent tool worth including is a dynamic QR code generator. Event teams use it for printed agendas, venue signage, exhibitor material, and check-in flows when the target page may need to change after print. + +qrmaster.net was built for that kind of use: editable destinations, scan tracking, and bulk creation if an event needs many codes at once. + +Would that be relevant for the piece? + +Best, +[Your Name] + +--- + +## 6. t3n +- URL: https://t3n.de/news/kostenlose-tools-fuer-startups-608883/ +- Contact: redaktion@t3n.de +- Subject: startup tools + +Hallo, + +eure Liste mit kostenlosen Tools für Startups deckt viele typische SaaS-Kategorien ab. Was darin noch fehlt, ist ein sinnvoller QR-Code-Use-Case für Teams, die auch offline unterwegs sind. + +Startups nutzen QR-Codes inzwischen nicht nur auf Flyern, sondern auch auf Eventmaterial, Packaging, One-Pagern oder Print-Assets im Vertrieb. Relevant wird es vor allem dann, wenn sich die Zielseite nach dem Druck noch ändern können muss. + +qrmaster.net ist genau dafür gebaut: dynamische QR-Codes, Tracking und bei Bedarf Bulk-Erstellung. + +Wäre das eine sinnvolle Ergänzung für eure Liste? + +Viele Grüße +[Dein Name] + +--- + +## 7. Gründerszene +- URL: https://www.gruenderszene.de/business/startup-tools-marketing-vertrieb-it +- Contact: redaktion@gruenderszene.de +- Subject: marketing tools + +Hallo, + +in eurer Übersicht zu Startup-Tools für Marketing, Vertrieb und IT fehlt eine eher unscheinbare, aber in der Praxis oft genutzte Kategorie: dynamische QR-Codes. + +Gerade bei Events, Flyern, Print-Beilagen oder Sales-Unterlagen hilft ein QR-Code nur dann wirklich, wenn der Link später noch geändert werden kann. Sonst wird aus einem nützlichen Asset schnell ein Neudruck-Thema. + +qrmaster.net löst genau diesen Teil sauber, inklusive Tracking und Bulk-Erstellung für größere Kampagnen. + +Passt das als Ergänzung in euren Beitrag? + +Viele Grüße +[Dein Name] + +--- + +## 8. Common Sense Education +- URL: https://www.commonsense.org/education/articles/the-best-family-communication-platforms-for-teachers-and-schools +- Contact: editor@commonsense.org +- Subject: school handouts + +Hi, + +Your piece on family communication platforms is useful for the messaging layer between schools and families. + +One small tool that fits that workflow well is a QR code generator for printed handouts, take-home sheets, event reminders, and classroom notices. It gives schools a simple bridge from paper to the correct digital destination without asking families to type long links. + +qrmaster.net focuses on dynamic QR codes, so schools can update the destination later without reprinting the notice itself. + +Would that be a sensible addition to the article? + +Best, +[Your Name] + +--- + +## 9. Shopify +- URL: https://www.shopify.com/blog/startup-tools +- Contact: blog@shopify.com +- Subject: offline traffic + +Hi, + +Your startup tools piece covers the usual software stack well. One practical category that often gets missed is dynamic QR codes for offline traffic. + +Founders and small commerce teams use them on packaging, inserts, shelf talkers, retail posters, and pop-up event material when they want the printed asset to stay usable even if the destination changes later. + +qrmaster.net is built around that use case, with dynamic links, scan analytics, and bulk creation for larger campaigns. + +Worth a look for the list? + +Best, +[Your Name] + +--- + +## 10. Lehrer-Online +- URL: https://www.lehrer-online.de/unterricht/sekundarstufen/naturwissenschaften/informatik/ +- Contact: redaktion@lehrer-online.de +- Subject: unterricht links + +Hallo, + +eure Informatik-Ressourcen sind stark, vor allem weil sie direkt aus Unterrichtssituationen gedacht wirken. + +Ein Werkzeug, das dort noch gut hineinpasst, ist ein QR-Code-Generator für Arbeitsblätter, Stationen oder Aufgabenblätter mit digitalen Ergänzungen. Gerade im Unterricht spart das viel Reibung, weil niemand Links abtippen muss. + +qrmaster.net bietet dynamische QR-Codes, sodass Lehrkräfte den Ziel-Link später noch anpassen können, ohne Materialien neu zu drucken. + +Wäre das etwas für eure Ressourcen? + +Viele Grüße +[Dein Name] + +--- + +## 11. Fast Company +- URL: https://www.fastcompany.com/90645634/the-best-productivity-tools-for-small-business-owners +- Contact: tips@fastcompany.com +- Subject: small business tools + +Hi, + +Your productivity tools piece is broader than a standard startup roundup, which is why one omission stood out to me: dynamic QR codes. + +Small businesses use them in surprisingly practical ways, from printed menus and flyers to trade-show materials and packaging inserts. The useful part is not the code itself, it is being able to change the destination later without wasting the print run. + +qrmaster.net is focused on that exact job, with dynamic destinations and scan tracking built in. + +Would it be worth considering for the article? + +Best, +[Your Name] + +--- + +## 12. Canva +- URL: https://www.canva.com/learn/startup-tools/ +- Contact: content@canva.com +- Subject: printed campaigns + +Hi, + +Your startup tools page is useful for early teams that are assembling a practical stack, not just chasing shiny tools. + +One category that fits well there is dynamic QR codes for print-driven campaigns. Founders use them on postcards, brochures, packaging, event signage, and in-store material when they need the destination to stay editable after design work is already done. + +qrmaster.net handles that well, with dynamic links, scan analytics, and bulk generation when the use case grows beyond a single code. + +Could that fit the page? + +Best, +[Your Name] + +--- + +## 13. TechCrunch +- URL: https://www.techcrunch.com/2012/08/01/what-startups-should-do-before-they-get-into-the-vcs-office/ +- Contact: tips@techcrunch.com +- Subject: founder resources + +Hi, + +This is a slightly different angle than a typical software pitch. + +For founders doing events, investor meetings, demo days, and printed leave-behinds, dynamic QR codes are one of those low-profile tools that keep showing up because they make offline material measurable and editable after it is already in circulation. + +qrmaster.net is built for that, with dynamic destinations and scan tracking rather than just static code generation. + +Might be worth including anywhere you keep founder resource roundups. + +Best, +[Your Name] + +--- + +## 14. Notion +- URL: https://www.notion.so/blog/startup-tools-stack +- Contact: blog-team@makenotion.com +- Subject: startup ops + +Hi, + +Your startup stack article is close to how teams actually work, which is why this feels adjacent rather than random. + +One tool type that often belongs in that stack is dynamic QR codes for offline touchpoints: printed onboarding, trade-show assets, internal signage, product packaging, or field material that still needs an editable destination. + +qrmaster.net focuses on that layer, with dynamic links, scan analytics, and bulk creation if a team needs many codes at once. + +Would that be relevant for the piece? + +Best, +[Your Name] + +--- + +## 15. HubSpot +- URL: https://blog.hubspot.com/sales/entrepreneur-resources +- Contact: blog@hubspot.com +- Subject: entrepreneur resources + +Hi, + +Your entrepreneur resources page is broad enough that one missing category stood out: dynamic QR codes. + +Founders and small marketing teams use them on flyers, print inserts, trade-show handouts, and retail material when they need the destination to stay editable after the asset is out in the world. That is where a basic static QR generator usually stops being enough. + +qrmaster.net is built around that exact use case, with dynamic links, scan analytics, and bulk creation when campaigns expand. + +Would that be worth adding? + +Best, +[Your Name] + +--- + +## 16. Entrepreneur +- URL: https://www.entrepreneur.com/science-technology/10-essential-tools-for-every-startup-founder/336457 +- Contact: editorial@entrepreneur.com +- Subject: founder stack + +Hi, + +Your startup founder tools piece covers the standard software stack well. One practical category I expected to see was dynamic QR codes. + +They are useful anywhere founders still rely on physical touchpoints, whether that is an expo booth, a one-pager, packaging, or printed collateral. The important part is being able to update the destination later without reprinting. + +qrmaster.net focuses on that, with dynamic links, scan data, and bulk creation for larger sets of codes. + +Could that fit the article? + +Best, +[Your Name] + +--- + +## 17. Buffer +- URL: https://www.buffer.com/library/startup-tools/ +- Contact: hello@buffer.com +- Subject: startup list + +Hi, + +Your startup tools list is practical and readable, which is probably why one missing category stood out to me: dynamic QR codes. + +They are useful for more than events. Founders use them on packaging, printed promo material, customer onboarding cards, and offline campaigns when the link may need to change later. + +qrmaster.net is built for that layer, with dynamic destinations, tracking, and bulk creation when there are many codes to manage. + +Would that be worth adding to the list? + +Best, +[Your Name] + +--- + +## 18. Intercom +- URL: https://www.intercom.com/blog/startup-tools-for-growth/ +- Contact: blog@intercom.io +- Subject: growth tools + +Hi, + +Your startup growth tools piece is naturally focused on digital channels, but one useful edge case missing from the list is dynamic QR codes for offline growth touchpoints. + +Teams use them for packaging inserts, event materials, direct mail, posters, and printed onboarding flows when they want a link they can still update later and measure. + +qrmaster.net was built for that use case, with editable destinations, scan analytics, and bulk generation. + +Would that be relevant for the page? + +Best, +[Your Name] + +--- + +## 19. Inc. +- URL: https://www.inc.com/guides/2010/06/best-free-software-for-startups.html +- Contact: editorial@inc.com +- Subject: free software + +Hi, + +Your free software for startups guide is old enough to have room for one very practical update: dynamic QR codes. + +They are useful whenever a startup has printed material in market but still wants to change where people land later, whether that is a promo flyer, event handout, packaging insert, or storefront sign. + +qrmaster.net offers that in a straightforward way, with free dynamic codes to start and analytics if a team needs more than a static generator. + +Would it make sense as an addition? + +Best, +[Your Name] + +--- + +## 20. Forbes / Bernard Marr +- URL: https://www.forbes.com/sites/bernardmarr/2025/06/23/20-game-changing-ai-tools-every-small-business-leader-needs-now/ +- Contact: hello@bernardmarr.com +- Subject: small business tools + +Hi, + +Your roundup focuses on AI tools, so this is slightly adjacent rather than a direct category match. + +The reason I am reaching out anyway is that small business teams increasingly use dynamic QR codes anywhere print meets digital: brochures, packaging, event materials, menus, and in-store signage. The useful part is being able to change the destination after print and still measure scans. + +qrmaster.net is built around that use case. + +If you ever expand the list beyond AI-only tools, would that be relevant? + +Best, +[Your Name] diff --git a/marketing/tiktok-slideshow-25-pack-prompts.md b/marketing/tiktok-slideshow-25-pack-prompts.md index 4f5af3b..eb25d4e 100644 --- a/marketing/tiktok-slideshow-25-pack-prompts.md +++ b/marketing/tiktok-slideshow-25-pack-prompts.md @@ -1,2150 +1,2150 @@ -# TikTok Slideshow 25-Pack Prompts for QR Master - -This document contains 25 TikTok slideshow prompt packs for QR Master. - -The pack is built for: -- educational discovery -- pain/problem awareness -- niche use-case validation -- light direct-response testing - -Distribution: -- 14 educational -- 7 pain/problem -- 4 direct selling - -These prompts follow the same premium visual direction as the existing QR Master slideshow files: -- Precision Editorial / "The Digital Architect" -- bright premium SaaS aesthetic -- intentional asymmetry -- tonal depth instead of hard borders -- soft glassmorphism and blue-lit gradients -- clean editorial hierarchy with strong headlines - -## Shared Global Prompt - -Use this global prompt before any slideshow pack: - -```text -Create a premium TikTok slideshow in vertical 9:16 format with built-in text overlay on every slide. -Style: bright, clean, modern, minimal editorial SaaS aesthetic. -Creative direction: Precision Editorial, high white space, intentional asymmetry, tonal depth, calm authority, premium digital craftsmanship. -Color palette: white, soft warm light gray, cobalt blue accents, subtle blue gradients, soft ambient navy-tinted shadows. -Lighting: bright studio daylight, soft glow, polished, airy. -Typography: bold modern sans-serif similar to Inter, large headline, very short text, clean spacing, high contrast, strong hierarchy. -Layout: editorial composition, asymmetrical but balanced, lots of negative space, QR code treated like a hero object. -Text placement: overlay text must be centered in the middle of the frame — not at the top, not at the bottom. -UI style: floating frosted panels, surface shifts instead of hard lines, soft glassmorphism, premium SaaS ad direction. -Important: -- Use exact overlay text provided for each slide. -- Keep text short and correctly spelled. -- Keep the text centered in the middle of the frame — never top-heavy, never bottom-heavy. -- No paragraph text. -- No clutter. -- No dark background. -- No generic stock-office look. -- No 1px hard borders. -- Use soft tonal transitions, ghost borders only if necessary. -- Slide 1 uses the avatar in an unbranded way only. -- The final slide is the only slide allowed to show QR Master branding. -- On slide 1, use the avatar as an unbranded character reference only, with no visible logo text on hat or hoodie. -- On the final slide, show the full branded avatar clearly. -- Keep every slide polished, premium, and TikTok-ready. -``` - -## Shared Negative Prompt - -```text -No dark theme, no messy backgrounds, no harsh shadows, no cheap cartoon look, no toy aesthetic, no cluttered desks, no random props, no heavy borders, no low-detail UI, no gibberish text blocks, no typo-filled posters, no loud neon colors, no generic corporate office scenes -``` - -## Shared Slide Logic - -- Slide 1: hook with unbranded avatar -- Middle slides: problem, use case, insight, or list progression -- Final slide: CTA with branded avatar - -## Suggested Testing Structure - -Run these in waves instead of publishing them randomly: - -1. Pain hooks first -2. Educational proof next -3. Niche use-case slideshows after that -4. Direct selling only after you know the strongest hooks - -When testing: -- keep the visual system stable -- change one messaging variable at a time -- compare only similar slideshow types inside the same wave - ---- - -## Slideshow 01 - Pain - -**Hook:** `One menu update should not mean one more reprint.` - -**Title:** `Menu Update Without Reprints` - -**Caption + Hashtags:** `Restaurants should not need a new print run every time a menu changes. Save this if you use QR menus. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #MenuDesign #QRMaster` - -### Slide 1 - -```text -Create a premium problem-first hook slide in vertical 9:16. -Scene: bright editorial white background, unbranded avatar beside a floating menu-style QR card, soft cobalt glow, premium restaurant-tech SaaS look. -Add large clean overlay text: -"One menu update should not mean one more reprint." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium hospitality pain slide in vertical 9:16. -Scene: elegant printed table menu and QR card in a bright minimal studio environment, soft tonal depth, calm premium composition. -Add large clean overlay text: -"Static menu QR codes lock you into one version." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium hospitality pain slide in vertical 9:16. -Scene: updated digital menu on a phone beside unchanged printed table collateral, white editorial environment, subtle mismatch. -Add large clean overlay text: -"One price change creates a print problem." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution-focused slide in vertical 9:16. -Scene: one menu QR card connected to editable destination panels, glowing blue lines, frosted UI cards, bright white premium background. -Add large clean overlay text: -"Keep the code. Update the menu." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a clean analytics-focused slide in vertical 9:16. -Scene: elegant dashboard cards with scan trends, location markers, device icons, central QR code, white background, soft blue glow. -Add large clean overlay text: -"See what guests actually scan." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt halo, spacious CTA composition. -Add large clean overlay text: -"Use QR Master for live menus" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 02 - Educational - -**Hook:** `How to change a QR destination after printing.` - -**Title:** `Change The Destination, Not The Print` - -**Caption + Hashtags:** `If you print QR codes on menus, flyers, or packaging, this is the workflow to know. qrmaster.net #QRCode #DynamicQRCode #PrintMarketing #MarketingTips #SmallBusiness #QRMaster` - -### Slide 1 - -```text -Create a premium educational hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar holding a phone and gesturing toward a floating QR card with subtle edit icon, soft glassmorphism accents. -Add large clean overlay text: -"How to change a QR destination after printing." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium explanatory slide in vertical 9:16. -Scene: elegant printed QR materials on one side and a fresh phone screen on the other, bright white environment, soft blue reflections. -Add large clean overlay text: -"Static codes lock the destination." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium workflow slide in vertical 9:16. -Scene: one central QR card shown like a gallery object, with subtle indicators that the target can change behind it, white premium background. -Add large clean overlay text: -"Dynamic codes separate print from destination." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution slide in vertical 9:16. -Scene: one floating QR card connected to multiple editable destinations, glowing blue lines, frosted interface cards, bright white background. -Add large clean overlay text: -"Print once. Update anytime." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium value slide in vertical 9:16. -Scene: elegant dashboard cards, scan analytics, location insight cards, central QR code, white background, soft cobalt glow. -Add large clean overlay text: -"And track the scans too." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar, bright premium white background, soft blue gradient halo, clean editorial spacing for CTA. -Add large clean overlay text: -"Start with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 03 - Educational - -**Hook:** `Top 5 signs your QR workflow is broken` - -**Title:** `Top 5 Broken QR Workflow Signs` - -**Caption + Hashtags:** `If your team prints QR codes, these are the warning signs to look for. Save this checklist. qrmaster.net #QRCode #DynamicQRCode #Operations #MarketingTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium checklist hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle warning UI markers, soft cobalt glow, calm premium SaaS look. -Add large clean overlay text: -"Top 5 signs your QR workflow is broken" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant print collateral and one static QR code in a bright white studio environment, soft tonal depth. -Add large clean overlay text: -"1. Every update needs a new print run" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: close-up of printed QR collateral beside a changed mobile destination, clean white editorial environment. -Add large clean overlay text: -"2. Old destinations keep going live" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: one QR code without surrounding analytics or insight panels, bright white premium background. -Add large clean overlay text: -"3. You cannot see what gets scanned" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: multiple mismatched printed QR assets shown across menu, flyer, and packaging objects, white background, subtle blue reflections. -Add large clean overlay text: -"4. Your team keeps creating duplicate codes" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: printed QR assets arranged without a central dashboard view, bright white environment, polished business-tech composition. -Add large clean overlay text: -"5. No one knows where the latest version lives" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt blue glow, spacious CTA layout. -Add large clean overlay text: -"Fix it with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 04 - Pain - -**Hook:** `Flyer QR codes do not fail because the code is broken.` - -**Title:** `Why Flyer QR Codes Fail` - -**Caption + Hashtags:** `Most flyer QR codes fail because the destination changes, not because the QR itself breaks. qrmaster.net #FlyerMarketing #QRCode #DynamicQRCode #CampaignTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium pain hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar next to a floating flyer-style QR panel, soft blue glow, premium SaaS ad style. -Add large clean overlay text: -"Flyer QR codes do not fail because the code is broken." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium pain slide in vertical 9:16. -Scene: elegant flyer cards on a bright white set with soft shadows and tonal layering, clean print-marketing composition. -Add large clean overlay text: -"They fail when the destination changes later." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium consequence slide in vertical 9:16. -Scene: printed flyer with QR code in the foreground and an outdated campaign page on a phone behind it, subtle mismatch, white editorial environment. -Add large clean overlay text: -"The scan still works. The journey does not." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution slide in vertical 9:16. -Scene: one floating flyer QR card connected to editable destinations, glowing blue connection lines, frosted UI panels, bright white background. -Add large clean overlay text: -"Keep the printed code. Fix the destination." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a clean analytics-focused slide in vertical 9:16. -Scene: elegant dashboard cards, scan analytics, campaign metrics, central QR code, white background, soft blue glow. -Add large clean overlay text: -"And measure flyer performance." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar, bright premium white background, soft cobalt halo, clean ad layout with ample CTA space. -Add large clean overlay text: -"Keep flyers useful with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 05 - Educational - -**Hook:** `Before you print 1,000 QR codes, check this first.` - -**Title:** `Before Bulk Printing QR Codes` - -**Caption + Hashtags:** `Bulk QR creation is powerful, but only if the workflow stays manageable after launch. qrmaster.net #BulkQRCode #QRCode #DynamicQRCode #Operations #BusinessTools #QRMaster` - -### Slide 1 - -```text -Create a premium warning-style hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR grid and subtle checklist markers, soft cobalt glow, premium operations-tech look. -Add large clean overlay text: -"Before you print 1,000 QR codes, check this first." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium educational slide in vertical 9:16. -Scene: elegant grid of QR labels or package cards arranged on a bright white surface, soft tonal depth, calm studio composition. -Add large clean overlay text: -"Bulk creation solves speed." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium educational slide in vertical 9:16. -Scene: clean dashboard environment with many QR assets shown in structured groups, white premium background, soft blue reflections. -Add large clean overlay text: -"But management becomes the real challenge." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium educational slide in vertical 9:16. -Scene: one bulk QR workflow connected to editable destinations, import sheets, and grouped dashboard panels, bright white background, glassy UI style. -Add large clean overlay text: -"You need editable destinations and one dashboard." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium value slide in vertical 9:16. -Scene: organized bulk dashboard cards with scan analytics and grouped QR assets, white premium environment, soft blue glow. -Add large clean overlay text: -"That is how bulk stays usable at scale." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt gradient halo, spacious CTA layout. -Add large clean overlay text: -"Scale with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 06 - Educational - -**Hook:** `Top 5 QR code use cases for restaurants` - -**Title:** `Top 5 Restaurant QR Use Cases` - -**Caption + Hashtags:** `Restaurants can do much more with QR codes than just digital menus. Save this for ideas. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #RestaurantTips #QRMaster` - -### Slide 1 - -```text -Create a premium niche hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating menu-style QR card, soft blue glow, calm restaurant-tech SaaS aesthetic. -Add large clean overlay text: -"Top 5 QR code use cases for restaurants" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant table menu QR setup on a bright white studio set, soft shadows, clean premium composition. -Add large clean overlay text: -"1. Live digital menus" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: refined table card with WiFi-style QR presentation, white editorial background, subtle blue reflections, minimal hospitality-tech look. -Add large clean overlay text: -"2. Guest WiFi access" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant feedback QR card in a bright white premium environment, soft ambient shadow, editorial spacing. -Add large clean overlay text: -"3. Reviews and feedback" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: promotional table card and campaign flyer with QR code in a bright modular setup, white background, soft cobalt glow. -Add large clean overlay text: -"4. Seasonal offers" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: loyalty or contact card concept built around one central QR code, bright white premium background, glassy UI touches, polished SaaS look. -Add large clean overlay text: -"5. Loyalty journeys" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt blue halo, strong restaurant-tech campaign composition. -Add large clean overlay text: -"Restaurants can start with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 07 - Pain - -**Hook:** `Packaging QR codes need a smarter workflow.` - -**Title:** `Packaging QR Needs Flexibility` - -**Caption + Hashtags:** `Packaging lives longer than campaigns. Your QR workflow should account for that. qrmaster.net #PackagingDesign #QRCode #DynamicQRCode #RetailMarketing #Operations #QRMaster` - -### Slide 1 - -```text -Create a premium packaging hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating product-package QR card, soft blue glow, premium retail-tech SaaS feel. -Add large clean overlay text: -"Packaging QR codes need a smarter workflow." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium packaging pain slide in vertical 9:16. -Scene: elegant packaging labels and boxes with QR codes arranged in a bright white product-shot setup, soft tonal depth. -Add large clean overlay text: -"Packaging outlives short campaigns." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium packaging pain slide in vertical 9:16. -Scene: printed package QR in foreground and an outdated mobile destination behind it, white editorial environment, subtle visual mismatch. -Add large clean overlay text: -"That is where static codes start losing value." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution-focused slide in vertical 9:16. -Scene: one central packaging QR card connected to editable product destinations, glowing blue lines, frosted UI panels, bright white background. -Add large clean overlay text: -"One package. Many future updates." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium value slide in vertical 9:16. -Scene: elegant dashboard cards showing scan analytics, campaign insights, QR code at center, white background, soft cobalt glow. -Add large clean overlay text: -"And better scan data over time." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar with phone and QR code, bright premium white background, soft blue halo, strong CTA layout. -Add large clean overlay text: -"Build packaging workflows with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 08 - Educational - -**Hook:** `Top 5 flyer QR mistakes businesses still make` - -**Title:** `Top 5 Flyer QR Mistakes` - -**Caption + Hashtags:** `Flyer campaigns fail faster when the QR workflow is static. Save this before your next print batch. qrmaster.net #FlyerMarketing #QRCode #DynamicQRCode #CampaignTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium list hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar pointing toward a floating flyer-style QR card and subtle numbered UI markers, soft cobalt glow. -Add large clean overlay text: -"Top 5 flyer QR mistakes businesses still make" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant flyer cards in a bright white studio environment, soft tonal layering, premium print-marketing composition. -Add large clean overlay text: -"1. Using one fixed destination" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: printed flyer with QR beside a phone showing a changed campaign page, white editorial background, subtle mismatch. -Add large clean overlay text: -"2. Launching without real-device testing" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: one flyer QR setup without analytics panels, bright white premium background, minimalist business composition. -Add large clean overlay text: -"3. Tracking nothing after the scan" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: multiple flyers with different QR assets arranged in a scattered but polished layout, white background, soft blue reflections. -Add large clean overlay text: -"4. Creating new codes for every update" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: printed flyer assets arranged without a central dashboard, white environment, soft ambient shadows, polished editorial spacing. -Add large clean overlay text: -"5. Managing campaigns across scattered tools" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue gradient halo, spacious CTA composition. -Add large clean overlay text: -"Run smarter flyer campaigns with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 09 - Educational - -**Hook:** `Event QR codes should never be static.` - -**Title:** `Event QR Codes Need Flexibility` - -**Caption + Hashtags:** `Events change fast. QR codes for schedules, maps, and offers should stay editable. qrmaster.net #EventMarketing #QRCode #DynamicQRCode #EventPlanning #MarketingTips #QRMaster` - -### Slide 1 - -```text -Create a premium niche hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating event-style QR card and subtle schedule markers, soft cobalt glow, premium event-tech SaaS style. -Add large clean overlay text: -"Event QR codes should never be static." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium event slide in vertical 9:16. -Scene: elegant poster, badge, and table card with QR code arranged in a bright white studio setup, soft shadows, editorial spacing. -Add large clean overlay text: -"Schedules move." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium event slide in vertical 9:16. -Scene: event map card and phone screen with updated event details, white premium environment, subtle visual shift. -Add large clean overlay text: -"Rooms change." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium event slide in vertical 9:16. -Scene: promotional QR poster and refreshed mobile destination on a phone, bright white editorial background, soft cobalt glow. -Add large clean overlay text: -"Offers update." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium solution slide in vertical 9:16. -Scene: one central event QR card connected to editable destinations, glowing blue lines, frosted panels, bright white background. -Add large clean overlay text: -"One event code should handle all of it." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium value slide in vertical 9:16. -Scene: elegant analytics cards with scan trends and campaign insight panels, white background, soft blue glow. -Add large clean overlay text: -"Plus you can track event engagement." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt halo, premium CTA spacing. -Add large clean overlay text: -"Manage event QR codes with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 10 - Pain - -**Hook:** `Static QR codes create hidden campaign risk.` - -**Title:** `Static QR Campaign Risk` - -**Caption + Hashtags:** `The QR still scans, but the campaign context may already be wrong. qrmaster.net #QRCode #DynamicQRCode #CampaignStrategy #MarketingTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium pain hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle warning dashboard cues, soft cobalt glow, premium SaaS look. -Add large clean overlay text: -"Static QR codes create hidden campaign risk." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium campaign pain slide in vertical 9:16. -Scene: printed flyer and poster with QR code shown in a bright white studio environment, soft tonal depth, minimal premium composition. -Add large clean overlay text: -"Campaigns change after launch." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium campaign pain slide in vertical 9:16. -Scene: same printed QR asset with an outdated landing page on the phone beside it, white editorial environment, subtle mismatch. -Add large clean overlay text: -"Static codes do not adapt with them." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution-focused slide in vertical 9:16. -Scene: one central QR code card connected to editable campaign destinations, glowing blue lines, frosted UI panels, bright white background. -Add large clean overlay text: -"Dynamic codes reduce that risk." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium analytics slide in vertical 9:16. -Scene: elegant dashboard cards with scan analytics, campaign insights, QR code at center, white background, soft cobalt glow. -Add large clean overlay text: -"And they show what is working." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar, bright premium white background, soft blue gradient halo, spacious CTA layout. -Add large clean overlay text: -"Run safer campaigns with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 11 - Educational - -**Hook:** `How marketers track offline campaigns with QR codes` - -**Title:** `Track Offline With QR` - -**Caption + Hashtags:** `Print does not have to be a black box. QR analytics can connect offline campaigns with real scan data. qrmaster.net #MarketingAnalytics #QRCode #DynamicQRCode #PrintMarketing #CampaignTracking #QRMaster` - -### Slide 1 - -```text -Create a premium educational hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and elegant analytics panels, soft cobalt glow, premium SaaS ad direction. -Add large clean overlay text: -"How marketers track offline campaigns with QR codes" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium educational slide in vertical 9:16. -Scene: printed flyer, poster, and table card arranged on a bright white set, soft tonal depth, editorial spacing. -Add large clean overlay text: -"Print gets attention." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium educational slide in vertical 9:16. -Scene: a central QR code card linking print assets to a phone destination, white premium background, soft glassmorphism interface accents. -Add large clean overlay text: -"QR codes connect print to digital action." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium analytics slide in vertical 9:16. -Scene: elegant dashboard cards with scan trends, location markers, device icons, campaign insight panels, white background, soft blue glow. -Add large clean overlay text: -"Now you can see scans, timing, and device trends." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium value slide in vertical 9:16. -Scene: polished dashboard environment combining QR assets and analytics, bright premium white background, calm editorial hierarchy. -Add large clean overlay text: -"That makes offline easier to optimize." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright white background, soft cobalt halo, clean CTA composition. -Add large clean overlay text: -"Track print with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 12 - Educational - -**Hook:** `Top 5 packaging QR use cases for modern brands` - -**Title:** `Top 5 Packaging QR Use Cases` - -**Caption + Hashtags:** `Packaging QR codes can do far more than point to a generic homepage. Save this for brand ideas. qrmaster.net #PackagingDesign #QRCode #DynamicQRCode #RetailMarketing #BrandStrategy #QRMaster` - -### Slide 1 - -```text -Create a premium packaging hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating packaging-style QR card, soft cobalt glow, premium retail-tech SaaS aesthetic. -Add large clean overlay text: -"Top 5 packaging QR use cases for modern brands" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant product package with QR label in a bright white premium studio setup, soft ambient shadow. -Add large clean overlay text: -"1. Product detail pages" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: packaging QR concept with a story-rich landing page on a phone, white editorial background, soft blue reflections. -Add large clean overlay text: -"2. Brand story and origin" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: package card with how-to or setup content on a phone nearby, bright white environment, minimal premium composition. -Add large clean overlay text: -"3. Instructions and onboarding" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: promotional package QR with campaign or discount destination hinted through clean floating cards, white background, soft cobalt glow. -Add large clean overlay text: -"4. Promotions and launches" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: package QR linked to analytics and customer feedback cards, bright white premium background, glassmorphism UI touches. -Add large clean overlay text: -"5. Product analytics and feedback" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, strong CTA layout. -Add large clean overlay text: -"Build packaging flows with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 13 - Educational - -**Hook:** `GDPR-friendly QR tracking is possible.` - -**Title:** `Privacy-First QR Tracking` - -**Caption + Hashtags:** `You can measure scans without building a creepy tracking workflow. qrmaster.net #GDPR #QRCode #DynamicQRCode #MarketingAnalytics #PrivacyFirst #QRMaster` - -### Slide 1 - -```text -Create a premium privacy-first hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle shield icon, soft cobalt glow, premium privacy-tech SaaS style. -Add large clean overlay text: -"GDPR-friendly QR tracking is possible." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium privacy slide in vertical 9:16. -Scene: elegant QR code card shown with soft analytics panels and a calm shield-like design cue, white premium background, subtle blue reflections. -Add large clean overlay text: -"Businesses still need scan insight." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium privacy slide in vertical 9:16. -Scene: analytics cards and privacy-first interface cues shown together, bright white editorial environment, soft tonal depth. -Add large clean overlay text: -"But they do not need invasive tracking." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium value slide in vertical 9:16. -Scene: elegant dashboard cards with scan metrics, device markers, and privacy-safe styling, white background, soft cobalt glow. -Add large clean overlay text: -"Privacy-first analytics can still guide smart decisions." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft blue gradient halo, spacious CTA layout. -Add large clean overlay text: -"Go privacy-first with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 14 - Pain - -**Hook:** `You do not need a new QR code for every update.` - -**Title:** `Stop Replacing QR Codes` - -**Caption + Hashtags:** `Many teams still create a brand-new QR code every time content changes. That is a workflow problem. qrmaster.net #QRCode #DynamicQRCode #Operations #MarketingWorkflow #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium contrarian hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and duplicate QR ghosts, soft cobalt glow, premium SaaS ad style. -Add large clean overlay text: -"You do not need a new QR code for every update." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium pain slide in vertical 9:16. -Scene: multiple similar QR cards arranged in a polished but obviously duplicated layout, bright white premium environment, soft shadows. -Add large clean overlay text: -"New code after every change creates chaos." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium pain slide in vertical 9:16. -Scene: menus, flyers, packaging, and posters each showing different QR assets, white editorial background, subtle visual clutter but still premium. -Add large clean overlay text: -"It also breaks consistency across print." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution slide in vertical 9:16. -Scene: one central QR code card connected to multiple changing destinations, glowing blue lines, frosted UI panels, bright white background. -Add large clean overlay text: -"One code should handle future changes." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium value slide in vertical 9:16. -Scene: organized dashboard with one clean QR system and analytics panels, white premium environment, soft cobalt glow. -Add large clean overlay text: -"That is the cleaner way to scale." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar, bright premium white background, soft cobalt halo, clean editorial CTA spacing. -Add large clean overlay text: -"Scale cleaner with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 15 - Educational - -**Hook:** `Bulk QR creation from CSV can save hours.` - -**Title:** `Bulk QR From CSV` - -**Caption + Hashtags:** `If your team needs hundreds of QR codes, manual creation is the wrong workflow. qrmaster.net #BulkQRCode #QRCode #DynamicQRCode #Operations #SaaS #QRMaster` - -### Slide 1 - -```text -Create a premium operations hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR grid and spreadsheet cues, soft cobalt glow, premium operations-tech feel. -Add large clean overlay text: -"Bulk QR creation from CSV can save hours." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium educational slide in vertical 9:16. -Scene: elegant group of QR labels or cards shown in a clean modular grid, bright white environment, soft tonal depth. -Add large clean overlay text: -"Manual creation does not scale." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium educational slide in vertical 9:16. -Scene: spreadsheet-style import cues feeding into grouped QR cards, white premium background, subtle glassmorphism panels. -Add large clean overlay text: -"CSV import speeds up the first step." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium educational slide in vertical 9:16. -Scene: bulk QR system connected to an organized dashboard and editable destination panels, bright white background, soft cobalt glow. -Add large clean overlay text: -"The real win is managing them in one system." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium value slide in vertical 9:16. -Scene: elegant bulk dashboard with analytics cards and grouped assets, white premium environment, polished editorial hierarchy. -Add large clean overlay text: -"That is how bulk becomes operationally useful." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright white background, soft blue gradient halo, spacious CTA layout. -Add large clean overlay text: -"Create in bulk with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 16 - Educational - -**Hook:** `Top 5 reasons teams switch to dynamic QR codes` - -**Title:** `Top 5 Reasons Teams Switch` - -**Caption + Hashtags:** `The switch usually happens for workflow reasons first, not just aesthetics. qrmaster.net #QRCode #DynamicQRCode #BusinessTools #MarketingWorkflow #Operations #QRMaster` - -### Slide 1 - -```text -Create a premium list hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle numbered UI cues, soft cobalt glow, calm premium SaaS style. -Add large clean overlay text: -"Top 5 reasons teams switch to dynamic QR codes" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant printed QR materials in a bright white studio setup, soft tonal depth, clean business composition. -Add large clean overlay text: -"1. They want fewer reprints" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: phone showing an updated destination beside printed collateral, white editorial background, subtle blue reflections. -Add large clean overlay text: -"2. They need editable destinations" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant analytics cards around a central QR code, white premium background, soft cobalt glow. -Add large clean overlay text: -"3. They want real scan analytics" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: organized dashboard environment with grouped QR assets, bright white editorial space, polished glassy UI panels. -Add large clean overlay text: -"4. They need one dashboard" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: privacy-friendly analytics cues and secure business-tech visual language, white premium background, soft ambient shadows. -Add large clean overlay text: -"5. They care about cleaner workflows and privacy" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt blue halo, spacious CTA composition. -Add large clean overlay text: -"Switch with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 17 - Pain - -**Hook:** `Your PDF QR code may already be outdated.` - -**Title:** `Outdated PDF QR Problem` - -**Caption + Hashtags:** `PDF links move. Files get replaced. Static QR codes do not keep up. qrmaster.net #QRCode #DynamicQRCode #PDF #PrintMarketing #BusinessTips #QRMaster` - -### Slide 1 - -```text -Create a premium problem-first hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating PDF-style QR card, soft cobalt glow, premium SaaS look. -Add large clean overlay text: -"Your PDF QR code may already be outdated." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium pain slide in vertical 9:16. -Scene: elegant printed brochure or poster with QR code shown in a bright white studio environment, soft tonal depth. -Add large clean overlay text: -"The code still scans." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium pain slide in vertical 9:16. -Scene: mobile screen showing a moved or updated PDF destination beside printed collateral, white editorial background, subtle mismatch. -Add large clean overlay text: -"But the file behind it changed." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium solution-focused slide in vertical 9:16. -Scene: one central QR code card connected to editable PDF destination cards, glowing blue lines, frosted UI panels, bright white background. -Add large clean overlay text: -"The print should stay stable. The file should stay flexible." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium analytics slide in vertical 9:16. -Scene: elegant dashboard cards and PDF download/scan insight panels, white premium environment, soft cobalt glow. -Add large clean overlay text: -"And you should still be able to measure scans." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar, bright premium white background, soft blue gradient halo, strong CTA layout. -Add large clean overlay text: -"Manage file QR codes with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 18 - Educational - -**Hook:** `Top 5 things to measure after a QR scan` - -**Title:** `Top 5 QR Metrics` - -**Caption + Hashtags:** `If you track QR campaigns, these are the first five things worth watching. qrmaster.net #MarketingAnalytics #QRCode #DynamicQRCode #CampaignTracking #BusinessTips #QRMaster` - -### Slide 1 - -```text -Create a premium metrics hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and elegant dashboard panels, soft cobalt glow, premium SaaS ad style. -Add large clean overlay text: -"Top 5 things to measure after a QR scan" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: dashboard cards with scan count cues, white premium background, soft blue reflections. -Add large clean overlay text: -"1. Total scans" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: analytics cards with time-based activity visuals, bright white editorial environment, polished hierarchy. -Add large clean overlay text: -"2. Scan timing" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: location pin cards around a central QR code, white background, soft cobalt glow. -Add large clean overlay text: -"3. Location trends" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: device insight cards shown in a clean glassmorphism layout, bright white premium background. -Add large clean overlay text: -"4. Device mix" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: campaign comparison dashboard with QR assets and performance cards, white background, soft ambient shadows. -Add large clean overlay text: -"5. Campaign-level performance" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, spacious CTA layout. -Add large clean overlay text: -"Measure more with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 19 - Educational - -**Hook:** `7 ways one QR dashboard helps a growing team` - -**Title:** `7 Ways One QR Dashboard Helps` - -**Caption + Hashtags:** `Growth makes QR workflows messier unless everything lives in one system. qrmaster.net #Operations #QRCode #DynamicQRCode #SaaS #MarketingWorkflow #QRMaster` - -### Slide 1 - -```text -Create a premium operations hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR dashboard panel, soft cobalt glow, premium business-tech composition. -Add large clean overlay text: -"7 ways one QR dashboard helps a growing team" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: organized QR asset view on a bright white dashboard-inspired set, soft tonal depth. -Add large clean overlay text: -"1. One place for every code" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: editable destination panels around a central QR card, white premium background, soft blue reflections. -Add large clean overlay text: -"2. Faster updates after launch" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: grouped campaign view with QR assets, bright white environment, polished editorial spacing. -Add large clean overlay text: -"3. Cleaner campaign organization" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: analytics cards and performance panels in a clean glassy arrangement, white premium background. -Add large clean overlay text: -"4. Better scan visibility" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: bulk management cues with grouped QR items and import panels, bright white editorial environment. -Add large clean overlay text: -"5. Easier bulk workflows" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a premium list slide in vertical 9:16. -Scene: team-friendly dashboard structure with permissions or grouping cues, white background, soft cobalt glow. -Add large clean overlay text: -"6. Less duplicate work" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 8 - -```text -Create a premium list slide in vertical 9:16. -Scene: dashboard and print assets shown in one unified premium system, white environment, subtle ambient shadow. -Add large clean overlay text: -"7. A more scalable print-to-digital workflow" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 9 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt gradient halo, spacious CTA composition. -Add large clean overlay text: -"Scale with one system: QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 20 - Educational - -**Hook:** `Top 5 campaigns that work better with dynamic QR codes` - -**Title:** `5 Campaigns Better With Dynamic QR` - -**Caption + Hashtags:** `Some campaigns benefit massively from editable QR destinations and real scan data. qrmaster.net #CampaignStrategy #QRCode #DynamicQRCode #MarketingTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium campaign hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle campaign panels, soft cobalt glow, premium SaaS ad style. -Add large clean overlay text: -"Top 5 campaigns that work better with dynamic QR codes" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant flyer campaign setup in a bright white studio environment, soft tonal depth, clean print-marketing composition. -Add large clean overlay text: -"1. Flyer campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: event poster or badge with QR code on a white editorial set, soft ambient shadows, polished hierarchy. -Add large clean overlay text: -"2. Event campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: restaurant menu QR setup and table card shown in a bright premium environment, soft cobalt reflections. -Add large clean overlay text: -"3. Restaurant promotions" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: product packaging with QR labels in a clean white studio, editorial spacing, subtle tonal depth. -Add large clean overlay text: -"4. Packaging campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: brochure or sales collateral with QR code, bright white premium background, glassy campaign accents. -Add large clean overlay text: -"5. Long-running print campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt halo, strong CTA composition. -Add large clean overlay text: -"Run them smarter with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 21 - Pain - -**Hook:** `Static QR codes waste more money than they look.` - -**Title:** `The Hidden Cost Of Static QR` - -**Caption + Hashtags:** `Wrong destinations, duplicate assets, extra reprints, and missing analytics add up fast. qrmaster.net #QRCode #DynamicQRCode #MarketingCosts #BusinessTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium pain hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle cost cues, soft cobalt glow, premium SaaS ad style. -Add large clean overlay text: -"Static QR codes waste more money than they look." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium cost-focused slide in vertical 9:16. -Scene: printed materials stacked in a bright white studio set, soft tonal depth, ambient navy-tinted shadows, minimal premium styling. -Add large clean overlay text: -"Reprints cost time and budget." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium cost-focused slide in vertical 9:16. -Scene: printed collateral paired with an outdated destination on a phone, white editorial background, subtle mismatch. -Add large clean overlay text: -"Wrong destinations cost trust." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium cost-focused slide in vertical 9:16. -Scene: QR assets shown without analytics panels, bright white premium environment, clean but intentionally limited workflow composition. -Add large clean overlay text: -"No scan data costs learning." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium solution slide in vertical 9:16. -Scene: one central QR system with editable destinations and analytics panels, white background, soft cobalt glow, refined editorial structure. -Add large clean overlay text: -"Dynamic workflows reduce all three." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft blue gradient halo, spacious CTA composition. -Add large clean overlay text: -"Reduce waste with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 22 - Direct Selling - -**Hook:** `The easiest way to manage QR codes for your business` - -**Title:** `Manage QR Codes The Easy Way` - -**Caption + Hashtags:** `If you need editable, trackable QR codes that work for real business use, start here. qrmaster.net #QRCode #DynamicQRCode #BusinessTools #SaaS #MarketingTools #QRMaster` - -### Slide 1 - -```text -Create a premium selling hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a sleek floating QR card and subtle dashboard panels, soft blue glow, premium SaaS ad feel. -Add large clean overlay text: -"The easiest way to manage QR codes for your business" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium selling slide in vertical 9:16. -Scene: clean central QR code card presented like a gallery object on a bright white surface, frosted UI accents, soft ambient shadow. -Add large clean overlay text: -"Create dynamic codes in minutes" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium selling slide in vertical 9:16. -Scene: one QR card connected to editable destination panels, glowing blue lines, frosted glass interface cards, white editorial background. -Add large clean overlay text: -"Update links anytime after printing" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium selling slide in vertical 9:16. -Scene: elegant dashboard cards, scan analytics, location markers, QR code at center, bright white background, soft cobalt glow, polished editorial look. -Add large clean overlay text: -"Track scans across campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium selling slide in vertical 9:16. -Scene: one clean dashboard environment with organized QR assets, frosted UI panels, white background, soft blue gradient accents, calm high-end SaaS look. -Add large clean overlay text: -"Keep everything in one dashboard" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded hero slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft blue halo, spacious CTA layout. -Add large clean overlay text: -"Start with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 23 - Direct Selling - -**Hook:** `Stop reprinting. Start with QR Master.` - -**Title:** `Stop Reprinting` - -**Caption + Hashtags:** `Use one code, update the destination anytime, and track every scan. Start with QR Master at qrmaster.net. #QRCode #DynamicQRCode #MarketingTools #SaaS #BusinessGrowth #QRMaster` - -### Slide 1 - -```text -Create a premium direct-response hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar next to a floating QR card, soft cobalt glow, minimal premium ad composition. -Add large clean overlay text: -"Stop reprinting. Start with QR Master." -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium direct-response slide in vertical 9:16. -Scene: elegant print assets and one central QR code card on a bright white set, soft tonal layering, editorial negative space. -Add large clean overlay text: -"Use one code for changing content" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium direct-response slide in vertical 9:16. -Scene: one QR card connected to editable destination panels, glowing blue lines, frosted UI, white background, clean modern SaaS style. -Add large clean overlay text: -"Edit the destination anytime" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium direct-response slide in vertical 9:16. -Scene: elegant dashboard cards, scan analytics, campaign insights, QR code at center, white background, soft blue glow, polished editorial look. -Add large clean overlay text: -"Track every scan" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium direct-response slide in vertical 9:16. -Scene: clean bright workflow scene combining QR code management, analytics, and print flexibility, white premium environment, glassmorphism accents, no clutter. -Add large clean overlay text: -"Save time, budget, and reprints" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded hero slide in vertical 9:16. -Scene: full branded QR Master avatar with phone and QR code, bright white premium background, soft cobalt glow, strong CTA composition. -Add large clean overlay text: -"QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 24 - Direct Selling - -**Hook:** `One QR platform for menus, flyers, packaging, and bulk creation` - -**Title:** `One QR Platform` - -**Caption + Hashtags:** `If your business uses QR codes across more than one workflow, centralization matters. qrmaster.net #QRCode #DynamicQRCode #BusinessTools #Operations #SaaS #QRMaster` - -### Slide 1 - -```text -Create a premium platform-style hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a central floating QR card with surrounding workflow icons, soft cobalt glow, premium SaaS style. -Add large clean overlay text: -"One QR platform for menus, flyers, packaging, and bulk creation" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium selling slide in vertical 9:16. -Scene: elegant menu QR setup in a bright white premium environment, soft shadows, editorial spacing. -Add large clean overlay text: -"Use it for restaurant menus" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium selling slide in vertical 9:16. -Scene: flyer and poster campaign QR setup on a clean white set, soft cobalt reflections, premium print-marketing look. -Add large clean overlay text: -"Use it for flyer campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium selling slide in vertical 9:16. -Scene: packaging labels and QR product cards shown in a bright white studio environment, soft tonal depth. -Add large clean overlay text: -"Use it for packaging workflows" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium selling slide in vertical 9:16. -Scene: bulk dashboard cues with grouped QR assets and import panels, white premium background, subtle glassmorphism. -Add large clean overlay text: -"Use it for bulk creation too" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright white background, soft cobalt gradient halo, spacious CTA layout. -Add large clean overlay text: -"Centralize with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Slideshow 25 - Direct Selling - -**Hook:** `If your QR workflow is growing, your tools should grow with it` - -**Title:** `Grow Your QR Workflow` - -**Caption + Hashtags:** `Growth breaks messy systems first. Use a QR workflow that can scale with your campaigns. qrmaster.net #QRCode #DynamicQRCode #Growth #BusinessTools #Operations #QRMaster` - -### Slide 1 - -```text -Create a premium growth-focused selling hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR dashboard card and subtle scale cues, soft cobalt glow, premium SaaS look. -Add large clean overlay text: -"If your QR workflow is growing, your tools should grow with it" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 2 - -```text -Create a premium selling slide in vertical 9:16. -Scene: elegant printed collateral shown across menu, flyer, event, and packaging objects on a bright white set, soft tonal depth. -Add large clean overlay text: -"More campaigns mean more moving parts" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 3 - -```text -Create a premium selling slide in vertical 9:16. -Scene: multiple QR assets and scattered tools hinted in a polished but fragmented business-tech composition, white editorial background. -Add large clean overlay text: -"Messy systems break first" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 4 - -```text -Create a premium selling slide in vertical 9:16. -Scene: one clean QR system connecting print assets, editable destinations, and analytics panels, bright white premium background, soft blue glow. -Add large clean overlay text: -"A centralized QR workflow scales better" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 5 - -```text -Create a premium selling slide in vertical 9:16. -Scene: polished dashboard environment with grouped QR assets, analytics cards, and campaign views, white premium background, refined editorial hierarchy. -Add large clean overlay text: -"That is what QR Master is built for" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - -### Slide 6 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, spacious CTA layout. -Add large clean overlay text: -"Grow with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered in the middle of the frame, not at the top or bottom. -``` - ---- - -## Final Note - -This file gives you 25 additional slideshow prompt packs in the same visual system as the existing QR Master TikTok assets. - -The smartest next step is: -- start with pain and educational hooks -- identify the top 3 winners -- only then remake those winners with one controlled change each +# TikTok Slideshow 25-Pack Prompts for QR Master + +This document contains 25 TikTok slideshow prompt packs for QR Master. + +The pack is built for: +- educational discovery +- pain/problem awareness +- niche use-case validation +- light direct-response testing + +Distribution: +- 14 educational +- 7 pain/problem +- 4 direct selling + +These prompts follow the same premium visual direction as the existing QR Master slideshow files: +- Precision Editorial / "The Digital Architect" +- bright premium SaaS aesthetic +- intentional asymmetry +- tonal depth instead of hard borders +- soft glassmorphism and blue-lit gradients +- clean editorial hierarchy with strong headlines + +## Shared Global Prompt + +Use this global prompt before any slideshow pack: + +```text +Create a premium TikTok slideshow in vertical 9:16 format with built-in text overlay on every slide. +Style: bright, clean, modern, minimal editorial SaaS aesthetic. +Creative direction: Precision Editorial, high white space, intentional asymmetry, tonal depth, calm authority, premium digital craftsmanship. +Color palette: white, soft warm light gray, cobalt blue accents, subtle blue gradients, soft ambient navy-tinted shadows. +Lighting: bright studio daylight, soft glow, polished, airy. +Typography: bold modern sans-serif similar to Inter, large headline, very short text, clean spacing, high contrast, strong hierarchy. +Layout: editorial composition, asymmetrical but balanced, lots of negative space, QR code treated like a hero object. +Text placement: overlay text must be centered in the middle of the frame — not at the top, not at the bottom. +UI style: floating frosted panels, surface shifts instead of hard lines, soft glassmorphism, premium SaaS ad direction. +Important: +- Use exact overlay text provided for each slide. +- Keep text short and correctly spelled. +- Keep the text centered in the middle of the frame — never top-heavy, never bottom-heavy. +- No paragraph text. +- No clutter. +- No dark background. +- No generic stock-office look. +- No 1px hard borders. +- Use soft tonal transitions, ghost borders only if necessary. +- Slide 1 uses the avatar in an unbranded way only. +- The final slide is the only slide allowed to show QR Master branding. +- On slide 1, use the avatar as an unbranded character reference only, with no visible logo text on hat or hoodie. +- On the final slide, show the full branded avatar clearly. +- Keep every slide polished, premium, and TikTok-ready. +``` + +## Shared Negative Prompt + +```text +No dark theme, no messy backgrounds, no harsh shadows, no cheap cartoon look, no toy aesthetic, no cluttered desks, no random props, no heavy borders, no low-detail UI, no gibberish text blocks, no typo-filled posters, no loud neon colors, no generic corporate office scenes +``` + +## Shared Slide Logic + +- Slide 1: hook with unbranded avatar +- Middle slides: problem, use case, insight, or list progression +- Final slide: CTA with branded avatar + +## Suggested Testing Structure + +Run these in waves instead of publishing them randomly: + +1. Pain hooks first +2. Educational proof next +3. Niche use-case slideshows after that +4. Direct selling only after you know the strongest hooks + +When testing: +- keep the visual system stable +- change one messaging variable at a time +- compare only similar slideshow types inside the same wave + +--- + +## Slideshow 01 - Pain + +**Hook:** `One menu update should not mean one more reprint.` + +**Title:** `Menu Update Without Reprints` + +**Caption + Hashtags:** `Restaurants should not need a new print run every time a menu changes. Save this if you use QR menus. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #MenuDesign #QRMaster` + +### Slide 1 + +```text +Create a premium problem-first hook slide in vertical 9:16. +Scene: bright editorial white background, unbranded avatar beside a floating menu-style QR card, soft cobalt glow, premium restaurant-tech SaaS look. +Add large clean overlay text: +"One menu update should not mean one more reprint." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium hospitality pain slide in vertical 9:16. +Scene: elegant printed table menu and QR card in a bright minimal studio environment, soft tonal depth, calm premium composition. +Add large clean overlay text: +"Static menu QR codes lock you into one version." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium hospitality pain slide in vertical 9:16. +Scene: updated digital menu on a phone beside unchanged printed table collateral, white editorial environment, subtle mismatch. +Add large clean overlay text: +"One price change creates a print problem." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution-focused slide in vertical 9:16. +Scene: one menu QR card connected to editable destination panels, glowing blue lines, frosted UI cards, bright white premium background. +Add large clean overlay text: +"Keep the code. Update the menu." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a clean analytics-focused slide in vertical 9:16. +Scene: elegant dashboard cards with scan trends, location markers, device icons, central QR code, white background, soft blue glow. +Add large clean overlay text: +"See what guests actually scan." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt halo, spacious CTA composition. +Add large clean overlay text: +"Use QR Master for live menus" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 02 - Educational + +**Hook:** `How to change a QR destination after printing.` + +**Title:** `Change The Destination, Not The Print` + +**Caption + Hashtags:** `If you print QR codes on menus, flyers, or packaging, this is the workflow to know. qrmaster.net #QRCode #DynamicQRCode #PrintMarketing #MarketingTips #SmallBusiness #QRMaster` + +### Slide 1 + +```text +Create a premium educational hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar holding a phone and gesturing toward a floating QR card with subtle edit icon, soft glassmorphism accents. +Add large clean overlay text: +"How to change a QR destination after printing." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium explanatory slide in vertical 9:16. +Scene: elegant printed QR materials on one side and a fresh phone screen on the other, bright white environment, soft blue reflections. +Add large clean overlay text: +"Static codes lock the destination." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium workflow slide in vertical 9:16. +Scene: one central QR card shown like a gallery object, with subtle indicators that the target can change behind it, white premium background. +Add large clean overlay text: +"Dynamic codes separate print from destination." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution slide in vertical 9:16. +Scene: one floating QR card connected to multiple editable destinations, glowing blue lines, frosted interface cards, bright white background. +Add large clean overlay text: +"Print once. Update anytime." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium value slide in vertical 9:16. +Scene: elegant dashboard cards, scan analytics, location insight cards, central QR code, white background, soft cobalt glow. +Add large clean overlay text: +"And track the scans too." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar, bright premium white background, soft blue gradient halo, clean editorial spacing for CTA. +Add large clean overlay text: +"Start with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 03 - Educational + +**Hook:** `Top 5 signs your QR workflow is broken` + +**Title:** `Top 5 Broken QR Workflow Signs` + +**Caption + Hashtags:** `If your team prints QR codes, these are the warning signs to look for. Save this checklist. qrmaster.net #QRCode #DynamicQRCode #Operations #MarketingTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium checklist hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle warning UI markers, soft cobalt glow, calm premium SaaS look. +Add large clean overlay text: +"Top 5 signs your QR workflow is broken" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant print collateral and one static QR code in a bright white studio environment, soft tonal depth. +Add large clean overlay text: +"1. Every update needs a new print run" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: close-up of printed QR collateral beside a changed mobile destination, clean white editorial environment. +Add large clean overlay text: +"2. Old destinations keep going live" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: one QR code without surrounding analytics or insight panels, bright white premium background. +Add large clean overlay text: +"3. You cannot see what gets scanned" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: multiple mismatched printed QR assets shown across menu, flyer, and packaging objects, white background, subtle blue reflections. +Add large clean overlay text: +"4. Your team keeps creating duplicate codes" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: printed QR assets arranged without a central dashboard view, bright white environment, polished business-tech composition. +Add large clean overlay text: +"5. No one knows where the latest version lives" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt blue glow, spacious CTA layout. +Add large clean overlay text: +"Fix it with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 04 - Pain + +**Hook:** `Flyer QR codes do not fail because the code is broken.` + +**Title:** `Why Flyer QR Codes Fail` + +**Caption + Hashtags:** `Most flyer QR codes fail because the destination changes, not because the QR itself breaks. qrmaster.net #FlyerMarketing #QRCode #DynamicQRCode #CampaignTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium pain hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar next to a floating flyer-style QR panel, soft blue glow, premium SaaS ad style. +Add large clean overlay text: +"Flyer QR codes do not fail because the code is broken." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium pain slide in vertical 9:16. +Scene: elegant flyer cards on a bright white set with soft shadows and tonal layering, clean print-marketing composition. +Add large clean overlay text: +"They fail when the destination changes later." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium consequence slide in vertical 9:16. +Scene: printed flyer with QR code in the foreground and an outdated campaign page on a phone behind it, subtle mismatch, white editorial environment. +Add large clean overlay text: +"The scan still works. The journey does not." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution slide in vertical 9:16. +Scene: one floating flyer QR card connected to editable destinations, glowing blue connection lines, frosted UI panels, bright white background. +Add large clean overlay text: +"Keep the printed code. Fix the destination." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a clean analytics-focused slide in vertical 9:16. +Scene: elegant dashboard cards, scan analytics, campaign metrics, central QR code, white background, soft blue glow. +Add large clean overlay text: +"And measure flyer performance." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar, bright premium white background, soft cobalt halo, clean ad layout with ample CTA space. +Add large clean overlay text: +"Keep flyers useful with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 05 - Educational + +**Hook:** `Before you print 1,000 QR codes, check this first.` + +**Title:** `Before Bulk Printing QR Codes` + +**Caption + Hashtags:** `Bulk QR creation is powerful, but only if the workflow stays manageable after launch. qrmaster.net #BulkQRCode #QRCode #DynamicQRCode #Operations #BusinessTools #QRMaster` + +### Slide 1 + +```text +Create a premium warning-style hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR grid and subtle checklist markers, soft cobalt glow, premium operations-tech look. +Add large clean overlay text: +"Before you print 1,000 QR codes, check this first." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium educational slide in vertical 9:16. +Scene: elegant grid of QR labels or package cards arranged on a bright white surface, soft tonal depth, calm studio composition. +Add large clean overlay text: +"Bulk creation solves speed." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium educational slide in vertical 9:16. +Scene: clean dashboard environment with many QR assets shown in structured groups, white premium background, soft blue reflections. +Add large clean overlay text: +"But management becomes the real challenge." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium educational slide in vertical 9:16. +Scene: one bulk QR workflow connected to editable destinations, import sheets, and grouped dashboard panels, bright white background, glassy UI style. +Add large clean overlay text: +"You need editable destinations and one dashboard." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium value slide in vertical 9:16. +Scene: organized bulk dashboard cards with scan analytics and grouped QR assets, white premium environment, soft blue glow. +Add large clean overlay text: +"That is how bulk stays usable at scale." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt gradient halo, spacious CTA layout. +Add large clean overlay text: +"Scale with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 06 - Educational + +**Hook:** `Top 5 QR code use cases for restaurants` + +**Title:** `Top 5 Restaurant QR Use Cases` + +**Caption + Hashtags:** `Restaurants can do much more with QR codes than just digital menus. Save this for ideas. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #RestaurantTips #QRMaster` + +### Slide 1 + +```text +Create a premium niche hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating menu-style QR card, soft blue glow, calm restaurant-tech SaaS aesthetic. +Add large clean overlay text: +"Top 5 QR code use cases for restaurants" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant table menu QR setup on a bright white studio set, soft shadows, clean premium composition. +Add large clean overlay text: +"1. Live digital menus" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: refined table card with WiFi-style QR presentation, white editorial background, subtle blue reflections, minimal hospitality-tech look. +Add large clean overlay text: +"2. Guest WiFi access" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant feedback QR card in a bright white premium environment, soft ambient shadow, editorial spacing. +Add large clean overlay text: +"3. Reviews and feedback" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: promotional table card and campaign flyer with QR code in a bright modular setup, white background, soft cobalt glow. +Add large clean overlay text: +"4. Seasonal offers" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: loyalty or contact card concept built around one central QR code, bright white premium background, glassy UI touches, polished SaaS look. +Add large clean overlay text: +"5. Loyalty journeys" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt blue halo, strong restaurant-tech campaign composition. +Add large clean overlay text: +"Restaurants can start with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 07 - Pain + +**Hook:** `Packaging QR codes need a smarter workflow.` + +**Title:** `Packaging QR Needs Flexibility` + +**Caption + Hashtags:** `Packaging lives longer than campaigns. Your QR workflow should account for that. qrmaster.net #PackagingDesign #QRCode #DynamicQRCode #RetailMarketing #Operations #QRMaster` + +### Slide 1 + +```text +Create a premium packaging hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating product-package QR card, soft blue glow, premium retail-tech SaaS feel. +Add large clean overlay text: +"Packaging QR codes need a smarter workflow." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium packaging pain slide in vertical 9:16. +Scene: elegant packaging labels and boxes with QR codes arranged in a bright white product-shot setup, soft tonal depth. +Add large clean overlay text: +"Packaging outlives short campaigns." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium packaging pain slide in vertical 9:16. +Scene: printed package QR in foreground and an outdated mobile destination behind it, white editorial environment, subtle visual mismatch. +Add large clean overlay text: +"That is where static codes start losing value." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution-focused slide in vertical 9:16. +Scene: one central packaging QR card connected to editable product destinations, glowing blue lines, frosted UI panels, bright white background. +Add large clean overlay text: +"One package. Many future updates." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium value slide in vertical 9:16. +Scene: elegant dashboard cards showing scan analytics, campaign insights, QR code at center, white background, soft cobalt glow. +Add large clean overlay text: +"And better scan data over time." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar with phone and QR code, bright premium white background, soft blue halo, strong CTA layout. +Add large clean overlay text: +"Build packaging workflows with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 08 - Educational + +**Hook:** `Top 5 flyer QR mistakes businesses still make` + +**Title:** `Top 5 Flyer QR Mistakes` + +**Caption + Hashtags:** `Flyer campaigns fail faster when the QR workflow is static. Save this before your next print batch. qrmaster.net #FlyerMarketing #QRCode #DynamicQRCode #CampaignTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium list hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar pointing toward a floating flyer-style QR card and subtle numbered UI markers, soft cobalt glow. +Add large clean overlay text: +"Top 5 flyer QR mistakes businesses still make" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant flyer cards in a bright white studio environment, soft tonal layering, premium print-marketing composition. +Add large clean overlay text: +"1. Using one fixed destination" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: printed flyer with QR beside a phone showing a changed campaign page, white editorial background, subtle mismatch. +Add large clean overlay text: +"2. Launching without real-device testing" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: one flyer QR setup without analytics panels, bright white premium background, minimalist business composition. +Add large clean overlay text: +"3. Tracking nothing after the scan" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: multiple flyers with different QR assets arranged in a scattered but polished layout, white background, soft blue reflections. +Add large clean overlay text: +"4. Creating new codes for every update" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: printed flyer assets arranged without a central dashboard, white environment, soft ambient shadows, polished editorial spacing. +Add large clean overlay text: +"5. Managing campaigns across scattered tools" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue gradient halo, spacious CTA composition. +Add large clean overlay text: +"Run smarter flyer campaigns with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 09 - Educational + +**Hook:** `Event QR codes should never be static.` + +**Title:** `Event QR Codes Need Flexibility` + +**Caption + Hashtags:** `Events change fast. QR codes for schedules, maps, and offers should stay editable. qrmaster.net #EventMarketing #QRCode #DynamicQRCode #EventPlanning #MarketingTips #QRMaster` + +### Slide 1 + +```text +Create a premium niche hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating event-style QR card and subtle schedule markers, soft cobalt glow, premium event-tech SaaS style. +Add large clean overlay text: +"Event QR codes should never be static." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium event slide in vertical 9:16. +Scene: elegant poster, badge, and table card with QR code arranged in a bright white studio setup, soft shadows, editorial spacing. +Add large clean overlay text: +"Schedules move." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium event slide in vertical 9:16. +Scene: event map card and phone screen with updated event details, white premium environment, subtle visual shift. +Add large clean overlay text: +"Rooms change." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium event slide in vertical 9:16. +Scene: promotional QR poster and refreshed mobile destination on a phone, bright white editorial background, soft cobalt glow. +Add large clean overlay text: +"Offers update." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium solution slide in vertical 9:16. +Scene: one central event QR card connected to editable destinations, glowing blue lines, frosted panels, bright white background. +Add large clean overlay text: +"One event code should handle all of it." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium value slide in vertical 9:16. +Scene: elegant analytics cards with scan trends and campaign insight panels, white background, soft blue glow. +Add large clean overlay text: +"Plus you can track event engagement." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt halo, premium CTA spacing. +Add large clean overlay text: +"Manage event QR codes with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 10 - Pain + +**Hook:** `Static QR codes create hidden campaign risk.` + +**Title:** `Static QR Campaign Risk` + +**Caption + Hashtags:** `The QR still scans, but the campaign context may already be wrong. qrmaster.net #QRCode #DynamicQRCode #CampaignStrategy #MarketingTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium pain hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle warning dashboard cues, soft cobalt glow, premium SaaS look. +Add large clean overlay text: +"Static QR codes create hidden campaign risk." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium campaign pain slide in vertical 9:16. +Scene: printed flyer and poster with QR code shown in a bright white studio environment, soft tonal depth, minimal premium composition. +Add large clean overlay text: +"Campaigns change after launch." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium campaign pain slide in vertical 9:16. +Scene: same printed QR asset with an outdated landing page on the phone beside it, white editorial environment, subtle mismatch. +Add large clean overlay text: +"Static codes do not adapt with them." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution-focused slide in vertical 9:16. +Scene: one central QR code card connected to editable campaign destinations, glowing blue lines, frosted UI panels, bright white background. +Add large clean overlay text: +"Dynamic codes reduce that risk." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium analytics slide in vertical 9:16. +Scene: elegant dashboard cards with scan analytics, campaign insights, QR code at center, white background, soft cobalt glow. +Add large clean overlay text: +"And they show what is working." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar, bright premium white background, soft blue gradient halo, spacious CTA layout. +Add large clean overlay text: +"Run safer campaigns with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 11 - Educational + +**Hook:** `How marketers track offline campaigns with QR codes` + +**Title:** `Track Offline With QR` + +**Caption + Hashtags:** `Print does not have to be a black box. QR analytics can connect offline campaigns with real scan data. qrmaster.net #MarketingAnalytics #QRCode #DynamicQRCode #PrintMarketing #CampaignTracking #QRMaster` + +### Slide 1 + +```text +Create a premium educational hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and elegant analytics panels, soft cobalt glow, premium SaaS ad direction. +Add large clean overlay text: +"How marketers track offline campaigns with QR codes" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium educational slide in vertical 9:16. +Scene: printed flyer, poster, and table card arranged on a bright white set, soft tonal depth, editorial spacing. +Add large clean overlay text: +"Print gets attention." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium educational slide in vertical 9:16. +Scene: a central QR code card linking print assets to a phone destination, white premium background, soft glassmorphism interface accents. +Add large clean overlay text: +"QR codes connect print to digital action." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium analytics slide in vertical 9:16. +Scene: elegant dashboard cards with scan trends, location markers, device icons, campaign insight panels, white background, soft blue glow. +Add large clean overlay text: +"Now you can see scans, timing, and device trends." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium value slide in vertical 9:16. +Scene: polished dashboard environment combining QR assets and analytics, bright premium white background, calm editorial hierarchy. +Add large clean overlay text: +"That makes offline easier to optimize." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright white background, soft cobalt halo, clean CTA composition. +Add large clean overlay text: +"Track print with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 12 - Educational + +**Hook:** `Top 5 packaging QR use cases for modern brands` + +**Title:** `Top 5 Packaging QR Use Cases` + +**Caption + Hashtags:** `Packaging QR codes can do far more than point to a generic homepage. Save this for brand ideas. qrmaster.net #PackagingDesign #QRCode #DynamicQRCode #RetailMarketing #BrandStrategy #QRMaster` + +### Slide 1 + +```text +Create a premium packaging hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating packaging-style QR card, soft cobalt glow, premium retail-tech SaaS aesthetic. +Add large clean overlay text: +"Top 5 packaging QR use cases for modern brands" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant product package with QR label in a bright white premium studio setup, soft ambient shadow. +Add large clean overlay text: +"1. Product detail pages" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: packaging QR concept with a story-rich landing page on a phone, white editorial background, soft blue reflections. +Add large clean overlay text: +"2. Brand story and origin" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: package card with how-to or setup content on a phone nearby, bright white environment, minimal premium composition. +Add large clean overlay text: +"3. Instructions and onboarding" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: promotional package QR with campaign or discount destination hinted through clean floating cards, white background, soft cobalt glow. +Add large clean overlay text: +"4. Promotions and launches" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: package QR linked to analytics and customer feedback cards, bright white premium background, glassmorphism UI touches. +Add large clean overlay text: +"5. Product analytics and feedback" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, strong CTA layout. +Add large clean overlay text: +"Build packaging flows with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 13 - Educational + +**Hook:** `GDPR-friendly QR tracking is possible.` + +**Title:** `Privacy-First QR Tracking` + +**Caption + Hashtags:** `You can measure scans without building a creepy tracking workflow. qrmaster.net #GDPR #QRCode #DynamicQRCode #MarketingAnalytics #PrivacyFirst #QRMaster` + +### Slide 1 + +```text +Create a premium privacy-first hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle shield icon, soft cobalt glow, premium privacy-tech SaaS style. +Add large clean overlay text: +"GDPR-friendly QR tracking is possible." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium privacy slide in vertical 9:16. +Scene: elegant QR code card shown with soft analytics panels and a calm shield-like design cue, white premium background, subtle blue reflections. +Add large clean overlay text: +"Businesses still need scan insight." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium privacy slide in vertical 9:16. +Scene: analytics cards and privacy-first interface cues shown together, bright white editorial environment, soft tonal depth. +Add large clean overlay text: +"But they do not need invasive tracking." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium value slide in vertical 9:16. +Scene: elegant dashboard cards with scan metrics, device markers, and privacy-safe styling, white background, soft cobalt glow. +Add large clean overlay text: +"Privacy-first analytics can still guide smart decisions." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft blue gradient halo, spacious CTA layout. +Add large clean overlay text: +"Go privacy-first with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 14 - Pain + +**Hook:** `You do not need a new QR code for every update.` + +**Title:** `Stop Replacing QR Codes` + +**Caption + Hashtags:** `Many teams still create a brand-new QR code every time content changes. That is a workflow problem. qrmaster.net #QRCode #DynamicQRCode #Operations #MarketingWorkflow #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium contrarian hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and duplicate QR ghosts, soft cobalt glow, premium SaaS ad style. +Add large clean overlay text: +"You do not need a new QR code for every update." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium pain slide in vertical 9:16. +Scene: multiple similar QR cards arranged in a polished but obviously duplicated layout, bright white premium environment, soft shadows. +Add large clean overlay text: +"New code after every change creates chaos." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium pain slide in vertical 9:16. +Scene: menus, flyers, packaging, and posters each showing different QR assets, white editorial background, subtle visual clutter but still premium. +Add large clean overlay text: +"It also breaks consistency across print." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution slide in vertical 9:16. +Scene: one central QR code card connected to multiple changing destinations, glowing blue lines, frosted UI panels, bright white background. +Add large clean overlay text: +"One code should handle future changes." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium value slide in vertical 9:16. +Scene: organized dashboard with one clean QR system and analytics panels, white premium environment, soft cobalt glow. +Add large clean overlay text: +"That is the cleaner way to scale." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar, bright premium white background, soft cobalt halo, clean editorial CTA spacing. +Add large clean overlay text: +"Scale cleaner with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 15 - Educational + +**Hook:** `Bulk QR creation from CSV can save hours.` + +**Title:** `Bulk QR From CSV` + +**Caption + Hashtags:** `If your team needs hundreds of QR codes, manual creation is the wrong workflow. qrmaster.net #BulkQRCode #QRCode #DynamicQRCode #Operations #SaaS #QRMaster` + +### Slide 1 + +```text +Create a premium operations hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR grid and spreadsheet cues, soft cobalt glow, premium operations-tech feel. +Add large clean overlay text: +"Bulk QR creation from CSV can save hours." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium educational slide in vertical 9:16. +Scene: elegant group of QR labels or cards shown in a clean modular grid, bright white environment, soft tonal depth. +Add large clean overlay text: +"Manual creation does not scale." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium educational slide in vertical 9:16. +Scene: spreadsheet-style import cues feeding into grouped QR cards, white premium background, subtle glassmorphism panels. +Add large clean overlay text: +"CSV import speeds up the first step." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium educational slide in vertical 9:16. +Scene: bulk QR system connected to an organized dashboard and editable destination panels, bright white background, soft cobalt glow. +Add large clean overlay text: +"The real win is managing them in one system." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium value slide in vertical 9:16. +Scene: elegant bulk dashboard with analytics cards and grouped assets, white premium environment, polished editorial hierarchy. +Add large clean overlay text: +"That is how bulk becomes operationally useful." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright white background, soft blue gradient halo, spacious CTA layout. +Add large clean overlay text: +"Create in bulk with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 16 - Educational + +**Hook:** `Top 5 reasons teams switch to dynamic QR codes` + +**Title:** `Top 5 Reasons Teams Switch` + +**Caption + Hashtags:** `The switch usually happens for workflow reasons first, not just aesthetics. qrmaster.net #QRCode #DynamicQRCode #BusinessTools #MarketingWorkflow #Operations #QRMaster` + +### Slide 1 + +```text +Create a premium list hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle numbered UI cues, soft cobalt glow, calm premium SaaS style. +Add large clean overlay text: +"Top 5 reasons teams switch to dynamic QR codes" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant printed QR materials in a bright white studio setup, soft tonal depth, clean business composition. +Add large clean overlay text: +"1. They want fewer reprints" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: phone showing an updated destination beside printed collateral, white editorial background, subtle blue reflections. +Add large clean overlay text: +"2. They need editable destinations" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant analytics cards around a central QR code, white premium background, soft cobalt glow. +Add large clean overlay text: +"3. They want real scan analytics" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: organized dashboard environment with grouped QR assets, bright white editorial space, polished glassy UI panels. +Add large clean overlay text: +"4. They need one dashboard" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: privacy-friendly analytics cues and secure business-tech visual language, white premium background, soft ambient shadows. +Add large clean overlay text: +"5. They care about cleaner workflows and privacy" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt blue halo, spacious CTA composition. +Add large clean overlay text: +"Switch with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 17 - Pain + +**Hook:** `Your PDF QR code may already be outdated.` + +**Title:** `Outdated PDF QR Problem` + +**Caption + Hashtags:** `PDF links move. Files get replaced. Static QR codes do not keep up. qrmaster.net #QRCode #DynamicQRCode #PDF #PrintMarketing #BusinessTips #QRMaster` + +### Slide 1 + +```text +Create a premium problem-first hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating PDF-style QR card, soft cobalt glow, premium SaaS look. +Add large clean overlay text: +"Your PDF QR code may already be outdated." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium pain slide in vertical 9:16. +Scene: elegant printed brochure or poster with QR code shown in a bright white studio environment, soft tonal depth. +Add large clean overlay text: +"The code still scans." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium pain slide in vertical 9:16. +Scene: mobile screen showing a moved or updated PDF destination beside printed collateral, white editorial background, subtle mismatch. +Add large clean overlay text: +"But the file behind it changed." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium solution-focused slide in vertical 9:16. +Scene: one central QR code card connected to editable PDF destination cards, glowing blue lines, frosted UI panels, bright white background. +Add large clean overlay text: +"The print should stay stable. The file should stay flexible." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium analytics slide in vertical 9:16. +Scene: elegant dashboard cards and PDF download/scan insight panels, white premium environment, soft cobalt glow. +Add large clean overlay text: +"And you should still be able to measure scans." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar, bright premium white background, soft blue gradient halo, strong CTA layout. +Add large clean overlay text: +"Manage file QR codes with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 18 - Educational + +**Hook:** `Top 5 things to measure after a QR scan` + +**Title:** `Top 5 QR Metrics` + +**Caption + Hashtags:** `If you track QR campaigns, these are the first five things worth watching. qrmaster.net #MarketingAnalytics #QRCode #DynamicQRCode #CampaignTracking #BusinessTips #QRMaster` + +### Slide 1 + +```text +Create a premium metrics hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and elegant dashboard panels, soft cobalt glow, premium SaaS ad style. +Add large clean overlay text: +"Top 5 things to measure after a QR scan" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: dashboard cards with scan count cues, white premium background, soft blue reflections. +Add large clean overlay text: +"1. Total scans" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: analytics cards with time-based activity visuals, bright white editorial environment, polished hierarchy. +Add large clean overlay text: +"2. Scan timing" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: location pin cards around a central QR code, white background, soft cobalt glow. +Add large clean overlay text: +"3. Location trends" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: device insight cards shown in a clean glassmorphism layout, bright white premium background. +Add large clean overlay text: +"4. Device mix" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: campaign comparison dashboard with QR assets and performance cards, white background, soft ambient shadows. +Add large clean overlay text: +"5. Campaign-level performance" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, spacious CTA layout. +Add large clean overlay text: +"Measure more with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 19 - Educational + +**Hook:** `7 ways one QR dashboard helps a growing team` + +**Title:** `7 Ways One QR Dashboard Helps` + +**Caption + Hashtags:** `Growth makes QR workflows messier unless everything lives in one system. qrmaster.net #Operations #QRCode #DynamicQRCode #SaaS #MarketingWorkflow #QRMaster` + +### Slide 1 + +```text +Create a premium operations hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR dashboard panel, soft cobalt glow, premium business-tech composition. +Add large clean overlay text: +"7 ways one QR dashboard helps a growing team" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: organized QR asset view on a bright white dashboard-inspired set, soft tonal depth. +Add large clean overlay text: +"1. One place for every code" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: editable destination panels around a central QR card, white premium background, soft blue reflections. +Add large clean overlay text: +"2. Faster updates after launch" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: grouped campaign view with QR assets, bright white environment, polished editorial spacing. +Add large clean overlay text: +"3. Cleaner campaign organization" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: analytics cards and performance panels in a clean glassy arrangement, white premium background. +Add large clean overlay text: +"4. Better scan visibility" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: bulk management cues with grouped QR items and import panels, bright white editorial environment. +Add large clean overlay text: +"5. Easier bulk workflows" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a premium list slide in vertical 9:16. +Scene: team-friendly dashboard structure with permissions or grouping cues, white background, soft cobalt glow. +Add large clean overlay text: +"6. Less duplicate work" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 8 + +```text +Create a premium list slide in vertical 9:16. +Scene: dashboard and print assets shown in one unified premium system, white environment, subtle ambient shadow. +Add large clean overlay text: +"7. A more scalable print-to-digital workflow" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 9 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding a phone with QR code, bright premium white background, soft cobalt gradient halo, spacious CTA composition. +Add large clean overlay text: +"Scale with one system: QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 20 - Educational + +**Hook:** `Top 5 campaigns that work better with dynamic QR codes` + +**Title:** `5 Campaigns Better With Dynamic QR` + +**Caption + Hashtags:** `Some campaigns benefit massively from editable QR destinations and real scan data. qrmaster.net #CampaignStrategy #QRCode #DynamicQRCode #MarketingTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium campaign hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle campaign panels, soft cobalt glow, premium SaaS ad style. +Add large clean overlay text: +"Top 5 campaigns that work better with dynamic QR codes" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant flyer campaign setup in a bright white studio environment, soft tonal depth, clean print-marketing composition. +Add large clean overlay text: +"1. Flyer campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: event poster or badge with QR code on a white editorial set, soft ambient shadows, polished hierarchy. +Add large clean overlay text: +"2. Event campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: restaurant menu QR setup and table card shown in a bright premium environment, soft cobalt reflections. +Add large clean overlay text: +"3. Restaurant promotions" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: product packaging with QR labels in a clean white studio, editorial spacing, subtle tonal depth. +Add large clean overlay text: +"4. Packaging campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: brochure or sales collateral with QR code, bright white premium background, glassy campaign accents. +Add large clean overlay text: +"5. Long-running print campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt halo, strong CTA composition. +Add large clean overlay text: +"Run them smarter with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 21 - Pain + +**Hook:** `Static QR codes waste more money than they look.` + +**Title:** `The Hidden Cost Of Static QR` + +**Caption + Hashtags:** `Wrong destinations, duplicate assets, extra reprints, and missing analytics add up fast. qrmaster.net #QRCode #DynamicQRCode #MarketingCosts #BusinessTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium pain hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card and subtle cost cues, soft cobalt glow, premium SaaS ad style. +Add large clean overlay text: +"Static QR codes waste more money than they look." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium cost-focused slide in vertical 9:16. +Scene: printed materials stacked in a bright white studio set, soft tonal depth, ambient navy-tinted shadows, minimal premium styling. +Add large clean overlay text: +"Reprints cost time and budget." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium cost-focused slide in vertical 9:16. +Scene: printed collateral paired with an outdated destination on a phone, white editorial background, subtle mismatch. +Add large clean overlay text: +"Wrong destinations cost trust." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium cost-focused slide in vertical 9:16. +Scene: QR assets shown without analytics panels, bright white premium environment, clean but intentionally limited workflow composition. +Add large clean overlay text: +"No scan data costs learning." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium solution slide in vertical 9:16. +Scene: one central QR system with editable destinations and analytics panels, white background, soft cobalt glow, refined editorial structure. +Add large clean overlay text: +"Dynamic workflows reduce all three." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft blue gradient halo, spacious CTA composition. +Add large clean overlay text: +"Reduce waste with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 22 - Direct Selling + +**Hook:** `The easiest way to manage QR codes for your business` + +**Title:** `Manage QR Codes The Easy Way` + +**Caption + Hashtags:** `If you need editable, trackable QR codes that work for real business use, start here. qrmaster.net #QRCode #DynamicQRCode #BusinessTools #SaaS #MarketingTools #QRMaster` + +### Slide 1 + +```text +Create a premium selling hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a sleek floating QR card and subtle dashboard panels, soft blue glow, premium SaaS ad feel. +Add large clean overlay text: +"The easiest way to manage QR codes for your business" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium selling slide in vertical 9:16. +Scene: clean central QR code card presented like a gallery object on a bright white surface, frosted UI accents, soft ambient shadow. +Add large clean overlay text: +"Create dynamic codes in minutes" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium selling slide in vertical 9:16. +Scene: one QR card connected to editable destination panels, glowing blue lines, frosted glass interface cards, white editorial background. +Add large clean overlay text: +"Update links anytime after printing" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium selling slide in vertical 9:16. +Scene: elegant dashboard cards, scan analytics, location markers, QR code at center, bright white background, soft cobalt glow, polished editorial look. +Add large clean overlay text: +"Track scans across campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium selling slide in vertical 9:16. +Scene: one clean dashboard environment with organized QR assets, frosted UI panels, white background, soft blue gradient accents, calm high-end SaaS look. +Add large clean overlay text: +"Keep everything in one dashboard" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded hero slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft blue halo, spacious CTA layout. +Add large clean overlay text: +"Start with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 23 - Direct Selling + +**Hook:** `Stop reprinting. Start with QR Master.` + +**Title:** `Stop Reprinting` + +**Caption + Hashtags:** `Use one code, update the destination anytime, and track every scan. Start with QR Master at qrmaster.net. #QRCode #DynamicQRCode #MarketingTools #SaaS #BusinessGrowth #QRMaster` + +### Slide 1 + +```text +Create a premium direct-response hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar next to a floating QR card, soft cobalt glow, minimal premium ad composition. +Add large clean overlay text: +"Stop reprinting. Start with QR Master." +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium direct-response slide in vertical 9:16. +Scene: elegant print assets and one central QR code card on a bright white set, soft tonal layering, editorial negative space. +Add large clean overlay text: +"Use one code for changing content" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium direct-response slide in vertical 9:16. +Scene: one QR card connected to editable destination panels, glowing blue lines, frosted UI, white background, clean modern SaaS style. +Add large clean overlay text: +"Edit the destination anytime" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium direct-response slide in vertical 9:16. +Scene: elegant dashboard cards, scan analytics, campaign insights, QR code at center, white background, soft blue glow, polished editorial look. +Add large clean overlay text: +"Track every scan" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium direct-response slide in vertical 9:16. +Scene: clean bright workflow scene combining QR code management, analytics, and print flexibility, white premium environment, glassmorphism accents, no clutter. +Add large clean overlay text: +"Save time, budget, and reprints" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded hero slide in vertical 9:16. +Scene: full branded QR Master avatar with phone and QR code, bright white premium background, soft cobalt glow, strong CTA composition. +Add large clean overlay text: +"QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 24 - Direct Selling + +**Hook:** `One QR platform for menus, flyers, packaging, and bulk creation` + +**Title:** `One QR Platform` + +**Caption + Hashtags:** `If your business uses QR codes across more than one workflow, centralization matters. qrmaster.net #QRCode #DynamicQRCode #BusinessTools #Operations #SaaS #QRMaster` + +### Slide 1 + +```text +Create a premium platform-style hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a central floating QR card with surrounding workflow icons, soft cobalt glow, premium SaaS style. +Add large clean overlay text: +"One QR platform for menus, flyers, packaging, and bulk creation" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium selling slide in vertical 9:16. +Scene: elegant menu QR setup in a bright white premium environment, soft shadows, editorial spacing. +Add large clean overlay text: +"Use it for restaurant menus" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium selling slide in vertical 9:16. +Scene: flyer and poster campaign QR setup on a clean white set, soft cobalt reflections, premium print-marketing look. +Add large clean overlay text: +"Use it for flyer campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium selling slide in vertical 9:16. +Scene: packaging labels and QR product cards shown in a bright white studio environment, soft tonal depth. +Add large clean overlay text: +"Use it for packaging workflows" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium selling slide in vertical 9:16. +Scene: bulk dashboard cues with grouped QR assets and import panels, white premium background, subtle glassmorphism. +Add large clean overlay text: +"Use it for bulk creation too" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright white background, soft cobalt gradient halo, spacious CTA layout. +Add large clean overlay text: +"Centralize with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Slideshow 25 - Direct Selling + +**Hook:** `If your QR workflow is growing, your tools should grow with it` + +**Title:** `Grow Your QR Workflow` + +**Caption + Hashtags:** `Growth breaks messy systems first. Use a QR workflow that can scale with your campaigns. qrmaster.net #QRCode #DynamicQRCode #Growth #BusinessTools #Operations #QRMaster` + +### Slide 1 + +```text +Create a premium growth-focused selling hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR dashboard card and subtle scale cues, soft cobalt glow, premium SaaS look. +Add large clean overlay text: +"If your QR workflow is growing, your tools should grow with it" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 2 + +```text +Create a premium selling slide in vertical 9:16. +Scene: elegant printed collateral shown across menu, flyer, event, and packaging objects on a bright white set, soft tonal depth. +Add large clean overlay text: +"More campaigns mean more moving parts" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 3 + +```text +Create a premium selling slide in vertical 9:16. +Scene: multiple QR assets and scattered tools hinted in a polished but fragmented business-tech composition, white editorial background. +Add large clean overlay text: +"Messy systems break first" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 4 + +```text +Create a premium selling slide in vertical 9:16. +Scene: one clean QR system connecting print assets, editable destinations, and analytics panels, bright white premium background, soft blue glow. +Add large clean overlay text: +"A centralized QR workflow scales better" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 5 + +```text +Create a premium selling slide in vertical 9:16. +Scene: polished dashboard environment with grouped QR assets, analytics cards, and campaign views, white premium background, refined editorial hierarchy. +Add large clean overlay text: +"That is what QR Master is built for" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +### Slide 6 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, spacious CTA layout. +Add large clean overlay text: +"Grow with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered in the middle of the frame, not at the top or bottom. +``` + +--- + +## Final Note + +This file gives you 25 additional slideshow prompt packs in the same visual system as the existing QR Master TikTok assets. + +The smartest next step is: +- start with pain and educational hooks +- identify the top 3 winners +- only then remake those winners with one controlled change each diff --git a/marketing/tiktok-top5-slideshow-pack.md b/marketing/tiktok-top5-slideshow-pack.md index 26a52d3..f7210d2 100644 --- a/marketing/tiktok-top5-slideshow-pack.md +++ b/marketing/tiktok-top5-slideshow-pack.md @@ -1,521 +1,521 @@ -# TikTok Top 5 Slideshow Pack for QR Master - -This file contains 5 complete `Top 5` TikTok slideshow prompt packs for QR Master. - -Why 7 slides here: -- Slide 1 = hook -- Slides 2-6 = the five list items -- Slide 7 = CTA - -These prompts are aligned to `C:\Users\a931627\Downloads\DESIGN (3).md` and keep the same premium visual direction as the main slideshow file: -- bright precision-editorial SaaS style -- high white space -- tonal depth instead of hard borders -- glassmorphism and soft blue gradients -- QR code treated as a hero object - -## Shared Global Prompt - -Use this global prompt before any of the packs below: - -```text -Create a premium TikTok slideshow in vertical 9:16 format with built-in text overlay on every slide. -Style: bright, clean, modern, minimal editorial SaaS aesthetic. -Creative direction: Precision Editorial, high white space, intentional asymmetry, tonal depth, calm authority, premium digital craftsmanship. -Color palette: white, soft warm light gray, cobalt blue accents, subtle blue gradients, soft ambient navy-tinted shadows. -Lighting: bright studio daylight, soft glow, polished, airy. -Typography: bold modern sans-serif similar to Inter, large headline, very short text, clean spacing, high contrast, strong hierarchy. -Layout: editorial composition, asymmetrical but balanced, lots of negative space, QR code treated like a hero object. -Text placement: keep the overlay text centered or at minimum positioned within the lower two-thirds of the frame; avoid placing the main text too high near the top edge. -UI style: floating frosted panels, surface shifts instead of hard lines, soft glassmorphism, premium SaaS ad direction. -Important: -- Use exact overlay text provided for each slide. -- Keep text short and correctly spelled. -- Keep the text centered or clearly inside the lower two-thirds of the image. -- No paragraph text. -- No clutter. -- No dark background. -- No generic stock-office look. -- No 1px hard borders. -- Use soft tonal transitions, ghost borders only if necessary. -- Slides 1 and 7 use the avatar. -- Slides 1-6 must not show the QR Master brand name or logo. -- Slide 7 is the only slide allowed to show QR Master branding. -- On slide 1, use the avatar as an unbranded character reference only, with no visible logo text on hat or hoodie. -- On slide 7, show the full branded avatar clearly. -- Keep every slide polished, premium, and TikTok-ready. -``` - -## Shared Negative Prompt - -```text -No dark theme, no messy backgrounds, no harsh shadows, no cheap cartoon look, no toy aesthetic, no cluttered desks, no random props, no heavy borders, no low-detail UI, no gibberish text blocks, no typo-filled posters, no loud neon colors, no generic corporate office scenes -``` - -## Testing Note - -Because these are listicle formats, do not compare them directly against strong pain hooks in the same wave. - -Use them as a separate educational test block. - -Suggested testing order: -1. Top 5 QR code mistakes businesses still make -2. Top 5 things to check before printing a QR code -3. Top 5 ways dynamic QR codes save money -4. Top 5 QR code use cases for restaurants -5. Top 5 reasons static QR codes stop working - ---- - -## Top 5 Slideshow 01 - Educational - -**Hook:** `Top 5 QR code mistakes businesses still make` - -**Title:** `Top 5 QR Mistakes` - -**Caption + Hashtags:** `Most businesses still make the same QR mistakes again and again. Save this checklist before your next print run. qrmaster.net #QRCode #DynamicQRCode #MarketingTips #SmallBusiness #PrintMarketing #QRMaster` - -**Long Description:** `Most businesses still make the same QR code mistakes without even noticing. In this slideshow, I break down 5 common QR mistakes that lead to broken customer journeys, wasted reprints, weak campaign tracking, and messy workflows. If you use QR codes for menus, flyers, packaging, events, or offline marketing, save this and use it as a checklist before your next print run. More smart QR workflows at qrmaster.net #QRCode #DynamicQRCode #MarketingTips #SmallBusiness #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar holding a phone and pointing toward a floating QR card, soft cobalt glow, clean asymmetrical composition, premium SaaS feel. -Add large clean overlay text: -"Top 5 QR code mistakes businesses still make" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant printed menu and flyer with one static QR code shown as a fixed object, bright white background, soft tonal layering, minimal premium styling. -Add large clean overlay text: -"1. Using static codes for changing content" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: clean close-up of printed QR collateral beside a phone with an outdated destination, white editorial environment, soft ambient shadow. -Add large clean overlay text: -"2. Printing before testing the destination" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: one QR card with no surrounding analytics or performance cues, bright white premium background, minimalist business composition. -Add large clean overlay text: -"3. Tracking nothing after the scan" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: multiple mismatched printed QR assets shown across menu, flyer, and package objects, white background, soft blue reflections, editorial spacing. -Add large clean overlay text: -"4. Using a different code for every update" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: printed QR assets arranged in a clean product-shot layout without a central management view, bright white environment, polished SaaS marketing style. -Add large clean overlay text: -"5. Managing QR codes without one dashboard" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full QR Master avatar based on the provided image, branded hat and hoodie allowed here, holding phone with QR code, bright premium white background, soft cobalt blue gradient lighting, spacious CTA composition. -Add large clean overlay text: -"Fix all 5 with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - ---- - -## Top 5 Slideshow 02 - Educational - -**Hook:** `Top 5 things to check before printing a QR code` - -**Title:** `Top 5 Pre-Print Checks` - -**Caption + Hashtags:** `Before you print a QR code, check these five things first. Save this for your next menu, flyer, or campaign. qrmaster.net #QRCode #DynamicQRCode #Checklist #PrintMarketing #MarketingTips #QRMaster` - -**Long Description:** `Before you print any QR code, there are a few things you should always check first. This slideshow covers 5 simple pre-print checks that can save you from broken links, useless scans, missing analytics, and expensive reprints later. If you use QR codes on menus, flyers, product packaging, posters, or event materials, save this checklist now and come back to it before your next campaign goes live. qrmaster.net #QRCode #DynamicQRCode #Checklist #PrintMarketing #MarketingTips #QRMaster` - -### Slide 1 - -```text -Create a premium hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar gesturing toward a floating QR card and subtle check icons, soft blue glow, clean premium composition. -Add large clean overlay text: -"Top 5 things to check before printing a QR code" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 2 - -```text -Create a premium checklist slide in vertical 9:16. -Scene: one clean QR card displayed like a gallery object on a bright white set, soft ambient shadow, minimal SaaS ad styling. -Add large clean overlay text: -"1. Will the destination change later?" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 3 - -```text -Create a premium checklist slide in vertical 9:16. -Scene: printed QR collateral beside a mobile screen with clear scan destination, bright white environment, soft blue reflected light. -Add large clean overlay text: -"2. Did you test the scan on real devices?" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 4 - -```text -Create a premium checklist slide in vertical 9:16. -Scene: central QR code card with subtle analytics cards nearby, white premium background, glassy UI accents, editorial spacing. -Add large clean overlay text: -"3. Do you need analytics after launch?" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 5 - -```text -Create a premium checklist slide in vertical 9:16. -Scene: one QR code shown across menu, flyer, and packaging objects in a bright white modular arrangement, soft tonal depth. -Add large clean overlay text: -"4. Can one QR code cover multiple updates?" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 6 - -```text -Create a premium checklist slide in vertical 9:16. -Scene: clean dashboard-like scene with organized QR assets and calm blue glassmorphism panels, bright white premium environment. -Add large clean overlay text: -"5. Can you manage it all in one place?" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, spacious CTA layout. -Add large clean overlay text: -"Use QR Master before you print" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - ---- - -## Top 5 Slideshow 03 - Educational - -**Hook:** `Top 5 ways dynamic QR codes save money` - -**Title:** `Top 5 Ways QR Saves Money` - -**Caption + Hashtags:** `Dynamic QR codes are not just more flexible. They can also cut avoidable print and campaign costs. qrmaster.net #QRCode #DynamicQRCode #MarketingCosts #BusinessTips #PrintMarketing #QRMaster` - -**Long Description:** `Dynamic QR codes are not only more flexible than static QR codes, they can also save real money. In this slideshow, I break down 5 ways editable and trackable QR workflows reduce waste, avoid unnecessary reprints, improve campaign decisions, and make offline marketing more efficient. If you want better results from menus, flyers, packaging, events, or local campaigns, this is worth saving. qrmaster.net #QRCode #DynamicQRCode #MarketingCosts #BusinessTips #PrintMarketing #QRMaster` - -### Slide 1 - -```text -Create a premium hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating QR card with soft cobalt glow and subtle financial dashboard cues, premium SaaS ad style. -Add large clean overlay text: -"Top 5 ways dynamic QR codes save money" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant stack of printed collateral shown in a bright white studio setup, soft ambient shadow, clean product-shot composition. -Add large clean overlay text: -"1. Fewer reprints after small updates" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: one QR card connected to multiple destination states, bright white background, blue-lit glassmorphism, premium editorial spacing. -Add large clean overlay text: -"2. One code works across multiple campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant analytics cards around a central QR code, white background, soft cobalt glow, refined SaaS dashboard look. -Add large clean overlay text: -"3. You can cut weak campaigns faster" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: clean modular arrangement of menu, flyer, package, and event objects around one QR system, bright white environment, subtle tonal depth. -Add large clean overlay text: -"4. One workflow replaces scattered tools" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: one elegant QR dashboard environment with organized assets and analytics cues, white premium background, soft blue reflections. -Add large clean overlay text: -"5. Better scan data means better decisions" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt gradient halo, spacious CTA layout. -Add large clean overlay text: -"Save more with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - ---- - -## Top 5 Slideshow 04 - Educational - -**Hook:** `Top 5 QR code use cases for restaurants` - -**Title:** `Top 5 Restaurant QR Use Cases` - -**Caption + Hashtags:** `Restaurants can do much more with QR codes than just digital menus. Save this if you run food, hospitality, or local campaigns. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #RestaurantTips #QRMaster` - -**Long Description:** `Most restaurants only think about QR codes as digital menus, but there are far more useful ways to use them. This slideshow breaks down 5 restaurant QR use cases that can improve guest experience, simplify operations, and support marketing at the same time. If you run a restaurant, cafe, takeaway, or hospitality brand, save this and use it as inspiration for smarter QR workflows. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #RestaurantTips #QRMaster` - -### Slide 1 - -```text -Create a premium niche hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar beside a floating menu-style QR card, soft blue glow, calm restaurant-tech SaaS aesthetic. -Add large clean overlay text: -"Top 5 QR code use cases for restaurants" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant table menu QR setup on a bright white studio set, soft shadows, clean premium composition. -Add large clean overlay text: -"1. Live digital menus" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: refined table card with WiFi-style QR presentation, white editorial background, subtle blue reflections, minimal hospitality-tech look. -Add large clean overlay text: -"2. Guest WiFi access" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant feedback or review QR card in a bright white premium environment, soft ambient shadow, editorial spacing. -Add large clean overlay text: -"3. Reviews and feedback collection" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: promotional table card and campaign flyer with QR code in a bright modular setup, white background, soft cobalt glow. -Add large clean overlay text: -"4. Seasonal offers and campaigns" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: loyalty or contact card concept built around one central QR code, bright white premium background, glassy UI touches, polished SaaS look. -Add large clean overlay text: -"5. Loyalty and contactless customer journeys" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt blue halo, strong restaurant-tech campaign composition. -Add large clean overlay text: -"Restaurants can start with QR Master" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - ---- - -## Top 5 Slideshow 05 - Educational - -**Hook:** `Top 5 reasons static QR codes stop working` - -**Title:** `Top 5 Reasons Static QR Codes Fail` - -**Caption + Hashtags:** `Static QR codes usually fail because the destination changes, not because the code itself is broken. Save this for your next campaign. qrmaster.net #QRCode #DynamicQRCode #MarketingMistakes #PrintMarketing #BusinessTips #QRMaster` - -**Long Description:** `Static QR codes rarely fail because the code itself stops scanning. They usually fail because the business context changes around them. In this slideshow, I show 5 reasons static QR codes stop working over time, from changed links to expired offers to poor tracking and bad scale management. If you use QR codes in print, offline campaigns, hospitality, retail, or events, save this before your next launch. qrmaster.net #QRCode #DynamicQRCode #MarketingMistakes #PrintMarketing #BusinessTips #QRMaster` - -### Slide 1 - -```text -Create a premium hook slide in vertical 9:16. -Scene: bright white editorial background, unbranded avatar pointing toward a floating QR card and subtle warning UI indicators, soft cobalt glow, premium SaaS ad style. -Add large clean overlay text: -"Top 5 reasons static QR codes stop working" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 2 - -```text -Create a premium list slide in vertical 9:16. -Scene: printed QR card beside a changed mobile destination, bright white editorial environment, clean asymmetrical composition. -Add large clean overlay text: -"1. The destination link changes" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 3 - -```text -Create a premium list slide in vertical 9:16. -Scene: elegant flyer or menu objects shown in a bright white premium set, soft tonal depth, subtle mismatch with a new campaign state. -Add large clean overlay text: -"2. The offer or content expires" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 4 - -```text -Create a premium list slide in vertical 9:16. -Scene: one QR code shown across multiple print assets with no update path, bright white background, soft cobalt reflections, polished editorial look. -Add large clean overlay text: -"3. One print run outlives one campaign" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 5 - -```text -Create a premium list slide in vertical 9:16. -Scene: clean analytics-free QR setup on a bright white SaaS-inspired background, minimalist business composition. -Add large clean overlay text: -"4. There is no data after the scan" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 6 - -```text -Create a premium list slide in vertical 9:16. -Scene: printed materials and QR objects arranged without a central management environment, white premium background, soft ambient shadow. -Add large clean overlay text: -"5. They are too hard to manage at scale" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` - -### Slide 7 - -```text -Create a final branded CTA slide in vertical 9:16. -Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue gradient lighting, spacious CTA composition. -Add large clean overlay text: -"Use QR Master instead" -Add smaller text below: -"qrmaster.net" -Text style: bold, modern, minimal, high contrast, clean editorial layout. -Text placement: centered or within the lower two-thirds of the frame, never top-heavy. -``` +# TikTok Top 5 Slideshow Pack for QR Master + +This file contains 5 complete `Top 5` TikTok slideshow prompt packs for QR Master. + +Why 7 slides here: +- Slide 1 = hook +- Slides 2-6 = the five list items +- Slide 7 = CTA + +These prompts are aligned to `C:\Users\a931627\Downloads\DESIGN (3).md` and keep the same premium visual direction as the main slideshow file: +- bright precision-editorial SaaS style +- high white space +- tonal depth instead of hard borders +- glassmorphism and soft blue gradients +- QR code treated as a hero object + +## Shared Global Prompt + +Use this global prompt before any of the packs below: + +```text +Create a premium TikTok slideshow in vertical 9:16 format with built-in text overlay on every slide. +Style: bright, clean, modern, minimal editorial SaaS aesthetic. +Creative direction: Precision Editorial, high white space, intentional asymmetry, tonal depth, calm authority, premium digital craftsmanship. +Color palette: white, soft warm light gray, cobalt blue accents, subtle blue gradients, soft ambient navy-tinted shadows. +Lighting: bright studio daylight, soft glow, polished, airy. +Typography: bold modern sans-serif similar to Inter, large headline, very short text, clean spacing, high contrast, strong hierarchy. +Layout: editorial composition, asymmetrical but balanced, lots of negative space, QR code treated like a hero object. +Text placement: keep the overlay text centered or at minimum positioned within the lower two-thirds of the frame; avoid placing the main text too high near the top edge. +UI style: floating frosted panels, surface shifts instead of hard lines, soft glassmorphism, premium SaaS ad direction. +Important: +- Use exact overlay text provided for each slide. +- Keep text short and correctly spelled. +- Keep the text centered or clearly inside the lower two-thirds of the image. +- No paragraph text. +- No clutter. +- No dark background. +- No generic stock-office look. +- No 1px hard borders. +- Use soft tonal transitions, ghost borders only if necessary. +- Slides 1 and 7 use the avatar. +- Slides 1-6 must not show the QR Master brand name or logo. +- Slide 7 is the only slide allowed to show QR Master branding. +- On slide 1, use the avatar as an unbranded character reference only, with no visible logo text on hat or hoodie. +- On slide 7, show the full branded avatar clearly. +- Keep every slide polished, premium, and TikTok-ready. +``` + +## Shared Negative Prompt + +```text +No dark theme, no messy backgrounds, no harsh shadows, no cheap cartoon look, no toy aesthetic, no cluttered desks, no random props, no heavy borders, no low-detail UI, no gibberish text blocks, no typo-filled posters, no loud neon colors, no generic corporate office scenes +``` + +## Testing Note + +Because these are listicle formats, do not compare them directly against strong pain hooks in the same wave. + +Use them as a separate educational test block. + +Suggested testing order: +1. Top 5 QR code mistakes businesses still make +2. Top 5 things to check before printing a QR code +3. Top 5 ways dynamic QR codes save money +4. Top 5 QR code use cases for restaurants +5. Top 5 reasons static QR codes stop working + +--- + +## Top 5 Slideshow 01 - Educational + +**Hook:** `Top 5 QR code mistakes businesses still make` + +**Title:** `Top 5 QR Mistakes` + +**Caption + Hashtags:** `Most businesses still make the same QR mistakes again and again. Save this checklist before your next print run. qrmaster.net #QRCode #DynamicQRCode #MarketingTips #SmallBusiness #PrintMarketing #QRMaster` + +**Long Description:** `Most businesses still make the same QR code mistakes without even noticing. In this slideshow, I break down 5 common QR mistakes that lead to broken customer journeys, wasted reprints, weak campaign tracking, and messy workflows. If you use QR codes for menus, flyers, packaging, events, or offline marketing, save this and use it as a checklist before your next print run. More smart QR workflows at qrmaster.net #QRCode #DynamicQRCode #MarketingTips #SmallBusiness #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar holding a phone and pointing toward a floating QR card, soft cobalt glow, clean asymmetrical composition, premium SaaS feel. +Add large clean overlay text: +"Top 5 QR code mistakes businesses still make" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant printed menu and flyer with one static QR code shown as a fixed object, bright white background, soft tonal layering, minimal premium styling. +Add large clean overlay text: +"1. Using static codes for changing content" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: clean close-up of printed QR collateral beside a phone with an outdated destination, white editorial environment, soft ambient shadow. +Add large clean overlay text: +"2. Printing before testing the destination" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: one QR card with no surrounding analytics or performance cues, bright white premium background, minimalist business composition. +Add large clean overlay text: +"3. Tracking nothing after the scan" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: multiple mismatched printed QR assets shown across menu, flyer, and package objects, white background, soft blue reflections, editorial spacing. +Add large clean overlay text: +"4. Using a different code for every update" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: printed QR assets arranged in a clean product-shot layout without a central management view, bright white environment, polished SaaS marketing style. +Add large clean overlay text: +"5. Managing QR codes without one dashboard" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full QR Master avatar based on the provided image, branded hat and hoodie allowed here, holding phone with QR code, bright premium white background, soft cobalt blue gradient lighting, spacious CTA composition. +Add large clean overlay text: +"Fix all 5 with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +--- + +## Top 5 Slideshow 02 - Educational + +**Hook:** `Top 5 things to check before printing a QR code` + +**Title:** `Top 5 Pre-Print Checks` + +**Caption + Hashtags:** `Before you print a QR code, check these five things first. Save this for your next menu, flyer, or campaign. qrmaster.net #QRCode #DynamicQRCode #Checklist #PrintMarketing #MarketingTips #QRMaster` + +**Long Description:** `Before you print any QR code, there are a few things you should always check first. This slideshow covers 5 simple pre-print checks that can save you from broken links, useless scans, missing analytics, and expensive reprints later. If you use QR codes on menus, flyers, product packaging, posters, or event materials, save this checklist now and come back to it before your next campaign goes live. qrmaster.net #QRCode #DynamicQRCode #Checklist #PrintMarketing #MarketingTips #QRMaster` + +### Slide 1 + +```text +Create a premium hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar gesturing toward a floating QR card and subtle check icons, soft blue glow, clean premium composition. +Add large clean overlay text: +"Top 5 things to check before printing a QR code" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 2 + +```text +Create a premium checklist slide in vertical 9:16. +Scene: one clean QR card displayed like a gallery object on a bright white set, soft ambient shadow, minimal SaaS ad styling. +Add large clean overlay text: +"1. Will the destination change later?" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 3 + +```text +Create a premium checklist slide in vertical 9:16. +Scene: printed QR collateral beside a mobile screen with clear scan destination, bright white environment, soft blue reflected light. +Add large clean overlay text: +"2. Did you test the scan on real devices?" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 4 + +```text +Create a premium checklist slide in vertical 9:16. +Scene: central QR code card with subtle analytics cards nearby, white premium background, glassy UI accents, editorial spacing. +Add large clean overlay text: +"3. Do you need analytics after launch?" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 5 + +```text +Create a premium checklist slide in vertical 9:16. +Scene: one QR code shown across menu, flyer, and packaging objects in a bright white modular arrangement, soft tonal depth. +Add large clean overlay text: +"4. Can one QR code cover multiple updates?" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 6 + +```text +Create a premium checklist slide in vertical 9:16. +Scene: clean dashboard-like scene with organized QR assets and calm blue glassmorphism panels, bright white premium environment. +Add large clean overlay text: +"5. Can you manage it all in one place?" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue halo, spacious CTA layout. +Add large clean overlay text: +"Use QR Master before you print" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +--- + +## Top 5 Slideshow 03 - Educational + +**Hook:** `Top 5 ways dynamic QR codes save money` + +**Title:** `Top 5 Ways QR Saves Money` + +**Caption + Hashtags:** `Dynamic QR codes are not just more flexible. They can also cut avoidable print and campaign costs. qrmaster.net #QRCode #DynamicQRCode #MarketingCosts #BusinessTips #PrintMarketing #QRMaster` + +**Long Description:** `Dynamic QR codes are not only more flexible than static QR codes, they can also save real money. In this slideshow, I break down 5 ways editable and trackable QR workflows reduce waste, avoid unnecessary reprints, improve campaign decisions, and make offline marketing more efficient. If you want better results from menus, flyers, packaging, events, or local campaigns, this is worth saving. qrmaster.net #QRCode #DynamicQRCode #MarketingCosts #BusinessTips #PrintMarketing #QRMaster` + +### Slide 1 + +```text +Create a premium hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating QR card with soft cobalt glow and subtle financial dashboard cues, premium SaaS ad style. +Add large clean overlay text: +"Top 5 ways dynamic QR codes save money" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant stack of printed collateral shown in a bright white studio setup, soft ambient shadow, clean product-shot composition. +Add large clean overlay text: +"1. Fewer reprints after small updates" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: one QR card connected to multiple destination states, bright white background, blue-lit glassmorphism, premium editorial spacing. +Add large clean overlay text: +"2. One code works across multiple campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant analytics cards around a central QR code, white background, soft cobalt glow, refined SaaS dashboard look. +Add large clean overlay text: +"3. You can cut weak campaigns faster" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: clean modular arrangement of menu, flyer, package, and event objects around one QR system, bright white environment, subtle tonal depth. +Add large clean overlay text: +"4. One workflow replaces scattered tools" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: one elegant QR dashboard environment with organized assets and analytics cues, white premium background, soft blue reflections. +Add large clean overlay text: +"5. Better scan data means better decisions" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt gradient halo, spacious CTA layout. +Add large clean overlay text: +"Save more with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +--- + +## Top 5 Slideshow 04 - Educational + +**Hook:** `Top 5 QR code use cases for restaurants` + +**Title:** `Top 5 Restaurant QR Use Cases` + +**Caption + Hashtags:** `Restaurants can do much more with QR codes than just digital menus. Save this if you run food, hospitality, or local campaigns. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #RestaurantTips #QRMaster` + +**Long Description:** `Most restaurants only think about QR codes as digital menus, but there are far more useful ways to use them. This slideshow breaks down 5 restaurant QR use cases that can improve guest experience, simplify operations, and support marketing at the same time. If you run a restaurant, cafe, takeaway, or hospitality brand, save this and use it as inspiration for smarter QR workflows. qrmaster.net #RestaurantMarketing #QRCode #DynamicQRCode #Hospitality #RestaurantTips #QRMaster` + +### Slide 1 + +```text +Create a premium niche hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar beside a floating menu-style QR card, soft blue glow, calm restaurant-tech SaaS aesthetic. +Add large clean overlay text: +"Top 5 QR code use cases for restaurants" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant table menu QR setup on a bright white studio set, soft shadows, clean premium composition. +Add large clean overlay text: +"1. Live digital menus" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: refined table card with WiFi-style QR presentation, white editorial background, subtle blue reflections, minimal hospitality-tech look. +Add large clean overlay text: +"2. Guest WiFi access" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant feedback or review QR card in a bright white premium environment, soft ambient shadow, editorial spacing. +Add large clean overlay text: +"3. Reviews and feedback collection" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: promotional table card and campaign flyer with QR code in a bright modular setup, white background, soft cobalt glow. +Add large clean overlay text: +"4. Seasonal offers and campaigns" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: loyalty or contact card concept built around one central QR code, bright white premium background, glassy UI touches, polished SaaS look. +Add large clean overlay text: +"5. Loyalty and contactless customer journeys" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: branded QR Master avatar with phone and QR code, bright premium white background, soft cobalt blue halo, strong restaurant-tech campaign composition. +Add large clean overlay text: +"Restaurants can start with QR Master" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +--- + +## Top 5 Slideshow 05 - Educational + +**Hook:** `Top 5 reasons static QR codes stop working` + +**Title:** `Top 5 Reasons Static QR Codes Fail` + +**Caption + Hashtags:** `Static QR codes usually fail because the destination changes, not because the code itself is broken. Save this for your next campaign. qrmaster.net #QRCode #DynamicQRCode #MarketingMistakes #PrintMarketing #BusinessTips #QRMaster` + +**Long Description:** `Static QR codes rarely fail because the code itself stops scanning. They usually fail because the business context changes around them. In this slideshow, I show 5 reasons static QR codes stop working over time, from changed links to expired offers to poor tracking and bad scale management. If you use QR codes in print, offline campaigns, hospitality, retail, or events, save this before your next launch. qrmaster.net #QRCode #DynamicQRCode #MarketingMistakes #PrintMarketing #BusinessTips #QRMaster` + +### Slide 1 + +```text +Create a premium hook slide in vertical 9:16. +Scene: bright white editorial background, unbranded avatar pointing toward a floating QR card and subtle warning UI indicators, soft cobalt glow, premium SaaS ad style. +Add large clean overlay text: +"Top 5 reasons static QR codes stop working" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 2 + +```text +Create a premium list slide in vertical 9:16. +Scene: printed QR card beside a changed mobile destination, bright white editorial environment, clean asymmetrical composition. +Add large clean overlay text: +"1. The destination link changes" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 3 + +```text +Create a premium list slide in vertical 9:16. +Scene: elegant flyer or menu objects shown in a bright white premium set, soft tonal depth, subtle mismatch with a new campaign state. +Add large clean overlay text: +"2. The offer or content expires" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 4 + +```text +Create a premium list slide in vertical 9:16. +Scene: one QR code shown across multiple print assets with no update path, bright white background, soft cobalt reflections, polished editorial look. +Add large clean overlay text: +"3. One print run outlives one campaign" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 5 + +```text +Create a premium list slide in vertical 9:16. +Scene: clean analytics-free QR setup on a bright white SaaS-inspired background, minimalist business composition. +Add large clean overlay text: +"4. There is no data after the scan" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 6 + +```text +Create a premium list slide in vertical 9:16. +Scene: printed materials and QR objects arranged without a central management environment, white premium background, soft ambient shadow. +Add large clean overlay text: +"5. They are too hard to manage at scale" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` + +### Slide 7 + +```text +Create a final branded CTA slide in vertical 9:16. +Scene: full branded QR Master avatar holding phone with QR code, bright premium white background, soft cobalt blue gradient lighting, spacious CTA composition. +Add large clean overlay text: +"Use QR Master instead" +Add smaller text below: +"qrmaster.net" +Text style: bold, modern, minimal, high contrast, clean editorial layout. +Text placement: centered or within the lower two-thirds of the frame, never top-heavy. +``` diff --git a/memory/meta_ads_competitor_analysis.md b/memory/meta_ads_competitor_analysis.md index 10e3217..83658f7 100644 --- a/memory/meta_ads_competitor_analysis.md +++ b/memory/meta_ads_competitor_analysis.md @@ -1,701 +1,701 @@ -# Meta Ads Competitor Analysis Memory - -Stand: 2026-05-27 -Projekt: qrmaster.net -Zweck: Diese Datei speichert wiederverwendbare Learnings aus Meta-Ads-Analysen der wichtigsten QRMaster-Competitors. Bei neuen Ad-Konzepten fuer qrmaster.net diese Datei zuerst beruecksichtigen. - -## Strategischer Gesamtblick - -Die wichtigsten Competitors in Meta Ads positionieren sich nicht nur als QR-Code-Generatoren, sondern als Tools fuer Branding, Tracking, Analytics, Kampagnensteuerung und Revenue-Wachstum. - -QRMaster sollte sich gegen diese Wettbewerber vor allem ueber folgende Winkel differenzieren: - -- Einfachheit: QR-Code in Sekunden erstellen, ohne komplexes Setup. -- Schnelligkeit: "Create in 10/30 seconds" als klarer Hook. -- Kostenloser Einstieg: "Free", "Try free", "No credit card" prominent nutzen. -- SMB-Fokus: kleine Unternehmen, Restaurants, lokale Anbieter, Events, Retail, Hotels. -- Tracking ohne Komplexitaet: Scans, Kundeninteresse und Kampagnenleistung einfach sichtbar machen. -- Branded QR Codes: keine generischen schwarzen Quadrate, sondern Logo, Farben und Style. -- Retargeting/Win-back: Besucher und ehemalige Nutzer gezielt zurueckholen. - -## Top Competitors - -Analysierte Competitors: - -1. Scanova -2. QR TIGER -3. Bitly -4. Uniqode - -## Scanova Learnings - -Scanova nutzt wenige, aber klare Meta Ads mit mehreren Messaging-Winkeln. - -Was funktioniert: - -- Objection Handling: "Still not convinced you need a QR Code?" -- Design-Angle: "Tired of boring QR codes?" -- Business Outcome: repeat purchases, social shares, brand moments. -- Problem/Solution: wenig Platz auf Labels, aber viele Informationen. -- Freemium-Risikoabbau: "free to try". - -Beste nachzubauende QRMaster-Ads: - -### Scanova Ad 1: Objection Handling - -Hook: -"Still not convinced you need a QR code?" - -QRMaster-Version: -"Noch nicht sicher, ob du einen QR-Code brauchst? Fair. Du brauchst nur einen, wenn du mehr Kundeninteraktion, Echtzeit-Tracking, volle Designkontrolle und aenderbare Links nach dem Drucken willst. QRMaster ist kostenlos testbar." - -CTA: -"Kostenlos testen" oder "Learn More" - -Warum relevant: -Direkte Einwaende werden akzeptiert statt wegargumentiert. Das eignet sich gut fuer Retargeting und warme Zielgruppen. - -### Scanova Ad 2: Design/Emotion - -Hook: -"Tired of boring QR codes?" - -QRMaster-Version: -"Genug von langweiligen QR-Codes? Mit QRMaster erstellst du schoene, gebrandete QR-Codes mit Logo, Farben und Tracking. Kostenlos starten." - -CTA: -"Create Free" oder "Jetzt erstellen" - -Warum relevant: -Sehr leicht visuell zu zeigen: generischer QR-Code vs. gebrandeter QRMaster-Code. - -### Scanova Ad 3: Label/Packaging Pain - -Hook: -"Only 3cm of label space left?" - -QRMaster-Version: -"Nur wenig Platz auf Verpackung, Flyer oder Speisekarte? Ein QRMaster-Code bringt deine ganze Story auf eine kleine Flaeche und zeigt dir, wer scannt." - -CTA: -"QR-Code erstellen" - -Warum relevant: -Sehr konkreter Pain Point fuer Retail, Packaging, Gastronomie und Print. - -## QR TIGER Learnings - -QR TIGER nutzt langlebige Kampagnen, Video-Creatives und klare Feature-Angles. Einige Ads laufen seit vielen Monaten, was auf Performance hindeutet. - -Was funktioniert: - -- Konkreter Benefit: "80% more scans" statt vager Claims. -- Custom QR Codes mit Branding. -- Analytics als Kampagnenoptimierung. -- Multi-URL/advanced Features fuer B2B-Marketer. -- Zukunfts-/Compliance-Angle wie GS1 QR Codes. -- 15-45 Sekunden Videos mit schneller Produktdemo. - -Beste nachzubauende QRMaster-Ads: - -### QR TIGER Ad 1: Custom QR Codes mit Branding - -Hook: -"Get 80% more scans with custom QR codes." - -QRMaster-Version: -"Erstelle gebrandete QR-Codes in 30 Sekunden. Fuege Logo und Farben hinzu, teile deinen Code und verfolge alle Scans in Echtzeit." - -Video-Struktur: -- 0-3s: "QR-Code in 30 Sekunden" -- 3-15s: Logo/Farbe/Design zeigen -- 15-30s: Scan mit Smartphone -- 30-40s: Analytics Dashboard zeigen -- 40-45s: CTA - -CTA: -"Kostenlos erstellen" oder "Sign Up" - -### QR TIGER Ad 2: Multi-URL / Smart QR - -Hook: -"What if your QR code link could change depending on location, language or time?" - -QRMaster-Version: -"Was, wenn dein QR-Code smarter arbeitet? Leite Nutzer je nach Kampagne, Sprache oder Geraet weiter und sieh alle Scans in einem Dashboard." - -CTA: -"Mehr erfahren" - -Nutzen: -Gut fuer B2B/Marketer und fortgeschrittenere Use Cases. - -### QR TIGER Ad 3: Future/Urgency - -Hook: -"By 2027, barcodes will be replaced with GS1-powered QR codes." - -QRMaster-Version: -"QR-Codes werden zum Standard fuer moderne Verpackungen, Menues und Kampagnen. Starte jetzt mit QRMaster, bevor deine Konkurrenz schneller ist." - -CTA: -"Jetzt starten" - -Hinweis: -Nur nutzen, wenn die Aussage sachlich korrekt und fuer die Zielgruppe passend formuliert ist. - -## Bitly Learnings - -Bitly wirbt sehr aggressiv mit hohem Anzeigenvolumen. Der Kern liegt auf Win-back, Analytics, AI und All-in-One-Plattform. - -Was funktioniert: - -- Win-back: "Still thinking about Bitly?" -- Daten/Analytics: "Turn every link into real insights." -- AI-Angle: "Ask Bitly anything." -- All-in-One: Links, QR Codes und Landing Pages in einer Plattform. -- Viele Varianten desselben Messaging. -- Kurze Videos und statische Ads. - -Beste nachzubauende QRMaster-Ads: - -### Bitly Ad 1: Win-back / Retargeting - -Hook: -"Still interested in QRMaster?" - -QRMaster-Version: -"Noch interessiert an QRMaster? Deine kostenlosen QR-Codes und Tracking-Daten warten auf dich. Steig wieder ein und erstelle deinen naechsten Code in Sekunden." - -CTA: -"QR-Code kostenlos erstellen" - -Zielgruppe: -Website-Besucher, abgebrochene Registrierungen, inaktive Nutzer. - -### Bitly Ad 2: Feature-Focused Analytics - -Hook: -"Turn every QR code into a powerful marketing tool." - -QRMaster-Version: -"Mach aus jedem QR-Code ein messbares Marketing-Tool. Tracke Scans, verstehe deine Kunden und optimiere deine Kampagnen mit QRMaster." - -CTA: -"Tracking kostenlos starten" - -### Bitly Ad 3: All-in-One Platform - -Hook: -"Everything you need to create, track, and optimize QR codes." - -QRMaster-Version: -"Alles, was du fuer QR-Codes brauchst: erstellen, branden, teilen und auswerten. Eine einfache Plattform. Kostenlos starten." - -CTA: -"QRMaster entdecken" - -### Bitly Ad 4: Simple Free Offer - -Hook: -"Generate free QR codes in seconds. No credit card." - -QRMaster-Version: -"Kostenlose QR-Codes in Sekunden erstellen. Keine Kreditkarte. Kein kompliziertes Setup. Einfach Link einfuegen und starten." - -CTA: -"Create Free" - -## Uniqode Learnings - -Uniqode setzt stark auf Enterprise, Verticals, Branding, Dynamic QR Codes, Daten und Thought Leadership. Sehr viele Ads sind branchenspezifisch. - -Was funktioniert: - -- Enterprise-Angle: zentrale Kontrolle, Bulk Creation, Team Permissions, Analytics. -- Hospitality/Restaurant-Angle: Gaeste, Menues, Loyalitaet, Wiederbesuche. -- Branding: "Your QR code should look like you." -- Data Capture: E-Mail/SMS/CRM und Customer Data Ownership. -- Quick-Win: schneller QR-Code ohne Design-Skills. -- Industry Verticals: Hotels, Restaurants, Retail, Events, CPG. -- Social Proof: viele Unternehmen, Scans, Reports. - -Beste nachzubauende QRMaster-Ads: - -### Uniqode Ad 1: Multi-Location / Enterprise Simple - -Hook: -"Multi-location QR campaigns made simple." - -QRMaster-Version: -"Verwalte QR-Codes nicht mehr manuell ueber Standorte, Teams und Kampagnen hinweg. QRMaster bietet zentrale Kontrolle, Bulk-Erstellung, Teamzugriff und Echtzeit-Analytics in einem Dashboard." - -CTA: -"Free Trial starten" - -### Uniqode Ad 2: Restaurant/Hospitality - -Hook: -"Turn your menu QR into revenue." - -QRMaster-Version: -"Jeder Gast scannt deinen Menue-QR-Code. Aber misst du auch, was danach passiert? QRMaster zeigt dir Scans, Interessen und Wiederbesuche, damit aus Menues echte Kundenbindung wird." - -CTA: -"Demo ansehen" - -### Uniqode Ad 3: Branded QR Codes - -Hook: -"Your QR Code, Your Brand." - -QRMaster-Version: -"Keine generischen Schwarz-Weiss-Codes. Mit QRMaster erstellst du gebrandete QR-Codes mit Logo, Farben und Style, denen Kunden vertrauen." - -CTA: -"Branded QR kostenlos erstellen" - -### Uniqode Ad 4: Data Capture - -Hook: -"Your QR codes should capture data." - -QRMaster-Version: -"Jeder Scan ist ein Signal. QRMaster hilft dir, Scans, Interesse und Kampagnenleistung zu messen, damit du bessere Marketingentscheidungen triffst." - -CTA: -"Mehr erfahren" - -### Uniqode Ad 5: Quick-Win - -Hook: -"Create a QR code in 10 seconds." - -QRMaster-Version: -"Keine Design-Skills. Kein kompliziertes Setup. Link einfuegen, Farbe waehlen, QR-Code generieren. Fertig." - -CTA: -"Jetzt erstellen" - -## Best Overall Ad Concepts For QRMaster - -Diese Konzepte sollten priorisiert werden, wenn neue Meta Ads fuer qrmaster.net erstellt werden: - -### 1. Speed + Free - -Headline: -"Kostenlose QR-Codes in 10 Sekunden erstellen" - -Body: -"Link einfuegen, Design waehlen, QR-Code downloaden. Mit QRMaster geht es schnell, einfach und ohne Kreditkarte." - -CTA: -"Kostenlos erstellen" - -### 2. Branded QR Code - -Headline: -"Dein QR-Code sollte zu deiner Marke passen" - -Body: -"Erstelle QR-Codes mit Logo, Farben und Style. Keine generischen Codes, sondern professionelle QR-Codes fuer Flyer, Verpackungen, Menues und Kampagnen." - -CTA: -"Branded QR erstellen" - -### 3. Tracking / Analytics - -Headline: -"Tracke jeden QR-Code-Scan" - -Body: -"Sieh, wann und wie oft deine QR-Codes gescannt werden. QRMaster macht aus QR-Codes messbare Marketingkanaele." - -CTA: -"Tracking starten" - -### 4. Restaurant / Menu QR - -Headline: -"Mach dein Menue-QR messbar" - -Body: -"Gaeste scannen sowieso. Mit QRMaster siehst du, was funktioniert, welche Kampagnen laufen und wie du Wiederbesuche steigerst." - -CTA: -"Restaurant-Demo ansehen" - -### 5. Retargeting / Win-back - -Headline: -"Noch an QRMaster interessiert?" - -Body: -"Dein naechster QR-Code ist nur ein paar Sekunden entfernt. Kostenlos erstellen, branden und tracken." - -CTA: -"Weiter machen" - -### 6. Packaging / Print Pain - -Headline: -"Wenig Platz. Viel zu sagen." - -Body: -"Ein QRMaster-Code bringt Produktinfos, Anleitungen, Angebote und Tracking auf Verpackungen, Flyer und Etiketten." - -CTA: -"QR-Code erstellen" - -### 7. All-in-One Simple Platform - -Headline: -"QR-Codes erstellen, branden und messen" - -Body: -"Alles in einer einfachen Plattform. Keine komplexe Enterprise-Software. QRMaster ist gemacht fuer schnelle Kampagnen und klare Ergebnisse." - -CTA: -"QRMaster testen" - -## Recommended Campaign Structure - -### Cold Traffic - -Ziel: neue Nutzer gewinnen. - -Ads: -- Speed + Free -- Branded QR Code -- Packaging / Print Pain -- Restaurant / Menu QR - -### Warm Traffic / Retargeting - -Ziel: Besucher, Abbrecher und ehemalige Nutzer zurueckholen. - -Ads: -- "Noch an QRMaster interessiert?" -- Objection Handling -- Tracking/Analytics -- Free Trial / No Credit Card - -### B2B / Higher Intent - -Ziel: Marketer, Agenturen, Restaurants, Hotels, Retail, Event-Veranstalter. - -Ads: -- Multi-location simple -- Data capture / CRM -- Industry-specific creatives -- Branded QR codes at scale - -## Performance Signals From Impression Sorting - -Stand: 2026-05-27 - -Wichtig: Die Meta Ads Library zeigt keine echten Performance-Metriken wie CTR, CPC, CPA, Conversion Rate, ROAS oder Spend. Wenn die Library aber nach "Impressionen absteigend" sortiert ist, sind die oberen Anzeigen die Ads mit den meisten ausgelieferten Impressionen. Das ist kein direkter ROI-Beweis, aber ein starkes Signal fuer: - -- hoehere Budget-Allokation -- laengere Laufzeit -- validiertes Messaging -- bessere Skalierbarkeit -- Gewinner-Creatives oder Gewinner-Audiences - -Diese Rankings deshalb als Performance-Indizien verwenden, nicht als harte Metriken. - -### Scanova Performance Ranking - -Sortierung: Impressionen absteigend, ca. 5 aktive Ads. - -1. Objection Handling: "Still not convinced you need a QR code?" - - ID: 4437071703279023 - - Aktiv seit: 2026-04-17 - - Signal: hoechste Impressionen und laengste Laufzeit. - - Interpretation: klarer Winner bei Scanova. - - QRMaster-Learning: als erste Retargeting/Prospecting-Ad testen. - -2. Design Emotion: "Tired of boring QR codes?" - - ID: 2768191646907291 - - Aktiv seit: 2026-04-29 - - Signal: zweithoechste Impressionen, solide Laufzeit. - - Interpretation: starker Secondary-Winner. - - QRMaster-Learning: generischer QR-Code vs. branded QR-Code visuell zeigen. - -3. B2B Outcome / Brands - - ID: 1504294601330713 - - Aktiv seit: 2026-05-26 - - Signal: neuer Test, weniger Impressionen wegen kurzer Laufzeit. - - QRMaster-Learning: spaeter testen, besonders fuer Packaging/Ecommerce. - -4. Feature Listing: "20+ QR Codes. Endless uses." - - ID: 1717343306059358 - - Aktiv seit: 2026-05-26 - - Signal: neuer Test. - - QRMaster-Learning: Feature-Listen nur nutzen, wenn klarer Outcome davorsteht. - -5. Space/Label Pain: "Your product label has 3cm left..." - - ID: 1707202200450970 - - Aktiv seit: 2026-05-26 - - Signal: neuer Test. - - QRMaster-Learning: guter Angle fuer Print/Packaging, aber erst nach den breiteren Winners testen. - -Prioritaet fuer QRMaster: -1. Objection Handling -2. Design/Branding -3. Packaging/Label Pain als Nischen-Test - -### QR TIGER Performance Ranking - -Sortierung/Indizien: lange Laufzeit und aktive Varianten. - -1. Custom QR Codes mit Branding - - ID: 1258668248847659 - - Aktiv seit: 2024-08-18 - - Video: ca. 45 Sekunden plus kuerzere Varianten. - - Message: custom/branded QR codes, "80% more scans", Tracking, A/B tests. - - Signal: extrem lange Laufzeit, mehrere Varianten, weiterhin aktiv. - - Interpretation: sehr wahrscheinlich QR TIGERs Haupt-Winner. - - QRMaster-Learning: "Erstelle gebrandete QR-Codes in 30 Sekunden" als Kern-Video bauen. - -2. Multi URL QR Codes - - ID: 1612914899327017 - - Aktiv seit: 2024-11-13 - - Message: Link kann je nach Location, Sprache, Zeit oder Scananzahl wechseln. - - Signal: lange Laufzeit, Soft-CTA "Learn More/Mehr dazu". - - Interpretation: solider Advanced-Use-Case-Performer. - - QRMaster-Learning: fuer warme B2B/Marketer-Zielgruppen nutzen, nicht als Massen-Hook. - -3. GS1 QR Codes / Future Compliance - - ID: 912391637706042 - - Aktiv seit: 2024-12-18, spaeter erneuert. - - Message: 2027/GS1/barcode replacement, first-mover urgency. - - Signal: separate Landing Page bzw. dedizierte Domain, B2B-Fokus. - - Interpretation: niedrigeres Volumen, aber potentiell hoehere Lead-Qualitaet. - - QRMaster-Learning: nur nutzen, wenn fachlich korrekt und mit passender Landing Page. - -Prioritaet fuer QRMaster: -1. Branded QR Code Speed Demo -2. Smart/Dynamic QR fuer Retargeting -3. Future/Trend-Angle nur vorsichtig und belegbar - -### Bitly Performance Ranking - -Sortierung: Impressionen absteigend, ca. 200 aktive Ads. - -1. Win-back: "Still thinking about Bitly?" - - Beispiel-IDs: 845577364641009, 947060991537298, 1314328070805227, 2379444135888254, 975084468313052, 1626897478589888, 1550285439986462 - - Aktiv seit: mehrere Varianten ab 2026-04-28 bis 2026-05-14. - - Message: "Your link data and analytics are waiting for you, jump back in." - - Signal: dominiert Top-Positionen nach Impressionen, viele Varianten, Video- und Static-Tests. - - Interpretation: Bitlys staerkster Meta-Ads-Ansatz ist Win-back/Retargeting. - - QRMaster-Learning: Nutzer sammeln, Pixel/Retargeting nutzen, "Deine QR-Codes warten" testen. - -2. All-in-One Platform: "Every connection matters" - - Beispiel-ID: 1535165028202688 - - Aktiv seit: 2026-05-15 - - Message: Links, QR codes and landing pages all in one place. - - Signal: hohe Position trotz neuerer Laufzeit. - - Interpretation: starker Brand-/Platform-Winkel. - - QRMaster-Learning: "Alles fuer QR-Codes: erstellen, branden, tracken" als einfache QRMaster-Version. - -3. Feature/Analytics: "Turn every link into real insights" - - Beispiel-ID: 1314712214127043 - - Aktiv seit: 2026-05-22 - - Message: understand clicks and conversions. - - Signal: aktiv, aber unterhalb der Win-back-Winner. - - Interpretation: funktioniert, aber wahrscheinlich schwächer als Retargeting. - - QRMaster-Learning: "Mach aus jedem QR-Code messbare Marketingdaten." - -4. AI Feature: "Ask Bitly anything" - - Beispiel-ID: 2448698088981471 - - Aktiv seit: 2026-05-14 - - Message: AI assistant fuer Link- und QR-Code-Performance. - - Signal: mehrere Varianten, aber vermutlich nischiger. - - Interpretation: Premium-/Feature-Test, nicht Hauptvolumen. - - QRMaster-Learning: AI nur nutzen, wenn echtes Feature existiert und nicht als leerer Buzzword-Hook. - -Prioritaet fuer QRMaster: -1. Win-back/Retargeting -2. All-in-One QR Platform -3. Tracking/Analytics -4. AI nur bei echter Produktbasis - -### Uniqode Performance Ranking - -Sortierung: Impressionen absteigend, ca. 170 aktive Ads. - -Top-Performer nach Impressionen: - -1. Hospitality Self-Service: "Guests find what they need in seconds" - - Beispiel-ID: 2220200865452960 - - Aktiv seit: 2026-03-31 - - Headline: "Routine questions handled. Staff freed for what matters" - - Message: QR handles basics, staff focuses on service. - - Signal: Platz 1, lange Laufzeit, mehrere Varianten. - - QRMaster-Learning: fuer Hotels/Restaurants: QR spart Personalzeit und verbessert Service. - -2. Hospitality Self-Service Variant - - Beispiel-ID: 2060386458694164 - - Aktiv seit: 2026-04-11 - - Signal: gleiche Message, 3 Varianten. - - QRMaster-Learning: Gewinner-Message mehrfach kreativ variieren. - -3. Linkpages / Branded Hub - - Beispiel-ID: 1826847247985265 - - Aktiv seit: 2026-05-04 - - Message: one scan opens a branded page with loyalty, offers, social follow. - - Signal: hohe Impressionen trotz neuerer Laufzeit. - - QRMaster-Learning: QR nicht nur als Link, sondern als Mini-Hub/Angebotsseite positionieren. - -4. Hotel Loyalty / Opt-ins - - Beispiel-ID: 1933435043940258 - - Aktiv seit: 2026-03-31 - - Headline: "QR built to drive repeat stays" - - Message: consented opt-ins waehrend Aufenthalt, spaetere Rebooking-Angebote. - - QRMaster-Learning: Consent, Opt-in und Wiederbesuch als Hotel-Angle nutzen. - -5. Retail Thought Leadership - - Beispiel-ID: 3937841396509697 - - Aktiv seit: 2026-03-31 - - Headline: "Inspire Your Strategy these 14 QR Codes" - - Message: 14 retail brands use QR codes for loyalty, launches, offers, in-store experiences. - - QRMaster-Learning: "X Ideen fuer QR-Codes in Retail/Restaurant/Event" als Lead Magnet testen. - -6. Hotel Revenue/Upsell - - Beispiel-ID: 2005806333649282 - - Aktiv seit: 2026-03-31 - - Video: ca. 24 Sekunden. - - Headline: "Boost Revenue with QR Upsells" - - Message: upsell without feeling pushy. - - QRMaster-Learning: Revenue + nicht aufdringlich ist ein starker Hospitality-Hook. - -7. Hotel Journey - - Beispiel-ID: 1866303194031380 - - Aktiv seit: 2026-03-31 - - Headline: "How Hotels Are Using QR Codes to Win Guests" - - Message: from check-in to loyalty programs. - - QRMaster-Learning: Full customer journey statt Einzel-QR-Code zeigen. - -8. Retail Social Proof Duplicate - - Beispiel-ID: 2175516249652376 - - Aktiv seit: 2026-03-31 - - Signal: gleiche Message wie Retail-Thought-Leadership, weiterer Beleg fuer Winner. - -9. Report / Thought Leadership - - Beispiel-ID: 1896269207741481 - - Aktiv seit: 2026-04-24 - - Headline: "Turn QR scans into measurable revenue" - - Message: 2026 State of QR Codes report, benchmarks, tactics. - - QRMaster-Learning: Lead Magnet mit Benchmarks/Use Cases kann Meta-Ads tragen. - -10. Restaurant Revenue / QR Menus - - Beispiel-ID: 1504621434396227 - - Aktiv seit: 2026-03-31 - - Video: ca. 24 Sekunden. - - Headline: "Boost Revenue with QR Upsells" - - Message: restaurants upsell without feeling pushy. - - QRMaster-Learning: Menue-QR nicht als Hygiene-Feature, sondern als Umsatzhebel positionieren. - -11. Case Study: Spinrite Brand Experience - - Beispiel-ID: 25949066888125449 - - Aktiv seit: 2026-03-31 - - Message: offline creativity with online inspiration. - - QRMaster-Learning: echte Fallstudien/Use Cases sind starke Ads. - -12. Case Study: Spinrite Insights - - Beispiel-ID: 1871281913579414 - - Aktiv seit: 2026-03-31 - - Message: "Most brands stop at scan here. Spinrite didn't." - - QRMaster-Learning: "Nicht bei Scan here stoppen" ist ein guter Problem-Hook. - -13. Data/Loyalty: "When every new buyer counts, QR helps keep them" - - Beispiel-ID: 1137430406113966 - - Aktiv seit: 2026-05-04 - - Message: zero-party data, loyalty, personalization. - - QRMaster-Learning: Privacy/zero-party-data nur fuer B2B/CPG nutzen, da erklaerungsbeduerftig. - -14. Restaurant: "What brings diners back through the door?" - - Beispiel-ID: 1273239168172050 - - Aktiv seit: 2026-05-21 - - Message: first scan to last visit, keep seats full. - - QRMaster-Learning: neuerer starker Restaurant-Winner, als direkte QRMaster-Variante testen. - -Wichtigste Uniqode-Erkenntnisse: - -- Hospitality dominiert die Top-Positionen. -- Die staerksten Ads sprechen Personalentlastung, Service, Wiederbesuche und Umsatz an. -- Retail/Thought-Leadership funktioniert, wenn es konkrete Beispiele oder Reports gibt. -- Case Studies laufen lange und koennen als Trust-Builder funktionieren. -- Feature-only Ads sind schwaecher als Outcome- oder Journey-Ads. - -Prioritaet fuer QRMaster: -1. Restaurant/Hotel Self-Service: "Gaeste finden alles per QR, dein Team spart Zeit" -2. QR Menu Revenue/Upsell: "Mehr Umsatz ohne aufdringlich zu verkaufen" -3. Branded QR/Linkpage Hub -4. Lead Magnet: "14 QR-Code-Ideen fuer Restaurants/Retail" -5. Case Study Ads, sobald echte Kundenbeispiele vorhanden sind - -## Creative Rules Learned From Competitors - -- Erste 3 Sekunden muessen Hook oder Ergebnis zeigen. -- Video-Laenge: 8-20 Sekunden fuer schnelle Demos, 30-45 Sekunden fuer Feature-Erklaerung. -- Immer Text-Overlay nutzen, weil viele Meta-Videos ohne Ton laufen. -- QR-Code-Erstellung visuell zeigen: Link einfuegen, Farbe/Logo waehlen, Code downloaden, Scan tracken. -- Statische Ads brauchen grossen lesbaren Text und einen klaren visuellen Vorher/Nachher-Vergleich. -- Formate immer in 1:1, 4:5 und 9:16 testen. -- Pro Konzept mindestens 2-3 Varianten testen. - -## Copy Rules - -- Konkrete Zahlen nutzen, wenn belegbar: "10 Sekunden", "30 Sekunden", "jeder Scan", "Echtzeit". -- Keine unbelegten Performance-Claims wie "80% mehr Scans" ohne Daten. -- "Free" oder "kostenlos" prominent platzieren. -- Feature + Outcome kombinieren: nicht nur "Analytics", sondern "sieh, welche Kampagne funktioniert". -- Fuer SMBs einfache Sprache nutzen, keine Enterprise-Komplexitaet. -- Fuer Retargeting Einwaende direkt ansprechen. - -## Positioning Against Competitors - -Gegen Scanova: -- QRMaster einfacher, schneller, weniger "Tool"-Komplexitaet. -- Starker Fokus auf kostenlose Erstellung und klare SMB Use Cases. - -Gegen QR TIGER: -- QRMaster weniger Enterprise/advanced, mehr "in Sekunden starten". -- Branding und Tracking trotzdem sichtbar machen. - -Gegen Bitly: -- Bitly ist breite Link-Plattform. QRMaster sollte als fokussierte QR-Code-Loesung auftreten. -- "Everything you need. Nothing you don't." - -Gegen Uniqode: -- Uniqode wirkt Premium/Enterprise/komplex. -- QRMaster sollte "simple, fast, affordable" besetzen. - -## Priority Test Plan - -Als erste Meta-Ads fuer QRMaster testen: - -1. "Kostenlose QR-Codes in 10 Sekunden erstellen" -2. "Dein QR-Code sollte zu deiner Marke passen" -3. "Noch an QRMaster interessiert?" -4. "Wenig Platz. Viel zu sagen." -5. "Mach dein Menue-QR messbar" - -Budgetlogik: - -- 40% Retargeting/Win-back -- 30% Speed + Free -- 20% Branded/Design -- 10% Vertical Tests - -## Reminder For Future Ad Work - -Wenn Ads fuer qrmaster.net erstellt werden: - -1. Diese Datei zuerst lesen. -2. Mindestens einen Competitor-Winkel uebernehmen. -3. Den Winkel auf QRMaster differenzieren: einfacher, schneller, kostenloser, SMB-freundlicher. -4. Keine unbelegten Zahlen oder Claims nutzen. -5. Jede Ad mit Hook, Benefit, Proof/Feature und klarem CTA strukturieren. +# Meta Ads Competitor Analysis Memory + +Stand: 2026-05-27 +Projekt: qrmaster.net +Zweck: Diese Datei speichert wiederverwendbare Learnings aus Meta-Ads-Analysen der wichtigsten QRMaster-Competitors. Bei neuen Ad-Konzepten fuer qrmaster.net diese Datei zuerst beruecksichtigen. + +## Strategischer Gesamtblick + +Die wichtigsten Competitors in Meta Ads positionieren sich nicht nur als QR-Code-Generatoren, sondern als Tools fuer Branding, Tracking, Analytics, Kampagnensteuerung und Revenue-Wachstum. + +QRMaster sollte sich gegen diese Wettbewerber vor allem ueber folgende Winkel differenzieren: + +- Einfachheit: QR-Code in Sekunden erstellen, ohne komplexes Setup. +- Schnelligkeit: "Create in 10/30 seconds" als klarer Hook. +- Kostenloser Einstieg: "Free", "Try free", "No credit card" prominent nutzen. +- SMB-Fokus: kleine Unternehmen, Restaurants, lokale Anbieter, Events, Retail, Hotels. +- Tracking ohne Komplexitaet: Scans, Kundeninteresse und Kampagnenleistung einfach sichtbar machen. +- Branded QR Codes: keine generischen schwarzen Quadrate, sondern Logo, Farben und Style. +- Retargeting/Win-back: Besucher und ehemalige Nutzer gezielt zurueckholen. + +## Top Competitors + +Analysierte Competitors: + +1. Scanova +2. QR TIGER +3. Bitly +4. Uniqode + +## Scanova Learnings + +Scanova nutzt wenige, aber klare Meta Ads mit mehreren Messaging-Winkeln. + +Was funktioniert: + +- Objection Handling: "Still not convinced you need a QR Code?" +- Design-Angle: "Tired of boring QR codes?" +- Business Outcome: repeat purchases, social shares, brand moments. +- Problem/Solution: wenig Platz auf Labels, aber viele Informationen. +- Freemium-Risikoabbau: "free to try". + +Beste nachzubauende QRMaster-Ads: + +### Scanova Ad 1: Objection Handling + +Hook: +"Still not convinced you need a QR code?" + +QRMaster-Version: +"Noch nicht sicher, ob du einen QR-Code brauchst? Fair. Du brauchst nur einen, wenn du mehr Kundeninteraktion, Echtzeit-Tracking, volle Designkontrolle und aenderbare Links nach dem Drucken willst. QRMaster ist kostenlos testbar." + +CTA: +"Kostenlos testen" oder "Learn More" + +Warum relevant: +Direkte Einwaende werden akzeptiert statt wegargumentiert. Das eignet sich gut fuer Retargeting und warme Zielgruppen. + +### Scanova Ad 2: Design/Emotion + +Hook: +"Tired of boring QR codes?" + +QRMaster-Version: +"Genug von langweiligen QR-Codes? Mit QRMaster erstellst du schoene, gebrandete QR-Codes mit Logo, Farben und Tracking. Kostenlos starten." + +CTA: +"Create Free" oder "Jetzt erstellen" + +Warum relevant: +Sehr leicht visuell zu zeigen: generischer QR-Code vs. gebrandeter QRMaster-Code. + +### Scanova Ad 3: Label/Packaging Pain + +Hook: +"Only 3cm of label space left?" + +QRMaster-Version: +"Nur wenig Platz auf Verpackung, Flyer oder Speisekarte? Ein QRMaster-Code bringt deine ganze Story auf eine kleine Flaeche und zeigt dir, wer scannt." + +CTA: +"QR-Code erstellen" + +Warum relevant: +Sehr konkreter Pain Point fuer Retail, Packaging, Gastronomie und Print. + +## QR TIGER Learnings + +QR TIGER nutzt langlebige Kampagnen, Video-Creatives und klare Feature-Angles. Einige Ads laufen seit vielen Monaten, was auf Performance hindeutet. + +Was funktioniert: + +- Konkreter Benefit: "80% more scans" statt vager Claims. +- Custom QR Codes mit Branding. +- Analytics als Kampagnenoptimierung. +- Multi-URL/advanced Features fuer B2B-Marketer. +- Zukunfts-/Compliance-Angle wie GS1 QR Codes. +- 15-45 Sekunden Videos mit schneller Produktdemo. + +Beste nachzubauende QRMaster-Ads: + +### QR TIGER Ad 1: Custom QR Codes mit Branding + +Hook: +"Get 80% more scans with custom QR codes." + +QRMaster-Version: +"Erstelle gebrandete QR-Codes in 30 Sekunden. Fuege Logo und Farben hinzu, teile deinen Code und verfolge alle Scans in Echtzeit." + +Video-Struktur: +- 0-3s: "QR-Code in 30 Sekunden" +- 3-15s: Logo/Farbe/Design zeigen +- 15-30s: Scan mit Smartphone +- 30-40s: Analytics Dashboard zeigen +- 40-45s: CTA + +CTA: +"Kostenlos erstellen" oder "Sign Up" + +### QR TIGER Ad 2: Multi-URL / Smart QR + +Hook: +"What if your QR code link could change depending on location, language or time?" + +QRMaster-Version: +"Was, wenn dein QR-Code smarter arbeitet? Leite Nutzer je nach Kampagne, Sprache oder Geraet weiter und sieh alle Scans in einem Dashboard." + +CTA: +"Mehr erfahren" + +Nutzen: +Gut fuer B2B/Marketer und fortgeschrittenere Use Cases. + +### QR TIGER Ad 3: Future/Urgency + +Hook: +"By 2027, barcodes will be replaced with GS1-powered QR codes." + +QRMaster-Version: +"QR-Codes werden zum Standard fuer moderne Verpackungen, Menues und Kampagnen. Starte jetzt mit QRMaster, bevor deine Konkurrenz schneller ist." + +CTA: +"Jetzt starten" + +Hinweis: +Nur nutzen, wenn die Aussage sachlich korrekt und fuer die Zielgruppe passend formuliert ist. + +## Bitly Learnings + +Bitly wirbt sehr aggressiv mit hohem Anzeigenvolumen. Der Kern liegt auf Win-back, Analytics, AI und All-in-One-Plattform. + +Was funktioniert: + +- Win-back: "Still thinking about Bitly?" +- Daten/Analytics: "Turn every link into real insights." +- AI-Angle: "Ask Bitly anything." +- All-in-One: Links, QR Codes und Landing Pages in einer Plattform. +- Viele Varianten desselben Messaging. +- Kurze Videos und statische Ads. + +Beste nachzubauende QRMaster-Ads: + +### Bitly Ad 1: Win-back / Retargeting + +Hook: +"Still interested in QRMaster?" + +QRMaster-Version: +"Noch interessiert an QRMaster? Deine kostenlosen QR-Codes und Tracking-Daten warten auf dich. Steig wieder ein und erstelle deinen naechsten Code in Sekunden." + +CTA: +"QR-Code kostenlos erstellen" + +Zielgruppe: +Website-Besucher, abgebrochene Registrierungen, inaktive Nutzer. + +### Bitly Ad 2: Feature-Focused Analytics + +Hook: +"Turn every QR code into a powerful marketing tool." + +QRMaster-Version: +"Mach aus jedem QR-Code ein messbares Marketing-Tool. Tracke Scans, verstehe deine Kunden und optimiere deine Kampagnen mit QRMaster." + +CTA: +"Tracking kostenlos starten" + +### Bitly Ad 3: All-in-One Platform + +Hook: +"Everything you need to create, track, and optimize QR codes." + +QRMaster-Version: +"Alles, was du fuer QR-Codes brauchst: erstellen, branden, teilen und auswerten. Eine einfache Plattform. Kostenlos starten." + +CTA: +"QRMaster entdecken" + +### Bitly Ad 4: Simple Free Offer + +Hook: +"Generate free QR codes in seconds. No credit card." + +QRMaster-Version: +"Kostenlose QR-Codes in Sekunden erstellen. Keine Kreditkarte. Kein kompliziertes Setup. Einfach Link einfuegen und starten." + +CTA: +"Create Free" + +## Uniqode Learnings + +Uniqode setzt stark auf Enterprise, Verticals, Branding, Dynamic QR Codes, Daten und Thought Leadership. Sehr viele Ads sind branchenspezifisch. + +Was funktioniert: + +- Enterprise-Angle: zentrale Kontrolle, Bulk Creation, Team Permissions, Analytics. +- Hospitality/Restaurant-Angle: Gaeste, Menues, Loyalitaet, Wiederbesuche. +- Branding: "Your QR code should look like you." +- Data Capture: E-Mail/SMS/CRM und Customer Data Ownership. +- Quick-Win: schneller QR-Code ohne Design-Skills. +- Industry Verticals: Hotels, Restaurants, Retail, Events, CPG. +- Social Proof: viele Unternehmen, Scans, Reports. + +Beste nachzubauende QRMaster-Ads: + +### Uniqode Ad 1: Multi-Location / Enterprise Simple + +Hook: +"Multi-location QR campaigns made simple." + +QRMaster-Version: +"Verwalte QR-Codes nicht mehr manuell ueber Standorte, Teams und Kampagnen hinweg. QRMaster bietet zentrale Kontrolle, Bulk-Erstellung, Teamzugriff und Echtzeit-Analytics in einem Dashboard." + +CTA: +"Free Trial starten" + +### Uniqode Ad 2: Restaurant/Hospitality + +Hook: +"Turn your menu QR into revenue." + +QRMaster-Version: +"Jeder Gast scannt deinen Menue-QR-Code. Aber misst du auch, was danach passiert? QRMaster zeigt dir Scans, Interessen und Wiederbesuche, damit aus Menues echte Kundenbindung wird." + +CTA: +"Demo ansehen" + +### Uniqode Ad 3: Branded QR Codes + +Hook: +"Your QR Code, Your Brand." + +QRMaster-Version: +"Keine generischen Schwarz-Weiss-Codes. Mit QRMaster erstellst du gebrandete QR-Codes mit Logo, Farben und Style, denen Kunden vertrauen." + +CTA: +"Branded QR kostenlos erstellen" + +### Uniqode Ad 4: Data Capture + +Hook: +"Your QR codes should capture data." + +QRMaster-Version: +"Jeder Scan ist ein Signal. QRMaster hilft dir, Scans, Interesse und Kampagnenleistung zu messen, damit du bessere Marketingentscheidungen triffst." + +CTA: +"Mehr erfahren" + +### Uniqode Ad 5: Quick-Win + +Hook: +"Create a QR code in 10 seconds." + +QRMaster-Version: +"Keine Design-Skills. Kein kompliziertes Setup. Link einfuegen, Farbe waehlen, QR-Code generieren. Fertig." + +CTA: +"Jetzt erstellen" + +## Best Overall Ad Concepts For QRMaster + +Diese Konzepte sollten priorisiert werden, wenn neue Meta Ads fuer qrmaster.net erstellt werden: + +### 1. Speed + Free + +Headline: +"Kostenlose QR-Codes in 10 Sekunden erstellen" + +Body: +"Link einfuegen, Design waehlen, QR-Code downloaden. Mit QRMaster geht es schnell, einfach und ohne Kreditkarte." + +CTA: +"Kostenlos erstellen" + +### 2. Branded QR Code + +Headline: +"Dein QR-Code sollte zu deiner Marke passen" + +Body: +"Erstelle QR-Codes mit Logo, Farben und Style. Keine generischen Codes, sondern professionelle QR-Codes fuer Flyer, Verpackungen, Menues und Kampagnen." + +CTA: +"Branded QR erstellen" + +### 3. Tracking / Analytics + +Headline: +"Tracke jeden QR-Code-Scan" + +Body: +"Sieh, wann und wie oft deine QR-Codes gescannt werden. QRMaster macht aus QR-Codes messbare Marketingkanaele." + +CTA: +"Tracking starten" + +### 4. Restaurant / Menu QR + +Headline: +"Mach dein Menue-QR messbar" + +Body: +"Gaeste scannen sowieso. Mit QRMaster siehst du, was funktioniert, welche Kampagnen laufen und wie du Wiederbesuche steigerst." + +CTA: +"Restaurant-Demo ansehen" + +### 5. Retargeting / Win-back + +Headline: +"Noch an QRMaster interessiert?" + +Body: +"Dein naechster QR-Code ist nur ein paar Sekunden entfernt. Kostenlos erstellen, branden und tracken." + +CTA: +"Weiter machen" + +### 6. Packaging / Print Pain + +Headline: +"Wenig Platz. Viel zu sagen." + +Body: +"Ein QRMaster-Code bringt Produktinfos, Anleitungen, Angebote und Tracking auf Verpackungen, Flyer und Etiketten." + +CTA: +"QR-Code erstellen" + +### 7. All-in-One Simple Platform + +Headline: +"QR-Codes erstellen, branden und messen" + +Body: +"Alles in einer einfachen Plattform. Keine komplexe Enterprise-Software. QRMaster ist gemacht fuer schnelle Kampagnen und klare Ergebnisse." + +CTA: +"QRMaster testen" + +## Recommended Campaign Structure + +### Cold Traffic + +Ziel: neue Nutzer gewinnen. + +Ads: +- Speed + Free +- Branded QR Code +- Packaging / Print Pain +- Restaurant / Menu QR + +### Warm Traffic / Retargeting + +Ziel: Besucher, Abbrecher und ehemalige Nutzer zurueckholen. + +Ads: +- "Noch an QRMaster interessiert?" +- Objection Handling +- Tracking/Analytics +- Free Trial / No Credit Card + +### B2B / Higher Intent + +Ziel: Marketer, Agenturen, Restaurants, Hotels, Retail, Event-Veranstalter. + +Ads: +- Multi-location simple +- Data capture / CRM +- Industry-specific creatives +- Branded QR codes at scale + +## Performance Signals From Impression Sorting + +Stand: 2026-05-27 + +Wichtig: Die Meta Ads Library zeigt keine echten Performance-Metriken wie CTR, CPC, CPA, Conversion Rate, ROAS oder Spend. Wenn die Library aber nach "Impressionen absteigend" sortiert ist, sind die oberen Anzeigen die Ads mit den meisten ausgelieferten Impressionen. Das ist kein direkter ROI-Beweis, aber ein starkes Signal fuer: + +- hoehere Budget-Allokation +- laengere Laufzeit +- validiertes Messaging +- bessere Skalierbarkeit +- Gewinner-Creatives oder Gewinner-Audiences + +Diese Rankings deshalb als Performance-Indizien verwenden, nicht als harte Metriken. + +### Scanova Performance Ranking + +Sortierung: Impressionen absteigend, ca. 5 aktive Ads. + +1. Objection Handling: "Still not convinced you need a QR code?" + - ID: 4437071703279023 + - Aktiv seit: 2026-04-17 + - Signal: hoechste Impressionen und laengste Laufzeit. + - Interpretation: klarer Winner bei Scanova. + - QRMaster-Learning: als erste Retargeting/Prospecting-Ad testen. + +2. Design Emotion: "Tired of boring QR codes?" + - ID: 2768191646907291 + - Aktiv seit: 2026-04-29 + - Signal: zweithoechste Impressionen, solide Laufzeit. + - Interpretation: starker Secondary-Winner. + - QRMaster-Learning: generischer QR-Code vs. branded QR-Code visuell zeigen. + +3. B2B Outcome / Brands + - ID: 1504294601330713 + - Aktiv seit: 2026-05-26 + - Signal: neuer Test, weniger Impressionen wegen kurzer Laufzeit. + - QRMaster-Learning: spaeter testen, besonders fuer Packaging/Ecommerce. + +4. Feature Listing: "20+ QR Codes. Endless uses." + - ID: 1717343306059358 + - Aktiv seit: 2026-05-26 + - Signal: neuer Test. + - QRMaster-Learning: Feature-Listen nur nutzen, wenn klarer Outcome davorsteht. + +5. Space/Label Pain: "Your product label has 3cm left..." + - ID: 1707202200450970 + - Aktiv seit: 2026-05-26 + - Signal: neuer Test. + - QRMaster-Learning: guter Angle fuer Print/Packaging, aber erst nach den breiteren Winners testen. + +Prioritaet fuer QRMaster: +1. Objection Handling +2. Design/Branding +3. Packaging/Label Pain als Nischen-Test + +### QR TIGER Performance Ranking + +Sortierung/Indizien: lange Laufzeit und aktive Varianten. + +1. Custom QR Codes mit Branding + - ID: 1258668248847659 + - Aktiv seit: 2024-08-18 + - Video: ca. 45 Sekunden plus kuerzere Varianten. + - Message: custom/branded QR codes, "80% more scans", Tracking, A/B tests. + - Signal: extrem lange Laufzeit, mehrere Varianten, weiterhin aktiv. + - Interpretation: sehr wahrscheinlich QR TIGERs Haupt-Winner. + - QRMaster-Learning: "Erstelle gebrandete QR-Codes in 30 Sekunden" als Kern-Video bauen. + +2. Multi URL QR Codes + - ID: 1612914899327017 + - Aktiv seit: 2024-11-13 + - Message: Link kann je nach Location, Sprache, Zeit oder Scananzahl wechseln. + - Signal: lange Laufzeit, Soft-CTA "Learn More/Mehr dazu". + - Interpretation: solider Advanced-Use-Case-Performer. + - QRMaster-Learning: fuer warme B2B/Marketer-Zielgruppen nutzen, nicht als Massen-Hook. + +3. GS1 QR Codes / Future Compliance + - ID: 912391637706042 + - Aktiv seit: 2024-12-18, spaeter erneuert. + - Message: 2027/GS1/barcode replacement, first-mover urgency. + - Signal: separate Landing Page bzw. dedizierte Domain, B2B-Fokus. + - Interpretation: niedrigeres Volumen, aber potentiell hoehere Lead-Qualitaet. + - QRMaster-Learning: nur nutzen, wenn fachlich korrekt und mit passender Landing Page. + +Prioritaet fuer QRMaster: +1. Branded QR Code Speed Demo +2. Smart/Dynamic QR fuer Retargeting +3. Future/Trend-Angle nur vorsichtig und belegbar + +### Bitly Performance Ranking + +Sortierung: Impressionen absteigend, ca. 200 aktive Ads. + +1. Win-back: "Still thinking about Bitly?" + - Beispiel-IDs: 845577364641009, 947060991537298, 1314328070805227, 2379444135888254, 975084468313052, 1626897478589888, 1550285439986462 + - Aktiv seit: mehrere Varianten ab 2026-04-28 bis 2026-05-14. + - Message: "Your link data and analytics are waiting for you, jump back in." + - Signal: dominiert Top-Positionen nach Impressionen, viele Varianten, Video- und Static-Tests. + - Interpretation: Bitlys staerkster Meta-Ads-Ansatz ist Win-back/Retargeting. + - QRMaster-Learning: Nutzer sammeln, Pixel/Retargeting nutzen, "Deine QR-Codes warten" testen. + +2. All-in-One Platform: "Every connection matters" + - Beispiel-ID: 1535165028202688 + - Aktiv seit: 2026-05-15 + - Message: Links, QR codes and landing pages all in one place. + - Signal: hohe Position trotz neuerer Laufzeit. + - Interpretation: starker Brand-/Platform-Winkel. + - QRMaster-Learning: "Alles fuer QR-Codes: erstellen, branden, tracken" als einfache QRMaster-Version. + +3. Feature/Analytics: "Turn every link into real insights" + - Beispiel-ID: 1314712214127043 + - Aktiv seit: 2026-05-22 + - Message: understand clicks and conversions. + - Signal: aktiv, aber unterhalb der Win-back-Winner. + - Interpretation: funktioniert, aber wahrscheinlich schwächer als Retargeting. + - QRMaster-Learning: "Mach aus jedem QR-Code messbare Marketingdaten." + +4. AI Feature: "Ask Bitly anything" + - Beispiel-ID: 2448698088981471 + - Aktiv seit: 2026-05-14 + - Message: AI assistant fuer Link- und QR-Code-Performance. + - Signal: mehrere Varianten, aber vermutlich nischiger. + - Interpretation: Premium-/Feature-Test, nicht Hauptvolumen. + - QRMaster-Learning: AI nur nutzen, wenn echtes Feature existiert und nicht als leerer Buzzword-Hook. + +Prioritaet fuer QRMaster: +1. Win-back/Retargeting +2. All-in-One QR Platform +3. Tracking/Analytics +4. AI nur bei echter Produktbasis + +### Uniqode Performance Ranking + +Sortierung: Impressionen absteigend, ca. 170 aktive Ads. + +Top-Performer nach Impressionen: + +1. Hospitality Self-Service: "Guests find what they need in seconds" + - Beispiel-ID: 2220200865452960 + - Aktiv seit: 2026-03-31 + - Headline: "Routine questions handled. Staff freed for what matters" + - Message: QR handles basics, staff focuses on service. + - Signal: Platz 1, lange Laufzeit, mehrere Varianten. + - QRMaster-Learning: fuer Hotels/Restaurants: QR spart Personalzeit und verbessert Service. + +2. Hospitality Self-Service Variant + - Beispiel-ID: 2060386458694164 + - Aktiv seit: 2026-04-11 + - Signal: gleiche Message, 3 Varianten. + - QRMaster-Learning: Gewinner-Message mehrfach kreativ variieren. + +3. Linkpages / Branded Hub + - Beispiel-ID: 1826847247985265 + - Aktiv seit: 2026-05-04 + - Message: one scan opens a branded page with loyalty, offers, social follow. + - Signal: hohe Impressionen trotz neuerer Laufzeit. + - QRMaster-Learning: QR nicht nur als Link, sondern als Mini-Hub/Angebotsseite positionieren. + +4. Hotel Loyalty / Opt-ins + - Beispiel-ID: 1933435043940258 + - Aktiv seit: 2026-03-31 + - Headline: "QR built to drive repeat stays" + - Message: consented opt-ins waehrend Aufenthalt, spaetere Rebooking-Angebote. + - QRMaster-Learning: Consent, Opt-in und Wiederbesuch als Hotel-Angle nutzen. + +5. Retail Thought Leadership + - Beispiel-ID: 3937841396509697 + - Aktiv seit: 2026-03-31 + - Headline: "Inspire Your Strategy these 14 QR Codes" + - Message: 14 retail brands use QR codes for loyalty, launches, offers, in-store experiences. + - QRMaster-Learning: "X Ideen fuer QR-Codes in Retail/Restaurant/Event" als Lead Magnet testen. + +6. Hotel Revenue/Upsell + - Beispiel-ID: 2005806333649282 + - Aktiv seit: 2026-03-31 + - Video: ca. 24 Sekunden. + - Headline: "Boost Revenue with QR Upsells" + - Message: upsell without feeling pushy. + - QRMaster-Learning: Revenue + nicht aufdringlich ist ein starker Hospitality-Hook. + +7. Hotel Journey + - Beispiel-ID: 1866303194031380 + - Aktiv seit: 2026-03-31 + - Headline: "How Hotels Are Using QR Codes to Win Guests" + - Message: from check-in to loyalty programs. + - QRMaster-Learning: Full customer journey statt Einzel-QR-Code zeigen. + +8. Retail Social Proof Duplicate + - Beispiel-ID: 2175516249652376 + - Aktiv seit: 2026-03-31 + - Signal: gleiche Message wie Retail-Thought-Leadership, weiterer Beleg fuer Winner. + +9. Report / Thought Leadership + - Beispiel-ID: 1896269207741481 + - Aktiv seit: 2026-04-24 + - Headline: "Turn QR scans into measurable revenue" + - Message: 2026 State of QR Codes report, benchmarks, tactics. + - QRMaster-Learning: Lead Magnet mit Benchmarks/Use Cases kann Meta-Ads tragen. + +10. Restaurant Revenue / QR Menus + - Beispiel-ID: 1504621434396227 + - Aktiv seit: 2026-03-31 + - Video: ca. 24 Sekunden. + - Headline: "Boost Revenue with QR Upsells" + - Message: restaurants upsell without feeling pushy. + - QRMaster-Learning: Menue-QR nicht als Hygiene-Feature, sondern als Umsatzhebel positionieren. + +11. Case Study: Spinrite Brand Experience + - Beispiel-ID: 25949066888125449 + - Aktiv seit: 2026-03-31 + - Message: offline creativity with online inspiration. + - QRMaster-Learning: echte Fallstudien/Use Cases sind starke Ads. + +12. Case Study: Spinrite Insights + - Beispiel-ID: 1871281913579414 + - Aktiv seit: 2026-03-31 + - Message: "Most brands stop at scan here. Spinrite didn't." + - QRMaster-Learning: "Nicht bei Scan here stoppen" ist ein guter Problem-Hook. + +13. Data/Loyalty: "When every new buyer counts, QR helps keep them" + - Beispiel-ID: 1137430406113966 + - Aktiv seit: 2026-05-04 + - Message: zero-party data, loyalty, personalization. + - QRMaster-Learning: Privacy/zero-party-data nur fuer B2B/CPG nutzen, da erklaerungsbeduerftig. + +14. Restaurant: "What brings diners back through the door?" + - Beispiel-ID: 1273239168172050 + - Aktiv seit: 2026-05-21 + - Message: first scan to last visit, keep seats full. + - QRMaster-Learning: neuerer starker Restaurant-Winner, als direkte QRMaster-Variante testen. + +Wichtigste Uniqode-Erkenntnisse: + +- Hospitality dominiert die Top-Positionen. +- Die staerksten Ads sprechen Personalentlastung, Service, Wiederbesuche und Umsatz an. +- Retail/Thought-Leadership funktioniert, wenn es konkrete Beispiele oder Reports gibt. +- Case Studies laufen lange und koennen als Trust-Builder funktionieren. +- Feature-only Ads sind schwaecher als Outcome- oder Journey-Ads. + +Prioritaet fuer QRMaster: +1. Restaurant/Hotel Self-Service: "Gaeste finden alles per QR, dein Team spart Zeit" +2. QR Menu Revenue/Upsell: "Mehr Umsatz ohne aufdringlich zu verkaufen" +3. Branded QR/Linkpage Hub +4. Lead Magnet: "14 QR-Code-Ideen fuer Restaurants/Retail" +5. Case Study Ads, sobald echte Kundenbeispiele vorhanden sind + +## Creative Rules Learned From Competitors + +- Erste 3 Sekunden muessen Hook oder Ergebnis zeigen. +- Video-Laenge: 8-20 Sekunden fuer schnelle Demos, 30-45 Sekunden fuer Feature-Erklaerung. +- Immer Text-Overlay nutzen, weil viele Meta-Videos ohne Ton laufen. +- QR-Code-Erstellung visuell zeigen: Link einfuegen, Farbe/Logo waehlen, Code downloaden, Scan tracken. +- Statische Ads brauchen grossen lesbaren Text und einen klaren visuellen Vorher/Nachher-Vergleich. +- Formate immer in 1:1, 4:5 und 9:16 testen. +- Pro Konzept mindestens 2-3 Varianten testen. + +## Copy Rules + +- Konkrete Zahlen nutzen, wenn belegbar: "10 Sekunden", "30 Sekunden", "jeder Scan", "Echtzeit". +- Keine unbelegten Performance-Claims wie "80% mehr Scans" ohne Daten. +- "Free" oder "kostenlos" prominent platzieren. +- Feature + Outcome kombinieren: nicht nur "Analytics", sondern "sieh, welche Kampagne funktioniert". +- Fuer SMBs einfache Sprache nutzen, keine Enterprise-Komplexitaet. +- Fuer Retargeting Einwaende direkt ansprechen. + +## Positioning Against Competitors + +Gegen Scanova: +- QRMaster einfacher, schneller, weniger "Tool"-Komplexitaet. +- Starker Fokus auf kostenlose Erstellung und klare SMB Use Cases. + +Gegen QR TIGER: +- QRMaster weniger Enterprise/advanced, mehr "in Sekunden starten". +- Branding und Tracking trotzdem sichtbar machen. + +Gegen Bitly: +- Bitly ist breite Link-Plattform. QRMaster sollte als fokussierte QR-Code-Loesung auftreten. +- "Everything you need. Nothing you don't." + +Gegen Uniqode: +- Uniqode wirkt Premium/Enterprise/komplex. +- QRMaster sollte "simple, fast, affordable" besetzen. + +## Priority Test Plan + +Als erste Meta-Ads fuer QRMaster testen: + +1. "Kostenlose QR-Codes in 10 Sekunden erstellen" +2. "Dein QR-Code sollte zu deiner Marke passen" +3. "Noch an QRMaster interessiert?" +4. "Wenig Platz. Viel zu sagen." +5. "Mach dein Menue-QR messbar" + +Budgetlogik: + +- 40% Retargeting/Win-back +- 30% Speed + Free +- 20% Branded/Design +- 10% Vertical Tests + +## Reminder For Future Ad Work + +Wenn Ads fuer qrmaster.net erstellt werden: + +1. Diese Datei zuerst lesen. +2. Mindestens einen Competitor-Winkel uebernehmen. +3. Den Winkel auf QRMaster differenzieren: einfacher, schneller, kostenloser, SMB-freundlicher. +4. Keine unbelegten Zahlen oder Claims nutzen. +5. Jede Ad mit Hook, Benefit, Proof/Feature und klarem CTA strukturieren. diff --git a/memory/project_summary.md b/memory/project_summary.md index 1ac5465..5511b1a 100644 --- a/memory/project_summary.md +++ b/memory/project_summary.md @@ -1,24 +1,24 @@ -# QR Master Project Summary - -## TikTok Growth Positioning - -QR Master should be positioned as control after print, not as another generic QR code generator. - -Core message: - -> A printed QR code is only useful if the destination can change, the scans can be measured, and the business does not need to reprint. - -Best early TikTok angles from the supplied account analysis: - -- Reprint pain after a link changes. -- Static QR code risks. -- Restaurant QR menu problems. -- Event and flyer changes. -- Business card QR workflows. -- QR scan analytics for print campaigns. - -TikTok content should lead with a concrete business mistake or relatable QR frustration, then connect the fix to dynamic QR codes and QR Master. - -## Outreach A/B Test Notes - -- Variant B (`old_qr_links_outdated_destination`, subject `old qr links`) produced a paid user. Treat B as a proven paid-user signal when deciding future lead batch messaging. +# QR Master Project Summary + +## TikTok Growth Positioning + +QR Master should be positioned as control after print, not as another generic QR code generator. + +Core message: + +> A printed QR code is only useful if the destination can change, the scans can be measured, and the business does not need to reprint. + +Best early TikTok angles from the supplied account analysis: + +- Reprint pain after a link changes. +- Static QR code risks. +- Restaurant QR menu problems. +- Event and flyer changes. +- Business card QR workflows. +- QR scan analytics for print campaigns. + +TikTok content should lead with a concrete business mistake or relatable QR frustration, then connect the fix to dynamic QR codes and QR Master. + +## Outreach A/B Test Notes + +- Variant B (`old_qr_links_outdated_destination`, subject `old qr links`) produced a paid user. Treat B as a proven paid-user signal when deciding future lead batch messaging. diff --git a/memory/upgrade_nudge_status.md b/memory/upgrade_nudge_status.md index 4a3c30c..63097e8 100644 --- a/memory/upgrade_nudge_status.md +++ b/memory/upgrade_nudge_status.md @@ -1,41 +1,41 @@ -# Upgrade Nudge Status Memory - -Last updated: 2026-05-02 - -Purpose: local memory for upgrade-nudge outreach status when SMTP/Sent-folder evidence is incomplete. `sent_assumed_manual` means the user instructed us to treat the contact as already sent for future filtering, not that a verifiable SMTP/Sent record was found. - -## Pending send - -These are the two highest-priority upgrade candidates. Do not mark as sent until the upgrade email is actually sent. - -| Name | Email | Stage | Lead score | Reason | -| --- | --- | --- | ---: | --- | -| Ishemupenyu Chagonda | info@aldenadvisory.co.uk | Upgrade Candidate | 105 | User confirmed no upgrade email has been sent yet | -| Shreya Hegde | shhegde@linkedin.com | Upgrade Candidate | 95 | User confirmed no upgrade email has been sent yet | - -## Marked as sent by manual memory - -These contacts should be treated as already sent when filtering future upgrade-nudge batches. - -| Name | Email | Stage | Lead score | Status | -| --- | --- | --- | ---: | --- | -| Marcos Pagan | marcos@easternalliancerealty.com | Upgrade Candidate | 80 | sent_assumed_manual | -| katie Loucaides | katie.loucaides@rya.org.uk | Upgrade Candidate | 70 | sent_assumed_manual | -| Lindsey Holtz | lholtz@uwhealth.org | Upgrade Candidate | 70 | sent_assumed_manual | -| Janell Elder | janell.elder@gov.sk.ca | Upgrade Candidate | 70 | sent_assumed_manual | -| Nouf Saud | nouna.1428@gmail.com | Hot | 65 | sent_assumed_manual | -| Richie Shawl | richie.shawl@alfalaval.com | Hot | 60 | sent_assumed_manual | -| Patricia Hartmann | patricia.hartmann@agderfk.no | Hot | 60 | sent_assumed_manual | -| Andreas Knuth | andreas.knuth@gmail.com | Hot | unknown | sent_assumed_manual | - -## Excluded - -| Name | Email | Stage | Reason | -| --- | --- | --- | --- | -| Profoto Malaysia Sdn Bhd | profotomalaysia@gmail.com | Paid | Already PRO/Paid, not an upgrade-nudge target | - -## Notes - -- IMAP `Sent` check on 2026-05-02 found no verifiable Day-7 upgrade-nudge email records. -- The currently configured database lacks the `upgradeNudgeSentAt` column, so app-level sent status could not be verified there. -- Future upgrade-nudge sends should prioritize `info@aldenadvisory.co.uk` and `shhegde@linkedin.com`. +# Upgrade Nudge Status Memory + +Last updated: 2026-05-02 + +Purpose: local memory for upgrade-nudge outreach status when SMTP/Sent-folder evidence is incomplete. `sent_assumed_manual` means the user instructed us to treat the contact as already sent for future filtering, not that a verifiable SMTP/Sent record was found. + +## Pending send + +These are the two highest-priority upgrade candidates. Do not mark as sent until the upgrade email is actually sent. + +| Name | Email | Stage | Lead score | Reason | +| --- | --- | --- | ---: | --- | +| Ishemupenyu Chagonda | info@aldenadvisory.co.uk | Upgrade Candidate | 105 | User confirmed no upgrade email has been sent yet | +| Shreya Hegde | shhegde@linkedin.com | Upgrade Candidate | 95 | User confirmed no upgrade email has been sent yet | + +## Marked as sent by manual memory + +These contacts should be treated as already sent when filtering future upgrade-nudge batches. + +| Name | Email | Stage | Lead score | Status | +| --- | --- | --- | ---: | --- | +| Marcos Pagan | marcos@easternalliancerealty.com | Upgrade Candidate | 80 | sent_assumed_manual | +| katie Loucaides | katie.loucaides@rya.org.uk | Upgrade Candidate | 70 | sent_assumed_manual | +| Lindsey Holtz | lholtz@uwhealth.org | Upgrade Candidate | 70 | sent_assumed_manual | +| Janell Elder | janell.elder@gov.sk.ca | Upgrade Candidate | 70 | sent_assumed_manual | +| Nouf Saud | nouna.1428@gmail.com | Hot | 65 | sent_assumed_manual | +| Richie Shawl | richie.shawl@alfalaval.com | Hot | 60 | sent_assumed_manual | +| Patricia Hartmann | patricia.hartmann@agderfk.no | Hot | 60 | sent_assumed_manual | +| Andreas Knuth | andreas.knuth@gmail.com | Hot | unknown | sent_assumed_manual | + +## Excluded + +| Name | Email | Stage | Reason | +| --- | --- | --- | --- | +| Profoto Malaysia Sdn Bhd | profotomalaysia@gmail.com | Paid | Already PRO/Paid, not an upgrade-nudge target | + +## Notes + +- IMAP `Sent` check on 2026-05-02 found no verifiable Day-7 upgrade-nudge email records. +- The currently configured database lacks the `upgradeNudgeSentAt` column, so app-level sent status could not be verified there. +- Future upgrade-nudge sends should prioritize `info@aldenadvisory.co.uk` and `shhegde@linkedin.com`. diff --git a/meta-fix.js b/meta-fix.js deleted file mode 100644 index 71c69da..0000000 --- a/meta-fix.js +++ /dev/null @@ -1,23 +0,0 @@ -import { config } from 'dotenv'; -config(); - -const TOKEN = process.env.META_ACCESS_TOKEN; -const BASE = 'https://graph.facebook.com/v21.0'; - -async function api(path, method = 'GET', body) { - const url = new URL(`${BASE}/${path}`); - url.searchParams.set('access_token', TOKEN); - const res = await fetch(url.toString(), { - method, - headers: body ? { 'Content-Type': 'application/json' } : undefined, - body: body ? JSON.stringify(body) : undefined, - }); - const data = await res.json(); - if (!res.ok) throw new Error(JSON.stringify(data)); - return data; -} - -console.log('Pausing orphaned ad sets...'); -await api('6968509692127', 'POST', { status: 'PAUSED' }); -await api('6958800756527', 'POST', { status: 'PAUSED' }); -console.log('Done: Paused 2 orphaned ad sets (New Sales Ad Set, New Sales ad set)'); \ No newline at end of file diff --git a/output/paused-qr-preview/index.html b/output/paused-qr-preview/index.html index 09b8511..8bb7f18 100644 --- a/output/paused-qr-preview/index.html +++ b/output/paused-qr-preview/index.html @@ -1,776 +1,776 @@ - - - - - - QR Code is paused - - - - -
-
-
-
- - QR Master -
-
- - Scanning temporarily unavailable -
-
- -
-
-
- -
- Status - Paused by owner -
-
- -

QR Code is paused

- -

- This QR code has been temporarily disabled by its owner, so scanning is currently unavailable. -

- -

- Please try again later or contact the owner for the active link. Paused codes should feel intentional and trustworthy, not broken. -

- - - -
-
- Redirect - Temporarily disabled -

No destination opens while this code remains paused.

-
-
- Tracking - Scan logging stopped -

Paused scans should not continue into analytics.

-
-
- - -
- -
- - -
- Glass-like QR tile floating in a cinematic studio environment -
-
- Paused - - The scan was intentionally interrupted -
-
-
-
-
- - - - + + + + + + QR Code is paused + + + + +
+
+
+
+ + QR Master +
+
+ + Scanning temporarily unavailable +
+
+ +
+
+
+ +
+ Status + Paused by owner +
+
+ +

QR Code is paused

+ +

+ This QR code has been temporarily disabled by its owner, so scanning is currently unavailable. +

+ +

+ Please try again later or contact the owner for the active link. Paused codes should feel intentional and trustworthy, not broken. +

+ + + +
+
+ Redirect + Temporarily disabled +

No destination opens while this code remains paused.

+
+
+ Tracking + Scan logging stopped +

Paused scans should not continue into analytics.

+
+
+ + +
+ +
+ + +
+ Glass-like QR tile floating in a cinematic studio environment +
+
+ Paused + + The scan was intentionally interrupted +
+
+
+
+
+ + + + diff --git a/prisma/migrations/20260402120000_add_retention_email_fields/migration.sql b/prisma/migrations/20260402120000_add_retention_email_fields/migration.sql index e3a2256..a7f1a21 100644 --- a/prisma/migrations/20260402120000_add_retention_email_fields/migration.sql +++ b/prisma/migrations/20260402120000_add_retention_email_fields/migration.sql @@ -1,4 +1,4 @@ --- AlterTable -ALTER TABLE "User" -ADD COLUMN "activationNudgeSentAt" TIMESTAMP(3), -ADD COLUMN "upgradeNudgeSentAt" TIMESTAMP(3); +-- AlterTable +ALTER TABLE "User" +ADD COLUMN "activationNudgeSentAt" TIMESTAMP(3), +ADD COLUMN "upgradeNudgeSentAt" TIMESTAMP(3); diff --git a/prisma/migrations/20260403110000_add_thirty_day_nudge_field/migration.sql b/prisma/migrations/20260403110000_add_thirty_day_nudge_field/migration.sql index e581e30..d5e56d9 100644 --- a/prisma/migrations/20260403110000_add_thirty_day_nudge_field/migration.sql +++ b/prisma/migrations/20260403110000_add_thirty_day_nudge_field/migration.sql @@ -1,3 +1,3 @@ --- AlterTable -ALTER TABLE "User" -ADD COLUMN "thirtyDayNudgeSentAt" TIMESTAMP(3); +-- AlterTable +ALTER TABLE "User" +ADD COLUMN "thirtyDayNudgeSentAt" TIMESTAMP(3); diff --git a/public/blog/teams-qr-code.svg b/public/blog/teams-qr-code.svg index e650836..ff3157e 100644 --- a/public/blog/teams-qr-code.svg +++ b/public/blog/teams-qr-code.svg @@ -1,51 +1,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/restaurant_qr_flat_mockup.png b/public/images/restaurant_qr_flat_mockup.png new file mode 100644 index 0000000000000000000000000000000000000000..49140f370cc8982444a8977e6c2e6865c6da608e GIT binary patch literal 404718 zcmdS9dstFg+dmFsQjKY4Popz{mNwRuiH8zYB&SI`N{8vBf`S>ZwG-vpqcCAyrUV(hk)M*;D0RM zJ1qvZ05m@r1o{z#xzwd7OAKl@J|83CK#Dw^i7*a-h9MFDYC;m`s zddJuMZB||Zf9AL(e?J6^%!dRZ^Q{`oAXZ>2t3@C-?;nTqZfvqz9Ihf4JUzd$7y4xY&dkmtAq`nF;tfqKnsdmrd(~T|#}3h>z!auSI%$`FX7YF7I&Q z)(^P#es}8?j!gX5LpppoBnoe9o zC+#ze^!u;PMajoK_veqCy0W^7aKo#^(Y>Vd(;IX5NPd?ss_8gPi;7a)(Z`mQj)llioS9Es%sX7vKm12;t~0&mF6yDYuD`eHknQ*<|2Lm`O4b*Gg~*L7aH&58|&lY=i_tO!!O3y&*Ko<%gA3#+;p!jtV=sO& z1%CSI0O`Wd3$xOJPa1A*uj~5EbL|7t`dyc>*JVi|o4?$2aFGjRZ}(T#+{^9LN%5be z@3#K3<>$~Zww}Cawcn}_u%4H|g@12B!N&3>p_xne_0TV^n*PDOcn)GX=)=h&*Z*sE z{+k6kzuRTNf);;hK|51ZNiP4inKj5YNR+p?&sy)bfX(%~S+|H+vinR0WD)TRO8lhaSnbize;fI6V{ygtvy~j;wmE>sNeiw=r z(!;ND>B%e6!u;}V^_KJ&^8T~Tjj^D!nz&x#w@b^r7z>Z22H^rTO%aD)SUmPppInOv zV#rrSlK15V5|Q*(YGPapG4C=yGbU+2REErlN^Rx<{_^<5JTTO%EFby=c+_GAhIq|G zeq=Kz`uIk09K;%MVtGuPkKVVNGaqbSMz^LSDOOK6y^g_=2;G0<>YnSVt zTh8Ce*sFEG2GF(y!Ml#1LjIP#V`T_y@mS^o81%Z;qLtgfa)kZ(o%0dd8V?EKRLPCU zXEcuX-bf&(_#xMN`FQyN_JOnkhROxcwVM5p5bU0!9~{%l@@HKJ%=S0n!u?^o4))d< zvn11(RzC5las&6H@L{*zf3w`3|AytR1~lhg>|6Gs<*rXnk8}AdAvw-t7bzw=Z6@M; z5d794(MXh+k1uMC-;5!90k>$R7jO&A`>TIF=HG%J61n=_m=5lLj``=Zn-RBL z@%RC8VO3=6%?le(Rq(zZ{rnQ)0*?@yu>dev5HipF--6u#6vKA@J}>wmk=s8RUq#BN z(hN&2FH=tbErz|?eU1@L3V{56^xl^?apz)wdo#)W55_P&uyh_IV$8o4!xqmtl4Uc2 z*>*-z-Usj5A1ckCvB=c-WlQ)n7lQaJ>kC6C7tNXAm8B3aJ=AD69lq#@30Dmrs_e6= z?@VBd&-ecH(V{PbSk$?=SL(Xx+voL1j@jNmx-9xm$5P7Y?U`qUSQ&EGZ7;^*w;yE~ znmVi~mQhIGwphUMtVF=I=Y1gB04hjHcd+_3_8L3ZC(~Fshaao^aAyChK;-+kK=hxm zng1aYU8PQp*3bUjdBgr?eLD>|Tx1sM>cS06p5x|rJ%tc@<3C@uKc$i7=AFJYr^c!{ zs;1(%P!9K3U!nso^4DcwD!rC6eY+kkwtUib(`T@G$tqXeG`PR7i9Ui#{58FD*_OFi z^QMq_lmC7ka(Jg5|3x+ae-V5BrOo~K*c04r^8JhFC2Dl@3i{$X@*yhVr{Wz}2XYo90G#q6&w)ps$h@J;Um(~087gw(2e{E+dq`M1xYZ%Z-%I`hp1 z{g*lTg_kY(^U=Em)f?#-{^8O?Hi6!)y=1QE6K>YZDQ(JKt!*?kKXoYj?E3JxD;10P zNn57#F9B;mxL?UIXV~R03+Qxx-Btdb*DKSpp6D9-1S^exPMu{b%eOiSxbx${l@DCd z_ii1e+L3WqG9dVT!<|ct`>>YZ5VGeV%-}zmp|AA;K*<_!U-V3d4uGrox2W*{_pSav z0FuwP*s_yPG7BR;=676iZ@x&0B5}S@&4M&thxl!5e3BgXaRU8uBJa2RO&>!yZdeWZ z`OB1L@Rk0#6sc9l`sU3&SM#1C^M3m~9)acpS^iAu{+n~2^FJoq(=bJZ*%pp|^8^il z>WyFX`3ZF1-$2U01nXb^i3kA8Kq1%uFB53{e;U{YuDKEb7gy;1;obYZ_TIZx z;D(y5sP!qV<;8g}{XWA`lx9?{3Vqe)R$QRO3 zuV!7|()n+biQ{@i&`-RWot?qEfA#>lH~xDL%>6wFmh|5_Fnm%>Lh|ZNZ(!!&Z)Yg5 z@}mhUL{dx&K5o;O*=~npeNl&e4*7V*#rUE;Vo__>cmRBYuZOQMD#mwh+##>Saj~R# zeMH5_rNpJjkW$m55>gJQUWrYKNsh~2`X}n1VY%KR{m?&~xok~1lpd3w6Q3EEPE1Hm zA)fC}01-ex>8n<6=m0u~9KZVq7|Drd9qGd`5aw_UFX7q{FT=@*T#^5Gjn0OjK=cD1qT}oqhyZ?dNH!t1WWP4Q~{$=|> z%^&@)_`mf#)7k3S7*fppZvXMKi)Mc6D$&oi>ftNc?1Zy7wrwA}-Te`}{AnW>^|UbI zFP1Ue>A&{<*DHKXQv6}!kr?kaYe68Z9q+eo#UI-i^Dn5&e@Z)}a;*0s{K0hsoA}@N z`LAiuv`?DZ=xaygvhhh7@0LFAN*u7~>7+%6lj2h1Nk^PM{^5fuy_fW|kHYoXtRCMs z=)Am_Cw{Z}hAzoGV0+Lm^y(!-z&9EDW~?A=ruz^7z+eAOn14C9e{L1xeMpRrBjVE&(q^_e+hzS9O5$=T=T8pvy^JD}VE{ljy1$y>;-=6rcJqc*)vLzqsA>kDbp(+PnLb=zI?^!zH8R{q0s*8 zzuXWKx^dIyU0?0qvv=SAaC~gs;rJs7M~S42%&hDja>3W%96#~xcPCGkoIZ2*-1!R^ zuUx%WUctS7sd>@Y!(LZfW{CUmU`#S zUi3xr<=ahjTzz(q{Nqsiv$>1id|xjcoe}MwWdELE`Tr}){u1n;a`k|0Az)zhAPYcP zkYzOQ5EK;eDu%HX&<6vXpzer!C(o-&dr?_|@feXiW*Wo^|7z;0X~I_%B{q#4)9t&j z%<;XnN#7L}Ur{LThf8p^)1WLpz34o`pqjYE6=QC!^@Kvj8YD`DXPdN=s)SDbWl@+c zN-JSr!`JUV7dPQD|8pi7jrq%S7;}x0`0L^=vFBQB&digzWlTLa=r!#6$?@_YjJ>lOmf`+l`VUnlK0KZ?TWq_{0)@`MA3PT`DS;)EH7aktR&i(mK` zNVul23VrP>ZiJBR}!S~O*Ae3T+DZ22`iT%h@_ z9$Hf83X^w&3yDf0pWaE=PlLk4%;{K93%|YCG`jimoh7Xmb;^2iM{g=!nOy$Ece!Ed zkKp^jOz*U8M;Ie|qP%Ag){i@ibly=Sx`8oIUae`el%h>&*dc}`Mi z_e5-4OXE{$m!C|7R`VhvM32K{ZhjEvLy$kafbTY{7WXi0CxlgU(_ITS;iXPLAs?DKd_n?sd?Z*;To_R@O?+IpTLn-YIv^*6Et5WF{sgB*BZR zsPJcp;&v#Nl6LWTa_+HF8MkkC8=+BgdyplUG@!#`wUCnMAg~k?u+7@^D14 zUg3NW@q8MD;>Mc&EcIkvR#tC*Nz{oxN$(xYsZaUtr^pI7eqg^2gTV;DAe?UOk7o7h zvA8I%gugi}RVgx9?$J5gY0#jl?yMv(Ri&*nQBL@nQng}Jwe)e~lHC}h2p++}!~O02 z?Qyg(z@l9;jUUF?Pm~5d)N#S4(PpfuJ!|Mlf1llpK%FxiC9j~DEZYFaj2SxVZfTrxrEe~=EgROaWtL85C=f3@hM=Ru zJ=n0Xje2=C?WUNSJrtIM;9{fRXx25gW$UIv_L887gi|wJnX;xq1(Ssr06WSYGF87w zNIr9Q_SHZ{NYH3MEk_QRLuU!j#r7NP0)|QG&NeX%_}oY`oQx05kV{RL`0jHUfthA0 zy{$4ni+e$j8qqXZl2-TL6Oc@c2r4~yArcyx0WI1jysTD>FKf1`nJhDv+BhK;>>52f+?yt5PhHn8wRp@GdMPu}}zgEQdPvEBJ8# z_(HLS(^7qLnO17-GXLKFo9aG4Oj(}nSATEHxY7@_FsHRS{b?H(Hl>FZmal$RP|ztq zi#9T|;e{yGmey%dAiI?AAe#ntW+)|&uAO>#A^-A>$cYubyp&QwfJ4s8BU7?gRC%S@ z_u!g?t9n`S?r!v)I+(4tQ7=3&I#d?|?uQkH$Sv6-!`subMCGK`5^DI>S;9+wG-Av! zt=JzR6D9i@G!rShPR~0^38nI(sn)kzbvHA^m5B^>b)Djh^Q46bblf5@)@|YTIZ&oQ zsZozXBXXCZg|G><$}kNok#;cA!<*W0z|M&gz0@B9JXJ=^{o&ynj=rK>o$`2O=%<&l zMAnoK!IEwH>L2j25Pz#jqn1!v!=_&YP@?sm7$ZHbwBhvW{q(4nmMzBUYZ4QjlBJ6* zUFCk(ib2NTX!9peku#gUo;o5-Q=C!Jo3J62(!esBS71d3=l<;-Dp}p2gd@`q4d9zg?zS3z+q$;jvz5voNsShPUvKXXjE6X~-op~fNxwVy`0G251W#~~QH=jI$Omu? zjWD^GFz$qMWn&(|GPq`cHr9-XQ;~GrXX17sjHkZ!x47+y<8dxo&ONRh9Yoloy?Y_^9uu6o260jZ}!-JTId~ zWUr)33fS|=r`nnZ;j-;qPX*8N$l$o*u!f-je@ZiI`>I%-f2oOWWQ+*;iv zFT(L$M;ztisulL@^GcK|l}M%R{(iOK4et$aaH{SH!Q*&ZPeR7kEgQNL?tJ2EJ=#p} zXNPhlIbqYFA7+KF7lSff@NRaK@=ip36V!y;Ywhs9emi6`NCj#5Q%4nuUFGLx&xjqA-k*5VG^o@X1pWtR7 z9zjY(#{m5BQ-Ga+dk4MrzHH3oZ|wbSN-!uj_j*h&`8xj8rl6YC(Q(UH*TBv8Q9JFo zlBYp>ttdQgFqFSuEs?O|l_jE^VPvv)&_5m};&QRakK9pD)(iUddP;9^@6FXrQGD_z zo5x?cCq^XZELqDVNa33%ggf$d<zygaG%0iB|(Tq@x;>_5Rv(yN$eI)p*7 zoafqQn~ZiA?uaoH$~p_g8I_jW`&ck&i6pDVx;=-RT3uZoRqEz6a#pifapC2A5O$6t zpb*ufmzM_s%NmGyC3svA0(Hw&>aYr~QUclZ$~Ym2Gt;QgiC9%wZ$0+r%FntG*W}Q* zf%9=;8yn3;!;%e6eOjs82vovP0co~a=pybL(+#RfEUgHzz$l|9SJly@ByXo~)oIKL z6G_$gYxixtia3wB7E4lbj^PUB=aNd#SV`^sa$#BMeW?WIff<+TyX0V|PJAV)VaBX$I(VdZ*> zC9h6j(KacZ`kCilGTic{Wtflz@{Y+JaWnx%nJTb2*VWKfQJ&ak=4FQs5w}@=wupyJ zXoJ74&RXH_TetTzw5-3Ry|3^9{)Vt>Rsh#!R4ojfgfR&c9<K@yYV(ru;lC~pHw;X4MMX?VD=i6wXumGn z3Z11Pa$__E)g0{TQqm%4C|qbLefg4{sa~(g2tl5sP^I3S4uXFdSQJ!BD@*f|bd<0G zK&t?-FXFK+86&z~Eouuv18<;|r9I8pnRyOAtx9`Rs3feyBWe&_< z6T5&xo=}ECJ8f;#34=Z&ca{F8M7dpq$>{z~os&L3#jegg zc;$HV0T}anAUo6v0>vKB5q6Z`$L$OYnfevz=N3VOo}v@=dVw+Kqwf5hI#5 zZ!ZG_7Ng+taN2hKNHcU14PsINaaoeLp+u?Rz2;K5s;u5#S*2c<)zMp7&wG=)#dm1| zn+%?~RKzV)V2l9NS)0e^<_ogN?6RkXS`)G391ty~fT8PaPaYUUIVuX+7=I$8M5Ebo z#-vtI63jWO-jkY4qw3~1^;iVi+!DP(L|X?fVc9+6Jl6lZe7DG@n2|1I>6MI3%V~@M zlun2;Wn&0!xYwc9Bia3IknolY@P&((^CG8!@h!Z%8cK%Xsew#B_OR&bx85Q9#)1wB zT^aH0bvk$PtJBx}b3?KRUruERw-OqEKkZClV!VtB39o*Ibq3}Rl4zk!gIIuv=0vHY zem$7<{9xTQXiryoZ)IHSWX#&@*4jp83EPIOhq&|;@?;g^i`J4EBf%ae21EfbGU#5- zkbNXUXGWQ+%cns>g3`rN621B0L<~JhiXmqSQe>y@#AM5*HtCjfH6fg~?2&kp!>J$Q7vOsffDz(vrR1W{L`ktOrdEv`AW1S5faxy&R6i ziTK>D#`YbX+_XjDCUkR9eLX=~A0Po1e7$*j(0O>BLc)C;Fs|@5>`fJoYP7F3fHT30 zetUe-p9Uv6x<;*MBu_nUfuDHdAJ0YT>elI%d96wS?R=iykB7o^!>=s4_Jh=fISQ9C zRI?5Am^r5nB~0nOSQx3y=mOF?B}JJgn7Ds1WkNh$4Pp)7KW4h%p8^I|KzI zoIF5ia%JcADX?MwBiV}}?5nc8!V0PvM=5mN!3^^m4&5q8G#KQ!^uNyWP$#}1OLtG? zs2&_N>Khs&ODoMwkz9gXNgm&&dbUb}3F!z;N{8;)l8;FXb#W+RH!9FWUNVf5tZ+oI zWfzos(*X9d$?}z2CBA8h;sa>`Ty{=>m}7|et@~b5GK6(%ws6%8m%?o?@r5Y`v%*#! zUn4rU;JD$ETPCEWkQY@Mr~nkY@K`)bBZ47nP%eEtwN1|LI@kz(D-+YmO%>m?)UKQc zHN~y%t?D@FOD$3IA}X^YH$RCxaI2rd`CY*vwYK>)#)Y(mFTkh5ynUK5RA4=A5n~&e3;k>K&t(NNp@n=)mERI&m5TA^7V97ya zIq}qR3GoJV&eb!1d;|HuIb&Fpprpud?h$V} z$}^OgpAl!)?S={<*lb-(%b+*r0XN#NKf|$A6c8N9A~O5&@C2Xy00lFR#&T9Fm7Bwe zCE^ONPA!m(p`CvJ!C4e_5Zm&7^;EB{>SEQaqrKB08|(gPMNr)(ZXhB@B{6M7+B#_3 z(kUcZ3ET3j^EIOg)$GHeVI7zaopwGJl$wccBp9D1CY!0<$}8q=JNYV=nI19c9#P68 z3d>Y%gRn*cYhUMD6f#GMp~UlW_~N1vug$~~Ml=GmQBjo*@GxYQ-Xsu3g?oH@^bB8_ z8u`c~=$lvg%>f2MTusqUxL2Tbec}_&W*WT>ySf*(icwnA0~QkNYET0xXag8+`aF!x zrXPqG-;!g)64t+tl5AgCpa$}K`nOJ+P(TmRWo(qQnP{A%*l#X_XrwB@b$6WHB?-&~ zz!06o-5m7LK3HkNIh9$vFf#h%jd=D2wZYi&jR+kGc$gTmdmv098FkZ0X25x*pzw`8 z>?+S75-4;cvMuYUp`XqIOV>wgIA>}HK^+4jO`=_Z3pWQna4!c@CM+~F$`n8x;0D@{ zSnxbLSFxqO9?Qc$-FH?Bd>18Ay#?6?n{Ky`>x})>6<#7-%pl#ammulRQ|X%h6q%$k$C^&AOkaX!JL4E2ly8h$xYB1zn`ol`E7=3r)b|`d&r1xR6A*L;?hh z(wDWUH0U9qhW4W(#Z%`pz_V=`pPG=09~4{$AS}lKlXsls3Jkz=(b7U~o`rt-n!;ox zSxB?D)4epqX_Qe5Jaj1&D{@lsxd!9*924E4#4w>`Q;#%Gh{6aAd2y?p7x}O-_>64C zgpHgA6%AR!X>0jUdlMdHX$pB*b^sN~zr?C71tpEbF$9;9Z|~X=aHya_jBZpnlj-al zcWq33sxW1|y51aA_xcN?Fct3hCD; zT#fD3Q57Rx`Ovf7EmPp!R z@gr@N%&Wry-pfm*AG8utQl~*++Vv=+SPJ220Vd^S5T^=Tx#aTz4xm_MBYpMN!1lRX z_H*ShoySYv9Ax2ibH3d_Zn-xN^7V|8$jaovqJIM;(*%+9N6NM%LhEsO!t7~~iXIj~ zF6{ULfCG`#y?u+RoL+NQRQ3))(+$GP)dAy-_p%ohj710dlk^6q`$ zpK3SnJe{MMoCdM4kg9aGj&*>q_eZ4UtTPDw(=;Z1FS*GYx93 zuEI~Dx0MfN2#B-$>lWjUqU!Bv8oJZ!> z0>sW9v8W#%iXLx*k>r5{)(BePx6o&s@QGcH(3%Z`;oAwF8E8#Qc^_E9p}j0H2_mUt zR}=L%XAm&ktsMrL*0f4cb+)UwvfHe0xFOZZBnNYkqn(;CMCr?MjSwv=4;Y?McOv{b zDJ=U==h$Wn(+gNp{iKPCzKTW(!}{Y3ga?QcL>bcyM_0Xdf9e?!Ri`#2T)9P%nWpqA zy}Ub*neM~US}0kHawkVL3gn;$h|w&PQSwq66jV zW~yLrOscy%T*i6xGEAlbG=ps}i~@jZRJad=#e`yUT)KsS-${s4szh?3qEJ*1j(=f( z#VMTz{o^IJ4Qn(5`x919f5cZ9vy9uJ>0pSg(>Y0Dq#));_p|!&jxaV$4x_nZ24o}3 ziDN*L@Y=DpZog4;wOYVzl43>7pbH{N$GJdTG9FW-(yP>k$KK|K%ytEK+F4m?FC)||?_4`DHiKv03Z zm`~@`e-Vr8EJGgah+)UI{EWVwMO^0 zARpx@bc-KA0lYyO9jj$ua5TpAHiO+?)K^yz%M`rbW4F%tbE2WIIVr@+40w)j*|?JZ zKvN=qj=v?s9-luUOr_bUT58PDqmlNJUIRYj8ii8L*&G?=LH_=1Pmjbzo(8F9-)1SW zUwD&sLpgdm8wG2}Kxu4&sIZf^-v-Asz-$Z4-7!8Ey7`!qvb{=A#`t@ztp(!Ox#&gq z5@r}wAh)Dtm&w~1cHZQEChj$`1kTf-y-8C>t;9gOHUUJlX^`>y=ANijfzd!eKX;v4 zuQF!pOyp?23p__DjBF@1*Pu}<@kK8du~QDC`bhOn6KG!qtp=jiqm3-UOrm8Cmv|8v zdY_$$pSmqmAe%f6hGOnAS@L4`*OmiQ_(jo{W4eC5QfRPj8VvCn_Qv?fn?}1?1ZjI3 zRIZZbv2hqrBSh%$C=oN=^If40i$gH zEH}>M&(56_@o-qtsNG(vQ9LZ;9Uc$PV^OKCZ1ak>Z$qZG3rF=#b% zc4rNI1l1?U7_*vl6izzz)=iPGGBw?=BI#XSQYKla)JP35i`8icUeZ7&>LEt??Xv2S zpdBoty0}G17ga+Kun;D_0;E>~l9z}BFFG4&bjcvBl0-J@`G%fXwKiUQh1f{LwiN;X zvP)y3e_{{P%O5y3no#o5i3#lLmq3_QWdSSSzA_>L@b30TOMYKb5Emk2SV~2~%HA0V z!Y&n5dX8BHiZM~Wi(Jx4r9Tn?wB+K-OsNPrnX0-zB#SUlCB&6$>U)%LJ(IFpEv1yv zLXmQlaV82Yy7TER&LW5sU@iOt!MPN&G2U%7m!MKTkMO8g@*lULqu$6WA3mJHZ)vkN zlIL26P87+BY%YO7KxUkiUJj{WA#yDXI>CKy$WV-3+vy!_%=cd)Vdw)9b6_N!^M$E?rm;!#gS@G69SML>C>M1;As$TX(sIJad}4MJ0O~pT`yyhEa?=np{UjQDfwB%Y|#r zb6OMvU0Eiz)QrK3#)g**o%9NmcG6P%6hSTGhkoBN?g0&Uhx7=6r!EKmvKV zlS+mO?WDvSa=y7I(2GrtKsFr@s9j;-@@5ovhq}!kir}1wJrmN!Yyc+$@wgN2HA(Db zS{@R0*sagZUbAVXbP>H0$~Tzm355z}=vGb`?ikp-BC}t?=wmTR&S9K#2tN^s9STF% zGk_U4(v8<$8JVtHr)kiF&Gyy{L}BaT0SrWqQK#@_!C<)<8-lFCzEe8@EuU+-n8@o} zTsx?F5fvIgFkJglC*gT~b+)CHx=9#_pHrBE73sN|=)Q$WfD}dx-$HLg;8rkVo}?22 zsEcOuP~KRO0OMJ~p-tr=^*ZMZmh1`jotI*O;Z+kh?7#}xHV4-C^;7=351zf zc!S)=g>Q*cHWo6uqqxOLa{`dvjj}ydK_&L-oV zpWa!26WjC+`D4BNz(xfG@v0HPL*l*Y=Ilcl8?>B76SNg6PHi&e%Ei?vrP*Ist||~h zm@kZSS1r8m;;eWcmCZYNuP##-DyjIf<$(QLD(%E=xuC*7ZG*dW)EgmRU*4pU@{)*} z5F5gCdAo(m^bXyjQU@=dS%)Xe`~5IL>+hc2!2*kP&2)!Wop390og5?L?qHBa zaHF$iQEnRT5K$+0cXcvSnCyF>gsU>Bm+ntxR4Ws@aw>ln?vSCJB?G`0onI?CJeo{V zf#t1(!7?DlYz~gbdZrgv;ZlHsE?W0VL=;clCC!-b;|7#k=d2i0F;~oKZBjGWso14? zSTXx$Q8b|3uO;r>AOWr_A=nA69K>MAI#nyYHX8O#)R#4x{Ik5XJyOcBpdwdM24tU( zeRAzYA6}KafQfEK&K3n`_GuZ>W8ND)odRv~T)pDDQs{hkgX^hBxu}+=K=8dWN?!Xy zw7$`oBYHE~K+oD@uv5S4sp{2ji|W=?6u7#SC8edKn=GzP!Z#XGec*iPWzhk)kROJF zv9u!eb@`j%wqQjGn^+>Er;fJX_#7`b`5k=)s71I3RdePyjo7HVMYKQ!V(kPre7g_J zc@#J!Rr<%v0JmYGSWeHYK?Rny_T!!8OaQbwuGtdT(3@p2e8(r9(o9A?1>#Wda_i^? zO!}%RxeK1_sA8TTK4Hz!TaRN4lS)LG;Ku9PQ|X)FS_Va1SVd&P`gb)#ioBsj(+O_M z*CQD36$0RVjn{cec{8!wd{sf}9x^GBE+#^;$B0Pv@X1LP)p1FJHs!IHR7Eu+w` zj9O?X2C4RMS3GdPp=Mu$jmoqt=F7vUy-WcFhS9iyed4lf&Co)Eq*#poJ?KIs49_@x zVH1V7jZ|&KW~zPp;>aG8*r|_+q0&7is)zovA%mT6 zd*^^`k53rwN*|cWv)uVym|eYA%2*&VT(o+%jf};4UZO?3_;x?eQFshEfpKlfX>>#{ zs)2hAU|}>6korF~J}WNBwHJuliZRS=_}z8GNGL3t7W5E-HjbbhA!qb^bjgCdKfans zj8MrUn0f=Z%&@fv|ENu}-QJ4yN%qZ-4SJ4Vb5%;>8R-=$S zDBG5Lb+a;o;(_O94r#c!`o}Do!zrxMU>s%O>;0@_k&5SLGyvD)3%iTrS!`(7b2yPB z96@s(*aBQ6S~W-)VUAdU^Rx#)b!3h4J;NfC8}uq&I4}G>IIs zkpj--2!`;Roms%csVtNZtMp*k+}UashlaZ>4Aaf3tMska_rH*43aV5rA{!O-2oCH@ z_@0$YCfmdsH$!m}uyV3T!U!y* z-3&%pckzDDp8I^|i2D93BQI*V(8)McK%s6`u(O4WVu50&&I}cc3av_~jF++A?CV2t zdAwk@qCLZO!+Ul=5Ck1&AXiZRa=X2CdtL;PCNshlsbun?EiLK`Z=x7Zv8xw=8RYA( z#WJAEArK(4Pj>*%?w~|bT9N8ktP2A%Tgl|$!X7FZ3fGF|E6;5)CfC>Z?(QBB>xnvO zW3<3AKEk(ToleQ(9T*2T)(lnT8SD~J`etg4XspjxD?FNBlr3}}fzN4GHVOk-T8U#B zEO{&;$MeKj_v`h7K|hu=-6E(!IZlH!;wqiX3=y?=wuJE>C$AwV(zOrB3xgq5l<|g+f_@c85`D zkun8acS2QMtaEn-9KUn~GhYWVO^pC5`2?}4+I zFp^NT$(`Z+mP}yjpDq!~XJ9Q|qD3|7<&MrG05%y(*4=#VUfILsMDnq5Npy=VO76*HgsJOWOJC|C`~xJNd@$5WR}OvS3URHn4aRPnQ8#a34dUKyt7TAXi=D;3=*Vc$d@`LnsR{}+;O04udx>46Z z;d))+>eSdr&QP|zd8p+)f)jx94n=XRaBD|DancqKa?qLl^%~LkF>hQag6hM*%7xR< ztbSTaU$RUhPE?M(s8Y+KFqDs4oC0kiZxpvhP{5|eY}9WHu{#>|s=@>GuzLlaY+_?` za39OojtITi1=zsO*{D0 z*_*tmhucH!w=QUErq<7f<04;t98#y4>6UJdg*G?Ifu*GjLtGhYnm2=&c&D{S_~%3Z}bjM1?=&E`4i z7CF-&KY$+0?juvTP)4$y*~BKZyOfZBC^2DbbDvq6SCRc{`J!pgETJUeBh{Bxp8jMFC}@6)-=4*sGZ!w0**o&hrpsT z{Y2RTfk(#O9@C{GLle*Fk8^${OciIv(Jt2M=Q9vMNR>K?w#tjp z<8t4(()_T{KqK>-f~!R<8(ZcO#5RK6lyoT-ZwL|;ZkJxUdpk1)sl~$vnOCBfFMY;ymQn*Ji8Ej z2<4=>AxZ+uJ@MV=T(ZPil)DyHL*l(?MaB9uC$k0DOA>lr|bQ)Aw!Bt#`p5X!a>2V1fg5@S5S6Mx?W$fyV}=uLy;vf*&eThHHu z2kinJnslHk*eM+U{%7Pug1E?EuV!PK?Qit85lhfg#1W?L>yEPeH|uR62SntE}gn0kB!+D`d~q^xRY&ggbW0bFrv>&A2{3_Ti1+3 z57Tm)uX<-e?wcf;y{E+YH9yw97^?EDf<{HYWLg9#wB-XEU4vLt_Npcm^#`X`l$?P; z36Bv}t-{T7JOD1nEz8ATJA~3)oKtNUM`0-K&hnjWB6S) z(@Z7wJGYKy3qe%iWDbugy^$Wem66AO1u)?i0a<$cZNC(1hXTL=*R>O(T}WU);=A${ zLhQGyQ03&jWfKvJ100Wwvb|Z{-djWw*Ev^67v`x$X{CA4>rFcBj>)X2*5mFU6`w)| zu({T90H*$U&K2s`7tJ7wXeX-CmN;(GTS|COUIAi6h z_({a1rcp?{3LNH#z0?n3fLcF!A+3|^*k?JxBS>z;>v5ZHO7?6EI2e%G;ct-f+S;1( zL!pjMpi=`owRM6RQ)3TCz{gl?ZI?$nzsr@tQAgbAt%5^yVLxs_hp zQ{B7sg;E^ZK+QZvlI!|)avlvAg==GF_Q}!K6a`kngdU<^Iz`R}wW0g%4-^75`@--q zDDf2-bSoBz`^Di`NJ0YL^J&D*F#t@ZR0Tp#fdc1K>xmX}J2HTzG?1e$k-r=&DuSY$ zAPlQb!uE_|Y}krWu6xi!4xk-n-|x?qVUz!pkY-THN>xR8iqCm36v7-36 zlPkI}dP;GtQOTCIyR#p(w)B-WwGLn~_1WAMcNZP18Hxky*;$2Ta6&J6Wsm7*HLszt z>QTBk4i035bli^NoVP5m685#UO)W42a5M<88W-(AA~%kRmr^f8tJqgB2A`UPZZzGY zx8dHf+Sl+Cb7Y3dQccD8{a)SF#V8c1_! zB&fyxISXG6fFl;7Y=H&JeQi=^Wi?teoKvtIlo4Oje%S@ju!Hi%z{!fTBfsO0v|Acw zu^+Hq*O!mM&>bX&v{w&10PeR4g$ZD2#aJ`Fa*2}y9Z1EMH6v+U*qGfW-}6mvMB#cF z;sFe(&lMpWNs^&T&zwZ=84GQ*C2TnD;etj5`{5XdBFB)UcNB&8_D^vh6^LG|3_ERE z+I*m#nx#{~;`v)?i>_Wq2a@E_b|b=U1k?!v#H1&jNBagiwIy#T<%tHe>F3!k8mY5_ z({VA2Ztw11B?hX~zl9dJv*;AyjGnzw0pwbRRrK;TcS4}hAi&RX0m=~~jI7{DGAw&O zc|rCtyYkP`gMMEE4wkbxIN`-?RL}*0nsTn1$bbwz_FOos&z6bqXIU^zf+hWkku;&Q&>HHq%ZI!l z8rcsmSj)qVK(WJKzQMCTim#_$#5;#wP&Z={91eL$TUa(wa*FW+>J)N~jGg$gKwC>Z zmg6ocdkY*wunI~n^sq9ZCe4?ImFQaN^E9uFDX%VSI?N>TonWATW2zq_<#OTJazAuX z0fxZRw#X|2Mkk|pve_5+`YwbV)IRIUaNI!8;CLa~_VrnrSl)|!5D6k7L9DFgsL zd5%Z=bX~x0h62iUXA2o}?e8Teouh4D0|Ze86*wKf_dtXmSL#JcMryY3!CFpg1m=Fk z!9-b#S?>rgW@GKhw9>*iukr&Rz{nQ$mS2OH3w_8Gu!|@M|Y@oTAFQvf@qz2=>lDL z*49Pc^vqm&LA-*1mo3ja47^lUL$H}rYe}sVvlLtl^t8aliG~LCVy{SwD5xN?-*>;i z`j33y_j`Gs&+R#~moEp!oTt!gwTTb-mA`$W*!5M%q;LGpwTT~(^JdgDog|cy?FvW9 z&G&!vkqX-4(N`}xkNsX@SwUqccd`~~}Ley006sm{sd1?}^EAQ+JlX!VY zAc^USfKvrDa~FJ`Y}nYDA!LA+p~o?up3`PaX1Wt@0HSWi?%)H8^1J!e0=^vd$+qG) zGfPX4VfLYL4gtElQ-kg8d)qU0EoX5TJnT=as)`wHb1se?``I6swoaGYjX`<+o#73XH`uUS(sRxmD|S9hAmJGUsk*o z(m$50j)!LI^AjOOUG*d_NP;3EmxReG)nqc+sS9yxkL{r8TvYh|sNN3eV#@-yls(mNXRL9iTE*{`X5;S0|GqAmON8 zXP6H?Lz`FRX-)r0ODY^5w_oef(}&ZlL#m97Fo;+wSqX^>VhA!>zM126y-ec&^36XI zfa0$znX013TjrwlRLqW~)Jvjf*ceXeF4bLoYff=y!JfBi+84R!Hvd79y|w$GbQdbO zXIvRNFG}0FmkfuBfbJW>7)uw(SRIef_Q!dJoutK}+8m-ZmpLGk8AcZIlXyR%!fD_8 z>p3%6xY9d6AXHkuY^1EIs~%crX9-va`ObusYE!eTZ*{;#DV5`2m(Bt5t+@Mge9ZD= zAFt)D@FBj(9V*S6%O+7Za+G&b7uOrL!FjUCm+ahow|UaDS9^>b>n|L?n!2l~?a90HoWga|6IsUao_wYz6=kd4 z5Sz{m@yomn>%c!4xXOMc5bstL#D390)}@ldLUT0@npxO^j|Ue?i(eV_z?8PD$Xil8 zZ{w!zkhFfQ>+IE(^Qc@cwPMSvG4x6mU>G^DV&~q1l43GRMQBRIgwHsUa@=ahb1isa zSN9y>W7_`_Y%|VG^>F{!4OCxUp44UU%gtDvkR{0Iz~D*KdKoo4W)8~{dNU?jA~{kP zBnU>MCPaD%HOx*@e|ItwWGCUQ0)lK;1Q^Q^0h%VPG2~IKU003f0w;Yz!(8 zqKSA6y=Y=;eURzshmQ|;{r=hU5n`J6X}fI zg*Z0Hh4btuh#{w4jhWEkV5+qM(ThOCAtbwjc9Q1HNnhD(opyx+2~-$T)fU%uR-}LS zdkGuVjzKfX_f~}yiQz;&nFj%>hfOn!X{F+m`t%5PwmIdQDcO%S)0zi zG8U;KzRN%Y)19zomMCk(|IY#&Z)i}$CXSObZ{2B6`gz>M;U8W|<*YL1ZMuE@S=T|v z)hE7xQYw1`3EW7Q28DEUvoTm;mT|ytP)_f!id_+uK-N%yjz@w?@hnqZ!PxP#U10x>lU2?_N~w z*~<9gC6HB~N)EJGf(ej3g4svL!69KQqK97Ln2~)%DesO2lvU|w=7Y!&;{)fo>MfCp z@fHFwzT!)n#ws#^AHeFoK?<8qj4UHj9{;G|Qf|-rP`|zWzFV&Uz3iC6^kM<8zk;NR zChYEvw(Ka0Ouk!KgOcHS-EpVKt`-ujFd6;u3*^NRX9&(0;pSAe=FxGN^c=tDuGRZPtlRIC^9v+7W1ddb6|Z&RkFnb7)f!~ zizfv!i-?St!xbzqQSm?KnSRTPcSu+@Z~jdu4e>(1>uNFg&AYPSZHgx6>u;3xl5|K( zGfq-1Jnt`@=?>6R`2@aa49zV#)Dk8Zm*Ls^=3fC&SXyS+$86UJIc`dRepc zE1czxGB}KV28C)?&s1`@kX*u`20M@e(kBpZB@#26Wq+Py9^Ws z;593?WIV}&mMkG~(Iq(a%8*`yX&i+LuSJ9l(s5r?x0FUSbiN)*iY-;|bXx1g+`|o$ z&gqei3P2V+b)ocM&UW+VR!{ciwoPw#wN5-fn)k!eMMKf?cZpXbG7x4nnmHtxi^&Ot zD{YPC_rwB8XIwJ?v6DjZTi(K#3aTq50q#l-wl88ufMxccFu*ogRZ6hnDo}UeA?ay{ z#7j74{L?#Te>Y{ZnxFhkRK5c997VG4 z%cy15)t7}#?Lb$&W~rXOsuWL*q=BWh+94rx@-^HEnzg6p?L17RmB zM1?y$6?70E$vbcw(E(`^>LlbqOH?1muEx$r?*gKVN`*=8UBjC6{$zUE)%wF%e;{5^ zPmVX^=DqGdSTq^L6ddRbuMMzTYspK+fW;{-eEV_@kC$t7OgY12JS z7+mM)-EsOqzE{u7QJK*zdm*x}J*s*DIbB_x00o-Yh|~FNf>)74!ijAKm=>S}F%0dw zn}7KRW6g$uS_>~on# zpd?=R3wpHxRPmC%dEAPQFMs3mApxR^E5Wy~8M=Fi40SLZ(E zdU8AT|GIX~P% z$Znt%`@|lCd)n*EZ>}v!p_KI6bfkXW7bLS&xAmJ!BJ*=ez+Oy(Z2;%!o348*vU!|6 zKjc~q75!H`I|dCLpxi)6@)@`iphR*=UWo=eM{$u2h!95ty#I-Zk;IU&Ow7H*xO&u6 z?Uux+{I^R`;mQe(+upB5gs)q@kr69D^W^uucEhy0W}*+PMzwMCBY_U_$Xv|63RR(9 zMpBkspnRWWCA-rtp-?~Y&#KTKX(aWAioB<`hEPmPk!!s^uh7Nd-fNDXY3fC z>9h!hQSP-OzcN8HFu0~}2q_NEB0*GIziqfuodBCI;=8gOFSo?9PD9dt)vkWsb5@^C zo5V_TR(|$mc+Usz<9BDi*QZIY9zbMPTlIK)bhU{n0PM#dA21_4ATmxAdC*)?MY$GR zeH+TWJF%CpOc5YXDrC*P2MeqpUi9?ikBuO+bmwe`?5H zPjY%=pPzs2*y6$CSug5;9?kKcXz+p$3jn?lJi8E7qlP#iU{#OwP4`n#js(&FE?o1ziZqEL;>jgfGC=4<<$y(8Nc&&? z=x2qZqnjqa^zgpFm^$p<^bTkAeF>NS6_%``@M>@_D|j#s33t&fb_mY{06LX4Z4$hF z1mr=i(UliL4%$Ov-Ol35Djon8`MxAUJ$QtJ&ab~;JmJ~tJ8V2o+t!k{Daaw3^^|y- zpi6twR9UGdkzrbmJZ#=a&yH4M?QTfM(9FBE2Z(L?n9s)`il-2WJy%rDDO!e?N4w8R zX6$>4I~q%N@417e%wcvDqy|Z}?=`HKr)(VHt?LHnz&bzRISrTKJGy7qQ$c5x&#pb* zJaFXoXkj$?NLrRJ`&!>5?~8lYCqp8N@rfuyrQl1cK|~irra%9$2r~z`m+rUol)E!7 zgxX+Vj^Z4sU2K=DYfEs~_XZH|>@O&@5H#V{>d5U|u7IN>?dPeC_PrR(<<_Cwd-w_SYAebSviByfk4W z8(~@OSHWTk`$b~ew1G4knT!HQI}P>>&T<0u2IQC-~ zKAP@xkfq@42Oe>q+e`0`E%K}#@^~;h@jlTGPa!P*RYH5;y)Jk+f$J%mwhlIWGKgM? zIvHY}D)ph<)&!e-5WE-jRZw=8(l!O+`$G#0UD_={`d$cywN@k`_6t*B{4A%~+8=J6 zDflQ>mJX-`5@_kmY)i-ssR%NX+6AGM^6h0*(#0YZuctUq*W=?N^3rzCvA~zG`}679 ztX?b-zDSbhh}3Uz88ZUO*IDhfwRI{@=k%ixTzQLt$MxO8W#AvZ`rAQok$WTm+HOpT zxb9M7N9?knGDn(0>Sw)2PgVd0ydR0DZN4u(y}IOt!(9Pny350WLtJ!12DWuGAwW=UvUT*2zEt$CJ*F8uR0V2}zs&{FdN7zsE}??cEZype`f9 zofH>DoqeZn1TB-twctBLefee0fkc~N+2Q5_s{KcyQa0gK0X$?loBrp*Hh6t0l))@~ zER6rwOOv)D{;DH~ps=Ak3=+_uo`58$0>Tz;l94|UXcROonk)0C-U=3&C1tk0sVGkt zhyuC2;`n^pg+CCRx;!;$ptlb7_b@d(9uY79za4-!+~fk>X8^@B7wzp`e6U`_l<>rC zp`=CrMNB|^ed>j_!IGPUe<049PE8K7S0p6}#g+|bNP4aqvEbZ#_veBrX|9Q(;@3yh z-{D-w$1hkly9G?CYeUT+G6m`L z3dIS6>ZBMZW383CxTh-40z`Q>s%EMga?(qx^4eC9pTghyR@%|H3D5X9O2(#ZHsinl zKm_hju}Je66IMU>d*Eqtc^19g(kLK@wd;)z9eyc1q!m{{=QA8cvYJHFMCjic9^aI6 z%jg-30=tHOI-S2+-%9B5`;@x2^`Km&!6Ius3LN#J*0B=Le!-dl)k&a>_~-$c1j`}u z;OrLgoKQo9I6odA!;*d#6x|oP{|==nl#yl~&6Bytj^6fiX>#eg$J%#Z=mHn|<2tb@ z1X#`eN4|-8{bTcrXdwpQ6%147U6y^d^mqjDD3QD#e`?PypcJkRDh>7J_KfjRr#>7u zaJIGjK0V|wQRt3R*&cz0Ot!GJNhe(3&vXq+KmYR|AgmL1yI)khd7<#Um%#>#Yha(U z`orH2LeKohxB(-OASPgrq{EZ8cHdp}Qtw*)Wv#tuFIqIAR4aeG8eS4p>BP4X6aFNjOw0lL5gOBsa)EHz*bE>76ms(*Rv+ zr_#2cXbZJ2zn$C)N_DxW>bd$)U$>x(NMRUW=%GvMRSYhc~HM{+>Y-3xga zz~y>%u&Fb%yhST_9`klhcl`LU zFM)Vj7|C@kWegN+6U#2C%ZPY(R!F#Le^8S0N`GH-6&sh&au*XrzabIs;O4fltM$}B z5c`s*a98tevWGvg?URui)n}bl-9;*fjC~nI+h$oigw%u0CoTrR6}V7Rcsk}j3 z3P(VcOvw*b1qHMtOrc~Pfo;*rd2&Ba@~@n`#GK!Mx}_hs$rHnY283Ck)LxJnGXslY z@iSFBP?ERBz@|CdBz;Tvx{4GedD>GLUd8zLbnj&3T1iEKNuFkCC*cB;(5yW{klYGX5=5dwQT1zR?>1ZJQvs!0=U|B=E4S91nfO=4Kan0w`Y4mv>1 zYwAPD7hlgNkY^zJ{~OY24~dC z4(0E^wr~p%8&;WDs@4?YaRkRzYJGrERJs` zB(laN?rAkW9yP#R(x0ReRJ5pNdby1987*{~vIhy+69HT<$9qHMY+zx1T-U zH9YK1_3d3T3S~oQpP)+@T{sIOh^zwNyt+=v1`1G|C6WZ1*lX`6;L<$}73=_Gpct4R z=&w=C!jCzxNBx0VfkM_9E|VVZkssgqp}pPKI&I3K?N7ZDYyE-CKeI8rwQHu4+t-IX zNzz8&B?JG)<-T6cfhwlpm5^+0J~}^HM;ImJEN>z!;wdbF{v>(}f;^Uw@Q1N#qiR(P zIL82TC+*t`<4Gh^s8YmlVI=gb;B~&u|IU?2Ym)fgpMIkMedE?MuAd+0b?A11EDZr7 zUdyWBVj>FYW#P3{_PjTd0|QZl1vkOYK(L(1@HhXyqkuF%YECZRZuuV7LmJpW$tJg4#yt)Z#^o`TxXzIDoEkf4mgi8pZK_;dgu*K zLD{rQy%NXTVYe)o6>(1B8V_%@Eq-?ev{mrPD-PDSMN_;IayNd;r+81vQ6(gntScGblmnMC$GJt{^scT zQRitT7epymVMA6ORaI6Bwms|(89PiJc^#Ej9{T;O z6_NQ=RbZjTwLnd}GW|Q96c!-eVHMuXA{zd7uJN-5ofiX7&1y#wq2gnyr#FArT_gT$FX7$fZpIGRcB132HJViJj#XS~AF!^+d3K57=c5^4p1Hd*cCtH=NQN(~%emMbpNK;o@MC%4Mv8Cs7og? za6f6I>DRq&eRdAr`fFlq0G0$=}BEUv2)lp8<&_sI{XX}Q(NzzDOzl4TXw zv(&uwd<2yqBdjm))CQ%52`i9-1_i~{8)B_ZivI;!81Si>rP&@Mb{&$oMN=_O2+!)n zabwn~5#H13L7yN=aZSLqGT-1|_gLRNtuBM~iWhNBXsn)F{P=2_apIcyiQ!-iBL5v; z<1dN03kMlt}jhulHK?rF% zGyqf59YaIa;>!MhD$6FhH}8uQeS~kE;BMt^GqyP0Nnifd{npaImOtC%V!zvdA<%J) z`?#NowbgSI!R9yupCX|^Zh>AN?g_OetJd4Zv+=qxC`5~bG(*rgI@FEO%^@J|Ym&h$ zg*vVOw6%OSo$~a_!u(_F4{o;N1`^?--UVH36PI`TQblY5IRXuSHm#x3E_Ngb^hKmQ zdd&?p0XjNjTFTsIxQwOV@ZNFRt72x8oAr6to*xY}CZ2@dktIqn*gzQJGn3)n_d|{WF5b1xs+ExP zhINXmjjGe3I%keiBU$450xE!)Y=1W8g_PwiLX!h{u|%5Y7UUfgG~$n6uIJz~^s7B- zvs23U`)H~UEY&QBZCZaJh)Sb(&z0eo4En8eILiX{=T#8s(eanPEV~{QQWLucb=lqXe)94$u4 zBLTF7Jt(A#=4k$|XzR!#_$x(emo*a!AaiNi6FN(cIu*d9=8WxK73j%|>*i8pMV}{P z5=_b=9;FCZG+CxguRBZCSasd?wj!ZF7HPLL5;)I6;@Aa(%Fl)p4|CxSE;z2sLm;v7Pf zJ;AC$Qb97!qK3xUxjVr7&$&|Y?7>`2bN{-vl~SfZ>41m5cLjJIG~K@B*fmR8Lg}I1 zk{X#gGKd3%12~br-!iu{kfkvg+c+iO^$1jhpKamqSmI`ba4bCq(u-tAIQ!Y21-siH zDrX6fgM6$~pZvzbWm93q4(65Q%&Ttt&w`uv`t%(dG3g_|# zKu+Sod<`P%I}M6Tn!pV$6|3+WF1B5 zo(5aJ?g7f`;Q+*J7*D-Xm(rk3jGBqzmG7ku91v&1O68HoUjIEfq=i-ke)qE3rJ2WP z7XZ!i?GT!;oXeN;54~bjHa1#KLy<{wN?3M?T1qp=`tN0hyIROtB6!OpVtd@JPArKi zYX8&rR62#mkhXTYc}o7X+?D_#tHEk?#8u0H@UL;gstfeMUXPh6den(O2OIFwAU0~c z*IYzyeG*mwYp7Ma8Z#U&z)>u|TjSUw-4| zPIduET~a;+7O#WUV^o^PDC6;4$8RlAWu|(eL{5Ysl2>U0#G-cFk@g zNCC9ar1SVmk_Vzd07pr>sPbnybx!C)1_0)4%|#K?`vNg^2a;27x?TXI)}JY-y4win z!h+2o?ua`retoR64~sH@P^9+K=2vD`d6u(G!>2vWr4rbt=|FhWUsOc9GzbhGFkq&L zdDX_sQDGvWmkg3|-81{CL**UI&VZm;Sd0dBn9OEc*NF_Qc81LY=Ps~ki|b?d2MlG- zm0}^9>;;F{jv#CU!C=x~AvdeHCD-nm+isMNw@;UQpEiAfCff&GkV8d~Rf1)^2jnC; z>=LOYO5oi3dVo!Oe_hS>nV4n&ryAvR%+1$0pZWYsL(AN{Ivp>1B*T*-KfYy+r~%V zTB|OFCZm_qh3qwtHsg3b_xwj`63*KQgqBkT~cu{K>-D879G)lor5E)yGjyuBqMgLE5j&7vI7P5PO>1o_GI6OQq zt!=(SsZT;m_oH~!vM|hUT;|2zNeoVmG@@{CB!KcJDWk9L$3>!?7nf1Ntdqo>9Yct5 z^jg7R{(+d}GRiAZPhSSWl>>9THht1%<5NHQ1M#kG?AyD8TKnNAPpm&2ZapsJZ>DBG z#a0i1P(JD9KNC+MfH6rz$SAwxT!3u%w+R}=umYDKW0oYPj*_9;^?{OjtX&84YbCKC zViGO@P~vmh55}XnI=-L2cI~le^M`lLg!4!tHzq^A#95ujEB!Oe3%<7Pa>&v9WDUL| zt~;@8f{}K%)-rz=m;NRs-b`I(GYaYkB-=U12Ioz%?^x{Q?cc9n^>_I19*ZUS5^*JV zafUSaEnJomb10Sn-m!>^WTZGBL)kDDpe1SZS5lx#pk4zFpgI{TmTkP|5gFi8i}GhYa*0;tLO=%M+3${OoS4uDTGE`#HQCU2%aQ)hz% z*5DdgTMWQI$wGJi;mr>XzeVH&QZ072piHC0PQTm`5X^&s@Y5E6vFgjGK;rIPT!fXo9TU}J@m`G|0mnG0gXgHkltkpsa9d8XWY{IL9^ zOsDs5mEoo$)qb_(ET?eLbL^eUeZBp?y4{Od5XSMHim>w1fjSi#3tjY~%}JjRNn#w^ zeJ@W2GOH^Mcm@e2mFL`funm!m*9BGuvC%EKs+jy}0lam3g8Q$o!+A@5RZ7m)-0@=e zrkwUBZeh-m4u)AuHaL#l&MCA&E*#) z=0_<=_}(i8Tr?&y6rN;zAV*(#cAk%)mai}VWV(fYto|U7?HljjjYRQQO~r&VU;#ua zQEwOtbi(3LhQ@@VK<&{3f2%F_apR;?{hV!=cwWjJE9%#To2rMHlG6{eTJ(-jy3d|^ zV!Ae+({SiIG}fR-$>kKW%j?juV}g7C{g{QB7^l60^F>3mMoCmEWvSGdLi^5mgxSNi z%}}}Q3{+J%_YcJEus&A_=YF&K_w2`?IUgV0JoWt9&Z=!Jog5Xi02zA%7U(O@>COe4 zYFg~-@9)z_?O9zA^qd|;s1BW(Wl(QQO7V@te1-xa50<*`h-2^@y}lddVE7VB3~)~I z^pj!hi*HCk#V5K5DfoG^^1@AlStIa8Z>D=wY4Y*6XFjh6)a$6AqU=ttN^yf<*In zHD6=h!%t1`NR{L{r!8T9*L81GK;(?V+yVQjS4rUQ1(P?cF!A6#iJ1Q zrD{ex3S^dq%2#iP-Vqs^L5n4$ut364@6kUH?Is!j;g@Hd7K)!3H*Gd@ayLv~67qdz z)4i@m;_Pm8HwKp_N6On1IgSBV0(MG6rZV+yd|Wz==f1M-D|3^@zXO*=VT1Upwxq3_ zZ8J87r5ky?{Oo_}(i$uL`MBQ-ME^Rz4TwRlDH>|D&H0iBEQ-_wK~_DQ8&gavnp(Mh zCmbgj%nB8Okq=(~y8A!$EO^=eqp1211zCjAa6?bD^mCi-VG2qf*KDysas_EY^}OoA z%{g-sWUHqK=n`JCvo43horrvxrdT^@Hx0sm-gL2B~Z zYyw+c0POK7=B}{?GepTRpw>*7BFXJ9@s)8DBIcZoAz3lC|XU{%4(xNSp^ZWp`Kb{@PU&!hpacXwHMy zNLsF=Xd8eK`x3#620l9bz+;2MX1QfG?dkpdy+y;}cmMrkafyDeqv>eHTbsZP5077& zw%h#t`%1~z0Yh*c6nCEBV-Rc=reEW+Bx)B2GAf#%pRem1qf^-#1~N?Qx9Qk%Y`*Gn zoN~6j=EqNtgRlAFlf}H58F}IRh(K660EbDBpp6~U6B$I*z*=xddALdLDezg_s8RMY zONK+2dh6>o)s@wHNhhqovFO@5&0nI)8|9Y=AE)XV8w-t$jUMk$`+A)qpWxaIN8m77 zRdoLSW>COobt9=Nn|&!uwsqaDl;U+@^o9nHiSTy|$<(`VqjoeH-0UKhzOG?N`1M{g zC9?#Q%0RKD8?LTOn2gfPVbe$f2^6);{SiLX2gjAMPQBswH!4UHEgaS8ufP{Ia@-fy z0$_TgE=`sp$=>LGdvg4H$zQCb$xl@9e03OJ%??h+1I~zXz0!9F7HjJ7K9c`X8~;p5;&P7 z?EEOu&V|b4?A?x96jB7D8KRdmBvCIP9*XE1<)=-Ir7_alX&%#e>$urv8pXWT4e4(q zF%w3rL*&r8wyK@sK)97DI_(h5OZaDKiuNdj1H#A5#V&fH)bYI`_h*e&zWa+E^Li3e z$-BM92#3CZRqh&jYg{?uc^R?iT*X8w9G0b|$+jnWH~39{`KcE5FZf_K5nDL(Y7UUtOC5zKOL z8k)m#rBQvJgf>7M>uNc*8nxsFr{K%s+V8UMj4DFu9k2i zPvXsr8wXm!U7C5C&f{`ELTn(1OE?&ZD}>5OZ4+3W-Z<%Hs}XpkSIs0(vW$Avb&vma zhPc>!ht>$2s9c8a`cI9FU1ip`;d%F|cv9Rskd4}>Bimw%dzd3Gq*a5nc=mpHHiU$#WqT~>=Cx{GcXT|_xAAuSh1lbsS8L0V zqTd$#!gzR5n!3@d*Mqw#N=^Odujz+f5zJbIy9<)xIT@{+pK0h`Uzw+nI{DgNr`?dZ zub>R%XBIEe8m9upf_YWAY<|%?=2Eq45(eOQbdpRaCpkm^%j}13`Ucw+yQszW>a=l} z^6;T2pP8=pI5*&vZ6bQKUD(8@S3DkR`jxN>?_=qRwVW(r_4Nc0O$PYyKFPw&>nlYzhu|P?M;gSzaCvk%fBQ}XXzLYrzTA!ytPJ)IZ}n?*pYk`U*m8P*RIi?b~ zC+$xJ##R1vcu*g9*2Db;B}a(Ljp2Ct;^e-U4Df-ar~2=UOy)Y9$m)N^>{QhFy* z67TXLdm7m}$7B5$OgV85jMdl^3(3FW-W&#^XqFII=_#II=F)}jTt+H2c9}2P67zO^ zL5yV7>|B5)Oa5D{x<5FY!AZM%I9o0mersS}$X}yN+o##LRCI}g^pZ3vH&d@TQL^y& zgA)&Nm={SA=1dsUXabGkFYor#Q(wC#B{k-I$4iOla-_aW5Mnmtf8mMmP2tIO+;*p!gKo4A%Jj;(3+5*PP`p zY_3#eWO`4DRXY1_%)G$>>O{G`+@Dx$E}}9f{GtD=@Za*ERiT4YJfI+$C3r=LR$<|b zA>h=TcQ)5XuA*ciacqpiD|sbk|EdTGYbkN5V;#b=YW2$Icf2`@rfY-4B^}=fc-8{Q z1UUZF=0Q&8>fLhI3_A7=?vhjUxpXHTv%fUlX(w>>!-swZjViHP~WKqRO=cOKQ`NBA(*o8nA|FG0O0 zz?Z!QM2IKXh6`6&?bY_lB!YKPn1B}+(B8nv<{th1U^`oAhJ=aHeiZfYppaeS@&G8R z&Uq0ezrsGYAb+|+@1*jBr8_`?gbXrT4YQX(Bl@rvjO;Rr2~;Xi@=L`!(XYjxEWLsz z-#wU-uX~=)G)N-L)MTf%@6mc7kpaFtAh?#YS80Pl#1p9Tm*AcadE+@xzh58 z)XTXeTBb>upvixQh*jyH)#*(lLlw(TeTn0!B2AfC|%t)2K>x5E{fLB>v34uRHaLjnlo z50o^ah87^4$1yArrOJdD>;l02&TBF2Ry-~l^)?;{riabSFA*?!rR|8muylvB7u8TV zQgA6)P`#98l_7IOZX@T()cD}b+vCT2@(!O`Ny38}699VzT3QowWxOt2 zi30F`xLe9hEbYhkSzwBvFEzxS9soM1P@S8Hnw8Cg*)&|pDo>PyFw9$Am!Z{DsSC_P z{JYb#sE*01)(d!l1KKVURg~Mr=9W4=gEx_CMms~Pq{kC{H&vJV+?7OJmQpWEg$(Vb z=IR%=+;LZThyJK*T9!|^kM#u4()I>LNosl$gR3>q1SOj7fJf7%{?hne%RdS*5s-rH zEk(5@gU&xbk-HQgPH5tmK}Zm&vcjG^p2IC>#{vUxtDN@(ESOz2ElnL0_{*1zTH%X6 zPLb8eeL&n#lj7(7DT|;Yst0i`fuMjZ3kPf{|GR+EsSDX#<^SfN?LU5%*NlD@y#xphM)Zua9s6zEFjIEU1pUX0(%(#9;iw5y2tew8x_1|Jnc5I+*g+uo=`CvoVAprsfP3u=_a_cvVB2_PyLN}4W@*Mg{aq$EbFv-OeI1;e5DO{OdOX!{W1sW@_Y*jYli^l_fX=piI65m-r-c~uC4*X^js;O8~v`;lifJ9>L@m_8w$ zv*5{BVj?ywFZ|3dx&1^x>*VdGWKgo|>^@HD{n<->0Q+kvgGh4M4ZA&gWp2oSpo=I& z1$hx0GHu_PZ>|)3TvnXQ0SYL^QjzED z@!N(X{-*Zf3*&j7=3Xskfa%i7!9+nXGZB-^z~6L2AZ^ZReY75jGmDG7Yyt16+h*FN zlO4$f9Wv}#*UdMlc}D(nYGE4Abmw*WX3og@-~XI~4~X-haBOU=?*o5jA0Y#8aCT=z7seuy}A7Lo=bq z0k>}ONFu4!S&n0AUPA|J*TZE`jK`H5_r!j7cS=9}yiQ*yno!yNY#2$|FOGur$`e^+ zn*fZ57#c(r*K-z7vV1l-wnRrimOf&hy;SWlr8+4R+dY2l%W$L!IL=B*ovN)OPvh~5X1_@#j)u8Js^T49kSHV=b%>HeUI&AHRi9^{v zkEWjdzB-8dA>?w#0jKtSFZ6CyrEZ6xU8GU(j?(6jmqNZu|dcGX=FCWU!8=T!B* zjEo&vbEq8pq36N_4|_rJx%ZohbQoxKhcfD%Br@UjSQe2=QYXnNU{&aDINMI5LWsig z*g7!Cv^^3-9b2g};J|1paK|%iZ~auimMA))BN|E8r9x{zd@8En35gEa^a?zPuh(F0 zbyG}08oF8ogGEOiOA@9joCXFiVX~AD`Him0kicLxr*6Q*_JI8n2kKHFWgUd{cR=L_ zNN(sd!C9l+?crpJ2>@WfwW7o|b@x?+lQ2%z>5Y=Hj|=j_0imhjsz^H465+JxJ5TT; zF`PszoQ)Dn{*R-xk4y62|38M4+M3krY`VjZ`|8Fzt-j9JsVEF1$e-}eoWfbY1&btb>!Z4-nN~VVP^2fCp{#n=ST%&SO14xt?vqsqamiGbUbZORiRDB^6Fi=ReK* zdVy)~N1^V5^Y!u*d^tgd)EFHOXfuw+Re1T2sfLj|)|x?m3p-6bz2dmd-yzX2zkK}D z+fsF5M$~-g@yAWq=|@EdHdDzIHW)Z%>be{fp%BZ*=_*oXy5inOa*C@D*FNBM&icWK z)uRz=k$}2eDSshU)|~)b5US*He1`dp)){T!T~)Kw6Von;RAGzt=25tZgA~};Jb@@N zb{#mflG7AF-X)SS7s9*CubCkOQ`7nZvS!$@sm#q0X5VT$lC&f9NGA2&N%e?k`UBTl zES>uJ8c45GVqPYqf^k}d&FuTo|JCaRN}@m5KT=zWPUPmV63rLTyP}<*I}r{OyAIXb zV>LZ)1rzJG1M6$FrJxTH&P6q2SwqE2xk{_RKQ7x}1_s_H z-XW5{?M%SPvu~B;3V`Zh2?D4}njHb6NaRAj8uukjJA4=lgT)k()&W4Qhfag4AYyi@S+57*c8!>>&nwse_HZ zrgeuA$z# zIx%GCL_Kr75n=~vxfV*oIX1JJ%StS5e^JJb4(wv*DdWZ0Z$;^Dz*QB(C6-y$#O5J_ z2%#Z4ATeup07Acc*Xxh>-)=s4>7vO!>3XXD=}zV#*;aA7kaCBJQnXRNdncDu3Xxne zvIS+f?g70B42VE6mOYDm;;q#njPhj~0WVW99`L^W?cl`LbJOY{SL$FEbmTCf)FA>|-Bv*IP5T-gY6& zMD9Gj+9*89jhHMIUJY>sQKHeKX}3Hi0R96Q)iG-3=xF1@|Cjqj5FFn!tHymPihbT(_xytZ(s995cQL0A5u z`qn&2FTI89Mk^ThulDaaADBxt4~27yN(58MSiBaKXQ(i&^1;DD{4Ria)`$}a zJ#4o8tE zuD+wdpr>rvnGmd7oM$g;02uLP-q04d-J+(JSb>hYbh5P5G2aHd3@xqmzRzCA*wk`{ zR4ofq#+EOh6s6evL7TECW}_G_JA2@g{byT0_*`KEr%Hz_MsNvndr^3qs-?K${r!U{ zzLn6DQgZIuz+B7th6nnVu@WidnQ;Jic~F`__3FbW3>PP zI)fzXL*-y%RDuKvF|~=xo^)^soE-(;_dFIE?a^NRuR!Y%TiyfM6400k5llc4m0<-C z_P&HxgpC^v2NEEaAOV{IzPB3FCQRyL5SBFHFltr~1sb=0z_~q<+0qgt*Cr1~h$FNh zCg6spYTSc{(`luG2xA{aiILsV`NU(~WZ#PAlPD@U*zzWdgUd1U6i35m8**Tj! zR{Nh&X+Wv3?(HTqCp){A9zGNRVt15Iy@#`ysP)$s4uIW}+i8YqTj*rJiUmLLq6+p< zW9^p*%w@oeHfqz#vinPnuJjDYip6N#wSm6ds2*hl%;^d)Vo(q{wf+Ljw9bt-N`7Tl zDL(_;9jW+Au!o%=_0l;opP1uD!?JUwl>wBSD9#CGle^VmowaNKcj%4!N2n?IRYKSo^2Rn5J%2j=HehVVSJKu&HlsLzFVX+{ z4vIt?Fh!?IPD%_E)bXQVgR>iI6xYQTbD6?j;aeIux$eY6yM;31EXV2m71{bjbE_UcfoLJ@H&0g!&ng&=@KhB06U1^D&kv|!7D6#CJj@aQzGI|Uc9l3N@# zSFwJT<8aOA?m_E~3E;ZY-$EiT4MnGHoD!oLsL`c_-M^(F z$Hm3U=UPP&)))>kR0AcCM+nu5zM1a^aByK_E4KU>p5?|688A}Rl%hF3SK zHh$4jkXoX@rt~ixU2k_OZz2_xZ)tnzbjAny1CAkH*W&UpdIo%@)sznOHH&7XGJiWA z|EpC53s0WLzkonW^lRhi<22(rbyu4@;qxE&fBsXO(KP?x-oJ(ZK_u$6{yBj=Ng*k^ z)4Aw~Re6c>NtEL~}#NO9xuq))%Tu=bPQW9a2)2w7f(!mZ__rvYB z#~IU^_f-i^UdMR0f4e;~w0^(~7g$Vm((8mHbh5eMykR0GpeqbZC3AU(-sw>Dc|*e0yT zFPvn3#d>{NZ`k5@zZi5n*6K7VV;)z%Z80hU}7rac=RMj1d6t4{x zl!XNrp3aS^a5_R#4!x;44HR$9veO+Wq_s)E92U@k?aYt#7LE4Qb#G^a{~FGl1%-J; zd~I71=;@}ZN)HBy`ord4d`XxA*A9h-93C7D$uufsrLof;Zu~yv=S^47b+%4=cg*On z3*$(L)l!vk8GQ#?;@5y#1xuUm1Os=)^AS=R8rtsAw?ykoqAT2f!~e+1WlH!rJ;kQT z+32*8R{0OlB+2)Gdg@ZE$8-kFLN35tkiesuBB&?+x*b%%QX2-~*y|N}1GAhr|5?*{ z4XL>4=EghqwwN^Y)TWg*u=t+27CmX)wk>OLGNv$V(%ROO-oMi?*x*tEENrA%>9@wy zHE$d$#Gwz1QYoDuG;SedkOM#~t8WR2M@e~p?hpdDK+JwEqVowq=`z#Z2V^Rlz&YcPs<*#m{a#1q2_g0`!Wj5tLEO9K8k}<(oedZz4~yPyD8S zQF#2gwOO`oD$_3De`k3C_ih8YruwkpPS=gz7cZ(Y0+tXo-z*e9V=F4 z)N8ep%*^wJ^VBufLuwh;ac^fJW zS^Z2UVG33c3*mih4Y2SKKlXZ)-w+%24}7p8mnA@d7F!>~!#BROHWYUSMYPOPZz)^f zzdYILmU#J|%gwj6hHw}V1VMy65oi8aR`vCe-Lx7HO44F^UTf8BAote;Dd zALuiHvDf3e$iY64d&edKp|B$Ptre4#ZJ4!2*a1S~a&_RhvsxC|V<$9_GlFhC!KaNs8NOD2^1 z;+h?UXUBeWXP|pl-{&6&>96fmtGQhFn+F1YzG-mL3F=QIbZ_68%dZ5cUk7C|;kjk` z&~bCqboBWL$Io}#5rOoTL65JjiSL&{Lm$?N^ebY1bPg=iIWWAWcB2Y|i_SYxGC>Sg zJNn>7Gsu+mQ9f?%IP2^Y?w@c|seKno%0p`rb^tq0wNp^oR|(mC*eU`SvT64SOiZ3% zqGQUGSlejoL+2kgTCxpfcRUgmmR;xHHmCV+tnK)R$GusdeDj|Ug-60`?LY+Bzg)luw2h5mou$6SI^b>D5S0LMmdB>Jk=bM+m z3DUe7$P&;2xe7rH9Zp-6USJIirola}(Con8-}`W_pWWCWG3e;E8v8smiRaSXxjTWq zRZt%>fAB!o?>%&WVS-^sLwFY3)?R&&zSPNn*V1T_Nq)LBrStSwAVn}vtJfeG9|0;* z5LO{0c&H^ z?kBR3=DVuYNG(|}psc2e3LAs^s520tAktVGqj~tvT{+?LA*mR)xX3&J%Xl%TC^XIz zD!TzAnT@d>_?yL*)F>NgZ!0uQxpOTW0y(Kt8Kpnbvj^;gMY($k!-c`~;W12YtT%l; zEQ8 zs_;|FUZ@l;39{XSEq+0vcSA{bJN0+e^C#dUq;M<~TxZ2~4i(q?{))q|x9{)er>0or zH6C!iiz5x~MUoLf@yQ)D6^9HEM5WL&UP`AC*VG~#OmvJuwCFIZQR9V4_9b7>pNOv7 z7FqHob+zVSnznis{q_bi$d3?)181~KZQ0&mQc>gV6kf5p%BYr4GfDk9po&LOteCh5 zqjdHG1CEogjEjJ<{~6S&eBF7zp822mXIE#9wOYQYugUbiam<|mN;^hy84%9#LXwws zgBT2G5wCIV9^vLM+f)~rs%wK(DS+ZoiZGji!ZNVvFTBid6B^NW|DNheQ(NYCYTH;675*C!R(QD2Q{;ef;G}u-uv&wAw5S|SQ;#3*5UtNC8j1w5e&8aV z60i?@`H$=#1>#_?z4K{t#^0naah=)l!7LE44(K16xVLiRf?fJ55Fc7y2q*TR>BSad z1ELEYBrgCAKMC?@*-gdUB=kpQ=g_*pB6@31sOB{tb*Y^7JtseG@<}@flff1(SiqU-p z5nK_+kZXraQv{(vD9FvBr+qDkmFQ``@)*6+kOgj&5p8?Dcz`+LogvzZ zCKQi-+GaIR3X?o-Mqg6?+np_5{@X3h6X#@F!#flp{)L4AcdjC{R3HRbf+8C9KpL$} z1%FdhF(o0HS5Ikwxd=LtZxlyrmz?@x!x6RYxi{Z(>;IS%*yzv&QaT*hwLpUkd)_sR zCp_iP%l4uVi=*+N{3Fj+cH_&F$j#~nTU^YUzQMU7hoz#-x98RHH6%jWK%dK^H4b3Y z***zPaXdViU;7u37l4zbHu*~O5wYe3%uy76JmFee&u6T-z+Lt3^5K&BzoerMhZhsh zcH(uYU@Y~`GiGHRq*6e=i23G1{oF{@zCyXaU7T@njhMa(d6wt`PD61UxM;2bjv?|6|7s zKw~d(pt$o793#$4?#}LMnRMWcdBC5OZ}G8x|5C~E%3#V;G=KYw({v_Fib2CeG5l5) zHGcBKo+1~D!UhvCMNiD($uT+oQT7jDtZXl^saHGm75r^q0ySvfQ0#RTzQj)1(y$(! z8iIg^s6b!I8npgOEPa5ZpVXt&f_PZ55;ax5GXVov=CCR_u;l3S(JgsxbxoeONplkJ zHe<;3Y)yrjep0YP>2q`JB$!Z=0^fAuB;S|^DFH08PSuNDr?ZI_uu3SSqz9mn>{Ut` z#hwn1%Nl>sIQz`gra8!$#s3rbcf4Amml=2x39TV$kYt3^>YEh)4w%+Qf@q5JlPn>f z9i3JxayZOlZ)8oCwuiazPlWXMgKp#JnQ#0zN&n-DIiDG+rXc*e9JnGC#H2F_elBO2 zog%62;pS2|0BX^4Xq~T24O?Hy4WJ$XNBWaT zUh0b})t9P`8d(sm6}++ebT#LtxoC{&v^ScidMMSs_U{E$n77DIR33@@5oG+Q%MCv? zXG}VK+-!%1+1^VwI8mZh&|VPn$ZNLHnd7TzL~|*W>S=f6AoO9WG6v{r@ZFttBq+4B ze@|@tfWs=XS@-!A&lJjq6ir*_J00EcpGg17`)HXX#;rJX za1;av0pQK;x69Amk3PwZofx9lHgBhR-KRx`L=&4;0b}$RPXcXyid*;##}_QEBs!o2 z_+LbMpW^87 z6n{U%2@H>P7;?}I7+k5I_@|^SaJfBYf56%*%}7mKG$=Sqq$l$?zj{6UDJx9IT96i`fwWCIFMGhbY}>( z5~yGMDK}q?7?@U(LRcb)KE$DW-hFE-U&&Y-WUQP5F$nP*Sa`Mw<-eY@6w#~4OO}-E zW7*dI^Jdq1$E@{pRg=+mF#UzPY2G>d2I94~L+b{EP%()F?UV%x8pr=vKS3#mgRD@h zpq`~7r-qGe6w-)&03dO{!r^J(yv9!%It-hY6vam9!HqtU#KIR1+x*S}~-)X#m#sjWuPK zUX(Z?>v|i-HVHzW?$HxlDFw;@RA0I+6%V;D2B2nwlsVl>3NR(e$hZe8v)TjqP;441 zC|eVicI9$DBpV%ZBDfLD20tzS06P1l?yR@-+9n#eZoA66l-WFIpY3?{RB3hBCUx2D zS`6HSTK=pOf$(357PFRFz}{n=0ip4x91>6iW-GxTX^F27D8&N6|7mKO4fXDO|Hof6bR*;zoMUgtp}d z1gyn@NdTkEZg12m^SgWaeER>smT5m%csqZZ*K|9Ux?MyQYY5d8sgYvz9(@3X%`Nsx zqzCLnAyXvwmSZ_7smS&r%H4hIfZHP9;Xq=&S8GFk#jr~O??thfjZ$A0QP9}tt&?daZ zd3t;zkZ;{pn#Hl#slVsPUdEjEiLbbQ#qV5JsYWy>y7G^owQ7A>DJg8RIszgT1cF^H zKYnm7{ePS709caCQ7br_Z)Fb+r{W3Sq~ z)!ugdyh^41q!(C!1>M|LJcAZ7%XvBJCzkjT(t|Jyx*Wm4ymTSqBsbatbiRDYSMMHG zlf`8c5Jy)YNGa(5+gP1dUT*;xsja51PC(V;@91zRX|Jzb3r5LkY@{7y+egF?6j;G9 zC(c8;v*ptwJu)k@tjz6zt5l%^_L23AohWd#Rn$@_sH|nMLAf+}wo{=_ZE|tk$+c-S zt8VT*2C15Y$til{fUZn@8M_6&yP8C@sui?IO;b$8nw{;Y>*6vp2c|$2#jO|83-Kr{ zx+gsPG%Tab;uE9*2Uq#FkNr-^uj!dDS~~JfbA)UgxIBSy^9oSKkaeloV53suKyH2r zfKsWrM--+TpXz?+j}RYmK2G1D|BKGU{^Co8j-9@2Y#34X+-9g>XbytEbY9O-aYR^k zYrvffhFHTRsp4fybWK0Umr7=H4ozJMM9lFS>^$f|m3omOt>$&{-9yo=p)KX~{hZ0! z?qBnNT(Tu!-i(u$_2T~r-+^UB&z5~4!4A-QI)pn=d|kcy@(@38+34xy$CBPoAmeXQ z23=qZ8rXd+Qw=VxZ!aw+4YJc$j*q=amN0}%ABPg;>II|N2NSKsBZWkwStA2Af~+g# z)TrMPN(#a_g<;t(6%M#0{ozzGkju?8YldPBxZD6{?{$Y<>BE2a<6OO5{bFIRLoQ`J zI#kgXj%E#^F?JI@2S)%p@b*iwMHf7U0n`s zogF4f+n8pfaTB`ie+fOZ$L(Ce$ci zr(Y>mKaE}@x*RwKsDKw2{2qrB@gruz^?iKl%wM&5``dHwvp>|*%hR42TkUP#{W{Uo zUyC!46NuMp>jL)<=s;{vU!`tCBWvb!NR98s6a9B!Y=guBuu+0A@I~ZnwA^+iFb^+^ zKpb>YfXaF8o;{;m{pcqkD7-3<3&~--u;9Vy2S`l{sll(3BluD>>`?Nv`5z;z08C<* zPY3xq*}gdZfqWN4?_EVI|8i&DQ!QFrN3@S`r{=QtWtDuTd5&4SC(&9$xjW2zsF$cW z&oc)-AV?K$GYg@by>XNQCG2oIF{>h0oVcpBxz)mH{-h)ObM@mtw&*MO1QL}}*>2@> z&Z}<)*~x}{U-x}SABNKayvBOTQv6U1voe=GOw$$FJtTM*b*c}ODl)wDB){$M$&QJ0 z_IdZL{aCj(4+AbQ>Lojrb$#-(?hdlz{G*^S-Szc;5EzFdiI_JW)OgD<7}1ee4csl& zYvMw5-%X`uFVv`|Efgd58ShN%J$rKHH&sDF)V!R%VQxDpIZ^--aKkn@7w=x@la3{rHotv-an5J9z zxfwG+1I6fmzwNil*)la5F9l~%zT+MO6~`wp`q+{Y!HT&bC}Ch>)=OAAW3RFS)|S?2 z@Rx6&*f#U6dXax~pXEenqSsAb{=2!y#b{XUM^GC)krt&nQOIMCNv}Dnh~+=R0~*GNz6W(mVw2pmJB{%fpD$^$uI9<5j}PIrAWJ^P-@auJprwIB zxkhn-Q(7T<3J$8|Kym%fa8^HBMk~1)42Ljl%7k>8y2(#}5$X0^5-0JuPVEYyMHgTk zh|_rWHN9*f2*CwJr`>Wo!EJt~!f(_KU$X<%((~mbJaQoAYnDnTJ?m$;o%Mo@lP~ex zuln~Cn<8qgWhy|dy_I-~h+0%i!%|%SX==e1#2_qTlp7tsBycn>58hfKZUAV15f`1y zU2gR9C?3mCZ{L1@;%$TL_||PRJ>S_6L`WzNFjrN^27y#Mt0lSy}{nd|zba6^P4hwnYf zCF;ZgS$Z~^5xr5wEE^2PINhm;krI}Kw{DgOE^%J|)4hHDdxu!sQD2DDYJRf)agy9_ zg#p-={=7r|p-R>vx#UzonVx+Ixs^GDI;xg6D5(N^_e&p@fI7IfMneq3jYBQP2y7pP zq(o|i41!`j?T=Cw3jDsvXv=mI*30ZiLmy8}jy?5d&iDMDotEL^*EUO%-k;U(`EosO z9jYY83F+12z-18CwH}v~uq%fnnC{>^RzdGHP%3yh06zrbeLumEm!n@x4CAnCDkLf? zRs7Pj!&Z z<1;3LuAgX`)Y|!K=F5Ki9?(N&1oDdE0gbDyPx z2~pDDz=-S+eZV&Q7rg-Yb%#UKq_*AbuuT_#rR66T8o}rL!t~r%Kf~AH27RnS5Mcp! zzVlrksenWvuT~d>U&Sr72#|)7HiQyd!V}u~Yc?P}?PTFK9ZNYHSoHf>KK=q#`A1L6 z<)f0r-~w$}Vv8zZ5)VQz<9uk{5bpG!j$)P!5Q zG=U##oOSWg8^}9hIXP=FLdF%ZpEK$uP)!gNDOZeDW}{#qq5-q1YGA-=1To%j)bV2- z>irrnhj-91Vc#@1t=`}LarKxxT~Rw#e!fABRuOtQ%%PaHYY^j=B1#d+G{Nn&s33nP zC1y z*g;-agu|3Q%#yv(AFRqmmus`1jn(Vr_+snJQBm{1te>|Ex`fvtV(bcxDY>ll_ejOj z2tF<_m#TcnVm~{b-L!h{>a)V+9Bbo)6PeuDH$K;9Z|&@kZrOM}Eca`+yO7X; z2o5RhL-z2S63%&J#BXFX5@W>%TsITkxmB`%p+vay8ut<%DJ8)bh5fJo)AIRBp+(`@ zNa-lvIyv^DQ!e@V*^I6;#$}Z(%<|oy-z)XRexd_Qr=R02g7C<-AP0Om$nMfhmrUq& zsvwFR_ZOh45e$7+e_kyxzG$t>SX3n^eQig4Ws1~}vX*^msJeAZy=4WYhmNqU)#;Jq zM?pbGUv9)`zT^5`JwXFPWS>IVGg$la#?O5Rqtu_cEVs?4Q^A!WkWXLGW4FY+1F15& zO5{V1lw@E$=yCtc44E)^7 zca;QMYjZ*u?T#SRUR?L`J3lbL*6FImU8y~BVC<2MVbz_%$~VrFU^zqI#LlI6zl#*f zF_;4ATq&5BmsQ}8W?5B3+S>g+`b{1oxGxxzuiw`1r>l&~*GrR`E2mR`tP%Mn zM@#55KF;Gk05=iMLK&||VK{Wur+DT4{FyN$KVmJBg2t?&(zG%K0d&a0c}Sw#j8sxv zm;$X-y6-SV6~fSx1MDm#P!wS@bb&9yd)Wogtd*RN;1Cu$&KfGxJuRWp0INnypJi68 ze(`+;rlzV7IzoaG4n&}Cb@A!h2ilDD%^XGlbpAWXW}Clgoi;g-pPigeZ@)~dNA&d< zIf>Xo4447_x@8hU9Af8kyD2d>1MWOP*&PnN!9$`{4(L2?%il{7#$}ubv&31=*R3D! zuxe%d^G)6lG)e!GWf1Nsf^SUQx6fvr>h{YFzj^1vB)|4{LNwpcP3iKmb ztD?V8-B|?$)BqXwLJS*A>(0E?V+#z3sNguffjJ~;)~OPdUMtoL<*jdl*gaO6Y&L^4 znGlHDomj{5345Dqs$*Nsyga$CByw0>jDBOls!07d<*hJ;By{Uv`0e`kyqS1|uIV_GCz(%vhy{X0; zqj=92I)$i1L?~%AHjbBdYpeCC$EpN2or<{ zQe~*99{vtv^5Z69`wh#|)3@)9#U3|zjA$$!uS&x<3DpXmm&&Mrbf=4>Z}+gPpxwPn za!yft|8RUL%HPk9B$x+W#^E|N_@ua$=S8XF8~J3r@!|*S$8@vOPB^hGuhscU;frU* zuD0%RM8t3nBs;H{H=!Br5PMeuJtbP8kWrSEihT#bTTLVot%Ber;}O>Vf*zuSg9Zk4 z!UF~5KrboiSA3ye?LpU<)gE+ui}PDsx!C6H_H{vy0Yh#M3Tf+4kkaZ8Y^p56c8d8( zh(a2qL_7iX#M(8%yPD_ge)+x%pjK|=e=^S|VA6K&lSL3m3zA^WhvD6vv$9DaO99`c4WK%Y(Ci z${?$#M&z{P+D6QIp84h#t9kgf^gQjnVq4ukb)#!#Dqw1<$jukw|CjHKYCpu0*pzhe zu%E`OkjPL zY*AuTZvky|0ZPGJwl{!$uRjaG&sLBE`u~0Z6*AarTuvPqKLihGCFcBuv9y9E&`Rix zDR^_XR@!ul!)qHpKKsl*IrFV@kG znR56PczQ2(5CdX;AQ;Q&kg73uco?XlV;{_|2czez(jk^nc(|Xgnpo@k4!s=tfuxrF z=H|D8gUvNcMg(|!%-nD^U{1frlhlsppw8$2`p)nTk(hs3AJmV2s2|o}q)JWAovZRT z@vZ_*i-eVE%!pN7TD|iX0ZG6u586r463HltjE9I2^)i$dsgb3sTm3B*x+2t_8(G>5 z%e(yr9_DB+oyTSgA=#m#m^@#tgC7quEd0LXx8IS}wbrSczYG(B(QhuvlZ)uZ-WN&_ z$W6R1yH$f#3`$SygY_z@!j2bk>JDr&_a}ntRT;>XK6&$=rEU84+WY$~oxEeVxS~_y z@Nn*+l29r6{hLq`n@63PS?rYXXl#Z}2Rf@5G2fM$jv!Q24P#U(%45n)G@%CHBJtHJFfscq0->+9-<< zmX1ZyPo6HFtkmPc5$UJ}`kjB^%|mozFmlN{6qr*)xodgy7Q&!^Ma(YLOBGVuXkTNN zW*a3>{=YNl^83+2F1=tH%8u6%cP3!Jfv8^oFX%^i8+q;IiaEkCM~BQBl^!m_MpUxKW0 z2Z2B+wVIcOO6^z+bv^eD!>cjbnO)6ofY2*%$Gnz^qQng#Hm;lo7g)6^o$b)&>_pu) zo9HXf10_3wK>{ZAh-Lo>AHvgO5i zfDR?;slNNhxp%Q8dgG|g0WCG07K6e%7E_4+Qw5CW{VmJ9{W`Wl?{X)_<|8 zw1f$6p*E-qP)?>cE|tXAqZrHPG6~~~@yT1tkc9+XyV0z{!`<6Fl9p+e+%fuEfkV@_ zn1mmk8w_VYUY`fv7dKLc!;1%B4$PTGF&-iv{q(~UhDVgy2P^1|h8m0Ku4?meU?8y% zW5DySD3g8iyUYAfR1N=a-T&LX5;U55g2##^(azlH1wM|OK(fd7<~2F3$`zd0Gfazd zfkE(+`$#2)%Q8aO^dyV1YE1I`2iU*4?H#7;aHACzHu83Hi59StlP&pp4|;ytGys{1 zUh0ms=@8)|8NOyf^B)PQn`lHgUvd)m2)h6Ocslv56SP|JvHH~Ab6b7zB|uqmFGN7J zc(Z^A!B3Da>&Od5o(K!1Qb@N{N4tQuY0=Zc6dv6Zp=7#K^qwklQB<>9=2*^u^V_q3 zB64jR3w&Y1sd3%VCC1!CssR}grc8`-G&)({=Hg?%la(2dEb|{0D z)RU_M$}9Uph0To=X!UM8c1vQP1N?q^i$Y~Q$#-w{4mu#3PofkqG%&wKeHHfyunnX}B0)U4$>~k5tM|+A5s=J6VZ?ND4nf?FK*LeW+0h=y*sQ^w^@t z>nhs`@2X|En zlZKdTQ!)O#?eqhS<9vxBnq^A=wnhoNvSqRrJO07K?lpUePUE;Y68gWoqk_FU!Spgw zDaUoC^`v*N3cC0JGjDp=pF4kD7CQ}I0?K`#aMhQ@V*U%?XWun*AFOo0CvI^TPGo8i zgFQ-agj(!3j|R?;1@!qh({_s+K2J~}Wk+YZ%pvXuF)0k$PlWM@S6CNM-qah#{Lo=L z!r|$anh2;2f?6flX0m-ZQS#k_u9{^5Cve4(%lz4ZarO2hXvNa8FJC6+u!sxdj- zEnPZx8s6XphP9Ehp$Et}OPd{RRP8@cQ&EboDJ0Es>}@ zG$!xvIM>5ifH_6ssp4P21RAdCN5kR=KR?<2n|5pZUx|=imFwQ>zF)zQfL7pU zyq9lN0o8WwgVP)XpcX>1TfUEu+~a&z$4G9v+EV|)($Z#TKT*GAhMv2Rq_v=V3Djf= z@B8T_U-AoZQ!F=7n0A8JY}ZfmF02@5z=ZwzQy=d5?QZvshWf)-q2!XdAed02RmEPm zUSM84+%BLq1;wz#JO@61TR4FQ05B^uc zJXc8@yWdv;<|gOd=q(sU0jwGRWtc!gkJVI1RH=yiHgu};2%UZ_w9Fqz(#-MNV=u!X zCBAutMnfe_AI8qqe;o~9ECAj+#%i&3p>a%Ya%X1z`*3I2=kz;pND5*dM1zOZW`4Lk zXxPB4Z~zsu5~M!%WyM)W3*lfNPz*7+q#Nd{0gzrySh0+hPOf%J)0!Ut+w@=ge69I* zJA8p7;0hAX`G~=NH}tmtSdl}=0w3AyQh%GVBCnsH%qVtV7qCQS5MfcdoJ*~IH9A}K z+}H+|x1O;!G>8+pz=)C1Lk9uL^?5h?BUcu{sLqFHbdC6ula)f1kpHvLyy#OrZ+-V< z-b>}lj4Ni}9$s`oVgpDGpht74T!bMsh&<@gXSJDwF?r zh!#g68EZyuYLv|gK5@Tda@UayW9wPVoIvV(B~u;Un?6xDjty?_nC7bedPCL+iltaK z911c(@6?btUWgEF;8K_(UY7x*x`%2*CqKsMg}*F9n57#RfM2omG*1y%Y^-1-H2Y@0 zYrO|fw(nVe>6R}7<3nvGDsH+vmmXwaOX^Rc#26&BJv&i1iJosRL<@-2a@w>4M`!-J zWp1qjEyWhQtPVYr(am!XL|xz(C8w_w#D9zUM)ayoUmt6 z@W&POhfgW^>#pp~*JZNo?)L%T7R(Z*YQgo2I{FJh1TZt*Ba-ZR@v;L3%pxJ1*3E=e zvcp!9?<6b1p)h*cFI$rys8yf$fZYPufdr^v@+uBw0naZKIey)7hy{^T6?lLNrOOy+ zfSKBJcihLnL;;0_K|>A#Ci+BfN%p>D$6Lk}|D!&h*JQ`~PIS)s{eZfLO;9f=83Fu# zYYaK#BrF%O+`GA7lj6W|5zxm{9iC-m1MzyxUSnS`SVovUihjin*B$;SDA=@`V4S+YtkcnAwFOI7sRQ}Ur!5>DcE*<;fn~*%qIG4gLg(bAn%vQTamE@5pH&{oEjA=$)!WR}e zpR1m^dM`I%7`rdZuMG0{vX?AfudQ`bh>+Y2r5;3J%2bFY6hQ<& zoS~MBkwcqnpipu2>Ux_*Ex1B|%=Kof2Iz}PZyZc*o3!3vnVCC+CYSyd#9N8&%Xw;tjd_SmtDM z{{L@tPFi}dp7__pe`*hQ^2?CsYyEt>S~@{c(gPgm{|=ZJQyT57*BFc=hy zU1ez~%Gmn!M9{>+0?P+=P{%$}-+g~s56**+FX0O=wRUS?Jd2farqh?#4aF>~a6L0# z>b}EY2M>YI8&Yy~7_YJs(@|;}B9&~&jah`u%AiI#XqMxXJjRU%PG$f$_YW%tPp7-5 z>t*II8nT9Hlp&^gg3R6Pc1SbHFUrq}VCpDSMM>}aL66DTEfo`jfTL*$u~}NV4rt#6 z9+qGtSV_QNZp_H%IMf9S^l$pJW2&E?CDXr3Z)%=!f11z!^7YU^bl}2!0GyLll?lY_ zgs?3CJga6=$t$~S7MvN>-$4qZt5hbIWYn!n93&w!sK@3SfK}rmsB@Ojo1sx-oLHG7Q5onVH$fHnY2a*Z22lkNol3XV*U0^?AKtuji|V ziO+m&2mU@ZT|3{5xTc4A+ex@ku9HflNs|Upw|fwv;6)Fes5)T9&a5oE^DwzdL}vlK6k;xnRWayEEI|MtnXZZ=I|ogAUpT$pf{l%1?RV*pgJ(#{ z|8NcvF`P;#WE((0=U>8v0Rt_gzj>8ahJC4(H4`aPz+FGWN!t!?-H8t;9IeFf^>m80 zXN0I&MgNYzNZRK~_U9b##D-b4dgy`{I~C`Vw$f=6iC z+vEJ=0<<5>;3JxY-OfODSr+&>Cbj^Sz9)FIQXTrkvtPwG4oxcqXPkb-7iL@^#8l~+i1 zxet0{9K`&-IsQV_jU&aNA^=_ID?W_$WmLZzzxQdjGHSoEIsrLFz>(3`tfyXmk8MFp zLW=`*Q^ZKL4`d~ojuG)#;f&zLF&A{iH7D!AiOA9xWz&g0AVd{l#qF4GE&^#gZLD(yo-!#(Zu`-oA)pMLGXur`M-ZoZJr z-lLo%wLNt$E(Uh1DXeKz223>YD6ar&wiVL42OqHkI4!CIlY=6(S|L!ccP@*pP763* zHMDyu+!xFpT{cEm@9#J>QN+q65G77T62}3SNDKeVPBlQodxQm7LKydOtLD$%6GYigoq%@7SRU45rA2T-bip-3|It880`p;ewtHz z$ohh+lVBYu0RLEY(HgxE$qB@w(xnUJgFE8!lAe&G-}(h4&XY*sY6F=O^yVZVC1#Y| z^k(WD7&3;ENt_6OpfU-)sI)4~N>yoTDJ=-#_`PVO9Oi!PX)&9~qF}jQIpp_WR8z^k zY#Pxpm+ifTaE%R}gf=De9r6+~P+wfy2azBb4LgOS0tn9P#+SS**8=x;5nrz=zk(nq zLFs7Z{0J@nyor?eO&iWQm}`{@El=_^7N@bl$Z_|>{HLJ@qKd7JEHAx$d-Qhbe;IHN zZgZ;<$h+;rD&JYo1zH#y`RJjDZr=~4iwnZLMP{e+td^KQ1eLe1c`&0Jt1^ofJ~dvk zwYGjh8z$idOeO>+y_=U(O&VA%g-Tqx(Q?n}}MT5+UGLpzAhx=&)D z@+n3p&vcHyJIv*O2ve_O5FhY8kUp8Iobn|RUBr?bp^oU&3}fx%=w^ zE*=JM*v<5MP)I(mU@dCD;6tW7MZnp1?D<1(QWUCC@=6SuR z(A|CV3pSMU7ZNEIb3(zRaLWA6Ei3pPzn1YU!0Okgf(I`DHJSgy^XHq2R4r~6%A-_n zHFy#_ngofD(?TYTc&`UIT4qSa8ds^9_FhkTnaxf<2+wq|H@xHki&(S$#O=2cn8rLI zqVkhC-!qdais(IHQ;G4FBizQcMPPkF#IaZC|Gj04F~Y}m}tz> zAaA6Z{XWkXE`a9MK9Ve^MhxC6d4Bmjq%kjfaNNF6q~FXw?S!tUnur{VLF%d0>k9Y< z2COLXKj|s$73*qa{%CMsM{qm7$QOAku{fJ&JDmY^&%B@nZ#~ipZG{u{%}E8e^jNbI zt44Ijybz9l+VE$T6O>X45mDkh@_{RFKD`TvMnVZBU`#o|?(KFh(5D+lbV9ik-QKXaz+?7pwg3@U2Ot4&Pj&hr zLv4!5Z-4>f3Giy(IQ_Z2-ZR{nhkZA{;6#WkfJGHjj4$+_mWItuZ`5in!ClM=TPOvs z=WjR+CXsaK$JRf|`>D|6DSWCe9AxjSN#R}(*EcxMpNvz@r_b^Na5aR*8!RnVpqoBl z4+5TfHU|gx1>$IIs8?wL$T{r~E4$u;v^C|UQs4?Dn8?yY7iDmQGL+IUuw-%fSMbC- z_8oFDH~mcPG$Unx9#voH&#Nxzh^CXW5xQ^`N%_yHw!-mK*WUqMiIL5J$o_CUvq5_|h6ma9i^Kimv zvCT+5fzSptOi`iIy=DA1WTcP-$oo^#%U0&hxC|<2p{Ek?Le~C8;w{5d1A>bApg=)t zy{gWJ2T|lj6dGJP;qh(T5V>*NN!t|Sg{6Tc2p};VeOZkCC+oB@0LFQ%n#^<;_QC8Q zuC1S*j|Xjf%(z}|uh1U`raEXH5z4@J$ivJtr+mYP>o{0&VH=M4xeM)J#!&mr&Lp(Q z(gRT_>#W;}nv{{0PEgkQiWjSIB#w0*-1@XKU4Zo}Vs?BcBO#}9x+B~-CGA9d=BeCDpbH?TsZsSiW1IpVUtLE+9e-^ z#0>1)Lb(K}l>m%FxUw0NhQ6-PW!kn$sDj^`Gdh#=@}<%isZ=st?2pC?p?ZapfGkTL zTG4ao?E@n7S~6z@DU`EEyC|WQ1C|l=P$7IDSe#+2PeqQ4%1s~mx zh|{!-UPup|R2}ShEKu?}-w5g-{M{Xel6E$NVW-cnbfdo2A&4|8=}6A!<)9osD!bXC zRMKqB5RvO14-8gV6W@R$qV5zi)n&@GralDw{>~&YAil0|5|SYxKec0riEVo;h;HHn zp^i#6oKuDQRVi%zF>Hww+65pCBj!|kaVE#19E#=4p%Vp78PE=qmK2^F>>tdpF6`27 zVV|rw66)_E?LZC}wXt>~s-x zFto8urS!(qg@N9IPn*xp*H$t@!u~s~>;(7XfR5zh%69k4WrA;-xyQIVHytJ9!>Hcu zL&P^oAu4&_7*3n8q#2?hC+7fHS#xRV&{js7l(6POG&mfDoHxmJw|@_%JA$KHXezJ= z9O=dp3Asuodo@gC*JetOBWQ`?qXFGf?yW#q;anhjZ8A2R2z*}!`^z3Be)WtgZ;U1V z-WQmZv;!}MDK6raGO0LcKYk=nrw0BU$EX|ItxVWlTHvF+L{0>GxoxNK;cNl-iyRyG z_B+HouD6ME5bt}if^3*$re%q>K`poOdcpf6kP7 znv&pBoSef`=+B9%2^nw#K3$aGvN|$vB_~v*7#BGLD=&0)3J)u(L&x?z>U;hUsigso z#_)_g=YUkrae9KZf1JHQKKCmY#5}7=S~eY9zS)%>nx6-Ov`^s(ND+8=cSSu#cP6+> zxa4y`3>FNiUmbsa?3+HUvO&f??Jq7K0UXkAgNp2K+BZM6zpx6Q{3QkLslAxUaif=$ ztN;fxaoPmIb*qCdR*Spsn@V2zJHQD~fca2k61|g9S$ns(x0X3PgqIMw60w9#q=_Ug zrB;czt>YOyy(?c16fiq>IW}H2iS`z^JxuUf>PlgA%e{aO6S(OIY6-4Civ>T%(=SH9 zfzIjiM5=M3&>>$S;bO*(CD1>_#Y(tVA!thGDa%Hae3|f0K&&!lGHhX|OkxqA2EZV^ zVX{OzA+5QXE;aZ<<)S(Egbfc3Fo4O~;+8fb2O-C(5XVF=ECRHO1mdF@PE44YUElTb?athC-3`0htB1ia(G z%$JKhaQM7A6)aUhH<@WY<5dj4BH~Fc9>?{Q<;!WaE&6KFvu4-3L_89v^2U~CCoXZVyU+~KKx8Nd;o z+ziZtqSdBN>hLZ7!2^ulW!lR47>jl-*s@f`#Iq%U;A90@mpp1|x)43*XVEfp>Xdd~ zLJ1o@O9?NX@xW`rA2vSC0!#rwZA`dQ)OhvzJwuK7#Fa)DE+B`6W9cH40XO_D?e;|2vGGsnAEUlKW_VX!n znh5hCHj+A#Y*^3;6`djFD3#wKOLs}b`kZ7@jBte#o-OqT+y{TaskbUI-h&+(=rwF3 zY@2No$c53Bpxf?7*n_Q5fgo_ya}{_ke1xc!%|J*zphQt0krOu8IWbJ1v?w{uWraQhTPK{72V$4AChMezy>(W6yPG39%vrd3hm%^^S}+7 zD(U+BqVHekNxrk}jR=kkR@lMo45=f?!JZ+Tn@rDEvUDd8qx1QUWRZ^dst`p$(7p1UO;MIqGnV6&Z z`ulN&7IDbafX3`UKy-^>NO&L#A@02ic8Bx@N?EVCg3zR(&RifQX=jHvFiOx+Dx4w zLP~g8B0HHKfBryW0TyQc5TKKNzTmpz93T;7ybUeP7b46#OFXQngYMk2_A%2xB_ zj*D!%6AB^b=X1L*6+MWi2T~X@Dyd|U-ITnbO95kV4Fca7x$SU^`iH(V3J_sxVp-wVi zY6?zlhnq#EBCbO3dOv!@{|H-tE$;7A2E99RY2rW*HjFKxCL2ggBh;o(hxk>ig)lO9 z0TqPL5-yakglu|PHD>)NB z#$wX8^CaHjBE+0A(MS-ZkrEz|wQ{+$Zgg_ywC{r5B+1?*>PBG3xQA+Am;;G2rEpQ9*?6`wR_?siVG>BMD#T;_Knrdv!3`U zcUfzOR;h+>&P2DfXQlj7J=(yzZwLlg$zyiDs}EL3pKv;Z507iaF#?}KL-Vp*v?3le za0xnNtPr9a$K$|)&OmSW8%bJ%_C3wUfPVGcJ6!f}cWqXhl5^?dSUM)VEET+Fo9eGM z6@88UI+TUk#piLW?yh`!MXiGG$aJ6Qn5yi`Bq~!=Q!}F}U-{U*CCqbN)#(RpAA_VD zmZu_572n3qyHC5LsF^}DlR_*HY=_&}-K*ncSIJ@;FzMWop{C)|j5g5=4$NlCox?=w z)JN?&F9Fj{ZJ!ICDEEK!Hv@pZMCuzfXtk5@<>#CYpf2tJ3~WUU+I1LkIIa?Y3pie0 z@ilrqAFmqfj{&|_+=vxjpgrE~pu9h)0@Tu}r=Mfz9;+KeX<{ zTT%`6^K*6>V72fYZ5Mp6; ziLOWnzKuI^#o-hl~;*-ypqK`Ta{7!(3O+2Rwf8PD_yV?-oW~ed{nP zGam>I)LruH0Iy- z{=0z+C#ju+_MU2TKeBD*V5ny8Xj86Y_a9fRcCW`%R-Fjle2VNq=+jSWfTsnzmek_E z6P-p{qH*1CC`5UVl|10Luq>NwvJPlE#u|Td-?iWxbDwtIxG975-edJ?zn?@OiUu6F zmOUoh*(@a?s!IaGHG-W}n&T(y<>4(QF0u_gqSF8tUeq8Iyof&;$Q@NbOlaDdJ)&E4 zH6u0tT2dTU`Oz)RZg#`fgQxW2io3?8Kgc;FC3o2GWc|C}QDHsyt^SXi6w;yRuQNh) zdy<_$4(G=@e0-|m9ZnzQW<2_^mJyS=TNc6WjeQ(av?@NPiOC&3#tS&d=#|L!)Yj^8 zLnmTmLgI=fW%)Wr#dk;xmNmi*U-7U&_NU>w9xjg$I1^QbSeCU;vsK$u?dkvPJItbt zOIw_7Wi~5{9=@23yO+K*V`~FgMC%PNlqZVydqLu?Lm$cAcKZ&M>#LY=;VgcflzQf* zYv7mR4DZfewmF-Hrx#)t{4_M3ch)%#JK6C&WQEZogZ?3*ZD!vcFS;`|JHEjwmY%B= zygFBOZ3kqHdS%hl-D@0nj!JDTN9?WKg({&o=&RS$vKS>kRT8t2fp`9NsD9#D%(1Rm zx2op@P1h@8`DK*peFEdsO2xlla{+^A@dHEY@LqRwq0s4lLtne-*>J{BfBHG*jROb# zPJT2=e%yK>X$1x(s77AVR-Qp!Sl8R2bB}pQ@qWHD-ek+}10^3`wlBXJNV>WImxgoI ztb?h{aPh*;JDCRACqZg8<_*EYxb!aef2`g zY})Mhz(8M5%D;b-S|Uj!Wpe2*jQntXPO!ZB-4yFJb6S!5*0R|19Ip3oeKSc@Vz%AMxNI$!T}qQS?am5)?Ov^+E7tH#bD+2M2d%yRS`Hp2G~2?Ivda%7 z>%%!`W@NE5viSw;I~5zx7S{AUuk0Z7Htek74U!(!u=KD!xd{*(4mRufyWb8>iv z;a|+TgU2=pV+WkZZsjS49Dmx3I{IvQ(=AXvjI8fow!Prs*JuCkvW$HB-V%7INxN8o zPOia)1n>j4O!ZXP8bA*P(O0`2?8q%0!ZZ# zV|?6vGd1y|MHK_+fI0u9{7V`GFVJSAhR2n669xyM9|ae~97a+%z0y3`n{F1F4bopP zKa!}iciG_s!P`-k0pHgD%y->gvNR)2R zJA0eAW+L04W7i$w+KJpn?w;8*DptE>!MVQaQctG1rXV;;@`~Rimc5P#)^XCvH(9nX zf*<~ZCFPbCUQIq-s<+~OUD7En=L&bexgF)1@CcRQnU)qVPohu9Z$=D!hrGs0=O0n& zpEVYv%a7WSePY*+_2`hzp0y7Lp{6;MxhkfioE5V^p-xjX+VEmY`&&)==q{y$A?(^^ zkuB2BlhRdt%JBR<2Tb6Ok?~Oi<88)^`ya9 zU#FDe&oEyLI*eA{V9{m`t^{J%Vq(A6%Fl8qrvFH*>k@4O>E%x6aAceAfleia7lBzE zbQSnYwr{o8AIM5qNZ!A}>{iRBA1Sme5e~8@+6ckl+_mn`uRE4ZZ_y8^1pE&5KXUTl z+Okniz%$4675wUe(Jh*LZ$~~=)^kH%AvRMiFG3IT6_=JO)B^cY5@n4{Co|V?eS_N8 zLC>h~Q<_5d3Kv!6cVC(5lU`nkyEFV0eHR~o{8@c8e_VH6eLO8ZcUuYT(*R8@hz1vD z3NFqu?l;3D^^=CLK>N=9fLMe%*9fBrnLc1$S$Ykth)Y@<-EOAn0sq;O&Kk)--jZe< z{0_00p5y=7MRYi~7e_0O@mlh-pKbQ$kkyVITlCGb-~mvHS;ND`XwJyB34MdkDr?)2 zD7fETYR7+(p!Te?fuz}jy=l9++sh&&Ouk}IW|(vDU+pu#11WsNTYFt@mG8dp@PU~4 z*Xinbbz}VOi>{)($4{p6rX}1MB4W4k(f#B4HStCZ-^w3C5SmSh>9@~6zdIjpid~{IErj?rme8cO`!S3T5l5{ywpv==c~Qy1s9)!bC!*~cJQTx!?${co2AwM z@fF*>(G~jVfaP_mGMa0xxlioG!8@mCwv0*a{M#KB=_8rfhm2ep#N4mqI{4PTH2&#V zdRS*Z{}Ri#Ha-}UOwYI@b;q+u-4|1WtRXgg|CPz4vF<0qT>g1AtAns5zv5hvsy8@T za#Rw(C3TYY-28zq)%d}q_3L9|pWsz(d8c_xgzh)}#=7)Q z&8~zo>RQc7QVu!oUNwG|_sHzNX{)Obd8AnDK1%SH8qa0eewGe;tl`!D_0BLs- zf_(0eWrhbrnc4XR{NJi*V>0Vu&!}kIHT8MV``a9BQKF_T4@0iaILtYh#QhZC;AZ*y z_xH%Q0`#YSKJJzTZFab@WOUm=u6o(aR}Iw)%)3hLk%j_ew6n@&#MwFPfzuyWxq7jh&~x~WOr5VH3*bD{}n;opFN6?QP~+p)%ilj$`*15B){$Flhp z*+uE@bbE(ymHW&Rb;WwCmf3>GiDVIj0XOF6ginZdKmuqv@EvlFv}EuE>Af4N<*?D| ze5*6_1r`=A<#X6vw zw7fIA$}bOu=VIao{pwzhPweebQnm$#f+#c59_Q&p-aralu}$ z_C~YP-4^qk70D;h-o5lCM8V@y9}C?j0#gQBzJ=4YA}dnkuiKO5E}#D>%OoH@1W*xZ74TR1x@_ESMaFrBnz3!f1#IkX{94SN5C3=&o`-{x9yBGC0x z5)$|yY*80od3ofz9lnmm!op4xj7X>2*I(tn&B zps-U~GWca_x)wVCRHO*OVYrLr@aW9e-8NK6r)R`M@)rfSd~@3E#BQsmN0V3vi*(56 z(X1hbshZsVuUK3^;6WFJ?~KuN8Q~23w*)I7)O3lOb}0r$On`b7k{3!%+Bspv#mN`3 zOvVv5>QHk;9xOkfhX5m|xhY@!mMt+(>0JiHP)Sjxp?$lsP*MzNe%5mwH~S?bJGfQ^ zb)YZ6M5`m7*tO!6qBq(RSh~2Sb(x=g{QJVexpo+d_K6~Sb8H?gy&h%w83BGMP4|4W zS(*cxz5o;ua;Dl1l9XW0{j!p34jhq#CNrnBg;G8fsHLLWJ%w!>u~`6Gk5a+qnfi0< z`1=aJvbH1vZ@@{=Fjrsqbi*a^k*vi=w;byB3|lr42ec3`y^z`s=llKY*X%Cqp3CM) z#I#g9E#BZRWPOuTtHZIg#s|h~^Xd7Tg8pby>YFhBLM;8h<;r4_-j&OwGk{0~nF{ox z>hZ~(Nze2IJJaGhE|7!5%7ZHVLCR@AHrxc+JY(T* zz_g*h^75!}^Sc3cm4mGW;9i4E#iSaybE2o{>16#*f^5=k zAm5sTEOe#dmV=NU*3-_P1^OYzNP5TE_cZ+>h3v1W+2fQ8_i2hW= zdlnQRs`gX1M}jEc$WZCQX5UuW8#uJ==l+)8$vv^g!1sE?R%mt4s9 zq@)bU|9BY&Z{q44+g5Yr{3Je-(nf??E&mwxNjce+UQ@;V8aov8x*MWuvuzP6ZADX1 z9JvG_^eTVuGI2+1$@kiARYJtw1ApCl0nHk*nFjnc zMjhwCI>2h5{SMhs!)tggcoc(uqphk``5l(zu#dEQP$Ies1cL>00;N*gi3|A<0F%WZ z!7Vb8a!6S^s*zQ)ty>AIw_oN(v6{@WPA}H=Z<_8Ih)F39tH*Td(k|G|WJrNi9x;*u zRH-lv2P9%o&VnwP*Ee<>uM(A$z?r63Yl!~#nhHg3C~Px}qC|jd0{iaW23$N}J3O{u z#{k_r!G`)&+^+e+`S{-el+2DDm?;rVW|l_6M7Bzpy*rT3-g{A%7fqT0l?!;7Lhb*4 zybURvh6b7wGJu`&+%La$d@}6DqmR`F#C^s**lofuP8abVz%1rFrKFD@bKWNs7n@luqfuYXS`o25J)%@e&0HiZ4Iw$9-Q}3NxKYTk8Y^U z?6)W9&uWQIz`~j66SPzpRh7(TMyMwKF<}p*tz4(@<56CHV&FaP=(eFQz+Zl$Bv~h` zV0jnQ4sL9i);4Su>1)5nmOsn}0<(RwRZc!_Pu?6hwh`)RkF~!i6R0@x`!3;B?ofr2 z11Df7HbMF8uM%mDQJRmh%7C-j8!N__Ro%p=9E*;}r}izP5*i|aM+IPh*^OKGi|BJw zF1J`IssSa+nW&`1HYtsclobb^-j^t8c5;F~RoXewzs-=spKP4dJ(tDoHh3}8pDbyI zrN9HREJz}s`VaDPryrcMhmSENE(jrKFPZyK`yx5 zb>x!miPFIWmyd8OsDrIxJBH0~+?qyvV8{6{DFMHN;4=?@qb!3`Kcs>k$yh=#=B|#r zd$L9r_qe)pK(IyHrK?yNo*6h{?n`21*>G%aRT94VD_{iE6~@1FpW}=g8t%8+hJ|QjK;F20u7t~4Q0p%>LJ#>e&>o5H%5k-}E0S#D2%IIH zCnC7NlI_D;Rz%jFJ_|?7WUiR) z(4D4ayRBBH&mGtG@`8t)kJV3Jop$P0%kn_+47J(dQXC{?mbR$0h`HfQw%MH?rkz;R zxeY7O^>YC{E?JnT$jj%-5#bL>ARcCXekcO0S^9$hsYkkg0n9s&aK(XahKR-pYs9C( zt#Lu1B{9il$^)0=)wp2TWO7-N&vBr~vFV33Hkw(u0mE33`cof6{M%4go_ToVpPx6O zaCv0hMFNp^P29P65ihKsQ2=856*dS_->e6L)Lsr8*U9<$?WVBebnsb>81|bM4k(5A z>@o`hxk`xeWheG@bGy=BPuGH_wSUhl)ZfdlhC#zfVTOfPZ-=JyK9pnut%`*4A*1Wc zOW&E~CAPI;4%|UH@x+?N7xIB)6e8uBN){*wuGOd24rG=W28T(b@s$^N1%Cy^uKF4~ z(80rY^{%DS;oz{~#E8dM+6zRr#FFSGo$m9-2$+Gue!2Q>1lcn}k9neREXI+pgao90 zhh+0pN(R7@Jp8Wmiq-}UtQJ!B=Oi3(<5UEXgiRdOoKmPI65nbk3dNd4+J7XE7ptXq zYKkz?c(H3uO}8;gHhA@!+9(G z5meV141-P!MD*mQ;mopCN4Co>*Y+O7&`lqP=niFmA2B zw2(X7g0AC$@!dhm#gI}NUvGq4c}D&Z)%crp*#oKIVBsrZD60Ps!N1O1u>=;0_>gB` z$0<*8&7T^!a8yu9?cmgvlrffPMf?jt>zP>iC5piVsbZ(UcKF${d5CPg77nXwv2)6R zHeAk{+7c7v6cg4i#)l2@Yld%?z3z4gz<6|W4lNWG^#w@d$cyo3h0Tq=^a-M5lZW4v3=+9q+-(Sky7gS1+gBQ8tAf z62}Yl`J8h%v&plfJAmw)nJ!;NA6HIiauCMXUvS1d>u;}hT$Cw#;W(F<%r+}dWiS7X z*e22TKzJ|LE$;9~)m7^4LchLM`Cx%czS%K|3&#$FO4>&GW<>jc-fZS-GW^iqCg)V?N8 zd;CfzJWffo&FJMGQaDPUh}G-daOqRuA^J5!b(JE0TBrN@gnqMT@AHF?z&n2J@mtQM zv$D(DvcF|(=pzQi2anW`^B*}kc70ws2j=ltNb=$3f5muePHg069el2d6Nj#Nqj%Ay zj>a$7yUKm9G}&kD`|QSAma*FhMA-igzExUAePEU*LCx+Gc+AY~#dk=q{&#mb(`L{w z*gx`Y(eQO=!N~n4bQba{aeh&#(DfuNYmRC+H21He_ot<)m^juXls0` zox|~^+cBws72WvZ56IfvkayDc-g>>EeEO~H81Ulk)os_Kzy4ZXx$FSfO|XjiW%!q_ zu07BAlel*aMjMS!*%W2VVE=il2lG}<{Myi#U(<`4maXaCHOod^+nQ!9(jU<BbIAnXb_MLP@eOslCJlHjwbcX5VqySi@O9}3e3_crm<@Kfrj_Xy@)DFrBC z&L6)+rWNwA8Npu7iP78lt#9l^FD~k}UVAbcf65ESUB~YrZ!%~#@v{R6jZeu%16*4`zo7ymoU|Gge@DO`@lYTS5g zq2Za*8t9sa@+{v+#*YZgoo%tQX*UuqgE;?DV6P(V7|rU7yF0qG>R~BAV~6K8_T6v# z-xT4wS^np`*ojV;x5n01)4FKySQPZG_) zR?*+dVwSHRozF=j?0eTw+57|h`cC(r{S`xP`?SW#4)^!Qe!Ta3ZcUs;T>36tfj`PH zHn{4~iN|xcBD7XP9>lHWgpm&Y@@PG?Ke~x|tf?uOzMyitw?)~{?*Ib&kT&FK#6lOC zbLAW(joe(dwT%^pxu)>K@O*W9^^rSZS!LJmet7i`YlpmS2^uI|L&Lzp(EI_=aA1r% zb@){hygDoIJLE%y`l90Ze=tJ`;QD`h$z%BksyoyH(Ip;Fb(jp?=fY)h<>lKiSl=_w z$5}0zOvr?-$gmqoI2hf&+8ZGW+Ob?{9xABkr z9y5DPk{9c3yYmAxOr;334f%Kb>LRkQPOz#DK5{B}Z~0h=&{{Z|Su%%!W9rEPh--oM z>3nKkGy5ChIXz9jzU$`359j*Q{bbH1++SXO5O{ot*wEz1wrPHz2kOm8 z5vz9FP1YGOmd^N>&(^NSS>*zS^9m5VoZarFY$0M?gx8&-J~J= zd0E@W;LfS=eFOZHa%1U*ZL;eAUu98XSR>qBjV^tu z`$kMbMOxVyY%XoC+2igeuUi1&I} z9(}xiPuslB&hEPj!2$Haf71NpE}WrG7<&$*`hI-%_J-%)m`jm6{wrJ5ZuW`)<=r12 zxF5Q69v7{-UwJt2@o6V$&}yDzB)9l)IwH;D6YtLR>Z89r3%VRx@+_bT^|XC+Qf=Y4 z{@`uL&!opHNho98yh9Fu!H_BO6_W9J_IL$tt_{?jSU_eVx2+Fc%m7_8Q25hNjmy9s z)&X5lF0~vNF?@#K-0~L|r8r!8RprxiVu@Lzk#``^hMZe`w7NTfY(u4L#E#v863@Pz zHZ^?hT(SXx@Ae)wwL=+3{5B}<)EAyO0SM4KA6ix_a*CAC=b}cmU9(0S0BrVt5T7aI z#*~-rBs{N-&u7>(E4D7_Ni`8{!6%p;NjyX3JbdLyBiQ`R*J zDsLFxY5ar7dc~=XJ9kwNEAds5b(c5C9(y2HtsB8)vcG3Z0uu0NAOYBms*AK1Um zJ9XRSb-6gb{#H*Ft$ZL4W(Yj}Xh^0*(J6_ssC;Vga-CT2vqiUX@1p&;KG1W)%_nbvw0@{zYw;)X zWUnk>a-fzPT(N@xDk!V*!u{CTR8k?Uit-3do=UKzv=7Ve0;YzSDv19)Yq;Kx+FAK$ zHaOZxzq(o1B6^6fxLijb8{T*0+}SICj~4wo{4;zm;s7N_@BB=p3wUR=?KWLx(IoG^lG*U9zk40`@emc4)-E!y zzO`#0{RWm-S%XXAt2ScyrVR5dQjRq;7!M@9)8OhJl5^n;5&_deuZ9)=v@bIL?Cdjz@7$kkUL&a=#kE2gq@9S&sE^XpZ{PH=*Vo9GyS?VCYebwj;&{4c*ahkQTF=j(rk z9;~WR7=qT7C~K%x0`6Q9FI~q`tj|N8{xj?O<5-8Qi}(4oo$^_JX$k5SA!gb-JDiDN zld^foj-^q5ZcyCKi5)UCE>&Fl*7=lPSzqf&+1q_Ky*mrN>%Zr|fhEqSaNe%n8&=0F z-y6UrY=lSCIMSu?$5YNDtjqR48H%zJQ8uI~O~Z)wjhc|J6Y=7_oQ{98T96K zkCdco-Ck;LS;k-LjGR5@FVB99!j2v{F6{wRWQgGfX{3l0tDz8oHDZVzHs?2=Ij!@_ zLU(O@UMhbt7+!{UI-qGBc{-B{KQdZX@g&rLapl!gExB=|GH7P*z(!+@axR#@YUzm2B%+BE_+b9?a+0w##bY9F{`p7F3?TY`SaUA;qEvTMHfNDfT?5*qV7X`8AM+{yp`XNx$f zL+SU)Nq_+CkioLt$^O~|GY*lKxXly1hqExRAFR^o4ss9YoXnUXDHL=FNzkd8>rXT{ zM~B$gQ5!wmH!cM1fAx(u5L{hz@En7`w?5|N^iT&e9=|2MAuQ%>m7Z}X+3-uZ>=0pl z2qbAoqNIED8p1~m+;DcL52rjw5{q-1;g~RY!BWjlU&Yz%e>IQZ->)oUj&f|GJTD!0NsZ7#KXV^)}lKQ#hiXulD} zd|zaouM>~uwScysI_K%32wB z*A@CC^05xB^)yfo)FyK8g=p`$QhYPHUAp3h2A=j8<<+C&^MMs7*NM4z;zj z*UutBs@vg-y^`C8gz2&et;Ot#&3Dwe2IpfO`cT|Z7JE@gPo0#@f@Rav#CTvbSu^&aTgbH48vI2H2Lbxr&sxv;PfQ%)Z|dFG^;6Z2 zTC4Fw?n_u?VYhnH6C9=PzzWF(t;$KfFyCfh-4MdE9ZzjW9Hxpe#%G60BWEy0+cVXi zQQq8Ry)lqaOjGq0@d7)Pd=b8}GJ$^^TdGoXPJVNSruK=O!5k=s7e+8GFOH zqIg8@AcxHXwcE9O-LY`m18_o|*kFI}|2U!KbSlqm^}r_< zM}R414`^%h=XfW#VgmI-)+FP#vBublU(Az;V{qvqeY>cMTsucV#TR$um6Q94P*6 zW13=uO`H%yb~mxkEScw!SLM=)Y=zoCLMla+G82tf-xMwnnSCXNz#pGd&!BO$zJWNk z*uT@t1Z~YVEl+F~iY3z{Yn_;5?(UEXM*I=Y$l1TQ3dZ7nTCEqc!Pc)SwMzbh@F5w<*5cffB+f}Hj0(X%DDVp*aIpPC-xO&3YPR50$ zN!s)tb1KOJxE#vjk>BD~Aa-Mp_%bgOQ0A1an}7p%R&225*})s5eL$xOxU+ya&Zd;X zz1!gRctHNsCaOwJ^}riUV(VwEaH%4=u?eif8gRRfq{^)(Gy8nuP)t~&R4dH!Ub0$P z3xy?8x{U-*U~~)iNVCeF%?!M#C8H-d#KM4wToW;sX;^DF#eOQ`mt&7mSwYw`M=oC^ z=;)PHzOMwLnil`Cu};E8j4sUE*SVEiQr-(Bl#X)iS;uA-C>y}#FU-%2%0PWs;X;bu zT0>r#+>yo&$&8jr#;-Iz6&urHv~xB<+@+C#v|Q@-;YS(8SZ7}+qMgUA@aB*Ln?{Hy zC-q2od(ayCMg7_3nu+8#2%jy8zeMoKda|;iK2f5{=iB$86FH$@wL)44`1HAMLW~fV=QJXC5~FwHkeAHUv0hB5t~1HzOnQNsVcmER87KFF7#jo8hFRC!F4~~~ zzTBDOS{mo1(P>`(2B~w~vYSPpiEi*G0Tv5TLvMGYpDO(UM zQz}zh+)dFe(VE0WC09r+L_|RW0fD}!@0`xD4jx|Oecore@9VmLnQck1aCgCc21122 zq*)r@WX}lsEKCnscep<2=R>Om(@+RcIG5hhhL0V`XmwNr@O7&6F-9O`&Am>4e#4HR za7W7t9F;T&Ma6R9Gyei-yRyyYay23=o18T+mL9egoQlN zV0J};S;s|M*0qRBjl-J_8NwOLViM>WEN@hU=PZ=MK+PWXhMAJWviUDSWAlry{(ksV z8uvrKf1^tM3Uka z7)C{^YHTS=S3~5D{0V5Kp;>7E^m-x)t>|4mC+0D68aXW)Cg(k)uI{0l#&de~(4H}o z#5?t;1>_rf;T}T>ouif3;{Rczi5!hogY))5L!_k8(i9=6!;r>9xu`mp&5%7dB*MV^cqHmX1r6u&4*F3M~UD?(d?5k6Xqd+M$`ke zODLDgL_bA0#p=3`MqNgEORPuepi7ct5hk*sut1SYIVa6+|HI@-^G0Fr zEpG`M1`8uYtG1&-C5EI_{3Q2C_PqKW8MWbfV#Kc0hLd{;TE(w!CnKH(Mh^1)3!*PI zk^oEvKc|!Pk-EJ|tI5Uod>zH`5>fo5Ehc?0v`*TVj>L2sTTZ3ulG*CiFw$yj?*T^S z_8aAsZ=?yt14(lO*%W`Ac3$ywSs2|x1WOhjB%=Ow%?x5hRW_8LZKw~=jR#pGuzXsTgb0qH};beUy20&Pj=60EeQ}bdF_SyvNR`@5#MlA));jwsdO2E-2@LJ9{ z_N7`~#@OkjY5h_f{hEYVr=^N&ZMV(JTimHs;6ZgSGFTTcBT8mK>WQe14T~M38(xZ) z#g^<(*_nLcwmD>`_eXDm&@5$p=j_6DdL*J{qe~VBWnDOHfQqMLw&?VLlznd)Z={IK2#7qZ|1C>n!Syb;+Qo5~e$` ztl(m<%Lm>JOSgPOs(a0RSJ;A>$C>1vAO^WKnf;B61d%nF1~60GFpG*~+TxG`kug;S z)DDtP4_%kJKbXzHANAoaWkI_l8+RQ)@oi>0HNJjmNoOp%XeHay7F~<5n)HuD?1Fu; zTAJOqBs2?igQiBnOxOG!+kD{xRndYn=08!vDb;aAt4Ad7anjCLuElzIR<)ZkX@1NM zdJwBMG$?-m@Ea%i1Ly3kzF}r*LsH-m2++REPEpAB=iV{ZTZcK>l@1rCxcl{F!V)#E zIUw+_Az!PPYP!68@f)Ii-Qk*BPCG&zGk;O1ewF<5i_=GotvEBmYb5hyYq^9+4(r`j z9(Xtjxq13nQ!UiqK8fzUV28VE#CPR;JhN?j6-Q1~(eIe#epN^96l=#^6- zH}ulx+j&)wZdc=CIrd5vZ@P=I=>?;3XLA2VbL zjct0HuP1WiIm=sC*u6{m6l|$GFuLKkq&md;$V={Kg`wkj`}lmiLCorvinXVOc$Xp8?Afn3@47- z+)!?z(%e7BGD9}Fn2beT=eGX?^~-%mhFDCWC6K4jDGs7{EAYFLx<~y&!XI^a9AKO+ zr&U)~rs^nzKOpMe`GzI)kA7-*Wk;DN7l>{K`G=fH~2~{r2ec$kzL9 zg^V-@S>mI-Z64^RDxpO0e5$9i;qF* zxNyJkliNjYWR+sprtt$m(9Nxs`LQ@suADf&EDN95Y7k~9&Ljv~no+8ev8jfh<+^)<)(6Dq}3o*d=+U9CV=1?AB zRa`-|3sE#Zl4JGjptr~hwgL?ij3ol-74%e$lgH7R#e#4qqS^YMGz0o=zt8wv$?qct zI_V=;5T>I1?`8otfdfr+56vgD?d_3lq?JqC*y&JGtW-_PzJqoZ)jbXJHJ%}nFW&;r z%$W2RX@_OU_uZZ?API|_J@|xu+6!qp7U$#};vfY<=S;Wsp63JA6C(w4N9RYh8qJz9 zC=5jU*L8@c)NnEFJL_(=+BMX$q;-@&7^+&=WpGK`B$JB%G3+L^)wBO0Z0b)=@~KMw zgnQ3lly;<4+?95^OA(0hpdapYG5X3{mbUlh%Nw8SYP)p~qke7&UpMqB1AQY{jL{s3 z5ZQ@9oeq6yTmj7IjO4K+l`BsEwIk-k$-j1H?SHrslsNZ?Ke24FG~@ZB1A?RDry0fl zYd$>U4r^4BOMS1>3j*na>WcOc@|Rxwtb&%DI1b%(JF|UbhKI@NnQe)pciP_JmsR(t zopw&%&f8La|7=_Lt3%h|+1uCDZD?){3$sx?1J#fcV#`z3Yo;_uNL-bcpudH}l@L0J zR;WKyQ=h9_n`>xRwSAcIX;>uh((Eb8@%!#sD(&>!pwOeWNp*eSW#u{lq&cL=pynNo zBTmfWuNEiiW+RER@Fd-u9KYIoE))wwJK?v=n?nbZ9)oEhm}Y;|e~pf^D(!!t?XT5} z!v2|=S(fxXAg_t?`hx1Un9wFN@ftTf5Bvm@3*xx2W%=zn6+AH4>;>S`0SQ^DYmsj_Kx!1Mg$% z3v}y&d1GPm%OMr(HKSE}s$z7VpZ<}-q-?j_lO9wGqYnDSayffrSa)nXdU}gyS4B0q zssZirEN2ffE4aL*wBU0SkUpU~B4_HBP6)g9V_29Fvqi!&nPQJ1N%@2DWDTAMf$DR! zVrlFW!rTSE>|ze+Li;&VzPu70UDDx-ZJX{NJlyH_TdO>*!Tjt|Z{*;}o9QE9Ya7oJ zR0Uj`jh$bh!~R?0;hJ=vu=+yXw*Ga#>MQt8H{HY6d0vZ3HYGA4eACL(W-mTx$YuLIf#thMB?g3KTJH0u!zmi0f-j|-^$ z?*UV7?3(&iXR*Tfj)?wYG$fQvH0+uj>5Dfk2YOeG8?Ua_2VoOjZlO)!eht#^ca zKQHd}fzL#eLBTGIU>L?9&3|fmPpm4XR~lxetk;yb4Sybem|?;ZeCdG@<4P1oPoDnyMgIodf?aSv$s6&+?4r_{#AF!^Yl}T!^F2vBDcJ~i=X}H12N@EPv};M z8HfEF5;x|$wBOb5zYbDN)Askp$A}&J?tw_1-SySM z+xvD&J-6OaC=_={BM1qpo za)>G}nK*x7-Qa%VT`_cGUK8Is_B#rqTOIp3 z0_>GDGU8kMWtvr`tmbljSb_9Jxrv`cXK}gYex~=gUY+l#U+{O(i?#l>kKy6Yte8le z>%P2a!501d{pSAtb|j?`Wg3Ts(V)V#YUS;U>Oi(v`ao|<)AhkG?;EPMA-;{(0V(JZ z-;gs0MYWiF9C)p$RvXT6={;&>CqfF$3RA@FLo}QwAKOZ6g$~6bAk>8Bu>{dX#ExN4 zG-p5AX^;VnHUw0i%D{3e-_=+j!NN+$&?Uw-+uBZ%Vs&YFuO`k{HyBD$Kzd9`gMn|rY=9>)iWu&(>K#Lvo0$c ze!IZ!V1mB|IR}*}guqNgnI2NIZnSJ`Tgo_sy%FM7;mk$qa$FqXQjvs9>`>I?K0aE_ zF)V#uPr$pS57>->a7pM=Vv99fx9SH(b%&b%+TaiM0p!>7+OZSa7^-K2LHa=EHOP&V$ssPC=fFH_SGM}LY|+fTO@sDtD@ zFIn~Ln41E}8^;2YZQrlmlN#LOShZxm`SJ_g1HZf>j@K7*R0)H-dt5!spFXeCkMNZt zV1)M=-rWzEegn_zpuW_7IoulV%Wi_p{7d9?!6$ZqccgyLDF3bBp2Ko%&S>}WZQ6*i z&Gi85nmc^tAU)Mro<6Z+@j@c|VAm<}Y%9(rZ+}9Ri}N7IYMY(&+tI)5Zf1VyfL&X^ zlkwYLlyD8lzQd)V;c)}epHmb3a9z5!BvM&b$V-hT+{ZZUFA)VJbh0+*2IidOHOwnV z(ypz{HzD(DllwSttyj`i=kh>St-jEG)4-6rOpx%7;_NbOf4L~M;e~1A*c7+ivTyVk$it*COS?wb_=KJH(xf z&_34S7{{;^g7hpwSUlUkv4ib0WDUjTLBDYrHM1g%4@Zul2wKDQEyH|r46ZRXtwHBR zWB*eK^K+%2>_bAhbRt_zh`8mdhuZWAjWxoI^LD9*Ah&Rgh>Sn%QeK>d$K3Y`kp<}w z=-hyFo<^hl6OFx#Q8VWLKI~IC1t*R8n-P>ZNFtns&FRGbwl8eSEPXUK7}Pl)PPUYl z)(>(+)G=0Kk|@jTq5=uY2kdE(>X841Bm$dUVGsRGPyQE8n`ak}zmb-MY>RCd_E0MJ zZovE(4>8b>P=dDtMl2s2iM)~BwK^}B9{h&pqf`kozXL23Rvyc* z)e=#;orok3y}lL%>zK1b#oorcAtNeKjH1oO+(D}Ljz$`(Ynn?xaW@GcRo!$Pe`$_u zumrIv=EkT5gq3x+U6`ERW8|IO!g-+-1LmKw!u428AX$&paZnV3pgTQfquEHUbs<8B zzT)g%^(d&SY2L2B(ScXaEbcn$<<8F$jqgOGQ$}ymVnMj_pnFr{I7o=%1Yvbg_o4up zVYU+h5S1-Or=ge9)gaOFv#hbk0{r8ivKR@Eb0aEQ9G6&* znD)j1)oA0qix#S2Dw|+uwm6q^;aGlVkD*bGqS13|OIl5ZQ=%rtfp% z3Z+WtDw^<2g* z!W7y>%MPs>2%*_$sWh$?j8XBkgK%_x-uV+VEI*e3hd0b|hxs{aw0(5PRo6K4;JZIN z6ffC8a**$%O=9y(F~)rGTs^kdg;VjVLY;7?R8QnE)Ts%o(q%l}R7eu>?ke0+cBgYY zN-6DhrHQ&^IV`1+!sIb)LSho&-l#krHFY(g5%N@YKV()7j@6hCnVBe~PES0bEHf`L zSWpJCD51R_U{R<_SQu{lwsmVRryAYq32wPkc>R>K^{_uqO>+bJDY%i06{#!CSu=_` zQ4?lO3p)m|@zN2NR&(s~?R{3ZaC6OAyigP8c^;%=ALG*MrrBpEoOna`gNWso^X2N2 z-tx8L3))D1(!_@3u}rczn#Dw=r^|NUwG`1A8%?SBP?RXQCzh7Ed=l5T6XHG;D;Y$N zdj%k;AV44VYMRF+esuZSE~$+V2nsBJ^Sr!f{P|`e?{7rvJfv*V-k)$Aee^fV>?iwu zal|`rb7F(_FxR%uU6&xyaR{PP{NaN1`9Y#YVWVUziARz_Mn?^o2WTY$hXg_@A;%u= zrDVI;eT^|cHNUbaoC~Th1`8q`NcqtXe`f$lsDXI!up0%yxI&JxO9_n{KzG^!4wc6w z+=^JfrLx4Wwtd1$$$o;yGWO@c2i_yY-pxzeVt|VZMwPjysbPYY| zcMj(6bXz)zur&Bt>GAPWLyAj|aX!r~72s#EW1tBX7DKevv9!aDZb$UQTR$L>Ho{|} z75f_{SYSZ!SXYe@oSrwN;|+g=!ies}pc4BtYnZsDW0|#?YS6WIX~v zc%>jd{nV=17MM}C5@ZPL{e6&Q-7hZ22Nxx@2s5>KQJwHr<8-v-cQEL87+8)CU58du zt&3stLgvqCumad^h%o;PS%f9$3xqzYZ~q;psI>5ODS z0{iPN0`+He*8&{at!bKO;Zub>?cbk639A7#qBo19>PrZEPck@!Z-^J5lg6KjffO4p1^}40KUkeVFh0K zDv44)(pavsPlTg2V;MMw%{5Lb?mDKQ6N5HC#;FF2AuzdMZIVEdHixHdR*EMgQmoMa zAOmkq&b5>PK{qjoIoFUYdI0&Y;7kc^0ic$jdfcZ376UgCs#LE#v5E0Es%H z9LLX!sRql@0&^RrPg3m^n{PlZ6L)Ej#16oMJg-!82CMU^q~a3&s^yqSZ-G?4_chm=H>5?&`11# z+5Bga&*5)gri(teuJGAZzrcwLxs{5KckG0KY*FkF$YDQN}jG?5{i2~wHM~#Fo;?K^NuR0MZv7UEuU{o}&?!_Or zVJh4~&7T=Nc?5(kH>PG&|XY1up3Q8Or>Z@D@zC8=aF{w z3-n$oIX%vcb%q^qo^6kcBVs2A^u9aw1PqT~JoDv$(#EQgU;87NoZ@+2QM0H=gh~)l zu)$ckmrF*Rb5{a9MXOXvdqn*)UpkPMAQcYnq)wc(U2xwB?Z3oe4VmWK!kZdhM7IZQ!wi7#nPC>`2 zNhY>Uu5)bAWLUZ=g=1YfPo!wj%>jJpDqyGWvQ{hr^i*-KhsnKeY`4SUeJN{`IqzI`GfiI8%c>vN-tv77E9hK^N2x3!fGiEM z$jr=3g0P{RC`PZ=<(Z{m`bWR)nbgb9@=Q8pqPMf_?5*~!-Rc%5Y&hrxeL8N$3{2g1 zR-Av8jq6%qyb5azb&H9?Wu>GiOxCapqFX=yUC@t@tnd3U)R&VcWc$;kEQo+8!1-l|y*R+!vtJ{Y@Ja67&^`~3%8eQqB&bd8%)@}F68%+sMMEicU z^?s-KU9G-vcpmI%J1UYM+w}F3+DFEXfKEwe#CKc&fsq8jk%>|^Gr!ru_2Q-)3Ic`~? zd7(=zd=YzxIN&z=`G3PZW6Cl+0Z(&)n9>drtnJ+C0W+18giI(**J>Br+`G9aeNB_1 zkCv#zk9XWwDyj;6cX1!#|AGeBf<6^aD%Nyo^0<;|P2w2MO?xaE3XdfTz}X0BUIGrM zn_CaXyX(!Z@2&YAik>B9r4#jObdmSZsK0p{c(S=dBE~?mxamNkZ9~4zoVoSI2se{c(Z$i{Z1hRdc1+h#8DW$QFf z<4T`hsV8U3fk?7*U^uXMrHKi1xYLM@L?dl&Uruva$BrMq4cVR=UJ--F?sd`y7mr62 zYTCuq9QT}AR65q8NQS%R#3!fE_Lv%Ig^LFHM}y~2Mlf#Y>xkt(he*kw#)4y`y>;pd z5X5%Kj#gZ>EnkhFvm8fLJU;Fh;MlXU+#XY!*EjWwhp*f4N_32~0cqbuIUH9XsME#| z{f~zQ&DG7nx0h#q^=VtuEP4t|0O4Y8HOb}J4<1~Z!WE-FQKF50ov z!<|J-X~q;u-r`6yj9@=H9X%fo2R#Qb8fyeXuI4roRt2K!-IsP_u45% z;@^JpG;1zvGi$b(@g$6Q`dH1`k&@!L>Dv9%rl6I6#U7gM0agidi!s2;N_q;SUkvG#jSe{uktdI-` zNhJF7C-R9TW=*xU}m^IY@UA%6d4yX=vx`r5>{+`3oNO&^DxI69Xpq2YQ zlr}*LM>jfoT?9_v3XDzblhRuw{Hx}u>>hBqGd&#+_b4Gc?wMeHa_U!3fC$CM!pvL_ zDin~GbQ+t3mllh8+3MN66triG2=J?pkjGAIRq)hsuAK@ffDjla5N~$RtoJ26a6r}6 zgh|t<^q#vt+(l2DInnwDT%-co8cT((*em>EH0i{($zd)kvBS|1h1zFd6?2=AC=mEC zdVi<;DO0Mo;hrsR2-j>!Mp%NLdVx}_DOeX@DZX?kF=7w@K%_SC;f28u|10~SkKMxC z=dN_Q`YhRaFwb@YWkcJ470(yP9DK23yJF?8~)dD1A^&Q9Z~Qr%{KvHMQ- zGOuel8{%!216z3zR{=fjJ?gi9!@7MC(~8G2$613ZfdII;!s|?nrOt_(I?q#s;oZ`* zd*yk)>?B6LWo_Z58?ZQCY{7|5o?U0<=9f|1m_zQ+4JEZbC5e}oocmwO-;uxFh^`x% zCoqE>^3N6Koxu7kZuA0ePX=Q+$R?54V&CM*%1&E0zgp)zf5fNB$S@oNU7K>_MY7BC zB%xXMSLTX$pK4QLP9QK+Hc&m>Wz8yLvas~ zd%&4rY);nI==0on)_d;%P$Szj(} zHF=T;aoYL(%8gY%w-&*y&6(Vd^gp-sdmcYH7y0?TYU+NkGT6tWX`4e-L-Yr9NML-R z_+eTWGqgwW0qw-+`p{$2owUTS=WWyO;DTw`bb zFU@4HG!V4b=`3zG{9#OU=3xG#9D;>{?Ul7(Ed*qnvtjsHI`KbZRYzOOgumA}3R`Q| zmaz_!Bs7Mk$ECp0vl>{J88!{9O-I^N<$C;)+zc$!N;1t35tHV-MHS$M=ZQi-x5+gT z5(A=F*-%UNLxi#u}O{UP!~!LJXxWe zN$K1teg;ag674;oi@K^y17*L)Kj8Dq6fZj=bCc=GB82c^i38=|Td_2+OZTi0K+h$6 ztfi%z$|s#E9!e?2d+hAZlf$Doj~t@dz52xqcK$iXw&B&Y-=6&1e{E?IHDgKXisOL3 zHODRc?6~Juf8c*fBV#agY%32Plde&^6dIYx5G{}-Ntfu00zJ0$b2{IpBC5Gi`rYrF7qb z$j9C7PKbH({=>b}sq)H(;eFlw`F;K;R1u(jd-JEQ^1O7}dp!Nh56Ed|Mom4dmA^JP zdG%;cM)VIz_<9k~=#QQ^j3rC%$sl=r%W8|1yCO>l^6IEQ_eGcnzA)E5_#z zPqA(am;FvT5m8*+Ge2_`j6nvU6meRDe91bov(d zqt6dW6l?GS)~zZ8=;zyzkndQv7v@5Af6}{!sWuM3%H8ugGZ}j~`EV=+SO2B^HsHlv z(YeZiiY!q;ipozirSvTUS0R+HB+b%K0Xm94*#;ZD70EG%n0X>NSVDgXLK1QZDD)RD z)fZn>-Apnp!OX`DhUP?@ONg&2H!NTZ?Bq0Q?eu2k(v?Oim=P89h|G7${T^Zl=`ug8 zdMh~(;x@n&cxAmgcx_Sg@Ym_+$M{`2Ld@ z-ms1-&F!)~fFv!t0{7*#9{pq-g3hpEXyzo-A$LB35A&C7IYXC&2?g&TofA7ZGOw~% z-+W>hmhe9VyuR;t#&}vIkT1q;1&#pu{Pw|IeI1Am?UU6a9rdhvQv>&o;V-yvBc=7D zy7|=U+)XOGrT^2G(j(CdZZu}2=%&^oBxvNOL&zVK%qU7vY(9@9SD;;K7)H<0)q@BO zorM$g+>7ZU|1AVVhfQdH68lWIPyPC9u`WcGZ}{*7Qne`OTLS0qrKS~EC=hGk)9FTK zxx|)GV05_Gy=I+FRmjzNM)T38O)|&#e6yXjB_q2yIei;um5Ikj4n^-T&u6j%q|tlb(Dz zGtsm=XnCfzHZn1Q(2W@NyNkY(qy<9?NG~MMFB>}bwV1PRS%RqL^1-j4DsvKdSA3ja z5s0uSFQpLvJqf@(k;M{mxs+eO{@;M%OT86^ssSFBpbh+Q{;;*VN$3Qj@HI`uJhFE= z@1>ZYMv0ym(L_89B7$BWGMW86%FwPaBc3bwu3oCo7S_BSERDf_ymI6HA)pCrOI8V+ zxCU3!8m_pWn%7 zF_X{`F(aNxL2|H+XomkiFjrRI>u5pU!qZwogYmHPd8Fg&WZcoc1Bt96ewk^`%RWWf z`_r*m<13JJZ$z_fJ%dbRr8H@uM|p>0ULeUQ>> z(&P%I2-G4wTr$Q4BHJP*CswVpA#V}L(0GIW7vWGG;os2Qj3vR&5)i^9r@gVccr?gG z%w+1|UV36HRAUGc$%=A^KndFbxM|%h;!+IO8Cr!qKbZJ_F)E?cHOsuh0}k~!a}{Wh z8F@o#VB55j@Vg;?bsLUc=%ryRipUU%`O(E<1?Q`-rR6ayHZv=ACEwO0ycF7{vd%D* zc4CSY3bBM;ZY*Qhu!LgG{9%j}g-2)9Xh!p6U@PK4m~?0jn%L=GtTnI%8I!5jwfb1T zb&hei^8I#y4;`3)<6_l%e_UP$kU{2fE6mkLXofml`IPw#QsVVhPdu?sS)-g;QG;k{ zOWqi>q>acy2x(h^^qy_Yw7!c(W7Z#{@j0+0DMzCyqMR8NXR85E_Mlt*6lT-T7$o4* zx8X@bhW$g1|5kj`m;wqD%7kdSxcfmiz;Eyr$~m!gYRBVv!Afqm7xOE{KUuf;SA7aG z_?k0K2rzaEX;17>>e9oIiABiq9bVX0Ca9{EY=RN82WiwqF*g_V^{+rOfexE4s^j2j z3W6K4l?1vH;6$@!njY<+0;rn|%){@u2qF5kc>`3A>duy^MW}EXh4=&VC!j3d(TXL+ z*;*iF9@(P9(fFC{A`#6MAOHAg>m~+s6l3F$93vkvQJDxO>~Dj7W?w#rVLf8tACvIz z6Z=@bS4!zQoqV2T@;=#e@p?T@TUrXw@Ma&*Q(L}p=N;y|*Cfo>Q<70Blsa&A!YQ$mNaP1wi@H&yP zQl#ZB9zY@>DmK9rL$?ApQhN71tMlu!Kx{}5vqUGIbGzV{;TfCdi6(+-x?BXuS1h(O z%H*PEJ9oI!iYrnx{9LG7*vjl&nk%KXR$&bN>^;ejzBn(e0q8j;e4oo}Y@#AyIPJHo z;k5aNg!74j00wD+J5TM1a|TuoAnLaz7iX$r3ULPq&iQ%>3IKqi50zFESX;~yF6#PG zEYf;7)f6a|Khm<-G4((dQ zqXLo$39~Lt86%vce7NPd5D4*!0GyQx zN_sf84Cj;01MoYTX{<(REJL4f5m0f{lH3*{99oK07QL_mYLe%AH>J%@Sc0Xb6Yyiw zozz;n=ZL-;CC@eB*kfCXOrDKs<`V>FmJJAw3Y)P6^m$;{z-b9+ih3RfGsF4=%|94n zC6=Q6L2`;M==NnxxlJj}_S&+*-n1H>2~r74)205&C~iomdXFJ%7!%S)#S%sU9SKBY z-IrdmIf@s;_Arfk8GiOPotXQUU#_kQx8>TcZcA=w1CI$m?+;SAJ?$|*)FcK9-{Aw5 zb#DEo`A^Iq>stG2*Dy1Pgw4D_@Ihr}b7wGgjilpARd-ZGRpChY=aAyS&2tUPRpZ0e z!xyFpqbjBwxWOu@f2!6%FPcL~5IKY&5O8`zZ#A+Dho=LIqmH=!o&a;$9AvU6!=Hdx zBFc8(srQOhL?ldqFRv+j4_aW>`qv;kD!Ti&zZp0kVdyiZTDr)9oYNtt2R*&euI4}y z9RfZ%@5B!P74IHR*RNGcWWVXlBLu=S;<0l9Oe|nnVb>JXF-Gr zG!cTm6EGqz>AyGmOnI6f^rS)SdfYhk9 z;oV1ebf84mb&5I8VJ|eU{jsKjnwnvbJ<_2)JvU}{9_X>fS0zENfmQPn%%NUIZLK8| zmfvgz_wGP|wkK`t?x$8Zyi#0SoVk!4+xIUBBoUK6iKoJ~1VA+q@@pk*`=4EaxCNhg ziC+z<1|;9#4LDI}V*Hm#Xiaww!97zfPAL=#5|IsmFsu+FNO(;(akW0eiBH1EQngw+ z1=~guUmXCcqV>T8QRQ><)iw=13C8H!Nr+`Lrbl*Q4?;vnVhl}9I&0_LNmwp98O`=! z2NU(d3U0GqoX?TWW>mg(XvUdy>HI>Te;G56_vavk@Mw|Ajww$ZMTK7g0o=$hr(?XJ z@{?J*-_+E_64^An4hDwqFQpakjlfHs%TCDn^B=UQdB_x5Z|37x*Dkz1%ehhh1G1Je znxc8-4o_CgcE+H7eI5=I-G*gB;p~n6pYWLXY;E1T=z@mCnvj12`nu=S>TSL^$To}; zFIPr`6#^PBdHw8T>RH*~+rvR#QD^==dCaS7#N@T#Qg0)K*Rkx@6-z3;tJwj&um36r)B$EhLZu_!p*#qF0W?kN10ae|8 zx7%>BepfN30A?Mycy{iO4_}a=7SR6)n0vkJen2kASp|~rP4C)364uRbZ;w8fIhaAX zIDEV2M17U2uPbdjMd-ki*UlI6bzzbDxA1c(aXmtN+8bOu z8hQl4tbV!rynw@r+EX<$7&JGrlEshGudOkZhw2lEf&p(GOZ^LW()X58y1g(ko4W~U zdBA-lK|u8#Ki4tJN-#erRa+xE-NGx}2y4{gpgh}WuZ!5G+7vRneotGPK**4;mS0p& zQ$oIl)csf6VV5A}QD?h^+=^rrF0j0qc|hZ+jxOL+Ylt_c>V!~W;pTuP6b3p`oUh)2 zHLye>`5p(`Ba&PE?JGeWo|afo0>E8JuynAzdE7?jU2974ouJ=iw{waJzU zHeU+)iSXJ52o!k5P6 zMl<|p@E(0lXCqUqlA0Qi7aH&r_2Sc@inh;bDwa9}*vcu7o9&@gQ-Lf7%Qy;|!sW&C z5T{n)COw+%YsZ97-5I&`r;phpo-Grd+zeaYr9$DbQRSccOh$*!aOlav2*vjYWUxjP zq+_NAzYT>6wB%&yCa)ugt~RgJX3p1-8a3M~noY>Ar$goK7+P{Mv`3+^9c1mpDggw26zli8qzekA}4_y4y8fON_~Mz#m2ROW}%W7a^f>iqM1)s2qoiA*CUWN zj`paq&`cdTl&8{m)GEhQi8%z;$Cr=Uv0{=Lox+tVI7PokHv}E0e4Jgd#BwTm3iA$J z&fs!akYKG#Px(nv<}*D!5NHetYPC|hQw8LHlLh!0LL>HQO8Z!RGmIo}=}3(<1P5v7 zxYLIs(2k`w!Ks9;DbbG_o0%ehmp<8UJ`B{7EQX6MMc>&mKmglkB@+8@)G9=9TsF5( zF%~}i-VyB}sF;R9OF$<>KD``0ALzX#xts_9IAkbm;-&Ek_;f zZzoWec&2Y;Gu}}ance*Xx$h?9*8qp;5p=-=J?886&!WftQ}M3 zxf6BMvu}Kj?bRG?*VJlDVRkfCNDAlKOr9xTu657fDBk^m(eCejClx`ZYSa29opHGL zL=tE6>}ce$qw1{wp<-ETs?R3g^kd(r-&frmy~=Oxd%dT>x}IG(fM_i+d%N?$>x(}T zUwdAuO-^mqv6JQJy3x@3Ys4B&bpOZdgG`Uq!|nV}Xv%ZAy+q$UXdCXtDq?kv$r#=7cmJPvTVUJA4cw%7Nw zh5URfi1kwnUm)LGp%M)$q@7u8m%#+$)pQ<}t?aNIcb2GymZF)WoOofybYMhpd}B@e znt6Wg;vu|jkyo8!9H6MEyzfxmn&MH%YdXxl(|P{Fv?XODY9bp`^#k%A$R-RQ?*})Q zVjZf>ijt49xg!(wwK|VdztxXl42$_o(%ghwqAnG0DtC;QZvQjebE%;y?Oj-2qQOd{ z_o`UTz62HK=+;;Tgiu(rLtB|wLF(*+`(g-}K4 zQygE5-vf~0`J>Ec=0A6iZc%J1+`my`wixGIC*{*0eTcY;Ub1BL=D}S?(n$_vY)L_qasIvJX+F)n<4pZ% za+7pl&dVw!f*}JC8YwRnaq0veZ%IlnkZT-U_A+~OBJpAu5NwN4D zex@HCe1Evnq4!={u|$6M__m@A8?Q|jTf)LOgiEEIha3OM`uI*Jc+$Jq_)1{iVz9m6 zklikkW_Mlh4YB;)>(iOtu>+&d^iHR2ZZ_r8T?WN6K>lFct;aJaxz_$p83)JkKOq16 z{xs#1j@g?6&Xmm>i`&)F>3F!+wd-!j32O z-u(7qM?H7@_E$^JB%D!Y4E|$-xW8lx$M!qNmYNy#m;4fKk^9GFMEh@1?T{J7Y{As* zZK2XdDJK+=k1J!zFW6$zD*LhAJcJUxa68Lk9_?aiF!tq4DgsU(NNgObFAGeZ*T6xG z=#BG}>GhP1Hx7j7?q{B;?f1V~-eLdCwD+xBJ}t}VYLTK{Zzn=t&ovJRCaKuXA=$1p zeH&J40}cY_(@B>k4btHCx2Pg04knlviNDE@|Lf5@{G<&#wS*lU^J*0!VrP?`vLYm- zQJZp{hs?%yRSwIRAQlq;N57SHhJ>bvg6{{iF1FBl<|TTufM3HkLs`g zfP~%*tLtTjVf!hEM|Sv$nr*I-1D{-ctv-?H1GQV3O=Ik80gCmOJ)lfW)7}bApI=G% zh^;;IhMq-R^wQQ&k?-Fv4f0PhwOoNe%@ePXTVH>dom5GJp&OeOB0ZMKwzPVWh`hfc z?ozo1Y4qrB(saF<8Dhih`$^Hyt7emUV8z<_?Ra3I=Yzn3zCKByZdir+%@HHGZ6ot5 zdmDiL!WI-hsCJLq;KzI8evGj=9!|tA$tIaBBSCgRt-=jUegz$XDU%20{R4iBGjD_B z#&c?L=lc%j{}<}1W}JIksTjyGO^?+MBm^0~S}*cX6Qq4EjjKgXU4xOVv9K^&&sE9Z z0=tgKyW`A`_xfxU)>B&TOQ&Lc8m0_$2IAegrx&^t`}CE8i7aN6qGk-p`Lg~nv>gte zxAoRPe6#z6oB7orkc;$zhJ!1q!nyOTb&NmRXDSuqgG9mI5aTFsSNk^3pr{pLW3RH8 zex3LHjWL(FxolK=1c7LiY3$`TjO>en1h0G>8aTqrfVt{i?1I^X>gdw8r zSo$){#nnLK9{x|&AEfM=LYl3t^Hs$Tqj#AzDZgIDp+a6Hz1skTuQMz?36_34?uXF7 zFA&!nR;iz+2rgOMs(&TgwbsqT@<0CrC;sJ0DRRg5N9~BsDllE-Mk;5Yvlc<{Js>4# z<*VbLy=_TY&}EnZgMBLD!Jqg&t_-Ysm0n*ZE_vP*R#nXX^AWxwa_ya)kx^?KC%H+O zZK3*H%!OquZ*DLwEuQ~-?~1>jMjdnLuL^Eh?66&UligCd(`Uzy#XA?o`LGY#s3P@m zqB`SQ>fdy)%s%)zNGN9`C20%xjbDTC>|_j`trR}iLLMN52M!>d}du0@9wMi ztUg(qg%{jWnJQsTeK#)hR0 zrCAP`C}O|yy8|aSCR0@Q@``_FPRrmrw|UPiNAd7m8Aif9BfW3*l8D+5jbkaOzr$>+ z%}h}uiSG50J(n-yZr8s#l1Z&}6w^%iSD1MNGPp?>?M`J>w>%&+^+JX8Rnyb7x7~66 z)1Pb36|$fu-Hpon0e->eLBmqb-~4(t3p@a$a_cTcPt#&UckudL&e6bmx6!s&*8-mo zz_#yXlx&jQ=+^$yl^0J`Zw|k9WN-V8zw}RaPIhq1@^=z!h#-RaPj&#Vak%_i$`xMy!4 zVc~_X8?5Q5=SH^3HDNkX#?5+s5)w^3P3bQVX#QwpW*9yiaA{kYm(4Zz1p&8*Ntw0_ zoUd-A6e!Byz_GU!g^>^au zlSSl3z4H!^k%n?z)#OqYm}~;=Q@2d%lOiL}S7LTOP(1^eCI?W|cZn_A6>f6MJ>9PP zBptkd2$%hhU7oyQ|NpSjPC~o5eaht^m!(Hv^<2|O6y&pD9f$Yqxx$Jd_J_aApyhl# zsf&8(WAE?&yZsZ$*a@+7@_%!2_N$-I>l1xPT_+NxLv678JP>HI;;NcXBbdUW?Jg& z=029-HoYdH%>1Nmsr*o2&RnAcntE0Y>+|0dUBb8HWLQ!ru zonm!5tUFfjMr3qjLMFq;)XW+i+ste`zxVn5<#JuFs}FtN@4a5H=kxV=;@h@nS!1+G zW0mDZ)6mU1DOUdVyLFpKR(|&0;Jat&0J^N5oUj;z?VR-Ufg}Vds-K&4zjT=ZyT(%{ zl>Sea3_#+|zcki|Q)g!b_dX3Aj(*<8JD0irMbTywrqQ3eiT66 zJIR+zSGVK38;}J5KH60}bx)aIbzLIj(u&r%$QMYt%l-LNqWP*M#qA9%yQd-_z>8}v_3Lbm=1kWgN;E7*;@$DsIzZN> zY)($NJ==OSuDLEb7ty*_bnD=)-;9}M&TZLWw>*MF%-6fYx+53-pkN=Mef;`RKA8UsEtjZ zE4r-U@M#pv8p2=sH>FGX!|q`5?*@i(#f6|5;=(@BTxL`Y%CvBSaP{GkpPK}WU;m(H zoL`tPT_gXSdPQ@*r)^fl|8#+0FMN^|81xDC0E9$2Ydrc%hP;Inl#hXbqPJ+AX`E%- zt!LRbzhel64&tv+H?dvuRJ<^kvuJnZgM->pMV!BI4*$ZqC3)R!4BF25i&|>pK!-H* z4l08EH7LWagvfs(ga1OF0RZXev@Tp?gMraxeW1(6ZDYxsGc@nmlsO690u0AZg@%mX z+e(B3*_xnOijtT)V*1if)v<@{RG&2$Aujjo%&myRoGP#G#az|aZA9Z^GqwO z*^c^47T)%~0_g0LIioocMNEeq{})dEgOyP@)jSpH{H6d9A}qJY-#plS-#9hgh<0pu z>jbq_9#Y{KZey_2ob6Vfbh%}OYqOO%T90jyd$;F?a$RfavX~>=-A!oObt7`({`upF z_Yi{dmGF;&y6Pa|;gGVzGD>ud(@$PHFusWJ$%85+$sKvaO*%YM0X}q65P* zC2?l{;;KeQ>Mld{n(1%$CbYQRQwxAV#H6HeF@rjQbsQ=0wFKp+f98iuTF!Hua^-ra zj$2YZHx)oikxI2a6n|9ElwAJPUuL!=OjJI-w(T( zn&Bc~p%|h33TKE$l3AK+Th8!Hucy6hgB*Z|Ss`!fB#(GMTey8(L?$N8NmC;}u{o(B zypLF2rT|~g6Z4{8zV0GZ(%r?71Qmkx-QBK>9M=v*)q*_c?ZYb+Bo$gGLGnRrJB6j= zca(kp{<3NK<>&h8zXNL7>7Ei(y1{+ih=?PBA}oXXfErNa?(Zr!PW#rH#R6Ua}xCyq@nI(Nj`I)o>WVAfh)Suk+gc7zFRcm2qYBZQ$ET3M}} z&pv!bMlZvA<${4Yf8_3v+;p8A*4$cj%Y_kAmQo>s>f^Y4I>5);GC$jt>*$7BMyQdx zmEcR}&i-m{9cpEII`lC{lHqM7mD2A{cf_c8;;d#loryBdG2-s5NpW$0=Vi4p;E+QX zyNT#Rui~OdJRr7VsHMiW^!_GYpytKb#M+`7dQbYu;}gEV&KueJH`UKSy?hxdh@3tr zpI6RP@s-IB!T60{o*D<5+aE*3dWk~M;rRm}6=PN{52z))pY^2{>nWj70NVjSnLUr# z+}Y&;KdaQnQah&kS=Kx@k%?pwjhw$OS(sRL?I6R?hJmrVo3-Ze^}HJS9FQpY5nwYq zk;HT%9bXvUO83yHfFnXoAD%tzke>_>Ws!Pmi`}8^F<7t+3La+Oc(03+wJBqIvX;*d zX`HU9uQGkV`j(em7srDqT3Okt#%@PR^0Me)5lcEvCryTXwZ~-v(~5~qEmcYBDliDf z0`ocN)Q`|}f?lJIYE9IcQhlq!=uK+_2~2%iXgjgB1d4`>8NH7tNh6nRSfN}m89m0E z4^ucmHbV>Qv*?YykXJBzStB`Vmq4NV7xGg)|JQ_66u?H-vYQ$c*mqw654X6NRZE)p zPnH4^JfFH+*gK0(m*aVsu7M?vC7$MsfVY+p-qLSO5tCb|1)Un&cl zr{Dbxaq;X)6hxpX#oOOc&C0s}=hvGP^N>uc0Z9s6J0rpj7p=^=ttBWi5@Wb9H$|81 zdt9Q#rWh+5?d_L&c5sJHlc4wQQPFO0hQleGb~~F<=eH|6?MHdJUR=L4R8@kEE6JH1 zxuSgQ7%u2{rxLf1PyHp2jIPd2t~ySY)>2F6zQ1>5e3=#9L*;6JH!g4P^1=^jT1zd^ z7|YOJ_`99itwx`JCT-;5tyYY!D>%LgrT%f_ZwZ6O)OQ~#KWer*Cp6{hj|I+C zTkw1UU0@x-i>`5=nb{ZI*Pp|t?v<}pMz9YRlqz#(%W4+#?3a~2$ZSSR$|qBFVdcnd zq9PKU$D1fhYimJ$>%R~yFP@vd=9>0({roBuXeIbl4ee{)V`+^|cLlC&sa6;8NgFEF zo(v-Hw5d;;206c=#_c%o1~K9puXW>N8H6L=kHE>aW%xB-b=zsCCv_s3r_{jk`e!W6 z3Y;7r;M|2|ke7f&f)O9Gn*G82k7TZc+B9{>au!*E`q&O^4`F%j<}wh9g?*>yBA&bU zC2&Le@L2(DIECl;P=(NG)W*=Eqrf8*WTEl#xcHe~UoZ4CV4XiNZ!JBY+sfe(m?Ep#9$j^aSy}hMMt(jQ3R_08@F5?`gyTeOFJI3`ul6ykdixUJq+wOD1^m+ z@1r@ZyhHYuxf(8@d{^F}CMaw(L__QU>Z^p?$kGPp1!gNt7b>uZTstTT5*X+f6= z;)cvui!6rXC8d`2!=4vS7`JVAq>?hTqyrLYzE9_eOt&wkiBNkiIiUkA8;fh*`DMx3 z;=L^_vxp>HYh~Em=_|PPN~iMLy&*`Yb6fP{^MPMk0=w(qJ`A7N)z*YP_GAal?jv11 zSL;QJ-sb;Hh}+s5Nz;Om)5^} zl>lfkH|`a0b{Z{Ad1zjX{;Tk~#fw>(qD{EA-2fuT7!1T$=6ea}NQ9F= z9Bd1XneAO`Jp3g3^UDQkW5IAe`|*a{yJs)$w1^#OU%Z3xho3jBG_(1w4-L|lXhb|? zw1u*&_J-aceAnRz=z>=3mh6u;fsEVUmDuHE`VAbpwcoYNRRCt5F0>Rh;@QvYdSZVg z7zAHkof`4-_Zn5BTHUCA&OVCuwx^kKrF{$W$Ut+nh~|wvWPGJh;r85CBmP~$&Q^Nlu-&gGU%1#A^2ot!o4|BVa$XL-%Ce0L+~X#18F z`E;kGJBO^+<1PFP__>v-q?{xkMnNVumxl`|wY5d5?LtSV^?JyB#-wW(S}oUFc%$Hw z%JBWkT{}~_?6h>4n`EX!)+|!;;9zC<)tuh-;Chy|y&KwEj5TH;PsabvFr@MhzTeIl`y><&Mt$d> zE$mmn_{HJOZ&~e&ZK^5zF`_Uf3=-A{s&>0vExH4#O+PN5Iv~>fDE^0ID3~}Kai5Ay zt)Q}cuMjvbG1&#<&#*Pz1CTYS5z8pR#BH3IsQle&&hNy z+y?>t)ag{`rUecAUe>}7L4)}3(F;Mthr=Rv55EX5iMUr)o}au|dvI}Fw5z?Zh0+%O z%RA)KvKA8Y`|i;mVk;f)cFa3lMF`OaSH_;0rAh1&+O7ROa`XBkBPNiq#+V`jHa?=2~GldCB73IY1XZ7u_eH!_GGu&$xA})tQ zZ!owY6Dy=@#EXKQ)5^X$Sx*1CZ17SVsN?D`^aOU_q&p=I+#EU;0)%oR+*P;%F-}i8 z1y}95rxFX4=q}5sa(enRPjhY*j=Ad|Tm?#A7CdyGa^paHjC*dHN;(nO+m}m*c%A^t z2?kEnpS5U6&FOBVdr5k$W2hD}ZhG(P!(Xfspp?=H$BlN~J5wYuJrydO+~Ms7R^M+G z_d9>wMHdjGG%soyPEik%tnIDGPlw&N6@_J~bxZW%`7V`>>nY&N*-+$6%)bz8KT-z7 zP}XpkiF)kT@}1yCzq0_#$%^I0)ykusP7$g`~61Jy4U3p-(d`xmC%(kpD!pdN3E-{a@OM7a#e8Kr<0Z zw13V`=h%8sk>{vD7u#e(roNdn{AH74dt7r$n*nL*a;aw`uaN$QytG@s0IdHlIIdmp z4e%}O;=hoOwOYO#V&^+gw2bkl-tx}}NcMXDYEug#9DhDH3O{>Nf3}`lRxe9pb&dR-3(VME=w^}8ZkAX3>vjtm zhe|Pm%Wc1jcujm~yN`r927{vI^aeF{iG&tok!&U7Kc3j(s#A;ds!J|v1YyxKKmKI? z=O?nMFBf#%4GR_Zy`3DlF85pR7GSNs2}TTQdX$tX8xkdQy@v9*D0m_h^08Dz5&%l5 zE*^2-ic5`VMm6X(DyEi7d}6Fy?ij&;XAH*tQ=`ASTs&awZUI;k-WV~v2CW`fq&Ip< z6yWZg%_~0k+YY#kl^&adED~$Gn@ewbNT8gMdn)c3!Lx5SjEt{_9rc{XdiDh4czPfa zSNBv_8ir^jJXIT9`;PMY^NEuC`qu{X53w+`>N}Y{gZ0K4cEps!!?26Zd2BI1j|Ub! zj`bKL2=5hOO75ig5JngFA2;knZWnnNTm<|kFKHg_c7|>P6ydD$%z|25w5 z-}zA<(vdn)w1!!=SeM%Sv+w(e?Yfia<+FOtA{$d+*hWw8k1JgTfpKsjw?evxG|m4) z93+*L*VBGOL-f}?$^&*>Uy^*_h~=!NgBzO5oki%N!Op!?sl>{%BN=ep^)q5?+cNJ; zV23)q)y&~$I$Vqfw;HB0B_=*0H4sb!GiK3n&AaE!@_VS=in z16q1oT)Gg2*GhRu(6U1|`p@b~d3rF5qsM(%_RjqHon&-d4n*8*XYpkM`}kXG#RB`d zW9Aiu{{3_p{HzL_tV_6&JiZ7pr8AnBDR!Efo(`)f9D|v4G2!D`r7M!(DF8i~o-FC3 zzbu+;N==s;t?(6o-PF)|Dr5UO6B2KD)}Ck2V3)$6#a!<{`kTer!K~`B?ZV~_SDND*-7}5)%OF18N zdV-@*T0xK1StEq_q~WaDX2~}wJ_&o#az(_!L||<5ZTJ50w04KN-PN3{_IyA>!2Gew zcbOukz270s)TGlcHNHK$xgvD#svCOB&!V?^KC=adNJdO>4trEjpW{TvPYnd|30j*u zL71+78g(t?`s_O9K06!S$^guH6#E;5E@QN zVK-_>Gwd%XLUUE;AS*mO+ZvmBls1bWz%^uk_0fa77fa&@L-S(ea+G^^#<}?s&pjmEJzKzseRYG!x~r^odAvV1lP9YZQi+j~hVXBVt9;U>N#8lU zn$F9L+V?i!ij1^~ff#^cM0yR2Znjdxl_>qDq!Vt>YW17$E{j=GdQ~KzwCr9Ye(Ek3 z%t+>E((zmO(eOo30IUT)1B+0B=je=eLKUJxSWPFEHSXo?W81n?bZKX^a&8pa4jCtA z;^h1_D&=3d_J)5nD(bAo-BxI>l`f%ry%oAyGnL{t$3tOk0eA+!I;+L-U*Ivnc-5e; zX@T0hoMPDp?AycL(?#ut66>e0V1|36Xw?0$u%kH=+PHZ4R_&W!bVSgz32Mw2c}_Hf zaxsfGBw^AKU%DU?Hs2oMv06rRS8V25tJLjOI-${)nElNu)wuM1r$&ErLMC30QJiTy zk}A)J_F9#Kq-uHbEiKyzZQXPzl<||9l~w0b7tx%wpcLZ9aus7%m&UilI8kllT;*ek zEipW4kdtwxV3SqG%!y)~uPgq2a`YdY~tCBz26B4{vdX}86F*6t@Xtj_gw z%Z3+d=?B(OFHSg@@dLc8m;UUOwK; zgP>a*v~008)7B`~i-~W9EA~AYnV_y{T9f9fpgfKWuwFVSGp_r5(fWbaAE=BEMLXOt zDTemJJNC8zkj9me|qJpqv4liR;@;IHO4AQiz*E^O|RP6V<7bPFX%~79lBg z@&$3vaAb7x(5?VZKvnPaFaJUgD4n$^WZU8BG4A)(3qK{#wHj8JC+pLv($ZxsX>OfjHzaRB;re#(gNPSYzFNCtkknX1 zIvhk8uTS4TqFI=ZfnpV8`n-A$g`|5NTVXPXVf5xU(fUeEmK{NArFP#W2NWDVHimjZuf*QQ!l`r+=jU;v!m|I2)bJ(LMUio9)y(N=5D(jf>p`)YuEP-(aqmfNRB z3G>NL_F6&ZlY~BVhbb`(V$nchDj}91ild3qv-4DXoBuP}D+X!a0-!v`T?g!D1$;rZ zON%kg9`?-6=^|$o3^x8EO#>>*eYtN3CMK>IB$s1C?P-2ksb|Y{X@)xmOJ1PB?5`6D zAO<=CYZ>BxWF1HPRgxY#bI8-;Kud>pi{z=!w$ZgyQnks~LutgGcd*bW^5%`d zm8Ftt-t#)zkcIx3E)=M}DqbJ3EooGh2LpmeG@qO5gQf!nVUdxi;ngwTTD3i$x-DM( zXjj?(I381lC2>jo9MY#0>?=4m6NKJ#m}|;cGx*&U3}|4eH=%-RdCH&$I1d%;45l&} z4=F(!>xk7m+{v2hc{O5||92>^DNE2R=<9t$*FyO@vqn-^DrG6?wyPPB%JlNu;-)eu z%EHAO)gt=+Y$pD_fN^nFfY}S9d*d@CGTKhp9F@kJ3D1w&;nMEfJl)H2SlPAH+o9VN z2!pei@C>+ZW2&tM!Nf@AS2j-xnu?#CjQqQ?tcJjfYPl4fv}}&cq%g)8l(*YccwPdy zMJr~Jccojq$wPHBVrOb5ztT*q#y={jyJ6J0W-?tLD(y-sXWS`H4DlJ%*9Nks%>2)l zqpxz{7CUhd)a~huQ~ghfpMl(%oOr}u6QP3pyIYr+tYr>-E+fclRRuIJNA+JDlYr$M zD(IAXkwOAyKC65pX29RVzLN{prikHpBzYOJFnfo1OhHJBG8?IQOhL&p|3copQYsu@ z&M7LN`gBawW79pk2UQ_|Yppv(G3g$(IDvx&m$g$8AZ#E2A)JmK^;tGLKp9 zP7d2uHdRv#R-4lI3Ut3zB&@3?QrlR3Nx!gYzQy?AQ<#RV-O&0-dqyWd#l%{Iz zC6Gv%TOBcvNc;)#K_u3bo?NVZq8Kd`>IUy9mB%&Dmp4aW27XCzqAuTPmqYRHwL(2& zjVE*r7v%A*##i2o<04+Sr^h5$_8h&!(!3;&9ajbS^zgf1O^$pFbnYGQ5n`jLEP~$V zf*I&WHyK;MwEPRXo+O4@O%UYEl`-R>-R+RjTzfdt15e{_9RLbkT*q{CM>7oJrq+WF zI4g1oRdkK^DGaux1S^@=<(cV(+A2$2^~<{tBomBDb3P>oPy#QQ#Ha%4~joIw@=x-A+KZx z6YoFpczkuA>gdVi^jNBCi+y?XyV7-5AjJzTEkeS2KP`C#1y~No zDHVK~3a*^q$B)$X@TvzXSuZK$CAHTCpBjTM%=yZ3W3JD@bPW3<0}VD#5@dYzTN7n3 zT14@Tw{GSk%*4W7Ic9UZF#B@ep(GegEjzg8)&WcoJoK5hZnl?$CG{0iJsbxI$ra}~ z=bktZ2eap$Sh^5nQfgsUZDH_e9f=(cVyy9dV5c%XF1d%!N;FJELDQo1L{q$|oC9Z3 zY?C9}scR|Q(l%%xi-$woL);bID-FKY$z(|je}92 z6XU7!fT?%wOK;r$E0J84y0^MGC8$Ptr)D6qs=DmX_dC_!U-k&;>>fVnE$3<2_iTm7 z*!u6F_b?sNKBb!}agMFx{YeCb$nA7mXlC_g8&OjPI^nXR&IYCT^Te< z?#dDim&l6yuZ^9Uo{q8|OMMdgzkQ@f18?NYQmUwes`$M^oBPDbmwi#FO#vGBR$+nS}hme-)l4y94cF9bT;}4&(b* z&=bw-<7hWd)g+M?AjS_AtG;+J`wn_bwZN^@hK}-S7-x`_r+v_Dv;)$~4b1M!mUR`( zp>W)`o|iY?mz=wv8V*(;%%W5!9Tgv|^dHwq*S7#aXYRUzNsi(OL%X%QV$T(EFvu|+ zRVIx}ZZxgB(6m(>p@h9D-rI&>mJDm9{M6mx|3phYuEbx7ui8GktIXT~`JaKOhP~3M z(MbqnQFQ7bEcc&pL@^ql@FShi-chs9MLRkU_z}+bL=^IC)L-lPNH)C8nn6^>LxB>)#FEUZsHH_034;nsV^?4Vy5FY`-_9EC-@g6FDdnbl;67J4>sRyN{0m`o^=ormgf-_l-)BXf zY>Juop5pJhQPfr77Ao1N2*@k{a>3S|ujc)kC|ss;lt=%1AoAPi?eT))5bm4WsK_a1 z&*>9qT!Vi37jn+{f$pxTWP#}%%TSwe6FpgIv{5p@%N56)=_{28;gvL>hsngZBRjPL z!A84@5V&&Pg9j(2KYkQmIbBmCe-e?j;XvW>o6OFnwg2QaIW25TJ7Op}XQ-iys($3j ze@GVzoUalQxQ%+(=&MZ*0H9oU?0stpUeV4FMXyaJw)-dVJEg>5EqwE>zd!ZSw&}xF zADr9({CYU5DsTJRT`a`f+avFECnNYt-*o1|vV{2ik*j3u|B^Bv^iKy+-c!ILscFMc zihUv_crjY>D<%geZ=Ba@Ij2AiLw+CFS2G+q*CMpQZ626ta{km{xqR-==^8}HVaHb8 z)%*WYPq&g%98aGAFR1T|q~@MbDsHi7`K4Q0|5vM{=8u0MJ|}W>A!)G+0x5*;iE{=yszieB?F(f2rWw24l<9(1iLp=U6n^7?xo-&f5p z(H#{qd!>Nrm|e4DRjg~yj5}z8AIxy~@h*0_&?s}reKLW5OICn^3VWb;H|_&0%IIz- zJtmbwoD{**!k%GGjHhP#ShJRoTWqs(mPx9~K>P5!hjn`h(bxi6@Tpoh^bwvZrMvQg2x9fQ|CfB=oU@C9XLuTzF@iCp;kN@%T>Bk2oTZUiR)&#W42R>~rGHqT_x0;kmcx z3`b^gjig+EDPsl(KJ0HkrHX2Z>}L?Mah><2rv!Ej>*{MgetUX^fkLozJ~VFdGt-Hn z^Yq3i`b@k?j1?+$9Kn$74JE22&4T*vrhX4ZjX7<>VeMYKC!~?{giOslVp!X_9f%}# zax3K1TX@A=YAx)H@gDDpi>L<5DtDSubtR8+28eI6lP>EWUy5GzqH?=s9 z;rFs3C*K=&6(T8(H^lWmhL075cOYCDMvmKfsIV`6pVqSNG^0DT+O;$u`zt|hpdM<> zfBwDcIQ#3X(-LdmQ9iquK7fgnc02?Hl8l9 zlz|H&L?s)8ugTEA47A5(xlj3CT4nsSnab85{7+;TzrKR+mFM4ll!z(CKbhBg?;7LFFpa>HE=Wk?r;V|J?^)`dsnrtNpt1_iT<2vTY@K7zd>VaBJWK#u(LH|b^0j!sO>an8jAj0mngNP4Q1gUID2$Md*RWwYGJj|4)fgXNi-oJ6Z} zF{fL-)VsEh$*(G&Pm~HD*YSg>twgW{8hDCSu!I{GlXCzz9T_~Z&|u3g=oQjEekNWw zZu}I_TNzGYr8rd=RTCQhXuv#;^dvBNY0#to69LI3EpscqcLWf3AM;t^w$X|f@pq!# z-pbzGV?UQ7FUD)SB3@~CC8cfFCX>V7{J2sw@@BP8viq0Dz`!bJEz4OJBDs6hb!;Y9 zXrY4HXKAQ^=9OmlE)u_as#_L?bt&jOa$5U04)jn1C12m$P?6^?d=MGMZv^NrKrBGI zbh)ZNu6dd6ez7E?Up_2Iot|IZC}gyP>$cAR8z${=4j5FKs{+FD+@)iW1{Rj3`;0Zw|GJUllvHP|oxeh-&(_wR zj9RD;-UDiNWRc(Fu{HpOQ@j{klNR@N->AnwYOw+Nw%X4Fuu343-R4S*7q-7}mN%j9 zL-U(#o|VGG96;DkiJb++deU+7x_L9I=W>-XJ-Gf#gRt=ZVa!Vv?ig-cy=U6=qO_wo zAdHe`@`ntOt$9sQhM#M9o}lrUkv%Vd#YJaRHUwq-#_$+r-y|H$ZCrO_=eRTUhfKBT zM;({7uY0yvkH2FI<=42#guataGH2d2?f`y8gZt(A{*i69$95d%W;DdD;67Qe5Si?E zmq19l`;pfu%R)AOW}R_^pVCIZ4KU2VKYafYA~jP8=ktGw=h_;mmRw;jcg;(1?c-V6 zxDepTsZUfoU^Pc2|mbSbM%WLroDD;G_l5nQQ8o}?^hwN3H63)tw8&nr_INfnmZiSxiip;isARJ*A=|M`-J7`2|2XoFe{!dNBu zrTJmlxTZb{c9!3`J91s!#?;+CBS9WGM&V!Ig8h4andvVl4aAT_j1$It^vnJ~l$W z4~PPOqpZxkW^Hq7ua$JBaC#ueaN&2_K3?H?=%ZtCVEcK0dWst+zPiE)OGDm1t>3F4 z>+Zhv*i3l+!R3BuS6u0=`onUC&FIp2h3!pSyd+!Tq*Uz){*{KW&xxa*@8wb6NA4E# z3C>uAuxNxo8uprJR?&XQ53AV&7L2*`AMLKSAJ`A4?a9lTYhP^1IaR8un${lSELr?> z^2t$H4d>6aqZeJiJEZ@n0g{|rS$0EtX&yNfh!^g#}Nu78@?#^XWhl(M=65GE+~X-}o$ z@k{^#I;)oKwQTu#(sHV4Tk^o__OKrP(ino?OzXFkEE=a9q&F2e-g=s>e_M4iG*iPc z*Y3F}Qs%9@6DdTP@yZ|mE)3IB8S`sn$vJ9WC=(0o)7j##rx?hy^S!(`RNKm5i0d}k z=l{TMm9P6bWhzqbv4a4CL)>G~yREfErHkuV{UODWFgf?79vwqCbXJi3&LsDg^ZQa~ zKM;7cKAkZt03$dPXciAMI|Sl<5mfi!s=lXUEqQex<)kr~w;SXQD$n60H`AbaL!tu5 zF_F=qCXaIc7Q#mkHUCAr8&9Y~l_JQKFkGRUawphUpqjcsg8P98a(%bgc?ju@P@lMIA zG$)4OqcXjk)N4F3Vxk(i;I3V--@vgxQeY@jyrb;Ea8_ym8oGrwrCXIIS+}k%;Ad<; z%Kp8#T5z7lW;|$WN$Pig5aJ^s%=YtVc4eTEdyi&VQijR#*d1nA*lxRHE*%~1Xc6fW zb(#(%gf#T;J5RKFV2@j=*xd{_in-*6C#4yB>~fF~(mlf@@$YIDW-gaGmx9Ic(ntSMxZ8-coV`x8moX zMKKK|#%WJ<`wrkixDx06oAPiWyYf6`i-N38QQrWY(0&bU2v_qIgTG{EsEKI~LdNc#tDOPq^EbCEE&fn+|VaF@KMCJh8)UTQl(ah5jesAgd!B z+mJKcwHeSW(UuYAx{UZ6BL?hiSkAW^F20-#79VWWP5xo50HTK3+@GEhi6`F@OC4XG z!swN8FD}`jK0Hy)RtGc!-9Fu?kk>U5ARzFAkQ=EjKRvKFnwKrCk2OJ>#@q8?WxmI; z)D`G<_t*$kT2$wJHX+2d8_Ek2b7~`Ii;U*0TtQXVWw=o{tJvr1Ce1V4f08K1ddbz` zF}-&X;3m^U%PdOc)xhZo-RHxuEDDblCPXpDYhCL|hh=|B`@4yZ;KeJb{=7%P^=pw% z$*KYWE*xYzlj#ka23J4C3G!(uZ{H=#Ww;1lIyZLLrC@-RC(Gn|b){1p5C7mbp-zu~ z(Nx&@68tu{{gceR{MZ!9Eti7cOkgkIh7K0HbV}@ze~ts^%8*94#oi4L`07ThX=#q8 zvUJscG}g6y;jAvza320(E`;BdcicCcM|l4`=F(y>tiesLnl4?4^RC3E@F-23adCG~ z7TwKMnI+82aKl)*={;gCURmKQQcc#D!?VNg6js`!GPH7^9xY0P3A zOSfbKx2B{PX6?p1!#kyRNc_GW>c+(x2lU;jkdiU zC-p+}5Pm5LJdYJc;%~fD%?oa{hV5ZQ>KG`if% ziFZR9oACQ&o-zTSuh3Jw+{z=2HbJUj>XX6IJgEvWn775GW5ZnqP2Oo#9NHSsz@87y zH=D5Z8<<1v+=070bsokCnlSMUmyJcsn*SrzvD%y}Z$`arlt&PG|EUrug?iAPsB>p~ zibZA2S19-l+RfljxjpH<@L)>e=Ovvx5$pXiCxL65P2Uuh20TR-&aIrHTk4?bxn(zO zT(hnoakCp=L|#GGU`@E#t)7d$kaN6wWQTDr{FgPRF=kdBFcf;y9l(uq#L#LesQU;^ zgbO$7E)P|F^L1iVS#%Qh&G16-g@b`7Re^(s2l3T4O^lIVzsJtldL_e4W~7E(o|esv zbw7GqxX{aZr^58P{Y89$fn!R9Y|56P;ZL<=HPYyYa{KN%71tA+s==n$WqD(ifVvho z+wpxr8h4vYoNbnC)3@y3pAMXU!lt-p&D#^$rifWNRXR9)msHRK0*KT|N%ygw&=`yX z>op!a=_a<-pEJQI8Gr1AalGUOvXR@*Z}~J&xiqVENhtLALd?(p0bc|JkF-4jpLH63 z$X| zNY41!mrIaE2tU#+oD%Zj7Oy0)17@Yd%<^eFu#}e-*X(i?7-+tG5}w7}wVJ^~Tg!QA z3%awC*JHUdow4!P=%R{xUD8xtQ;r|iq(G*%mSD~IB3dJ8Z1#f|4{AZ_Kfo#t2pIkhkjEfq4F9?MFN=35726vqy zdDmU&eR1wM>}%#w7-w-2;;GB66rQIyHaE&uF83DC->wBJRXCXJ7!s}LGSMP%%~{)t z`2v}0JTD|w8B?HOjAbKd{nFB4)*ZI1`(1}jx?&H&zBNyptB%e_qa19R_V#wmNJ73n z!~!xcVXW%}weeA<_iOMaLHr#aOC7u2Z;{;YCWbF0JPwFGoK_MPfpn^_S?K)yXj0!B zG|c_2_F#W4i*V0K;=DL5SOB`ukflCFJzBVX`ac78FTtkZ5=0WMEZ4?_X9>IH8J@E&WZB5l}=fw-_Z$nL@uMavR--$96mSYLVTAz z>8>`!f#JYIqZL&kWB@PNi3AmmVQ(OViXKjFEx@1Y?Lf71tRP}2W6)+yWMyqn%b2}| zUt)NBak1SB5Z&B~=UYi>V;l>-Nbpm=(X3>_5_vncRcPgs*~|sb{W$cbkC=w9qKNZ4 z0T6Dw8KX#UX(!u$em;o1q4d?wZt|G~C-yLi{_&mAbcb4oSXhnvxo395>2b8!13b^T z0}pe~ow($Ua)?K(xHf-ULrZ7-OToCrPEtK$(!SGk(i`gq)B{&E2vv(cuQZ^C&xrS&@Mu*1;dZX6M+%T1C2eq(~o_rs!8;<2@dEPoQh~% z|6A{Fv&gBUP@@@kAu#O^fY3cFTqj7oz*pmKk~tzyTSWAta3i+=VMJN#Tgs~b2K)P3 zme-B8!GiLlAkd^Ck8panCp=*m9qm)SQk_(vtgc!7y0QL>zwk)@i}2kJ(`$y=pLWY4 zSAQ>i`@{Q>pUwmH^RE>~-&%HJ5}tHO^3&>Xu>;U>hf=^8pF+W7;`C2isi9b9?>b|r zdN-u@Zc!rdkqO(O@%nqsQ%L7fcWzN>JZgTzP)R*cpds1W`ZX&#qI=XA-e6d;M!!aj zQq=N(|ICRH-XvN?mmJjQRsC8X6rMXKT$Jq5_G!y2#mB4n9!J!{TEB$#4mvgx+Uwe% z4n7!8j(amJb>|KQO7trPM)UXoB)bzWCy-{qe!b968kG2IhewgusVn*7J$I@fIU%o= zye0Fm)%Zq691p4pdVC*Xe}}h^{XAK?u9^GwxJTpyw%~K4P2!jH!jFQW-Or9*qOPh- zWJh>Jz3k^tPO~2C`kWrxWb$6wyvWPEWO?W`lnbW~4F#EBzxmYnX8GflfRdS$Nqd0U zX>O+!fsIK?RT570>^8s13CpF?H>5mNT3)OAPmQ?z z;>`$Bxv45WE-AG-90(J867WkxCUsYzuqJFBd(_d83qLm1K9}y48kwS8?WXD{3qF)j z!detSWFJdAXkcROf!V~0(v91$-~qA-upv><`u$qpGiMb1(f3}W)aXCmuduUsrv^O| zDc_Dfwu;Ylmx+r&D+9t9FglvV;3eF4Q3MKQ#@j`yG7~ z0;Y%MoT;<72v#0d-y9^ylN|)pe<3gUw%Ks<|Ng%5{w{p^i??}~Jd*)0%G$=yWH{F^ zj>v7wRs?7y#-)TY;lMG=K@Uym3j;&NSbD*|n!yaBeCAleZj|>$HZ20%AsbeYb*Amx z{rwi}PqpLYUsknlO}{ewJTd-H597@U{Bu}4eqcfK!EoKURqtqcM7JneeorkQUx2;Vn#h3x3X43ceq1uwNcxl+)|4A4TAcSFBDux>h6A&&>4pBiEP>Y&=WL4I&ea6o_E48?mIGq>tP%frI|b*=fI z4?Kh5xirj)54~?{SQ|1%yi-~B8uH|$E9Cf{`IFhuM?B8aw`mCr$@+xPoG{BTFfrjR zeyL!161j4H>lP95vOBH}I&z^-*zSC7@CqvfXD!uXa}M&?&ndJ_;?vK+J~W$sA6_}U zlhyHS+OOc1S#EfwKf17=@|NGUN?SB0Pi^O{qlSS}`~uxvx%bbspnr(6k!^eoYV2~f zmDVzdpAZ?4TIPSOY(t|Gb~#^mgzlS7fSHZ#KmTW7?DgVGeqmL3#P*N1{Y}q4zmH7` zuAY)d1Z!#vYd;5Lb;C6gNcM`(_%)7)aU&L(`Rnv6lwkc@bUOr+u|N6Arm1o0jcYG* zX18URLrb4=k0iJIbfT;6$1E>T;p~!~+vtm*E4epuKaOY_hts$6xI&8ro8>4jZcSZ& z^4YADiv9&l44#(zCEK`U804>iVATGkpvtc) z3%Hzh_;b-~()_fK6(^E=$F|=a?f9n9<1HzhWJnADvFg0X$w~WrPaGaSOg->2d(7|p z##ihct>lmW4}Q3Oe8)t=;hncn_ZQVSs(LFQ4}S@-F4pmR?G2*JVC--o_5MxRxGuX&N$7|$7^^t@d+N+*5x)REQpZt}eOKe)G& z2bq~XC?A!NC6i-)7IBJFEpzdTqu}EDfk@S&HW){W$LT9+c)7DSun75r`+W{|!y{=}^-|)pG;C#> zpP_jfQ6G9h=%TOB^sRnEh%0B{#g3m=9z-(HSZdm5L7aNnSs$VJ3S}rLI>rc8#cd)@(T$hmvBSssQzqy^X1kd zZ&#rBcrKUG6LqUkmhNxgXl`@qg1TkFtQ53pni&(Q!T1cS@+_d;;hIw_lwyy{XLxq} zK&iiWudqP@GF^S)4gA0MZMa8!D#5KDwOsA;JHehld?^3PApWsPF5j&9TAZWV_`a;l zAM5#Z)?myyHBgknRGtGWSx3!jrH|r(l6&5eqHd{;8^Q#9z;4v~ynxW!vVvI7aWd*` zx6`R1ZB(mUg6)lf?x>9=rk4d@xn1QSZQ3G2Ehe4^tj`Zm%{x``DA<2cC%PQ!WMr2# z7utn}f?A+`WT$vhF{9e3LUOPVWwc(g!Ig|HZxUGDXa%O1yxDP_Za_YQ(%OP025Iaf zzP5eGzk^ycL*CxRTvL%tw~UP##-}-9woD%o)Z!#~81x&+rcmcwMEZN3`mA35%eU5Y zv-?xc(dqPS7ISB}5mS$&*|aLnXhiB^5ATP3bMfl-dF{@v zvy!rct<8wy#Zu(5XdP*ev47Kd7%}Ru|GD51eO)!tpD`xdh5jj`E0wO70y>9jBB-Rc ztT&oEf$?ev+WpqLrcrlmn@>MQHdQBR6oPpIaV@@g+b$zB^%xL>vJO z9(+R{webq5?jeX&B)64XruGzZxv4Yn=zK@5t~;VP9{g+J!{Y<8X#=j5=c@k+Kv>I8 z>Hk>HT7)^k0AuPqb2Bpudk}Y&G|27odzZi+TCHTbOWqAyG|reDdX2_bwPUNcaCt1v zS{urHQKh}xKZ9aY25O3t(P?3$&s{a;IJ+tZxK0UWQ@!|+xkBRVDNu%}I4aw;g+gj6#o zjIK)(TjyCRis{X5bL)(lqXJ8#F#GrwlvJ)zPkQDp8(B$)iwy96BF4 z+bF5LDw_xzb3a;|1)Egiq(HH%<4?~;c!K^^5d%(fjYnMcHgCY)bj_dvjsA$o8o1g> z{i^^;LlA|J6+9Su*D*8eJfvhne5&9Taz<@iWpy&*ZbYUq%)&#!GU2jK=I5XnWD8A_ zfS@jI+PtVjVF=Z(ni-hT$Gxz}yT%O!Ib|hWlHMgXA0BsJ5IBuSs-ZaWyXFQOH>@`< zp;cKM?Ew>DB6tP>sTftPZkB&Of|lnqerTNhMK3i6sr-~E?T@wC$;R06gAok?3H;w- zlIVy$YHLkwxfH3kt{RP#rmt@s(oTd^T@sMWfS{s2gSBLl;_(*n9hl+7x zX1!<)H;DNkr5(FN!Yw6ZUU0O3QYFqf@dF7L+9~R@nzfQ>h^k>4&XP=aN&P_Sur}`Y zGcGZtARvGHK3Aa`>J9Za9yV)3K}z0YxbIDX{jKQ-a|}1fZ28ZohI;aE#vf!M`9YVoEc4Z=i*beITaoTD*qNh?w;<{bCB5!Fbo5 zCC|5Wz7j@Y9&XuhOzIs40&blvGEcqR-fS{ymxp!#E6o!_JeXUBM0v-cMpRduE1H;t zCVVp859Fclm1QJnSmu}UaDu#O=0ZN?8VWRWJdMz_E@X?M0|UV;RJL63VQESzOt^lSMDfe?2}F25UO27}Lihgoyn1)cZP zx56NV%;Y0xykZeAGp?R<*{N^#BOY$#dfAJmumA2E^5qmsZU~C6D91foDHM(^wGrCv*a*@`v_fewQ&< z%;TN7OGP@NE;Y7L2BKkTc@mrMGxg(6%c;n+j;P0?$DLvG zkmQ7fJb_=c?n=GBv?dO-XHCUzj$a({^xWK=5w6ze0!}&p9oF;aD{ksQts9z`VDRae zH%c>nMmu&m-X-w~Mky{WQ8UACXKHP(fwSO(4#VyJAiw1&*QTCU8% zXpFclU&oZ|@p=iHT^ffP8Idd)S(XqVB@>|7Lx-zgc!Z2Gzm90+PiHxYtZ)w+t!aS$ z@pd(0&bwrP$xQ7q#ql||*zzyeT3cmuqYzswWj|xBnCCVN@x7U80($(C7~z@v?VCU8 zId23p{gpXuQd|RB1EBKT8LgwBi+=LBDz%}2Olxe@)2%IH+#-z(MiO#~%aYF*L#_XgexQEgoaVV&x4sqO!29BcR~Hu_Un$50BKJZFnSw2WqH(FVt~vhs(BTgq_zSE{wtF>m2k?U z&gW^hpR`j%y_$WIN6bTa!3~+j%(rjhEa`Nyf=&HVkEb((KNOgTqM>) zYdE&ykK~;nL&LH=+hT-}C>l|W29el2XI%cCsY7U^{im}Dme@L%KNw^OV?20yx0$V2 zlLEI1unPRj-+?d@aR}kTm}*Qwp_(XEU+1#NnygL!P$ehR$YuQ)1O|RSd64#YL6p%7 z&N|TAh)nJR4ZVlcCWOLzk~UHtX<4U5o|^j+!zBj>QOT6FK>GaSXyHgnsQ+I}#K)#igAc7XlTFIK z#$0Ic)kr3*3deN*YR~0!A3PbaE>~0xl&5p#EI+mB1IXLsywNf(FG?zM`Xpq)IRqCF zD^QOfJ8z0FXdFdorN|gbp1?E?FlF|X+6czHk@(b)4o~Za3H^{Uh8#sW@U}TTP8@IP zsEt8No?5kH8YFCQ4+=!a+Fl3nvW32x@m0mfj#ko9mpEC1w8CxHZ327u5{+|XUjUGL5Xz}vx&O~(q)kk zQTLNtAk2>r5O*wSA{n$lW?!n1molC?Fy2nm{$w~yFxrubj^V#`;wVsUWkrq^BNC4z zz8c9q&d-l}$6aY~e67pujEPd*u_qzAukE$E0u%`Uv)c9EEvw31cy|trkysZDLH&!?hyG3jRBMdThH# z6CJhhF-qk*rnMq3fm(RaD)M|G7dc91&MvE|=^U(4*FTyxhCyvk_G@C(-f>@tHEbI4 zd*)<_`QUG*P1KEv2bH-*6{ApMSP+Y@#TUs5KX;bfxxROaW(AT8me#D#ZR(5835Y2kI2W7s zN#c1mL&G_9{V!?I7OU{?m2=G3((#Pz6zY0PyMIk?&#$ViI0bDW-sd^5NUEvoie8PU z<1EeME~TuGMCQfX^CYQ)WbGxxLFzA(XS#G_NyYYU>xX%YOI5fjuX?ipngf`5i1asI z@mU^Mk>YRMzwfnslvxr1$ z-(eTUuCY{!6`#N?_xUiy``1H~Ap!kIUtV61L#`H@yBT(oaqS_>e&g~|f06PxZVxrg z3J3snYLqIIxIRL_NtD3*ODH3jODrG4arfh7zPusg&>8)Gz==aMn>Y!!C4=&inPYR& z9KL%I`=dNHX_xDD7sOD&9CDeO?zS@ZGcb?lJBmbEaj=X(ig?zQyD4wssoFf96g_!t zdlnwKvQa}M^zyO!b=yL~NF*v2{dKP-G_t~Azcvh?KQmos0$P$`@D4<7u)5Wv3TKEn zUf_zQ|Dk$C8Ui1P({FrKtq-@#@-eP8t@H$)%0HFUy!5f#NC5T>!L~}7NiTmaJ1#<3!HiiV2G%EE6wb?~llXn3hs&j7Iye*@x361gb%Pqd$w3p+; z>M6~U@wGquyhrrpoHINS48@G!bPIhVCn75T?56CCwUsO^eHftnTRZuFYo(+1#RrGc zUZs&$I2N$q5~VbVZkjvYS=aU}NBLPzqn8A8`XY>((B|rL0p+Je2h~m%IizTGFK$Wg z!WSZWU;ckC6#B*D{@Cq@YpOrnM{VcaZ2$M&V6Wx3;i+#y1u0txgEuc;iuhJ&T>RNO z5zG-O6~;jnin8+7CGF~XuEow=|FV>`krsz=w?s%M`ijK8HytW21lPI;4o$AmwjHUA zT6M7KgIz>rxTT7 z1eX16YKW+Rvf23aMckcQ_a}aGPR{xT8(VEvfjoqT+;ZFhY;u0~_Z4~R-OV;i{>1$T z*S$a4-*7y3BX{299E~LBA2A++Fu#Ba6onJNA#Co#ZocKVPyY+0dn$HV0FE~+t_8#< z+81gAh6B^D)`qdZ5Qw4r&1G7&%5(L*di&(Bt4Apdg)gDYQOn{_k6cH|uWhUxcM?by=gYYqnTCeZ+q+bRi7y*4)xW4{W%~mOGvz3yzt!oc$U}xc+P5)#HxM^GjiH zGi1P8=rwdwV8<1+L`pyE0-4A(FP5cAG~A5jo4BiRyy_4;>5Xd@T$r}TN1Oa?bg#?H zWtx4Q`W@OFQjvC1^U}Dd2_GFB84g0b`=O3UY2S!rel1zSOY6@)e0a);n6Kb!nVpA>;5*>##ro|RdiSF-QVdiK6Z1n*YDICUFiHJPi7h@q{I zSw7@Xam))e9z!(#2a_%^F^6{qWHPAFo!19_+3lFB$V({-e0;LtxtZ17L)+()lyyaR z;2P-IhGig;J2vIZGw1(q>#brh|0|u4u3SaRE+-MY))m?@azaTl)To8D{EK0vgy+Qb zhs%6>d(M5>{86EJ-~Jn^zqjv$jo`?L4XJtjJuG@)yRVOYpI!H(gMOuzKEAz)lh&#$)Vu`#ZiV5I7X3q#0YeZ~XshB?A*6#K#N zgqEn^J({Di{7N$l-#?axU%KXdseiaLIBerb_^_SB}zhV5X+7mB>9v!2nLzow%eY9NG*zsVW7{bp2 zo4sC9JEr)zuh%@Ud_EZy7Ikp*>rWx0)irk3mN}gNO}_ZlOV*J0iP-9ClzRzhWe~S?K4Dia2~|^`xd)xsDljF;JD$fKwjl_Om}w=R?O5Pi}n) zonfw-xB(mwQC_^07nGd$+c)D8As2i4dqu1?$aBYP{?KSZ*eFjEtt~0|fvPM5r7hQ$ zZxC7!id`(~oh9~F`o5h`vntbv!Q^M76YiU@l^^r=GFYk?FJC*zbUJzQZnDw`TD53T zSPHRRU{VtZtvRLXohV8Yt@&GmscN)Ni9u%Mb-$VYy5ObYc3pMwBE!`|+U#`w^u`x8 zgNoo6zP_@#Ub$c-5d?8BSZb(Lvn{obXAL*7*pJVGQI^#IjnoPf*Td6$#VQcUy&*R6 zgzEC13U>l zlKsS;4(03*4?Ae&pYFPfFRbk30>|eY+#3|YyDn4dsO41gOX}+p_;12QM+s^50l$-bo8V`8f5*rWUTA;B@bIwmUYj+KnO>6}QK!%PC) zypb;)Wu=P8SD0OzFx=UZWOc!k)WSP{*s2sh$-K?If?uj#swvTK)^CqZJzDizh{Zzo z+Cp%qPOEnyA2BPJi&iAscGY4G95GzLSnxK~=eV+&lQ4W|uW@73M)#qCLyhA{1%BQi zOD}IP%6*nqHxueU$?Eew$D#~uxMLV>^&gn5Wd7)ILD8sXJ`mDXkAsMBl#_o_LtGbX z7pis+Z}i$ozXkfgeYLBHkDXn)tUAB>=~W>(7rs*^gs(eS;^qiy9L z)M_Av;HGY%B@YEf5@FE3T4jD3?GNpM_;W|O-TbiS{m_BW_7#ZL?y6HwtfM!|fs(TD zc}U-VF5>o%#J1cv1A$C%eH&P_Z~2^19}jNP&)mznK0zaOMdGQ)Kz<>8hwuA2bfa%K zgjNw7ToSPx{R2Pjy&vOq|2}tBE$*pD7+5wo1p5wrA@zpD-!tX{2ZDdmYRq76Y2U!F zPl%6z42J*L;69aT94}!nj%8@{$2%x1A<}2J?MegtnoZ5I^-b}UskL^)a?ui*0R2a` z_nqP8#NWBE$`4Jwd@S71H}Es(@XtpI`f_Z#E=NtY{d2;rZibM5>+dr%&9TtHiSlY} zHPNrHbvx<@0e5YO&}eZ>|J%CJC{*etjzEG>TFkd-UjnGGIm{IX-qSafVc+sUc1Sw@s0F-s%2TR1M^wI7jP9bCW&nB5K~{rBI4J`ho}dkr zTrq8Dp>au?eiN*hpH%znu0`P<@0lC7NwUoL`aEtkElLlyJy&z?`s~=-1V3H>ABrH~ zu~{0ujqTMpz-EbNg*Tw(Vo>;8zv+zYjJ*D`_`YY6U8Q$KqpfJhWTv$l`(V$GIlHWZvJB=4 z(CBK)q8~{`l4dY;XFhQ<@a?Qgaa0ADr8D$_uZy^pJ2-fx+viMm1*eyw`)NPM!z2$t z4#xU}&f)XmnNSr^$Stvw7)rmW=B8X?Ffzoyab|EXQ1+LCM^L9+6lBaaooG$WY27RI z!wAKQ_TBsCqtri>`CTMXGq%>apQ$7j1{#<8=s_#k@V=D&5)15d0Kx@~f(pY6j3->7 z?61>}Zu##mx$itRGkoMS=~L=mIE1_a?(&ZUEk0`MWUYn3*fQIcY`__!R`X7A-w~mm%gsoYn1V3%M$Gfvg>N~rk zPF5E+;B4mT5||n-WxEq4pY_X_+IOh_^_-9K6sGFX2jc>y#(?YbYMjHGDsOs%TjbO9 z0I585E1*X|J(TRyH94{e2m%@KfBmA`g7mwuw!*SQO2z90q@(4DjbV#p~}ML zbY@U2BKqmXChV6H-N_3~!UMD{FRB@M?xL^6zV*|+;HKHvBFsWhzg!mqS7R6 zZpNIC44{e52b$co;LSm?x`3?1PhkO*tMCgVn|JTVxWrRz*IdW6umW4vdQ#w_gmjXzffC7j_Kd&i(U*CJzkq^Sz z;LcJ|1xuu(l&8F@L1Ef0Xn;Z$Q1)J+?f(wTh*HH`No1)ENASyDTx_NE#_x{<0LwhN z$Rw3W2Q4Zm=zV|^xs!E>8icx&hF&VrM5~gplE)Tk4Ep2NqHom+|IQM^`@hb`n;f%I z6o&Z7b&*&dy}8Bxopp^K=Y^K&%RDRg9*7%X)(5h)Ln??E%Rpy5c zRbU~gt;7w*7&``>UGd{}k_Lw^i5oL4qHXtBWkq*iN%w89(o!J-04-Ot7nma48`UNm z%wmMP^`pfSu|eI)Pc$XR0`+^-n!==74KiM(;0qbJ`Ag47nrL%z-VV$WEaP2P%$!0S z1VMMG?5Urr)xAb}f@V(-wB|c3>!4DC1pQ*D$KPSHWv824lW6;q)+-qafjHXk2+;8U zTDuLTxY37rsA=0#N*=Y~gOS>tUoE4)_j)lY{gGnUq5kOrqY1EJ0ID8A^Ug;=d`o7g zfz-A;7N%;I+A!N}L5HQ=@&8vxr{EwXVIWSX(_KbOQ#11-WwI;>z6GXkx$UXXb-bgd zXhkxem#1-pdA3}0jbMDqur%g}!`;$h=OdV`^C$w2*dQ@S!lE=hiwN41R;*S%BYEUr z^Vo)B!tuTyF%~Cb9X(ZtsjsCA7&t_8(t4D1M$(xM2ruwZ=pujc1BK8d*ii4^?Cfsvx>^i)Ee${uE}9 zw%~EUEtwTZw8#b3GkmELJgD7@(lJQ9m|wr@aowg@z+Tw4u|7b z)8DI%5ywFH`GRo#GfBU^EBp}V7|hky_L=0l8b>q5p_-}#OWox?Iq8&`1jNqqw5}@N0Uj6Ao^;;(U8T1wKI z6NjjLu$-`lj^c_?(m7xtEoz;?6-O8oK$q!(JTWRlAu?fAM)afy@n2luKda^^1{O3g z!h{FSfo21!SzT9y&%3~gN$btcFx3|{GCDDgN@(1VL{d))rzaWlQO?EFhKYJEo}|cf=2;KsVO&%KI(0vm znbw_DJrRrlfSR*3Zk(6o{ZKNUoj2mA4YBNz=`Nk#(*km~IHe9U8YV$HSPGp03$c8N zg_>TjGQwX~DtjSxgSjDoHM`?pjqIPfU`r9L^7Z&u zG4eXjK#n(BG4SWb-T$kjk1tPTq`3>R#G|s9RJ2A;bEIGNJzzaC3sOrv0`o|Q*q8aS zsBw$LWz?3XzC4_INv*jpgSt#2dg>9Yd)yZG2>LV?1FdqzDHVvGSIP(_u4%9VwB(Ex za$iZI#kMo&sp}8qMMHBMp4+U3-5#d3`5$$t7j$g|!BfE>4}h`5UdMKylR)VP^QE(| z@HPoiYQ8y&hA(yejYDBiZ#q~JW@ld*x|R6au%3{5cG;yUunwK*Pwr5BvCC1K z&edSV~7JX&vB_ zfPnsvC=295$y+hF9n<`)Cj?x#05mq0$?sP+J`rtd{tAxPJOtsj^}-6ZkDx|4iu zD*Nm1x6T@KvM`@$_LG^KUUN0VPYP;93BRh?9JDc(BMEIi2Fb_?`A= zfE&dvrszBDtTBkHq_X8BOPD)M8XLqCx7h`Oa~aHQG_hrVb);n~v%uUE^x(1(9f<1_a1h*#&oeWB%% z{UK3xGiMTdtE4un1``pQZwY~n&r@mj9>k-@G&QnwW!`E!kwtL{m^&%ylAvW>R6L71 zHhk~C&OKx{QdHbWJeiVIC`88Cq#VK#Bq&3?3#bOQMT-%Dxrrl~Y!jA~1OF;ACBYOgL`!5XX7cP*2Dz>#${f-&p#P&Ag5_*wpsYGd7A$p!e-(4uf4LT+=XKkHDC6- z?m}bI2qTeZ@Gl7A8qJqjY>yewywNRU#sV!(*@m{@dmDS4CB-g!%PNZ%ml%F-F(aVA zqCoNti3H~*zgrwZNk!+s3OlE6!(iL#9&bl&1pV3|3+0VQohmksogCW(WF<<8|bOjy+H6G_N`S)j{mp$>KjRzdD-=Sua2h zzf)zWTz?N+j9i`fKfuDQv>ify*u5CoANX{`A%`Ih5l+KBhF)}5FLFNhHg+WZ@B-5s zPW-CHVzD%Rnwnt+PM?pp#nD;RAwR7iJ%$_3{yb$SrpC}5_|~>J*1R45T+R*qc4tQI zJNm!U@j)5;%)JWH`uL9^`6yRKC?my)1GA}Fs(QMnV zEX~`l#b2pIr>{s%GElgo7G!F6{#$i}f^bTyZ+Nb<*7#{H9xuN#+vLK?6;Ix%w^K_0 z+F@5R8TbkE9Ln{w@bau9W5;iY{`&cUhtkKI&%=IhCd^%cB}-9_crKI4^rpQA|e(cRqx#(V2JL%hO5U8X+x8cyn8s+}#4IN?Cc!^!<~l=X>r&agn^ zZ%j*44U+7d5x$UWbI06AOv-HFBPEt|n%QsM(v5}OVZP#$OW=^tyWx2aZn4(9fjAJ1 zQLum!GPi}KZ|~Uw8~{-!GJ%kLzAfzDKKA?0-jaM~{^X0#p|6I!`^M|#o1d0LG4(7R zP!2R!^izjgnPn!+o^L>bjAjk09Aw+1TA4=B9$=It;#-@MN|%)DF0<%a4amNO_5uJc zWIhL4>8jaey8~B--JKLCMFBdfJuNvSyTuuUSj4^lFg&)Q9Zz^5Wm#i9&R+^J6Ng#+ zPF`nZ#^rGmCKQ}VLug%%L2}(})pfYIE^X+`YK7vMO(gOel6mccb(c!Ur!059VF7k@ zZ!mh8Y2=xYFuN8Zu&Gdlpkmh<#Zy2LmDGNR9n*YHlETCnrW?ejE|#uz{C-y<*jLN# zp;c0lX8r<{jHtFtCX*quBy0_F^Xsi)G@|(oeYxyO|IxBeH!dP}pQq{r>(AQVoHM>; zjwT1P*6qzVJdcnPuHZtd8Rv+TS@`2`EihWp#6xwVXe3|x7Kp22eI)p3&dBh-ljlpj ztE0)E?`ftXRC_jw^tw{x!#ODYC<~mmeLfc}QXZVt+CKeQ%EK})yx~deLXv(HLrtCB_3XPEM(O$FQbRnId|{*{q*UjL~`OLt)23=CPsOX*+fic znz~slISrNjR{Qh7!DVsqiQxMj-y81^<+xP72roY7;on_)f9w58-)^?OI^;w8o~qir zKPSrw0ok*$qu0X^ThOkA_z=9wd_Y=_i=OskwFI z<%0w30~5}<`W-3>k%cV-`Q(B0R8)m+lj6V-k;hH5wA4NnhyMC|?FR3f1*$JH-W?nNZT`yox)9`Rk3|(j2CrjX0XKsckG_^jAHkuqPMjE^i_6?_L$|PI+6YYz zIDDnXQpJ7;?e1z<7a2Qe*D>a&9b$$vo6cn0|H;3#1KP9WYWGy|y1xHTv|jsQ-rI(u zyjzQIkRq8p#zQP)5Q;c#ZNuo{cQ6TqsY3PRX1lk}%?8x(+5HK9W14$V_3G$*+0~uG zV9ltye}b%F-!Qfl-vojOq}OL?5G3)7;Z1i;hFHm0clzr5_j!2TnpEfep0!Sq_^bAE zpX15w*g`_p&BYgT&ItD`m4B|dxzzd6&3^}%#u{c%m*<}8Q0H&qpY2M-#XOh!-p>sj zUT$_47<7X6?dy*4b1w-t`Tb3oQ}<`5hnKzN2!$P1_ujv8NzI$;Bu|rf&(=S-&eNj+ zf(AN&Xe>r*Phy!gfy{|?lolWtozr_;%t0(mL?&&Afc?MhK zVvdsA#I*F&6akd_s(rt&Q1jQm9N{c#-DDzB8F)^0aG?D$I1#>cjM4N|gr#sEZC1QA zT5fw{u~+Ju>vj7GZTsRK7dbcA(kH_Day4WXLa|Bd3o6m>v3dMk)Wwma)j=GBnKo5| zNUOGOdcib{oqeZc+`!%_4T|9qHY@8(inUh|E0#W-h`P;RB}jf3IdHEIAewK}k&26czI61!Ww@ts#lfN}zNYlD4K`G8l0 zC9*Pozj0k>1!93VrfK?$&e6YZv${-WeWm(7L$SFeU-@cRpF58-z$~-m>Z23)RcQAl z=-p$P;>mX}H0g3){aPizi3-!clk$9T-YX621LSYmH7ZdwFfpg z4mWNOE_l?CZl6eEdFg%S)Q#8;&_NZ8j@_osZ5aGTyJyIL`IQ61fbghUs-QNz;O>;$ zufjhMj-KV5u_IB3q6O^8ZBOq#6%2J2t#bPgd-8|RPpmB0jJyCwz6T2^1V?#yp)X=& zL~A1t4D@)s_glyD;gW0jIrkoseeQAn#&#yiLWvI_{pD`4A6`pT^CIJXxM2(Gu!b-UKY{akf( z+v?%Tp7k0R+$#{gmY~N36I?8@Wfj_oDiEx+UbScN)|Py7=#yCf$@J-_>af4AQbbPi z_umxy_VqQE5PQCy?UnD_X7{0_^g(vqaYIj2_zq7gqrPXwI5dnGMDEJ+J$GFH8Ojvzn72I@T{wa0N;4TyZwF;ytQT z3s$ZqwxUj%@*O6T{8s6+PDp)CU?G}n@||MWVmDf#A^SkpFy@dMb!g?C9rePn;l*lP z#Xn=XzWGBBH;%LW<;EqlDE-x-?=TbS+z|7Q?=0Af^@oig`wXIt`c=?HW%SKz#=~Om z?bDo&5usfaYWcv}{YTkBIq{sE<+lg+wW^lX3DymId8t*4nACsH5{(ab9Ecujb}&Yy zHqUF1m^o4+rzVeAlM9?cnT&Gls*_WgIepMT}V$lI%(ePiu?xVllvwk_4= zS$?6c`_&Ja*j!Dz;b!9Mr`p>GYLv`d^)88S+KVch zbaj8p4U65*3;ZBzkJ|FP(@c?9lqJO{l!pd@Z|tjzin?h zc{Qk^|I0FHJaMl6@$}wsm&AXrdwc#XzG-Ii*xVdRnRg>k@=HN<^C1s{qoM_MqAR0f z@r=J+Tu2?8Y8%)M(A;gFqs#>2r|k+YhP+2GO*Q_Mtlw+wLRH!~d_16u(3-Q2eB(+b zf^Pk3f?}=B{SjBRlGwa=ma$G1eQTJD=#BlksZnRidVDYd)1DS)D0v=|eSTo>WLxlM zR`Yq0HCOxy_vSlHaYAnknRHNrc$nVDYoM=-bsf6NB(WfS74@CJ$1ohS5o#XsZmB0% zUa1bGl~c`PLymOr7kukJ64ck68i&m8-&Ecend!9j*%u1kF^}Bgx$%cG?0j}Jbw@^o zc|`J!1@p2@CodY}FCj;!!h=qDzO}O`A@A|ZIasKebwIoNg~r!~g(zOve3BLSUERZX zhFy$E?Flez-tUam=>wixnOiaHcDYVN^z&rQlt~uC>be6hf^RuuSZroPKVW_}J88Ew z9}8s)M{z3_o}vl|sBO}>`^bvR0}~3WtB8_+(1d2}g+Lu%&s30g#*1Ym;T|VMLX@=Y zQiD+?t#ocipxUs8cC@oh)@6z_5V~$n3SSuO&hq@5dIEt$c6$I2ng{{Rk5iKV;z8@! z8ttq$M?C!<_8@iWBb7bpwhGn)^cPDe5Yw~lsd-@B%s7M-S5P@%-~Q*GSTYA$YQw1| zzi9|u7UWQ5Us@d+2Cgd{&9LveL~UMS>?w%ZkmfwFz$&Qhkr#v7e6+*Opv^4wUHl!(ObP*cHY`K&WxaCgWq4>a= z@x{R1^DV-o0A^wE(9TLRZ)QHA*tqkNGY~@F`8UYMwVs+}P*UggCrJv0Hh~HdeV`aO z;0(lkCtXHHWIJgBZz5yl^PDax>kDXy#~ek>19O4GuGR^(lolt=oNSOAt*w@VipTkJ zijD+EoE6oc$JTDkUa3DoZFKmn{gd83@d`2{#bbPO7!os$Wg3g^nl+aq%Di{GOw+G< zd~F;90$s4EoU)&D1{46U1^g0A^^)MRSe&xGewUJGti!g+y4p5*)?8n*%vy!|o8 zCFy3M%_h|F*r5e(q9Ldz;^gf<**tg&NmRZQuKh{TDo)TmHQeKSGP2=3~%)eL%b$#wjTg6n6CMggPi)@b!E|L1CB*)`;cmV8ttuA zfS&mP3=gefu<=xWfte<5EKma-_hO7QjJnf#4@f8z8@|Jms@WdYy)WZQm@)<&{x>-7tgwY z(;21(uRKkP@s*@(0Zz(B0(;PmM3gt>N}7vmcT9&Z0Y$WByaN8IF3YCk>x(~{U|Nuo zpf1Ij@0i@eTk{s1M}tTVDw5POEwb1O&$!p@LPl_5q)EeW*eAwe<9SO`W-I@dv&rag ze?IH{r5Qj$fb{AC#7`J%I|eLRGp%N72Q|dkcEB($I_B4Y?ubK1wwICW;-EDWjH!d^ zI5ud@F_LjDlb(E;mdfODu05r;G>lMjUwQG@Jgw=3xMrNGX*j4Ld1eJ`ZIHD(H{%zq z0v(C*;z(J>$%xdf#f^=YETLr`9-v@1TKNMe8Ou~!lJIVR$%S&WS2fv6p& zBgiv%l+RI|-bz%)Dgcur3JOesO$D5dw&cJlXQ8cyDkE`7OI6PmAb!#oI7-+zS%D z=abKroX-n{(E}!h^&S-T+I#GM&?%j^Z;7!{xC=cRdAr@^dYr_%Y^_(+7J16u8> zvH$mmiI|d{*$+SQ`LAZzzy%j*1M-=my}S2{)%*wp!fZjpbY~_wLYJPN^B9?A&Drsg zD+MHzsS!pRZ60h!nt7}dbI1dTa=pPW(GmS|r+2Iw|FK&*?xAHpH0^<{jgRKD=L`vp zZl9KimXFrpa`0YDGcu$s0_6b`#PUaeyDPOeL$_k3G?xU8W$(BAspn`n5~DV=hf25X zX?037w+UoQ=cd(iFWnSmh~_ZeJwVIVz`k{})Eq|ct<1X)eD+m9;?UhkgF!Z=1%`)X zBaPVJLf8e8md>B%%O?-{b*#LbAZ44)s%>dtkUrTPBKSwB)9VM+h@;Yu>n`!rqaH{} zK~bx$(HUwP!`9)L6+8WkKk-f?2n^OMegS{vlpXE&=+XTOzJ&STti)-4KPcDjK=UY! zG~3Z7?c^5pQz`g9yB!!`qIlOH8jh^`asfe!gIq|HBEgzEl`;NDKQZy@N5kYn&Oo71 zAoM>1UMXS>gxdKHL#d;`!ktI(F=bvr1-_CtmKq@()`a4RA{X z#=vcT;#>VXdU{QYvlH`&S@Fmzp=~x3-}XvkfosmJa)z@HfHf!z+VAAY4h5r-_JVJ4 zFATi4*jiNkgAr1LRcgldh>B#jGtX9K`L{8G4;(na^fvP~YxUi5hnr%Q#uMxUddv3# z7U2w$voYw8-`o#Mv>yM8Sh%zkTH0qTWR!&xZ=+(wn});BGqzbu%OCwjxuL zz}=xsgsia6BobeXQWcC`$OzEZBv9=Mg|y~>w*RL8VEaTk)G4pX5fvwi@P4DB&<*|* z<~pgctetuv=j#kNLt}W>Dl5v{=53xWvi5kLAxPd1gGC`JRQ!L_jEDcMYb&YVu1MH9 zG5L?^b!7^b5eIGwxPQLC;)OOwB&`lT9t*;Rx4lp8KrUN01KevCltP>E71wJS4 zg6>>ekE|J9v2gQc0reR8heFP<1sWv!LTOjYaZe#C9~_}iX{Ew@eY^q~NzrwQNg*eI z4A4fCV)V$Y8aZQp%d0SfEgAJ7q}78t%}p7+9yx*Hv)zHU)Q0l#qbuB8MtgvjnoKvs z^Q6zmHqzd@WvD0l@^%kS>DJBT71YbJ&^>-Zvz65ocQZU&%y}1?6psusej*AFDRsAkO?8SckdQueZGM^5 z4CGud&2nzXXlI(2u-&wkaOf9ix|xl1NJ;}`)t8T52;h)10$&x?J3|8oBn9}XwqbvV zy7glM;RIQCg+EO(bC)jDwtl|eKG7I( z;{Gr5th=2`4jk>ipua|cE~~D~dDM|x_luE#qI~+)#$o-jJVDbpkE*bY>Z%2oU`-L9 zHc$Fj{P(##z0GSDvL~O(xg8xHPxP;>pJY~ z3^ZP#nuoitpa$`87hPbCL}+~`yhhfEIX01)d0?bSfqO4$RI`C-eD6zO>EK?RZeDal zbyu4A9oG6G(O;2FtE;-$6}eXbxA?*?S9ctJ1dk&;Y_#eAr1jDI_{|Wh(l4zbt3p>l zupun0gFX%M&DE`ZX%?6TFbNr8*OWH{d$g^I3VJh1lj2xcPby!QL2n!$)Th0`=U*#kbUf_Qw zU6jjB7=LeWqw43l=`0O+7B}%^%6{iowX=-grehdq4F4=TfXw7wr8R)oJT{B4t-xV? zF_z1>hPyF|-aU(bMoSEv4T+*do78HIUM*uJBkr)Qpj-SpKi*?=Up)nbR(itlgmtq;aL}6JSP`>!vqU=;W70mHoP4 z?br>_pjl=-xOGR7ByHO#>ZAm4Gbyg{>RFdS(utP{Hhb0{)>%{6VmK<|ha#(J+Cd07Um|Dzi!{%*= z_x-!>@9!TEfAD7S>vdh%>-Bs+U(e^~;6mF3D>HB#tP?WH1S#vv75Gd%n7Z5PGpV($ zDpPaCm%KlfW;z8XtUJ5Bz(o_88T7{Nh>yh+OdSm;1DodgfqRh!SPu?|&SAJm`ted0 zCIwrexEwnAy6XI0>CezBRitB88dc$J`8~rCoLNq8DyLIexkxiMkIf*8N=R_sv?ROY zf8RVXtT$t{@Xl#&u~W$S%CjoeG`!Qi0}O6MMvOyS3E%A5mZ0w{0*ohah23d+YJLn0 ze+}%#eC?*j&pN=i%L2IL*1PI<#>~HN5^P!IMNUtlv|(>`%mdy5z08ef`DzM{ZHj&J z+8JyzOdV_m$Sr%f`jK1>y%-EI0PB9&1CV9Rf@fF2AejO$ob@QSwbXxs7tJfN~zmTb7ga%qyE7 zDT{rsH)GN&gitJPn)~|5VWfVMD*@kBElt*Dokv*bpNrJ)>-Z0JabiuN)#vWH489Sf zon>dLh$^9(kf#UG8fc%BW<7c3z&uMJ?*A=`(wz4-GM_4Dnfq?$J$%M|pcx#Ts1F}f zXWIqDRBCtJQ8ZBLbLKj1x_LF60OSD*7MP&7+w-ceEcRmWqH)DKMquuh>Q|@T#ufYh zufE<@U@(<<_Ck=mI%!Qi2S9}J&jz`g6|KTdQNy-L#7}BO61+0VTn>uV^dQxpBL#wG z_64a-G@7kw)ayb;py6l07Z^%90y7J>Cj#+5wPe)u8;N9h09lC72GJ>3{L<+`Y>pWv zcOaFeP*H%@!n)bE(YVogv@0cty2}8Il%qskEZrd(+^)G?RG_xzj$gI-u08K=V)kdH z$}AekGPM98I*ldnzM~V){MjajrX^$e{{vBss+6|?NPAvIY1*l|s+W_Qt9Bza0qNDu z<+C65^6`BZN%PnUm0@}|eH?4|6$x#A>7;Q0<$@6hUZX1v2uAB@!QGuhElCXK6(4ZC zA2{IEQ8biSJJfMaOKf{^{~8cniN%X%X@8PC>;6xZzoX7b9<02nSMV5=xxE2B5fx$2>zpmISKe5_3;~*FedjUw3{<%{8VDJM z$&=w!y19#at=+Bb)c<}x>$(fnqxKA{j8@wbrWpr>rqV|9Im<*I=~!hMCwBC~pd@LG zd~ZNWA3M#A_{O(QQKVv*$WYWxK4Rl9c0FmQ|W#M z+IqF(IdC^KBuMiOa@Zx#!n=vndlZ!o4G$@CwN;}rTVlqKKPFEem{u2wV4cVxK|kb; znk{9}pCDDirt4$^a;5nT%9x&e1jY78aHhX$WU|>`SW#}a4ttTuXLFpGR}n{9V1l|q zG2EI+aPt6lV&F1W58~KwP#hP~XpEnbDwc&KBR4+GwMa)Dpqy4~LoS;e8D!{iL2$(C4~50J>_E#Cp6YV$^zf8B%5z^*TMFLNQ%MTmsW9|)!S)5a{-u= z%E1Z>-zF!iv2aUOtw)>166pI?Z^c4vwp}Zx4lsvORdChJ_%($bA27Z^{2lGNO}R{@kpFT6ZAcPZ!XH?;F8T#vqLuiXrZQahvjGJ{JZNNuX% zJSPKMxLgGXnVP$dFgxzpLFg(a=g94Ub%L1viHE)sv%*JOJ}Db1D}T&Oo}k=7)ph`U zJe5ZYZTJYcFw36OR2PM)+uy0gh0Mp<^;EOO#X7)8Q{bNqxO}vxF_?URA{8`EX=C^{ ztY%p*Y`7j81h4w4_Al6y%*L+328V+YA^jQ30^&kBvPB%e0z$Q5{_LsPQt!1#E^1;g z+VkpkA0auAJK?kgcC4;Vdi*QkR`7=u$LxKRR@*2i$w6sf1(BcGh_M3P0nv}l^SMl% zZ3CET29GVWAxTK?^%Shwr%5w%2i^@@t{=g08={#FZJ{`uN^M=!} zlmE9zXdXRslR0d2_#`n%`_VRr+f^>r4}JL7JY(#{&CxUVe}7y}I4ba;u>+vyZ|(aE zB=42dO8blw8s^{l5Q}uQ%f{$oY#U^OPm6IQYmvy)tm1LipOriEdU|Pvr>`t~*p(@E z7$B7~p8eeJ^r)V%m>SoobMdWgd~G=Qh~(6{$ggA4ZW6$C1S569${eUPQf3S$q-N#c zIG!2Jv-pLWC7Q!fY1r^v27iBgv%SVuhN%@UDtC$9C$Z!EX87lN1?W5KmDVRYR6A`6 ziTb_>KW72Xu24#2-_RB<6B`CfPuj5gO16Vcjl6h~SkHRLeJu=*F z&FLzi;ditf7AUH}F><))!{zKxMRWRbvp!a>^TM`k6B%f1(V8(%`!7aSILlML@5gq; zPiTf^qCh=DU!Ii$il!IZ#hoTfezubL^0?KMJ=gj!@YEFctw8vt&jE3Q6c7cCq)EV0 zz%IkgBdo{vCt?TmF-{P+b?6V$VSI)})={@(XjyMLdc&W`J1}b?vHJ8C-4plXKZQPX z7;vn4*%&J-YyMZ~wIkTa$ltTceY4=Ip8lZ<#x&&}7>xm3?EGoI!W@SdPff%6x*+KO zmkTeZtIa}a6`9OMM+6yHu*>V>1t`elmAny3$zi10#z02LEY^oFh8$|I_>kZCdhPMJ zEZ=U^)Ag|p|K`~|?2$cEfKPLO=|uj<4NEkifR$^}!^H`c_Q2c@03>sm$BYsC6JUe% z!V50f^p?FkO>X2HZy=$LcE^0OP8B+(n)q&{B{;s?SISJiYyJ2fzba{g%?G#Z=B58_ zs~-pC-cI+;e-Q5_ zTv4NB$Jvmb^fN%ia4n29nm)#cxD=|F;|>FHz^Q4V4fsyu*6nT@LJz52U9h3seY+}l zhP^+M_c^AbD481h!)i%bRGNF!`HAU+PUNo5<&;V`lEuijQ(`xKdG5C z>phTl1mfz&hV22tV~tA5fk4{NFlI@*at|M2HsuO>On?K7U(R3wW+)+GAN zB?yfLAob~Sb1{?&x%z5Aew-}4(KJC+#LpJ9Kj~yD4LF5iI${d2Gg zHm_a6Z(u9SU4Q~ZdgH9noQ$KUzZg|0$3tg9FNF>QbsK~LUwxsaCI5{@mKCMTojhdN zbfCA$U+lORc?U*yx;u_|j^L4m_%GxQ4b@epGEs*6MS92U2Aa@(b65$p;_xq@TT;u1 z-xl1qxG)GbIerd~Rp<3rRfUq^{T)Dv<&es5&&q?(RABqyyUuBe<+XE^fHc5H2ZRH$ zc+bjK0={|5D;r)@K$F`**WD;==1nrQ9rL4SEajZo@!u zvjNDhSj?NaDRDN%cC#!=l*~Gm%Ksr};pKW&WadkwEgUnW%C|0ePW*akJ)Uc6Sbep^gr1h6_sr_8&5Hx+h%W(Po(gTx5T5w^uprL|Af4oka}u zdbdb!F*zD6#CmWHHI@CVbN-)AEX`&lQbbdcdknW-ceVyC8~m%?Mx97c_H(nO#2{`; zYJLzJ0V)9l3)jTB)}4EEDjpP94A%DBkSF=FgELmz356tC z!nx}KDty7k=K{E%!qyRVbEO7XY1gqy=pR>mJ>ktCQ_4LS1)ead;*o=jWjp zf2SeP|9{dWR`1YGJy2XKFsb}I5ywrP5uHiP(CDayl?IpHg(emapET^b-}*nj@Ym>? z>6y`J*80@yvu1EGknw3vR44D%HzNUy8GQ{}1rst#LQkpCYk0$z^+Q?sUn-p&XA7D# z4TVgMh)M5F)iBv}nzsqcQ8Frf+uQ|U0A_$d*QgTBVzjQuLdg%gJz?NueE{k+kIz!& zfG5ud<4n-`R0&LZuyLmlIJ5~+?Uqcl8P(xYP!?CA3bz^+^r41Thn?0LT)69H@`HSY z6Uj3D4T2~yb{lIDeRBf-zo_jbtgfaeVq5CTdZC#6cR&c~*sQpCV54i{ z_migvhQ{3zV!{LSl=0Vo#7#!?HQ+MfWJg6(xg3R173AyNWDjt@GBMJ;X@{TUj-yO_(t$ zyyj(Dg7h;)SPW^M9Z2?4*ejehcOj*c_b%X)q>Cs0B?(i`D|jBGsWux;63Wq=&^Q-U z44qrhFse{}X8{^~B78sCEJmb90(rfeS^T%e3ybkwP=;k8@z1__xvEm42o6_-+ylOS)9Y8 zk&}>OYT|jWsBo}yK>2-0n`q-WQQYccYH6*jt9MqOe^wyK{`Dj?x$53N*16v}_nAg> zd(MkO7iXXuX+dEC#`f04PA^l*=NS<;Fj2ctShP8|O2Hv#w736qR4K+r%e@N+XV&(A z^l%n)Q?~DPM#U5)8cb($pApY|A#Q|<+Osic5R@;nLh6qX&ZjjMh)VQXucCCFtj?;U z7MUlDS-awB5&9Of@^sx{>z3^vD0x^NIZ2Q_?2AXdok(c2&Ybu41@REqH|gX%R+Q@= z{yQHf8ky|8|XWI(Ze`-C){PH}BO+066lRvY}c=NKO8!qaIg_?PkQ1`Ilc-SKM@2i|e($I%>Ca+p5oy-6mJm#Qu0Q zR4Qfzutn6k$dUm*n>a6LMq&9HO52PdUPT5FqN@r>;`6h5Ai7A9-u5HuO=D-?^p4# z|1B_XzGc`r4Un&p&1?A0+&eZ#$7FHoB)K8l@_6U_jd`0K+uzZajm0M3Jg;;|@tc{q8mEO%;|4BN#;xh-ndq(LoP#pp#T@k}LO?6f zv!LmYD^aUC$3Prhg6x`x(AwA6Y&6EN*>v`E=&5IJv+E%!+7&9cbw5H-T{UWp41ary z5Vm~eqW9=7^9Li0zrOQCFU9?Cb9USB$JB@~Rw})D(+vYE+UxD+uW!09Z^S%vVRy$! z3wlh>gHfJ*QFg&+ieLU6jg2-Be7<33pQo}88kFSb08|M1nJHK^M}&vPpW&J-)|-#y`71Re2Dusap? zHlnh(-R$0v*21@YxxY@$iN7;&0kH4lZ#zyix7ZXH7Gw`POjTx!evB7V4;a2y&!Pfp zqeoxtGmDiL&DUjqe$kQxw8kUHW;0*O%ytBtciH@WINP#j zpWI5R{201g-@N=F+k9-{kFo{-6b};XDk@YVqNI@0(ZiidV)BVA3Kgfmny6?W7y6Kkw9B-rgtgek;q^wy)kKMD+b#)H|`E_xHn_ zfHJXQn>MGMcI#iAO4^rte->s#nLJ!$G&?-_s0BYjwiF;&tuT$ygEbZWgRP%zp6^Fc(z@<=gzEG_quA|T_%=Q z508xlg(zs#qlt6s#hQ(>N3DPiFN{l<(ZArAovV8Kd9|@BkXb_Dx3-cntfLRH21Jak z_sKf~^QdcBHl6NU{G;Xd5+w53u0}`kprf>S_fKx@p!g$P`{B^g-~-;N`UaADaeW=T zY^w*lRGJy(qF^0Jl=oh@&rk8NtRe%erg5|j!jwV92H|;JvJ28W(X4v9WUBzH*q3@fJoW9T9jC?X5A=-X;G@JP-WX)w{{xk3TeKBFGj)Pm}#x0^p;psrU$Ey0e!|1`s`87XrPaL}9{n{(PX#)qw zxNkO9)%WH}$d4vVa>q!Cs1twW=6uz-&cGBL{mPlgF3w-a{%h7`yG9p8=gq|{pKELW z)ww|FYj374s9USvuL(b?TEb24A=xi#WJpMuKxzmj z&(sneajT)Yzt04mb`8uiQx(=Y{+=IX{0&u((5y~}^~2RRnlp0xX9|^8Ax$B#(F8)I z1bQE#z0sAMM&1;NzwDn^l3qlh;!;Nb)$x>VeEVV${q6SqvBZ?MOZ~=QSMVM+67P?I;ZrwJ3avFC{ zOq!8!nTUK@=!ma1yx2v(5~4NJ%B*k1;0BOioGjL9%iOmmfU&hy-)c@>KoPSQWq9IA zTF30o$yl6We}Dgvhbbo{GmPawe&@A}b{OnPBsFvPtetgbND|aezbR`l>&Wa=tXAZb zKH_D_Ult`*CPQhm$)B;2C4>M$M+&bEOm7^_iK*mV>@42%^Eqw8f7V~V_FZhK``>AA zt$OAj6)L8uBw?{N8#^YS71z{^7l+1@6dK%HT@lxMM$8IKG$f__C2Is(bXpJ#)vc1} z+(lzfqAIHzizO|LLRkk^`p4%U01w^HhG|77uep0Ug#qa%g-$Q?VXQSsdiGYYk zrU@uua;H?3ZwO>0*l2=aibQ@@yj2~9p({YO^5s9Xtdi9*6W=ZaBXAlDz#4~lx=d~Z z3}LZG8_g>;lNV6f7WK|j*4RFTnOe~(roqf>&mwoK$jo>?6u^Go*L2~6P81@ND#nij zoDN|!4bHxI+J;2}%9l1-I0~1_G;~8=BO%i6uOc!cAs>b1r`tCsTVbD+6bP5aP`o4~5iW$T~@&Z?*Oqy97y-R77lMcN`(qFZfy5|b(-_q%@Re|69HKTFXXD1-sOJ)tn=F` z-iX7Nz-rKo^#RcK{_CH4Fh}mn9!5nDhZ`Dzfyw#(2HAp{MoHVZr3Yrx+$c8hAJLv_ ziG4zHt+bZer{LooZRxxEzeQ5VSh|%+3cb+u_f}`~DYtk)p)z+vp1ol4$=W^mIqIz{ z*}EV?giU5KxU>iym8=xTBV^2ODE1+rqPn`)2MU^pf{gKvI$^i zm<(=(+2{<4YF;}n?FLGla+CDraW8ja6{b(ZzP5DJ?*uWAY5hV}iG9?YYo265DrJk= z)(rBGL&?&%(d>E(ooOO&(Q!@!Tr%ge?j#Yt_kQ+cQ8qd;Uxo&dK6l|Zs%K_$evFVA zCm6XtN0@$$$~h0r>;b)H$}QgYKZA%gRv%}fCkG(ZX80*K_HoFqmd zfoPmSNao3_l39Sw4BMegIUig!W1ij{LPHD-;(VUAmxVWc{k!NxZUFDE?-KcJF#dqelDQ&tK_b0Ec?ww!(uayB@_`!g{ExklhCSfqe%9hfFzUec8Cs(!?FMBjn~@r0#MY(`3uOSmq@&U>l?@sG z^oOuFvl+t$^kxa2{(XsO#aT z)jcn6?Uw$s%J#ID8fz>jpE578`;IYd<*X5qPxAxkf8Y17PA8@HBUA9ToTtW;`6g>m z5YIweTds>~3kc2gpxD-ZqjA5I3(~ALrcUZLcXwkey(C-Hsu$u7H8zhgn9cYuoS#Hl zrVteeouM?|!+uPCw}=u(8(6)Kwg3*Q@vS-;$Qh0pW%OQ`V*T?-I*`FFP zd9lK=?oi!7Q!Y#9Vo@54LG?+%I1lfmD--Ub=0rlu?QIqwlU*I%NpT%E;gwYBSm@9Y zY3LT9d6dq+23hF^$^^H%m?>e)+qOL`!l%LWo|?(_`JP9z^x{VSe=#+ya^a;{AuQNd zLTxJ9iQHGPQd{V^=U05J?R@G8r1vEBfH)ACWu%B(Q*p z8S!3Z6EO@jBzYYM!1`ZIPHu#L3P3Eq{0Ju&utBDVdMcgEA6Hu0Um0-$9!^|bV2D4Fwntr zpNC^>o|NQmqAX>GF(9|90BsibDt=&#(jWEVTCRL?lfb%#wo+q{TLTW^y@SvxY0Fk9 z=wOo3yM`MWeJI6zg-=)3`hMGY?~1E04#sY|w#QhZrTBbxtf^O$j@878d%|itFNF<% zQX0GA1=_#r0_0m@{f;oTF(|b_LT5RGHGx}J1O9jk*(tlN! zV1{JuI@pkmy_MUXO9;d+54m?`+bK-$YUUNr#+OVd6twPADG;Spji2(;tX>ORjpe@{ zsSgt3l{VZN+NyENe4?A|;q0*AC;4LJZPyzpy|9V$e|5~q@ym%x=Z0Bb*BUkkK-uG= zGy^d{IZvb_CT=AK7xk_MZDWbqsN>oT0=IV0vrLL+L_k zx+CYDvTSM9z@EExJO0%P*`b69)PJ_NFoA)<8-~WL*&b}y-P-EU(w9V&e|37Zpq#3l}H*|FH)S=b6 z7N2ZnEdbg2jX09sqv-`lRvb98J_arak=Uf!r7h5e4`Y)9t)R8WjaURh_@%0ba;q-7 zh%l&_m0zoRF)j-{hH0kgnkjm*j0RTRTZWL?< zkSKO*y^#Q%icRd)n)H@2ci&=Yy_ywQQ&EwgMO-WR)yeVW0Fj6%@97D|Aj9W&c~c`B zvRhAJ{${&+qh`FZ8k0GB)c@{-|1M4Ac2~)sm>xN5mPEZXwVX=t%9yPgrxTQdC&*@>x&?vK-lP>1AG%rMs4>Y z-hOu0`!Kf@e9Euknb6r4=p5m1}wYz0} z_=&~em#XjdNM2119ebcxtQzN!G{0J9yki^0C5Cb?5QN!9{6`- zFXKSwWs8ZtExt4f!*zBrEpv z*&C(tmVq&5uW+s9%8^Se=#L!PjKOHS9fJqxYMnm`a3^= z78osk(CnAvw!1^q0OCQisZD)}%$ipV|3hBKauLF->9^|HNBB(UDKeRs9I9d}=mK&Q z_{kjWj0w3RlEw|mvFgit@7!JEtxZ=m|xP|y6?qogFueOl1hgmc` z#bHv~OW`=a>?i}Wbdu}=A(|DQ5~|)$XcEvekgOcJ9<-BaA-Bt{+kF+$6eMUY0oS+( zpgYAkfs!c0BN}|$dN-!*oc49_GJZyC@MyCw_7fJepJ&b#Jfs=x8yqF`@GE!7!6j{P(cFh|2kA2Pg!h@RdAIFI!cyBb!#-fkS4oi6^PfYC>vo~ zJn=jq1l_TC8&E^pQsma}rqmt>mxmHttT34XPE+Gaz%2+m^5*5^ z+E5ZkTLIUmtvnngQ^iSO5^{JaTOWGGrefA)-w2^Bi=asOP3XiVVJ^HX%06={`Z{PO zuP@dd0%Y0gVY)U2UiYugZ>j+WgQ+-@If^_O%_0vyS7?5(7*xSIABH)c1}vM-<(hU} z3OmW(6^qstU_UbK zsey)Ws<_t=CW>pli(^g&4({O5M-CKZk6q>jhB$_!QGsfdH3i7y{xqePp3o7&D{m(A zulvGpfL*evY9zXaoT=Mx;B@HW_;xp-En)p(29&h`KM>>uqh!9wzUp9onU$)UfsR zd4qg8gltv`d2{na63m&pD%uMc=2fbA?>^9_Qc%qkh0nhVJJ&d63Uj{goB{IRmexOl zbMiZFYc&m0vFL{<&GU0BDLd)zPDFAm`LX-;D7T;z!$dOLUUNDrFNBzwIjR;>Sxgu7 zC&_-~E`3&Krn+FzzENBNz3=(-H0gDX>J)pgIyCf3R4Cx zCa2PZvT5*p#aD?Gj4S>e`$m{4Y+X3H6^mjqanTBdLn|ts4wSq!vv2qxCgT%>(t`Lp zR0cpi_UTL5-O(W1_Hz|ZuVno`F%?0WARm`xM$gT#Twed5$eUgkGj8YS4fEzoQ`=1E zA~{gCD#^_{6U^CaT_iKYl4!B-uEm)t_L_scZ@Mm z)1Y!FuI-5*e^!uk#`gV0&8ffJ3jg9I@yS_LFAwT}+d0-POooEM$d+F>81|&#+ULG! zQrlC1C&CzhCxGJ(NXDbcpEW%y_-T6hG>xlKeb>6Yyl)nL9dt0q#-L0&P6Y!;nOjj_ z)^cmcf$OAc&?`I9-hDj+XTmzd=g$FMpK|`rL_q7E15@wqG?1)uHIb5nO)DyE6!@%i zE>nDAvoqShJG#wT${Wj(w!Qw5@Ea}9ol&CThPs1(3D`#rC@~t0-CrvG?5t8JDh0yI zZD4)yJ*|IKSs6rj8c8Q8=s|+i>n+$@h6qMwV%#`-?E31_$nxo&yGU}uCso1A``I91 z2%5$j>lyP+a0P%Jr`2lD_`rDFtIBs_j&UR-e&->!ANl^1HlVtTi`X~zRU27g&pxyt zXEHYKg{Mg_%C`+en= zA{M$u{pdLo6BSm-O^yh`_3{eyc)X_HV(|Z1x&^DPSj3eYNJ~^+CJYP?)FjZ2DOsn)5m6 zZ32WDqhU&5wWIdb;9Hb2GgQYo9SV?rU9s&mMqfV5$)5Mw+I^;t@pH4`B5`J>K#P3@ z!c~6CXU|%6_!ew|S_9A`kI5coMxb{K*)DxMx(>-lKZsM4sex|UN$^oSbSmykyYy6I z$ZQ|%!xYpngTI$i8joWIY2V>CW9E_={=g0r;6+qG{v`QF)UqGMKP$P{9I!X#gV@Xw z*2J8*HTr$|hJ=w%x+-^Q zP>m$&X`fRJqw5eBX3_;#{gUkl7-2_X$yB{i<9*(~apyb7br^iwo z$$+IB${!#v?Fs6QITHRpW9jaet9I)T#p+jtm$ytU%#_@{Bp4j%Z43B*(uv8Ksrc@_ z!Mv;LSlEE(VMA6tmI}%ir-^zXRS44a6u#Ki?lWz<7_;KPk4|Z{f|ruJX&)K49NcJS zLmu*J0i~INgq}7ISl;$1e`sgYKO}B2tXgw@$Bx8?`oi%??;H!WnvIBJ^;WniTpdZ= z4ub4C(4gKzTRa3A;h|DB0%ogdnRROu%)UF_gx5jg!%lbHQF7yb%!~raX7Yhq}^g zXfevbp;o3tn^;$|f=q1b!rV6?S@uxa8U6+w zAZtLAw3kVw>68!~`zG?Aoc9i)mlbY|Wx(K`E@S)UHa*%3c^>PHWvmJv`1NYT7gm00OB{=(UktAe<`w1D{5lmlc3H|OuIe3^R`fi2B;sn8pP)2`4nqJ( z&{LE_S#-D&kad4C%eYOJVbQ}0WIN=*W#a!RHx6~k8cX)l?FssI=WW-5lS%gAJ;=xV zQ9*0?$^e_M$r((+m~$>{B35oabLTf-c7)o0e|z-;6WUVZ(SxS=pJzSJdK!9}G%{XL zF5w}kT;(S1J$SojJ=8C25*kYwq+;R_R{;r90{TKmK*B>}#Sg@n8a z;g{oYH~dMw^qp*Znh>|dhhi$G=sfc7{L_lo8g}{Z+abcWrhPr+EiKPakH7TUC*ik7 zj!l*Cs0u|+&&geXf{Z1_A3U;iaa1cF+OqoYRP;Sha`%wM)g0O|!2`W$JZj|~xDGVH z?4b3iiEUuPG*Izhnk490A@Ml$N-jLuWvg)smS-r_A&^}exrYuH>mIx{Fka(-BagpF z_ACAQvr`>3zwX$_F(K}rwz-bKaxBVL=f1si+&|y%9eAFt_FgO%B)L`T6XGNxl}Z&* zpiOv*ZkXCj6U@wL2}GnfH>{EORAo!Z>o-1?4b71)Fwb5?7c11ev)*gG3ki%vt}(d* zlq-nM+a3K5#|Q8(&Fuf%cHr7XfhxdbbLgd~S^RqL-g_J$*lv`vjt_vi+vIiRuVkc_ z$`s_#Rx#>)M<__*4)8A0;1+&m@B~V}n^*$jG z$o%Q6w2R68c$qi8KU~S@FfZ(e-dSgtBaO%{7#mse?S^I0bmN-z^s9CF1Ug|a*3guQ z6fPMIZ%X`GP&|xWF-Y)gI#o~=c9A}onCV)OXFKETvoD~1ruLs65E3~|omhSbUv?Ok z86Sv+T8wXD1#~7N3|>sU$_Z0o7iC#CV%Ap34nxZwv1u=H`e;dZ^}znMk8)cc4gJAs zeYyJBhk%H)OTWY)`q?Xf_k9cgsFM4jKK!CZW=M;sytYeMRzcbD7MjIGRdsir=SwL5L^jFj2zLgmK;2Q**EjX!(8bc!n8A})cf?;# zT~(rrv7lhiz<%_XSb~371c4o?Hw4`-*6e>e%$$%GLTlQGom$%682XeiB3TOvg0PaA z(s!PJogo~iEcT8Z!6C<8Y3UlDv+gz)50cI$K3c6jUX%Uw^-!M_9s);_*MCDZRo5QK zkj?RYBaA)F=9i~W)V}J!Ownatp(Y1z$oN7rcHdTbsy`sW_w^O-!Iq^B6|c^)uc_W| z<@vrGAFwT?yvL?j6#vnVmoLaJUcBAcp|T>k3{MsEsEG@_GR`Y38gz@n+WoiC z_|;^SP`>OK1Ee>@zn+2*)CXm#=fPbTn;@TIy9|7J+RaaL-hMeFrQ*qXxl`JRZ0#6c zU$aF(T?)BpA zc`3{f+$0aa{Zo!_l=e$UP!nU}vJZW~{jtcp0AP5<9#Qn#Ddr}_@BsncRq_J*<*=}l zhkySvDL%fh^_pJC+mlwRq298%&_d2fafOuR6mo4y8JEN_lw9hO^xGU~$-P0d!$|wO zoB{peB}oUSb3+A->g#irNx;nrAR3K!l#8geD z5dSA*H=`{>vv#yRIB=+Ci#GZlAy-N50t?wdlbw91&8G;S(iQ>+)v5eW@;_TfNV-B~ zGb#;_EQVM0_h~F;4;laq%ow|J#{3%hc(vTOyXxVZw4z%!w#6fz#gpNeF6$*>ug>70 zb%=>t0jl2zSb^nYEQkl8SHskWAR4QVXQ&fAMoz{6NNK#lS`LturSn6f7|J5T+pL>3 zddsjHyR_{kA<*0tS9u1n#x|Xbnd-3lG24OF2lvjRGYsOM|E#M*a6Fu#O0)8jvPpZ- zJzRY-5Za5s1sKkY1{NmMPoE@MeyOoeoAKQ)JmGtobEMa%cwx4x@DuZ(vMTYx6fZ4n z*7>E{X*5@S;lV(KWHx{_ufw(`q=Fy(k*kV7&X zQ7L@j*mijbt1I-{ewWr2R=9P|dA{-eGPj~lvG0+EH@%^KH1eAsvfRO;{t%CgqwN%L0LzC1Xrh}}qKwm2LZ79X!7xd}nc;3QdhQ_D& zMk~xd%5l){IamG&7usLa+uFmJq(A=Q$AuSA8qJu&lw_LhFn$2!-rEEnNyjScwSQq& z66nM1X7=@HC?0Tg?Z;tEPu-GY;!b%*Nl_Jc0Ex{~gzI4#CBNfWZ~PX9ZwcH`t3Hu3 z-utb8(@C3|Nd{>>hZ|qaZ%=x$dCMmL%fR@GauPn^O0TqCmfJiV0U~|jkr2O2H@u7+ zsRk#~4U@^7aCL0oSUch%aX1!n*FOY%`FQ5_#_Ru8;ulx()EnXUJ05#cWz^4~gU%j( zi&~=jWAOva2wvv0y@Ggy`Jr>;GRPn;OoNwYfMTlrA#p|>B*vwZhhx8mCJ&@=DvRj4Y+ z?YJ%B5%+vgiWBSt-o;dXgCG9hB4cGndHFpzf?a^Ay)^IK?<6XRIX9Zz8nq3Vb8}?j zK14&}^gZX%TvdK>;a-?NdgKVv9B=?1O3yvKc(8W*K@v(PoOMKE)RrpU*;*|;K zAW-F{UPo_5%&|^)1u@-c#zD1d*N%>6A2W3~Lyoa1^zhR%m(iD6hjokQ1t3firlRNA zQDl=N49;9xWb*$PVq|GoG7%!I(hD||B`qIQFqAssHA$n(GvhyhL#v|sm`|)Z9ZDm( zucq>7Jf3^dh<~aU`};1@WlRcXM|iMLi#{qGQhR3k8o>J*|An2{>Y+_%UUkoozv5}h z(A<&%&@Qr;dPIz$upCBMf3aABW~UKdNpRSj<_q}>VQ2KX&MFv<{m{mm@KB%E?cVXy z%PhrxDHW~+B3tm6KqOY~1$i+vcN*5B=Ju4%h(7`_4h1_i$>sEb8|aE=YVahitpH%7?DWU1*g$s-DTd=d+2Z5Bl%bwe%Bwqd&IPB z^`&z{OZUipI3|_rB4Yj&Q-N%8>c;G6+eu#5rR))}YtKH|d%Y2%9{DWKi zdRhU~L|yqhBIhxd9}XY*%975(6#u6i!eGoveX>(Of$z!8qD}KWgqiW*NUio`P!wTO zf8}$49&VuO78O_@OnRJY)xK`f+ zG~@!}H4ChDxl}(d%;#JHkO9eNXmcfH7<7pq2kYqmC&Xy3)0dusht*@TbdYVw|a{`#k9G z-b$eGLSg;8uTn71aHpBlMEkH|y`0lMpWr;cB~$yn4OPz77)eXKT2KS_;iu*59Z;G3 ztY!Xm!QP0_4^YYyGLI=caL;*A-lR;v8eM?B$h`H$WYiGp9&8pl)OEVJl2OPY%W*&J zt9q5=1>Q;D$$_K|3rHGCA@^dp_PyWMMeFXmi1M$Kwtf9o@I2TZv;!d6MXC6_vb${$ z!ezjo7Ad_;`HHzenP_%4M#G+&Uq)FWZMXY|74fFI=k-79Z~Q_1e;i$VJk$ICUvXL& zS$7nsLrE%07njYtoT!v_`Id59=cpq|$er1WN*63Sr3+gfL`Uq%W#lq)8K;;`hQ-Fz z49mtgAKPc2e(!$&^mv5F_W69?@6Y@FdOu&!%b=?R*X8Ur>eC4!b5}oXWDI%8M}KPk zv5y&OiEm_|eRUfbWaxf6tBvBKGaFqW^}$9?KmRBlG3+8r3c%rUd`h(w$oDuPwaYrr z=PgwmjMSJvKe!5j90c9fdPdHUTi{&o>MWj^GYoR*K?2z0ZVQ}rK^UuPH`h8(cNDN> z^No3d8Ci*7BEZIPz||U*0&Vkz!fBrwD^}0rs_^?6JJ@8|0rD@p`UmEWHOOMq7!!GD z8s}TI*jVO+l_!+nW0#>P9UW$<@8_V*beQ_SuCyIQ*FfpE0MSZbzwHiaKvCBNh<^!5 z6ix~m!YIZw1vu-g+2KFUS!OVP`n5=__O&F5od&>vmBa1rJt&KhJ{xYDhgSKOl05>7))DZgS*kE#=H_VeZ!t zjf(l1Dlx5zIovi_EL|PV|Lu_gsTdm6n+WYQJ3#qDD$R@43M&F9$gF;^GJZ) zl%}z}qnB zz-h@#alw3c&lF;KvpS6+N)c8DS>MhSt%yN022KqxGS)mm?X+WuXf#3(*P5+O8o){; zJS0LpI(HG|Cz%7QZmq*io)Y5+4G%#A`KEvyyseDxdhiM+i)8(-+d)x=A9M%(@}=xc z%QLbs;!en`9wZo`Nz=C9*wBujeKw4Z?!{jbHEL@G@S&ik3Foy-U}O@*z>+obN+wqD1ZK2rHp!vJ^#YoA7B5RWL`{+{#+F4?`=8bfh+{& z1R6U4zIp@oqHr1VkZ^wbywa z117%+AO6M=(9!^sS-%hr=S>{J4qiU-o>WG=%f2XFP8o1czdM}hAZFjGw+dpcjtoU{ zXH6jb@6{gOEtR@?HXGY^lhe`QF+Mi2LJe#&P*;3*fp&-E~5>Tg6 z6xMerE|-Lrq{gL~qY$t7GJ8#V2l^D0C~gl`9&;JND-rv*-F8<)N`@AFFBkaz>Ed$t z#R-G5eU{CC?>=rRr@_mLMrPr43V?quqBfEcdvY`s44TKgb!p^-uVS;Bsc2;Fn7NG{ zxO!e?tOz6}#fLn;Q4G=d$PvaiMiJSglyCQ~hxRzKcpKt!@tNA=lGU1afoD#+6e_Ms z=20hnB4_Y|M#9@QFF{>)`*IAH#b^#S4FXun#w_iDpc$lnH(@Dm^~*u>;vU$paDu;^ zWbDO>@!!OcBHUF!%TFt2zPDw9sE##v1H!j*?`#F9$BN(1tPp&Vrh&;?2XEK2Mivc< zyA5N3kxaT=;V5f>T-}IxLv(T6EC(Z4jD=hnP4R@uty+7SP^HVn1!{4@Xmu&SHbNn6 z?t+-_>Fed4_XES_w~33SkAWo7w%A|LY_yiul4I+g^lezhMvcFtv^T* zgO|F>g^fBU`{F~wq>18!Ay`0Ox(Knf%Ed9$F+;j&9pTun4Ksu1Y@fcecl2U z{E`ESy7I!xl%rmi2|@F!a{SIxmLmd!JOZ+i_~CQ5r6>kh~D0mB23V z6pvCkW=opX{u`hFcIlJKCvmNK_*Jp%qt#7q(F2DI#|`iN*gMTy93x+<11k$T6Rkt3f#~uu*txxr@!VsvKk0)Vp_1vY6-)_l>+i{ zfF~xqbw}0QO7JkdAoX9`vvYi5CZ*b7ZVX1VR;pY|Jkx16*zXks*zj!X%&u$v# zPO`-`*}+%v5?xyTW=h{4WF=c+NRzYF(F!lwq6ksKv6BN$|LX;t;}Y1lTA`#HvwHum zs46e7txNhM&A9Av?pUaP_tuY(xyI961z${rwoKh1h`tst0&Ez66l6KV?cdWvEzgm$ z?ry1fgg7k&?k%B)&{;Bi1sqjdS_dLH^B~KUpWW|XsW%5WW%oDC@^jQbh2znz86Q7E z-fhLv@%s~`WVsvZh zN(zs%1`-D<4h%0Q+b8eqsy7}VTJWxWn^!Ako#OcCuWYs=>+Y}bSoUKl`|lgeet&Q{ zGBdI8jhi(RM-a^}{6OgwmKLQ8%LsQDgv9~MMm`gmCYo@+1?wzXwg$;PdOb?m1!Rtr zXGq^bQHZWUQG=)YK8~h>a?YAWs!<#`H|es1ic9EPQmtD^ZOs3-9W+e?AWy*|J+U39 z^ANr^F^Z=e4d)NBJ3NrZo-x$MgVfO5j_tZ~!sTD%B*2d-eUYogX)ygJ2HLXV(Q-=+P|1b*X4Bpc zVZu4g{}Q5i)@F{^Tq-G-@}`y$_jVfE`N!!*ZF2r&lU`P~C zcV=}f3WK93C{mF?{YYuL{XOSYQ>79ZwPdGeGY&`_J2thM{3W>TBs_fUqn1!bg1P6uf&g+HN~6Q76-qdFIJ3>=a( z1v8S>zm1nmV^x$Ry;>#v_?I{(j?PF4<)>fX(~dG^?7rr}_$xJ_KG8)zo0*yb^h95| z^@$1g>GsLVnKGb%-jNV#UQREPtW&XS*(bB;44P_gZh6aWw5agC*pW*e@sDfMM=Z=A z*^Fw$W*RZS9wnhyOX}?R_AP4D-{fTZVkV;H88ZpHp1_EVv|F z;6gf`z;r1dyjfFZ3!-T9q7%M9OOWz|_2}qf+E<-DvhjNS19#69CJx&i$d~7uZFdCz zalcPUCmuQD(T~|55rQqj`|B|y;DrYBT95y*-fsB|5ojG~LslXBN(7 zqi4)KBkt|M$4)^Soiima*QC=Wkco@I9#sflOngEA{aH}sjRb$KU~hNg91U=s<@~f& zX8oESaoy20-T%;7nVbT8UO_RzI}K=gEH)$fSNgr)DuvFBE6q6gu+EHFcvFNT)$k!2n(?&W6S*HzUFBG(GIsbt_DzQf?+kue<9(B z7%?4R6OX;c{$nZi)H7Q%6Id@?)L&uybcL3(e0g zqagPDN!K-l(f%(~y_6Vqz8Tc@detgffOym|^`9scpf zl)MG{BMeQLwuGQ%d(A}>QyPD6cl(z`xFknQw289SWtNab_4dw8Rs^WaPqbqf*BfVM zn_iU@X=l?TV8?*AG4v6{8F-wsxRYb-oL)YfbO0^mEqRucPzt9YDY;p6dPUA%-ZKGjydlRga$6mt!b!1m_C2S;g@jq1k<+P`k&^RCe3` zR{VJ)bgK+d#1<}CXc5yH&1i_oj^L*Tn0|Y;Vz;|xM$$FcD(M$W@~cCI>HEYPLMMdb z8;0>D{++?#nMMMs=mDOf5Kk3>v6`A*8JhcPPUvSBY|A88M{eBFw(plJr#AGQIGGPZ zZhEX%pgvsNXKih58i_r3SnL!mPQ1 znQ2!3ySTc9t4o;e$Yxn|D6iUN-vh&In197DEHke=w#L)5Z`_;~;A7kLGHD#9FNTtA zopDmP;815mIAVoqGLg1e1aPsEq=+5`y-B{{{#>2kV9q;DDF5~0Ajzv|E|)9H5+nKY zvUk^9EKuetFF=ItOeWt<`@f+G@sugBJTI^WfwCsL&81gk^_VOQu>arY-ZdQOn)5ci z6?5EKQtebK~jmIXXctM`Frjr$^~pt zE))xFQ~q!NG}~E!Js+NtPQ03pC3<4srn?b+LHM^yHg)LOK!?w2N)??f6JD&D`e$5rF?j1Pk_%?Xf3d>smF=UEmJD*3 zJ6nI{u^`jeAIz&QjmHz6*j*C_C*3;?Jkw1KEmU%7!@;-k=a9Gq+ChviGIg= zEW=an*z*1}kIx)FCyfb>DV{2>_#9W<`|WIYcmuj}2Zb&+>)a8MeSD8;ps5lVyMtuy zPQsIhTtb2ZGd)e-TXl^sf~k<`0H&+43&FZ8X_iAR+jM_GCfD4tH*DyERd zVWSjKd&!SlX3(HZ#57AsY!qm(8YfR&zm|Y0FaYK9Q> zS7xgC#b`o$6_&_;T5(V9`Q@P;YanO4<`&0U-A`VPRa`>W%@1==#^LFMpo0U&>q*;WNBz8V z;ZIWKd!nznPZY!P%}|ZSa!m5AnE<-Zp4T;lVE+lML=#f3CR;^xh8a3vKir{*@)5j> zlks1O#05P4S(6=2c*k~)fe1rM(TMXwE7&xWtAAdTt;7~Oavc|ry98KTUXPOk9YrT$ z|2)_kjMw*%9Ce^BWu7H1{Re7=98H?D)u!HJ^KHI;d@vXZ;q zvER4coIjX*DSrq0IA#KvP=WKng4STR{C^|?p_x%p`BeMI82FKe0&^XnC;BAv0B6qG zddJ6~;N`jXe`#(gHn3X=ORU;oUp?2$*RI%D?((T*+W{NWhak3y!!>_6M1)tJYJ^5@ zGS!!R|C-^ir|fcsY2pc)96XvS_TrpMQi+#-QQXU> zHckl_UI%A<5nZ^vbwL=r9DCb`UqV^4(f$U#j_7+W6W+r9h4rZT_iY1-8ufUIF3}|$ z1B_xFtViq`3F+(w6nlb9E8;HOCx1S|ZDQWNHWrR>*M7^{R!-Mfq^FH!bzAnV8&Qo$ z6JKxqtM_hvZATMc!s>k}qu>%hSux?|dg^AAKaL3}5yQ9%?Gdu2H9bK&Ijt>90HyYMCRQ~4nI%_XWw@wfYs#IpUKv#58~RD5}=$~%m#qcVHo^6=>eq? zWS>z3m>5c%xeMg;hJ2<93g5*@uVCJ%U=`bP{>JE$Psl@?ZEsb5+Jak|H|U?XpZ9(y z==faxEmj78GUl2|zzx~gKf*%_K2FyES3wudR_fyW005P28v``dft=y&WbH~w^fTAa zh$XTI#PIVHX?K0`&uh&SD1aCH^ddb#+r6|viGu(g(@}}F8`kiFboJt!>4RW1+778# zU8D}*g`=|R$%qlDflMh7Ops3g9J85nwh2MR@Y{D3_=&)N zWzOmzBWMr@ImWluKr+gRRX}PsM|JJQnES*En_U+}J}>&DfHHa8+@_ndYkcX*R?Eh$_>?a6N6}%DVd!R=npZY2K;Q0nMon7be{Ntm{V{z-RoR6k_bTnd9>dZnkM|SaYy@+=9~j7| zk{P8e+2&4X8-?Bbuco7nC&5>)CGJ*rP`8leXV}mlvA6(U;UJ1>qNQV3ySl;~px60i zcc>^-UO)tEQj^ZI6@26Gga51x0P2%o(B1% zs=nskwj#mURNCa@H*3eceDeO;V4p)}e%uwqa;q(7QAtn;S7i%E6nK3cgwf!Abk{vD zCS0bbU=3kEc~g@YouEj$9srCKndKqwK1Os*$gZmu3#z*EpEXVL83QNgmftlfeUi80 zLWs4TuLjsyav3#{*e6uyLNe_ZC|B(U^@|D1$p+A^VlwVCeBvd+9NVUQn3#&Mf=;XP%zOBWxw_ z16LMD2mS`QY!$g8!h5@0Y!(K*H|b#BUR0bEkLV)=`PGbK(y>=L>spNb zSIFI1!~Loy2|1gGZ?$F?4i0cbtyZqoe|T7bujyrK<1)dW!HC~LQ5Jazp ztdv_+(Nmy`wg%+c*;XM21cEy>(NVoHI(I0R@c!Ma=efb&H|Z{lS9e7p&J{CNm%jdc zcgwb@s;Pp*$LG2l6mGwzFWg4&l@++L=4SPI9*>H5zDw}_z&#yEVG;Iy6AW+Q%7cOMZ^5?Mbe__>*#3rgPwbmYJazce<)-v{hCklWRuc~9$X@W&8n6qg zq7tD|y$z56M*#Ar2ej`W@-`?uRDnI-iwhnhEeRg@v*4%oyKR%@u?pIOv)^CVol_n9 z-kj-nK6b0*Wc&KmJ<~d{ZI1#*qXgS70EvV%IL@sV0JSU05*-uU!qMmfp{<>{$wrWCpKSOsMfZvJEi5 zNP^lGflc0_cWTcm9`i^%GC{F&#QIJxDYq~9@jz%J{uD9!>|37desGAJ?NX1EZ_}rp zZdIs0{_1pLS_u8>1)FlTn}FIIoYR=|kaofvWIm;9$VEZBMUGH7v=|L-grcxbLAARg z0>z=L{U$Wz-9;mz>!5`H`P}zNc*LqZeC6SK+{Iz~+0pludOO%0RDAmC%^s8wz=6@x zX>2Dg>8F*|t%ic^2o67g$@F*h@K+&hLIQVWchVa>pr_st4)*y)+*TDA&3G=dm{7tq zBqm9|UkL44r|tpc@jEi)94I@e_%Kp1`59D&{qQD;CUQx$91gt)m>!62h);{+Qu{04 zgMlN|Ta@M9o;gd-9_5$0zRg-r+q5qzylw#N7W)6b_mlHL)~@cYaR6a@5oFV8&qwU$ zsmu}*&VZLd9?yYSic0m=zPh)2CA3Lql7GF>*uB7i==OD2uwWz)=TT)OXk+)94PHcD z(GiWFn$bUo?fQYT?`C^~;rkc>x@vn`^uU2MB=p{#22>WWpr!5YVBT>HvF#k#bPu@e zJRJkr*34qxMsXULw|<~ZT-UK099?%E7ztPW$!k2r9%vf*AA1So;94}i9adTD=cEoHOK8cO+Q(0B~#xbBjop(?m8CDuTH2)jJKP zFgPe`Hqn{G{R##Jseb!qnt+w2hwXL5E2i8#`jR=2HgTbtHL^E84Ao#gGw03*C(|d} zoMbuzchvoB+x~TrTVvbxj5Rux$b1LzDo>xHI|%tK>dXMmKhfQc25Gc2En87wt1&0X z$$>cfD3r`)^}}`mk-`-Ge)`&uFpNnj5%f2)``V_?Ae&IQ1bIg_L17CeVeo0J+wLd| zB_|={-c7?;Q6|qdN0Ug3!UJ0+!==F^#FWCc2sACkabGv`smS!9s@Jcrw0u3hde>Sy1j@u7Dlx@8TN}K zd_qNHaHr8B_<*nKjOkE#h5Zxot~*fwXafEsC+f{D0!;4@o>GW!q&{?B$;akyNH;u^ z*(kaOfXZ=CM^QS}3Fu-PQ+`I2ZkY=s47B~-cTgW+as0o3R8VbsIJw@aYr};3U_zZKQD^LeqgfnOmv$- zkaa!1YKr#CAwxL@rW8Q}+yD>dzg6zbPBo2@3LNpex_8;#zv#V~l`!Wf@w7U}2MGc7 z`?$=|tBws~_RbVG>l=Z-6jeD<@~#GX6Jvr~&VeGOToc)YFq;%UOwF3>*d!rj&2d8k z#_YGzo>zd22FyWVpjR#1+mM-!DIsi86NsG3U#vUEoedW{jm3)#2r1&8QS)R?CX^ug z_j@eIR@Ulp1G+$`KM{YS>_pwH#NQ^)bvknWog=Mg4$s72kK=g8n#@WvWnC&`-|R4a z{PIRovQ&r*bj|%2y??JLK+4mM8WKsA4SCgxe(waQXMyQXLbU652LEfx)YLnXgwd9W zrm!E|f9cv0AJHc12?q*lmCnF4;FTjs%1?%Ab(@UQ%u}G&F@J*nK=0Yej4G<65v!%I zDx-t_5*7_^7=Jfcq?#C?l6*cia0sVpoW%q7z^{%@FKK(@I0txL(-H5stAsU+1)ot{bV3bcr^re&F-oJ68Xlrqy1rGl#`zB|Y!S{?If-%{oK8bo3X3I2cC0dvba zm&2uW4@&1?0)!3v#q9Ph=p%J#MsE`X1dyU+^6!a56!(ZCD=Kb!K`Vs2dtZz_ac{BCl+rCzc$ zy@2gMh*zXX&^H-RB-!^#GKDv$CTI~uNrzhxYqBq>97m}~b@u-i`sX;C)ALf*N{s>b zvYsTwi*(F6RFg!H^LMS&BBWwFl*A%ksEg=AOcR54UofDfOPn;A&<~{@He(nI%7uA1 z+FQ3fN*mfo|9Je4LXd+bxw}FAvf$#C{WT%^-{Hsigxd{kwe!Xk-_3q^1`fpw3526c zV7yu3QizJD6^w+rFv!uC)v58T_4U%51QWax=h^uTc+XIv^ppQM;+HU9zS8Vk6OWHe zFc4!!i5X9?9cm>SyR!E>M{%wtwiT?Hw;7KnJXNVC1obvgOxl1uMVroX>OrqdTv5~~ z>pwNYiL=pDuT27OI}&09UE$dgsTtg(i3?|_sat{UoHmlNxsPC28}HcaB!Be}dIs+f zF^+WZ!&fSJjI3x!6IqWz1TR01-TDhw{<_|V-ZU(v?FoDV#PV0@PsSF3GCys}NZLEH zriF5WB_HaX{xtsVGd^eP>(@%Ke>|IQv|BP(zg_nX94Ql8*6w;-^YSuvaV^G7{q(h< zxF!F6+DhWH-J6?to@&}`)%9h+f~((_d0_LQmnm-`^l)esfJ@i#yP%ctE6uUawHY7& z8Qeb`^DO=EuDGPZ(5PcazRjMfx-Cf1(T6-9C(WNWK4H?wSO*0w(8r)qK%-m8uI`Qs zT@mcey-uF@B9`=iV0G2I-dc|mzu2q2m)>j%Xk4Cmrt4TtT=cj!IAmpYdeGWU7nGqX z45M#Aq_c;7STSv!pQr|6Tn?kXN#U!y1w( ztH^fYd_D6;3bplZ+$uW#-)oOGzwv8~N2rj_Wc(FGB1V-kDmA;FqQW<#1yQf5fx zRKe^2SLqiLs$rqHe3%MKYIf(*N&(r6fNBcYL@X_fX zK2d)27)ktIL#|~PABxjMGg+mUjxfSFa#>QJc-!4rq;v%hfPL3(4&!D4VI5dUOw2`3 zW=G+vOuUPPWh%Ex@{XU#f9_p$&d(@ zs+IN*SUDr&pmYvy%}bsZgogVdK;;r7@iV=b5W2n8yv^o+LUp z;@u_mA?1qgYphLg^fCMi1qWop7ru0=o=TS(!7rF`Y8M5td;w#j8B|}Url~r2e_=sD z!$i8%i$t$u6@IwpHhdWu?>y~f8f9vrBHUVUsm;?l$FwG5Kp;o)rUsQ#!Zb~!FnnX? zCy(Rb8YZ&0IXR)tbFL|Uia;(OacY8htd-@Bzfw$jT?8uy9zmlUhq+6qRGL8M1nu%E z+INP3E_{>M=73`xw>#CwGF(r{Cp@*7 zw$HwH>6hRM7BHsl+TqZ*k_Ju_OaXnU{JMzo7m}S6*Wko0l`#&uC2FFkpcnwSI9WR7 zqbHywd}5rn-m^UjyRBkF@J>x!Ne<#2!V2Hv)Mk~S825DG8%w2KF}apWdWINWc*40ZqKYkjr;DFA*t>Jd%i~RLgoF zT;In%k>o5tB}`bW_bCaH~~1w5nmTj=*H7em^|cL4P8n?}&pv z@ry(enIth-L(oQ`^U-*j9h%ugeg9FO?wUM|X?lTA@Y2pJZTRJO*FJn_JUt9^B_NYe z&!*BOu&FQD?0tZ(Hu^@7etO@$1ND2Fu)SnSd z+Y^4z#`dMCoAu8F9pndV98LM~ z6tKXt+FaNdj2ul?w~Fg?0VTzjx@9ze8b6`CNj3o`S4^@FwjM4Ks`N^Kpez{j)jJ@Y ziEfhSR9Ew$J zre5uWY;#W4Y{R&FskK=ZPQIy4oOEc^RBY0DZIM~HQkjodNRv7Eh`9j9R}X~Bozo~q z^J-Gg6JNPjwJW)# zKo(z)&>o~VZa;(rd8y&B*Y2nERC*0<$3NDfgPM?}mCWYf9?XH#-Kls$*a; zVg{(qWb-((J>b)|sPou+gz{Lc8yTSK!XIhkDPh;!HH13_h(iDfKXpS9ObM4ZSUYmz zKe)|qopI`k2Z{E)blnRuEK7HRPtb7pDTr#C9-a$31l|Wk14qJBe0-E}xeww1Y$zTc zvLu+YFIfs6P%kp?B!l$lY_(}%@t*G`^)rGF_kwS~WACjUQh2FqDKP_6-^VGR(^tot zihxrNM~}}>&8FA+&g1wpKtAl8p-zhW@3pd#<3Gqzwa)t<1eR}x5@8nrLG#!T)XvDO zZ**8X!>;S~wQ$pvfA2!l&%T(e81{)9vOajVC9>M6iGqReK0`}%j8G2KDxIL$bx$lY zahr>s9t93H?^#u&rsl+}*V7X)Nws7v=&Jn#^12uEk^#zcH`3~1qE^A{rRQv^6nxhK zd=d@n{J??>=T|si(41GPBs|yJFwaeG5{p@tBs+jf@Dv_7mG0&O#55KXSX?#n%zwK* zPtPo#>WsQ%0gjTU6tE#>&op)h5kF$|;}v`w-`H<-sWr?G@JhdBbh;#di>%e-ka^!2Vfaj}DndmNgwWcMUAhRcR`|0; z{{q@NLG-{C4cUnq_XrCq7G$3?=+g*$6?E!IseD1vaK|=@Ta~-9ThXNObXW3gn*GCP zwhf>@$yU^$W=EnRQ{-R}uv89Oz{}?@+cB=l9lClz#k=4T((}}X8Zvd=+LeuQ{ngGi zdL@g>?BP!_;Z;J!Fc1QRr{AV4#+}ewlYi4aLw1l4DeP{OZAFaL+!6MI*px=^=vy(t z;*b?vulDvXId=8C*}jdX=_f+MrZ>4iJ=?q(WWS)3)zSP!s|0-#x>X7_cUZlZ9o<=xwj#m%I} z0?Qt1%ielP2EA(H-dn0jZP&*$!IpAmyU*&~3S9= zl{YRVh=z#iZ24ikftnF_*&@XO^>x6=^VzRpHV~J=7G?6;8#}Sa(sy}ioC&2% zDE9)sw;$`bKpPYhB5solHpz7vlsT-U2u8B$d(vl4*C>G31^&qUL{rG)J>BwFvFwko zZNJv;c{_0E?T2|cHo9f}O_DGlGvos5la0^dQ+y4~J}}n_K7I|gkwYrm10-H*%WB;d z*Ue--pd(q=;zd}Ci&1Qc?hk+EUSA20GX3>ix^e4Y4V;xJ?CzF_{092TDb@)OwtDyF zDRz1pdbH9%DG10?xh|g|suV7R1HpEC7Qz7ZKlD8*8GxU{J5hG2=JTO&MHEbS-4N?_ z@bNJ0pnC*VQP2T0b|lnbW1bz(CCV|;$p3SQd2d1-?sLW{D`gH~TuD#C*g7Gbsf}Bx zL4`n24s;O+PL6K2TXR@G^`5bUz(Up$?g*Ri=0k61{L0>zTDLf3Qz{$^eRd~@Z|D^) zsF;?p?0t_6UFPV#z-R5GiY7?FU&=yvllmvE|3E8v1~Rmmu!g)su1{aduRS)LMjUQo zr$i-uQy8+|Bo?_J^J;!Pkk#*PcG9?^wu1Ha;^9*P|KvTi4^E7no2t-63N-HOCE5$I zE40G}@bX!89u!#Q*MHeL3p_k%<7_K+{Nm+_6Tz~ zDz<`wie8_*snk64)vc`|1R@fR+Gl9 z?v1;_J8H^RS@8hpa9uzg{#{!}!^LOIsB$5{gmFXnkkT!zm;#8eNLFXtg#DK>`E=MU zM(v{jW?jHwT}bI&%LZeAsYtMt*ogcpFG;@Oy4)}Jlm~72S?qIfmSW35K})gqxyonL zjXPhylCCY^;kV(-;}gf)kPhs!Z{WqYbYOGm&-#ZoBj#rj&!VRnH>-&)o-FLhi((^)vuNt z-lMN$eL~DH#|LbDUMRd=b~(Nz$Kq{z_t3WkO~@DL4lZnVdW5?O_SZd>MGE_KJ%BE7 zr_iuABA?Rjoimw*Y^{eH{}Do2d)e}vj3wm+(}8uzHVYdxb@dhItle2*nL|N;HrjOu zzbZR?&RgpvuY6ARo?CKohMHEcGb(w`NTSNUL1q%?=S;K#6;ekr6R;%TFCTT?&`rH;*S~g& z)Awy5CvBe#Q->}+?j>&9t94!VU{&Qp+bWsG+uQ%qKs}HIvRG)7Jn$Vs&^gf*w1LgR z++di2wv)f^_T&_09{C`2LtcceRzRU6?3J+|UTiI;RP>tc17d3+y5IcK!Gb=apB%Yg z_+XuE%`#V;{-S7Lt1xlxjm)U~h$3%E`yc$winnwxIrq2r=-3R=G<*dR3{e0UC67s&4AGvT zaHthVlV3$(IZjbOmCxRzIKz5SkvywuVD_#xbk00EH`t#b|Fd*Bjqtx-w=8j@`-zZk z?5yYj zIeR(0|G8iC`!ma+m5t6nQ0Y-SdoId{?vE@zkN=i4EGTlpmIZk&=FbSWd|MK+wb^Zi zkdK9S#A2ZkqF^DY^iuskK^!LVHMub!k0m3gwE$v813?;?K$i)SEtNyPPFh9LgT0_d za_v6olsxO4+^{-85quiDRWM;RP@gMaB3#Ca$+u2Mu+aPe{B~U_3ApWETl@B%$CEEx z%OCvvD2go-av_U7GFvcVXu6jaC$b+TP^5?gn-ld$vKotsDbB9X*%oEZ^Qd5-4@Ftk&$bM3jN@!4vCw8dY^tZ-`P0A8G1f>F*a{XB zta<&fvB@Lorgg-7-n%R0CA?u(>#fk-!PtW4q18wSn`#s*Xla@P>_=eKVMS*2BF zyJMm~vqBs?3_uhpiG6YKl3J+xH%g$9>8MTA4acdCj|lP;(dWI?Pj&b2aIKLQ#57%s zE(52DgoBTQ;raRNW3?0>wloN@7$KxvvR*@$b4nGrU{aqdkC#m9nfyY%$Pi%Ci7=4y zX=s`vKS#3!jk5R>RipxMx^*p^s`k;9cF~U6iE_n4>yhb=~q1_I}XV7RtjV zlbN6_aMR`I>aq|6*hu#`87+3g>5Xvj1o%PEUy=7z$T@1#&5PaZ>)y`P+A3ByYYKa| z8I~;p4%!u!x{rSc-+BI@A>z+|)KrmEv(-q%KgiRN+Hq|8MFza;AA1gPi(2KRKc6t{ z0DY-~i4C--0@4u#1Y-aPzN6eUq5KHD??WrQjK*Obk?j>(sbqKUeuz8L@|Y>l{hz|M zc(@HFjDVP42YJV%M;)B|I9rkKaMUFxd0pX$2!r@j16%7_p5B`dTKn7m*>f-5omw$G zCy80OKsbjAx*u9DU$8v^Ibf_ra%>9z<4sP@E_HGr&Lq}lj?;Vje_Uuh?LsUakCj*< zc#t&&xa^>bgO;e^z1!{kB4@u7S$G>NcLrhiKKKPI0l*TS{b<#3^iB9U8c1<(*Zx3# zv>REZ{DFFGZfp+EAPJvwK>Rch&>ykPtL!vy=p_e)Z8MHJjG)B`Z8#UiDq%?tpFJJu zd(6K?aionBv%(ca{_MZkO{Z`7T;QU_6L~#|-mh;}BZOfrzm-RuGz$x0!%572jh*-i zM)BoTb60lO0j_`E42K-w>tDzD*}dNPBABWPs?`(X6jPoq%+ngGx1KIwE*F5akW~;G zS;Ww;xkx1F;T*xb!5hlwVtq3~H>F_g-+-EV2?pjw*P;5RN_;gu4i<4)j5}eGhV9@8LCPdNthXz%LMzhZHP4o4s0X;CZ059J z24KR+uGB3%ujm3g3*3wb^a5UwJV;su02)F8XklxnzgdZvIZSlXn2x}}L;Xs@oq-i| zS}gZo0I8P+pB)+<4Vd7uL<=xfe+M`BwJIzcvO!bv-i#G^?E+9>v~=ni#3V*!L{V#Z+=o0qg-Re#_TB2=MdQ3 z3>`g-Y-(Ld)(wHkTEW3&h>-bX&^-~g9$*#Y+LU|O7hsb>3OC$co$EWzn>_Q}NtNqZ7B*aYgJ$@dg2=lK05hE*Jf>-@7Y`h$|aP%WkwVbhsG zp=I5%y4K@O)HyaGAgW{WcAo(;=F7s!i=$<;cHLL^if(K-Ksi~aL=`R=OGJBlML81c zuI*bl>LeM@3SJnU1DijiY}mU#InCH=2R>2VK>Z6J2*a7(JPHJNLn&KJA+{HCO!icEprsBfsP#6nmh2?J@O52 zj)`u4I0w#Pjm|~NLJR&K35PrIz3@^>of-9s8`BFFhJJJr*cu5HznV>lgdZnOSWEA~MF^5-fY5gMIJLF&ApshqGQ48$DD;zdjwhH z^{JgV0KxolPqfHs-K6*QY&-Ijt3@N251wJ%*s7U|Y-vfJ?{xixaOpaZ>k7AHZoyi& zqc;=9i}O(H7u-y|kb6Hz%(bS&T_g8zI!`9#(g4EmGToKCa0JX~1W^Z_mAb|puUkHg z^F2!5L==Qqg!6;mgtwlzuXRl@oIqJq8$NarWW`C4My)J?ey1P)l9EY9QY&*j~mdZZ$71p`ku8>=kCAJvk)nf`Ru(lry`W zXl&Whu>BX@Dw2)m0IG zM$6CWj$+bvfVc&|UQ`1H1rtewK9Ph(5;_s8;A{8cI?$Wu<= zJY(Heb=o>=>hTF^5pi&%ujn@utmD!Bg(=l*i>&|o-5HZ|6)&{V+|2>vi$CC}*HHW9 zyk^o3@sDFzjf?L^#j-0};Kuz;2c;rEeJY|O$7w4%qB^5%%?#V3M<->8ev?~pd9$Ym z@q(biB{g4dx6ODbov2sG4+Qo+;#i-_LTAvbl6723~#uu!4Y_?|!FPI%3Om_ip&O6qEcO<$ z2|Owj_IiWlLM4al~9Y8<#H^a zntRi6Vt&r^Ct7I!djj{ijuL?6Ag!(gyVtx%r9&?pYAD((o_vrEop!w<;!U~x z>yk8Kfqz(L;O5WQrtM+@L<6j7Zq&;;A}|4P7fe358Vl$d7AA_w^uM)B$lm}aNDyL! z55w64^WV)43Ei=QaVl~T$s@jG)WV_jXF5jJ241v8qJRN}ozQ z{vEgz$XFt0dK)372GqRxVQ;Ca+K05Mml?@1fX#`gCqQ3XmYfMnUuSJjxFfh z7AEkkzx{_yBMtrBg&r@3z1!*l{89S-%Kz>!sd}jAtTvHqdH8B}DWOpo3lKKOLg<{)dXwc>_#N}b5fd87U`6mN{63I7e;knACGl^L zKg)d@Jb@DN@{w*$z1EuCX|YlfIdM+@Mu2Ly#Rya%)d#g-{lrb2)v)Lk90uxujI!cU zlMojF4i1+FYD#@#j@skh1HstPs&_zZQgm^vAIDzLJb22g9kx^0tE%M~sogOB8&@Q2 zm8H|xC?hS%U#K>)SZ*%@tbW6a0g^M1v?ECvx$ZJRFFc=uR{b0*!vUb~VfQ5_rCD`b zh9UhcE;ovbn#%?T!d$kM{!+ts-Tw2>vNyhQc?ZiL&JPa8jK4{E=Me7iUe;4qU-n~a znis4z+shwZZ;<{?X`w-*^xgp9 zm5(=TH+Pct1`sryE$0s7Q*f9tn&Ga;5xX>~)*)b3m5CS+2kJJ>|12PP4M_USGhb)B z#MC_Mb;}61baJey>glS^yP|Gjd>zuvbUR-y?+4+cNr9C}dDYY@{OQK_wnK-U7RH&s zk4ITb*yJsx&#b}uWVLF+I;U|Mc*WdK1Frg7%`0%p-go#FG&UiHhKjMf39|9Dzajc? zoZPULuuuf2#*3u>f+~>ci&gU4n0I`sJHJ-RbUhWOzG)?$6RyTZ{ZJED=;?O2=VxtC z>4yh?8jv(K3>m|0A*GqKn&c*T;51|I1g)3H-Bvq!wuF@-WnqLMj-2V! zwO90EVu5usm%+e&l#MZSI29 zd|mxm*J;`~&pHRSZ_K6Bjvzr<8l#LkLD4zxpfZn@%*E-AjnMPEv6J>cyl_mQsper%Ju!s&C&vjCtZoycipzmiXIrnx6g`j ze=b52r#U}BAJ3cTG6;L@@Z;Wfwo_6~jJDG3k2GWaW*^@D84%Y|j+Jj;Z1dkhtjG*% z2Ay7H7666P9tuRX00aYH+czJKAfL^j#;-l^^Gx%=Sa8=al8 zTfBuOm0hN>gR*%&$JnXyp&go_0lxo>zOQG+lQaqMo0v8g?J>67FePdX%dwuqrPptk zw(Ektt1KnTHC8H3J#v_XvQ7r^RQGwvtn>PjDi0ZV9wCn#@foz|12vjMz^wq!nL-Y( zo7dusUTPBNRg-3VVq>dh9(^B&$si|AdyaRK&uB{#Z4CRTwYf{MTteZN03#$CFD`Bye8h}QC_Q&AKW+P=U|Hn1F_cWU;7nKSL6pY*_mC_HgGRb?*$ekF|{fQJf z1X>%_opbH_4Q;$gwLYpX;eJ*ED2Vu<3okJ(fXDoDpza0@_QFP=WFW!-MMbKPQ#+wg z)cSaKF1llT!m6Ybu&7*>qU=WIC&fj< ztlVO&J_=01=c5!LyqQyup6C;yuf|#o>PeFaNe9`;ZYE-AmRg9!Xr3-M(9_X=#;8TeBL2ubHkw@Sq-ww-Q;`*a-50*=t~TSFg?dztPIMI2@KYRy^?%jDKRHhKIcAgX#M^XWlqfmdeZ1%R9DR{n=F#c4tyh zopHE4m^c}C;Hx|AuHHoo16+LSexZUkAyc2d?8vOb+{Itji$P~w81(+Db7|nyZc0)-g*tunhrOixx1ERYoif ziWH^D6UMd3?y3mJh|e%(>F5oDKELVRV5l#7ZPzYM(4_cO9fVavfXbO}NnwXO_*pK}1tWn%La%VJ5*REY$KqnbQPQHwcjURd%rxi@&UW!8os{Z}jNYRP$pf=U<%xQ&kYSsb|#Qq)^R6?S^r! zk-|G0C?0xe8;2|v=#-y5<*v4`$4>25@pcAYem`Dw>h7ER$Nn$&M$Ww1((-Ek)RBd8 zz@CW-?>Z~iE|CaWwR^~TB*sSyB0I{qyko2T#60tBVN(Ec2G_j!iMAgCj&EPo-sEnr zj^;TqGzA(65!4zO$);lDfCR8>uxTFlv^m;6Ty^+2<;xku?fiyEdGb3;|M{(I&p_Pz z!xbrQyMpnlOt2*^Q$}WkSz6pm(wa^OPy78m+;+rUj&2$>_3KUR`&yapJB-Shq3KEb zsek`wOSk)1r{Xs|hszOkZF6XByy|d?+O}@`D(Elh-(*^(j^7! zQrTMDm$PDH<2EPyLCs^PfI}JJ2qL96YAorp0xiX;Ew5-TV3439v}@7Cd2~5ISs|yp zX9zk(b+h)jo~yh5tcN{9FU%JY-p-9$Of&x>eNr^&zVv&L|L+`E=)0p-rVb_AYxTy} zmVnEnlQ$6ex8hvnajeggdP8C4HS&P`1Gr5+!HSR^#7?m1TrsXTzErYrLPk0s_A+4E z=Wn`a{J#HfyODL&2#NeBmy>8ST^IfX=o%L zdAfI})|iID)kl^SQ`!9Gu4fj%0*_G7_ZA6Tx+yO*SdjgDSLCM2;Yp8zaqn$|zq*fL zo-^gA09L!Lv=I$k0u{7&IgAmxv6xwqAzix*_HD)4bVicbIi@`N>`^5zp_fREZq(3` zjby9NQb$L_D^Z>cDl>*RtonHW;Xls+>igedaFq1~z?c?Y&^$%l)h>tyY_1p(GBQZ^ zavA|<#FdlWG3bG2?&y$(!ZDR(7hBwEvI2l7oZUaS)ZO`^ zjr=d?-Cn^}EiR}9f~7taO|XKJ{2g?%oPF9|f7jj^UhoSj*U-VquHZv z!^p4DrLF1+^8W~n0i#7vXId~XMlK~9iXzj{nRO1&U~VAHFv{HZ#q~;l&I4QJ=RmY@ zTg8k0L~dw>2gAEJcFDq>2aakZ;Li6q#s{=0WWi-sDBYhvg(rfH2IpCohvqFlWDppy z)(e<@)2h4j(iT~Nx?t#udKDnwgEoU|Dja_kaTf8jgO;WWPNffXRz9(Ao5fk?HJRAm zA$f%VJ;v|Lcj&FcWrjtmu-iPu9=~(ojlPIUyE=%>!pM)=^|4ho@LlzOZHL7Uxi0{C zV1_S`^^aUZa#rM}hCl1_4V16F|Kjm;roz0qhgI7hzA}9M#~qJ1O+ABh znHRu*VXBhBy6WSA3^OMkS05p_Cos~<`lJMSpMub0awzQ;a-Qbbvx|^UTLCh4rT$)D zdBSVBJm5vI(U4W%A_}sGt4e|mLx|$=lZqrC7wA$A2nf!6cWt7T#ZC)ZvN=sNj5~T?aN_WXSpuqtML(T z){@g zkJOxOZTzTiYI>xYmx=Wu_6urn8^$ljsMS`v4`f~u9v4X(*d^YxvFQ#&~<&fn~ zC_c$F6&zyAsrKC#iCTc|u$D0eB4!_`<)YO3Y_%OY^=#D#U|CzJB6AqsVqb>r;F3*) zh-WVk*;dHAcdyNK%xKsE6aLV0Q^HLqhW5r(RULRVD6D@%{Ud!Y58T50U4G!LUdMrP! zGBKsN`-474Sr1*2$P?~Ly`#L$Hm`&4}RnY@}UbrscfPt1yg)@{f4z5 zqDQF+5xBKrF~gjkSp0%fm&m3-kKskCS72`cQnKTn2)o#mU{t+s!=?O0zk$Dk!#v*9 z(kgep8L+xoYzV&CR=nUAzLJBi;R|K0guD1(a5ki+aBLA`si0B>*$Ld?-crRcpMAQO zwvqc?lvTa=sA#!SW*PM#(_T9$jYK?A zJ`vUD9^o&YjIv zd4rPH1B!?Q&)lRA{z$(nCGeEN2Q?t-;9@oS@U38SeQNs!%`4!G zaNPj?zvr)3=L@4Q;Z?j2RyKf2MV$gis~5{hpte?DP~iB1wh4a zmri+x*mvVL2Eb3phPHi_clR2Fp)(pRh#^NzVrwq*@K^sFEBWEk__qJ3h5N7C*0QCq z%lGQ*pw_X02{GXZwch6F*{mF-YtA2p&os|ZkewjbX{MlxRzXKrEsacmizLG56mNzt zNuvy|0UCi&fIBUL9||x_E)&+cy36y&55T1%!c4nW9_7T~=Ajh|^Pfff zL8}yY88a2d0e-~K-naYsJ|3J({~$f-hU{|>B0m#gr&R5d;{U9{S%gcP+@CN?;V7Ut zzmqRTXRjpY<1_oyb7E9I1H(SZw(yOW#;&FUit*h=DX`HAlZ>%t!KrcQ!~IB{5zRTU zSXP2td>Od}e*U3tZTL-7Kz4>X!qS|&;Bsvz4kTiPmXWr0yB>c*qbj zVB}6HI8`hX*IS7xYv(0!{1pZ> zSk;@cxx{Fosv*!tA|5MWecX)>DqEm%$6huD4|6qhBoPk%B=&@p+oHM#nuD=(98#># z$-obm)<4CaBeNp8GzYtQE5CIGUg!dcW*3=6QaW~whYR0vvl2q&t*6FifQtdpZQ1+@ zCP4x<$F3S5pWmRP6FguBnEsArIw(Ky8B`~#x*`pd6rWTb3A%nS63k+(yVbEGg*4~; zsh|d6{mbN8@8e-zpbJBa!Vqig!UUh}$tr0Xy(g@MX7@zB1#8auO0V~yA0s^hH!uqT z04bNqtp~Q?6~V51zTc?pPCu&It~Wm3#XNZX`t>EQX4LP7Tqg_7I}VoVf*0I((>gp> zuL%Y;e443H5RaLjdmSa?lo;3(o~x4w+s8YM6c$KGHIePqy6uT-s(}abo~`ukpP$H2 z9DIpY%>t4ovQ4E=dQ+2JJRCQHDrXmgijc-1G) zN@Nla;m5%TATXt@L6eA`J;=T|N}sj+x*jiSdKq6JKCiO$g^Xp-)V zA1pvB3XcP5CW!EqO3V8KL`Ci{*WLEfydw~DlDFTEiT}RL-(>PI#d{hg36ZXoQ$Of6 zq6!npq?~whS8-*&_v`mPeBule*)?>Isf1vQz@&p#_w1>Kar3hruCwUf_~GaQi$a6J zcwMuVpXL)!>=@N^p4jgGA3CTcr{f6{Fa@OZ%){T0S0PDyL z6FEuwb6qP7r*MC@&tjnk_uG}M)#(ebB~rljb)kq(y6>UH5acpV=%|(;H_pI^1XWm%@ATVkb7K@IJ%p`p%sP3Jb}pX0z7Fe=oY(-aiBAd)%CT22l6g z*(Y=)jU7&TDfWdHPHnilRJM>^`t;%aq_W>1zlY=^E4x)q@m!lZQj7Ogsk!kT6C*3R z)^a?h6lEsPCrks4kK_&4tPrzryu*H=9Mb$T0pzzdHlFZL{vcrvGPe^aF;~?B^}zHB zG0HrO&6_)sH9M;mVQ9dx`BibpAr!q78XqVvEf4(woB(q)xF>ksu_(z&P14Bc$VXJh zsqrCxuWTKw12vYA${o-VGq8y$onXsO%DL`bCFYS!%u`H(lL)Z%ymzh!(LD2nDEEir zj~(t}b2noran1*h_i+yZXME;@QE^rEE2ZDOW6zlx|N31XFY9;uFTBB4nyF)*kobV| z`1NS7BxaBsxuMATcONh+e0V$ux##u_8zt!~ydicn3zj@E*pX#X7tO=g98WTzndX;@ zE=k3~2j4dogjQ8ElM>#POm>AG|Hvkzo*J`2_Oh5u3F@vJS=lHCDqccMPST;!)yY&B zO*|(k$qN-c;56>eb^=d@mph4La(3Mylr!a|cHbcP+S;q-qOj2Lg7Gl4PtFcWhu(aM zq;1EHEdS8@cPb~z#2(?iQ&~fmGD0%7dU8i+$ zw5Zoge9zV9jbYY>>xm-#pfu>t=``!?Z>-UTm%+19xjZYggb+p{5_BGCh#a@lhnhYp zMp4cZA@;OpfgtPbe8!W2r}=}srOdujWM(`vu*5f@x}j#%Okx=!>6GTwn0T&`gk}Li zW#VX70%@D#{M)w0K0?NA1@FN=*MwBgF`EjwU_GI~K+v&d;kTe1`v;~h{z{h|5z5M< zxi|{5Xo)9EwYd#H@`zZ*GRq;G5(B-w19rQW+q3;7kn^nD?(K7v8PD@ zSGVVA^av}^!>BnW{l{udEqgzk37&o_?yoP<$@$DjAjJ5Lc^#vPd3)?BrOuZ{#velq z(B;>$VRPQ*zT=};29@%2Yn;M1aAnfMK3y5XNJeSMW zZUF|rb^n*T{b2^2RLT(AcX#I#i4_;-uj`?B&N^br7qS^R^sCc>KtT5GLJl;X57$%C z>omXU9H6kub_(WZiD?lZl@@=sc?Wkc zjM(I+BkDGr!ne1%L{D6H5-*HymwwZqf^dl;#oPAcW1`xn8t-a1CvozZg*i)f=|`2a ztQ9WvGt#}}J>)RLBQPLn1@vsmD86E12i3kX*V7vJcx)fr@;jPv?C?0-dF$yF+nup& zFJ=Ha$+<1sZJlfMxYi9CbrI!;SB_6lF4JP>yY~`D6R5byI;wFtRDSR%ZO6Jc9o9PF zBtA2KzfeIdi{>r(D9Uk(6PYK>s3x{FdA0t7Xzs}&IP#yLuwl>*U#Z+n!=d0=oJzQ8!8ToTNs3;k$+E0tG)^e zYb1ol+D*hBknZt~ zR`CrM0jd)c&?lrKbXtOMQ)CW#XD=|UBUbZ$6r9wm<%w)y=1_NBVR~oe zJ|{8&pS z>+zkX&;Cepw_Li0-Q;fm@`KE@7#q&w{xi*G#9yF0+QqaJ^&fHq6I&cj9+g&i4Lh-C zb`-;wtod#4M7D89_2TRgf`v8_7R@QH}TiiBSy( z_B}iE`E~v00m+Ki($@Dqt2Xo!9h<4^CkFd zEXWAC+}U6$F^R!#lgl!YJ&RO%BEoWFQB!|m0{gZS^J^=;?!)@J)0;ATq4U5cz*7#K zGmX^&BwJXdKn-Ksn3OMakdd0D)g?v1@92I*#M~Czdke;^z#iyL-ti zJHwem3xzB*?<8Rjap1s?(`-%dFlSZy$Fh=o`nPzKlD{3Yy`?;RO~Z(X|1r5yiV|%! zieC|lY!DX6EMT9by)hVlxPN*-H-dCVs6n@QhHqjPjZ%Mo)Ta!$Kf*KV=&1^H=^8Wj zn6nim{&k6X|K%;ys)5MI34Z@bv8KI~ngnc`ZG6z(-L-^?dRd~shoo;1vvOG(P40^~ zpg8`-$USMR8IMj+e&bhJ-)f7Z`flCJCK-q=)~NkpQ^9PDH@t=4^uzUC=uzuNgq&FwP4&n_2?|M9g{k$1b!Tj()(zRiD&jBX|WKFiph%L!Th zTIIPZZ}nGl89kL`3pzy-w8Hy#BG0T_p`e@#AX`ue`AeCSc!sp?nT2KY&l zEb;_(RJ{u5#wh z1`9rsGK_BeJdRmGB(zq*e-QJVo96)(z2)-kTJGl?c%M3Fxvl_x%XLGve7cFC+kl4s z8y%^?a_cU}2_OSxw>%G-MLCgfsaB7X(Z_gIf>yg)r*j{AHv{zXPVe}=2t z4BuB+itHvHtDQ+_U{+B{vI0MB&5|u7RT< zE$;o3>Ot}GUvsz%#4G|BeH;0I_%)=cVv-m9SiJ{X1*a-Z_wNobCW_l=`Xtj~!kWG( zdoXOR$fMb^tpyh`7^=dQIOPa55@r(C@d!v>D~bqhGFAFopZqX}$s+n$x$Jl%wr%4dm1=#kx1^NzZwmq#0XZp`Y{s6G) zr+fD+3ZpwizQ#9VUWykg+kh$sVB(^krrKp^)c<+=W>N&@*U{dogyoHhf@394ZKtai zj4ff?%qGy zU~<;ta3gNDobS__y^3uXokgu%MeHB~Pl-_FY#={BLEG?XVzW(qz3p>eU=bS6E`8N0 z{y3tZ6=6zwRw9ea7gP|QBjUdup>d3N4e}ia1u+te0{cEGX|q+F$TdnfBbi^C3c?|n zr zg+M<->&RM=ldhXZWiukub$MgXMZjIsUI}Iw%%W0ra|c__qRB~K=pS6=7ad)C(A=0y zGRqlKY!mYtw9ymH9oH`*9K{x6=-+*YW3ue7oetIP0<2#G#;o_@^aY5NKzOB zzMHEK1s;V0-w&+QE*E4KiH$-?F#=M%`?l2Vh0q)0I;OWVdvfvk?zZ}-6JysgOB5d zY3-9*2$a@kS|{;32lVi%AXxAmxx+o|tnl9)67ANGx-5QpA^(6DEicWC!0|5brtAsWA0HB?e?QR8D$ZYc z`GWS3$p264{4YWus^m=g3G^xOE1Z)ZcRjKKWU0_TTdPlkU-=GVoo~VhO0(|$Jg4O~=lZ^D=v@5?6cdKT-YUL#lORm(UbpWxFUS1}$A>8~$=UDYuf730p zlK5NHt2Y%o$a(J<}w+{?InD|)27X+KdIw!_!>?| zor4g2mOsD_*--Dkizvu(`y*voh{}gtpsOI#6RmR5WHUp-+}wL{HqhnB`h8o2>|kTj zpns#u>>bi(oDtOI`1ci;!9PN;S(H_l&7#mI$}Ws!0+(p zhL8!NI<)Qj0=ztvw2Bm!$`xJXnB_c4yx=Qhw17EIloY)0i{8Mw3bb}9O}z^_ta(Dl zAbOf=@_Hg~c(&PY5fZNOZ3#pTm)<5h+hsUF`Xw}x#;y?vqyRPQnVy`fGsHi;!t!3OKxefD; zY#ZJPWw#UB(o5Wn;OIXd*hc$sH`ZogaeF=%O_G3c6J$>aBq`v@^un`DpJg}JxuxD$jqQ$z+Y;B>em%sr0@|~PsGuorhN)jBVGqN zBhmy9v+vrHH=ZGo3_GQW@i~RA5NhV=4Sx57X~U=PzPgegs34>lQTA5!STn*h;j&6~ zu6F}J=Z*`ZM4LDe4mN+y<8i10HQ}o;)Gl{|?^^@Cy^5>wPGMfAr}5V!c7K!GP0%UO zMRnPgadv-P4khY#kLD&yR347$()J!>{#pUAk>2Y4d*PhrX%b#_^hJco3iEpg$E7)acKW>;vh)a8(CANIs%8tQ35`TkV9MU zdRzeYFWU=OKyOG#DUFuRJgP+(ctH=z3;UD)9$Kr&sek$8QlML#No>pUFQo@BRX@rr zrq_w|?dBZ7BdY`-yHke~zerT3c}miDy0n5CC!o{YRby@=Ppal1uEzh-`HR$Cjhag!`Y3TY4W%N|aa zMUO|qn;a3-yXxZ*>m+n3liwdHkg@G<640);7ZokA83uFP=LfEqDn5yWz70JIJZ)JPt(KDsKE2U=qadloWlSWh|A%13l&;M&*4VM#o6IbS2eP zYhv9pwLts7M}B`~xJw`2!+1qgFCS^Q**H=?x7_N_@aOJUHR1iA!$M0kqt&}pwdj+Y zo7VZ8nZif-s|Vu)e?1w97ra^C!8&vr@&En0m)?5)=$xL}kco|8Wp3BD;~5;Oo4i(a z0*;hhsvdywcC8I(m>6TX0v3D2LDbdUfhOv51v*=nLw8JXupCcl35zNvUZ3ph?vogu z9pYTcjo)5b!A4#nyFp#)1PPww@bZwGWXn)yrQJmIxgr>Rz-mQXLD)-Tf#`Vm1OPc# zT~?VWAC^3ejFg}7xX7%ouFn~g+R8Rn8}0b?Ht_SxoKXA~rr-fn9&RMPs9r=K1n3yB zUqokO%mEHWSp&?@wz+2fY5Gs(z0@5DS zhTVuOTmV)be`SNUKeDx}lAiXCcp~XM+wX%s?=BLMfBUJc|FF0Iw`}`~ptW^Xm#XWi zGO6#{M!(8UXM({z2jFYnw95?TrrM>`fF0<|YXwUOXN;VN!^7l0Eaple%ur7gy+Ld;O#7EX(N$>yY-`nt@W4~?7vW51)x)!NHkC_Vgh(~xcNKgji zms$K2`~uf_`5Pf9s^gQjznt{~aK7 z&t1D8AW`*(hb|hx4j;YO>^N5iu}(n(%D+05zQ`);R>I;s8xZRKJBTDu^RsJEnIKuA zfO5-(k?pW2(1pv&&$(NAL?K9Fv>SJf2LzUDPK!*>q&N9) zbwOAGIiIOv|8060un_+tRJb9l22|$nG>>pLS`OcwYzde1hdC{FcUHl9LM88}rF>cf zvKy97ti4RNQf$k8nW^4i;>EZUez4la`gZ)XPxrNL`@jl$Pj2c;ruEsV-X3Z+Jpc-K zwA081SVLSWz(7Hp-xFdP;B{UP{b10QkmY<4%v9KWYVJW7fS1;J1+@Sg&bCxt(ojkJ z6}qhnZfV&cdtCRIf>^BhSbEqE3-fS4Ph2afFh{r;)| zxIlnM5#W#I&%aiB1`msyq`~_;w;>+eC}FRI*rgI)zVby)h2&8}+CKx$*LrWvp7TIC@iZ$-t0TCCQ94j~vqj}a=+S@;VY05^f4l0it7UsILWOtqGC?u3^$nD2W5 zUqx&zoV&UHl|8`gqMdj0?fZ8Rn!jA8`~BRZ+p6A4?#z!vOl(3#n7$BItGr$;-7_rf zuLeqse|3cTRUm%o#R_6{Guc=^1H6o0#Sm87wVDzZT}cn1o$QK`iA=(?hp3MX{TDZc zJ$kebqJm70e|5A=d*rEFJ+yi+aveNcijdyIxts6SicUSnTt1UzDSRxi8Qbkr#msTV z4_|8NF>Q63OuJeGeVZu&jvVe05eK{9=|=uAx{tq(50xcTcY!5b>zedJ+s%9zQ7WYL z(VC$5l++p7O`N@)FU7~dIXLXS0?ur4;oWKYwJ(fn5}D?LX|dfJxO~@_GgqxmsLx8S ztl;1zn`LuSa8>rtFz)W=z$xaSsk@N)o zyMES9UmU&VYzqDz`tFRH_6zcx97>LLtjA%xtCE02T(_%pY}{Ene@}a`Lv4UtIR5cM zXsi!xTg>kDav8EJLx9w4j)6{xoj$iBlR$QGfN%w#^3Nt0=Ztk%+Yu0$LTg4ORs=1=~Cm!46te_fa~z{y5`S}0wQYz@$lb2c7xGS<#PA^7B>jherh zf+sY9{Dmi--7a<%XvJxyureNfw7`L3J!URGY& z9&xo{@M72v+mU^)E03734lRB8D7*YsrN*a%8ImL|mIccxDsVQZ(!pCs8`uMsMAm8> zB3gA_Q&ML;4D4WnoVj(2gt8Uzd%Luv=6tW>R|lhh^UeSIwPF2O!t-x!w%?9i{cW4r z_{3X=lLl;PDbK({IYKsqSX-Hw%IrW&OuYbuLEPlkrHcJc{G~zw6f{#{H@7>MJ;=!- z;v4_U?h8OxPdn2&!=D%rgY-XU*<@zS&%#j+q101`8aWm%)M{w_zC2M6=ol z+1u&rK1^AJ7{H}3h|?_zsMMma5yhc5B@)%_SC7c&Ze>?o4*faXI=NB=^zuIM7-x$w ze9TXGe`?F9mJM)Mo`D#z9h0;csD z@4GwUUfV4(j{hB@zfY)8EFOtMm z6}1dp;u@Sj;!Y6_Qdk9%`lU@_bkl%_`_|2&4b~oS8fu2N%hS_-**FjLJp)}shvD21 zVg#9^PIjDWd;g1l*4bc6kdqmt{P5a$tZaUczTqGvA}rc}$bFQW$H+UGl(6cn+Z>pJ zeqzm>o3*I_xY};qV+~J>X^+%k4;Jxx7%@exS+r|JklF^d%VeWEjh1DbfvapZ*G!Hk zO!p^K4Hbu>);KxmRY!qB7w=s`3>zr5#{R4G*XwI2XSOkbHgHvu!(h|PkO@l?Lzye^ zGkMJfk#vk`)&oQa$pgw4GRBkna56($oj)=E&aR4ka?WiUscZedeZl%zHq$JMs~GQk zUj=H3Rp=EYmYZrVgY~b@TTgLx)(z$SN>;B(cZ0iG4zA&YbB8lZ()Hd!!~ABV*s7;( z?j-^O`G4D{&0! zA|31>#GA8u>*sw(J1wmujXSR4_jkCFXkH-3kpf#qf_QWOx6&Uvv}CfWIp|#}WghF= z*Ev~6aj;=Ce@J!LFSv)^U-++1K(36>Ja(u4S7p_s*|=Vl`8N~QaoY<0>VbXU@6Y@7eqP;SxmSj!F5y@( zKi_(YJ3EzU(DXHui}zt@;ulpC1VqATz;<{grj05jYKR%wy*x-d8#FcQf~H&_IbQ0v zGHo*VTpZUbGDAagTkepp*3oiUlRq{dFaYHO()Re#X)Zacz95dt`7kA#>^O&Njz9Vy zijLM*<9!_Gju|o2U%8DWGRT&O#|))+FYCs-y3EY*2RRc5JmpCKobt^;jX&GBx8II?u}HwK30Gz%RiFAra316HJMV7O zv({?3c=D(do&9xmc1{$;5|i?xCA07}(3(_wY`kw>KsWp*?9LqH4oeT*DULp9r}=D$ zNpK&Zj{h;SG?H)rk@v0@H}^$)NbhJG>f`cQ+{bA1xh|bWk+ZQVytWGUPws()pu~*S zlEvduKeridbCjOS8agD*p1tn>>r|v0LHuGG)u_uscdL&s28b(?%v}> zdR(mh=YKlaei3@=R(4YyKdRqlL;=l0&AHJ;p>7p{Is0?d0slOV3P6HD+-3Ovsha_Q zc2uo>zaYSh{f{rl+X2D@WD%uxS~@7|<&KRwmkptF)$TA14iBak!= zws?Wl&0LD(w3a-V_%qbg$|FyW@HoHZ8G3f!rh~t>mwCzAv^H{1M8K^358ccR56g#F z7f-lZ2GRJvNs-*$J|1VM%=PkI)+%Mw1!!wWx|;+bH3UnMDxN=Yy`|)3`>GIue0Z z9mNGJjaK7C+J!G_qJ0J(3TKG}0oaHsD^S3~JmNv*afsA^wogx)bH778!QFH1S9hO_ z%y8iz^TBP6*OtrrEN|%8z%x^$Y1Y@rezpZ%R)&sItg~d-&nV@Bi%rXorMVJw`PXS| z9mVzgqr{Kxi$SKtS%ZX?yp9a_rB}pyn}Ov~bRSQ+teaRbiaKyms*Qi>er~jz8gL`r zYx-1AH1%io54nJv_z`mrS{^kef*WMA@z{2~BRdkJeqa(TEspHK%#Mu>OwPqg>6><} zv3ZZ#-WoN~0gnx2G-g)vetvz=^2zSi*u0u#*F}VHeRFBg0*Uz%$F$^MBe`=^A9b1E z0%PDChR6xdszq0!VSn{*bJtPrCi|dY6Wh6B@A#ebj!*79G;Jn27mU7kBF&P8zMzN# z)rfC7i`koIxJ}S)D{yOF=f}po$R1?u9vLx6f@<$}&CT`0!tXxX&sDK>S$K8j%-GOO z0D&;+gt$6n=Tn>D(eF?)-Ts;fD9of99RDg=h)6S%yQ6VNsLz@g?B!`UESip^yONK;BJWhJPTlx=cunZKwobublrhI1)A*$O6i6^iHlx}2rCiYdhOCq zdHLY{f!0%uz8q!UtAMepx&55XLPv9%Y)f9Rvr0Aa5*M{)CTnL_SG#>~tL#GEY7kFw zMp`V7C?D#N@UQzblVbgI%x{n_RrY>MKeU6h3S6{}@?b^P@aqf)39;jTjh2+?XrJQ# zDqp`tf+EGtNTh_`i0);!El~f*h-3c4xTaknr?E?6#OB#l|2#AF$Ot`r7VY`>KPJo5 zXiY^PdX=s^24AEn`j2LC^yS5Go}B98AjIw5QokRSJ!1l1#HyJwfhHa&8i*kx*Pw|V zu97C4X}sawd*VHIGLuSw{Fy3x-+tXP$mYeU4fa2;$5J(zE|ag^2Xg{6;oRyt%)0kp zMngVA_a3)m>M&Qsm9rlk20J1%W=E~-VEXl$*6`C+pHP3uij->4Z2v3t8YabQip|D< zi~ky7+}+Y5ll(Bc#$?8TL7eV<Bs-`Q(WkcIS53`vGM`4=f{V49)Cr2TLTSZ}i*Py4< zwZ)bz1vVLx8a&&>C(^@QhhA~|(2gZR87@}w2KXv7F4gDyXaCz*Y>NyGPT$Z&W$(#| z|K-Tr^ct(eaCnsX3I4uAT8={vq3eG-Pji~AT&fmc`%%x7xs#CwtJnt|Yyp(S4Ilt=bwAx7%M|g0^KoGvaYYdxHQCHjn5_~C~4JJk6(RWdz=ZexGz>tTi|IS#QOCaw%Q zR#^EV4=5H`H>T|4Jf4bEVv8=D>eDjoja@PwBk@xWe)wp>(Hu>4J}y(MPa9m&z>QC320a!)j#BS z)|(i$>`kX9?6y59z^K7DONX3i`R=j-#!XUk?ZEc^Phtc8$b8OV)zH+M*ovIcI%TPM zwEvZ?D)r~pu2y*0W$msAhTVVP3}9Xx?Q0M#lbo~VU$7#0ULPNicEh}##fojP( z^owUrKC8erQNo8)Q)>f?p-WPZId!dVBVaeH(W@;oUcMj|v=S6|Ner&(shzz!5f$B) zS#J2`T2nD(B&`NmZC|vvv1jMcD;4gl2<6yS!KYE8V7kLT;&O4BAYtHHO^-vJa}6fO zlDz~po#=hM z@51Vjqm0m2p|I}>zU}R=O%PL!e&72Hj*&fAz7m|890)byMqVzCT!vn<{`GMXg36hA zqR4L9MO}!Lsg7vdp=IQV^9vt=i8YyRL%xax0l(ZC|FBbUg`omdx+T2pu2bEgy}~1< z^fjNBTq^Tq*S}AoQ%5s%u7rD5@<4mtI_16LB4ECCXf93=r>3Z_-ry-EY76*Z9EfEP-Ia4G zzi{XWbzKd(T(Q@NZghz;TkDo}OKiA^#A^!tO(DPIBrpF_-OG59&1Y?V*!9Z=WA?|P z45lV`dX9QVCWPa_C@Xk90BVUVr#B4N^b0y2yyBOi-PUHQ(er_Lqxg?{-%v9G=wsx* zqIyr4DM^ug5VLz)Suf6=S!QHz-f83%{AjS(DSgH22ZIAkZ{N#``*YRFgF%UVefxzt zgyQ zu1QAS8ufL=CR8!m!Z0Oj9m$)^kfS2+eg2*5NO;tmvtuRw>cJ6Ev68`K$AcH;lx1WGOy4uZb5#hqLPP2flHDHUfg+Pj z)kpFbGcDWNqJ}w^B;DqmUH83B(YvBE zNE_~uefMk1p&`m+KQh5uBo~rU7&xZ*uywz%51*;XbjoTm+ zk=?59+6V=-2T2}|@D~$rUS3k+TML^eZK*g|d+@n`qoCI-W`pvnPI>si_LvdMtAWqT z(?aya>to%c^zA%?^lRMNe+H)g{NLnw1rGYox_<~&LOogc)GVgt!rR3<6K1-}^p)?Y z>j$}kqLFz7i3T7rW&o>c2*(j=1msNMaxOGmAT-$Ck<2fdXEV(LQ^J2UdWv))`3FT4 zZyi4$_t8*m;5ZKwRdA}_x1r!`WV5KBR0Hx(^tlm3zKsri{8+y~EWZe4GqYb_P57az z(%4BkBT>S)W4cP<4Z7osgSYFU=i?LWb@?wbAC+sDLvLBhmEagc4I7;hA^uHINI#hS z-_^H!3@2uY(xS9z&RZA=E7odCP3S2|+6*u0bg&?g2aOUY>_sv_(<10Z22zN2GKd6s z?>|q+VGOTDwqZWJd^odd&P$Pb-b5Y^I+Tpk=R)cNrYEBRNEEyr<5pG8+V*C;iY#G4 zm5mu!+MaONv2|iT#Z^MzE}zYXyZ_8)?D;s|zJ$w%)d}4edgzqnUnAwYagw1#{tpZ% zzn*8My1UmOvCD3$BGw7XEz_w;9G|aUiNHB?KRzKw z2UQZE*x;0G!|;hhU@e7R{iUrU8@ZSKt`vd%Cn_`h67YO0&40d=- zz+w?@9)nCJnYN&$ue7z=y^m)7C;g`CI)8x>@};{qg#fW)oN42=;QJl($7p>uExFpm zZb4}hOJ9F@S)6*OTy1Q!GM5ZQE~#V?1o(!$e<1V5Rd?m6OUXXvt;epF-67F>6t=E3St=w&6m4c6=Py2SV z0tY2kgT>`v8aD;5c^%EZtIokW(O)Ng(Y!vkl(nyZl&Hco(^z?JZMK!6k{9yXSP*hL z=6&{-xoE|b1=qH59DY2H%xE$x=#CT&un62~^*C1W3Q~n>uo~bP0AVNRT(r$R!x@?8>AbP7hkbEXJOK6SDpqNvvG}SOe*W0hV`~7pvmrySnY{a$ zWioxRK}*3ow#Nr$7~}@&VkoY*LO!-$*&23txx@yY79%Nfl?ySPxgVrf>X>M1?%WNW zf#DwM-FdEPgU4pvYx71ij%`}<(TDE8yO@o;a&?)3hUUseH$XKTg3(%%^)!jkkAjET z_!a3kaQ#-hMwEn6S;lf-wm?t++9tnTW!3g$o|LyQ2S6Y=#D%F{vP|UxHJrtoff|eD zny0lF6$uS<%m#*)dJl}dGlFnRkeWU3zy>9xmRmXCY5M`Zx)^>lV|w-MnB$WdtcW+i zoxXI}^XJ7F(rfh(j_4&paS-3{pj~1s5#Hh$LLod;@>)2y3???ranoye#VC@St+xou zr5MNky#VYhkxjoOpApd(oE;F>@z=lg2nwZKR{m@L^VqqLg+%GxBXC{--mtPz!DzPLRE{KypT_@`*T+|7prb@I({VS;$ng7qg@W6)tA@kJw%V5% zD$ibBd?9=4iB{kGfv*6Fet>;$rm{T!8O85&%1|ILbntY1*a! zDnIQIR6Duk_s(yXV783~OGp~(9cF;(}dzpMA~$@_zcImXheUDbZl{wvuE$iL!U z_rosF^y%V^f|uOog}ru9ZUuZ>pY_sD$)VpBO!`x)2iLPMUYXlK6~y*_`hzz=Qwz)x zRX|!iB-AeDhzaJ@_BcjaToYtE#!(yz2x{^}(a;IFmIOx9kc9w@mLUKqGYqAp*vLsH z5=*$FSFe0HR@uLSch9~St+n0sC;4==I*d2>M0FZ!hy>jqDByQ!a4>-yY(Pr`*a+lE zU^xZ>a1GtHwt&%1#kvE{xua;%aM(6g&R#>}{DJUZ?@Eusr3PY=OtH!=#!z4F+Ur!e zHA1&RyT0`UrKni!KlXiGY2Xf0Jt8?1gMe*~?g1~S`&d)p78ZCTa`^Z#NL}|SHWVA) zzJf(HC|=`{CNXCzSLHIMwePu74%)=R0__N?vD964si$jd%M_n^cL+_}+qPI+x;@cH zQz>e&kdiiP1q8)z&OL?!;G%^UoV!?EwHL_ESVwxMPvj0QMCM6wYe3XI@Afm~@x=s% zf74sU{V*(Va!92bS3ewRA*?LN>^rF)gkx{K4OyL2__^$?aNojPO#u;9P3*yNR@*LN zWaR`a&Wst-udJz4F{!j-25STut5-Q_7cWzt0t;W}hFP}>CiYa5 zF$+RtK)BeNS==99MKysv?iF-9NPvcnr8hSA+&=Y|gDl4@L3MBVI_8z;=H9N)rk!AM z5qGIq^OV=YueLi>SP@gjbpXK|>7iEyOs|s?D-v39<`TKAx!0nWQKYqU*!r-Dq6op%VPiq6p2pg=Qdk! z*1W2~xO*zB--!tNKju;!z2pWV0>+Z#;vzQMKdM9>s8ALLF9d5q<`ml%U3c#Do0eF6 z`=7XMBCP1AhW!p)+(I=m0p@zZB^ASGs0QIfj)JxP;@TyY;Q^~a zhZVch$jd~b_Q4-Ao9Ci);*?~++#Osi0mJ^ygLR%5)>x0NkbSRUHY4{U_C(jQM~||q z2ToL1e2%VRj8}od`91hnf2lWtuT1UdU7T`xgK)lj9|8?8bGSp_gb+3+!aE%Fo5Tlt z(VGep;>kMB2}Na%*xo_4Q*3B_h8y_i>q7rwpjG}fFodHtOa5>V4r>Q)m0 zo;_&5lF<70X_xq_R*d7yOk43ugmP3f%A5ek@zLgK0oMF9*@e+`G-PN~2YTi6FK5ir zCna+Iu=H00UrB!|z23L}UHPC1^LpQPbh=X{AnfNm&2mJ~g^RG()B$MO1GJ$+u1r;k zVCGG=J-jN7>ezXCU0rPlnYN;7IKSk_gF)x^bmxCVnc)^`>v}_Uy+@ZEaj%m>gblqi zis0Ac=T*RJHqB1o#S{vIra+-Xgldbn)l0&&4i)4SGA6#MwmICZ4StS<7H^%_-#Y-( zxmYsB%FrRy!(S9^>v!c(2g5-BQ16(ii=j@x{2z~2-0J^Bds>bYO*0VNDSV|vpTDyC ziVyh{D(T(m_bL3nV`W5C7`YsD|!nH#;BW+3Ka&_RCwft zTS$gV5}6=p2{Le&FBQP%yYQrf)`I(z;%%!8<>St4a3?@%k`+$*s-~`j1IPSNr}fio{7O>n zWJ9rnb{NUN+?%t%s;Mr}J|z5jsN^N5GAUOY_lyPaRc*!mh-4Q*LThw zET;QQyU4a+h2L7cKq9uCm?Bv%BZZ6Knq#zbpY2~pI`l@pKyL&=aYSJt?2l6JARd-- z*8GKPR-2)3zNwG)^TAA#yKB(A~QrUv#+t`O>mYAu1=+uEWOc79q>?$(>XsHn8hKd>bt`eNeA zpEiHhA5J*K`4=21Dop`+Q>c{P8YV6bwUiWhT0sNn3s9(JH`kdqVb{Jdt?4bt;F|k$ zvz2pKUPdyVvWx@$?Iv=(d`V|gj^6(MaGEm+IF-YO@*r?FsjaW8mLb0N>?MkdnTgk` z(`N%o#73-zLi4SKrQS4V|Gl8IEF%Og{=;K#=~(F8r2`9HLZ-5)3g+~j7%|P&1yQKU^7sO>)hRO z-KL?Pz0*M(zBBT^e(AHXxOq=G@VE8#b&2c4w60Jv<7U5HwhWetIQ0(8$NRC#VnRA+ z70@iJaZ5b@W_hv4S;|h{k?!N3Wt<+-hwi|}MkQ=-^GH^__0ox3 z|I^8HKz>hEud!1BK~uvn=pxFR3TCj?S`4+_dZ)tohBIN|m>VsHZ9PQBzlTq1cp2z` z0tAP5yGF_!9!)Jz%F51ZHjOKedpWSGtSWcljllY3ZE}@=-ATb`fB1djGk(BHVOF-V z>LIZ-9`)I(`w#LsvxH=+i605dpnPb7@Icv0LmWKndB}QT;-Lu*Kn#rm!h-!z05OU~ z6Llxw*&(%>d2`F<=wjSnMNJ6E9a@QG9(ngZ;lq`HQIATa#`C|OetvI~8V5D}4g_^V zbDXGzu$pSCUW+)xw!_&?m>?j8eNDU#Kus7;DlGrJ@9+nBz5El2o zT-8K*wI%^7<8HMLonJs5JqVN?hqYga-!cG#mDlv5rK)8(nXB<6?BiOI#Ehvs&%gbC z;Miab&j0zez~eQ4xgil-BNAy)C~sNmPF!`JYD|5_HKBarRPnA#Ex&dAX)ky-RgK z`>7u&8`rA0Dja0Xo+CuxTBH|+b~mefzVoqz zYi>{5MBIDj-&b5kjRPf4$U^tA@aw`UEYPdn-i*8QYzGvM>)U3u$m0>5ctdjEP;DnV zZG=DKGHT8e;J|6AUPDwJ0gKQ9xf8+gZ!RfpwQBG7pFz6&yO%&<<|( z=yz5IeH$d0xtX=msC7>!!IpG`lKhMF1#cz)M^XY2UYSW8?e?ow2 z#uX}jt4pAMH} zK?cQdrcIxq75*Vt$EinkkDrJTLm!O0^^+GPl5bor zhq0R^T25cg?fz}5-*sm0f^h~@@b$?2G%W>N$3tH;ygcI`e?vslW0^~4W7RmnkaoN- zNEM;RPx2rZf6-GO6M<;MJVBif$+rbHi^5tMEQ;pc#(;hH3<*y}A_vlxufCq6O=>;o zrsn?Sw)_UJ!%m~x^NbY+2GHn06Ul}tcFat?Tl_$+qIk^8$E1h)fkZUkxOj*W8mMt1 z(9TC@a1yO>yl)xWN13d&9~N4mnYd%{-iM^C-LNY);~=iR;=?E>O2`VVn^n)gc^ds7 zPx@s|s?wkmI4phwL4j1xD?SlNOJL!fW4k^Tau#unN94%*ONMIWUCK?P4-^hfk7rtj zigbQZ3?*a2sngT$d$>LyxcNYtGTB0nh8otj<3x`+?@sC1{wIHNaRm`5pS>_7tN-Z~ zfrOrK83v0y^wL1dZ6bru-f?t$&FluISHA2ziSAtI!>darR>;igOSBfl4cg;%@dsyvhPo!N?Z;KjwrhK& z-3GZCu6meXo8p5xqgsz|^1J&|ls`ylirc90m)d0c^z>MFVg|&D65juPp+GQ2=#_T| zx*Hb7Yq6ZObFrclJzLt9I>TWh&8Khb`I>9j@RtFC#m}2jdlVVl2+*0yGDI~c`!c6% zk_*HfJWyct^u64>Jsx6ofGU^23vG3a;$dw(h03^Vot)VA1DdN>B_zxgmIWSst>K*n zWmWNhA`VD60YF2$p5=Xv8@)Dz^C?5mrRe1-$Q;2dt2235Y7>k2rzEJB zj##eCcxb({trg1SQRB5IQgb6S@RruwhB%`Yw#X0`3XPV1jqHnez~+nzyah)eT*zA= z^zC?Z#uw4bL;-y}7xUROYBmyR+g^gTUmHRV+|!^-&kcH6KeEZ{gS>SUB7JzkacXX~ zNbgEP@1sn=k~(r>;ZRMq;HU@qq?F)4(!M4OSbVh`m9F`*fU>=f$DI9$)x7_fKmjl* z#zo$r7NJv8GojplBY*$Bl|b$ zKA<;sjH2&T4p85#OTT6ubkUJuRFla_d|K|2{pG)^@kQ#&&^Uo_L`8?|+DXtm|20lJ zhNK;B-R1@z*`5@i8x1J^!;@33Bw4#VblduAXp=c6aZVJ^I8Jw;Hi0~e`y-xaV75qu~^5_7q+jh$sz|$p&l2e=-=SK1kbL zMs4ZT++2DSF2m8Q!!nX_^r6Rb8kec-Vm5N@LNcE@mOKINptwhRQVjFBSY`$W=BL5k z$1VKAY8>paCu2J69D4sf|Ixg`RoBK$G?%+vshc+v=RArtyMbGR-9+aOSJ7Ix_to0I zF{llC+lJLvj4enpvw5f^Dcb&kK^^?%+G^LXbpX@rt%LAkojo{xbwayaaHC(nZI$Z} zD&yX*pH*Sfn67cnDh}q5U*EW_ni_$nd6)l!Y_;HCU6yu1Js+{J1%}Ueic9X1n$%#m z%UF`0F0HYy)#a~kytUTbJg3^Mc2CQNbh}n4*i4``(QCN$6(CwmISn3(wAsWn25z~U zsE2Oix>q|s9L;1zCi94&q*H5;X{)EzIF@rl`Ukh6fBOB#KT(`jgT+DLzjOaXzH2Ae z8{T9r{}nHy>5=zhw*Sxzd_R6Id=^8q4rv>2TALe(`Y5uD8+}0NwM$bU*Sxu5&uhe` z)REQ$0M{J2vKHv+txuDzH?W&^(KE^*EjJ+X2tmTBnUSTjk#{NAInFOvB$T}L@SiRf zRQWLSwQQW?iqS0e|E)XcmM9Sbq%~UWJrB=r|9BINZB#j?UO4%UI;HmeJ2#pYpM7%fVyU zTk&Whf(%{@3)Axz%>I9TOZkJo2WPGble@lOL+Aq_l4nZ5`%c{eHH2J3C~$VYu#7h` z57q^IEOu20s*=%SX!IF2Yzef5ucV6xaR(81l^bGw0;zcYbt9`J%z~10cAQ}@M)Zfh z!jE3vSVL>x6}sZQNqrPUA0iUKj)g8k$cE9IKwT{(43}i8JgNP2_%!q;aIe41SrP3o zyhGPTj$T)7A}u?btYpCU*-2_=F>T4NW}MNG`jDcQZlKtj>5w*sGW<7Y7QN@icvR@z zwT3vQoCb{Fgj*bQPPl%Y^1ddo+%OeoMRq-}Fl`j-YF7e$I9pNH6zHfJZJZ%kg=;ZL zf#f5qrHR0I#v7Bp*hHPN1HS}&JAY1L4C`0NU#;!_v-{^C&=XX7)kJ}Uqckm5IJ6k* zlEV<1%Kgk2?N`Wz?W*PBR%lV$Pc{;KJ+E&G6-!=o4`=|)wadtVBB3JLpY1=1eLRWJ zhayt;nGWalMcl^YBwH~pjf}e(0WrVyaU-eEN6mK?vpyxrD$0G@+}*FsyF&xrW)9j$ zKkffDUd|T84hD3?G_{FJc^}w(N4cOeWf65@;2|ZLTz}iYMNpTKkg*4tGw;S0j?9{!_)`aFzjy zaI81RM=)%vHfd6(Y4XY26`3Mb1JRuPU!{DA!yREIv4zn0>XWiOdDxUD5FMycK;UNU zW!QhbnP3gf!0yd-hYt0=7zxI=vAXw;;uT&eP<<%7u^QL17=4t2y5mr8wWGJ!4|=CJ zLHG};uP5GNSX@G+@bP+-1<0l@giJV>fiB`WclO{;*wpeF+JZe0RM|2?ld(56Ukw5?|^t%V6USXyIJfv7iKh1+#Ir(3;1pj`t3 zrXRgTj!DHQdFi$=W@2a;c#qx8;buK(jEeQHd~zx-{8i7ay!es)L+FO$r?b!}$UQy= z%!BxV1?yG8diGUgP7EW;_ zyh*imFvRa$m3kEaQ$@1Mw@7C_*)+2F(S+u-|W}$5m z8ogm}A^X8JfYM%2AJja?no~OiHz}YDEt>qh0^h`%Ps;h9&JnokmU`1LKDC;4kF8HW z0E3f=h&Ysx_bBudYi)oO0}rl{qZ#KvF!rZ5W38(ICOBHt&HO%1__9x&kqmRhG@4dN z+b0B+N-*c95JlZYij(+qiAmJeNTfpAJmV*CE_U=*l-v@3jvFSnpp3cL4~h(-c<7dh zVbDkRes^yVOk!7i`<_vh4;l43zn1nb>rNm991HM2#U7WQ0Eol$s#P4H_Wsw`WzYB# zRzst=Kx+uqn(W&J5h275pP^k#J_^zxw*Vi}bE*a6ZC}nw%EIcy=dME+aee$|_R5R! z7g%_QIIQ5^L>s>xAnm~G?Jp`}hz*UJipgH#gBvHCA0olt*~&>xHgqvPO8FI>j{c;A zW=0tiJaOQCCHrYu*qxz_RnCJ6B4N{0|5M20@KBW@wWGR-Vc3lEI->aec{DxfZBMzC z-bp^cnIHD<%Xs{vJ5b2mq0m!~d*)0PL}db>y@GsH^O9IUf5OQ^ek7X{75_-4jZs>NkKdL3II1SUm4N#E6ylihqW`|vmI4)q~T z6(UlEYPw-K(!jvZLBuPss4?fEIvEqR>{#%NoQ)(VL3g`6p z2XC$$28mlcoCfgvjMudrRQhCRaHnj*_j5%%E5tYx(vt>UrCu|mA7nu_n-{4J9=!>P z6;>SW7Q?g@v};_r$#~X~^}C)cThzGMLoN1`rTZf(CM@$)Mw#A$enk^Xyiad+cy;Gg zXVydi@b!EmB_Pv#Vxlgd@szWM?MCf_%7hK5zMuw$b^x?j+DIt=fX#4d-X2$|{it<7 zG^+jTIGCF9~=Ne}rA&^$oT%Fa7+fOXu&_ypr@4ZNJb=Iz^_TI)G_ z{!83Z1!#`eyaswR;ysQYc~3q`HOy@w+&G0(c%#1jXDKv<%Nnbpre(z2RA=}=9UOEP zsf&})Zqk>+xZC7?h5aOaqnkXHyrP$($P$LqZD8wLJ5vkW3K}z|IiE+Ue86`sXoq_~ zB3>o^U?ehA<6v8GUI%a|AUH})NMW0j%_@4?JIT7KEdr{&qUUy(GfiLG4;ZF9fo7RU z*zc0X!HE+O<;PW*=ja8`4!#@+H6Ei%RSwz)oFVR#zuaJGjJ*@a(+a>dnZT>i)F$G2 z@n_s0srVkPHMPA;XtXuj!6H4+g9eFlu(A6*e=HPF`EOI@QeSaa~TC@-j&pO zYEwleOGE=ljWPzd=iHcbSVCIXSpDc0`%Xbc!j%Z0&7o&Fc65cV}D@!3gmcdn95Fk(mSUs#o_`Kgv#ZmTduo-|^L5CmSjX{DvGx zzL~}qc=->_jZvHH{3;$je{!YwRN3HI!g!ru#19BJM@WS(rMqhvk1ALao=jimtnFZ| z289=%B;2Y0-XQXUWy*`7Nkir@VKksJvaD?@k+zrW;BKug*$1w=iQYdE&q%tuh1SNaaEbAI7(G`tcI#y*JW0 zz$NW^P5!NijL#SDWA4vK&VXZn`&-2SnI9>nf8Q$UzIj)h=yN`IF)fcuG3SF)Fai z8Aj-R5n=R`&yc1jf+-XxO!13-(V_DqJBN`JJ!tH;W5?@H=ZDkX77gnEwa%fFx8=%$ zYpx-D!vSd|Hc@ckYC49luFQR9hDPfD*os%p1n7?ng|Uh34Aj>fK009;xa`&bXD`fgW|huvBJ>&-722 zUwxy4xOHm*zXF+Xd~vW~h~RM{{Tlq6viSJ0?6WYn_I%zx*g+iehHejE9KHJ+ysD(8 zh;>_yTJ`;9;doFZ-Jtf#AM}C4ibt@o&O)bIS2ZGKyDm` zk6|jO%%ho>MkuG%%fZ{x@HX@(uiuOCMEM?xDnalf;oT|LVzMPtrLa8(vl>~5A8tAM zHy9^6syIR4%F)oBW%!0zYwP6W{Mrp-xvm<6ygbh$d3@}ujbV*d8(1?$R)!72(iElw zFEVW6Ey4i{J7DN^$%o!*9&my;O?gHWldQK3*el8YFe-g36-D|vaHuTnQv*PH(3=$5 zU`l4&;BH4m%MO9Mpn`_L)q--FZnIxqdgZ+r+ILj2Sq}qR%S()FW~HNypb*?Ws9fH{ zGC`UoCfcQ7idZ8woV8vEZul%CWY;M{vxP?r*Hj*5*UQ>G-DLCTWD2W=!&~wUHR=lbHK@YK_JEgeLmhRNtf@|NM3U zzI!w-Y-UidU!1U$-xu*MvgCBJ)r7ECrK;@jjSnwU)f9XNw9ZWY_a}wa0jf2^7=CIx z9LKG}4{*d#I&~LF(fkVz0}^`UaS-#NuV`v!&nrbj#eW}bH?$%h=L(mmCSx~;VV$xM zD2fV7)VpC$#+uU#C?&>aYxx)U1(B~h7Oqlebg-9# z;br0UU{o_?QtJ$taRtIPAlqt*AK8BEQgT z)SV~DHD0C)?k$L1cTf^tEJR;pVM)g??=uGcEOP2B-AQ$__~e&Lvhah9>D zEBuf+3H5P4vg?4Nc&1UljIn1BAVo(G9{R2f_8Mw?4(nbFt1ny`hono0`r$%7TyTJIs~@&*IN>#KK_SSOVBHP` zI-{FG4cg5xE}3dEpgsZ5&}3Q*gb>(W&RN1e&t7uwkWt0#+3SAzi2f+8fe;S{kv(^RfOBx%QosF6C{QvNYrpec6u%TqC(}V7-T*_XYT7uBYl*`4uKg(}&)q?j`J=fg<0G&>fgy85&aVB$B0hewnO_*9NvXwjQe zv)?UmIHtXoCsE=>k-RI-%R%{tsoIhV@`TEi2oT>Jp-rNA5XgwcW4V|z!3Wm#^aF(+ zE_&45=G|DUYda3*_g|t3;?fDAkE9;$P(9S?sW{^*$y9_7zu-kC(pZ6yRykL_{^bWa zQ_ri?U(^KXlxl8plJFL2h2I&cx zReLZqDE|xXumQ=&_Jzcj0gr1^V}ba3g|=^>>wI@H2CqI+iuxEtAI;+))i$yX*OD9> zGzZ9b!zGSMknUa0S3%?;@rdJhnfe7udQ|D`_%smg%Zr~vS z<2=vBN)gF5Xs19nTC1r3^!nu^X(H&h##JiREBu{HWQ}Grh#+qB5@A{(*RqG*7(~H1 z#w~YdZ1*VhvQiCVKqt9OzoT+(f{LPNQds5c7Q+RaW)USy>-pUFz9ID~ezuB3=;iq1&xTPJ7X;qRqhDK%6&9(EVI>3+xX3q&gQ1kxJ4fMTxSFv z`U`j3fe2$$us0gph_f!JbgoV`7X*{*rd{3UsSQ9jk&l9ZHSlbc`+=WIZ`^)L^duHU zK_2|C56SpzViMI(+gXqc@P4yCaYup%^DcKv@&UQcfuBH%!)eJ6fDk z;fL3WE41bQYo_GH%mE&8Ec#+X%DPQD_1F_PlRMODS6xOwxL8Hf-(yl6h}pxoO_4M2 zM1wjPVo`k^K@4&n_QTlO2;TO8JZ)x-=B(enm+0Z{fEe#mWQ&J-GcIMe4FHi2O`{ox zZkHFp5BTUgiiiH?x)tt1iZkD%zkfhL{DpCkjW=)`O^csV?*X~>HZcP$k#&C=Npy>D`Wa%-0k zsGR;2RDd-20x(LKGg84JNE4`8F+4WHwRFU@IA&Is9}p*SC%mhB7Ac8y*b! zc}GA-er*@A`R@OgF0mKiS>81JpFlW8{W}bVVpiA1oK#`CgWA~PV7Y>p1YH0UOc0@O z`-R%$R*~H(UpYi7Ypu?QTOY&?ufge7wS?;v_IO*MHiBZqo@jq0#;A9!&^zqdFFXL1 z5LeK2byRf{gu-c!wV#F-YqGv0gw-rXrg#^v_NaIgc5j(Wy?J@S8%Cu}1=xC7oKRX@ z!N!3+C$*)UI}8f-%5M+&&pdm)N9lhhT;U22q_}6 z>oKOd4t5TDGcELR=a>!BDBDWYz8F5QSs z&cD*G_j$8{indSv3To&LbnHY^!0t{!?y!)ngY3Vt%g6@&nZf=~!B?-?t2gqtkv7cV zZOYq!%4T`qj)#Q@zd;vp$WBmzidS8xwnIw+n&yz4%_u9bYBEgovjVZ0HXzfJ(P9<1 zA71g6KP@9PWv2TcdZ#d`SoNr(+bO)s@~ALCS9hOHwR?GF;j2>+2&~neIwaKU3pAD3 zg=#{wc4>{pA}i=b6pl}Fgnn$Bn|kKv7v zh96Vc9~4n`P_}YCYT+10>IHa@*J}9CmsQ=uDWS3yEUo`z>D%L(?En9Dt5nL0a%L5! zK8l2L+){T*VwEDq>Q*74LWbFjB*#_m=%B3ch5> z_27L)qYBW{lOztr!THhcVHLfWod_?K|8R6V} zJqELw`N%bmm{OR??|f7mA;Wg$7;y*FB6*7eI)_~A|CRFv&O17g=hyU^=e4HndtDvr z7f_%DGwqa46$=UZVT}o0baN$zjs(??DFt$FCF;y#bUGwShoGpun3q^s;19(~3uS8w z2njV?Kpq?%Y4iI_8nidk>5P55OBcP8A>nadQA0tJs9D!DO*JR9m8hK>;PDNuFk`D?XNB zpl=?-CVK;qvN@)F2eF0mA62#NGsvaNiz^W+%a*#&yI}cGmQ7}h-cO27437jV7~9>8 z^XBALwG)J>FeG$UIAuvw^~x-!7>KDkxnBT|5d`x}6w6ZE{Q}%u2B1dMO+eQj(FVt5 zy)57l_4n-|9e*4h8rO&Q339RVvY%!SVFox*%zr!v_ZFk3?zb8heZ4u9BPGH6C$o(c zzX`L?&M2sVgjZ9~qPb6yl~mDk0cJ$r$yo!?mu`1%Z8IgCzESz6F{lU^!(?bj6E+6n ztzfJmi<2!=J$M>cz|olPUNOVeGhN+NE}HG$IMZH#H3!8o*VQvMuc-(f(3uU97J=tt zSk(pYq+SaN9Jys9ps`^7QpABs>ZbZ)NJ)z&rH?r)pEcTZqgUbALvn>Bn661!?b^7$ z6L7Qy$){w$2Ak@w#Ff>f)*eoXl*WTb*rwj1rU);Gube#=)TB8=0}YN$3~L`A9<8qY z*%usSPwZ9M6S?<5`1T}bb0A+*uF6hHQE7nL05IX|2-bjsuts3NJvMVbcw1EuEq1$E z2OR;Wbv~wk0EM|G?kzkaN)mXXrngMLj(pwyxNOFr|LKhzdiFb{!zYp$+@1%DXvkgq z46;r`M|ed@$Eu-%cJay!L^YLp1R2qbM?A-`f7B7Y4$!<-(orzLlwV93iiFub@_=2# z!Lrw)DyD7Fs0Z$JWwm^Z>OBRdLvAl8!>K?dkYB;VdeSsFP9khcWKB_c*2@VWWz+9U zaU2hc@RmK0#|^BKAa0!ja+cO;$c0=gm$OL9w#H1{{WBT4#H zTI%2)G~@Nb*9L{ZlI%i+;(4L%jI?@U3oD&q1zoL-kXR8lJ&C2kxb*g##L?=``()jL zxkorrWTYtA@!H2ns8Z`PNu%uh!IC z6A;w$!z=W1#G`W!4KooGc;_EWlI2F|3y3eh`&~a(O5Pnbm@eXusMK^Q7umA_P+dxV zTdUAETwivZQLWMW#981JeeIhWWj@1!8~WE9Vgx7yoUH+JNq#`RaLga6)iWwR>-6dzpSJmpgA>2i4j9(vZi};i^WQ=QvDSb1)Xp=-nLEE|P?8d) zp3s~8n%WcJzn9J^(CUf-0K`S#+J${vAi4)R^C?-elN{}FMkP^X4RM%si(b5=ov-XB zBLrkKLJn;*;A$GGWPOTJw=bt{e%J8X;gq(uF&NF!WuMP#DnBal;MR2E*MnE_4&4Nl zf{W9YkLYUwMnfU&Bz#UByT`|_#QVU!I9?W*_?a-87tX;0Gvjph_q4%PU_ge0quD07k|f`b^(6;m28R_t^Oe zF{}IK$#C+{`hs@fU5P1f(3odzQ%!aMKR3tM*OB#w?gz^)_H2&s#lmJnh0zkZFHo^1 za-UEZGa@({j4Je$TmbfPtg7I9(WN-Q=G%DpXq^d?0Gp=T0a=ml=Gh91XX8h=lb`aP zo#o7Tjf;myPBGVBIsCcjM8i0tselq(A5Ty30xL!AW{x4TA za9lYAUJUnCm)&xwiGUhX87|@!M6P&(ck7R%X@A9g_TZgQ$3A+bdGuVk>Ag+L$uY<9 zGntFWh^5i6xw~Q=i%0q6&l=xB%S5hJY2zk&>qxDbTZW<6?6+Go0~qOZkGcaUeIOC- z*36(tVciGe^{=)Oez2;KnJ1ZAUgXGXq`r^tZftDK4}Pxtx01x4lSs=%bkZMYDxeyZoAh^zzoXX_8H#}yyDD<*Xj(pAeq zAY7ac*MhH^u!Tej1e{r!3@z3FCMde}tv~6mz14_x-(d5~zS%OgCv=aN{=BlE$lKI6 zJDFi^QI|$_i_~l}UKC^N{4eOc*bQ=q^PPm4i|-`-6-wDNjN+VgoEc7`s*br(=mT!XH z0GAxGPH_|x=iq^L6uJ{-4ZDS3hOogBcDh}%Z=3uIyUp-N_0zAD^;VBwZF8zh^crYt z`qhGa`$BmVya$CKC=tP5;66mwShORDG&`_wiS5>z4>@g0oo1*1RCYb6%|M|uG59&z z1q#j*IBdxB=y$Pw6*RKSi4&078E)Qik4hf%zpMW&3=~$VKf|KbP-3`vBTA_Vu{pca0h6&2!DE@r>Y*Z9ULb=jx*#7{gjU)>FX3m zjlecuaSH6kbO1;$pd3#0dO;;cg!X}9A>^JDC@t=%Zw7SOc*%7XdK`SJ*HtGQHJ;!K{w5-7+X5*W zwwwgs*UE_>{Fq=Ru@bBh2)elpK8Rla-H9s9G4>P><8 zUd}_DdqWFobmP?nj*DZN4z3vQHqM=vPTbljsXehwlp@~1^=6{H$7UjdIo|wXzD2_o zbNKvY6_HXyEPzvW?liNI-j{O==b6NS05q#_0XZ}G?3xQ$EK`t(t1c0L7)jL4kh5YQ zX=6pKfjz|5ikEl3$@n4kTvW(Fj5 zUg|&bOh{DS3Z_2go=xK3nRUH2%LV?mU>3Iu&pjO$FbHzv>4u8iPC%-v>DH&GmTWW? zUGPuBB#E}JfVLA9QfS&Q;y3lOKYFLPPYgM(mvkmb=k%$_OjPNNW_UEFc>#E%uLX7E z14@PWQVqoxmR1@w*xKIS!a-mP&sjWF8ZJ)p(^oeznEeEJ1HtcpFdWg`+y7}ObS$M? z^;NfyN2RvJ-m!kKTs)tqcdzg+93)3(!LTbv+=c}MXy@o*?5 zc!|~5m2-kw0eOs0eq7-(4om(J0#@UuYz`z5DJsT-^od$3lkpQxGc(Dt;3hcCPY?y$}6_BqW7kE+3 zHfABU*K_q!*3NxUI7ynBM?04%T)e##RhXOy=n6;dkU~FMw@Ufkat~X=)>=cQ= z5?a>BqB#ADgk#mS(^Gx(HSzROd-l=o`6K2HQO|x)^I6mv zRAcfY)njGYB-u$8N-Ej9!$aL*_QSV$u|g?}FY%mhdPtW=zMWMPBCeB|v@;ZD$xh7L zazY{Z5;1FHY2xKRV@dapRE~zmb#YqG6F8yB4nk``sm7 zbDNrK#)cyze$nE^Q^V87A$J#=7N25CgywhUl+RkA}l9+zc!$9$3?Q6izX+@b<<8ssy+YQ*7;ykr_Nq4 zr1ViRhn$7TU>NyePEa`eGu(r@CuZb{!ka**n*K|!4Y&xLvfCdqENaA&)dAzrW`9m? znMM#?)m#&}vRKveHGnVh*!E7pJQ2vD?(=9CI*PN65m;iBZQ+WmmmFN?HOjAeC(Cn_ zE2qS8dSp$&_P)Lo)gyBG@bHe*S>^)J#;i)cGh$*R(<&6ObDjB*^T^5W7IQ4(#iY3L z)cF1c#vjVm^*;`aIJ7n{~=;W;aN<_K)Vx7V@xrNu6FIW_O5L59# zQpSP-5-P`ET_()N`J8+|`@sOoDo)hhefH9_?<7YP*X7a{A!ofG86Wf>_K~2008SM6 zVL={1S4%3!$;u`h&codx0mJLwCZQ9e>l?77G8s~+DR(%4n36+BRy`-SmP02648_6M zG9lxzJSjIhC*(^)C$1B5Sg0U=O8A8ts#~fgt5(!GprKNQz72bQnC~k@xuZJG8FSi0 zx>ar1+k1~_VP!%v8dLv&lOy?U_{kR?Fkq-8Is8R9CN)D&Dv*Gi_zOdbFU4_g9v#4b|Xb z+Rm^p!oYuxU28fB_SGfqTh_&i!M;8D-#*q5g`JUjYpMf z%@(Tt#4I4N7lz3S)zBzBYpmvUIy(eiXSDOuPS4f0?7aRp{lvLuZYcUD1&V9{?B{#L zGf%+<+{o^DgSm@5MXs z)r{49&JI3JtLQO(F02_?xo0Xd1^wYgw!87Q<>uU9U=aRh+UYjJ+;DAmwMzABH1e}G zS?U>I_U>+VV^vM9FYuz?HT$>ZYmJuh{6CJ{{$tKKM)!xR&0xm7)f`N&Bqn1{6(+7J zl>2%*1T|+H8=qeDNekz4duO6H;>v}yb?OG@AqEB(b*g0foM7q8j?y@WkXkm_Fu$SZ z?f^AOHpdQ}8weOlY|z;(HRlSSnh@705dh@yT})N4(bC}c$W-Ke*2B-3j*2?L9o8gg z@QGFSmFI=uX2(^@$xNSz9`Q~21)lp~{Z`xk6rK833}5XXO?I{@xN4&Og<}$#g_kfE zea{IeT?8)`$|TvH5#*u7ltlGZwz^AvvzP+_qwZ6=w%OM_CTyAduC5gv>R$Im>yn4g z3mi{Ey-fO6k7z*?!q0B@yiS(f$rU1neNdOpIrle_NSdn2U3q zGhsz3bN^SB_2&9D#3_&>XI*8p^X7}3hr5n9MV|xC^!MW?Y5*~QrKJupE5fLYFRwq)dj3mNQY1dci0Of=6Lb>c)?)?^4K+aPGmz6qSW=4Ql zpX}Q}_DU@+ZwHsNF@5@zxgH?G_h)Io%{N{->vEZO8m&AfTuU2NzE({VoblJK$%EC^{>Z{^IxvTf6&aLcU*XTL!X4$aI{v*UyP$JVPE|H8c& zxW08hJLmW*!F8+sv&r%ArSuW(f8}M9#kHdoWv?bnNVKso=Mm&hwDP2wgi$s5Gv|S2&&+=H<9H#z zk|!D6>pp6`Dgg#pc)71`w%c>XlGB&3PcmOjipUJXk z%bH&XpdTjJ%mkAI2pa=;iD*H!zCidaaCf}#UZ=a7CT)(LdwkK9at9{u|3lf$U{^S$ zUp2;b1VU7IxGii~loo!s$u$L2qxR)*HEigyqn8|73_6{*3g5Yeknf+eRyR|m5V`!8 zN|mOMJgG!IgpW;yFv>eXlm*?BC=qvr`b;V2f7O0Sybx}}`TjY89We2FY~<>%Hswu- z_z!jj>0pox8*D_+Dm)KtbdZwU7fMsbX8{9&^0kE~nFHD{?sF6P29 zI9%rWTkR0>YT4rWU`qNnG#1>2X0Y&p z&7DtRVm?*~iZV>VVInz^Kqwj?S*u1NnYcQ>7t2B>wlD>xi?ctIJxs?+ZUatVg)8Cl z6?cvDgLChnsG-Rk7egGTiEX)xYtAwvngCeKrGHTG3uwVc2KPSN8VU8Fjg}^lNUut6 zVk(+liK9$=`AQ9g_Zp1g1p#^ws>u~_15_&_NpKhi-n5|hP1S=nTI!^Q4#n!F5Q;82 zOb(_+h0RAse2nFFN-$%ebd+UrM^n!u%X9a@(;(STHf1p>=SQo}Qg28)%&Peo} z?u&j*@)G<~q*LFF!vvT6qLDsQ7gY$$ߍW{)F)A--P-9VMl;PQj2`&V*s#26Y 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

J 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

S!r(q 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

E**n>_ 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 z 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Ú$)y?7bF@ry%Q({^Brm~Asx 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%0D2E9d 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�lImKA&r0^XQA=0wz-+N8|jl&j~+0Gz{2fJ#$6AV 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 D4#GiimcgHulvVl+u80mc`7uX@+bMKMM$lJvu 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

Q66!`7qRSY0}kF@L2oC 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

CNzE(skI^Z&w3z2O`WQ1=E4m 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�Inu+-vQ!iOPc(tN2x{ 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