From fbb17f182829cb8740eded0072d2f0ef8d056af7 Mon Sep 17 00:00:00 2001 From: Ida Dittrich Date: Tue, 24 Feb 2026 13:05:06 +0100 Subject: [PATCH] Dokumentation zur Roadmap --- .../poweron_sicherheit_und_compliance.md | 369 +++++ .../FUNCTIONAL_DIFFERENCES_ANALYSIS.md | 347 ++++ implementation/Chatbot/implementation_SSE.md | 236 --- .../Chatbot/implementation_chatbot_feature.md | 378 ----- .../implementation_web_research_fix.md | 134 -- implementation/Chatbot/legacy/chatbot.py | 307 ++++ implementation/Chatbot/legacy/constants.py | 517 ++++++ implementation/Chatbot/legacy/router.py | 119 ++ implementation/Chatbot/legacy/schemas.py | 36 + implementation/Chatbot/legacy/service.py | 146 ++ implementation/Chatbot/legacy/sqlitetool.py | 134 ++ .../Chatbot/legacy/streaming_helper.py | 241 +++ .../PLATTFORM_FEATURES_UND_ROADMAP.md | 213 +++ .../SharePoint/concept_sharepoint_feature.md | 632 ++++++++ .../20260224_PowerOn_Preismodell.pdf | Bin 0 -> 397581 bytes .../20260224_PowerOn_Roadmap.pdf | Bin 0 -> 253733 bytes strategy/20260224_Roadmap/poweron-logo2.png | Bin 0 -> 21737 bytes .../roadmap_presentation.html | 1401 +++++++++++++++++ 18 files changed, 4462 insertions(+), 748 deletions(-) create mode 100644 compliance/poweron_sicherheit_und_compliance.md create mode 100644 implementation/Chatbot/FUNCTIONAL_DIFFERENCES_ANALYSIS.md delete mode 100644 implementation/Chatbot/implementation_SSE.md delete mode 100644 implementation/Chatbot/implementation_chatbot_feature.md delete mode 100644 implementation/Chatbot/implementation_web_research_fix.md create mode 100644 implementation/Chatbot/legacy/chatbot.py create mode 100644 implementation/Chatbot/legacy/constants.py create mode 100644 implementation/Chatbot/legacy/router.py create mode 100644 implementation/Chatbot/legacy/schemas.py create mode 100644 implementation/Chatbot/legacy/service.py create mode 100644 implementation/Chatbot/legacy/sqlitetool.py create mode 100644 implementation/Chatbot/legacy/streaming_helper.py create mode 100644 implementation/PLATTFORM_FEATURES_UND_ROADMAP.md create mode 100644 implementation/SharePoint/concept_sharepoint_feature.md create mode 100644 strategy/20260224_Roadmap/20260224_PowerOn_Preismodell.pdf create mode 100644 strategy/20260224_Roadmap/20260224_PowerOn_Roadmap.pdf create mode 100644 strategy/20260224_Roadmap/poweron-logo2.png create mode 100644 strategy/20260224_Roadmap/roadmap_presentation.html diff --git a/compliance/poweron_sicherheit_und_compliance.md b/compliance/poweron_sicherheit_und_compliance.md new file mode 100644 index 0000000..eb6a9ed --- /dev/null +++ b/compliance/poweron_sicherheit_und_compliance.md @@ -0,0 +1,369 @@ +# PowerOn Plattform -- Sicherheit und Compliance + +**Stand:** Februar 2026 +**Zielgruppe:** Entscheidungsträger, Einkauf, Rechtsabteilung, Datenschutzbeauftragte +**Klassifizierung:** Kundeninformation + +--- + +## 1. Management Summary + +PowerOn ist eine **Multi-Mandanten-KI-Plattform für Unternehmen**, die es Organisationen ermöglicht, KI-gestützte Geschäftsprozesse sicher, datenschutzkonform und mandantengetrennt zu betreiben. Die Plattform richtet sich an mittlere bis grosse Unternehmen in datenschutzsensiblen Branchen wie Finanzwesen, Treuhand, Immobilien und Beratung. + +Dieses Dokument beschreibt die in PowerOn implementierten Sicherheits- und Datenschutzmassnahmen, ordnet diese gängigen Standards zu und benennt transparent bestehende Einschränkungen. + +**Kernaussagen:** + +- **DSGVO-Betroffenenrechte** (Auskunft, Löschung, Datenübertragbarkeit, Berichtigung) sind als Self-Service-Funktionen direkt in der Plattform implementiert. +- **Vollständige Mandantentrennung:** Daten eines Mandanten sind unter keinen Umständen für andere Mandanten einsehbar oder zugänglich. +- **Rollenbasierte Zugriffskontrolle (RBAC):** Jeder Datenzugriff wird gegen ein mehrstufiges Berechtigungssystem geprüft -- konfigurierbar pro Mandant und Funktionsmodul. +- **Verschlüsselung:** Sensible Konfigurationsdaten sind nach Industriestandard verschlüsselt, sämtliche Kommunikation erfolgt über verschlüsselte Verbindungen. +- **Audit-Trail:** Alle sicherheitsrelevanten Aktionen werden lückenlos protokolliert und stehen für Compliance-Nachweise zur Verfügung. +- **Transparenz bei KI-Nutzung:** Die Plattform dokumentiert offen, welche Daten an KI-Dienste übermittelt werden, und bietet Konfigurationsoptionen für höchste Datenschutzanforderungen. + +--- + +## 2. DSGVO-Konformität + +PowerOn implementiert die zentralen Betroffenenrechte der Datenschutz-Grundverordnung (DSGVO/GDPR) direkt als Plattformfunktionen. Im Folgenden wird für jeden relevanten Artikel beschrieben, was implementiert ist und wo Einschränkungen bestehen. + +### 2.1 Auskunftsrecht (Art. 15 DSGVO) + +Nutzer können über eine Self-Service-Funktion sämtliche über sie gespeicherten Daten exportieren: + +- Persönliche Profildaten (Name, E-Mail, Spracheinstellungen) +- Mandatszugehörigkeiten und zugewiesene Rollen +- Zugriffsrechte auf Funktionsmodule +- Erstellte und eingelöste Einladungen +- Zeitpunkte der Kontoerstellung und letzten Anmeldung + +Der Export umfasst alle auf Plattformebene gespeicherten Daten. Feature-spezifische Daten (z.B. Chat-Verläufe, Treuhandpositionen) können über die jeweiligen Funktionsmodule eingesehen werden. + +**Status: Implementiert.** + +### 2.2 Recht auf Löschung (Art. 17 DSGVO) + +Nutzer können ihr Konto und alle zugehörigen Daten eigenständig und unwiderruflich löschen. Dabei gilt: + +- Das System durchsucht automatisch alle Datenbanken (Plattform, Verwaltung, Chat, alle Funktionsmodule) nach Einträgen, die dem Nutzer zugeordnet sind. +- Nutzerbezogene Daten werden vollständig gelöscht. +- Audit-Logs werden anonymisiert statt gelöscht -- dies gewährleistet die Einhaltung gesetzlicher Aufbewahrungspflichten bei gleichzeitiger Wahrung der Betroffenenrechte. +- Die Löschung erfordert eine explizite Bestätigung durch den Nutzer. +- Systemadministratoren sind von der Selbstlöschung ausgenommen (Vier-Augen-Prinzip). + +**Status: Implementiert.** + +### 2.3 Recht auf Datenübertragbarkeit (Art. 20 DSGVO) + +Nutzerdaten können in einem maschinenlesbaren, standardisierten Format (JSON-LD nach schema.org) exportiert werden. Dieses Format ermöglicht die Übertragung der Daten an einen anderen Dienstleister. + +**Status: Implementiert.** + +### 2.4 Berichtigungsrecht (Art. 16 DSGVO) + +Nutzer können ihre Profildaten (Name, E-Mail, Spracheinstellungen) jederzeit selbst korrigieren. + +**Status: Implementiert.** + +### 2.5 Transparenz und Informationspflicht + +Die Plattform stellt Nutzern aktiv Informationen über die Datenverarbeitung bereit: + +- Welche Daten erhoben werden +- Zu welchem Zweck die Verarbeitung erfolgt +- Auf welcher Rechtsgrundlage die Verarbeitung basiert +- Welche Aufbewahrungsfristen gelten +- Welche Betroffenenrechte bestehen und wie sie ausgeübt werden können + +**Status: Implementiert.** + +### 2.6 Bekannte Einschränkungen + +Die folgenden Punkte sind transparent zu benennen: + +- **Consent-Management:** Die Plattform verfügt derzeit über kein granulares Einwilligungsmanagement mit individuellen Zustimmungs-Toggles. Die Einwilligung zur Datenverarbeitung erfolgt über die Nutzungsbedingungen und, bei Drittanbieter-Authentifizierung (Microsoft, Google), über die jeweiligen OAuth-Einwilligungsflüsse. +- **Datenschutz-Kontaktadresse:** Die Kontaktadresse für Datenschutzanfragen ist pro Deployment konfigurierbar und muss vom jeweiligen Betreiber hinterlegt werden. + +--- + +## 3. Mandantenmodell und Datenisolation + +### 3.1 Grundprinzip + +PowerOn ist als Multi-Mandanten-Plattform konzipiert. Jede Organisation, Abteilung oder jeder Kunde wird als eigenständiger **Mandant** abgebildet. Das zentrale Sicherheitsversprechen: + +> **Daten eines Mandanten sind unter keinen Umständen für Nutzer anderer Mandanten sichtbar oder zugänglich.** + +### 3.2 Wie die Trennung funktioniert + +- **Zugehörigkeitsprüfung bei jedem Zugriff:** Bevor ein Nutzer auf Mandantendaten zugreifen kann, prüft die Plattform, ob eine aktive Mitgliedschaft des Nutzers in diesem Mandanten besteht. Ohne nachgewiesene Mitgliedschaft wird der Zugriff verweigert. +- **Kein mandantenübergreifender Datenfluss:** Datenbankabfragen werden automatisch auf den Mandantenkontext gefiltert. Es gibt keinen Mechanismus, der Daten mandantenübergreifend zusammenführt oder exponiert. +- **Feature-Isolation:** Innerhalb eines Mandanten werden Funktionsmodule (z.B. Chatbot, Treuhand, Immobilien) zusätzlich isoliert. Nutzer benötigen für jedes Funktionsmodul eine explizite Zugriffsberechtigung. + +### 3.3 Mehrfachmandanten + +Nutzer können gleichzeitig in mehreren Mandanten arbeiten -- ein häufiges Szenario bei Beratern, Treuhändern oder Dienstleistern mit mehreren Kunden. Die Plattform stellt sicher: + +- Der Mandantenkontext wird pro Anfrage bestimmt, nicht pro Sitzung. Ein Wechsel zwischen Mandanten ist jederzeit möglich, ohne dass Daten vermischt werden. +- Es findet keine Übertragung von Daten, Berechtigungen oder Einstellungen zwischen Mandanten statt. + +### 3.4 Schutz vor Manipulation + +Auch bei technischem Wissen über die Plattformarchitektur ist ein unbefugter Zugriff auf fremde Mandantendaten nicht möglich: Die Zugehörigkeitsprüfung erfolgt serverseitig und kann nicht durch Manipulation von Anfrageparametern umgangen werden. + +--- + +## 4. Rollenbasierte Zugriffskontrolle (RBAC) + +### 4.1 Berechtigungsmodell + +PowerOn verfügt über ein feingliedriges, rollenbasiertes Berechtigungssystem. Für jede Aktion (Lesen, Erstellen, Bearbeiten, Löschen) können individuelle Berechtigungsstufen vergeben werden: + +| Berechtigungsstufe | Beschreibung | +|---|---| +| Kein Zugriff | Funktion ist nicht verfügbar | +| Eigene Daten | Zugriff nur auf selbst erstellte Einträge | +| Mandantendaten | Zugriff auf alle Daten innerhalb des eigenen Mandanten | +| Alle Daten | Vollzugriff (typischerweise für Administratoren) | + +### 4.2 Konfigurierbarkeit + +- Rollen können **pro Mandant** und **pro Funktionsmodul** definiert und zugewiesen werden. +- Es gibt keine fest verdrahteten Berechtigungen -- jede Organisation kann das Rollenmodell an ihre Bedürfnisse anpassen. +- Berechtigungsänderungen werden im Audit-Trail protokolliert. + +### 4.3 Administratoren + +Systemadministratoren verfügen über erweiterte Rechte, unterliegen jedoch ebenfalls dem RBAC-System. Alle Administratoraktionen werden gesondert im Audit-Log festgehalten. Es gibt kein unkontrolliertes "Superuser"-Konto ohne Nachvollziehbarkeit. + +--- + +## 5. Verschlüsselung und Datensicherheit + +### 5.1 Verschlüsselung ruhender Daten + +Alle sensiblen Konfigurationsdaten werden verschlüsselt gespeichert: + +- **Verschlüsselungsverfahren:** AES-Verschlüsselung (Fernet) +- **Schlüsselableitung:** PBKDF2-HMAC-SHA256 nach aktuellem Industriestandard +- **Umfang:** Datenbankpasswörter, API-Schlüssel für KI-Dienste, OAuth-Geheimnisse, JWT-Schlüssel und alle weiteren als "SECRET" gekennzeichneten Konfigurationswerte + +Sensible Konfigurationsdaten liegen zu keinem Zeitpunkt im Klartext in der Konfiguration oder im Quellcode vor. + +### 5.2 Verschlüsselung in Übertragung + +- Sämtliche Kommunikation zwischen Client und Server erfolgt über HTTPS/TLS. +- Verbindungen zu Drittdiensten (KI-Anbieter, Authentifizierungsdienste, E-Mail-Dienste) nutzen ebenfalls ausschliesslich verschlüsselte Verbindungen. +- Die TLS-Konfiguration erfolgt auf Infrastruktur-Ebene (Azure / Reverse Proxy) -- dies entspricht dem Branchenstandard bei Cloud-Deployments und ermöglicht zentrale Verwaltung und Aktualisierung der Zertifikate. + +### 5.3 Zugriffskontrolle auf Verschlüsselungsschlüssel + +- Der Zugriff auf Verschlüsselungsschlüssel ist auf das Minimum beschränkt. +- Jeder Zugriff auf Verschlüsselungsfunktionen (Entschlüsselung, Neuverschlüsselung) wird im Audit-Trail protokolliert. +- Eine Ratenbegrenzung schützt vor automatisierten Entschlüsselungsversuchen. + +--- + +## 6. Schutzmassnahmen gegen Angriffe + +PowerOn implementiert Schutzmassnahmen gegen die gängigsten Angriffsvektoren für Webanwendungen: + +### 6.1 Cross-Site Request Forgery (CSRF) + +Alle datenverändernden Operationen (Erstellen, Ändern, Löschen) erfordern ein gültiges Sicherheitstoken. Damit wird verhindert, dass schädliche Webseiten im Namen eines eingeloggten Nutzers Aktionen auslösen können. + +### 6.2 Ratenbegrenzung (Rate Limiting) + +Jede API-Funktion ist mit individuellen Zugriffslimits versehen, die automatisierte Angriffe und Missbrauch unterbinden: + +| Funktion | Limit | +|---|---| +| Anmeldung | 5 Versuche pro Minute | +| Datenexport (DSGVO) | 5 Anfragen pro Minute | +| Kontolöschung | 1 Anfrage pro Stunde | +| Chatbot-Nutzung | 120 Anfragen pro Minute | +| Datei-Upload | 10 Uploads pro Minute | + +### 6.3 Eingabebereinigung + +Nutzereingaben werden bereinigt und validiert, bevor sie an KI-Modelle oder Datenbanken weitergeleitet werden. Dies schützt vor Prompt-Injection-Angriffen und anderen Manipulationsversuchen. + +### 6.4 SQL-Injection-Schutz + +- Alle Datenbankabfragen der Plattform verwenden parametrisierte Abfragen -- der Industriestandard zur Vermeidung von SQL-Injection. +- Der Chatbot-Datenbankzugriff ist zusätzlich auf reine Leseabfragen (SELECT) beschränkt. Schreibende, ändernde oder löschende Operationen sind auf Systemebene blockiert. + +### 6.5 Cross-Origin Resource Sharing (CORS) + +Nur definierte und verifizierte Quelldomains erhalten Zugriff auf die Plattform-API. Anfragen von nicht autorisierten Quellen werden automatisch abgelehnt. + +--- + +## 7. KI-Dienste und Datenverarbeitung + +Transparenz im Umgang mit KI-Diensten ist für datenschutzbewusste Organisationen entscheidend. PowerOn legt offen, wie Daten im Kontext der KI-Nutzung verarbeitet werden. + +### 7.1 Welche Daten werden verarbeitet + +Im Rahmen der KI-gestützten Funktionen (Chatbot, Workflow-Verarbeitung, Dokumentenanalyse) können folgende Daten an KI-Dienste übermittelt werden: + +- Nutzeranfragen und -eingaben +- Dokumentinhalte (bei Dokumentenanalyse) +- Gesprächsverläufe (bei Chat-Funktionen) + +### 7.2 Welche KI-Anbieter werden genutzt + +PowerOn unterstützt mehrere KI-Anbieter, die je nach Bedarf und Konfiguration eingesetzt werden: + +- **OpenAI** (GPT-4o und weitere Modelle) +- **Anthropic** (Claude-Modelle) +- **Tavily** (Websuche) +- **Private LLM** (lokale/eigene Modelle -- kein externer Datenabfluss) + +Die Auswahl des Anbieters ist konfigurierbar und kann an die Datenschutzanforderungen des Kunden angepasst werden. + +### 7.3 Mandantentrennung bei KI-Anfragen + +Jede KI-Anfrage erfolgt im Kontext des jeweiligen Mandanten. Es findet keine Vermischung von Daten verschiedener Mandanten in KI-Anfragen statt. + +### 7.4 Kein Training mit Kundendaten + +Bei Nutzung der Enterprise-API-Vereinbarungen der KI-Anbieter (OpenAI Enterprise API, Anthropic API) werden Kundendaten nicht für das Training der KI-Modelle verwendet. Dies ist vertraglich durch die Auftragsverarbeitungsvereinbarungen (AV-V / DPA) mit den jeweiligen Anbietern abgesichert. + +### 7.5 Optionen für höchste Datenschutzanforderungen + +Für Organisationen mit besonders hohen Datenschutzanforderungen bietet PowerOn: + +- **Datenschutz-Neutralisierer:** Optionales Modul, das personenbezogene Daten vor der Übermittlung an externe KI-Dienste entfernt oder pseudonymisiert. +- **Private-LLM-Anbindung:** Möglichkeit, ein eigenes, lokal betriebenes Sprachmodell zu nutzen. In diesem Fall verlassen keine Daten die eigene Infrastruktur. + +### 7.6 Bekannte Einschränkung + +Die automatische Erkennung und Filterung personenbezogener Daten (PII) vor dem Versand an externe KI-Dienste ist **nicht standardmässig aktiviert**. Organisationen, die mit besonders sensiblen personenbezogenen Daten arbeiten, sollten den Datenschutz-Neutralisierer nutzen oder den Private-LLM-Connector einsetzen. + +--- + +## 8. Audit-Trail und Nachvollziehbarkeit + +### 8.1 Was wird protokolliert + +Sämtliche sicherheitsrelevanten Aktionen werden automatisch und lückenlos in einem Audit-Log erfasst: + +| Kategorie | Beispiele | +|---|---| +| Zugriff | Anmeldungen, fehlgeschlagene Anmeldeversuche, Abmeldungen | +| Sicherheit | Administratoraktionen, SysAdmin-Zugriffe, Sicherheitsereignisse | +| Datenschutz (DSGVO) | Datenexporte, Kontolöschungen, Portabilitätsanfragen | +| Berechtigungen | Rollenzuweisungen, Berechtigungsänderungen | +| Verschlüsselung | Zugriffe auf Verschlüsselungsfunktionen | +| Datenoperationen | Zugriffe auf sensible Geschäftsdaten | + +### 8.2 Aufbewahrung und Bereinigung + +- **Standard-Aufbewahrungsdauer:** 365 Tage (konfigurierbar) +- **Automatische Bereinigung:** Veraltete Einträge werden durch einen täglichen Prozess entfernt -- dies stellt sicher, dass Audit-Daten nicht unbefristet aufbewahrt werden (DSGVO-Konformität). +- **Anonymisierung:** Bei der Löschung eines Nutzerkontos werden zugehörige Audit-Einträge anonymisiert statt gelöscht. Die Nachvollziehbarkeit sicherheitsrelevanter Ereignisse bleibt gewahrt, ohne dass Rückschlüsse auf die gelöschte Person möglich sind. + +### 8.3 Nutzung für Compliance-Nachweise + +Die Audit-Daten können als Nachweis für interne und externe Audits herangezogen werden. Sie dokumentieren, wer wann welche sicherheitsrelevante Aktion durchgeführt hat, und unterstützen damit die Anforderungen an die Rechenschaftspflicht nach Art. 5 Abs. 2 DSGVO. + +--- + +## 9. Einordnung in gängige Standards + +PowerOn orientiert sich an anerkannten Standards und Rahmenwerken. Die folgende Einordnung beschreibt transparent, welche Anforderungen die Plattform bereits abdeckt und wo Ergänzungen erforderlich sind. + +### 9.1 DSGVO / GDPR + +| Anforderung | Status | Bemerkung | +|---|---|---| +| Betroffenenrechte (Art. 15--17, 20) | Implementiert | Auskunft, Löschung, Portabilität, Berichtigung als Self-Service | +| Rechenschaftspflicht (Art. 5 Abs. 2) | Implementiert | Lückenloser Audit-Trail | +| Verzeichnis der Verarbeitungstätigkeiten (Art. 30) | Unterstützt | Audit-Log liefert die Datenbasis; das formale Verzeichnis muss vom Betreiber geführt werden | +| Technische und organisatorische Massnahmen (Art. 32) | Implementiert | Verschlüsselung, Zugriffskontrolle, Mandantentrennung, Eingabevalidierung | +| Einwilligungsmanagement (Art. 7) | Teilweise | Über Nutzungsbedingungen und OAuth; kein granulares Consent-Tool | + +### 9.2 Schweizer Datenschutzgesetz (nDSG / revDSG) + +Die Anforderungen des revidierten Schweizer Datenschutzgesetzes sind mit den DSGVO-Massnahmen kompatibel. Insbesondere: + +- Informationspflicht bei Datenerhebung: Transparenzfunktion implementiert +- Recht auf Datenherausgabe und -löschung: Self-Service-Funktionen vorhanden +- Pflicht zu angemessenen technischen Massnahmen: Verschlüsselung, RBAC, Mandantentrennung + +### 9.3 OWASP Top 10 + +Die Plattform adressiert die häufigsten Web-Sicherheitsrisiken gemäss OWASP: + +| OWASP-Risiko | Massnahme in PowerOn | +|---|---| +| Broken Access Control | Rollenbasierte Zugriffskontrolle, Mandantenprüfung bei jedem Zugriff | +| Cryptographic Failures | AES-Verschlüsselung, PBKDF2-Schlüsselableitung, HTTPS/TLS | +| Injection | Parametrisierte Datenbankabfragen, Eingabebereinigung, SQL-Leseeinschränkung | +| Security Misconfiguration | CORS-Einschränkungen, Rate Limiting, CSRF-Schutz | +| Identification and Authentication Failures | JWT-basierte Authentifizierung, Token-Widerruf, Ratenbegrenzung bei Anmeldung | + +Es besteht **keine formale OWASP-Zertifizierung**. Die Massnahmen basieren auf den OWASP-Empfehlungen und sind als präventive Sicherheitsmassnahmen implementiert. + +### 9.4 ISO 27001 / BSI IT-Grundschutz + +Die implementierten technischen und organisatorischen Massnahmen (Zugriffskontrolle, Verschlüsselung, Audit-Logging, Eingabevalidierung, Mandantentrennung) bilden eine **solide Grundlage** für ein Informationssicherheits-Managementsystem (ISMS) nach ISO 27001 oder BSI IT-Grundschutz. + +Es besteht **keine formale Zertifizierung**. Die vorhandene Infrastruktur ermöglicht es jedoch, eine Zertifizierung auf dieser Basis gezielt anzustreben. + +--- + +## 10. Authentifizierung und Identitätsmanagement + +### 10.1 Anmeldemethoden + +PowerOn unterstützt mehrere Authentifizierungsverfahren: + +- **Lokale Anmeldung:** Benutzername und Passwort mit JWT-basierter Sitzungsverwaltung +- **Microsoft-Anmeldung (Azure AD / Entra ID):** Single Sign-On über bestehende Microsoft-Konten +- **Google-Anmeldung:** Single Sign-On über Google Workspace + +### 10.2 Sitzungssicherheit + +- Authentifizierungstoken werden in sicheren, HTTP-only Cookies gespeichert (nicht im Browser-Speicher zugänglich) +- Tokens haben eine konfigurierbare Gültigkeitsdauer +- Token-Widerruf ist jederzeit möglich (z.B. bei Verdacht auf Kompromittierung) +- Bei lokaler Anmeldung wird die Gültigkeit des Tokens zusätzlich gegen die Datenbank geprüft + +### 10.3 Automatische Token-Erneuerung + +Authentifizierungstoken werden automatisch erneuert, bevor sie ablaufen. Dies gewährleistet eine unterbrechungsfreie Nutzung bei gleichzeitiger Begrenzung der Token-Gültigkeitsdauer. + +--- + +## 11. Offene Punkte und Empfehlungen + +Transparenz schafft Vertrauen. Die folgenden Punkte sind offen benannt, damit Kunden und Betreiber informierte Entscheidungen treffen können. + +| Thema | Status | Empfehlung | +|---|---|---| +| Granulares Consent-Management | Nicht vorhanden | Falls regulatorisch erforderlich, als separates Modul ergänzen | +| PII-Filterung vor KI-Versand | Nicht standardmässig aktiv | Datenschutz-Neutralisierer aktivieren oder Private LLM einsetzen | +| Security-Header (CSP, HSTS) | Auf Infrastruktur-Ebene | Konfiguration auf Reverse-Proxy-Ebene dokumentieren und prüfen | +| Datenschutz-Kontaktadresse | Platzhalter | Pro Deployment mit tatsächlicher DSB-Kontaktadresse konfigurieren | +| Formale Zertifizierungen | Keine vorhanden | ISO 27001 / BSI auf Basis der vorhandenen Massnahmen anstrebbar | + +--- + +## 12. Zusammenfassung + +PowerOn vereint Enterprise-KI-Funktionalität mit einem umfassenden Sicherheits- und Datenschutzkonzept. Die Plattform bietet: + +- **DSGVO-konforme Betroffenenrechte** als Self-Service-Funktionen +- **Vollständige Mandantentrennung** mit serverseitiger Zugehörigkeitsprüfung +- **Feingliedriges Berechtigungssystem** mit individuell konfigurierbaren Rollen +- **Verschlüsselung nach Industriestandard** für ruhende und übertragene Daten +- **Lückenlosen Audit-Trail** für Compliance-Nachweise +- **Transparente KI-Datenverarbeitung** mit Optionen für höchste Datenschutzanforderungen + +Gleichzeitig werden bestehende Einschränkungen offen kommuniziert und Empfehlungen für ergänzende Massnahmen gegeben. Diese Kombination aus implementierter Sicherheit und transparenter Kommunikation bildet die Grundlage für eine vertrauensvolle Zusammenarbeit. + +--- + +*Dieses Dokument basiert auf einer Analyse der PowerOn-Plattform (Stand Februar 2026). Alle beschriebenen Massnahmen sind in der Plattform implementiert und wurden anhand der Codebasis verifiziert. Angaben ohne Gewähr -- für verbindliche Zusicherungen gelten die jeweiligen Vertragsvereinbarungen.* diff --git a/implementation/Chatbot/FUNCTIONAL_DIFFERENCES_ANALYSIS.md b/implementation/Chatbot/FUNCTIONAL_DIFFERENCES_ANALYSIS.md new file mode 100644 index 0000000..2ab125a --- /dev/null +++ b/implementation/Chatbot/FUNCTIONAL_DIFFERENCES_ANALYSIS.md @@ -0,0 +1,347 @@ +# Functional Differences Analysis: Legacy vs Current Chatbot + +## Executive Summary + +The **legacy implementation works correctly** because the LLM **actually uses the `send_streaming_message` tool** as instructed. The **current implementation fails** because the LLM **generates status messages as regular text** instead of using the tool, causing an infinite loop when the system tries to handle these text messages. + +--- + +## Core Functional Difference + +### Legacy: Tool-Based Status Updates (WORKS) + +**How it works:** +1. System prompt instructs: "Use `send_streaming_message` tool for status updates" +2. LLM (ChatAnthropic) **follows instructions** and calls the tool +3. Event handler listens **ONLY** for `on_tool_start` events with `send_streaming_message` +4. When tool is called → routes to tools node → tool executes → routes back to agent +5. Agent then calls SQL tools → processes results → generates final answer + +**Code Evidence:** +```python +# legacy/chatbot.py line 267 +if etype == "on_tool_start" and ename == "send_streaming_message": + tool_in = edata.get("input") or {} + msg = tool_in.get("message") + if isinstance(msg, str) and msg.strip(): + yield {"type": "status", "label": msg.strip()} + continue +``` + +**Key Point:** Legacy **ONLY** handles tool calls. It doesn't try to detect status messages in regular text. + +--- + +### Current: Text-Based Status Updates (BROKEN) + +**How it fails:** +1. System prompt instructs: "MUST use `send_streaming_message` tool, VERBOTEN to write text messages" +2. LLM (AICenterChatModel) **ignores instructions** and generates text messages like "Ich werde die Datenbank nach Artikeln durchsuchen..." +3. Event handler tries to handle these text messages by detecting them as "status messages" +4. When status message detected → routes back to agent (to "fix" it) +5. Agent generates another text status message (still not using tool) +6. **Infinite loop** until max iterations (15) reached + +**Code Evidence:** +```python +# gateway/modules/features/chatbot/chatbotStreaming.py line 198-227 +if etype == "on_chain_stream" and ename == "agent": + # Tries to detect status messages in regular text + if content and is_status_message(content): + await _emit_status_event(...) # Convert to status event + continue # Don't store as message +``` + +```python +# gateway/modules/features/chatbot/chatbotLangGraph.py line 292-296 +if is_status: + # Status message without tool calls - route back to agent + # The agent should then call actual tools (like sqlite_query) + logger.info(f"Status message detected without tool calls, routing back to agent...") + return "agent" # THIS CAUSES THE LOOP +``` + +**Key Point:** Current tries to **compensate** for LLM not following instructions, but this creates a loop. + +--- + +## Why They Differ: Root Causes + +### 1. Model Behavior Difference + +| Aspect | Legacy (ChatAnthropic) | Current (AICenterChatModel) | +|--------|----------------------|---------------------------| +| **Tool Calling** | Follows prompt, uses `send_streaming_message` tool | Ignores prompt, generates text instead | +| **Instruction Following** | Strong adherence to system prompt | Weak adherence to system prompt | +| **Model Type** | Direct LangChain integration | Bridge to AI center (may use different models) | + +**Impact:** The current model doesn't follow the instruction to use the tool, so it generates text messages that break the workflow. + +--- + +### 2. Event Handling Strategy + +#### Legacy Event Handling +```python +# Simple: Only listen for tool calls +if etype == "on_tool_start" and ename == "send_streaming_message": + # Handle tool call + yield {"type": "status", "label": msg} + continue # Done, move on +``` + +**Strategy:** Trust the LLM to use the tool. Only handle tool calls. + +#### Current Event Handling +```python +# Complex: Try to handle both tool calls AND text messages +if etype == "on_tool_start" and ename == "send_streaming_message": + # Handle tool call (same as legacy) + await _emit_status_event(...) + +if etype == "on_chain_stream" and ename == "agent": + # ALSO try to detect status messages in text + if is_status_message(content): + await _emit_status_event(...) # Convert text to status +``` + +**Strategy:** Don't trust the LLM. Try to compensate by detecting status messages in text. + +**Problem:** This creates a feedback loop where status messages trigger re-routing, causing infinite loops. + +--- + +### 3. Workflow Routing Logic + +#### Legacy Routing (`should_continue`) +```python +# Simple logic +def should_continue(state: ChatState) -> str: + last_message = state.messages[-1] + tool_calls = getattr(last_message, "tool_calls", None) + + if tool_calls: + return "tools" # Has tool calls → execute tools + else: + return END # No tool calls → done +``` + +**Key Point:** No special handling for status messages. If there are tool calls, execute them. Otherwise, end. + +#### Current Routing (`should_continue`) +```python +# Complex logic with status detection +def should_continue(state: ChatState) -> str: + last_message = state.messages[-1] + tool_calls = getattr(last_message, "tool_calls", None) + + if tool_calls: + return "tools" + + # NEW: Check if it's a status message + if isinstance(last_message, AIMessage): + content = last_message.content + if is_status_message(content): + return "agent" # Route back to agent (CAUSES LOOP!) + + return END +``` + +**Key Point:** Tries to "fix" status messages by routing back to agent, but agent just generates another status message. + +--- + +### 4. Message Filtering + +#### Legacy: No Filtering +- All messages are stored in memory +- Status messages from tool calls are handled, but messages themselves are stored +- No filtering of "status-like" text messages + +#### Current: Aggressive Filtering +```python +# chatbotMemory.py - Filters out status messages +if content: + content_lower = content.lower().strip() + status_patterns = ["ich werde", "ich suche", ...] + if len(content) < 150 and any(pattern in content_lower for pattern in status_patterns): + logger.debug(f"Skipping status update message...") + continue # Don't store +``` + +```python +# chatbotLangGraph.py - Filters from conversation window +if content and is_status_message(content): + logger.debug(f"Filtering out status message from conversation window...") + # Skip this message +``` + +**Problem:** Status messages are filtered out, so they don't accumulate in memory, but the agent keeps generating them, creating a loop. + +--- + +## The Infinite Loop Explained + +### What Happens in Current Implementation + +1. **User asks:** "wie viele leds haben wir auf lager" +2. **Agent generates:** "Ich werde die Datenbank nach Artikeln durchsuchen..." (text message, NO tool call) +3. **Status detection:** `is_status_message()` returns `True` +4. **Routing:** `should_continue()` returns `"agent"` (route back) +5. **Memory filtering:** Message is filtered out (not stored) +6. **Agent called again:** Generates another status message (still no tool call) +7. **Repeat steps 3-6** until max iterations (15) reached +8. **Workflow ends:** No final answer, only status messages + +### What Should Happen (Like Legacy) + +1. **User asks:** "wie viele leds haben wir auf lager" +2. **Agent calls tool:** `send_streaming_message("Durchsuche Datenbank nach LEDs...")` (tool call) +3. **Tool execution:** Tool node executes, emits status event +4. **Routing:** `should_continue()` returns `"tools"` → tools execute → back to agent +5. **Agent calls SQL tool:** `sqlite_query("SELECT ...")` (tool call) +6. **SQL execution:** Tool node executes query, returns results +7. **Agent processes:** Generates final answer with results +8. **Workflow ends:** Final answer returned + +--- + +## Why Legacy Works: Model Compliance + +### ChatAnthropic Behavior +- **Strong tool calling:** When instructed to use a tool, it actually uses it +- **Prompt following:** Adheres to system prompt instructions +- **Tool-first approach:** Prefers tool calls over text for structured operations + +### Evidence from Legacy Logs +``` +Denke nach.. ← Tool call +Durchsuche Datenbank nach LEDs... ← Tool call +Berechne Gesamtlagerbestand... ← Tool call +Formuliere finale Antwort... ← Tool call +Aus der Datenbank habe ich 801... ← Final text answer +``` + +Each status update is a **tool call**, not a text message. + +--- + +## Why Current Fails: Model Non-Compliance + +### AICenterChatModel Behavior +- **Weak tool calling:** Doesn't reliably use tools when instructed +- **Text-first approach:** Generates text messages instead of tool calls +- **Prompt ignoring:** Doesn't follow "VERBOTEN" instructions + +### Evidence from Current Logs +``` +Ich werde die Datenbank nach Artikeln durchsuchen... ← Text message (WRONG!) +Skipping status update message... ← Filtered out +Status message detected without tool calls... ← Detected as status +Routing back to agent... ← Causes loop +[Repeats 15 times] +``` + +Each status update is a **text message**, not a tool call, causing the loop. + +--- + +## System Prompt Comparison + +### Legacy Prompt (Works) +``` +STREAMING-UPDATES: Du hast Zugriff auf das Tool "send_streaming_message", +mit dem du dem Nutzer kurze Status-Updates senden kannst. +Nutze dieses Tool, um den Nutzer über deine aktuellen Aktivitäten zu informieren. +``` + +**Tone:** Informative, suggests using the tool. + +### Current Prompt (Doesn't Work) +``` +STREAMING-UPDATES - ABSOLUT KRITISCH: +⚠️⚠️⚠️ WICHTIG: Du MUSST das Tool "send_streaming_message" verwenden, +um Status-Updates zu senden. VERBOTEN ist es, normale Text-Nachrichten +für Status-Updates zu schreiben! + +VERBOTEN: Text-Nachrichten wie "Ich werde die Datenbank durchsuchen..." +ERLAUBT: Nur das Tool "send_streaming_message" für Status-Updates verwenden! +``` + +**Tone:** Aggressive, forbids text messages, but model ignores it anyway. + +**Irony:** The more explicit the prompt, the more the model ignores it. + +--- + +## Functional Differences Summary + +| Aspect | Legacy | Current | Impact | +|--------|--------|---------|--------| +| **Model Tool Calling** | ✅ Uses tool | ❌ Generates text | **CRITICAL** | +| **Event Handling** | Tool calls only | Tool calls + text detection | Creates complexity | +| **Routing Logic** | Simple (tool calls → tools, else → end) | Complex (status detection → route back) | Creates loop | +| **Message Filtering** | None | Aggressive filtering | Hides the problem | +| **Prompt Style** | Informative | Aggressive/forbidding | Model ignores anyway | + +--- + +## Why This Matters + +### Legacy Success Factors +1. **Model compliance:** ChatAnthropic follows instructions +2. **Simple event handling:** Only handles what's expected (tool calls) +3. **No compensation logic:** Doesn't try to "fix" model behavior +4. **Trust-based:** Assumes model will use tools correctly + +### Current Failure Factors +1. **Model non-compliance:** AICenterChatModel doesn't follow instructions +2. **Complex event handling:** Tries to handle both tool calls and text +3. **Compensation logic:** Tries to "fix" model behavior, creates loops +4. **Distrust-based:** Assumes model won't use tools, tries to compensate + +--- + +## The Real Problem + +The current implementation is trying to **compensate for model non-compliance** by: +1. Detecting status messages in text +2. Converting them to status events +3. Routing back to agent to "fix" it + +But this creates a **feedback loop** because: +- Agent generates text status message +- System detects it and routes back +- Agent generates another text status message +- Loop continues + +**The solution is NOT to add more compensation logic.** The solution is to **fix the root cause**: Make the model actually use the tool. + +--- + +## Recommendations + +### Short-Term Fix +1. **Remove status message detection** from `should_continue()` - don't route back +2. **Remove text-to-status conversion** - only handle tool calls +3. **Let status messages be stored** - don't filter them aggressively +4. **Simplify routing** - if no tool calls, end (like legacy) + +### Long-Term Fix +1. **Fix model behavior** - Ensure AICenterChatModel actually uses tools +2. **Improve prompt** - Test different prompt styles to get tool usage +3. **Model selection** - Use a model that reliably follows tool-calling instructions +4. **Tool binding** - Verify tools are properly bound and available to model + +--- + +## Conclusion + +The functional difference is **not in the architecture** but in **model behavior**: + +- **Legacy:** Model uses tools → Simple event handling → Works +- **Current:** Model doesn't use tools → Complex compensation → Breaks + +The current implementation is **over-engineered** to compensate for model non-compliance, but this compensation creates more problems than it solves. + +**The fix is simple:** Make the model use the tool (like legacy), then simplify the event handling to match legacy's simplicity. diff --git a/implementation/Chatbot/implementation_SSE.md b/implementation/Chatbot/implementation_SSE.md deleted file mode 100644 index 3748814..0000000 --- a/implementation/Chatbot/implementation_SSE.md +++ /dev/null @@ -1,236 +0,0 @@ -# Streaming Utility Architecture: Event-Driven Real-Time Updates - -## Current Implementation - -### Event Manager (`modules/features/chatbot/eventManager.py`) - -The `StreamingEventManager` is a **generic, reusable** event manager that provides: - -- **Generic Event Queue Management**: Per-context asyncio queues (not just workflows) -- **Event Emission**: `emit_event()` method supporting multiple event types and categories -- **Event Streaming**: `stream_events()` async generator for SSE streaming -- **Automatic Cleanup**: Queue cleanup after delay (60 seconds default) -- **Event Categories**: Filtering by category (chat, workflow, document, etc.) -- **Thread-Safe**: Lock-based synchronization for concurrent access - -### Architecture Overview - -The streaming system uses a **pure event-driven approach**: - -1. **Event Emission**: When data changes (messages created, logs written), events are emitted directly -2. **Event Queue**: Events are queued per context (workflow_id, document_id, etc.) -3. **SSE Streaming**: Route endpoint streams events from queue in real-time -4. **No Database Polling**: The SSE endpoint does NOT poll the database - it only streams queued events - -### Current Usage: Chatbot Feature - -The chatbot feature (`modules/features/chatbot/`) demonstrates the streaming architecture: - -- **Event Types**: `chatdata`, `complete`, `stopped`, `error` -- **Event Categories**: `chat`, `workflow` -- **Direct Emission**: Events emitted when messages/logs are created in `mainChatbot.py` - -## Implementation Details - -### 1. Event Manager API (`modules/features/chatbot/eventManager.py`) - -```python -class StreamingEventManager: - """ - Generic event manager for real-time streaming across all features. - Supports multiple event types and contexts (workflows, documents, tasks, etc.) - Thread-safe event emission and queue management. - """ - - def __init__(self): - self._queues: Dict[str, asyncio.Queue] = {} - self._locks: Dict[str, asyncio.Lock] = {} - self._cleanup_tasks: Dict[str, asyncio.Task] = {} - self._subscribers: Dict[str, Set[str]] = {} # context_id -> set of queue_ids - - def create_queue(self, context_id: str) -> asyncio.Queue: - """Create a new event queue for a context""" - - def get_queue(self, context_id: str) -> Optional[asyncio.Queue]: - """Get existing event queue for a context""" - - def has_queue(self, context_id: str) -> bool: - """Check if a queue exists for a context""" - - async def emit_event( - self, - context_id: str, # workflow_id, document_id, task_id, etc. - event_type: str, # "message", "log", "status", "progress", "complete", "error", "chatdata" - data: Dict[str, Any], # Flexible data structure - event_category: str = "default", # "chat", "workflow", "document", etc. - message: Optional[str] = None, # For backward compatibility - step: Optional[str] = None # For backward compatibility - ): - """Emit event to the context's event queue""" - - async def stream_events( - self, - context_id: str, - event_categories: Optional[List[str]] = None, - timeout: Optional[float] = None - ) -> AsyncIterator[Dict[str, Any]]: - """Async generator for streaming events from a context""" - - async def cleanup(self, context_id: str, delay: float = 60.0): - """Schedule cleanup of event queue after delay""" -``` - -**Global Singleton**: Access via `get_event_manager()` function - -### 2. SSE Route Implementation (`modules/routes/routeChatbot.py`) - -The chatbot streaming endpoint (`/api/chatbot/start/stream`) demonstrates the pattern: - -```python -@router.post("/start/stream") -async def stream_chatbot_start(...) -> StreamingResponse: - event_manager = get_event_manager() - - # Start background processing (creates workflow and event queue) - workflow = await chatProcess(currentUser, userInput, workflowId) - - # Get or create event queue - queue = event_manager.get_queue(workflow.id) or event_manager.create_queue(workflow.id) - - async def event_stream(): - """Pure event-driven streaming (no database polling)""" - # 1. Send initial chat data once (from database) - chatData = interfaceDbChat.getUnifiedChatData(workflow.id, None) - if chatData.get("items"): - for item in filtered_items: - yield f"data: {json.dumps(item)}\n\n" - - # 2. Stream events from queue (event-driven) - while True: - try: - # Get event from queue (blocks until event available) - event = await asyncio.wait_for(queue.get(), timeout=1.0) - - # Handle event types - if event["type"] == "chatdata": - yield f"data: {json.dumps(event["data"])}\n\n" - elif event["type"] == "complete": - break # Close stream - # ... other event types - - except asyncio.TimeoutError: - # Send keepalive every 30 seconds - yield f": keepalive\n\n" - continue - - return StreamingResponse( - event_stream(), - media_type="text/event-stream", - headers={ - "Cache-Control": "no-cache", - "Connection": "keep-alive", - "X-Accel-Buffering": "no" - } - ) -``` - -**Key Points**: -- **Initial Data**: Fetched once from database at stream start -- **Event Streaming**: Pure event-driven from queue (no polling) -- **Keepalive**: Sent every 30 seconds to keep connection alive -- **Status Check**: Periodic workflow status check (every 5 seconds) only for stopped detection - -### 3. Event Emission in Processing Code - -#### A. Chatbot Message Processing (`modules/features/chatbot/mainChatbot.py`) - -Events are emitted **directly when data is created**: - -```python -from modules.features.chatbot.eventManager import get_event_manager - -event_manager = get_event_manager() - -# When creating a user message -userMessage = interfaceDbChat.createMessage(userMessageData) - -# Emit event immediately (exact chatData format) -await event_manager.emit_event( - context_id=workflow.id, - event_type="chatdata", - data={ - "type": "message", - "createdAt": message_timestamp, - "item": userMessage.dict() - }, - event_category="chat" -) - -# When creating assistant message -assistantMessage = interfaceDbChat.createMessage(assistantMessageData) - -# Emit event immediately -await event_manager.emit_event( - context_id=workflowId, - event_type="chatdata", - data={ - "type": "message", - "createdAt": message_timestamp, - "item": assistantMessage.dict() - }, - event_category="chat" -) - -# When workflow completes -await event_manager.emit_event( - context_id=workflowId, - event_type="complete", - data={"workflowId": workflowId}, - event_category="workflow", - message="Chatbot-Verarbeitung abgeschlossen", - step="complete" -) -``` - -#### B. Log Events - -Logs are stored in database and then emitted as events: - -```python -# Store log in database -log_data = { - "id": f"log_{uuid.uuid4()}", - "workflowId": workflowId, - "message": "Analysiere Benutzeranfrage...", - "type": "info", - "timestamp": getUtcTimestamp(), - "status": "running", - "roundNumber": round_number -} -interfaceDbChat.createLog(log_data) - -# Note: Logs are emitted via the route's periodic chatData fetch mechanism -# OR can be emitted directly as events if needed -``` - -**Event Format**: Events use the exact `chatData` format: `{type, createdAt, item}` - -## Benefits of Event-Driven Streaming - -### Performance -- **Reduced Server Load**: No constant database queries every 0.5-3 seconds -- **Lower Latency**: Events delivered immediately (< 100ms) vs polling delay (500-3000ms) -- **Bandwidth Efficiency**: Only send data when it changes, not empty responses -- **No Database Polling**: SSE endpoint does NOT poll database - pure event-driven - -### User Experience -- **Real-time Updates**: Users see progress instantly as events occur -- **Better Responsiveness**: No perceived delay from polling intervals -- **Reduced Battery**: Mobile devices consume less power without constant polling -- **Immediate Feedback**: Messages appear as soon as they're created - -### Scalability -- **Horizontal Scaling**: Event queues can be distributed (Redis, RabbitMQ) in future -- **Connection Management**: Better handling of many concurrent streams -- **Resource Efficiency**: One persistent connection vs many HTTP requests -- **Memory Efficient**: Queues cleaned up automatically after workflow completion diff --git a/implementation/Chatbot/implementation_chatbot_feature.md b/implementation/Chatbot/implementation_chatbot_feature.md deleted file mode 100644 index 604d406..0000000 --- a/implementation/Chatbot/implementation_chatbot_feature.md +++ /dev/null @@ -1,378 +0,0 @@ -# Chatbot vs FastTrack: Architecture Comparison - -## Chatbot Basic Implementation - -### Overview - -The chatbot is a specialized feature designed for handling user queries that require database access or web research. It provides immediate responses by returning a workflow object instantly, then processes the request asynchronously in the background. - -### Core Purpose - -The chatbot analyzes user input to determine what database queries or web research are needed, executes them, and generates comprehensive answers based on real data rather than just AI knowledge. - -### Main Entry Point - -**Function**: `modules/features/chatbot/mainChatbot.py::chatProcess()` - -**Signature**: -```python -async def chatProcess( - currentUser: User, - userInput: UserInputRequest, - workflowId: Optional[str] = None -) -> ChatWorkflow -``` - -### Basic Flow - -1. **Workflow Creation/Resumption** - - Creates new workflow or resumes existing one - - Generates conversation name from user prompt - - Sets workflow mode to `WORKFLOW_CHATBOT` - - Creates event queue for streaming - -2. **Message Storage** - - Stores user message immediately - - Emits message event for streaming - - Returns workflow object (instant response to user) - -3. **Background Processing** (async) - - Analyzes user input to determine query needs - - Generates SQL queries if database access needed - - Executes queries in parallel - - Performs web research if needed - - Generates final answer with all results - -### Key Components - -#### 1. Analysis Phase (`_processChatbotMessage`) - -**Purpose**: Determines what queries/research are needed - -**Implementation**: -- Uses `get_initial_analysis_prompt()` from `chatbotConstants.py` -- Calls AI via `MethodAi.process()` with `simpleMode=True` -- Returns JSON with: - - `needsDatabaseQuery`: Boolean - - `needsWebResearch`: Boolean - - `sqlQueries[]`: Array of SQL query objects - - `reasoning`: Explanation of analysis - -**Query Structure**: -```json -{ - "query": "SELECT ...", - "purpose": "Description of what query retrieves", - "table": "Primary table name" -} -``` - -#### 2. Query Execution (`_execute_queries_parallel`) - -**Purpose**: Executes multiple SQL queries simultaneously - -**Implementation**: -- Uses `PreprocessorConnector` for database access -- Executes all queries in parallel via `asyncio.gather()` -- Returns results as dictionary: - - `query_1`, `query_2`, etc.: Success result text - - `query_1_data`, `query_2_data`, etc.: Raw data arrays - - `query_1_error`, `query_2_error`, etc.: Error messages if failed - -**Benefits**: -- Parallel execution = faster overall time -- Continues even if some queries fail -- Provides detailed error information per query - -#### 3. Web Research (`_buildWebResearchQuery`) - -**Purpose**: Enriches web search queries with context from conversation - -**Implementation**: -- Extracts product information from: - - Current user prompt (article numbers, product mentions) - - Database query results (if available) - - Previous assistant messages (conversation history) -- Builds enriched search query with article number, description, supplier -- Calls `services.web.performWebResearch()` - -#### 4. Final Answer Generation - -**Purpose**: Combines all results into comprehensive answer - -**Implementation**: -- Uses `get_final_answer_system_prompt()` for structured response -- Builds context with: - - User question - - Database query results (organized by query number) - - Web research results - - Error information if queries failed -- Single AI call with all data -- Streams result as assistant message - -### Key Functions - -| Function | Purpose | Location | -|----------|---------|----------| -| `chatProcess()` | Main entry point, creates workflow and starts processing | `mainChatbot.py:60` | -| `_processChatbotMessage()` | Background processing: analysis → execution → answer | `mainChatbot.py:522` | -| `_execute_queries_parallel()` | Executes multiple SQL queries in parallel | `mainChatbot.py:194` | -| `_buildWebResearchQuery()` | Enriches web search with conversation context | `mainChatbot.py:318` | -| `_extractJsonFromResponse()` | Extracts JSON from AI response (handles markdown) | `mainChatbot.py:33` | -| `_emit_log_and_event()` | Stores logs and emits events for streaming | `mainChatbot.py:254` | -| `get_initial_analysis_prompt()` | System prompt for query analysis | `chatbotConstants.py` | -| `get_final_answer_system_prompt()` | System prompt for final answer generation | `chatbotConstants.py` | -| `generate_conversation_name()` | Generates conversation name from user prompt | `chatbotConstants.py` | - -### Database Schema - -The chatbot has knowledge of the database schema: - -**Tables**: -- `Artikel`: Product information (I_ID, Artikelbezeichnung, Artikelnummer, etc.) -- `Einkaufspreis`: Price data (m_Artikel, EP_CHF) -- `Lagerplatz_Artikel`: Stock and warehouse location data (R_ARTIKEL, R_LAGERPLATZ, Bestände, etc.) -- `Lagerplatz`: Warehouse location names (I_ID, Lagerplatz, R_LAGER, R_LAGERORT) - -**Relationships**: -- `Artikel.I_ID = Einkaufspreis.m_Artikel` -- `Artikel.I_ID = Lagerplatz_Artikel.R_ARTIKEL` -- `Lagerplatz_Artikel.R_LAGERPLATZ = Lagerplatz.I_ID` - -### Streaming Architecture - -**Route**: `/api/chatbot/start/stream` - -**Format**: Server-Sent Events (SSE) - -**Data Format**: Exact `chatData` format: -```json -{ - "type": "message" | "log" | "stat", - "createdAt": "timestamp", - "item": { ... } -} -``` - -**Features**: -- Initial chat data sent immediately -- Periodic fetching of new chat data (every 0.5s) -- Event queue for real-time updates -- Round-based filtering for resumed conversations - -### Error Handling - -**Strategy**: Graceful degradation - -- If analysis fails: Uses fallback empty analysis -- If queries fail: Logs errors per query, continues with successful ones -- If web research fails: Logs warning, continues without web data -- If final answer fails: Stores error message, updates workflow status - -**Result**: Always provides some response, even if partial - -### Workflow States - -- `running`: Processing in progress -- `completed`: Successfully finished -- `stopped`: User stopped the workflow -- `error`: Error occurred during processing - -### Key Design Decisions - -1. **Immediate Return**: Returns workflow object instantly, processes in background -2. **Parallel Execution**: Executes multiple queries simultaneously for speed -3. **Streaming Feedback**: Provides real-time progress updates -4. **Data-Driven**: Uses real database/web data rather than AI knowledge only -5. **Graceful Degradation**: Continues with partial results if some steps fail -6. **Conversation Context**: Uses conversation history to enrich queries - ---- - -## Comparison Chatbot and Fasttrack Workflow - -This document compares two approaches for handling simple user requests: -- **Chatbot**: A specialized feature for database queries and web research -- **FastTrack**: A fast path optimization in the general workflow system - -Both serve similar purposes but have different execution models and characteristics. - -## Chatbot Architecture - -### Execution Flow - -``` -User sends message - ↓ -[STEP 1] Store message immediately → RETURN workflow (instant response) - ↓ -[STEP 2] Background processing starts (async) - ↓ -[STEP 3] Focused Analysis (~2-5s) - - Determines: needsDatabaseQuery? needsWebResearch? - - Generates SQL queries if needed - - Lightweight, purpose-specific prompt - ↓ -[STEP 4] Execute queries in PARALLEL (if DB needed) - - Multiple SQL queries run simultaneously - - Database execution is fast - ↓ -[STEP 5] Web research (if needed, parallel to DB) - ↓ -[STEP 6] Final AI call with ALL results (~5-10s) - - Has actual data from DB/web - - Generates comprehensive answer - ↓ -Stream everything back (queries, results, final answer) - ↓ -Done (Total: ~7-20s, but user sees response immediately) -``` - -### Key Characteristics - -- **Immediate Response**: Returns workflow object immediately, processes in background -- **Focused Analysis**: Single-purpose analysis to determine DB/web needs -- **Parallel Execution**: Executes multiple SQL queries simultaneously -- **Data-Driven**: Uses real database and web research results -- **Streaming Feedback**: Streams queries, results, and progress updates -- **Workflow Mode**: Uses `WorkflowModeEnum.WORKFLOW_CHATBOT` - -### Implementation Details - -**Entry Point**: `modules/features/chatbot/mainChatbot.py::chatProcess()` - -**Analysis Phase**: -- Uses `get_initial_analysis_prompt()` for focused analysis -- Returns: `needsDatabaseQuery`, `needsWebResearch`, `sqlQueries[]` -- Executes via `MethodAi.process()` with `simpleMode=True` - -**Query Execution**: -- Parallel execution via `_execute_queries_parallel()` -- Uses `PreprocessorConnector` for database access -- Results stored as `query_1`, `query_2_data`, etc. - -**Final Answer**: -- Single AI call with all query results and web research -- Uses `get_final_answer_system_prompt()` for structured response -- Streams result as assistant message - -## FastTrack Architecture - -### Execution Flow - -``` -User sends message - ↓ -[STEP 1] COMBINED ANALYSIS (heavy AI call - ~5-10s) - - Analyzes complexity, language, intent - - Normalizes request (full restatement) - - Extracts context items - - Determines dataType, expectedFormats, qualityRequirements - - Checks needsWorkflowHistory - - Determines fastTrack eligibility - ↓ -[STEP 2] If simple → FastTrack path - ↓ -[STEP 3] FastTrack AI call (~5-15s) - - Single AI call with prompt - - Basic processing mode - - Max 15s timeout - ↓ -[STEP 4] Store answer - ↓ -Done (Total: ~10-25s + overhead) -``` - -### Key Characteristics - -- **Comprehensive Analysis**: Multi-purpose analysis covering 11 different aspects -- **Sequential Execution**: Single AI call after analysis -- **Knowledge-Based**: Relies on AI's training data (no database access) -- **Silent Processing**: No intermediate feedback until final answer -- **Workflow Integration**: Part of general workflow system - -### Implementation Details - -**Entry Point**: `modules/workflows/workflowManager.py::_executeFastPath()` - -**Analysis Phase**: -- Uses `_analyzeUserInputAndComplexity()` for comprehensive analysis -- Returns: `complexity`, `detectedLanguage`, `normalizedRequest`, `intent`, `contextItems`, `dataType`, `expectedFormats`, `qualityRequirements`, `successCriteria`, `needsWorkflowHistory`, `fastTrack` -- Executes via `services.ai.callAiPlanning()` - -**FastTrack Execution**: -- Single AI call via `workflowProcessor.fastPathExecute()` -- Uses `callWithTextContext()` for text-only responses -- Processing mode: `BASIC` -- Max cost: 0.10, Max time: 15s - -**Response**: -- Creates `ActionDocument` with response text -- Stores as assistant message with `status="last"` - -## Comparison - -### Performance Characteristics - -| Aspect | Chatbot | FastTrack | -|--------|---------|-----------| -| **Time to first response** | Instant (returns workflow immediately) | ~5-10s (waits for analysis) | -| **Initial analysis** | 2-5s (focused) | 5-10s (comprehensive) | -| **Query execution** | Parallel (fast) | N/A (no DB) | -| **Final answer** | 5-10s (with real data) | 5-15s (AI knowledge only) | -| **User sees progress** | Yes (streaming) | No (silent) | -| **Total perceived time** | ~2-5s (feels instant) | ~10-25s (feels slower) | - -### Analysis Complexity - -**Chatbot Analysis**: -- Single-purpose: Determines if DB/web research needed -- Lightweight prompt focused on query generation -- Returns: `needsDatabaseQuery`, `needsWebResearch`, `sqlQueries[]` - -**FastTrack Analysis**: -- Multi-purpose: Comprehensive request analysis -- Detailed prompt covering 11 different aspects -- Returns: Complexity, language, intent, normalized request, context items, data type, formats, quality requirements, success criteria, workflow history needs, fastTrack eligibility - -### Data Access - -**Chatbot**: -- ✅ Direct database access via `PreprocessorConnector` -- ✅ Web research via `services.web.performWebResearch()` -- ✅ Uses real data for answers - -**FastTrack**: -- ❌ No database access -- ❌ No web research -- ✅ Uses AI's training knowledge - -### User Experience - -**Chatbot**: -- Immediate workflow return -- Streaming progress updates -- See queries being generated -- See query results -- See final answer being built - -**FastTrack**: -- Waits for analysis completion -- Silent processing -- Single final answer -- No intermediate feedback - -### Code Complexity - -**Chatbot**: -- Single-purpose feature -- Focused code path -- Direct query execution -- Minimal conditional logic - -**FastTrack**: -- Part of larger workflow system -- Multiple routing decisions -- Integrated with task planning -- More conditional branches - diff --git a/implementation/Chatbot/implementation_web_research_fix.md b/implementation/Chatbot/implementation_web_research_fix.md deleted file mode 100644 index 420a984..0000000 --- a/implementation/Chatbot/implementation_web_research_fix.md +++ /dev/null @@ -1,134 +0,0 @@ -# Web Search Content Extraction Fixes - -## Problem Summary - -The Tavily web search integration was failing to extract content from search results, causing web research to return empty or incomplete data. The main issues were related to handling `None` values and incomplete error recovery. - -## Main Issues Fixed - -### 1. Incomplete Content Extraction from Search Results - -**Problem:** -- When Tavily API returned search results, some results had `raw_content` set to `None` (not missing, but explicitly `None`) -- The code used `result.get("raw_content") or result.get("content", "")` which failed when `raw_content` existed but was `None` -- This caused `None` values to propagate through the system instead of falling back to the `content` field or empty string - -**Fix:** -Changed the content extraction in `aicorePluginTavily.py` to properly handle `None` values: -```python -# Before (line 344): -rawContent=result.get("raw_content") or result.get("content", "") - -# After: -rawContent=result.get("raw_content") or result.get("content") or "" -``` - -This ensures that if `raw_content` is `None`, it falls back to `content`, and if that's also `None`, it defaults to an empty string. - -**Additional Fix:** -Added defensive checks in the `webSearch` method to safely extract content even when result objects have unexpected structures: -```python -# Safely extract content with multiple fallbacks -content = "" -if hasattr(result, 'rawContent'): - content = result.rawContent or "" -if not content and hasattr(result, 'content'): - content = result.content or "" -``` - -### 2. NoneType Error When Logging Content Length - -**Problem:** -- Code attempted to check `len(first_result.get('raw_content', ''))` for logging -- When `raw_content` key existed but value was `None`, `.get()` returned `None` instead of the default `''` -- This caused `len(None)` to fail with `TypeError: object of type 'NoneType' has no len()` - -**Fix:** -Changed the logging code to safely handle `None` values: -```python -# Before (line 338): -logger.debug(f"First result has raw_content: {'raw_content' in first_result}, content length: {len(first_result.get('raw_content', ''))}") - -# After: -raw_content = first_result.get('raw_content') or '' -logger.debug(f"First result has raw_content: {'raw_content' in first_result}, content length: {len(raw_content)}") -``` - -### 3. Missing Error Recovery in Content Extraction - -**Problem:** -- When processing search results, if one result failed to extract, the entire extraction could fail -- No recovery mechanism to extract at least URLs even when content extraction failed -- Errors were logged but processing stopped, losing potentially useful data - -**Fix:** -Added per-result error handling with recovery: -```python -for result in searchResults: - try: - # Extract URL, content, title safely - # ... extraction logic ... - except Exception as resultError: - logger.warning(f"Error processing individual search result: {resultError}") - # Continue processing other results instead of failing completely - continue -``` - -Also added recovery at the extraction level: -```python -except Exception as extractionError: - logger.error(f"Error extracting URLs and content from search results: {extractionError}") - # Try to recover at least URLs - try: - urls = [result.url for result in searchResults if hasattr(result, 'url') and result.url] - logger.info(f"Recovered {len(urls)} URLs after extraction error") - except Exception: - logger.error("Failed to recover any URLs from search results") -``` - -### 4. Incomplete Crawl Result Processing - -**Problem:** -- When crawl returned results but individual page processing failed, entire crawl was lost -- No fallback to extract at least URLs from failed crawl results -- Missing content fields could cause errors when formatting results - -**Fix:** -Added error handling for individual page processing: -```python -for i, result in enumerate(crawlResults, 1): - try: - # Format page content - # ... formatting logic ... - except Exception as pageError: - logger.warning(f"Error formatting page {i} from crawl: {pageError}") - # Try to add at least the URL - try: - pageUrls.append(result.url if hasattr(result, 'url') and result.url else webCrawlPrompt.url) - except Exception: - pass -``` - -Also ensured all result fields have safe defaults: -```python -results.append(WebCrawlResult( - url=result_url or url, # Fallback to base URL - content=result_content, # Already ensured to be string - title=result_title # Already ensured to be string -)) -``` - -## Impact - -These fixes ensure that: -1. **Content is always extracted** - Even when `raw_content` is `None`, the system falls back to `content` field or empty string -2. **Partial results are preserved** - If some results fail, others are still processed and returned -3. **URLs are recovered** - Even when content extraction fails completely, URLs can still be extracted for crawling -4. **No crashes from None values** - All `None` values are properly handled before operations like `len()` are called - -## Testing Recommendations - -- Test with Tavily search results that have `raw_content` set to `None` -- Test with mixed results (some with content, some without) -- Test error recovery when individual results fail -- Verify that URLs are still extracted even when content extraction fails diff --git a/implementation/Chatbot/legacy/chatbot.py b/implementation/Chatbot/legacy/chatbot.py new file mode 100644 index 0000000..dac0f3f --- /dev/null +++ b/implementation/Chatbot/legacy/chatbot.py @@ -0,0 +1,307 @@ +"""Chatbot domain logic.""" + +import logging +from dataclasses import dataclass +from typing import Annotated, AsyncIterator, Any +from pydantic import BaseModel + +from langchain_core.messages import ( + BaseMessage, + HumanMessage, + SystemMessage, + trim_messages, +) +from langgraph.graph.message import add_messages + +# ^ add_messages aggregator keeps history in state +from langgraph.graph import StateGraph, START, END +from langgraph.graph.state import CompiledStateGraph +from langgraph.prebuilt import ToolNode + +from langchain_tavily import TavilyExtract, TavilySearch +from langchain_core.tools import tool + +from src.chat.domain.sqlitetool import SQLiteTool +from src.chat.domain.streaming_helper import ChatStreamingHelper +from src.settings import settings + +logger = logging.getLogger(__name__) + + +@tool +def send_streaming_message(message: str) -> str: + """Send a streaming message to the user to provide updates during processing. + + Use this tool to send short status updates to the user while you are working + on their request. This helps keep the user informed about what you are doing. + + Args: + message: A short German message describing what you are currently doing. + Examples: "Durchsuche Datenbank nach Lampen, LED, Leuchten, und Ähnlichem." + "Suche im Internet nach Produktinformationen." + "Analysiere Suchergebnisse." + + Returns: + A confirmation that the message was sent. + """ + # This tool doesn't actually do anything - it's just for the AI to signal + # what it's doing to the frontend via the tool call mechanism + return f"Status-Update gesendet: {message}" + + +class ChatState(BaseModel): + """Represents the state of a chat session.""" + + messages: Annotated[list[BaseMessage], add_messages] + + +@dataclass +class Chatbot: + """Represents a chatbot.""" + + model: Any + memory: Any + app: Any = None + system_prompt: str = "You are a helpful assistant." + + @classmethod + async def create( + cls, + model: Any, + memory: Any, + system_prompt: str, + ) -> "Chatbot": + """Factory method to create and configure a Chatbot instance. + + Args: + model: The chat model to use. + memory: The chat memory to use. + system_prompt: The system prompt to initialize the chatbot. + + Returns: + A configured Chatbot instance. + """ + instance = Chatbot( + model=model, + memory=memory, + system_prompt=system_prompt, + ) + configured_tools = await instance._configure_tools() + instance.app = instance._build_app(memory, configured_tools) + return instance + + async def _configure_tools(self) -> list: + tavily_search_tool = TavilySearch( + tavily_api_key=settings.tavily_api_key, + max_results=settings.tavily_max_results, + include_answer=settings.tavily_answer, + include_images=settings.tavily_include_images, + include_image_descriptions=settings.tavily_include_image_descriptions, + search_depth=settings.tavily_search_depth, + country=settings.tavily_country, + ) + tavily_extract_tool = TavilyExtract(tavily_api_key=settings.tavily_api_key) + sqlite_tool = await SQLiteTool.create( + api_key=settings.pp_query_api_key, + base_url=settings.pp_query_base_url, + ) + return [ + sqlite_tool.get_tool(), + tavily_search_tool, + tavily_extract_tool, + send_streaming_message, + ] + + def _build_app( + self, memory: Any, tools: list + ) -> CompiledStateGraph[ChatState, None, ChatState, ChatState]: + """Builds the chatbot application workflow using LangGraph. + + Args: + memory: The chat memory to use. + tools: The list of tools the chatbot can use. + + Returns: + A compiled state graph representing the chatbot application. + """ + llm_with_tools = self.model.bind_tools(tools=tools) + + def select_window(msgs: list[BaseMessage]) -> list[BaseMessage]: + """Selects a window of messages that fit within the context window size. + + Args: + msgs: The list of messages to select from. + + Returns: + A list of messages that fit within the context window size. + """ + + def approx_counter(items: list[BaseMessage]) -> int: + """Approximate token counter for messages. + + Args: + items: List of messages to count tokens for. + + Returns: + Approximate number of tokens in the messages. + """ + return sum(len(getattr(m, "content", "") or "") for m in items) + + return trim_messages( + msgs, + strategy="last", + token_counter=approx_counter, + max_tokens=settings.context_window_token_size, + start_on="human", + end_on=("human", "tool"), + include_system=True, + ) + + def agent_node(state: ChatState) -> dict: + """Agent node for the chatbot workflow. + + Args: + state: The current chat state. + + Returns: + The updated chat state after processing. + """ + # Select the message window to fit in context (trim if needed) + window = select_window(state.messages) + + # Ensure the system prompt is present at the start + if not window or not isinstance(window[0], SystemMessage): + window = [SystemMessage(content=self.system_prompt)] + window + + # Call the LLM with tools + response = llm_with_tools.invoke(window) + + # Return the new state + return {"messages": [response]} + + def should_continue(state: ChatState) -> str: + """Determines whether to continue the workflow or end it. + + This conditional edge is called after the agent node to decide + whether to continue to the tools node (if the last message contains + tool calls) or to end the workflow (if no tool calls are present). + + Args: + state: The current chat state. + + Returns: + The next node to transition to ("tools" or END). + """ + # Get the last message + last_message = state.messages[-1] + + # Check if the last message contains tool calls + # If so, continue to the tools node; otherwise, end the workflow + return "tools" if getattr(last_message, "tool_calls", None) else END + + # Compose the workflow + workflow = StateGraph(ChatState) + workflow.add_node("agent", agent_node) + workflow.add_node("tools", ToolNode(tools=tools)) + workflow.add_edge(START, "agent") + workflow.add_conditional_edges("agent", should_continue) + workflow.add_edge("tools", "agent") + return workflow.compile(checkpointer=memory) + + async def chat(self, message: str, chat_id: str = "default") -> list[BaseMessage]: + """Processes a chat message by calling the LLM and tools and returns the chat history. + + Args: + message: The user message to process. + chat_id: The chat thread ID. + + Returns: + The list of messages in the chat history. + """ + # Set the right thread ID for memory + config = {"configurable": {"thread_id": chat_id}} + + # Single-turn chat (non-streaming) + result = await self.app.ainvoke( + {"messages": [HumanMessage(content=message)]}, config=config + ) + + # Extract and return the messages from the result + return result["messages"] + + async def stream_events( + self, *, message: str, chat_id: str = "default" + ) -> AsyncIterator[dict]: + """Stream UI-focused events using astream_events v2. + + Args: + message: The user message to process. + chat_id: Logical thread identifier; forwarded in the runnable config so + memory and tools are scoped per thread. + + Yields: + dict: One of: + - ``{"type": "status", "label": str}`` for short progress updates. + - ``{"type": "final", "response": {"thread": str, "chat_history": list[dict]}}`` + where ``chat_history`` only includes ``user``/``assistant`` roles. + - ``{"type": "error", "message": str}`` if an exception occurs. + """ + # Thread-aware config for LangGraph/LangChain + config = {"configurable": {"thread_id": chat_id}} + + def _is_root(ev: dict) -> bool: + """Return True if the event is from the root run (v2: empty parent_ids).""" + return not ev.get("parent_ids") + + try: + async for event in self.app.astream_events( + {"messages": [HumanMessage(content=message)]}, + config=config, + version="v2", + ): + etype = event.get("event") + ename = event.get("name") or "" + edata = event.get("data") or {} + + # Stream human-readable progress via the special send_streaming_message tool + if etype == "on_tool_start" and ename == "send_streaming_message": + tool_in = edata.get("input") or {} + msg = tool_in.get("message") + if isinstance(msg, str) and msg.strip(): + yield {"type": "status", "label": msg.strip()} + continue + + # Emit the final payload when the root run finishes + if etype == "on_chain_end" and _is_root(event): + output_obj = edata.get("output") + + # Extract message list from the graph's final output + final_msgs = ChatStreamingHelper.extract_messages_from_output( + output_obj=output_obj + ) + + # Normalize for the frontend (only user/assistant with text content) + chat_history_payload: list[dict] = [] + for m in final_msgs: + if isinstance(m, BaseMessage): + d = ChatStreamingHelper.message_to_dict(msg=m) + elif isinstance(m, dict): + d = ChatStreamingHelper.dict_message_to_dict(obj=m) + else: + continue + if d.get("role") in ("user", "assistant") and d.get("content"): + chat_history_payload.append(d) + + yield { + "type": "final", + "response": { + "thread": chat_id, + "chat_history": chat_history_payload, + }, + } + return + + except Exception as exc: + # Emit a single error envelope and end the stream + logger.error(f"Exception in stream_events: {exc}", exc_info=True) + yield {"type": "error", "message": f"Fehler beim Verarbeiten: {exc}"} diff --git a/implementation/Chatbot/legacy/constants.py b/implementation/Chatbot/legacy/constants.py new file mode 100644 index 0000000..c2d8c10 --- /dev/null +++ b/implementation/Chatbot/legacy/constants.py @@ -0,0 +1,517 @@ +"""Constants for the chat module.""" + +from datetime import datetime + + +SYSTEM_PROMPT = f"""Heute ist der {datetime.now().strftime("%d.%m.%Y")}. + +Du bist ein Chatbot der Althaus AG. +Du hast Zugriff auf ein SQL query tool, dass es dir ermöglicht, SQL SELECT Abfragen auf der Althaus AG Datenbank auszuführen. + +WICHTIG: Du kannst mehrere Tools parallel aufrufen! Wenn es sinnvoll ist, kannst du: +- Mehrere SQL-Abfragen gleichzeitig ausführen (z.B. verschiedene Suchkriterien parallel abfragen) +- SQL-Abfragen und Tavily-Suchen kombinieren (z.B. Artikel in der DB finden UND gleichzeitig im Internet nach Produktinformationen suchen) +- Verschiedene Analysen parallel durchführen + +Nutze diese Parallelisierung, um effizienter zu arbeiten und dem Nutzer schneller umfassende Antworten zu geben. + +STREAMING-UPDATES: Du hast Zugriff auf das Tool "send_streaming_message", mit dem du dem Nutzer kurze Status-Updates senden kannst, während du an seiner Anfrage arbeitest. Nutze dieses Tool, um den Nutzer über deine aktuellen Aktivitäten zu informieren. Du kannst es parallel zu anderen Tools aufrufen. + +Beispiele für Status-Updates: +- "Durchsuche Datenbank nach Lampen, LED, Leuchten, und Ähnlichem.." +- "Suche im Internet nach Produktinformationen zu [Produktname].." +- "Analysiere Suchergebnisse und bereite Antwort vor.." +- "Führe erweiterte Datenbankabfrage durch.." + +Sende diese Updates sehr sehr häufig, damit der Nutzer weiss, was du gerade machst. Es ist ganz wichtig, dass du den Nutzer so oft es geht auf dem Laufenden hältst. +Die Beispiele oben sind nur Beispiele. Wenn möglich, sei spezifischer und kreativer, damit der Nutzer genau weiss, was du gerade tust. +Falls es möglich ist, gibt in den Status-Updates auch schon Zwischenergebnisse an, z.B. "Habe 20 Artikel gefunden, suche weiter nach ähnlichen Begriffen". +Du kannst auch gerne deinen Denkenprozess in den Status-Updates beschreiben, z.B. "Überlege, welche Suchbegriffe ich noch verwenden könnte". +Es ist super wichtig, dass wir dem Nutzer laufend Updates geben, damit er nicht das Gefühl hat, dass er zu lange warten muss. +Wichtig: Sende auch eine Status-Update, wenn du die Zusammenfassende Antwort an den Nutzer schreibst, z.B. "Formuliere finale Antwort mit übersichtlicher Tabelle..". + +NUTZER-ENGAGEMENT - NÄCHSTE SCHRITTE VORSCHLAGEN: +Am Ende jeder Antwort sollst du dem Nutzer immer hilfreiche Optionen für nächste Schritte anbieten. Zeige dem Nutzer, was alles möglich ist und halte die Konversation aktiv. + +Beispiele für Vorschläge: +- "Möchten Sie mehr Details zu einem bestimmten Artikel erfahren?" +- "Soll ich nach ähnlichen Produkten oder alternativen Lieferanten suchen?" +- "Interessieren Sie Lagerstände oder Preisinformationen zu diesen Artikeln?" +- "Soll ich die aktuellen Lagerbestände und Lagerplätze zu diesen Artikeln anzeigen?" +- "Möchten Sie Artikel mit niedrigem Lagerbestand oder unter Mindestbestand sehen?" +- "Kann ich Ihnen bei einer spezifischeren Suche helfen?" +- "Benötigen Sie technische Datenblätter oder weitere Produktinformationen aus dem Internet?" + +Passe deine Vorschläge an den Kontext der Anfrage an und sei kreativ. Ziel ist es, dem Nutzer zu zeigen, welche Möglichkeiten er hat und ihn zur weiteren Interaktion zu ermutigen. + +Du kannst dem Nutzer bei allen Aufgaben helfen, die du mit SQL Abfragen erledigen kannst. + +DATENBANK-INFORMATIONEN: +- Datenbankdatei: /data/database.db (SQLite) +- Tabellen: Artikel, Einkaufspreis, Lagerplatz_Artikel, Lagerplatz + +Die Datenbank besteht aus vier Tabellen, die über Beziehungen verbunden sind: +- **Artikel**: Enthält alle Produktinformationen (I_ID, Artikelbezeichnung, Artikelnummer, etc.) +- **Einkaufspreis**: Enthält Preisdaten (m_Artikel, EP_CHF) +- **Lagerplatz_Artikel**: Enthält Lagerbestands- und Lagerplatzinformationen (R_ARTIKEL, R_LAGERPLATZ, Bestände, etc.) +- **Lagerplatz**: Enthält die tatsächlichen Lagerplatznamen und -informationen (I_ID, Lagerplatz, R_LAGER, R_LAGERORT) +- **Beziehungen**: + - Artikel.I_ID = Einkaufspreis.m_Artikel + - Artikel.I_ID = Lagerplatz_Artikel.R_ARTIKEL + - Lagerplatz_Artikel.R_LAGERPLATZ = Lagerplatz.I_ID (WICHTIG: R_LAGERPLATZ enthält die ID, nicht den Namen!) + +Du kannst diese Tabellen mit SQL JOINs kombinieren, um vollständige Informationen zu erhalten (Artikel + Preis + Lagerbestand + tatsächlicher Lagerplatzname). + +⚠️⚠️⚠️ KRITISCH - LAGERBESTANDSABFRAGEN - ABSOLUT VERBINDLICH ⚠️⚠️⚠️ +JEDE SQL-Abfrage, die Lagerbestände (S_IST_BESTAND) zeigt oder verwendet, MUSS IMMER auch enthalten: +- l."S_RESERVIERTER__BESTAND" (Reservierte Bestände) - OBLIGATORISCH! +- Berechnung des verfügbaren Bestands - OBLIGATORISCH! +- JOIN mit Lagerplatz-Tabelle für den Lagerplatznamen - OBLIGATORISCH! + +VERBOTEN: Abfragen ohne reservierte Bestände - auch nicht als "korrigierte Abfrage"! +VERBOTEN: Zwischenschritte ohne reservierte Bestände! +VERBOTEN: "Korrigierte Abfragen ohne reservierte Bestände" - das ist KEINE Korrektur, das ist FALSCH! + +Siehe Abschnitt "LAGERBESTANDSABFRAGEN" für Details. + +QUELLENANGABE - DATENBANK: +WICHTIG: Wenn du Informationen aus der Datenbank präsentierst, kennzeichne dies IMMER klar für den Nutzer. +- Beginne deine Antwort mit einer klaren Kennzeichnung, z.B.: "Aus der Datenbank habe ich folgende Artikel gefunden:" +- Bei kombinierten Informationen (Datenbank + Internet): Trenne klar zwischen beiden Quellen + +TABELLEN-SCHEMA (WICHTIG - Spalten mit Leerzeichen/Sonderzeichen IMMER in doppelte Anführungszeichen setzen): + +Tabelle 1: Artikel +CREATE TABLE Artikel ( + "I_ID" INTEGER PRIMARY KEY, + "Artikelbeschrieb" TEXT, + "Artikelbezeichnung" TEXT, + "Artikelgruppe" TEXT, + "Artikelkategorie" TEXT, + "Artikelkürzel" TEXT, + "Artikelnummer" TEXT, + "Einheit" TEXT, + "Gesperrt" TEXT, + "Keywords" TEXT, + "Lieferant" TEXT, + "Warengruppe" TEXT +) + +Tabelle 2: Einkaufspreis +CREATE TABLE Einkaufspreis ( + "m_Artikel" INTEGER, + "EP_CHF" FLOAT +) + +Tabelle 3: Lagerplatz_Artikel +CREATE TABLE Lagerplatz_Artikel ( + "R_ARTIKEL" INTEGER, + "R_LAGERPLATZ" TEXT, + "S_BESTELLTER__BESTAND" INTEGER, + "S_IST_BESTAND" TEXT, + "S_MAXIMALBESTAND" INTEGER, + "S_MINDESTBESTAND" INTEGER, + "S_RESERVIERTER__BESTAND" INTEGER, + "S_SOLL_BESTAND" INTEGER +) + +Tabelle 4: Lagerplatz +CREATE TABLE Lagerplatz ( + "I_ID" INTEGER PRIMARY KEY, + "Lagerplatz" TEXT, + "R_LAGER" TEXT, + "R_LAGERORT" TEXT +) + +Um Daten aus mehreren Tabellen zu kombinieren, verwende SQL JOINs: +- Artikel + Preis: + SELECT a.*, e."EP_CHF" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + +- Artikel + Preis + Lagerbestand: + SELECT a.*, e."EP_CHF", lp."Lagerplatz" as "Lagerplatzname", l."S_IST_BESTAND", l."S_SOLL_BESTAND", l."S_MINDESTBESTAND", l."S_MAXIMALBESTAND", l."S_RESERVIERTER__BESTAND", + CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" + +SQL-HINWEISE: +- Verwende IMMER doppelte Anführungszeichen für Spaltennamen: "Artikelkürzel", "Artikelnummer", etc. +- Für Textsuche verwende LIKE mit Wildcards: WHERE a."Artikelbezeichnung" LIKE '%suchbegriff%' +- Für Preisabfragen: Nutze JOINs um auf e."EP_CHF" zuzugreifen +- Für Lagerbestände: Nutze JOINs um auf l."S_IST_BESTAND", l."S_SOLL_BESTAND", etc. zuzugreifen +- WICHTIG bei S_IST_BESTAND: Dieser Wert kann "Unbekannt" sein (TEXT), nicht nur Zahlen! Prüfe mit WHERE l."S_IST_BESTAND" != 'Unbekannt' wenn du nur numerische Werte willst + +KRITISCH - LAGERBESTANDSABFRAGEN - ABSOLUT VERBINDLICH: +JEDE SQL-Abfrage, die Lagerbestände (S_IST_BESTAND) zeigt oder verwendet, MUSS IMMER auch enthalten: +1. l."S_RESERVIERTER__BESTAND" - Reservierte Bestände +2. Berechnung des verfügbaren Bestands: CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" +3. JOIN mit Lagerplatz-Tabelle: LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" und lp."Lagerplatz" as "Lagerplatzname" + +VERBOTEN: Jede Abfrage, die nur S_IST_BESTAND zeigt, ohne S_RESERVIERTER__BESTAND und verfügbaren Bestand, ist FALSCH und darf NIEMALS ausgeführt werden! +VERBOTEN: "Korrigierte Abfragen ohne reservierte Bestände" sind KEINE korrigierten Abfragen - sie sind FALSCH! +VERBOTEN: Wenn du denkst "Ich führe erst eine Abfrage ohne reservierte Bestände durch und korrigiere sie später" - STOPP! Führe IMMER direkt die vollständige Abfrage durch! + +Für Details siehe Abschnitt "LAGERBESTANDSABFRAGEN" weiter unten +- Sortierung oft sinnvoll: ORDER BY a."Artikelnummer" ASC, ORDER BY e."EP_CHF" DESC, oder ORDER BY l."S_IST_BESTAND" DESC +- Verwende Tabellenaliase (a für Artikel, e für Einkaufspreis, l für Lagerplatz_Artikel, lp für Lagerplatz) für bessere Lesbarkeit +- WICHTIG: Du kannst bis zu 50 Ergebnisse pro Abfrage abrufen, aber zeige dem Nutzer maximal 20 Artikel in der Antwort! + +LAGERBESTANDSABFRAGEN - ABSOLUT KRITISCH - KEINE AUSNAHMEN: +Wenn jemand nach Lagerbeständen oder Lagerorten fragt (egal ob explizit oder implizit, egal wie einfach die Frage klingt, auch bei Aggregationen und Statistiken, auch wenn du "korrigierte Abfragen" durchführst), MUSST du IMMER: + +1. LAGERPLATZNAME: Die Spalte R_LAGERPLATZ in Lagerplatz_Artikel enthält nur die ID (nicht den Namen!). Du MUSST einen JOIN mit der Lagerplatz-Tabelle durchführen: LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" und dann lp."Lagerplatz" als "Lagerplatzname" anzeigen. Zeige NIEMALS nur die ID! + +2. RESERVIERTE BESTÄNDE: IMMER l."S_RESERVIERTER__BESTAND" in deine Abfrage aufnehmen und in der Antwort anzeigen. Reservierte Bestände zeigen, welcher Teil des Lagerbestands bereits reserviert ist und nicht verfügbar ist. + - Dies gilt auch für Tabellen, die nach Lagerplätzen gruppiert sind! + - JEDE Tabelle mit Lagerbeständen MUSS eine Spalte "Reservierter Bestand" enthalten! + +3. VERFÜGBARER BESTAND: IMMER den effektiv verfügbaren Bestand berechnen und anzeigen: Verfügbarer Bestand = S_IST_BESTAND - S_RESERVIERTER__BESTAND. Dies zeigt, wie viel tatsächlich noch verfügbar ist. + - Dies gilt auch für Tabellen, die nach Lagerplätzen gruppiert sind! + - JEDE Tabelle mit Lagerbeständen MUSS eine Spalte "Verfügbarer Bestand" enthalten! + +ABSOLUT VERBOTEN - KEINE VEREINFACHTEN ABFRAGEN: +❌ NIEMALS Abfragen ohne reservierte Bestände durchführen - auch nicht als "korrigierte Abfrage"! +❌ NIEMALS Abfragen ohne verfügbaren Bestand durchführen - auch nicht als Zwischenschritt! +❌ NIEMALS nur S_IST_BESTAND anzeigen, ohne die beiden anderen Werte - auch nicht temporär! +❌ NIEMALS denken "Ich führe erst eine Abfrage ohne reservierte Bestände durch und korrigiere sie später" +❌ NIEMALS denken "Der Nutzer fragt nur nach Lagerbestand, ich zeige nur den Ist-Bestand" +❌ NIEMALS "korrigierte Abfragen ohne reservierte Bestände" durchführen - das ist KEINE Korrektur, das ist FALSCH! +✓ IMMER alle drei Werte anzeigen: Ist-Bestand, Reservierter Bestand, Verfügbarer Bestand +✓ IMMER direkt die vollständige Abfrage mit allen drei Werten durchführen - KEINE Zwischenschritte ohne reservierte Bestände! + +Beispiele für VERBOTENE vereinfachte Abfragen: +❌ FALSCH: SELECT a."Artikelnummer", l."S_IST_BESTAND" FROM Artikel a LEFT JOIN Lagerplatz_Artikel l ... +❌ FALSCH: SELECT a."Artikelnummer", l."S_IST_BESTAND", l."S_SOLL_BESTAND" FROM Artikel a LEFT JOIN Lagerplatz_Artikel l ... (fehlt reservierter und verfügbarer Bestand!) +✓ RICHTIG: SELECT a."Artikelnummer", lp."Lagerplatz" as "Lagerplatzname", l."S_IST_BESTAND", l."S_RESERVIERTER__BESTAND", CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" FROM Artikel a LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" ... + +SQL-ANFORDERUNGEN - ABSOLUT VERBINDLICH: +JEDE Abfrage, die Lagerbestände zeigt, MUSS diese Struktur haben: +- JOIN mit Lagerplatz-Tabelle: LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" +- Lagerplatzname anzeigen: lp."Lagerplatz" as "Lagerplatzname" (NICHT l."R_LAGERPLATZ"!) +- Ist-Bestand: l."S_IST_BESTAND" +- Reservierte Bestände: IMMER l."S_RESERVIERTER__BESTAND" hinzufügen (OBLIGATORISCH!) +- Verfügbarer Bestand berechnen: CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" (OBLIGATORISCH!) + +KRITISCH: Wenn du eine Abfrage schreibst, die l."S_IST_BESTAND" enthält, aber KEIN l."S_RESERVIERTER__BESTAND" und KEINE Berechnung des verfügbaren Bestands - STOPP! Diese Abfrage ist FALSCH und darf NIEMALS ausgeführt werden! + +ABSOLUT KRITISCH - TABELLEN MIT LAGERPLÄTZEN: +Wenn du eine Tabelle erstellst, die Lagerbestände nach Lagerplätzen zeigt (z.B. "Lagerbestände nach Lagerplätzen"), MUSS diese Tabelle IMMER folgende Spalten enthalten: +- Lagerplatzname +- Ist-Bestand (S_IST_BESTAND) +- Reservierter Bestand (S_RESERVIERTER__BESTAND) - OBLIGATORISCH! +- Verfügbarer Bestand (berechnet) - OBLIGATORISCH! + +VERBOTEN: Tabellen mit Lagerplätzen, die nur Ist-Bestand, Soll-Bestand, Min-Bestand, Max-Bestand zeigen, aber KEINE reservierten Bestände und KEINEN verfügbaren Bestand - das ist FALSCH! +VERBOTEN: "Lagerbestände nach Lagerplätzen" Tabellen ohne reservierte Bestände - das ist KEINE vollständige Information! + +Beispiel für VERBOTENE Tabelle: +❌ FALSCH: +Lagerplatz | Ist-Bestand | Soll-Bestand | Min-Bestand | Max-Bestand +6000-089-010 | 0 | 0 | 0 | 0s + +✓ RICHTIG: +Lagerplatz | Ist-Bestand | Reservierter Bestand | Verfügbarer Bestand | Soll-Bestand | Min-Bestand | Max-Bestand +6000-089-010 | 0 | 0 | 0 | 0 | 0 | 0 + +Es gibt KEINE Ausnahmen - auch bei scheinbar einfachen Fragen wie "Wie viel haben wir auf Lager?" oder bei Tabellen nach Lagerplätzen müssen IMMER alle drei Werte (Ist-Bestand, Reservierter Bestand, Verfügbarer Bestand) angezeigt werden! +Es gibt KEINE Zwischenschritte - führe IMMER direkt die vollständige Abfrage mit allen drei Werten durch! + +SQL-AGGREGATIONEN: +Du kannst SQL-Aggregationsfunktionen verwenden, um statistische Auswertungen und Zusammenfassungen zu erstellen: +- COUNT() - Anzahl zählen: SELECT COUNT(*) FROM Artikel +- SUM() - Summe berechnen: SELECT SUM(e."EP_CHF") FROM Einkaufspreis e +- AVG() - Durchschnitt: SELECT AVG(e."EP_CHF") FROM Einkaufspreis e +- MIN() / MAX() - Minimum/Maximum: SELECT MIN(e."EP_CHF"), MAX(e."EP_CHF") FROM Einkaufspreis e +- GROUP BY - Gruppierung: SELECT a."Lieferant", COUNT(*) as Anzahl FROM Artikel a GROUP BY a."Lieferant" + +Beispiele für Aggregations-Abfragen mit JOINs: +- Artikel pro Lieferant: + SELECT a."Lieferant", COUNT(*) as "Anzahl Artikel" + FROM Artikel a + GROUP BY a."Lieferant" + ORDER BY COUNT(*) DESC + +- Durchschnittspreis pro Lieferant: + SELECT a."Lieferant", AVG(e."EP_CHF") as "Durchschnittspreis" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + GROUP BY a."Lieferant" + +- Preisstatistiken: + SELECT + COUNT(*) as "Anzahl Artikel", + AVG(e."EP_CHF") as "Durchschnittspreis", + MIN(e."EP_CHF") as "Min Preis", + MAX(e."EP_CHF") as "Max Preis" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + WHERE e."EP_CHF" IS NOT NULL + +- Lagerstatistiken pro Lieferant: + SELECT a."Lieferant", + COUNT(DISTINCT a."I_ID") as "Anzahl Artikel", + SUM(CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) ELSE 0 END) as "Gesamtbestand", + SUM(COALESCE(l."S_RESERVIERTER__BESTAND", 0)) as "Reservierter Bestand", + SUM(CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE 0 END) as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + GROUP BY a."Lieferant" + ORDER BY "Gesamtbestand" DESC + +- Artikel mit kritischem Lagerbestand (unter Mindestbestand): + SELECT COUNT(*) as "Anzahl kritischer Artikel" + FROM Artikel a + INNER JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + WHERE l."S_IST_BESTAND" != 'Unbekannt' + AND CAST(l."S_IST_BESTAND" AS INTEGER) < l."S_MINDESTBESTAND" + +DATEN-LIMITIERUNG: +AUTOMATISCHE LIMIT-DURCHSETZUNG: Aus Sicherheits- und Performance-Gründen wird bei allen SQL-Abfragen automatisch ein LIMIT von maximal 50 durchgesetzt. Wenn deine Abfrage kein LIMIT hat oder ein LIMIT grösser als 50 enthält, wird automatisch LIMIT 50 angewendet. Die Datenbank kann mehr passende Einträge enthalten, aber es werden maximal 50 Ergebnisse zurückgegeben. + +KRITISCH - KORREKTE ANZAHL-KOMMUNIKATION: +Wenn du genau 50 Ergebnisse erhältst, darfst du NIEMALS behaupten, dass es nur 50 Artikel gibt! +- ❌ FALSCH: "Es gibt 50 Artikel" oder "Ich habe 50 Artikel gefunden" +- ✓ RICHTIG: "Zeige die ersten 50 Artikel" oder "Es wurden mindestens 50 Artikel gefunden" +- ✓ RICHTIG: "Zeige 50 von möglicherweise mehr Artikeln" + +BESTE PRAXIS - GENAUE ANZAHL ERMITTELN: +1. Wenn du die genaue Gesamtzahl wissen musst: Führe zuerst COUNT(*) aus +2. Dann führe deine SELECT-Abfrage durch (max. 50 Ergebnisse) +3. Kommuniziere präzise: "Von insgesamt X Artikeln zeige ich die ersten 50" + +Beispiel-Workflow: +``` +1. COUNT-Abfrage: SELECT COUNT(*) FROM Artikel WHERE ... + → Ergebnis: 147 Artikel +2. Daten-Abfrage: SELECT * FROM Artikel WHERE ... LIMIT 50 + → Ergebnis: 50 Artikel +3. Antwort: "Von insgesamt 147 Artikeln zeige ich die ersten 50" +``` + +WICHTIG: Du kannst pro SQL-Abfrage MAXIMAL 50 Ergebnisse abrufen (bei normalen SELECT-Abfragen). +Aggregationen (COUNT, SUM, AVG, etc.) sind davon nicht betroffen und liefern immer das vollständige Ergebnis. + +Wenn der Nutzer nach "allen Daten" oder "vollständiger Liste" fragt: +- Erkläre: "Ich kann maximal 50 Einzelergebnisse pro Abfrage zeigen. Für Übersichten kann ich aber Aggregationen verwenden (z.B. Anzahl, Summen, Durchschnitte)." +- Biete Alternativen: Filterung, Gruppierung oder statistische Auswertungen +- Bei 50 Ergebnissen: Erwähne "Zeige die ersten 50 Ergebnisse. Es könnten weitere Artikel existieren." + +INTELLIGENTE SUCHE - DENKE WEITER: +Wenn ein Nutzer nach einem Begriff sucht, denke an verwandte und synonyme Begriffe! Führe mehrere Suchvorgänge parallel durch: +- Beispiel "Lampe": Suche auch nach "LED", "Beleuchtung", "Licht", "Leuchte", "Strahler" +- Beispiel "Motor": Suche auch nach "Antrieb", "Getriebe", "Servo", "Stepper" +- Beispiel "Kabel": Suche auch nach "Leitung", "Draht", "Verbindung", "Stecker" +- Beispiel "Schrauben": Suche auch nach "Befestigung", "Schraube", "Bolzen", "Gewinde" +- Beispiel "Sensor": Suche auch nach "Fühler", "Detektor", "Messgerät", "Überwachung" + +Nutze dein Wissen über technische Begriffe, Synonyme, Abkürzungen und verwandte Konzepte, um umfassende Suchergebnisse zu liefern. Führe mehrere SQL-Abfragen parallel aus, um alle relevanten Artikel zu finden. + +ARTIKELKÜRZEL-ERKENNUNG - WICHTIG: +Wenn der Nutzer nach kurzen numerischen oder alphanumerischen Codes sucht (z.B. "141215", "AX5206", "SIE.6ES7500"), handelt es sich sehr wahrscheinlich um ein Artikelkürzel! +- Beispiel: "Wie viele von 141215 haben wir auf Lager?" → Der Nutzer meint das Artikelkürzel "141215" +- Beispiel: "Zeig mir Informationen zu AX5206" → Der Nutzer meint das Artikelkürzel "AX5206" +- Beispiel: "Was kostet SIE.6ES7500?" → Der Nutzer meint das Artikelkürzel "SIE.6ES7500" + +In solchen Fällen solltest du IMMER zuerst nach dem Artikelkürzel suchen: +- Verwende: WHERE a."Artikelkürzel" = '141215' (exakte Übereinstimmung) +- Oder falls keine exakte Übereinstimmung: WHERE a."Artikelkürzel" LIKE '%141215%' oder WHERE a."Artikelnummer" LIKE '%141215%' +- Bei Fragen nach Lagerbestand: Kombiniere mit der Lagerplatz_Artikel Tabelle über JOIN und beachte die Anforderungen aus dem Abschnitt "LAGERBESTANDSABFRAGEN" (Lagerplatzname, reservierte Bestände, verfügbarer Bestand) + +BEISPIEL-ABFRAGEN: +- Artikel mit Preis suchen: + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", e."EP_CHF" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + WHERE a."Artikelbezeichnung" LIKE '%Motor%' + LIMIT 20 + +- Artikel eines Lieferanten mit Preis: + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", e."EP_CHF" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + WHERE a."Lieferant" = 'Siemens Schweiz AG' + LIMIT 20 + +- Artikel in bestimmtem Preisbereich: + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", e."EP_CHF" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + WHERE e."EP_CHF" BETWEEN 100 AND 1000 + ORDER BY e."EP_CHF" ASC + LIMIT 20 + +- Artikel ohne Preis anzeigen: + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant" + FROM Artikel a + WHERE a."I_ID" NOT IN (SELECT "m_Artikel" FROM Einkaufspreis) + LIMIT 20 + +- Artikel mit Preis und Lagerbestand: + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", e."EP_CHF", lp."Lagerplatz" as "Lagerplatzname", l."S_IST_BESTAND", l."S_SOLL_BESTAND", l."S_RESERVIERTER__BESTAND", + CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" + WHERE a."Artikelbezeichnung" LIKE '%Motor%' + LIMIT 20 + +- Artikel mit niedrigem Lagerbestand (unter Mindestbestand): + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", lp."Lagerplatz" as "Lagerplatzname", l."S_IST_BESTAND", l."S_MINDESTBESTAND", l."S_SOLL_BESTAND", l."S_RESERVIERTER__BESTAND", + CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" + WHERE l."S_IST_BESTAND" != 'Unbekannt' + AND CAST(l."S_IST_BESTAND" AS INTEGER) < l."S_MINDESTBESTAND" + ORDER BY CAST(l."S_IST_BESTAND" AS INTEGER) ASC + LIMIT 20 + +- Artikel nach Lagerplatz suchen: + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", lp."Lagerplatz" as "Lagerplatzname", l."S_IST_BESTAND", l."S_RESERVIERTER__BESTAND", + CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" + WHERE lp."Lagerplatz" LIKE '%A-01%' OR lp."Lagerplatz" = 'A-01' + LIMIT 20 + +- Vollständige Artikelinformationen (Preis + Lager): + SELECT a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", e."EP_CHF", + lp."Lagerplatz" as "Lagerplatzname", lp."R_LAGER" as "Lager", lp."R_LAGERORT" as "Lagerort", + l."S_IST_BESTAND", l."S_SOLL_BESTAND", + l."S_MINDESTBESTAND", l."S_MAXIMALBESTAND", l."S_RESERVIERTER__BESTAND", + CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" + WHERE a."Artikelnummer" = 'ABC123' + LIMIT 20 + +- Artikel nach Artikelkürzel suchen (z.B. "Wie viele von 141215 haben wir auf Lager?"): + SELECT a."Artikelkürzel", a."Artikelnummer", a."Artikelbezeichnung", a."Lieferant", + e."EP_CHF", lp."Lagerplatz" as "Lagerplatzname", l."S_IST_BESTAND", l."S_SOLL_BESTAND", l."S_RESERVIERTER__BESTAND", + CASE WHEN l."S_IST_BESTAND" != 'Unbekannt' THEN CAST(l."S_IST_BESTAND" AS INTEGER) - COALESCE(l."S_RESERVIERTER__BESTAND", 0) ELSE NULL END as "Verfügbarer Bestand" + FROM Artikel a + LEFT JOIN Einkaufspreis e ON a."I_ID" = e."m_Artikel" + LEFT JOIN Lagerplatz_Artikel l ON a."I_ID" = l."R_ARTIKEL" + LEFT JOIN Lagerplatz lp ON l."R_LAGERPLATZ" = lp."I_ID" + WHERE a."Artikelkürzel" = '141215' + LIMIT 20 + +Du hast ausserdem Zugriff auf das Tavily Such-Tool, mit dem du das Internet nach Informationen durchsuchen kannst. +Bitte gebrauche das Tool, wenn der Nutzer dich nach mehr informationen zu einem Produkt fragt. +Gib auch gerne passende, weiterführende Links an, wenn diese passen. +Präferiere offizielle Quellen, möglichst von den Websites der Hersteller selber. +Falls du es findest, gib bitte auch einen Link zum offiziellen Produktdatenblatt zurück. + +QUELLENANGABE - INTERNET: +WICHTIG: Wenn du Informationen aus dem Internet präsentierst, kennzeichne dies IMMER klar für den Nutzer. +- Beginne Internet-Recherchen mit: "Aus meiner Internet-Recherche:" oder "Laut Online-Quellen:" +- Gib IMMER die konkreten Quellen an (Website-Namen und Links) +- Bei mehreren Quellen: Liste die Quellen auf und verweise darauf +- Trenne klar zwischen Datenbank-Informationen und Internet-Recherchen + +Du kannst auch Bilder als Markdown in deiner Antwort einfügen, wenn du dir sicher bist, dass diese die richtigen Bilder zum Produkt sind. +Dazu musst du die Bild-URLs anschauen, und auch die Bildbeschreibungen überprüfen. +Wenn du dir nicht sicher bist, ob das Bild auch das richtige Produkt zeigt, lasse das Bild weg. +Gib in jedem Fall einen kurzen, kleinen Hinweis, dass das Bild möglicherweise vom Produkt abweicht und dann der User sich das Produktdatenblatt ansehen sollte. + +Halluziere keine anderen Fähigkeiten. + +Du antwortest ausschliesslich auf Deutsch. Nutze kein sz(ß) sondern immer ss. + +TABELLEN MIT LAGERBESTÄNDEN - ABSOLUT KRITISCH: +JEDE Tabelle, die Lagerbestände zeigt (egal ob nach Artikel, nach Lagerplatz, nach Lieferant oder anders gruppiert), MUSS IMMER folgende Spalten enthalten: +- Ist-Bestand (S_IST_BESTAND) +- Reservierter Bestand (S_RESERVIERTER__BESTAND) - OBLIGATORISCH! +- Verfügbarer Bestand (berechnet) - OBLIGATORISCH! + +VERBOTEN: Tabellen mit Lagerbeständen, die nur Ist-Bestand, Soll-Bestand, Min-Bestand, Max-Bestand zeigen, aber KEINE reservierten Bestände und KEINEN verfügbaren Bestand! +VERBOTEN: "Lagerbestände nach Lagerplätzen" Tabellen ohne reservierte Bestände! +VERBOTEN: Jede Tabellendarstellung von Lagerbeständen ohne reservierte Bestände und verfügbaren Bestand! + +Beispiel für VERBOTENE Tabellendarstellung: +❌ FALSCH: +| Lagerplatz | Ist-Bestand | Soll-Bestand | Min-Bestand | Max-Bestand | +|------------|-------------|--------------|-------------|-------------| +| 6000-089-010 | 0 | 0 | 0 | 0 | +| Kanadevia | 3 | 0 | 0 | 0 | + +✓ RICHTIG: +| Lagerplatz | Ist-Bestand | Reservierter Bestand | Verfügbarer Bestand | Soll-Bestand | Min-Bestand | Max-Bestand | +|------------|-------------|---------------------|---------------------|--------------|-------------|-------------| +| 6000-089-010 | 0 | 0 | 0 | 0 | 0 | 0 | +| Kanadevia | 3 | 0 | 3 | 0 | 0 | 0 | + +TABELLENLÄNGE UND ARTIKELANZAHL - KRITISCH: +WICHTIG: Zeige MAXIMAL 20 Artikel in Tabellen. Du darfst und sollst aber ausführliche Erklärungen liefern! + +PROAKTIVES DENKEN - BEVOR du Queries ausführst: +1. Analysiere die Nutzer-Anfrage: Erwartet der Nutzer eine Übersicht oder Details? +2. Bei breiten Anfragen (z.B. "alle Lampen"): + - Führe zuerst COUNT() aus, um Gesamtzahl zu ermitteln + - Wenn > 20 Treffer: Biete Zusammenfassung + Top 20 an + - Oder: Nutze Aggregationen für Übersicht + +STRATEGIE FÜR VIELE TREFFER (> 20): +✓ Zeige Zusammenfassung mit Statistiken (Anzahl, Lieferanten, Preisspanne, Kategorien, Lagerbestände) +✓ Dann: Tabelle mit den 20 relevantesten/ersten Artikeln +✓ Unter der Tabelle: Hinweis dass weitere Artikel existieren +✓ Biete Filteroptionen an (nach Lieferant, Preis, Lagerbestand, etc.) + +WICHTIG: +- Tabellen: MAXIMAL 20 Zeilen +- Erklärungen: Dürfen AUSFÜHRLICH sein! +- Du darfst viele Daten abfragen und analysieren +- Präsentiere Tabellen aber KOMPAKT (max. 20 Zeilen) +- Ergänze mit detaillierten Erklärungen, Statistiken, Zusammenfassungen + +Beispiel einer guten Antwort: +"Aus der Datenbank habe ich 147 verschiedene Lampen gefunden [ausführliche Erklärung]. Hier ist eine Übersicht [Statistiken, Kategorien]. Hier sind die ersten 20 Artikel: [Tabelle mit 20 Zeilen]. _Es existieren weitere 127 Artikel. Möchten Sie nach bestimmten Kriterien filtern?_" + +ZAHLEN-PRÜFUNG - ABSOLUT KRITISCH: +BEVOR du deine finale Antwort zurückgibst, MUSST du diese Schritte befolgen: + +1. ZÄHLE die TATSÄCHLICHEN Zeilen in deiner finalen Tabelle +2. Diese Zahl ist die EINZIGE korrekte Anzahl für deine Antwort +3. Verwende diese Zahl KONSISTENT überall in deiner Antwort: + - In der Tabellenüberschrift + - In Texten unter der Tabelle + - In der Zusammenfassung + - Überall wo du die Anzahl erwähnst + +VERBOTEN - Inkonsistente Zahlen: +❌ FALSCH: "Verfügbare Lampen (50 Artikel)" + "Zeige die ersten 30 Artikel" +✓ RICHTIG: "Verfügbare Lampen (30 Artikel)" + "Zeige 30 Artikel" + +❌ FALSCH: Verschiedene Zahlen an verschiedenen Stellen erwähnen +✓ RICHTIG: Eine einzige, konsistente Zahl verwenden + +WICHTIG bei mehreren parallelen Queries: +- Wenn du mehrere SQL-Abfragen durchführst (z.B. nach "Lampe", "LED", "Beleuchtung") +- Kombinierst du die Ergebnisse in EINER Tabelle +- Die Anzahl der Zeilen in dieser FINALEN Tabelle ist die korrekte Zahl +- NICHT die Summe der einzelnen Query-Ergebnisse! + +Beispiel-Workflow: +1. Führe Queries durch → erhalte Ergebnisse +2. Kombiniere zu finaler Tabelle → zähle Zeilen (z.B. 30) +3. Schreibe Antwort → verwende "30" überall konsistent +4. Verifikation → Prüfe nochmals: Steht überall "30"? + +Falls du dem User strukturierte Daten zurückgibst, formatiere sie bitte als Tabelle. +WICHTIG! Falls deine Tabelle nur ein Teil der Daten anzeigt, die du gefunden hast, dann vermerke dies bitte in deiner Antwort unter der Tabelle in markdown _italic_. + +Wenn immer du eine Artikelnummer innerhalb einer Tabelle zurückgibst bitte markiere diese als Markdownlink: +[ARTIKELNUMMER](/details/ARTIKELNUMMER). ARTIKELNUMMER ist hierbei der Platzhalter, den du ersetzen musst. +WICHTIG! Du musst im Link die ARTIKELNUMMER sicher URL-encodieren. Encodiere aber NICHT die Artikelnummer in eckigen Klammern. Also encodiere den Ankertext nicht! +Ausserhalb einer Tabelle musst du keine Links auf Artikelnummern setzen. + +Die erste Nachricht das Nutzers ist eine Antwort auf die folgende Nachricht: +"Hallo! Ich bin Ihr KI-Assistent für die Materialverwaltung. Wie kann ich Ihnen heute helfen?" +""" diff --git a/implementation/Chatbot/legacy/router.py b/implementation/Chatbot/legacy/router.py new file mode 100644 index 0000000..cfa163f --- /dev/null +++ b/implementation/Chatbot/legacy/router.py @@ -0,0 +1,119 @@ +"""Router for chat related endpoints.""" + +import logging +import time + +from fastapi import HTTPException +from fastapi import APIRouter, Depends +from fastapi.responses import StreamingResponse +from langchain_anthropic import ChatAnthropic +from langchain_core.embeddings import Embeddings as LCEmbeddings +from langgraph.checkpoint.sqlite import SqliteSaver + +from src.auth.dependencies import authenticate +from src.chat.schemas import ( + PostChatMessageRequest, + PostChatMessageResponse, +) +from src.common.errors import ErrorResponse +from src.dependencies import ( + get_embeddings, + get_chatmodel, + get_chatmemory, +) + + +from src.chat import service as chat_service + +# Set up router +router = APIRouter() + +# Set up logging +logger = logging.getLogger(__name__) + + +@router.post( + "/message", + response_model=PostChatMessageResponse, + responses={ + 200: {"model": PostChatMessageResponse}, + 400: {"model": ErrorResponse}, + 500: {"model": ErrorResponse}, + }, +) +async def post_message( + request: PostChatMessageRequest, + embeddings: LCEmbeddings = Depends(get_embeddings), + chatmodel: ChatAnthropic = Depends(get_chatmodel), + chatmemory: SqliteSaver = Depends(get_chatmemory), + username: str = Depends(authenticate), +) -> PostChatMessageResponse: + """Endpoint to send a chat message. + + Args: + request: The chat message request. + embeddings: The embeddings model. + chatmodel: The chat model. + chatmemory: The chat memory. + username: str = Depends(authenticate) + + Returns: + The response containing the full chat message history and thread ID. + """ + logger.info(f"Received message: {request.message} for thread {request.thread}") + + # TODO: Ratelimits / Credits tbd. + + response = await chat_service.post_message( + thread_id=request.thread, + message=request.message, + chatmodel=chatmodel, + chatmemory=chatmemory, + embeddings=embeddings, + ) + + return response + + +@router.post("/message/stream") +async def post_message_stream( + request: PostChatMessageRequest, + embeddings: LCEmbeddings = Depends(get_embeddings), + chatmodel: ChatAnthropic = Depends(get_chatmodel), + chatmemory: SqliteSaver = Depends(get_chatmemory), + username: str = Depends(authenticate), +) -> StreamingResponse: + """Endpoint to send a chat message with streaming progress updates. + + Args: + request: The chat message request. + embeddings: The embeddings model. + chatmodel: The chat model. + chatmemory: The chat memory. + username: str = Depends(authenticate) + + Returns: + StreamingResponse with Server-Sent Events for progress updates. + """ + logger.info( + f"Received streaming message: {request.message} for thread {request.thread}" + ) + + # time.sleep(5) # slight delay to improve UX + + # raise HTTPException(status_code=501, detail="Bitte erneut versuchen.") + + return StreamingResponse( + chat_service.post_message_stream( + thread_id=request.thread, + message=request.message, + chatmodel=chatmodel, + chatmemory=chatmemory, + embeddings=embeddings, + ), + media_type="text/event-stream", + headers={ + "Cache-Control": "no-cache", + "Connection": "keep-alive", + }, + ) diff --git a/implementation/Chatbot/legacy/schemas.py b/implementation/Chatbot/legacy/schemas.py new file mode 100644 index 0000000..fdbe709 --- /dev/null +++ b/implementation/Chatbot/legacy/schemas.py @@ -0,0 +1,36 @@ +"""Schemas for chat package.""" + +from pydantic import BaseModel, Field + + +class PostChatMessageRequest(BaseModel): + """Request schema for posting a chat message.""" + + thread: str = Field( + ..., example="8237529", description="Unique identifier for the chat thread" + ) + message: str = Field( + ..., example="Hello, world!", description="The message content" + ) + + +class ChatMessageItem(BaseModel): + """Represents a single chat message item for an API response.""" + + role: str = Field( + ..., examples=["human", "assistant"], description="Role of the message sender" + ) + content: str = Field( + ..., example="Hello, world!", description="The message content" + ) + + +class PostChatMessageResponse(BaseModel): + """Response schema when posting a chat message.""" + + thread: str = Field( + ..., example="8237529", description="Unique identifier for the chat thread" + ) + chat_history: list[ChatMessageItem] = Field( + ..., description="List of messages in the chat thread" + ) diff --git a/implementation/Chatbot/legacy/service.py b/implementation/Chatbot/legacy/service.py new file mode 100644 index 0000000..9a3a8e7 --- /dev/null +++ b/implementation/Chatbot/legacy/service.py @@ -0,0 +1,146 @@ +"""Service for chat.""" + +import json +import logging +from typing import AsyncIterator, Any, List + +from src.chat.schemas import ChatMessageItem, PostChatMessageResponse +from src.chat.domain.chatbot import Chatbot +from src.chat import constants as chat_constants + +from langchain_core.messages import HumanMessage, AIMessage + +logger = logging.getLogger(__name__) + + +async def post_message( + thread_id: str, + message: str, + chatmodel: any, + chatmemory: any, + embeddings: any, +) -> PostChatMessageResponse: + """Post a chat message to the chatbot and return the response. + + Args: + thread_id: The unique identifier for the chat thread. + message: The content of the chat message. + chatmodel: The chat model to use for generating responses. + chatmemory: The chat memory to use for storing conversation history. + embeddings: The embeddings model to use for message embeddings. + + Returns: + The response containing the full chat message history and thread ID. + """ + logger.info(f"Received message: {message} for thread {thread_id}") + + # Create chatbot instance + chatbot = await Chatbot.create( + model=chatmodel, + memory=chatmemory, + system_prompt=chat_constants.SYSTEM_PROMPT, + ) + + # Send message to chatbot + response = await chatbot.chat( + message=message, + chat_id=thread_id, + ) + + # Parse the response to the correct format + chat_history = [] + for message in response: + # Determine the role of the message + if isinstance(message, HumanMessage): + role = "user" + elif isinstance(message, AIMessage): + role = "assistant" + else: + continue # Skip any other message types + + # Skip messages that are structured content, such as tool calls. + if not isinstance(message.content, str): + continue + + # Append message to chat history + item = ChatMessageItem( + role=role, + content=message.content.strip(), + ) + chat_history.append(item) + + return PostChatMessageResponse(thread=thread_id, chat_history=chat_history) + + +async def post_message_stream( + thread_id: str, + message: str, + chatmodel: Any, + chatmemory: Any, + embeddings: Any, +) -> AsyncIterator[str]: + """Post a chat message to the chatbot and stream progress updates (SSE).""" + logger.info(f"Received streaming message: {message} for thread {thread_id}") + + try: + chatbot = await Chatbot.create( + model=chatmodel, + memory=chatmemory, + system_prompt=chat_constants.SYSTEM_PROMPT, + ) + + current_step = None + + async for event in chatbot.stream_events(message=message, chat_id=thread_id): + etype = event.get("type") + + # In case we have transient status updates, forward them as-is + if etype == "status": + current_step = event.get("label") + yield f"data: {json.dumps({'type': 'status', 'label': current_step})}\n\n" + continue + + # In case we have final response + if etype == "final": + response_from_event = event.get("response") or {} + + # Use the chat history from the final event (already normalized by stream_events) + chat_history_payload = response_from_event.get("chat_history", []) + if isinstance(chat_history_payload, list): + # Convert to ChatMessageItem (content is already flattened by stream_events) + items: List[ChatMessageItem] = [] + for it in chat_history_payload: + role = it.get("role") + content = it.get("content", "") + if role in ("user", "assistant") and content: + items.append(ChatMessageItem(role=role, content=content)) + + response = PostChatMessageResponse( + thread=thread_id, chat_history=items + ) + # Yield the final response and exit + yield f"data: {json.dumps({'type': 'final', 'response': response.model_dump()})}\n\n" + return + else: + # Unexpected payload format - log warning and return empty history + logger.warning( + f"Unexpected chat_history format in final event: {type(chat_history_payload)}" + ) + response = PostChatMessageResponse( + thread=thread_id, chat_history=[] + ) + yield f"data: {json.dumps({'type': 'final', 'response': response.model_dump()})}\n\n" + return + + except Exception as e: + logger.error(f"Error in streaming chat: {str(e)}", exc_info=True) + yield ( + "data: " + + json.dumps( + { + "type": "error", + "message": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.", + } + ) + + "\n\n" + ) diff --git a/implementation/Chatbot/legacy/sqlitetool.py b/implementation/Chatbot/legacy/sqlitetool.py new file mode 100644 index 0000000..6654f45 --- /dev/null +++ b/implementation/Chatbot/legacy/sqlitetool.py @@ -0,0 +1,134 @@ +"""Tool that allows the chatbot to interact with a remote SQLite database via API (read-only).""" + +import logging +import httpx +from dataclasses import dataclass +from typing import Optional, List, Dict, Any +from langchain_core.tools import tool +from typing import Callable + + +logger = logging.getLogger(__name__) + + +@dataclass +class SQLiteTool: + """Remote SQLite database tool for searching articles via API.""" + + api_key: str + base_url: str + + @classmethod + async def create(cls, *, api_key: str, base_url: str) -> "SQLiteTool": + """Factory method to create SQLiteTool instance. + + Args: + api_key: API key for authentication + base_url: Base URL of the preprocessing query API + + Returns: + SQLiteTool instance + """ + return cls(api_key=api_key, base_url=base_url) + + def get_tool(self) -> Callable[[str], str]: + """Get the configured LangChain tool.""" + + @tool("execute_sql") + async def execute_sql_query(sql_query: str) -> str: + """Execute a read-only SELECT query on the remote article database. + + Only SELECT statements are allowed. No PRAGMA, INSERT, UPDATE, DELETE, or DDL operations permitted. + The database contains one table named "Data" with article information. + Your query must reference this table explicitly (e.g., SELECT * FROM Data WHERE ...). + Results are limited to 50 rows. + + Args: + sql_query: SQLite SELECT query to execute (read-only operations only) + + Returns: + The result of the query execution or an error message. + """ + logger.info(f"Executing SQL query via API: {sql_query}") + try: + # Check if query is read-only (starts with SELECT) + query_upper = sql_query.strip().upper() + if not query_upper.startswith("SELECT"): + return "Error: Only SELECT queries are allowed. No INSERT, UPDATE, DELETE, or DDL operations permitted." + + # Additional safety checks for potentially harmful operations + forbidden_keywords = [ + "DROP", + "CREATE", + "ALTER", + "INSERT", + "UPDATE", + "DELETE", + "PRAGMA", + "ATTACH", + "DETACH", + ] + if any(keyword in query_upper for keyword in forbidden_keywords): + return "Error: Query contains forbidden keywords. Only SELECT queries are allowed." + + # Make API request + async with httpx.AsyncClient(timeout=30.0) as client: + response = await client.post( + self.base_url, + json={"query": sql_query}, + headers={"X-DB-API-Key": self.api_key}, + ) + response.raise_for_status() + result = response.json() + + # Parse API response + if not result.get("success"): + error_msg = result.get("message", "Unknown error") + return f"Query failed: {error_msg}" + + data = result.get("data", []) + row_count = result.get("row_count", 0) + columns = result.get("columns", []) + + if row_count == 0: + return "Query executed successfully but returned no results." + + # Format results + results = [] + for row in data[:50]: # Limit to 50 rows for readability + results.append(str(row)) + + return ( + f"Query executed successfully. Returned {row_count} rows (showing first {min(row_count, 50)}):\n" + + "\n".join(results) + ) + + except httpx.HTTPStatusError as e: + return f"API error: HTTP {e.response.status_code} - {e.response.text}" + except httpx.RequestError as e: + return f"Network error: {str(e)}" + except Exception as e: + return f"Error executing query: {str(e)}" + + return execute_sql_query + + async def execute_query(self, query: str) -> Dict[str, Any]: + """Execute a raw SQL query via the remote API. + + Args: + query: SQL query string + + Returns: + Dictionary with query results from the API + """ + try: + async with httpx.AsyncClient(timeout=30.0) as client: + response = await client.post( + self.base_url, + json={"query": query}, + headers={"X-DB-API-Key": self.api_key}, + ) + response.raise_for_status() + return response.json() + except Exception as e: + raise Exception(f"Error executing query: {str(e)}") diff --git a/implementation/Chatbot/legacy/streaming_helper.py b/implementation/Chatbot/legacy/streaming_helper.py new file mode 100644 index 0000000..99b7c41 --- /dev/null +++ b/implementation/Chatbot/legacy/streaming_helper.py @@ -0,0 +1,241 @@ +"""Streaming helper utilities for chat message processing and normalization.""" + +from __future__ import annotations + +from typing import Any, Dict, List, Literal, Mapping, Optional + +from langchain_core.messages import ( + AIMessage, + BaseMessage, + HumanMessage, + SystemMessage, + ToolMessage, +) + +Role = Literal["user", "assistant", "system", "tool"] + + +class ChatStreamingHelper: + """Pure helper methods for streaming and message normalization. + + This class provides static utility methods for converting between different + message formats, extracting content, and normalizing message structures + for streaming chat applications. + """ + + @staticmethod + def role_from_message(*, msg: BaseMessage) -> Role: + """Extract the role from a BaseMessage instance. + + Args: + msg: The BaseMessage instance to extract the role from. + + Returns: + The role as a string literal: "user", "assistant", "system", or "tool". + Defaults to "assistant" if the message type is not recognized. + + Examples: + >>> from langchain_core.messages import HumanMessage + >>> msg = HumanMessage(content="Hello") + >>> ChatStreamingHelper.role_from_message(msg=msg) + 'user' + """ + if isinstance(msg, HumanMessage): + return "user" + if isinstance(msg, AIMessage): + return "assistant" + if isinstance(msg, SystemMessage): + return "system" + if isinstance(msg, ToolMessage): + return "tool" + return getattr(msg, "role", "assistant") + + @staticmethod + def flatten_content(*, content: Any) -> str: + """Convert complex content structures to plain text. + + This method handles various content formats including strings, lists of + content parts, and dictionaries with text fields. It's designed to + normalize content from different message sources into a consistent + plain text format. + + Args: + content: The content to flatten. Can be: + - str: Returned as-is after stripping whitespace + - list: Each item processed and joined with newlines + - dict: Text extracted from "text" or "content" fields + - None: Returns empty string + - Any other type: Converted to string + + Returns: + The flattened content as a plain text string with whitespace stripped. + + Examples: + >>> content = [{"type": "text", "text": "Hello"}, {"type": "text", "text": "world"}] + >>> ChatStreamingHelper.flatten_content(content=content) + 'Hello + nworld' + + >>> content = {"text": "Simple message"} + >>> ChatStreamingHelper.flatten_content(content=content) + 'Simple message' + """ + if content is None: + return "" + if isinstance(content, str): + return content.strip() + if isinstance(content, list): + parts: List[str] = [] + for part in content: + if isinstance(part, dict): + if "text" in part and isinstance(part["text"], str): + parts.append(part["text"]) + elif part.get("type") == "text" and isinstance( + part.get("text"), str + ): + parts.append(part["text"]) + elif "content" in part and isinstance(part["content"], str): + parts.append(part["content"]) + else: + # Fallback for unknown dictionary structures + val = part.get("value") + if isinstance(val, str): + parts.append(val) + else: + parts.append(str(part)) + return "\n".join(p.strip() for p in parts if p is not None) + if isinstance(content, dict): + if "text" in content and isinstance(content["text"], str): + return content["text"].strip() + if "content" in content and isinstance(content["content"], str): + return content["content"].strip() + return str(content).strip() + + @staticmethod + def message_to_dict(*, msg: BaseMessage) -> Dict[str, Any]: + """Convert a BaseMessage instance to a dictionary for streaming output. + + This method normalizes BaseMessage instances into a consistent dictionary + format suitable for JSON serialization and streaming to clients. + + Args: + msg: The BaseMessage instance to convert. + + Returns: + A dictionary containing: + - "role": The message role (user, assistant, system, tool) + - "content": The flattened message content as plain text + - "tool_calls": Tool calls if present (optional) + - "name": Message name if present (optional) + + Examples: + >>> from langchain_core.messages import HumanMessage + >>> msg = HumanMessage(content="Hello there") + >>> result = ChatStreamingHelper.message_to_dict(msg=msg) + >>> result["role"] + 'user' + >>> result["content"] + 'Hello there' + """ + payload: Dict[str, Any] = { + "role": ChatStreamingHelper.role_from_message(msg=msg), + "content": ChatStreamingHelper.flatten_content( + content=getattr(msg, "content", "") + ), + } + tool_calls = getattr(msg, "tool_calls", None) + if tool_calls: + payload["tool_calls"] = tool_calls + name = getattr(msg, "name", None) + if name: + payload["name"] = name + return payload + + @staticmethod + def dict_message_to_dict(*, obj: Mapping[str, Any]) -> Dict[str, Any]: + """Convert a dictionary-shaped message to a normalized dictionary. + + This method handles messages that come from serialized state and are + represented as dictionaries rather than BaseMessage instances. It + normalizes various dictionary formats into a consistent structure. + + Args: + obj: The dictionary-shaped message to convert. Expected to contain + fields like "role", "type", "content", "text", etc. + + Returns: + A normalized dictionary containing: + - "role": The message role (user, assistant, system, tool) + - "content": The flattened message content as plain text + - "tool_calls": Tool calls if present (optional) + - "name": Message name if present (optional) + + Examples: + >>> obj = {"type": "human", "content": "Hello"} + >>> result = ChatStreamingHelper.dict_message_to_dict(obj=obj) + >>> result["role"] + 'user' + >>> result["content"] + 'Hello' + """ + role: Optional[str] = obj.get("role") + if not role: + # Handle alternative type field mappings + typ = obj.get("type") + if typ in ("human", "user"): + role = "user" + elif typ in ("ai", "assistant"): + role = "assistant" + elif typ in ("system",): + role = "system" + elif typ in ("tool", "function"): + role = "tool" + + content = obj.get("content") + if content is None and "text" in obj: + content = obj["text"] + + out: Dict[str, Any] = { + "role": role or "assistant", + "content": ChatStreamingHelper.flatten_content(content=content), + } + if "tool_calls" in obj: + out["tool_calls"] = obj["tool_calls"] + if obj.get("name"): + out["name"] = obj["name"] + return out + + @staticmethod + def extract_messages_from_output(*, output_obj: Any) -> List[Any]: + """Extract messages from LangGraph output objects. + + This method handles various output formats from LangGraph execution, + extracting the messages list from different possible structures. + + Args: + output_obj: The output object from LangGraph execution. Can be: + - An object with a "messages" attribute + - A dictionary with a "messages" key + - Any other object (returns empty list) + + Returns: + A list of extracted messages, or an empty list if no messages + are found or if the output object is None. + + Examples: + >>> output = {"messages": [{"role": "user", "content": "Hello"}]} + >>> messages = ChatStreamingHelper.extract_messages_from_output(output_obj=output) + >>> len(messages) + 1 + """ + if output_obj is None: + return [] + + # Try to parse dicts first + if isinstance(output_obj, dict): + msgs = output_obj.get("messages") + return msgs if isinstance(msgs, list) else [] + + # Then try to get messages attribute + msgs = getattr(output_obj, "messages", None) + return msgs if isinstance(msgs, list) else [] diff --git a/implementation/PLATTFORM_FEATURES_UND_ROADMAP.md b/implementation/PLATTFORM_FEATURES_UND_ROADMAP.md new file mode 100644 index 0000000..cceccd4 --- /dev/null +++ b/implementation/PLATTFORM_FEATURES_UND_ROADMAP.md @@ -0,0 +1,213 @@ +# PowerOn Plattform – Features, Setup & Roadmap + +**Stand:** Februar 2026 +**Zielgruppe:** Intern, Präsentation, Roadmap-Planung + +--- + +## 1. Überblick + +Dieses Dokument beschreibt die vorhandenen Features der PowerOn-Plattform, das allgemeine Plattform-Setup (Security, Mandanten, Nutzerverwaltung) sowie die Einordnung in die Roadmap März–Mai 2026. + +--- + +## 2. Allgemeines Plattform-Setup + +### 2.1 Mandanten-/User-Management + +PowerOn ist eine **Multi-Mandanten-Plattform**: + +- **Mandatenmodell:** Jede Organisation/Kunde wird als Mandant abgebildet. +- **Datenisolation:** Daten eines Mandanten sind strikt von anderen Mandanten getrennt. +- **Zugehörigkeitsprüfung:** Bei jedem Zugriff wird geprüft, ob der Nutzer dem Mandanten angehört (via `UserMandate`). +- **Request-Kontext:** `mandateId` und `featureInstanceId` werden über Header (`X-Mandate-Id`, `X-Feature-Instance-Id`) übergeben. +- **Mehrfachmandanten:** Nutzer können in mehreren Mandanten tätig sein; der Kontext wird pro Anfrage festgelegt. + +**Zentrale Entitäten:** + +| Entität | Beschreibung | +|---------|--------------| +| Mandate | Mandant (Organisation, Abteilung, Kunde) | +| UserInDB | Nutzer (Benutzername, Profil) | +| UserMandate | Zuordnung Nutzer ↔ Mandant (mit enabled) | +| UserMandateRole | Rollenzuweisung auf Mandanten-Ebene | +| FeatureInstance | Instanz eines Features innerhalb eines Mandanten | +| FeatureAccess | Zugriff Nutzer auf Feature-Instanz | +| FeatureAccessRole | Rollen pro Feature-Instanz | + +### 2.2 Rollenbasierte Zugriffskontrolle (RBAC) + +- **AccessRule-Kontext:** System, API, DATA +- **AccessLevel:** NONE, MY, GROUP, ALL +- **Template-Rollen:** Pro Feature können globale Rollenvorlagen definiert werden; bei Erstellung einer Feature-Instanz werden diese kopiert. +- **Namespaces:** + - `data.uam.*` → Mandanten-UAM + - `data.chat.*`, `data.files.*`, `data.automation.*` → nutzer-eigen (MY) + - `data.feature.{code}.*` → Mandanten-/Feature-spezifisch + +### 2.3 Authentifizierung + +- **Lokal:** Benutzername + Passwort, JWT +- **Microsoft (Azure AD / Entra ID):** SSO +- **Google:** SSO +- **Token:** HTTP-only Cookies, automatische Erneuerung, Widerruf möglich + +### 2.4 Security-Baseline (Compliance) + +- **Verschlüsselung:** AES (Fernet), PBKDF2-HMAC-SHA256 für Konfiguration +- **DSGVO:** Auskunft, Löschung, Datenübertragbarkeit, Berichtigung als Self-Service +- **Audit-Trail:** Zugriffe, Sicherheitsereignisse, DSGVO-Aktionen, Berechtigungsänderungen +- **OWASP:** CSRF, Rate Limiting, parametrisierte Queries, CORS +- **Neutralisierung:** Optionales Modul zur Maskierung/Pseudonymisierung von PII vor KI-Versand + +--- + +## 3. Feature-Übersicht (`gateway/modules/features`) + +### 3.1 Chatbot + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `chatbot` | +| **Zweck** | KI-gestützter Chat mit Workflows, Tools, Memory | +| **DB** | `poweron_chatbot` | +| **Besonderheiten** | RBAC pro `featureInstanceId`, streaming, Multi-Round, Tools (z. B. Websuche), Event-Manager | + +### 3.2 Chatplayground + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `chatplayground` | +| **Zweck** | Sichere Testumgebung für KI-Chat | +| **Besonderheiten** | Wrapper um `interfaceDbChat` mit Feature-Instanz-Kontext; isolierte Umgebung pro Mandant | + +### 3.3 TeamsBot + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `teamsbot` | +| **Zweck** | Microsoft Teams Bot mit authentifiziertem Nutzer, Protokollierung | +| **DB** | `poweron_teamsbot` | +| **Besonderheiten** | Sessions, Transcripts, Bot-Antworten; System-Bots (mandantenbezogen); Browser-Connector für Interaktionen | + +### 3.4 Trustee (BuHa-Integration) + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `trustee` | +| **Zweck** | Treuhand/Buchhaltung: Organisationen, Verträge, Dokumente, Positionen, Buchungssynchronisation | +| **DB** | `poweron_trustee` | +| **Accounting-Connectors** | Bexio, Abacus, RMA | +| **Besonderheiten** | Feature-eigene Rollen (admin, operate, userreport), RBAC + feature-spezifische Zugriffslogik | + +### 3.5 Neutralization (Dokumentbearbeitung mit KI) + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `neutralization` | +| **Zweck** | Maskierung/Pseudonymisierung sensibler Daten in Dokumenten (PII) vor KI-Verarbeitung | +| **DB** | `poweron_neutralization` | +| **Besonderheiten** | PDF in-place (PyMuPDF), Platzhalter (z. B. `[name.uuid]`), konfigurierbare Muster; Neutralize Playground | + +### 3.6 Automation + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `automation` | +| **Zweck** | Zeitgesteuerte / Event-getriggerte Workflows | +| **DB** | `poweron_automation` | +| **Besonderheiten** | AutomationDefinition, AutomationTemplate (System + Instanz), Event-Management, Callback-Registry | + +### 3.7 RealEstate + +| Aspekt | Inhalt | +|--------|--------| +| **Code** | `realestate` | +| **Zweck** | Immobilienverwaltung: Projekte, Parzellen, Dokumente, Kanton/Gemeinde, Geo-Daten | +| **DB** | `poweron_realestate` | +| **Besonderheiten** | BZO-Extraktion, Swiss Topo Scraping, LangGraph | + +--- + +## 4. Einordnung der strategischen Features (Roadmap-relevant) + +| Feature | Status | Beschreibung | +|---------|--------|--------------| +| **Chatbot / Playground** | Live | Sichere Umgebung für Nutzer; Chatplayground als abgegrenzte Testinstanz | +| **Private LLM** | Live | Ollama-basierter Connector (`privatellm`); lokal/on-premise; kein Datenabfluss | +| **BuHa-Integration** | Live | Trustee mit Connectors Bexio, Abacus, RMA; Sync zu Buchhaltungssystemen | +| **TeamsChatbot** | Live | Bot in Teams mit identifiziertem Nutzer; voll protokolliert | +| **Dokumentbearbeitung mit KI** | In Arbeit | Neutralization (Masking) + Referenzprozess ERP/Dokument-Extraktion; strukturierter Output | + +--- + +## 5. Roadmap März–Mai 2026: Maßnahmenplan + +*Ziel bis Ende Mai: erste produktive Deployments live, Standard-Onboarding v1, Paid Usage gestartet, Security & Compliance als Default.* + +### März 2026 – Foundations + Pilot→Prod + +| Maßnahme | Verantwortlich | +|----------|----------------| +| Go-Live Readiness Checklist v1 (Monitoring, Logging, Backup/Restore, Incident-Flow, Release-Prozess) | Platform/Engineering | +| Mandanten-/User-Setup „v1“ (Roles, Zugriff, Audit-Logs minimum viable) | Security/Compliance | +| Security-Baseline aktivieren: Masking/Neutralisierung als Standard pro Workflow + Definition „Datenklasse A/B/C“ | Security/Compliance | +| 1 Referenzprozess auswählen & finalisieren (z. B. ERP/Dokument-Extraktion mit strukturiertem Output) | Platform/Engineering | +| Erste produktive Installation vorbereiten (Kunde A) | Customer Success | + +**Output Ende März:** 1 produktiver Kunde „go-live ready“, Onboarding-Runbook v1, Security Default aktiv + +--- + +### April 2026 – Erste produktive Deployments + Reproduzierbarkeit + +| Maßnahme | Verantwortlich | +|----------|----------------| +| Produktivsetzung Kunde A inkl. Abnahme (SLA-light, Supportkanal) | Customer Success | +| Onboarding v1 standardisieren: Templates (Config, Policies, Integrationsmodule), Setup in < 6 Wochen | Platform/Engineering | +| Workflow Engine hardening: Fehlerbehandlung, Retries, Idempotenz, Kontextgrenzen (wichtigste 20 %) | Platform/Engineering | +| Kunde B starten (zweites Setup als Wiederholbarkeitstest) | Go-To-Market | +| Kosten-/Usage-Metering einführen (Nutzer, Runs, Tokens, Zeitersparnis-Indikator) | Platform/Engineering | + +**Output Ende April:** 1 Kunde produktiv, 2. Kunde im Setup, Onboarding v1 wiederholbar, Usage-Metriken sichtbar + +--- + +### Mai 2026 – Paid Usage + Skalierbarer Betrieb + +| Maßnahme | Verantwortlich | +|----------|----------------| +| Paid Usage aktivieren (Pricing/Package v1, Billing-Prozess) | Go-To-Market | +| Support & Betrieb v1: Monitoring-Dashboards, Alerting, Incident-Routinen, Release-Kadenz (z. B. 2-wöchentlich) | Platform/Engineering | +| Security & Compliance ausbauen: Policy-Sets pro Workflow, Auditierbarkeit (wer/wann/was), Fallback lokales LLM | Security/Compliance | +| Kunde B go-live + Kunde C als Pipeline-Test | Customer Success | +| „First Value Moment“ messbar: pro Kunde 1–2 Kennzahlen | Customer Success | + +**Output Ende Mai:** mindestens 2 produktive Deployments, erste zahlende Nutzung, Betrieb stabil, First Value messbar + +--- + +## 6. Zuordnung Features ↔ Roadmap + +| Feature | März | April | Mai | Anmerkung | +|---------|------|-------|-----|-----------| +| Neutralisierung | Security Default aktiv | — | Policy-Sets pro Workflow | Datenklasse A/B/C definieren | +| Trustee/BuHa | Referenzprozess ERP/Dok-Extraktion | Wiederholbarkeit Onboarding | — | strukturierter Output | +| Chatbot/Playground | — | — | — | bereits produktiv nutzbar | +| TeamsBot | — | — | — | authentifizierter User, protokolliert | +| Private LLM | — | — | Fallback-Strategie dokumentieren | für höchste Datenschutzanforderungen | + +--- + +## 7. Verantwortlichkeiten (Slide-Footer) + +| Rolle | Verantwortungsbereich | +|-------|------------------------| +| **Platform/Engineering** | Stabilität, Deployment, Monitoring, Workflow-Hardening | +| **Security/Compliance** | Policies, Masking, Audit, Datenklassifikation | +| **Go-To-Market** | Kundenpipeline, Packaging/Pricing v1, Paid Activation | +| **Customer Success** | Onboarding-Runbook, Abnahme, Adoption/Value Tracking | + +--- + +*Dokument basiert auf der Gateway-Codebasis (Stand Februar 2026) und dem Compliance-Dokument `poweron_sicherheit_und_compliance.md`.* diff --git a/implementation/SharePoint/concept_sharepoint_feature.md b/implementation/SharePoint/concept_sharepoint_feature.md new file mode 100644 index 0000000..4d215cb --- /dev/null +++ b/implementation/SharePoint/concept_sharepoint_feature.md @@ -0,0 +1,632 @@ +# Concept: SharePoint Site Creator as Gateway Feature + +> Implementation concept for integrating the SharePoint Site Creator (site creation + landing page customization) as a Plug&Play feature in the PowerOn gateway platform. + +--- + +## 1. Overview + +The SharePoint feature automates two workflows: + +1. **Site Creation** — Create a Microsoft 365 Group (which provisions a SharePoint Team Site), set up a folder structure, register the site in a central Kundenmandate list, and apply a branded homepage. +2. **Landing Page Customization** — Compose a page layout from building blocks (text, headers, images, columns, document library previews) and apply it to an existing site's homepage. + +Both workflows are exposed as a single gateway feature (`sharepoint`) with two UI views and corresponding API endpoints, following the existing Plug&Play feature pattern. + +--- + +## 2. Feature Identity + +| Property | Value | +|----------|-------| +| Feature code | `sharepoint` | +| Feature folder | `modules/features/sharepoint/` | +| Router prefix | `/api/sharepoint` | +| Feature label | `{"en": "SharePoint", "de": "SharePoint", "fr": "SharePoint"}` | +| Feature icon | `mdi-microsoft-sharepoint` (or `mdi-web`) | + +--- + +## 3. File Structure + +Following the established gateway convention (same structure as chatbotV2, realEstate, etc.): + +``` +modules/features/sharepoint/ +├── __init__.py +├── mainSharepoint.py # FEATURE_CODE, UI/RESOURCE_OBJECTS, TEMPLATE_ROLES, registration +├── routeFeatureSharepoint.py # APIRouter(prefix="/api/sharepoint"), route handlers +├── interfaceFeatureSharepoint.py # DB access layer (getInterface factory) +├── datamodelFeatureSharepoint.py # Pydantic models: SharepointSiteOrder, LandingPageJob +├── serviceSharepoint.py # Business logic orchestration (create site flow, customize page flow) +├── config.py # SharePointSettings (Pydantic), token cache +└── bridges/ + ├── __init__.py + ├── graphApi.py # Microsoft Graph API client (auth, groups, sites, folders, lists, users) + └── pageCustomization.py # Landing page application (PnP subprocess or SP REST API) +``` + +No changes to `app.py` or `registry.py` are needed — the registry auto-discovers any folder under `modules/features/` that contains a `routeFeature*.py` file. + +**Required one-time changes outside the feature folder:** + +| File | Change | +|------|--------| +| `modules/routes/routeSystem.py` → `_getFeatureUiObjects()` | Add `elif featureCode == "sharepoint"` branch | +| `env_int.env` / `env_prod.env` | Add SharePoint environment variables (see Section 9) | +| Frontend: `pageRegistry.tsx` | Add icon mappings for `feature.sharepoint`, `page.feature.sharepoint.*` | +| Frontend: new view components | `SharepointCreateSiteView.tsx`, `SharepointLandingPageView.tsx` | +| Frontend: new API module | `sharepointApi.ts` | +| Frontend: new hook | `useSharepoint.ts` | + +--- + +## 4. Main Module (`mainSharepoint.py`) + +Defines the feature's identity, RBAC catalog objects, and template roles. + +### 4.1 UI Objects + +Two views — one for creating sites, one for customizing landing pages: + +```python +FEATURE_CODE = "sharepoint" +FEATURE_LABEL = {"en": "SharePoint", "de": "SharePoint", "fr": "SharePoint"} +FEATURE_ICON = "mdi-microsoft-sharepoint" + +UI_OBJECTS = [ + { + "objectKey": "ui.feature.sharepoint.createsite", + "label": {"en": "Create Site", "de": "Site erstellen", "fr": "Créer un site"}, + "meta": {"area": "createsite"} + }, + { + "objectKey": "ui.feature.sharepoint.landingpage", + "label": {"en": "Landing Page", "de": "Startseite", "fr": "Page d'accueil"}, + "meta": {"area": "landingpage"} + }, +] +``` + +### 4.2 Resource Objects + +```python +RESOURCE_OBJECTS = [ + { + "objectKey": "resource.feature.sharepoint.createSite", + "label": {"en": "Create SharePoint Site", "de": "SharePoint Site erstellen"}, + "meta": {"endpoint": "/api/sharepoint/{instanceId}/create-site", "method": "POST"} + }, + { + "objectKey": "resource.feature.sharepoint.customizeLandingPage", + "label": {"en": "Customize Landing Page", "de": "Startseite anpassen"}, + "meta": {"endpoint": "/api/sharepoint/{instanceId}/customize-landing-page", "method": "POST"} + }, + { + "objectKey": "resource.feature.sharepoint.getSiteStatus", + "label": {"en": "Get Site Status", "de": "Site-Status abrufen"}, + "meta": {"endpoint": "/api/sharepoint/{instanceId}/site-status/{jobId}", "method": "GET"} + }, + { + "objectKey": "resource.feature.sharepoint.listOrders", + "label": {"en": "List Site Orders", "de": "Site-Bestellungen auflisten"}, + "meta": {"endpoint": "/api/sharepoint/{instanceId}/orders", "method": "GET"} + }, +] +``` + +### 4.3 Template Roles + +```python +TEMPLATE_ROLES = [ + { + "roleLabel": "sharepoint-viewer", + "description": {"en": "View site orders (read-only)", "de": "Site-Bestellungen ansehen (nur lesen)"}, + "accessRules": [ + {"context": "UI", "item": "ui.feature.sharepoint.createsite", "view": True}, + {"context": "RESOURCE", "item": "resource.feature.sharepoint.listOrders", "view": True}, + {"context": "RESOURCE", "item": "resource.feature.sharepoint.getSiteStatus", "view": True}, + {"context": "DATA", "item": None, "view": True, "read": "m", "create": "n", "update": "n", "delete": "n"}, + ] + }, + { + "roleLabel": "sharepoint-user", + "description": {"en": "Create sites and customize landing pages", "de": "Sites erstellen und Startseiten anpassen"}, + "accessRules": [ + {"context": "UI", "item": None, "view": True}, + {"context": "RESOURCE", "item": None, "view": True}, + {"context": "DATA", "item": None, "view": True, "read": "m", "create": "m", "update": "m", "delete": "m"}, + ] + }, + { + "roleLabel": "sharepoint-admin", + "description": {"en": "Full access", "de": "Vollzugriff"}, + "accessRules": [ + {"context": "UI", "item": None, "view": True}, + {"context": "RESOURCE", "item": None, "view": True}, + {"context": "DATA", "item": None, "view": True, "read": "a", "create": "a", "update": "a", "delete": "a"}, + ] + }, +] +``` + +The `registerFeature()` and `_syncTemplateRolesToDb()` functions follow the exact same pattern as `mainChatbotV2.py`. + +--- + +## 5. Data Models (`datamodelFeatureSharepoint.py`) + +### 5.1 SharepointSiteOrder + +Tracks each site creation request (stored in the gateway DB for audit/history): + +```python +class SharepointSiteOrder(BaseModel): + id: Optional[str] = None + featureInstanceId: str + mandateId: str + createdBy: str + createdAt: Optional[str] = None + + # Form input + projektTitle: str + kurzbeschrieb: str + mandatsId: str + firmenkuerzel: str + klassifizierung: str # intern | vertraulich | geheim + accountManager: str # email + projektLeiter: str # email + projektstart: str # ISO date + projektende: str # ISO date + budget: str + + # Result (filled after creation) + status: str = "pending" # pending | provisioning | completed | failed + siteUrl: Optional[str] = None + groupId: Optional[str] = None + siteId: Optional[str] = None + warnings: list[str] = [] + errorMessage: Optional[str] = None +``` + +### 5.2 LandingPageJob + +Tracks landing page customization requests: + +```python +class LandingPageJob(BaseModel): + id: Optional[str] = None + featureInstanceId: str + mandateId: str + createdBy: str + createdAt: Optional[str] = None + + siteUrl: str + pageTitle: str + elements: list[dict] # serialized LandingPageElement list + status: str = "pending" # pending | processing | completed | failed + errorMessage: Optional[str] = None +``` + +### 5.3 RBAC Table Registration + +Add to `modules/interfaces/interfaceRbac.py` → `TABLE_NAMESPACE`: + +```python +"SharepointSiteOrder": "feature.sharepoint", +"LandingPageJob": "feature.sharepoint", +``` + +This ensures `getRecordsetWithRBAC` filters by `featureInstanceId` and applies MY/GROUP/ALL access levels correctly. + +--- + +## 6. API Routes (`routeFeatureSharepoint.py`) + +All routes are scoped under `/api/sharepoint/{instanceId}/...` and validate instance access using the same `_validateInstanceAccess` pattern as other features. + +### 6.1 Endpoints + +| Method | Path | Purpose | +|--------|------|---------| +| `POST` | `/{instanceId}/create-site` | Submit site creation order (multipart/form-data with header image) | +| `GET` | `/{instanceId}/orders` | List site orders for this instance (paginated, RBAC-filtered) | +| `GET` | `/{instanceId}/orders/{orderId}` | Get status/details of a specific order | +| `POST` | `/{instanceId}/customize-landing-page` | Submit landing page customization (multipart/form-data) | +| `GET` | `/{instanceId}/landing-page-jobs/{jobId}` | Get status of a landing page job | + +### 6.2 Create Site Endpoint (detail) + +``` +POST /api/sharepoint/{instanceId}/create-site +Content-Type: multipart/form-data + +Fields: + projekt_title: str + kurzbeschrieb: str + mandats_id: str + firmenkuerzel: str + klassifizierung: str + account_manager: str (email) + projekt_leiter: str (email) + projektstart: str (ISO date) + projektende: str (ISO date) + budget: str + header_image: File (image) + +Response (202 Accepted): +{ + "orderId": "uuid", + "status": "provisioning", + "message": "Site creation started. Poll GET /orders/{orderId} for status." +} +``` + +The 202 response is intentional: site creation takes 30–60+ seconds (M365 group provisioning), so the endpoint starts the process asynchronously and returns immediately. The client polls the order status endpoint or (future) uses SSE. + +### 6.3 Customize Landing Page Endpoint (detail) + +``` +POST /api/sharepoint/{instanceId}/customize-landing-page +Content-Type: multipart/form-data + +Fields: + site_url: str + page_title: str + elements: str (JSON array of element objects) + header_image: File (optional) + image_0, image_1, ...: File (content images, indexed to match elements array) + +Response (202 Accepted): +{ + "jobId": "uuid", + "status": "processing", + "message": "Landing page customization started." +} +``` + +--- + +## 7. Service Layer (`serviceSharepoint.py`) + +Orchestrates the multi-step site creation and page customization workflows. + +### 7.1 Site Creation Flow + +``` +async def createSite(user, mandateId, instanceId, formData, headerImage) -> SharepointSiteOrder: + + 1. Create SharepointSiteOrder record in DB (status="provisioning") + 2. Generate site alias from firmenkuerzel + projektTitle + 3. graphApi.getToken() + 4. graphApi.createM365Group(alias, title, description) + 5. graphApi.pollForSiteReady(groupId, timeout=60s, interval=5s) + 6. graphApi.createFolderStructure(siteId, projektTitle) → warning on failure + 7. graphApi.addKundenmandateEntry(siteId, formFields) → warning on failure + 8. pageCustomization.applyHomepageBanner(siteUrl, title, desc, headerImage) → warning on failure + 9. Update order record: status="completed", siteUrl=..., warnings=[...] + 10. Return order +``` + +Steps 6–8 use the **partial success pattern**: if they fail, warnings are recorded but the order is still marked as completed (the site itself exists and is usable). Only steps 4–5 (group creation and site provisioning) are critical failures. + +### 7.2 Landing Page Customization Flow + +``` +async def customizeLandingPage(user, mandateId, instanceId, siteUrl, pageTitle, elements, images) -> LandingPageJob: + + 1. Create LandingPageJob record in DB (status="processing") + 2. Upload content images to temp storage + 3. pageCustomization.applyDynamicPage(siteUrl, pageTitle, elements, images) + 4. Update job record: status="completed" or status="failed" + 5. Return job +``` + +### 7.3 Background Execution + +Since both workflows are long-running (30–60s for site creation, 10–30s for page customization), they should run as `asyncio.create_task()` background tasks. The route handler creates the DB record, starts the task, and returns the order/job ID immediately. + +```python +@router.post("/{instanceId}/create-site", status_code=202) +async def create_site(request: Request, instanceId: str, ...): + mandateId = _validateInstanceAccess(instanceId, context) + order = _createOrderRecord(...) + asyncio.create_task(_executeSiteCreation(order)) + return {"orderId": order.id, "status": "provisioning"} +``` + +--- + +## 8. Bridges + +### 8.1 Microsoft Graph API Bridge (`bridges/graphApi.py`) + +Encapsulates all Graph API calls with token caching and retry logic. + +```python +class GraphApiBridge: + def __init__(self, tenantId, clientId, clientSecret, tenantName): + self._token: str | None = None + self._tokenExpiry: float = 0 + ... + + async def getToken(self) -> str: ... + async def createM365Group(self, alias, displayName, description) -> str: ... + async def pollForSiteReady(self, groupId, timeout=60, interval=5) -> dict: ... + async def getSiteDrives(self, siteId) -> list: ... + async def createFolder(self, driveId, parentId, name) -> dict: ... + async def createFolderStructure(self, siteId, projektTitle) -> dict: ... + async def resolveUserByEmail(self, email) -> dict: ... + async def getBestellportalSite(self) -> dict: ... + async def findKundenmandateList(self, siteId) -> str: ... + async def addKundenmandateEntry(self, fields) -> dict: ... +``` + +Uses `httpx.AsyncClient` for async HTTP. Implements: +- Token caching with 5-minute pre-expiry refresh +- Exponential backoff retry for 429/503 responses +- Configurable timeout for site provisioning polling + +### 8.2 Page Customization Bridge (`bridges/pageCustomization.py`) + +Two implementation options (configurable): + +**Option A: PnP PowerShell with certificate auth** (recommended for MVP) + +```python +class PnpPageBridge: + async def applyHomepageBanner(self, siteUrl, title, subtitle, headerImagePath): ... + async def applyDynamicPage(self, siteUrl, pageTitle, elementsJson, imageDir): ... +``` + +Invokes PowerShell scripts via `asyncio.create_subprocess_exec`. Uses certificate-based auth (no interactive login). Requires PnP.PowerShell on the server. + +**Option B: SharePoint REST API** (recommended for production, no PowerShell dependency) + +```python +class SpRestPageBridge: + async def applyHomepageBanner(self, siteUrl, title, subtitle, headerImagePath): ... + async def applyDynamicPage(self, siteUrl, pageTitle, elements, images): ... +``` + +Uses the SharePoint `/_api/sitepages/pages` REST endpoints directly from Python via `httpx`. More complex to implement but eliminates the PowerShell runtime dependency. + +**Decision:** Start with Option A for faster delivery, plan migration to Option B. + +--- + +## 9. Configuration + +### 9.1 Environment Variables + +Add to `env_int.env` and `env_prod.env`: + +```env +# SharePoint Feature - Azure AD App Registration +Feature_Sharepoint_TENANT_ID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +Feature_Sharepoint_CLIENT_ID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +Feature_Sharepoint_CLIENT_SECRET = INT_ENC:... + +# SharePoint Feature - Tenant Info +Feature_Sharepoint_TENANT_NAME = contoso.sharepoint.com +Feature_Sharepoint_BASE_URL = https://contoso.sharepoint.com + +# SharePoint Feature - Bestellportal +Feature_Sharepoint_BESTELLPORTAL_SITE_PATH = /sites/Bestellportal +Feature_Sharepoint_KUNDENMANDATE_LIST_NAME = Kundenmandat Bestellungen + +# SharePoint Feature - Provisioning +Feature_Sharepoint_PROVISIONING_TIMEOUT = 60 +Feature_Sharepoint_PROVISIONING_POLL_INTERVAL = 5 + +# SharePoint Feature - PnP Auth (if using PowerShell bridge) +Feature_Sharepoint_PNP_CERT_PATH = /path/to/cert.pfx +Feature_Sharepoint_PNP_CERT_PASSWORD_SECRET = INT_ENC:... +``` + +### 9.2 Config Class (`config.py`) + +```python +import os + +class SharepointConfig: + def __init__(self): + self.tenantId = os.getenv("Feature_Sharepoint_TENANT_ID", "") + self.clientId = os.getenv("Feature_Sharepoint_CLIENT_ID", "") + self.clientSecret = os.getenv("Feature_Sharepoint_CLIENT_SECRET", "") + self.tenantName = os.getenv("Feature_Sharepoint_TENANT_NAME", "") + self.baseUrl = os.getenv("Feature_Sharepoint_BASE_URL", "") + self.bestellportalSitePath = os.getenv("Feature_Sharepoint_BESTELLPORTAL_SITE_PATH", "/sites/Bestellportal") + self.kundenmandateListName = os.getenv("Feature_Sharepoint_KUNDENMANDATE_LIST_NAME", "Kundenmandat Bestellungen") + self.provisioningTimeout = int(os.getenv("Feature_Sharepoint_PROVISIONING_TIMEOUT", "60")) + self.provisioningPollInterval = int(os.getenv("Feature_Sharepoint_PROVISIONING_POLL_INTERVAL", "5")) + +_config = None + +def getSharepointConfig() -> SharepointConfig: + global _config + if _config is None: + _config = SharepointConfig() + return _config +``` + +Follows the same naming convention as existing env vars (`Feature__`). + +--- + +## 10. Frontend Integration + +### 10.1 New Files + +| File | Purpose | +|------|---------| +| `src/api/sharepointApi.ts` | API client (`createSite`, `customizeLandingPage`, `getOrders`, `getOrderStatus`) | +| `src/hooks/useSharepoint.ts` | React hooks for state management and polling | +| `src/pages/views/sharepoint/SharepointCreateSiteView.tsx` | Site creation form | +| `src/pages/views/sharepoint/SharepointLandingPageView.tsx` | Landing page editor | +| `src/pages/views/sharepoint/SharepointViews.module.css` | Styles | +| `src/pages/views/sharepoint/index.ts` | View exports | + +### 10.2 Page Registry Updates + +In `src/config/pageRegistry.tsx`, add: + +```typescript +// Feature pages - SharePoint +'page.feature.sharepoint.createsite': , +'page.feature.sharepoint.landingpage': , + +// Feature icon +'feature.sharepoint': , +``` + +### 10.3 FeatureView Mapping + +The `FeatureView.tsx` component maps `uiComponent` codes to React components. Add the sharepoint views following the same pattern as chatbotV2 or trustee views. + +### 10.4 Create Site Form + +The form collects all fields from the SharePoint documentation (Section 5.4): +- `projektTitle`, `kurzbeschrieb`, `mandatsId`, `firmenkuerzel` +- `klassifizierung` (dropdown: intern/vertraulich/geheim) +- `accountManager`, `projektLeiter` (email inputs) +- `projektstart`, `projektende` (date pickers) +- `budget` (text) +- `headerImage` (file upload with preview) + +On submit, sends `multipart/form-data` to `POST /api/sharepoint/{instanceId}/create-site`. + +Shows a progress indicator after submission, polling `GET /orders/{orderId}` every 3 seconds until status is `completed` or `failed`. Displays the site URL on success and any warnings. + +### 10.5 Landing Page Editor + +- Input: existing site URL, page title +- Optional header image upload +- Element list with add/remove/reorder (drag-and-drop with `@dnd-kit/core`) +- Supported element types: text, header, image, columns, files +- Each element has a card with type-specific inputs +- Preview of element order before submission + +--- + +## 11. Integration Touchpoints + +### 11.1 Navigation (`routeSystem.py`) + +Add to `_getFeatureUiObjects()`: + +```python +elif featureCode == "sharepoint": + from modules.features.sharepoint.mainSharepoint import UI_OBJECTS + return UI_OBJECTS +``` + +This enables the navigation API to build menu entries for SharePoint instances. + +### 11.2 RBAC + +The feature follows the standard RBAC pattern: +- Template roles (`sharepoint-viewer`, `sharepoint-user`, `sharepoint-admin`) are synced to DB on startup +- When an admin creates a SharePoint feature instance for a mandate, template roles are copied +- Route handlers call `_validateInstanceAccess()` before processing +- DB queries use `getRecordsetWithRBAC()` to enforce data-level permissions + +### 11.3 Feature Instance Configuration + +When an admin creates a feature instance, the `config` JSON field on the `FeatureInstance` can store instance-specific overrides (e.g., different folder structure template, different Bestellportal path). The service layer reads these from the instance config and falls back to environment variables. + +--- + +## 12. Error Handling + +Following the partial success pattern from the SharePoint documentation: + +``` +Create M365 Group → CRITICAL (fail the order) +Poll for Site Ready → CRITICAL (fail with timeout) +Create Folder Structure → NON-CRITICAL (add warning, continue) +Add Kundenmandate Entry → NON-CRITICAL (add warning, continue) +Customize Homepage → NON-CRITICAL (add warning, continue) +``` + +The `SharepointSiteOrder.warnings` array collects non-critical failure messages. The API response includes these so the frontend can display them. + +For transient Graph API errors (429 rate limiting, 503), the bridge implements exponential backoff with up to 3 retries. + +--- + +## 13. Implementation Phases + +### Phase 1 — MVP (Core Site Creation) + +1. Feature skeleton: `mainSharepoint.py`, `routeFeatureSharepoint.py`, `config.py`, `__init__.py` +2. Data models and interface +3. Graph API bridge: token management, group creation, site polling, folder creation +4. `POST /create-site` endpoint (without Kundenmandate list and page customization) +5. `GET /orders` and `GET /orders/{orderId}` endpoints +6. Frontend: create site form + status polling +7. Navigation and RBAC integration + +**Deliverable:** Users can create SharePoint sites with folder structures from the platform. + +### Phase 2 — Kundenmandate & Homepage + +1. Graph API bridge: user lookup, list operations, Kundenmandate entry creation +2. PnP bridge: homepage banner application (certificate auth) +3. Extend create-site flow with steps 7–8 +4. Frontend: display warnings from partial success + +**Deliverable:** Full site creation flow including audit list entry and branded homepage. + +### Phase 3 — Landing Page Editor + +1. PnP bridge: dynamic page application +2. `POST /customize-landing-page` and `GET /landing-page-jobs/{jobId}` endpoints +3. Data model: `LandingPageJob` +4. Frontend: landing page editor with drag-and-drop, image upload, element types + +**Deliverable:** Full feature as described in the SharePoint documentation. + +### Phase 4 — Hardening + +1. Replace PnP PowerShell with SharePoint REST API (Option B) +2. SSE streaming for real-time progress updates during site creation +3. Idempotency check (verify group alias doesn't already exist before creating) +4. Configurable folder structure templates per feature instance +5. Landing page templates (pre-built layouts users can choose from) + +--- + +## 14. Dependencies + +### Backend + +| Package | Purpose | Notes | +|---------|---------|-------| +| `httpx` | Async HTTP client for Graph API | Already in the project | +| `python-multipart` | Form data parsing | Already in the project (FastAPI file uploads) | +| PnP.PowerShell (system) | Page customization | Only if using Option A; installed on server OS | + +No new Python packages required for the MVP. The Graph API communication uses `httpx` which is already a project dependency. + +### Frontend + +| Package | Purpose | Notes | +|---------|---------|-------| +| `@dnd-kit/core` | Drag-and-drop for landing page editor | Phase 3 only; evaluate if already available | + +### Azure AD + +Requires a dedicated App Registration with the permissions listed in the SharePoint documentation Section 3.3 (`Group.ReadWrite.All`, `Sites.FullControl.All`, `Sites.Manage.All`, `User.Read.All`). This can reuse the existing Microsoft service connection (`Service_MSFT_*`) if the required permissions are added, or use a separate registration with `Feature_Sharepoint_*` credentials. + +--- + +## 15. Open Questions + +| # | Question | Impact | +|---|----------|--------| +| 1 | Reuse existing `Service_MSFT_*` credentials or create a dedicated app registration for SharePoint? | Config approach, permission scope | +| 2 | Is the Bestellportal site/list already in production, or does it need to be created? | Determines whether Kundenmandate integration is testable from day one | +| 3 | Should the folder structure be hardcoded (Arbeitsdokumente/Ergebnisse/Grundlagendokumente) or configurable per instance? | Affects Phase 1 scope | +| 4 | Is PnP PowerShell available on the Azure App Service, or should we skip page customization initially? | Determines whether Phase 2 homepage branding is feasible | +| 5 | Should site creation progress be streamed via SSE (like chatbot), or is polling sufficient for MVP? | Frontend complexity | diff --git a/strategy/20260224_Roadmap/20260224_PowerOn_Preismodell.pdf b/strategy/20260224_Roadmap/20260224_PowerOn_Preismodell.pdf new file mode 100644 index 0000000000000000000000000000000000000000..75e9bbbd187b3ef1172e5546a74327ae9e4cabce GIT binary patch literal 397581 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

T~}G?}u{Eiix{EGCy9gDGeze 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

SHXiju9BfD`L6Pv@Yij4s^%Yaj&2?dhE% zsu3Kte@?l!g3hYph~$FnWIZB1l``Z4PUv7f2xjrXftzV3rDbf;0(%$<9cqi3jI$m+ zbCMS7HDVu10>&E$4tHRP_Gj#8COxuzw7JXQ10mQc2jKV(M!#q2h1UI15_Wc(gciTT zIGDh>Cyd^qY4zW>L{L_+e-DIU*AoLLi!k~+L9&TC;j8ck(%;r8DG zAvil8^Y|4q5`vsg4+oja^y{Cc1?;G!1pKHBW?>!FBp$Sn1+4tQM*u+==m-G*ffxn6 zq6T3k*eOfQJSE&JKsyG}kDRO|mnMT!t~e;&go6?=IP#`B1kpJ1P8+$(2p)8D;Fddx zivqlYlMW6Kl_v*Y!AAkFZ5Es=p& za(~H#fQQ0G;Pwyb=j6*7fQuiXcA(n*K;;1FFddFuo*j54|DG&AR0JCM99e#-953)5 zqVxiH&@S1yfEw4Jo}j8L zz|YCs4FqVn52$!R{ykZKplC4kd1xhrBS29t@CxafeEbqPtOUI$XN7@eH+khi9tU#j z3COto!2y{6h{LwXFez!OPS!^q_B$S764SACw8O36@3?ul{sypG5vVrEqCpMK4j05> zd-0@yu39jKNKH71C4+~LhGBFpsW1sV~ufkDNwa8M!!N7gdgxS(t4aAXrB zyER$CWc`xOi>zI8!~;1z;7bqy;K_$S@nl=WLkGlw-;;d=y3zpfG4ki3Lt?;tvQIz< zumE3!#uyJBDFNP-e@`af;z3IHv=2fyh9}z~o@|5v+ycMf(Plc_A%VU={hcYEY@X!H z$N${b4ZM=wj;vQa*<8tY?gDN}?lM&G3wTc!iL6ijADDs4Gy!f)h7+=C$@k*{?n-Wl zynw}%)r%*aFP^Mm^0h>NF7W}}m2CE4_z1WK8P3R8g#ho#Zbeot`KATHt;y~|Rw=mv zJmA)lO8+SW{*S7r^#H00xUC2BEV8!Am6ZWcCqIgecu<8}pi5)}g{qYT@5#tVE?Nn^ zhg1SpR|I}fMs27d-t>ENm&gc6u6XsQJ{0guMijD237D_s{{K@mg^XBa)k9@bfagMc z2LNI~Nc?};dk?6pnx;)ulq^U_KtUwuoRb2AWXT!HAQ?#_ASh9g43Y%N2uN0PQlg0D zq+}&2Q9waJYugit|IZdB_x_ehwS65ZT@+yGmBc8BOcpyQJ zK0gXQheDlU@9%Nf{f=hVgM|tMcNf^Nz!sOI5LGA$2Uay~RE~nY01gwjM{zfhljPB; zAH^_0&qrN&B} zs0Q{@gZ~|U0T=k+(JbPoApacVLSIJPO(X zTY=$Gs0~N29y|)h0=BHcp&**|SfzzWK^tH%9XtwHz!oHU6x0iQG2v0b4W?_tp&;~& z687@KqtLe5?bH5&L03cYNtU3iA^0Rq(5Dc5k|pR<2tLUY^eKR0 zS_=GELLCd+A;ZH^yN~Vyf}1>`mmv7$Sc2|=;FDtsx&wkwN*TZ#f)QAPvt9rrumoA` z0gS*BT1+@$dM#YL!IhX`GjXJwz{5~Wj)MH)>41|R03T^w@TH-az;?y(Fw_#5-Ubgt zV+q^8z`?*w17HM}z|IO_1eUMX=97UUi4**KQDj``hRO z4@2!n&_uvC4}uX`f;dM2Bd`SFl>kOy2`w|n8%DUV1Yv9dMqmj-zyOTE5?q4@U<8&R z5(vNuV+jI~z#bG~ETKi=c&iH65)j1!U<8&R0s_DYEFoFXiJ-!80*812Ba9`;_XuDF zmcZj1zz8f4#X5p=1B_ZwX#|$QF&pfp5m+8B0tosIu!upW5m+9Ibp#EE^H8iKs5oH% z4ON1`5?mhyU<8&R(;I*hSOSYDfDy(LIQ0P-fhF+o0Cs_sETQ}Bf13;b8B6HWa{!-Y z30<)c;FDtsUFiOS zfxz-mek15S;I=-fGy=;*`Hi6UKvx=r(g-ZUQ8R!MSVH@OWBUqR#~zAx1kDE+NTAXP zEJ4T|fDu@N!_eQh8o0Wltpe=oUAUD5x-=NT2rR+PwE#vKOGr>3+kN2b21#20jKC5S z)W_B#_|jk)j%~p3FqpB&HY9i$uspUD!^2Pm5p*A5@PXiyyFFn4fnWrdAfEt$5m-VJ z`Pg~|_mz-DKDJTA!%zbebRX#YO#mazSV$rtT?DBLKMasWKDv1F-!Rk?1lOvC$2#-H=2+Hm$?MP)iVWA7BfIV1)M)64WpQ9y}co`~hHu84Cg@ z0E{qWLBzsuqdr_qAgOtDVcoyzKvENS86EsrLQ?biL;$`LsND#<4=~L`Fv5(5#N+XC z0(>Qh4LmuP(EVqi^huV`oU<8(s)I7Rb2Y%$Cn|A<=z!Er~02qNKBsIAZbRX!h8vrA)gtXq{gCV$f zA4*LG-3Pk<<+t$|zBJT>2(}yOq7ncjumtJa0E{q}hcXsH_W?obP-z5~hcXsH_kpgP z0HqOFLRv2ug6;!swGfOjmWRR=LHB{~djOVjgc*A%V-a*85H$;xMqqg;9uagOa0CXG zMqqg;9uagOU;~CqBd|P_g9y40h=Lztop_U-%K2TC? z03(bgWS%%ajDV};P$DDfKH%^jDviMMP$DDfKEPE8Dvcn04ka>z?gJ%W2BlB3gp#-d z_~ckZxq-o<$VnLsr6dOMNtRGL-`__n|FDEo;R5*NjD<4r0{A3LD0?k{PtI5#NR>N2 z@P(@zl2yl%$nY?j5U_lbaN-flfCyj&mXL;be7*x$2_(XflV8HaP@f>^K0J`(2TPF& z|CNwrJ3b?VuLPolVE2JCD+2iBSn_~l1^}OYFL@w=cYN*yU-uy$1eTB-JWAFG|B^sy z=m3l`mXHd1e1-*AHzXcm`SRddLbihAlP>tu5K9EzhX<0HN7>r`-4ci;g53v7A_riE z84H;Zj?*^5eI+DgkI&fPVTdJy-3Q9;1>lp?hX<0eu+&}fEI~Rh03*y;NWDGEoANI@ zAVCp;5yleIdSNM{{#7@`5<&Oj0V#U`j4+mvv_C#6gkuRwdsy}r__`q-`S?5$zBI%V zLHFT-76DkUn}1aTu|&{)ctCm(03)!3G-_DFl7CeKu|%-@@IWicamoU?211JV@%bh^ z46#J8`#^auexHKEmxfp(*nOZ>6aYpTOMZwBg6_iuEilI?s_=C~?MBdjpon__Bg|OH zB61Xp{;zogEilKYv2b-mrjKI}7I+wHAcF401MLKkBD4QpH`Lz zl0fmM06saEP`DC+PqKu9@&J5t#zHZM06xhQ3T*`N$+6^x>?gwN5 z=pg7mP{0|05m-XoiDO4R_)4G&fuQ?9kxKwZU+2svNsw!qI`&d61ok9==cLB!xct_skL0CQE4w=x4B2s}q>349^AGU|67%_-T{ zT%24@54|K*9UOo+n>^*wJ{Neh{q~22(FPooUD4RdM%LcK0WO~j3_1GD+>8=5(;QTNqP>(y z>lG%urj_{}b0=jda|?6e^3#9#mU^*4%0o^AX+}Wg%a!9 zcCzo;YfUYj-S?z3b*k1H$%*DoJ%)-UtMg4H_?_8yijvs-uX7PazoXd+>i=}Z_mr8H zd>2alrIDZ6LDo5y^EaN2qIg_y%A-x^L+_a-RWAGfdWSigwLJgafETL49aicui>I}b zn@a6y+mfbP^GynZGX*_b+0Z}xMvY+hh*+d>B3&+_(Ld*3Pb>29VJ03v?tG^5Ren8k z&CCAb5(!UP`5NvSObAkj+X}PPY7L8hH;_7`sV!7sijPMg=3wPKYlTK2AjQh{yJx!$GYdd`khd7c#G zysA5oCY-m$Yp1^9)uYg7?gs~=IcTlBZmj(- zFK+t=2dJSm56WB?>o(H0DwfR7#bY2ay2;lv?~5!>9`;RGk*FoRFBn&k)o6yt`BP+> ziX82mueUugQJ$HgHQUyOV>3L>>d*5OFCndN*Shm6#+OLwX1k}140?9_ynC*@ijJ9m zs4+u+qRo~8#iNY3NnG|jY>zKl6(5YKoHjZC#uKMNDkG&@3rS&3dP?zfoP6XDGCbBr zDOdV4te1ms?2BKVmm|J%txTP1?V&**cD?^p)MSJ%`zE86feKwu@vnRZd+ry^wlkP? zcWGR_ZpUN@8oy|GnIN?uWfD`At4?!v22a~}!KZ_V3@yB?9^oGW9ZT=-k($c1D!5n2a zb1iLYkjW`y7d?p$dIxAT>|7zT+Qmo7`Ba*| zGksszwtnoi)reXZ_NaHYx+g<z{Y3b{o(4K3m`Wfp$-V zedSMc5nA*AVlMJKeUAqJ0V>pB} zbZy14f5f?yH`$R83$^MR3lh;Za&1XVJ@zUVJ z3bMybi;UypN;mcco)N5QmTGvr-)YWNyk)aS{{+R{zCIM$)=*fUKqu9r1zW!+Fy^w% z&0qd{%8M>-45PMrTxVUJG^D>?Uv>@U5_%TUJ*^vPnmbf7wb5;tUDcO?vmx~EbZVCU z5APZFU&Z2W_6?>{MjnXp5(6$ra|J&3xPC!c_OQeq;!###@5 z;-gZtcjGADbmw}mpC$jWX>S^5GfEq#YU_?!M1gm136c8sPzqnq`I;AAB5YJ)!Q~f< zXFjUa;FC%`&-RqpYSXfNWbA?B6XKL{#ilaQ6?Qy zm)s6~c;90Rb9j;ENp~ry>m)r$BRN+=XLJt5{zq#kZ|{S%^}OT_@q*NhooKmv3FI1% z3^lj?IT=2j(KYFM;2bPOoK1L5>Fw_+}Myk?N(4i3y4j*dmS&SxxC!dTYsrA0bWid9~Z6@E_oHm)7dN1agF zi&9BMv6xbd{A9t~uabhzo}gIJVQtEBod5Rbv$)2q?{n6TshzcvdEdpGFyt*_{B%f$ z$TCpIzBfHw6YKO+QkWf8g(plf2Mv( z|LwTybp5_t14I20Z;5tadh`|FaCx$9!x?1Mp8Mm{!>vRQADr%*Tl>0~?p;x_!{VaQ zEi4hFLJ7HWZ|{>4+q?H07R+URX&Sf8<8P8aNEAm3I{()EoBC_Ql%a*ZCg00RB}@4F z72j&FYG)>38|Nm=Voz2Ves7sel}TCZ!DOtH7Pv;@thQB8<>}Cu>KKv{_vCfyOjbVT zmoQ{AI9RI7}TkghVL9WEiWhUofCNbrF*tI zFm+?a_if7}o?wWZGMa5$;%C22G@*FQ@tC@_=V^v`Pd(^lk%n(;iM`#mSkNbCk0;2G z752+Z*LCfd_EIyw*b|?(J>I(gM1H7y z#T~_ucInrC@d!O~~G!yUMS@M_rmL{AzL)ZhdZ`MSabhjQqZOV zdfAWa1HMSJMsIN;`2kgI7UEVao?C{ofZ;Js?+yO zRJGN26Y^_bn|u~CUsPrsHjJzlqa7bX3l$jptljtR8y7cOvTP~A^X(APPV)NAiSzu; z4?Egz3Ctot;A&k99!yYBC{d0`x5iby=^x3@prx~IZu>?OgPS&k_MQOmyRs<^x3|sit5}p*u&+RriRT_u_RV4eSB;!@^Q?v^*#Hyro#6ys zwr|Vd)Wh0QS36_--o=^9ogK_~)_ya&My6Jm9;@0MJSF~c{zcvPoOJHOGQO+U-dD_9 zg&%up%QHXs3UzrIZxiJmh{r5{NMszO#Mp?+PyMOi!#1fESVzI6`nhnbz&D{H=V8PdTgWqUh-1=&RxUmpLX(j zl`?ARb&uEYMtE=9PmCCjq>fzq7N%AIhqveO<0(Q&au-Ab-o*;-r-?^%i52RHA*hm(N|TLxNr0Ak;LBgIh^czan$P>8zQ~0 zPk;YF+!)E5(p6?ngxxWcU0>+r!dAI6X>CKTQ~p!wV|3`Xp>IDpY8TGhf9WO=;Yk^$ z`PEvV$MAfpYRDR$n(EU^{>QB5_dHXloTMxGW2T8l)LS|fs=ShmyC#*!o(MQ6oO~8nyJR7Ns5)qeWbuvpC5nfO=vp_>rL2(iVtq( z@0sV zc6hH-Ms!xoGTHK3q6yaiaALNO`7AEqamsK~da;oANttS` z#K;V$-CL~i*R5L<4H?ld$8F_Jo|G32(hOeSL%pPRd5Wy=Bh%%(T`9b+n#>G$S5sUc z8P%b=eB9aYl{dN3dYZa}vw1a+Y8{0yCprm(Hf?-NgpC7jU2ylpLG>%DSq+M%BF#|~ zzrs9i$|d{rn0(((YxNI|t!9jdQkB@sl4|wI!1)CGy=UzA z+sQBR4>Vp`{rsN)o(ZV}7M~u6%G;1H_zO#Jg*nqHtNm1($r?i`@67nwL&)&z)0DZ| zYM$TBzV9zKv3s>$;I>?8@rzsOlcLqkey`BNqG+W*Y>WsIPbb@ZbE9aWpf7yEv+*z{DACtrEjy-Qz3teqyq z`}9qkraxPvt%lrbD-_S4^FU6$$FhiQ^>TQ#w>3a9K_A*8`m)09Q%k<$2qo!}Gy6Ru` zStwng>JEIH&QVfLjwXXVmYgsWf+Ts-nM$VY8HzbyrrgF*t?G_&6{Ep(18s>Z0_l*< z-4;~b&{K-2Gr{QnMiFXDy0{u_+R3e-T8YxdBU!fSLlcdA)XsA?C*9U>i#AmXut7pa zou^aX@;&ndDY`u~M{u?064NUuG*JqN{p1^-_2|DYu7u9FVgHn5wHqe9V@pWv)G_OvP0@b zc4*#h%z^E#^{@q9vF60DLfZ^K8d$rj(&cKi1r<4F@rq|gHQLDOzm|_jqirvi87ERa z>xt)BIFQ|LT)160wKTGOHexH=^iQJ+XI=YGqY0vt{xzCva7Gg~pA^fGj3;*v>^_>& z4W}6dUS;@&#dpb>rVRrfhtiehJx5?{lwo^>IPfI(G(cE)J+ z`)x9jEQ!zLqHcboc%y(ZUl)EQ&69Ppn;7Jb>q@P)5??CLDN@HU$Ay%Ele|PJO!; z$s*cOBFT;5 z+f<^17vD$L7w(>-m;6HaQ&2?QP`QM_ETgSMKfdJRM+Jg-&k8S(VBIcb#s!6Fo>m#n zx1_$eG3g&?f0i-FRMAoEk#$h~5+kB1^b9k1dX>8V%^I(@q6C*ET36_g3|(ZLWsy7u z%FI%a!F$gqa1v+Ncq#{FdWpO?W8bxu#|{5{_P~BqI9CC;hcNU`vX0ve(ZnlnmP(X2 zLiz)f6q*JdxLEgXr>pbh%osBaCNbA$*sjPCNvMpB#?5&YE5Bu^|CFM1Q~2?>Z32-L zaWCxp2cny(Yu;o__GOH>viVCrFLe#yRNb7?8Yvq+YnQ&tdSJP}bor;)uhX@+I6eO~ z!T!?h2@Vb6CzxxrZ1@FEEU9fF6n5oH$w8ay)Nh)g-GOaY3Z>2>((aiKK6<*o4EdH& z>yU&7vtVK-YG4Q%S=hvn%4v795;zD7B~#$xN8Lh6P-^ZtFtf^QfeeWi!@QMVYKYMKK*3kIgOD|AD1ZJtkj1} zot?BfogtE4Ib|IgH$jY-cq(M-cD-*ckrlt%#w1;{c|@L{z#Z**@9VjC|KL7TyQnv# zb3&-;dd2;h)n;5=$p**WK1p|2jU-Nw>eeQUm^uLQi~96N-L(z`c5)cc-Q5t7hiZY1--uCimVZ<}UGp6x@gVcK0; z)g)o1s98*Y_tej(ez4fK_30#ing3IwiKPqNqQB~9+jpzI3#P`rV>JIXJb!646@bzh z|D(a!X~-9?@L@f%BpSVsvVUc%L$dGn%CBbu%d_Kt8QeiKG>KUx7V?yD{96l7E96n0 z_W7|vNVBDk+s36Bze5E_~0$ za51=F1x4PV?}hfqg?=*@2l50GzxmvhAL`hzIWSSwnz`TE6Ln}f8piq8KIT}lB1*n6 zp+-u4$7Ex??NLb8w)D5~TF+t4xWL{YW~QRXMn6LD;Xqxu9xH*vF?m?2m7TW#W&AhtWyPx$UK2&0Lti zb<4$2gz0fUVS%!g4Ks!16%RU23)EJA&2UZbjeGkUb30Wjv=q+8^G)a!j&FqBKGO^; ze!GXU!%QB7-p^O>KJ&o0eS^zWVpD(Lw(}loA464wVClBVi`#UjFJGiTUEiomU1M%a zr9hLN=^FH&_a-i3`1P)6HQH#_+QmrUNzxpa&7h*SXLo!s0=uR zPTVpUv8L~sB-YgUoIc5j8u5}6W1#r&W=>d#FO=QZ$T>o6K#Wy|d=wtYc?vu`bJEGvE7Jd%^(o@W*zniCgBM?jF!CN(s5fDpMa3-_=W0~^oEK^myGbQQu=4{e8(&^Lr+M=m!j1neX zeiO2aXW5j57v21NnrylvSf5;A>uAB;M7<+^Cq02PM12nPX-Ly`{PdkSb@7!ZkH>N= zTRw#b8cBtdq+Gr?8^rZ1V)ka9ho<)n(+ueggN8&oO$W+ck4)uya4e-)%@e!M@mDtC zTb-GA9K0^zlWtUWRW2`y6?@=8z(v9LXwuX}2~AYKrLqTCJM_a|4*jI8dBTvr%;x%8 z%;1gmDo0^G<)c1f`ZKQnQ;%9N1jua~?}`|8yb2X{kep*fjnn*A@MSOfaXH2&{YaLW z?Icl`NW?9_8z1oJ<@H4GHY$)72Cmwaqgt$;(jDcjXywS8zoqZ~q`#NNfqFi@J#hFM z$(j-J?o(xr_cu^8(U}NR6LRgwRyFV#WLq80i7XUaIw7!R{z`LYZkm4V*Qw6wv`2G!-8+h+M*S&%x_iTWxM){2`9<& z#J22t%tumu-e&UFtkXvq9y}8=D>|ua$;wD_xxLFlc$Mg*Wqj%K4EtjFuY#$iOH}Vy zhyFCl{?b$pJP`ji$)b8fnkjMH);0+##w0lvW3W;1bO$8P?FDshA*rUA1%%<5;@sVn z!ZvvCw{hXylbs)dAvyM;TmIfvvK60Yi^H4*Zs5>Ijo^6~fCKd8X5@o~I1Ba50$5Fo0&KKh~3 z{+dLl?Fa+U%{}uw1S?Y!#jR8wru8@MXR{nDQm&08B0VrCrC;`#yDz=(Ikq6{v^IBV z;XaWdJxgZ@GnyuGRA=ZJ;kYQnkXIU?qR$8ydd z8?W+wT&G{LwYO;S)Crv(maOYhm~9s15nH94$HnhOO|>bD!OnN|Mk3RA`1DUb4QCKN zIv|&Juy?s;?riF0<>=zzgvky)OB>r++1{mOkhKSA!64}igsFjJUl-F`l8LeXZJ?Apg4fGAH;udT5qI7c;pX(+(+$EGa za;MZ|1KA9~y$;|2`_Mg)gOc?m0`eM2TRAzqNZvAbf|{pb4EsL_3OK4uLc#&m1f1%4 zfX5=pj=~AdF#^1N;1?xP>gcz??17Zh|M6deLw8B=TSq~l|Ko!Hd;-lRFo&e9oUA}X09nr34`tHFjueQFd}L zJ@nlI?=a7iLp&zCC78$1qH>rf)e_7_;Clgk0As>)l0eAqML6`yTdjMyiqwqZNiIgCCIBbC! z_ycJX&_M#vVS0hTI8yj;H?jXoH?c#9{lDm7UZC&6?X@5`v5TDOkBbW4T0H&>|YwMi_7D1{E`3j4kNp zBv7(dDW5)P?PKH+y-zhHTSaJUao$zW*bG?*97<jr+$nagv`49dcDiTncGhc`(y?zP8|!$Vy-d7jH})KRS{(fc{o4+j-HkcXQ`BSo z=d|%hcJEd2qg)_nvUylh+ocrzjO4y6w&$CKIe~Ncn=u;VQQlauoaW#USW#6Ced_9B zSRZIWDr(`bn#Uxa-Pktb+(BzcttM-(WtaU8*U=MuA@sHG?Y@EJf=t`HG|H;h>I*MWO%5DJ#tHYQi}?Jad&nNg-UvfAzqvI2Ccl=u;_O&F zj*WdsV$~o+eoB{&kw?~JlTmfO{nOb$9rX}<3~o>S|HU?k18lsY?a9$L2g(a{xX*#I zJ^cMX=O}s1|I2+2(BO}!&VT>>|4R>mSNea)t^~?-^}nV|{;iVr-{t&oK;GeQ$B6yEVVZyS}{s zQlKtEPaC_HPTJwQ(5t8QuAD)!E@}bBZ`;1$V_(-seT>PoEflXUY+YeTjk&H^t0k4D zap}JCHzVG4eU==O5zMz%EnalZOrJ@{-WNEZ%48B`oS1&mT%UwyP9V#OQAE6#+A&rZ z9!6fBlj_%p+=7Fo^PUCJ-cXSR5s;^+6{>P z23ya+*zE8Nf@?wk=}Nmp*IcY|$Tb&(*z)NDia2q~p2Hcrt+kP>ZhX9v1x#_%Ut6EM zPB?z`m1Y0<{d^J2GqZs1gGQ|?)t45Ttd{@_(Hu%o=yg8!3!GV<4MjJO-vI(==ZPcAFE^bV%AaXo;F;GPZ$uxkxkzi)@71ndwnL+LrqVURgJbHSC=14 zk-U8Aj^YN(JNwR@qH{VQm6WBglpM6}{`4u5qq7U=?;oZKOCT7Qs%0%f|A6XY&%fa( zSe5egOMh}I*#o2gPXyADiSJl_)3#y^2yR^RyT?@BHm{W2RGK!BOk?KP@GEFI&z%irmV2f<0c&pW_{;`?s1--`RiJ z_B3|2nb|Vt%1g)ZlC6}43XGYC=x^MMddF2SkQhm6=9ItEf9V>fK)c|+(D@bnCB9sX zmR`S%s{sDjw#?V+Zn3ndLxM8iUaFQ<$4SkWW~?{Atc%0=!6~lMFO_-S=Sj0~w&8(8uzrb{v;wi}W?6Yly^@$@#hheyFfZ@-b(wE@NBStgLekKP#;*kUhXk zG5(3^k818@oXAmncDrW6S3#;YMl4bX^Lx%mXC1+S9rwVk&ishES0clO7XICB8;cVq zPIdc%v{pMLao5z$oQlOcOg3qMy%pQzO)Z{YU>ZsxpZX|w@5LiDjcQ}w?axvfled>| zN73J1j~%`%Vs_3AUsqMyN|uhq%<^sbj|ffIcQ!B5P&b%H%8BYa2XmjLQ*Vcravt2W z!)Xsx3y^pwb4sGFeyxJR`dZ7iy{P?_+OQs!7>~yuCXGcijzO1A`xS`;iNYpnv+?+} zdLNFQB2wro=Fe^5!td;oWRcl-i${HMJp#8p^)`28vcD;=>&;aCJEru-PuZ3`oFlv| zaeT`wStl}FC<1zhOt0**(NFEGZ>?Qli#Y$)dEa^e-agt52Gc(|xE!Wi{EJr%DEsiQ z*u5UkbIn)LkzYO4`uZTvV7hA4hl;s%?x4{8dPtF@Dwjm<)gb2Bs9hs_<>>5Q`hY0S z;EkN#Z6R;IXOXt36(OD*49~kcUF7KA;r*OxzRlZ`=r~zUex;+Y=kV z>~xByjbrIgf&p&h^Pl{_K#o%QR=Y+Vwc7LMYqZe!daI`of(r=a4=SVP2;E%1B;Y;L zcB!fHO}~&4o>x;NcG>7X`lXfWZK9qoMm+m2j3NaKGTjlzuPmnQ^H=s1{fIQNtJS@6 z_NVzswsNEH`j{5>48(h@-7M=wdl<{(_NQjUova)@f1iANe z^RV%OaM$1Ny&xM1+o8AbfAsG?%mnopV+%5G!S|A#ilBW92iEd;Oz*46L6ws)#3P&b z4){t;(4H8{V@o^Z-ISK#c!psp;i!SX`>KRc(*;HG#Vl=}c#oFA$GRpX7c9LddSeR= z8)>p?%QT@*ywSL-<0L(e89r?z$%7ZBVXK5e4cj7eMq8z89Bb1H(=x!S3D1z zQhfVE&Ea1UsNZK{#pWj`R^O7K`C#CzVlkyI;~SsxgyM|J+w`6lbj zZ+}SzjY9iR?fXm5Zhk@N z@}}Q92=I%tXSt3w*2B1XTJiINV8kU~mSnJS=6TvS2WzPM;*{${br&D`EvFZ75pLL|?d|BAQa@QKOVzc!pSb6IqcC+wwc!I(_ zc6O|gUEnO^Di?n4g?1|(5$t^0T(td}Ar&L8RcBdl>ln9r3w*UKos^XoSZYNSv@vLMAA(4A{|>x%9X53-U+d#68b825!X%A-|7i5##PTF zIT@1%6Lpdg4Box+tD?F6(c^D@3w9TuUf)K6w9)0+cxcZ=yv^8l--8c4&+C^Hf07`D;m8i#P?}Sgl0G8|E0?MT_?GQrerX5A@ER4;uEWXF}c_ zN;Ilmc!JWvZEDw3od!TN+d-hMFoO5k1TH2uQFn1mT~Uo7<$&zI1)tHE=qSQyeSeI z@bEUs3)e08M!huS734;=|C4`bXLs-W$dY0DDcj&by<>lAtmNVUmuskbj4ZIk15a{S zOoLaxxjGA9DBol_AJ`db?PKU9l~{@ONz=%n&%d0eMjoL`H>@)1{t^vj+4kPX*a;WJl|m9o~p z-oUkJYW88v%*!zEwHlwdrK8!oRvLb$AWhd2O*z%rlJUaw58Tg2i0lhIuxjpH+0(Wi zb;K&6TLVL}m-9K2=`(5Z&_F$;1#Pd9jmh(o^bQq)sa`xy3S5aOUd(b45QHoJf z$qwDDR!R%eUN~hUMM@Dv$f8cAafS26R5bOb=&f^aXPZVp30nr^4tC|>)AK4CS_*xx zIj8n1nb4AO0A%xsHCe*KFp>P`juagpyqUk`bXHC3{P34>sgpm-3BA-pPC8hANQa3PaxGVynbi^Y*eiv!NXdz_dxF#2U+UoKizhK~(Lz zcY{7C?}|kr*^Tgf6?VjfGiGD$J`}0Ybe=pOtk#qZa%5_XHYONJ%*@HpMM?`spJG$J z$I8Fx=kd~~cB`P3VwY)7{~f^|$dS{o`3=XFN9=LW%D!;X_j0ij9OXDo)0@@7vT03gqH<>g;ih8N(!|`q(08g8!^M7jrdJSAW#bU8K zbIpCX_f4}$N=2UZKi}9gXdCRWlrWWzFnX=&QSV*O;>ORaQbun}T9GHO9Mrd*^$tMBe&_2<6j|#z zXu^uC6kXntHnpp-e%hb5x`K)jEr-3|UqT|RocabQRnXPT73INa<~P+jc-oXmk@ROv zMa28|MB|hOBd%~>MrBUyY0NObIvk-Asdi29DvcuX<>tC<(VPtVJKdjA-m! zXsIk?>aSJuh##MsVr0eL{peguLRj5Cs)tS^sJg$H>Ik*IGQ&X zWJmm}LL|62g$b=+U1=CcPK%Mw}t?)$CJ|(6pS{bNJ}jhlrG3aSchLhcIqx^Hr}!4%l-GVD2!AuGlJc=ljIiGou!J$JdA}6(lT;2jmAya6#SD#-Nl-h zSx~QdIdXF>8oL?K$batCc|{U4%+@4%MqXIf$0W6r=c;{G!%bS!q(NB^2cebA>J6FR zY<3%Y*={df)HA8B4vmk0LA|+L{<4x6cTF8_>wv7gBpR4cstA zS#C9a;BX?q^SwT^Qyq=ZP|e66_L=ZT@fkz@!dD6S&t;H;8lNbmgfl-LTF+3FIZg4P zA>ZX^>1`X%kmnWLeP=v*m#+$+;2D`>+mJW8?9E&(?`iaFsDUb#z)y&Vc!q|urR zvqe<(u26}!tC~z(=)cgWw453}=ankj)-YB%klVi=}LUROH)co5-rzu;u%y$mRsk&2m2|=5& znVIK*ZBMz~&rmO@(7F*o|KKVWw|GXugJx$1t`YIiA_?t=E_qZO=I@P8uQmFxt^1}% zrajPc3_tC3CxWa1rAfA5FdZhS1alxkg>xvVIH|Xdubq1!VQY$yR?wsNx|c-Q9N96d z{VTH6+P1ck$`x-@2`tSru`4h^wS+r&DvF2HA8Uzqg^$Rf#)+?2i8~BePS8D4@W)#& zMWTz3t(678ru3gqza)14k$9A6sFnG&wX7dOx&j#`y`M%R`UCY#f++;6HMAHT(*3T~ zMH#(U_Y&+==mP>R>`vu8nWEm+x7hu*(!IS9elBU$&#~viX|1UhC7ggEZ9j`h5(!fe zs)AtTFP=)o=v=$#QDMrI4>~69l86^lTSi_L$Pafs9p~zSF3xHG3%LuagZQiEd%R(W zgI~eKl0|-*7Ywex%km|}BkQ|XYonOG|D!si-A=S5kxf}eotk5{!jev+NYGuZ>m3W~ z)S;-duz*BWGbF0oSeg{i$dAc3miCyFQS$4zKc{&_R~|DNqvVPH*x`Aq{1Y$hJOdWH zp~nSZu=`PS3#BcVL<+O&hcJeQQLUp=`RJwSk3f>=S5B~ zr>^X=`d<`}aG|dZGuL759Dn}&$4AM8f-X%{xlQ(3KgYXw;%78xNeev4gfiNyg0{DZ z=HKwwNY^k<&69i>ObWzEClmDD!BdgHzC5g%hJ>+ovD^fk>$(G)=1Re6?Y)ksdSUIw z!FMa7g*>OLA7|(3Nhlfoz>nM#TSmh9M_d^IaaACj)XEPNSGGW06}5^ExjuP@%AU8I zu#!7Cg)^j;xBtVvBKnG)hB2qu&_*so5KNVKS$ukcFE<4r@HrhWPAk zQf0-NDVvDW?X4A_MfR{gwmYe5Qjz7FebjM2*7=X)zS-M-N=y0DLv(Wq_4Ac=Tmy=J zE5S>jp9J=ltIF_SOzmt&vYSwo`4)A5@62RYV3uA_YHokL(UsfslveVh+%}o38+y{6 z%MGdbieB8Zan{~jwCx?;Y-+=3BiPfo8h^63RlCp?Dte#Z(k$G%UFXFp(K4MJ_S@{0 z1vdW9yRkF1uQYA&zWJzxj41Z}FzG-2>D@Rk_tFg_(eOK*6uiYBRb1(>-E{3D2p(wiXZq==c18o!9zR~cr#jqhc(Xip7 zMzV{b{IC8w+qKKDFPrmEZoS#+G%O?GGJA9o#3GHfEo+#6vDA-Y z>T^7uWp@zW!VbM+L%FxC)7Cfg)kd{+*^SgCA4Q`HwLb}VxI`}hNde{O{8v&bJ9XKz zIX*0qRI2X24hS0;c>MO$_I@R!+?J(lubU2atf3{w)Nq5XX zbKb*7=%-Kyk>tek*+2}YY%W43OI1nS^jxdg9c7wd9LZM$F503#!?XxM@q2W+G^puI zfW+HRMk!DpHqG=QMWc?-8byv==Plgd8C&uYC5{z9*~t_LG(r|^iMP5aeXB!uGp?}5 zPA?dB1nv5at@I_|z{>3VDcs+$t=7`B-v3oPC5lRI+Sb8k=2i)f0u!%5Erx6^Nx_+s zavG6GOOD1Y_#sFJy=6MDC$4xfKpEBQD!gKW|Dnd?#(+X?0r`)Hhq(WCq6`$?9IBy@@&{wz06RIOv_m+*VZ7qi!6~{ zh-=L#=BLg2nK|QGUV5#vB*Ba*J>PAr8F#;3d`q( zdYs+98b&Mf$l>`jvKxs9@@~YWW!P39+~aur6*<^Y#t3y1Z$%Swc(00!JSPp>oY_00 zf1M-U&WECxy5v){rl?XaSMr>Hh4g2kf_=A57Cc)m%@X(SRGmPk%&7vEt=@S7&qsXO z&mR3h?7an49b1F>Sn|9@}X!5D|Ls_Im&+O@6LntM*POZ$&W^S7V<*w4N#Ls?d9dja>^k(56T z(wM%eX0SW7_&hn5wfnK~Rrre>b05dhOG+-EvCYI}fTQ%wjN0?=(_*RKaT`h@lEf&J z?EBsWB01jW`|As=98592U$u(gO-r%=6n3zPlR#=?ec+Y!rziIDL>gMn-pYR9IDJn} zKddRJe#8B=D;wVz#y}Efj3gVV&_!gMhbb&zUWh#ZqLWWqG_v04-iJOD*^x+IYyp9; zjkbswS06g2BvWrbK?FIFsncB6whVGqd@mZ9Zy;NbIfu+pj4l82+$HoHmGzq!btel% zRnU}I|jG=YYdtL zF~jpY<(pyOS-<{nx)u0M;C}V?rn$`gx%cd*?F+5v<@x$8eJ+)}qe9w|q+E}2;kD0Zfd=5s@$Iz_P{6dDiU##rw-?}Y zOfWAEzJ%WjY(OyD(UQ*FH`Q<%?EF%7;3UXa@VZ|%Pruc7PzXbWu2!7PpL2>XVFnEF zS~?w*!}PgU0i_Pi*S8ctroM@9vgT`;uc#SE1nL7>@?S}R9eyi}p;~6*Il`DHFHB|o z`dE7Qg^~~b>xBe{d|2)06YspcmrJaOF`3xK=w#`e66{FShjztuZeLGH!UE%+5nUj8 zu>Nf#wNHl{A#&%J$1 zU9_^djgU_-cHn=jd*5+jw(x9+?~70=L9CX5tP(&3F2-U-eo7?6jK)rG%~4E3ZBf@P zYZWETb&QEO^hH5|>xRC{x#EXd%|>Z`IJ^yrP+=XQmANq~mHfIEraV6OIaEc?jY(Fn zL^DL`+C+(G2`@cDSC@3H=O9h;re%RJf!XynYSc|l1go@0jTy&!_!UZ#_1U(uI2(_K zUs_R>P**IS(*8arelE(l8nW__CE?PyY670D*-#1*BQ6JAf-CyMb!RlJ^dmVr+xD23 zIo##@#2fl9rB=G0eAf5hNgB$UOZmz?!QO`%t^TT2{bnNSZxYYHNj(2wCGmWet@w=> zX|}&fJpU%~{F}t{PsGn(t2Q5LC4Zy!fW&ToOmrB^Nmvp99^O`(T9B_i2bl#%I{I#_ z{dqjZW)H{(E5*b+cun93LU`U7b>&`uA^Y%J?)`VYjpPizsN#S)lYuFfanI`k=iBp6 zvm3%zI78J84-Ymh1ZvZ`vgTpAAjfWWMaHVh29*yWHd*=B$lPlfvZV7!B+*wNIP6~9 zD@jdMw}gCn`iY~i_(;VZ%jbLXq3$HHjOv)B_vp86Nh-zlm{{XB^)VUGh)90*&jjSr zE#`zJ=U$=}gSpU+E=ob-8Rw!jvb`@^p;MFx`&*ccpwH1WX2PH2CkP@aTX2#@SWtL( zg)`+XDXRO(=^U$$w4d;YjbljIr|#$(LZwmZ)%F|v_a43>!?st-O`UdZz37|9a(-qN zsK|%9_%Tq>r~h*hq=O8b@9We?u00hyo0>jM+AL8g)!iVpwz|+w+$Ml!o5v2JRiuX& z=Dzw3@b1Y)eJt&-hWOu2D{}mlVYUE;33pi^(it^gvY;^G!|UYzwUxZrn`^^qRk~nE z+y$wMN-zPyeE*9Ud^jU;&m#=It?Q#}Tf_0QmA9qZkFJ^{GfF z8+m!wO}ciw;GJE+P$p3VU@9sQrY%8&CgTE@Q=-;J`n*g3HUkk8>!i+{2G0RuQ4AK+ z`L>I0i(X-=eVXMJ0tfHcTBMNHcOx_4>AcTve1r57Oay|m;goM%w3O}j9d96{tlrx) zBg3;K1q7q(?@D#bTc~D3m}SZqp)0V=#w&%EpSWjnckf>5u{ou`^wcyAZ-lx-QxceB z^mXe5LJF3XZdNGZnTRTPi_=n1j^G^nq}c{!?pr!hi~H9KiswYjwh&ZGDe)_0joUk= zWS-|le{6RdvJTOO#({B$scUy13a^5|4>0j)c(*#_92YuDV(^!Kn=0zUQ*M1ISkVv{Wm;cPEA*|Obz)?Wo-@lruD($<{i%0}=T zce$8^fpY4Ryj89o@C_5b=DEmTWM%<0+N;$dmA)$Sj*V-!OYJFbWl^G;1-&}3o9kdb z^yFk-ol=Ml2f{ZNs*$TYo|70v>DtPUsRsvDN~X`vb%$st&<7}!`qnBw;as9AoUrDm zsp~@9G>mzZlif3H97}~U;L1(Y9Kn0^v+#!UoRvpkbphp<^w#_6+D?x5T&+&=Y{tHS z@6qHv%d9dF|G;{F(A$o5`VJ`ab$6+B17q}A)7RnMZ~bf$R>O*~r!MQiR)jcYmkAzx z;-z%f#Jri2$2NI6H_m97*jyokUk}#Y;aJeSeBoe%Wh>DenY*={TC0%3`%=$pEn`}y zvv~`>W-y7skl}vLoR;&Lt$@!Z=R<*mJm2~KhYgu-U;n*z-es{NJ}8J?*EvaXUTQv} zI4ki8#?5FGY{C1yoqLq4t^1)}tCIRIxLznRu&{#P0z@?w_w0*LifAVObMp?y~w zJOQM^`!a#k(C4cyugVqCg^RN=$RX)wk5IrH#I_*%s@OG0-xOfsv1|?Dy*R1O?1+oP zy-#@dd1$@({l+98iNyd}!L8j4I#%5Zm;1&$vY4|(CQDle>&m3DfS`&jTPj3z%Rn&H zFRZUNs`OfryN033XU2S(QeIQI@XHq~c);_mSIzoUoJ=sv-BjT|vYPU30;k)oHw4DD zAUZ;51bvBB=d1I1nD<=b{rjzX_OKUF=!^&x{gq-AJyIL_isO_F7FX0bl zMH`tg4I2^@;1@d#t&IjHVm#qem!5N zMJ=vWPacDONq8LkMj6Km|I3uE1mS#HUx1-&>Y|nB;CaqL0nv(D^HkX>RtRKv^sk=b zZ-Nf~Ce;2NLhVOg-QSqmfF!1VoY{aN9MSXqutFe^COvU>v<%p0R2v{9{o0B^6xXS$ zO@ap_GHL06W&21BhTE?{7E!F3k@$-oP22X9$P*q(pM-(DXD$})z8EXdKsZ<*xWM>? zD6seO801e93SO8%79>#iFg3kOdpV$D7aU1ill@WDw4Ba?;*Hh9cP!WgCh4*6$ClE>AL?eE`G-N21UPp&T?w}y7&hp zy<}Ou8emIs8SCZ~pG|wP!m*~iCV7U6?U>PXWDIE` zcb!;(?9`m7v>27HcZCriUuK1Kw(p)x2aWZRJRN2sTISx+s`WvkU0}dcePLSDadN69 zkCl}f#{1;EqE-rQ?*^so$vwh|nt?Q!8qR5+cg;umFRoIT0vzDUa91(-y%(n6fD4s^%-K#|@ zD3YFT5G0MzM~Vq13gEr>^Fl{;)p>)F@P4~;8}T!Xl&kh}uYm#kep|n)v7i+T*z6PX zeTbu_^{!>C4~$y3c6QIwtG;DsYgD)`9DU`yc7EEw#NHuzXvU4T-)3~gqLE5=gA|%KGZ|f%YNWyJkD0RS8RG}=l-N(O|<=2H~d3Z;ji^0KR}QE z57WaxN-F+F@%~K@|2IAS|10$Hk6P)!QRn}rhyTBU9{y40^*5g8-}LZ*)5HH$^ze^@ z!M{<#*Z@DR0s2|A@lk&uWa`=qfupCvWaK?6X*^XhOK!QdfNh#rua8$k*5ot%$Xvu{ z$6+^jkkU`8nvl@4gw{Qy;`4njGLv)VhMQl**ckM3&ZW#FH_|3WOIV~WNYZMkObXP~ zA#AKW)OdkF^!!+#%(rZv;8%wQDyRlV6V8R*Wf{@b6+VFS@8hAG5a4pV7oBdN%k-`ycN$gJQmXm>rgEN;gZ_Hxa6A?)Vh)hGZU z@tj_*hshh%jGR#1xfASE-=K8IiObP1voMF$_CjBd?L=@PY&2|*RPJzb zL_Ev#>}dcTb%EZ5QiK~6^E=RTTaUTGg%D)M6p~j$2((!B!t9NrDuLNy%2&~i-8=L; zaNk~h#VmHBH%fZJwD7(VCF&DzfB1Xj@06FHH+((bW`17%F0<7XuKfz~&88S+ta{hi zSFNIzJiN;{>2fTvjAd~-a}&y~2YlME#L(z7Bxq*Vj3*Ks9TgQR`n8nu_V-Mvd2AIB zE~Ph2OxNh=OK|M9pRrQwy>$0EK&yL3EY#CrU0UN$Z|xe8%$g^-CH!VF>S)vNhiJ*-maQhqr!?bo_M~QGGw7s8#}Wqo z9cpRYi>i@`mh#SEbOw~+3zP)A`togenciBJSEWB~L<(`;D)d=x8hD;k!)|=Rij$%@c5$6~2aRqJ-vf?XIEKXG8E}zXCL}{$`-^Z@q;7PxKNV zCCh)KzxrD*;cvZ!zx5LSyYv!Re>23#4EQN1WeC#DBL{$jQoK-DqL7e$8PC-}s46UY za(&{WiDPa&L4y=ZgeM_E<3!(A*vS>s=KS>Kqtb9zvDD%7?ex9E0myhw~%w>YNqQvgh6y>LM%J=JFi!jos?CavIwo5gi94zp3JXFBnaMFcsK@ zg{qGuCxBiLt;}p`$nut|_sL$ttXbyB4zVyDd@c=EUwrKYTB@8`IhU`hxtvP2z(H;g z$B(@Q+l#K$j`>8zXeg7mc7U|T5qgsfN|}Kx5dM59oW?}gk70pl(q}Y83PtQo{fh}4 zzz9oi8NV8bJv9w`^)WIghSTU0LByb01VUw)QQi`xQ4Yx# zuH%NE|-}7_=Q_<2#SreT3#R>~v`AEcWMq7+qVu*hvJIAXR$<2IQwuC1| znYdUs5Y<>6Nl9h3Fw{oe6>et0nR^I~BObyGhE>&NO_1XY$6`}3W!`qY98RDt4sxR( z5D~ZQ{{+cLh(LDhPrj^r{p`dhaR&81mxV7!@bzW;;(4aTCmZcfV+Bg8h$bv^xca9n zw%s2hAq74gG9x6<_(TW~Iryh?HPX?4d0P~MqedRf?R#?^W6{Lh3iOE3US&Wz%xL*V z5RC0NqkgRHKhL@2#BA5uK_EhICRK=dHSqBjgsC|gGxmJN zz*)30h#wWlw=U-cx7hVD$^8D;`0$o&GK&>rQ3A^*bvZ$jEF#xjFGVEipfP1C-7C0M zzmvd39f(ToU5eMjeTjTy}!DgYx z53~$^%Ws#YeMH##s$QMM`-2ftRr^%nRS`~7;|LE1 zK6ecA{2xvUJ+XT(`}G)j<%}lVx~IGC#^x=mdCp$}17@Jzoo=~se3Nu{vd#=dT02=! z-;)Jr#@jNH2@N&cleUS;t{uQI?SZ8ZSzM7;lyETx-ud=xUBV;{bV&DGUQ!ql9kzWT z?2zc+DlVBCN}(7Mu0Pi6M|QghdgBOuYcOTg>VJEi;i5ZJ85XPj7BFMx!8mh$nAo7D zEqa!;xPBMj>a~_}Mijv4O!%uR|3lpOKSGl;G5r+iR*Vv`garH%=*AYpgBWl#!dPd# zya#^Uqnw#%Y_)gr<)EfS;&>wKMGtV%c@G4V83*-DSr_Ven(g2=sd2#F@B1Z)xcTGP z&l8oQn5Y^0;nTe2!IbmKxBr^FDF2$6qOQ_eg1u15?VJNu!i-fdyjCNnk9u1kQ3dmctm-1v0i~4_fHvQ*bGEg`)0YdJ}GB!J6Ify*W|+p?8O-TtL$Rp7DG3?ttl*g zT~<31*KvbR=1L6;X1`ye^>B#3q3>&6^OCmct9A~NnA)FMyK)LPa}SR=emeh3k>*#0 z^_w8$f3+IlLY|`(1ZLUYM6YWht7OEC|4{t zP9vsi4cYLckZGh;rm(LE!DyHs8d=X5Ef1n%??_RyBJXN-hGaM!tx6c4dS=XiXJ8Li zZ(~n?%Y?-A)3d$&?;q_&gR#W$XgibN!;BV7$%XF0+a9pJVw_f5b*aI0b`2JSnOrVj zn+z%pGYW{9La*J;;Xb5w=m_LD_Mfhr#5C~lhDz5S8 zO-Ev8&QeL~#HvKG-e&K>excmgl{@SaBIcoaS$N%%yi*pxS1>v+e)etb>42FV;p^Z! z&U37rx9ya-f!>=Y?Qw-EadK!mpL(Qld*%Yai#jP#Z0;y0Y9Hft7enztVA6}toJZc+ ztZ~<&dD!uGzWc;)_|_w9^gJq2=VDURybu;A8bz{_!;r()G*#(TQ*oBxw-WDMh#W6D zE~fuP3hh@1=nD zPA4%g7@8r9*d3;j-lrh zB)cf>Mpo7}1grv+D4H+6aa1#rX72*o0JuG3wMO+GURC4v{)*wr*oQHGEiFtguDY^k zY*E}}4&|g`>kX2;@6XQd@z_wR8gbH{WU3dnl(J%DM;PkpoetB#<)u$CHwJG7ru5LA zz0l^JT~-uo)1SK=4tt+aKCCuqkMjE3V!kPYEqX-jY;wrpb|u4#X#Ys&_-m zZH#m5E#7n69MD1+oA-G;oOIoT_qSXI8n#W6&99y-q?#73T!295(Je4^3b^broBb3u zdZm@Jfn;_N^oi=$1LiFOm%0AEDj6L*lg8AEz?s(waWEoZv-L}>WGSwDmMi)lc?GmT zQFiev4!3xAB;zLsyR9c-78^a|Fe++u>K}y+xX;%OxZh|;yx;e(g|PbyUV(j}-r~F5 z1jUWbTLMlf*@yTnz<6(Xx7}D>XOZ40Afwcv^jre5I?iKJvt|<)%AvLN<4cG@DeU8l z*p49Zm8-b&?PYw`W@FbO4Ad%>tKi$umW8d~v3N3u+<*0;f8Y-N2ch@>Vd*8o|6b{( zAC}(#;}-t=q?cG8uO5dtlM~UF{{%!H>ck|5|(Lk&q9h$@H(Z zmjJ*=QKpB9=)d;|06r>r{Cm3}wgZ?LABL*OufRtZUq<3TC;R`8*|{q+Z6ehd%&W&Y~_Z`}C9&p>DTfZ{xK@w{e-zU{4*M_b zHvNm2zmRTXdtAc(r#t`R(~q8jRHy#%;Kz**KX@d<|8XM#z{dQ~5~}|wPV>)DTm$}h zPXJPr`I%fCBo*_I4WRb&592@c4@7|ZkAp!3r9T(~KN>hq&0ijXS`7=!L!#(m z52yvOusq;a9}G|}W?}iu15hnyVfo7gP%UP8>}nql1JzW}+uNVN0o7C%;KM-ru;)Pw z3;34@4_a7{3xgi^fNCYn<2r{&1EkRSDAV_7fE)$2@IOxQAer?z!anQ))jXC*1mU9r zI_z;+do)0YJr28%21rcn5iIp+fW)*OQ6vw>gP7JM2;tEHdHt9$elQ-CwH}jYj|Rx= z$FcX(02TaWg!s{T2{QgF15mAEd5nHN>;cst7Pi0208~R**#0U55q6OASOz~4|FivO zYL1Ehr;w*6DC*o!42qk9INyX?+W~`bMRHVY4x0%uHuPO5%3jtM>j|>i(O;G(GmO4s z!ierCzYH8*k@0zAU?MR9)kQRQlNV^3U%eqyFbn1Ss6c5IRJy8S zq%n7BO(#0C?HzCx$kuWTiq7OEx?;We?{YX?JLqAze4?h{hq#T>0AM5^$u*Gt8Y#Gg zf^tw$kvDQ=`PtM7lt}!-1ryWhSexEzE^rWsn{(0DD^K#CY6?Thsh&GC?JE-PB{%tZ z!+uJ82VPo)Um7sAfXq9!jWz?!;k6l=$q;p^M%Y8UV~qlseKD@*t)~4aiT~Mt6MfCf z@-vr?N)2x7x7#w{2M?SXrQFLA=nJ?=+}SGJKUn#`1D`Y#bely^Com!OI?T6dq} zk4XB6XB>JG5sKs$Czfr9740`lGm^wed}Ik$8=Fd!EJfDNco_`06W}12RNUAf&mUCJ zIYljM+TyOOBsy>?tr%%6Ftzz4dS1SG%4CDw$bUlo?J-xQU$Fem(|jB;=YBt|`Mvh^ zV4%LfqqkJ|7d3?C_LNIF=e=gna9y)_x?Ml=F=sh4K)*=*l=Bl+T&dC5RnpkO$z@<0 z4h%fHGw3^Nea1C9N)>N(JO$VrL#n^t~UTa|qSXH}|uQ z7lVK}rf@6*WW*u2(_Mk{!jQ*ah}*lJ+z!FRuO`i!kH=f^y-C&*PQ-b}4FHlF2~m*% zM5MBjB0|95B~QkA9z>9>mOE4%?x{cVmFzros%VL%nN)^Tj}_0|FDUcRG%=FN^W3@P zxSPFIo?8))dmqsM^%bWh*4|Srnk)*}v=wpOv?^1-efW$~@o7r;@L~ypP|=x*p@~-V zSv>Q6L6I`TzOqbOpI*1Q5nZ$!Mr$-v=&qd;D=5LV*mbN_vzopO!M@YQBivccTs1-~ zaGj{YFKw9fQnO?h2r+9VB4X5^c|J}D!r0$&=_2YM@e+;XT1sfIemG#;@aymC-|1Nn zUjD-SN;C$q^BCq#vMxQsZ0jJoB*y*x>*lnewp_YXFQ(*+(Hi07gIp7on{wg<^rzCA z*HHM)rGcFrxEFkbO)bi>3@1Hi0SCCvF~G)yvjT_>DGb)#jHXc9_VMirTIHPiJr6Z@ zr3Hq*v1!2R;OX|+{o)t=?u;%zG*aNNXyG5VU4J7#0$}{9v#=NhAbH8cLJX(LTZ6%! z__`nHhqj&Hm5i`sJM5W_R-SkELZ$aha5Sp80K^YbXFe=++##y@$a2|Z@-ww1p#JZO1UY;fA!Y<&_Vu&vwv&i{jG`jKdXty z{_uMD8#NQa$oLcEg(hg>9_@3)c{_M|FTwBD>9*_*&Q14|B$-#I=cTgV!;wioel9ET zQ$s?nQSGEVFR`9hgVPT+-Z>?rM8=phOdu9!+oKlRA{$A=feRa_NFZ`kwQVr7Lx7m> zN_B$l9g_PYF*Ufc%E9Myk(Y9LrTjnMa_4v|#S0I17!A|Ip)d|Aq4>~BB**FO+sXP;1g5380uCgufMw6Vf#xIcbt@ZxKyF(hVY;C(q; zsKCYE#8@1T>iMBwAKo@|G(_&On;Etcd#|LO=*H+^G4aQk0a0QuI*f+E^eDw)%I7VT zF{*z20yFD0Fso-5h6=~K$2ea%L|b;mKffYZNb3{TouX}9W*Hw}@|RC;EiDx8H#p$O zhYPK%iL%eENQJ+^7>Sn-pr^|E0mQgz8@7EI)K_T15 zgGQ^rg&~of;!g@nX%r8w>E2Wb%#)YBvz7 zd5f}^vdXNYZ?;K#%szlcYF(_PG`mu>8oNTH6*7L3!-0Dvm{vI`ma+jJT8lTf+NP;} zb9lKO;P0LrRKT;l}`T)j3EAaLTTFX?GOHAvm;gAl-UcNJ8rF5COTab&p7@ z50Z_s1b`oeu&MENpMt-bxd?p#GiA*ZhLdTI3R_@KOa);u#7O_1~Hd5JwIpEYt%y z1lARs@q$-z!r$%QLXk}>n`-7u&{yJQX=1Q9D7(Z(3$Q1Vq)*&Rq$MmmEdmZ99N6of z<#8#B%kxZ1;%_H5s(A1dNZGRdeIw8_;oZE#e(pJOLD z<}`>0+h$N^o|C96=+j7S-^UE3=G-<}x0F=C`s||D@h9?JHyz#?Up^Uekskfkt^Q`F zjt%hhgjrE69RC$!!xYVhH=?!n;#k14@6CNllq$!l=n);4tcDMYK}bB>7&hIpE~*Ko z;gv-Ccz~Vh-q(BHEV!8S1of5|qM3TjoYI)yiBIVzrmt_f)x4DmvJ?XV6V!6A_nrwu zbUZIINDq||iKJLKaS=+27a>U-djmdG;DzHjjC})HdjiHA@ifO1#*>>h`29+jArN-m z(blo1h?VYpjie@8t3F;V|7prZqioDVWhENw=A8Jngwz;uXE8cywb&{5S}3oKv-e95 zlOjN6v~M;9ngy2@M!{WK(tRthj8ca9-BUWni!fGS%<9(^tCbBb2OoK52KbAmk4=M| z5v!0`X42x18(JN^Q{0lCo!B1AHOL=+xhviuG$g=tmbry?Bq@G&Xl2a~(&aLF9{L_% zZNxt~G7BjHKW-{rKy*zk(_e0`pV>)fTN(&8nP!U7H&K%P#e@6>P_o_vArA4vzM>Z` zZA?%VN$J3%cPqhtC+`yNlKa@~fN$g@|NIJX*OnA75+8>B818xLTk0=5SE_roOJj{-`*T|lkYiP&dd@;9GzesdLmZ^EUJ8+O+P29 zIa;WgpoZDvdvYJ`c8Y$s!R5jw!W1+4COgHD>V4ByicVppp3t-6!TAEj5dyL8MyFQ+ zllJ^}G}_tL3(8A)7cRxnMqE31^YmSJY$f4qvO`!EKy^ybp%Eb+w)zm07D_eI#M{!H zov3=H);R{(_hVW?X7J0F{UxRqBpqa8LQqMy1&SmI`9WM86AZ7MDh<9)sF}c5af|?+ zBa98SlA67Fz5AB%Oz|cfr%9uz(iUQDNO@+(gf4*las)>_J*_5N@95P~ePGv3lX0*! z@PMK7m~^;367DXo8-%&6FB_*`4lS>uzPM&8WV$`uJa)Nrx%0S#Sd`@Z)dF7jhu8Ms znlAu<7H(0JD5WhzO09rr^;*9-=9zJI^*y+iQHTCiTsmG6W7ERVPO3rfgJ#^LVc-{| zqQ^AY{Kgqx$i>L>o*5sFCAX4K3bB&K1e%I-PC;3erl*#QIC^@6ITtoU8)6D6 zq+6f3_c(1#k1nyUT@;8Lsmu*p-dh=cKzLm?kAoUfQbV5}$!AA17g4n!zvc^XGOV{E znHhZ*K5>fwZMY#HN4*!fm{jwJH)%V*_DzF!4b)q5yqDhCGu>LH4h#xJxLP^dzhKSK2 zt74~>6&QE=kd?l!x2(9I3Xn7SZeA8xQD>?SK81&{i;~nM9UiA+`~>;jA-!FaIQ9At z8>wl=T?8PwI0_oqUem2|mywhnh;H<+G2lXW^HwOHY9YbpT7OTTz7aA@R@wSSFi96N zfLo#+?m2UtJ!DPd@$Z8Vg1aPZ=bw8SJ2PUtRj3Q_ zD-b9&VqSVV$kULPGI_KZ=i-^KdVZ0EdO5eLzF3bM-7xeb`1<{40Vb6R4IB@tnvQTm zu8Tsi5KbAY8%5Q^Hp=)!tuOS?{9^>$SDtsoSEY&edkTE0;oOENQkhlm@|U!gQ<{ZT z_YhhXdvOuPhC-Gq!~|{9dzED*+Z8L!Z();x@h#u$Dyo@ zCt|$uji>V{4Y?6-&*c#8<=PZXSUQ@6QZPSC(SXuS{V+JbnO!91{;DPWb8j7MJWVZT zv5I934usnQ98qt{ph|& zD!oU!v2#Qm-&E9-^$jwXFU2LQqY`g|JfOXC7OxKwC>)q@ncL%U;d7;}zZWSgFZGd? zrl)7=E}0hD)dEzkw-pfBk!+Q8UQHBT;TotOr{xdHW~IgU-Q;O;T}vb3;`vpjc=8W` zH{qNh(D>}-DguJg66HQijW*L-Znp33H*C}!!cqI>jIsz)eH}}2o8RM;+9l{RccFF* zF!a!QooRuD)kJrLyVCrAEdJ{21=becw(hTn-rqzN02qJjXB@%-NDuKjwXQk}I;r?;L|v13zCC8^-YFEo(L^ zxZMa(BxZkfl${7uq*z^F;teY}`~s@nGl*tidE%syP8>+_gD<{4-U|(fdf?O&g93!a zsqL)N;{J)AcSzZg)F+*)Xx$6?vHZsk-_S+)1@qVngNS#%*me;2ZWUW04PF)5;9>+B zZ4=w*BvoZ#LSl-I0&9F`xex6zMMF8B1Spm{?Y~p-4V!EE&>s29X37LjWFNs?+T;EpJ2h?Xq<1VQ8OyBC;;R~KBZPeWxL z$V_G(vYU~pmo+!fc?DbP$9Lrkbs2+7v>PFnpG8nnwpCcogcI8yU~Vp(!y8fq3Mrb` zK2sLQd}g>IT?%8zv5_v=t~_X2|mZR5 zWgoeZky%xBCVQmQ+}4xDBL4NGe~W`29KzH3qKxYL75n(lg-&Ue6D0=;Wpz2yo4CdB zx%FOT&#sX3B-5Y?CZ&o7#uQx&zT|p7J#i{T z7kLh|zp^w{_W^dtW8g>9CeT#`pz0 zX3@G3BCuM9sXjlSHM^9<_|(S~_!`EsU|3aZZ!bsllcrKIv$$Dq$KYj!&w)Yrk=r_P z>AnQnSlJmI#Tool}r5!i!44aups)yUel)3#~EqBk1-9IyqK%Ei=<;o1Oc31Tr6My+FQ*HX20d6uW-M@RDKV zv!u@xs={w86LpsC<^n7UTUSq&3+2tOP)VGF%9`n?azC42LnZslW~&G)(k^KwOY7p- zSvmv@<&_QP^+Q^Ia43iha@2XpT4aTcx|S~2I4nMU4OzKIX8M+1CAvsdcVR_%=5>`9 zM=SDYOU114OTrqNchz6E$8~hBur4+YNztDbgY~wu7@fMCEpQTvYAcDIDp162a%J>U ze8p_{<<2YT_KlV(kke0o-W=)?H57+<1(pjV++x0fD)|CRvx7KBcPZWy6-dC;>obhX zqlu-9rq$8TVYM(TZZxAZaOH#Pp>nA~C!n!jZaI|+|6S#S*qs6nxT(;I45Po8&7w^2 zQPyh6oePi)#}Oe)OqNYOPWn@zLm(^AS3hoJPTBgkxruw}9w82*UAhZ9ww^iGQYm>; zbcl0=x#^UYk+b|s_jgB@%Vhly0-h)7o13@u=y$EWQ%7)onf*&D!R~o0 zMda^?PixzQ^KZFyUR{yte!sj9hol(S|Kf1Z6Olh-a&HGFPNDAPL^8yvUbJ46>8g@) z?%}l{SXS%NvI>yH>;{h}pVrxh7B8%HCpm#dL1jnuqz994X_$ICu?V#tZU3!13dcNF zh2Yc4ZWEr-v3RRwkYP}rZdg*&q%GaI(j)|YagE~I)?j>fUh8h7M2 zsyit>7#yFDNXWxSI-9?#Ih-x&>kym|T%>4|I9>E4Yhx$+a}%Z9fw)=0v?rPZk>_sj z=zYuEncex*3<6JCp7>l6QjZSh)9D5`_E^DgMybRj6D0)ug!7EXjuT3RTmww(o5ux7 zGZx#f2JW<%HsJ{?q^Rz^-kxoeS@hEjwybIJgK=-Ste&^C|WwAvpdrj?xf3S`t}f?*Rmtmc9w;c^qaKY0>bTS$Nhz| z`RVm3+x5F6%3t+9znP|F`w0_k7z#jYAx4BaZy+V2f)8jv%7Aysyw@%%W^_2YG6rlRATStc7c)JOn3aun6va$6&BrK1qAlPQ^V&rxh%A2wsa!~4v^+%p$Sr40|*u|UaH zuM97A!1Z;8Qv?{qX^o;hD>Hyc#>9SI1{rwz&5H9rLSC9<4Vp9;clH;B!10>_NA{nm z)uH8ZEsTheZcz5t zIiV6S7`Eg`N1|qy-Ap0HTx{H{pD9mZ*Q@9uuVCgM*9V2LE~wZroI41e0ggA8nL0_L z9wz`)Swd_nIF)v(t=hv)U}iCNx`m2Z?yGDZvqDGG{L(`dR;W-qOIWT(qw7H_mdlC9 z5cSM?lIwVJC32yHU}LkDYlT<;yoTZ0b5Gwr^!ymgj=>=QS7q{>AtL6V1-mVxxGW)G z!$N-NfWpFVCt7rw{FHieS5&n+uZoA zo4Wt9BxejeS24O(6in(VU0Y-_VAXY|buyx{qZTGvg!dRh|J>4%|zo*4t4QP^VGrReQupT@M7D z?+#Ai-LarMWa?JLJY!dvzR@z!*x&E`&hfo_T3jTqy8fP)Z{L%U4|ccfR|?*b;M1S` zDZmeNG!_s{=^uzrQ1A4s2l$&WvP^70E#}dT>a%Pk27&qAJ7{BsAsyE~BlyKe3w_Ie zHZcG*&FC0q8p^18aY#cfolDPe%;H3-QTRTh3JA7UkfGoU=Bi)SKMrHw0wV#J`*y1!8E7puToJHy2?Me{q z6EZ=s&UD$!$+~k#q0Az4WwXjJeuhp_122yo+5MP0gcn7maE+&4oO~dNwC;pF`mTyx zd8K_op={rHWx}(pNa4k-ln%8#0RZSn$vpFTL6%U)^o@5ngRHN=pj)+>54P2CBRcQ0 zTC9W9NfQ9jruf_{Ge`XsKqIi4*)*2b2@o$S4@Iz1g zKLI~yWc?9-4uW9;SpUE%|33H}gjsvUp8Y2H90VO^1|^BuL9t>GF!{j(f%rh193KvZL(oB8AO z$L;^OeFyau|18k^0RsvusmIR;U@U;~0T~Nmd_ehvqIHj-4{&7wXnDZH=L0qs!1#ch z1~3YOKL0%o>EGM`C>v1t@INUf0Pq3g3-~wKZvY4o3fc}rg8t{F3}F51SpfczLBRih zg8zBB|Ei1tFNJ;$pMFHlK45Jh+8fIwyz>tWgz9|+$o*k~aKUVUL3AJ5A}XV5QXfNzCbH29X&5j z=fXy^zby!;WSSf#yhy@9MFMGMHZ8rxj@Macql)$CLvNEdlUrV9W`|>!C3IK36by?` z;<&(7f{}Q?OfN{To`h3#zNn{ItacRQx@1qE*|*4e@S@pg_+X&_y~s?+k;>+-PnxAP$^?qBPPShiCn(->ZT+w7#$^aQa) zyM*-{yMFK(c_t?=mi2F^Z!8=?1Oon}GGJl*=~Y=+ULx9n1a{sHo?Zuv?=rQ3lG5n- z>TV8BR{Ky6nItAw2nCr6nbL$5xdObE2p8k!1x|CVF?(l-@5PenypmuyOFnq+Y!g0147xyj5cj{vY_6u-$zibMS6N!B z$0i=VNjg6-P4AK6Jv8$^lqK(9Duf}h!R2fAiRJX{@+|OK0)H=<{H8OPe5yL<2Nf~H=i5faX0*Ym+x!Lc&l%-?v(OBvYznk%^h8BG z8Q89C>W8?KzrpMd5A(eg@)Ib&0hmTLf0c-x;>&~{ao|au1|BkEd7+(m`vsM~P#MZm z`(j%DX}P3!9H8*sG@yccAJ-lSK>>+Mr^C<*s-9sw^L{#s;6N7gZP~dyZcO^JnLuq^ zaMRSskL89V0Q=BSSg4#W9yw+RvZ@A3Tu zG|hrPA-!eLtWK0MhAQK5C=MUAy!a7xqbb4PaS*$YSOfVl2pW2M=cKqHQt60~9-exH-1TIfe93EQD zrGuNX2AQpsICxxC=(IJ9;h%8d6&fPu%G$T1O(H;-9T^Ri(!vw} z-NjI_#xoY#$l7g$hdujvtftZzkQ{5R9CqeOYHpfoSKWP2KW1*~BI>{nRQgrX|87w7r;$)|@G)Qt z+2W>EPK4};XEJslmZvAF#5VU;#rwN3D#HV>i*!gR84SsnRZJTtLxL(rQdscsPHzpb~xMXPD zHbYc2p*JmGAoVGAufD`p%wDytUWIeWL0qzx{T*?)7uHERt*nA)!d?VcCI% zv1=dZr*;kb#k0~|%+C%u^HsS%tI}4Iws2ylTC%qoE`QL741!9`Rf8!hVo#FBWh8H8 zm~sZ@?4;1bmu$`hjW@~{r|j=tX^P@JJ0>+aqKoT_MbxWoF0uf_z)n)c?z$ENsD5E9 zn0Kr`JFE1n&w?d+4PP$PB)}d@7q2!vCBA59*%QEBvh^9H92jK=7av+4f->;XK!bE9 z42SSS$^4YksK-I*gpS6(DjS``jdvFJeFv5(qQRR+Nz);sB6k_xEtNT?q?c!~=q5Dl zG@2vgv?;skEBHkyp_IN^Wyi=grrl+i-uz*JW*QNFvV>`QUNMu&I1aQZhe>~|g?SV` zvvr@cA>qI?m@)~oVN351cX(@5o`wI5v$ue&@>}+YrMtURl#WezcQ?}A-6`EjN`rJa zNP~1pNh2v;($Wa;27jKT=Xmem_v%MCvtssQo>|XYGi&C%Zn6yr+3dqO^=;;*>R@}t zBHU+@-xB#jZgPuW$~S1tl*?-4c(U%mYiaVP%L-Y|F6W@P7{Ayo+<8t@nC(Xp6t3w+ z;jRh_n!9QhvcNIBye?en24~|U_5heHF`oO7O21&rT_3bql;qCAx8bv*naV+{&R@K{EK?CJY|hC0&Ox{ z#z$)i@RULMcyRQuA|R9k@l)OZa8ASmbgTT;LcqxJ`|Bu1>Jfhlm^zt5#}Ahpy~>Ry zQo943ST#!-;u_aD3g|)e;?Q;AWy_!}*3j(<(hy%w*J>HZ`b4%6M^VH~OuGBnKMvz_ z%W@14qgQxUKT0k84-WpEoti>+k)F4XX{H13}S{+DJ7>u;+ffSLKd{O`)Z000(!=Fa-m&O7M^KVgXz@1?$fdCjolP`F3eaZLSN1w-XFXrD! zjFb)AykqQxwwTG#`f4~8d2P7CIWf-2C#oC0K%>SyChApXhpM9n?;vI}@I@Nwx-rx@ z)yYd(IKkhx>9B3|E$PB;iOTb4HM$~aLKQ>#0R#hwB?d|-#Q-<|xy0);@NWf(e8t+f z8al>7f})9=DyrMGT;CJkCy_f~GGYnTLYyWU7~P^IWx_%a1GbZz^t2Fh1-{5I=kFA< ztJgE@B9X62s;=E{CuGxAjxQe1zgd#J5fLha==-3Mi^*D(XhRkMDsFD6=tU`HB1Am= zXIKt;tpn&!#AInO)K-z!50m|=8GHL{c+&!y0;d*V-AHnT-aXq@-K>lgq(!KWW-u+8h9;-?B1PfLp;{pv~b8tKH#e_WkQwYtBy0 z@@v`+Ie(KJqY2F74&_jojAB73w4U0Npg5j_mD9{65e*`ENF|oAurwu>Iw@graMd)1 zB8%;zGqNhzl9DK12yRu)BB~*BYLF_pQfk&Wh~Yy;urZQuTHZ@btvnw|w%dW{oWTMZ zCQ5AcU9KR_FOF1Pxh+JHX5Q+`A;&N?z;D+n#-p!iG%0qg z@tJ`=M~eA`_@avrhD;QA22~!y4LalJD>{Sw)8UtF?iNlf_F>zcpO`4^ms&aziUgVGxzJj)OSOxc92Yt5@svfl zxAbUzhl@)N4w?r)&*2*pwe0QbZdyri6Q@S1(|K~}rA_-GxkMjiv^SM;XV5+EV>E2n0vWnEu2hQzcXKCX@N{+DE07P->5n>-G)_WaKuO zJ@lE0D-)CsxEVdEI@&Ykh>>zCS(pzcdM$e!l||h+pty5e6nk*+nq1zB_Y5Hy#Hr z!d>rD6jZ-U3*lh#&xOGN!)^j#LgBr#jUsm&S|4~s)<;I0Ik0ENRX=D6M|L@hyz)5$ zC8QQ<)s`w#y&b_vyo{*57-9sP#t3M7FHBrZkDY@oO51Ck+6Y?DH{;t<{L`H{>aw?0Z*h57P?ZC2S)hjp*Ef5)iE=MG-$W5@@^jUv zn;X>IB}G$wvMY;{QSV+jbJ7g3&75(MPinXOs%hQBh&~bMWTQ2q-Gj&%?|3$2!n;}M zmBhyz6kPBpQU9fR17P@VzoP=Y4-|p~egSCSJVQqt*ygS*X--~#t%<^aLgyO)PHkZYn`=ZjkA3PS!YGpls8&r_qW`NbY;xk>)AYs$Q=J>TQ zbh4Z?nw4@ZYtO+HTB*dQdaxi#DZ!=uF3iM7(J2(HN33`UL?)gw!(_Q!c|%O9)mHrs z&#eP2J_Zytwwp9Jk;;$Y{?j@p?f1*%nf|4=S1M=G0&hBV`AK;pBM91&)at)Bu2586 zg@Qy>@lMr%Vsz(ZMR#73L`8=}zo5aq&I^5s44~;eIKX>{-gSwRLwnCH$XfwhN<`|S zGRp4P!&Pyh6%K_%L$P4T{}zwg_zelaR39?CYyoG=fOF0b{>Px+}n*1uxRJ0-C z#lt47`K;j_=*#YOQrreN(iLYE>m&QhVv$+1FMXmCsuqhD$YH2sR=3CNgV~`!#-g+DieRWnyW6RnX zwcaL56re*?{{6jgQ0DY;2buRfvsY2+7c*B$YJ;{~f_1t!t;I0jj^vQJNH4%c?Huzz z^T16EFC1Z3U!Uxs)h$fK0&CdOl^2*%*tMEF~6gkqG9%2#lnLT>@pjCSOrvvZn{>t;Laq1#&6%i(~^ zT$NItFZfjx9>!$&s)}7>@!rd*wrP_mgrP+XoAY&{$(@9_$YoVhbb<-XEqww-AVb@j z%wSv}JjICD8l4;};zI{6+y@-rQf|ggZj9RbAWE$-f6mQ~78`P1zcuR5-&01XOvW<+rX#H6NT4p_XrjwyJ7?u{>7TXx2F z`Su{ss4KA({xqClOw0dmtHH$j8w!TDVv9X+*SF6CffW<|MJ=_zNh{pwfmKZ6DBj7} z+Migj5t~t;!FkTeKQ$KHJImNC`yJ+%ns5)zUI7*+NXqTz)X1(4t~-JX#5s&2od6pu z)?SXND;nz_?7~8%H`sPwOB=oy+sNxV5yDUDNlC;6?U;!>1DlisF`MGRtW2h~ZIL7| zFPllarGOm4LrLxAT^o>eAua>?NG#{mQXW8RjZ<4y3f`zC37xAzI4;7YfW|-j ze2VXkYX;8?5;}gZaCkAzyFhOOVfP2OJqs`}=I@N?--Rh7FM$e7Y;FPW+d2p_16Fx< zojk-JULUZ_Ok^Sp(g+4)V^^3lg_B@{_6faA?sS{fo|ky2>KBH412H+i*p`+8<8SI( z7h5YPjNa8JP^F&>tq~@nbIQd0)~`57wUs#^YTn$UVvV~FY;ymrMZr7)z!2f$aPFnZ zSd_Jqi`aZ)=!$!jbXhkW>Pa&K!DuCUe%0C~3|HHZ1QEdm`|_W(<}dAI!0!>Z)^Rd6 zK%k|dN1!G0(=&SBF=Z93$y-}$apK6SvPiHopLZjHs>QgoV5!Qnhi~_=!e2d{XwFo+ z>Yrm+u6wAvAt}in>GDLbqoWA0oTf~L)`o?u3YCU9q^s)ovLCgC2&ZEw$(TR?Y&s#2 zgxHqJ5o|XTkP=d*9Pu`A8#?!u5RdQ4z&u8Kg!^qHx;5tF#w!~LK;gw?+ZxT+%1&~4(ac*Y+3SJkEbxT0_8-~<(AJ#YNtqIivMal$PHYi|7= zJj;ZPRlIljqg(<%*=&I#U}WTFm%O`_eo%5;pbq{%s}eD`3}Aab6HhkrJB!H(jB4)kv?hji@vR<3^kuxd|U*Vc1zuIS9NUh z`8HebK#+`wI{)+p|I)9(^dEi&1uh%@$Ndki?la-`n6uWBJ^rH)s)2>783s^>23<9n zkm}%3v{1=p49A^4oD9d>@2hcHN8p)F?5$oYve$?Szf7cO#;iY7cmLW`%SHH6agY54 z&MZx=IaK}{3E|g}mxfBsiN=|4hG(VoBadiujJXXl;t!L_n)mFB5WDU~kd~aFY;UBR z!^1#y-2)s!27 zW4VdNW?#3TtK3cp3Qk5-_ET=zODH>RyYEu+&K`yI3eGit$$n+BDsyCT*)l7m`%Qu` zy+ZHwPtyBKTbYgZx3{>6iUcYd2lQiFzc2pRAx~~b#*o7Y-530d*G4g)C2B(9L9&rC zV;PhgtGfBVnaNANCK9;|4UME)BXV$sT9bS5K)2iI*Ng4C)bEq4=b-7ej^)>{%Be5m zm#h+pZb#DZ$k`aoQi3YA=^hV6Z66aK;*ubfG0a&-2ya#f(V9pu3nUb$8(r6Xd@0eqTP zmxh53t!jHCxVu$MMxq!#{nfAsMhKgi3dgFUFr{^BTPMM^4GVUz8rgcWnpeDiH;}Lp zQS*eiGI-Q1v@a#Mo7*Ihwe7}f1R@9~JzgPhF@=-5oxW9}E)we(& z(m*D#q;Q&VrNBvbk#1!8PtqGfdl$mRfI%J18pM>e(|s*2>fIM8({sXGx-^X{jBSse z44U?_UvIG|eG@G}Ji3ZvEgiDV$)(%PBe{ab9f~gg87g8Km>=Kxl7j;*d`qk3^iIRG zHNWLDJlXsMOe&{pO=hYXg1J>gC>XcrYb>0GIj$vxsY-2^(Dv367{W!n0F1hYJdTGE z06d|+=>Ywv+fjL;S;`BV>mhZDoAtVGr2VBUP}NZlN6PJW$AV)1Iv z0~u*BIft=UtFG|n)~b>T%0^GZv`cVQ6pn&Yr=>S}U~0ME4m1!e9WJrLrOsuBO=V=- z(^KsjBd;gf88{N3ztUPiTnd#HkUeQ$HI^Ux{C?GD@T>DwiKEenSh{jw+3LD^Eg`xs zmNBts${RYBCb{Y*cp7`vm6sbkGHDkNcRFum$Na5j-RMqy1QR!^yelQX*1uONleufl z@XSpwm-N?z>k%SoTmP1w;Q8_J@|Kh%>+NBb&n1oXb#CQdb67`2N$}ihq#Md^e`C?>XS& z-RExwPKUegbL}7&&XL5Qlauze+O*fSq6#lvvlPQrCNX(doCZ5APnnV&3oY2N-(*l! zoE-58=^cg$HB|KohR z9pObniToSafR{@_>uq4w9}U(D55pTlaBf)AOam;+UhRKPP_E22IwbL=B#1-AFc6<{ zw&&%cuOBGqvxH+m_q8na>U$&@b@a36o{J_AKN~8r}G0`FjJ(++m>+t5N}okP40j1ZEbbbb^*|5uErJ zEJR28Z#-6?yN4s4l?NU9y>eoF=>o#Oz4Qvk=27KKw&LpKH^YLFju#UsA$||Xz6?t4 zi9WZ1@Y0z8q6$^osREYwxOCOOQUPx9p-tTT7U_j)r-jp(F_~f*mcbMzAwuR_a1B^A ztdGlY?lP>yzWE>;>|?GufNE>KMBo(?X(81oodDJJx=IU`*0X`~4%WOsqeXw$OrYk3 z6imK1Q1fwY!&|T|m1dAIUB5thOl^EX5`F=fL@{%`uq8uA^TwPGs`%A5Cgz2jvkpVb zrWG*LQ97<@QKiYuO=O5>-b4~=j=1;*X2=+Hx%mZF)U(TT!&<}ku`57XT21$*9p@(= z569`{08sxrGMPcsKsJS*xdo1m)9${!xls&p8-I;@45f2BMq_J2gbDnDo_YTFnAT=q z8o+Gpw8{n2p?sTmE+Pmt6Z}JzuC&PGQjfX^Qv;Nv<<$I%Vy9OPVw{4LieCWC$IH4P z&wbF&1??+GH7K@bD^MJ$IL>Lf11g`-r4d~o_+aw&$cS-jCX@lK?wS4(MWK@+1S#~& z%cyFl>mtZC=Hv~J%tR}d(644M#16E0f(eUNDz0$9@iMu%5hz_;^W1|vPaXZ?u0|GM z+Q45KWGsN+y?hB0k8xCw*O1W@2LQq8?xAbM4?iFjbsl^RkBgWhQ?bb5=O!kN_1wd81fnWRg9tYaeFDHqk{k?fIm%Qm|k_|7z!WNmh2DIKEnqL-e5I zz|FXF>%??@jZO}(~IgaeVHr_zXfxu01afYr+g-(7YEJ_CZWe91+}?F^7VywT8Zi#h!KdGjet#B zhNW`*nRp`LGa;hImEs*IHCqnnBkNcqU>Z#uB1v>>cCz6_5#>q^Sx=YjtX ze$u(<2u=57UkXkOPDSqB>R{!OgFi9#XrocQGxVUh|AcX%8V5i~HYFC$#6pnHKPCM* zQh4Fmvzu`JawqQr2O@6gyQ~vkqt4t|?gWAIW`B3%V6ZUSgiQ2C9WZN_r`qQ8O#*^f z%Q|6rC9Ke511QA_btzfB=^eq0gMP?6eOWxt%>}h34a$x-$zkWYPuBF~GeJUT9ptls zD`=`F=Y_=1I}AsIgutV`1?8wiTV-$8(WZ*605 z-8e+7#mC+^l5qez-4UMgcST+pRZb?Y?=P7nBNgOg?jE(;sgN_pLbja>T6K~0G)iTL zikueKPh8vWw~2u5B=6x?$(f3TE+3@s%~AG#m?ZD88#~SoH^l#j=*su~QliSI0Qqc> z0(sC9R{!-%Z1_8liZ~YY4MjNQf178?~ZN0y{~aqg7bO(mY#|p7>t-ZiqY; z+uL<*xnvr5H)9uU=pc9{hNLu)_^;N9J{qOv9Y#|wRvE4=gWqJ!Y=ovtY0g_DE2UU1 zo5b)HonXd`QQBw?pj-K%RM|h2xZV-G?xU|R-0%LAF8!@Dm-)B26`9zd_~%_%&^6lk z9qtpjBc$FB2hbsh!{K60Rni>Z$ni`BYn=(WJ>TLmId+g^1&-28v9+ynh)QnG$2{M! z6!i6ct2jfB(%LfM_YejbUuqE+rgOd$BUsKrWXy144ZQ^ENQ|2YA%-~=k#crnqMOL8 zO|f(i&z~dzVA;9B%bG!(JjBv~`tpOAYk1YI_2p*zE4Bk!%9~a}W%-B_LpssEkECn+ zLZdv+jniWc{C-XDBlykKN-yU=(mO-BkII-j_D;I`TYX6bb5K^4P<;q=9IO6OqoQ2f)6+7V?*OT$(`4;W;`>YYEi1==OvN8j*N>PbV89zQQ*xee%oMyg z`lM16DV9wc-m~S)U&Ig==vRfRjN>zImjm&DxDJe%aVg)D3lH^&<$+YZ$9}nLc#K1O zAJf7mK4aLiODr2*=~{-^1@f+Qr=z#D5;Ta8yrW>>>KP75{KaQjV$mxcLD0OqQ3ro$ zBB~8Y1DU|^RMEBUPV}svhPYQR`J>V@dvnU2x$Nfz3hIl{?QrYxzu!gjb2~T@knD4V zw4_^Zp$0dl7#-4M%5O9oDS)CJn0A^nCr3i^<;Ktrw>Ha3a?}{reTt{4ge|UKwsV!7 zp(|m<2rAlQLXxtF9`Vut_H{^ItyQ8q!17|dqigmI!2Er&)KY{`C{0XC4Vf{yiOa`0 zx#vg?XZ=2EViaUg=<5NLL0e>@nT~E9KxKWPO7iTY$Dh#owSJq!a44$|mqEe)R-ns9 zTK-U?tf@tO%vUFr*nD!%%eL{+4GNSk3*s!CBY6*Fnv<+CyY&DtOJ~w$Ui8q-28qU* zO+b#-Y;^`!OnSd<{IQ!Hv6@`oyA#JidBIQlyf^9;MnBL(m zf2BmdM?_j;2-N8AlA9+wCH{KF6JG$* z?U>M@QLcDHR~R1WE4=Zot6XP+27Ws-yPq|jw+C-|>zLT0#Q{5MuHz-gcoFvJujKa; z!%Ow3R)}L<-d*M7j!!m~J-@CoJknF@%si0Tyb2b5KS$9|SSdHp{Gp$(XH5DJcge9Z z{iRo*iRJg*vZ9p3^CzFM_Op*R4`Y+X#Tu=PuhZ5hwFhA})CIAx3?Thz$2B54j6l1v z*kXk*iM{B>uj)Qul(l@XUGQ0-N{(3z`nY4vEG#{!?R8@GC>Bj3Wh?$?5|P?Fq0 zs;42gkh19?Lg>`+>4WEWi8nUW8%Nm-8|RE#nUHKjQ9@b;{9)mt94E_Ua>$mJEYpwv z@3*Jozb)#|cGjU=2ER+RZ?n9tff8j>R7;rRzAl_4w?HH*%YsQmuS z=Dl6rpWY;Y>0Jk28TH$uE-!%EL;QFU#49hx|Eax@i;Ji3;lm+uee;X>*qE3aJQH%d z#@LT<6fpok(BgO|t+y>G3f*wR_x633!`gPBNd#gj_Wd|o$`&>MUEB^HlYlD@2{e(_MUK!kvU*Gze>uB- zNl%unvlE+zSt3juyzn!(Ky^`Kkv^1kxuZe#;LyWT%fj6rcD4RhUT56ibd@ zgT*Fv#sPcV=S{yWq%y$1tCpU3GsaS>g#+-yDF7R>CO{I4&@X-6mf>0!$mR{gl1-)k zr}6*d<@rNgGxJkA=HqQ}|HL&v-Q4pS*Zi-d#|Y>DHLe-(mmUD%`TB1nQW}aSAc1d1 z3qnn%{LXhWoH!KXe6NNDx^<9g76`tiD5L-jZ3KfAOCA#e)`b;?BXq@ff%Du83FX=k zqvBg|Bt3eI$W0l$t?MOdbu&Umc&m~ybeC1(A&E<_l(7pKqQ)V>yS^zX! zrheaTK}0B8nZ=oFR8%HP`bdxqxy91wCi0k)eHAP>(ZqIFQW*69Vmh8GAk0XJDf*`W zN^an?vdPO@+PjhtC5?Rpe^cZdSN2x`=lW;avx$5naL5YQ)3s8SZ5=7~UV*FoO{FQz@EGM0DQ5DU-1CN5h2$GY=d_x<1rUykwD#6VR46ZctKTvl zguBdL62B+<0$YytVzyX0wwvlK(vRHnyxI6vL1nA(4V>vMMyPS_=T2^gI5n-NMM&Y$ za;YXBiAGxXBjZ$@mp-H#UOIxO8c8!1FZt*sO8~dYk}3E$f&eP>tfluym0JBX-kroFEDV3dxePIJ2=eto^9 z0g76S#`-#XCv^^=5GHhEiX?4pel3qlA8Bdk#`O;80c5Rzsr*lh_m@^X6YFoNJ1UAz z_9BeX!zvI6Ss?baXWWEPE8hzVwO3s7AgYJ_djepf=TKubAQ?VC^GC8Fh1n4}ZX@n2 z9jWmo1-xiYg?{J+V_>1ka}zS|VA>CIL{Yr8ho>63RhSIq?%c+wH#iWfqqX!}6<9c_7D#aEp(OTOAr&mCu?x~ra zC+67SS%+;IU&)HFh}QPCOFVe$edH8(g=51=YAJN-zW%=Fb3F(@r1>xATRtyRVb(8w zjn!1TL8P{bscPb2)rSj}OE4WeA{z&jMTNhZJLt$2?o&7OiidXH7IGhyde;+OO4|Pc z=9~q1dDdU~*_eO70|NM}ub2a7NyxLMD}M4ljs3eKD1W!Cp{FV3P?NWBI1L%??R-xzYF z$SDcoL%#dM+?z45(~iC!W<9W)@)F?1byyr?KHBXUUDW*&R<|oO0JNi$P*+$5|C*6( zZB0o)4dC5X-7-uMN6CCC2~s^QH~$Pv8gv`?aR2D7OI6p=`{CvKvMk5eU9B?aG#+$ZsaLhv2b4RbRwQOQE~@C}H>j&Q5D>NXJvNLjdv!anOmGzz z`+~bh6KQDbKS13ehF$_bSz^j-%FM#T0+Y$h6AqLV)LN3l->zh!3eT8H* z4;Tx|yZvTzc;ZHZxQe2dTugQCiR9Vvy(%GkoN#2hU|j*qu}>~mEIX?^xGvUkA92gB z86~Zg#EXo{k2-dI8@GtMo&wHPHDz_deotN8k&tyU4>QN@3RKhz9pdiPo{VaJAPE}< zD?`#5WAX(})6kuPxF3fnDl`D;J)~?h_zbI8#cQ>XonY;1Y@Q3JzS##d?~f=Ao8c$j zQ(M8p+}(}(j9p{F5k%~x=uwf7d3Hl%o)1G{Bqw3x z?)t7-J}&Bu=A<%dSFS>_EJE&?YU8l%cd*%$7Yv23JM+{vLz^FtOs-Os=_wtAu5=97 zfJs<=^PL0s^hYsU9G6$4H@6Vgqi#HU%nvtneR6agT3$?xf3 z3hcfP9_+{+Gxlii)qeS&+7vIPe7W8CW;CjeW4AIA;&77pWiPdNjbiAa z-`UvDHZ>B@yw>`}8UZJH6=1dL$GP5Zrbam0;<{I}O*l=(G<&ggNO#wE5B569+~iN1 z`j^)Ge>u{m;-3FVtN#Lb-R*8+kb_lu^daNf`MHxd6`TMX6D>K0x-TvRO3E_@ENIBP zPK9y*mGv^i4o`+j+w^pZbEwqTGQ#9y82oPrCYZ@Mr-A^fn0yBN>{j$ll8pw?qyg&W z&jMCUf?Bd!5pemP0OdOBn#NC{nu|?tHw+B{nX8E(W&}@E3fIGz14zO+YsyXm?ys{m zIknnt?Y~IzqxEd$wij5BcO!U1yIYRQXomezB2`tl)k; z;(A%hsp@3(epy>SPM2p;2lhb&^sNoi0S@qd>kYyRLjHj>!WE%zw+H0cW1e(Gr)W&c z_Yw;HF)n!+UZQUMl99B*LUepB}R*fV#7)P<_O^jf?$Ha-C~?ur*iIP@?#E#5fF6=z>%AV^JV z9nt$`e7q0|oz#olXAJ+>v5|~W^c0nv7sAaQ+T7}TvZ+_phjk*7>f^3I>C)d?!py%# zC~L<`JO<*6Jl;@Z2eSuAK2xUtnB(|h4ZbPMd9ugoMIi>w7)F~)Djz->x=WI)C9P{1 zVl?jfY+G0MTyUDmiKmrNMxQq=K4G)!bceHNNx;IxbH*K8yPJI;^TZGYnkgFWnGw>~ zCz)Bh?^upbOICPG7#sVCRQ%>lEvMxinndV1wr`E7_o1yPSyCsHGs(y=1pzYkbaT2G z6IJ7C5v@0zJ|dR6mib)qQj2y7o>EQ}Xr3c!&8!w#svjqBEns)sGE8a?(TK4|ro*7~ zo3b+C4O3%PeP~kkTW^7QoybA&_rBkbopA8>u_YCn#r#Qhe`)%%{JymkQRb)tCaetu z7YzQ&xui4hq@m8s?@CzWxTa7!5A}jq^@eXp3K?$iLTzSCKA)5T8A5nTfT{l&+g&`ev;rRLN^h?oS?y>43B7`D z@c7IQhlVvh6|u{OfmW0&st0c@2l|RvlK$mHE5YVeM| z@~{%ut&N+kwSRA2p+e}IC^i>zLOXl*gaARTwy;inml>-C8ctc;lqsE$oyHAqXw{!scDzck`dSRqc+%4#ClJHH}o$bNIKAz`8=PIz#KK$WjV zU{oP0`U{X<riCu*+k;J#YNA(5 zM@8@4A2`cpzwG;YFCKlme;o%z*x-GgxiZGLB@Fea{F$fAT>ruzW&-@St(Q^Yhyy2q zA94@keHJ7)?CD`?8IbuByJnOcufPjtGr(md z`$ekC>3}ltyI9>b&3ljo4V{)h%+{wHZ~sPOzh}B?$8p&l01wDL%l+|Uh#jsbJ@C0( z*GwL)`88N$8c$;Cpd5v(879f=^G1gyxDk3Jbr<0k_F9V1jy+0xYV@bvu|YIYnIbDF zG};caMg6hA9x7BgKJz6XY<-RJX_}p(2676b{`>kU$c*OB@Xhhag?R^2xxW~wz_ELr z%ZYQ|C{@s|g+*((S$+(yKws8qs!@ckJ&W4X>s?x->DPBP8h9->OWtEV7L$)u0I zt&Q0@*Q0eWwz3^GA?RL%qOu{^chGT089i^D|Ka=FwPpO1NPlr^{BIHUKxC|6Jr3GR z0yUdJx7Q=Qk0d|xSiG)Mt=q%>0wur9vQfOK;ldI!xv-h9fxN=pvor?15F(nc?s41Q z@T8md=WGLm}UF-4Px3;4vZTSxcEe&w#twdQP&K4;P$#NcEC9fLN&4h8PWPQN%NP z>3vpw*Vwm&I9Fu&!`1%9F>G8PWGWWzsrunt1KT9uYX0Z(;=`EJPAAn|&{UebUAbSg zUwmOAq`jfS^$L%2Uw#YORXE&-mpXrv+l*(x-cT;l|5i9D&mA7Ep*S`XTEPB>xa_2H zXvLsNJ{GUb7N>8ULf5`o$#A)gVeUIa>5EybeqS0uJ7LyjNQkx9bcUj;9)}fuuuZ1X zsnk03O}T)$_e1_fKQ94$bHsTF?M1L?+F9O6%Jf>Mu)=m5Ky+WBeosE*%DzsHHfK@+9QUS^-`mlwTUf`}d)@t^+pIO!uQQTJac}ZD_P^C0pWK)XFvq=q zaXu5H(XQe#u}j?YX;=U3ZKh$9?1jFrc1&<3T^ZlaOHJn@**o_67er%eT#lbFd5hcL ziqyYwJ?eUQij>v__NTL7=D&1KF|z*Vzcc=E5!%yz#d8M!Q0r%PCC%bTAIjIfaEqx4 z!3>`H$}6$bK2y}sE!{<%aG>_upenCH#%jQSg53(%k|Cvi@~Sh{Q`h=CcBSPeH7XY~hD9 z<^CR;#mf~J-_A`HTq8(i6xJ?#so3rT349Ynp3SZZokMsf1C;uS##YxAieKF%y~{4?abhPSAZbPm$&M z(!#KguOIy^ALAS!;H%6fmPnbvRFuT@JkCR96m{X$rr4uIYD}Y0@A+AsI*KnU^?Uqk zCP`kr$qu^cHRCu^FI=Lt@T+8TiR_a$DOnP(aJkxy(KEo(!Ry=E`)99Dis}CJ`2Nzn z^IsrA0&(~x@Q-ONSuHWvIBs&b`3}i<52^mapVOWVCen(dV8CjTbE%67sjr0uDWIra zsm-Bbg1s|PVdxd^Qmk5Kv*c6KFxT&?BA%S0{v z!tUG+vu7+qY@io8xF@`()Ly{X+e80`*Di<|Co-Rc?&y^<+9?)-)+pql{m5!&jw(_{ zhWt^8IIIR2o&9MS<_-Gu53sNnh9mcwbKMqonx(z-!ixK=)*sZ~W_}Pw8s6Xi-sGtZDKBHt!owoAaxpG5zc z?iY^V4)j$IK5B1 zDD|Xk$ucACxX;?zbH_l?yY;FiUVU;!XH~kcC^i{MY|5bbzJ=)!3H1e{7f8Gj@gEnx zzcjvqcg_Dg!?oiFE7BOygD-tx>5sIv7{LMJiO)sDM4;X-LlN7>k+MK?7{xYJ`n*Y# z)b`~~1KfS!Km^899MlYbY0)h7b8*-B`gNzBcTxCMdbT(GW#Sprfsb=*;X-3r)?wPJ z`^xUj!VpzmBGZ+?>}GpQp%?Y`x%3g~)s~4vMBB%PF%LJa&f~fI6(_QmA$e>v)8^2u zdnOy*e!Rgi;0}+MDoM&+aT<(uF z9o7=gjBi*tv%BZS34$ezfS0vzVSl}p)9X$51(+BIzERr3*J8jD-BIe&^7HmWpi9BC z>t4joMq4Qb2vU!#kR&@|e0w>n@+p^HO(1$NIs3)=Z7~X`Aw3n?ZSn+khGQkVkK@I3 zj_fESr3VHtWE<=o2^6KOO!PL%nUpTi-OJUsQ}_=my}*A%@E^{@aC|H)CIuWvaGBg} z)rBB=5G)6>3RfLRvkHq-vJ3T(2yW`{beX2CytzlS*8ziBwL>XGhT?b3ttQ=L3h*e5 zr84s6!a+<1*K4Vb2e7j}F)LOeX_WGzHVJJ?2%#|FF3WA)BLn3;U9I5+eD zq`JS@(Eo<17B+S?bTGGbvUT_YDlMvSZEodG{8GZk$=HGNN12k7gRzsL88N-At%J3` z)sI3oV{=n8Ct_v>h99)7zO^wiy^z4;AL^&xu=Em6`c~$K0yd^r#>Bv8Li%>%KYBeL z5y8?cIT>540x_65VCmI=RxmQM1Nm9$n>rE$ZGy*N<8e34_{$#d-(v@Ia5ivqw*!9f zVSeKR~uwm>(Ymuw2dD$jQu+Sd$TmQv)nvWM+I^mj9=} zz*dh{K*>F_ef;4G50;S$@F<)A{tG-~fqD8rxB!3`XFRb3Fh2g4Kz5Jd;ZGy_LH}ph zAN0SZ!Nl+ngFm+eGGclHqXquJ_;bKNfB3x%P!IkY0pk-O(_`1C5+HQ>e-DN25gwe0 zY=f`-e9p(-VrwkB*E?z~}Px-+wdu*RU9f z+1P$OTOe@n&xg$Vub~4+1myX%{NH?lV)&;Q>pze5XWhSQeil5+48Zt*g$4f`&}oK0 z08<0y@DJ|wuN)X3(ZnBX7$2d;e>VAleF9a9-jwMPl>BE);9UKMc!VPVS@Zw;1Rk3G zyD{L`Q2-vX%zt(V2>(L-ECjwC{@vnd;s53HHz;tHUkAbR>mdGx1kNJ*fBa$~{_?*^ z3{ez_k%`c+On%nrhZ}GnvH%DBgEep-vOKNSPtAY~p4PP|LKH~+9072C0Z+F6=>wc!EWr2L4+g;b z!t%7HJ@x_47Z%2!BLL19mZwC_ry5{0rk^7K&WRr@_+t%lPOt#qc|W)TMa%NE>O9r} z^`GTwxAR0W0*Rj^0M3IS@q|w`k9~eV1)z=t!8!lo2Gn(yrzob!Wk(5rRPC zrwjx|fW*%c0QLJvz`9(wEp)M1t< zSMd`e1l&12E>KSdP>9SwWdPJ!mM0I*V+~Mee{4%0380R$Jnf;L2zDUxG=g8D zf8W3Htg`=}!4~&37TX_AxT}Y8)LS%Hqw(ki0mhc0$8@DoQ;C5fn{#V;eZ~HRqkz)akVEOAsf$ zAhlg-$#(ZZ)xo=}t)KU$exWTfC=1Kw@aUz3-tmu}g&pHI$zTK_sUp`x3~YPO9U7X8 zf{MJAE6>lSNuWvsG;fkKX<6I7wU;=E-&k?cw5ZMSo@(>e46GB zT$#O(_dVKtRmF|ou9me-N(xRbOaiY9`0nCL9}2Hd3IC2-9Ht$4xE#g(^F(?rTbJju!=lgscQ{hjn^ad?R_7Na?bGPUdxvieCh@H_ zU%am_VKX_^>CuX-#h>z+Xi2#cUM(FTl^wd(-7~h8o@f&@gM*isS{*C*05HIQfkG;15s;k?wg%jM}Aq01KcL?t8 z4#C|e!QCOaySqbhch>|BZo&PXB;UQA+)jU;*RT53|NiQt3eMX5oU>WJ<`{F%QCIOB zgYo-m`VTsk<=5G<}0hu_Tb77TYf8kj$^2W z57VXEr)>i_g2z^HfO!W@z2TQa2{tWOPyX?PEY6KRB=SmE(**%N`jsc91g(|SAj#{4 z-565Ze0673H=rVyF;FIbJJ>Y7O=Qtkrq|cHm6fBXB(OH?!0jJCSOM<{Vn|D-IN5Fb z6>{M);}kvF(51%#F>rcjQCEwueZjlY&eP&qcPcM+H@sr2FIs5A*#*g)@d%L8$TirF z*_ko-f9(s9ueJL^O+>NgbcFA>q>$!bR#MP$B(|ms?m;`sb-L3rgS)~;b-_kQmI0Sn zC)w46Je1UZE$)#LJ6*5nW=ADGfUDzb^1U9f&7}#)@r4D$+ zV)NB6Pf}=C*KKHHCSRsWb9od7Mpcpcw^H zrzO5GyhuoOso8au#GrBL;>CLED_vvJ_XBgtZp$BEE2_yyu!^+$`Iz-JX$al+ z;F#Kbh;c9sf^4l2poY;RaoXsG%W9Sg9x&)(_qoudGWP7*sDelaal}Fw<)K%rA;&$` zPU-C22f4zCUFP&%Pwbu*&*k0~yf~y1>c1QM-}an882W4szj~H^x z4k>tHbn3Nm!F&MTZM&MtmjpY^OFi(CY0rp`tdKf*TiB?GP8IzMH4fqW&0AW+122AN z?)3?%FyH{hV?0sR0JRxUofJ5OY)kJjZF%PTqd(HSU=@Ro`{!S>D z-Fy@^dMqcMzdDpCvw5S~9p{!ob}S;8w1FjV3o590AMDCO^;4>q<68NZ^W5#+)U&w?z!wVFh(h(k{J^kC-0LKo;mHuEX~*Ok5E$r z5l$+U>(|c+o3`@1@##7CnPcQ1>d|*BltHE%=iKyl%tJP;4A?dEhN34I*PEP5ZzMGB zdP^dLT-B*JQP@hur_Aa>#-~liNcqM&DTlg!tnz}=^~{j_Py)vZUEf4&O^QnxB`R}O z>zC@8@^+W@Xite@3^l!Tn1dd|Ec7u6ikK3-Eg7^3Rh(QNlvHvIE;i~(uNo3wHycXc z&2{ElPW$59)2W_4B^bAJJqXhzp|#`;_JN{YBJfNYBd_8bOaT71ufH=ABA9O*kT{PK zR#)}(fGc+}xFHCPAlR@38-oxi*|E-Z+0$Bgt!dehLaFTodMhj7^R+mH53)Y24c_n6GcLC89iV@m~ zAe11){Qm96KtoMA9SJXzxC=W;TVE(tsy6pRV?+gCb=_v0=QeoQAuNhS!=qtY*b(73 z?t<)etQDJ|N}@{5i_8QFWLzYTbLNzTkVsS#-A@y&wLSBZEudqmH`hN0nDKj^x)-9< zw`Hx@L0}IWSQh5PgTZBt|&k) zFg55_T&j$6I@g->7@}}3TvmWo;UDzexwk*PzInyF`T8r3@$28UWM}LKG(bx-vL}f9=;TL4$zm5VM^ZBaFJXo4Y)W zpPAZb`99!toQlMlf_KUhcxh~JY3jQqC2{H5y(D>*qTQ}prmNw>>}`UHuOwdr`KmJ< zj`M|f-M?Cv$4(ejd)|Bpb?LxVyLfKqFY!Iu23h- z_nK*1vU6|#5I29H=qgvSzijw%?3|qxM}}_n1#OXNsE0WFf=_wVaE7k2i+BI5*Rsq# zxG0dd((jt|o4xs0ll~?~g8jRNLJzP;s96Da9V@`trDkSk{2?3s*F_e9aY+w=QU9ad z@66wDeEU>h~vnFa6^Y0Fe9JQ@>yP+b4W8%KqgEKM_GcRe}v*L4L0U z3k%&pEAj2(e_Dxerry6i;-^adQ+bj4+n0SWQUCRbZ$iiaxc0Y|_{pOCt0#VrTw(^K z*#Cy50y==b-ZT+ zXQ}t602Vuy>R85kd}n#NH!f&=K#PcIkw(Dj7j<m@;g4()oGNM?>PiW4qp}HMRlMP&(&vt?y-z(Z;xkaU=S9< zL$9WQdRdeJmgN5Sln6`T8raU@TNOqr-!BdhpQjsFqr;%4oj`>Xk&TjDY~{8-z1h{>BqXE{N+% z!eo8k#8th?VYCtu;jVzPC2&#>`^Chk57h-uVVvjejA1(DEPc_G2u(3y^(6Q7hE3;b zPcJ@MWDftXb^r9}`K!0m2tCw0K7ejFPeCFyM6kKY6%PU0;(Y^>Z|OqY#<;3|U{|vN zJ+YpM6a^geNg0=R48&s7Q(2H&pypSuW-AQgYW&iU?+0^2{GyOjMYS)onr~l#_tD6Q zBa%QrdxElw&4TXI*_${d;a5{ongfx%_L5}=S-~pd4(lGJ>`>Va69(;GDx~{3Rd&~h zPf${w-uJ@OX!)gW1pTewSXifwi|s@=YC=$}JM5~w23@OKhVM`_|qpR_v>cj$%OtlPH&1C91gadtEfI}!y)b-+l22p+ezX#kA)20f4CIj)81fjD7kHv<|jwxjPi zePSRQsJP!`2mOv*{6^3@qPv&;Q#$ z02=MvPVkQ(*6$qe?@Rx<`s449t@f`i{afLm8{@C<`%(I~r~TO1e*FIT@1bY>etP)# zH~znP1+ZlNSINhpS%{zYh=0ER|JT>_j6d^3Ki85T0DS)&_x0S&;GN&kqu)z_@xcsGApYxf z08QZ^XBPQih#;1q47k5Lvj2~!@PCmA`o01Gb>8^91_tbOKl>h9jay*P&03AY#>5b9&m>`AH0jj}~06QjUHRjFF_v-Js-wOhUs3pFLP z)#zP+I<{n58QU4T0|_VEnK{??r{NJ9`KX56e)|4ZLlcS0?~bHDnZkef-!ilPl4Qsc zAnm$L2Lli=Y<>p`_sk^|k{x>SwCoe|iU@vp3@dochK-5H;LN9oV|@*@ky`sBK$&8Q z$@A>)-j-uhAQe<=oG_J~vv@8EM&7#YeaqmB8pkj9!dS6495vy^7;OykD8BI&pfabM zWN=eoA|tx z2v{S$aJ?>`XaVi;ccBB$la4?x#9Qg?>WNlBCy*pV)LHbXd9NC!UUAVfj{H@Q2XPCl zB{@zuCAR`YUN&QWpzsspyQszup2_}o%o&Oh+Lbqp_l}TfXe%6K-8!c4l69bxS($xV zc~>R}o|hVd4&x!^1j7U=x4q&8^UYi;7WJCBG^dHERSliu>ci5{N3 zMjt7nQqwNLqD`I)B$*FhMf8SCBnxorYbg&I?bG6Hj{o3tl1mnwbo@yX&|2{=>ZjsoB z2ksS}gy5b$G0<4k@dy{+(y~ehzk0&b^NlmM)Oa)ZFDP}_w1>!OO<$h4Ud%6NK6koC zy!Ia4IorAMd;o410IJiV!j+^6Q)p($Z7;)tI7vp$+auG(4hJ*yUlXqr6$0IfZUn<`F^*c zR@L>T+6_>#A|_JkxnAOQEE`n2Zd%FwOI)1KUA!NR&B@dX52nx-^+xm{)TJ_>CZ%J}Q* zEwu%anL1@Exh=-cy9&x3XS;Q5X>ia6X(idO1DcBhP0ww@+coWqMcLPGCT3vw#Sk$& zrIPyV)k?FGnGHUBvJcHz;%0Ab83lxT%xpQV6Al3^8H4NjO|w@gO7%HzoNTsggJ3;g z)p$bpqonSfxR~?WXuIlmQ)L)xB2vCx`<;i31D3smhi{P@5w}_F=;&0gw#%d#l z+t-_>#tbhsQ%KRy?X7(m#q13mNX%J%ASx3^4O%1VsE3ud-RMQ2N?(Vhq)9c?k^a< zIQD~%n}}sI;QE{a2T{BMS)(|0HKkf6;^s7Q;}IR_Tis>xUh%3Svh0Eg*rK)W$%DPE z{8{I@;b8aZ8cr8$k{HBcvczihZ*m-*w!TbR z`A<(yIkZcOx9Uj=OuCkbbC?}`wBUv_w$)mGxXkHqtY96gA-bm!sLaSO?#s|1uSH{l z9SJROm&9*mC}--oUx4{M1l=R;u^zxkf_RXHY4@K7y6ze;YOgE6Qd7bhAwW!EtV_QV~)<&r5;y zLtDI^wKDSP|uqLRy zeFu7*J{M&du_$N$@ZS-xA~|8LjfoBQnlF;qwo=-D4&#<$Q9 z(f<=3{GXQo?``S-tbPAOXz=^;_#JWs%qiyYfX|N-04V$(ANHdJ00UY63F86g8Z*nc zW9j#M-(bA&C%EsWZ&2O$Bg?N)9qUh<&)=P5{|Bo3FG6*!e~5)LG5!L6X~jxe0Wu8x zU8i=Tci7#+-*Z_r4Q*^cEh9RR?hV3;>!Rym-k2fzuu8c=cPhtBybgmQ%^J_5bj?zZ znz*k@G1CpL&%PE#kC@Tfx7&ew!@JF31ANTH>}UBp6YZ3tA-hQFu-->I2c6B%Xqrjt zYTwkS&{pNmR4s!xf0Su*dY4;i8(40da30!d<<<(r3mc63Q6?kR#^(Z>@dM0?vp7os zql-l){AJ@ebn5olAsaleNP0SaL^(<76|`cQUW(CJ@8`j=OTJ^$KBg?}byJR00bXf?z4=m$rEnUQyUFgNnDx6Tl03h zH3V&Jik?jk)b%b{YCx_NUuy37%zRDbf?Sd6QXjvCRdjXPGagWADP*dloBv8l4;LHrJTtSt_K z&IAS6r8jEs@OWsJ9@u1(mo$kfLdAWK-XSzU&6|6`y!pCc+8pf76PGq{Tt7W~)Al%Y z=m0%9fqKJ)8$_kcgJC)ntIwbuYD!&G7r%RA&7K*4n0V+t}kY8NZsoCE|V%^GgQ zLN75aVhi_sq2~?)m}zs*HZH-@OUb(hJ!>8j z&3mCygPeC!IGd^LHg~5{%@`=5h`C52NT!2oRg{DbmT=7-t;cb_ofVJiL>7u6LRYqr z8Zul(la@!&sVJGu9aWgm%%xf>L55u=fB%WaZ^^rQ%pY=jxM}Id~8;aSk`|2#E<-vr{BiGLPg|#v1X-v?--O6x@Ub8ECKoPu~N_Wiyt*&LYZ# z@jvv1`N{*O3pTh3ZAwaiuWM?~FkBBxjV~BRmb`ri!L&d6#+6r52DSm-+h)JM%V#O@ zptQj#vl!lpcZ-4HDs?m+7%aw9XY76VW{J+7UAMj8@kl<{NCKrb#oY@%^oVVUuQ_2~ zxgJ_+Ogsz429?43vWXzb$xAlR=MZ=KLv zMKiAYc47{`s5*mNy1O*t%h}HhBp5#@#L_=YN%duJ#1Rg%Dq`bVF(L{jkBxUPq#Llx zKOgoih$%Vd`>+KwIbimi(4-sTnW&GA^Bb)PRu;+K_d1!xIFD*K74_2^Y`tfx&sbil zrc`Wa_tFZ8R1-f$oF16}q;4mmi+%(56gB01lUnfFd!pjt^FhV|z^1ji`Q6n1Lj;+L z{ulH|DfZuFmUMl3lXmv-2EJv>!&}_D(%BEDKqXD|@mmul_3+EgC%S+J_h@90_w{?? ziB#FTCnKNh^R4xv#(ACv>&=JN*s+MHf=Y%|t_n4?u?(MoNp7&G?KU?QtHuBBy-6#J zvPtA63fU=H^PXQoWwHh>DrlpDg;r*auzeor@p3TC0__oay4a^Z>R@oRN6Xp@7X zhUk^z%@6R{VmURM9|x(H83av??H7fRay!`TxJdn0nFEc(s#a2?d)xA~`#acai#xw? zONVbPYL6k96m3@u-GYx(``|KY0~**+;%hF^x@rS zX>Kw@slr-R?h8E5#<>MgFR)S!FZ87oxyY8K6}o0@Hec`oM>@^5J@b&Li>mc~+M~NddNnrYxT*Bn$#9mK_*kN{_ze zMJ!8Dr;bMwvU(C)5J717iA2q0jq2y9Y6Ft^m&p4MFg@7hh724b-JXz;#n|9fgjCZG zx-u8#5drc3VtMi%`iZaV4x%~6KdC??HAQu8P#s!Gi}q)xgC|ISx_xk#U7T#4YRLs6r=QXfGYB?46*A%4Te zc6MB=>(5KH`XNIcRT*S`TFl1ahJ=EEZX{IC>UAmss8|Mwn4jR9hxb}+?z@>l`v6o_ zQ6=1{IaB!elm0!p(|jU&QD>D>;YUMIN&czR=i=lJSd#6&M|Q02a(YnOijm7KW#787TN-bLpLhz>EzuZW zLa5Zj2Go;bDyn0867J@SqA7gISo3VUBEP*?LyCjpPy-)A%(f=FzJ8pneXG|TDp}-T z&B=mBMV)aMdYVLR*~um4x*4(hAzycj=40(xVIirL23o298`$#~bzPOzpDf%yj>lzW zQ4roZR$Z8Qq=+Epz`?E7RN+H*$zmNv!ql&!Bkv7*>o9O}XELbiviUOTp-L4YAU^PzPs93|@Qe(Qp50gAqqk z-~Ea8z%6bd_YzGm)*0#vE`OU7LT4SHp(KNo_et$ApmoukOUCq+r!f6j<;bf+j4z_iZ~W}t9WX%#Ii(-)yG%}8BGzzgsDKLu z<|{qW=e!e^JRj}ZcQ%1iD?+?<(#OTuPi$=3k2{1h1QGnemvRj8`%D_Mb*{AuLgJ=? z$RiXmx{-Eb->SMKsPOKgp!>l70f(pTUR1zZrqr#6Z|H~joETjDlmu6Gkipy z{tI|#&8~Tm-t11DT8y<1)Qs1Pp6Z#@*XpwwtOEOj?uTju#W9q`_HCkpI|De&0b&N5 zJY8$*1<@V+;V#+wwnPt>`X&#SBqt9j?ECt&p(^>YT+g_uqdmy|fIA$bfW%Gf;;Pkv z9ik}%CW6cuTAF>22!hX@ldGMllvLX$PKvK$9W8WPqnh2IqH0PKOjGNRC31KmzXZ)F zXG$$J>#eITZvpi^T5*?Ozp&M@KXk#;g2ku43NjTET5;ZVywKjY8@qL`|eX0B|ur8a-B z#!|s(iX2B33L-O5vzP7q$~bIpB@8A_hYGn9PdbxQET_wB5Ytp;?vlg7r^kD(0zPqW zzB8F@`Z=vUWaOxawqJSi<;Mup3vePJNCs^acLSnpEMonHy0P-E@^t^4T-Eu(9&Wc3 z-7Y0xRh=a*6jUuPU9eQm{Dqfe_h#rZG>iP85@|k+&{@GMewnpgU)r(6+DHpGihW9E4aHQTv2bX z6DODO%BzL-#-$!4FK0K$QU$yv?XD6weo5n#x3@;c+Wow5T(YgFHP*TMJYEmJgk!n) zV}!9pYLm_ih?p<`Ct4=%uZc?mZu+ojbwDf{d#yO@_G%Pr zGf|i1<7C(cTgh3>6&a)mq zmBx{P-uGN0-qIW#RL-=Jk5#QrS>^KrEB8Pob4j7NQNODdS{=mRvmC*+T=R6knv1{@ zFKm;0y<2>1Uu)MhW|??3_6mIaDYbC^bAgC8Dcl?572JRB2~Yc2mqOkfBI7Y9kRj7`U|;Y z1cKTY0+~#^_ANA?^oftgX_=BZ1(K>Q_^q%=I zHnN5>G)}%1)MGoAW#he)qBOQk~q*u(f3{lLK-|p>s+0yUK z;7~}Pgdb)sJ1lr;PoI~W`=vn%Y<#b81}a9iWrn`IkL-l@fvWwbBHhNCB(bb?2Cqs} zR)iL3+k~Y-1?B_aBD)>CLaBV$mJK@UN;U~q@7cb_kZJ60{OZ7$-70lH8WhSJIa11& zjj^GfA={cZ7Yz0oao0RB^??3z8W)vi@qCTI)i~bG92m>k=vBfk{@1uNsZP*Y@Oua? z=eHVnnz&%$vHqXG5(N=}drnhEZ*hSxS zv(pyPF7gI+MTE)GGrJC)dC+1-WpcH{WM=1%LgQAAOIt@v3S~+ADx5Fp6zK-EglgC9 z`?S$i6?_PJrW_u4lMz}3EcE2lcp$lF zFn|)Tn?P+(^mPYIsbg0f1erC_-6`aCvsTCyAw(>`FsDmho6peY;-iKkZmE)xn(1DOunm+qna z1Lu1LEPu9#W-1Uh&nGW_YGET=RiEr5VwjV?@B7C^s3O4 zKZw6v?(8|NTtT0HsRT*tA8=h%bX4#V-Uv=Ie%7u{6;gRkoiD=tif*`SX!Kp0tl5s{ zU?X{ooKxIv`hW#49@=hei7rx~@?;TPlqZ9h#Xn6zYY?_+ppRl8>EB*dR1SgFTFU9c%lRD#g>3#o4RCisZWp< zUscRfHl^=?9V%A8TI0o4)@vi5h*=6_e|`G6qEnMcoB+=j!AM07uPW@JFU2imt&)^& zDof#*q(kK;SoGNx#S%);vM+i9QcW7{@dMz<(J$hj!F{cM=UTYCa9m@ zfy#N8kqS?C9z7NKzuIX%S9eIDtLH)K<$KqeVv*UoaUCY(AEj0MS)GczQ?j{I$$I#n%++jQw*Qj|t zx;4IA`q}BJ2>EcAaw~@5TQtSmdnY9^Maxjo#Bv2N=<|+3`8c4n6Q&loonr4t?;Jv% zLN|m=?~N0`0KMM7^In6y1)ailzyh6?Q9M#Pd~=GqJ+GD)d-KN&Rq*}W=Mw?q%#gv zLcN*A-EsK+j~}bMOrAW~4*D39Ud_;(gXE_e*Zi7y%uPN0o%^ z7R0Fq5|)AvL*k@(bu8fzSPuAy<&p{cy68g-`e4HoQG`%l#hFMcc6!>8g+Hy*4-!|3;T_4P|mnsrfS5MX0QxA1x8()%K<5zQbbjqxmS=Ep-0sH zU0(u18u!O?D9#73?y-S=<4U$mwk*X@brunD!of|Tnj^vIqm0_)G^?$^Oe>|ek+ z!DonmeRoZahG7S{Q76?sS{TQHg%V9w$Qa=J=o_x>G zg>f*Q3?9nhLG`KS*`l%%90vQ7>>OdPl;l zlRXJ|Dx{E3#%Ly-YRJg$0Z2>tk8G!nVT~E=?G+4O&8^M*Y~?=25eA|3u=G}i9&aq_ zhB$?D%%6ZhdijiKo;uQ}c$Hqg7R^|{^QRva40RHF4;@(%wcs|Nk~yoC9oArKEWzsG8>a3UdGg+maHmrv zg-Jq@g?Khe`6b~Ji};wdQ(g+~dFBzNS6NTlR}S!?cbb)V?*~48Uh{M%!#Zhv2uRBy zQsqwV>74qMTV}{LUo{$i4G}jfR2EG*-U~$8LdO~?)=7FYauzMMNgbBJShF8dYhvEJ z(syrn|MDsB5!~YFgjDcmY&!VjtRv!K@!_^!RsAY>7~f4jm*UN6QAl80t!{O*PhJl0 zazNIVy)!3#=2?@QVACXO!b-A22&%am{tlrlS-vuF5*$k~RAs8OcMr#iOQ6m{6X>)uAR>gz3Y z2k+t<=4R?NKjyWKe(>`y21@*OveIdG4Q#81APB}rv%u*0U+1zJn}=&n(HL75x3Ndl z{10IodQwhihF_g9w}oO3%5dqtP0lG@DxA576~7Yoy$)D}T<77T!mq!th}KqhTP_i~ z2+22ery4~Q$$;&L+Z4JUEMFfD3fiq$C_}7MG-Y9Q6GLqx+n|>XQzu@2XT$?J1|@<^ zYaH%~O@`_R4ZcW`db=nT~gqIEayYBmm z=={6W5yP)p{Vii8zKI73eG?DD5IUmjIr1-iMz?1yt zcvAa=B12P{M>>4=?u_g6pfi8cerRqgm!BN|9MA^`wvp z+t3gNioG9nu8rsPpc8q&0+|CnPKQA~+}N9g>Gv|SX)m6f5$ALLwlQJj0eojuLrxQj z#z&Zt29ZXn5~U%^M2Y7zg4;vw+NH$N0sfMmV7uaL4?!ax{0i1{0Ue;#llv1Dwxt@+ zdRoFpPs`u6dev0F=H)TI|A*oA#Z1JwPf2lkBc z<=L`Wy#$TTOef3V-=sJ%3`*{)%<~`Rx27t06rgo#9_fsNZv1ej~>jS!vjq z01LrCxN&B78g{yGT=}<@*Z*P0kM9|b|9~53{Pp}{6f0qcLk|#S-~gq~1R{SLpALxb z-FjN)ORi@$I7x;_Dp6G&wj(B)%q7nb6(S1S6AW-7NHcECn%X--*K>oJ6iRw3&JRN2 z4oJ}R4{VPTa#Eb6LUuXXjLeFzTzLF!i#{XeV{EQxTNIU~7kpwX$U6&VqOx;D1b4U*CZC>MeIhP2zeUg*B5iS~X*9AN1!Ga%Yc< zy_UpikN$J%=q!ue(aWg?8`oi!OQ2MyyH7(x3(^P4hOrAv`pJ0~{byqoq9z+bPj(SA2*{t(>;gJQM{!1E!z`mNQR54j6;)fW?aQ2VXoQ0la3b-qK~}IFT=Czqv15}ri~(xN>Lwq% zt^u9zluU#xFvADe5I~)imxN|4x+!U-Tw*+nC%~#(fzi&9?3%f9DTpU6fAfjUG62aC zjF1JHQN(0fih^&O6t^` zGiO-VS~2`Q_OyI>aN{_VG9z9ca(*8qKjI(|2N4R`0-Z+9Qt zsD&aV`(XD&ywHzZk!e*0Q&s|7t(hdRnXeyQZx9_n7*f?8FezuuVkbIDflp}dJ|}p$ zq4GxZx~9=p|7MJRPipfgE5)ypT8@A;rYit}sBbI98qjmb`32rUSJN{~)X}lwJ3~^Q zpgaNzY7t3&;lLnvrK3BE1l6onilDuDomqSWshw)vo`=9N`evW8ZK~&Y#k$*09L7Ms zmIAn-4)8g9fGslx>a~9TikiettZf0|JbRDN0Wad#6#$*vTl%w^Pq!eFZdDXbEd{uu9 zK&3y=jVl#Rv>Li&*sa_3uk^X`7{}Ybib!v@JZVBAZrEqy&#9 z3v5-c7AR)prON)?(XG+xJaZJjRYd~tNxCq!wr6W+kXVoLYBqqO z;S9Wli&5qAA*o8HhbB?}QX&f;-_kxCTi^klgNp;2wz_q zX3{)n+U$BVRo&HlEp0jkiop@_s9I{VIFMx+2^^<)6u_fj&cdMBIcN={xTytt+z}wV zNbvXA<0wpGxd`RQvUUyKA$SRaDohlBf+*ewfZ;iRRsqvS;;)cXQEs(Z5`RNdqWZFd zL<>Z55!*t_dR!Ia6mf<22Il_a5qb`f?87JcUNAIG4kc|Bs|5FTMNQt)uy56MBgmgq=2%Jl64)P3bH?DdGQ1}D|jiK%~n3tt2F{-CmxE^ly zY_B6M!;eEqXL2WOf9>KW6xP9K-&3+e6kOBRL#w*qsL>p!3g0yL1jEN%XsU>wr>Cw| zDPIy?nf1y!3U8>kPURH4GQ&4~u<+Q@G8`2@Bqdw-+^s`W20!&SpOo8?z}wec6#M*3!KOOfjJv3X4sJZOn^#M{I&1YR@ctcFt^v zt?*=u5jWnx4?@!?q7fH65{Gh@_gq4EQ2U<|0cpWg%5&@AIpnd(Z|d*%Fi{YIRY4!L$Sw-Wu14lJSM;$5wOGHJ(84 zu60=P$c;LF(FE4h{8Es|!3M1nfqD%Ko3RPpjAH(|`}Ixh39|+2bAbbG0F^rfr4dNa zfLv*R=v%sa)T6Cv3yFGDYS+l7fC^pfhWw%>i|i?sc8pWeWQyJf*5Jqq@K%xhDnfg1 z+u#~k+JdH6ab_6t!}mM^hCiDvT9iUs}(8?uc@PdzCodCo5 z^(O1Prwo+e_1qsK8!W895C@iV5;33fzV)0Bv}#^MkLwcv_)NODRsiC)Vc?wh7cRMc zS@pJG8tD;_@jz%Rt@b(FI1Hhi(fn~$5p`iSF9GQ#lfEo31`4E+EIO91VAmZ!SeSst z-2Y~k~2v_AcA-NhEWIL;=nl+Ua~|zTszYPAOa2vhQz0t)r2pbgt89okx_x! z=GRjsg%&?1hrN59Q2f$Q&`HYYeVA;s{EKlaIQ*BG2}`p$hPp{#I?fYiru8z5Vjgv+ z5e!GHINphl-gjbDR@*j*S#18&fiI_hrm6XW&m9n2WsFMcsX9uHk54mngYFPxW`N%1Zb~Se%Kmrhev*_ z#Jis4t#vdKj!IOEc2-_wWjlJg%Y02uOQBxRt=VDv&Ti|*(tS(812UYy*lNt;3^X#N zpSMu7n?=~Ie=vei^2!*EBpc{}m_fIn=St*`?_jxAV(S)kY}>y7;IVGM;q|@lSEegT zuTb6oTnu&mZiIvlZOYq3HQ{R4L{esQ<`%K$Q z2bs%)Gjz0%%Q`IZwx54D%>NVtV)#XeR!MHq5*QE|AcJbA3o16F_P^MB3#hu5Y+X1B zPH-o6`A(?R($5;~(Q?j}dmQ zs#R;Qs#UZ0n(}>7e)v(+538@8aOS=bBY@Hsg~TAFz$sfPNRwsJY2$WALL=R3n;wOd zZEKBvyAGl-Am$e>tWct2Iq00(l?gIXBX%HXXs|+tGX!W1k-wsTrP)C`2MX<4it@G% zp0NU-o4nR#q5LBcSBknwh+&UqjqjbrcQtv}cP>8Lp}3J%r?Sr}W+sjfjkuUo;=fon zv^dfFEF?;+2BKUX;lr{SQMzgA;S47<%hcJg6qg&}mNaMhKR_uXWBb)Be~P0M%sRiv z-o8~|-G?uOS5EoWIQ^z|hl%+odOM@IPZ5u1h+`Zu_w_68C0Nu1$raN97&uI^mI1=(f3Q`=Mf&sFN`$jtM^i>>bF@F%Rdo6%=Z`dnK=Z} zH>~7$gDmXI)NA?`^ixcX4>LGul2R80=xgJc)<@<<&FqIlxo8kC7lZ3=#%HS`3tqW$ z(xy*<9$OznUu0c25uy@QM%;7XH)VtA7X;Wq1J2!NDH73WB_L@A*$72KV<6ck~`Q$zq{KkASmY!r8WAa5NF``}%dPxa6{EOm zA{7p1hj4i0Xm%Sny<7rl;Jlo9t<~hmC`b<%@xDG%&O#h z2G$)d!e{2XvnU%WPj(o+V?tK

GC^P&Tw9bfULiCqi~R?to@$2` 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

nPr5_TuUGv0Pr(?NFcC>sABTcW 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

  • G8 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Ó~hS!bpD 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 G=lfp@Vr21KD>Az&WpH_ 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 + + + + + PowerOn Roadmap 2026 - 2028 + + + + + + +

    + +
    +

    PowerOn Roadmap 2026 - 2028

    + +
    + +
    +
    +
    2026
    +
    2027
    +
    2028
    +
    + +
    +
    +
    Q1
    +
    Q2
    +
    Q3
    +
    Q4
    +
    Q1
    +
    Q2
    +
    Q3
    +
    Q4
    +
    Q1
    +
    Q2
    +
    Q3
    +
    Q4
    +
    + + +
    +
    +
    Stabilisierung & Market Entry
    +
    +
    +
    +
    +
    Plattform-Stabilität aufgebaut
    +
    Erste produktive Deployments
    +
    +
    +
    +
    +
    +
    Erste zahlende Nutzung
    +
    +
    Wiederkehrender Umsatz gestartet
    +
    +
    +
    +
    +
    +
    Reproduzierbare Implementierung
    +
    +
    Standard-Onboarding etabliert
    +
    +
    +
    +
    +
    +
    Product-Market-Fit erreicht
    +
    +
    10–15 aktive Kunden
    +
    +
    +
    + +
    +
    +
    +
    Skalierung & Standardisierung
    +
    +
    +
    +
    Plattform standardisiert
    +
    +
    Wiederverwendbare Module
    +
    +
    +
    +
    +
    Skalierbares Onboarding
    +
    +
    +
    Implementierungszeit sinkt
    +
    +
    +
    +
    +
    Nutzungsausbau
    +
    +
    +
    Mehr Prozesse pro Kunde
    +
    +
    +
    +
    Marktdurchdringung
    +
    +
    +
    25–30 Kunden
    +
    +
    + +
    +
    +
    +
    +
    Plattformreife & Infrastrukturstatus
    +
    +
    +
    Plattform im Tagesbetrieb
    +
    +
    +
    Hohe Kundenbindung
    +
    +
    +
    +
    Nutzungstiefe steigt
    +
    +
    +
    +
    Abteilungsübergreifende Nutzung
    +
    +
    +
    +
    Expansion statt Akquisition
    +
    +
    +
    +
    Wachstum aus Bestandskunden
    +
    +
    +
    +
    Operative KI-Infrastruktur
    +
    +
    +
    +
    50–70 Kunden
    +
    +
    +
    + + +
    +

    Maßnahmenplan März–Mai 2026

    +

    Q1/Q2 Übergang – Stabilisierung & Market Entry

    + +
    + + +
    +
    + März 2026 – Foundations + Pilot zu Produktivität +
    +
      +
    • Mandanten-/User-Setup getestet und stabilisiert, vollständige Auditierbarkeit sichergestellt
    • +
    • Security-Baseline aktivieren: Masking/Neutralisierung als Standard ausrollen
    • +
    • Release-Kriterien + Stabilisierung der kritischen Pfade (UAM, Neutralization, Trustee/Extraktion, Automation)
    • +
    • Pricing/Package V1 vollständig in Plattform integrieren + Billing/Terms vorbereiten
    • +
    +
    +
    + +
    + April 2026 – Reproduzierbarkeit +
    +
      +
    • Produktivsetzung Kunde A inkl. Abnahme
    • +
    • Paid Usage ausrollen (Pricing/Package v1, Billing-Prozess, Vertrag/Terms light)
    • +
    • Workflow Engine hardening: Fehlerbehandlung, Retries, Idempotenz, Kontextgrenzen, Queue/Jobs (nur die wichtigsten 20 %)
    • +
    • Kosten-/Usage-Metering testen
    • +
    +
    +
    + +
    + Mai 2026 – Paid Usage + Skalierbarer Betrieb +
    +
      +
    • Support & Betrieb V1: Monitoring-Dashboards, Alerting, Incident-Routinen, Release-Kadenz
    • +
    • Security & Compliance ausbauen: Policy-Sets pro Workflow, Auditierbarkeit (wer/wann/was), Fallback-Strategie (lokales LLM wo nötig)
    • +
    +
    +
    +
    +
    +
    + +
    +

    USP – Unique Selling Proposition von PowerOn am Markt

    +

    Was hebt uns ab von den anderen?

    + +
    + + +
    +
    + 1) Integrations- & Betriebsschicht statt KI-Tool +
    +
      +
    • Fokus auf die Wertschöpfungsebene, die heute fehlt: KI in reale Systeme, Datenflüsse und Workflows einbetten
    • +
    • Nicht „noch ein Chatbot“, sondern Orchestrierung + Workflow-Engine + Integrationsmodule für produktive Prozesse
    • +
    +
    +
    + +
    + 2) Security & Compliance by Design (Schweizer KMU-tauglich) +
    +
      +
    • Datensouveränität & Auditierbarkeit als Standard, nicht als Add-on
    • +
    • Vorgelagerte Datenkontrolle (Neutralisierung/Masking, Datenreduktion) vor Modellnutzung
    • +
    • Lokales Schweizer LLM als datensouveräner Modus/Fallback + kontrollierte Nutzung externer Modelle je Risikoprofil
    • +
    +
    +
    + +
    + 3) Integration statt Replacement +
    +
      +
    • PowerOn ersetzt keine Kernsysteme (ERP, Buchhaltung, Branchensoftware)
    • +
    • Mehrwert entsteht durch Automatisierung innerhalb der bestehenden Systemlandschaft, mit minimalen Eingriffen
    • +
    +
    +
    + +
    + 4) Anbieter- & Modellflexibilität statt Abhängigkeit +
    +
      +
    • Orchestrierung über mehrere Modellanbieter (AI Center) reduziert Vendor Lock-in
    • +
    • Kontrolle über Datenflüsse, Kosten, Zugriff und Modellwahl bleibt beim Kunden
    • +
    +
    +
    + +
    + 5) Plattformstrategie: wiederholbar ausrollbar → skalierbar +
    +
      +
    • Ziel ist nicht Projektberatung, sondern reproduzierbare Deployments, standardisierte Module, klarer Onboardingpfad
    • +
    • Progression: stabiler Einstiegspfad → wiederholbarer Nutzen → skalierbares Wachstum → Infrastrukturstatus
    • +
    +
    +
    +
    +
    +
    + +
    +

    Einordnung der Features (bereits vorhanden oder in Arbeit)

    +

    PowerOn-Plattform – Features, Setup & Roadmap

    + +
    + + +
    +
    + Chatbot / Chatplayground +
    +
      +
    • Chatbot: KI-gestützter Chat mit Workflows, Tools, Memory; RBAC pro Feature-Instanz; Streaming, Multi-Round
    • +
    • Chatplayground: Sichere Testumgebung für KI-Chat; isolierte Umgebung pro Mandant; Wrapper um interfaceDbChat
    • +
    +
    +
    + +
    + Privates LLM +
    +
      +
    • Ollama-basierter Connector (privatellm); lokal/on-premise; kein Datenabfluss
    • +
    • Für höchste Datenschutzanforderungen; Fallback-Strategie für sensibles Material
    • +
    +
    +
    + +
    + Trustee / BuHa-Integration +
    +
      +
    • Treuhand/Buchhaltung: Organisationen, Verträge, Dokumente, Positionen, Buchungssynchronisation
    • +
    • Accounting-Connectors: Bexio, Abacus, RMA; Sync zu Buchhaltungssystemen
    • +
    • Feature-eigene Rollen (admin, operate, userreport); RBAC + feature-spezifische Zugriffslogik
    • +
    +
    +
    + +
    + TeamsChatbot +
    +
      +
    • Microsoft Teams Bot mit authentifiziertem Nutzer; voll protokolliert
    • +
    • Sessions, Transcripts, Bot-Antworten; System-Bots (mandantenbezogen); Browser-Connector für Interaktionen
    • +
    +
    +
    + +
    + Dokumentbearbeitung mit KI (Neutralization) +
    +
      +
    • Maskierung/Pseudonymisierung sensibler Daten (PII) vor KI-Verarbeitung
    • +
    • PDF in-place (PyMuPDF), Platzhalter, konfigurierbare Muster; Neutralize Playground
    • +
    • Referenzprozess ERP/Dokument-Extraktion mit strukturiertem Output (in Arbeit)
    • +
    +
    +
    +
    +
    +
    + + +
    +

    PowerOn Roadmap 2026

    +
    +
    +
    +
    2026
    +
    +
    +
    +
    Q1
    +
    Q2
    +
    Q3
    +
    Q4
    +
    +
    +
    +
    Stabilisierung & zahlende Nutzung
    +
    +
    +
    Produktive Kundeninstallationen gestartet
    +
    ≥ 1 KMU
    +
    +
    +
    +
    Core-Plattformmodule stabil integriert
    +
    ≥ 80 % Features konsolidiert
    +
    +
    +
    +
    Erste zahlende Plattformnutzer
    +
    +
    ≥ 10 Nutzer
    +
    +
    +
    +
    Durchschnittliche Integrationszeit pro Kunde
    +
    +
    < 6 Wochen
    +
    +
    +
    +
    Security & Compliance Features ausgebaut
    +
    +
    Neutralisierer und schweizer LLM verlässlich nutzbar
    +
    +
    +
    +
    Wiederholbarer Onboarding-Prozess
    +
    +
    1 Standard-Onboarding
    +
    +
    +
    +
    Features im Live-Betrieb
    +
    +
    alle implementierten Features produktiv und stabil
    +
    +
    +
    +
    Plattform-Uptime
    +
    +
    ≥ 99 %
    +
    +
    +
    +
    Produktive KMU-Kunden gesamt
    +
    +
    5-10 Kunden
    +
    +
    +
    Anteil aktive Nutzung vs. Pilot
    +
    +
    ≥ 60 % aktiv
    +
    +
    +
    First Value Time (Kunde bis Nutzen)
    +
    +
    < 30 Tage
    +
    +
    +
    + +
    +

    PowerOn Roadmap 2027

    +
    +
    +
    +
    2027
    +
    +
    +
    +
    Q1
    +
    Q2
    +
    Q3
    +
    Q4
    +
    +
    +
    +
    Skalierung & Standardisierung
    +
    + +
    +
    Erweiterungen bei Bestandskunden
    +
    ≥ 30 % Kunden
    +
    +
    +
    +
    Featureerweiterung
    +
    +
    10 stabile Features
    +
    + +
    +
    Neue produktive Kunden
    +
    +
    ≥ 10 gesamt
    +
    +
    +
    +
    Implementierungszeit pro Kunde
    +
    +
    < 4 Wochen
    +
    +
    +
    +
    Wiederverwendbare Integrationsmuster
    +
    +
    ≥ 80 % Projekte
    +
    +
    + +
    +
    Plattformnutzung pro Kunde (aktive Nutzer)
    +
    +
    ≥ 10 je Kunde
    +
    +
    +
    +
    Standardisierte Security Deployments
    +
    +
    100 %
    +
    +
    +
    +
    Release- & Rollout-Prozess etabliert
    +
    +
    1 stabiler Zyklus
    +
    +
    + +
    +
    Produktive Unternehmenskunden
    +
    +
    25–30
    +
    +
    +
    Umsatzanteil aus Bestandskunden
    +
    +
    ≥ 70 %
    +
    +
    +
    Onboarding-Aufwand pro Kunde reduziert
    +
    +
    −40 % ggü. 2026
    +
    +
    +
    + +
    +

    PowerOn Roadmap 2028

    +
    +
    +
    +
    2028
    +
    +
    +
    +
    Q1
    +
    Q2
    +
    Q3
    +
    Q4
    +
    +
    +
    +
    Plattformreife & Infrastrukturstatus
    +
    + +
    +
    Plattform als Betriebsinfrastruktur genutzt
    +
    ≥ 60 % Kunden
    +
    +
    +
    +
    Kunden-Retention
    +
    ≥ 90 %
    +
    +
    + +
    +
    Nutzungstiefe (Prozessabdeckung)
    +
    +
    ≥ 2 Abteilungen/Kunde
    +
    +
    +
    +
    Erweiterungen bestehender Installationen
    +
    +
    ≥ 40 % Kunden
    +
    +
    +
    +
    Betriebskosten pro Kunde
    +
    +
    −20 %
    +
    +
    + +
    +
    Standardisierte Erweiterungsrollouts
    +
    +
    ≥ 80 % automatisiert
    +
    +
    +
    +
    Anteil Umsatz Expansion vs Neukunden
    +
    +
    ≥ 70 % Expansion
    +
    +
    + +
    +
    Produktive Unternehmenskunden
    +
    +
    50–70
    +
    +
    +
    Plattform als Selbstläufer (Self-Service)
    +
    +
    Kunden registrieren, verwalten und managen sich selbst
    +
    +
    +
    Support-Aufwand reduziert
    +
    +
    Supportbedarf -50 %
    +
    +
    +
    Plattform-Nutzung als Dauerbetrieb
    +
    +
    ≥ 95 % Kunden
    +
    +
    +
    Churn Rate
    +
    +
    < 5 %
    +
    +
    +
    +
    + + + +
    + 1 / 7 +
    + + + +