From dfd5ec03ced8f8f4c0ed8d3ab7db0845dc7bb9f0 Mon Sep 17 00:00:00 2001 From: Julian Kiedaisch Date: Sat, 3 Oct 2026 13:41:41 +0000 Subject: [PATCH] feat(editor): F4.6a simulation mode and a computer's desktop Java's mode buttons start and stop the room, now in a worker of the editor's page (LocalSimHost), with Java's speed slider. While the simulation runs the design is locked as in Java: no palette, no sheet, nothing moves, no undo. Cables that carry a frame light up in Java's green, and a tap on a computer opens its desktop: Java's title, the software installation first, then the installed programs in the order of Java's list for the language, a taskbar with the network icon and the network as the simulation runs it. The room sends that over a new topic, node:. Desktops stay over a return to the design and show again at the next start. The programs' windows follow from F4.6b. Co-Authored-By: Claude Opus 5.5 --- CHANGES.md | 7 + packages/doc/src/view.ts | 27 +- packages/doc/test/view.test.ts | 37 ++- packages/editor/browser/editorPage.ts | 7 +- packages/editor/browser/simulation.spec.ts | 250 ++++++++++++++++++ packages/editor/src/Editor.tsx | 142 ++++++++-- .../src/assets/desktop/hintergrundbild.png | Bin 0 -> 265248 bytes .../src/assets/desktop/icon_browser.png | Bin 0 -> 5943 bytes .../assets/desktop/icon_clientbaustein.png | Bin 0 -> 4429 bytes .../editor/src/assets/desktop/icon_dns.png | Bin 0 -> 8014 bytes .../src/assets/desktop/icon_emailprogramm.png | Bin 0 -> 3643 bytes .../src/assets/desktop/icon_emailserver.png | Bin 0 -> 4350 bytes .../src/assets/desktop/icon_filebrowser.png | Bin 0 -> 4973 bytes .../src/assets/desktop/icon_firewall.png | Bin 0 -> 7987 bytes .../src/assets/desktop/icon_imageviewer.png | Bin 0 -> 5006 bytes .../src/assets/desktop/icon_peertopeer.png | Bin 0 -> 6676 bytes .../assets/desktop/icon_serverbaustein.png | Bin 0 -> 4344 bytes .../desktop/icon_softwareinstallation.png | Bin 0 -> 4513 bytes .../src/assets/desktop/icon_terminal.png | Bin 0 -> 1923 bytes .../src/assets/desktop/icon_texteditor.png | Bin 0 -> 4581 bytes .../src/assets/desktop/icon_webserver.png | Bin 0 -> 5330 bytes .../editor/src/assets/desktop/netzwek_aus.png | Bin 0 -> 600 bytes .../editor/src/assets/desktop/netzwek_c.png | Bin 0 -> 608 bytes .../editor/src/assets/modes/aktionsmodus.png | Bin 0 -> 1131 bytes .../src/assets/modes/aktionsmodus_aktiv.png | Bin 0 -> 958 bytes .../editor/src/assets/modes/entwurfsmodus.png | Bin 0 -> 1531 bytes .../src/assets/modes/entwurfsmodus_aktiv.png | Bin 0 -> 1338 bytes packages/editor/src/canvas/Canvas.tsx | 29 +- packages/editor/src/desktop/DesktopWindow.tsx | 141 ++++++++++ packages/editor/src/desktop/desktop.css | 185 +++++++++++++ packages/editor/src/desktop/programs.ts | 56 ++++ packages/editor/src/i18n/de.json | 27 ++ packages/editor/src/i18n/en.json | 27 ++ packages/editor/src/i18n/i18n.tsx | 4 + packages/editor/src/main.tsx | 4 +- packages/editor/src/simulation/ModeBar.tsx | 44 +++ .../editor/src/simulation/useSimulation.ts | 105 ++++++++ packages/editor/test/i18n.test.ts | 13 + packages/editor/test/programs.test.ts | 34 +++ packages/protocol/src/sim.ts | 22 +- packages/protocol/test/sim.test.ts | 6 +- packages/sim/src/room.ts | 36 ++- packages/sim/test/localSimHost.test.ts | 4 +- packages/sim/test/room.test.ts | 24 ++ 44 files changed, 1190 insertions(+), 41 deletions(-) create mode 100644 packages/editor/browser/simulation.spec.ts create mode 100644 packages/editor/src/assets/desktop/hintergrundbild.png create mode 100644 packages/editor/src/assets/desktop/icon_browser.png create mode 100644 packages/editor/src/assets/desktop/icon_clientbaustein.png create mode 100644 packages/editor/src/assets/desktop/icon_dns.png create mode 100644 packages/editor/src/assets/desktop/icon_emailprogramm.png create mode 100644 packages/editor/src/assets/desktop/icon_emailserver.png create mode 100644 packages/editor/src/assets/desktop/icon_filebrowser.png create mode 100644 packages/editor/src/assets/desktop/icon_firewall.png create mode 100644 packages/editor/src/assets/desktop/icon_imageviewer.png create mode 100644 packages/editor/src/assets/desktop/icon_peertopeer.png create mode 100644 packages/editor/src/assets/desktop/icon_serverbaustein.png create mode 100644 packages/editor/src/assets/desktop/icon_softwareinstallation.png create mode 100644 packages/editor/src/assets/desktop/icon_terminal.png create mode 100644 packages/editor/src/assets/desktop/icon_texteditor.png create mode 100644 packages/editor/src/assets/desktop/icon_webserver.png create mode 100644 packages/editor/src/assets/desktop/netzwek_aus.png create mode 100644 packages/editor/src/assets/desktop/netzwek_c.png create mode 100644 packages/editor/src/assets/modes/aktionsmodus.png create mode 100644 packages/editor/src/assets/modes/aktionsmodus_aktiv.png create mode 100644 packages/editor/src/assets/modes/entwurfsmodus.png create mode 100644 packages/editor/src/assets/modes/entwurfsmodus_aktiv.png create mode 100644 packages/editor/src/desktop/DesktopWindow.tsx create mode 100644 packages/editor/src/desktop/desktop.css create mode 100644 packages/editor/src/desktop/programs.ts create mode 100644 packages/editor/src/simulation/ModeBar.tsx create mode 100644 packages/editor/src/simulation/useSimulation.ts create mode 100644 packages/editor/test/programs.test.ts diff --git a/CHANGES.md b/CHANGES.md index 5333830..c2f68d6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -129,6 +129,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `src/settings.ts`, `src/sheet.ts`, `src/fields.ts` (Firewall) | Java `JFirewallDialog`, `GatewayFirewallConfigTable.closeEditor`, `Firewall.addRule/moveUp/moveDown/deleteRule`, `FirewallRule.validateExistingAttributes`, `EingabenUeberpruefung.isValidSubnetmask` | erweitert (F4.5d): Firewall an/aus, ICMP filtern, nur SYN verwerfen, Standardaktion, Regeln (neu wie Javas: leer, TCP, alle Ports, verwerfen; Zelle, Protokoll, Aktion, rauf/runter, löschen); Quelle leer, Adresse oder Javas Marke „999.999.999.999“, Ziel leer oder Adresse, Masken leer oder durchgehende Einsen, Port leer (alle) oder `musterPort`. Abweichend von Java: Javas Tabelle schreibt eine Zelle vor der Prüfung in die Regel, sodass die Firewall „abc“, Maske „255.0.255.0“ oder Port 0 hält, während die Tabelle den alten Wert zeigt — hier wird nichts übernommen, was die Prüfung ablehnt; ein Port, der keine Zahl ist, wird nicht still zu „alle Ports“; „.0.0.1“ und „080“ gelten nicht | | `src/settings.ts`, `src/sheet.ts`, `src/commands.ts` (Verbindungen) | Java `JConnectionsDialog` (`swapConnection`, `removeConnection`, Knöpfe „+“/„-“), `Vermittlungsrechner.hinzuAnschluss/removeNic`, `NetzwerkInterface()`, `InternetKnotenBetriebssystem.setStandardGateway` | erweitert (F4.5e): eine Karte nach der letzten anfügen (192.168.0.10/24, eigene MAC aus der Port-Kennung, bis acht), die letzte samt Kabel entfernen, die Kabel zweier Karten tauschen oder eines umstecken (dieselben Kabel, dieselben Geräte; zwei freie Karten: nichts), Javas Klicklogik (`connectionsClick`: markieren, abwählen, tauschen); das Blatt nennt die Adresse der Gegenstelle (Rechner, Router; Switch und Modem ohne). Abweichend von Java: Java entfernt auch die letzte Karte — ein Router ohne Karte behält kein Gateway (Java legt es in die Karten, gemessen), und keine Datei könnte es halten; hier bleibt eine Karte (`ROUTER_INTERFACES.fewest`) | | `src/view.ts` (`nodeLabel`) | Java `Knoten.holeAnzeigeName` | herausgelöst (F4.5b): die Beschriftung eines Geräts, auch für „Verbunden mit …“ | +| `src/view.ts` (`desktopView`) | Java `GUIDesktopWindow.updateTitle`, `GUIDesktopPanel.updateAppPane` | neu (F4.6a): was der Desktop eines Rechners vom Dokument braucht — Art, Beschriftung, ob sie die Adresse ist (Javas Titel lässt die Adresse dann weg), installierte Programme | | `test/sheet.test.ts`, `test/sheet.cases.txt`, `test/sheet.java.json` | — | neu (F4.5a): 77 in Javas Felder getippte Texte, jede Regel dagegen samt der benannten Abweichungen; die Befehle, die Funkverbindungen, Rückgängig je Änderung, alles über eine gespeicherte `.fls` | | `test/devices.test.ts`, `test/fixtures/new-devices.fls` | — | neu (F4.4a): neue Geräte jeder Art gegen Javas gespeicherte (Zufall maskiert), Kabelregeln, ein selbst gebautes Netz pingt im Kern, Rückgängig nur der eigenen Änderungen über zwei Replikate | | `test/projectDoc.test.ts` | — | neu (F4.1): alle 23 Korpusdateien → Dokument → Yjs-Update → Projekt: dasselbe Projekt, derselbe Schnappschuss, dieselbe `.fls`, dieselbe Reihenfolge je Ordner; Kennungen absichtlich gegen die Dateireihenfolge | @@ -140,6 +141,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | --- | --- | --- | | `src/sim.ts`, `src/host.ts` | Plan §6.4 | neu (F4.2): die Nachrichten zwischen Editor und Simulationsraum in einer Liste (Client: sub, unsub, start, stop, speed, input; Raum: state, activity, trace, app, ack, error), Prüfung jedes Felds mit benanntem Fehler statt stillem Verwerfen; `SimHost` | | `test/sim.test.ts` | — | neu (F4.2): jede Art gelesen, jede Ablehnung mit ihrem Grund | +| `src/sim.ts` (`node`) | Java `NetworkInfoPanel.updateInfo`, `GUIDesktopWindow.updateTitle` | erweitert (F4.6a): Thema `node:` und Nachricht `node` — die erste Karte eines Geräts, wie die Simulation sie fährt (DHCP ändert sie), für Titel und Netzwerk-Info des Desktops | ## packages/sim @@ -148,6 +150,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `src/room.ts` | Plan §6.1–6.4; Javas Geschwindigkeit `Verbindung.verzoegerungsFaktor` | neu (F4.2): der Simulationsraum — eine Engine je Projekt, Schnappschuss des Dokuments beim Start, Uhr im Takt der Wanduhr (Geschwindigkeit = Kabelverzögerung wie Java, Nachholen höchstens 2 s), Mitschnitt und Uhr über Stopp und Start, Abonnements (Kabelaktivität bei Änderung, neue Rahmen je Karte in beiden Ansichten, neue Fensterzeilen je Programm), Befehlszeile als erste Aktion; ein Fehler des Kerns wird allen gemeldet (`engineFailed`) statt den Raum zu beenden | | `src/channel.ts`, `src/serveRoom.ts`, `src/localSimHost.ts`, `src/worker.ts` | Plan §6.1 | neu (F4.2): der Raum in einem Web Worker der Seite — Dokument-Updates in beide Richtungen ohne Echo, Nachrichten geprüft | | `test/room.test.ts`, `test/localSimHost.test.ts` | — | neu (F4.2): der Raum gegen die von Hand gesteuerte Engine (dieselben Rahmen, dieselben Zeilen), Abonnieren, Geschwindigkeit, Nachholen, Fehler; Host und Worker-Seite über einen `MessageChannel` | +| `src/room.ts` (`node`) | Plan §6.4 | erweitert (F4.6a): der Raum schickt einem Abonnenten die Netzwerkwerte eines Geräts beim Abonnieren und wenn sie sich ändern, nichts vor dem ersten Start | | `browser/m9.spec.ts`, `browser/traceDigest.ts`, `browser/*Entry.ts`, `/playwright.config.ts` | Plan §13 M9 | neu (F4.2): M9 in Chromium — 17 Beispiele, je 30 s mit Eingaben, ergeben Zeichen für Zeichen denselben Mitschnitt wie in Node; der Raum in einem echten Worker | ## packages/editor @@ -170,6 +173,10 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `browser/sheet.spec.ts` | — | neu (F4.5a): das Blatt in Chromium — Felder wie Java, Markieren und Behalten, Gerätewechsel, Rückgängig, WLAN, Handy mit Berührung, Englisch; seit F4.5b Router-Reiter, aktives Kabel, Weiterleitungstabelle, RIP, Heimrouter; seit F4.5c DHCP-Server und Portfreigaben; seit F4.5d Firewall; seit F4.5e Verbindungen (Tauschen, Umstecken, Karten bis acht und bis eine, Markierung nach Rückgängig) | | `src/sheet/FirewallPanel.tsx` | Java `JFirewallDialog` (`jfirewalldialog_msg21`–`43`, `jvermittlungsrechnerkonfiguration_msg4`) | neu (F4.5d): die Firewall als Seite des Blatts (bei Vermittlungsrechner und Heimrouter unter „Allgemein“): Reiter Allgemein mit den drei Schaltern und Javas Erklärungen, Reiter Firewall-Regeln mit Javas Einleitung, Standardaktion, Regeltabelle, rauf/runter (an den Enden gesperrt), Neue Regel, Regel löschen (die Nachfolgerin bleibt gewählt, wie bei Java). Javas erster Reiter heißt „Netzwerkschnittstellen“, enthält aber die allgemeinen Schalter — hier „Allgemein“; Javas „Aktion?“ ohne Fragezeichen, „über die Standard-Aktion“ groß | | `src/sheet/ConnectionsPanel.tsx`, `src/sheet/SheetField.tsx` (`SheetNote`), `src/theme/tokens.css` (`--connection-*`) | Java `JConnectionsDialog` (`jvermittlungsrechnerkonfiguration_msg19`, `22`–`25`) | neu (F4.5e): „Verbindungen verwalten“ als Seite des Vermittlungsrechners (unter „Allgemein“ nach „Firewall einrichten“, wie bei Java): je Karte Javas RJ45-Knopf links von „NIC n: Adresse“ in Javas Farben (grün belegt, rot frei, gelb markiert), darunter die Gegenstelle wie bei Java („A (10.0.0.2)“, ein Switch nur mit Namen); antippen markiert, dieselbe abwählen, eine andere tauscht; „+“ und „−“ mit Javas „Schnittstelle hinzufügen“ und „Maximal 8 Schnittstellen erlaubt!“; Javas Hinweis darunter wie im Dialog. Java zeichnet die Kabel zwischen zwei Spalten — im schmalen Blatt steht die Gegenstelle unter der Karte; der Reiter einer entfernten Karte fällt auf „Allgemein“ zurück | +| `src/simulation/useSimulation.ts`, `src/simulation/ModeBar.tsx`, `src/assets/modes/*.png` | Java `GUIMainMenu.selectMode/updateLatency` (`guimainmemu_msg3`/`4`/`15`/`16`), Javas Modussymbole (`gfx/allgemein`) | neu (F4.6a): der Raum im Worker der Seite (`LocalSimHost` über `?worker`), Javas Moduswahl mit Javas Symbolen, im Aktionsmodus der Geschwindigkeitsregler mit Prozent (90 % zu Beginn wie Java); Javas Tasten Strg+D/Strg+R nicht, sie legen im Browser ein Lesezeichen an und laden neu | +| `src/desktop/DesktopWindow.tsx`, `src/desktop/programs.ts`, `src/desktop/desktop.css`, `src/assets/desktop/*.png` | Java `GUIDesktopWindow`, `GUIDesktopPanel`, `GUIDesktopIcon`, `NetworkInfoPanel`, `config/Desktop_de_DE.txt`/`_en_GB.txt` (`desktoppanel_*`, `network_msg*`) | neu (F4.6a): der Desktop eines Rechners — Titel „Name - Adresse“ (nur die Beschriftung, wo sie die Adresse ist), Javas Hintergrund, Software-Installation zuerst, dann die Programme in der Reihenfolge der Java-Liste der Sprache, graue Taskleiste mit „Startbildschirm“ und dem Netzwerksymbol (leuchtet, solange das Kabel trägt), Netzwerk-Info mit den laufenden Werten; auf breiten Schirmen verschiebbar über der Fläche, mehrere gestapelt, auf dem Handy flächig unter den Modusknöpfen. Javas Taskleiste hat 30 px, hier 44 für Finger; Javas Knopf „Ändern“ unter schreibgeschützten Feldern fehlt. Die Programmfenster folgen ab F4.6b | +| `src/Editor.tsx`, `src/canvas/Canvas.tsx` (Aktionsmodus) | Java `GUIContainer.setActiveSite/showDesktop/closeDialogs/reopenDialogs`, `GUIKnotenItem` (Klick im Aktionsmodus), `GUIEvents.kontextMenueAktionsmodus` (`guievents_msg3`), `JCablePanel` (`farbeBlinken`) | erweitert (F4.6a): im Aktionsmodus ist der Entwurf gesperrt wie bei Java — keine Palette, kein Blatt, nichts bewegt sich, kein Rückgängig, kein Löschen —, Kabel mit Rahmen leuchten grün, ein Tipp auf einen Rechner öffnet seinen Desktop (Langdruck: „Desktop anzeigen“); offene Desktops überstehen den Entwurf und erscheinen beim nächsten Start wieder, die eines entfernten Rechners nicht | +| `browser/simulation.spec.ts`, `test/programs.test.ts` | — | neu (F4.6a): Moduswechsel, Sperren, Geschwindigkeit, Kabelaktivität, Desktop mit Titel, Programmen, Netzwerk-Info, Verschieben und Stapeln, Handy, Englisch; die Programmliste gegen Javas `Desktop_*.txt` | | `src/sheet/ServicePanels.tsx`, `src/sheet/RowsEditor.tsx`, `src/sheet/SheetTabs.tsx`, `src/sheet/DeviceSheet.tsx` (Seiten) | Java `JDHCPKonfiguration` (`jdhcpkonfiguration_msg1`–`15`), `JPortForwardingDialog` (`jportforwarding_msg4`–`7`, `jgatewayconfiguration_msg19`) | neu (F4.5c): Javas Dialoge als Seiten des Blatts mit „Zurück“ — DHCP-Server (Grundeinstellungen, statische Adresszuweisung; beim Rechner, gesperrt während DHCP die Karte einrichtet, und auf dem LAN-Reiter des Heimrouters), Portfreigaben (Heimrouter); jedes Feld beim Verlassen übernommen statt mit Javas OK-Knopf. Die Zeilentabellen (Weiterleitung, Zuordnungen, Portfreigaben) teilen sich `RowsEditor`: eine neue Zeile, sobald alle Felder gültig sind, Zeile wählen, bearbeiten, löschen. Javas Tooltip zu „Manuelle Einstellungen“ als Text unter dem Kästchen (ein Finger hat kein Überfahren) | | `src/sheet/RouterSheets.tsx`, `src/sheet/NameField.tsx`, `src/canvas/Canvas.tsx` (`highlightedLink`), `src/theme/tokens.css` (`--canvas-cable-active`) | Java `JVermittlungsrechnerKonfiguration`, `JGatewayConfiguration`, `JWeiterleitungsTabelle` (Wörter `jvermittlungsrechnerkonfiguration_msg6`–`26`, `jweiterleitungstabelle_msg3`–`6`), `JCablePanel.farbeBlinken`, `Kabel.setAktiv` | neu (F4.5b): Blatt des Vermittlungsrechners — Reiter Allgemein (Name, Gateway, Automatisches Routing, IP-Weiterleitung nur angezeigt), je Karte (Reiter mit ihrer Adresse, „Verbunden mit …“, Adresse, Maske, MAC) und Weiterleitungstabelle (alle Einträge oder nur die manuellen, Javas Zeilen grau, eine neue Zeile, die mit vier gültigen Feldern übernommen wird, Zelle bearbeiten, Eintrag löschen; bei RIP gesperrt); Blatt des Heimrouters mit Allgemein, LAN, WAN (DHCP sperrt die WAN-Adresse). Das Kabel der offenen Karte leuchtet grün wie bei Java. Javas „Eintrag Löschen“ klein geschrieben | diff --git a/packages/doc/src/view.ts b/packages/doc/src/view.ts index 6ceb037..f26ffc7 100644 --- a/packages/doc/src/view.ts +++ b/packages/doc/src/view.ts @@ -4,7 +4,7 @@ // so that it can run on every change while someone drags a device. import * as Y from 'yjs'; -import { compareIds, stableGeneratedMacAddress, type DocumentationItemKind, type HostLabelPolicy, type NodeKind } from '@mdg-filius/core'; +import { compareIds, stableGeneratedMacAddress, type DocumentationItemKind, type HostLabelPolicy, type InstallableProgram, type NodeKind } from '@mdg-filius/core'; import { inOrder, ROOTS } from './projectDoc.js'; export interface NodeView { @@ -115,3 +115,28 @@ export function topologyView(doc: Y.Doc): TopologyView { docs.sort((left, right) => layer(left) - layer(right) || left.order - right.order || compareIds(left.id, right.id)); return { nodes, links, docs }; } + +/** What a computer's desktop needs of the document (Java's GUIDesktopWindow, GUIDesktopPanel). */ +export interface DesktopView { + readonly kind: 'pc' | 'notebook'; + /** Its label (Host.holeAnzeigeName). */ + readonly label: string; + /** Whether the label is its address: Java's title then leaves the address out (isUseIPAsName). */ + readonly addressAsName: boolean; + readonly programs: readonly InstallableProgram[]; +} + +/** A PC's or notebook's desktop; undefined for any other device. */ +export function desktopView(doc: Y.Doc, id: string): DesktopView | undefined { + const node = doc.getMap>(ROOTS.nodes).get(id); + const kind = node?.get('kind') as NodeKind | undefined; + if (node === undefined || (kind !== 'pc' && kind !== 'notebook')) return undefined; + const policy = node.get('labelPolicy') as HostLabelPolicy; + return { + kind, + label: nodeLabel(node), + addressAsName: policy === 'ipAddress' || policy === 'ipAndMAC', + programs: [...(node.get('programs') as Y.Map).keys()] as InstallableProgram[], + }; +} + diff --git a/packages/doc/test/view.test.ts b/packages/doc/test/view.test.ts index 2fd2957..aa1d791 100644 --- a/packages/doc/test/view.test.ts +++ b/packages/doc/test/view.test.ts @@ -10,7 +10,7 @@ import { describe, expect, it } from 'vitest'; import * as Y from 'yjs'; import { stableGeneratedMacAddress } from '@mdg-filius/core'; import { exportProject, openProjectArchive, type ImportedProject } from '@mdg-filius/fls'; -import { readProject, topologyView, writeProject } from '../src/index.js'; +import { addDevice, desktopView, readProject, setHostLabels, topologyView, writeProject } from '../src/index.js'; const corpus = join(dirname(fileURLToPath(import.meta.url)), '../../../corpus'); const files = ['java-examples', 'java-tests', 'ipad-fixtures'].flatMap((folder) => @@ -70,3 +70,38 @@ describe('the drawing of a document', () => { expect(switchLabel).toBe('Switch 1'); }); }); + +describe("a computer's desktop", () => { + it('names its programs and its label, and whether the label is its address, for computers only', () => { + for (const file of files) { + const doc = docOf(file); + const project = readProject(doc); + for (const node of project.graph.nodes) { + const desktop = desktopView(doc, node.id); + if (node.kind !== 'pc' && node.kind !== 'notebook') { + expect(desktop, `${file} ${node.displayName}`).toBeUndefined(); + continue; + } + expect(new Set(desktop!.programs), `${file} ${node.displayName}`).toEqual(project.installedPrograms.get(node.id) ?? new Set()); + expect(desktop!.kind).toBe(node.kind); + expect(desktop!.label).toBe(topologyView(doc).nodes.find((each) => each.id === node.id)!.label); + expect(desktop!.addressAsName).toBe(node.hostLabelPolicy === 'ipAddress' || node.hostLabelPolicy === 'ipAndMAC'); + } + } + expect(desktopView(docOf(files[0]!), 'nobody')).toBeUndefined(); + }); + + it("takes a label of address and MAC address for the address, as Java's title does (isUseIPAsName), the MAC address alone not", () => { + const doc = new Y.Doc(); + let counter = 0; + addDevice(doc, { kind: 'pc', id: 'pc', name: 'PC', x: 0, y: 0, newId: () => `port-${++counter}` }, 'me'); + expect(desktopView(doc, 'pc')).toMatchObject({ kind: 'pc', label: 'PC', addressAsName: false, programs: [] }); + setHostLabels(doc, 'pc', { ipAddress: true, macAddress: true }, 'me'); + expect(desktopView(doc, 'pc')!.addressAsName).toBe(true); + setHostLabels(doc, 'pc', { ipAddress: false, macAddress: true }, 'me'); + expect(desktopView(doc, 'pc')!.addressAsName).toBe(false); + setHostLabels(doc, 'pc', { ipAddress: true, macAddress: false }, 'me'); + expect(desktopView(doc, 'pc')).toMatchObject({ label: '192.168.0.10', addressAsName: true }); + }); +}); + diff --git a/packages/editor/browser/editorPage.ts b/packages/editor/browser/editorPage.ts index b883480..5043ef0 100644 --- a/packages/editor/browser/editorPage.ts +++ b/packages/editor/browser/editorPage.ts @@ -6,7 +6,7 @@ import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; import type { Page } from '@playwright/test'; import { build, preview, type PreviewServer } from 'vite'; -import type { DeviceSheet, TopologyView } from '@mdg-filius/doc'; +import type { DesktopView, DeviceSheet, TopologyView } from '@mdg-filius/doc'; const config = join(dirname(fileURLToPath(import.meta.url)), '../vite.config.ts'); @@ -35,6 +35,11 @@ export function sheetOf(page: Page, id: string): Promise (window as unknown as { filiusDev: { sheet: (id: string) => DeviceSheet | undefined } }).filiusDev.sheet(each), id); } +/** What a computer's desktop reads of the document. */ +export function desktopOf(page: Page, id: string): Promise { + return page.evaluate((each) => (window as unknown as { filiusDev: { desktop: (id: string) => DesktopView | undefined } }).filiusDev.desktop(each), id); +} + /** A device's button as data-box says it (surface pixels). */ export async function boxOf(page: Page, id: string): Promise<{ x: number; y: number; width: number; height: number }> { const [x, y, width, height] = (await page.locator(`g.device[data-node="${id}"]`).getAttribute('data-box'))!.split(' ').map(Number) as [number, number, number, number]; diff --git a/packages/editor/browser/simulation.spec.ts b/packages/editor/browser/simulation.spec.ts new file mode 100644 index 0000000..4e483a4 --- /dev/null +++ b/packages/editor/browser/simulation.spec.ts @@ -0,0 +1,250 @@ +// The simulation in Chromium (F4.6a): Java's mode buttons, the design locked +// while it runs, the speed, the cables that carry frames, a computer's +// desktop opened with a tap — Java's title, its programs in Java's order, its +// network as it runs — and desktops kept over a return to the design. + +import { expect, test, type Page } from '@playwright/test'; +import { desktopOf, drawing, onDevice, openEditor, serveEditor } from './editorPage.js'; + +let server: { readonly base: string; readonly close: () => Promise }; + +test.beforeAll(async () => { + server = await serveEditor(); +}); + +test.afterAll(async () => { + await server.close(); +}); + +async function deviceNamed(page: Page, name: string): Promise { + return (await drawing(page)).nodes.find((node) => node.name === name)!.id; +} + +async function tap(page: Page, id: string): Promise { + const at = await onDevice(page, id); + await page.mouse.click(at.x, at.y); +} + +const simulationButton = (page: Page) => page.getByRole('button', { name: 'Wechselt in den Aktionsmodus' }); +const designButton = (page: Page) => page.getByRole('button', { name: 'Wechselt in den Entwurfsmodus' }); +const desktop = (page: Page, id: string) => page.locator(`section[data-desktop="${id}"]`); + +/** Starts the simulation and waits until the room says it runs (it answers from its worker). */ +async function start(page: Page): Promise { + await simulationButton(page).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'simulation'); +} + +test('locks the design while the simulation runs, as Java does, and gives it back', async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls'); + const router = (await drawing(page)).nodes.find((node) => node.kind === 'router')!; + await tap(page, router.id); + await expect(page.getByRole('complementary', { name: 'Einstellungen' })).toBeVisible(); + await expect(designButton(page)).toHaveAttribute('aria-pressed', 'true'); + + await simulationButton(page).click(); + await expect(simulationButton(page)).toHaveAttribute('aria-pressed', 'true'); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'simulation'); + await expect(page.getByRole('complementary', { name: 'Einstellungen' })).toHaveCount(0); + await expect(page.locator('[data-palette]')).toHaveCount(0); + await expect(page.getByRole('button', { name: 'Rückgängig' })).toHaveCount(0); + // Java's slider: 90 per cent at first (Verbindung's delay factor 10). + const speed = page.locator('input[name="speed"]'); + await expect(speed).toHaveValue('90'); + await expect(page.getByTitle('Aktuelle Simulationsgeschwindigkeit')).toHaveText('90%'); + await speed.fill('40'); + await expect(page.getByTitle('Aktuelle Simulationsgeschwindigkeit')).toHaveText('40%'); + + // Nothing moves, nothing is chosen, a key removes nothing. + const at = await onDevice(page, router.id); + await page.mouse.move(at.x, at.y); + await page.mouse.down(); + await page.mouse.move(at.x + 80, at.y + 60, { steps: 5 }); + await page.mouse.up(); + await page.keyboard.press('Delete'); + const still = (await drawing(page)).nodes.find((node) => node.id === router.id)!; + expect([still.x, still.y]).toEqual([router.x, router.y]); + await expect(page.locator('g.device[data-selected]')).toHaveCount(0); + + await designButton(page).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'design'); + await expect(page.locator('[data-palette]').first()).toBeVisible(); + await expect(page.getByRole('button', { name: 'Rückgängig' })).toBeVisible(); + await expect(page.locator('input[name="speed"]')).toHaveCount(0); + // The speed stays the room's for the next start. + await simulationButton(page).click(); + await expect(page.locator('input[name="speed"]')).toHaveValue('40'); +}); + +test("lights a cable while it carries a frame, in Java's green", async ({ page }) => { + // The notebooks ask for their addresses by DHCP as the simulation starts. + await openEditor(page, server.base, 'einfaches_rechnernetz_komplett.fls'); + await simulationButton(page).click(); + await expect(page.locator('path[data-link][data-active="true"]').first()).toBeAttached({ timeout: 10_000 }); + await expect(page.locator('path[data-link][data-active="true"]').first()).toHaveCSS('stroke', 'rgb(0, 255, 64)'); + await designButton(page).click(); + await expect(page.locator('path[data-link][data-active]')).toHaveCount(0); +}); + +test("opens a computer's desktop with a tap: Java's title, its programs in Java's order, its network as it runs", async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls'); + const id = await deviceNamed(page, 'DNS-Server 2.10'); + expect((await desktopOf(page, id))!.programs).toHaveLength(3); + await start(page); + await tap(page, id); + const window = desktop(page, id); + await expect(window.getByRole('heading')).toHaveText('DNS-Server 2.10 - 141.99.2.10'); + await expect(window.locator('.desktop-icon span')).toHaveText(['Software-Installation', 'Datei-Explorer', 'DNS-Server', 'Webserver']); + await expect(window.getByRole('button', { name: 'Startbildschirm' })).toBeVisible(); + + await window.getByRole('button', { name: 'Netzwerk' }).click(); + const values = window.locator('.desktop-network dd'); + await expect(window.locator('.desktop-network dt')).toHaveText(['IP-Adresse:', 'Netzmaske:', 'DNS-Server:', 'Gateway:', 'MAC-Adresse:']); + await expect(values.nth(0)).toHaveText('141.99.2.10'); + await expect(values.nth(4)).toHaveText(/^([0-9A-F]{2}:){5}[0-9A-F]{2}$/); + // A press beside the panel closes it. + await window.locator('.desktop-info-layer').click({ position: { x: 20, y: 20 } }); + await expect(window.locator('.desktop-network')).toHaveCount(0); + + // A switch has no desktop; its long-press menu has nothing either. + await tap(page, await deviceNamed(page, 'Switch 1')); + await expect(page.locator('section[data-desktop]')).toHaveCount(1); + await window.getByRole('button', { name: 'Schließen' }).click(); + await expect(page.locator('section[data-desktop]')).toHaveCount(0); + + // Java's menu: "show desktop". + const at = await onDevice(page, await deviceNamed(page, 'Notebook 1.10')); + await page.mouse.move(at.x, at.y); + await page.mouse.down(); + await page.waitForTimeout(700); + await page.mouse.up(); + await page.getByRole('menuitem', { name: 'Desktop anzeigen' }).click(); + await expect(page.locator('section[data-desktop] h2')).toHaveText('Notebook 1.10 - 141.99.1.10'); + await expect(page.locator('section[data-desktop] .desktop-icon span')).toHaveText(['Software-Installation', 'Webbrowser']); +}); + +test('moves a desktop by its title bar, brings the one touched to the front, and keeps them over a return to the design', async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls'); + const [first, second] = [await deviceNamed(page, 'Notebook 1.10'), await deviceNamed(page, 'Notebook 1.11')]; + await start(page); + await tap(page, first); + // Moved by its title bar into the half of the page the second notebook is not in. + const at = await onDevice(page, second); + const width = page.viewportSize()!.width; + const bar = (await desktop(page, first).locator('.desktop-titlebar h2').boundingBox())!; + const before = (await desktop(page, first).boundingBox())!; + const step = { x: (at.x < width / 2 ? width - 650 : 0) - before.x, y: 30 }; + await page.mouse.move(bar.x + 10, bar.y + 10); + await page.mouse.down(); + await page.mouse.move(bar.x + 10 + step.x, bar.y + 10 + step.y, { steps: 8 }); + await page.mouse.up(); + const after = (await desktop(page, first).boundingBox())!; + expect([Math.round(after.x - before.x), Math.round(after.y - before.y)]).toEqual([Math.round(step.x), step.y]); + + await tap(page, second); + await expect(page.locator('section[data-desktop]')).toHaveCount(2); + const z = async (id: string) => Number(await desktop(page, id).evaluate((element) => getComputedStyle(element).zIndex)); + expect(await z(second)).toBeGreaterThan(await z(first)); + await desktop(page, first).locator('.desktop-titlebar h2').click(); + expect(await z(first)).toBeGreaterThan(await z(second)); + + await designButton(page).click(); + await expect(page.locator('section[data-desktop]')).toHaveCount(0); + await simulationButton(page).click(); + await expect(page.locator('section[data-desktop]')).toHaveCount(2); + expect(Math.round((await desktop(page, first).boundingBox())!.x)).toBe(Math.round(after.x)); +}); + +test('takes nothing back and keeps no design tool while the simulation runs', async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls'); + const id = await deviceNamed(page, 'Notebook 1.10'); + const at = await onDevice(page, id); + await page.mouse.move(at.x, at.y); + await page.mouse.down(); + await page.mouse.move(at.x + 60, at.y + 40, { steps: 5 }); + await page.mouse.up(); + const moved = (await drawing(page)).nodes.find((node) => node.id === id)!; + await page.locator('[data-palette="cable"]').click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-tool', 'cable'); + await start(page); + await page.keyboard.press('Control+z'); + const still = (await drawing(page)).nodes.find((node) => node.id === id)!; + expect([still.x, still.y]).toEqual([moved.x, moved.y]); + await designButton(page).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-tool', 'select'); + // Back in the design, the step can be taken back. + await page.getByRole('button', { name: 'Rückgängig' }).click(); + await expect.poll(async () => (await drawing(page)).nodes.find((node) => node.id === id)!.x).not.toBe(moved.x); +}); + +test("titles a desktop with the address alone where the address is the computer's name, and lights its network icon while its cable carries a frame", async ({ page }) => { + await openEditor(page, server.base, 'einfaches_rechnernetz_komplett.fls'); + const id = await deviceNamed(page, 'Rechner 1'); + await tap(page, id); + await page.getByRole('complementary', { name: 'Einstellungen' }).getByLabel('IP-Adresse als Name verwenden').check(); + await page.getByRole('complementary', { name: 'Einstellungen' }).getByRole('button', { name: 'Schließen' }).click(); + // The notebooks ask for their addresses by DHCP as the simulation starts; the switch passes their broadcasts on to Rechner 1. + await start(page); + await tap(page, id); + const window = desktop(page, id); + await expect(window.getByRole('heading')).toHaveText('192.168.0.11'); + await expect(window.locator('.desktop-network-icon[data-active="true"]')).toBeAttached({ timeout: 10_000 }); + await window.getByRole('button', { name: 'Netzwerk' }).click(); + await expect(window.locator('.desktop-network')).toBeVisible(); + await window.getByRole('button', { name: 'Startbildschirm' }).click(); + await expect(window.locator('.desktop-network')).toHaveCount(0); +}); + +test("closes a desktop whose computer is removed while the design is shown", async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls'); + const id = await deviceNamed(page, 'Notebook 1.10'); + await start(page); + await tap(page, id); + await designButton(page).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'design'); + await tap(page, id); + await page.keyboard.press('Delete'); + await simulationButton(page).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'simulation'); + await expect(page.locator('section[data-desktop]')).toHaveCount(0); + // The next desktop takes the first place: the gone one is not counted. + const next = await deviceNamed(page, 'Notebook 1.11'); + await tap(page, next); + const area = (await page.locator('.editor-area').boundingBox())!; + const box = (await desktop(page, next).boundingBox())!; + expect([Math.round(box.x - area.x), Math.round(box.y - area.y)]).toEqual([24, 76]); +}); + +test.describe('on a phone', () => { + test.use({ viewport: { width: 390, height: 844 }, hasTouch: true }); + + test('fills the surface with a desktop opened by a tap, below the mode buttons', async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls'); + await simulationButton(page).tap(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'simulation'); + await page.getByRole('button', { name: 'Alles zeigen' }).tap(); + const id = await deviceNamed(page, 'Notebook 1.10'); + const at = await onDevice(page, id); + await page.touchscreen.tap(at.x, at.y); + const window = desktop(page, id); + await expect(window).toBeVisible(); + const box = (await window.boundingBox())!; + const area = (await page.locator('.editor-area').boundingBox())!; + const modes = (await simulationButton(page).boundingBox())!; + expect(box.width).toBeCloseTo(area.width, 0); + expect(box.y).toBeGreaterThanOrEqual(modes.y + modes.height); + expect(box.y + box.height).toBeCloseTo(area.y + area.height, 0); + const home = (await window.getByRole('button', { name: 'Startbildschirm' }).boundingBox())!; + expect(home.height).toBeGreaterThanOrEqual(44); + }); +}); + +test('speaks English when asked', async ({ page }) => { + await openEditor(page, server.base, 'zwei_rechnernetze_komplett.fls', '&lang=en'); + await page.getByRole('button', { name: 'Change to Simulation Mode' }).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'simulation'); + const id = await deviceNamed(page, 'DNS-Server 2.10'); + await tap(page, id); + await expect(desktop(page, id).locator('.desktop-icon span')).toHaveText(['Software Installation', 'DNS server', 'File explorer', 'Webserver']); + await expect(desktop(page, id).getByRole('button', { name: 'Home Screen' })).toBeVisible(); +}); diff --git a/packages/editor/src/Editor.tsx b/packages/editor/src/Editor.tsx index 09d37b0..e3cc7a1 100644 --- a/packages/editor/src/Editor.tsx +++ b/packages/editor/src/Editor.tsx @@ -1,6 +1,10 @@ // The editor on a document: the palette, the surface, the tools of the design -// mode (F4.4b), the device sheet of the selected device (F4.5). The -// simulation follows (F4.6). +// mode (F4.4b), the device sheet of the selected device (F4.5), Java's mode +// buttons and the simulation (F4.6): while it runs, the design is locked as +// in Java — no palette, no sheet, nothing moves — the cables that carry a +// frame light up, and a tap on a computer opens its desktop. Desktops left +// open stay over a return to the design and show again at the next start, +// as Java's do (GUIContainer.closeDialogs, reopenDialogs). // // Every change goes through packages/doc's commands with this editor's own // origin, so that its undo takes back what this person did and nothing of @@ -15,7 +19,10 @@ import { ContextMenu, type MenuItem } from './design/ContextMenu.js'; import { Palette, type PaletteKind } from './design/Palette.js'; import { RouterDialog } from './design/RouterDialog.js'; import { DeviceSheet } from './sheet/DeviceSheet.js'; +import { DesktopWindow } from './desktop/DesktopWindow.js'; import { useTranslate } from './i18n/i18n.js'; +import { ModeBar } from './simulation/ModeBar.js'; +import { useSimulation, type Simulation, type SimHostFactory } from './simulation/useSimulation.js'; /** The document's drawing, read anew after every change. */ export function useTopologyView(doc: Y.Doc): TopologyView { @@ -66,9 +73,33 @@ const toolButton: CSSProperties = { /** Whether a key press belongs to a field being typed in. */ const typing = (target: EventTarget | null) => target instanceof HTMLElement && (target.isContentEditable || ['INPUT', 'TEXTAREA', 'SELECT'].includes(target.tagName)); -export function Editor({ doc }: { readonly doc: Y.Doc }) { +/** A desktop open on the surface: whose, where its window lies, and how far up (the last one touched on top). */ +interface OpenDesktop { + readonly id: string; + readonly x: number; + readonly y: number; + readonly z: number; +} + +/** Brings a desktop to the top by its stacking, not its place in the page: moved in the page, it would lose the press on it. */ +const toFront = (open: readonly OpenDesktop[], id: string): readonly OpenDesktop[] => { + const top = Math.max(0, ...open.map((each) => each.z)); + return open.some((each) => each.id === id && each.z === top) ? open : open.map((each) => (each.id === id ? { ...each, z: top + 1 } : each)); +}; + +/** A desktop that watches its computer's network while it is shown. */ +function WatchedDesktop({ simulation, ...props }: Omit[0], 'settings'> & { readonly simulation: Simulation }) { + const { watch } = simulation; + useEffect(() => watch([`node:${props.id}`]), [watch, props.id]); + return ; +} + +export function Editor({ doc, createSimHost }: { readonly doc: Y.Doc; readonly createSimHost?: SimHostFactory }) { const t = useTranslate(); const view = useTopologyView(doc); + const simulation = useSimulation(doc, createSimHost); + const simulating = simulation.mode === 'simulation'; + const [desktops, setDesktops] = useState([]); const origin = useMemo(() => ({ editor: crypto.randomUUID() }), []); const { manager, canUndo, canRedo } = useUndo(doc, origin); const canvas = useRef(null); @@ -88,6 +119,37 @@ export function Editor({ doc }: { readonly doc: Y.Doc }) { return () => clearTimeout(timer); }, [message]); + // The simulation locks the design: what was chosen or begun is let go. + useEffect(() => { + if (!simulating) return; + setSelection(null); + setCableTool(false); + setCableFrom(null); + setMenu(null); + setRouterAt(null); + }, [simulating]); + + useEffect(() => { + if (simulation.failed) setMessage(t('sim.failed')); + // The message is shown once per failure. + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [simulation.failed]); + + // A desktop whose computer is gone, or is no computer any more, closes (Java: reopenDialogs). + useEffect(() => { + const computers = new Set(view.nodes.filter((node) => node.kind === 'pc' || node.kind === 'notebook').map((node) => node.id)); + setDesktops((open) => (open.every((each) => computers.has(each.id)) ? open : open.filter((each) => computers.has(each.id)))); + }, [view]); + + /** Opens a computer's desktop, or brings it to the front. */ + const openDesktop = useCallback((id: string) => { + setDesktops((open) => { + if (open.some((each) => each.id === id)) return toFront(open, id); + // Java stacks a desktop that does not fit beside the others a little further on. + return [...open, { id, x: 24 + 24 * open.length, y: 76 + 24 * open.length, z: Math.max(0, ...open.map((each) => each.z)) + 1 }]; + }); + }, []); + // What is selected may be gone (removed here or by someone else). useEffect(() => { if (selection?.kind === 'device' && !view.nodes.some((node) => node.id === selection.id)) setSelection(null); @@ -137,6 +199,11 @@ export function Editor({ doc }: { readonly doc: Y.Doc }) { ); const menuItems = (target: Selection): MenuItem[] => { + if (simulating) { + // Java's menu in the simulation: a computer's desktop (its data exchange follows with the capture, F4.7). + const node = view.nodes.find((each) => each.id === target.id); + return target.kind === 'device' && (node?.kind === 'pc' || node?.kind === 'notebook') ? [{ key: 'showDesktop', label: t('menu.showDesktop'), onChoose: () => openDesktop(target.id) }] : []; + } if (target.kind === 'link') return [{ key: 'removeCable', label: t('menu.removeCable'), onChoose: () => remove(target) }]; const node = view.nodes.find((each) => each.id === target.id); const cables = view.links.some((link) => link.sourceNode === target.id || link.targetNode === target.id); @@ -161,7 +228,7 @@ export function Editor({ doc }: { readonly doc: Y.Doc }) { // The keyboard: undo and redo, delete what is selected, Escape lets go. useEffect(() => { const key = (event: KeyboardEvent) => { - if (typing(event.target)) return; + if (typing(event.target) || simulating) return; const command = event.ctrlKey || event.metaKey; if (command && event.key.toLowerCase() === 'z') { event.preventDefault(); @@ -180,18 +247,20 @@ export function Editor({ doc }: { readonly doc: Y.Doc }) { }; window.addEventListener('keydown', key); return () => window.removeEventListener('keydown', key); - }, [manager, selection, menu, routerAt, remove]); + }, [manager, selection, menu, routerAt, remove, simulating]); return (
- { - setCableTool(on); - setCableFrom(null); - }} - onDevice={onDevice} - /> + {simulating ? null : ( + { + setCableTool(on); + setCableFrom(null); + }} + onDevice={onDevice} + /> + )}
{ + const kind = view.nodes.find((node) => node.id === id)?.kind; + if (kind === 'pc' || kind === 'notebook') openDesktop(id); + }} onMenu={(target, at) => { + if (simulating) { + if (menuItems(target).length > 0) setMenu({ target, at }); + return; + } setSelection(target); setMenu({ target, at }); }} /> -
- - +
+ (mode === 'simulation' ? simulation.start() : simulation.stop())} onSpeed={simulation.setSpeed} /> + {simulating ? null : ( + <> + + + + )}
+ {simulating + ? desktops.map((desktop) => ( + (link.sourceNode === desktop.id || link.targetNode === desktop.id) && simulation.activeLinks.has(link.id))} + x={desktop.x} + y={desktop.y} + z={desktop.z} + onMove={(x, y) => setDesktops((open) => open.map((each) => (each.id === desktop.id ? { ...each, x, y } : each)))} + onFront={() => setDesktops((open) => toFront(open, desktop.id))} + onClose={() => setDesktops((open) => open.filter((each) => each.id !== desktop.id))} + /> + )) + : null} {menu === null ? null : setMenu(null)} />} {routerAt === null ? null : ( =ciG+d z%c*ng)~);Zn;PxvseWdrr)H|VLsgVy2%geB1%W^WpJYF%fT2B4| zfu0T6JATppk-D9t_={;yqwi2r)1}^>?{vnq+@dKSD+J3ppgYS?@k@o|(F<{Z`X`00 z=+ASW_}zsBqQ}trg`{Ote5ML9jtJo$d>2lfr0|T#(w;lL`_t>u?#fuBUM}k1N>Otg zJZ+AX)6_@U?Uz={%KYZy)zT=P+vQ95F_{@kcq2mYx_PFYj^Q@AZ;mi3iYV%#E899) zW_@k%?CkFB9fIM@T$x6nw+o$5RB?8jP}3Lsp8?qiXAMI5u;3XZ4Go!iKI9D!$2F(e z9eAmW2ieT&Qw_Zv&~Zhb+qEtO!$0k`hHBHI#8!aL+!Q3%=-rRFt+Sd3Pg-~_nkPMZnzojLx9#t z`{gDtB%Ec$8;u8>btPOtS#`ztL}qZ%G{d>r4#Pz+LU zs^4+Gao-SXxh(qi*Un#%mhllTJ{0I>1Br9AjV-*o^gl!9s~nDmZZziJHs>AwAz12E z!f#3IlRB)YZWD*_b}ruGaVB}Um-%(BJOlX+>&cWVab}}%w4CO(DJ%Gj30fE~T+QZ7 z=$5_*Q_mNq1??{PM)oN-k(@3Rp66TlUV%+kO1pP8;@TssU~DBXicG){uybzecd@iEy9L=}rW=7z`1n=Vy2fC#;HOUSf$0(8coL30UDU zSs_ofBm(XDW}!{CoYyI3CjGhnG-d>x<3x)huz!V~FI~+UmP@ZSVNM2D8Tfvzz*f<` z8`<@#uC}o0v_=qp;r$xSsJ-{)jYr^$vywR6xEb)nzzpJ0%8R-ax@}`3mPcZvO9>0?cQzUVxDX%ih_z!D*Tmt@ z9!4s)j6D%L1znLd;Sh-$6m7w%i*^m+T@`iR&7FDxPen(yww6v0V3pgbU=jPH{-@SB zR+&VMs~%uh`66E@EPa+*_Gx27@EH4#0C_Zyl)VCAg$dj4q>x#B(iZW1Rj%%Z ztHaanF6-$Sud)TOTBNIW*h8fDK;B=yB|Q#ZV7KgqqbTot+4CvcG%kx@PkA=nt{5J& zgLOvJis+U3ixP`#rpjEkIog|S(VJGPY0qQ+F8Ah@o(YE{lQ0~7uUG@pd-JoOpZ~2i z{T#&=#=`oPCv=XvzpipTpO2k6di%A4p#s2_V%qVwZvbEL*@i3FT8xd7zxu30dWoCt z!Ek5UoQdnrL`vDVL(sEB5$?C06_K`l;1b`>y6?f*IsEB0uh}doL!Nf8Y?-U3zgs1n z)TkVf_|mR;3~Dh*yL+}Lzwt`$b226h#}#M(4n5bHdbZ8@qt}KiS!)9SgL5fD5q{tj z)o*)u%<@YG{f9^{SHGLQH9X+=amILPZ=(mo??=_g2zYX648ZlPA4ReppnMd zEsD`YM;$>ck9=>w2=m=0DmxlB5yyGFcnYFKu_@CB2;Si=un(r&`SOWq56SSRWo^#( z${B}{^VJ8{zGB%(MD09|9==r`VHqO%%Q=-^g(0f`z1~-p+FQNc+=81;Aq!*U zp;lVS8jX<95aWSGMa`@I&9DYP;4+VlOB%g7*DOob)l=q;)=*%t!VIgqMgrD?i0>`t zc%dJk^Lz8EUO>TNGB+K`TDAWNUccpSVdeJK(IuVy=TqU|!5{oBA#&_bC>Q|9UF05v za{|%cctZN@$Qv(}Tjv5ZY{AvsND?+${-{LFdfjyvKV!8-=TF$iAgcTF`B)*cQtZ8#OJFr(VKz(ys4s2Hff9*2K;&m@6-9yEr{VeH2cz$w4i}UYAVVR4fjx$E z2p8zE9eWsSe5rwGAiAJJw+|xt%{DvrZDh!9Szfo72dD4X_M&bPiPa@x+QZ)#-Ui2% zE)%U9v;OqOqKid|1YA4$5lQED{UtVMz_SBt4_2IF7G3q+p+Osd%s4sMOV!jX__5u} zAPKx5YBc)iIboD$A^))|6(6Iq-HcL7J9oM79<;{ik7xLR(5&7MUvSV{G6iK8I}~Rw z<0g!kt>W!O0%u~^2jy2^G5vu;I%3BL$LDM+qiO=N5{GquVD(QU%vx`SOa1kaD-UEy zO(d1Ie}Jl_q1gz~aX`fa(Xrvv!=6bqUCg>_HL7B zA~N6umIX|6ARDu3C8Tz*jP3PWrRff8_of_tPSa!bZjO3@IXC@td__iE|wGn^ysz zo*rshXBY}MVdxHF{;#XN)at!-)R>H}#3EOB2b*3mzdVwSL^zJ_)sk^Rz7XNT%imNz z_l188e?{gB^D2L941LWdhB~Ic2)+AsHMzuD6elyGlf3B3=+0^qH8s=QlI~!L0sL&G zI_2@Z#JYJo;KnH+q1-7GQQ57(kP&CL1Ok%_+h1gyuf#y8I#y|A+nQ}r<{#Ew$ctB} znV@3qj*GDu-ol7>79YY%3!^G6R+QF-=Dvns=h4UJgoB^yT7%K-86rvOYGP0BaRMqc zYB)FaqFWigjV=iud#}YF=}P1Cx6f>ADbDek-{rxIVbpDwwiiXQJwA+gY(#i&PRo3D z>VhMLQEd82`gN}!i0UCp+xNB&)jyYUANS5n!tiB_D2tzpg`f1kogopyo&Vn9h7fD* zdavt{q) z!>V3$nCM$a#|n#9at)1(?ncg1NV_#lCi(hxjfN}fIIm;B9zFxe><^3t(YY@aktOfw zzL%E+6ZLQPJLU28LR)2oDeQK)68b#MM&@(H=6qWcxl?{zJ0-6IzBpTGS;6466u(%V z7iIOxKPWNv&Xwp4s{7hm&va(WPIWQI>da-LLr^W_5s2%J*qgp-%yYcBj9Jg@yW;L& z%h0U@ryJDiPdv(p-3(|O3<~&wf!WzxpwAOn>j*&gM$jTTp=Tz@M-H(C=t;9%tbTZq z2NBhSBxD=eG zTf_F#rLWyD0`Ls9WvX1n!soYI?^N^d1@-D9r@?7TFpvd3s_c7cb~{biLS+NxZ4X7Q z0B{-Q)dCD`4h7h~$;|#%y0}i#68&opZ#>I0*P!gyY3+S;SrqNm5n#94V#UAq>H?^p(?2ZNZ(RiD zyP%6>(8m~5ALL>o=hS0N)tzDC``zEiaoQC82=~Y~4+fvVZj&(8vIb^R8QA(8ll^8A z8v(?eu=IBQiz_vh!Qtdx3RCIxUwFE`lebJa$Kyk{kNN4%Gm!IcQsib7%Nyay_P8Cc^ua8CJsF}d_w^N?F)eDN2D9KYo{Nz-eeA!(;ksxxYazf;>^ zv+NoM-Q07QbOYx4X)5^g+SoB(dr!C+S|Z0idR(@iE=-F)yyP6F22P9X^^Z99noPOv z4`)kBhXBvplj~;Kjb|_PO46$*sFP;^G)LwXf1~TcoFNa#oXqm{P$r_D@XY?2vLCE8 z*$KWYb;11ci}^LS4%7AlY$72tx7WUX%g7Ry&>wT`&=&+T? z6=%t}I%4K$}j(x>U68Y~E<;pCJouTM1t-2A8A5Gm!I?4;h|7BkJM$ka-aZ zzP$tH+OFxVgJ&{;skIfcef~K)+F}=RZpM{taEpX=PR68E>-%2Ob7lCs5qR9>E|*FT z?tkEEID#f9flU?eB7XWJ4wYt1G>|$=`PI;9_Y7e0zWRI#C>NnFk(~ELcSNEgz*arm z>>vF0fD2FiJHDIJ7@R%bUbH3-u!>{Hovww*0;m)>mp!;IS2@&%@qN3d4P*1Gdm1Q_ zelN$>{jKn=!snDj8|^L)8~`>9#J9jp|IhvP&O%Bgr5QyQ* z)>>WdN9wVjj@wdyjP&cIN~WRuBvZ%VD>!M@7H%0wYf5LI$v%FnteM z$J`ZDcB7}}(zh$qyedl%GfR0N>|$q{a&Wg+u^FKtLtlThxLT0aS|SvrQTj{gn5X5V zE%;<>Vywa4*%?yAw?1~Fv}>MY!y?+FvHC{QEK|30Ri%*%oK7b-@H$RcGBmHnck=HA zUaAAv_ZekR6&G8auRl|6>`n1g9ZG#<`RKt?iWPocD-NZtGR(EK>a${*ipL>@v-%U} zw}EiOa)}HbdZEJ4*~$?Vwo3CIu1*3)i<@7A$zA7Hgl)eJa5aOM=uQmTlq)n28hnZf zWC(4XTNIJgnTi;M2Ne?wz3n3c=h-%F!uD4bVldxUym{AnT9$pv&?J6l^Tn!n zp50tanq_DS8F54^uEqGzD!Hin12ApW-|&~wc1SC>_qtH=2c=WfkC>i0Q;XGB-tRT?7?ME!xw%MkmfBQm7c$Vf2659oxuxe)NYJy%CP_XFT4ZlmYH<47U|2=+` zC$2VL^NJTs@sOj=?O9+QyI;jhN#$?;rJ(2D{m)B3L+MyKaIW6q)DReYWQH%v;oY39 zX+h1)>D*!l01H)aQ?Df?Rcwp7QC7|i@k z&HGKxG97yylZgaN-v5(pN=Ni*1w;Gq8PX+=?$~giKgQJlXgP}s7 zV&4Wu_Yha@9N6Jh9JAgI=8sKMPiB2@>M^XMQqaRzOXzsz);ZF`9n9nC z+Q1$;MJR&g)4HWWv`Xm;d?gb6x^GFlMDO3nPc5b{MhfmzsIcR$!+SoRF~u`UEh!|` zZ~7z&|9LFIok~#*30Mr9Kyyu;0w3w%gyVcnc}8+F-_A+>sW6KPqfkRI&V$qH?5$*y z)mibY**SO9O7iOc&YwHskhhoeh_o-}A>a=f z=GtpaDO^qh5(lZ&aI{;6Gh@ueECe1_16IR909uy&WwnOxGjw}z;`FNwpjTl2i z-=EP;6RNx}CEA?4Uh#8hWuf0IOn4WeHdg7C+Rm2JQh})x2wr+^w}u4CfZuVJ)J^#8 zDSyp)YHViXsnIr+#z>pE7ZYbCu<5{0Rn&JsPMETAlgD<3 zIQfTUr~792WH+pRsT2^8e>p%twv%j;;$Vo)<0O`tF4FR>JdQq@!8IOSeYK(fHEGoI zPcf5=Iq!7q&r2{h)j^k7bZJGdQ600ssCST!$_sR*8s~S6Oa&}b*N&C3u5UK64~(BZ z+p=F&Q#;{{G;Zb>?McV~BB1U?AnKtbxZ{bjEu?rlniY}ECrb+Z{TMNX8TGS#!~59u zh|qHQ!Y@isEV}#$yP^_fww$+ig#AmN9<^l_`reqnSpNP=JyzHKzZaXwGH4&p!(J2a z>smQ0D^pDyM{zF}>mkO?c0xmLY9gvT>V7INIWOhi^L>B$gwwsuw1NSF{JG z7!0eKn94>fao@T16Cd&D3Z18hsq*^wx^RAp2Xbp#N+k=?cCWk+aB);Zrp;Q(7HS05 zMx!M&Y&v5oufzmJ^=}$5cA^@l&P-&!c=&FMB|fKhQ(d&tHMZras{X|*I$Ek9r_=iV zDe;tm$)yLvk$lGN33mqH(MwDWSBF0{QQkET$VOGMr}LGj?WWD9{a4C~d~uQS_(g-{KeT;f+J z7sMi_&>wyg&lOG^-!SX@F0N;1D=6LMTmL&3`bM*&3qOtcK7nF>+Go+ob1CWCP|*u1 z+0K5SI^(w7bt}jG$Y&-+Z!**cr1`3u6;;TGn`_ki+~plQM)tO-gCmB2e7p0?XPC3q zWo1yB-+1wy`d4z#%tU07$$JdGMb*cw!Gf5dKQFf=?q`{rEy+{dv9*s0qxh#;LnP>jkaA8-Lt;Xl$p3=S;g?0zucFO;Jg1d z^*moeg=Tqy>&FGNO(@wtFBXvmm*)t9VmBKzIblRd>YgvlYZ7iH#uU;Xti9WTQ-q-Q z&)n~-O{}1$$TqUb z*uNIN)IQ`OLR1cSTxpq8IFDhBo%^faS4n@|=6bl-i25BUX*5yh{9}{NAh|tePgyR0 z>~y!3u}<(fDE}v~;mEd>5Z@9TlWO+C2dRB|XvM6-Hkkq6@`e&MdrS zg&a#$J$>8nFG^U*9`sQRWU!^O_>(h!ODW;yh*;m5;S+vQ`FSxy0e+OtCD(L=gE|b% z*D2V=0RBW^=qbNhc2kx`@jDO-& zy`J$Ue&8!5v!aL*d-_2rXWqTW^E;+q)ZgG&KPYs#6V`sIe%IcrquvkO6aLBW(cpP+ zW`S#V|H^`UASrjNO7`S=f^G^ib&!5b`zt3&7Vo<Ki98p@j;@-*O~qTO<&oRKHKa z9D?EO19Pv^_&#yQvxGkr-Qix^EUxs)a`XE6X^kr(`si16lEqf6S^PlN*FkQg`1j0Q z!HoCI`G=MZ+LGF01MUir`Z-2AEk+HQ<@wW}$iOVGHi9o&3_A>J5H`~8ZPMRT+w67b zBt!TQJhoy<5j=9=gcsEctB%lQ-9qzW*oU2`=={sJ8p9DMJbN%SH9%sn~5Lo zW*cD9ScVa1=7fO(_U*WjN^M=MFY+T=H)QC_mF2q6A97x03_mECBUR1a6VC{8hY0f$ z?Hv(scYcUj5hT`N=hm3ZS+^*o9f=6o+NV}vdQv_#ka{U-XBUxA%{Hw|7ykS340w3= z)n@%vQu)^WAYPq2#&h-{S`Q&O{+3(;Dja5t)A@#-rM`NaVMUGC`*Ku*9)^##BK2V;o z@?&AYZD|VZo8wY8ozS3iW?+T)pnOoV`J10*G-Wi_+%@{OS=SpXGuU|+U%3hvSNw{< zITR?twMcd1V;YJsRdE!RncN?5m#@^3k{^;Ni}OUDy{cdBWQ68^mA1k$Bbt_*?q&oIk>FOa{INj z#nMqyu5&QumllC06Y{=78if47tn~^)gALu}&?@pz9kbDgwWwFB*D=nw+T^@Z{v-%x zkwYT5IMTtDGpX+1#juwfdQC9fjO&wS89$vcDv)DRY1;K!cJAYB?QwD4D?eo7eB46o zhpk`xUvdwbtWK&!_BQpieISe0f!re4m{ZTqo@WOe1i)^ug4CeK=EQGt_F3yUTg@MR z)Zr^#kn&6f)X4PgB|Zf$85S*Z^c-EkTEm6peNF|Xg;$`y>&K0TAQR6p8F|UdxwMXZ zW}CFphPKD#?%nz)nklV)OeCUS}`+i-MNFyi8P_4mY?KzvomDQ~tbQw?(LI+3`5G?9j`6 ztgHt^n=AfnAa$OXp3*vq#P*@hsS8MQBhk57Hc*%543W5BR(;V!Fc#p7feC%7d(Yzk z$ki&nuTpqf4d_t6A!n^6C-BkusHxvBR!4Gsrj^kqKkjEj&SF$ry*K<6F_Vc2iFjH2 zJ%|`8B_H=ao~UKCydu4SAqwkW_ab4feF|$%olL&LoaiLXBbd`Uldqv7cYlNG6~mMp zV;l3Q2l#{Yr@0kOO{y5Sy1iP9_v4-$qmJ6Y4B&gMZPmzMVUYUUPcr$Lo!!W zN@Df*G^Yn-oP+U3(W)3on!YwvDIQ)wRE8Ny$7b5)Djf* zxLpRO8xt45zEHEnRPdIW&q|fA<5*}iJ^WoNUpLw{>xyQxf-SvfUHSi#duG3)*&s0n z9&vsob3aq9av7Lq(n+vMizN=rk_R`{V#Qadh z^#5ly5YZ{;PbuFz{9P{J#&Q2Jv~hS}eZO(<(OPvc_g`ecVX(KTbVy1$;bO=w;d7>~ z5PMtJkirac?_Wt1FpIax(D!S(?QTZNz%>`b1mvI{s z!K8_Fjt{e>j&>&Yh^VdG98#Gkj;^Wta;G{*LI@wsKK2lIKDc!q0+cl#l}-d!>;UUg zsnWx~@9MV-yJ*{)b;BV{bMobpXQK`lKZuOS?udR&(qtaR;A??BWqcq9;D=2}*Y1+IECSOG7H96r>pSs_z5}^oY%ON{h%n+8 zwVWz@i2S+ztInh+arnY`_ zjWua9tITfT@m5B3R()J`!uz@p)!u$_`WSN5PXEc>!A&pT6-qh^Vv#KecXG9y`bK4P z@O*Ot^G>6W%r@k;F=mty(J@ETruij$*MeW%J*oYh^6di(I5qBARWT4u{|ujNKodIZC_*7V;!1|OhhDz*rQ2du{(HycVv ztkrW)LlQIFuy3Zy7ra(mH*s6!ZI9en69iYEQ>4I}xolA^PI%PDI)YC{fE524W1a#e zRz#FNfolzssGq9=32mb~8}0iR6EXRc7M{D?L~O)gSRAQ=n?_VNr^fjfzL8FxTW^VJmavC}1jarLnY=Nseh6#%bLaC+ zQ{EBmPUe1KB|2k#D4TDU67v|o`^~yzBIPe<+sY2U7gx`?L7()RnM0x3w$`0kem)|+ z1Zli`I(aoA7Qxii(r2XpAwMKY>9O+ zGUfmak)ZW*`^BA?bMy_D$^u=g(IO~?&$BA6DmbGthGdqsH(jFKGEXe_%K3p^p~prQAF-isVRd=KxF-=We<=Z1`(; ztahuK`QzWVb!bp^6mD~t<1I>@VYA$RCo1)?kA9fQ)tDT^Se&=z2z?J*a5vGCUtrkP zE^Pbwj=AQZPxN?yN$l>HIOOq)aTZL57hhK%2%I&29PU#&iRu2jH{*Ta|N743j?!ZF z_RoqO-p}&D7N;jYQgAWzUO>tcr_wb|08Mk}iiH#1{5_{Zs8(v2tnldt()+0P{GLUduN$3OcnfRc z6_V0fEafx*fX@#y>PeR3-mIf!G^+v7;MuRT7t(%VQ_&Q=nmdYRl2Rx#D=F8VJN^oi zAKqVX?l^7^K61%sv^))P1Se_!Rf{0p#~Izy&H-CWh)hO{xo^JKrj05I*NOHKS-ZEH zi?i^eE@6mdV0YbqoqjkWKz8cZVVq8Fw)T6bw~~2>t15;?hx(o9v(l3Jwjr}KGUBG3 zYxELR;r@WPuI4M{F40?V@*exQ(?rb2P#Ka0+OOnZDUN*IZn(EvffTIFEsS?A; z^V~|Q^qrfWoV6CtZnElzAp2X}utWXM>g9>lMi`v zLHvm>c@7c$t(Dn_#^2n?LBjJDhQqqw+;E-5qe5%*@?5grAoJ4P52s>>-$)(OOd69N zMK#sJiv1}nlT~#guPls#k!j}cti8`lyHjyCh}^34rgH1Cq22|}I?jxUe9hQ+FT`ng z-^SpE9ViNqM(s*M2Eix4Zu0TmzG1Y41S2Y|+vaHhLOb{y3sGWeulipgUoWDuJw|p* zdwK0mexGqcsLymyq6dI~v#*S+`TS{x;&b@!^q43EEmcLE5_Qx^c~M3As(s0foix^N zgvKOR%0~B02*;JB&tIAeEX3(VqkO8BRv`x>^ui=aIDC%)BbYNRen8LZuc9yRyr zx8`5Irn#q{QbrSvxsRiO3_ZHTM!fPFh^X5JG~^!?VnpFXi{p z0E&y-pK>xKwORx7WENlD25eXq_cj4vgObYmHXc2vm}f=NaNE+>Kn6!nTdlLOwSAB9 z_(%zvIXxkt$bD066TZWGi~4NKW>X3Z$QWnq?$(ft`%d!EZs)vBh)w}wvL;6h_XdK8 zEB5#Nh_6RLGU?{$AV(uXkDOvYeyB^r;_Lenw?M}UpWv30jn$$3 z8+J3XlPDHF<9xKaaHzV|Uv`NeP%}DK2`28L36C2q`9j8CykQ)sZAv~m-_9rU zwmDbpkR0xBY^JVvLTB+o8s4K-&fkOGL^hTryT2Z`AwPA^(RV;q^QR+6Gy=8At7iMT zxAPejx7hap+1`<~QDi}#Coi3Qx*}u~`!NtwCj6ZjV?b10WN;d9b&Fo>g&nKr>D#&- z4ajlCv_rNU?S^@|M9R&%eNI>YsC`ZZZK+V&yZ zM{J~3gfOoA|+~zA0Hzz(03o}W=kI)&Ec;8-u0Ba)>rfi$HGMu8Uc^DbSqC!)La6r z)7nZOcbA$-QteXm25)gN>>O=#ts7B3Gjxd^4pXVi@L7LXp;m^x8fRB=w)5TV=TDCK zx~MQIn2T}5yG6N~EH7$9e$|*#kCc7bjJFvd{AzlV$^9kfj~sO#E6r*B!EH8j%1PZ1 zIaOa{)x|vZqcExNo96mUI;@6MR#B^dP8U#toK1_sk=1) znErqrAgb%dDd*aY-2Uf4Z~Ny{|L6bKQyL=le@A>Y0zV@KskOh1)08U4mcz6&wCU^# z|HPSsbkh+h{9ctbFg$8*nnuGy!ygdUYDgnO_od-dK}uYzq+xPR294jnxWi~^By5HdIp1{%IaJ z2+y5*3MH^>Ej@PE666;9TpLAgOhjG}CLc2oxe^TVUKWVRJMZgTBRfg$CF4>HMO)s% zi_I|*K7H+71p<-$XC>+nqyM4v3}YP;!|X{YH2 zze)j53mYUv$b|Nw+N&#O_1?rGQfODp;{LEl@Fe4X-ox&P(-!UYSmfo{=tcdqQxR0j z?GNlYou~COe|T)AHVAe=Nchc@z#3)JIBiJ@kX-xAvGONsLxKUKnbjgAWCn96i z#!xghgUo&mJCkeiptk7opf43o?fCXYPdp?`Il8w&Dx@BC*8%JR(W;UVxi#InFOdx~Il#_FY^c%bvZK%#Jpd zY0`IshCF$AO|8C?l=%1Ij-Y%z`8#=I@z11H51?_<=u7|U^fh!{BL61eT;}Nm|N6jW zP$pimpm;8BZ`0X)w*&+`^Ra!I@}1MmP=4Ya^e6}g2A(@8nS8q+jY989Kbp47dSIjY z5H$1>Kz1_i~U2-_XM}p zha}WMwg^vW7u|hF(!`qRj*EC3Jp{tfX>V-kEoWevMEc1YO_nz30PW2`+r@_+P$qb5 z2i+1(+$%l=+vePc!Pmj7SSkjfYfM>1*#q>{sCOEa7kqyUC}d}`uzWhE8&wW;Ra7vX z?`60^+kR3C_;I!WwnldPr$Q5B0>&1?L6JBaPbK-xR-AOS8$5t!VhuAgUW#bK$)>y1c`|sB$z!2bHgff1o?pE+vQ$Eu7=WpF#`)J*x9?>1v}M z-To9jxt&hjHc&4m@6Do^0CuMk<1iL(Q}nTDs5mM2_CN8i zuhDQ&fh8WYjoaS?n?~D0v{F5JM2q1l7(lCh&6186vg_aN^X5Cp+jUsXZq!33i*i5C z`!j~|4LtHI-y!|@GYe-4Im(?IJQXLue$M4#-NcobQnS9)_cCqc5@&F>VKhn9)+5?J zEq9NuEFb0cMesL}A%pleNZOzPj!}cqK@nU~!qLp=Gt=<46Y==_3{LT??$Filn!i>c z^@vAdqiFUJmhqoG)kYn<#HqN%!arG1D){z1>(Y0@qM7lKD}G)KKob^rigvBrECfx90+?98ubpxatB>-#~&A=;pQ6yoyRcW8T0Ja`KMVy_fAgF zzjLsZq5Yu&R4}wYpvsTVt$iyf$Io`n(P<3C`ABCyq;NVQC1{wZl0nJ;PR`TCO`IG@ z@vP6WUA+YB^@W9~Un;iBK8OOv(=}wUK@h!)_RS!qlk#5(&?m2sMK?65p^S0pf7DnL z9hFSOxIh^f4#`HVL6D%Jq_ZG{p}Q2X=dlkAYq=Y6XJkSw)R>^)9IFn&vk!zKYTKei z#qqc=-5!01Ptk)?p$~{)51iG1j~fo6k)~ohBL?P*%1#0fSD{yT&4PweeNb&~z@EWo z0`ynVe#qbm;6D#`1{o2x-}`4nl_G?Iyd5AA;Jg6j;Ltl^!>=ewR1Qj*5tRd^>_oK! zHuprNz{WBS8tTy*ku5mRauK`(O+p%^0`MzTln;>B3m?G2Qr6%>^_1w9|3z{ zY}Ox0a75*B{^-AB-iJ0Kpn`BHuABIqTc|tYC4Kt^hoSnN)Fq&RQXT}9tsrZUb{#03 zgX8=@$SN>@0d_%ETOpvgxoQ|>GR0_wVbHRB<<|iC9u@2fFfRa%`$&1z73%#r;Bcr1 zz`VfTs=1_Sz(pmT(~Ae)0#!)6Wfa65#|sL0ilG$epty)yl=94DMj(=C0>wOl;w-z_ zy@5Rfpl^Xtek3FoV2g(oAZ2eLWWf&*%N7iZov3NlI?8T)1%AHGg2QIUkdCOHi54_T1aSCvF)9#d3=lN}%8kH6F_IAm zcMeA4q+XTcT%W$*Um?2K-2rF-=1Y{+H7cP1$@d5iSyXNX+|@>x%e@ZIpT|9JpL)GS z;TLnBamdt8q& zFh>!QpqwO8fj7)WNM2!IbksEJebJ5l3NW(ca|GBW&OxSD>^yeS4!uQDPTnYGbX3Sq zzB^F7F?I~7&HB(mWp1aCKwsF0gxk@LG-c#^6~TjHOW0f&AfGa1^CbbZvbR!9s}l)cMqSvR&jQGx(}Il%H4OF z`jOuBDWUY4TT)thNI9VPk}xF=yXR0HbUlviHgT!)2_9=85Zr}+mNxd zU03MmM>x^?CBxcD6ad6E97deoA9|;!jAs1F(7wM%1fvG!E(?LCzv%y{(hGK1*O z=@DMJsO)}Q&g=-AyEVJGx469L%e)S7LcQK;F&fc?K5h!9V_&AXuC#!6QNEA|AYZ*) zrfBSzZ1J?%i(wC%PVVG0l$tQ<@$nIHCYYgf*?|aM0jzJId)PS?c*ASvy2K7?bH=)m zHv!8A-j7q%J6_#l?~CBsJ0jw+x$RX8NZaNv+9jvA4>4dO)eUfW0<4|D!;{Ot6Q3?& z;9R-?4=dmO)zlVsYsZ3Mr-O=!QiVtfE%&O3N)wUZlolcMNC_cu6$OJH=dwt-|8(_>;UsI?r`0kn!`=32zXji33LFj!OeMC-7kPn~c#MlYu-J>30F>of=&rD1 zU~jJI2rVB$27L!werGmg30-cp%wGoh>#`tvZtWrvWlJj>hblkcT~Y-VGU-u>FC-^s zjBSP71ZVU+OCB1%m}^buV_D9Fd{d> zVoZ`Igkrd7h295F^zZ{ns5{}UkI4W>DD$qYFaCjx)8&4Akp|WKp z%eh@?J;HCY`q)TayB>bQX&)zSQV#{E zWh~nPcD9Wj?B9RS7fV~GuAEFpG$_-zK|sB(ZvjZ(@p3DcFny= z#HXUzzp%?mV${7dH--gP5QtS^VtZj$pzwT>*h+xJf2g$4k(WG_Lw)U~BGTG2DlWJT6y9oFp!^G={nMfiwg9_{IoJd;kNNz@X}lfCtX zjc+6C@u9E5N**qp6&^9BZYGl#%N+fKiI4C(a9zq(IT~E zHofr!yeFC^MmXH)>J7@^j2TgBD7lwLpi=fl5K*Oc-IEDzzlp4*FoI*ODyZvwYxs{O zsJzH!fDYxUCm$8S55;_^#zx^jwmGc{j5`E6sF-&s(Xo*~?@3=_wI{|oCkZ3xxG>p^ zfH7h!r36qUz})L#=6Q8gD|uIW>~?;yQO}g zRTQ^76aP{9cv;GSIjug}`kBx7^P_$^`|^$Jd^?-Zyz47#4PVS(lf)f)Z6wz4D(c_T zfTf^KQ5331=(+jIj^5%w5h_%RZQZ57NeZ*(*++GF1W7MNJven+3CSF%Js0gf=9tlU zsDB+CsdBp4aD1AcNbZgJgE-Y7@+hU*@W>`;5W1PS*@PbYrF8{Ms(&b}D*zwGU;dm- z`#hd7gEBImdFx;rYN%5QeivEPdT`3yC!lvbVN0D=yk#HTP$+G1eQJ5|A9#`@^~dD! zr*>4kxlA(21;10Qv9F%-uk#jLZ8Er5Zkp=Sr8JJeb+qml|E$rVUarE$2D5i<1zCW1A_k)NUDexOqoNyD{qgnOwG1MTo}1ST>QZ*n%(U zRm6@*$~J`xVTw;29jq2g!7fxy=l>BH|0+_qioIzWaR3&QsLy6tDw(0 z)4{%FCA!$ze{`i@oFWz@PGKDGuM=cT&Xvl>KHky^BD`cs{U9G}WHtFFyTrcAdB8u$ zC^0SPxQSFfc;Kt^vf|4%vb=*%8q3}^lwN?>^dBCO8)(_khJ7eWUT6^1$4!dQ*OiuyQ_TqC5Ui z(jucR^;zXvXQ{JT(^VzQG9i@E&&evRGu$LQ+ykz`}StzsbxTqeF!QZ zWgVezW#q~;%;a$i0%^8{{?c2h{Dvr~`Q?QAuRlBF^~Um#6G?w#XxAfU5?39%*`bdo zyt=0DPAYBbzXAU7yx#e>)#2qZxY+3gK4IcergeyFZ>DgHzhJ8=wI^z9q7Bw?QUMQyak8L7Tp1TZekqb9R8o$@;ji%-9 z7>aF4g0u*I z9+4IT{Gm0SmoG{yiKn5*#z&@v5rY3F4X?B*2dx_C8N^>wp9HemjhTSn)L)0gC(e`P z;FhOV*Nha*Q>Vt=yc!MSzu@V#V}vt88a)?v+(QAv!!$~?F-&*dgy-Ev7Kdu`LQmyC5r{@hCuR{?%j*UtiQo= zKkxQRUmiCQ{K@DS4MTsmse|#q&0cFty%N>XWrccO44h8&T|W54|K0Fw^y?>tSNLz# z!PAG-sO{@~EW+Y_uYi`d_sBTND(4Abo?9@b_p15^RY1JXQ31Rq=3I>JmHuI<Ro_MS`+kS(lTf7~Q{tmrC+yq1o#%E8Y z+z>e%B}qJRPswc%em0YsGH|fi6V}_Z(IQ)B(eEbZZll;|Uy){*8n>z| z@T-5s?^>TQ9lz%GrfU-WM#BaTaz}$yIGK~DnoJ_+YsLRcm+ReNO>1s_PZ$Z8b~_L5 zr3>eHw1c#0ptIt<6xfx}Q#&RInd!#DdJ!As{uHx^-&k+Ap5SC{n4I$0(l>iI>om@I z(o<8URaQ^YK-Yko|A`)aHo-V3uQ6k8C3Fb0+a~Nol)xc{s}T_&V-Lw4(*2`Zu5oC|?b zDXfJI+;$u%+!FH|)AWR_?Fvb|J0EifZI8Fie>qbca6RO(%+4eg-Ad*f;-Cbfh}zCr z?3?uuQ0IN6S3jAZ6Zm&hxHd&8PMzlqH!XXk;M04&(iEW~TB0OzbBx$?P?$gSemMdGoV{|>6`dTYadYyf@)uy+ zb~qsYGpcUaV?K&;EzsrPmXU+`As0q&@0(s1xDs*aa1Qdv+Dgi--kG&}gU6kYYN#a| z(cG6yPSbEpoPu^~Yq&Nj+sGhN+P=z4=(pY_vsLLnFWEM!n^31iIu@R;(fmYCiRbV2 z5cPu@a!P>J=mJ2I5!AG<0^g(wTcr!D21%KRx<;QY-8B{E9{*-|NLFq`P*}V5Ww-EF%vQH@c~Li#!vqxoXh^k?6SLYL$0p?z&A_F3t?kWgRFHdfnA<1($t# z9+wX*XqT}GRI&^ZxtTSj*p>Kw)p^X-YrBl>qIx9xd|nFuXGHghf7Q=kRAxV{8~S%6 zc0O(}1?#X#{Z9&D*I*~^I5}YU%!nd;h^er0X>IVmfa(dc1fukTuGm|z|LJJ~TF;y0 z<@}PI=~?v3Wl)>O@ATiW{b6yP`B6##3+}tjMb`-r|E#_<^Ex87w03!tvI1`)4~>=CD~Alhy%BNcywvY0vh!)L)~I@J#E zLaI_=B6s5qjKM-qCCv_21KbAbhRcJ+|8U1!A_lO{5KT_<*x_CSEbzUzx8?o}F(1oy z_GMR>zt~mjUy+>9%%NlNbBVFyf#DV{2CdLArv1Fq`#hjRo<~E#;YP8pL)C&0vn@ki zar~82y|#j04M^mvbgrgduWYZrEd>yEUYsKSoS?rT6g#|{Ir**gvo?t2s9+!N$vqD< zx;nO7qWq6{hG(bs<1kN$)OnBIm682u?Lvi^f;okrluI<e6nB(hi;SZvI^F}cD7Y_Z6>qNy*ncR*{D7PCx|{bgx}vz3cb$>dyyDgb=yA*f>&29XIZ@uqA)zzX z`{aWPP{sV$jD)GhoU2E35FxYo^Q3%i&(NA3oZ^c7&#c`tzarlC{J4tfFwbxCQl}Xf zJhd_H{a;sy?NzxKyQc?JL?$)>`=uZ+bpw&Q zzs24a2~W%5%KuhfvSe?q8rOzO;Jsr1tLL4iq2?=3?_*v%jJKU8bc<3fZ@30+-1^%k zLMZg3l*zx_y~v#Kz6=19QoZ@7(dy}ZlORkJLp?4qI$FBo#nn*cW9)OBrg7Rz8+$+dj^!dab_CN4PkgBMquPZ!Q+UVh_3Y-JLg4wb>l-bG z@AWg|ABHPlTjU>p;P?8wZ0rl8{Q}il?|saPj_z+3+V$^usRxksVC&0;w2K}5j<=ITJQc3W^+&fL6Sj6@>L(>8 z=FT1Ijp4{17x25!+4JqTnr;a`H7-UDgQ^AJw(>}>?$0{=RKX{=1C7F?ke4Z+2VI}K z+`iNJf*Y4-{)HRq{Z`oj?`^icgh*4_AoKvht%O=TRa6lV)WraG5D-syOJb;!^#NBjl=ls4+>k%)x2n>3&6siTui_QR zz0W#VoYZ+{!Y&P$4L=Fr(|p?WLEg*N9dM@Gq`Ur0kFl2MZK_(}{_7j(Q}YH(?U`Se zWh$K?(vN1p6&#E`aQ&}U*!-(~`=r(Wf9Y&i^S@I%_vCRVoQ<7fr7^M&6Wdi6B*Kb7C@<*yZ9Da?NQ@9nWH@e416ue5DGXP4Ep`-_TwBW&kh;zdB)H)&nqA?eC< z2U0MZb19d`X1*4J!Z{bO7~nTz->aUA;!V9Tsd*J8zH#~x1)a<}%afKP`kl<$jWX}1 zy!U5H8}flYHSa;;*syee#2Jzp;eJ#q^Jc~!Qg@E7TPIA>lKhG3n%(8D{T3(cr;!ti zw(ksi{2RED#QD{JVY1%%MxitRlE&P=8HldTM6U8$Bc%%!il*o5jzsB5MhQ?i()}`o zYr1~1ea&9@x3MfmsHe>^2}7=_GA_2uYi#IA8mdJ%SAFIhDd&*KbkyM^oC7pvn>P#_ zjl(26s^;!B5BPIAcerZdOGc=Y$jEtprHx>eyt*+-s$tVbh8fmrAIkD#+&VBbI3VHS zE(70r$38sMBQw&K@k~^GF3Lj(>^HUksV=5g+^-@nm2PtB1%2TCQ1+~(EK$T_FaVI* zM!jg~*&uUcdCF+<}9y-`=CrnQPIj`31IErQUkxYq`>Fp3L)j9 z3&JLXd}sr$i<=d7f^)$IqWs!WdCh$ExI>`m7cGN?0giOmRcBD)vhWlUKoZDQrk$aN zSF=LREx|55GXAXRrY5ypRWnY#1t;UtD>FZ2W%UO2QB|HQsx|MWbQ^XOH!ALmbs3bl z5j5M%T>Y8;%raZDWRsRYO1VzYjLGwAPx3J%js8Wa4AhIm?OTo1uo-KXZo;Su1=x1u3@CjBgNmJgg z(X|DPJShB7(({wtgA&`Y^U&4~k*#?j?;t{%b}JjVS#*r^K$rk2=1E-JRl9gbkA^~x z%mi$=r&H`YO}UJj?UD#I5wlKI6}1*A^v?8c)AFdlU4Amf?uOHxQ$w8V1@xx~TSDMa z#rwI{mXagMs8^?`e+bO#obz^(IL&Y19iZoA*0&hdQvRlCyV$HpYE`7@2N#tcanikM zcp@@>%Ap6$CO(h;8u+)n1XRQst;y|LR}Cqx1S5QN2U@g-h^Pd9qFGWSoGEt7-qb!u zBA?>T@xAw3P}0dRxm!1wFSA0b_XS^!oYz37ynvdDQFF=S5cM2C!j-~Y$KGci`##=AuZHfr#4s(xYqeGNBUOXa&17n7 zgOmox9XqM_H=Tu}mK`_!wN8v&+OCXWABEVlEteOO>ysm~F%DI#8hw?yT`bip$G09D zPD}H^k#@0|BQ>Lq64ui^>tRgo>WiaDKK%*5#sU9Dm`*fHBexC`BV-Gm{SxB`^u*yA z*^r9xRJZ#RJ0*i%vkrxBFxT^JhU^=AI{8VcT8zvANC%#OWN+F-`d&D@wG=wHkjDlh zT=rBgU^7${LSMMc_^~pV4{>l=W(6VGk+cxxFRdA1kYQV=QaApJxy5|_V7@HncU^T_ z#@j&Eky|ux=aYq3$s>M9*lxOaXm)*;eNuu}gndWTtid;L^uUr!IwWabITo`#iH4_G zCFV6MRq27Vy$N|*Tqxyj3QVmHdZVlPP4M)S_RXsPMoq!3!W#$g=bo@9!zH%Df7@cy z=j?xNT(CE-E3^ph{t4%H%VKuo>h9J|(f+hDH_g~qZxk6cE$;1Ii!ZDJ4WYsmQE_O+ z*!lna-H27M9$bFRlteP^CThg3X();Iljf8Tfh8AE21_0lJz(ENH81&%i&kv;&$gx9 zrbr*%zg0^Px#;-;+|$CK7qTTGhNT5xmATlV+BP7iPNb%RYM5ikG@6(GgUyq#yZz4S zDtKtmXNOnfRipJXFhRe;&k(br7jA_%BEM>6!J7oGpHj+H>g+q3vw0=0jgAON%dY>r z(*GnB8?!9hojX-4RBsp5X6qWmfIs@eJgUpWcZfoIG)D^M$?>Hjdguy*?ibz&tuRK2e! z1Km8<%y#*l#4|DIj(_PBML!mNnZlTrg*f0na~F5OWnuj;QLOoTx~Sfo3f5=-3+g$Jss>zRVClqGT*?r zLA!Msb@5#22VH9UibMKnC;dt5=r$ZbdjjH{exv6`;3PX@OGE~klKu1#+_*5M7&b^< z+zm4{>uLPebfz}U+xcxckYuwwc3iZ1q6=EmT`Y~}L*6eMp%ym@BL;Q0(-OcdbY66R zgxg;}_og803rL@jGMsxlO@>ZC@dcF##ur?Yp=CZp6U&c(FM1V;)2t|E`4GF;{P%g} zF{FfdyDwVUzzZ`CGh@;dHF^kR1WOvTJW>?0xG+pmP6_o{o$XYcmmt5{)q+z;yWS~R zKE94nYljgWckB}a?QR5w&;=*(D*8IRf2T@+(S)trCd?{f$BeXHgyE76 z^M1G z;5}~ngG<4rLoY@c)45f_bRhXz#FY+!jTfOJ8;0kdQ&czr8gJ-0KP!6&cE5R7E%Ybw ztj{7X&K12fn=Tu$;tEqM+2_PEJiu|el$yZz*oCQKNtsgsBVde%sE1fH`-@83+t{}bR3)w2$AGJ? z>3JvqC%e?y{$?ppzheYDIInZ}qbw_TS()xaCWQ(}o=bWivcgP)jT&q4xe%2C7cQ@D4CoC%M|RXy9TQ^@CmIU;cY)A25YKFuh}1_=-$Jqjf3a)R@Y-(_g# z`g$TZv*Gb(v6KONJI|!Ge@cR&m=u+u!fDvrG+eo&zw-^Cf!w1=?UUlqORLbIMklTo zc-t@UW!@=lk8A-tMSM&tRB7eWlJEtvrd!Olky=VPjq( zRA(%CKW*a@ZK_h!VfRdRYQsW2#KiRNqXNaCH=6V>{AfF4*v#ffmuA0RHAV)uM;?6dppM z@rJEXE-_g_Wi`vY=be~bnN2F4cdxs-U!^-I1|~ZX6mQ5xdU=svtEo2F*8yD9t_7DY zbWj{r(Z*T1&9>x#v(D?0nG{y%ZS;`uIOrNdtS87a`y*(K+*TJ*vf@!~I5zz>A=2(^ zVDv3SKT&*_?Lyz&nP zp-HO|{%&|XuZ*ZYT#-2MrX}mGmq{fXbnQWt4b{KI-ijK_UZV?CqvwX5bms(hLtFN~ z9?Bu=?s&eoH6rj)cTf-84`jNx<<3skUp(fq4Yy%D@ohWI&jsEjSKQJuoj8-{7fGpk z8Usd;y3lWiE0Mo0I1UE)%yLdU+v$%ouDIH{Z2Vk(eMk7kOps;rrfW5y-;Zu-VSy|* z*pfr7VPXc|&>N7pR@WqM7T7*L@C#&$Q)X~N*0lDK#T@M8h7w-!0II1CaV!fQCOGWu z_VPvyUeG%a>*rI}WD{1qTXNH`i9)jCe|G;<8h~cZhKQ!Hu3;c$@Ei$0j%>@zlKPln zIXaT4+04i3k*d*#AA*zYsC9NHN3P7iNS<1pI)Fi>GwkR ze}(a1V&5if^G$;;jQMfX7d-GN@U(TZ6IMngqKjnCkO7UF8kKsnbM4q)6l*#ft##~f zR3l^52}F-KNN8_pw1-`e>>f5=69->Px0{hxX8LTEz0_Asu6{kZfk-+>-9%Oy_ATr+ zHY?;To}V&`RI{8h8XS<;DPT|ctP=euVhq_DbMCs-$FlQ1^)&@49Sx7z2k>t_Dgt5X zR<=|NbO@?6fc^XBqkb{meOhwNdOf5XT*fV(Hnd;F4}XZ6b*z_z@7C9#(VOMHD&Gn- zymV^o(+8Rl7x}J?y+ih3hryL(iz`^WaP#q1z`Nic;Xbd?CFjHV-xWWdWDcMcHvDF3 z^B*#kyf?DmhE$Zzx+{oU%OtUPf8r9rcIkl4dmn@a`cPh*r%z8;nG%gGU&UIp_4i3UH(9P;z*c} zYd%hQHcEI`R$Wicmi~0%iPY0JR=PngobiEFK=Pk+TzJ%(ri!_h;s~nXza2Z)@F~KZ ztF1W$6$eg7Z*CQn)p}yAwqdM#F{Ot3nxZmbyCyrtUrZ;ooMth@9WaO?)A+u@Ws?yB z2oVtb^_8u}mW}e$iK0hFPC&3|_3eK9Jp~L=(#O!URxt`0VYNo5h@zk^H<}lRff}-8Ns0gnH_=oh9Rhz;!R>JCSA+SQ*AIZW#PDqYBjJW-w6aVKr!9RB<2*^&4=k~}dJ zzr2m5HRRr|a19R=L&Q}j7`H7gU&Z$lT7;E{$a`S`sj$3W8|gFM&~N&(ETph0b>|9~ z^V$gN%{*n|4NMvQdjCDDDF8{kMwXhQ^6_0mE_Xv&l`Lp%AQs`r3NmIVFAo0*P(TkE zJvKAV+R$&%B7}R?4_4lA^~MjN4PHW&`~Iq+Ad?H_+=|Ysp1*4Iu*{(H@!IbwSh7MM z{nOhOr|zK;l`!RjCgknc#7c-NzC1c?+1iths~}0EzD5|FC?!YUopq2OV=l@bX)BCB zCPW|0Zq(ydF~GB?T-`7xO#P+P$tWSh0b-}LL|uqbgNTB2hu4EVB?rgS-;M&v<%W+5 z-a=&l_M$=eZnpzcd!yfgBM|`0q&@ki!&E0@g(uD+75G0uX=TuC!v}e-af&@0d)j){ zC0s@-6L1P5ql-KrD~u{MI6Ot$<`f;6nUL6Ho`G+d7LEBOUoyrlw(27iK?9q9#g+%H zVIoduNxx*vQd+Y^+TL3wCWwTU4tQ)+dIgXN- zom;RBudb@&F1Z!eJ9alRTp;Un7G7Z#Jt4*(2@|+?`n`g($&&XHZH_Q!&+nSwl1L&savTJ|=y=T#d<@ zOTE$okK>P;!o)S_8%sy&S#NV4ShD`x6bDO*sJC7d&7B3W*vKX`)Q!Qz=nALc6mNsW z#6HRybEMI@7JNg63 zf7x;Fac4pP?d#!>z?jer2g!Z?(Z;qEJq9oa6z2En?hsR=PjD)DyBSjfulJJeopwzR ztPWk@-euL-G=dOv4``Orv@%jH8b*UJW&$O99)1B$%h}1jFyO zxbt!h6i;eMpk8wa*XV#OjUMU0*fSYd!|#$mpj9GupMK}v2c`{I)uA8}2Z+`ekC~*L zEG2V5gT@*;fXIilI+sOfff63;n6(?!rVxhYXjhI^1=zTz^Xn@+1+{|zc{xOW`B4*K zr0RuTO-ic#YHe?{r-kS##U|D_u5my80bzdkfv7d$lo6pZ+IElY!jy`jmq#`Dj(@+* z1K}ZaM*dS_({)kYmTJxP_zqx3$KVF~0v_q63ZPaPm<0RLyel-J2j=mG{V;J}Zcp`K zLtTzs0Wlp?;r6=v8`M|`EHW30reb8>9QD`tH?6!dnm_^)pSnKfzY?DZYn0CM=$8bZ zb9ke-33;SMIZFxDR;C6yA8Ye_aIMUGu=tfS>OfS1rEyCBY7g%1b}&KD;B2~L*~%Fp z@=5Ty<;Y!j=u_7ts7t(Tczo`YmRS&Q_$MkjtV4Foo}>e8Fr+=gdjT&r*m%;h=iq62 zv1Jx6`g1tjH3kLlx|b=jjN@?4nQz+@${Wh>BFz`6Eu($J<;CpeFz(ROye(03=8-(N zy4WNpugINX1LaPI%p%>L+gdrc1<(OK+mm+0q9}BdfeF+=H+P=%;!}f(VyMPex$cRk zvT4-I!NOsX4pKT#pC2qiiU@HttC-r;Uc2!6@A#^4=!NwToLO)r)~F*r{& zYD0Es4wTpLS(aZ8SIyjHmoUrQqSZn}Rwmp^aN@ng6+JQ!x=X~9J)iTMI@Lc6Cc7{O z{1Xj{zH{~0`XtknmeXI{x5fv~k$&701;_|Do*3&|Q(JUguuE0f`#AL&^lP_zyEn4! z12t2waW^7`=JNh{`h-BCAkQYlkp#j#SaM(IxsEj04gXCAVKcO5-t6W+zp)!d{zFW~ z%ss{h{>`c6OV`)5_c7X%WrAzBW#l~8+1qAva&}pXQ!;mzIN&NZ&u)O~mT#Ealv5$t zA)p}lf$qoA=5%?WL7E|4v32Gi?;ZEgJhRLpxhh0x4ty>euNq)!$ATK`*o9V7n-l6E z6@#2e6H%ho>yVS{Mqw~(Lpa)fbjcwhaxLHNut`VAe(xT$0MK*J_{!|if^&Mzx@#P2 z&a8P&WzlxoIvwPY$l@3T;Q-%S&LcrvBJl$o5~8(Wam4xE!?wAJF57{T%h?ZhQ=5E`YwX0Q zuQ6UbD5OQ$hq;~*bdmz+oU4e0b_qpf0j_i7`j#TyuO{kyi*9r@w&D)8A81c6ZO*p(*ihFPlkvqmhdgw_Rcq97S_3)X;O}6B4@C~l+r+>0IZ5<- z(%(MkG||Xt9%NAz&!TUUs*o&Vv$+1U8%noS2y7X(&@bN%2)d@0yMyy`CFQ`B^ zGR*TWx2>w9X)d8#t4WbNeXiCh><&(6DQkMi495TMk`P%_7ZWDooIzzd2Me5GF8itZ z(E=~4-TGda1WC8i6t~0Ffl%{ntBR$oNyzfTYcZ-zoN8kZT`yeKcUtc|%e-+Ca@$I3 ztor-?R{l5hpfP9a>~!>ocR|hOUCSZIkAwiI&8X#AVSkX-2>fgOJNlok@ystW=u!U9 zN_>c24512dF>$Q=1iAt4;l2D)DP~s^ZQN*2(FtO)`~$m9C+d_K?7AIop7VP2JYaIg z0X}ZuB@H1<{g}obh=5a&Ius>h7n_$<2I77&Mqs7ycS{=-`;aPiSoN}A90@&?1 z{gQ(gEx*uTsI9$zHqp2n9JG?onhqdt(=)3lOZ(-vu2pAH!a${V-yAG&*n`NW)P3OB ztP@8d2~b6f(~Ig#v?}SgBuz#&H{9qJNpI%6cX~DE$1g6{>oKyr32u-M?!npZhrDLD zR6j;)F0Zgzv_{j3h`p}USDTL`Xb_YgaX z9G;>)>0B{kNA1pD_fTg*sRu)Q3{FK~AYIte21;%DFHIy>0o}S*CzgHdFwAHYTyNW9 z)@Q-jsi`aOyouCRyAd^bDEjN`Mk#)xt|Gr1I@cJ5sl>CJcDCp+(3o6MwOpN?-*!Ao zbPhQ3$|h1SWs6lUzc3|rhM&XUd@PukMJ|m2xj=yBW&lK8&SwJYvogoMZMd}&jcvLc6`Ra=n~=IhcWYgG7&o!nAy5#d<#^)%yqIKxWUDLO9qB<1wpf|h&;wKiFbTsaEN z@i1t5!Z)aNRfGw-ja7l-q3jSu!#w=Y`5^S59J<6kYS0E2^Ar6`aLr3C z+R{ykGaT9Jr2VkwNPt?URuFW`7l<9c0h0pzj$E?#u+7w%W|e;f#L0be@vvEkc>);QJVLz%)x`nQq-O|7KRC1|)4W1f#g zkw*?LjV#HEaO+08S|!00jE9V1CkD%j_ zSDjD7b-aDxmu`f1DO`B<~zyQE8F+aBX z#q(_FJ1(%O|Z+@h<5@cmMECEglt4A6s-TNJA-b!$zwh6kG-XI_q3@L94bDAd}~Rs&piz zIvGkPG1a$%=kwA^c!C)fI=6lvftvI4=#NtEBR9OYcNFz5MTEBMPSzS=+d(FTNC~rlFb_RVU9v+MNp-?{Ur2&&6Ol8iJo8)frLf!fr!^ zpl$hPc4!E)#%)TNKLS>h@ogGYFw}A@` zFemHJ9M>g>QaN6E(79Dw-d6;oVcM^l>D%xT_{(?|r7!(RUtX+#w@Z=9kNA3BgIi@Zk}!qt%I z;p*@rup12M828oiIO#3{&E7af(|JxxA*@?7)^)Jaq~|s1WRD@hpG0TXIp4A@$DE?m zP-PQSpyRu6x4lh`$a{?}TlXfl?3lZK2>pH-zt=PPFie|{%hnT`!x;x_u_c^)23khX z9veGdLk24}u2nZif5=E5$F(;+HE0h%0_Q5?b>xGVkwlWd2siRK^gdUc#DL+ddrT&M}yj$ zT1A4>DRwXmCyBB-!FTSUxVBdL4D$e~CCBWV%}#>zJ{D=vhN8_O4%xKP2*;IY%V63$ z6Mdmv7yM-dTms4^DEe+LVnQTQ-PR^JnjV5k(#;@*Etbe&E^b^1XY_^n$ncRqObCB zfgn@%isGS}2vM<8v0x2m{yh+{Jur3vUKM`=>z_2cW z9wjO#K`W^o#}@WuD#umndTaB*q5YF(xgKY5!A9P*s%;K;_)(6&t68bVSlRK2?7gdT zW9}}fKB^Xb_1BK#>uR!1c{sccALy3I4Qu6m_`RdKx$O2C3?FZ0<&~ffW=cM=8tkcy z`0wlhapuDfrrk|&+JyX@O0A9Ripx$jRX(=pHYgcjj=buPd|&Vurs(Oj3y`R6+s&Ib zI}eoPX8m?xRdxB0qVrCWR_l)f-O@^%8IU$hT=>|)NjsecL1~>D{$ElYoO^mhD@>bX z_)^y?jn*$|=i%1XGk}jDN2F_N<%Uk<(wH}U`u+_3`5V2u@Jy_Oto8!Mci$fR)JASG zicZ?81}`x%eXh}s^Ac!$fHtnAey(#&9sdcLR*m#}-~|~a0+{KErLAGrj~S$Pdlkzn zY1Pz{g~kTR1O*=EtTQ`2?-*rTOtAYj=l=s$}g+cc`Wmu+KpF?UJY zb~&-`aZ967YL%q+fqtywW}vF&iM?~H=HfU3Vscx~L@~V4X+}Dd{V9`~??!hQP2nXj zxg=E4Cm2$>VsKLUXJ69HIKj!;1@Vx_`xn+&1a}%7sfJyfgJf4_!4fpNiQWp!zMDfM zqtxngRdAlBWg7CTjQI!|)9Y%HT=Rwf zK%D|xnhOs_{Q0=(FCU^!&y{3a%&Gb_Pw)Bbddpw8gy*oC$`1q8 zWYA4A=PGMe7~~Y9zdD2rAHXogOBp~s`y8c}AJ29%{LGEF(E?btl4;kXWr0pimzR2O z&DATk&+U#-=BV?@yj(!Fo8-I^_$kQ>xp&DzrHMGAJ8_ib(86gvL~ADpG-$0TO-I>n zL7F&tXWD5GLfZ+Fpl1NedheYdEpi-~0~A%TJ3;c!vyR0UWtDxwIAF8GwN$NR4g4>` zCCP+nn@F9=;n3#4p3xT=bH5z6hy0t#zj|7BS1>I@jIpVm&r{ADV3OR{8<^#WTt{xH zDSpq+xhkqm%et$(uX5v)l#EOgSBE>4myVZda2T!POU7K>T6=hm^f!je2kej^bG`Bw z=Ute67Nyp?4LcDpp_60t;Mhst!ztcB=^Ko<;QZVwALhe_DJwaX@j)V@rVTOL?$qtv zlNtYdH_0#;kWO#ZHL;EmBGsNVX)sSNq$#;0)T^Cyx!M}Fx^{l>hoU)xp5FLBVwtsE zcC+i(O0^iV3R|ADAttP13R5u;V~@n;lwh;9*fPL%3q;B&3DpRFx0jp!{+dq{Fk zOVH0Z0JO;#z{}7HVz37l4!Xry#)yLI#C8eo4Dq$`ac$8##@RnGtyIj5S|4y_%u(g?PP-e}*Q+pfaTIjg4K&gNWTW=B(2Ht9d zm=@SmKD&{%Jp5*_rMJ{+!#b%dtEk$`=ei{X`cs=ENsl=IUgw-G*@d1NFYLL!h=WCW z_k?KokTFX5^qdkafh|A_;gX=Dx-?O4@&lOtx4}s!iSKs^F(T%9*zyMb2Y6j&AuLV* zDIpg7XszZj4nH+2$>og1q10!|?l**Nz+;`9o1t4ibH2I7V}-Dy-wqLy{X)^^@^o$s zkVNiH_AZ4aF?$curWp{M3p9lbG$$5n4{XgR?2?(@xfRAhDK?{jw55VF|M_>{PrsAk z&$?W{u7MlY*7JGpGEFFKJDJxwL6EES?fR2Q9%}mgOwNZ@r9bJ-ns7s&xC7UXwm8o` zGOXN+g7#VJ_uO%UY8!G{hJ+-RPBUGR}H6&SDir z;Bv0(OU{GM50m76a)wqis~97awAOarR*4A02{`letT1i@tAsH0{ITrcNn4vWcnri` ztz$}P<;GNEe6W&a!=zCD)88FKfAdv(7}pnkbH8YDhIAFIQ)vNEULyR;JasttgRaSh zU?Z{OCqs{~? z&f0tB+0S#=>%OiV4W7<%U-8F;5ep`euMnDSWO5T5}|Di+9)DYZ4>~MTFYZWv?cuc^2l`)t0x)BL2KM+OGy{q zro`-ii0Wk6wFzb)EQV}43a&|6-8&UFyk#Og%>qO6K&>r(<)WmIZqH`}&y7*`(Qs>^ z4&X_$>Kio)G#aUGsp=H;^~{o>T8|p~|84gh+R{dQX4+a_-KL3vfS6P3d~)R*G@J+182o? zYn<0$JFt!QSLzh;o>_Ht@21R$ca3qR=PwF2kRdr1T6g}**28nVX}%a7!i0VMCNpw92hZA z*zk!^zr7vMVm@;=#Lo8;8UEILaWpgTmLFot1omkUfa9B}`j0e%Y=i&A71|>9ke6T= zw~&OC2u+)^)>Z6tQ%+bd*~meGGjw>^hOcM~hbsv3zgbO&@K1tP1kc<8hSSlj8;KuU z1}>6E8ry}M6Xh4dK1;6NtmdUCb_Q~9QVBBDEgH$UM7^S}Ht}DWEFtA6(VvmD+knn< z3*pk|&96*Uhej8VlH+=#%*fP;>yZv*+f%O70v!uZ7=55+U;~esDnb^Qini4?ULjrE z#Pv%i3rRaciCbH@m$!j1Vn)2(ZoA4Ss8$wIu!Ax`-%G3Eywxx%_}weCcj&f<9Osia z@RbFVks2xDH6$@;;IWe!2Es zec@KrHNr-d_#&rzb+O^A4}ejMgEGSZlYIJvE(I8u zxlq-FTc5Oo5F5?0XB=F?vfOpaWB=@fWP^R=t#RD}O1&>CL%2Ljva`!)yt-vuW@6KM z5H-X_aiNEi%L#vuL%6IWa1Fs&b$;4gkk50haB*=6eBg;TJ`D(!ZDUJDzxCG_)&v)l zEyo&~sTZnMyo3dU9BS^uD-4GFtlJyBQisV!9uSrzWn%FOrkrgly%CvimlbSsi#%#! z&4D?|d|~6C6lqOOow))4ryQ=wKT6Cz74M6!1hI4!yjmxJ{^Tjs?l!lBSOqtL~FlrsGb&L;isv_+;;KU zcw^E_?nD!*IL+rB?3Ia`L>)a7BKLz@j@Py^0QOn?E$)XNBcyq3_t_Q*!3pT*sEhH6 z$?>Tx%bCd?eD5VV)Btc+Rwq%TuJ4Rb8EDzqcAn%Uy%0F*F|dCLu*nEg&v3&`NW$>x zb+8F2xYzx#i%B8`mAoEujmZ|WuJNyzn(DjrRr%4Ye9`eYxQ~=_S)rw}q|_aEKje&H zx%!5xy)1rm1UN)T1cXK94>fU27Fqivr#(Ds39f=4ay4mbVNNBFLcrC3GrkK93%Iag0;^(Tp3>VDeLNA+Wu(&1%eZ)5e(LTTMJ93%-qs%_(i7N|kgI$x%!zDcO<%#&$>NhyR1fmy82FgrY1>m`V~0cDJL zB2XC2RnVZJm)IvL)Zay_-%oTox4x?E4~PUR*e=vhJ*dwL%^c1`nI@VydbFNc50BuH6Z%;D1g4;!n_a10uUs0mkyfUe6{RZs5bJ||8O%ph; zhRgo@8ZUB^le2*P3uzi%c{F9=tBfz{Ydy+m80{Dd9-0p?ENy^0*;aOt@wL%u4>`G0@}#ad)d8Ko(!%OvwiQV~TKkLvpm6w@FCH zEz*bwFufQ%uw)i)H^vTUj8?^K_V5cVHTZMjHx%Y+F9%kL{VPWWrWXkv_iKWAGapF$ z@nc~9U<#>!-3*?a+>wa?jvpg#$Eq%HGDF>`kpeeU?)-eHeG&qD#w41ax*y_gqGIj)0?Ng|9BXt<5??KgUZA9Q=m(9Z0D_CI_ z$#%aEABaqkeN*Y~%*exZG>|C97A_#N@4%`R3TA7VGtkQKpj*i~+r})B$j2cmT3H)ZfR5@uf;XS##`CMv?-R`lajkXD>WD?USnpd(dKpO#>a{O26p>qp@arKBuf)`CNt|qLbbN1cE(8O5=V);h zG}RIvIc2veH2ro-;(KlC5zd??Bj1Af2^nx~e<*46c6kv*)(kMQ?~SXKS4#OCt{wSl zY;f>HL*U-`_sfcLeoB;O?3?!|PLb2Pss5ne-k~>+3m=TK z5^rzGZ?3-{!aWin9>oNZk)|dFYLSZN_AXCda{?&p@**dkp+dUS zKPnGMqfFkyrgFzIDgwh5(`s^&>1q^d;H1tg?0pP&d9apC>-H_dWq7ms6;Od731xCpk4q*hu|;dGfy(M@~edxO)es0CZwYYvs_0X zB#sVz8>%JftqT?=f@dGJPCQ7KQAB1~h&46P-z<64$Nd08Zo+Qh+Y1tIo~Qj{el{+4 zfrTI&v8=qPK)oTN2qQe1Xf9j`*Go#oM46O<%*7T_DLWnfY@-pkLs=k9c~b=wu4gK@ z@VfH;{m)PCk(y}gub_}M%+4s}=V%|=pnx#^^d&L!M?TJjF`Qo(l9_1>j5b>s&zX=h zfzN~tRHt1TK4iiF+omGgH2du{btey6_Iu0q?1JEA?5&uTono_PWLNnlVXBdQq$X9o zzs$QLx+xfdTQNhGer4{6|sR_c0_sE&d7S1;zh$#eTrPVY|qKTWphkn(GtF1zrfZTEw$hn8$zV7=%i!5ALVM#+7_D85+k-m4_pn&8%cXE;(7+UQ2 zyzpVTZY<$k=cr8zc{qN3KSOI>pixyhknEFij1?RwWgLLx*8S~i@|oE4`a_iA0XqWu zNL1$fifN|w*yo`r?>*ec@*H8$yStZ;0J5YtpYvWM+ntQ$UQ{B*n(0LLj|2IW@6QZh zBm1xM1Nm$Mso9!B3Z&dEba{PFtuiJQ_VKpw@S51bWL(emxW)_I+9YRq3uD6l8yN)p zc#wbBzIS=azD4BFQjb1zQ?J0}wrS+Fz-f34+f)&*`4WH3y5u{oc#?AqZB|}CRy7su zN%)@G@l5SlkPcF`x3ygl;8ik9>w=nAX|az?=N;h6$k$$S!M$&{D7_&amFoZ2`IIjg z^;kYPRHajuIpieth0Xfu3Q~8_j||6h0fGd=1fysBa*A<|rffe~Y=`Z*HFTEd^`X=c z{aEc7I@(tmpYr~_C3zfY3o47u;t-mDuJQ6rr>kUG`ItUb8TBHX|MdX*Ju;U1m#>8c zhIA^)4&jW%u(dTfZ~F;klOORCHFqz3@yNi7y8P1p1c{H}BE^G78SRhRmbb`qiIOyT zK-J14yX)D$;{Y+f%-}l(+oDvm_i@{c;V#052*7Idk$A09;Ma5m7Ctc)1;WZcgiCm%82sm(#{H~6IRzUviywFjUP`N-oxW3b^9vTAHKN+)qM z@IFA5fOSsr>Kgn99A!GC3zV7k+_(G5E&Ugja9e$|)FU89Yqo$1Ou7k|4jZE91L`+7 zLtCWNi;HG|MLMi5^ZGtIpo7-T3#P zQ{9G1+guhT)5n7}mYoAXhNR{{td*%;x#X{@ev~*arjk>e$3aHc$JRX=`3vE^u#&?d z+MjsOlFE-UbwkyauY4=&k0l(#d%k(Qli$;yualY21)**XlS#*hzioeUQRlcEz@BJa zfdjOLqoj=h)iqVOl(@B9;QWdy>7D6$20cm>*+;7?2xVLY*W8#5>&WN>qn;tqzB{w=%hlP>I ztoxrYy0WQXv>qNGGHwi1oy+uLbY1hcu;VA5#iLf@$-oZbmTEpMF zTRM09rkgYtb4pfBo(No#Ci$F@XvwehE>U{(xRi%Oy;$HCI(w@?>?A=5$A|>y?N_W2#ihg^t5Bhn>jstc754z*l z@IM3HSwOtXrdh~ebG?4-#;NmXUwwFeIOp2!>k+R@Ac94?>)jre8nk#5ElsvY5-WX)lCQ!s0%+UK@~eES z_)!yOYJDkRf^WoT4n=CGpzYlh677<=MuvxON*1MIDVwWvRAwZTu)Vdy>P^{vx2{@O zxpMx30hx7_lkL0>M2}Ib$09|!aR{$qPv4}0H-{*i*1ov&D_4#H`S$qO$di&Rz?d80)>J;b|Vx zDCv1qX)J3wp6!^x_@t?MN78C2|DWrx054w2mW>?|1hifMM=gMO0-LmqaU!J4H6KZ7 z-D(AaKm+qz6T|yw6=gu}@o%eomwmW`P+t(BZ{^?0YXJCrOxa0k9-SIz2!oAe{y098 zV%u4Io%mPBA`Qd=^KjD!oexfoWG~-P=zO?6o~%ku%wFMaM);H_J;L%m*&9j?&_9vf z0s)1G6PV6EpObRjyHh?&-Qt#3KbE>^96!HsT3j7qNLKHS^O(pTX_u3iay(b~u;dB6 z?>Pg?9$oTkN)%8=MuUfvt7LZ!ess@S8^ouo4o{N7Yg@i^dvTTksYcmfedCp;^hV%< zSMxL!#u(jow3V~g_R0b=NTF|_Ks#o{#NM82$HW=H|6UhEdCpPaiBJ>5H%_WuZO-(@ zF4S?_c!%mn!pyOJNLA)!xG~Cw%+An>s?jF7F{X zRoyS;5Fo5g=yPQ{k9jaIRHk^=dLn(53RgFi}8C zixw`#L8k=HicC3ue`V7~f4T>GucT$(=XaBYz7@*)Z0rG4%cn4!j#=X-Gp=^A#HJ{f z`de#dngSuz+*@i8HV|;!>)y7@*t+OPL{c-Avr_!Dj4zjM-^1i)R_`sQwk14#eX!mq zjyYp|J_TUy7TyuFW{TL-h@1&nKY>9>ZY1ykn}ouwY?no0LcA~|5wA7Uc}o23K0ZNT z@@1=W8?iN@I@o@?zp{VfL&~ZGo^G^tcvvvgvTP5cN*5A!erD~)<)lzG!^9Aqo!hoa z_Vi}n*tL$&uYESppIAdY!txSsXhhA}%c!O0DyJQIJIaUQU5sTSng5%q~f5_(cOn#5g!qmz+-y#M>fs*1g0Yl$T~OXeG{ zanZ7NI*&bEu?{6a;~dav1~49Hr(`7^#lB_1kGYFDkcD<^_E=mWfXS+2epwR!xg>p* zCGw=@F6l)Z+UD7!*B%5Jp74vbz4m1fXRM@u#ms&>Xy z5O2*!?zik{i}|Fx@qDqOG=k*eWv#wY8p*bjDQEnlRIhiBTBaBKdeVv$DkX z=Rzrcv+gYZ+T*NaclTrVt0LRik*@bDx$???g;0Aub0&KLJBwhVO2ml zul0)EO!Nn-tEBdoWA4Upoxj@D062$iBHm^7S4NzYez&s~a_BZIO=g`b)}raovQ_Yw za8@$@-|i}LBEC1H2-u#&cu5z}M`^@!umD49dXwrIsVR~QnE)=zE`?VgCjzwMTGFk6Bh?zNjMIIw{FG zp!H!IAWjmIS+LN!&dD*m-xu?d*}qK`-0^o!juVwi-uvK%cjR5nU4EZ~S?h>gDRcI# zTNhz~k)VYWwbCC#>;*t)OlE=5Etz6WiEMY4RbG3vUDd5wX zlDB%ihdY)V+H#=Iml(%8=Rl2;E0WCpz)7+5_LO^%!+Zhwy!M=rgA@czp5hoMm6$Cg z4PuD6N&b1f=6Hm+OQSf3q2Y79Pbh=P1IZG^4-cQiKCFLbv?m(V-xVLhykQ%@EdU~h=oaNq446V#? zEkAL0p=8Toh|?H*(>8Km-hP|7B%|nQbkvr>WnmdC1w^eH5y`;=vP*q&>qz2Psx+BUXALBSaDp50jrckmF5n67ruoI2$n*{#Z=ReWo_oJzhvvrr z7r?UrX98GKaWKvMPIfBM^zlDG=d=Eb-f?#Cp>yPCX zcK$N>{JH!=?Nqa$yIvmn<)GC+&*fjyx34&(nuVUBfIDR&6`mYk{8}0(K{&>d$;RD@ zMR}GA4N%g%1~YQgrwXoFveFCobD5r1A>GdbCC6b|+dqun(`pRn4H}n^`KI+gx$ZAesdJ6iy-d8;nd=`a&#dHlLh(5Lk zyrijJs6F~5(HqPofvWZ&fKGz#+ez4ZTYhDVA{=@Gl#!$tAVqKN?I55_tLzrl1Pwtj z+v%?$8N%E6yw+dZ4T7xi=={ zuqprKxYi~`pS{lOM-~HJ{Ru6dua_^jw0{!*sd@&J@Q2bFQyc3bb;}Xp^Jy;KVb!3J z@^txeA^$;P_fx*S5HMLUF&(xGCV>oppFuTC%Exa2t zA6!vz)h^YUofLL0cOvj{q`kgb*}}An((z~8iTd2h%(>4{+o6_gp^Ete0~yEoc%w=` zfesSCkW1R+7^RO3rt&$@zNwDxl{f&^X-12J^n5e5#=iSs9Kibg>7SCoZ%{<>Kz})Q z@#a}23^_R1PJ1(MpTN?zgryrix>B4U({FsPms_|V*iFBY3MO}wxsRi}6?uV1W-BDp zOr|I`L*Q}AUy`}U=i0h<{&peMAc&r(Fzxp;QfcyD8?j@A?x0xH9%zv@?Qx1Tm3Q`& ztw-&d-B?1FGS(z9JL{_RUP`h-evHw0%CfinQWdnhtFCpQP8{anfJpJv2CzXpB8GkWepm zUNc>-84V{Fz~tBc-~VX;(aGNJ>r4HvAGZ3qO;eY1FTL=IDP^#^Fy(5}ak^ZH`w}{z zUz4ggN7VsNj0!YxIYSp~yhm#)@NWFOjpZTW?s+YyyX)e8+5RgU>V}3F4uvT3V?X#z|cxXPzAfY&GrQYOEhur9ZCIO8ve* zrS8^qmt1%DYr#24U@G6ux1g!7UKLaCuBsUnSEV@aFk^jh`)gPLp)@%c6wbf+yg~a6 ztf*kwT9=&gX1LN7lGE4zIBUOt&{~y@oy2ILvRdN4E5butI!nHnyt)1z)+^||41*HV zQ%;B~gz!}0tz3TyyG@z@o5J+$tQo%Vo#2vM=NK0#ktyGx+B(_7spdldWSDlx;u$Y< zu$|ebHRA@kUg*&(;`79#79%5Xp6vAPCvJ@j1dGoYb;Z?tkWC=pDG@pvSdFAML`k+G zNtp+wk!Y}o%V<`m1PxJByXWJ@ui7ZjXV-Dyv;uj&_FPX(Dw5KH+*TN?G%CG1S+{`k zA#YqbbL##g0&HBCmB+JD$k0>F4;(+m^zS&vjJ+S$*%=mWR*SE7>PPCb0xeHq;&IRu zLCc2SEf z>Tx;!YjJ)mN?w=LRIQJqMrXZ4pQo5Qwltn5@V1;NaR{>c5+}_5371ymd=Vk-)FkN@!H7)Ue%E%*bm6c07~W>tEBihNeR%5no?mx8}2-( zjahVBf!twRB6!Si_;isvX?7)dOI&%-)q{o=%L%3TAF62 zFt?ZHsn~pc@mxRNRhWHMzhnL04J9vo+rFuL)8L;EA})_wcY%&-X$+rmhWclp!kM^6-He8+&!eKU$1 zJ;3AGgg7&N45-DMWhl(mXeeZf|5jBDTCO}rPY*nVA|3IP=afv3FXdr$&W`22ns(j` z9}?fFFF7l8%fQU~M``I}GmTR5PDdRyKP?b56jem3D-SunP=(01VbON>jG=lrQmp@x za%T7e+B{h3=)U+buyQGyj~-*i>~2F;Hl1qLmIGF2`O*kV&K)u-Qzc(*o@0Ib+pI_F z(2kt6Qvv<0wc7xw7`0eqBU~JuS`j)v2(p!Tl^n{7ar=%bx}@L;TRn0aPbDZrma^VZlJejRF<9> zU)a*}PNZ93&|N7YUrm6ZleGoEXO!|@j9^FYP3m63+|Kj5x{@>KE+LIZHOg1CpCn!% zFZxrzgMHBtE-<`T5^MO-pqq%5lho~gyjZ6^a+*1eFODae{|=*PD8g(V9<2pZ;tc%6 z-Cx99I3q=|=r*Eke8f6w?A40*$J#S;GE!rgci{KA{f+G6@R1jjnT|0=1i9mFtvA&( zs8Jn6^c3bOs@gojmj7r6^ZXCg4GM$$DTuoyl!1r~G*qFu z{{CGrPAygr6F;&Z?_AcL2y%%tyl_k!|^@h`=4v zntB=23%P*IvdG{+MA=LafR@yMeIX1~(-vTgEk;#(He*P5x^v%@f1qlS5L=q% z$wxMZZHw2q!AOIcwI-!MyiYtBO&~m#UMjdk@|{VEmD2kz;1p-?=j19>sk$a^RB7Iw zy%!|SX>uqbeFTg0Ep9nEz?3>*T=jXxTh_eSl~s?V=5Nq%bWWAn8I$Ir;drlXWvI!j z#oRnAZ7T6PNDdfGPzK#qruY6bJeBO&P*58Wd7EBj(>H%lt&=ROYi~S6zItdVT)8On z<#NSorWWqYDM(&hFZMRMt{`05!a~#P4mU?-`czM`vCmiN&-{8_>sXlJ`3X4)^dUI zltXI%kdlogZRx}quz@E3f_&*4`7W*lnOw(muW}acqy*eyHn_5&52^iPhjRUxu#Q(o z@~>~D%087}5j7{v!&{fQZ$OMQe&2|sjE(~B3f7Pd78ExAigSB184Rd;%**@$`@E!tACybtvIl?#(M(pMvrOm^Fq>%`GT1lVvIGp2V z*$2Gy&Jz62z%yZ%h8{ul}B(Gq>wS9^*GFqS!(50&X2Z~pF?qkmv(9sg% z>2olL=FlAk74*}{RGp=8Fskr*>`JmR*x(D}#!X1Jc5CZdib_0ZJapZVkq1GWY&l*d z3!sPA8vnsK8T!l$yp3jre*Kw_BUx9si}~$8x^F|W_x-cn(x&gYROK=2*VponUH~!b zq*7)_b5cY_3*?qY*gusQOYmSQ|Eq{mvGfee3#|`=X30%kO9^b~+qV2>ufLibiQT5m zSUi*U$Z8dxLkH|rQif*?nr<95&RjH_&_A^9H`q=X7zRffvHd>yzE2Ttt4=$p^PHoq zGExp!u44)bKz7yWM_P@}G>;hQqyEGpBdOtpl_52wofiq$d(OI4z8#^shF5 z*(0c*=r6*xgNS80>*w+=7!99+gntDf>M6$hQlf>Vl#!_mT8x2>0*p-^ssNny~vNy+&yE zDzLjXMlscK&h7)r)`;2FTo1WZM@mY!E=cr=Cw^bwS@87}QD)BPCH6C8!w+*$48lrQ zDe1CIr``VYtoMC!qhSJ|J1K(_jN`~Bd5ye)cE~~xTV4cqx2ugV>)sLKX9!bOxcH3V z=FnWSe2&~M^FI$%60u6g*v!fwmE8DGcF53e$#c0Cz^=ZO5o>UF_UqNm@^78G!aEw2 zxko{@ENhGv${`5D^O}Ro6bby@ojOIQNI56g?O3;Yfuqf!Q~@Bbdg|U)pYW&<9p-JU z2ipE`bhzft8T+2(@=$FDe(O(tvwzb()Wd$~AM3;U6D-Mk%);jEUo%5H%qfdO|eb3RRUsiAX7L4VuLN``{YHtR$9slM>Kr(O=pAhixzPEO|vMn7mBK z@B*F~56AgE(+pxjW9NLHEa}Zy{YqmMqRy^7K&)o=Z8q*oPrqSzcPXi7-tWe~fh`?U zeOIF~;p%9Iz@i(1fAh=qku0qhcf>5t@2SAg51>WA!O)2sUOcJXXjqmOz0WH!+OYF5 z>s@4%F)DRS?L&}n7`On#-_0h|d56wW)d zA*dn?FHF+a}luF|yPdU*Piw<)%RSEM1MQxL6(`ZHXF!wR}7vX1``x5j>| zp+aoJr)HFaWOa&Z{j5vljd?Dsc6B|Sf|Pg8%aXv){DJZI)YYn8`+6yy+nk$g;dES# zpx*hNul@ctUDgY;viQv5>O>rifd7VT3~Xwfzvm5I`wd0{x`v^ySJ@VKyCkAK>DMYi zz0EU!SyvxY)fo?uWBV3E6sCZOe6MU@i!Hg=wE4TA7i-`aGOXs){#fHxV{(z`sFg>X zJHAX7AP1QmtJq`+w5$&W^ViN4RiY>k=Y;+lb)$WV&^;xjuaP3PS79e0eqnB!vC=cu zw#ROpc;9IUZ+}S#ZJFfHOUJ-}cfQSva7!H;3ez>-6WLZh{>}W~B zvWIt!+np(YZ^OlJ#6djpyRh^=%wfbQG{6hAV4y6@BU?euztGKXe!}Nl7VwJ~n0e?~N?+gsO=ooL7pnDDn$5@b99S0mg$`!3$I z_fWDI9!kJXc@N@``VQgLL(6F|13u6BUj9d?a=Omt)_SNKHTGKqeL$a5yUeryYU5f3 zs9s&lWIt3j8Cyl*r$@tzy76{S^PZn&1VzgU=P9#lUsibc#MSz+M%Rx0M4$U>^SAl) zFDpCNzU;)?m2?wxKf~+9IAaP7e}A{8$M+ z6brZ(A~QZUcFuAB5=jqfe!@RY75ms^*v8SnPu-CYh3>o30XG$(yP7A|nsr!Sr+vxC z*wrQNM$CBui1rJba`~v+cVY^|optmB6mnOJzxhzumn4tST`}5lZqBiEpYeD3wb3v= z?a`ALi3S9L@rG)&o{h8zUmysc0=lgEa}tUzRX0`oSOld&L`c*d2ar~K|0zl7DC8&1h-Xnl9TXGJn zDoYX4F?*R~y35-YvmPXyyCV_Fm;A)1+nQ-BVl7E|lmdslEmCsA-hp- zccAziq`DNwvi7qIDax(*Z+;wMe&s+L(V8JeO}~Ova-8=zQVuT4s>sK^b;q9gX>e>D zY0xi?`aI^WZ&M@~OF%XUL^F30K7h_pM=Wzc9*?`GbP@GTtzv!gO=PfbNkaa8mC{60Lq<2) z2H{=##fUTy2dm;o3^N*+DsS^I2=ovYc28ol=h5iQJJ^(b@DmC*_9a}G6~Oi$`Au{9 zMaq%*f(hWe$ReP_SK2Qe@41G&q7K*)PbS|z5zwFPSf49jx20}TRIB8``@VO@Fr4#D zB4ctV{z8E5+r>CClED8u`U&O$*6T3q3n*-TYG6Z+UBDCeP6FvrRf5=IVr(W>H6GG> z+$oMYxgqDQA}WL!$91a19Yi;JZFW@zAkR51{{XQC7a!sMf<5i>4ZlA%YXrFz- z)Tzw1V_d4c3(wHi|wk77T{|&{E7R^sa2C?hbG=Db8VG`WC$=tyI zIJpajouBL!G9Yqc7-()y)(XlBB=B*ZgoCT4su?m-4UE(BQ2nuyph7JSuII&X^zMwr z>Ni>Eyu;l0<&Nvz>Q&*tWY>Jhx7Gbg*x%9Q>vfdh4mX^s&=ND=iIoHUgj(aBO}W8h z!({U#FkP14#622VQLB&BMa;xW&RMN3kKn(Dsf^^{b@3`--KFwW9gtkoSXxw)YfvNS z7cpR>p|Tq^508SDkr+7I;Fbv1VSS^Jnw|AF(hDdryw{K>Gusr4d3qS->Q;J+n+m)* zo{Bm`_-Ug8lpB2s9udSypM(kF|3sl9FEt|{JmHIVOQIx^=A%-@nT7Rj0>q#Eq>uaE zGHE5~;T(kZb98*t(QIuVcm28sKauttQp}^SQ2P*=q0S8bpdjFs?^tHp;Fo=Vq2O|L zub!drW~7TH$C(N*LK=Q_zWk5rX_pK=g4{Rccd+|A%r~1tyO@_h=eFBj z6Z(%4l-afQa#xfR@7$Bu)LLvlEA_X|p78B!+z4A|)a`3>K#*p=lFe{1z?p<$T6VxQ z;lWNE-3Gn6>ML_;{2gu``Aema-0{Cz-UY-<3~q`HfR~by$ zEr{()G>>;5tUM=8xbk@}o;b9UH!n+b_kVXo&kfg2c_!PVTEvp#&jDoD=?hfDl@D7? zu*mu;!IcvmahJoc>u$9w?ngk~dT_UGtyvyeOE`DnjZTeIyAjc&M;yx|hc7SWXn<5R z8fQxUbXGLpa2pS}%F%3Gjc^;VKm0c%K3Ww;7tmj%M|FClZUoYZELowfC6TujNOC9|F)KNZ!h;G#*o0z3E4y-M{q9^jfgMF?nE`}={jBU z5kH;b<$dKyz=PWY$zPx6l)MjrIwfVTWUol3?W9?9aoXn~M_c=X!><)AUfx?odeV@8 zF}Ig(I7cbmZ3EYqRj&)OZv0H7yAN;uokaJ@gY_A`* zZdmrjW4m`Ac$a#J9nJH&P13SBvGqA);nex_9a6fOR}o`J&4Ovaz>Ha|MRhd4nDq}+ z`jk+ZsAytUEy!VGYMG}6MJ9XyBkTgxiK+0a58WRYDKcy+sJ5HHucMSiQJ)rpQdGz4 ziKoH2(z&F?zm8bAi83kDyCQ&9heWF2cF1kVj?YV`WqkiNnWbMKCM;1e}BR@#N>Q|5EPbbJxp zDsR88@^R+Y!JtE=wF|l4`dGZ*f!@IjfV)LnfeF)7$Du(#JGiGXPj`f7f!oLK7xs)BKV5^Q%>pgm@7WF-YI;^>#zz{pfapM{Izd1R$4OnVb9C$R$wgln#A z+8kKx-;XdNac39QD(WtiG#CvB-6lK%xut+R<};Lvu0XBH^ZY6BtPR3X(8Cuiph_)M zB0u8?(&j%~Z;R($m-moaMM02;W@=>(2zD3_27g*e@-ZAfkCY>*=D{8bhNefn?HGaT z)!J?8dY~N+9e=D6H-?l z?Ur7nQkV$xT(8a7a9XXEV}T}3DuUwPto@onY3#dRay75g(rvdd*x9b9ZFB5F$Ec03 z#zgssuTK53<%<)#3B?Hd@PO7X?)U!WH&GYOiF({GyFgJFt%>;ecn}x#tqF_T8DNGx z4{A*+WZ5t|z+|Ni2eOZdC`aHci!p_r_KiFFQBfCXc$USs15sJlE*SW!b^QVh`|U8hM#^qD zJt@Mn1Z?|L()_EP0_RpSxI1y?P;PswtYA(!XGMI5J_jwOF4dmcW3#aNji+LrKj%bV z^ms9fXy_eC&PUR=6hR=^pRomQ9`YIC`M-Mfupwp5o;|(V#*9fjC$?@idG4oYY;C0+ z=c*HU(fk;u?-@CoT-@mSuUqfpAZ%FG-dnG=JHXqsYaqnhvmPLDS5mU{?4fKx6_+&g z?%5X0DE$J$@*Dpmvqi;!RL1FTj{VYuXe|Em#j@k8>ok(R7W}PnHF)6U?X11t$L9Kj zh9A~?J(ct!!HW;ZDZh~4p>~3dajI_My$aup-~rnn#DfzLS}i$mP#)&W zTYWKiA?A$fm(^3Yd-=<(p;CX_;SYhnQJMo^0D98sc4mOv;kmGCx8BjTt5$V?bsnO> z`VfROB)STr3lZn&Wwnc->_k{?6hR|&0{BTb0enQ?i4Q259}KA?uSAoNH7+0K6lboV zXoo&ij3NY%-z;9fQ1)$LmzcuU?r!${>{`YO86OBbYx4>fnv4y|+}k7rQvQq53;A<9 ztab)8PWpurpbSa?YDf8;iW)9&9EBJr0_MKf#ZPD6PkpqZ|(gjh94T92ZR79`< zDk>mV@eqpC&_f6v=~j>qf&$WePw1jRLX!@mCLkmM0)&vV-<*3t+&}P+k$lL=PR3e$ z%{AvUpEdV03Fx5Lq+ePEMcx+Ow7HfU^&HBhY6>rtIc;`fwg|*>amxgtS zya`pzOFi^E*y8V{gB4Z<^F%gu(Pr1)z2+|B2g&n!+hoR5%nnknmSr<9p1@zM>YHsD zeubgON$%eMpjWl6c9o-(&`c-4-sVAZutw#-Ru=NPYLxmxrfRAAgCKEixM7IR*63d^ zw0GUViTjhe&~#q)P1}evPyWLf9}8Kr>IUS`Cd09m#1*9P(VsR_)H-bLlR`POrN(a%^&cQc0h`R%l-x(p=y@ z;qN~SZO^KXvHPYN+R%3>hJTaeS%VKM=k-FSLmP4>;zwRF^IE#6) zJokAuC%!uyoROe63FN=EJ}jiS>BrtE0&i9^hI^(A$04jfVl( z(HxtXGwMwcX^P{Mx8V=6?F1+<+sq}J!&)*3)@{&s(H7N(qRtBF-Y6T(^$lF!ydF_t zWk!~Cf41fV2GZ>6d~X znxrNl!|K8$W$8hj1@di=xs!HNTemFib^jg_|4!{T2FS8TBo3c@`UbWnt{$ zeP*M`bm~Gv{b;EimYu_!yaKCOY?O&?QOARL|LomGqW&)#_E3Y=hh z#;~Ab^MT#E*v-xe*QYa_jhuXFk=Q&#kmKbCbv>j$awx|8e9n;cp0 zjWzih^Ai|d^c+SL@{9G>X?#zbh_5{gJyP#K_zRsmr!9vk#P~HjE+B$;bj`oT`WF-R z(=73OuIsC}i*N@yhqJRe8(~F3aB;7@M%_@Nje8O%U1w&9-N*oq#&k?RL~p;{vF@4qIq{4fyjc$et)uPrkjEV(7GAH{940T(3>mS#v3&>HewqGIRSg za!4ZZDK{2*igb~7J!JIO#41N0sFZ4;4BT5R_(*yTVx3d2@ba}9ob8L>BOPNG7*?&i zZIxP-+Ge}gK22`1yz9rZZ7EitQQ zFi{r#n%0Tl`dVgNIq{F%`k&h{Gf#YTOtbjP!z0zL(FtCdDO${`dn;$oPz#pakgokA z4_uHnf{_)(3gfqsM(AyR=v! zYhvwUqv%N52$~W9Eym!dWRKG2VW#V&HYp9&OAMTUazpcy*321S)i1NDDioDf8)jca zZeO=SsFPMg=tO~58Uz-5541K&^cf0*^jcldZJ!Ns#r=!hVrR0fjF63OgTxIHvuJIf zr_XuSiMQXk$GC4ORcexaAagzw(*-I;_p?u^<@(LHL*o7JLd3T$o+PLKeRfEyFfKa% znnA+rI-s*vq0bJ~v89GOYWW69ey$@>Mc<-ZMg?S@fe~F+Gi6AJ?mFZ{ff@<&iLBH& z{n|8Ye=fd0Ehr$o(#m25DZKt?jySe!XP)imLK0ivS}=0Vp1HH9vOXs7{yIQ&bELll zdi7r=t(m8tBXe*xt(N$EOcL)A4y_IC(;~U@UqTkW38yFq{2iR{*386f#aH9Xz)PfN z8b4xvqVEB+;d^LhOj{((Y)_R&OCa4{w1JwLUvD)XEigHSQ)dznB;8>hBQ5Eyecsl{ z2>sqx=Bu&^*^kj~nxsEF+87mFUuK#_>N>P*HT~IT znV|Fj`MD%4-aTu!8Wv)@DrHfIe|a!6XfX|1C8}4M?z=XZm6V=BSL>H6u?n&rbL4A0 z(sK9p@a&Ddl9z;h8`gDPyCek(`UMs8doH&oO7zR;lluZOsgmV};0I0V(yNjV1n&w< zLCY{L%eyGYoLam`KKS!NPEJuL`eUGYQ^t6DaLzH?jL9^Ai?Zwjb_iy~|Ix&4#Pg%{ zpFsf~m}~Zn#HlV7w0qZdsHYZ5<9ZfedN@}KvfqBxW(3Lq-MRbGx0nu`I%$!x@7hEg zoQBl|j2`~)UpH-XNe3{};W1K4P2wxpv}WGy)y{V^A7a;HRJ5=kay#|(8-2EaV-6xS z*&%H|@qAfltzmtKE{m*X#k>Lmwqn3-d?Mp|j@+ z8M8djgXc`4f;#xvC`qNm&GF5NncfW4&y$WrK^nEd%&$Nw`m~#VBT%bVYSXfQd}#Ti z8ZIEoPO+K7A0)n_XYNx!-i+RqR&*pyn}0UJDFbHcJxJ!yWU+OB-H{hUn_Nw0IP zCmT|1R!gBOH5)-|VS?GS$+hDJ-bS+$UaB)JfK;2Dx&fg}8KM6Y8v>e=mXVflsmnf} z=GS7}elbK>o0y>+-a}cdcbpn0h<4>frE7nxkJq;PqfS%X&t=WOZ*BYBoc(2bRL`!) zA8+H(z8CclrV?TjOsczEDLfDR-eNvI)|K@w^qW(P@UkRJa=}aLT`$#gENkFeZ8Ju$ zh3sKbnM!cc(KAcXX&(PJpYB!1Z&o^z`!6*;;Jden5qj@~r02tgzTwK6g0!Kv@+HnhC-#st==Zf??Yn06rA%8Xh!75(ziqp z(_gl7<)q~lYo<{S;a<6%_+4tK_&^Yq)6n#GJW9t@O^Fba7l-`jQ7KRA?jq~#6Ys0Q zPU)k}8UL^zv^%&$*sg^YKr^@fA@suBWF8yjn$P_r@+XY;UtD_oi!qp4=NRsou8D8` z8GOf_$4oDX3s1{j42l14zNT{RUCe`W?oH=VGlW1bfm;;s2 z@6@@wtmEfY6K%6wqWH5{1pf(o>*v;?*TQLNAr!3ED7ey!8D0=#>2P1H=nE_rLx#b` zeXrT2^wCBQJ{NJHBV2;2ZehxDWk@S(j4fn*?S5@CEu4HWoXp9AH}6PSK@{(lf9}Qq zjy+#AU^Y`u*n^wQgri@Qih|n3TgS3XqYrXu#ijEs;Sfx<8M&n{(g|~UOZ#4m|6A>u z<%`IoQ%1EpPMRQg^tyAu7-?4$yxD}>y-slAYS?W(8l!6Cs6{$dV{|$+2VZn z%K|I43(RZ4=HKi8yQ!(Qf^G#xL6o5E=^=bTyPezsM%(m;#)^t{#_X=1op%Ey6aTOm zHQ1dr5Z?nE|B^XL_~S~{D=1shH?`ClE9jMUcj+0q!II3<%H{Quw_=#56;}Qs{5jOW zR!`ygbL|;BM4Ef4F1sWKjgMSti)2{+W(E6lCpy0tPhjQOGB~T9(Pty^wDOUiRyCqq z*1jFib#5}S(g{;vM|oIfcgHp)+po7+g8mYXOH1XZ}s68+=U9kem zP9;a?WPT=RdgvE@O?hRRnMxZ3B#j~E8r`%WIt2#ftstRAP87J>IYRi| z8jEH&XzMHb@i}}-jp&4%yA*j;Si_9iok1A4G|Jf;`|Fiz`BM|GIWw6?{&!PKWS1;H zFV0G8>;x99e$T)f>PU(E&XfdJE_QCW?wXMsDwkR&&5cf^XiJ3eALa4|T^KGur#%1S zdu332#!|cTw#SP%EYKm|Bu-J?bR8HO+q(8s56}6zNHI-QV&YtpD1_)7ig=Fpz+ljI z>nugR$G@$H2!3G4ENRwDVV)=F-;*t?~&s2w#*PX4qau}&yQn7nh=1)WoH zk9_2Yw!&{*vDLl~rr4H$wo|O3^fV{6>6ohbWEZKnLIWXzFLDa^c4JkBs_QUE0EvN`qw6E zx2MmoTSYMLFH-#9_{S2V)fUal(An032WVZ)v+2U!wlw8UZ4W7EJuAVXvU>o~~bBQFO01Q&SwGM1jBw zkPDk8x{38at!m|`zwSmjwclBO;}le9V6yLuYnO}jE84T0aXF|Mb!j2X=ET6o@$|RD z1-H`fN}6cSCWExackiMh)_W?eEbYW;{Q*s|f>$W=Roh0|r=U(tBRFvTvm)vS-Kw#V zlDCa8d|NrqfD{dvY8lmH1gmLT1U&;(`?K6W9X0$)nVA9088#SQw9O!l3^Ek8W{$!N zw9E{^wR8b23m1q%!9tp|un?h@H)tO}q#|S}aPj%seY)FQW~)bID$)8?`wLg;=a5jc zm{jI`I4x_?Q@wSv$f?mQO+%;AfD-si+dJi>iU;|scyH)tWirPqdj{a)}*lgG(_9CMUY`+Kd?(eBzs01+{F&iP||2Hv$A%D6NezP9Ib zeIlHiO>pk8*;Dy7@+4Hg)#@E(LeuSc^DC1Y!nYgCfWmp$@Gx*u)1=w4vf=cCS+|{H z9mSVUMYD8D!9-YwpV~sf%d|eLl`UfMfA+?|e`C{Ss?-bZ?_WfJ^PmGGi5I!VO8NBA zsEJ%_`|(@E81mZeI0cm6W+aFEbvNQa`sgwD|!S5K|D8^SpcH#eS`OmYSoK7DgW*uXc~pd}9?5Dhq8| zLX{qaCpZpKa@Se#sGB;Z$pvNs`DC!U}plAZ7xKJt|2 z?D<5fd8iY<@t3+zqZmY`_A0vai)i1hy&BfMFD)PwuVYs_YEGXgXRzW8Y}jah8b>q3 zOx|G8aSI4sS5~r@2(K=AdOgx+>3>~E}J!J8Xq2HEm zn2amiJZRz@PQ1s^;jYK$$)Tbk;^k3VFiz)T`JUpEo#H}?_rhh11ix!2=fiUkhC&V7 zFtclr_pKqYEh%u(SW-~Zcf6mB=lULU)(Zc zP?Zg-0dA=pgo)pwNrx|3*fkh5v^jnoE)K1CNQ=>9B{c-A;}D$l#8^Xk0WTwc-8t1S zHMjjQE&V@09Yjp_A_f^O(!b;8XwQEI52MNQf2oaYMNoATT&=`9lG?uXYjjcxN(pxG z_k8En2nVs;x9|V-zYyN_-dwdyIacvpAJxx_*tHZbFX1DV-|1Q}6v5q=Xs_5bc69Ij z5NUUS4=qQDa1-kd`RSD-3iY?+K%O{NcuKq=^&)@0S zd{bI!x?U-*P_&lBM8Iyy;^?PZZmXh}RC!CR)XJb0#NXu>`tk&D0!?a&Cg-)IM0R8A zYNK1!yn$b~CI@7CJ7htJ-^9=5!sevJEhD}?2(o}zNot>k!o59sEMZyU`*!^Q>a8o~ zfcvl(EW90()I{a`A7XXG6*a=!p2oWKAXc8}&DuaodJl>pY%ZC4;2NQIlbs{)_A|#v zI2dAtXA2Ya@oR6WLV_YVb^I3YfEMh35u(xvNB*TLLl_Kczk`wx%h2Bpab#soS+vJc zvlbR{!~Wwz&a28}*%_@E`+sX^kHq#|rqZ=7BBhc7T;iM8wpvtu>&P_)R%l`fCuAdl zMRo_~N+8h#=UK zHn~?fwIz%X2(28=%7rf)eVINB(ZtG1|J^F}G3?BEjryHSd*`RZa8ZJ|grZJ)*OPnx zgrG~BZM#QihSISsU*OU;{fP{^A)bhmW#}GNyeMZtVls__ifl|4{7&p<=`OAjeCrBx zeFzYdjF=`w3u$i^%& z5<_|e!zrB}^5#_ziP@u>xrY>I9z!(WT6kt)v7+GPWc^PMWpp8oHdlkw!I158 zpA)n?e+5+2=KR0EN=e;xt^-TdiIAYI!>vKappSoOA8tPsmS)|Dn5fR$IT731wi-=%}&qEG^$S4*KN7Hha1~9?%rC~H#@Wdf_KdnPWy zAFY{#sAbTDSAHxLZL`Um_Y2YO)$VF$vFB0?7A%bEgIr#;m#~=YCR+uQ&dme`K<#yY z&e7}Nmj1ivI<15GQj}l7JNWUO_=@8Gm7JpbWk?ou^`Uf+@`My*XlCu*5WdWQg;bhf zdfh&Oae};H!nf4~!+x+LEta|CImnq57c{Fk#DajAIvG}(j{Q*3Og*>q<{ZIHTgokv z<$hUF+)24n3(uLQqAN`=3sz6`8>i%MN*-CS#CKoGtqnDqiA44hp%bj!=HOWNbhup- zGR=vR=;zw0&tkNO)3w2lId@xB2dr8!K!30*iyFrqcpIr;XmViMakR!!`r06A$E?&0 z7LZnr$z|R08t%SSvJ9}hy zAscJ6Moi*peC_}%>Wr4I`MYNM{r>YRId#e9J@cWzDiM+x)IW40+A>ozxk`VRd%O2c zR?2S3+A_s$l;-MrY~k6*1@msom*M}7s$;W3p(m#T#QR`yGiZhUzBBEmKXf98mApM% z4O#qH6`K%xklsNh$Jb`hMv+C%u5_o8)1>Sf@SUJ7>Dx@}^+{QXBan7}rm-h9lCM1j zsuo(wLIRCsI;UU#aK)HrhQP*y?4oIW3O{1|#>j}i$4MhHonKOM0}_~qV5eveI#Wt^ z1DbyRVK6?&1u3NioQFU`{8BmDj3ODFb{Pd-q68-)zfB~|V#esyb5jUz68TfX4mJC* z9B!rp)zPgirO~enuMP%fN&-b9x%G>0E^JO!w0>r)j+7Aisyq^km|R9SRScpyQ_kW&v3wW>X64~i>LkE< zGSRbV@M&)@8=KIN|Enf>S@QpU{gECrm5shH}))Fc~Ax z*0A*}qSqm3c;h4Ps}_81ZHbwez5(+L@C)$!6Zh;-+B9QZpL6is&NNvc-!@O2iXux( zZXU;HUzRfNZWgUI%#wTcJR4d!2f~B2gwVNUgz1>a_q{6<7u&(CkD2doMNLR5b%?$> zwuLRgMN{{KIC_%x^2mQ}BxWPIPGpaV94j?rIn6u z)0WTU7Y(sCs)(#n7loe%X8FuZHqFlAr&;ZAb5WXVWcC=JHmi$(oyZeQ)7L;^P|V3j zN$EWOAAYA-hw}zye*C=bsbp99I-f(O_HuX_S%H~z$wHvm(;x~mMYpZYqS{403UzWG zoRynHcg%=q0-p>8YLriWc8d}zp_qpD= zewD3}tk{*_Z>B8V=k-x{v-8#ycSzP#R1Wrj=K#zNzVyzaRR8frZoT%fbsw(mmX zaqqRC)(H&j7OQv(nzg+y>HTo?otT}t@d3FDr7$)7H}|@XWA)3X6FNYzaF0o5{B{1r z?jfviQ&XlpB#Ua_qRReY^uuq|8JI#x`L_Oj-^eookmY{|GFF~sp2?9rsP=B`(#<&U zcd4o1s)f9r`izYD-k_t4X;Hwen6H8_rr)ViH*r8Nk>eVtGImTeV57J;a!c>b;wOC6 z%5OQYX?#N8$f3cW+WMd}F=-4nO$XV_+|+*1eOCPW({~8_4!TUhy`RNY5&a|%B`up{ zFLh+Ifzj$2DH&K$A(6jcqlSbZ(%Fgs%<-t-|UZ)N8@q2ki(~X#Cx9+s24z`M>X*WlzBDa&DlI_Pbj4pg{F1u^V9TxI@ zdEu=3Re?XbCT+JjpI>+DNgt4TerS7f7gDzyLD=|eFADkn-0Fp=!@&D{V-w(%Jao zckK0DlN$mTMh$j|BXjNVGSB*?)iF*7x?Kay+qT=3T6hS(9P;kSvDKmZmb&i7y3s0|YBVDLxuqh2)#u2gxr-%w^g1XWSu>g|mYGr98)UN+$^ zT5gcSxa;;)6ZI{rThsOB07Lo@l;IR+#4h#gF(%gwoef&gmZ9;le)dh7I^n*{jwc0k zYCzjF-_M8dS2nrFeOD9U!`wLA7kTpMqbMEjy(>6m^jtxmMr^wZyUD0uxBb42^nK1y zHNxZ5h(ffpw#7_sor0|fy*!eu>F!agg9bO@Qn`l7)|bQf(Srh7OgWdeZjIK$dW{_a zsNg21QlXf^YEd0+H0iEhJ8u)aSM)_=@%R+zjt~r~`w1bZGx^tQ@a%W{R?oTnRpsbJ zcSl>5297r+7juB;v5La|CwAs)C07pww1F;#ewj!O#H2*=M|T@YF?AN{V9U29;LLo4 znjz;_E3#W}zBB!Gd{#k;*Yjyj#XT=bL@*cf^1OzgJS67R8B>}6=I{wD;QQc-MF^@Argw7MnuMlrmz&1(R38-(c7oUd&`M{%On`=%Zk+`lLUa zNLE`UWwR_NH00WTud8jHXLydGMC#wkWw_1S9m)`*vZ)ux8}`$?p9+2tHD_P3+K}MF z3#kEJ7gr+i@AK7JqmLN;>>esqK*nl6pOttt`3lDAYWcWv!t*{HC;3h&Cewg-{_^eE z+a6CpRJ_M#`s#f}U7l~$xAIOnmZTB>-xR9APdq+p9`F@;m7w1A>3f*x|kL)e3ubi`8XY|lE~-M$K0k1`uV=*(3N zSFq7ki=4-Z={iCmJBrf(NqNN@u0&z8T1l{MFHC5q%iT<)!!*~lwQ$<-@q+3|<7qRF zBhKvt`~l>tZ)0OTzkPZ=yJgQcvEUMs)O+qkr>5M6J$b{q>`wuA|HziGu5x)_ z2!CscaSB^yO%QVNqPOv1zH#;I$h_=QU&HYVnjfK-#tQ3b%2< z*OialI)LpiHI4TD&}xIu=lO*wkPV)#z-*J#R9QcmrrUQl^R4vWi3&dBjd-#ku@4`q zbBo6P_h}7O7V_N6)Rt0WE3>k;&MTY_XOpb^@)pE_;{`C%s=dyQCMlA+W|+Zzl;{ zSF@14(^}|P#B2Yg)C7+jIPJ)0o7n=||+HS@pip-djebvI!eVdo&ar zwUe)o)qoo#>@b}n&6D4@Z`FAIBa$dWIX~W#=Dp^@hB;edZ6Bd?mdyF)30m-0>3gqBp)T;7!3IolLt z-8etly6Yht!O~OiJ4%>0$tOKC_6#?8$Ex1^jM4nMe=%R8T@Z;UcfeS3HUTSPQtgiC zv(leEYT7nEH=4;Rt|tZrjr|pJs(h<`;5YZVOz*Af(1G!FSfQD%kqx-`#J3|MFV0+m zCQP#WA_g{QgWJ{V`0JoWhpDq@%fY)|0X*aNuTk1G4wpYQ=HG^v{4T2?ei)Q6x$pq; zbce{WblUts;w@TV^&jhVnp0%!%%&&uh_OVEJ@m9t*hKoH0FLZ9Z^OB&%PlK|ts^>z z>}bivlaNFW?qBeG8~5U!lHkcMQvxe@NQ-uSFlIRxBeSiKGFlpzQo-u!=V|n|u^YK& zKdIxz|8Aw?hhxsp<<{t(32m~ye{ktfzA-|W)Gq7sWn$~xoM$!WRVBtI4X(9@|3=1U zB8IZq!z2T}1a$$elU=hM4VxZ6gaT0r=DFg58Jjf_(Cb{F`R5J{|{M&x19G3jT&_ zy+s>p9x-aN>I1w>?MLAQZjG4Wl=%9hLY;w$sCkxWbV3ew#&6L^sfedR%3NUtK~}p_ zeJ$mQ*`o}DA=J9nSNj2)!4Lw3Eqaso500dE={oRLPmcWaMeP@qo;9xlk2mB|A<~&- z`a0n)&7kUHgs1TxYuP3-IG?`DPBkXv1S_UezdFA^X?7>M=kWcEzz;1r=tx-d#tCQk zESdI=ysL2myrkGy2vwHsbOMq)R`J9${cCTa$042hNBCN5BNA;?tOb2{@b9`K6e3wz z(ZqP6&Qt#&%=Gi&d%t621+OEC`STquLT;wx2?30WH;fj~mu|#_fArPPpwiI5wxxT@ zHLiXn{^<5r!j=lpW*8ax;$rdI;$~yimU-K~X{q{iJL0||Jw%yKHSW_Ecd1Hgx`8B` zaq{B6VKDUce5z0ECC|8{#15LZ*RN?S%GOm+>02_tZ3u;?smD0>1~Pw@hC%$yHQRB?fhnBb0*x z`m2SFpuz)-l-^T6!^0$me63|Evbf})xs-Pm&Mk5?WUzW$QG9)XWxf0Vx*teqP!YGho*Y~K=Xij5VPiB(!MpraF!)J;;WCU}H((D$ z`>>So&*<53(1XH?!fn|;!I$>3-UTl~q6$Yws9h_kZfbbb?W3-s3)6C83NzkIU0WGcEA2upx24>%>$Jk+_}l zaht=rSL~#M8buj*uLG5vP^tRjA>e8-^P9B7RoVHagUcF-I>YzW zOt2C5^Q-w^L(*?dwrmyD5v3rJ{@EG?RYP@}&TjOGBf!uL7PWAS7^JpDIPZCEM^b#| z)E4dS-{*TE;5plh@w=<1&CVnj&*#yP!zt0=G%lD7;cZ9gy8TXenCI0G&8OGjx~6au zPaJ4P2P=&b5}n!?1A04to69k-Dqj;xwRWg5_W$jiCta_;CV9%gcrw=};KIRW?X-fhw!WrmF&;H~!HId518?tUzC`alAt(NcU|OivOofqjQVOzvp{0YAdd@r;IS9jJ+zxNb7iesbZT19;SCG~(j1=Zvu0nw!hVx9&G7 zyf5!;D0c8HZoNI5!4Cfwlpiu7YPny)*7g3pg``mgr9a)vpi1K_C3>9iFenlLwx98r zY1>wdul$t!{r>Z@i4^I- z)oeg??(+gYg`424bVa0f(LP5XHb`92AUmRMNARgXSw^?C&3Y#Bt85!23>>^b^16b*HGn zk>PS<+?}<~)qSAmupX`b_LwBEcQ^UscO8QqL-B*#qn|r5qM!LbYS2?_nHoR26Ya&! zxL~q@h$vzb8n%R@NC}!AVnkTq=hQM;aG>`XTmMHt;SYK>2Wg4n_3xx_COl#AHdoL1 z6$Ji_4$OBq@w0CLwsc-wgd}LP`>kp0S4j3|UGnHlOBU*-Usd=`h0tH#bOJ31&7I?& z7c2=d_}c!iO(sewJR6J^_^82T--e-&B}RpwPs;a90Bk{l3RRRR)fka-s^^gkq=0WV zdgbjz$_)I}Vg9tl-|Y9pd?sKnLfn)`2V4_2hI$}Bc{paY^^>%u6XhF8G@VBe2cN3C zDh|Cp_MuJ?;(3IbnigcYwEOgCFn!KxOgc(BmCw-Jm|`@NpFx!MjNf=zsrH_d?S{Z% z-6xKA>wGM3noKimNv9O%a(Z6WGzoo3z9zAY;*DdwuJ`6>hsD|@{~v4j`sV*1){bE7 zlJ@M+DF(Z5<2LGH5Br$7@fo3{4|)8q6ZcP^jq8`ap;jPpoMT@7yt#ovff!RHsJoq% zZCw;&i_dx>*d|zSxi{JF`KQ9x@2?(wDf@w$#7>d)m!`Qy@T7NiPYNSYBe8TSkR%?r z$vAuMsO_xcRB!zlR&~PoA}7JZo!92i@Tj? zKL|Q2-Q4YbsM4gX+|L6IQJU&ni^#ksb)K5{p2u0KsdP1hCMzC z=A&A+PnPl7C>fXXn$S^@?OdmARL7#({>ry2u5`H}%N6_0Ug^w?>Tuu>8{ozTY_c;| zBA#a@)Gw!MMF0Y9fU>l&H_Buib#W1qG7>Ay6y&CtsF&^7pVBjjpwqY~ENV;%>Yx&%lmb`dL+u?YN^OF&Ajp%3INHJyU(@iIL*a!KhwO*!Tc%4v> zsvuDz1w0}8#stByAGCkr%1cH z51}*>E6-%PXLCVstwrfREqQ58R|8kus=ZgA_@30W&wx_Lxg+e)yBaiuZLBRtOzBGx zc}UuqM9??o0uOLfFY-W7@bM=a(@kDfp-j^xgACa_@FrL%WZ8kUeE|_0*D0dz|rlfGk z?!t4CK{27P0wdI#TKUzZXravS{B$!RI_4xDbF5{DzHR>)bO7|Z^@;-v~spP)VBcz6}22{li#lSa9q(_+ck_FC~|qIWKu07e2=8$3BvfqxP4=ScR+C-8j|6btIy5|d8-#W&_x}bPjHZH2|-Pg18 z_4!JhIOQW3@CcN1;n2L?c&CW@YF#nL=8L@e z`@#HYp!dsW`%7!5m@-Thcp*-RF%=kr;dx@KOlIrmRufcKds(}BS=*1jwdm3zcS%Ox z7o|J&+wVAk*w6I>mc8LC93rMyY=&JUCc#xSZtIJw+k9EgH}?|wZIACCo7gh`B7LF# zWp8AhM#}!hW%f0WV!@jFaGcE9ac-^lSJ!R(52H&Y!&F~x2_>U~>O?rD_zyd_!`8aa zEZu&E$_t7+CDN7AK{etR(bbC>09E<2k4kt+8gD1$+nxq7e{#{yPSOpsH4V4HhN>3| zgm{`%?3S(b@0RW0{m&X5w(cNST1_RN1?FvVmdn51OEATR{fT*`H|#$ymz!6pq>Agm z3};^!IwmQKSTXJmzp|h^^HyFk`K5OCQ`F)Jw_M%JA4*SgMnCNPhXj|99Wz&-`ag(7 zdWGy7_p*0!c5!PdIM1*VL{9s%XYqZq8?hCVt-QI-XA6D(i8Imc_z>UWf7i}lxh<8a z6}}-dh^)S2J6tb=DxGUkI(cAfYxf?K#x=wlY_F*wq}c&jM*#2H0Md^bBE-I*$VrJHY(Xd7h`bY_1X0pc=aiKlq;1$*4S7)_nJkPZ2fT&7KFU!WpK5*xEqr zOZG;QJazI>x;K5<*CO)yY(j6bn}qqC|IPgtQbvi@<%!aR`rEx56N!OE+0q4{d0Q?; z3`I6sur4na_!hGGML`(PHY@#|cq)&~Q3_gJ$hi@$+|RyJDZSMrlf&~dcBMtx>W7l3 zUc?W9G1mx!h}>Rms=RT!$ftF_POFiVKqMDnz`?}!9S!#YU&6qDVlL9tjscMmr8EmS zIn)I;=^Pn6cQD1*c;29tKXb-wgbgNKvuE4jom+6=0R(uoo21X{YJMr=yMyg7703>K zzkW76IBX@X6!gwR!aKO?sr?r`Uy|n(7SA>iDQWBV3B%(Ky}2cj6E43;eE$V5Q)RTi z%PmX4%=1Xfm~kObz{O;d&S5TM+|CZ~o|5NDJm=_X=CH=rAgz4BJtgTS-2t$LA-)I} z2LwiS0?y#Ohaf?^J?*;?%~9&k{^ChY$uS&eZ5I zd1GAIvfxel(%D;rhav1J5EqWEPef`7+=coT9?Boo;T$0lCV$fJB?r&f7Y;7B^FeHo zm=>w0^v=`BM-`y;z388IREv)Acpe*l2d(o|u6U)@;K(y3>oXUX4~)My8YLr@2Sjee zZ~59MrVCy?q-b_*=bg2^w3T*EjVBK|ydrp&#xWsPox#awKXqM16!tHuBOI={&H?ui zo8;)b`dy`$wk|%v-Rz+UaUc^X+cS}5>-M%U) zs&Ox#8gYXDemc*H^Nqkxk>u1>uduOb+6wj7bNjr&-sQpm>nh)a-;ud{a+G^Td>5sI zBE$}@)f~croG?y%IiIi%!Cqv?)WwsUY@6Y)kZd=uUVFz`2CptYR)~(idzi8f*|tY1 z;BH3psPnwi3)|z)v*5=hKK6V^=K2C>uRV52L*f3iU{Keh&6jCDQENaB&2B0b4-fBP zZvs6H=GcLUby?Q!+D^^bBW*&iQduakbN zCsTgxOb<4LPn~|gok#S))yH+*K^+G@y7qR@X zxWg{2K}2?0+9zy`6XuwEGF|KijPsp_bDIizHO%A~^X7?;ZOR~bd9#-bJvPW;=s~WL zq~%4Q^Ml;M_QkACCbD>7tY+4+!S@1L^^9{a$1A*@&09Vz4)6pkNFLUd@Mxa6sn@A- zSL!CKfr7{`I(81qJ|JY;lZ%duU&IpFas1MOQNVEoFED?W$<8yC6IRMTO1!zw=ZrkL z%=cR@3}N=2kmxGjvBGN&ec288Cn9(74))w+c(Hh zPGV2hCn5@tJ?ynx{Ly2-gD3_{moUM%@1J19actXE<+JS6{R2GWsdz%Kr(zO-*FJ1`-f$@Uh~RBXub$eX@xWoMpF_zu z4_%r<2TcKDOM=S?BDDkjm;0nZ*kWb7h;c8fgnewMNNVw)4zLRovxV^A!E1)Ovhg8a zvNR6EzXgY>Z-YJoGC*ZHqw)+rz4=ky)xUqje#7$Daa+56sA6C<9WXfLq+yRU=R)5$ ziG&fOuPM;S_7TF&5jwUOa3lb(?bvMw_Ben)2OyqG-c&sw0ag(*?aF0J4V_-Z9?&sy z;0D069dJhiQp?h~Fx!*NWjo_2FoE6TGLy)tyt*r)yvH!Y(GcelGn{32>3m0k61`k! zX99kBgCea=Z`JGY=;pC=Ic!u0;tmkz2Y?<4B}Y%Efx8%$rX6DIc8mfa4 zpiVJBF)lEe_GAj!=n!N?hop%yqjA7CQ{x9C`JZ-aAE474xY`0h<`K`fjrr;=P!RbP@B|I9$&B>_V#h-J1h&U#z=tLd9uruBPSU@AsCK+Y2db+* zxsZxjXOz%#`z0J!7->gL`_WJ?1c8}GW?oGJ*K8UQLkmc{PY&qfSf<|6EMho86yXFI zZ89wBsddmCW(gR#gk!&rkbWmqzy0A?52h7~}Q z?&XpNQ4D5)Jx?X0PUqxP+P%Zb8BoE&KqJ_EA$XJ2R%Invg?F5zBIL25(To;%!R-3n zR`!~oNcOWsG)+3A8PPS!Sk#f8%(3{Tmy#~SES|L9p7oRl;2cbz=a-rLS(A~#*6Br{ zDh_qX)G0d9@a$M7OTD07X8tCSp1>A<1t6331pR+v4$C30(X0oc9}-E+3kd{C=52y~ z%6RC?L1rLrqy->k?~B7iF|OzoV&K0+ROMXoAY(JQdbkrIgJz5}6n2;*zZip!AT09? z5hZ~FmUH(5adgGOpg&rI6oQTuJr9FDJZPM(KEE1DJ?0Fe6tqgcB4SBj_WvaYskYf| z%o^cB){~87DnSEy1uT4@AV_9*o!{L7e*C6MGO@=GrEO#m?E}%$0?nsQpy)Z785rzxk!oE9_1 ztxTy*QBe^QsI06^ZPiqSDN8dKG*VPH&D>Iy<|-ZoA`J@7z^l&W9%sO>f~blC#9Pm7qGj-3Qk#^k{=^=B0bSrA6j z@Y#WMEMCQp#SOO@Y9ra*6yT9eu^mAW-Q>DFlgfQnR+SdG=f+iAq%Y#|ta*l1?wss{ zpF5mJEZ5NSK5U%EdrO*7|Ea_9>bha-=3;o_2ri%*ccdA2ve}S#-C(`Up!xB?iNEbe z?HN@%4G|{8vkT|!Xj6)wRAJ+9V$3(de{kxE5V2pQtz=W|jZ)OiPlj1M^BbPMSWJ3q zftv=K&lB8H?c4@Y>l8+Y&M7)UDwD`@Nx5G%n>4dL(na89B&*07h-B!_5^dGWEH#aw z0u7&pbz!h&?6QTlRyeNKcANey#ivt^o`nl%F1 z=`Q}_uQyxo9P()C!LnCB{9yk7C=^9o{4Z7Jih-hl!yDRF)b0Ck`NU*AiVE6tIOxxt zuP)quEPwdZsV(at9(=xj{jX2={dVw|pMKx{+pdqUq$Z783NC9cudbf%!>}4#7eTsF z%pIA}+v%#$0LNxgR5`R9ckBRkl6`N2V{>95|1bG1o0IQ<>)WyRwvFF=kAU32a_t`l z2Xo&A=XN{`jsX+?eow33TxYZV={ZiC*7eKVrgLjeLPF7(N7mM5>hmu9g~r@oxijt5 zq)a@Ww!3d6|F*uCQH_h*`tIQLvlIStPt)o+^4+ifl4GkCR)v?dKKGH9#a1cOOZ~1E zeXjY7#7)z?d{H)~{A}X?EiBNt3b>mSOj-~BIs3$Wa#Oj#+Ogd^j0jrTVzzwD0X*)`um)x5m8(mGT=u zXneQyH?Dmxv0Wjt4g4T^y-#`izV6Squum764jP|-2h76QvmL|RG=2qm2_;&RxlGym zgJ$$0hT4U_b&>hxf?-Q5*0D8gu0vvWNn-bdvXD9Aun^bIWNDYR@$X`q!BNcS2;reN zdXDb(W1qX2PV5gkx(C$9T{dlu7P=led)!mvK1Q}}vbdbp1y*a;-Np1`EF(yZ6qwfc z`hb7q##&P2Ugdp5*tTAVi|AyHf8!I08Bb!jMtY11*E=GY8Qks|Qf?YdAIa_Y@Smmp z$42*c- z{Df|^B?oFR@R2o{DBKBSfjpYem0aN44cgWYsNx`ZrXeG7-!SLprzA1b8tHNAO7uVS z1b(KgZ98Nv2W)!@{!zb@C%@6)9%-A0C&x)Q+<32Zx$&WSH%k`0~@hs00vHCc0B>l zFBSSImyWXh|5DS79|(^dzy5l_b?nh!Zf68dd0fnm#NDvg?3Y1niLKb{y@E=WhwMz4 zEf*aqV9S>p1d$}>=Kl2avKK)2G<`}PLGN(2ozQ|$(Cuh?!~?GJmjbm*BMLr%lc?jF zzKW$yhRrv$+!Pl*&q|BjuN6it0t;y+U^M-{x-3};V?DWFDBpKw1fLm6bTKl+r!hdv zW6v>`vuO?7X-M&f}_66eDrKVnIXNKX-Mio;KQeYRvU%pC$_Q$fL4S%<}*kplSL|uxdpETR7 z(8GW_O;_cHo>aZycF04CX+CSnWzm{#VYUcBLpysN{WkCI;+b0i9+j(MJ3TCL)-H{H z;agbd(9A8Rx_I+~dYjgNR(o8L*1Z@8|3Rc!Reew**V=FaDh>Mw+Cg>(gY{j3!IngW zl8Epc_$jZT9C{8KBn(JkKAw{QtgMDOKF3@pX2LX`Vx;0E=_4dxBHv|eH$XggI1Q7+ zIIcidnMmXzVC-cg5aH9~Dw>;-g9bFp#W0Lb4(g`v(tX|0UWRH@7f~YLvSI;scKD1W zyi+E>iPi>!lql%0MBzCjX-<-neSe1q6E-7P{(=#NJ)w@O$}xgvDoAdmf4lDJi{1B5 zato)^W-p*g@_!S$Z>YQ=-t_);hPusiB#Qov-q-@**^`8Q_chzKDkrVVMSE|M&}NGU z4**QxS)XTfWhrUDqhGSQE;hq}IUjJluKVYs{t8h|-~)pQ-StpNkUW8yi(qs(Fn`nR z>Vk-J2cXE1ZJOc!o|ABU7tuClBZI0fYY2rXm+pGAG@O$iw9#!yuiw!iQ41M-wf#`< zLO}yDbzoHSv(i3J>34>mDn&eEQ>3c-6!qp>3QfPuOqp73TwJ?iz*~j-NmIK?vq$N< za6)(=)nhc9u4wu@fcGw7 z2ARE!+U2*{s}g)xlX2#?KCBv_qwnB_chruDjn<$b{yR9ETzi3R`#q_R4E&l;myw66pv0yOF<%xVbEv!9s%1WdN zwjfa+E7O*bp0KU4{Wzv=iLWPb%QWm7Q~jZbt|oEYQ^Br07dipVllQ0@VeId?yZ3Y@ ze<*X;hvk;5>`%~%X)D`wt4;%{Bwso%oX1H<{jl9U{rE5f_tyCG} zqWcldc%%~dxae&U=;KHi+>1~e{7QCGS7=xOB)kn=$KE~h-%E308T1os$;_RY{4*=i zwAQMN1l+9wQC<-Mqtj;;zae*q%KB2vCYtV3Hw}xnO1M#B>#xM>4={pK=w7;=Nxw4q`V6 zQxDyrP1{kRF`37lvl|jITEC%_C?#s!3yY!#pO&%oWM;zF+580fTxNoqI{b~?P*cQ@ z-5lkgo^_*PFlLy4PA!Wcpn{S}_oVeng3N^6L4Tj)WFiU@MVwb*i#B%(k}0mQym6T& z%Y+dH%{7@WU{PGwMcm^H{%tzXvofC_oNx!p>_yG+q}|K7_uPO5NXgG=uI9mYne4&E zfhRJT$HC0phCcf_NNc9<>6u`q&8ixr=>R*P3{TTvELN|HE~RYkL0Aig77qZgZ`qJG z?2bL5L5E4UBM?zbV^Kn03$#r)DY&;0Qr&W0}OvS*7;<3<~UDiu_6Q zEy@EtzE$5a^pX;_=I7*$MWGzrDf_qZ;(?Tdb4D<{@Wx9YbiG|1@#@0 zz1ydU8=nL8u}^x@!Jgy;xbJ>ppKROd^Qcv)hARqe?qd?GOO`;0>L&_RM74`z-y`|P zV)sF)*70a4%@OIXmJe^B;zv{SGeiud$rPx12iT3gxhUZWrtyTS=SA( zuUpQT7ZeD(wIQ&-Cr{*}GOZU)?hI3{Nkvud>F_EidB`2ziBA2?HpUgsc#SOfkqxt1 zRew_uz25~)qCB6BJu(|&mqb9{EtpzQ*NuHfIlNW$fC3kg^=y{`ZsT4H2zx+S6(zX9 z_*fHIhh5$pHgCHI3@Mx%r95w)4e?deX6|CVduDRMhy1@l3 znJW-r-xZ2~p<}%IcBE;p7Z7?wuX1*l=bly+U@Y1gBsNqwi?X!P7wt5Fh#mCSHn@}b zgT}CSgI^QVA8fN(GweN#+((457M_~Az@3Cq6Y2%;5HiJQ`C_X;kN+0*P1NP(BLZzy z-E**%tT625PeNnxY(#oYZ#QsC7s~Pu`2Z-kqd{!<0UKF7A7YlOz0$x$szDD`$t?ed zy`fjGv*iOksvzp8;g~r@@ejHFf|w{e7|d5qiu)e-q#u5 z)#ZefzAtpLf7_rBQ-;Mk>VAT4g6A@NJM2A+ysOs_T zwF85i9{Ef5j)8FUfT{q!d^~M&O9qek0Y$ivyb527_Wl4o0@J6(yi?VI#@S*x@|+9- zp!m&zpZ#~a!=*aN01*1<<)ErSRXfJ!1H1L4mlVp`Dx3+u?H^|G!Eb4KK9!0|_cN7r zdwsPatdwKyCTAKied)*|&E+TKMUK!}E5_uIbqlD#eMGxOVdnr_cYap2#JMAez{vn6 z>@a*b9p=SRoef3vuA{;b$O7QDnznD^@bF%>A?`mnEbaGBEQh`2^r}{1J(_pg zTk{o?+pXHAff$Fxz89;D@tS##Afc!WdnljLE3r;0vS^|lR-q0n>sM;Blq^9cA)l>( z@|617??A_G*?u?Y#xNrn`gfh{2jNEH`7g}e`ixG+$jRQ}3EDUi4r4yQt z&dXP=%u-ja)6HDcuB=#2Yi+K>n#%=Yy$Kf>Lc7~B^fW|P44B3)5e$D1#^K8qc3?Fz z>MFg7oq>i1GCI)EYEJknh}qwOw#Y)Gru=TWE<9wil>Iw{(m)PPco8o(Kk^snEUE#mgc7B0AB3V*`+X#suVE@lj6s?vSHGVROW?= zC6qJQ&XCs_R%1B(Rxdk@{LJ7eVzXllI!YGJ9Gh{QI&6F9zX^6-%5y)s#;8N%5sjMd z-HFP@+#ey$gC|H0XXhK!^>RsfjbQ`r32}XYR87v>4MmshGH)R8}^#80E z1cv&!rwq3}O@73jY^ zdDJEKkHUc6b>w2i?R&_$JY?VGOl2xpvRTEhn+&xdom-IcTdAODKtH2?xs$M<7ttv^ z$n!(k9-4_wTv8jce(RH*wH9PhE*5+23q5;i@U5!;a-KW1Q!sd%ZoQy%|EHRHco7{W zGQaseymA1y?fuwVT&{aaI|!8_o1F4JCCAe*hgU3CXx8-@u0PB&{AH$pOGFAL@%3td z#GDEhlLbR>FfIhM{bofo-8@s0EBRdu0)2l!@M>1+&xvEX3A1!B=by zbPUoB%j4!x%aW>?8HtP$!W-dZ#{y5Ax)L*8?-?o5tRgLD@C_;_26?C#ktl$&US0(! z=UUcNT%u8HYniL+Y~J}d;tCS|>lXG-IAj*_0vEH#@S1f3(QUo-f~)Xoy{LGpdZiDQ zT|E8>Y`tDKAdFFZ2%fzQacsanOEhnS0*0okx#!4~LF(GExed57!1ER}0|EL~me(O4 zFdo`8NR%6GLmKQ5-GBovsGNRw1}aCP{4vp2ZUyrpX>|enyGsUk;NWevLJ@!0cVh{l z3wDL3S}|ujsDdi%?jk4W9#hVRp^HKX*X0(9MhVz`-(@p%rpu)S8%LF?=6!*ztT@j` zwy(tinoq4x#|5nsj3>ygSRyB?<&4~T1}s(huWE=0=N`#i5I?{L%3{-TJS->xIG#$| z{h(uq3~@GG*4HOW5C1Asvk+T`Q8?qV#*Q6mv=TjlFSUkGuM+8V*v>2D$ zAq0Mr;~%=a8zb{EmZ@ZB4<7hcQk6~`5N^Cm?*P=>g`N8pGq1M8r*mCwNFNB*k2UMQ zn{uatiUQ!_oM|M(byT07m!ls2L*V|4 zNH4Wx)+7^KdS@E9=1zEqd0S4(s^?s>HpBhjL5?YP7PyhQe|+E_)VB)NKBX?t;4Sjm zFo)a1o@<6$w&B)&&js5gXL^VIEfo3v(JU++Eg$e{TUdy=<2!GrNL`#cEU=emr{_|B z7}u=$mvlyrt=+Vcy2U_sGjMJh+z;TmSVqsjvTyJ(HFifo5`N}onb}FKoHxr;Nvmq<J*eN=H_F< zFD~eLib;3+TArxN?{m@gXW0b}qjB%d{+&=yNHs7){u&iy1? zVF>V9+@kSC{)Hi%+#%j@6o{}_2y-GP7*16r`Is*hnYUqu zmBX^ITNty(Me5M+0-tE*`)P;FSp@^3iPD3M3xI3>%5$fC?Sm<7jtPo48$&++%p?EMqRg?B!tlN#F(3GIKF^l~w`GveNgy zVYOO>9k;>Nm95a0nK!h&{*J9*jJv;>a;$UTDjH>fT3Q!w+X&H_J;-~dWjf1s??@li zq+43t(;q#B-@`|XK52ph4CBciF-WP{DS-ZqtW#nMjcq&Ni1=c*c#26*gjCD-2oEWB z;fwy}>{$6U$cd6Xb8SzB{D$yk`DGt}p)n}X+nfPzkSH`=Zc-1o0JgN#Fq8fn>jsY# z7XaOix<3$^uv%C;7@Zq1gB6hS%PxksY5ebM9P9KkPqD7L;)RqvCV3u&%*;@d2ZZHn z{-wCMifPa+a!*IA>V4lS0gMYxGG7igEC1bt5n+f|$ z<=)SLaaH2{G_5V1A0FloOO^l0Ad&>9dEUWr{qbK6uWiW2h1a~@`n~hU&|L~^F{}vJ zGssjt6ipI3n!J%qjJFXAOlj7g1@0AThP~kGrP-jIyO<_cMY<5z3*T*|R9u<9qXW>r z*Ki1WlUCe42war!48##n*Rmy5j4PV}9cv}!dUu61xyIS|=|L>!zFf4ypZe)~i zE(rSJhh5|UcRKe<=l@O*fQ|>Kfo=VFNaAd#0jIWKf7*9<(`zfQRj-b1{>k+3z_&@S z-dt~ws9C1m(l$V?{p-wut0$bgGbW8VxaY$wfKg_& znzIvUDD8PcBB!5ug;NR)p972atH?l$R&8#s!j5$Bo9~eyF7TFXE#}LdH9K*Y?;P2- ze-M#NvR(pO4#1>S0+kk$1@cKwkWqbhCmwy6>zyz8M4-+Cz7F$xDr={=Jbmmj6L%hh zyu`M){c}vF^3ES_L75R8c*5R!LO0bx)<7$&HTV}q8dmDnR1s#ud&E#I(uKC^JAL+Y zR;aXUinFJPy3&9^T7byJotlHp!tO?f>^GET zq1l7dj&$jHfX)8!vzY#CM;cPE{b>=9*&0vXI7WUAiQ5#NA1PKFx8$+$;*(vgjDqvp zg9Tc8Ct51JO&0BuA!%n0r^361!j$!TxKTxEPr(it+cL;d@_i=AThJDa#NYNLZ_#Jo zu0z`_4at?2W~+sc_gpLCY_0$3(iTqJkbZe3;=&B49*_vu))Q~zReGC&?SQ}5iyah5 zyWkgtNAB{_xDrOvGuth=uJg~B!cU6;ig#F#br}}sru(X44a6Ntw&m%XcCG7hUj|(# zz8aptm^_neyXY+FGkc|6@Hzcd7xGT!azD~W0yLvlb~Pki$j$+_&r6*aS(Cq9ZjD!6 z@xkTJJM5nTTYXnEs%lv80_IEoo4uX`J%!JUDhpKHX3HSlVa;NGvo!utF~J160M8#Brk85-KwN8W^Psr z*QDm-g-LAgwsGMKLo;7*DplI|Bz35(;a76@l0l*(yP4SV5869H4wcK{2yBi^$V3Cu z?K#k5WqAMHc5!Q^yqOzOj1EM|p^LJA2kCO1v*3%MBAU`8drDj#NZ>h>ZHLv4j65bN%<;@D+n6%%>79q~op?mW970p&N%4xuD%EJL&DEx@u*em#^%vt z9p!QDUL)3xo}`%W?gE6hcvlW*nEm(x?yBJPhIxzO2 zdLl@)u57S3ryX10HtTXBruW*YB)Xm`B#b0>_4|AD5) zPtd{r6xUfdy(yde4Ma8Z$yF+L(TC7uSI5R%w5HUrSIq)LhUM6jCkwOoJ?grv;2qE` zdFfBU^|@}sTpOi0!Kn9k*gzlv=gcCDOBRxiWM~8XV46RPqI2A@Z(*bAUb3b)tVg;F z;Y}Fa78!xD1YYm4l+%7~lk&GV@vs+TQE7YO#}(y%#YRR_#k1t%vVMqog!w)5VrjAOF`A7pqa1S4ekk>zM#BMy@IhU z&I%5-R9!2i95ohtw!Y&m<-G|+XN6>A{1C22B@+p^@q_1c5$P=6&&RuOHC?i<5>dc) zyd!HXELF^KJ>!+bE&@x!-Y4Ynd?Q`T6u**ux|@Hg3W_OeUqaI5Zgt^@U?O>JRbXV` zT1=JXYZy1Qck=U(tVbpE;m_>CMC`VSkeX+931NniM_C-7qH)iB2_}>POLJoLnxM?M`Y!*JXd1o(Zc@JBcFtqj|tDsy3y>t%yx2alXkNv0MA-Zn(L(*^`ZQBMvC|B z_@F&LAqA*(ZrD*fOF;^s+^zV+NL;o6WG`1Y^PYL2ED;|yQ zsLq={7u+LlM-&0cu4KmrvHEOXUf_1|lWk%f)(%LQv?>p&^Sq*AR2^k=zOnX?*z z^Np-_hB9P4_6F%frn2(;mC37K`P)C{0{g*{6t-~BK8I)2o?p~!-+@k2H76>g!&0LEDrT;HZ*hN z&CI;tH+R$x((f~vpV>dUXB6-=TzI|WXSq)+13S0k2HNOrBiZ_G`K!8t`BmNfx`}qq zdb7t&x*u|@@FkeQI@T|n54=+Rq|6tMwuDD=B(ZEu)*XOwjI<^BYA{iG>-*J7QEu{C zUuxYwq6Hqk0iW?(Dm> z5JlzL!A9R=TNn4*4>P={Mn-=xF7T zaB^z{FRMRTh2gF3-xm%SM$VJ1PzYwJm!(YnwF10eGqmS9j{$pRGxM}))UK;DG@ixfr_OmaiqA#yN&#iJ>iMqgc~tBi{alzRzUL+4#> z_8;K{#kCIueR~CUu-7Z$Vw<9=sXU6}D|@-XxSsf|s%~>(g%JkFt_WAbqSJ|w(cb3! zOcDC;k>6S@fKq}xZ58bTp#pd{&^T&wIWVgdWG*r1C`XN$zuQ(N&(73s;A0r7gYvr@>i6 zq*u{MUSkzoa@E#nLN)iWvHL$=;A2uLo;ebifqaRppm$uxKf78CeFrBu)!(Aj%^~`G z&s67qKS7JJo?&*PTKLDL^Y>&;LCm8gdOwYBnSSCr`?wnaly5Sy3dym_sLnQG-P&=5 z?&rnA@7E5JO4UQliyM6V&hPD^m+;Mca7VEz;giv~^Z9El@1a^2->}kd)I?8M0O~=6 zKJ;O$o*p65_13CPfoOFT@Sn`JT6N$2^dPt_y}RXD&ALCXG1t z7f|{|=O*Qcd_$bp*c9<8{V2=DMwOcqA>h6aJagWcaR*ykql_!{9C8|ByZXd*qHeSY zaTYF&WZ`W0sWoFb+dnR{7rZiKoY{Tg6Z1ViP2_0S{5Oj?{f+U$$MbdJyP_BAE$e)Q zV}4{Fo~NXls^Y(c{JUHBxF0oLd_O&MR^Y#t78#z)KFU+Z+SC2S+@+pE&1U8MrzQRB zAh>7DgF~z+={^_Au}(|2zglu2Ic|^XD%j@)h=8PuW!-fTCXuL3#zUjP{IF>IhLcdkxK|5f^Z$*>ke`xWYZ-j=wPF|DPqWe&RuUFF=Ol|UkAS_M0kR%6 z(*NPHzkFH8l5fCA33EI|VR8EjWNuVA03y*lq$ zPfDKM=f4nhPI$3*HVhTamrOMF%9s8;Kq|q|M)n!iMnxcKw+-<NPbr5NHlq-sO?KMz8sRFtQAKz!OvrDyFR-farZ={ffh(NJ;y#<6(2 z{~+b8JFt?}U1_-G@V+J2*HCg=-M{`D{SO6Z#I*tYJ%_eM#HtIV(VGFCgT_jTap?3$ zvxX{aQgH0y6@xSHDhj94WxaeO-DzW5u|WVWUfeneT$zh-M!H8m5-H zghWe|2G`G5gMIp?)C4=ZATSE;!se7`B)2Ei7kL%SMQ)7}`kob!m}$vK#x z^5>{uCB3X}48$9e6iDw|tc4LD*8~DEL>sApienzss zHWFjZ9uwn=T+rrD?TUT)o!)=sXtD#Yq8mP9-05(?q^c^dJ;XL!=Hxn3Rg9^Ru1akj zzmiu{rzCG>?Gak97drDqC)nhwgJ$LgV!O4~aI#1fD}f&$#@GqzqtP>1Equ7T$wRw3YMk?#ms5*|So$G=3YWPd1D1zGh}1)CUwyNfJiY zSB6^-+O;Bw^ByzRxT>5WJ%t$OY&$cpsW>=vIkqr(Ne+|hzHAPeE7Ty9MPeN(n7u%GA~#&czPEg!;$_J*rb;bf1CIo-{IXdxLX5l z!5ckd9l5h@e0t%74%sW3rH2>-e zzwK(8E?40V@9~Og)$orv_(@_#KR@HNto4uL3MaNmPHsX8-e+7Hs+~jq%9_;`zj1L5 zt-4oc^c7DE=-EHUq-}jyngq}JN@?ZgiUxE;^)*h}%)AXOJ#1)FGc-e5~VK zba>3(2^&-L<nf*xhXg16;W&c}}?N@$P1dIN5JoY`MNaICSpTuA*D!=q^ z@-Jezwge4!BUtJ;-J(T9Kwpv~&M2dyfQ*ju*?{>KI?x;3mcU{(I4@Ufg$3Xl0# zXCdIcK^#rCZ`TqC&xO;Hb`-rpnTUzbe*izjaY-Qb1cgVPw$Qk*Ew^EL`BZtkyQYUG zQ@*J$OXAYFcPhoSs@-Dm=^&^BVSyYLpR+jqK;su&b}9BzO_oTwcepH7L;s|nI@QXP zebM#0aHa3Bh&6vUg_{hUP~EzDwt4{dfM>~huao;7tdx@yIF*O|6Zje6T z64MmS)9tF-{lq|79RreMHwJ3TF#he6mmZ_Fp=0pjj`P4CWXcDJ_CnyEZ2rv|Ka{0c zk&Ko@_TMp*C;7U%TtJ__44+Sj+ zn4X~LfFBH1!fKoT=JtdXd#opZtjZI`A9jmYe*8&%H=(VuGqvaKcDncR*uF*%zThe! z`d_r0cdvkxX;tM!$|Zhh9|Oi(BiggK`$5I&MtoAj*N!X9pnrwAoHTD_yfJ2i3XR>` z^dn8=d3Q2=qo9y-MK^R#c1?*K*fn3ryGQAnH5rSUygUZm$lY_JpsLnkp!(c-D&W!e z>ASi_5>#4tEKrFIG;6@ma~B>l#Zy@N=W z4ACgDXO`-EM}yfq&?Gd@E^tS<2pct@b{-hHf{lJcM7cw)*)w=pO(y9rXVK$4yJbmQ z&Orw1dr+jG2LT*1%7O|4_wC59Ft-2X2N-5&kkuD4MNr{5XCK_HgI$4etB9-(>0RV- zREWrP{+AhNnd{K{D37un{g2-k@!REV{#b1+**W;8%I!jHcTBSsV_zW4Hp z>2BODf_nLEEs47F==1m(vb5bRklLW@hi@7f{V|tULVRKlEA{qDGt^sKnX>-YVHx&` z6!~XYrj`?ao(Vcb%;NdcJS3m1y%Cu|($7eSOAxkvgU= z`7)@PeEo3e;hPEv@v!jr#{3Ml1Tg{y`}h{q-G@c687Giw1N*wELldz_zsndj!9Fl8 zxlP{Y3jIogbdV}{>gDaKS_OlWye*}ouN5ag*3k<=CNQ_9g5!byMh%=n(p*%)Ed--9 zD)#up+WofVS7}>la0iz?{%Q)JeIBs?+}6)Z66>EN+wx~AZ_tNuG4CkuMkIu;RVGWn z4sbX5TZVfU&cJH(52G6ZE2;3{5yw-B2>hum%*)2=COn7zdsD%X%}H-xkxb5D$qV&6 z=iOp*NMBIUxHy*Vo8;U?y>rE0mTRT&g)Mu7&Q9Dpd{2|R8tG4XT}tD7*>SB{9(!kc zw+6BgLQ|o{^Q6DMgJW2JzXqna?t5^vr$Q$8$~XFxU&X`37cX01bi`(HQ7z~!(M*V` zHA@vo+52DQdr?7hp~adc$5b4WvidI?i{jw>W%hwq+1egz!MoC^bGgC)sT}3YLo4G` zaN$JQjpK?O;O!}&$fjXdYAG-mYBh|G%v=j%%_+6+ZI~0EnRA}Ilj7P2|4_tkY~wFl zeM^otRuU<0C&k}3h0Ck!w-5Jq{3^Uql2GheKH-+=z*)R_9%#1Us@~j=dR_}-Hb+5f z*v`%x^cYQo30oR|t)#uK&Wicm>M2NDRW>8zP*6`8y`?&3Wl*$8IMuLh@CqsJ|aR9o+ZTcneTeFA@UzM18IZsoIr6>2I;1r+p*2B~gOm6?5_X9ZQ$aN-&F7os#VY zA7a&ae##88wC^eQh_pEwK933MZ`-Zv|1x@$dCdjdRG~VBMUG6YQhRxkWpRR z;R&7M1&#g8evYOoskbhfaia-P;e;!u2zBl>x1tRkOd}afO9|vLhy%Wr?%i{ZS=!oj z-{o4V|NJ%ACSf&Ok(M9xrPcLy}jFxU_XhICC5y)y;DUuCjBHB zxbVE-SoG7zxc0$tpi2Wcq0>2{w_)JH+FktK>A?+H!CHKq>DP+zB5&3kQ zVp7QN8l0Y}$=}Ngn1fg~;(?g~J9aNZ5EI%gx~YkM*0Dl0a9^LT%l0-pedq?l?Ugjk zROsiD-oW%&Y-jpM(1@{;$UpHbyZpRa25KgV3M6kB^>CEYo$hgc^@J~AF;48cEU z=Chfj+0-Ng1r>;&45QvQPytz!hb%sk^a!@}>9Z(NkeXi=aZ-P7EH9q07Wfz53O~>h za-K{Hg)dy$(LHFb9{M@O^}ML{*&sMQrL*z8$fY949-ozL?|)I!=x?VV6mlmDj%dp^ zJE_!1gpy?4I@w&XIrn8|g$}}PqHK}oX-)k-i(Hvvt87@x6O7TW4^=yfZekwB5nr*( zk+2OA7@_tx$l*)tVHII3D~SMHHH&O4f^_@AvZ5DcfCMb9Q=G`lx8y&I&ZVRr>yB`g9I$Hm}hg9V~^$i4{xe|Hy`sUzpLX5co;}O zd*NFHJ{eYkwumHD=%7zbkIXH!BWS(GCP@(G9We%tqGhfMxlvVo4^oxxFxYolg|BLi zYrsz@1iSZ93v8TnS$;K4#b6SGHEM$JReQrz+4 zimd=}G`~WgQju|dv8bJwNGTPg-+Z8M7DE!<29`n!V6?)8U|FwM_)&5CipJr0C)4wq z&L(&^i6_tvw>RUaM~)%;(kP8%@iYd|-1w_A@iobaxDV9}_f-$C2>O$Ji?+T~B6tI> zYZ*^M9wsZXO!qYvGykx7(-{$Sf~kb`k-OU zjO>`<>o?vv8GM*q_ORkbiKneU>sqWWphJf|Z|Tf)af`II17%*}uoa(xo}69diE{<0 zbf*26uFC=&iHrk+4^V%{*pH8yOw@akI=(=v<99KD#RuiiHTS2J%CRitt_#EnT8ewmBSoiSr(Tt{r!C2O{iOL$A z_(O$qM~@x%wZ9$Tk)Nv%-(at4^dk19otIy;uVtaCjTMHTqT*0-*j0M0m61ijzPD*L z3~jxGXZyxNpl%sYSR+VW>AnR9^0Jo9MMhMS*`wDw)HZk$3n7em4}it?gi5= zqaSzsIcf^tWL8*JM_}#K@I_NMTAkpNgKLl_VZCUmxu<2rP{f>z%Ic>W?|A1i&>GHx zo>+E6y6W1h24H;0U6RHdX2`lQNbP24QrBf@5c5#;LGdWzRSLX1-fPaY!M0q1NM+n- zM*c!v%L*uFnsvw#iJn1#VEh&anVfRW)EsTqi;%%LUZ&@ARmx^w(|=%cm-M7I%^Ey^ z1SaUdj(Feh`?PB?9I}0YsT+>rQ{@l*`Ndb~_<{-yBgi~o za_Ji?E_pvk?|`tkj_{oL$DGS;LT!EFsSvB?yNa@5bhQKGcR1;)~Ge0J^~ zPgB;e7;8r3G0u*zFPHpnConxO`ScKIw-2*ET`vi~yT8}Kd+2N--0sus@)7J5$OEJY z{q4d!v_L?yiFdKe>vhRqR{ssA_Q+uleHxKi>a`;M}56b z2`hHwd?8R0(JTDd$f+8GA8)MK%y6@sQ0)%}auiWRv|X$ffkDDfN-#UBI^~gpKsWr( z4v50;Y22z@YP-)1LSr_T6+ID%O9sPKeB-QPl~M4}v1De>UfZi(NnudV-X1OOjLicGx!a1mSuzo96yyA!; zIyD%|S_ZvMio6Q@=V>rer5%^J)^T8gVE}uibEaZncnaL*wq2NokXNE zdxfY(8}o+Y$;Uo~>?OH#Fz_9|9M9Zrx=LD#f^4qE%7OnRXC@Fy_-GA~L{4g~cHXKmH z?nYW_@Uyl*>3aSg2hFSrmMw1<(ON^ziY*t5_M0PHbyi%jw1%EJ;wP_FK61oXK=BL< zF%QXbm8KpMH;q}uOJ#{un;n+#4*cDVy32(i`{K$MZ!Qy&Ib%r8-~eEfpT%H{wSGKa zwndz}0G54J!s~pVx^jwb(X7TrfXo-wmO<-(_`$;a{|>w*9sb`Lcr(&bq5}fnF^EsM zUB`)(GY4a1>jK(;aenl~^OwiJ{Qcv$p$Q8ci`^KpOi$+P~Z$tFeNNT zD}yVP)d3Y(XX;pkb`e73!grQh4+&6kpaC&~L^V(xkR7^}dAaHW@;=P)x;MgKF&O@% zm$UY5-@nI2+|^An15k|8eRY~MD7^dyWl6Gj^^!AffK(%GyD{A)G~K=~fJ=WG;nCW? z!&OpIZA4a`MVLj^==JuB$e%_1$t1taT7ATQ1(R4=jRUv5*lHTcWiEUEH5Jixr(hj4 z_wqIG`|*`cSnr7HCamvGRCe*|EpIJ1NP_?J2;+ZF`!I4Txizl2eELrPPw*>}qq8Y@ zlzl(LDlEO$dF5|*+k>x&ll(|K!yhnd_=n$MJ{y-DX*P1Ye}d_nX-K(sOOx|J6CNq0 zny9Yd9}SxbPw-cF4DS{A{;KzNy>19JyF}Y7jn!|K{m=$B(#SQqYvD%ru;ntcD`VLm zgEivkwH7Mx^|Jfuk3Rp0weNmQ>I?j@tgN@G*|MCKm6fHLxdkdKGgC9mk%Q74WlD+* z5y-5}OwFv^P?=e|a!;Vr#2k=&A*d*%D5xlijQi#D)8`NPex3(-&M)V=_a4qY>$Mh? z)^SGP-OrUfB?yrH?vTcb-m1~pbxMTWe&8nopBHC1y+fwrK{L!|IAw{R)eK2SjYD6c ze!Nl_87K$Q*59LYDU-Aps9%s2qzV5RkQt>WdM^7~vNDHc>!8AN%!?NAT%QPky7CU z4&+i8U^OYjGuuQY1SgaeP%kg7Z=i%Ki{TOUhtTf7)x`d<5`AFa1aO$=GJOHWSH2*~ ztsHW+Mf!ZZC_ijYj(djRo9*a}xz(&LstlRq{wP;=yE`l0dR^f7I@{5QsCm{Gll4{f zEb5jZw2M?;R!1!UF)dvklAqh{LmW(&sP5cWR}S>-&ljw}%=PWkZIzx=)Z=PT`a+UL z_fl!3atJ99{Wtau-*Ev!RQx{0ME#cRGv!8MZ<^yMq8r@x`XdP9hPoY@qOVMr57F+q zM5~rlluaj*WMmDFqYt`;Bm6Yv2nRb03WlQU3S)48M3yOjO&-+rA(FX_!3*|cPKSRg{jF;~Zd_dkF; zaX^-C3-I~}urE%gga>#V0M$*>vOsBXlOr6^`Y5_bW33j}%c4KgpM=F!3Ie1P*;QCi zUyL~gJRY<*hVWx*dZ-Zg0IFz^_>PJXTY5Okl=$=iDn}h0%TXw@MB6jj>w5tQFZc1JQ+pPz7AZK=922}AuQkfD!+X2oa7(aBLV*CZ$&@eGgxwq~jmD|+$kP%xocszBK}8}#^E@*x zSkQZt$6XxvA(t=A7Io|spws|}kQF1@*M-^zB&mprhZitwU&o2%=8nY_z0OrNzVHi8 zVIle}rIrb%%zU$?CoUrNhrr53E1_fZoU-F*rg#;`#QiwR1eU*cf$Nl7>kg(kkXe5i z-V2D4!?=K~7Eu4%OVXhAGPpysI|t*=WWuUN|>*xof zV+mOV#-bq#+s`unxH6WdKgg>7R1T}-LT@gJVm)z`zSw&;^gx_;$%^ubEdEk^o>u@i zxWJZW3%4vI0yc3d#(k_%YJj+RD0KmW?!AE1%?7N2b>gxuVjOG(F!+Lp@czT~9V_B|XCkW@O!IPRn;9a7Vl0h$=d=M%@&PiYBjhN;TS!O zpW^PWt)+B@dtzYyJ!@vNhca%-!ZH?bJOP*CR@XEHIvWHZcvK6HNlj}Q#NeTJd96Vh z^m`#Ui&bupn?U!DD{e{?{bJT@2n?gtFU|+6e&AWxt5$hW@N!pUQtK(J%30H{4>*fj z36mQ092x&U5oyD6E-}>)#M{P+j>U;|%&C-%|6*;~KT8I7jEpAzjq%DIF#2Im+|E%1 ztha(sp$ONwC-H;2eaMeIw-VEXf%tBpDw_IvJpK4oY!dKvi}Y}byhJiXjUmPr3A{Y< z#K1MH&$LPu?dCbQ7iAecDV1x+%ty(5ya(7xe}&DD$z^buItet&3cba>9A`mH1ffkc z1c`;}-&Vrvi64ZfR1Yx{X0o9UV>|BMCrsu9Z(b9ApjKMoR)sEjgGsPyAEgk>*_~Rb z&@^g6pFq3iXX3m3g+j%-5Rfqvc~KFVnQ)~4G9#@pzpsr1ug#!!HNoxxwr zk^?QWnQCZkoX`Ix^1Op-&Sp3mhAKCXJVz#ADr+mp@VyU(x&n8aB)K+`=F2y=xJK2J z(kEDT_oL#IBpo*+qvT2W-#|o;C{8_VpqZ*XcDgBuvm59Z)CZw(!d*00BGO|RB^$%A z_>-INpt-}NlWfqGMEx>@(Ue-J-5uCTDL}3{#ss9&7)F-J#yzX*$>So8d$1y!NTZY( z@8vZ+bGQlGWd)MiWkvk9q<~%^e~adKIWob8GDlCf1-Ny+!JOthg(-c<1^6Piv{`bz z859`XF0tRidm=(b?OH{h{Kot1#q7v!4PXk6)1K03i|~DUh4&?I-Y*_@R9?gl2oXOi zoATrdDHFJP?z@c;!OQWPl4vV@)Fwyn>lwDePDe`T;(m_&DNl$i8=v#8wO1(JGYS4_ z^Ir@kr)b4`8_;~2(XGXO^p|131uZ?0&ohHSW0EEUQwmLCh?o!z<`)x7hLuRMy@*e> z+yyElGLMDI>+AL9gu+pIY!g9WZ*w_pt??yBL!_-D#eIx2i>+N%fqidbTm9)xicL62 z?ZyB2XN5%5Cs&29%d7*;wO{38db<(sRC+g+JGf_2oHfb6lczh!O0sYqp(tbE zC;cI~mE}_cf>eK6>Tru|D9GW{gQSYmbnGb5{I7}qn4FIvJGq1RM%1X5FW5z`bzMLP z>A2$y(KPOhWnNe~Hj~ZnMif3Ld%WmF=qb)x{hR+nZan_as%>R3ksKcjte?=5*%+7z zL|ij!kkmRz^2Lh{eHshVUqz%p#*u`pn}i7Oyo74(0_Q~m&l6H+mPZ=%xzrhwr^U7Y zKoV_PO!WnPTQE-W(ZUI(N(49fDcyJX2cB87_D5bwx>Tx@6SY&66C@6b{Y9+*NxNfw zs!<_(bkBF3&?p*4vTVNhk?g#Vqr8qIf*Iy!X3%dA2*FG*Kl*5PP;5efpQQ6+xOXN_ zcc$s3$Z;EIr!*~tgs)z_q8VjY2Iro<+Sr)oQI1KS1$72Tg~1yc9O^rKy*!FCAM_CJ z@mx5498$>&$9`Rz>m=;YW3BKwcd<&cW-ldXghE^x=sD+2Ie^n^u8mQ$Kuu;0h679s z1STmXVweE`bsP7Xfj_t8IZQuyX@U3#Up+~s>+|q<*}IeoKp`8tR^dtVsM*aSuwbxu=gKYt1{;gB_t%>Q@M#v0C%ihV?)X( zHKPYtPlWj!C5kmZF48_3(^kz#&5{#Dh`-VB5D3wEmStZ8vz+1h)r3avt-_T#)46^j z4|Aic%}|bfUQe`*2oXO-@>`49&Gv+197Bo2?Sk#x$dbWa$Y0{lYWmhhOl5r6BGCGY znRDOjH=rVy%MI9+Y)ZOsl?1rpaJ)TBVcUWE1uSjfFCc7<@E-+0!~seBfZbv6jwNEd zAnF^gP)t9orN6QWGZO38bu3^U5$5`UAfhyC)v*rqMJN~$W(wc|-v&hWEBCFqU4C(B zhcVc{9#K&Y_f#O1{^=HMS|oo@){V6*BEUJL4;#E=Tn~@adKO`alXX{XKOk3E(0T># zaLbs4pPb3wSV|XrleQ|HJB93&1nd*Y8&7ged{ClX$;)3c4Y>j%g@&Jj%e0z%-n6}i z+ygWf!3zP!`Cn8|P!n;_D;E8SmR9H7CuEU(v(RvqG#V!`dL2U%^8XFgC{oz(UbW^& z)lAXI3%Dg(A~8KwKMBFM+^71y)f%0W&guftZGs=>l{uspp7m7-w=;OM$!Y~MfqL26 z_*Ebe>8Qhr^UvR6L6yfbdRe0nn#I~iZ9<1%`jZni8vxyDNiOIKz+WeAJab*UEN8Si zAZG2qX=qP$kvm!2?V=hN)k>+)nz0(kv;qowv#$5TS|Bz&g`Q?&|fBC}$Z z%f8p!8xa!reO{c3y180w+%lY8m!J))g*P=VI;Pc-gi<3tx*Ru0mw0VULy>p71&-$s zX-z->GS*e6wy+GKRosEtoa4hilXV|r{@HD!)%p<9%6L=ubOvoRQ<|qYoVwv{_xr6()6?xf=;-ghJD9#aGDdyIYha^o)+%2rpSP8YM zJF<$LZ$*!}(mdRJp;ooM;{bv%HrP?NfFP(Nqx(qB1kfaYFtAA~IKx6!6*l^FP84`p zo?~=ll|<%SxuVdf{8(715-^6ADcF_0ILhk<(3`ay4hx6NxNmBVL>V(L_pI6wg1sU1 z`!R@djOnDd8D+G2e!n>CS+w~x_&8C15sGkylb0~Y3?goMS!N-){3vGCui$D1BQyd#N*Rx7aNMM9 z;K}IDbj^(Uv|Wk{!ok=grq?-%=bHd1#VcZ5%YRuZM9wINM9No74I|%cD%&DR-6p_X zzs$&+wH%MNoJ5f}WKr~ow3PazGI?WtwO&0x)=~&LedRu)sJ!dgLZe%6SjcPGvWMKj z@o0Gi`IRNxWbLztkfYOx(}n5>)Kd9NxiHMS-=e)NMjQc-vNB~>6YLnE3Cw??kdm|| zqSrV^moa9}bI+fT%*U1{BMg#w^W_BgA#v0J>Cf6O2J!qV_o7&^9%v&nnsU#zU`lXy zua+PhZ2-Cj2;2`ao&#Hp7q!%+5K0w@&3Y)5ru`h;0E9cJRwmpe#hS1hZGJEF2o{vi z!2DUO+Jryz69a~|q0B1fCl*}pOkS*GnDpHYr0^AjMYCO+ztb%&{xp*%e4s)I{;TD! z5<#E|W8Y__7cL%ws7ByFEmma8(}-U~vbwhuVS84BoA=s7TViEQ^x*3d5{Ge0a83S(`1=*(&X4VpJ!IyJupeMcE9Daw5ViN7gHSxk^h`15rPD?#&p338L~M zJvD%*B~91@L@UFdED#;XwS`eRN`armsi9)X78<2(73f(2-mdTMO%e~*VNGO8;vlmn zw?)cYBtd=TOB9!#+1(8)ZeUhoqk38z+dr-eKh8E$2d4)R9~aLE9+8d-USR&zGC0iN znkVRz@Nq#&Y&Lk@a$tfte2vbx9TXZ|&MTw^2j&3-iHN897^mk;^SQ#8T+4Umf?o4% z8c#7uP}**a3;qZj{h{R@4YBdXwyv38#o8FcqUmAF^j*ub`hRPKtO=U5#w(~sqZv*f zQ)AU8n~?MnOZM;PXf8P58*k8U@zm-QO!<8%8`y(|SeNBhq9$1F)mY1Ahj#BU>(Tg0!ui!gniq5( z5WgT@RCJ{)$^rkLsRhaY#6_OF-KZ1F)L|7D_yj21{fjL&rCD$nFmslh7DbzXM(tLi z*WRYL{pnbF0w-7c(HtJ~P&6$UC!RY%Kt<=J&a)&DV20E(*%x#3Rgie}d~$~WqM)BOAh@cQJ4TC!y>B`Z^&qbmKpo#^3#!wN)^<}u*b+I(KtU+<8slX;xc&4Fu8 z7L>V(yCAEXX*ZOOZ(axQIlL3uF2NlAlpFQlje97D))Uc2v;|rI<-H6@Sc#2sE`PCB zACywsQKh*WY5EJ*SVdMR3!LcW+kI45H-aV}hk6hD*1C`4GE$#=X3N0x4`QO=-VU}K zy&%*eFy;%Fbgh^o`Le!=qRvqTN?$FN`7cbl>{+c1*KEj_T}NDE;ja}mcH>d090=3Z z9g$U|V;OafJ5<}~D~c4|>vX1*f3QanNbk^3zX6&zcY`$lS^k0yL{-L#DLPVBbl*Cu zYOr){O#L+rRXKFY$`V?d`gQSoX#gz18f8fdzSxeU1z()gS7MCGdcMMHQ4#lHUR0Qb zUXe@OLIpmJ6LB)TE}FH9l_h`7l8!W!a{Cw2^IkcEXDG{A`URTH!zR%g{4_ljuTjd| zy4T*3ZN;Qc;-4{$IjKP5<1aHU`(kM&4>AJ=GqEHse7LDcAxyP+hUgQ?U1A!kVCRdA zxI^Ch(_(qAQPwdoMz=|w<0#H}JXG5(VC`moZWVa9M;d&QHMSLhZmqng5sQeVHbxOp zmSTIkSZBlgG-7j9l+|O+3Ki_1XyCz9&(TSer z#2RNHjo`c}jb|dY7735c6H1%O=^3 z-VO>JZ?$fE?KiI20yiyI(o^L7eAvmLDmbf*Yy_7*lQhs%3Iw%mCXmo=ORA^;gP z!5+tFZhpP;I`33vV=54h3pw8tEOPx8bGW1D_L5lizNcl_^shmDVsDuXw8;VNA+gFd zJAzW1jXV{4VPy#&`RbrA=eIuNP>3E{spR*b`a&^yImm3Z|`k+Ii-uvJLPl>7Rf9(tk;;JI4%F z>nxdVl7ddnEO~08ISYN@l%PqIr(o%)HxA zjps}I;Sj%I$&)(zvta4>N#$V40$wGQtHb-C^hiYTbD#FmFeR?Ks{~Hhmr?GaWcO?!9lb>Vr7^je3DKq?}YSq2B`q3 zR*dp0_q4Q+8Rfki2{kH=gxn59R!7Ckt?(LtKdQy1om%vCOjJrE1gQYi+@GPPW zLpQ=~Xo?rp)L*(Z>5+$Ms==1J11*g{O_z(SBOP)Fn@vED4-&WmdMd1&f7JqwueaqM znu?iB3D#m;b*yyVZ+gZ4+T~0rG$~^ujt%16nb)z9J@=94>@nA`Qx24+KVHNCj^4>u z)WJ5!YY>hEwuQO$rhl@E@@7E{VY&~wm~}U)?s*0!i+I%yf*0nt3*otSFZn-@mU(*NEu*>{4LP9O9gm zXoRumb9pJ53PR7Ndur?x(Bzql!Eo>USjZ)q?y4o0CC79Ty_4t{ai`{G{Q8(qie2y+ zqQNfzWFR}|4gI7*@ykp#E`E&=b4X-9Th?Da2G@2UemiR3zxeI5!3Ss=4NkAw+SFZG zlGWe^ui>&z@Um{ktt`-c^>aPgmc)0r#%DH{z3wk1$Jg4eOdHY# zmzRd@hf;MpeaxqxIQ7cVdaV&;kri$!Y-^cTKm1S89dFg8x*&SX-cJj$X4QW$(*|q5 z@-{IdLCebq%jG%m$w6qTl~!$HCQq&GAq%TS3VdvZQ%iTsv@_PsN;0-8?!Z>Is+oZ= zb(!|$t-;^0;`!dELNZpC*Y*ZClqgW0y$M=HGcyvCDeO{MY}3Uh*z16u?r_@SSk`7` z?do(GSNi}-=8;bekeF*U!Xu<_zpnJrf~1}FdMjx1Fen2A(yolRf;1$~doA)fAnklP zsA{xD+hWJxfqGmK^e5%yQCeQC=Q!QvXRUjgN#%nZqSKR#)F3iH;y$esb4Gb?T*4Th zDC(ce{WyG$FNlxja=K%`)DMaU`!J@Fg8xP&9jEBrEz*=hL?V$F6)-Tm9$48Ronj>d z|1pT$#EItGI335@bz)XMZuC*8>0VzrSV=s3ri1JJum5N&FP1!FlDN8qZDZuphPjmX z3)(J_+`#3B6s~-!edTrGPO;}37JS9?%fvx;{i~pN z-0-+bqJkCe+y_!p9q|oYOiumAOOQi!mVUso1f!4D3=j=FAf#v;Er&1DsT*nOYU~4~ zt+vjad@x4h;yOoNgcYr@BYAX5O1&A1(f`+6#E3lR=r|{I^ZI~O#mAoWU{NnBlMs}{ z(W>7yF`oLKxt zXrVO663Wr&^;yozHjeW1s68VVDYf?Jyvjh-kAjEf+7GTdi-@ts(pBpmMYkSGkswv= z^7D*r2ou@90+S4#?2mEfLVuVkv7prwy;k6~2GKf|)H<&S_&&uzCy1&smMrdntCkR$ zP={w;hqDMm#dhIFEEWpU9=`#@Dq*&9U*yt+TZitKNNcnf$>hJL*5fLaKj%5iNGtCX zz~n99%1p0<;6csq)Y@Z6D|1!`p9L2LR9P5w=Gi9q)~n(EtbDa9V@BUjZZhvE|MTwk zdAw}PZ;0RQlYOT zoyK-MK!{-5_uwv}mE}8z zP`iU+?n6(B)tVM*E!bdc6~*pQ@FbDLB85uBF`!A}k5!7hwDK8nh$Y)OYp(pvP3>6F zK7h{0&Np9a#y~X6)r`N%@@l4m{l6hdItLv~`!dD5!X2dsl#mRO^ID49weWdtKLYHK zU=GP)TXUSSQNb~NMgG!j?L-DY6inrxNThv@S$f zCjyE-5+axY4PPvPW-K7i<=}RVfcX8NA|W5Egz}f#Fi-CK2JB)(*m47mv#%27LTeb9 zuL}^p@iHpW{U(P#6mY!7T+NB>ip| zU-S_%G$X2M7_@ZZjIH?bN5mQr1YbpwKbth>XY?Zo6iWvq= z^D`}p$`4p_)KQdZ%F}Z?OQ9N*O6j~$`7>#B!|a_wSNCchqrL~U>LU#%@v97J;U1~1 zxXxDJhVEzrzv*U@x%xq5%rln;7*Q{ky@`QzD3;gaX>*Wh-)a zt2%6(3A4#3f0?>Q;sn->Gceti&N1Z~7BAZ%nQaFzSC`Gr$&1s>fN2ivA{-tjSUD{S zak3)H!_N9~dP2TQqQ(u9MTba|9fIY` z<5?ZXdBH5EbQf9AM9an#Quxn1BnjcMDHwt+JT@hrb5o{B>{koLm{}hqolM|Ra`VGAKRr*sP7b{{lz-a7eH~Y__82BMuXrJvU|N+~>mn z!UOvw{tov4fy7%LuaR7shgn7OQe=73cl?>Ff#_>5%}Wzk_3swFRm0 z_O(A{#!zR3#UBx)o2nrs;-AW)dL-es>NVfnDwB_dgIec_ak%Dy!fj{#7=lSob_dr@5&%1#?8ckGK9PuBQ@Y7yno1bU$_1JzK0j77 z#Z2pZP#87i_Q@@t&50$#Hy!gK_Q#?W#~X%%4wvPL!vO@KW`4z^w zm&zCGiPI~V-zGj_cpI4T4Lo5)B&ySRCm!k{jq-AJ^0IOEaCUkgcUR+6?13`HtjwdH zPy@YMZ(I#lTO+CE76YWqGZ_h^5T&k*tRO$tlA>e3*HIPr3_3oo2PT`&#?YKST+^3+ zy(sP*d3j4od1UEIn;N^$GUVG#5CPjL!nuUl%a(HX)nKoa808fp9a8$Xi}hp+e1kcr zfqWce5*6-pt@LCg#XVVua|Y$Yt5Qr$)nBrA1&>Hi7yDLS4pPrrA#q!w>VR$ZBdWy% zs{G}k5)*e_sHZyg>(+}w^U^IPPhW@Czw5Ql9L)Qk_ah>{VPpU(AOSnf&vwa$VovRo z`zkSfEjqm5_Gm)HRg&=J6u&5pi`}Z8!j_ zEp2G3i4oHFeKmXKb71$*SgS?suHuWfqqQNlaX<7Bj z(jqz<*o9LLblBUeki^_niSW_a8dsZa==>uIYco1@$nYh9!c9Q5V~cqafE=)4Wi+vs zIB(u#@ibiVXssp9QtCc@|0H9)AzPv+75vX8r^iCuGHi6qi1O;4w~)0qlS#zpy4QRD zH{f?D3vNrJM`Kc()64fhMzbtzwA zJg&n!-v_E%uzEh2G~q?VBRfJr+z;B$nm)24WqqoXPgiv6=B5I^qWRlWy)^?%Rm=J^ zhf@OQk${VC30^Pa0zKc~RmR`&dQRH*yXifrB;&cV@g=nvn9ps-{aE)Lmr*{p)51q- z5ZP7sHrG4BD+kD#-HAQAGJX`ResJK4+;h1a8K-;EW^wx*vES$yd-ojv$nVX9wB^`4 z9>>5M0=fK#d2!Zoz%L_Cxrsek7Uj3|r*yYSI&#PRA}s|-^OXg58ABfaTGeJ__qWT5 z2?rK1kIfC1lisM~wR=_>@Jms<0Z+Yl8Gxd_XVpl6rXYCxGs;ep&*7g$l#NMEY@`wk zZ{8Jbq8U&b2;4ZixvKmeM3v%kO4NfG-Uxl8VH~QpraJQ=Y{E03fB(8j9r)AL+?Z^hU6mdy+;RFBAa@xUt@ z-!Q%4w$d(dnhsz$PT{KNR$BeQ?eh(azsJ}tiy||w>KSo9Lw>03V}%POZ8Wx62>4;P zL~$ZT%}+e?DVv*yuoH#l7mY^VPPaw6 zpNeyT@$_|F+wV(9GVb;-S31Y;b|laGUTch3(_f&yj_$=OU~AL83L&=ycJ1=#wtbp? z?4o`eao~mgVaOrI`R9uEK__o63lkaE+ zIg|-!Fy@cX#QBt`x4X>Tbh1esQx!TB*y39~#^mpALC3TL)JY3@hV+rtw1H-HM)$q8 z7`f6o-n|XHZ)lsrVM2mo?u*`4lcmimRR&NM4B=86ycNe{XG%*WCS6_>b8i5=%hdUn(f%e*d2tU!~iA^Xfc_ zwkgJ^&qu0wj1=+Sey1e7Qm#U8;3bB6Zx{QdXI@@Q*pXL#qnDf3I z8jVH!V0W)l^Q-9v5kH*G<5*9hKu^3#yy1CwQb(62J!CAUwuFWhuHJvC{!l5}E;y$= zvhxntrB)!v;cXJta|pK=Z?kP)sg7rU)VRxkvBk&7QdQNBcQ%%KM?L6noQcAx-=ikS zf4j8P$J6C7k-?JT-O)zN_iI4rWXe<2AbP_kezl%mrrA{Bbo$Bqb%-C z4aghi$m)i5NRV%FSlRb7s<*BGG>8b`5|2_>nht*Va^L+-zH} z>J+%$zmgjtPOihfp8W%__L!6$p%PWHwAXRtqgJq~D`1L5u!t@DsrBmmiCt6A9$bCX za_IW%{vfylrfVf7Yo6Py zO%{Cenbx`(F?6gyWDzz`Iau@WL)xO9UL@!k&QhxklmMC(w^kt8?#dW%q6L{Ri5p`y zjql&`N-}xUL8P%3)y&!0x4TU&RqJrLx z3fZL$<1M~g*=FyXf2WD+zKKpG-E1?vS(dJ4|84AL1a3Oqr)04-+;b+~X~CWQG&)-K z=!?Xjx})TMPeb7W)e`iaO;9^eGhnbmO%Io z`n#u+KyR3Sqb>Fdt%vFC*ukJk4ZeoPplOA+Gio0%;9vJzO{6?najAjva;3>ftm5Xu zvEkE=*^XG@VgN5@ZJ7DrWa^~hfx#_s@3*SQ#xXxGNjld)&Uw zXu!q)wuO5v! z=w#pnb)VFeot+teqLA&Q~E9&l*QKLR*?K$njUQYhyHktcn%#G-12KPB>2>kx{a=B|TQ8v0vZf@Os z-SGN$Jxs%C(hJsGD@f3zX+PcgVeBYv;&u&{=BTm<7#=<`cQgIH+{Qnao5k4$3a(K z#>?o&BWA0W*#>;ExVPw5#8ST>_2`(Dw$Avv=`IBiv_T)zr}3SX+(S?W$2P z(rS+T^fJ^R#mgWqSdpJM_^v%wRFV z%yjgY-tjJzK5}dE?OnyZ70UbCSvhdh0hZ;G<4WGp(9l*(*jIab@0Wx3ACLwz%wesw zCWeIlA8hgkFX3Z^L>~8V={&n&+7p;d&5n@VVryS=1-9@~Eh7&@?_hLt^bSogu~5gN zG!()2P+=RZIonOh~O+ z%%I9%b5;(|e^c@A2E}6BhrL|AT?+)MYA;cH+va$OJd23gzOT-O|6he(Xc4fkKcC+5 zJHZ0BZk>YUe<7mhxBibHq5&atcmF>51>9)E>nY{q`ZwRb*mQU6@fw%yJ8HIHKF@!8 z;>qm~CDr{d_ez4lmh29Ud(n6Jx{8Y4MyK!lcRv6Um;E`Ncvh}C*PM%dXAaNMmKi=C z5Rf|&M7p_ArR*s9nL9rD4DaH}Tl5P-_KlyaCT(I(7x9pIsUg)iz%VdM)O}wL~UI+WiQvHm^!ZZ<1w= zY2+y1gS?rRyQ}QCf!y-&T|sQ*7toM{VBN&(`@D&>=Kkf{7WFJozf&2+lDxO_dFjF4 zrSLW%ux5>N7_8fZBsaj#tafP1Xe>OKiJg>25 z&*6rLRh4gYVY-a= zkYnWI{WW0YtCPpn$3+#$U?*5w*fY?7-&Xip?k6g`=nEFP+j)*mhau$x;nCA+HP-n;m=J4jlZbQSA-oL)nA?kmAePlKm%LmCR7r5nxS`Vb(e!|xj213NPBEgsn^?j z)5aplkkgA*go5Mw5$<=;v0rcZ zmCjWB`Qzz2yy~Qxkd)YTa4i>ve>XTCjNW)-mbrM)sj<32Q}CAzqK@szen*%h4dRu-#hOQpW65%OgmC%0J$#{TtU^Zql~RZ?=`Pj&(CeJABE zXRdlX54~aOajQY^z>%<5HUl@{X=LThMiV3GU~*e6`M{Xu?aj@^FqX(K%H=>L%7Nwo zI=RxE=%%WXPTFZOd6qcHThVPddts;j{~yKIi4q*8ngcz3GI`Mz6*iB)fqv#`Q{&aK4i(E%@fhriT22E z`Ui9DH;(SU@a}6CvD4^JD(}TJl6cVX5KmlQ*>_j)<^<-O>r#-{rSoMwr}h(jEHJ7= z+@cHr%>Tnz=K*WQ;tyA%bJJ{ra3gQs{0?n5QSV3Vh+{`Iulp5z$Nsr3IdDEf`JUK` zb1!Y;rODK*N^#t9XbVE;wA~nzDH!*98no@cwbG{C1bcd)5z6>G8yd9jqa){T>zr5Ob+Gu@LuIs)`F!9+!#>YLoTRd;+y>gPi z7CzXOXmn)mTstx~#&I?*;!E`gKND?b(e~PRgYe0RVy4S!rJTd&WWh8ye4(Qq$F^?G5s zp~c(MiTbX^HEMoVmD~6SucnUB+CHSGJoQ$7$L1VZtB~AP!q2$p)7bc1>CE)_$=6-;?gTRcxtEw^E+-{SUleFWjEWfk>4K($d{Qs$%e)Gfc#2KH+i6h(Zjr`PsS9E(FY(@nc27BW%W1DN zd#R6XXgy|GIAZz%yw&1!(&hTW?@G_hIQRLt+ocC(wwfSIuid{Q^EOijU8oFZL|!Sc zHA1)0uCw6{r=`iO&=#7lctn zZA+b6yF=uP4dF?Ts^4v)>qgkTB@Wryn%)>=EM-LeCu-711Dtxwhj}H=GodyL8Xn%ayy@Z81jHSe9U@OOQoSlruF>bnflK&VNKY+Jh@N(jPlYaYKvX)17fBHnwvi zLa826jNVy+-X)#a`OBZz;f1VVRk41CH=@8(YvTq9j(gv}19TtP?UdWtE>2I`$HXlg z&TenM%^in_&1`5MG_SZYhwBFW3aO`~m5jG}-}daRR~X*+=lE4ekMtSETu`% z_TID+(vgu?y!tPfq=c9u{~m4~!^xFKuggm^{J6C5{i@*E*yk24Z~e)N%`s=T-LX`` z91;AxF63>0#3pYmH!^yf1>LmTrfs46?xSn|Q;lPFGM(QfpnXS$|L%+RgIayLyvIuc zmb(HhH(Z<7&J^2}xy0#(EAjR7CBIkT?X!4h&jZGgYX6;GJKhJi=zmyad^0)^mB~Bu zlzj|HbD- zgZQ8ejUoE!s7{$p4~kSCO*;j;Hv-Q;ZU5X;K)G19O(eUe=Y%u%Qr%)uX&oms3GCF! zfD_ZAKHXa?I(tKiDM&Dn{G+(_Lg5j&IdJow!MT24j;|ai^aeu_wcel%yoBtJR0=gpdxC2AG&$@oX{b+iTjOq&yHIL z$QM&<^olP_@2^|8XZC+L0!fwsM;iedS8O+_yp`*EYRjT+rI{gNt5T-s)&qx5(GLq+ zL&JPu%00h%{`}>@O}2s7dfB<|4UON{O0ux#M)E)NAhWhhhkpJO-?#}2Mtv+p^9KJF z(Z!C-{V-nmwx2V=Ik_pZLKK zh!!F)CV>BA7^mgWKWZUl8TzE=rw8~VC+8Xqvp`7>(rNQ@)$Tv=@?;xbilZCb5;#38 z0@wUWvA>8?eTjdurr&BZRzB!NFX(gd%C?dq=OWKp`Jq*ApBgsrP-2|9Nc$oUu$>ZPw(x-+2wa$Hwxf(WB8{8&?v!o~ z0P^m_9(?rY!!%@Tn(N&4{CK}1*p{x^!^02PAx+6&t1rh;J+)CM^V6d@MS}&+{TatfU6#(J!VJhUY<5 zMLJJG!m-Ozfjsnbo^G8T{|4Kce=9HQ=6zH*1mN6? z%xUxvKjNFP1Oid^QkC#P zM0p8bg-DEQ_)gS?qtm$BxA;|R_;AgBn)xDW4p&i9=22fWv{uf2a@?af+yJ!?PvdG>SP_u$Yo zmUp6^+{7PdsdscY3hAq0VTlFiH*JX9ua-si5h7d?i#cicIqf01(Q3RCb36Mc_XPht zLHu!rzaKf!Z5o3Vy_If#A-&Q$RG0<&zQpZkOtTCz-+9Y?vj_2>Jv3B3QJu2v4bwNC z=GNbVL5tN%?!BDro}L-ZDu+ms|0O7HB|N+D4e?ES!jw)6_(s3(S-$jzgtK!IC_OK$ z5d=_Dh1CyYW0!GZe^;pn)#QK7sEQ|m4K0EgAZ3(5iUS@-r5NeQAlQB)C#WeOrXE;Bz6cz1@4jHzm3*Rs5`1Yg^@YeUgZRtC{v7r^sBm`h`-_o^Fp zS%KHdg4M=IXsaNP&||i^40}Ne|~vfh-R~;9#$*^}b9HwXVSW^0vWqZzGf~7cflFs3>>s}JYle|J$4~Vz8d9(-eObVP zO9ttD{_9^lg`C9A0|F(vd@AsH5rFT(9AFsBs5@n9n}NeGAR|Kt=^R2!6p*r*djfN7 zN&3zOcFqsfF_c6C{q>xm-&CkHU!_f;*bn%U?8JhRYmuV8W$E5*?g~PMK4fE|+ZOVP zgPB7lEFv`onpo!KLy)YpB3-ft=Y!RQn|2%}jK{|`R#U`USLPo|CEA%B&T|pU3<;T5 zFM+NqEd+it$A9CJC&ih;WzG$in!FY6-D=&vJf$h{Wpu11#1$-7ngmbWrBHOz$B;-% zAK3i*fo{qccHrg1NJ~O31=|xDicx$>+Q*kqLyq_(olZ$9E-TUN=Nv}M-;<2_`a1mz2J~48ZRTd%Hy?G3{P>*Z|9{w(~<(pc`d^{89s`}qDo=LY_G=8;o zZKm&P5;&>z(mcy6xgG-}12indPDI*dnrl7x(P_>O+5YL0YQ-t? z-c>SOV!#RbFf@=4gV_%Z%tylP>C=ahu7k3evdR*r@RbI9;F#=hwAlD|wZ6nqth!lz zr4~KH{xXkrbuXgvf01!(ggV2%9iR~-p?1s@@s_{t#kpkodr~_uBNH@+z0G6>a*WS% zjDrJ1c2`lGe2qlJchdGKehPVz8b6SjgiQ#?EgjA0d|@OSu=LLa=$7CPvV7ejsUyB^ zNmz=NFQxcv)9_Q*Wde6`**O{%5FUGl3rc4kGRFwiBZpLsOm*q<2MEZg9t z%WSX^6XQ7n-=)JI3p3MgL8J5ybIh(ZPhTTkk?v;}O-p=+0+wa|iHw9AD}q4b8F%L_ z5gBKYk@q}R`61p=>WtMucdJ~b6m5CIaPoBBBm$9fcUcl%kBl5Wrq4M&aqP!J;=aD_ z9F%q+b!1{VkN%7#Y42h|&&bX*o3S2E+U)(`m##r!8&+1@w2uvr%zPu*fR%c>xsjGL zDo*?rzMN`SPwLj!os819P#gu3y7?+kM5y1;QK2kmW?q9oz^Rymfz`%!Hvv;RjIpb} ztm~*mkpm3c)N&yT1U@+8ud=?x{sQSw*&ZZx3- z>6WghwgHTJLHMs~m7diR{>pv4XHZ*wI<3WRM-u9FMaYyw%Z#ga^rH2oL(H!0AZYdriLJEJkm$L;c74KH$jVtorpB*NE@_u zzUrba^NJd~IFT@0Woyg49uMrI!rloDyAbnHF^U8BS!KC1Rc{9hI|YBA|81Qvqf31D zcWVcSXFS%gjKoq}(XxmH^QM7}%3I&Kcq1a!nR3`CTPEGHewK`6&ELCe3 zx|2sb6^*q{SGIQ}zW+_OfcC&IGXuB`=X~y4jxTt0HtHJV!1-~54BWS$t0goK#>b5btSG8of#__S}9bgfRn^&-3@zH`_)sB5kF}8Dq>-VL{|Sv<4v);|e(XTBND_)wdl9r<>yXBtA;>UP{0cX&FW;3} zh*7YB*>@u5CCo2qDC$qKods;uOckQhwkXk@-#bWE3~`MJ0d_4C2C4Z!xGD;O*LQB< zss)ttIFsVKZwWhJ)#I}XNRPv)Sr8J40q#<(E6iI9Oq7ZRR3yvfBD~VW#a7JU-kirD z=b5Nu7OKUGDADce{LstOzd#4;V%C$@+J~q)oVh1%91`L4q^QCdo^uIr)Pp!gGc_sOX(=2W4u3K!n!kisms*+7 zJomvJFAfWk7GLST50_OYO6XLB$_(d#!1?(q)6K{^&U?~8t7>_fVTdn`6QIbrx$I~8 zh2vd77?WKh)qO9<#RhVMec(SRNT)N*_S)N=68+MV7l+}Ai0us`=L3CIgP-V&uXy7s z&**!0(eHL3TLTXCagO}-U^BDJZcS>-U71wF*3|3{1lG@DW@~0{-Oh<8GiR-;Gty1V zuB_SzocAKd3kc={Wrr_R!O1yevN64V%4(Ec19&Xb9f#cpk*@!64ggmKh(AczUvDsL zR+%GrJ0dWjCPnTCXfQ?Dw2I=C$fU+|t_pse>E7CnaDJ4+**oBIMUGk4UopIheKTmWCo6m_HrKpD^iJsKPd zGw>5pYsqNeO_BbOiT`KAgquFE9xN?wjE6Fr~t@GlyQK z2TSQ__k-cv}F ztxcazj)0YCWKp3f%lscf4D@NKXs56D@VZ;tc(m*IRBmLgNB+EWFbUJ53y7?u+!Jy2cu%!91w(wp7!jabOfoXI{YARFvuIm@Ec`Kj9`YT&Km~7 zqgOt>=Ir-E=~|SvRua#KXr3x_2n?`+9j{N=K&KuiXEfd;6)fB?kYjXEx?F@BcQ(LR z^xN(>2)C4Kk|h<4^l>ZGx3fb7bF1_3Oowl64~Tig4_OO4e&2|?tZ(efr)Q-Nc)Ujq z%VDk;t00i(YG_@ME|b+vf;mYuGty7UTn`92YPts`d4aJorY%0!H7_-HNq@=z<+7)u z#DKrNBfv;d;-dg)ya4hqGcL-E7Qm)V;3*^Got&Y3p7{wBUxiL+;+>*1<^Ky0?bjUG zORB1Ie`Hx^kTg%2oD{WQ!utxVUGQ*5``aam_=`fk({EgIZ@34rt0$Z&)w(f+5T~_d zq+gr(P)TgX4H+H|vHX?ewPj)ElkmzJJcP-N`t3V6pi!XlG9)L!D=} zz}$l|UD6R+{a`xjxlxnLcHS=V3?0NaM4qU;OR{QU3=E%NS)wGqxt$m+b&#dZ53Cg0 zK_|B2g}YU&vr6|yVJ9O7sXt}a_Q6(zbtaN29ejW5Gs|@3XMA^f(L)gVKolC(eezeV z0a6exq7StigS4}ksytM>1YZ*Mk>-WyqKBFtqB+a`Sgjr;J1T&;fX84a9v80I znRvWNZ_m0G@AM1zGgV^@e0F?07a?cOHrA~3q&vz9K^E3z^&Wc`iH>gbFS(7e9caxl z-POU+{}74({0WQMP!2gL1OFv6^@MmrEI!dG1^7NmCM@b#fI8tWRjIoPlW0m&0p}b* z<GgZX>Ledba|*QFgW>@Ic}>iP1wjn9r+mwOcIyA=Toh!1yFk9H1xDh7Jh8CZCs{ z!cVn4sQSncIm_`^dLO~zg-k!j8?l&81MRIYB69?h{u6VDEGWz;Ug_R#G=s00Ys0sq zDIWqw=7jfXN^2&XVvMt#VP4~BS_*Yw+$;=3_OT@6dXQ>&Wyy~v`nMK$-nQl?k1Oh; zKu1dag7++UFR~o1YRZELc;x@YY%#$Kb&S}Y7%_ou=}9J0r6@Dw@Q}R|RcYOWq@#m% zHoH0Bzx-7M!%oo`l}0%~tB3YS#;hFs;F|By!&JI(#h0EJZLHZ%-MgDg@$;=k|2>sX zyZV|`(EO5puNbXTz>NQk+&nK-!|V!@LG%8WFqT#geKF%(reOD~hTDUPw4wH&B^5UK zCA8Vv5KXTEps_om@=KzfP#&;EFUdBHLDEKCPRPzP3>D*j*#YvdNHgtAuFpy{x!-YK ztG2TX!Ck~$1 z>%4!is^PM%!+3-w7_4+GB>3GbB#E`s^dVJ=d^T8IOn15ES$35XD&lmTX30GNFmi{y zF#d?3MNtE}HwwCu09Z%~(GE7%1i*aKa;)QwXS7pHO9K_TKy9pnqc*TF^GC>Wx)q=J7&i_^e~l57pQ6so$oJjwO$be*^ywZUu+L|bjk%GqRe1K` zk}BoyIt!gM0<)k@784fjI$AbBeK$mKCFqxT6PB-PV%||(pF$fFCspyphGx$-?|>T5 zEfQi{57+Zz;`!=VzBB5d_>X$>zslmGa_E`!b?cmPJNca_o;SE=59NT?O40hOy;_~TJ?BHn(v{v>32@Qi^|bB zf>_^}xS>3kPtvrb9O~MwO1C^KbQ?9+??ObKLg#q}fV;H}+kNKL+4HSS^s6WT`AFI5u-e|1#?zZ_V6CoNpYexIGUlP;f?I2zkWW+K^sg<4Zs4Wl3^>}&G`CaXIhQSwj z2=0*oMd9ZAh5K!?+n)0Y)7+5hWVTmxPF>bO^MRO2TyS$uF6k4~2+Cfb&Oer3_Bf#e zX}EaUq9ih;9At%#A`T{(T^imMVIpSvGq&4h(SXE>sclbC2c?E@BBuxJo7|84cSbc# z7o~lD>hS(U1b;7KOsjXecp_GDn0ny+-x0YW==zPvR8ZsRETHB|o)6FK+NB$``4khL zbw4=Bb-U%8cYi}px~t_=X9X9>OKds$d1d>=bsSTT9&IPg3>LdOQT_NT)^(1=X9)q7w=uycqgwIAERWQW)cNoIug^t#x z`GSwG0Apzn2-%j?R}pkkPDlQ$q51>Ctsy&t{T30|f**z*BB;sQU|v|2s0Wi}8sLA` z7EF4~1KM5Ztoo*lPQgM#dQYlpBimT5<69nEk3Vy6Os)KfOe*iK;!kx=O-?FCuZ952J!0+E zE2{nYo$WKeABGQ18(JiGyRB!!CgplKcmM9gJw9LT)#K#=41!U(XbIW#CobgYc;4$k znGydD)Gu2T_A((PRo(v-p#?cEA}Lwp zkY$PDqK8LF)UC@Z9_|>3qno^q& zzW0*Csp>`2pmFMZ!WQFxD;Uo?g)sjFw)I?i>f-d#(JH&;xE~Yr;kkkDmC(dWyuUR6 zbtBWe(vcYO{(5ZWsqRknUKwy5S_Pu>?>Jsxy{zqcTy zTJ`%I&#x~%7;D_@W%I}ciZ%rKv67CBaem{S-)9u0iRh`iB;F-lr;;;xp8bz+j!A^# zqWv0C=K9cMMqg=^5vZAC;fqtaDa50++Ua!v^sgzP-cBl|8bMNutkNy4Zc9)ej?An; zMULz=i#XcoZ~QV?*L_ZT3h#4Tk2=Z7v8pXu&)Yp6KbfjEB;4>gHo=~PzIZ6in>crZ2_=M8ClkG(?JN01+ER5|=Rj_oew9;m_AixC6m{DrN#^!dXJ{x1V&m@Z&-~C+ z;(gE;X|iO%&kkal6n}HATrSc0GC>Oee!$%GVS3AK-_%N6cTPy5{&ooI^&L4Or^~+i z3=6RS{rr-rp6`7lAo~boAkvMT)l4g!qH=Bo8X<}?EUDjb7a0@Oqq?j*9h98gAvxf2 zSM{E;u^H|hay9ogW;w1?boi>8$By!kk`nQF*iYNNk%0{u2VLLinGGkMCbskZrh6xE z27fi*Kfe#pw13|HBsKF>$n7N$12}4dXh=F|oz+Yo47Byu z{qyUX#905{L9>!EV4ZaY{)>nIXR5bEU;I+Y)Ua>6G3>v1hY&9_fJ{`y{R1U3BmnDFPDBc z>y&&P-X#hZt7$!2ejK$SXxNDET^W&Z zrE%i}RDwc+qt)~8Bac|o1(@KG$It<$0`Ev~WHC01^KWFm&-=owmvaYVkmpds2$so@ zpjl$NWwW{`HAZhuGw80~_(p3{!PxEr@f1~mTW>u}-RdmhmchbEPZ~={6abYEuM-)A;Gd@>K+S%)jzk10}vHWWB4#;_ujzi?($2x^| z+s{*Uk(j!-b(>>-Hio;yw}NvE6be(1@$Tlm@d^kZe91S?APndALsiQzu+PswepyR< zMS{49eZBj1=X7Uq?oOx;XK&_y4=)Gm?ze9;2in2w2lh4Vw*^exSlaCG?xNW4?&EH% zweEqe@kux+0yjf^zxznK$v5+TE9(RJk-k5e=2!44GDxk1eT;LrYk*d%m}h3lU%lK= z5sdc~gmOZOxb0)aOLGmk^yn4eeNEdg4NlEv(Lk>TFw`l6Ln_sF12hGyCqWnA;IHn&gOZKLnpUAuVY? z0BIp6&s1OPJfvK6H*kTl={@rTcEB7~9I~!m*&h0sqLet1aFw809K|%TF)AG|jHj4H zM?Sxyy555jLX2u_JXxP`wjWU?IQcozCCRVun%X^_bx7Siy#dY#7Wlu;bJ~hJ9~xKC zdGhr%zJ7^+HkcOPckOOg`P^BSdWueV@3Ri|&ti>X&g-n2!|uF8+JNf6WXWaFLgUvVyuu~%rg=3A{mze9<85!nVCUYa zLrXUZ-F5-PkPQVie$T7h1_w&-=54aaG)=8X9Q$?EFtCvRJ0ZIHM3(8D!mM}TdwH8W z^e#)IY0q+vSc;Uo-H-GxcnmBZh;H8EszIcx4vd=-rlL#)N||9@#ADAh^Lo$Wb-q-8 z>Nyj}aotpZ*d1Daerz@6^#Ru#&^OyxN^Epae2NMTx?{h!{2L8YNS#3#%Q#e_D&i)W zthkDaTV*s$I5#95AK634%o~}0;*Q#JJD*pECkBwEJumz8zYN@+-PG4M+Pvv^`W^mI z!B<*cU79UuEuk~pqsru7o^q*96{7Zp`bp!xbo~v92ldsQHem-(^u7FgtUl5j^k+zO zC2q9vS!amh=I3E!g!Q?Ct%!1;r$rjeIoKq8_sQ)JHw?ZF&fHcTtZJG%pSLTnWUQj$ z(blJ}o%8MMnlYq4Wz+4a%i>xgqz#P|WW761L%?G*PmDNI48{|YFq0dm@a z)8iORuIlo=ag2J~tJ%m&KKo$XpB*|o4uL$c1Y=UF$5>naJP*w(r3~DeRjfw5Wfx{b zo6~DZyEWGbW0+O3j|v~~_VQGrSMJZ%g4DmH-;q{#P}cV5HQ!25LVjKmeZgAs6e8`a zJ#Pme021!9ln0{jh^uSnt;1UrRkeooekPq^40WifZf2@K?oB8=c9eH#cIze2Cy352 z)u@nc7lVh4z&&qE-D@tm73!}{Vroa-lu!3`_*+V1MX#{e7a>0|$Hn`A48QL{dkwH| z3F^OB@~v6gU1fIozAYQ$O2lx`+QhVgIhQ7WTo-*$`xeCcG#|xGWg>Wu&(mDhL+PKE zFa9i$R-_4y*O0&Ep0Br9>a+C$%iG|TiRpW$&K*`?1kM-ItS249iugzNI~l}?vsu{t-RYA~Qoho# z`ejfw?Wvjimq#=C(GjG+n{j>NVXakr{g3Pe@-bz;UHT-{ zT;q7LC(b9Q2~rrFEr_oHZ0do7(>R}oO(|-=O_=d*$6-y1CG~T=mUO;){B)ezo`6Wo z+FGT1C`4gO@r1q~*SdM#A@$FU*K>^@_@kEZ+F<%!U`_2p6Z`(z`F;Ote>r>ylk zCYhR_@Q%m#V+@YGqbkRNsj`%0$;c66_;g`C=@qSE#O2Cjl%~YKbX)Ph!WT*xwHF^< z)1$1HX@=m{Lz~wHZLOatMTuhJ8_J(et!>@B5#x#zUsdqH++*a;J8>~iX?L3-)T&de z4uJnFAgm3D9LLm^PT<6kBu2(38l%zpsl%P5hp6?ugYyL!n9r~~-$(87QM5UB&Hv6? z+L{(cyj8i)QfX);g-qR6=kGoL*Htq{E2-yMkNP#k3(lP%mA_mbomJeUc95(-584wR zM5d5;zO#fqbCkQ$$N$yrOI2E-Lbm#+M``&AG{M?N!Ji7HdVI>Z{eZpJI>0{kBh~1` z{50jO;dS?;ss8)swj0z|-L{<@Rk)#=Er%s< zxgYp=O3&ksOmkQJnl~qkHf#;cZhN)g)ra|XufY$ZbxRD9@y2@VcVOXy*nLg=8gr$D z%we5!m?UD}rtr<>m=A&@h}xU3DGHW#_IN9-FcNFwe}*|vZGbYP%fv#Z z4uobE?{49yLZhQs=B?*86>V_bH1N0-r2gk}TJtk3M{y3e_9-yL)-FI=FJlN#7l}jb z-;wW@1}Xj6bSmS4VTZg1fh~%94%Ylaymmve1#Yv1%w7bxry-xz0$mGjQ=qlV z|I9FN2Mlj+5|ZWC{ax_07V9tHjSR)2%4Y`dqPd7tRFTu4##Z#uEU3h7C+tR)#3=bI?txXzF{~qy9c~qwk-t74beo zH1RiQ{coKjaI#_+c@v+F(XmDVyK36GA1pMg;QrMIf3#U672DI5hoZLi*6w?!KI>*p zw*O{w+^#@jh4jf@wMlYpzl3Zf6_b^Zt6MXCWtg=W{9=S;=ViH!!?X4Eko*_ZmdXMQ z10r#i0`~)z*zYuYFMmtCP;&O8@**QK9|6jPkqa|DlX>R(z7y;Vmz;U#bP|QK^4rwoPgLoK};^>>QX@>3h+d zN|oIv`1$!(KHRorW5+XWYHIDB|w z0@r7SuVuzjfJ{2ooeTZ%pHD^!m!}xiW7Q}z-;z^g>b-77Y4IUt96M3sp$)V?SnoS>tmu?7`)iRYY~~e2)w2G#+B^ z(?dNYsGasoq$HmD188IrJjpUNd$WZ&VRAXnH9!PLfT)E{sc4%WpBcmhz z+bd3-t6K=jc6S!n>=()w{KZbaDR1^Bd-ap@U~!8!?WXPzUqjpyiY61a?JSUB9DVwL zSxi<{ben7r_T9k|&eDo>M0Fk;e`eGH{*I2eatscyum-p6g$Q=u%90A-Qd=1s07uRc z+8~>;66x{SlV4>Yq$ut2n&15(*?HGJ@*$#Q3RbQUzB$XyzM6h)vFw<^LK4x#8*{&h zNs?TK8OSk|hWuP@|4Po}*86-XOf08ebO<#fO`JQ;4jPf}uhuJpM0T7`nLXQ`*Zxqw ziNkM%EMJyPX|$W-_f8nIpq|%J9XN$B9%l}w!O;4slRoPz0%5S2@BHP5g^%Zg$a0C~2C39mahebN;nGtVaL}e;E z&lYq=|J_;XtMd@EGLh-lfOt6U;Wd3r)V&NF>plY7o}*k-@`t;Z+ajx9xVh^?Nw@P? z#ZpMH&$6!!XwmtoCU(k94e4tkIcg0A3VV1*aE=4I?At=UseeE~+xezpDdvYFHUAwZ z)xb4-cmC-46?6k){e^tD%ct)c#l)plNCYFEiGON)rD;`#pOM#1=DqnA(ziZY^j z{+1~Dzj}X?PVrW3Iqc|dtPjV(XD0dD`KBj;IG1F2kN>+iH`iCc6lOjR+vA^h>*x=A zwU8lg8B?b}$>d3(j`KABs9*#0-fcK?3ugVeZUGtIcW^|+OBZVx>v{ujjN4@A zC38vrA<0^H`}?D9PLxnpuX*dQS^7=+!U34Cx}IqkV1CJq9|?zg0#t!x%YYvl*vPj?3h(-?PvR{X!O zP4@$yBp8BY#&Drgv#SQF4^3qG!-2pP>{vbp=Ud^@?i^*sJ8>1!P!MHnD)Sfp?~w?K zAUu2@5NYI}F-!wbT79Gfpm<6W>ME{%s`B4x$_pV@K|=zb3Y&656y7grDZmrD?ni3< zXYm}F8J24onbp|kylbWD>MBsj*E&~EL~^C?NjiV57mKFn$S@(rx$#S zm6)c6_KMZJ3CUS9z|Uh5d=9eey714@#G@WrLFcuNZa0X-%_@%d<@u_O(Tq_GP37Zj zq1S{MR^k?P;DLz;x0L91r&My8tA{+rFG2#NoKQD?4@P)+&95XMJ-;A*Ay*XHSyb0q zSgx|1zfx*2@mkrcwgu2LKp9Qkf}5SC+<4$gZQ)FIMpYUc?^O**33fBRWgZtW$2f#+ z=*)VYm0lh0Jv_A*-ZAScE)Yc!=2h&zb4uGpJ`JMxZk8VFW-EdjcYAggVYvfrRBQ1D;&UUqD-&qel++mO#d4!ikito=$&(tdfMC zKX~L|y7T2H^Mf$Ugl)ni9OXobZ?XAfM~@G7rD$-vtEaqu`Bi9{gFssYx6}APzOV{Y z!<-r9TrYoDR_!{W!>OkA*K7*+#z5Wv@%J!W)Av5{yJEPN!o179$O=O7kdm81!q`8% zp{&PW6A0_??WzvkkKVP2DyUXzgv~^LF#dO`Gi_^t{e<$2oJ{rBUy97#qw?Xes}-vB zsd6XnGyF=uUxJ8)`SbE-P`rQ4j=L8&n_l=5Lkqzpg~Z; z4iF;Bp1Zsn-jMGtc{SuFO$%;%opnl~6xXN=O2}A3I?a`fMox5z#p|*xK_g{T%Mn_G z^J6$s0gNIO)y#QE6nm#Y@`Ia+{VZMJIP*%Fc*{ z6UR!@Ii;Ue%{^^#9Y6ENx00le(x66}0uR$NaX7r|5cB)Qr7n_9Od)P{f0 z#IYMI)@l!}Odt)%pTSm0TEh<7_h}zITd^Dp?OBU#_2g8Kw&lZ{2XXKt3<_KnTb7<| zv7u)}MQ&rGFRk!*vV#noJ)soR#-jTrj?7hX4!Fd-qCHy)_h!EQ+ZgpT;5RJe_gek&pnI&sh0on@TG_!_ zcf2vIId7kzz|O>()0>YgeSZ}B4i|EU?pa)w|8EgnwJXB(XCJF9=Lq{2DxO_<1Al<4 zVL&P;+u+p-B;+Aa=BBbi9QvZ0^g5r0{^^gAY(V5u^*qY}KbR8w9OBlLY7O4whX{Me z1jxZYj;m0b+9mcUvSVST5Q{Hby{&j@vrVH)DUl5yXja1DCAijkFr?c)oH}K3=C_QC zvb88{qIl*9Y8fCqWnn-ah(+L%=Z1qnm1M{zO_QtJO5DLR$uWs)RbVJL+=P z3*PuB?>HZ*JRujfmA|60Up$hQz4m@mwt^QX_*%Tc(<+vJzs|zmaiR&18n;3xAo-*u z1^3kI^={_kYtgGTHoD!lD90ZPY!o{QAF}MccB20tp4g~eZ)k;8fq$zyCQURBYD0Zc zoxo!B!+(S=!uLD=d{+>-JGnD_Z23@eaB;;Spd4?Kz&V*mdg);4RQ{#~@Q?GP+ILdl za|_MR8Yzv`W<3zj*iw5x>89$xF`t7&F!q*R5f;l4nu`_dtx{M~*1uJUyh`e+B>c|U zT%n_A6fypHr&6Vt{2^vNl#<|}18+AwtEBZ|IS60J2HeFt>Y&8glS(U(63=#fpLRrf z^9970*uwnf8`48%{j+tgWAsgqGKO~x-{q!O_WbixBVt|7UCjN@h2AHX=NIBcEHAYpaV_p<&~v<34pcvPq*}BZP{1dZGES=2@`hS>(RgLH76mNmP&U-k3Mc?VvLuMq40d)8Dnnr~quT!! z3N4Cb|Llz_z49)Gqi?2Rb5mW0&n|!&e0O!iik`Od<4CJ9x6&u`IGpS0JZZ2#UqE8J zF)@Yu%y*%gH=WC=@RiqXk;l$)zkXs(95Hl4ySQJcWi)# zHa{&N=`Z6Hz1G>`B6$$ddqNqQUAVA7khu#!CNp12d2ag_oLbxH?o-@?7MTQUS$$I9 zx|%g%jSjWbq)03(@+Ci*$f=RA=oZsxq{(VKyN6zXgmLA&bCy)z9Bw%YbbL?yTJCf+BC z*8X(y-`zI;`gOL+OP)*j*Q2NBe&*dXdt$(L_xc6Rq`YdBDT4~bNY(S|N zrKr9Ns}ZWSnXZvon#+bw?^Hh%!~^HkfU#qcqw`n631?q2>`Z|xW{fk52_-eU)z2nK zla@0R^9tgvE3FJ`{X)gVCU?%^6+jc@6PR}N+al;VW-w9j;5u3C-rKUQnks`DT^W^# zJ0L+Gkxgqx_)08yJQbd2mF5x}5Vws`LH)gGtSe56)g!J?YXhS7U!pQIaA_{Up<0RDDRk z3lW6K7WAjgo^M}0Ru9WQcjaZ@+Vkqg%%}2ERZWxE{5-_f-6H`llu?-AR={Ne9-!|} z_J`CqX75|&e0~>t6(!+4?;l!&Hm|utwnD`k=k?TpCC1 zGHf(*ZLV@ZxMo)2ul^39gXbaf2DG+J2_!TAi1{wCm!#VB(Jh#6xu!2u;+l9?%V6J% z`!8k2Gbi0}zn(XfeU-4T0Jy%<#!p_sYr(R0jY;AFRdzR(_S!B4dLr_U0)~e(WYduLhU_)MPfCO~40uD_OX0UC+~$ zYlfqu=r2mvYF);)m7}-2D7~Ub zn{OLxHnk={s~bZelyTx?O(~Q@^BG*dC0p~1m?(u zQS$q76kZ2rVv2g1jGHOs4uC{lGllCCe-+|R0jWNKg1pY=AtNyYgl0gqme`$4gIVsU zX=7G~9enpB<~c+$Qs>EInL4xf6z3sZuw0=kz-W;eo*o=rQaDIn4E&nf7%AB*vPwP6 zlo+0w_YJDM%dk4Qn9I`@LwL`M_$9K$Nx+^9`Nk=!{B(k^_z|!+v|?WD=iWzQFV;@r zmZ-u!B#32>F&tld)TE<28P)w@*Dh`Ce^+X2dtv{R^H0A6$>}M|8OMy9Tsl3oL`n`p-}%<+2U_H%hhV8XLSvb3 zmcqXzsBg{IEZ#jAvK>d(4I&@?BGwr;hZQY_V9UDeia5$eMwQePr z(AQ7)zNpp2ph!v9Wrf+6v%L`hp@_lvm)*Y3<&wkruYtXHsF^&M@6?dBt6uG#ZNX&w zCe*CQ9itrH1G;Y~byE5SLMxSABtsNg&a&jEeHlxo9=L1V5Sjf)Aow}vbsuzAU>dq8 z^=JsJ_58^Db%`lSqp1I)Z$C4S&{1u~R!-;*FKx->eimDeTX_ynZO&XWy5uW4PenvK zqi-_x#B#tkcXi<6u75N7< zVszf3Br_mY`fu-QnxIJ*Scq6o$mg^L`dTh=Rikkjv%k2dl`SCz+Pt``(*r8ZZC~zU znoq}>W*u+Mph?vIBu8P+C7#VTOH8((N2fV%iSZaIJ@5xh3A&r$G-LHqU|LF1MDQw@_TUUoO{N zvP!CIrLqGLwy|xH8Cw??q?N3I1zYA<5pfAMQiOYhNMv!W|6yh1vR?>(cQ$UK1bF#Y zklGezi3yQJ1zmChPM_^hNsiP-W_UparzZzMge5pA9@jXj-7tJE3$^RDaMR9(xAUPM zn16#omaQ2;VtS_1bmJ3okkbSzV&Afl-QP+ZJIYAr!Y2w`#T7!h6L^aL@*e#PHGIN^ zUZ(^x>Ru)FP&1VKA{$T_X`-nMg{h(Rluz8>>$75o)i(VZVDkKoRR%XjDs|zmfKC$3 zZw)hkbE-0rog#UoH(I66b_O{{<;N{VYRM#tfq% zD=Xd{sFE1GNX)SNPJ^A0c#*KnxkM;60`AUN0mQR{5H0uA3Y>G>oD_lb!$AkAzEQ(E zlt#l!967bpxeJXJjbuuD5bX{JH}l)ORrf`Li!vJct2a50i^03+xLxV==aWnpw++0i zVlUBFc?ij%3Ok7O6{HJ?qaao~;-kZ^166I{8@H_TJ+heWyNR2`h^~Y_G;4Y{`>;4& z3@PJ<=y0>?>p~3^UT~c&oguX@$6)-$z-lvyL--_ z&)GfK?&m1OFyF?2az~3@iUWDOdCk-(AmN;#4M(C~cL_6W?Y z7%XcaB()aSgn;m4Vtp@Yy)T3slATtzWygT3Qxi-}@u&ny1|kFhLaIV88Wp&@;`&bM z@=yNr1t#1Q5uR-o;%*Is-vm=bHdgvCVHJU_r$>mJyqVfU5WgR-L^NLS)8X4|+X9M% zjrkytQ(O48Ya<-754t@&jw|iYEJum0B!NNU$dgGnWto~UV<`Fve<)nJ(6f}*wQVw# zMhULo4wPDE9T;#9Rw_sHJisKMdY)SkHaaX@=>&O*VB7m%t}OfpKXt409LUa+fp6K_@uacCz`U;|8-ErL{L z|B31!n7U#8z+Nyv7b4TXT!F$R#RQjfT`5}x1coF-%td7uf$SAfRACcBdK%<|FC~U~ zUH&-@tJu{YGkyj1wNXN}I!Fiii?Yv*oLeMSowp32ALElQWf9?c(r!HGgx`-NvaCFh z>EXJY#-5vjED10_4o!JT_X%-Q2+2cqti#$Wjt(r1U@l*`q2C|Ypw_NfK+xGBf8(2w zKWj4Qk7Z$*hbZoC={gCeij%j6nNqffM}R+zrXe}UelOQC&EGue|Mk2zfbjANe;_!|pqhF68lQ-9UR5?K9XpbKjqojOTm)vxCtr1hEg~Td zfC@a=^3wbDaMy^9e50`va6b7RE5PV&OJ3s%@>ex7+b6hfW8M{7O?!${T!V1*HCAZY zz*$)caFJ2?dmBsC;Sl;QTD0)XaD3KspU%2S9>VbkXljlFIbQ+{Z!!z6*{BgP-&2p` z7KIFh4M!lF%?P2MBfL4Ej>}I=YeZ#P9*u5)XVXU?lH!HW6#*~afp?Yh@dv0EA*FL7 zw|p^>{ky38y!xa6QMv;9igM{ z4xwy&7}9lEF);JWcW0jZ-gaasm~VT*={H-`MhEtXX9jchRpoqp{@0d*i;LFPCFgzi z9|T~8s0LU@XYXdQEHoc>ZexhBdgS}|P)J8)4`TP=akb7;JR-Pd_AmxLPciPD)7Y%= z9sPku_VMygv&F&GsOtsl+1q?*(<;VSwvfp_Bq(omtHr&2wXlv&9Fq}rn~Sxb>qa9C z|6})LzWpz20bX|cIuX<4z_zZx-5^1064n8_EbhqVy2yLYV%MOlC-}Aia#g2- zZ(ENiK+bz1osIlht2;%OBJKHfIiuPg`MpakT_1z|O;!TI1@9Dku;s=`(;saf7FUY2 zjfFZ;4u^x={W_~rvIl_Z}sY|onj2?ON6|rlPwA8cif2@YGu$Tf}>+PXL z6c4KeMBJ(>L`atkR!948L_CX-a!a?f@g ztB}`kZmh-?vDxj|JhM+yT3Y;~>QT*r5FG^fpChhiw^0!VR+B;QVohStlMUuw<{$gM$bRiD=`E>dGtiPldCKARDyiIahyv8JZlEhMfOglK4R|oe~~~t zu?WSYzi}YEmfgLVr$7Sk9afNxOP?5sGQ`ebDu2Rvd-?qz$miY5HMi9X+o=(5nEODx zx`KNfbCa=zo^SrwgONaC1b%!dkoTzEBNHUkl5}hrWeF|8DC{Y079v|S6Y%fC01L1( zZ0O-`Q@v$UF!B-X0Ar5e>i87M#oOe;kUJWvR8X)HZF!WpWgK)vj}v77c|L4_{M=l9 z6$3`5n|T8eH%zhqD#LYXE=Q;X^IYSqpYXTkwxb2fK1mx-cxvuw`UL9J*(L8+1OVl` zbiZuZZhOsJW`r6YRN4M>z|Eyvc-L>}W4a$7H{_5N5jc`d`%XSQSPPZ}N3o}mqv#HY zIbMluwG1mIpVwF~yTsm=vS!b&DJe;L?C(&?)&4Q zvKoY_Pk;{j?k%WR$@~)r>Rr~{CjWy!qry{<7QSn=2cxmstKh-3+mo5L@qk7V}iG<;i`ADnw=ED$G+pshz7U5R}`= z{OjhJ4QB@sW z>SI%VP#~~9yfYK=N8JYaJAcTx=e8S(7q^agFs_C0 z)f*PWv4E$1V7_eFdGJq^&m-hp1tUa$GfO$@*KC6l?l&mO-wg|YU)8wSxcsB(T6(=F z-Rba3qPsFZutM2&`?1sVj{--<+?d}t^rcV$Hx?T`up|x)4v|xWd24Lv1Y5DKWZ1t7 z%$)FAkh=QxB_%`W3}JMZ*J!MDG~kVUpO7IU5$h~z(_4u4T{2Tu67jA4R#tyg>7{0e0o&AT<#Ivh8hT#D_(Oa!drFbjxDJ` zb6b?daV*o9T65)&=ZnSN#SOkV$9z&M(Uu+iNk;r@fN)%#ipUDq)1=_qRcQn7$pbNfXFa+JPOvy-``H(xi%h@~9Oz zHFPCN_?Iyg>V2xDO@c?{2-Bg}Q+N$0sxhZ|yW`WyL-Ze{#SQmpBz>EiVNZMkOM@}p zQpHzGVTV~Zg+}h+1~EI^(MrcH`iC6x-;v5zLQf`0ODX1^NmsFK6{P5kb%L!V$Pcep z@{fj;pU${n`$uZHPhU3gy&Ckb=N-E8dOh$Nlffn*rxuI0D#NZ32pLbsNho{m?CGwliZc-)Qc0(zW-<;ZuK&H?QSuc=zOjHJ7^A3va^jn+zkIqLb81H^0ufA`kJ4{lO4EJZRUgA-zULT$g5>0s&`@-l+= z-(98v;9m=LE?oFQ6NL|dDS|?EW=?59v8@iao*u1NfWRmiuqgYTN<#xs%C-O5fr)1a z3y9&_9{`h5J8@w$Z;}7>>b^NsuHFU1nRG~Q2M=_MiYwz!jfD}T)8IpSD(HQn5J;Bo^=nD%|y`u*CIA8S47wY(pF0*q*Qo!6)h&Yu9C zjdW^_@^{e zyoL#Cwg{$RWk5z?#d0G zQkgysSJW?Pj5)Iwgb^=SO2#(F0R0Ai|K`n{)|YNHG29xT;^9qkR#6TsKjITn5F)%o z%x1r{an*X}oh;Tpz6!zqP~M#_5cwFYBDtuzCu^VF!7^qkF{=Zs${6-#nep~1+q-*q zE_E;!h-2BlGOI37FT53&8FT^#mw8bDY%t4$$}8KjL1x>aQ#oU2=p*0cTi!{(p1cX4 z3``X}m9UT%4qqJ4 zCPs+W7J}D$(GR#qMVL9ha{WRi0lNfwhtst|x5?l;BHK}-sLwSkZP!Vl85IEHP|Z_b zZ!Vv5Hee$6%eDN*&`aQf^Vy;@{K~3i>_{yiilya6EF9e!pFlCtdiRYsMy=NLJw&Se zilaVy3`x;2JJ%-FS6IwuQ(pi=cygjsN{g|q!L2>mOioF(Vko`_f15Gh)Wq<`!~bKK zJ`ZL*Ir1l8oZt2FGywrg;Q!ji`c3-(&?~;2_zy_Yd!#m+kF_}XpMEMyd64?jC=MWf z>8SW#bH2{$GKZYXCuO~ESe^6tioo|YBW?cwE?77kjm9C7Zraf+k@akux|sXBcE+ZK zOYSmTC=>{PeSHlI9ri6_Go2MO?SKRZ%FW$wXsW3?!(%WQ5pCbfAV4wR6$4wvXDcf! zhyEh~5q>DH7D)8#@{OMPeED#!-6F?#M7H7Ab%U=S(+!OZnF9&z&- zYv-$T{DK`H4{M4O@y;8$D(;T6Th9UNq?_5m>k6_*Us$l6I==sl60|BUG|97I)@(KD zxUG)nPwo}|;NajmDGnS^iXPDA0;}deX`5WnySU{Vdd)g4)0X+!77bSZ;yPK-QZIyH zx!l1Ox^Cn56~G0$+LyKa<_A0jCVvgk5?GUEu9~xzAFM!p^|3ZP`|Q zrG(i_K=f#q$1dW^J?x;);R3mzd)6Kz!}#gpm2wUiFpzR)n!!D+P;qoW`CHXZvdGDY zi{Ax$5Rsh?t)$=cXcv^>Y~)Q)@ZgE!l+(zr^sZC3`<22@&A-3+@AZZq#2Ftj!NF*$ zgQwU|42kPRX~6aaJW#R!=_%)^Z3nl~-c8N_XsWnl4p2PQ}uCKSD3E28Y442)k;%VMRw?y+;!H1`4TR9+gX0RMjt$zbg+k*UXHZtBf z`P^kT=eorx8ZAHDt}F1tY~YM3#mu&tt*keQ8?BYue)wIyu=p_Zy+<()X36}=1<>Ip zd12PJI3TpcRf(#i0K692&vdlKH*%mk?gcaXj{N@n%d~VJ^?1G!Pp_Icf&Glva8}j; z;{bhlCddUY#cw^Yohj*30zYI`b*$-xhZIw{}9A9^C){%3LNBFi&;d1ARb4*g@XOr&;(b2q%i~ z9J7RP5HGB7ynTDis&E#X>ML}9!Vivw#tkd}F})OP1v38G#L6Qa`aRd*Abv>&=ig>v zeBk}?w_tt{Uo2jT5*`e-n&k&;tcvfMe$|T{)iJ8GGpt z(~-?37#YOrgbX7Ljd&S&F8WVp<)bb$JpfgZ-i-dO^VYRpMXBQq`u{V?|FKG&R|<6h z$IEAhP4?K#q<8ZQNw?%IgvS31guX}r9|ED-HP=Y{2Qh}^UUcMM_ZYnH{r9D=Eu6Bk zlmnkYfe2U6)yE)Ty&p49eX8|;`LIuTu^>8*^bvByzx~nB7Jamb4IIQW0Lm#HfbBD4 z1<}*(zK@3M6>SGZsURJ(K1cPA>EH$jzp7D;(r?I&3>5e2(C!a1__Z9ea4RSujOm|; zw%AT#hd~`jc6c}C0C%?3wTpjE18{4seiW(ry1 zZvX$LU8BkVZ;R$q1#tJOvdQS*GZzAa2OR%PyuWU@br2B#-+s>j=Ei`$1M8|5q#%7& z;^w0iO~L!|&%G%J2hE+F+&RQ=i?q0S@J}mK_1g8EhIE&MM1RxeX`Y{Y(QAGMC}2PB|KU3cthXN3zveGMJ#1X zC%Si}JpG3c;LDEZge-!MsR$A&p!ty7KZYIMCAK7FXd~u2wrb0ilNCC*e=0#QNP=FF z^He3XF9qj#$ZiFY+{AmpL7#`1gDA5k#DD0cg30Ya^b`ko&iZ@b>lg97G^M2!l|Q{Z zdCTdzTt8xm@wH9TH4+gRH%-S=29T`Ibuy(CZlh^b#%Wnk$+_<3`*W01!p7j*QtAZy^e0X+!D@fu1WzPdOpPjqxi*Bsdjw&cSjVIsR z(8aMHsm`(K^{6JtlE~FY1fM}8ensjl!SVSCt)Khky&4PNsB!Gq?^Iq5cMsUE7!SxX z(*RA%n}3Uux6!%+t&0>Jr*5YkykOUVb=)Mjem~au=l*=gJ3mLPI%Gn&|87XDw;FFV z=K=StJ=%pb`by!j*{!LYWx}2C-tS@DGkMZC<(Zp|y*_UBIfQ1yO?(B^_@O?s4nvPs zK8`0&1!sV^Z(-HL$F8AA_G#_;Bjdq};jdZ9VAcLlIU3rfz{|$i%_o?4 zPU;fDl{c0Ah|Ulth!EmosOP=?N~G8sN37Vz=2#qg+q|m)C8UbfNfCEv%J2Ka53@4? z)m46?UA_qd-@ zhvC0oh*Fq@vSwxxTuu~ZPPwx-HieN4F0(o-Zr}}NyH_zkLhU{q&c67oMS!yej2^K@ zt$z)c*CipqX=ctis1VzUv&u8ubAEeGu;UyZvF3aEvA9zF2ic3}k^jbpuE93>ByIiq zSjjK94_*TU!G^V*M&7?@93GY_COfi~xV}kN z?Eb7WrS%~^Foa?^0b>n+oq70euD@(Sg!tV{@*11dUBC9=w|GeP>QbO<4ZUOubs@ew`F^AROO`8{X?%1-|yri&b)WrFCehHK)@g z9>>MERZ=9C^V15`Jc6#$zJ64fM>pXc+MlU>DaUGqUUyBTg%ZNN$$IIqSY}V&9DfYS_yHh<-;}r)N*FJutMQ}5U z;aAV#CRqn;DKXRZqlm8nVp+3vmFDbhCHGpy?@1*jx8E~o)F3C&CYU*Hl9k&2Z6Kx8 z`3#_a$3mY(J_6U(79({Pg!?-p!MFTSs_>HpPvdI0X^rCBa8nf$0&l8{`MIlXghg{I z!fb|e;gyl>K%^QR`R84ZEhP^urIdk1qnUpU?iH^(ygUJE^r_oHTN~!(I2q zC4Dx-;g`alG^whSIk}tEN0wbNzJmbiFYL!Ta zl49HX!&k2sP6_)HhkoL8d^$Huo`~gK+`?k4D>06rhOs*~pEAKtw+S@&CXwyEg?UK& z8w?*`i)p*{-KbUZ^N)bQzL{+&d+2`}y%1U_+CSuIY;ycce4*A7utvtjY4cOJXw_4fAIvfkko7^Kxa28ANZ3E)oWWvHk262&0u=9E z?;;;K%fXB5BdAq(Z|6nHAmK+4f}%fz15J@f{u2~wH}_7WY|3=+bFrItC)R(gHpDgG znF9=u5}Hapm3=Vgj51IDpN;_*j{nI7WV)gDpOyC;S8Pc{!D!CFj~7|{dzuksZgrA#(U=$aaF5a z35lz@MFpe%0w3KC?zT3lS1-1Ci+>Hsw=2)_%KIAl(D0OzN>;_RZT(g}k=bKT=cB>l?N;j27#0SSE%beCp9JUR-A;?48wdyfsC|Cm+e%%hMN<1_j<;R> zmqeeR2Snd8+CmN=>J+)nrwv1>2|DH-bv|RmaE%FQje^%C`62}tf-eZh32oEb+-=HR z?6hB8g-xfv6{7yRNCRKxn^5%ubh1yHFz_nkyP2y0mXxKQr=e5twi=0WH=3FtQ$)VN z_ziaNI%&Pf7#U%3*CLtny>6Sjj-(ZXK{o2_O@tX5Oqg=v`0AOY7EB4)8*H*wT2}Yt zTe;ljEet>L1uT)9-)<6l%LkU)9->x&+!wMDj2t;7Xd}Al(VqE5^CJCFW2>g&{Z06l z{!EQoUh7z=1-yS@vAyJJ#)bKvciSg@s+P}RstM8A>h!~AJ+_kBrJM7rA7F5}70&^t z&@mc;Icb&k41{#h$7*)pue6>yee1QViBs&~?Vh%>NcoI{f8vbO0doLMDCTIRNEOq= z51jmj%yMimWMQF*bNE{`aJSxnhBJ}@p1JhxNBEHiJvZ0j1fd;P66$ZDe3;fJE_{71 z`&yhpY0VxWjXMkI6X0v_ChXcIu=_b``@&}JFMgh>^M1InO-~IR`p=d!Lo}am!}mS8 zXP-4NS1A3@jA!WsvyGRdD4el!loV%@ul_TzQmg7u*%!oi5gUWOaFm%#u4vJQ_wAzQ z72L&h8-2%QG2J_Xf9VVA5t2oYX>7^UfY8$=Kp5N+!Lh6UY05-a@)C>H|IXX;kKf5162MGU1_r5+{E@s%98MP0N%HSFw(`tMwTvt3VH^B!qT=bP0#o5o~E5m@V=&{vzO(ZCy!2bu1A|g2j5fY=MjeMd_gCaXuuAE zMD+bQGC4Mfp?@n;TuVK&?wu*zLVw=3lBAU^8M_# znJT@PJ1PrBV3crPV9G0uT;B%@-fO^^;a|sW-2mFhcX)~Ze$uFi9Fr%BxyijGNzRAG zTJe?RZq+;}zZ^VtP!dS)l6&foWD|lET^=d4am0b^lBidi`XVzMJdiIm+f+&o?%#El z%lHic;yv^q>{yS?62GsJzL}t4HGA(bph;yUf5;q~e5h)fxlIym5@Ex1UMglsm2{7G z2=M0b;sm?7nbe9MUU1#HU)7i8?PjIE5`?P3!to!1a-kUg!^yNwZ8`RDIqj=Jgwzl3 zEF+ga4sG4Xpo8OY}SuIhA z0<0NVc1?cC(C4B)245wqJ)f05|C$_ZVTg_KJt*uE@@}qKm~GK#J%@}v9|A5o6_k79 z{*#>o&+&am?B>1J-aMlGb^c|BW4i+t3y3X2s|}h%U}^FwFiCCaCnR08wfp|wf6ARH z5C4_V=X}KWZfPw_-3Kk9OiXY|3;ykP52|!bYyCPH@~KzJgXj&4KxB&Mnvm_}797L3 zZEE{v3dpdn2390%0!snC#0&&q0El(0>w99a8P39k!{yCKVl*(@%xv$tGi-&I=YJW0N zg}{G}T@fWBU+>Uo+BSJrFaydN*Ucw# zb21?c=(O7oH#NR*A+uaj+LduoP>r2%HsVZfA_~bnrcYU5-}MRZ*gVaNOc75WkJv3_ zQ&|1ayUxT;UGxy?dKE1_JaL~`z5zKpP8)*W~g?aN_`!aE%EZ@oEK%wEo+*oH|yJ6V3<3i;1}b0oWV>MOGA zxrNj})MDKV8pLgrS74XqkK(1nObf*_Ki-6Gtffwwt8~6LROVq+YwT>TX@uC`WHfi4 zAVJ11rCHlc*?#pw=i~uvxklJ=W1Z(G%WrrM&YK>00-U=Dt|xv@#UCQs33wB%(Fn5e z1KX0jG$Km>aC&Q>*{O@(*%m)2v+yiNbYwLjbq)BlJd8L?5zl?EuY17})CDbo(CmNR z-aau|o2GR*cHmW0XOs0@rnt)U<+61i^f&~~rFbWar9B_-_jzWD;Dr?%Z@>X~5)aJA zLFo1oS6;Z|mUe4b;IZ@T3Fjt699L;X^S`nTwt>92LTa*Yk|qT5M_TDdd@=)ngR$qB zqgPCu+hZc}rAl6>+4_hS{IhHWn1e=tevtswc>H|c%$~?i7&1Rp)H;2Z_(X~v2nFDm zDhJD~M8PkuzBTUY|2(yqw>!cc6c%RE&AXbwG;H|&rw4HHi;rFmJfW>=UjA=k(Ld@m z{D`IG1OJ;JQp?f|4MUkgoD|iYT;>aQQi*Xtq~f8I;B5h&;tOL6Fcvc zl|#xgBKBl2S{KThRku*%v1?Ik;yJC*k@VT&uzzw{rzQ_3C(jDnXO}|oHv%l~bg2=t zH9fLbtBvRn|AKsVuSy5Lgo+W^$9%_M$4RvRvm_i2O=e3|r6<&}0?6AF>)9 z=7==@lqr|YFAH#^YGM`J@3uQ_oCQd99{vh_tR5=QY4asa1b8gIlu2CnM`dJk`oG}L zl9l@O?e~qb&g@%0%Lt|o z-xX%_$g-lBrnw7#$APC>R?o78i<_4Jnbd>>4&i`sYH3R zTcT{{{}n83;{M;n|NbBSd>bsx4>U_NyWbB`SIMc7pYQMG7Mo!F)GuYn%f#EycgXpe zMDkf&7&G6$sk7FZDl24rqZOzhuxGy=Fh+2WDlaPtYHbDhde-UBqIDuIpSYP>p}ViE z%cEPiqpvHVNCGqejcdQM!#h&&8JSvlH1AN(f&O9H-fMGAPRr2rr|OID7Cm@@+jE;w zNMwGC+Vs{Ro{k79_37`pUiY8Ef24fhjw2$i#okk0nVZa++t0my7EK*NnNH2i@RXi~ z;Vymf!0_`y;=bPRaq;Eq=x9rA#Kx1+0h33}+)_O~FDR<`Mo5N<%IJP6>tc_?s?}*9 zNE5INaw$unHH*I!-ewe5v{XGw86p`XDxwnx|6t6LZ<{)TZpcrk^=eGv2`R}{e}@R3 zz7Mg3-5a)cy&)Oy(v@#EMi?q-BmAQ;{iU$>02V6DAZ- z9YaUYOaa=6T#tAYk^QjQc5T?XBj%$ zSNM~*x7SHZPq!V$@m!HO_CPgs!5-9#-6*8*j&JyJrZ=0zL{u;9)E1KqbTAW0^Ga4W+e)Q1_#ow1+9S_b`OD|KMn45R=uxygiAvxm!JFX< zz7*M;$50R6{Y)7OHhVmL9hdv7OH@I7FJeZ+$u*)3AHlPEt?61eGQ<$Zc9v8XX<7Vn zD`IuyNBSp2ZwKe@4c5wA^>Bf_$y{DO9gA5$p*BF8vTi(!PDXb{8wzOeGivFU1Zj#; z%G0(N7E%W-PsbP?eWc`~-&fu{PIKWAR49}BB02Vv=wDdi4)!Kw9Nyw*-s#J7;#Dd9 z(VYrY>FM?0fr7?sMo2TusmfMX558&_u*NG!Uy}J;=CmlYP5*80{dI@BpDOH+%xRki znn17tK^1%eLGVCpzW-Cy&OaHl<+@vjw-_9#MdjV?(YZEUeP<$H5rv%c{Qymz@@H}8 zAGm>Fr=#AF)kKeeT#q+@1^rZ9u^(c2xyw;LQr`Rihxtx^0L31uF|6XT3QYOyp;3lkC`~?q9nG%b?yquz7Nu6>qf z-5-kPz?bELpHpQR(RX^5awem9B^Dx=-OcR$&BLObWlhb7`&>*@K7O&v7uK{kSQfWm zZyxLQ>V3Y-JsY2QKX9lNk($ghOE3Q=al5bn8+Gy>HnwLSYlNffon5KjL}!T~!-198 z?)!L6pQ5ikKNMU_f%Xl&k#?fH;f~3=7l}n|x`kk?ne4{6=z8m?Vh-~Xx)R-cT*iT# z+0^{D9B|%Vki+%9f`P|Iy|c`Kbss{`d1suS_!Pyv%2#wlJ9ZAY5=$UGJ z#h#!rEdyH>-)NMtOUbGIJTFy)+7eeANbNW=K{yIqw#Pc!#}pCI!Qi3B#^*6FUKf4y zboBYr=A#Dxj_0QsX@;mYAyt}jY26~8L@eNp(+Lf}0xC}Gqxeg?fl zfiLuw_MI0TtMTWBu)o#+17lfau@Lxqhq)CEAW18<>&|;b4O>x^K zG6D~H@|L>}xjzNJFzQcPdzcs;1+Y8C^i?yAK!HC8zP(P2r05AQbKnS{`n5fslFqIL7aq3{pABt>f_$sxeA&vPJ2+lQxNawQkTLcQHC zHY~KC*uE}`trA}KKLM5a5CT6Pzox!<06wC)hsMt0(#j z@5pFg%jGhxp=-Py);M}Jcy=SZ)e}5?R`@l_DO1g+3+#vm4I1x#q9CW#(rs!W{}iix zl=VwJZ8|!S)o3j&Xh~$den=_j=*kHNhBv~);{WLsc#lviidfP%j|OOt5FeIpv-5xG z?4SdM)!*A^vRaw*RB`^4Dy*m>s7P!l^E07sUH&w|4J&JAO=?%z+q`}P^ulW?eU%K) zp`$2JMNxj^DcPhvx^_7HF-jH*RJ8FF&H_f9-sCv*q%fs-M>@ZJtNT`hb4bMCDniW4 z9ud(WdE5C=u_<;>8D3W&NeF{7t=5VCo9=ZcJ~nB3C8rqa2PcWmEh%3_cy@^TRKGIC zv1gELb2T*=i5b4LWpsHlna5W{Ie+!0-ps_E`tr!IrafBmS4Y%D+@OY$U>m0-5nfq3 zvRz>|2Hty=x4v4{9l`5X;;7Y|tNHgER7))a($&?C0MC{PUHK*ipTeNk(1B`v46gONHF|UudE) zX|^w*xI9dgr_W*;`Ykfv5f;iC-l>*k$G6TZ#PlUqgd5Yx0!cZxju>E$%jv{KTv&{+ zN)XV|rb=&)P&P{Qfg*D0UfQIfH9a~8>kQu7iLNk4VY+Ma$AQNhB(%v$MBfwo9gA;k z!H94KO(YKV?^rT4gMZzgI8dXlr*jb*2nDmNdFge&e}(#36E19i`eOg#@AoIH*R2at z`cVyp*S$i$YByLb@8`z&^s9Rq(&6`fbs9ma@6Vxwqohaqx2%{MK!$X%Sb*}YxrY>X z;~i|biB7d|9)lEUPeR56YA;{b07s5La+3F2YyM-pMX)4deu+C4cUA-l9$qc~QGP_k zmWsYp1JphK7^6GnlRS1#Rsarf6S)jgJy#|;M|MS`a~h6Ur^s?WdIjGq^z!+3c}5z^ zX^zt6VIthjc0#N7+Esp_Wyh1ehAPFAU_WJvIZIuxJz3>L^&tXjaZ(&1J$hS zyzJ{_kh+d*e-n~i9SW_fcxMro&3WdzNZqmvDm;##)A07^;m}BA44Co02XPs~>e1J` zsK+aL=YdpP6i#gGbd#dCp_jU;(-5f0on`vUKzv{VDFbbWk{XJlIFGViqU+K+VwkyP zG4t;g(RG6d2W^h@J;fg_VS(m;*ChJYPhE+|z8Fb`4}G@AbTfhp?VkkHyp1Q7pv@xv z6id{SBFSz9jI^P@oDXa0jgb2mC~UG~hVEFUoWS%<3NA93haJgj9N)WjRtd`k&yGJ* z6AOe9=SfsY)aYZD5TOQFoFP@cWRuarL9RE2mn`S(i13nfL*E9*!v0>D=%QtOWpyNs}B>y`7qyi!3?(Nf06b{9f=Y-gtV6pkxwWoJ7uH=SJBxuN{*df#9boFX$bYrhZ%(A0(E9ovIMqb0k57O zCrnez2e{B-o(~cRY>%aK{e0Ca`u#LQRY9>7#x*hP2i%fjpjalaK$>lpxHQJnYA)w6{se zFsHTnQH0tCjQmjmW2>-v`?r(jC-2nWWi*L#+NG>fpCqY>)}okJ4-nx!usgAWi8>6N zkJ4HrP3cE45h((Q!$b;DIP9~|L4pV7OC(O8CI}$6xhmb&!+I8Y`U=lMi>ep?RVWvG z^JW1uCZKHJ#@V7lp3OP-unWv_96v4LRuME(Wg*!pcE^hhmAG+9hNf)$%}#lG zK}!Q<*JcN^FWw{K-StXHyA53M^rIB{$|9lQ;tPq0zYNju>$dFa>S`YZ^$zlOgKr^c z8zp>nVMBDarOuIx-< zFf4e|b=&oJTR3$zX|C`NuJb2FcgK^%PdbjLq%q*nr!nh7s`Ip*N~;A5zno%x@n~ye zswa;wzVAeAKIEo(`s&^Vsd0w6pYYrvMGP=mcX?c#-U#flgja&ok;{x1dc2;g_pD$) zq@EKPBeSjBSfx2m@RzR{^d`V0H}nQS&$tEAJTC8`W6ia&T*_&%+~@GRtB8c~pLjSU z>-aX&GBdSA_$1M9d<<~<<=U-M8<$g+OK^5o$ejG>-h2m!U3z2j5>c6BMBHn;&aJ`z z%CMmRCj<1W%&F^?=WU+j_?jB3y=SYdKfe&G(JL;8Eiz2{k>-lj?tgsg@iw%*RZ8S` ztgupC$p~Sa;M_$)SAf5c6IbF&JF_++f>P-aK%LU@|cH&OKCi6<2X+Y z=N9q4Qd583d#!emRM~de+11$##j{NJQPJF^3}*B&=wa82GHHk2+fykaO{EF&>oYvFYvvE# zhc4np@Ql->on530x`U^rr0ov*59690TAh;p1kMX4#So=Z-nw7m$G@$``Vk)13jnXbiJTs;vpJXK;bz4BRdAKipE>RAzI{|LYgNrvu$yxXex4d zyB|t+rHVS=#8SKkL|3SEwuok^vM%?nO|!zoh=-W(2HF3;OQLUo8l6q`+%jdIA|9Uq zRN||mdda~pqaEwf86M!9Pi*O#G!gN@BWp+{LuC4JkcilvQa6~ek0AY_K#kbo66H*= zmkc?NGKN|-%);Pob$B}a$x3QHij$nU4^0Gb@64jFfYH5c2!j)}+-ru|qNdLJ}y-cNKTrQ?Ts72x+r@J*_;VUU@q6Mp<8eYxe zgpk(o=+j1QgbI@z=hCDxIn&dBSny9g;hY?^L*>42Ysg)c(DSz32VKQ;UNmKS`6EpUfcYYXoN; zaf6(9Pe_MISYv9$f?BG*HlyYztdTbdR8q&3#z=g5q^E4bV z%yVTEUT$5P$igNUBryTA*49#!9PecYWm$mU#|?`PFuCw&+ep~Y@2PZZRTA0G!-a&#lT?i1ELD`YE68YU^^9nrDx{pK6E`KuprYH3%I z$L1_*D{>KVup&|1ej{5pyNA2#IuOFWX=1q|sY$Et;=fYRpl}{bTI7U4x`6w7R8`Cd#FdkFaHJRId5l zD)X~U(l&P27)jSk6=ZU)VBf9A%4_uK_YaKr%xj5g)K5>AU|ZvB{<_cBgHTomI-kzk zYp=7F|WH-EAY{(IZYd(J6&7yT~_04*<)|*$h zX}$CLM3+`BufN#R#Qh7d|6s2D*yH0QVuL6()ZH64{DQU0hLW+r?(u2^YrB^E_iIV+ z;%wKCFAzpKu~CxAX3+WPTkm`Rq&SNazqn>_oI8*?}9J>6tPw=S@nom=st4DP6*uXOR=9O9F)*Abm#^3Ide{nLiV zpPS6XQ)||~_iJA7*IIvE8PnWAtqBWr%#qJ4Tff~#Uke>=edU-|E$oWxHJ-jLkeu3_pweb@UP?v;TfS0d8|%75(?e9>*62 z!+Um*3bGzoKvd%*yqDranlO<IKfemcon~ zk)z$b=3dX@4j__m9m>Qj3jcK%dg@P@{B4Q>z7H>^<>)VJv=k=j&TGkw*8gX@cIG{5 zGOuDzeImGIw?ef4ESmAWikVlG?7Rx&ZXbJzv?ssuJa$+#FzV$wG z&TNeA_h6UftMJYFln^8nO&ospiiz40Tcb8xmR3rXbo^7OFyX~gd0N+kgIR0pY1_Bc zRxkOS(G}qV((t<%)0%ZZGmH-|qBEk7-<#!1@ZRKH-279aKx>wqSJOAPk7BJ|9gd3V z{%y>vg(*2yeAfT%rP-31m75unQKz+_-6Qz*V`*y98*>>m>R`PjqZl_YYV4847ZIbv z)^lrTYRg~CZCk(oZTY~`p!@fA0`MQtf}hxR!&gVhmt%vASF^|O{Ghi8K8aeH1nvFr zwZe&Cd43yz=(B$#S$uomIDIsMgDKf+{I}y;6>((J^;I}3XYyRPqq^a{RKS)kYyBq# z1BciL*p#2tu2eLm$+Ypd*fvr?Wd089Nn^`Znp@;)E~EKi|6QQ%$#_YzT#B9Q-X6o$ z@H(j7?P=rc+20o}0u6}cT^l51mk#s3}lczs?I2?I9&zvJsr=^T^y6p6-EZvH6qD6wjJPG?crbo%c2E>WrU@ z{A?m23d-h^tDQ{RQ*!3iD=;_Hj@x>x7DV#YY5H!I@d(i{ZKMJ-3|jS4Z>-4j z(%fC9606Wtm@o$2&WSzF9NeTHGapw>8ulDhlRPVlD;J$YbkkJryCAm zV&Y!^ohF$rm}qn)sg0_;X z`vp3^t$l}F6F?k%LoDX*=Zc!5!2X!R9eh$&TG>y=5wEYKQzcgf^$t2|9MwgO9R z7P048rJIl&3P_i-M^d^3grj?1bH8nyo>h$_gu86x;K7IEIAq_Nla2Rarr(c^b+r_J z+Hrg(e=bIv)2Wz>>!~k5eG>Gvxm=zHe}(NN@S#+!wf1BZds5l4!A&kawc&##L0cc) z-JK#mtdI@CW4>3TE!xQacep^#&h3cl4J`IFC{(&snx{8g?SA^UXjIYv)|dEpT7>c{ zer%()gK;sjFL%vU!s(Zw{nAtA5mD#&-ODob6q|q?;d0j4JnXHT;Xmc#E1ScS8MuBb zt!bdwiPToYk}h}YqDjoT;n23u($ACk0xu&XKZIp+m*%Q@CjAY49T0=yoA~mhR?LeK zet8o0$d9=hG3)qZL+_AtuzUfQ_cKf6(K)3P%e0&g)HTv3^3*RcmymAsVn0j9K^OL{ zUGk2#n9mtrsqC=m2mLD8kBXA@iVsLx_EP_&YdiPoNHL%*r}%5nZB(=SQzG{Scd`#> zDYt$DNT(-PA!FQLPn^TE^bTnf(8#)Ud+$00;R*%6hUu!A_ITS?6u zhp##cMclCOx@@c945^8C69;6sFV`OVJaQgb>Q5RtD3gaa6p6fja}@?R4bhhQ)Y>M7 zt$!vjl@kUm<3XKzS|(eE1G@F7Bvc*P@*`WCr@t}`v#q8t{obwlmz&Zc9>7#lZj=b$ zp{r}lfWNwmpA);nSRq;2qWbYs_nls9OSY1cxJNw!zLLb(LcHq?PZpJ34Msn#I{H@@ zLa0ZPqlIbksN^SW_PlOi@^TV%BUc}(VEl4Nm8ISanp4;NSzP_+%apoUaeH6B7_WNv zSX>c<@3kN`0n?*ce!DOIX~0?_UcgUac6m+OED#LGp@)^y1nM>s-;+L_QXE{SmhelI znQ-7)ca$U1wz6o?ltr?o={9+d3hyS@C+!u@vhA~tD>#>`wX%tY-Ay92uPc``mp&mE zapJljpOYVdnn%0{=EM)X10Viz{y5~?M14-}SBjOXYWI92+4o7NiXBV2M;RNxlQMhc zNcQ%YD%Mp*)`T_YhchMz=g`%#5!7rnZJny_0ZidEzcRmaOgH{ySN&w^r=ibhrx zK+mxll2*m*;O0YuBI*uVOpc#acR9DHFA}Cy<%eV3#MY=p$fTQ>SfR(?Ma4eB1dm5I z9R%>Rl4UFm9ucJhID zL$ykDmAc>Iim3}s7R$wrLnjxd{HdiV>u)WA+!IY1Op~79SJ(5Oe1zglJwefoKBj^j zit*rkIp$@KS9wUNIxpNJ0=R|AzcQ={x7w?dvO*s+=4znr+}AIK<@)0g5JP|J+ zRBMf|6|O)Fw4~}lD07{83$<__J_ml2eUyJ1B|^T(0Q=g3E;{bH`E?%QUk^8u`1U~E zy5dn#A3)tkvb<7|f?%1HMR{f%2~K?Z+l}q> za(@p${iW_r1sGV_UM{jNekWaIo2ikDs@!fIIic~~t}*KV7I^K)>Lf|r{6vHb6@B?@ z_uXRc^z-@T0!R(8ix}@eBU!Vf3x)Qdf~i`9?kb>2rOZoAyIIvn%P!8H>ORM`Mu_(B zZ+NLKK0SSJ#VW0=Z2rFSb<1gY=S^hW!fzzHF~TGT%>wGYlVh684ds5qwwS)dfgcM` z)3PZBv*F*mbSW{%Nz0n7xzR_-n*xKzziLBd^nR?@JZ_#*%%1z9HS{%iK1WU_6v5NE z`6zUjSRT1oGeK*j7kWqRk-YV|o^qjjL+fWo=}kIPd!9c;p^bXa`lbAF6P!n1|6*a; z?8f$(uDC}cajD&Ca|uxESBri)zRBc*7o)GJ(&2ra`%KdcDe5cI?>13_8q%i$JO4bI z?e%ng=aj{l5l6L7(Jnp92?(f)xPaSecQlcfD)KbSr7-}kJUbG~} z&TGZ#YBNuW*clg)nYUWV-sw8f?!+S%k7p0GQ2)j>1}E%;i1;eF(9O^Fff|^^PtjLP zp60FYGsk1CdxdYOl`A6|;;U;e6Q4%HKkxJ}+O`E;H63WXT8X0?PbB0`RywX*sseTM zegLBOeRc(x57mgX&NeZCPV$p3g2O9ib9*ho5qzGxOqm&yN=Fe5|>)?pwv9cIZ+d z?G@`VA8@Uw7<=y2F2|&&W=?;8R&@c{3O&O?*R>aq6T5A@8fjQYKU(Wd@M?Etuz^0U z*&dG_E=P`Z?{K>@iM)a(BaN=AP)n=iwIX5X$Yj4tBpPeuFE5g9LwC8fuejPiEY1bZ z23`8;l=IY@>1v$%Dqq?QeN%|w6*Fb-CKMj?f^xB3>yK{N1$?wR?mO^c z{g#O!|Hdzs`!T*;(y^m0Vy$3v)wgPty&+yLdw7y5(l_qW!|zlZl!J|qN76#QO?AQX zNu&E>@1fe>2(cer%Fh|A5J94=Z`0CaHh8GP~T*OMiDrY;gk^4075H)xRCV zjLe6Jre&*IQ|4bxSy(*ErQuw(KE+H+FvK?4=qp@0U-to@tLR@X82|Vu6q6kVe~J>@ zt#!{fqu`a{8RlS&bNc-)jO-x@E>tqZy@)OvBG*s!j`)w6#glVxID>X-_t61%7Sa}{ z(wP*Kg1{@XpGdgTk5#@~_p$$`<=!2j+zt<@;~~}@5i-hS=3@*2aYNQ*xkm_`L`*L- z-#<~qn>X^Z+!M-i*g5GYc=hUy-`;QWRK5^~#NZ+8NzAK5{(qmUa$VsqJL;J{cM)9G zHrjn+JoVIU@EOX-iGhEe)gX7(r}G~P<~ULIm%p~(?K5na-J~C@Ppn$w9ao+FjyBH< zJukUcGmJ;TgxqK9iH`q zVl?+=Rp@1T7WN(n4T%Vv1L`x8H07puJlT&uB&tnaJ|;R<0QXiK5$!tS#@o|92G+B4 zY@$-WfBj?JB5DdZ28QAyej>fKaP-)(SDsS&Q@QHXXZWJ4p#!6#Cv-&p-teEasX2$TKJ1{Q26)fu3g`92$S9ec}nA8s* zEQC~oMAR>%Z46YU*tRVXPnfr*o*-ISX(2hz&=L=fuzt>1^g}zhPke1=5^e7_+f?n@ zFfN^+0o5C8NHve$KIG{q<6h@3xtAAwec7Wu_X2VXV`_mJ+I^!-2WPiWI>g=|AqEGj zU8->Pzn)Az<$F{8W$CB6<>8=d0eU3zK_T2fXS`&i@X8uP(>r9?)3XUVQ5BOQe|AH; zmA6lol%9bdPOlsIO`xmkWoKV<`x{sX!s&h3O-1*8`s|IeM!GM1VCytJgieBer*{Gz zJk0GUFAR0UbBtk6+pxHa1%Wu-R55v{Uv7AKbfLN#`$JK)> z5?Ux6v%LA%8)(^z8eYeC_(^v3*4688NqO`_ps(*CUX`iCZ!6E*jqp)LT4-Ne449OW z>TF{-w&RQN*pP?fB4}zBQxY4JYz~u(N_;5@vEQ&f%v&Zu%9N_vIaAD^MM3R*}i=Q-p1$>8T&YFYO3yd~0ilG)Y_ zJ`!WX6k__E_Sn>vFYU{xtJ~ixb(0^)y)@G?p;fNR65S>JqfZO{8hDR0#Wt|a&`l@} zM31dDu)$q}9ej3}1&faot}ilfOoiQ5E}ptH7`;7yte~G4_zOwsiTSTY5kY$+;AXL| z)NFs9-E|weD0wc~bFun4nr3@+I3YZ9a7*!$EQeB>{t|dnH8FUqB9`i#t3qOS=Jbu8 zl#?!CV~-L{&&s@Uqkis)0$z%N_^t6yvUCLTrKs-i0{_M}sJB#edUs~&4-@bF_lhkm z)uii2mO%)L(T}2tO~c#;Ina#}Wf*@50S^WEK@h$hUZ&bXqnpG7y#xXdz@lNr8nSuGnf&Geb%Wsc}ZO~!!%B3PIR;~&!aCUaD$HSgpEh?75O5HeSQ03a2b*s`$#O6p%sbg0sQkW>;$uAOi< z(_XFL$JF)q=r}(vMD8G3Jy1sb1jchBD5)1A8_(sHu%e$OV}42APeysOwq%Y%q~0y@ zsvrY~o)~g>#jSie6(8K{-lrwtorLq4=W5276y7rMSQZ5G4RyU82~J7>re;Ob`mBj} zvqn#*5&;$jv(k@R%Vogh-sZjxIg4*kr3^>kpPNdsd5213ABajya;dUS=LWj!t(uq?-TqqH1on{ph(UbAU1n{liw|*j5(6ag?mS`~O z5jW|elTCR_5xAOg-S+49hA9WBGlw>4gVIA+c~gH5s7hs(No*C=LSh|g8&z_@2K!sT z@>zM5w00$^@s>dto+%E=_ah+f*4W_t8JbYpQMHzpax&W?Nu>SVC&B2)sdhB!{=I3~ zw>3kN!L!5`xPf`vGe10;Vdb0b`5-z(4sn+L6nIHyqOsg8($YQjFSrq*+?d;t();k} zRFXr|$)nLdk$u|If$Jw)jNmGSgG5g89Is^ZplX$y_q>j0MCi9I!?(M&yf2t4;dc1& z$PWUAK5esCLD%{2|5c+r^?|8y#rX=#B=>cX>^s_#HJZq! z$x7>eR&>>!Res$3{6s4RG%3i&`?O!IX4sFKH1xm5DQXg^li<%b{=Pht09~5o5Q;^8r zaZP-kC?m-beZI8EqUX7|_B@w5CqAWVQ^I*din{Ht#rxdwbkRDxd-aSlDgwNHcDji; zOqR=HH&Z;-=cA`$BNG|P8FZ!;n79|k@-+-D-YB?o!gmI8uq?TD$|N_ZymhS7#td(G z=0#b!INwsm|MbN>nTjAqIT^7tJvyE!Iwoq-UC;ao-)eg13vEk>WF&vkqC+qXvICNM zs)&RDmyZ+F!Y`A$ca9S$n+r!xIwaR4l(o3s>?l&`UVU^Fs$|L8@Sv=4D!a);4*EO% zSi@498Wca{KJI8SN^1_WGT-m+m%RBk6x|u03bHjJ_bCfR6D0=G1*gV&bqMiN zIiG4m1n7gI6vr_FNsTW$-)w?^K;JkBU6tT~cNw`{k%p2S{k;|m(ab8^*!P-8>f{_OKa!J1P+*tLx@q} zb`5M(a_L$*l)BdcR>vytrQwZQ=TJ1ac&u|<=MileAD2v>SN$Tycv|EHVZ2r> zFZHCw1})L&?R>csk@9r8#!drUG%ovsvT3mcJ0|~RdR`TVDVvvFre1i78vAxYa*m;H zM!wII)KikGRP>HQ@?w*39QvI>CJ{x%b9BoL_>i3)Alw{|r6<)~bTZv?Z+7ypdHMk1DY%zm1llagY`<5kl z#~CzE)I1Y-<`Er24x;~68n6q>|x-^QqF~xMYjJ zOtux09}!)yOrvgt6NF^$R{nV#K?CpDIZUuX!vzMncoIZ=<>i@|QVQJ!+c`yEkBso* zqFu1juh;T(nj?r&7~k$5uRrQ~jQJUm4BUtt=J)P+hmU`;k-Z#yF=;qEN&58)$K_IJ zS!v5%-V2kfFaG&kI-Rn<^NQI8379^nx#|_~wOeUA@m_2&zd(~EWB?H=m8VKyxrORH zqM)ajSuMKlay`yVAHOMzhzwSax~m@)j3+}7Z35jN!mzu3IKPIJ!_ZjG(z6zh7*TLAr56(T^;zY zksl(63ngoq(vKq&?;vrf(YzdbLRnmrMPl?hV<;~r7Y+@k^xLk1g7^aeCG9T!ly_N0 z{_~POoe>p$YVP43VeX>qi*(m*w1#zjYQ3HJEW~U-(D80(hB_9*tQUejU&Au;~G>l<4Cv~+ha^bfY?Bnm$m#_Bls!uS&a+h zUJ=pXCN-k0zo!uw3a0t99!4bM`$ZiVPx1eO_YD;NdB~dA-~|mXDXQ~OTT{hl{y%G> zfydo{z}6OKj2$?GM4!zlRn88WPaK@d_IGejG*dt?sR@ah$Xp*)EFp*G^NAAX@m0(*o(g*=1BZCJ%v=cgb;!zNiL-XEE0!xW%IiiaZOALm zp+NqlICAENXcvEp8O{`gnhpvIT6OU>#7$3l8qF}0mO*8hye(zw=1iugWXX$g_L zh{i5WrJqPk?nU{tWTi>;bVrm5Vz@MHF7YqYiAUQgmINg9$>7XLOGFP!dei%uv3jSu zHa9F@A}IV$*0=o<8{UUQQ7-z#w{d>%O2a+UUt`HW!2C1L+2C>Yk+Rf=TUazM9ywuQ zVA+FpK{sU)eO%HqzZBGuQ*!sl>-8jP=D|rG7RdESRO+ljOcADq@+q1CzxGssVjkl< z^xd)2ot$>UlsLdo8Ln5U%%5K-$s|9&}W3qt*x{i9kZIKU}Y<4vJ(y3+tT zx4%7b%5JxY%c%#(fbvfgnUU7F=BZq1{8wSU&()7Xy*KZ+zvB`_ARPCsO+-I+k1P+J z2|ykVzB!_0p#rDb_dVpTs=#kT*ed(6AlP5UtEXV#IdyK4ca-#>yEE;?fD^h&(mT#~ zUJrua1S5>(udm{knVFAEyX6G|lfRSc`hr~^Vf=ueU;cNk0V&fbsPM|=ym?T!n@Few zu^<@KAC>goCmhC)e00QEGD}~_w6NnC2>27JcGi_<_GpXEyETRPKzu%d({oqdkaRO6?5E=V`O;l0`pU>AePDr-g!*uyYZElI+;Ngn3-&#O<_-`L(ib=8N#Pt2 z$Aa2LcaN)n`>7T}e4AOIzQd^R&9dygRPZH(QHB$ZDo&izrN#K&WPaDGg0ChQ1 zz!Se7;xAD~9DAn{jo}ZzIWY3}!rLZgia)=WKYTPPF7Fe;{{RXjkFdJ8Pmuh~#cLxn zCu_|Nhg3WOvO^BTNr$w!#G&QnH8)eua!0ZIt)EXq z8$ks(tCxD#D+X#V`Trh^c5A3Oe+!X^xhjxTaGTsj>q(5m-w&n&d8Jgf#&1*$5!`AOiZ0uMISGL zO8mm!S@(^hoqR~+GeF-UVrgqe?>wrUuS3$qFE2v|uzN!$Nh7SP4iG6~0@T%4-6zf! z)6{CY?tTw^AUsfsn__0`XBVYzM!_j!1wnxBi!p5yVHM}2*ZC(Z@U}Hi{K1eJIv#`y zBjGPC{w#0?Y_&2A&=3PW_70sWccAucC#8QR_u$ZW<7&4 zj@*-4Vw^%?xJ(%f?cc>Lq@e>i!oWo=UmNo%6gLgx+CD!5Y5H^+U`;RvRiDPcKsN;6 zC& z%|i((9fBC)LgEj|LNDPHXSrh|&iw_WJvxqgO z9AjSLsj5C@LMe(tccbYGZk*V6nD1EKADBPr2BouAtr2KT#=Tn}VGdZLvxb=@AnzY( zi0G4LP|BSWQY+85!xh@&jeTplJq{{C?;*3LLe7#3g4T>tnL#IO}bB>5!B(;u7YPPYmy-9>S$-H@3vBCQVqenODCrU*5SkLp1bLzK1H2~V9!?=sNIQwRL3x| z&Omw9&V>ekp@7Ven|6E*6nqURtO4*R0AXMmwl+R`Kw)NT3QLii;}jW=-k>X^j#T!( z&(|}(F2oxk-}&tdkk72ohJ#HQ#rMhH>%Y6mw`EfTU)UEo0mrr9l@-h<6UvqnbT|KE#8Yaw@-~@QN0Ufq zLKH)b*NvbJngrO;ufncmBVQr_Bk}4?0!2*j7ExVIE;i!v$G&YL7AxIo0O4}!fW9kz zdJT5{(gVG$Z~Gm|!t}!XRp`tl8;+92s~Dsbdc&{#WezPyXIFKyZ>q{i`>=>J@V3}5%s5{PXcj5O%_h37mBgpW_-G6sH!JS7; zc$0AXYk*hb>@GUu8HRa_sBxt~=^9GJtZa^?~ z2H>x5*r1@fSkng7t0^9vr({~3W4<_d3XE+*zBr=svVsam%(ril;(4~+xbGn*tp-oa zlfKmZzm)@Dz#FtmJGvSj?%&nWD#pWs;O6DAgn@Y&IgaoE|(U zk34qbUUQ7|!}I#YU+=~|P4+7lNt6Blgu)3PGE3QpEYlN3`C^~6sCQ+P6z~dR+6N~l zwV9Qofo3|c)k2bKsV+;yFsJ~O0G)cuvE82LG2t+Xf{>xAtp@oOo}!UWn$G?4%MHY0 znktRm2Yo2A1y0)U1|E37m`zM&?eX>4u3tr82b<9QdIf4aOTHVI4^AzWo{d0H?=243q8j8<@XwMG2o z|7G>w$>j?bkDJZS)YR}JI-Ic|AslrK=^yF)wwr3quRjJYJVNc3k!2gy_m2})g0#s) z#zqn`I4DA0^1pnQ^MS%0^$fMxReMo&Zj94I-x)Hr9Jz06q!cILFgBHy5s$J7NjJ7& zpM`T={d>ZnylIE^1E>(k;c>7YzjjjOW4O}f8}y($fo6|Z{TFM8V*a8X0c3yc1Oh?< ze@N9SkYL%Tj14?E9E*yRyFBkew>Q8ka>sT2`F?>%IjiU{dh{jHZCE?%zqL@X&Y$4C z%AiB`>xT#5Rg3ugL@e7z_9A5VF`FC9;%E2HSx|-E`(ZMTW0|a95=TPtGRE!kCzY@L&3b2t#Y?`DXi_sy=l|rsO{iO+3GaV7Zqj{9 zI82|0ncN1w0d!Chv7Z)A_&YTE46UrNZ(*F9KVg@uzPvwt&%;v+0LYrnGYC06t4@ODE;8E9n?n$`YP@N6v zuMyY}aRm&_fAEXCC{RlPj2sJY0D9trDc9sq`|>5*h=Va*8r`v;&Qm2|)Ie5vL1i_=}{A8N1@8|HVqkBg3_T+w1e`H=C`nDK5F##cv z*xiGqnkC~avZZKI)tT+#{9=oEAdA=Rhd1lx33p{kOWKEy^QED|Kr7%+kO;VmyH<%( z8lcHFENiZvwnn2x&LE>GsQB9bqi%p?9kLXze&^`>3B1#r0IUW6DaRjzqOK<09(xsL z&4WkCeQ)6*WxLdaD;>7-r}$dbu}=uT-(uZhzoVx*=!((-7d6{yYqFdb=6pBZ-{r&F zSC~;zYb*Oi9SczupUlw4G0d-OqWGdz&M|)X_-G*`h0IsPf1>LRsqkKR@wZ1AL3i5f zo3d$EAEAh{3A^Sdv9B9oM7%Qj1>C(5qry&uLY%5@=ELHdp_e?MsO z+a!bBOt2^C*O7z~V~di|CGxn+&(}CV$hp6S{(|KhQ8&$H zZ~c}D%O{O@qA*s>DBGfbanZH=+~~eY#KLvt$-lSYFo*fpOG|<FL2Hkl8YT}r0(>=ozP{#4;GzQnTq7>b%en|=`2?v$HKX^4^`&^G|ky)!Zt(S=Izq9c7n&n z_DJwcmFd=>{6FeMZrH;&k=U;=b2KerQ{`(Qb{$~v1`s4bDG^Ybj`of~X$x*Hz+A10 zd`=kB#dA4*PC_~$7a`RuZ(^-u1OWHAc`FP=stWf6zurW}1Lr?-m9J~)pfPZZM`s3G zm@sRxsiIr35FeIca3ZK#pZVpc!lU=#cX6`ziocky7j^#Q74ulz1Fwk}h|)hhD-a`h zua>dHn#Rv!q&iR7AWh;cllUwpH$vcnz}XT}9f+thGH4S&xLs4hU8bo35&1?51<#VH zQyaBnwaQ)KbMXBV#2=@gZgPHG4N?=C&TX#x6`VrWq{nF6u?66U0yF)BHV-?yC8jhNK`mg~9qBLI+y zplcv)9UxiLh7vUEWYm%EA>$u|RfcY8g1i`ycYuwC~NLd2pdfRFavZci@H$Dd0hxdcu zNd;emR*bOh^4{?Z?PE`Z4QkEnIoB@numPv|o%!U4g5qd8E+scBw?N&|B76hb{RB{! zK+p97HkIKG_?`8 zQ6+aambJ&>*FGIdcxM;o6n6qV-ePk>qVk63R_T~bE}PNS zghhI;YXp?&D=VBZ4d(Vz957-z#q!~;LysmhJO!F@RzRjKKEDS8Fjw#16p6c#Yyq;7 z0C*5e-Hi5FXB-2KI|OavJg0X}#~KXZX`z_FD#sl#>R1HJyRj;h>g;q4uhQBE&xCA% z63O0dJFr}WRCs0on3?k`3f0W+lS&8V*YnXh5=r+FqpmhuO2vM}a^D1=I7^N!Ss*{V4jka08x5MA8smkBjt@d339hYQn+wv%d0d;4 zU<{e_goEMHuDtwK1UoHQ<5>Ejk!b{rDV8u63_Q8hwW!g!23#D`i7`40 zWAB2e)8*_qWUZ851OyAeED12%Fj8p&=efyw^JaBGYQaXB+rL;LWGl3u2ppJc-D~V5 z&|A{5fM9pih|6#rZEx;l!d*A~eT|MraDgB8Wvk_40MRy-E3zo`2-Ec0N`W2xu{J~p z*N8*b4`=W;ro1|Z7*w#wl=^leg;j08Z$cVWcR5_NgH2dFM^-mJ)6Nz3zR*>S|peE z!$yh7j$&Cd>%0U)aR3EI43LC&8hmRLbb>8R9rlz~MCkKTTnFRpOxz;l#8Luw6!Q#L zCe(%V#|RV~K~mGxo{#+(f@P&7Z~A%c+h~q#CdgLQa@{ClEUZy77$q&-wOnS+H(=F) zhat4v0Far2I*g5O`2u`(p31Yv={wkmMjdG&U%Q}saFm@aDLVC7zOFeh;~F7E;S((M za{Ly@%p~?ayoQh+)jk9R+YkbW#wwA(XE<~ z=)Y-M>8ESA^7g!WN8jpUpEGaxj_|UiJHD+!U_kT8DcmlvDD($iehuFrsi16-t+4C@ zND)rKMVGKl{FdB+9g~cJfQV$eo4TQq&|u(;!;|@u=^!~%(wb{)Yk7||Q=7HtJFC)w z!X+ei$G3=noB+5Nry$q4m6rgANU&={|UihH`xnC_2xqj*_p1>w)cDAQr|oC}cuVEDEG zow!*|Ou&99dT^kRr0Qwj2!4I~XLnAWp8(DZT~OqMYIAiR;IaZ$x>~)xZ@)lmCqo+u z`RQ1`@Qqhut4Bev(9EsCcn&_#b$ebreVira@@94I2KfZ|O{jR^VV^}f-3yGRegn2{ zpd0t(8TT_@^0vsxk_EnCXe|LvYsc^iIA^u#UcIfv(@1 zGGZjr>U1pG&_&!9613kX!+=gC)Buxz=TvxU{}3cd=;sxn(6{~KSoD|?CHVac z@On58b;JvxnRD#}Ok5%#lv71_pz9dI6+mwkvm_YQ|H%VVc|UvBzH$NnD%DX ztM1FL8sI=MCVmXiy=tGl2M4rEW!`g7WBRO#iSJg*kkmPMdeEy0V~8gLdVc|$C$(aFG1fnSR$FUwaR#B!1#Tf;u^Rf@ucE$UVXCh)gl7uCP<6Y^+la0gw>S0cmh=cM7QMAb zW{aEkEic?A&3{^v3v@jWoX+zk8h^zKj?X&m9PkB2Z?(VR!2VXJ1t##830LFCdO4hlG|1@u=AO4D2&(f{5Tyy|st&GYY?N6auSt~uVzE?r^D*d5h&I4@ z9a^j#So=xRWl8~)?`xIG^|d#Q^iZ3QSaE0n8JLe#rLJU=AZ~XUJc_%Y4UID1WaAm$dD7iwEqs=Wb5?8gd}ECAB2<*>eX@DO^g}G@@LYR?oUN{=%_vm_NVD z*1Y=tKOq5Mnj;{F>f%nN>0C45%R$I`5~}n3!Gh@t-|oE=9ZCOO-2nYNGN)zmd;i%(m;lCQh~e{qLq=>`-4;t55ykw~#0Mg=PL7)*>Zniyq({R| zb|y~BFH^!*}U{6IOlIOL>-(&1g=g+&Z zvZpLIk77A#jbVn%M%j}-cp=lmiT5Oe`|7=Hr)C9nCqEruiXJHD9Ss|2lIC}LRx*x8 zM*7SD{u>-{7oWen;R(LXJOqAjbK-WS1}j{M60MSAiH4CU!hb*6l=80CydgLgNq!&5 z=4_Aujs;i3<^KR|K$E|)*9lZ`q5o5X9tr7MXXTP$B$VmdPshy?eGUKHg1jt=r?hj{ zS3zQEE08UNk~pZ^^HXL!)0xeU;EYx^0@qTk3Lf7K=(>R%mn{RiZw=s{1So8sys7`1 z>Q4n+H|_kFiJU{;$iH4RFd=&5oBXR`GYF(_iHkRsUE9f<^Ut+lvrR7xgv>h7 z2sFZAs|t21d8U)SZESFAbK4AXI_;U=)zl4eZt(8}a!-<2Dtywvv4y|Gugh`A&Qn{7 zY%uoDKP|h`4?a!RlRz!eEfX5D{x$GhHWHj<&X%ZK$r@D<+iplqyc7W5X#SqvJbH${ z!Os86UipnK>&9kpbISgW&ocmt3+(uyLmHX!n#~wn1J* z?Afm&V;(lo5;Ye5xVCXaDI!PKU2`5UETimVK{$H{1YQg(9pq$s$;)l z-~oQa-|}&OS^QO?e<4@bbfAtgRo9=_ctvDJx%7(VHWHevk>inT( z5AAQj5cP`;os(!&f7ZMbKe>R7^w;w(z#+8jtO8`flhKH{h;Sch9XJ1?&svS`I!t~v`4%{>XIFFl?7 za2`%P^ye8sh}Z-NwYg(b1eI?jQMg0@>d>`GFi{;w8^$?@&?E4H57UC39g=eYCB`2~I1ygmE$kljfb^<}5}fuw9sK2>hb5} z9C6C#T~OSdKH%TPoGXwVg7YilvBW;k4-JC@{tYp0`Mfp_y;ywxZwRzGS-oL09Ax!O zez0ERMoh7M->jz?FT{h-4g+PXzJ2{Xob3#QwKII21tY=FY&WoJfXe2K9zQ0N;R7EN zctvgM=P=>s;B%d9{tUr;R zfKTeTyZVuRCLhV&;nHjin=39iZ9lTt<@A#72tWL#b*SK%Mek^{M99wVSE1zFk zqS0mnAEL$HZ7$E{2bE_!odvntgixp6RPug#j5dX{9KtANjjU0>Hq0SYeJUjPh5(mhcA$Klo?X<1_;_JW9DD|Jn-IT?ZFe_)aGrx< zJI-BvjX_pCys;)t+z9L#TWE*)nVnk;`$lB(b{8X-*(TUDSwfE|+dWVR){e+lw4Q~9 z+a6RT!yyV(Jj3YXSElcVEHBu9wR}@Q(q`W{LN25(IxkwA z=Zf~*{HQlmg@v1hPRc-hIxecuB4Ta~G5*);8ejRHCSm{|=K~U8;v98JD$2I;wVqpg zETMh?&a$a^i}-nCx`xk|;<~uO!{m}I6mIKg43gAUVb7{A{^ZVVEIWaXRRvtKM3E`C zhLQCd4WQi*s0P_68OCq~+v`V=FEf?ldC@=UUr?M(!Y#Cw=tqIxZ~{fyO#Ilz&%|(S zw+i#!4;E+sZU7kQ-R<65yP9^oym20y&jo-!#3voID$2c!NkcV zpLUZZjNMnVefiwz?O;p2d1ig3W~=@(nM97R6FVDcHIHU>XXBToPs~<=Q({$k z5jX$At8>4m#DZQ13F=w$9%H8Hgvb)eqU|~H%`Ky`8A50z&ChD_V^bZK@HdR(1<{7{X z-`%L;&bBE&n5bd80en{fq3_0LN)z5)`V97aI@3$IYbhXO30;cl;>S&*$4m=<03?z~w81$x=$d3A%o&nVQZ0xT3 zv8u_KPz?6@l#kBP(ZG#xW}n?A!L}AQ?u=uB(Rl+yMegpj4Qy6gKG`WZdAw5YaKFiS zgdbF4e1iEBHKm480oUv&4`jS25IBx=3%H)O( z9Z(Dra{!+mCLbSMet^6j;*vF%{w$cB5G7-7k z8*WaWvc`tuxcmzB^yV4px9$gy&$6#@^d|3a@t9aD7$}n!NYa$!rhNgJJ4qJqW(+;v zns35&V!OqZB~oa7yp84jU>-?!%LdNBDFSm?W0)~YxQLQNtSQHWv=P|V0;XSw7k6_8 z@c1J#(6A}I( zVhuiY{%v3o-S|s%Hg^Nj7WWLNkZ;vV;hV}%Q?C4Ke%Ia(UZQsw=Dy-DDE|iT*r?v2%1Q{4gLHaIbm16-R5O{vPQOPL3_m0R9AeO_Cg)s-b>P` zcqUv@y~gI6@d?|{Ix?1gc>DVHV{^mHY|y41j0~rbHSnh`tOmDCE@fez*}=0{`fS&ivbkA9Cuv`%&d>zIJonX5&sFD$kV`$t^UM@6JzI^7(T0;E$od* zEKl29Rry+FzkNIU_yZBrR(ZnjDW^ey{3;QzgIMj1mD|)4g<)&LZn9@MT00`$Q^&36 zK{0D~LuWmUM4q}hkX1i^uB442Vh@}jLT}h`ZPWTtZF+OTU}KsHl08<%oX+3z!}Y>76!XW}C5ad%1<+w3j=?IDJv6_O^Z7InXP5+l z?Z|M%Z8SSqE*W?*+$@>-X7_%1@p8l6{V0{ALJ3nE+SUcl_3wbot z{CpTCcGU)QZd1rG2!A>*sHM0B#ccQf>m?Ewi{Soy!knNCLJj8alwU*8Cw}R zpIu&=OvRDuRX9S%B-2l1yJuR{wy0me0%v%yuz9wNu_M2Wsnu@kzQy6k%5Ud~WrOc_ z*YcI6jX{*^kg{p1wN5o{r0Q|wr`fndLIbM08;3x`Mz+y0ThXSR@W|T3Oyva6h(!TN zmmhLqI{2a51QW~~Tt?dd1e@u0@ri7@+3*K9-n5cn={ z{V{)4+~4Ar*}41ZWw@gj*~MYy(|iqx(V{+=B_cX$BfMe5C5NbUW>0S3(C5JDA2h~} zEBVzw+o$+u3FsHw45B~OEaN(F6W){}svi49+VvkO9vVdTYqec|Gl?iJaYdASf&Y{- zf8ZMUE*~Ja*43PZ>l%G6C(4gd@BC%`JeE%sAKJ&F4-03?mfZ)WC-7hDf=!Rzi@tM?qChhJSMjUu1+;7V<-}TA8 zZO}f)6*}TC)=w0R>9ZXGG08eM8(mYvFTyYsDtYWrfSKurt=R9o<&DVbH+QPYEn9BMwy!N8cwegxH z2elc~01FRYVnT=BRLRXDD>x#_9`isw+8rW3xgtu&I24w4hSGO87EC`VIy(7dB_7E2 z85glAnM89mNg5MV>nQ&mnnR;sb0KftK!Rg_;zY?6Cb2^MO>xwl=OA+7EfIK|g`Qto zzXaqJ2D`OF&!N=>eOUg{IIw6q9KC@OUm(8LK|XG7DI3fGP(MlG9M$#ChKNffF+r#H z(NOmF994Q6XZexXG>JL$N4)?K+g{#OqVQ+?;-w1)o&)-W0bh`GvA7bsFvvtXh3EJS z_zCPIHu8;D|KS=rH`HAaN|(X}H;sg)6I>x?f_(%ZDjJpjzp4a2zw0BX$Na_S&E3G7 z;Om<`I{jeJtsK}$?BLHqB1Q=Dp#)%lM!b(^vWLjmJ~jR!7&(Ve!yq`gKLo3h@d(-m zU}kOV-&V3lCa?R%dZKL;Zmus7Kt-b#CZAv(ZlVlRZ?GHvGCTsV1~;?W;iK&)eWARf zb~3*}pWcwNiDBi~cm+Hi4(m&TU-Drq0`ot?Cw4vBhA&F{SjV2D1~%oxsCbg+Uc(nTE zpt9hk!!_npZ^j#TiEX!~RQ3r*&LO}FF*2O4FE(*>J?-wU-8;5p`>9@gQ{EVxu$jw6 zv&mO=7v`PKq9JrUaOwEG7Pz&2w$DeFKri9!Lj6|*yKcXmZ|HVkRUZq@CeZ8Kn_&uGVfp;wJn z%E!0GC|Q3C`(@t?oE<+`*iDt<0=tC58^KTX+`WYJ?IoMb|FLrS+gOpG_g}^JCLgD^ zX{YVNGSK@$oD)O+9l#-bH*CO}wRPwpy%Plv9A0m&6Mp#iX#`X%qNKvAFnakq5L z`k*i7oR;>3sQzfbY4cZq(>|?(ntD@+`lWFdChgnV53}hhf@#tS8)GF$Z;jBmIH109 z4A{Q(mu#6tG3UYo{oBEqJc9FZ%f||LL_Acz3o_=MhI;0A(*PJ~(Q-}J{*MrFoP-A|XpOAkbAM$a^ zXH~>oSFs(0;j_AFwu^DrM@<}j1AD5q4LsnmQJ&CwWd035R2cZIsJc5`I)AE#J-?wj z@?0ZE>SJ8jaE}knu6?_~RlatBFR_2P?5#JfYM;mb&Iup#X>XSxH-W4+xjxUfbrAay zn~0z`bd!Xj7kagjtkX_nM5(i z2onV|jG=s|7dE`DMU=0!pH2lj<`Yc!8S2^fd12Cp_UH7Oo=-4Gmz=6M^JI0(>V!!w znh*HO1wdPuQX{^afcE4qz7&(F?(fqa*LYQMrP^w8y@9?G-!#BRwez%3I@ zA{^AWa@i+}nf5#5z_1F=x9oKBn;37&mJmBOeiG~7XZ~J!K)R*+hEv%3_6@e1XJmJ$ z^bs{=0EOr~H-WUz5f1pLTBL8Jg29Wkhwebo%=6ZE0H_*St60((3*lIb`UH(dR;sda$?m83AQ0 zJmFAty4)DZj@$&}z;6O60=GK>pjm3eMKB2{{y;z%1!v}`GyvKR0LylU$@IEGP&2T3 zWH+b}gOW||9sN!)MR?L+rxR>#1#T||j2$fcF%0Rh+HQYZTq-^de33LDOT)TyuH>k> z+6LZsCT-=9n|gQb-iG|4K&<=B{IA@L$$r|Mw}QNvY~00v3-89!O4FR^AL4ETX>4?5 zu&4iW^$>o>Z3s`6nCIQV=E1OpoB>pJX&=tBa!lSFt-9n_qQ=%u8pAqX`Nr_a&FDb? zXiO2CBmsWP5;TJ3ilOyrKjz1v|J!yi+wL4#nbd*v?ojR8pP6rfyI^t=IghtEiIUTE zS@mghH9-^f3xA`$b#n;x!zCwKtf9HmTV*sJ%x#H%XXSC7AUsXqux?mUg+H{MJ3|+& zM>sywZ}QPP=hh(BAGD9FE#cRS5skV2&vmTgs^p_z{0z?QOCY<} zihp!P@;CvO+AcrW=DRle*>rw32^(s&*MY)fvUL9CqQp6A!NScHZ;I9wgV<5bO9CC0!O0qBs63Tb_0i`#mh}FfLE}So? z-4Dz4mR%8(kYY9rJ%8A^D7<50Y8%?0WL%6-_4rN$m;{DM<9p%6wmdK4%!19x|t+>H1@H- zL^tIM7%7KHl;F}po$1HH zhEL=jmXcA6VSGzS)fecO+n}QUsDC4!Wh>H4+EhC|kWV)>h6~)xc;$9^8{nZ0H@=Kt zfF1aAxb~!fy3X|#?9#cogM)r4a00v7OCw+P!Bt20p{|=uqU+4_7GX0^9eh!+bLG1bH`4N-~O9}J2oS^wy9lCe+u)3@{4Hg&xI5$thg8A7TikeH|F`4 zN+MjY7f;}0tWWb6E!@23r^W^lExudw(dJs=5c#wZwS3)|Y!hu_W*b&EF@V1hbiT`G z6&&2OTj>TeoNm`fB1@l}WyajJNM%#DT6i#-Tp zX!V02YEyN4lWxtYyX6U&AF}zcE8YIR{FXF?!?oc9o&-%>YvY^_`SAB5q&fv_CBv3ho+dTriE@=S{^2@}7J}CJM%Th76 zXJwRdk)9b0bc`=mzk=I9#yl@z{_v)<7v9=&Tx^O;yZOmZ;12JwTM3(M@RBjf1i(8RzwDXMOOJaA-* zBLY12O)Q%GLHG;sH=F+e95SaDXN?8HxwAV69`HwBExJ09gpG~H)r$r^tENwSk=Aoj z@iDwHAj0Gpfxg0nFzuVJ!MxWvx_y}$O26=f12=}3^<*C@tK%~aY}fmU1%nIAct^XW&ve` z#|$EisqE}UcFac;kXf z5>Gec4BG{5e0(k#P5*1iQnf!p=A~@TpEB7qt^VC?DxY;rvwx4w>~gwWe#%a>{1H0eV3e*okAQB9+??A@wek!utXa3h ze`=yla25WCphbesaQ@icQ10WzLD56IEv$XMvCj2_+mJ)<%oekES1;%J6uZ9RC9)sb zxN&AM=NQO=9UQfLwi5Z!r?p*fVq-IJFUHy8R|Oh7ffTE1aBJ-aoq(vjDeMF>H#VAE zd*g=Ela1qDL6EM{+Ei608vpVy-E=K??;7O*0_#;mxU?RSHtps#eiO2|%>_#glb zn{NbwH%vYca-uo=5bvkUj|8{Bq->c@PC6(X6G(`gt?1{IGtrG<1pf;sNpj` zWAgf+dO6OI=7tlGfAxvziWFlhV$J|A{7ZH?j^HIgqkdw0Q z)*9f(&fgh-Mm*2Y^eq4z4bNI&~1;uAC!j!A5Rz>_7zFg_ZaB^$V833kJa!q+}B z{nfmtKPPvMCw45?w9+?@%pVjk<70xb$Pc1$a12HHg!!8F>$HiEa)4($NE!^oMZe(19Prs!o8@kWbI9MZr&@6Pbz|`q-&hbCJBe zFjw=gia{yxKp%;4qp9A8A8eK@@Id(YNvEm!!@W- zj+%FUi8x*T8_6Et-WSHFS#+9#+xmaBczkyN=zgpM6p!akR)GZD2sQ)F%ucFT1Z5D! zxS#Iy;R&A*JJ+qpWFyGrfJBzrff;fuaI1ol1cx^728@AD;4?OR{Kv*B(+x;z^=3e} z({CzvGXP9QpX{iG?$iE0u^&y#H*Nf{nDXPXd84coGrQ$2{@Z8bcJX)44pvx2`*zUw z&_2<-&H(DjSDm?92^%8PzF~vlNE=5Ac~R%@0E65jF*F|;#D>6GIE6uzLPXip=jUd< z)=~1#j;a@RRHZzElk~!DiY8y(J^mKRzKt0$t55@;`D@T#`f# z<2S<-e20EuzF6XO+!Y7g2|7O=j^RF3Q)XAoS}dMmaS&NO7fIWg98ey{OSB(I-<%Hm zgz3S`WzHBQN3^Bn!b8z`W{}v_vhFwOOkOtnm2pG-K|gvH#V)X&6v8mMzz=4e0<`5%IT#ED&)wikM^ql5B8f@~5rE=MZ*ZGsuDw5Aot2L^AVe@m4CQ&eSpv6PZX9g zP!Oo{b&PuF7K^Ghk~-44x?%g{OtL6(J6Q1f4pxW(JgKgd3D&(&y&%MYz!&RD-NL~Q z05)#@uY2pF>mzxzeFXsimJq_nVS&t6@e}9w-6`LN`yJ&MaeZY>-z~kPudz@&u4;F2 z!xwM4?G_GOk2ipa$mfs|Y_9X4Xu~3HOg>Gds1|9C?>6@+u%Y~!4mvXP2h%Awkcfx- zdKA?w9u;O+ujpTZJ=(ernQW|RQ}-MvD2H|;TY+qMV=e;(9+cz>7rV9_I_UyL2^P4d z{mJIjPLL?%T0Yspjbh4e{6OdF#_*)1bM2?fpSJ&#g*}Tu`a00^xb-!=1Vc7t8?5`y zYG|{7?|k*Vi<@!oVm-l#bOXKX&%m&S@r?j5mG1?BmfDNKS({fC7<2-hL0S^uWIWc7 zmH%ok9QW%7k6vI`0cI-0cma!Y^NxeX%8rw}8Mwv4(g>uQoJ~_R05ny1g2pFY8oH~w zvodCV+px!E(;)5+?o@dp0K6ssX3+EopC7dUzrxGiIP$yP-{JGrc3~raJo&lXIAGME z4VgRV^&CcUCUVpMc?M9Q*_skFFod&U>|C0*{P0GOLGjPJgYgk!L&+~rQ~vBjlpNvC zqNzTwuIjoW{*Uo~VVVQ@EJ?#9jA*}|yx6$RGh?n_VkZWUk^95iU%Kl$YIj>k=O;&sftAXrY8 zJp+gf{c#Zy;llp-vk392lEJf%SZK1u^moC>1#`H{>hZ_IWQDA8M84`1(>3#@&^g=> zpjYVAaSR3Q=T^}0bT?!3pkwzxP|VzN4UPJTj&$oE4~$Yul+SsdZ+qGgh6=f!{#nA2l)?i2|8=D*M1UfGfY@n0MI9# zUwYmv9}R`)f;-Jagx_d0OOhBe+qGT87ckPKiR5+=V|pVAWWnJxpjD!qH-Z(|{OwdF z-&*yNJLuqgt^IefhMk=zN#0m?4%<}1-?+iUlqb9SL(^}SZ|nju-Ao7=ODwIS`M?Td zXSaNae9Rz_*(`LcpKe1G5&K)b-e`#I z`Vlu6)VDZe3qRu{UMH-NI1RB6L&a&pKUx_#bigbVKaisq33#+{*^L=P`GnXG`JkTz z&L<~Z8_g5;uaG`#`+?nHoI+XWgNV!5|NNKZS)VHISeX9k(>34c z$SL|aa&hbyJ?}dtDuDxT0;v}1@@yRc>;jLc_~v7@xo*hQHqR-}k_IE$#?m~0*KhCe z40Pxu>)7J~iiavT;R-*Mk-T5@W7h{!;L)(x4JyKilVPO_1!kdlcY_aoQRq^Wn}JCx zzOia1z3M3W08i z#_lxAFn6%lw>cJ&FQYb4EWcRDcoh6U>2LB60yMj4?FMvJAW#KV59EpcG5?|#6p+f1R_IO#j{=4nW7QN>$6Di)(?hX$ghMAc!lbcE0nxon>DZH zhYW%xpacA6$dx=Js{R1`N?wGV0aP}ZIQm!z4WOfm(ldGjz6iK3@#D0s__(uk=;uq% z*sT(P9KPbEaoE@|eeKUnKTpH}KJI3cs6UMBYB)J*TLN-=j$;3`UBJRN`gQ+dG2PtI zT*&-p{aw^>K8b`$Ahb_P=3x9Ho`GC+6NoPE4;&M`!~Ni8=;|BD8~+FLBa#XHWvZAS z(On;RcLnBaCUK5F-7^L59*n{+w)Sy2w@$frEGu(8o%;+C zIZ$5R3{uf?@kWD^!^rsD)%RZ|+hxIl23F%1bkR9Wc&+(h3S*_|4`gXfN6ZHWiWYWi0z-o zA$%4b*wTKgl17#c!$19~$1&tDN?-ADbN0Akbbrm$KyD_XJ{D^)yx~IeHF^Sbdi@V< zu)Zs~`wIJ_F(N5LN4B(qt}Td|?8|2FEGLTzv$xU1*1~sryvFrF-okpV#80H&PK@KTKUM z?~T1BKZ7eW6NZ%X!{`kwPC0?RvxNat&==YtT|c=&d()KN1vTvcW@-1gDF;5 zcY{;3hP3e`%#Kclzk#t~vvGgPj?w=WETvnlz-zH*XFOU%_GDbyzWl)6n^WvD))A~f z-_OCD{i?Xm0ICJR1P0NjQYJvWEgx;l3`Z?ek-VwS0w~swbp@WnL=VS0>_MnD3FPth z!NXLWb03?-+`&KVqH%O^$wr&nkbV%5Zi-P5kS#`=fktanwmiIaVKZ#*YzCWwO;~j& zK-#cJo4YG%7jG9g(YpchI4Gm)e>y<>)Al!tq557()-#QMV#fzsKxxIX+b{D~E_;(+ zk=c2BI3&H-nqf2Xohi5Up^sgR-4hy>UZs2JAI<=9n6GuJAmkSWfY4?Fs$0RNQ>@#g z01(?Z@sradj!+K6@_d-7gtH_+S`xKW-3rLWrmU-4xp9(%!+4x+LT3R~gh-5_TN z>sGLLL%(ew&hEV(AQHVR31lTfOvxF64_Kh}Ii^bfux<3KIcWxH=fVDnCq0`c@fkqT z^6=Rl2P5*p&EBLjJl+IlNgDK~2;C>`pX0PQ?3o?xm;TM9yn#e_xZty}0~t6*H`~nU zhWKLpy!u7t%yWWs6Z@cLrasg&KWMJH-q<|UKf~6$Knli8*ALwb)nA$ff}AxEUB~7g zX*=AY+4jLWv;F{v^QmexZw8c%8&4u568AIYinaq@l!KSI2}TJ|HwOqGX5*;j&U)Ik zyK9g&uZ>A?A~SX4UsO8%?7XE5o~=9f&D*gJTsjxoIX!06ei%YHgo#ZEaGY--qj|5f z&NG3jzlQROUUM0TVE#M!qv%hdw-rcdT%kSm)Ai%0xfP!}YM%NazdpcE&s`CoG*RPFwzd4Ye8vJ#Og<5iaY+LcPX{O@IYHxMzcfz_ zkd0qOOu%T8H;~We20KrbA9Yd%X7UcP{#k($!`D900oRZ?8AH?uLV14*@5J?|c9ly50QZ!1#f_ z9xs%kS<_Q#`g?$g4l)Cqh-s?zO&svtg?)+SPaU^_e>m~hDvlUbCE7GtUjtrgNdc^_ zr!c>*bmC)I9wd9rlKIND1z864m$<6n3!oFDoT?kQiVXZ&C3`qr#!t!W?ZNQUnG=~0 zK14pq?IZO0B{=3rlI%7TxPjzuQptwir`@#mLZv@rz1Vuashj#Pwrv|-yCKg(IB5|g z@34G7Jg)(~lpeJc^@X+T+fo=Vu}hOzET-eB1F?`#fEoJ7w}reMK9LLC&!5AuoJqaI z3gol#qx>>?<(um3aXQ{X8~fRDDQxT}R5bcZ+nrd(Pu0`@Y~qkH&(F+d&-6_WExfL7 zCRa z67*R$wjZEq6OSIsW{_ZD3!Se0)l@y@%vVh=sYn(~RoE4;j{YfAuK5j|axAGryZYWn zSof`k@v6#i3DABEkEm?CiF>u6p(MoVMnC4+xb-UY0*c-ymUFJK>%NBWytSTdL-NLO z#7&+9;n^K`(yWMqte4<3>+hKHcR)H)E}Pzms$9g%O!vyN7d$Tw>TvHMaJD?p?!n$ zdamFY0|)0T)ke7>_p{BdggDlueW2XczJBRBKqkB?1u#%AkhQtDTz7fsw`1XJq#VyZFHIb` z4{P0#xI?c=xIQzJdMzjNPWB(*2h>($HRtEPdEO>M#fKcTJscjkwrU9AvJ)V02I!w( z2gnb(5)4k1xyiai_9}QYhyTZ=7hb)E8`!Y&a)?hH5&K!&T^lmkU8Yc8CswG<9Fsp5 z9i8|9!G*&Uxt*k;{kr^fSeJUeirpJ#eOl-n1|`wH72-nF`k;MmJ#vu1Ti6iJ8;bLM_gr#TRUg~ zDr%lbymVpufo&QzPn~KvndPm-j~$!;;zGNa`EVmR#FDw)%qbFxwTB|W8TvU7%E5FK z!+MPyhnEdiNn*&XW);zMsO6p{dn{9Dd&*k@Bj0L_?#dH6dlxVU0`uo6X@Mq31UPgd zhk(mr=XNEuJAW+XmoVDW^^rXGTNH;5p617NkUQgnKd^RoV+P|A^&@H{{h*tA)*j3U z(ubOBf+1?GUP~D1@-&9|1X(nqijF4fnpV-t_!WN)`5dG;H2&D-n7+eU^RndywtYsnt9UN{sZ z@l+t+;zZ;=>6;jn4U3EN%>XdP>B(PWI{{tA%gXl>HIlyEv7hM>y-~EsxZU8Y2mmQ| zB$L>nA7ehgTc+KdvJKlt}}q^mJJcHXWq!! zG}AWgu?=wCA0iIUrp*w{M6MXb1a_mdhYsuP@3MW6K1{tq@ZhYSF7yl_>-+4>upd<) z&6v1;9neO6y3UcocrBZ{Z`QUQ7qnKU6951p07*naRP>9M$G!@1)8mDG20yGAL-Qm) zT%6FBD49dasCJVCqUQ_9tvL(zZu}-LvkQF8(>pthSTJ@bV9;2zT8$;`3(iqCZ&aJp zfw2mIp@3gC**Ubx&xRYRch4Ea(RP8)2xJ}J{K!^KJr3QKmaIS3YXZtO)3-RDUWS$6 zhH4$WuFcONc&H_r35lW`(0hx`AR=;rvCM5N+%k#2Jn4fhcOY1Xemey|V!@b$zg z&SZ~3?$C09OzdhRn7pCv1ns!@Ryu15!o36_Hu!v<0d&a;AF6+tgrIM^z|)AyO&|ks zFmYk^PzP6Ppti9?@tqL6O+ImsGip7=ebroC`jIfQal!btAD-i1jhp;4Ben89Vg%YoumjH+hOW%P*mx6b??~SwY4L^ z!>5q_T<6AEa%0izhZr0=IwDx4e^OEXcNx>YTm?d=u=&D^J?0 z#1D6%UC&+A16en=iJi0lf=0VXpdZKppFm*0hB#-PtImGS9$ti31lWv2h9Si79W1~s zMLSqKa(|+{!7U3@vNpXwRW^b-NzABw*ac}xZ%JatlqOJdRTv*_fLjU)}zAL1Vz z7x!SEb;s;$bYlk2LVa6@!gI+ys&80l#=5$dL-9HA=z)^$Bx6hrt*iU4xgLruUO|Rq zvUJt>n)xFHN8bnneIC$1{Y!_N3sZK^KOH1Tw&xs~n52Jf^_jlHMcduFGI35_v%nO$ ziI}-H_y*+0R^hBF#*<*VTU#`2#GTn@*qW=-F@ZaS>fZK|1!NzTPW+a(vx{veeMF|Z zHanEQvy}X+5+&czie_6-^t?Cq8Y}vxAOejt1oXPcH~^1z{aUA-$qM6WK4L`{gT7^B z%BB4Ut~3clBu(~6lQEDFa*cGjnQhsf$2^d=H-XIJ5;3ktz$R^|KuOD*ja>(QIKyyp z!E-jcyMu|I@Ih|BZ?83X6>hYloKI0@ehr<2IQ<|f66 zR<6wFQ9I5;Hh&VEVbVp`KPG?Hg}!D#XB-1vC(`9p;gh!E>)*LqB;yldWU^6v)Ta!u zveS`^`hN#&N9IMFZ=3s7rP;a1K6nT~p1)T)w4TvtCcc^*m_y{a^X%Q}!)_P9Q+`vn z_lKYjc(j2gpXbl80AFIoLf*AY@z~(T^80@Xnr#Y6e18Q$r`fNv%=)<$sD&4Z`L65^k3e<>fVMpda2^C=dBR48vnihiXbNj|l%|xm`O%z7urr1S>mPx}|N^7K%hX;&$rK5ULS?wif2pvnDFSfljV4#!6+4`D?f^eU*M+|V6b29w0)GfzWb_yXJV-! zPvnDjA~uM{u~71Q?mJzS2ORqL1J4#QA1b`?4T=a4#IqHZ@gfz`y0yDY=(*R$a@C!; zHW{x6vag>3+~K(+e)l|IV1TMbbDe$0J+Q)K=i{o*b*ib0kMo>kx5 zNg7IT1({;&1nLIZ`wsjSu#f}f>voLk9~DSqa*hic=a_(9?Z+Vyz=92J_YhmJZJF_% z{TYCx?P(mGkGfx~ALzf;H?%9_ZrDKnG`La;H0}nGAQ5MY5qm~{+Eq4}2>Y9%81U%C zEoe9W1swb;$MIBrRtawKV1cILZU6}`;pze~@N2}02@S?ite+_aTipXJT9U*MH?Ez6 zL3L7gV85fZ?H9Ltg#CRI;p&7Wz^eY9ooi;N{sW8w|2p07_^N~pT;>b~jh_GyIoFXa z`9j<7+_(_}TuL9f1|{Ogmcp+%Zrug~@)e&HYFN1w@6#^$Zbpdz&G=f7>1_pUk#&m~ z+JrXuRsaJpz(L9(e+&xPOx1nB;DY%g;!gOtlQgW{FnvrgZsPOtX87}emEQunGKt07 zbvLAx{?|N$dE4Qc+9TMVWEAJJ04wAl=)jn!H;5Rn0Z(Sr&6@<@J&y&SsJ``;d?1sK ze^iRTh2z()Z^)&7-o$z&w_*2f$X{JfHUo1`3F zjyGNSME29XElW3jyEXewbp9A^Xhc3*sI$$(%$>rngJ{T`AG@2lu1YqjVq-6pG^z~G zYSXOnvvFM?JAUi&>m}T%y4Io-Eqoh1x9myachNWm*RJ_73+P@9 z=F-itk)+WIgdPSit>lc3UNqweY2EdCAXoU8H|0D-*)mu>>)XMiZ+AWlA(EABC;K?y zQR-9CDsZ|P0EX2!@U}L|UHG0Jm)fwoMepAdmHlA(11>2|c4Dgl@pgip zw{&;)zDYg|4#&o6g9m}(r;PJ&+?lg`Guj>JnKn54q|e?hORCL$C8o~p;by8~&mYDj z{({}ff59vH=nSCoygnZ$_N#vb>_}H(&=o(@8@0$* zm{9QxkiBhWfOxF60Dfy6-f5LTS6wrO2!Co)L4lc(62E+EB>z~X(YFFNWe$qxC9f` zFP(tkk{ASL6Ubna1CG}aF}HD;;Dg{}X8FR$`Jl&9^@-i$;T9})*tb#tDe$iYpP$K>{{HJZ`uS@!Xek}2`ohDO|Kz8D|;ORrzfVMf`Xn=@wUH1cU z4lOs#KYmq%BP*s^`y@yHY|BbCAV zV`b>gA>9NLCtLhn_M_raajCGQG1{)VISM-Z}>8M9xBbIFg#=Z5V*_j4v&oztP!Q~cRZ52xO9o;Z(;Lf6V|UIxCtcO z425r24cTXZ2s+u2q5vbpa(EyUI&lEa&gPNzBeKn~(LbBm8Lo5Z9e*)wj!$J9K96lM zevyp?Bj9@b=8&C@bLaeC*^i1x#ihc|I5llxdrGIk*;?FF#kG4L><2Jcb3;FM(QY92mQFj^YXs7_u@l)cFyvT= zL}vhJB-uQ>H{7ilr+jq7hCB0hsQLW!c=to%n6TKTxtaXFEIZuDNVp@vrN`VxBdP z#nyrp1a#T+fI7z|Uh-D*^!6a+7s$Z#IpiPl&vgLXd7P;|;8MIWj0up2(ZogUoyW2( zTTJ;OBA;KCA7(tw!S8_!q6%Kj)oOb4)&UN-&3dIf4~?z>MBSVrBG(~%{aM5(J_Pdm zfVnxGu02GO2i$EX_+V8@Ae|%)b?AHm2Ht#P0yN;N`)raGCO`Cf&}Y0AMq`_#41vC@ z_{{8g=k zR=`@^$gLjiS(}TR3B-nNb6iB+FFUkvz-f+wwiVe}cnU|aF-tsK2_ZSc{elLvh65BA zxaqzqy`>thw4J1nOh3aSyxUlvg11f-c3t&bJieps+~V<_{RomKs@xN;;;=BN>`*9@ zFFi-BfvLuhrekfI`6 zOt=^i;Db8QFSI+v*BKK5CpU(XUjvME+%iATcGhRK@%6v(=8MR0SfVqq1}ozm*$jT} zVmZ7_=d7d8UWd!|fuFf!&q>n;I=9hj1O)#J@GqYw_@0u&O?G?4@fNlW$`0jL!@1j^*NY?9<%CYxai5M#K#4 zoF}9UaE68LsH_5_u=C8>8D@iLy1_d_0dBUb>zam6#l_*WO}57;4yr2rzKy*^j81@} ztE+%V3ciueYLRLL7h4Ncyohub%o4k->a0qgg|1qBcWpN0e{>_4{s!{Q$Pd`~mz8kt zeDhmPmgJC?)-zIIg~a$>0?btv^x6G*Gk9wS3x$tMdy&m*Ws8ELEJ*Qf)Nk%%W0g&VlBBKOUyupK zcLJAAKzSD%Ro)D!p78ia8~-bLxf>_GJrwP;ZZG5SV(tV}mHm$HhP^C6{GQ-2k?-QB zf#DhGZDM^6mgInE&FCKjoN>BQ~-aIq@((5#wzHii1>t* z<7|a-b4e+RTWI5yKSXhaxwYE$_%r|Nt`iJnYuZD;Xj5}md>NMUktIZL4>9%;`|$Ev zGKpI(G#}2%`%T*lY+yMEmf?z=&~9_p&Hi*0>ae#9rJfecR%Ygd4rq5JZ*o+k8yXKv z=QYOnTkiQ9`JobdOS21UDi4qO#!JW!MNBw*g1N&v!U@l<{bQBr@{sjqh+h0m7KN)GoyU5{(!+zX=zJmK}ZZoj}A2y`-l`I`6;bNhpc(mip^M3+-vv%p(M zw7hCt)sR@>HnwgO$i%FYM957Y>`J@^fj5K&#c|zwLF$&>q3o!7Gw0`z zt>hr+|*c+?a7VwLEB&E)O^HePeeVxlZ&>=_=vc~CKvE&8#q_d z7g`i<{BQ!g;4LJI7hTk%BoHFJn(+n>{j79%xGeeP@YQTx$6^wIGNm^nhwmsmR~!7c z!cO)d{Una5lHwngP_E8yt!TkDG7HSmCAVWx#UMcf_n!=N^^dF{PVlfFb*cRE`fVL* zUEaOfyfSz)nUvgvtHya8r?yw>1f5WdvS-rMnZN;~1MD@r6?CbVOFY2$u z!;O&0JF&<|z-{phWFj6Emviy`4)}-Ix!(rLWxA_6u)FM|4*9v2gmFhE8;b~s&yh08 zqQg&rrt>_}b)2KX0_RpH)4-s~MHx31DmY^|EIF4?%|;Uu3Mn5;V^? z_P|~i6tp;2c*vpdZ=O8Ebl3)zZ2Z}VANfAx;^1m*7sOOSNM}XfPWXA#4zpF@1VPdM z%^`PetF~-4N~^2YrL#e8tY&WqG}}Sih8;e%J>9o>{E_(SyNtet`-5*1ov9HuxKcju z8<z`>3oga)ys6){kW-o2YVjr^0KsB9n5aO@XMlAIk?Ozcl{Zd zXybV^tJej5y8&GloK(RSa=b4;TpQz1w7=G;CYLNgBz)XYcR2<4uCe5|6TIyOZb3BX z>X~<*1dKbjL!CRpSs9R3`VE;5UNz>Mxcvm%2SLfJS-jsE>1{**k*M>%@@9Paovzs6 zx&4@FGil&>64}LmBgo5e?gV<3-mTye6eD?qeFl}$a(*W;Y}swf5gBy`aHxgt{Opne z&d)l*LPX5DIY(+}jlUvz_t?lVh%=-d>t`ltG4`at+NZ00v|R&I^G;z5&LG$hzX8%72mRGP#j zR+jofE?+FTDHGt(vDciH{GsaId;}e58)dQ2&}Q)6gtnY%-SD0_ZjE!Zw|y*e86 z6igSWyn;W2alqI$0PuJ97n#BrckBnt8?Rt{X@al!iss{Kwo`4QW7mvlvL@oVEAaCS zV3tHdZm!U>B4Q6xlcWxlAR@wTDft;FxEn$M-z1StZf6H|AcIK)YkyMmEbw%J5ZvtH zZn^+@mplXZm+yvz+0)Md(+07-)bs`%_<4w|WCxer0(>wSUCAowH#IIaAp`M+;0xfR z4ed{bx%4zg{V!MG#U4aH#1e%E@@9i=%9~A;^sD%KcXZ`le;7BAcl|*Q z=pSuI%OVG~qcN|a-7PLuKk8p(pVZBUD)A$2A0Qst5MGaUZhXORIL?Su_}lSLutM9J z&RIwMo$=CDRg{s<(LG!IJY*E0?9}5Nyo;7h4fTf2e?$2b{lsLbqP&Oz7CBf4`rv>C{%>QD10BEk*NYKLd|vH+-c zZVdyb2rG~`KeB*l{=)-=9Ss8r&-%&L`Sga3X&BDoMadG*aroW`o!m{;<_!SeN2&f{q)(paGqJ9tcmw z3co6soI93*vP9mkcEzvKVZd6f@b3In17o-!a&AQ#j3Zs`_i!U?@0TahU8aA|_AScM zbD%!E^ICT>ah(eaJ)2g1<>xSQ{m)f%EK;7l!E~>wE#fO4NMRG!R|%uI%4|u@o~uK*C9c2Q^!z0>%hS!h)e>9lGg=q{SeScUDaj+ z51s5W0B5M5<@&s;AejVjmRNrZM+diJeP9w7hQgZu(|&+{Rmmp{Pj^dW=nZ~|&)QbF zreDgZt8dyr7`z31rjMe)e^mib#B%-B^GfyE@E@1FSp_fwNBalrwJrU0EFTNtK>Zqa zlEfssP0v?dNZTBnAxTgcB#xLlCz9J0m|LnpSrUk;*2zzdX9LSju?}~JD|StwYju@` zLG0*08Zme#Q=ZIr#6ifM3yKjT_;eqOHol$mG+1M$ag|0&J>qoicRBSdvlG~6cFlY` ztZvJ#L^pDs>&ND}y_wV@xJE|>oc4qR?Xuomx;j%Yi^7`Z7QSBe5KBZp4uB+UVJF$6 z9Cqf9ul{_Fwb2b|l%QVAGaX_ml8=%QisTcQ(2yoGRDFPd%S4TcFW`smy8e=PR*kJe z+5(=@Skk@$4jm`N227`0 z_hZu*D=qGgdfF7pZ`!YUhYkP$AOJ~3K~xE0M$%l_z9ApZjqff$X{%duPVX^h&!sQD zaG=TR)?9wa^t*V`Gyl-E(YJ5n_&7xC!wUqu?aqkny0Hs-ZOjlOSiy&#t#Q zw-kR?Hv@;z4%Bxy*Ka<@m!7kYbc+BbSMRKh-G#in%0_;_iziJ#N2rC~TO8Zvdp6Gh zMj1&ow(;h!vH^G@1bri=f3yO5AUVW*3z0w@`4%^j?fNA1b!Tna{yI0;^Cqva2KLSu zW?$6?Uk#`D5V#dz-I{v%Vym>9%CK=cWE^Au8JG#M5fE+5XTj5e+UGc&&kh#BOW*8R z4*LK7U~VH|%7T|x;>Qg>gcI*)7eC@w1YDiKZ6|0e0|_=RO`R}SyAyCGx-Cvb=1Cwa z(hMdOyvCf#Ep!9RJ=9#~2Lr%g0{89Z={L?l)!!T6aBhh=1D2M%Xdu&3+~e}Pei>Bt z1F`pl!@x!u7?S!e+(M3?=_@cu`{&m$0psfvCIh55gh;R;lHg>)Lf{bH*5Tx}T^-Gy zpCkU!dA4agyxC*&I#ipbIOY9K8u|wv=_@{(!|D&n&sWYYAtCaQ#$4@6#w68fJ;b&A zhrvd7Xun0gH2wj+l$`0a#-IB5DqP!9viO@8wI|jeMjq_~&r`@IO)>k>Mt%#scmz*; z6p-T|(x!8ieKj$zaqtQ;N9POXGh$2OT<$^}dR|qlnD#+Kevmo~!1bfAe3&j3i*z$g zX673rj#k;ld>X-Za1u^o6M614TV*Cm^n9qbp>*AVaSeh9EpMI;OqOFD57E!Adu)yD zKSjUQvmPu{*AGO1u9J*6U{G6$uUv8^<9D_Dua(DTf^ni|5AM6|zz|~t&r6VRnrw(T zXz#0hrZ;uCTR$){fo=2{umk~4hU0=Iy*Xj0vztbczv5A13FsqF^atP@`GAk(fXO67 za{p*O)-T`^1!l9jal-i^68eE9WC-95tQ%H#JqVa2F!k{kiHs+y7pQjuWMo(Cp-yH$ z7Cg=#bGJM1sx=lbP;OG`1=Cclt_(h8P67h&^+K&i7;Dq{XE=HwFXoxn{ z%|K~Xb~0N}%5Ff{;h7XSuUL5+WIjmtn8msJ=4~J@^8weIOs8Y(L+wiqStheRtpLaA zM{C25-6;6WA#Vsi#QTnCvcRuQlJ@H>V7;-sja~;}*f#59ocM-~9URhwA&LABfBZrH z>-u2psU8h32iS-H4EP-OAGsl36x0D1qd#kXzkwid&id2QWiytI4bj)1yU835FX1O5 z<5n_9S4R@wQ5_rehW=o3#ljWZnY9H@bzCBBW6x!Vli`Al6RmW+oOi^UdK>b)h;P|_ ztJrYho9xnSa2+b^`h5Zw7<6g6s|5 z0&a{cz7{f=Vv3*kT=y?KbTI1$2g-v z)gE(cXOotT6i&iu5*NWuXEA&`0mMNzbh?}QZj!}TkPrnkg*zrXamo<%A5-zxC{wD~sAh~b#-yb&B1SSyeji6C+V+3$sU9k%3=T8LE-h|=cSYdMLfV68?vtL zrcI7>&#v3_+5z28KbX#D07&)N27>)+a4Fj*=%cDDf{X9V-c4lbvycTyy`ZsezchP? z%O0OF)JxaNP7qnhMeU)=ZuC?2fuV2OsGf<(fasd|QAR$?GFXJNWkl!^6pKzAX%sJXC!d?4ixsIM$EnO&~*DvVlne znZFqfxsoS_l1JG&1J2KQwk*0~!`bZOEU&qKYWd;%s`xvs*@U)Le~%z|ivCcu#uI`5 z=m1C84Lhi+Ps8+=^-FRtnk!&iyJUV$!`W>d`i7T<1NzG+s?Ln3o*TCQ%Ouo0o6|0- zcgYvHP#{m>WF9R2>=63~SGNy^tJ((Ejr0H7XS#oZO=AP>nkhlX%BaBni4I&-pAkMr zE#f_&SrDPVWgM`Oork^U2+NT)M-3UCg@zxB(!~9>CF^ISZ*1KSv4iL)b+y|F)W0JZ zGgaqWYQ{G1+e(uffi0x6*6QF{bgH6qUn8?K(VaDy%`3VmdLC2!^XriDA$vD|u-iV!&m(9X`m+v*P*y(> zgbxNvVPJ(0Cdn-hYx*J4r-87DPo7bHGCU`*bwnIz;~&tO^5I!L6nLkGRR; zzY$O5li5T$C2OiPd4|vQPF=c5MkPyh=mwpYdN-NkF9`r?H@Xo@R9;B-5DDg-4!Cx? zfNnU1o5>!_m(|=&@XVU^Phpekz9ml*QXbyIyE zz=E;>yz_VZq9g(*t8Hd{#$vzPqBmd0MkEim+-Bze#`^>EDW2vxdjp&z|Ey}nn;)ZK zFv4bSNxQQX@Cf_hWrxEe@^mgn^DuiTs`(knb$su*TDwD7eZ?2+&=(0;{7iWTHfU3B zC;P;CXM9580S_+2w@Kdch=k zahjG5osr0g?j$eqbGiDBt;f|blHTB;LsD?1J@2|l_T zdT5i>cY~gtV1g#y+_hhEsJN7h2`4TWqjfizrcgG&@8EB5_Adq~4(h)Wt=%kvbf)8#R!}@=~{5?2Z$yh&;7O?9Cm}UCHrDv zh<~4UVX^>CgARbpzA8rega3j+9~~AHe${;r_LXESabq(8G$K3pt{>L_-?IA>FVhfm zyFR;sAPWS_pfcdGjZ5S@i4lz;%ER=7C(f(3$(!G@Yd;JWDuO6q)d&C+h*CdWWb?+R zji7zU52@%20pPaScLr$*_J1ulyz_1EclxN}^VIg8w`v`X0>{M|L|`vS%)nib&lU&kC?hp(Lzdl?+;aTU*vY?RgvwsF=e&;@{vR-)U%^!+z=PX`y z!-g5eFWK~V4I+PWCw3*UE0_4ySMvc@Xz_G3P=uYB<1>fpA`WqJdasEi^m)-f>uC-eyTvR*-aPc*~ z?la&R9RVNV!++tbC4~OA>Fq?TC@dO}l0F2+G+U8_Mb?Q&Jg_kTVL`5e-IhI4pYE(X z5m03F8zAlkW?KNeePR0n+Gs{s?rj%qAR9G>)APSG*HEVr)oWB$j9*5eLa=aY5HI2> zMS)Dk?WTM~HkuaElGF;&++K%Rn}K2YHVz1qwHx=?1MOWxR~?&+s*hI|uu+EKhTe36 zNdZC9$o%XM`p=Dba2%I)s)H-!BjN)Yu;V_nU<79p_9>8`WdJ^v2R=0U1bw4NI`R+e z7wfx-O_U(`G&zC=E6l%|zwmm;M|i!c`Y>5V#B=N17$UNlq@wHfSZbcr_iR%kI%UF& z=D_$d+`~3Sw}Bx3l%cCA&P`p=S5nBK&48OxPj2j>_(a$E4@;p-%LZ1q!EfE5kplg) zQUxrH;HNAvC3|Q*GygYrT>wc6o!6bDi;qjLoKFdNvnFJAKYY96UOhMe?2qq`d{=f$ zE)r(J-wt>szf=EI_Nr5V2M~nKMyCE{Nv@kf(!`BugM@ZAX_Rd1hK-iZ29BwIz@NysZqmpe-0dU{Hpx16 z1Gyp~$&)gejmS=OW3BAbrp`DK+17&E>|+-zY>u}7$bMq041~IzHgL*du7MY-@9v_} z7Q57?I><3iT{>ib@+pxvr z4Qya>Q5XM_Y$q^eahn`ITHFpEUk(bxuZV5EJ2z-}9Yp}R{>cKhSavwsCxO^qoDF$s zGe3o!eG+tqn{w5T9J|3)6-Zir-%|N0vJu(Y2;MsOU<@e#t-x(JXiHYgPVnhI7WPAt zK93SVtl9|dTB6;6vL|28-EH&V8KgBfkN--!`|9tZ&qDQ#Pjg@1!rkr16P&w2BI>?u z%f-4nrn$w11Zau_Z(JC#}bBKnZ_|@LvTOnP`Q^pUH2bo-5cCv&3@0%mz~( zaAh{!TMkx6(!9It!aC6^cOoI2KQ|!ml-4VosO*vq6x?G}eH6L5 z%vge>uspXjsB)YbMidn4{R$e>1i{RXl7lhAH-yJAC&W{rpYqnki5a2Vid zyoCY1HxJ>GHg`+N#Mj&p)vf~#-LC<%N`5du4DmsW!f?q6XPcQZQSyoQui`XNNBal+ zDWIF&>_PESPQV7!kCHmX)~9xm&k!lcM&lD%+IO&Lf)m70^(JYw$ zr*0?Dn25v)C5WwL+}py!24c~3xkN7HCB!dGzJsrHjA*pEWxG<8m{DLw&099IvSr{K z%T53YvbVc{H)0?i2rbORIhPKTZw~ph%?*RMm-F^y(NU% z#d-`DkZS7wnd){uQ~NkGy&d-Zd8 z1URzRj5N9BPO#_nM#*<8;6wSH=@Bg{Zv}?bCJC%UoG;ljDD3!42Zh9j1MDP{kgteM z0BAPqGAOzc06L7PI9J_h$p?0+?elZC@ukTm0iLVoLDr~b9wmV^07HXgMN zE=nyETM5Q)(AEt+-N#0d)(u2mb>xRYcPBtKA`b$Rl;VRHlfe=*=ycH^?| z@Lk2>uFc|&-gn}-*dS;OyZ-d;-kb8@92l}oGR%i)ZKHuy;@p7^Iw(BkU`KE0J-=6= zcKx9D2^G+>2-78!cpINXKEx*}2mq-1wfVu>D1)Jh>GN~Z4I4**Ly{%#-x5OXu72TS zJ?m!#PUIb)SRL&Lmq2m#*Cc7UKRcjp&uWF$NCJsvW;@_(9z=Jz@lsrwA55^Me|ypX z0eW8j39Ip0(eOho) z-@q>AB_M|jlzz6L5Bm8trTR5E;vdN%zDVN_U#aS#{tGCm4|KYJZ?0vdHkUMfL%I8A zZkJ;uuh)d#S4%?HQ2lSA@1A>H7c)gIKg>UzC)to0?)ZnxZ3VMuGF|nukkQHP?8rZn z?Z`D`=#-K1WF#Af^t;KpB*5j=AD(J+yc7A?+!W$Cw zhRXt(L$+@MF~JDPjsV9c8z7G6GXO^g6szCC%^vKEHW9Hmdo*v-a5`dTvLp?&2{IfJ z8?bfoBN<(Xw?UAAZplY}*1V<+_=e5{EPC9qukg@~VdVwq1sg9R@|biH;Ft#q{R1{e zgr)mQenDVC8{s9WcDiC30C!$*p`h> zsRD&J%bmV8^x9qcreqJ1&2eicdx)HU+fDYs08;`VWjAij_Rb9V=)TIC&-N7_vDd*p;;qL{P`Q)u2<7D`d zH+b}(_^&$40pAE7mYCABBJ)KUkYe9`pZK5VZ4jGO(MA|eK(-M?3vHUTaUUn=j#wLb z=3~4853CFAqHbf8Yxl|Xauc7*Fnoqx<8zs>AG~DOM#NFoWqtr2yzJOiZ8XLRbV7dx zwyHi+h}|IUfvq<-%a-_)2xLQd+swZu!27PUv-95-)6dwQHRuUQSPQaV+9M~?x zPd6+D7OY}G2!W*NtKfEnIwR7RMJM02Sp_H~X+x|4&-}=PjWi=S3+6Je?#E}?_G1yC zt&i1sN4kTwcJMcBbTC|V66l4CJ^RS|2cNcrr^tSyw-pFQoOUpz5lA+$w*1lnx~2YN zkoH=C{_@g|)4t1nnf<#qH{Y(kj?oO<9^2aq5O>}lcKN?0xBK>v$i)F!5P0n-dWeX- z@dNPFM3OA%)o%w)`vEtBECKa--n6mm$JLqg%-v9q8{*FHt&i9l7NAWBGMpLd0w4U% z$R(cW5k3I#!ne0+i1NwYz?B_?i*`kLl7_}rw!#DroM7{iuO2_mdHS00(S`b5_e+EY z1Mces^a=Kl-1rgOVE)kF_G5o6M$rcC5LR)cri22uzhk#u4+otv*>fm#P zw$WCwYDDRB>6`KF*Hw^bt0`TTHK)K14b~YJ7LMbFE##iVS$J)6(dtrF=S z_Wwq#V@uDC*&j0BGyOFWqvwFx)bhhNMY3hm&=8S-=-S#EDh9tB_-08dJNWEzB(ii$ zbugQDc|ga4HHPEgl(C?0U|_XW^gg5s4d4lLBfQDOubTt7nSiheB=z2t-vqJ(6ms(i z-3aG~3;`P5taX5+^{1m5&a7iMlW6%U*+A*L;3`W#(e0vqf}8c7n>z583gAK$G^$%d z$av785Bxkx9qkv4mk8j)xEa6cy37XZYyTt|X552$If8m8FCs262l}n$UE)WgGcr7E zoByC+#mXQjdM=c41DRHWNrokEu`K1QUB)~c8+u_Wa2)Jr&_r$ADZ!@vsNCtx9UV#N ze`B)8R^Yvn>@npBv6EsGImhdbWRE17W7`iMoo|+XORj@+`!O5jM+P=XHQSFXnW(NR z9EaZo;x-Sx3F#jO{DbubV>L(k`ZL>j5_$cvvk~=8jE+lyaG0b&Az$6+q%VWjBiC8O z{DU^xc(DyG;^eVM(nc{{pBT3SC;YpOT?{^N{kgn|@2*|)Is4m_A$G-ujb+7&*(qc) zoYDsyxS=ZdL2W7WPg&W={5GARD4V>#u^VPxVP)$L*w_zKv$vaD^HKt?qwhcZ)@s)- zt|NEsJdkh74kkMS7X~kAW4r!s9mgSWax+_wuYYSg)SJ{enMB#uGUZpqF}M8dVZc#8 zezG9L5@Q=XS%%wx+<8Zqk#1r|w&#))K3MF5&1^P#R=C;uxr}StE~yWEV6?$E#Ey6| z{Vd4Ak4doNRH7B96Y${2XmiL`%w78xhk{EB|0O$2t|{IL-O4%BE^SiZi~rY@ogKef zLRGyk?&15D>@fdiroO~RMhvh(c4tcL24R_QM{fnXM=kI0N6Dwbq26VxEMjb(_x$Sj;zS-fG!J0;$ZI$n;lH1b8^$|+W{Aw zZ8ewpdcVN-RzD+Mrq6xC;jj;zJZF73;OSt6B5wwb4P4z`ZU$8lnaf0@&@*u-XzKLo zEn7P<|FrelytX=stbJwo-r20>cB&yq&c-ZsfQZ z&@nq_oxwQ31|B&Q^M>%N4@~c@OA|f1oW#5x{IYoooPP$!8Z(Fb@obk##28CMjzh`9 zStWPV$Rs*tXT7pB;Ec$ju=Ure>bJ403)7*1KS)28J>-}1S2pl$+)C0A(f+YX8mem( zH+)zI_(k=7{dTK)UI0Vm8a{f$dA)^g_<}E&UF4MEtNzMif0H&gW^Lq8*8f?J^G_5P z|3LcrDv4i|`~mfjKj@g>*d*{7%Byyo^r1PEmCN}|+tCSHgvY@81Pgt!#3S2*yjuiO zN69&LhS$Ieckc@C9hF~QTEX0o-(mb){?bARJVzY>y?zvW=25NhK7-n*hWqCjnCY*#x8hmdY;Pd5QlMtc7G)82LP|I%RF#6bE zwm(@cok()nO1tk*Vyg-`>Ai~bQTwXGHIQG%A9eKKQq-TLKCsD;JaH@tPjl-8`u)Ul2{H;NOp?)jMPffOP8q(o@uA#6 z`egc^+~BeLPwMGBNpQk>$mWl(&ulaM8HckC9@;Qr!_CPT26(NwmT{G}7JyI=cAR;n$U z;Jm{dKND=GciH5({CLxTXy#=6$j|t7!6*GIOg+&{b=JLgk}rZioL`+UZqQmL>r@4d z{9~`r$2~|-y84l9L%91#fRw9=GXKUN!3X#~qI_AOpjY|NI^dIQ3)Aw)4p;3P{U52Hl;`Ru@SHzfhPp`^ z_;ki!o{O7B-dL)=lpmQdg}e;Rsr}aSmF>!Y6I1#UvGwh*#zZ2Qm52JDu(C4trK!_O zS^GT2`HtFKDeQW@nZD)o*XusyPnS;BmUBcionFV1-dhL)tK%+n6n zWBd<^aT{{4(0b}aZN zd-5XaYQZVrBPQ&^?~&d3<@vp8p-%7~_&-kaa#3pf=(^)+y%JwK6I=_sx41tG#yAn2 z+E$Q#LVCIrfA(TW@FH86?T#0wmXC<}MEg%cBlY0Jyn6Z2+$B!fn*>4iV6stpUZjf+( z@I(rgzm<&+!JVp%3Fq2z2HwL%TiPW;82nKr@|Aw%E=WeivPI|Zs9sG#h8IfgDBlu- z*(Rh{ImriqQamnHH;nKxz@7-#fy_z0jxSy8AxgXWR`+92`;;tZ_MY0j@}Cl@WSr+? zyyFLoJS2dh*pm0_6Man0MLRn(Ar&4npGV^VhX~+*Dm@tjWpg$OT5JA(kUr(SpXfg% zZjJ|0K}`;c%y!9PCHv0KT_#)YWR-s9Bq!R5q%Z`Om{~lR@3!V{L#G`=Gt1963jYdh z|C*VOKeaFVOCUDPodLw42t3CYf)fTABy#4M?zkS|V#C07*y3bc3lse0gYq&6WKx+q z-(!UA`cbumkq)*g_)d%E4$_eCEW$bwk&|CO;X0ddr?71uegIUQL}Ne(>MDF5Q|S9D zr-8cLaj0t62jl73_a3yYt7k4Zb>A#20^A%Q^{v_zYG0 zI6H6-Uk?BPAOJ~3K~(!|IdpK6(gNY*DRtzh_^Hk`Rak1ApKK@Psan-8-SjO|`H3$l zl68{LZ1cT+GJCl9JhiCUg3uh3A6=^Vsb?|0z9D&s`0%E^RF)H3y%b z_@7NZm0U>-llf8NsP@Q6;aWctDiWm`NE?l}0a%P5NEqs=Ia&1!`vhyrT>X4`zkM;G zL*o*BIe!VnrlmmN26z(FytpW5IlvPLdA-%_MQE1v|5otr+DhArcVA8Ga<`X}upFw3q4M zKmb1_vZ}2a_uaNVV937Zxh+W_RXb7Mu_nXn@gagi9{cl;<-sXQkjR_7SkGM#al5uh zdU43sWHtSafV;nX5UUY8OEvp zJSk)gL)L%(BDPPIiPu?sDLwL~oamAX<#f)rDw0Gl2%OUqCoBIJ{yW6#sm>E$e>;(p zch;IF^sgwU{!aPxk?jmS?535DJX_Q8K2QI4X>`)lzs(x*E{pyilTG~OZ?B_$u|qXb zF=?~lw2)IiNt|TI&ds;40(?w-d_>InRUJYZ;oy#-oTH--{w)x`K$7h+&IylzlSQvb zE_`|Z;$=;cdbWgowFtY&+=hIK)sxqD2s6F;i$2&{PuoZP^7mf^UCxw^dN+J@mxaBA zROMXj;Jdu67LwB}o)NnSwwc96^G%}F-Z^W^rN!?u459Z0vNgr8|8wbGvgA_hyDhzx zzQgk1f)qO4AEYx29cd$(Bc8M=-m9tUVewvNk&zT+@`XxKa2^L&G zC5RW+;Ic;~tRjcrwxfHkdeFt&r0GBsvnb`tmySP=eCpzp+*{TK5A1>r|vgd2!pwIC;ta^*srVIHvM?n|yarOatX2HS6u&%Z?gKV=)gm%JBhynnh2 zy5{V6b_*K>DkwI0O0%e6g{j)0rAq7KiK9N*4Sbs%YFSAP&3q8TQ`@KAJ0>}u+hkDT z@!PuO|0Zo*AN7a9A&{inedPJ?_(~VizExdAwO<(b-vGBCKl?1voaWDxUDs~$_~-I< z0W3?afd)A^=3k(JLrp>r>U&4?VIRl>f)9}{dJ?Cz33R9vhMp-A{%CZ3=> zXY`&Bh|9*;lk)SMb{>++ZMwranq#^cGwTj^N-MfHv!O|we2L;jOFpy>`60&-`e5Xrn5ajR|JD~g)QpkH2fLQkX+RTn7EX3SkvX-6Ob^?>+yyDi9Nw!dMs0aS|cdMXq;Prg3R z`wg8>G4AW1yP=}c-97@q=^(*Mh*fn^e<*oxcL#0Ao8x3REA!~L$f*uVT?Wa^x|2W0 z;1BWDjD}9|EvdJ@DOCMbzmT0UUW8mVrjq`B_SF#hH}!||yFnyQ_AvR)@WaYUS;{x` z-9nP#Czw)vQqgI*q$5|!ywfIK>~HI2?f>ocA!v6I{@C;zeoEhFd3mxgcbp{NEX8(G z1S<7O6tID(e~UbomlcA{&fii`{th|(jXQ*#4x-3#)Q(%?Q+QV&=x-aiVUfvPKf)8k z0>AM8?Z?Ah?qFbdPmZw*V+eUOk9V?WDW=cRWj3EI>hBPucgYR!CVo5p3g~|(JsLlsu*Jl1I!83zkvrd%LeaV} zdv%#%p-fyjdBO{KqObL8o322IH)!d0pvq24d@2Zxa^M9 zfAUE_7Dl^VJ}upalXb=k=l18`)l~ME4*2id04D~rBMFkg$3YWFwgc@8Y5 z!V+KEK%#+4CDx~(X=9Rv>pbKggFyg`@vA_TcZi#)b38AIYb_X(AHxv7gfE0}-R^q* z?DKdN&(N7CI4(G00saGwn9kxkM_;(Z4GbbZpL}WL!Wj~0sjC+ykHmi>Zi?uwwqoMu zf;8@lXzVu0h+}eQa9@fugA;IqA5dBO!sM&&*cPbh>IXi$Hd}sSJ#oA&e5^0_ANG;( z&n#`vyAITrZh|}AtyTVndWzX+(78BwLsOZnBN8G{7;jQHjkoG=@$5X_x-UgQMCw3wLJUUhnwec4c9(gK_E;(uDm@t z{BtYrGR$APhu{!*V}9#PBNYx0XqrqiyQb_aqCxWM7dlp54qqCP!6zuE+D7>4>dUxB zb;tCN7n5JuP+!+j!5H1IcvvnwXw0zfEv^0~n;h?-} zdD#w`|7hcu8`590=khcA%0KplbrYR{OLBwr#Wl29FCc~S)x@v-&tx+@lod!&GD(Hq zph^FB@aQ-H<+y((ws*DcR(fzwk?zk291BaaM zkB-*+2gk}}KXGG4__y^e>W2PiM*-)puY}AC=9QseCBt~=C)bU96px1ei=eYbSdoOM zFGiLaCs~J_5Sc!XS9>5&{-3|3aUfS;c@eZCLj`V1^tf+cc_ORfQ{r1U+&;CjNK=!5 zq>uZ$go=bDXQ>vm2jt~3`LUvYO^k%BKE`}^;clz_Hu?HLNbb@!<s5yx^s{Y@;9^W^tiT?F+e+{RiajE99{9C;Xu-1SByWQDM!~!Lbv;K~W}M0xH2! ze@~prQh{F)y9dOrJ};>1i@32objOikTJB>KGy((=9l&cG7_aM1%hU^yZJ2*Vix>ms zQTE0et4zL>xQ}Bcj+rKtQGNt0Y}Ius{A6g?#@NGL7o++RSqnar-88s@$s^WnWwZY@ z;Z{Bgd|x+i3r?D7y)yaco=}E(kUx`rmY*?yN*y!*g#a~!u>HyhEa$qb#c}H2vYwfL zR3=GQwW<`dGm}xB+Fco|)iT35=suSDZ%y4kNJOP-whDFJIp~ILK}@iyg~19l*Z&IH zBcH2Vjk6PcS=A^0XH(2mES%S!&L^ah=D~z0nKc3{PWT-{2=?ka5s73>8BJ`2hkWBz zuy+PsnfZ3XdZj@lw|{pK2nKJ!d9~pjg#{hI9Kr!0jk9|`FoMp2g&+hBKoDmDALA^s zyHUn&u*Cn#b_ZasiG$AKg@Lnl0AEG1y87@SR^$+IcZ`- z>egf=O2+kd!774TzAqAD$BW~ht4@Bdxo&E)Vdl^1omf~#;1uCtTUC&fu$>LR#w|8T zu8Y@`8z#>H%HR@}mk_8xY!p#~c6Rsra5nI<@$EM2;vAp(6^WQ@bou&~oN(Q11Yk_| z9|>HX_Xq9fxkuuY^IY{xY$p`mN-S3UIsOKsG27 zY2SEAHrPJr|1m#-FW;E3T=|>G2%_X>PbON*pPAGvA&ZhoW@Jo}N%S!zYKd)^im!dh zsAVA+aA^UPkD@C-x^`IPZw7sI?EdZajk<8^e1eV_wk{^k+nqGO6zpLp{5=JGknOa- z1x~AtC|D$n@xsR^e*=6|wu^;?%1udGop{bOvA!$aBrjxlbUWj$z)96lxKHgqZI_e$ zeeHrk@*oD451=79!8cG03P~JenVS=d z-6IKoAa522bnroxlTNHp;z!6n`ARaGKa$LJNFM35CSFhSrugMApOTM^{4~i^7f;r? zqi03kni!3RzJ=RVd5f%d7vYc7{~QisgGP1g#mv>=(j6pG=9{WnKl9arBAh0fh~JI9L|qc z;D{uoY^$hKB5!jCfmrN_)%hxj;(8qFchXoE@WNoaF<$wKcwlD_OCQhf-AnSnB$JGV zzO!AYEZf1!OWR;C3(}CmCs=ngS^rQcvKt;Z6OJT$*`hzaor!r|UxOP0fj~ArqsM+I z46^0yv0vbue6exj;}kYBomrGgKQLd-C<&PjGq}PKGAYTTNuwmuLu4OFcVg#AmQ#^x z5r2~;|5vAnY^KAJ3k~x=`D4X8*q;7mXSlD zMd;u{9iJJ+J&tRq!$LBHPU4(I>rj`t*_)qgN_k3X}o0Ow~skM1KV~I-ZCN1?d^JPA^KO{!HNhW$r$Di zGdq$8axM_V58&5UHRVsUebz7BIMc!n4Y`Bp+_vB{#kNfc!x0piBi*OvIzI z5b&|^lX|%#vKl(ei2 zQQr(N1On7JVQR9ARPat;I-J(}OoCaUg7cGcRUXadfw(boTFxVFe3uB#n;?S z>u3n{KwfZNyZLzeA@H#AJD+yLGV0g$rIE?&)tvV8A|#6VBtaD6D-W1YL@Zzsz7c+q zT@90bQ6zj_ql1Hu!#}Gpf$&!;)LmB9m+Qg!YI4lJnz3%I!N=z5ZEcXNaWM#TFRHCkNh`F>QLyVK{7>9M<8n1Y@ZM;HH(*l zABpT#vPxe0aOxZPQ2=b)Nc9`oXWP9zx!U4~u@VF4aLrBySE{ z+>DcdOba)w49J*inftbFz|U}0nX;q&J^7l*2Lj9qWvdA-!))Nn33$>~HhE5Auf~$H zr?zinqfbxuo|HFr-hp{f>F=kfoH6a=chfxkkeVudaF}YI$`IEd+O@gSw%xNEbiOH% zvYA}K<3He=cEeg0?_>4%Q-;5rd97S>$=bKefg}zD9>T_L{0_39@;&b| z=E&>(>7(KBGH4Jk9`#~9URTp>z>A=L-zV&o$&n;Ktd9@nTKsBNbR zPYL1^`FCa8#PD};m=un1Hg5fo=fo?I*W&PqS?RKW+@E3`xVkbCTi_Xivg`eOH&FXi zZH*T)YeLH7bmmx&+@5h(AN`Cp_+eca1aNmSV-O?V9qo1ZmnfcmQAFU_S8yOT?bct? zzz#_W;KtpSwmg6bwxck>G?f29iRUjBzioRbum90QSTIAqR?%aTj- zS^n{tLlhSJX-OTB*il)KkGk3?mPz`w94D+(&H6&N8ZV!&W}#iWSRK8t%zq$#-L1}Q z|3DoxpT2H|$Jep@hPC`!R8tV+^STnhk!G>4i8yUJVSn2gN!j&3{=h;RNz8b-KKtqfc{B67c`(N> ztTJGvkE723&T0Nd&x!<2dj%ORK)`Up7K*km)URKRUr1<&RNg*d34oc?;kD zH8jCLtka*D+(ccwF?L&=>H+zo9mv=1kH87-qR#+2Qs*MraG?=C?0@j=qxo{DyKHc| zS^iiXe0Rf3`DwSTl3REqlSMz24~3ptoVZUITl}5#fc-R;{dAT8%*uv;+x0F>P>b2g zXfn34M~cz~zUK?weV^gnx9-VIp&BR4WakX$pMrR-i%4W%|KPkHk<(z5YD~FxDwApA zNjbouR2T;1@b|eRWQd{KLD`9L@dF{GO35#9;WZN|^Xr#ASaX?Pe1Dx<$7m%CF2P0h- zh(UHymdIC>t^8EJQod`ub)y`<1R}{4_lwdqs82@1ME{4j#6$}v{>u}4u;mO0xl49t zvPxdzD?N*o?h&KFN_}}ZG12`Zw3+<^qol;`r|cCz$ofA0I*0OQ9Qu99^PDcyzAtz_ z&+J#h9w(eXh2JU&M%g%|aGxdiy0{&=AfxWngYv8dc^-Nro$$MPyGgTqp_&Jke09xv z9r-T)39Bm`%k~*S-%v=xvU~yt+5F|pr~CmTmFyr9s#xgsOg`2#zQ{W1=xsxhR3X3Z z2wxrPq2IEMZ$!LM<@|+=t560tFmdVF7jmbsc%1Z89|^9X?rPO zENT1dn)ObzY&D+Vu$z^q?Ud_k={Hu5$B!mUurFf$1#3q>rsjw@U=&EEByBZnI)q%Q zcJQYp5UBUWrm&Of>@49|+TQ%PYRCS&avdD!5C75m4hD&fG6%_TznDuxG$J>6x@!h< zjw4K8$K%&DE@nC5_bz|qh0LzZ%s;6^9t66|udJVo$HG5*x2_~jOj`VP9=K6pw8-8; zHu&-c2mG$&(=xW*kPn2WB6@HwiJmSGWTqlACo=HmppjHIUC6UVtkX`4*s=P-Zp${6 zrN!_1k|-R-8+c9fHjAtGO#dd?I$-}@o~I4BSl2=5t$Hk_5pvGv)nfdFK&n5Cl@qjB zNxw*@(-uwg_8oa#)CGiEN;;9dlM5ts((|dr$uP7lkrXl!?~*q5aa@pho_Z>s`d<;k z@X~4286bBFJbpAR`q>dh+k{ZRPmr*j|CZES$s=)HYXtHU?f;K^xo{v;oX>$9qmU)< z)uY}JXo465pI`W#;-F2;<;H$$m(v{iew1vN! z{aMMq?%J#@Ti9FjE;UxnndG!{d?25GY2+B_F*J^AmzUi29>9OhZ#BLeYOMU-85D5AX8_&TK(Ij;27L)coyBus z8o|Y%zt&;Gmo>Qzz#*cy123>O2Ki3)3IiisoH1`&`nb*!kL&DS=o}z9VN07{vK+pa zfnUj3^;1C|S03DWF8Bk3BZAKcehu(>)py)}xtoq`Y&(-M?5aO}!9%ve!d(Ag00}lK zx5-k_cDIhSjd)l-ybs$C#H2C7Z?E4)`V8PEbK#(SoJ8-G$PShRS!edR!gw2QLd;S! znJPS&J|uW4`S~VyML;a|R$ff%^hDF4vUB;U2uDi--h`7^@--&eW(Y#iIcI-{Q^ ze4#d#gc9X4f_9qy8(;g7V^=Jea^)!W+=P{-Q>3Qy}Wqtn7{g{+M)E6fPU2k!^sk1L#xQ2zY556eU|4K-W zqZ@Jf%k=zSGGHCSV$xx*JiK$y5efP?5I4XLH@@;y5j)OS6Hi76Re44#@8A943xOru zhvd6o4w3Cv{Fd#nt`S>L8u~FdW_4^Na_M}R)$btRSyW1&p6V;nr>pNH@PBVg*Nis_ zLKiEudm;}ijYO_7PRqY3W?ppCNfYZ-@?F_4%1t5H{~`x&d_dmmF>&Hc_#0oA3H&z$ zJ>uhGws~Q+eHj*?vKjb6JRrzG0m1If;swr&!%X)?ZGnw8&h4kbk+Rc%Mj%5*Mh|3f z{}cr3h{3iP*XxZEw~tf%mk~FkeDOP5=wYz+f;1XLBb$KB#qxyfeU&(m@I`%hd10r! zxSWDVS~e@Yl}>JdW>-(~vHZBc9t1ujQB@nfhw(ky^-TiwNopF+=BN+hJ<^o9J!M+K z9|%Xiyd z7b(ds2;ugHF^j&DkA`^wjeC4{gGO*Xm49p=8WQ3iR`IIb-Ctq2i!U`CQgl()G%JuG*Rf;5;k zVEbPfe1jNZxcVsEVfv9XV+%cjFL$wAea-8;IwO|wC)6LW7gmxl+ZprOF8C?GZ=Bf& zy?~YZl9hX#da@Pyst#${B%e9)=vAvkp)18Rj0&rxcPjsvrIx!-7|Eej5>6gdClA!P zmV$R?>lHo8V(fg%#(QF0ntjCECh41mkLBLLQuTctRPvOZR%Zq$DOIoG zY3&XY?nQ!DPnSEQxPFGS?1_(RXVA6Jw6}NY92NwOWRb&*2nN3jn{MrRVZ2@g6TbX0 zEf2adB3{b@#8{4HXZIGyxO`LOZI~OuxbqkW3i=^%pn(Ai1MrXxOzO0yH}CQ=$zEUD*zF;7oIgy`a({Nzaf!dgxxRpp?KssLy=4RP zCg@`RpnOLvRlU$>Z+C9LK^G?pL%r3GG^0pT4Z3*KE}1YUgv|bj+Ww(4)|c^N4wX!Svv8cB*~r*s!_q%goUiMA zUh06kbADy82j1UouQ=xkb4Iw`K`-38K~}hQl5_V2-=kN){2~YAP+KdxJzd0h)IiBIHgVPwV#q=Gci?!sh$G5AAGUaSMSM;(I+L)fnT**95+zc7mW zZW|(h*V`apeO=^|ok_mKzHkEBWV_36(`98n3QR0d38nCtWo9Ll*hATw$vz-^Ax)uv zVqZ^*-WzQ04bJ%QN}XVjX1mCKXF}KUht>g!ujDH`mt5-$F~a9|KT|+STaV|vt zdo1(t=6HNBDTQv{Q=O;R-^SxPAJac1pWHvk>vzjCzkL3W`|C~xZ!p8%`RvG&zvaKPrsjib6$)nR5zvGw#I*^-^4JJeoiTOz&YAYbXugO z=S#Vkwa!nSNZbS2C-{$`{*C1AU7z0AiF_xu-Gc?Ao1FO61ugr+c1gUnpZEGKWSCp1 z6zVf-|5I|C$xgh;rv!m3`R`N0_jMUXlmuxrA6OCJyI0sR%b2(+pBGu7f|QIYTUbv) zFlm^KS;=#mnR`N5es&Id3lgv;gLsjgIU)!+o(Ni$-B1&Jf_$*&zXYP#sLWrDf-?A( z5Q79V>QQfa{~%&0vPakZ#$Ug0e|!TV{&bDtc8CIgl+W$5uR`9{0rFD9ME>KT?UQwSFQ*8%6fq1d@+*Y z@x%30x~Ey6WR>_yr1?szLVJEKkx2jVNbftc%h#OWqxLJ%L9@{wQ zySm`m;`Iix09d|=S=9^Il4K04>0HV$PBTsK&{%WX8>^k5AzrU&jNxD${iO)BqFOp_@%?^>l(xS7ckbBB~~ZU`LYnaaFy*w zu9C;cM{8%jVN1w z4Fd4xImSwrSBlPyqz_51mKnZO{tKyVN7bW23Qs&&CY!0zBEDI0wG2)1VRA&R8EJaPkqg-8kDcuJhF9r(MSF)64E+ zW%+ApxE)>?KmHBZ>-Pd#f{M6-1Ng6F^^B1bMzxS*1^8b~7!1G*KTkXyT!D6xL=wS~ zyL=+p1Bp`zL_ynxzw3eiWc8V%9C3x8nJ~%f@{tI0Ta*lC6XFUHr^9)^B3S^llXJyY_x7ed%i* zoix!N&&6L%vI{z2>JYMNcdmLAn60mapnPBSk^HaAJ#l>Y^q;mxsmtq9X5eJ>Y5B=U zr;?R?b^YmJO6GbOEW%~g^+~p;^LhjvbT8s|u}t@s5ckM-cooji0yps5{b8dP&nlnF zCg)Z-lkycQpt8)aE6+%PkTcWG3^gHIOd44_+yw;L!M zj}MFlAJrTt%2nMecUZoF$z)~XzZ>7g3tyaMHCbP`c%FT!{E%e|pLf+>dH&2G+f_Pf zlXt9?KVs*LF}cCY9l4peNA^BJ=kL7R==kcG%r0=Rk6-L;S6~agmzOa%%-r_iMbKCU zAZLncs{9ZYj6ZpYLy)BX^OO(2_dmR_CJT19;Fj{a-RD?Bz9f2#*Y%_0r}9PnQ`a#g zQHgG9Bau!0gnZ$z*2wHuwk!Lh{K?`cMLV)hyte=3OwoTISPL zf#1`GimVAiKGHRvF9{!uMdjzL>=`gN)0B=#}S#EI_#;uvuGVpK419 zDcQ+_MxHq+vM+VG!H&TTiCtqXthSebvG9cj_`Aap z4}DlVY9Z${deicHQ9IbA!F1zJS3g&&`#%|sLB7kVB#_163mWY6=qK7+Z5wgCyxDzo z@Jp-hE;lGw2dT}>2NqE|h z$zqMx&81Ut=GOd6($LZ zUr4N+j3R~feml2bEnUJYh+7PD00-ar;>VOjq3*WDR%VaS3<6cVIR!+%6~-x8-B9wy567|ydfHqQ`qqk zzr!vWFRVo9T+qh)jW~b4ghO}VH1iAE!EU&FVS%r{&@suMfPpunB0)(|hl-3|I3c1L z{Fm*)?W=qMSs8f?vRTA1k1J`*yu7?b%%j_<+lJ=xW}^Zl1VHqpcDAr;MxZdx3q z-TdkDH$#;q5@o3@3u<^9$0(oba`L~bFK46A#}_iI`k;^84ytVV$+#VVd-xswsbtf3 zWOAs7KuQNlrVJauH=gH zw(UZ%^d;BVrn*aL)}HU;vG_y1PwjrB_NlMGVe5?@vQIYiK5c@o?WcAM0u`Y&iAi0n zeEAkRL{iit-3s5Wvk_;qjJ-n&g+JLBCtTy-GT|v@S_f6eL`L~UfH&> z_l{HgWemW_GDkR}OyPtV1EcH%9Ouuzg|3Sy{zKYCg32cg;f<_j0@W^NE;z%@I@}*@ zYf^z~b10X=7|G2OY^-{j&R0H%$t;<@C29f@7g|LcX3-pF_Nb=P^Gf_RHxiE z%t%N=h%!IaQg9-LDN#D(=lU=F^334dpK3GTKAosrn+d^uV`ngXA#+Bmc3qn|$6Z0~ ze;zdqjk3=TLYtn5=dg%l)AF-{ln*p?!WYl8`XkU$jiks(;@I|q050IUJxrm|HY}Z>QkN^D@9rpe84W| zYEIiGzTBVSx~VexDGB986jde*-ecLDtw7evb2VtIB~5NBta+jG@P`Kj7jVQ2jt z$+E8tOaQWe>r(j4bqSHsiA^^?8akn$GCe3SgFsjx%4KA6VMnbH=@&P$755-77vWCC z?rDXu0x$SJd4l^NP8Dg9NwvdBe!q)7ERN|Xx)0Lh`hS9>=I7tCh4PhxB7g4~IYU3j zeai)i~A@25xd`~>qbtOB! znh{Q#FEBEnsd{<92KzHD*xmJFzu0y|-n9jmX6=u9jF+_!*TY=hqIKmj*Du5Ya~zaG?axNZe=ocgkodyt>jp@Y?w3H|#dy{q?sDJ6A0&EIL$JZQ7Z#?z+% z6zg66Oi$e|OQq0>;PbdU7s1ticGwkkDv4d3eneStlQyGV!7H=4 zF0cF_N21iC5y*)m7lnQ%yZ>n}@)=2xi_ioUPjEi9>usOfVWLb6ujz9l6FEjfSTdU_ zzLKl#2>Byvnf}*P()7;4`fj9a+qXpSDE?p-Psi4i^icm(bKe7LrZ4PBmJsTmdB-L# z5^cgWYkLFbTt>ee+P*x|lguI#ne~ea$W``;7-lc^OCJ}jd5lR{WtRzvs2ACB=LSo{ zN%q^1hrx{t;3k9x$t(zF>PP33X&dWwMlj01|EV@>V&J_^M9a*O$i03+zHI-6LHX&~ z!0XAtxExLiDOBuwB>ZzP4p@noa2~uN46O;K9gMO5!G`60!VfQAUJZo)f-aq*yK%^# zyL@VwQ(K2mYWBW=?Oy|NQ{sdab!~n*mAtH2%|CKC z8xIG6AZmW0CE4odpi@J_fJ(`{gL$!sT4Yoh+&4^m6b0^_I6uXfr!8*t>q4% zh+Dezwt?6uB2a5SmNqRXCL1#&IM?rVXANzj&))X$eyWYz!p;~=))B!wzxPFvj7Xxd zib#SU*Tb!oFS-2)*adIk3zNtCz1n92Af2~Lf(Y`!4M7;)S1|y8+q*07gEr`VnG9H2 zIMd+&tQM9GB+-<2*(1HD_>T@NXk+|cL*Ta*;!D>fPa!Rdcog9 zHi)WvvdY8N)j|9z#46nXbn5yRD>hu;KB*%w9*Ez;!FyZi1y|QSN{h5KH|_O-fXWYb zHaW8`;J4sRPb*}gGh zK%dy3YyE+FF@3Cwm>A?>cCTf_ggno?^R^v!;+C%}=%Q=aVZbCV4w3X9qI{9gJM&<6e&?N)6$OQ8l3uU$_tPIxEz zr)~5E>m9rA;&(B!^lslhOFwgy90Z)O0Fm=5p93G{xjB`;2CTC0W&2+Vd1CVkjyd^x z@_*|H+dc~e}ofuNGbox8AG=dr}Dur>?BT`mY)rT zPIFHlscrV|Ao_XvC*K)3t0-VINd~e-OD*Ev0E#rwMCeLlrEzM4(ZiWo_SCMs6m0>1 zg(;#UIkFELeq!E zeJlOK4rG8-dy){MFI?Z(wSP36_0e*O2vJ6=us&^KWsV5G z{9#%0A0OYY{8O|qt}RT&jPoyyM`r^?ebpmr<>!_gmnpJ4#)<-74zpwHTIHi-^X`a1 zvM?Vz`gQGh(pYxo<8?(+6b_0I4xPE1Y(v%w?N;*KaiYGV-N}fw&wT@VJgLio9B2?3 z021;1#HVIA<&O#Z0d3ci4}Y<%I$L2|)GHe^++V9~*PZ26JD`p(k0egW&8$q-Gm}MM zl%GQOh^JCTHq?D{N?p5OPHK@3N%;2IT{S)rW>-NgB7Gs_VkZSIDK+j7{+!(C49$1t z-zITM`=wt45&7?uLI)#=RUizcZ|k3gxS5d*m*4oz(_7KRS+uNSIj^<$d}lC_D#uza zw$lNJqJ6`zVCW~2|Co3(!MpNZ-OfaE?+At+y-PoRWsJo(SvIgAud*u&ID2vNyn$E# z-hxzT0GDxWwEH~XeL#HK!r%x4jAd)LwmC8ywu!0X9dQN!UBCwTi8j%n^2;7rPp}7A z6Wc)%z3^2J9^9t@4fgZO8|pk7oqrp5-fe>Wne2w(6{th-2kZ|uuE^fXA0l7bmF+-S z&QEM#Y?pPd+TVQs1YN-1V`+$TH?~}cmm4g1$@1c1N)B+3LKg}zJ$$s6oP7xO=n zp7^8cEdCH^LDIeC#`p;U=Nw^QxwglCMsD!ub z3u%yJA_4jCo`(D(@>5di^YQWVkim4y9+L~IL^$*hcA4yj`PIalxi0TPxJAUpoGO`)`0Xx#} z6n4=Tw*%KtwI}OTevmCm)SloQ*--k}ciA`q`ync~ke>xk8Z^=fGRa7!w4;2^bU{W2 z&XCNJkX0*S6~MuS^W+DoYGp1+Ub!oETJ8Tu>DX>&zCQ2P?GUt)HYW#Uoa|rn$H&hL zH<6nt(@e503;k*ceInaZe476$MmJC8cYJz+|8DtHzbg56%f5;84n~&V?V~5@8)NpB ze&TM~`Umn=AO*{8+55T|xWSGm`5b5x>@f!V(8W=9PxZuydRe`)c3>Sf;Mn)1tbs8@ zKV}#QU(z#=l>c@Rh>#C;d&e&4<^8VD+o}7bz?MZ%CeN%LId@jMprrU(P)>;#uP45Bi56x*A&3v~-y(*k zTt@U1RwA3d^Ujf=2+ijPKR+|b#K+_3^-YKaR>iD%G>l*wQL?0+?tqcOejka|+5bE! z0%gZleD#APSZt5$cjc#N1Diy$4BkK+Ywd#1$;rpo)8pH?=d182dDzb_h@Cm_iWmdF zuHzXxbebA!m8l)9KtvD&2R35ND;MzHUmq+>IN{74;-ELY;467ycejgbhjnd z*W<*$ELjG97Whjx^ga7(G_eWUU`P367W-e-JIQDH&>z@eY*%3kJMCZ+EH_avDo-)Y z;v>33_OuF0(tczThr9+}xQE|K@9KS;hN#lPmzJw){1jp?gXhH)!1R}xW+Hd=gT;H~ zCNtq~YsgF~Y=_LX2%jKO>21YxXJ(7%v&0`Wi@RcEXT!Ym>K9Nmk-73h07*hhT)6=@ z61%8#-Wkk@68RVU3yC0zD4cIZ4LjMGug~0J{W2oCE*EA-BnMWIi17QC?=VFgQ=&fhl(Tw}0+BMj45Fa(;sWaq*NXU?YiuY>@O^9yZ8 zoVjtBxXhP7ZU)0(5%DtQM?o6Cp051^(PL~CBq0Jg)ET@1^>7mm_AS=esLg~w@`cY6 zWN5-cQs!2sronQ=-n}w{xl!x|7ezG5- zFiE4htb#sHxPK!(wXarfw-P=uq56&|{gdu^{U^r*!}I-ExrAdU6IA18=`{L1tmJ3E z-1LU#cyX<8GZJHvKPj*EI2Z1B(<|OYz1$ub|KxB z?}9h3w!$dkZTC>WBsk=H4iwuLv(a_PO8+4{61@8*3=?7fN-WuMFOxd=*Tx#jp(XIDdkDym3iZ1*JHb$QS2M z2Z#Jh>m=kEAcWJx_1cA?0am%ssH5;g;hPlGD$|XG2%qvpxCuWGBlk zwbT3gGP{g5MWK7-_yj}kD5@PylH)UjxQnw&=AC!`J~8b|Re>Yh?Am?83eLN%c%17> zj`D1~wmV_xYh?Z$Uq3TJ?kYI#NYYN?@qK)E<%{~FKG`43Vb)#kL49gwai{V+7Z@IG zSNN~rKQ{R@YnZYHFv(X7b~bUizzrUhS~lP~*?9AYGhx}Jsr+_XYKAHn^>l%qRMa65 zC)+~qui+>9G(KeDMcPJBZ9#sz=&1fVVZMQziZtX-n4kF2we<e>FcA|YZc>=i; zA$@c)q&7!Trzr(#Fa_ z4DKN62r0XYu0c|gFf|EqN1#n=hj4z3+XjJe48CDQz0x2NZVQ1UABS?ga~`%c=V5|@ zqjafX&HTBEcyp^dpj?uV@>AuDIs`1#qxLZqeT(JXHiP^Sy0@9D}H4pAvmdBpC4Zz zLm29OCC<5lpke)HQtzwI>a{TgWYGSOVGw>+gjcm`i>QukX@cF#ZPNt)ZSzN-y$Zn_ z3kT&?@Wb-y)|u-I3>=K%0ymbUcs_~`yx$~1e_;a~78@Gz5eNJUUpHADiGeHZ|BdH~ zUKIqwzB~M__Ju^;(!@gXg$z z(8VIC7vA7?Y>;faqsRW-L}wZHuSB7BDgB}dw<-D1eQiwXr?8Dt!n?`VHQL4Y?BHL0 z^(Z*xm6v=81g@b&y&O8g(WvMw>#PRN0ySp*9d_puVim|*Rxj(xtBB+6|H>2OCJh3q zf;4cjRBgj;Cvc|7a}yQk;e^o*5W)J1>(F*w2h8UQO9fk~fCwIcNxrnrKC9Iw8`l*+ zmK)WR?T~E1R0|WQPLyv&f&hnI3piEk*!WMRq(Kv}yQi0elT+DtTqMkZs{6@2^X92BNfdH3##Udc!904_cB_N zMR*KU+Kw)KU4AdvGnWf^yl^LS9pZSf!=%tf83*FPptHa~5W=dRT-kvTHUd-D2NOcj zh$CKttZZ9U!8cz7?cX7&WUa5wvw@mOdOJjZ+mBq84XjT_Y6s{+L$KX| z&*RYhe-l&_{=cy4H85E5xecC!Hw^S4Kb*sxPF8=X7j!1s-2)9LS;E*jqCE4*@CBTR zhxWYuE^h^DpiR)1fhU!pg^uvW|Kf?{gzXXT%cQQ`ZHPh0KoZ3~k z?>fXF3G82`li&wic97HllpI*DiwvzL}M93159kLyy`{Jk9P*gr6%TZ z958A0F8e76h?}!Uij_wV7ygtxdhYejcc92euVWz_++T~w3}@MT=k^Tb4t9?_iA3^% z|7>!+%RTn%MbIt?;^pvM4N?YgEIic5O5QJTo*evuWW{x`2z0=6ghSz*mzP+!ujfQ8 zY}hIY1pIaORvWE^J_`S_zQHCE8`Pnh$OXQb-CxO|fryz&PSXN}7FlTzv(?6x7z7lxkbdqDsMyz9C;EO+T;oW-Y#4%=xhRg&PqU%?ToFQ70w20~9eT z{HWu7nk_8MXMYo!N%Emhl#fE*VP!tv!2T;H%D09ePG89w_00*N{aE;iHr#d&GNK(` zzmmyJj)lV4(3dJ@{uDAvpLfbT=|4F6Ju>|TKi%%jQ)nTSakK8OD(iRD zl+8qM7V^?{{u`-dzayt)aMw-Aob0sll}z`{AnI}Xh<$uK(--}C_GlPvy4^cC`ZO@W zXze_)t%Y?t!#iB;{}5Pa7M>=#Gi#X7{tvN}I4zEc3vWOE#P)>Uw)Bzf5(YVHw^IQDeuObvABg@#nYt05;=3~U|)$Pj5+P}ol{OiiCOJ%FVsqtzbtfhyfYKIf2>?&-xG9oD_H(lFH`2+^#J9)fj>mE*;iP=RKiFV$5XN!tLT&RP zU+FYu-E9e(%untgypCjYW`PuT>YEa`Q<+)|71=^DwL8eRn8eK5m(C~C$cH?DLyWoX zwJv7YIe8?4=6&x*4a;+V2b^IR&jt!VC)Nvn06Cb`!;WA$Lx(oN|752xtQ!^Ka^#cR zN4*9{emMljj|^^M9x|d&OWa;0P@e%D(=Z5Ox}qj)}6^P-S<^B>N4gclg=6)?GPJs59l$I96;YB!$m6%P6{xBgtVvmgrD zKGX6Y!Ry5>j~<}{PMdJq#_t7(P(Oy?5U?qOKrqh)Hv0Lx`g!GWwBu6XUy7QN3I_mzf1(>!GWQodNHZ?QSwS!wp=+bLP8~wLJ$gs0SjidQJsN9 zAJaNAfwEY)lsG877v_F69Eg(g;~T^(!P$K^xoW4vti$D%v6uE3XIvco1 z6x26)AD{0N%D-&j(YDr$qeHL`w3EXZ_=ZieMQ+~-`U)1zK~T&&JxZd-QSvmFI& z-T|98m`z`CZXB2R#+ehc`{%)Kw9%CB z%68=5A&w*$c<&_flMP;gUD=69Cgo}HgYrcY)49vioxw!@9C(3q>jRusc8nTEB6wGL zq-Xk;F13FrxFz^=WB57eE6xBqM>s$OJMj;6!k-()hNVFuHvM1>fg5;UO8CQp8|sT9S-nizy}nq&^;!+M z>cK?Mah4h7_h5tit>$n66c~K6L{VoA47izBJD?vKft6q4z#Dd9)4+E4gYcm(2IiZn zGv1hd_6}_=^U7bq-+n(l130J*C%N1BrGaCTCt#G%&H!GrL&<@xQ&B5y5m=Ivo~+;y zU=UJE=nE(s>BtKbD!WA3#|`cRyI3}>I?rS=i;`AV+9 z)3=PjXa{;sl0njP=hd%WAuPsc|I)}+<&&rn_H7wB0{BIg?!4q<&CC>{u6UVN>U`=F5Fd9B`F>j~+_OihWSbuge}xiVg;my<#^_(Qnzj2ty=D6?1(#@)W6JO->FCXk*$ z5U_mtizJCB6Q0~TV1(?>L?_(fS^rgSh4`x7Xu@%I$_Q6R(rChwIP5q2gFXsd^3!Yy zHcwEY{DgDKPL^9Kkq@cRi zW50X=+}bT`7YMvgUtVJ}-66YnIa>B=_u3n%{I^^xgS!?d9NO{e_*0Z09}%1R9g(d| zJA%Qc*qORJ!eX6q_vyNR`e+!B<=`%-+^L*roa6bxuK(O;yos>8 z^AmU5aL3E+wU4%RE$$Y!AL+jC!((vB<1c%#%^NT70vchXpX?L+>9b3JuJp4zIz7*) z^QTu1cnX6Ur4SY>+lbn(n;xWy~8FKv$z?U8PtohC}5;K zM@KmCoVg2q+{L-=_s#|qKK5xKX~M_w{@b~ugkSJP)YPNoN5LUTJ}=$m11Z9pF6%XfU^eK$cF9FM}~;Faq1;{Bh+1zT1&Q zdjek)1+}2F@1kDEKoQjr9zPGzVE>Kkq$V`VL%Gl|D6{?%Hp66~Y@l3{kMf}pk}roi zyW|fqZtJ%j$E?GBg%cOcGDd}C<`;HRF7uR)gMJ3{C^ZSt+vzJ#Hr!N;{S)vRvoJlu z>vm(Qs|e46ViI%Pkj?Z>Vkpa*^c4Ch8=ZDfi5Q<5?C6+pb2F0!Li&jdtdPe(e7Hkb z?+Oymw_nGy<)?++w4F~FX0#(n>xl|ZuxUMloDs=;{U5F^nD{9FN#??LyNkOiCbV5u zFKllAmruK%189>|z>!awWm~qKv{O3_b&x-dvo-nL~6< z>FhS-G)10V=HE=}CE_2X;MzBR<%I1u{J&LwoJ)sudn;``IG-1=5}C}O(j=dkM)~B0 z&uaK*iEqi4oKQO9RJTbdar9%`=%-HcylQmK^T(44R`NI}XEvVr^VGLa`fdFGrQb^M zDY$7E1Ty6pD%Jwci{o0|ep=vV0^`z_{|rEGC{xM&>R>;zX-xAn}u_UFdsj8AD@}&_bT$hx*rMW5yApLdmT->!!?b4 zd*xhfyn2-UC^~rU0@}uRHruabxqMB|68gveS$%oEw!00|9Zy_$q1fi@Q*blf#Pe>b z^&89DXXrW@Q06APh`WhG7VYcwp)5Sc`!*yb_|7Hs2{<8h_6)cdX$U(2# zu<4|yJbnm)iG@_g_?0ST%4(%pimXIi9e?`zBi`ro%pmFsqKWIFe4PyY!$iU?Cqs>P zaru{gX_xC*y-=F#OTHh^#I66$+XpiXk05vcatetHV3-vFA_MBZFt8rG!lnrhx6$R> zFw?;y2`Nj7Fp@wc-NauR1cLU^EcWfVvb(Q`q4DT2xs7$*?-xNo3fFJxvP-wqle zzjc5JtSM^eZ09e31rb;I*ZLEKL!fN}flml5kic#A7>&#AH%t@5WzYNLNuWW(x+=ms z9K5sd?7nn-5QuAdRx%jOt6_LBz+gp(Lq1kmd|P&c%&s*0Llp_WqCK7r1kOYO9LOvi z+b0HUFjnQi^2=@+o^V{-qcN@z;e^E4D1&W!=gkzK{ebJR_)_1c?T^>&ud)li2m4&k zV^is`;;j8xw!&Q5)ykXMIN7aqdzdr5_#h4W^8+w-e|?DaErNH#I^krxPxKT)%dizL z6AO}ax89OGk;2lBkO^g~zlbmdT}8$O;o2lX`3gI0fs`g=(Y2phBoij@u#$SiwoYf^#ZbHegH;A9j8$oRF!Hf`102AQkXvrWLIn|23fK<0*}G8eR<+6Vm+xTXInFY3G7LbMygXF)P2Nxt%lQ3^m9TKt_`V%p@oc|@8Q^}zn&Qr2O_)y8CkE`9Y zL}hYUv!VAl)098oOdMcQFD7{@MdE(5d0JRJCe@`HZ;5cnrW@OzV9na?E6H6!tkYcA z*9HF36n5^E!FfZX7kKXlu7f(N&a5-HpYhQ!+edljbLDSlmvG#a#`y`x@N>%8vb>hF zt>rKGnW%@`AXtUVK8H8Dcqy;s-zs?r6QPc_RbMXIm_h;&&K_nO*puw%y65iTYPK zI&VrJDvT=sAa|_me^KIv^OUM?sBpww+ErCpZ|i59FuRaIN_o<8Ywr^*lI6eIlsLko zOtujf$`m1_1vU5t1Z07QGlrs?qEz^AHsDJj*+QNMU+~>OuOgja>X(5g_=9KoE`}&W)wgjzv+Lv~7MF`WfqVW^ zi1IbVj`+E6Qb@>EwmNnX`lTT`wnQ);U6K}h1N4+6enb8w+r^qIb4Jp}q`-_`#C#%d$}W)#=~G5@K_Pve31c1PjbAQ}wsFBf z*`>BfUj(g)L4lDFG<`NukplAd7$9=;QxP8{uiDYk001BWNkl=oXl1 zdV>4V2PZC9)Za;69{7$61$O*9jqeM)*S)qsic~Fmfxp#6nY>r+KnxT6*)6Kdl#T2b zHYOwFM{3uTu?vWdASU7+@H z3&I7qUH+Q;X#A$ZA?k5y795fiDD)k6bOXubH4w|Wz8D?M>tW^(wS)7|%n>>e$RmSA z{miJ%gm1%=FM)7?L-+#71Q~GL2nY2C$;luJ@e*Y-^T7&090JDaiyT?73dp+pl1Vv{+{{qV5ay3< zV0S(D#LBp=D||wkAbJQUVSiE9O}teSFQ!(uxcG#bntlRQ`OiTpLU+>jH_Qef9=zar z`vZCp+{*FZ#8H!e3dD=pV*?-L*F|O7QShYvwEPo!?t_!;Z{uWspYSuRH~Rf6y8lc6 z_5@!7!HHc3IGEX7=g1a;GOx4A6An}i6rp?-L^0_)poZ&%n2H#iXk#R*SPv$!m}jD|p}#Oc3(|2l6GT+vy)Y-{ zhx(dDZ2XsGvd8!mOW}d+xh>%z@^=6Z+S zKvBmsa09W7Y+u)V%JRJ}akif)o3Nf>U6tQB--PedDm&`?$kXaax}dLKx*Z-n56VYf zr%3s)vfe9Vls>EJ{M=3GsK zHvukuYO$GglLM~GpCl7}IptS=lCKVqa8zK+5l8rQJP(-pzpl6sLIWqZs(#_VHIw}v z{1y59yBpjQ@c8$AJp*no8}XIwNnhEkunsmdl}A`rI>o&2u)}3L zk}ZjqSr`X07=~L{@@naqZe&+07XXU8sX4 z)b}RNBR?CMPa*y$Vf%JEy3PU}#-_x1f#}%hS+FuMNJZ&SVXmuJ40*pvkP$;gwyu1+ zTS!D}f_xx4?4TfyRfO@R3nUzLemMO)N9D64FeVmS@(~Ff`u8O0qQH?aln$g3ZAOB2 zV`hXmA(Cl;2-hp~Gb6~5-+FO$VpowJ%D=xOjB*#|hC|yY61eiTUHaggz=nFLUAvdp zCU@wR&UOLnwkwwSUlBT0AkR-S z^b2ne<*y~OCT!wBLYunXW{G89pC?DxW^{u)9kSut!9@GwzZpLIur5XWl0Uv#EBPxg zEJ(a~h>1;>DSaxJK_r=PR3=G4BAfaqbmW*jVKi|6dV1pPDe>g~#GD`>0y@Zc-IvXr z5GyR_M`pwBy1%RxIEGOto72A1rHgGj0AO1(%bnQ9?9J}uXI0PuvP{N=hK4){GpyX`@j zVTpF0GpRq{xD(1jep+n*UFSdI#w7c@dKj>SjkJ6L{UI<=KHQK?Uf?g=VIn2_Sg&xy zR6!sVRJ37~Z_cTRHA&Wu4P`sSXFbd+?&45%3e5QB^zHnw%$u46IyBC#Hf_aU* z;9+&rAt&#PPs)BXzw+lDeQuPKPP+OP@|En#=gM}s-MapK13ybo`~H9Ff9Xy?_hJS_ z%n`0tuJQ#TVj`(_&_d9~g5e;O17X~@r^OvAAbX1NxSg-@5C?RjeWLFyk66^6Nc6Tm zwUKO(bJ7VlsS3PM_$O|gt25o zj{T(Hfv~ad44?IsY(@}IxPLQcb$Dk1!m+jVyEs4sRhoQpiX^5n_f|8{Trd3LfObT_ z_@g!M3cfPp&LI0S1*QN@&kbHbvOlCPkqNtjCmkvuYo3L_XI)+Jz8nWERj+yD?Bd~N zk98oMsqf40;W3injr?pN+8SD4y?{D-q?-ms1pM&;e^5U}yKep`yKxuL2$$BI4_*)B z>fv@gvD&!q#rENc$ve6JMSbNzuX)sbGE>x7J;J^cy$G5YxHWj2`QefART*B)+?hjl zW1$VWPW@y%nV*NcHgW1RhzGlJBKGYf@m#j@vC_9*`Kq6+llXULw$DSfxW|p6? zi}^2TpMR4=A{;AE^`ml8MS?C&XX6r>s+{U0KOe^JhiyiWR;ql9Q^^e zQh#nC_g=s7PCoPYWcxF5oUv|bcZ;g_DJuBJFr$j#WPvk%GVHXwU zN1vK@GTA38PWw&8e?v-L_XWw{#C38Lfebv5uXG*}Ly?!_9!Q~H z`=Y@>3dz3~aZ@%3JD52Usu_!yYCGs6s}C&n4hQRJeGEm=n7~$N1C!tlf0l9iNiy5d zMLa+zkS(@rmYy|3yYAc}k}>oj^$h&S`x)_(DBb!u2?YPEc9PM!?9cFRG!UKZKz0?O z+fwt&9zmeOwU6J=icekVX+1)not*v^s_ z`O+_zH)>DxL+Hpq0$2~qCzi8}@(KM?a$Z(`S6QY(MVVZdpQY1m@$K}~zY2kTuXYec z(cpV13eW}jYf_%-o8^DtD3VmTmlC3bTt*Dj-9m*I+hW?CUq=};=}CN&5xN<<0i1Ma zEvXm#3cE;nZ|216WS8r)a55qT_+dv6?7IA=wtOD?(Xh00<#%`b6j|*M)$qlP)dnVX zslLPRYbJYHz9LG~j7i{jAMpaQGU4waJmHHQOLsNSuZMv=AaovsU50jJ|BFYrTg;+b zn#4})^&Y@Kb_Wow20`cG44RWuU*14NkRO5{mL7V|K_++uPH08!h(FO!=MQ#}l3gOn z3!ldc2mA@aA5bq9B!hJ@Y#(R~BoOk;DF$tZdcyvm#1pxB<%gSM?Nk>e-eKsG%aph?lgmUQWrxxsC3`W>#R<^=$-sY7WpIA zyEs{Tg3o&0)%pq6Z{+_k{r`~eN5JX}9+L^nA}eNr`0OulSjfMLOcuP6MEg3TvzU28 z7^R;H*|R^Fq*{z=VU;*+Ga*{x%N|vb#;PB*P4Jyb=c>h(7ushM)&v~oC)N##ERGB8 zcN#B@h6_gG_aiVNA36&S&Ye{!@K_-FKn7IA@SJ3kX1Yi2EbXotFofUTQRbi<*v3!OjOisV$qg%{-<)@#GQ+;qGo*rh~uwnZwpmBQ*7Eich z@q%c}+MkJUlCtJZKixlot^DCUtZzD7H41nf3ZiYi3s}kD2?!wGRBO3i1L4lM zG~eq-IlO7GV$?xFjvB+saNq{pR~YQW%E!q@%+5+a_+!3aZwG0tj-wliWmFJNXzR=e z0~@@GiHR%Nf$Jm21aZc=N1MB0oIU={lQ5UDywZpKwBHjpAZ1rpceStbvy{@1ema_b z>Qj}H_RFdfObeoNG9hsitOs3Hb*-!p-wr34RF24$l1Xux3|&9MABarY%rud@!Tr2t zLb(rKP>Z1Y#U4x6WfkwD)K#G8jU5RBI^#E%RFgl;N;ivh| zqk*v-SiBI~o&BJ?xG$Dq-EbgPX9ls{K#zk!M9_(|i!#eMwr#iERJu^_jc=r{f=sYY zNY=H#@{@gCiAOKs?@82rem2U(S7nUkP}lr#7vQpdH!YjqT_QLm-H{a&RGI!p;K#wC ztST<8U>U~hRF+=^O*#Q$wF#WVQ$8MpJ%nz@-R@-D!F0E7HohPDRwf0+bH}@R9UZk| zndKN2{*$tk!k(-b%R&20 z)=e~YL{ZS(FUAD5pzM}%PnQ+-<^Aa95s)Su^ zOCj&SL2{P=nVUFZ&3R#39eTL#>bZQpsqUM*4l=tvOh_mWlYya`g1Exw#{}k zOxF*U-AZ5Nb;?qFl;!qXzXWD#t1H8@MVZu7I*DB7gB0&#p7gk=i}N?q!Iv&~Yqej; z4(W6tvbCa8PIcawol166R<i7_+{|J$}{u+Pb(jl z0x9c#I!+O>lRuCek8b7r0h_@j^&@FvmhyCgsu#77B(Tw@y#7?)+-qR=|88x*Da}lh z6xL0HM0g^ZBsFDz>PzaQkaJmTwifad>%Pu|HKs68wU5A%b{YFr50aZAFU7{(Q+o)^ zqpi%ZLa&8+^5tNo6lut&Qa#-_!Jnrtkz?b|egx^k!pxK@guYG$hmh;GQ6NPh%C?B1 zk4SZEeTFl!fE9>Hti0oyKE_9aRbWeEW}xfK*I7Y-KI@WScGYnWMP9HT+g63eI5^*^ z1^<=rgD*tgjzm)VN^<47Jxy?M2Q7~(wMaC!O|$5~B3V_M~-c^QeplcAW5WPR^zKM(SaALSiB2HJ%7#60Ts&<<5w0L~P7 z!F}!v$WwjdCQ4=3EchdL6chO}@I#b^KFoB{AC*7hSGw{F`)s??%koYs!~ZnR_uNU- z?dOF5Q&Hl|Jsw)MJ#|sIUkX2}HaOZ5a+3>Yl#y~4NMUgIkJ$Qjn>@}i&WAFmit%?Fxk2q~wn@CoVP?zl^;kxSC4i3Tfj|tQy zzXW#cQSu^PuwHRsNXMU)@S4|g?Z!#@h$Xy!Rx=FBj+mWD-)&LU%czZyk9xrh?}lbg zajI65US|MhaK$kF1&?7qfaA)aOAkBr53~~F&)bIcc6F)deWluseP41SpZnZ0 zdm!&7S>-qB&C4%WNAof%#`=jjSQYfam_mMrAE5T+uFd@UR(j|QH^WXV;D+%!_;4@% zKlZM6NphCgnNxHBm%N-G9f&N;2GTwI@w`KA?IgyQ4M{*v;v{<}(1}H|hm7r)hzBu5 zvdB)jyK~4WL65J!183QJAGTvqKbZYGU~WQEfNQvI%$cMqGgvuv`t(RE_~JzF!opZW6ATh>X&KZ>wE+#WWtY1%H_rZw}cbJU1X z=j+F_(t)eHL=KKKsdMocvEw-qR`SfZ5yq-{OL&Z@F6L`KQVAlf)x7C<=&kUff>+(9 zY;+LJlj-eO#vc9AppRkxEWe78#Z!=ObxU_e)Rze%*e)HTZWqE(JjpF=pKy_cqV`$5 zsh<{V`ibqACr5ZefLuQJCnm$oE+%kf_?>hzIsHxL6r+nP%KbBZ8~uPqwafVvZIbd~ zll6g$LHApHS#omhB=!oQ;&MJ1N5x$Eqy6ML#?E?Sx56%bW~#CxRnB#e@P9`+^t-zt z@)$qSFJNYsoC^vnnav%$`kC%ZPkpYd!ceCW`B1Odiv~T`J8U2?A!fjE9o_*CCPl`Z z{?NwvL%-_6i>0$?0OiCz;#aX?Liekyq%ab&SWcCHhXSYA5t} z8RG`-DxR>rwcC5eQ=x*&8f)#fYuu;(C|guP_(^Jd_vB7|8R%V+u$yud;!&YkD>%&bHF z_w#{fo>&gY3zC?vd>P6w%-v@LFMIt-Ini%ND}5OeGm``g+XgFQ``Ne&_Gxyo>}T9u z6A))GSVqLut$$Y0*FuG zKo8wtXzsu;ekWTad-Tm1U@Ma-y7dev_<$bku#Ni8&#Ju~7wJoqLMO0cKVy8VJ*wXb zclzWD!OX`~;Uga6^D)9Yv#w%t{xB|ergQ9~UT!zo&2%a(*mvUWD(tiu4)Q_Sz0#|a z_}>gmN01GyOGAt2$I5e0$LB5c4V$j?6Sqq;mtY;^R2XR;WfmKdlPSOn7{IdEr!cuo zGh&rKkqq`f@d#_0y!IUtoW6vgtrbDh{%XYy+stGx5H9pFVol=QN)F+1jN)RF2kk%m zR_`6kJ!h$Sj0(*)WipBRSVRB#_+8&@F{A8)e__2=0W%0X_tR&Gv$E)i5NDyUl5JQ& zC9uh{-6&t-<;b%rc}wJ(KFDVhgn2zB&%TT?o;&2^kP=_upbs;u#|txgadc|}%jn>D zf84ScM+ee1#KnuIo3Jsnn4Cj>*GR?$EKM500gIC^FcuzQ(bp(=(vJS*i6eOiaKfw- zKe%u3SnvgsJu8TKLZ4OVxm4NimQN&qJoF#hW#+Db2fO0~$Bw4)-FewqDB`=4Id+@K zr`M6LFjl8rhV@SUmcfn_Gk% zwkW;K_NiV~s!47=0qO{fWRJw~uH7Ja&d2{Px*@4N?K+_^A;NQoeC<`f)mT8+`;hS} zsY+HDJ4jMpomvs(A1L%=&EXMdBj@9~PW1&tF8vFvVKNgiR({Y2|F9LhV;oCY+t7aK zaa(p)+yKYnV}Bw(jIYyH#f3g0uAOHUkwHE^;o+MfeM zC;bXv;m~$p$;n@q0Fn|(MBdPszBB*qfNcP$3mNOl+qlXH#iX{gDG$YzANvpQNp85F%{5yqzv1dxhF(#v2HgN48 z3iYhg0y+%nmA{PmRF1OKd+N1&r42!{tXQ)3=Q9&1;a{!}GEu?$;#t8&-`5$8Nz|^b z=j~jBBOw^|W6TIIlWvzfpBr8KsGdLMXVRQ}#3Ag9WQjEURrz&EDF!$c*D4zquUR5z zIv&+tRo|RTCr85M`bQA1fI&E_&lf9t0VjP%lC--WtO6RvNBF@vwJXziemC%0KgAbK z+GyfeSIHG~(xwAFb-EwK=E3B^*xrQPH!w}!$dW)pe0JB%q=_WXB$;FEV?g=-K8y*3 zA(K@Hn6C^H=^5K?{MY?~XqjKq&2A4@uX~|*`Za0ZO#>f%Y{Ddc`N&>PQxYz;9c^ac zW3(;&Rx5o^vT@Z}55DtwAg=EsbTCKi70Emt*IxE9#3caFaV@G%G4#P|6)@}aEF_-V zPi$9lnECjHGk+V{3_X3_&*q3{0Ec|qaZ-ekhvW))XnrPXfWIfn8zBjV@h#fTeWly& zzKDD5hnXBf#3S=LV;3)oSS$5M001BWNkl&~TM9DPoY5UnEB|Gl8aFw{AWOq)Ohs*eg|4e(oi28>NpVM}%C6ohJConj2@?Bjhp4eFkieynD%qo({Hn+F8x1R{ zt=@0|jRo3C6T1DD`DX{|HgWobX#5ew%w6wylbbyHpJ<^c40<8qWDKyh66ES zJ5bmC-r9(Nnns*yoxbmH;4ppzImI!7Ta1s7^Hy>Q#y#-KZpvVL_D`dFYLmP@y^2Tq z<-X=vi}xgh=;AZ4++;TU3%Rm={nRCQfpEQ~kV2vJGiJoR(Ld zuNOhfXZkwq<3(M`jpV4;-8C5P1$L4IqLU!H#!-nZY0TZp`&KNBGgPYBg?<))kdL^! zGc}f_xD;=iG@|rw??E?xUa{(%B;J6n>N5KsyA?*IZ_wX6WmoUCd>A(!RQdx~J;%(( zfHWRHmPt_)5PK5wgxj+_SYg6E!|0;!<_L;NA|_7WnLofdyfw^y)KYzx19@7$^AF>1 z7H$h~KO14l%-slNUnn@6^`{YhhPr z@NQu2#=l*%w*M`qCu2r3pslbn+iW0LjB7KTGM=SA5}+Ehn@Q3YTp-bTl<1*|+pXic zhJ$9J0tyqCFw2#-JB+nHtlESuU2G@HBZiFM#f}p>OoY|5fuT>^%W|0@f*2J!W}-oH zVcWvNyYb_*Z!oFvtn{VN3}QR++GHDxxKo||#`yj5AeZ4Hsp7m1;%X%7Gp2ygD%^3& zZC)bPn1OSNw+QQ5h;y6qb8!Nc91IR%5%-r%22e=_ZZaS8aq{}nss}k87#9^{V?z*w z2c}HUC!W&1<@X92UeHxPa61UUQ~cD-pih3echdMnpLJgm`pqo%%Ps3Jwt<0xi*|+M zF3y?Yi*>24t2*{ibzRl7AI4D_q4$GL7h8J&oszZX%~HZO*~&tlcJMmhENU=X*|SZh zU+OXe$?*br?V|asn5sjXywau9YEsJx+zfIA#@8^`k^b~g`o&5dj#BGSpg}w`v0!ZC zm%|G-I3H-+u+XF*YKx3M3Ha7@L8;Xxni%F16eB8&B*QRu+#UEGpi6?pr5g zaQ{RcH}CDf7f($IVgASdROgQBhr(xYoY<7H^L$&xlM(7q7LIl9t2pcOdJiBc5p?|0 z0zK0=PsCs32a-wLfx~Cjeu4b5$&x@^D}UYgjpb+qJ>n8KFi>IRk~X*>I3|ObGn`I1 zod#F+Vro9IyM=+m4N&}yVFx=rArX7T-$g$%KK2{M>7Eb5_-Wwn7d8*PE;gtO7iRTh z=n)Il&uTvLH=Y4xv5R|Q`;np&FutjD<*UifST>VA%&v1Zd4>=1I_T^)|72WU>TXUV zJCj>BnFjn*uy^#i16I1bIF`syW8c;JDL>_>e7bzS1}Mw~HoMt95&$z!4w(=7yOpsb z31k%a+*y+RAd?eVJ_t*a!8{W;kZ=k@=P*=1s3e&uIBK;o(MJLm2rM;MCgqs9V-(^X zGBb_OgR;sZPUKS`+b-m@V83F!7&jwwOhkT>hVsSnaOoBgRyO&qWIN@A)o^(_d1BH~ zqraliIRK|H!FNUG?L@DS zmyUnOV7r6BA3-w&teXJZ|Ipvm4KMap7~z(9_c71L^+=A@t5^m`Sdl{c%cjqjDYN@l zAB;nYeUu#1eBTcHYIRe-j>VETQ%tLPjQwIih$2@cA^zp-Rj6$y;whg=y!F$*2z{gc z7xmCiKaXzMv4drQ+Cl8%cm)~F&#T{FTjd4hR(=8e>%M3^crwe96}ppm&}FA6XKc_3 zgC5!{DV(ak^u2 z7Q~$m%zoc5+eoM=`y?ZbpDKNk1Y+ad<-w{uohSzkW$y-vf+)xd-4CYzD<(VkNt_Zx z#N;+RNeiE4Jc)h~_r%u;ZicPwl`ZM@M84&3h|`J%Zc(3_tgu$4Zp)u35R4lilEI>k zeKE*{Dwt>%s1-5G2_jF@8*xdUf^-F(gtSdk1rFgF=|sfTJC8LHf?#B#2dZ3CHcVde zwK4)LvwXbl7ZbH!T%OdfsB3IDqvw=Y5R5FPpF{1;(zx;9qPnZVJ1r}tlk~`ca zrY)k>BMCGUanLc5^@@;MtT(f`3a9!lhU?-kzTM+no^!R)r~4PtjE z;G}-*cL<~fQn8QY8WdLaGJ-bDctWQ*q@PP(t)9s^Ax3U%lIY@-L$HlJfhTeq(;#0s zwqu)__<*WmGDasG^JPMyUx;NV83W^2E0R24?YtU>udS0Y>m7YH9fS(uVB4p{NsQBe z5XWV+>}xODyNq!pftcCrf$gF73zUi^5C^zO0#RS^m?tG(XsAc}M!uarp4eU3nEB_@ zaAqNlur!Pp1omKtgMEVfzu;mgzev{HK*L8*JXaYKMkvl%FWTi!RK|yPg~So_7<1q^ z@Wodu_77l9$m;n(=%49>br=WZ9Gl`IneFD%h3sV1`qO1xCm1uuFPp-8~r2Nf)DZk`GLZk-kz92%{0k6=!GCsghMB z4v@fER6HX|gZqv9l5f*fdnfr)8ncvP{ajFNm|`4I$?kv!sY{`@8TT2HOh1dvk1Cr7s72g;({1#X8p}r5Ewzq{}`s zERKJ}MxA@9?GSJ1Ed8&{SGb?H`=-K^eX*+xD5acu1BiL}Te|-Fvnf@NrmV2S1io1} z>&GON;bvqIc@PppCZ;?Y8qQumsPVRe3#WcQ(7aDO_(*L3? z<3F@d>!}~!C0-k*=jbEG;$vfce;YaUrip zns>rn5ui{}{Q9io*!8m@b6sF*QYgsC*hz?6u;UmeNx3QpZuVTC+4Y>@OTS?q#*kw1 zqzwT%BKXqXe?HLcPST*`y7O!xtg5*c!I1f?NQr?S$h#E;s(ZgmPJU%#NJb8}vxA|p z90VK_vD%cs9)^lc8bKrKPdaoOb5W1+yS^m9fm~UXB`cfhN+{!R#j4^tXz#I)4;H=- zzrh6;Ab|AC!#eEq0Ua`uPx3$~j198E_?Ny+GBFGI^CV)weByQ2hI^>nTx#Cn#q&Jbq|A<>s* zmyM|7`+>5&=y?)->ZJQ!Rd%qIZDn_&zd95fSY7CqkC3KyK)9wzjhkfaOqeLZ73z{k zm{>7Zj+1@oc22YDYMYr{(F?vtT-09m&bR*Z5m%YeM~eq!ClMpf5Ek-X5-15yB6li0 zPAi{Oz9Sh!R#4xpZpE&WQmVr76rnHed3xe`I3<_|{K$g)ofn0#2KvforC<46 zVOiqeY#(E%|90cviDxDMDL>_>{O+DebU3*4xH`l+J&(Q!syz2$K>ZTOkPkpqFu9J#9$u$BGE$yBCufBxzA=liGB~* zI2iM>M!6cif30z5X`qX8HCe&muKcpS+7|kO7%8T-%U&{;^=4VZ7FoJSPX5pDJ}o`n z+0cKgtB&V&UN<4@xNrLXbzX(+OkkV;ks;qR$TkDB3H?6(`)}_m{5_n|PtB)pgCR6IyfsU1AA*S7a9U`I5rZTZX{ z%5ZRjuTiK6^xZAvp+`6i{749fSB@Y4D!GaU2K)F$5u?I!DIC>a5uby|W4a^bwlN;| zrHVsgi{oXckE7aN;Vg9veOIM)4&~XgEK4u;K3mQ&@g$lp&brZ(Z0<`HyY`*g?cfKU z78SGK1{;1t!gX&pGmK{)5=ron_2q3?tW$9^3A^#fC+J!SgzOqD_)GO3Y(iz97GKH zwyw}W&q}6t1p>wWhW!)u<85%!5#8^G{m@V1I9B-IR#t)jZk$&sl0cHl+C9^U)m_+u z{6mQzW%5QwSW@3(ZxQBesnuL#;5zxU@S^*QY;0-GkKP@HO_AO4f)_VUl7b(5=J24t>yy^5dM z@f-*FPIj>42VK~Kxg?~+264~^_g}d0y%wdwUzHHg8}_QbCq>4h+RL)+xIgeeU_M?3 zc#-Y<8_Sm?T!BFO!O?$-gHQPG?aW997r(Jj9;~~K;bD!B2OkGPymwluOk?Y zVTms7gm$6NJD!*vL;4c48##_`#)`0Fk{vrEd!C3eHY_U6q)yG|oD?KAc|>48T!elV zLsgvmr$z;e;dHQlN1Z2gQY=G}1ZYz?4W_Sg0|8n1OYO0KgAg(okVI3A1t}itvwv*c zP0*a~jOVrAQi4Xl9EK*0NImv5U#G#{)~!`C^Mt2d>BDvr349t;LgwP_KqE|}SfPI$ z6k@=9mEO9wh!HTUNPXcq#DeXL`sqsC>a{e>fQxq6Gt(6Bq~E^7$KMS<%a>2Q7$@Q{ zyAwcQu*IZ@ZWbTThx%Fi2jno}Hf7#5(_wa!mX_RiuF^6?Z$sVCa;QnbxtH#Wb%mz@=LFW zc9}_HnGwc7Cb=K5e=;0?eU-P{ zUfz-(KXPYJm|q5eylK)?as1H$IIoHL*^f@D}3}y=Rm%NQT4ZYU!<8=u;b+!5%)|zBLP^a>76yd>dPY9@|muzpG!_V>di0k7KzV``gcEThGd! zw)yQ+oQI@krN*BxU%lgM6c#}SmPsN!XpalAJFSS#lYg>L_{-#tKt42i!5BlGA~4~( z$V_*Ev-GQMxUHF8V!PBa8LQkArm|w?Z`*c5|B?D3#>Wdyik9y#&3DRE!dMX{B_;y0 zB!f<`*xR*rqFG0;l{`n_&4W|$9CQ=Nt?s*dcVAoi+(GQ@4Er*oIBrBC<%lHFS(+J9fW#xl3n#(+6|fL z@Q~PHb`!{mpT{)@9KJxtAC@DAjwim?utyx3sDU_CGW|Jeh&avkaR?J#V(aX0S$7y5 ztMWJ6#xkmRenlT-F=BD=>d1U4Ob3$a_Ppx5OL^TlI+h>8?^v1Oo^;=)ZlAihUw?;` z$%Bb;gZ!P?Pv4he-?8DbLl7&#a__p6lVs+Xb#d%4lPh|NK`VOqt>Hnqa7^TO)#Ry< zwwT%b$srJLqx!4uISDi$=hI}22q?BI3>tCKc@pOBwmv3*hNFF;W?;9Qcn|I2q%k?;~Hv!x0N(94HMnJ>B{DpJkxg8gsC#@7atXuwu=%DV{yE82h2b` zs8S|_C(zk{3ZBKjwBZGfusc@iGD_H2Mi{@UBur(g^A5*Zxi~0 zNRGDAYium^vycf}|7_yu2PUNW3kk`jn&eQYiGJp`aGOzv?PED_BRSpC7j~{>tg2#L ztFk%CmM-4;;>Y;mwQ^n%xaqe7=}C2BM=N?>qld*fjRA5dhpZl6n2bLjc5H;cnfVnr z?SI}D&T!l*om^|lYhZ4F&BrxY&c@LNd)clQeV7^Fvc20f@agy-Ct_gi*rb<^emxA2 zLCx9tvCE*|l0G8m-CP^)7euoT?W9;H3dYEN5#v9<6`SDOPXDZ8f3t9$t5vr%aLe2K zQ?lZ30guAT4?I!3Te1c^UFyYs#_s0+-$_7G_^DrudK61{wj8HX`=G8{)Rp?Ny?OgM zRv}Ab%fDh$VT*Px+aoZuzR2uYT;eD4)aSx(tDNe8XBmU%T4hSJab2J^~BCioETKU+g9p}_!As?TUf>^NI*9Ww@yceNZ#WRlF#UkCaCOSjMswAtat6qY^aSlYZhwQt`(_ZUG9rb z7}>rL6liXY^_InijEw*|&Sl&K`|o%$@}DVxj-BaTlN z!Tw`H1oHIR!0!Ew7*vu8KNq<36^$Yrw+|9H`_m|XMKH0ixBEO7*J}i%8_-{ix=!3hUlH7HVf|D4@4{kWKF0D&BMcynK^cMGpVG&6DZjUD z41af9X>diHc??B7Ax5Da;uZQS4*oTY$Ecp|sD6rh1QWWhESO6$Q5fG`ZHn>2>(fmbmjtfa8U5t8?hr|ukqiq)>#l>FN&Vr9@zE}6 zPe|;rBsPIH)vLsiOCB&lzk|GS9Kyy;wv2~`Pg?(ya9^!Xa8CSKv8X>WLa5}Frnj^3 z8(w>hHuPUnXVq-tLrdNC99SBCK&Jd=L?gqg^i^kMv&#<7c8C6ypYl_F%D0v;_Z5)w zoJYv$6@+f?8|e7@K6S>gHOeM-b_TXc#tdx7J`0Ggel{wmIwC@hRvb~Od^A%z7 z(S1P!D$!r&OA=wF-^3|RejP8oY?@ho0W#Y+b3e>o^2Ue<#-Q=TZTdjlSG;cJPOTzM zoY6M^LD&sf0bkufI@2wTKcOwEznZtPF((zThQY#^<#UM~D*~Jlap)(rI=<8L4C+Z|})=#r=ll`98$FGT0whI5W{?m5v7uN^b zg-d-{4i9d1PT4E{4c#z-iWM_8$&QNSXZI3YN&*?Thi`(j@P~e+K9XytpAj@OcRO-% z%Qb#c1lr|dB6)JF*O4ytJI3k@f8GvWzAU*zo9xC8FQn#psLf11mW1y1d;Vf%?@EAs z9M^sU(+zF|m%xOB_(fl+KK*3jaOZyB4;wAqbULt~CVRXe$$z>$?3%AGvuo|%cLW7x zG+9Yfh5L$_pdI^m ztxQ&_&iM$9CWs&@O+ z>s?vE>O|`IJ`7UvYaDjzA+c&?H|o_d9>%$`^_Mryd|X40#D(N4xglHO3J=ZGARXFs zWA@OdTL0F;W0`7~i~s;207*naRKRg^yKxXp{LCh?Kc4*fxEtwq5b-&{`okZ}xQ~b>!ZGS8)*3_TFn*b(JO1k)GkaZ% z*}dYmTA`cmVtgcD89@{As};Q=PgeB&>rc%5s^P$&l@^mjm;~Bw8&)>^?X##4bA$M_ zo4!qpV+{3oAaU52qJOOTN(ic|lGaBbG9-$^#mYo!70bJ&2s!lg|McrsK3M(+zWPQC z@yElfe7To0&ypm2^zqO?f8AjWI={f?lDmQE7pRM8`rH>hhMnEE^A|M^MwnoNgNsPs zaQh8lR2!i$T+DLZ=<>^Dj_Bc3vYYIaq=)0ueF-)@{g<){3V|90v2BJ7`-p!Ul38kjuU zqtE>-z&-+PFkvIP6JOZiBn~t1=gHSxVT7cVm;gfZPB>ZeMo6sa_a>5_#p_l06(I>ScIiU{Q97`0D#s_1Ub#9~~eItL#E=UV8-UPMN~Sou;4{Y_4k; zetb2ziicy<^&hXS%*(3Mg|P;Il!aHzjBA$UBPk4D9_>~UaV#6LAU^3Fz3;C_Txf#Z z;g!Mp-o61(@ucqu9C#3BR;KDFUWV-jd{+}jG7}$*ZPW47Il3)IM&@1*S&OJSjy_#$y-W^}k zUe`}52Bj}_Q~gCdUE4^O+TAVldI`3g993QFSJb7pSbd;-toNqfQ#UIBHM#6K%ode0 zf2ki5)9--bW`&d1Bhf%-9jeEqOMsk7>Vjh%)`x3g>$b3p2T4GOIJzy9H=G{HlUu#{ zt<@{W>Ro|5@7KF@^Xyi)S?5gJQIbh~MG9S&Cp}0%G?82Q z4tDH+*Pi3Q_woO9@=cRZ*uSzb^d){CYtUhsEjxu@>8kh&ys*2nO>|Gp-ZOe&|KNh0 z6Diq0by?Xh$>A=pUzvK<gk?lmDSU%`?QD<8}4W2JwS!MG~e;P@oOO~wrb zGZ04Md-Xlt8AA4L+|fP}LrD|`$>=u8+Y6;9@if=9fzX}4oOm_g@g*|DO_CyZGLtL) zjdC9XY!kI@)vlxR0@Ghb`3&~4>POr64dt!aHjKCM6VmsnY=XG4uQGd8Bw4_4f`#M+ zGrgk6HZOS(^=P9moGKplZ(zZ&NEe<(*)CX{eIsEhuG9PM$?RM>^SY!CQzx1!A) z?uK2Ao!iGU{%ME($j6oa5>|*o*=74pRI^TH|C>tqdb}t>Ec!}SFJPs9rkfH&I;IOO zPF5}--DLa>dut``i9QmaYkxjlJg%vcHJlMQ41AD?(EubiNHjQ3?>7<>=on1Y2*e6v znC)T`c&nA!!5n_D!5SK4$(I`e%3I9I98i%qH4c1|jJU>+Ruuk^aX(o`j2}q$P{a0i zyx-EeZ!FDkGjaM9^aJH4_lo{)VPo6Zm;d6&xcV{KC^vJz^wsl-&YzkDFh0QuI^tri7IkMiO#0Y-jmlAxkQ`S_wyDg};hZjCB6}r! zINRDqt@~gyIqThq!C5LmXd`^(`C4L9p?*8~Mh1|NY zGhY3eYQEq2`@Jew_qvh}dX3^3ScubZyGFMGSGRh1Uk`&TTkvBpeVT8YCpZxQ*7JZn zynm@*fK>cmDhh>FjAcEI_aFZ;f!AiM+nd%6`@i+IF`w!)jq?_IFkYeUcq?=c{UukR znI%aeW(EUrBEyHN9jQVa#${q6{5ov*&65P+IQ%jApbsM*_RDR=c$97z{y9z+7qu1Q z>rS5OtC$3)6EBV>x6An`Fl4-{s5U5-ES9S5=zOpoyDJRTb-8@LQrJ}{rEW&14sp`D z_{`v)(MmD&&3K%g^*w=c#+6_7;$pkMmhp=FnkgkQL%asn{f;U41)?^??3Uju9lqM7 zzWOv8_@4bSWZaJwuk(ema{LOTh=coC60UuH|4bbC+qun*GIz{AQB=D!on8Hfx$T?& zcS|=p7YU4B16Gh4D9gxNW>@O6z@Uvsr0Ou&lx^y^ejX-V>tO$dZ61#nU8-+^nd{=C6hNHZ2Z#jEN(@(*uR;D)i$?+H~`yi626Lo zqygGI`Pr51B449|c%x5Neg~FlpL~@|Y=4>^ET2h4TtS9bnZc*e?zt@Hnj6k-%M=&3 zYX3KsS97^PJ{S}C&oMM=XaotZ`7qeqg_hR}nWAXNAK)84D-h%$LH% zdLCWzSn%X7`h3XUM31^^^yc%)f=(oBst=kLr$jH4KQ9`Q+FD(gW6oAYOv3W{zS57r zN}U}&uCM$AGByl44LtWbbi6W{WbnpYoE`ema*U8M4E@ckWv>8%3@N{6;npf+O?ABP znOK==LPrzKbgQz1hmH9%A(USpLz{1!i6ScmjypCyVIJs*tmJmp@Hc`tVl7l(^}DgY zQPi;9RK-75IPAIK?d%rwN&DX*VvoYu@j>lPO?F9LB^KAaRQCPzdJ!~!mBS29eoPP< zAlI{DY%_u31&@e7#8V2Xro3}lEuVj}tUb;(@2C=M6**remd{p5UbQHdX5 z8;HzzT>L7AmTZeMW2AF8HN%9g!foZt^|3Je*f@DSvljZRIxBRa;Qy4L@>6~amqFaZ z=YLHu zd@mI%6-%Tfj8sP{;Y!BP16d=zj{D|+q=ehU5E$O-MN&$?E#~uFcz&n)%6Gfvc>OR2 z6XQPcaCNPFyxETXxxgm#I2KlN#oUbTkphE1UTi#qkky=WEIZ$ zXT;y8-tTbqX}cM#(J@%9BL0!`x5bl`KNjKx$J-`N|E=tC+??lPX3&bg#8F$+2lZOV z5kUP+8V0NmxsJ-01XY14G8a_$z&=P;Hm~Gu*!cS_l!)AVS`9w(BHCSNx%&sSJEOdk|F=GEbaqr@%w`Y|N#{>G7eF6=^ z`i)cGavkD<0fda>KKkOv3kxC!J&321&#ha=(5C6&4MI0;5NDNKkt9T*_FhF&_}2Zq zgzv=n4qk<|Q~$|${~{2QAjh@ZUjV${%pJVK3y(`uH?tQc_JEX9 z5{MWyB_X1VbJ`fxTcPvvck>J$LTwAyeSkH3a#<+q|$ad;JQN-+xiUvKi zHob}Djp+mA(fM>B$Rn1GuYI`PPYy7jNcI@# zS90;s0$=r*w)?J9e$6_^^%*hA99OgVs%{tOr~yCar~H(k@>4d-S4=Dze}+&bfs`wQ zqaHE(^^fG?*}lcTiv{&~;^r@#80p0%kM8iy>t#NsZk157&@Jlkl&{^Xb`YWu= zmdQ=!=zwvEZCS*Jo44pF31GaG`%R#`7 zyVbnFnF$#~1>b##0d)({y9ImD!C%xJ^zpgC_QIAjfH>) z8)Yb2CHatQt2Wa0C}X-YzWhL~2;iz7b>bw_T|MK_q_Rx**u>#@2)}%hwUj45=AWz` z8@gp(#PW$cB2L~b;k(A^tzI5H zwr}U+`Q0q6B3C$$;N1TG%cO<<_N`tOCzD0Qw@AbWu|N{&a12NY#shv(o)NlGn1tOp z>Fv<;*}dF_s!qgF3E@+t9m2TqM$IhyEcjU94)qP!|K0K-BGzcZ20 ze^@SX8_3hx7VRrBYTMT{fGMF9+d+o=K=>TwCgGc#ijZYwEF(}Is&;IPIJb#mCRZ4F zyfNlPzpU4|wS9(B>96cgaSkyam4_pbyWo?V@yPXsliBSO!|+v(VchRcM+9!2_(Ep( zjRZ_!%9TMgPXq;ydOk43$z&4Z=Wo?AnRBaw=!2NTBxg*NKxg8MZHMD&*j`pIbVH~5 z(U0=mzDe08Lz(^t>ru9w{tnQ+)pg8ezr9tSMf6XVEz+~9-#MAyt>5vRZJ**cxRl<* zd6ie3E!5LBJI9qBLY)!Ony7Alx$45WlR!F;1mh2rnmE~XV+=*;#AJbk{A^Gc#E`H< z(#WXqV1?LBv{>HACk(!GpLGz=7ILa{`r|eoOj;r4A;$g{6KELBR9iR*K3<8O{h^G{ zlQ1h-vY(x(z1)?3^Q5$FC&3TmmQ_UJvw+?UgGp6^S>ZUMgmTWj1>zPu9jo}eZ?o(lg}*3j=qkk4YwGeg%UkDjpmY;x=*6htVL*L=R&}{L%gn zv9VtyY#1w(vVlkP**}PncB6>rN~ap>$#TMyo|K2l9idN! z=v6?KK0D6{#RF1s-mstYQ@*MEoQpr@UnmL#s!r;k2O&UqQ z7$TE65Z8Z^sD$=if?BL@*k+;yn*;i9u``rr&hp@s|Q{ZoioqTp7^Wf&&OLAE_ z0cY2aRsW*IkDl%9{_v#7jJWQzM!*3(S z?3U~FH-6lpeKStp=w|eq7_yb$+Xb@ibTBTAlaBS=MdAw`f-f2{%FEpz6QnDSkNKilj=`NV=H%;p}6N_7oJXu-ZWCj9CdI5k1H{b zlsG1&%3&i^rJuc&nc`Wz*x3`V?qg5Cyg>{~ejE3W(IBTIT7ad{C^wx zHOYBKkQYvu?fo6?;@zg}m0jA*+V*P>%pHl$81!j^LPBz!Gy)Te8$7zS>DbY@N*Vk% zUq2f&{ATemDH|~{e)Q{;HqZxSbilzl3123waLn9SIN7s|Ch$OFIksE3J3Pi=8BLl& z&fAE?MYMgZ?x2MC_Z{LE7k9;lkI3Ophzd`3Gah>+KEsBtZ(fZXzyphJE9+0S;dz;m z$?|)>IF;vzYu{xlk3Ct1C>D#i!rdsFogBNDi&-(&r3j|u&(WcU{2f2V}L zz0x(SDXlso42DVbR-esBi~?)iBPw_Nbs_Dkvs`c#$?!kN!z(k+Drm5(_iqY5;~fN=gU;m$lQjN#+l4vH25+uCq+OK z$84wiO30<_?CiFkzwQTqGnZiE@R7997d&K=3HAkcj{4FF;kZc}PpB+8L=jJ(%oyv6 z4JUSvktaFyCBMVT&-L--Ug?e|RAlVwK+NZ7aV4iN=!+d$`J*%1%6T<|ub2bt?lf{o zFCz`-Wa6j%l%MjyR0dJ{(89n!UFgU3q5R7wQG}HrUO6Hic{`R8F4$iA>G&m!B!iT{ z;xViHEuZSA2_Ts*C78HoWIj}1QC)^3zEBd1OrltQiR7gdPKVGB1?HB`0gl9dRC!R6 z^I2X^Np(?wZ+O5tw60`$r4wT);<>UfKiy4jR746-QGdt!@VBmhUukHw)-P=w^lL4;Y8QHL`Ab{y}eUbn&Ii*;Zb{Hea)S;@d zb^h3R14w6lDzqQaIWuaThOPd3nhiXUVWB@<$pW#**!bTk?nNYX#?QX#; zd#)dZ0t`4Qzy$=l>I)m@vxb|xr90wWeO_(CuZRy34Mh~EI+H*HT+v?*>#4nL;6x|H zN)e?M{+orvGZV4z6Sw`){sJ=hJIZkrJ>hx;%oBX7`mq1!xr)!YJtbs<90ijVcBAX3 za?7M^p*FYqxNMTu9yNF+T-IL%Y#W|I}Cv>T@gu9 zb=%|+$;Iuk6ZvZ4+#^yI2n-GkLxD(`s*?oIEKSm2jA;f*7;Z&Rk-1BLl#PqTiWp6q z9XxwDi6fgC&V@(RSVBKju_9yi>9@wY%XcZ6rtLH)$9Ig4j2h(ZF|24CXl-EUjq`+ zNJfKiAYz|kM;MWGVJ9#NyzsgugsxLP#-9;7u)*%Q8v}kZ7J(yQ>mqP60#))V zF$N`JdMwdDA1lM@8}D}e>&kB+e)5xDE58knCr;!?j-#)W5F`elQw3345!fscB1+qK zrK*qF-TwVlKP-utn(zKksBpgtj57Y3>_xiFLhlZH>FM3o- zCL$@qn&n>_!BOxR_`%o-Ygg`)H#osW5T%*0f$?-7Gx`h}hcE%oiCneAE?Y(7aB@Q( zCY?C>W9&>YFW*S$!bv^i!#Eg2R1Lc@V5|zAi_%;TxVfk-s!Qsbds8K4APW#hMs}Q5 zx~n=B=T7`T<){3V-&Y24IQZfFSCuUO?{3$>-fvF|{VPG=-OB*_&aSpu?cS&b%v1%l68tE{uNW7TzE37z~KX1Y-RrtpR`|G~W@jU#I zLUQ+G!a%QGze)NfZRS?ivg8o?Iu;_Pyb9>rWncsGr0)kDcvcs8N+}Xe=Um0JrA=|p z9-PjZ;rlO1#);$aB>&&{66on*vocYv>=&Wygn(Uk zii>Hdj|zNVv8~|R#_iuma<_;g`e(@9bAc=U>)gP;J?Q5zyj`nF)E)t>6FPFj7ztqa z^(iLm_}F`hT}*ZXcOl;*fLYAGEd?HZBu7 zMWEzuTj~!cq(-q~{Hyo+CHQ$ozxI-eW0MQMU%nOmgJt)kZkxIS^Km!e#QG2<*lv)z z5`&1tke%F$mE>wSwhW`TJ^gaUt-H}KNradL?_3WVab{A-DiOB@xgczbZB4*e$7uM0 zYo^U4kWq1!Knf!Ps}njhLZe8ZAau)Qjt=64Nbbf`#>0AjLmqwh)K0`KV-?sX$;$|y zz*~~V6=tFPyGlxAHwI^=QiU(|iAaTCdgBl1xr?69Ij%R*K{9sjyOlxZ*UW+(i6F*- zM2O@K>>WuW+~iYmX*RAJjF&H7wjv%u=+yae%7r*ojHhbL3Tw;hr-_?vz@h!WKqR5; z&hxV{(eMh-TYnsg5bt8pahlhR`f^3x-dmgz>5M1|yp-!~5E(Pm=ikBcN{MPl$N+!m zJdyppAa7MnLO=eLJSU{D6+lkLFp_Z+#ex2-PLZxowq|aybCc>#47=NJWW!`?#De%) z{N39*dAn_0{4B?$4T?WY4hePUaVK#wvPaS&>}D0)8t9JL6poR8MjkhHQ|a?^JOC?$ zRZvXkGJV8WI%+JDbxfQDR$<#=1+7hGye7@$%AIvBXEGOV(RR^CNCJnrM-qs!lmt@| zE3_#}hc>A91M;=%ZZG%P-f(Rfy|IS$T7>JT}Y&4SQ)_?Vvd709I2vqm0h*)%evFgJ^$XWLB4n$ zOLKC>7V;2oORBTB5_ZyeR}zRw>IexMB-_>>gXu5mAWjTXU&+9vi%Z8Pm2e#0%N_1W zCh35Mz92?xTJ9z%l(XMK=rGX%$X7_@80`QY*B&6J?h7VF@@C)jg$*y`ZX}rax6pYp#^ zkXXM{{*`le5U5Z8H2zyl)!t7X`%jcCmMr#v_ZZ%F?N0qv<7bho#M7S8EJDX4@F^fLT$z{k#UJHlChy`xQe zH@j{L3!CtTk!JqAed9c6-Y2f^AH9y{4$mhfbh7cG-c90onz{B)@X@wS!uu{)Sn>GO z1lwRA2*T{|eN9VjTi)6S{g9fhus%%^)hbSd^EdJL_&s@vyRa)oXm$a$qI z_0J0g1EUFy#BN#c_#5{}Xsf~(zFce>$igmEpZ0&dq_G8CKQiZsA;PB!5Db7DQ<8h0ILe7Csd*Ir?%1VvJqtpY&O|B%YwF2x;EWjklKM z?WS$ot{|1{f2YsWzKd=C8mmX!Ngd1Q`La5YC!{cD5+@|6+19go%V+lxliKC>32U3s zeVCCQ6VLB1f|Qiy&0x341!}Bx0^8Yu*GfTs8QzYwheV0DE26YZ7;)^9CW5dyziU5F zzg$sY5LbHvH+=UuJroQ4T~a0cjtL(V*ere(-)`TD?a&wFTfoOj9i-oB5KQ$wq3hEZ zb^zlUV4`g3vCY64zL|I_tm{)vLVlAfmQ$N#Td+R`0W>2VrB8l?&G=unH?f}>LzWS) ztZhmcOVZZ23&y;uils7>P4Ini^RbuQ6T(3nhBCzpb`C6C8C>eqwa4;tyeNqx5<$S> z@8p_USc#i%h~$ND_4;NxVyKca)N5s`iS=DVq=t*%T@*L{6LCB&I@E&(q^n6R%sOV_ z3n#o(RZWyn4?-j$Wr!PoB(XhemmrM0#KcG*x@v=9ma%5RH~%;I^(5x5;CYnd&+tPy znlSn5{Wdj@vtgWB{Ehs-#>bdAlM&Sp7()Nr&67aznK&h5eNGTDtmiLaa6-q>8{5s| z7deIxCV&EG#@27F**V1*MKbwJ>R|bpsG0C~@5>z|Okx@Pqn?vbupQX%O&l2p+Y~dd>M}WFvr@`_5}QxxSMs0YOE$^1L5c70N*+xp?9H>qHLy<9Di$dL)#Rl)=oD6tbKeGzuw{8fuDA`VT??SfZ_+*g-O^1z&&2x=NgeBC z^XbQYV4=2Ii#%%Ud=uOAI>}$i+`O`YUJwIimy*lEPepVTrm_wF#xV*q=17`~eUli< zV?cfvhZeYZ_3T?=P`*>dI^TD?}oDXS#ki0m4*Ox#P(Yc7>ilniu1L2ccu3|w7 z6+u$OP2d<3zKobHh@2vuPP9u5bId;ee~0L;2%I9LOPnH}KT%}=WCP=lz0g&}&|PFq z)R+k0b{#IVHtpDEkR;`Uh+xnqg2(`PK!?A?s++mhGWGfvyRVVPx+MuzGKl9L5+@lH zD5Z}qe7JOjWA%UM9AJIny!xGHlQD}hXFtRgqx5jU*GVPj3RSJw}j!m$AMMNg_9`p0Hbgc zB5AY=IQwDfn<#Ycxv@dTQ$UPuQ>yIa50%n&)m9=0PaN$MfUS6heVBAleDH4b+pc7j z@s10gNOxjXdRhOrq&o9~6F$yGSig|FTcTBra1J@O?A#)GBY8MJj3cgj*GH|^b=W7z zD?2a5v2Tff8Yk{A$Kdd7!w&K7 zr8_qj#@H96u-mQYPKzq}<4L)|yEylP@8Q3AcUx*ly3K8<%3>cKtS~CPzkp=?l%MiP z3r|oh`M+LH+ndQxlM4RbFIU{xf^;vND}SO6>Sdiw-e4If zUnpF&p2Z$y7{?;nB(>`cy_@{@kd&h0L%+SykN6H}X-B$*v3D79%->NW`HZWKY;qIx zE$W11HZ-P3ahA*x9QNBTu|ZxtR|6;cB>X|--L2c9&@8Udb&K!sGxMu}L*D7{?Yhxc z)KxfC5^-8i^&gedKi}==jdHSBv9GkL$*U4|y~ZoNxD^Wip}K=Xt1yfBws2Duy;4)U zlq+c2583QMxA1>dTeZKD2;?p5uW$eIIKX}`d1F6bU)~Ze&xz_{$YN3 z*QFkl02QCWl=_P}3cD`0mKd_An7^rH1M|YS<91Y$T^HW4lTNd6>pV*WnS)37f#6_> z=kayXw)rX}4CeC71LPzyz?k^CK=suQl?0-Qp?bc~ku!y_h^HW!=r7UNpNLx&;=92t zz_7s|ERRAsF)I2pd`;o0zhsgrFSrbY;!I!WJ*+nRVmUcx6MG4oY%6g#;hVkM^^Lbm zv!E(cr1XPb%l!lrrTk?65u5!s(&cee^>fxP8JreZgpIcwZwp^(-)sH->}(;=o-qXZ zA_>GSthOx(+Hq1xN!-BqD)}T}DgP+Tu(Fu$ZB6*JZmB1A7y2Q-7}XxZV;`dar0lBi z%wHk?!bpv&3X(~IGetsz20;<<$>zxmoSR*g2abh%4$mS{awO155B)atB+$FRWAFpX z`t>kQJujR5ZCwOm{9TD4pD5X!`ZmypZtA-tR!lMqjBS!sNR9|hg0w?Sk_h&Etda_} zjfRB@*-h-z)3pV1Ik7K%ZhW~SzK&%%Vc3Ck*JjNoy_ZNQ@jVOnM64g3$gxypeTHpPX0oi5-Q#xyA2I7Xulh)tHy(r0vDUG?efSodcx>Y02D z*~SC^%14;A)ODZ5hH!Z1&A#q@ zk6-XXj%(u=eBHzBIz}Q%1HYDG?biR*Zv9`J)N#pNq6W#vGU@ltlU1w^sA`*DY0aP;-~y~3QWkZ{1=iC zR2k>=N!$KJUz{G7KP7)sPO!3m_}k>)SH4uThr8W6$rVo4gGgYor%4?uQR7NT;4gxt zvMiQPHmsBEU+wL-r{_qOXp29V9scCWBQKQ-N7zeDkge=xQGR1NIbCl`#Qo`OKjMsE z-=aV!8BG#2W>{>~Dcla+5RdcF9oG&J$f?^5Z)x`FzY$)uunJh<#5OnD#=quddoPGq zSXrG}@ag*ZX&E5jNhCLj>RWBdRs?o^)i$4fPOcLo$QKwf3c_ZEooAzD)v7Hz8tuEm zZW3n^V^D6ef!FPBo3dlSy5-lr{`^10!#1MNf~Y=DG47VwHPKeYP<@(>IjoxlRpJYSLYm?u0qk(G5wii~uaP~F?%>m2Mu#pKj00!Rd) z_|ixZZ7Oh7zo-~e0@z8K=*l{-kC@tLl-GPp`F*dXaM>8ri|UN$R66pVerVe+wVR!| zTf^!xgK5@of;R_ukk1Pc3Ej{ewl5!%1VW7IiNJPJrqG{?dO!CO&bi^yv1liian1{*kwek;(IEn+|m5 zes&IB@&L*DEy`V=zT^${L4J$zeAsygP#-f#&{zE_;zZr1;^8={U*i`)ME_*+t$xGy zi8hsOB^{7AYxXq>Se3jnw-bWKB(EZkW2+*WTVyhev-Ugm9R)%=MW%MYD56Lq*w
    ;!BCSXrRAh-Bft=m?9Y7n9G#4)uvu+k9 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 F@;?-gi>&|v literal 0 HcmV?d00001 diff --git a/packages/editor/src/assets/desktop/icon_dns.png b/packages/editor/src/assets/desktop/icon_dns.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3cd0223fa7380658b08d6ad750c384f9ff3e16 GIT binary patch literal 8014 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 Y*MA<`vvoI*fS)+%@WdJZVFEBVSFgLM6em?*J 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 literal 0 HcmV?d00001 diff --git a/packages/editor/src/assets/desktop/icon_filebrowser.png b/packages/editor/src/assets/desktop/icon_filebrowser.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bd0a4a2fae3e24434f291c7c68d2f18f12ed26 GIT binary patch literal 4973 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 Y05;eLSP)anTmS$707*qoM6N<$f@9OJ(f|Me literal 0 HcmV?d00001 diff --git a/packages/editor/src/assets/desktop/icon_peertopeer.png b/packages/editor/src/assets/desktop/icon_peertopeer.png new file mode 100644 index 0000000000000000000000000000000000000000..32192ec299598a7da93602c38375bba129ad032d GIT binary patch literal 6676 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 literal 0 HcmV?d00001 diff --git a/packages/editor/src/assets/desktop/icon_softwareinstallation.png b/packages/editor/src/assets/desktop/icon_softwareinstallation.png new file mode 100644 index 0000000000000000000000000000000000000000..677f485522c29a64daa256b64d72ea5f6c5d65ff GIT binary patch literal 4513 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 literal 0 HcmV?d00001 diff --git a/packages/editor/src/assets/desktop/icon_terminal.png b/packages/editor/src/assets/desktop/icon_terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..c8bf2b8e0678ad1a70f1d129fdcaa2e31b2a54f2 GIT binary patch literal 1923 zcmV-}2YmR6P)|U zFEBR?>RZ78000vmZ_X00!SlL_t(| zob8)WOjBDP$3N#D`Vih5Wi&bonNo1`qS7cNlX-~>gdIb0F$-LXCQ8JOi6$;EF-^K~ z<3><7sF97D8pO>kASO;~bTqmhQ#CSC(;{k|Noa)&_1b%8(Le9D_CGCs^!ZIr%Dwk@ z?)`ng=X=gQwC4z=6u)O^l}@12_}vR202wPPjhTZ*Px3{s%xN2~drst;PBbVsE@v5g;D|R}#|JIw=l_p39_6v7|LkLrR&pbai#n)zy{px|EXBr%w|I1QN%o z_se$wTy^3CSh=p)0fn?eXJ;n>j~_oy8@FfA9-5k(xPALJQpy!|k37bJXkM8d;C8#Y zfB!zCqoa7eUX)U}-EII5A3n^RH*Zi%;q`iHZ*NCR$)-)4xO3+Y;c%FbA3x%9xf1H1 zIdg`AfdK{v2AH0nW@>7RUAuNAwbbzNFjuc$MborI$<^A{R?bx?tphT(?8wLn4u^vi zCr;pYyE%FCBrPp1ba!`i{``3c2M2lf>=`bXi^<7Jwr$(S#KZ)Czn>jDcHne6xqSID zfj|I{$HUmz7!HR6Ap{2b zWnyB2#l=NtXJ-*Y@bu}^Bui?V#?a7EA}*T%g_5>*!MwVFbs*C;jZi3*WTQYJz`lL^ z*t&HqQc4aTIz%uSWOjBIzu(XC zUcP*pIDY;5HJzQE%+1Y}gmk9*`}gmszrP=V#>U29fSHUA$fp%vym*ne&inW85kh3_ z%dcL&O1jq9*OzGhVu=?q70%oRN^QMdWoBmPn?719(gh2!TBOU_(wXX%RDfLl?YBa@ zAP3}Q!%`-++U`m#fb}5LptY7sr;E$l1*(yBRtH#5q)rzLAze&D@%UoKky1^CbIt?G z)pC_^SIGoeOQfx3MFOl<(km9AoC&SA(7)NK@M^fr8kbdoY9pPBk_ixxTdh~vN=RGD zeLh2METB(s$fI`2OSu3Qi7)&bUoQci`}0KNjI&~<&Wwzjsu98XY65s5@F z3*E`zX-F>ngBABL0I2{fe>H_;LpH%ppGo- z1&V|XSl`prbIfkH@5`q`AQ1S+^z`)Qc!DL)=PR%jyZ1b>R0I4M2=eQK=~AK=_>+_} zY(2TWyqpxYZr!@X-?7*^;3Ls>y`@Bap|lYzW{py68CcF*tw;zV>VO}KuF_6G*Y%`0 zs{pas1z=t&wN#G0tSGhR^TN_n*?HxS?*dffp{ZSyLv+2p zjqG!WTHq(cFhn@~>nlCg0oH4VVF;p|85&}*(M&LjPHYU|t5Pcc6f*~kae$5JCad+a zPa9<1ZDs>D=(;W!7Z(#JQypNvrt7){HWHnfWt$1cXLX-}1tEl~irEFKlq#qI^@D?h z+ZGlUUaAViFpSX6n>YUk`~i@vKrTwD;>Li+#>QVpMn?Ym<;$0UnWibT#m07`3DYz+ z72T$n$t_9Apya9FKCJRi}3})!<40~he=LFKRbMW(i?d0fY$ExP$=k&(g z&%>Wp>bvV?AkdWNzoyE5PIfRiZ!cCOx7SV}u(&W-S{N)za8GXm0+Gu=R9+ed=8fit z_!t=%3@Wr>BVjS6NL?9`O%$8wCb#S#Fwn*`xNTv7L?2qn8Hv%cqp|AY7A`^Tj{CYl9x_e;$Y? z(1CLQ4Tms#GmSR)qmC1iLb!|sT@Wv640h&lw1jlJQ}SWf$aYsOl?ubE$prc;l+yav zBC?nl6Z+z+em%{=?0R>flF84blyws1uhP47N=}Sdv7=kZPNm95M@&JCS4IvGKlvB9 zw4*}EPQnU2C5Tp*!#jb8?CASBi*G z2<|ArC8F`!9-)WHFsYT0H_a1A_O5}tk+9Ufyo9kG^wZd>s9(h`ZH zlF}m*5)wyeXW$9?<}U9=Sk9Qj10!92?R&cqJ9m*64lKS712vUDw51+#_kLE6nX9+M z*3r?K^OTVAoa>fc3B^`~LdjS{(OAsMF@OH(@(T!T`Hqf`eo9ZbYcRuLHj?9#lLy_u zPcAR(hJ?sEIXQs>JFII=s`r9{j_DHB_(BdE2FG2+50=_8J3=lSy;ojb94@FsAOs;7 z2W!LLN$8&~hZ}o7<{Y5ayUP`x=g-r}Ufd)A;K|eF0R;sG5tEPrJ-NEOvvY7@M`mPX zi0nv(-%4FwT^Si0f1cf!euHAn&d%OF4+ed+s6BXPYN~E;&n}cn1j^TaoRH9J)fVtO zd@WoHOxJf9aC$Zc#qLCkbq}Qrm?QkkG`WS^?RxR%t-raZ+$!+!s5hI|TBtfXajB}R zIwa9*5@btxo$pP534iwN+3nfeQ9;YRu{$z_k@Hy_h3)VUF)_zip_sdS-~Yv3Q9n7_ zOury+J#1d!J`^K2NAU@5pZCYl$sFvUtGl)mnPiJ8npTbqeI(-NLGQ9~kmqM-<5N>5 zsc}!67Y_N&fz=CW%P%Nkp04{CZ}S%WF{y3K!r=4nD#MCaM9b3-HRbN3oyWf+w|Db2 z%OS_Ox&?B4H~s7F{hq+0&_HyR5WO*E)s8@IK&h+l?(Vz-0wu-8?^07KMx4crjg9*T z2MtY3)PjPf%gV~k1Zk)V_RfQe@uK8xqz(dPz3&#h&2qiCS1&g%Z;l^7a*cY4A`84a z*~;AA+cTiIW7l@0(a_fZba;IoOhHL$+~{LuVv?GY@^;?S897;Y!j!KN@dD^2Yt%X8 z*()_aKT(NXomAFH>pGT8WY^ur0x>Z$y6s=EP@r6i+LMLFpwhCk{u;v(PCDISc(Fz? zoLek+^n{7lzl&8YzQ33qfo_icNU%=1yT8A&U)SYqJD$Wdub3>{mtSr~Q*hLMba`4k zJh~zLP))q%@RRxqYlDsE9cApaz_*3N_N(n&se`aAZEl2gU7_-9`D5Q)gDgaFt$1Kf zY!D9qhiUikQjDa6G(>C^b6**k6_@{)}!Ivqncq^>nso$YP$aY-UEr*P`AURUvTKg90Q(V%nF@9-XM zZ5#TF1DiCl{Gbv8##uz$g(M_rGs8a(UjCwcAF>wJI!88GEQ4-gc{%+L1AHN zGY3R;k@7uxu_2Y}775`bQRddxmi}#KMc_rssjD1%_~u^IVF#2yR02@n`A5!Nt8dBB z>jJ{^O#=8;MEe5=IqFG2VcU`rheG61+nc5!9WG4})x)o5Ffs&{bVDymin4V%esOYo zS^-P+>GK5n8m7SEVL!Lu(P5D?%f%M+^4EcLXnF7VQK*46A3cEV0B@9)mH!%d_ALtT z#GZ8ObMS^^0v|5hF$)S-%_oMUk&4E~>1T5wh(V8stp7GKfYR<*vhlxvOHT+#otroj zz(BA$tV^feRja2b|NebHywzjhfF4w6@7W;xu4a6{-Y<2g)lAO9^6=mRh|1vA>CRT? zgsY>its<&z$qV9K#QoxBKo3!#m`l<@W^QgZ{OlEE9+COudf3?a?y*j4=3CT zL96Z8NSo`!Jt!-(IkO_TEsdQU`@IsI`CGsb&(6;wU0ro`$$$SEQK_Z`h1&s9fOFVG zNy1@(7!kd3hMaQbybp5x=U-BAed|-iRmjqHQj+zFf_(EEovo`Ye%-7Zz<^rS z$I3Am7nco~OjTv2EdX4QsP@HGC?GeCq>ptgC{^{r42gim0S(mIe=BqiG!I&AeN&&C zs*{$@jlMkU-Z<7shFu)Yi{1iiD+;6OpEM%@vpojfWi6m>@a|!Eq6FYiV`F1wb#=-2 z@6;XEP(TTuKYtE`!RjL(!VL@!v3P}rAFB~D$B?mxhL-XNU%8Yg18E+f|1}sS@E0K4A&R+(u0O>e|=;(bl$wU}q|V!wE%2 zMF&Qqy6=bi69jEKLt)dZb9Jk@s`|XVyo&l%8G`2Q$!!}+K;qzR?|icomZ^@aOCGvb zrgia=xvG#0S_uOdV3rax1Jor$$cm6P?X$;BO`LgVR>e#GYq;m-#l@HFxH~gAr@Xv8 z=V_s(%ZUm}pr*Tj;NH9qG*IaC?UubJo{vnvS*^)5$#Ze>@r4BeYHwH9qNXOwimBh3 zHsNu-YkKEzq!>lJFe`1#>&w%J{5@$?)`c0Eo(LW~Vo@onU-x%6^o)#*O%_~!1b>WZ z{Qx6tZk7NPtjT38>ALIJ1Hw`WsD~76_akTD-k!URjLh!t?&@5F15kCq;LKomF`RDL z{5_P=hhD>IPHyhWnHe>6b9#%~4D%*ua(tXk_>%_yP0b9H_HW8FAQ6(1J{q5&=i363 z$(JXXzBo!iq|SmnI92p($yLt#J6Dn;Fd3ojo3_m8j}PAw3rFKXEp-T|k>CI28?Bo&Bey5+WdOyH#k1_rxrwoV)Wbg9>(p&{j43lJ#O z#nv_wz#AM6FYOhdJ`1kFXTf^iok!n0k(pLnTKciDP*}dxr+9d1D3z1z9|)K}V8#If z5-Zlf<%ppi1GD??W;ZQ=9bA#FNA|}`K+rWB8(Z_ySYd4s z+xyEGaQLr3qpend%925WF~EycOe`%ai4@7FYZ8|u1ej67GE~q|Hu#J;k~l`;dY7Z~ z1|=&aD_d1nmBQB8yH?b7r;x?-MV7qpa`~9i>z9o>5VokPsevr7E>zZFCir(|#+qqV zn9UiRlaupfdU~{VooRFrc>QWLS2DS$M+rdtI1(lFMc#y1TnUSCU2vRo((>n!-HS!-r1C6m9%rA^A3O~fwE)Yd`+M*aKP-h#PELSH+Ye_v zb3k#4i0E_6tKJJsO46$8yLx$L)Y%FGu@1lxFn>h=F| zdH_fegEecGg!g?W)y5Xfo)U(}zFCngTHQxnyQk!6;GG>t0q*nHx5*G)-Hh~Y^cNpH zyU*?^uy2|$UEQQlF~Y@3BeVnW1lV7$F=BnOqs7M=r)U+w?Z63T7Ltjdrdg{uOK0vr z(R7#8u_F!BGc!Zz+5K~SaRy+&*uQaHZ{JV2x3|}dEYAgD*5iex0%~Z&COy9q9K)o< z<&Muz9i%oa6gTl*DHGA!0$}c2YQ#%6TIK}+Ho(51wH?c^QLIXu#dd!z;#^Yyg=R+U zvqtD9zEqqUIEe3tpN5%;f|y5%oH^=Ri!^h%KTq19&SV{v=@RijYNL3P&w9KEQE^gq z6VPZ4>~<{AcPYZp+O56&AZqgx7ET)aR5XHS-T7~pA*QCZxe~8?c23t$uLjQI7n1|N z`pi2%sB7f}%Q0IDnPO-;ytQ2;XB8SUIx)6C18mz?jsV|Szr5LcBWW+CbD@7akoeT; z2H+MYzbNy-zSw-j`oc?nNpx^WW+(lmSJyrwzs%uUU4Ykf!JxiT-fqqA`0C*M88TE5 pe@8e`Ey|>NYYM86=-%*vEu~T)_cOuw4)~u11X0yh`Ko05?*D8->v8}9 literal 0 HcmV?d00001 diff --git a/packages/editor/src/assets/desktop/icon_webserver.png b/packages/editor/src/assets/desktop/icon_webserver.png new file mode 100644 index 0000000000000000000000000000000000000000..160a00f7c938653346d978b2504dea2e974e4a2d GIT binary patch literal 5330 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 gS3^U?toZTlJG-RDZyFf=bRGcPbU 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 literal 0 HcmV?d00001 diff --git a/packages/editor/src/canvas/Canvas.tsx b/packages/editor/src/canvas/Canvas.tsx index 5cfb6d0..05e5cf5 100644 --- a/packages/editor/src/canvas/Canvas.tsx +++ b/packages/editor/src/canvas/Canvas.tsx @@ -56,8 +56,19 @@ export interface CanvasProps { readonly onMenu?: (target: Selection, at: Point) => void; /** A cable drawn active, as Java draws the cable of the card whose tab is open (Kabel.setAktiv). */ readonly highlightedLink?: string | null; + /** + * The simulation: a tap on a device activates it (a computer's desktop), + * a long press opens its menu; nothing moves, nothing is selected, as in + * Java's simulation mode. + */ + readonly mode?: 'design' | 'simulation'; + /** The cables that carry a frame now, drawn as Java draws them then (JCablePanel.farbeBlinken). */ + readonly activeLinks?: ReadonlySet; + readonly onActivate?: (id: string) => void; } +const NO_LINKS: ReadonlySet = new Set(); + /** The label's width in Java's font, measured once per text. */ function useTextWidth(): (text: string) => number { const cache = useRef(new Map()); @@ -141,7 +152,7 @@ type Gesture = | { readonly kind: 'link'; readonly id: string; readonly start: Point; moved: boolean; longPressed: boolean }; export const Canvas = forwardRef(function Canvas( - { view, tool = 'select', selection = null, cableFrom = null, onSelect, onMoveDevice, onMoveEnd, onCableStart, onCable, onMenu, highlightedLink = null }, + { view, tool = 'select', selection = null, cableFrom = null, onSelect, onMoveDevice, onMoveEnd, onCableStart, onCable, onMenu, highlightedLink = null, mode = 'design', activeLinks = NO_LINKS, onActivate }, handle, ) { const t = useTranslate(); @@ -222,6 +233,7 @@ export const Canvas = forwardRef(function Canvas( [kinds, t], ); + const simulating = mode === 'simulation'; const pointers = useRef(new Map()); const gesture = useRef(null); const longPress = useRef | null>(null); @@ -258,7 +270,7 @@ export const Canvas = forwardRef(function Canvas( now.longPressed = true; onMenu?.({ kind: 'device', id: now.id }, now.start); }, LONG_PRESS_MILLISECONDS); - } else if (linkId !== undefined && linkId !== null) { + } else if (linkId !== undefined && linkId !== null && !simulating) { gesture.current = { kind: 'link', id: linkId, start: point, moved: false, longPressed: false }; longPress.current = setTimeout(() => { const now = gesture.current; @@ -302,7 +314,7 @@ export const Canvas = forwardRef(function Canvas( const step = { x: point.x - now.last.x, y: point.y - now.last.y }; now.last = point; setViewport((before) => shifted(before ?? currentRef.current, step)); - } else if (now.kind === 'device' && !now.longPressed) { + } else if (now.kind === 'device' && !now.longPressed && !simulating) { if (tool === 'cable') { const from = boxes.get(now.id)!.center; const target = deviceAt(point); @@ -328,7 +340,7 @@ export const Canvas = forwardRef(function Canvas( return; } if (now.kind === 'background') { - if (!now.moved) { + if (!now.moved && !simulating) { onSelect?.(null); if (cableFrom !== null) onCableStart?.(null); } @@ -339,6 +351,10 @@ export const Canvas = forwardRef(function Canvas( return; } if (now.longPressed) return; + if (simulating) { + if (!now.moved) onActivate?.(now.id); + return; + } if (tool === 'cable') { setBand(null); const from = { id: now.id, side: now.side }; @@ -399,6 +415,7 @@ export const Canvas = forwardRef(function Canvas( ref={surface} className="filius-canvas" data-tool={tool} + data-mode={mode} role="application" aria-label={t('canvas.label')} style={{ ...style, cursor: tool === 'cable' ? 'crosshair' : 'default' }} @@ -421,7 +438,7 @@ export const Canvas = forwardRef(function Canvas( if (source === undefined || target === undefined) return null; const d = cablePath(source.center, target.center); const selected = selection?.kind === 'link' && selection.id === link.id; - const active = highlightedLink === link.id; + const active = simulating ? activeLinks.has(link.id) : highlightedLink === link.id; return ( (function Canvas( )} - {menuButton === null || selection === null ? null : ( + {menuButton === null || selection === null || simulating ? null : ( + +
    +
      +
    • + {/* The programs' windows come with the next steps. */} + +
    • + {desktopPrograms(view.programs, language).map((program) => ( +
    • + +
    • + ))} +
    + {info ? ( + // A press beside the panel closes it, as in Java. +
    event.target === event.currentTarget && setInfo(false)}> +
    + {rows.map(([label, value]) => ( +
    +
    {label}
    +
    {value}
    +
    + ))} +
    +
    + ) : null} +
    +
    + + + +
    + + ); +} diff --git a/packages/editor/src/desktop/desktop.css b/packages/editor/src/desktop/desktop.css new file mode 100644 index 0000000..0f63ac6 --- /dev/null +++ b/packages/editor/src/desktop/desktop.css @@ -0,0 +1,185 @@ +/* A computer's desktop after Java's GUIDesktopPanel: 640 × 460 pixels below + * the title bar, a grey taskbar at the bottom (180, 180, 180; 44 pixels high + * for a finger, Java's has 30), icons of 120 × 96 with white names on Java's + * background. On a phone it fills the surface. Java's colours stay in both + * themes: the screen is the simulated computer's, not the editor's. */ +.desktop-window { + position: absolute; + z-index: 5; + display: flex; + flex-direction: column; + width: 640px; + max-width: 100%; + height: calc(460px + 14px + 36px); + max-height: 100%; + box-sizing: border-box; + border: 1px solid var(--border-strong); + border-radius: 8px; + overflow: hidden; + background: var(--surface-card); + box-shadow: 0 8px 24px color-mix(in srgb, var(--shadow-color) 25%, transparent); +} + +/* Below the mode buttons, which stay in reach. */ +@media (max-width: 639px) { + .desktop-window { + inset: 72px 0 0 0 !important; + width: auto; + height: auto; + border-radius: 0; + } +} + +.desktop-titlebar { + display: flex; + align-items: center; + gap: 8px; + min-height: 36px; + padding: 0 0 0 8px; + background: var(--surface-raised); + border-bottom: 1px solid var(--border-default); + cursor: move; + touch-action: none; + user-select: none; +} + +.desktop-titlebar img { + width: 24px; + height: 24px; + object-fit: contain; +} + +.desktop-titlebar h2 { + flex: 1; + margin: 0; + font-size: 15px; + font-weight: 600; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + color: var(--text-primary); +} + +.desktop-close { + min-width: 44px; + min-height: 36px; + border: none; + background: transparent; + color: var(--text-secondary); + font: inherit; + font-size: 22px; + cursor: pointer; +} + +.desktop-screen { + position: relative; + flex: 1; + min-height: 0; + overflow: auto; + background-size: cover; + background-position: top left; +} + +.desktop-icons { + display: flex; + flex-wrap: wrap; + gap: 10px 5px; + margin: 0; + padding: 10px 5px; + list-style: none; +} + +.desktop-icon { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 4px; + width: 120px; + height: 96px; + padding: 0; + border: none; + border-radius: 6px; + background: transparent; + color: #ffffff; + font: 13px Dialog, sans-serif; + cursor: pointer; +} + +.desktop-icon[aria-disabled='true'] { + cursor: default; +} + +.desktop-icon:focus-visible { + outline: 2px solid #ffffff; +} + +.desktop-icon img { + width: 64px; + height: 64px; +} + +.desktop-info-layer { + position: absolute; + inset: 0; + display: flex; + justify-content: flex-end; + align-items: flex-end; +} + +.desktop-network { + margin: 0; + padding: 8px 12px; + border: 2px inset #c0c0c0; + background: #eeeeee; + color: #000000; + font: 13px Dialog, sans-serif; +} + +.desktop-network div { + display: grid; + grid-template-columns: 110px 140px; + align-items: center; + min-height: 26px; +} + +.desktop-network dt, +.desktop-network dd { + margin: 0; +} + +.desktop-network dd { + padding: 2px 6px; + background: #ffffff; + border: 1px solid #b0b0b0; + font-variant-numeric: tabular-nums; + user-select: text; +} + +.desktop-taskbar { + display: grid; + grid-template-columns: 52px 1fr 52px; + align-items: stretch; + height: 44px; + flex: none; + background: rgb(180 180 180); +} + +.desktop-home, +.desktop-network-icon { + border: none; + background: transparent; + color: #000000; + font: 13px Dialog, sans-serif; + cursor: pointer; +} + +.desktop-home { + justify-self: center; + padding: 0 12px; +} + +.desktop-network-icon img { + width: 18px; + height: 18px; +} diff --git a/packages/editor/src/desktop/programs.ts b/packages/editor/src/desktop/programs.ts new file mode 100644 index 0000000..a01327e --- /dev/null +++ b/packages/editor/src/desktop/programs.ts @@ -0,0 +1,56 @@ +// The programs of a computer's desktop, after Java's list of them +// (config/Desktop_.txt: name, class, window, icon), which also sets +// their order there — each language's own (the English list is alphabetical, +// the German one is not). The DHCP server has no window on the desktop; it is +// set up in the device sheet, as in Java. + +import type { InstallableProgram } from '@mdg-filius/core'; +import type { Language } from '../i18n/i18n.js'; +import browser from '../assets/desktop/icon_browser.png'; +import simpleClient from '../assets/desktop/icon_clientbaustein.png'; +import dns from '../assets/desktop/icon_dns.png'; +import emailClient from '../assets/desktop/icon_emailprogramm.png'; +import emailServer from '../assets/desktop/icon_emailserver.png'; +import fileExplorer from '../assets/desktop/icon_filebrowser.png'; +import firewall from '../assets/desktop/icon_firewall.png'; +import imageViewer from '../assets/desktop/icon_imageviewer.png'; +import gnutella from '../assets/desktop/icon_peertopeer.png'; +import echoServer from '../assets/desktop/icon_serverbaustein.png'; +import installation from '../assets/desktop/icon_softwareinstallation.png'; +import terminal from '../assets/desktop/icon_terminal.png'; +import textEditor from '../assets/desktop/icon_texteditor.png'; +import webServer from '../assets/desktop/icon_webserver.png'; + +export type DesktopProgram = Exclude; + +/** Each program's class in Java and its icon (gfx/desktop). */ +export const JAVA_PROGRAMS: Readonly> = { + commandPrompt: { javaClass: 'filius.software.lokal.Terminal', icon: terminal, iconFile: 'icon_terminal.png' }, + imageViewer: { javaClass: 'filius.software.lokal.ImageViewer', icon: imageViewer, iconFile: 'icon_imageviewer.png' }, + fileExplorer: { javaClass: 'filius.software.lokal.FileExplorer', icon: fileExplorer, iconFile: 'icon_filebrowser.png' }, + dnsServer: { javaClass: 'filius.software.dns.DNSServer', icon: dns, iconFile: 'icon_dns.png' }, + emailClient: { javaClass: 'filius.software.email.EmailAnwendung', icon: emailClient, iconFile: 'icon_emailprogramm.png' }, + emailServer: { javaClass: 'filius.software.email.EmailServer', icon: emailServer, iconFile: 'icon_emailserver.png' }, + echoServer: { javaClass: 'filius.software.clientserver.ServerBaustein', icon: echoServer, iconFile: 'icon_serverbaustein.png' }, + simpleClient: { javaClass: 'filius.software.clientserver.ClientBaustein', icon: simpleClient, iconFile: 'icon_clientbaustein.png' }, + firewall: { javaClass: 'filius.software.firewall.Firewall', icon: firewall, iconFile: 'icon_firewall.png' }, + gnutella: { javaClass: 'filius.software.dateiaustausch.PeerToPeerAnwendung', icon: gnutella, iconFile: 'icon_peertopeer.png' }, + textEditor: { javaClass: 'filius.software.lokal.TextEditor', icon: textEditor, iconFile: 'icon_texteditor.png' }, + webServer: { javaClass: 'filius.software.www.WebServer', icon: webServer, iconFile: 'icon_webserver.png' }, + webBrowser: { javaClass: 'filius.software.www.WebBrowser', icon: browser, iconFile: 'icon_browser.png' }, +}; + +/** The software installation's icon, always first on the desktop (GUIDesktopPanel.initInstaller). */ +export const INSTALLATION_ICON = installation; + +/** The order of Java's list in each language. */ +export const DESKTOP_ORDER: Readonly> = { + de: ['commandPrompt', 'imageViewer', 'fileExplorer', 'dnsServer', 'emailClient', 'emailServer', 'echoServer', 'simpleClient', 'firewall', 'gnutella', 'textEditor', 'webServer', 'webBrowser'], + en: ['commandPrompt', 'dnsServer', 'echoServer', 'emailServer', 'emailClient', 'fileExplorer', 'firewall', 'simpleClient', 'gnutella', 'imageViewer', 'textEditor', 'webBrowser', 'webServer'], +}; + +/** A computer's programs as its desktop shows them, in the language's order. */ +export function desktopPrograms(installed: readonly InstallableProgram[], language: Language): DesktopProgram[] { + const have = new Set(installed); + return DESKTOP_ORDER[language].filter((program) => have.has(program)); +} diff --git a/packages/editor/src/i18n/de.json b/packages/editor/src/i18n/de.json index 86a53af..10086bb 100644 --- a/packages/editor/src/i18n/de.json +++ b/packages/editor/src/i18n/de.json @@ -22,6 +22,9 @@ "design.palette": "Komponenten", "design.redo": "Wiederholen", "design.undo": "Rückgängig", + "desktop.home": "Startbildschirm", + "desktop.installation": "Software-Installation", + "desktop.network": "Netzwerk", "dev.example": "Beispiel", "dev.newProject": "Neues Projekt", "dev.openFile": "Datei öffnen …", @@ -79,6 +82,29 @@ "menu.delete": "Löschen", "menu.removeAllCables": "Alle Verbindungen entfernen", "menu.removeCable": "Verbindung entfernen", + "menu.showDesktop": "Desktop anzeigen", + "mode.currentSpeed": "Aktuelle Simulationsgeschwindigkeit", + "mode.design": "Wechselt in den Entwurfsmodus", + "mode.simulation": "Wechselt in den Aktionsmodus", + "mode.speed": "Simulationsgeschwindigkeit anpassen", + "network.dnsServer": "DNS-Server:", + "network.gateway": "Gateway:", + "network.ipAddress": "IP-Adresse:", + "network.macAddress": "MAC-Adresse:", + "network.subnetMask": "Netzmaske:", + "program.commandPrompt": "Befehlszeile", + "program.dnsServer": "DNS-Server", + "program.echoServer": "Echo-Server", + "program.emailClient": "E-Mail-Programm", + "program.emailServer": "E-Mail-Server", + "program.fileExplorer": "Datei-Explorer", + "program.firewall": "Firewall", + "program.gnutella": "Gnutella", + "program.imageViewer": "Bildbetrachter", + "program.simpleClient": "Einfacher Client", + "program.textEditor": "Text-Editor", + "program.webBrowser": "Webbrowser", + "program.webServer": "Webserver", "route.destinationNetwork": "Ziel", "route.gateway": "Nächstes Gateway", "route.interfaceIPAddress": "Über Schnittstelle", @@ -127,6 +153,7 @@ "sheet.switchSsid": "Name WLAN (SSID)", "sheet.title": "Einstellungen", "sheet.wireless": "Drahtlos (WLAN)", + "sim.failed": "Die Simulation ist auf einen Fehler gestoßen und wurde beendet.", "zoom.fit": "Alles zeigen", "zoom.in": "Vergrößern", "zoom.level": "{percent} %", diff --git a/packages/editor/src/i18n/en.json b/packages/editor/src/i18n/en.json index 1079ff7..b07fb24 100644 --- a/packages/editor/src/i18n/en.json +++ b/packages/editor/src/i18n/en.json @@ -22,6 +22,9 @@ "design.palette": "Components", "design.redo": "Redo", "design.undo": "Undo", + "desktop.home": "Home Screen", + "desktop.installation": "Software Installation", + "desktop.network": "Network", "dev.example": "Example", "dev.newProject": "New project", "dev.openFile": "Open file …", @@ -79,6 +82,29 @@ "menu.delete": "Delete", "menu.removeAllCables": "Remove all cables", "menu.removeCable": "Remove cable", + "menu.showDesktop": "Show desktop", + "mode.currentSpeed": "Current Simulation Velocity", + "mode.design": "Change to Design Mode", + "mode.simulation": "Change to Simulation Mode", + "mode.speed": "Adjust Simulation Velocity", + "network.dnsServer": "DNS server:", + "network.gateway": "Gateway:", + "network.ipAddress": "IP address:", + "network.macAddress": "MAC address:", + "network.subnetMask": "Netmask:", + "program.commandPrompt": "Command Line", + "program.dnsServer": "DNS server", + "program.echoServer": "Echo server", + "program.emailClient": "Email program", + "program.emailServer": "Email server", + "program.fileExplorer": "File explorer", + "program.firewall": "Firewall", + "program.gnutella": "Gnutella", + "program.imageViewer": "Image viewer", + "program.simpleClient": "Generic client", + "program.textEditor": "Text editor", + "program.webBrowser": "Webbrowser", + "program.webServer": "Webserver", "route.destinationNetwork": "Destination", "route.gateway": "Next gateway", "route.interfaceIPAddress": "NIC", @@ -127,6 +153,7 @@ "sheet.switchSsid": "Wi-Fi Name (SSID)", "sheet.title": "Settings", "sheet.wireless": "Wireless (Wi-Fi)", + "sim.failed": "The simulation ran into an error and was stopped.", "zoom.fit": "Show all", "zoom.in": "Zoom in", "zoom.level": "{percent} %", diff --git a/packages/editor/src/i18n/i18n.tsx b/packages/editor/src/i18n/i18n.tsx index 2342eca..ccdd99d 100644 --- a/packages/editor/src/i18n/i18n.tsx +++ b/packages/editor/src/i18n/i18n.tsx @@ -24,6 +24,10 @@ export function LanguageProvider({ language, children }: { readonly language: La return {children}; } +export function useLanguage(): Language { + return useContext(LanguageContext); +} + export function useTranslate(): Translate { const language = useContext(LanguageContext); return (key, values) => translate(language, key, values); diff --git a/packages/editor/src/main.tsx b/packages/editor/src/main.tsx index 02ecf65..b799a78 100644 --- a/packages/editor/src/main.tsx +++ b/packages/editor/src/main.tsx @@ -7,7 +7,7 @@ import { StrictMode, useEffect, useState } from 'react'; import { createRoot } from 'react-dom/client'; import * as Y from 'yjs'; -import { deviceSheet, emptyProject, topologyView, writeProject } from '@mdg-filius/doc'; +import { desktopView, deviceSheet, emptyProject, topologyView, writeProject } from '@mdg-filius/doc'; import { openProjectArchive } from '@mdg-filius/fls'; import { startBridge } from './bridge/dashboardBridge.js'; import { Editor } from './Editor.js'; @@ -62,7 +62,7 @@ function App() { // The development page lets its browser tests read the document's drawing (never the editor embedded in the dashboard). useEffect(() => { - (window as unknown as { filiusDev?: unknown }).filiusDev = doc === null ? undefined : { view: () => topologyView(doc), sheet: (id: string) => deviceSheet(doc, id) }; + (window as unknown as { filiusDev?: unknown }).filiusDev = doc === null ? undefined : { view: () => topologyView(doc), sheet: (id: string) => deviceSheet(doc, id), desktop: (id: string) => desktopView(doc, id) }; }, [doc]); const t = (key: string) => translate(language, key); diff --git a/packages/editor/src/simulation/ModeBar.tsx b/packages/editor/src/simulation/ModeBar.tsx new file mode 100644 index 0000000..198a829 --- /dev/null +++ b/packages/editor/src/simulation/ModeBar.tsx @@ -0,0 +1,44 @@ +// Java's mode buttons (GUIMainMenu: design and simulation mode, with Java's +// icons) and, while the simulation runs, its speed slider with the per cent +// beside it. Java's keys for the modes (Ctrl+D, Ctrl+R) are not offered: in +// a browser they bookmark and reload the page. + +import type { CSSProperties } from 'react'; +import type { SimMode } from '@mdg-filius/protocol'; +import simulation from '../assets/modes/aktionsmodus.png'; +import simulationOn from '../assets/modes/aktionsmodus_aktiv.png'; +import design from '../assets/modes/entwurfsmodus.png'; +import designOn from '../assets/modes/entwurfsmodus_aktiv.png'; +import { useTranslate } from '../i18n/i18n.js'; + +const modeButton: CSSProperties = { + width: 52, + height: 52, + padding: 0, + border: '1px solid var(--border-default)', + borderRadius: 8, + background: 'var(--surface-raised)', + cursor: 'pointer', +}; + +export function ModeBar({ mode, speed, onMode, onSpeed }: { readonly mode: SimMode; readonly speed: number; readonly onMode: (mode: SimMode) => void; readonly onSpeed: (value: number) => void }) { + const t = useTranslate(); + return ( + <> + + + {mode === 'simulation' ? ( + + ) : null} + + ); +} diff --git a/packages/editor/src/simulation/useSimulation.ts b/packages/editor/src/simulation/useSimulation.ts new file mode 100644 index 0000000..daa2375 --- /dev/null +++ b/packages/editor/src/simulation/useSimulation.ts @@ -0,0 +1,105 @@ +// The editor's side of the simulation room (plan §6): its mode and speed, +// the cables that carry frames, a computer's network as it runs. The room +// runs behind a SimHost — in a worker of this page (LocalSimHost) until F +// holds it (RemoteSimHost, F5); the editor keeps no simulation of its own. + +import { useCallback, useEffect, useRef, useState } from 'react'; +import type * as Y from 'yjs'; +import type { NodeSettings, SimHost, SimMode, Topic } from '@mdg-filius/protocol'; +import { LocalSimHost } from '@mdg-filius/sim'; +import SimWorker from '@mdg-filius/sim/worker?worker'; + +/** Makes the room of a document. */ +export type SimHostFactory = (doc: Y.Doc) => SimHost; + +/** The room in a worker of this page. */ +export const localSimHost: SimHostFactory = (doc) => { + const worker = new SimWorker(); + return new LocalSimHost(doc, worker, () => worker.terminate()); +}; + +export interface Simulation { + readonly mode: SimMode; + /** Java's slider, 1 to 100 per cent. */ + readonly speed: number; + /** The cables that carried a frame at the last tick. */ + readonly activeLinks: ReadonlySet; + /** Each watched computer's network as the simulation runs it. */ + readonly nodes: ReadonlyMap; + /** Whether the core failed and the room went back to design mode, since the last start. */ + readonly failed: boolean; + start(): void; + stop(): void; + setSpeed(value: number): void; + /** Watches these topics until the returned function is called; a topic two parts watch is sent for once. */ + watch(topics: readonly Topic[]): () => void; +} + +const NO_LINKS: ReadonlySet = new Set(); + +export function useSimulation(doc: Y.Doc, createHost: SimHostFactory = localSimHost): Simulation { + const host = useRef(null); + const watched = useRef(new Map()); + const [mode, setMode] = useState('design'); + const [speed, setSpeedState] = useState(100); + const [activeLinks, setActiveLinks] = useState>(NO_LINKS); + const [nodes, setNodes] = useState>(new Map()); + const [failed, setFailed] = useState(false); + + useEffect(() => { + const made = createHost(doc); + host.current = made; + const stop = made.onMessage((message) => { + switch (message.kind) { + case 'state': + setMode(message.mode); + setSpeedState(message.speed); + if (message.mode === 'design') setActiveLinks(NO_LINKS); + return; + case 'activity': + setActiveLinks(new Set(message.links)); + return; + case 'node': + setNodes((before) => new Map(before).set(message.node, message.settings)); + return; + case 'error': + if (message.code === 'engineFailed') setFailed(true); + return; + default: + return; + } + }); + made.send({ v: 1, kind: 'sub', topics: ['activity', ...watched.current.keys()] }); + return () => { + stop(); + made.close(); + host.current = null; + }; + }, [doc, createHost]); + + const start = useCallback(() => { + setFailed(false); + host.current?.send({ v: 1, kind: 'start' }); + }, []); + const stop = useCallback(() => host.current?.send({ v: 1, kind: 'stop' }), []); + const setSpeed = useCallback((value: number) => host.current?.send({ v: 1, kind: 'speed', value }), []); + const watch = useCallback((topics: readonly Topic[]) => { + const fresh = topics.filter((topic) => { + const count = watched.current.get(topic) ?? 0; + watched.current.set(topic, count + 1); + return count === 0; + }); + if (fresh.length > 0) host.current?.send({ v: 1, kind: 'sub', topics: fresh }); + return () => { + const gone = topics.filter((topic) => { + const count = (watched.current.get(topic) ?? 1) - 1; + if (count > 0) watched.current.set(topic, count); + else watched.current.delete(topic); + return count <= 0; + }); + if (gone.length > 0) host.current?.send({ v: 1, kind: 'unsub', topics: gone }); + }; + }, []); + + return { mode, speed, activeLinks, nodes, failed, start, stop, setSpeed, watch }; +} diff --git a/packages/editor/test/i18n.test.ts b/packages/editor/test/i18n.test.ts index d042fda..af976bf 100644 --- a/packages/editor/test/i18n.test.ts +++ b/packages/editor/test/i18n.test.ts @@ -109,6 +109,16 @@ const FROM_JAVA: Readonly> = { 'connections.local': 'jvermittlungsrechnerkonfiguration_msg22', 'connections.add': 'jvermittlungsrechnerkonfiguration_msg24', 'connections.most': 'jvermittlungsrechnerkonfiguration_msg25', + 'mode.speed': 'guimainmemu_msg16', + 'mode.currentSpeed': 'guimainmemu_msg15', + 'menu.showDesktop': 'guievents_msg3', + 'desktop.home': 'desktoppanel_application', + 'desktop.installation': 'desktoppanel_msg1', + 'network.ipAddress': 'network_msg1', + 'network.subnetMask': 'network_msg4', + 'network.dnsServer': 'network_msg2', + 'network.gateway': 'network_msg3', + 'network.macAddress': 'network_msg9', }; /** Java's words, mended: the prompt says "Vermittlungsrechnerns" (guicontainer_msg1). */ @@ -128,6 +138,9 @@ const FROM_JAVA_MENDED: Readonly java.replaceAll('\\n', '\n').replace('\nüber', '\nÜber')], 'firewall.filterSynHint': ['jfirewalldialog_msg43', (java) => java.replaceAll('\\n', '\n')], + // Without Java's key (Strg+D, Strg+R): in a browser they bookmark and reload the page. + 'mode.design': ['guimainmemu_msg3', (java) => java.replace(/ \((Strg|Ctrl)\+D\)$/, '')], + 'mode.simulation': ['guimainmemu_msg4', (java) => java.replace(/ \((Strg|Ctrl)\+R\)$/, '')], // Java's lines without their leading space and the empty one; a step starts with a capital letter. 'connections.hint': [ 'jvermittlungsrechnerkonfiguration_msg19', diff --git a/packages/editor/test/programs.test.ts b/packages/editor/test/programs.test.ts new file mode 100644 index 0000000..7aee843 --- /dev/null +++ b/packages/editor/test/programs.test.ts @@ -0,0 +1,34 @@ +// The desktop's programs against Java's lists (config/Desktop_.txt): +// the same programs, in each language's order, with Java's names and icons. + +import { existsSync, readFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, it } from 'vitest'; +import { desktopPrograms, DESKTOP_ORDER, JAVA_PROGRAMS } from '../src/desktop/programs.js'; +import { CATALOGS, type Language } from '../src/i18n/i18n.js'; + +const config = join(dirname(fileURLToPath(import.meta.url)), '../../../tools/java-oracle/.upstream/src/main/resources/config'); +const FILES: Readonly> = { de: 'Desktop_de_DE.txt', en: 'Desktop_en_GB.txt' }; + +describe("the desktop's programs", () => { + it.skipIf(!existsSync(config))("are Java's, in the order of each language's list, with Java's names and icons", () => { + for (const language of ['de', 'en'] as const) { + const lines = readFileSync(join(config, FILES[language]), 'utf8') + .split(/\r?\n/) + .filter((line) => line.trim() !== '' && !line.trim().startsWith('#')) + .map((line) => line.split(';')); + expect(DESKTOP_ORDER[language].map((program) => JAVA_PROGRAMS[program].javaClass)).toEqual(lines.map((line) => line[1])); + expect(DESKTOP_ORDER[language].map((program) => CATALOGS[language][`program.${program}`])).toEqual(lines.map((line) => line[0])); + expect(DESKTOP_ORDER[language].map((program) => `gfx/desktop/${JAVA_PROGRAMS[program].iconFile}`)).toEqual(lines.map((line) => line[3]!.trim())); + } + }); + + it("shows a computer's programs only, in the language's order, without the DHCP server", () => { + expect(desktopPrograms(['webBrowser', 'commandPrompt', 'dhcpServer', 'imageViewer'], 'de')).toEqual(['commandPrompt', 'imageViewer', 'webBrowser']); + expect(desktopPrograms(['webBrowser', 'commandPrompt', 'dhcpServer', 'imageViewer'], 'en')).toEqual(['commandPrompt', 'imageViewer', 'webBrowser']); + expect(desktopPrograms(['webServer', 'webBrowser'], 'de')).toEqual(['webServer', 'webBrowser']); + expect(desktopPrograms(['webServer', 'webBrowser'], 'en')).toEqual(['webBrowser', 'webServer']); + expect(desktopPrograms([], 'de')).toEqual([]); + }); +}); diff --git a/packages/protocol/src/sim.ts b/packages/protocol/src/sim.ts index 66094ea..e86228b 100644 --- a/packages/protocol/src/sim.ts +++ b/packages/protocol/src/sim.ts @@ -15,9 +15,10 @@ export type AppKind = (typeof APP_KINDS)[number]; /** * What a client subscribes to: which cables carry frames (`activity`), a * card's capture (`trace:`), a program's window - * (`app:/`). + * (`app:/`), a computer's network settings as it runs with them + * (`node:`: its desktop's title and network info). */ -export type Topic = 'activity' | `trace:${string}` | `app:${string}/${AppKind}`; +export type Topic = 'activity' | `trace:${string}` | `app:${string}/${AppKind}` | `node:${string}`; export const CLIENT_MESSAGE_KINDS = ['sub', 'unsub', 'start', 'stop', 'speed', 'input'] as const; export type ClientMessageKind = (typeof CLIENT_MESSAGE_KINDS)[number]; @@ -41,7 +42,7 @@ export type ClientMessage = readonly reqId: string; }; -export const HOST_MESSAGE_KINDS = ['state', 'activity', 'trace', 'app', 'ack', 'error'] as const; +export const HOST_MESSAGE_KINDS = ['state', 'activity', 'trace', 'app', 'node', 'ack', 'error'] as const; export type HostMessageKind = (typeof HOST_MESSAGE_KINDS)[number]; export type SimMode = 'design' | 'simulation'; @@ -66,9 +67,23 @@ export type HostMessage = | { readonly v: 1; readonly kind: 'trace'; readonly portId: string; readonly frames: readonly TraceFrame[]; readonly reset: boolean } /** A program's new window lines from line `from` on; on subscribing, all (from 0). */ | { readonly v: 1; readonly kind: 'app'; readonly node: string; readonly app: AppKind; readonly from: number; readonly lines: readonly unknown[] } + /** + * A computer's first card as the simulation runs it (DHCP may change it): + * on subscribing, when it changes, and none while the simulation never ran. + */ + | { readonly v: 1; readonly kind: 'node'; readonly node: string; readonly settings: NodeSettings } | { readonly v: 1; readonly kind: 'ack'; readonly reqId: string } | { readonly v: 1; readonly kind: 'error'; readonly code: ErrorCode; readonly reqId?: string; readonly detail?: string }; +/** What Java's desktop shows of a computer's network (NetworkInfoPanel, the window's title). */ +export interface NodeSettings { + readonly ipAddress: string; + readonly subnetMask: string; + readonly defaultGateway: string; + readonly dnsServer: string; + readonly macAddress: string; +} + export type Parsed = { readonly message: T } | { readonly error: { readonly code: ErrorCode; readonly detail: string } }; const isRecord = (value: unknown): value is Record => typeof value === 'object' && value !== null && !Array.isArray(value); @@ -79,6 +94,7 @@ export function isTopic(value: unknown): value is Topic { if (value === 'activity') return true; if (typeof value !== 'string') return false; if (value.startsWith('trace:')) return value.length > 'trace:'.length; + if (value.startsWith('node:')) return /^node:[^/]+$/.test(value); const app = /^app:([^/]+)\/(.+)$/.exec(value); return app !== null && (APP_KINDS as readonly string[]).includes(app[2]!); } diff --git a/packages/protocol/test/sim.test.ts b/packages/protocol/test/sim.test.ts index 8d6bb3d..ea2e2a7 100644 --- a/packages/protocol/test/sim.test.ts +++ b/packages/protocol/test/sim.test.ts @@ -35,15 +35,15 @@ describe("a client's messages", () => { }); it('knows its topics', () => { - expect(['activity', 'trace:x', 'app:n/gnutella', 'app:n/webBrowser'].every(isTopic)).toBe(true); - expect(['', 'trace:', 'app:/terminal', 'app:n/', 'app:n/terminal/x', 'node:n', 7].some(isTopic)).toBe(false); + expect(['activity', 'trace:x', 'app:n/gnutella', 'app:n/webBrowser', 'node:n'].every(isTopic)).toBe(true); + expect(['', 'trace:', 'app:/terminal', 'app:n/', 'app:n/terminal/x', 'node:', 'node:n/x', 'nodes:n', 7].some(isTopic)).toBe(false); }); }); describe("a host's messages", () => { it('reads each kind, and names an unknown one', () => { for (const kind of HOST_MESSAGE_KINDS) expect('message' in parseHostMessage({ v: 1, kind })).toBe(true); - expect(parseHostMessage({ v: 1, kind: 'node' })).toEqual({ error: { code: 'unknownKind', detail: 'kind node' } }); + expect(parseHostMessage({ v: 1, kind: 'nodes' })).toEqual({ error: { code: 'unknownKind', detail: 'kind nodes' } }); expect(parseHostMessage({ v: 0, kind: 'state' })).toEqual({ error: { code: 'badVersion', detail: 'version 0' } }); }); }); diff --git a/packages/sim/src/room.ts b/packages/sim/src/room.ts index 5d12e03..4f67dc3 100644 --- a/packages/sim/src/room.ts +++ b/packages/sim/src/room.ts @@ -16,7 +16,7 @@ // keep rising (plan §6.2). import * as Y from 'yjs'; -import { DEFAULT_SPEED_PERCENT, NetworkRuntimeEngine, captureRows, type CapturedFrame, type CaptureRow, type Id, type LogLine } from '@mdg-filius/core'; +import { DEFAULT_SPEED_PERCENT, NetworkRuntimeEngine, captureRows, interfaceKey, stableGeneratedMacAddress, type CapturedFrame, type CaptureRow, type Id, type LogLine } from '@mdg-filius/core'; import { docSnapshot } from '@mdg-filius/doc'; import { parseClientMessage, @@ -25,6 +25,7 @@ import { type ClientMessage, type ErrorCode, type HostMessage, + type NodeSettings, type SimMode, type Topic, type TraceFrame, @@ -47,6 +48,8 @@ interface Client { readonly traceSent: Map; /** Per program window, how many of its program's lines it has; none while the program does not run (a stop empties it). */ readonly appSent: Map; + /** Per computer, the settings last sent (as text). */ + readonly nodeSent: Map; } /** A program with a window: its lines. */ @@ -79,7 +82,7 @@ export class SimulationRoom { /** A new client; it gets the room's state at once. */ connect(send: (message: HostMessage) => void): number { const id = this.nextClient++; - this.clients.set(id, { send, topics: new Set(), traceSent: new Map(), appSent: new Map() }); + this.clients.set(id, { send, topics: new Set(), traceSent: new Map(), appSent: new Map(), nodeSent: new Map() }); send(this.state()); return id; } @@ -117,6 +120,7 @@ export class SimulationRoom { client.topics.add(topic); if (topic.startsWith('trace:')) client.traceSent.delete(topic.slice('trace:'.length)); if (topic.startsWith('app:')) client.appSent.delete(topic); + if (topic.startsWith('node:')) client.nodeSent.delete(topic.slice('node:'.length)); } this.flush([client], true); return; @@ -260,6 +264,14 @@ export class SimulationRoom { for (const topic of client.topics) { if (topic === 'activity') { if (subscribing) client.send(message({ kind: 'activity', links: this.lastActivity })); + } else if (topic.startsWith('node:')) { + const node = topic.slice('node:'.length); + const settings = this.nodeSettings(node); + if (settings === undefined) continue; + const text = JSON.stringify(settings); + if (client.nodeSent.get(node) === text) continue; + client.nodeSent.set(node, text); + client.send(message({ kind: 'node', node, settings })); } else if (topic.startsWith('trace:')) { const portId = topic.slice('trace:'.length); const reset = !client.traceSent.has(portId); @@ -288,6 +300,26 @@ export class SimulationRoom { } } + /** + * A device's first card as the engine runs it (a computer's settings, which + * DHCP may change); undefined for a device the simulation never had. + */ + private nodeSettings(id: Id): NodeSettings | undefined { + const snapshot = this.engine.state.topologySnapshot; + const node = snapshot.nodes.find((each) => each.id === id); + if (node === undefined) return undefined; + const port = node.ports[0]; + const device = snapshot.deviceConfigurations.get(id); + const card = port === undefined ? undefined : snapshot.interfaceConfigurations.get(interfaceKey(id, port.id)); + return { + ipAddress: device?.ipAddress ?? card?.ipAddress ?? '', + subnetMask: device?.subnetMask ?? card?.subnetMask ?? '', + defaultGateway: device?.defaultGateway ?? '', + dnsServer: device?.dnsServer ?? '', + macAddress: port === undefined ? '' : (port.macAddress ?? stableGeneratedMacAddress(port.id)), + }; + } + /** The cables whose cards got frames since the last tick; sent when that changes. */ private updateActivity(): void { const links = new Set(); diff --git a/packages/sim/test/localSimHost.test.ts b/packages/sim/test/localSimHost.test.ts index 76b4129..d0559a9 100644 --- a/packages/sim/test/localSimHost.test.ts +++ b/packages/sim/test/localSimHost.test.ts @@ -117,8 +117,8 @@ describe('the simulation in a worker of the page', () => { const host = new LocalSimHost(doc, channel.port1 as unknown as Port, () => channel.port1.close()); const got: HostMessage[] = []; host.onMessage((message) => got.push(message)); - channel.port2.postMessage({ type: 'host', message: { v: 1, kind: 'node', id: 'x' } }); - expect(await until(() => got[0])).toEqual({ v: 1, kind: 'error', code: 'unknownKind', detail: 'kind node' }); + channel.port2.postMessage({ type: 'host', message: { v: 1, kind: 'nodes', id: 'x' } }); + expect(await until(() => got[0])).toEqual({ v: 1, kind: 'error', code: 'unknownKind', detail: 'kind nodes' }); host.close(); channel.port2.close(); }); diff --git a/packages/sim/test/room.test.ts b/packages/sim/test/room.test.ts index 61cd5ff..7ac5fe8 100644 --- a/packages/sim/test/room.test.ts +++ b/packages/sim/test/room.test.ts @@ -306,4 +306,28 @@ describe('a simulation room', () => { expect(ofKind(got, 'error')).toHaveLength(1); expect(ofKind(got, 'state').at(-1)).toMatchObject({ mode: 'simulation' }); }); + + it("sends a computer's network as it runs, anew when DHCP changes it, and nothing before a start", () => { + const { got, send, run, node } = setUp(exampleDoc('java-examples/einfaches_rechnernetz_komplett.fls')); + const notebook = node('Notebook 1'); + const server = node('Server'); + send({ kind: 'sub', topics: [`node:${notebook.id}`, `node:${server.id}`] }); + expect(ofKind(got, 'node')).toEqual([]); + send({ kind: 'start' }); + run(20_000); + const sent = ofKind(got, 'node').filter((each) => each.node === notebook.id); + expect(sent.length).toBeGreaterThanOrEqual(2); + expect(sent.at(-1)!.settings).toMatchObject({ subnetMask: '255.255.255.0', dnsServer: '192.168.0.100', macAddress: expect.stringMatching(/^([0-9A-F]{2}:){5}[0-9A-F]{2}$/) }); + expect(sent.at(-1)!.settings.ipAddress).toMatch(/^192\.168\.0\.\d+$/); + // Sent when it changes, not every tick. + expect(new Set(sent.map((each) => JSON.stringify(each.settings))).size).toBe(sent.length); + expect(ofKind(got, 'node').filter((each) => each.node === server.id).map((each) => each.settings)).toEqual([ + { ipAddress: '192.168.0.100', subnetMask: '255.255.255.0', defaultGateway: '', dnsServer: '192.168.0.100', macAddress: expect.any(String) }, + ]); + // A client that subscribes again gets it again. + const before = got.length; + send({ kind: 'sub', topics: [`node:${server.id}`] }); + expect(ofKind(got.slice(before), 'node')).toHaveLength(1); + }); }); +