From 40f74ff8b8800dae57491a6004972d2bfe829601 Mon Sep 17 00:00:00 2001 From: pbldp <> Date: Sat, 14 Feb 2009 13:18:42 +0000 Subject: [PATCH] Generated candidates for 0.63 --- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.html | 2499 ++++++++--------- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.pdf | Bin 738365 -> 732842 bytes .../Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml | 191 +- .../Peter-Bieringer/Linux+IPv6-HOWTO.html | 2462 ++++++++-------- .../Peter-Bieringer/Linux+IPv6-HOWTO.sgml | 205 +- 5 files changed, 2614 insertions(+), 2743 deletions(-) diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html index 30e00df1..65ab218d 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html @@ -58,6 +58,40 @@ COLSPAN="3" >Version 0.63.de.12009-02-14Geändert durch: PBVersion 0.62.de.12008-11-09Geändert durch: PBVersion 0.61.1.de.2Version 0.60.de.12007-05-31Geändert durch: PB

Das Ziel des Linux IPv6 HOWTO ist die Beantwortung von Basis- und Experten-Fragen zum Thema IPv6 mit Linux-Betriebssystemen. Dieses HOWTO will dem Leser genug Informationen bereitstellen, um IPv6-Anwendungen auf Linux Computer installieren, konfigurieren und anwenden zu können. Zwischen-Versionen sind auf

1.3. Version, Werdegang und Unerledigtes
1.5. Technisches
1.6. Vorwort
1.7. Verwendete Begriffe, Glossar und Abkürzungen
1.8. Grundvoraussetzung für die Verwendung dieses HOWTOs
2.1. Was ist IPv6?
2.3. Wie sehen IPv6 Adressen aus?
2.4. FAQ (Grundlagen)
3.1. Adressen ohne speziellen Präfix
3.2. Netzteil der Adresse (Präfix)
3.3. Adress-Typen (Host-Teil)
3.4. Präfixlängen für das Routing
4.2. IPv6 kompatible Tools zur Netzwerkkonfiguration
4.3. IPv6 Test/Debug-Programme
4.4. IPv6 kompatible Programme
4.5. IPv6 kompatible Client-Programme (Auswahl)
4.6. IPv6 kompatible Server
5.1. Unterschiedliche Netzwerk-Geräte
5.2. Interfaces ein/aus-schalten
6.1. Bestehende IPv6 Adressen anzeigen
6.2. Hinzufügen einer IPv6 Adresse
6.3. IPv6 Adressen entfernen
7.1. Bestehende IPv6-Routen anzeigen
7.2. Eine IPv6-Route über ein Gateway hinzufügen
7.3. Eine IPv6-Route über ein Gateway entfernen
7.4. Eine IPv6-Route über ein Interface hinzufügen
7.5. Eine IPv6-Route über ein Interface entfernen
7.6. FAQ für IPv6-Routen
8.1. Netzwerkumgebung mit “ip” anzeigen
8.2. Tabelle der Netzwerkumgebung mit “ip” editieren
9.1. Tunnelarten
9.2. Bestehende Tunnel anzeigen
IPv4-in-IPv6 Tunnel konfigurieren
10.1. Anzeigen von existierenden Tunnels
10.2. Konfiguration eines Punkt-zu-Punkt Tunnels
10.3. Löschen von Punkt-zu-Punkt-Tunnels
11.
11.1. Zugriff auf das /proc-Dateisystem
13. Adress-Auflösung
14. Netzwerk-Fehlersuche
13.1. 14.1. Server Socket-Anbindung
13.2. 14.2. tcpdump-Beispiele
14. 15. Unterstützung einer ständigen IPv6-Konfiguration in Linux Distributionen
14.1. 15.1. Red Hat Linux und “Klone”
14.2. 15.2. SuSE Linux
14.3. 15.3. Debian Linux
15. 16. Automatische Konfiguration
15.1. 16.1. Stateless Auto-Konfiguration
15.2. 16.2. Stateful Auto-Konfiguration unter Verwendung des Router Advertisement Daemon (radvd)
15.3. 16.3. Dynamic Host Configuration Protocol v6 (DHCPv6)
16. 17. Mobilität
16.1. 17.1. Allgemeines
17. 18. Firewall-Funktionalität
17.1. 18.1. Firewall-Funktionalität mit netfilter6
17.2. 18.2. Vorbereitung
17.3. 18.3. Verwendung
18. 19. Sicherheit
18.1. 19.1. Sicherheit des Knoten
18.2. 19.2. Zugangsbeschränkungen
18.3. 19.3. IPv6 Sicherheitsüberwachung
19. 20. Verschlüsselung und Authentifizierung
19.1. 20.1. Nutzungsarten von Verschlüsselung und Authentifizierung
19.2. 20.2. Unterstützung im Kernel (ESP und AH)
19.3. 20.3. Automatischer Schlüssel-Austausch (IKE)
19.4. 20.4. Anmerkungen:
20. 21. Quality of Service (QoS)
21. 22. Hinweise zu IPv6 kompatiblen Daemons
21.1. 22.1. Berkeley Internet Name Domain (BIND) daemon “named”
21.2. 22.2. Internet super daemon (xinetd)
21.3. 22.3. Webserver Apache2 (httpd2)
21.4. 22.4. Router Advertisement Daemon (radvd)
21.5. 22.5. Dynamic Host Configuration v6 Server (dhcp6s)
21.6. 22.6. tcp_wrapper
21.7. 22.7. vsftpd
21.8. 22.8. proftpd
21.9. 22.9. Andere Daemons
22. 23. Programmierung
22.1. 23.1. Programmierung mit Nutzung der C-API
22.2. 23.2. Andere Programmiersprachen
23. 24. Interoperabilität
24. 25. Weitere Informationen und URLs
24.1. 25.1. Gedruckte Bücher, Artikel, Onlinerezensionen
24.2. 25.2. Konferenzen und Meetings
24.3. 25.3. Online-Informationen
24.4. 25.4. IPv6 Infrastruktur
24.5. 25.5. Mailinglisten
24.6. 25.6. Online-Werkzeuge
24.7. 25.7. Trainings, Seminare
24.8. 25.8. 'Die Online Entdeckung' ...
25. 26. Versions-Überblick / Danksagung / Zum Schluss
25.1. 26.1. Versions-Überblick
25.2. 26.2. Danksagung
25.3. 26.3. Zum Schluss

1.1.1. Copyright

Verfasst von und urheberrechtlich geschützt durch Peter Bieringer © 2001-2006.

Verfasst von und urheberrechtlich geschützt durch Peter Bieringer © 2001-2009.

Deutsche Übersetzung:

Verfasst von und urheberrechtlich geschützt durch Georg Käfer © 2002-2003.

Verfasst von und urheberrechtlich geschützt durch Georg Käfer © 2002-2003, weitergeführt von Peter Bieringer © 2004-2009.


1.1.2. Lizenz

Dieses Linux IPv6 HOWTO wird unter der GNU GPL Version 2 herausgegeben: - -

Dieses Linux IPv6 HOWTO wird unter der GNU GPL Version 2 herausgegeben:

Dieses Linux IPv6 HOWTO ist ein Handbuch zur Anwendung und Konfiguration von IPv6 auf Linux-Systemen.

Copyright © 2001-2007 Peter Bieringer -Deutsche Übersetzung Copyright © 2002-2003 Georg Käfer

Copyright © 2001-2009 Peter Bieringer +Deutsche Übersetzung Copyright © 2002-2003 Georg Käfer, weitergeführt von Peter Bieringer © 2004-2009.

Diese Dokumentation ist freie Software; Sie können diese unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation publiziert, entweder unter Version 2 oder optional jede höhere Version redistribuieren und/oder modifizieren.

Dieses Programm wird in der Hoffnung verteilt, dass es für Sie nutzvoll ist, jedoch OHNE JEDWEDER GEWÄHRLEISTUNG; sogar ohne der implizierten Gewährleistung der MARKTFÄHIGKEIT oder der FÄHIGKEIT ZU EINEM BESONDEREN ZWECK bzw. VORSATZ. Weitere Details finden Sie in der GNU General Public License.

Zusammen mit diesem Dokument sollten Sie eine Kopie der GNU General Public License erhalten haben; Wenn dem nicht so ist, können Sie sich an folgende Adresse wenden: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Zusammen mit diesem Dokument sollten Sie eine Kopie der GNU General Public License erhalten haben; Wenn dem nicht so ist, können Sie sich an folgende Adresse wenden: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA.


1.1.3. Über den Autor

1.1.3.1. Internet/IPv6 Background des Autors


1.1.3.2. Ansprechpartner


1.1.3.3. Ansprechpartner für Übersetzungen


1.3. Version, Werdegang und Unerledigtes

1.3.1. Version


1.3.2. Werdegang

1.3.2.1. Eckpunkte

2003-04-09: Französische Übersetzung ist in Arbeit.

2003-05-09: Französische Übersetzung ist verfügbar.

2003-08-15: Spanische Übersetzung ist in Arbeit.

2003-05-09: Französische Übersetzung ist verfügbar

2003-10-16: Italienische Übersetzung ist in Arbeit.

2004-03-12: Italienische Übersetzung ist verfügbar.

2004-03-12: Italienische Übersetzung ist verfügbar

2005-07-25: Türkische Übersetzung ist verfügbar

2008-07-30: Spanische Übersetzung ist verfügbar (aber noch nicht abgeschlossen)


1.3.2.2. Vollständiger Werdegang


1.3.3. Unerledigtes


1.4.1. Diverse Sprachen


1.4.1.1. Deutsch


1.4.1.2. Andere Sprachen


1.5. Technisches

1.5.1. Originalquelle dieses HOWTOs

Die originale englische Version dieses HOWTOs wurde mit LyX Version 1.5.1 auf einem Fedora Core 7 System mit SGML-Template (DocBook book) erstellt. Alle Dateien sind unter Die originale englische Version dieses HOWTOs wurde mit LyX Version 1.6.1 auf einem Fedora 10 Linux System mit SGML-Template (DocBook book) erstellt. Alle Dateien sind unter TLDP-CVS / users / Peter-Bieringer


1.5.1.1. Zeilenumbruch in Code-Beispielen


1.5.1.2. SGML Erzeugung


1.5.2. Online-Verweise auf die HTML Version dieses HOWTOs (Links / Anchors)

1.5.2.1. Hauptindexseite


1.5.2.2. Seitennamen


1.6. Vorwort


1.6.1. Wie viele IPv6 & Linux bezogene HOWTOs gibt es?


1.6.1.1. Linux Ipv6 FAQ/HOWTO (veraltet)


1.6.1.2. IPv6 & Linux - HowTo (gewartet)


1.6.1.3. Linux IPv6 HOWTO (dieses Dokument)


1.7. Verwendete Begriffe, Glossar und Abkürzungen

1.7.1. Netzwerkbegriffe


1.7.2. In diesem Dokument verwendete Syntax

1.7.2.1. Zeilenumbruchs-Zeichen bei langen Codebeispielen


1.7.2.2. Platzhalter


1.7.2.3. Shell-Kommandos


1.8. Grundvoraussetzung für die Verwendung dieses HOWTOs

1.8.1. Persönliche Anforderungen

1.8.1.1. Erfahrung mit Unix Tools


1.8.1.2. Erfahrung mit Netzwerktheorie


1.8.1.3. Erfahrung mit der Konfiguration von IPv4 Netzen


1.8.1.4. Erfahrung mit dem Domain Name System (DNS)


1.8.1.5. Routine im Umgang mit Strategien zur Netzwerk-Fehlersuche


1.8.2. Linux kompatible Hardware

2.1. Was ist IPv6?

IPv6 ist ein neues Schicht 3 Vermittlungsprotokoll (siehe linuxports/howto/intro_to_networking/ISO - OSI Model) und es wird IPv4 (auch als IP bekannt) ablösen. IPv4 wurde vor langer Zeit entworfen (IPv6 ist ein neues Schicht 3 Vermittlungsprotokoll und es wird IPv4 (auch als IP bekannt) ablösen. IPv4 wurde vor langer Zeit entworfen (RFC 760 / Internet Protocol


2.2.1. Anfang


2.2.2. Übergangszeit

USAGI versucht, so viel wie möglich ihrer Erweiterungen darin zu integrieren.

Einige, aber nicht alle, wurden in die Serie 2.4.x integriert (backported). Folglich sind in der Kernel Serie 2.4.x einige (viele) Erweiterungen nicht enthalten und es werden auch nicht alle Spezifikationen aktueller Drafts oder RFCs erfüllt (siehe: IP Version 6 Working Group (ipv6) Charter). Dies kann einige Inkompatibilitäts-Probleme zu anderen Betriebssystemen bewirken.


2.2.3. Heute


2.2.4. Zukunft


2.3. Wie sehen IPv6 Adressen aus?


2.4. FAQ (Grundlagen)

2.4.1. Warum wird der Nachfolger von IPv4 nun IPv6 und nicht IPv5 genannt?


2.4.2. IPv6 Adressen: Warum ist die Anzahl der Bits so groß?


2.4.3. IPv6 Adressen: Warum ist die Bit-Anzahl bei einem neuen Design so klein?


3.1. Adressen ohne speziellen Präfix

3.1.1. Localhost Adresse


3.1.2. Unspezifische Adresse


3.1.3. IPv6 Adressen mit eingebetteter IPv4 Adresse


3.1.3.1. IPv4 Adressen in IPv6 Format


3.1.3.2. IPv4 kompatible IPv6 Adressen


3.2. Netzteil der Adresse (Präfix)


3.2.1. Link-lokaler Adress-Typ


3.2.2. Site-lokaler Adress-Typ


3.2.3. Unique Local IPv6 Unicast Adressen


3.2.4. Globaler Adress-Typ ("Aggregatable global unicast")


3.2.4.1. 6bone Test-Adressen


3.2.4.2. 6to4 Adressen


3.2.4.3. Durch einen Provider zugewiesene Adressen für ein hierarchisches Routing


3.2.4.4. Für Beispiele und Dokumentationen reservierte Adressen


3.2.5. Multicast-Addressen


3.2.5.1. Multicast-Bereiche


3.2.5.2. Multicast-Typen


3.2.5.3. Erforderliche node link-local Multicast Adresse


3.2.6. Anycast-Adressen


3.2.6.1. Subnet-Router Anycast-Adresse


3.3. Adress-Typen (Host-Teil)


3.3.1. Automatisch erstellte Adressen (auch unter dem Namen stateless bekannt)


3.3.1.1. Datenschutzproblem mit automatisch erstellten Adressen sowie eine Lösung


3.3.2. Manuell festgelegte Adressen


3.4. Präfixlängen für das Routing


3.4.1. Präfixlängen ("netmasks" genannt)


3.4.2. Zutreffende Routen


4.1.1. Überprüfung der IPv6 Unterstützung im aktuellen Kernel


4.1.2. IPv6 Module laden


4.1.2.1. Automatisches Laden des Moduls


4.1.3. Kernel-Kompilierung mit IPv6 Funktionalität


4.1.3.1. Kompilieren eines Standard-Kernels


4.1.3.2. Kompilieren eines Kernels mit USAGI-Erweiterungen


4.1.4. IPv6 kompatible Netzwerkgeräte


4.1.4.1. Gegenwärtig bekannte Verbindungsarten, die niemals IPv6 fähig sein werden


4.1.4.2. Bekannte Verbindungsarten, die gegenwärtig IPv6 nicht unterstützen


4.2. IPv6 kompatible Tools zur Netzwerkkonfiguration


4.2.1. net-tools Paket


4.2.2. iproute Paket

  • Sie können die tar-Version downladen und neu kompilieren: Original FTP source sowie FTP-Spiegel (Info fehlt)

  • Sie können nach einem passenden RPM Paket unter


    4.3. IPv6 Test/Debug-Programme


    4.3.1.1. Das Interface für einen IPv6 ping bestimmen


    4.3.1.2. Ping6 zu Multicast-Adressen


    4.3.4.1. IPv6 ping zur Adresse 2001:0db8:100:f101::1 über einen lokalen Link


    4.3.4.2. IPv6 ping zur Adresse 2001:0db8:100::1 über einen IPv6-in-IPv4 Tunnel geroutet


    4.4. IPv6 kompatible Programme


    4.5. IPv6 kompatible Client-Programme (Auswahl)


    4.5.1. DNS-Überprüfung der IPv6 Adress-Auflösung

    www.join.uni-muenster.de. is an alias for tolot.join.uni-muenster.de. 
    -tolot.join.uni-muenster.de. has AAAA address 2001:638:500:101:2e0:81ff:fe24:37c6

    4.5.2. IPv6 kompatible Telnet Client-Programme


    4.5.3. IPv6 kompatible ssh Client-Programme

    4.5.3.1. openssh


    4.5.3.2. ssh.com


    4.5.4. IPv6 kompatible Web-Browser

    Ältere Browser-Versionen verstehen ebenfalls keine URL mit IPv6 Adressen wie z.B. http://[3ffe:400:100::1]/http://[2001:a60:9002:1::186:6]/ (die angegebene URL funktioniert nur mit einem IPv6 kompatiblen Browser!).

    Ein kleiner Test ist diese URL mit einem gegebenen Browser und ohne Proxy zu verwenden.


    4.5.4.1. URLs zum testen


    4.6. IPv6 kompatible Server

    4.7.1. Anwendung diverser Tools

    4.7.1.1. Q: ping6 zu einer link-lokalen Adresse funktioniert nicht


    4.7.1.2. Q: ping6 oder traceroute6 funktioniert nicht als normaler Benutzer

    5.1. Unterschiedliche Netzwerk-Geräte


    5.1.1. Physikalische Devices


    5.1.2. Virtuelle Devices


    5.1.2.1. IPv6-in-IPv4 Tunnel Interfaces


    5.1.2.2. PPP Interfaces


    5.1.2.3. ISDN HDLC Interfaces


    5.1.2.4. ISDN PPP Interfaces


    5.1.2.5. SLIP + PLIP


    5.1.2.6. Ether-tap Device


    5.1.2.7. tun Device


    5.1.2.8. ATM


    5.1.2.9. Sonstige


    5.2. Interfaces ein/aus-schalten


    5.2.1. Verwendung von "ip"


    5.2.2. Verwendung von "ifconfig"


    6.1. Bestehende IPv6 Adressen anzeigen


    6.1.1. Verwendung von "ip"


    6.1.2. Verwendung von "ifconfig"


    6.2. Hinzufügen einer IPv6 Adresse


    6.2.1. Verwendung von "ip"


    6.2.2. Verwendung von "ifconfig"


    6.3. IPv6 Adressen entfernen


    6.3.1. Verwendung von "ip"


    6.3.2. Verwendung von "ifconfig"


    7.1. Bestehende IPv6-Routen anzeigen


    7.1.1. Verwendung von "ip"


    7.1.2. Verwendung von "route"


    7.2. Eine IPv6-Route über ein Gateway hinzufügen


    7.2.1. Verwendung von "ip"


    7.2.2. Verwendung von "route"


    7.3. Eine IPv6-Route über ein Gateway entfernen


    7.3.1. Verwendung von "ip"


    7.3.2. Verwendung von "route"

    # /sbin/route -A inet6 del <ipv6network>/<prefixlength> gw <ipv6address> [dev <device>]
    # /sbin/route -A inet6 del <ipv6network>/<prefixlength> gw <ipv6address> [dev +¬ <device>]

    7.4. Eine IPv6-Route über ein Interface hinzufügen


    7.4.1. Verwendung von "ip"


    7.4.2. Verwendung von "route"


    7.5. Eine IPv6-Route über ein Interface entfernen


    7.5.1. Verwendung von "ip"


    7.5.2. Verwendung von "route"


    7.6. FAQ für IPv6-Routen

    7.6.1. Unterstützung einer IPv6 Default-Route


    7.6.1.1. Clients (kein Routing eines Paketes!)


    7.6.1.2. Router & Paketweiterleitung


    8.1. Netzwerkumgebung mit “ip” anzeigen


    8.2. Tabelle der Netzwerkumgebung mit “ip” editieren

    8.2.1. Eintrag manuell hinzufügen


    8.2.2. Eintrag manuell entfernen


    8.2.3. Erweiterte Einstellungen

    Kapitel 9. Konfiguration eines IPv6-in-IPv4 Tunnels

    Beim verlassen Ihres Links steht Ihnen kein IPv6 fähiges Netzwerk zur Verfügung. Aus diesem Grund benötigen Sie zum erreichen des weltweiten IPv6 Internet einen IPv6-in-IPv4 Tunnel.

    Wenn zum Verlassen des lokalen Netzwerks keine native IPv6-Anbindung vorhanden ist, wird zum Erreichen des weltweiten IPv6 Internet ein IPv6-in-IPv4 Tunnel benötigt.

    Es gibt unterschiedliche Tunnel-Mechanismen sowie einige Möglichkeiten zum Einrichten eines Tunnels.


    9.1. Tunnelarten


    9.1.1. Statische Punkt-zu-Punkt Tunnel: 6bone


    9.1.2. Automatische Tunnel


    9.1.3.1. Erstellen eines 6to4 Präfixes


    9.1.3.2. 6to4 Tunnel zum Upstream


    9.1.3.3. 6to4 Tunnel zum Downstream


    9.1.3.4. Möglicher 6to4 Verkehr


    9.2. Bestehende Tunnel anzeigen

    9.2.1. Verwendung von "ip"


    9.2.2. Verwendung von "route"


    9.3.1. Einen Punkt-zu-Punkt Tunnel hinzufügen

    9.3.1.1. Verwendung von "ip"


    9.3.1.2. Verwendung von "ifconfig" und "route" (nicht empfehlenswert)


    9.3.1.3. Verwendung allein von "route"


    9.3.2. Punkt-zu-Punkt Tunnel entfernen


    9.3.2.1. Verwendung von "ip"


    9.3.2.2. Verwendung von "ifconfig" und "route" (nicht empfehlenswert, da unbequem)


    9.3.2.3. Verwendung von "route"


    9.3.3. Nummerierte Punkt-zu-Punkt Tunnel


    9.4.1. 6to4 Tunnel hinzufügen


    9.4.1.1. Verwendung von "ip" und einem dedizierten Tunnel-Device

    # /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local <localipv4address> 
    # /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local +¬ <localipv4address>

    9.4.1.2. Verwendung von "ifconfig" und "route" sowie einem generischen Tunnel-Device "sit0" (nicht empfehlenswert)


    9.4.2. 6to4 Tunnel entfernen

    9.4.2.1. Verwendung von "ip" und einem dedizierten Tunnel-Device


    9.4.2.2. Verwendung von "ifconfig" und "route" sowie einem generischen Tunnel-Device "sit0" (nicht empfehlenswert)

    Kapitel 10. IPv4-in-IPv6 Tunnel konfigurieren

    Diese Tunnel-Art wird derzeit vorwiegend in Test-Umgebungen verwendet. Das Kapitel ist aus diesem Grund noch leer. Allerdings scheint die Unterstützung for Linux momentan noch zu fehlen (03/2004).

    In der Zwischenzeit finden Sie hier mehr Informationen: RFC 2473 / Generic Packet Tunneling in IPv6 Specification

    spezifiziert den Mechanismus, um unterschiedliche Pakettypen (einschließlich IPv4) über IPv6 zu tunneln.

    ANMERKUNG: Unterstützung für IPv4-in-IPv6 Tunnel ist erst seit Kernel Version 2.6.22 verfügbar.

    # /sbin/ip -6 tunnel show [<device>]

    Beispiel:

    # /sbin/ip -6 tunnel show mode any
    +ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
    +ip6tnl1: ip/ipv6 remote fd00:0:0:2::a local fd00:0:0:2::1 dev eth1 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)

    ANMERKUNG: wenn "mode any" nicht angegeben wird, werde nur IPv6-in-IPv6 Tunnels angezeigt.


  • 10.2. Konfiguration eines Punkt-zu-Punkt Tunnels

    Anwendung für die Erzeugung einer 4over6 Tunnel-Schnittstelle (welche danach aber noch nicht aktiv ist)

    # /sbin/ip tunnel add <device> mode ip4ip6 remote <ipv6addressofforeigntunnel> local <ipv6addresslocal>

    Anwendung (allgemeines Beispiel für drei Tunnels):

    # /sbin/ip -6 tunnel add ip6tnl1 mode ip4ip6 remote <ipv6addressofforeigntunnel1> local <ipv6addresslocal>
    +# /sbin/ip link set dev ip6tnl1 up 
    +# /sbin/ip -6 route add <prefixtoroute1> dev ip6tnl1 metric 1
    +
    +# /sbin/ip -6 tunnel add ip6tnl2 mode ip4ip6 remote <ipv6addressofforeigntunnel2> local <ipv6addresslocal>
    +# /sbin/ip link set dev ip6tnl2 up
    +# /sbin/ip -6 route add <prefixtoroute2> dev ip6tnl2 metric 1
    +
    +# /sbin/ip -6 tunnel add ip6tnl3 mode ip4ip6 remote <ipv6addressofforeigntunnel3> local <ipv6addresslocal>
    +# /sbin/ip link set dev ip6tnl3 up
    +# /sbin/ip -6 route add <prefixtoroute3> dev ip6tnl3 metric 1

    10.3. Löschen von Punkt-zu-Punkt-Tunnels

    Anwendung für das Löschen einer Tunnel-Schnittstelle:

    # /sbin/ip -6 tunnel del <device>

    Anwendung (allgemeines Beispiel für drei Tunnels):

    # /sbin/ip -6 route del <prefixtoroute1> dev ip6tnl1
    +# /sbin/ip link set ip6tnl1 down
    +# /sbin/ip -6 tunnel del ip6tnl1
    +
    +# /sbin/ip -6 route del <prefixtoroute2> dev ip6tnl2
    +# /sbin/ip link set ip6tnl2 down
    +# /sbin/ip -6 tunnel del ip6tnl2
    +
    +# /sbin/ip -6 route del <prefixtoroute3> dev ip6tnl3
    +# /sbin/ip link set ip6tnl3 down
    +# /sbin/ip -6 tunnel del ip6tnl3 

    11.1. Zugriff auf das /proc-Dateisystem

    11.1.1. Verwendung von "cat" und "echo"


    11.1.1.1. Wert anzeigen


    11.1.1.2. Wert einstellen


    11.1.2. Verwendung von "sysctl"


    11.1.2.1. Wert anzeigen


    11.1.2.2. Wert einstellen


    11.1.2.3. Sonstiges


    11.1.3. Werte im /proc-Dateisystem

    11.2.1. conf/default/*


    11.2.2. conf/all/*


    11.2.2.1. conf/all/forwarding


    11.2.3. conf/interface/*


    11.2.3.1. accept_ra


    11.2.3.2. accept_redirects


    11.2.3.3. autoconf


    11.2.3.4. dad_transmits


    11.2.3.5. forwarding


    11.2.3.6. hop_limit


    11.2.3.7. mtu


    11.2.3.8. router_solicitation_delay


    11.2.3.9. router_solicitation_interval


    11.2.3.10. router_solicitations


    11.2.4. neigh/default/*


    11.2.4.1. gc_thresh1


    11.2.4.2. gc_thresh2


    11.2.4.3. gc_thresh3

    ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), seq=426, pid=0
    ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), +¬ seq=426, pid=0

    11.2.4.4. gc_interval


    11.2.5. neigh/interface/*


    11.2.5.1. anycast_delay


    11.2.5.2. gc_stale_time


    11.2.5.3. proxy_qlen


    11.2.5.4. unres_qlen


    11.2.5.5. app_solicit


    11.2.5.6. locktime


    11.2.5.7. retrans_time


    11.2.5.8. base_reachable_time


    11.2.5.9. mcast_solicit


    11.2.5.10. ucast_solicit


    11.2.5.11. delay_first_probe_time


    11.2.5.12. proxy_delay


    11.2.6. route/*


    11.2.6.1. flush


    11.2.6.2. gc_interval


    11.2.6.3. gc_thresh


    11.2.6.4. mtu_expires


    11.2.6.5. gc_elasticity


    11.2.6.6. gc_min_interval


    11.2.6.7. gc_timeout


    11.2.6.8. min_adv_mss


    11.2.6.9. max_size


    11.3.1. ip_*

    11.3.1.1. ip_local_port_range


    11.3.2. tcp_*


    11.3.3. icmp_*


    11.3.4. Sonstige Einträge


    11.4.1. if_inet6


    11.4.2. ipv6_route


    11.4.3. sockstat6


    11.4.4. tcp6


    11.4.5. udp6


    11.4.6. igmp6


    11.4.7. raw6


    11.4.8. ip6_flowlabel


    11.4.9. rt6_stats


    11.4.10. snmp6


    11.4.11. ip6_tables_names


    Kapitel 13. Adress-Auflösung

    Die Auflösung von Namen zu einer IPv4- bzw. IPv6-Adresse wird üblicherweise durch die Benutzung einer libc resolver Bibliothek durchgeführt. Es sind einige Seltsamkeiten bekannt bei der Nutzung der Funktion getaddrinfo.

    Mehr Information kann dazu aktuell gefunden werden unter Linux & IPv6: getaddrinfo and search domains - Research and RFC 3484 on Linux.

    Mehr Infos hierzu in späteren Versionen...


    Kapitel 13. Netzwerk-Fehlersuche

    Kapitel 14. Netzwerk-Fehlersuche

    13.1. Server Socket-Anbindung14.1. Server Socket-Anbindung

    13.1.1. Überprüfung der Server Socket-Anbindung mit “netstat”14.1.1. Überprüfung der Server Socket-Anbindung mit “netstat”

    Es ist immer von Interesse welche Sockets eines Knotens gerade aktiv sind. Mit “netstat” können Sie die betreffenden Informationen abfragen:

    13.2. tcpdump-Beispiele14.2. tcpdump-Beispiele

    Hier folgen einige Beispiele von (mit tcpdump) aufgezeichneten Paketen, die hoffentlich bei Ihrer Fehlersuche nützlich sein können.


    13.2.1. Router-Erkennung14.2.1. Router-Erkennung

    13.2.1.1. Router Advertisement14.2.1.1. Router Advertisement


    13.2.1.2. Router Anfrage14.2.1.2. Router Anfrage


    13.2.2. Neighbor-Erkennung14.2.2. Neighbor-Erkennung

    13.2.2.1. Neighbor discovery solicitation zur Entdeckung doppelter Adressen14.2.2.1. Neighbor discovery solicitation zur Entdeckung doppelter Adressen

    Folgende Pakete werden vom Knoten mit der Schicht 2 MAC Adresse “0:12:34:12:34:56” während der automatischen Konfiguration an die solicited-node link-lokale Multicast Adresse gesendet. Es wird überprüft, ob eine potentielle Adresse bereits von einem anderen Knoten am Link verwendet wird.


    13.2.2.2. Neighbor discovery solicitation zur Host oder Gateway-Suche14.2.2.2. Neighbor discovery solicitation zur Host oder Gateway-Suche

    Kapitel 14. Unterstützung einer ständigen IPv6-Konfiguration in Linux DistributionenKapitel 15. Unterstützung einer ständigen IPv6-Konfiguration in Linux Distributionen

    Einige Linux-Distributionen unterstützen bereits eine permanente IPv6 Konfiguration. Hierbei werden sowohl bestehende oder als auch neue Konfiguration- und Skriptdateien verwendet sowie tlw. IPv4 Skripte abgeändert.


    14.1. Red Hat Linux und “Klone”15.1. Red Hat Linux und “Klone”

    Seitdem der Autor begann das


    14.1.1. Test der IPv6-Unterstützung bei Netzwerk-Konfigurations-Scripts15.1.1. Test der IPv6-Unterstützung bei Netzwerk-Konfigurations-Scripts

    Sie können überprüfen, ob Ihre Distribution eine permanente IPv6 Konfiguration unter Verwendung der Skript-Sammlung des Autors unterstützt. Folgende script library sollte existieren:


    14.1.2. Kurze Anleitung zum aktivieren von IPv6 bei RHL 7.1, 7.2, 7.3, ...15.1.2. Kurze Anleitung zum aktivieren von IPv6 bei RHL 7.1, 7.2, 7.3, ...


    14.2. SuSE Linux15.2. SuSE Linux

    Seit neueren 7.x Versionen gibt es eine wirklich rudimentäre Unterstützung für IPv6, siehe /etc/rc.config für Details.


    14.2.1. SuSE Linux 7.315.2.1. SuSE Linux 7.3


    14.2.2. SuSE Linux 8.015.2.2. SuSE Linux 8.0

    14.2.2.1. IPv6-Adress-Konfiguration15.2.2.1. IPv6-Adress-Konfiguration

    Editiere Datei /etc/sysconfig/network/ifcfg-<Interface-Name> und setze folgende Variable entsprechend


    14.2.2.2. Zusätzliche information15.2.2.2. Zusätzliche information

    Siehe Datei /usr/share/doc/packages/sysconfig/README


    14.2.3. SuSE Linux 8.115.2.3. SuSE Linux 8.1

    14.2.3.1. IPv6-Adress-Konfiguration15.2.3.1. IPv6-Adress-Konfiguration

    Editiere Datei /etc/sysconfig/network/ifcfg-<Interface-Name> und setze folgende Variable entsprechend


    14.2.3.2. Zusätzliche information15.2.3.2. Zusätzliche information

    Siehe Datei /usr/share/doc/packages/sysconfig/Network

    14.3. Debian Linux15.3. Debian Linux

    Folgende Information wurde von Stephane Bortzmeyer <bortzmeyer at nic dot fr> beigesteuert.


    14.3.1. Weiterführende Informationen15.3.1. Weiterführende Informationen

  • IPv6 on Debian Linux von Craig Small

    IPv6 with Debian Linux

  • Kapitel 15. Automatische KonfigurationKapitel 16. Automatische Konfiguration

    15.1. Stateless Auto-Konfiguration16.1. Stateless Auto-Konfiguration

    Wird unterstützt und kann bei der zugewiesenen link-lokalen Adressen beobachtet werden, sobald ein IPv6 fähiges Interface aktiv ist.


    15.2. Stateful Auto-Konfiguration unter Verwendung des Router Advertisement Daemon (radvd)16.2. Stateful Auto-Konfiguration unter Verwendung des Router Advertisement Daemon (radvd)

    Mehr Infos hierzu in späteren Versionen. Siehe unten im Abschnitt


    15.3. Dynamic Host Configuration Protocol v6 (DHCPv6)16.3. Dynamic Host Configuration Protocol v6 (DHCPv6)

    Nach einer langen Zeit der Diskussion wurde Kapitel 16. MobilitätKapitel 17. Mobilität

    16.1. Allgemeines17.1. Allgemeines


    16.1.2. Netzwerk-Mobililtät17.1.2. Netzwerk-Mobililtät

    Zusätzlich existiert die Implementierung der Netzwerk-Mobilität für Linux, genannt NEPL, und basiert auf MIPL. Diese steht auch zur Verfügung unter:


    16.1.3. Links17.1.3. Links

  • USAGI-patched Mobile IPv6 for Linux (UMIP):http://umip.linux-ipv6.org/

  • Deploying IPsec/IKE-protected MIPv6 under Linux:http://natisbad.org/MIPv6/

  • RFC 4068 / Fast Handovers for Mobile IPv6

  • RFC 4423 / Host Identity Protocol (HIP) Architecture

  • RFC 5201 / Host Identity Protocol

  • HIP Implementierungen: http://infrahip.hiit.fi/, http://hip4inter.net/, http://www.openhip.org/

  • Kapitel 17. Firewall-FunktionalitätKapitel 18. Firewall-Funktionalität

    Die IPv6 Firewall-Funktionalität ist wichtig; vor allem dann, wenn Sie auf Ihren internen Netzen IPv6 mit globalen IPv6 Adressen einsetzen. In IPv6 werden - im Unterschied zu IPv4, wo interne Hosts automatisch durch private IPv6 Adressen geschützt werden (17.1. Firewall-Funktionalität mit netfilter618.1. Firewall-Funktionalität mit netfilter6

    Von Haus aus unterstützt wird die IPv6-Firewall-Funktionalität im Kernel erst ab Version 2.4+. In älteren 2.2+ Versionen können sie nur mit Protocol 41 das generelle Tunnel von IPv6-in-IPv4-Paketen filtern.

    Beobachten Sie nach der Installation ihr Regelset, siehe Abschnitt Abschnitt 18.3Abschnitt 19.3.

    Kernels ab Version 2.6.20 unterstützen den IPv6-Verbindungsstatus (connection tracking) vollständig.


    17.1.1. Weitere Informationen18.1.1. Weitere Informationen


    17.2. Vorbereitung18.2. Vorbereitung

    Dies ist nur notwendig, wenn der mitgelieferte Kernel und Netfilter nicht den Ansprüchen genügt und neue Featurs bereits verfügbar sind, jedoch noch nicht beinhaltet.


    17.2.1. Quellen besorgen18.2.1. Quellen besorgen

    Besorgen Sie sich den aktuellsten Kernel:


    17.2.2. Quellen entpacken18.2.2. Quellen entpacken

    Wechseln Sie in das Source-Verzeichnis:


    17.2.3. Neueste iptables/IPv6-relevante Patches den Kernel-Quellen hinzufügen18.2.3. Neueste iptables/IPv6-relevante Patches den Kernel-Quellen hinzufügen

    Wechseln Sie in das iptables Verzeichnis


    17.2.4. Konfiguration, kompilieren und Installation eines neues Kernels18.2.4. Konfiguration, kompilieren und Installation eines neues Kernels

    Wechseln Sie zu den Kernel-Quellen


    17.2.5. iptables neu kompilieren und installieren18.2.5. iptables neu kompilieren und installieren

    Stellen Sie sicher, dass obige Kernel-Sourceverzeichnisstruktur unter /usr/src/linux liegt


    17.3. Verwendung18.3. Verwendung

    17.3.1. Unterstützung im Kernel18.3.1. Unterstützung im Kernel

    Laden Sie das Modul (falls dies im Kernel so kompiliert wurde):


    17.3.2. Die Benützung von iptables lernen18.3.2. Die Benützung von iptables lernen

    17.3.2.1. Auflistung aller netfilter Einträge18.3.2.1. Auflistung aller netfilter Einträge


    17.3.2.2. Auflistung angegebener Filter18.3.2.2. Auflistung angegebener Filter


    17.3.2.3. Hinzufügen einer Log-Regel zum Input-Filter mit Optionen18.3.2.3. Hinzufügen einer Log-Regel zum Input-Filter mit Optionen


    17.3.2.4. Hinzufügen einer Drop-Regel zum Input-Filter18.3.2.4. Hinzufügen einer Drop-Regel zum Input-Filter


    17.3.2.5. Löschen einer Regel mit Hilfe der Regelnummer18.3.2.5. Löschen einer Regel mit Hilfe der Regelnummer


    17.3.2.6. Aktiviere die Auswertung des Verbindungsstatus (connection tracking)18.3.2.6. Aktiviere die Auswertung des Verbindungsstatus (connection tracking)

    Seit Kernel-Version 2.6.20 ist die Auswertung des IPv6-Verbindungsstatus gut unterstützt. Die bis dahin statuslosen Filterregeln sollten ersetzt werden..


    17.3.2.7. ICMPv6 erlauben18.3.2.7. ICMPv6 erlauben

    Bei älteren Kernelversionen (unpatched kernel 2.4.5 und iptables-1.2.2) kann keine nähere Spezifizierung des ICMPv6-Typs vorgenommen werden:


    17.3.2.8. Rate-limiting18.3.2.8. Rate-limiting

    Da es zu einem ICMPv6 Storm kommen kann (der Autor hat dies bereits mehrfach beobachtet), sollten sie das rate limiting zumindest für das ICMP Regelset einsetzen. Zusätzlich sollten auch die Logging Regeln mit rate limiting geschützt werden, um DoS Attacken gegen das syslog sowie gegen die Logdateien enthaltenden Patitionen entgegenzuwirken. Ein Beispiel für ein rate limited ICMPv6 sieht wie folgt aus:


    17.3.2.9. Eingehende SSH-Verbindung erlauben18.3.2.9. Eingehende SSH-Verbindung erlauben

    Im folgenden Beispiel werden eingehende SSH-Verbindungen von einer speziellen IPv6 Adresse zugelassen:


    17.3.2.10. Getunnelten IPv6-in-IPv4 Datenverkehr erlauben18.3.2.10. Getunnelten IPv6-in-IPv4 Datenverkehr erlauben

    Um getunnelte IPv6-in-IPv4 Pakete zu akzeptieren, müssen Sie in Ihrem IPv4 Firewall-Setup entsprechende Regeln einzufügen, z.B.


    17.3.2.11. Schutz gegen eingehende TCP-Verbindungs-Anfragen18.3.2.11. Schutz gegen eingehende TCP-Verbindungs-Anfragen

    SEHR EMPFOHLEN! Aus Sicherheitsgründen sollten Sie auf jeden Fall eine Regel inkludieren, wodurch eingehende TCP-Verbindungs-Anfragen geblockt werden. Wenn Sie andere Interfacenamen verwenden, müssen Sie die Option "-i" entsprechend anpassen!


    17.3.2.12. Schutz gegen eingehende UDP-Verbindungs-Anfragen18.3.2.12. Schutz gegen eingehende UDP-Verbindungs-Anfragen

    EBENFALLS SEHR EMPHOLEN! Wie bereits im Kapitel Firewall erwähnt, ist es möglich die Ports bei ausgehenden UDP/TCP-Verbindungen zu kontrollieren. Im Falle, dass all Ihre IPv6 Systeme lokale Ports verwenden, z.B. von 32768 bis 60999, dann können sie ebenfalls UDP Verbindungen filtern (bis das Verbindungs-Tracking funktioniert):


    17.3.3. Anwendungsbeispiele18.3.3. Anwendungsbeispiele

    17.3.3.1. Einfaches Beispiel für Fedora Core18.3.3.1. Einfaches Beispiel für Fedora

    Folgende Zeilen zeigen eine einfache Firewall-Konfiguration für Fedora Core 6 (ab Kernel-Version 2.6.20). Ausgehend von dem Origina (generiert durch system-config-firewall) wurden Modifikationen für die Unterstützung des Verbindungsstatus und der Rückgabe der passenden ICMPv6-Meldung für Rejects. Eingehende SSH (Port 22) Verbindungen sind erlaubt.

    Folgende Zeilen zeigen eine einfache Firewall-Konfiguration für Fedora 6 (ab Kernel-Version 2.6.20). Ausgehend von dem Origina (generiert durch system-config-firewall) wurden Modifikationen für die Unterstützung des Verbindungsstatus und der Rückgabe der passenden ICMPv6-Meldung für Rejects. Eingehende SSH (Port 22) Verbindungen sind erlaubt.


    17.3.3.2. Umfangreicheres Beispiel18.3.3.2. Umfangreicheres Beispiel

    Folgende Zeilen zeigen ein umfangreicheres Setup. Happy netfilter6 Regelset erstellen...

    Kapitel 18. SicherheitKapitel 19. Sicherheit

    18.1. Sicherheit des Knoten19.1. Sicherheit des Knoten

    Es wird sehr empfohlen alle verfügbaren Patches einzuspielen sowie alle nicht benötigten Dienste zu deaktivieren. Ebenfalls sollten Sie lokales firewalling aktivieren und binden Sie die Dienste ausschließlich an benötigte IPv4/IPv6 Adressen.


    18.2. Zugangsbeschränkungen19.2. Zugangsbeschränkungen

    Viele Dienste setzen die tcp_wrapper Bibliothek für die Zugangskontrolle ein. Eine Beschreibung finden Sie unter 18.3. IPv6 Sicherheitsüberwachung19.3. IPv6 Sicherheitsüberwachung

    Aktuell gibt es keine komfortablen Sicherheitstools mit denen man ein System über ein Netzwerk nach IPv6 relevanten Sicherheitslücken hin überprüfen kann. Weder


    18.3.1. Rechtsfragen19.3.1. Rechtsfragen

    ACHTUNG: Bitte stellen Sie immer sicher, dass Sie ausschließlich ihr eigenes Netzwerk scannen oder einen Scan nur nach Erhalt einer schriftlichen Erlaubnis durchführen. Andernfalls haben sie mit rechtlichen Konsequenzen zu rechnen! @@ -10871,8 +11123,8 @@ CLASS="SECT2" >


    18.3.2. Sicherheitsüberwachung mit IPv6 fähigen netcat19.3.2. Sicherheitsüberwachung mit IPv6 fähigen netcat

    Mit dem IPv6 fähigen netcat (siehe


    18.3.3. Sicherheitsüberwachung mit IPv6 fähigen NMap19.3.3. Sicherheitsüberwachung mit IPv6 fähigen NMap


    18.3.4. Sicherheitsüberwachung mit IPv6 fähigen strobe19.3.4. Sicherheitsüberwachung mit IPv6 fähigen strobe

    Strobe ist (im Vergleich zu NMap) ein low budget Portscanner. Allerdings gibt es für Strobe einen IPv6 Patch (siehe


    18.3.5. Überwachungsergebnisse19.3.5. Überwachungsergebnisse

    Falls das Ergebnis einer Überwachung nicht Ihren IPv6 Sicherheitsrichtlinien entspricht, schließen Sie die Lücken mit Hilfe der IPv6-Firewall-Funktionalität, z.B. mit netfilter6 (siehe Kapitel 19. Verschlüsselung und AuthentifizierungKapitel 20. Verschlüsselung und Authentifizierung

    Zum Unterschied zu IPv4 ist die Verschlüsselung und die Authentifizierung ein zwingendes Feature bei IPv6. Diese Features werden normalerweise mit IPsec implementiert (das auch von IPv4 verwendet wird).


    19.1. Nutzungsarten von Verschlüsselung und Authentifizierung20.1. Nutzungsarten von Verschlüsselung und Authentifizierung

    Zwei Arten von Verschlüsselung und Authentifzierung einer Verbindung sind möglich:


    19.1.1. Transport-Modus20.1.1. Transport-Modus

    Der Transport-Modus ist ein Modus nur für Ende-zu-Ende-Verbindungen. Hier wird nur die Nutzlast (üblicherweise ICMP, TCP oder UDP) mit deren entsprechenden Headern verschlüsselt, wogegen der IP-Header nicht verschlüsselt wird (aber üblicherweise in die Authentifizierung eingebunden wird).


    19.1.2. Tunnel-Modus20.1.2. Tunnel-Modus

    Der Tunnel-Modus kann einerseits für eine Ende-zu-Ende wie auch für eine Gatewas-zu-Gateway-Verbindung genutzt werden. Hier wird das komplette IP-Paket verschlüsselt und ein neuer IP-Header vorangestellt .


    19.2. Unterstützung im Kernel (ESP und AH)20.2. Unterstützung im Kernel (ESP und AH)

    19.2.1. Unterstützung im vanilla Linux Kernel 2.4.x20.2.1. Unterstützung im vanilla Linux Kernel 2.4.x

    Fehlt in vanilla 2.4. In der Vergangenheit gab es einen Grund, die Linux Kernel Quellen frei von Export/Import-Kontrollgesetzen bzgl. Verschlüsselungs-Techniken zu halten. Dies ist auch ein Grund, wieso


    19.2.2. Unterstützung im vanilla Linux kernel 2.6.x20.2.2. Unterstützung im vanilla Linux kernel 2.6.x

    Aktuelle Versionen (zum Zeitpunkt des Schreibens 2.6.9 und neuer) unterstützt IPsec für IPv4 und IPv6.


    19.3. Automatischer Schlüssel-Austausch (IKE)20.3. Automatischer Schlüssel-Austausch (IKE)

    IPsec benötigt einen Schlüsselaustausch mit einem “Geheimnis”. Dieser Vorgang wird meistens automatisch durch sogenannte IKE-Daemons durchgeführt. Diese führen ebenso die Authentifizierung der Partner durch, entweder durch ein gemeinsam bekanntes Geheimnis (auch “pre-shared secret” genannt) oder bei RSA-Schlüssel (z.B. aus X.509 Zertifikaten).


    19.3.1. IKE-Daemon “racoon”20.3.1. IKE-Daemon “racoon”

    Der IKE-Daemon “racoon” ist vom KAME-Project und auf Linux portiert worden. Aktuelle Linux-Distributionen beinhalten diesen Daemon im Paket “ipsec-tools”. Zwei Programme sind für ein funktionierendes IPsec-Setup notwendig. Siehe dazu auch das


    19.3.1.1. Manipulation der IPsec SA/SP Datenbank mit dem Werkzeug “setkey”20.3.1.1. Manipulation der IPsec SA/SP Datenbank mit dem Werkzeug “setkey”

    “setkey” ist für die Definition der Security Policy (SP) im Kernel wichtig.


    19.3.1.2. Konfiguration des IKE-Daemon “racoon”20.3.1.2. Konfiguration des IKE-Daemon “racoon”

    “racoon” benötigt eine Konfigurationsdatei zur Ausführung. Es beinhaltet zu der Security Policy entprechenden Einstellungen, welche vorher mit “setkey” definiert wurde.


    19.3.1.3. IPsec mit IKE-Daemon “racoon” starten20.3.1.3. IPsec mit IKE-Daemon “racoon” starten

    Zum Schluss muss der Daemon gestartet werden. Beim ersten Mal sollte Debug- & Vordergrund-Modus aktiviert werden. Das folgende Beispiel zeigt eine erfolgreiche Aushandlung von IKE-Phase 1 (ISAKMP-SA) und 2 (IPsec-SA):


    19.3.2. IKE-Daemon “pluto”20.3.2. IKE-Daemon “pluto”

    Der IKE-Daemon “pluto” ist in den Paketen der *S/WAN-Projekte beinhaltet. Das *S/WAN-Projekt startete zu Anfags als


    19.3.2.1. Konfiguration des IKE-Daemon “pluto”20.3.2.1. Konfiguration des IKE-Daemon “pluto”

    Die Konfiguration ist der zu IPv4 sehr ähnlich, nur eine wichtige Option ist notwendig.


    19.3.2.2. IPsec mit IKE daemon “pluto” starten20.3.2.2. IPsec mit IKE daemon “pluto” starten

    Wenn die Installation von Openswan erfolgreich war, sollte ein initscript zum Starten von IPsec zur Verfügung stehen. Dann einfach auf jedem Partner folgendes ausführen:


    19.4. Anmerkungen:20.4. Anmerkungen:

    Bei Linux Kernel 2.6.x kann der IPsec-Status und die Policy auch mit “ip” angezeigt werden:

    Kapitel 20. Quality of Service (QoS)Kapitel 21. Quality of Service (QoS)

    IPv6 unterstützt QoS durch die Anwendung von Flow Labels und Traffic Classes. QoS kann mittels “tc” (im Paket “iproute” enthalten) kontrolliert werden.

    Kapitel 21. Hinweise zu IPv6 kompatiblen DaemonsKapitel 22. Hinweise zu IPv6 kompatiblen Daemons

    Im folgenden Kapitel werden einige Hinweise zu IPv6 kompatiblen Daemons gegeben.

    21.1. Berkeley Internet Name Domain (BIND) daemon “named”22.1. Berkeley Internet Name Domain (BIND) daemon “named”

    Seit der Version 9 wird IPv6 unterstützt. Setzen Sie immer die neuest verfügbare Version ein. Zumindest muss Version 9.1.3 eingesetzt werden, da ältere Versionen Sicherheitslöcher beinhalten können, die von Remote entsprechend ausgenutzt werden können.


    21.1.1. Auf IPv6 Adressen hören22.1.1. Auf IPv6 Adressen hören

    Anmerkung: Im Gegensatz zu IPv4 können bei aktuellen Versionen Server Sockets nicht an dedizierte IPv6 Adressen gebunden werden, es ist folglich


    21.1.1.1. BIND named konfigurieren, damit er auf IPv6 Adressen antwortet22.1.1.1. BIND named konfigurieren, damit er auf IPv6 Adressen antwortet

    Folgende Optionen müssen geändert werden, damit IPv6 aktiviert wird


    21.1.1.2. BIND named konfigurieren, damit er auf IPv6 Adressen nicht antwortet22.1.1.2. BIND named konfigurieren, damit er auf IPv6 Adressen nicht antwortet

    Folgende Optionen müssen geändert werden, damit IPv6 deaktiviert wird:


    21.1.2. Access Control Lists (ACL) mit IPv6 Unterstützung22.1.2. Access Control Lists (ACL) mit IPv6 Unterstützung

    ACLs mit IPv6 Adressen sind realisierbar und sollten wann immer möglich eingesetzt werden. Ein Beispiel:


    21.1.3. Anfragen mit festen IPv6 Adressen senden22.1.3. Anfragen mit festen IPv6 Adressen senden

    Diese Option ist nicht verpflichtend, ev. aber benötigt:


    21.1.4. Pro Zone definierte feste IPv6 Adressen22.1.4. Pro Zone definierte feste IPv6 Adressen

    Es ist möglich pro Zone mehrere IPv6 Adressen zu definieren.


    21.1.4.1. Transfer source Adresse22.1.4.1. Transfer source Adresse

    Die Transfer source Adresse wird für ausgehende Zonentransfers verwendet:


    21.1.4.2. Notify source Adresse22.1.4.2. Notify source Adresse

    Die Notify source Adresse wird für ausgehende notify Mitteilungen verwendet:


    21.1.5. IPv6 DNS zone files Beispiele22.1.5. IPv6 DNS zone files Beispiele

    Einige Informationen finden Sie auch unter


    21.1.6. IPv6 bezogene DNS-Daten bereitstellen22.1.6. IPv6 bezogene DNS-Daten bereitstellen

    Für IPv6 wurden neue Reverse Lookup Arten und Root Zonen definiert:


    21.1.6.1. Aktuell beste Praxis22.1.6.1. Aktuell beste Praxis

    Da es mit den neuen Formaten noch Probleme gibt, ist die aktuell beste Praxis:


    21.1.7. IPv6 Verbindung überprüfen22.1.7. IPv6 Verbindung überprüfen

    Ob BIND auf einen IPv6 socket hört bzw. IPv6 Daten bereitstellt, können Sie anhand folgender Beispiele überprüfen.


    21.1.7.1. IPv6 Verbindung durch ACL abgelehnt22.1.7.1. IPv6 Verbindung durch ACL abgelehnt

    Eine IPv6 Verbindung kann durch Angabe eines dedizierten Server, der abgefragt werden soll, erzwungen werden:


    21.1.7.2. Erfolgreiche IPv6 Verbindung22.1.7.2. Erfolgreiche IPv6 Verbindung

    Eine erfolgreiche IPv6 Verbindung sieht wie folgt aus:

    21.2. Internet super daemon (xinetd)22.2. Internet super daemon (xinetd)

    IPv6 wird ungefähr seit der 21.3. Webserver Apache2 (httpd2)22.3. Webserver Apache2 (httpd2)

    IPv6 wird beim Apache Webserver durch die Entwickler seit der Version 2.0.14 unterstützt. Verfügbare Patches für die alte 1.3.x Serie sind inzwischen nicht mehr aktuell und sollten nicht mehr in öffentlich zugänglichen Umgebungen eingesetzt werden. Verfügbar sind die Patches noch unter


    21.3.1. Auf IPv6 Adressen hören22.3.1. Auf IPv6 Adressen hören

    Anmerkung: Virtuelle Hosts mit IPv6 Adressen sind bis zur Version 2.0.28 nicht operabel (es gibt für die Version 2.0.28 einen Patch). Testen Sie aber immer zuerst die neueste Version, da ältere Versionen mitunter auch Sicherheitsprobleme mit sich bringen können.


    21.3.1.1. Virtueller Host mit IPv6 Adresse22.3.1.1. Virtueller Host mit IPv6 Adresse


    21.3.1.2. Virtueller Host mit IPv4 und IPv6 Adresse22.3.1.2. Virtueller Host mit IPv4 und IPv6 Adresse


    21.3.1.3. Zusätzliche Anmerkungen22.3.1.3. Zusätzliche Anmerkungen

    Apache2 unterstützt eine Methode namens “sendfile”, um die Auslieferung von Datenn zu beschleunigen. Einige NIC-Treiber unterstützen auch offline das Berechnen der Checksumme. In einigen Fällen kann dies zu Verbindungsproblemen und ungültigen TCP-Checksummen führen. In diesen Fällen ist “sendfile” zu deaktivieren, entweder durch Rekompilieren unter der Benützung der configure-Option “--without-sendfile” oder durch Benützung der Direktive "EnableSendfile off" in der Konfigurationsdatei.

    21.4. Router Advertisement Daemon (radvd)22.4. Router Advertisement Daemon (radvd)

    Der Router Advertisement Daemon ist auf einem LAN dann sehr sinnvoll, wenn die Clients automatisch konfiguriert werden sollen. Der Daemon selbst sollte auf einem Linux Gateway Router eingerichtet sein (es hat nicht notwendigerweise das default IPv4 Gateway zu sein, Vorsicht also wer am LAN Router Advertisements versendet).


    21.4.1. radvd konfigurieren22.4.1. radvd konfigurieren

    21.4.1.1. Einfache Konfiguration22.4.1.1. Einfache Konfiguration

    Die Konfigurationsdatei des radvd ist normalerweise die Datei /etc/radvd.conf. Eine einfache Konfiguration sieht wie folgt aus:


    21.4.1.2. Spezielle 6to4 Konfiguration22.4.1.2. Spezielle 6to4 Konfiguration

    Seit der Version 0.6.2pl3 wird die automatische (Neu)-Erstellung des Präfixes abhängig von der IPv4 Adresse eines angegebenen Interfaces unterstützt. Dies kann dazu eingesetzt werden, die Advertisements dann in einem LAN zu verteilen, nachdem das 6to4 tunneling geändert wurde. Zumeist eingesetzt wird dies hinter einem dynamischen dial-on-demand Linux Router. Wegen der sicherlich kürzeren Lebensdauer dieser Präfixe (nach jedem dial-up ist ein anderes Präfix gültig), wird der Wert der Lebensdauer auf einen minimalen Wert gesetzt:


    21.4.2. Fehlersuche22.4.2. Fehlersuche

    Mit dem Programm “radvdump” können Sie gesendete und empfangene Advertisements detailliert betrachten. Die Anwendung ist einfach:

    21.5. Dynamic Host Configuration v6 Server (dhcp6s)22.5. Dynamic Host Configuration v6 Server (dhcp6s)

    DHCPv6 kann für stateful Konfiguration benutzt werden. Der Daemon selbst muß nicht unbedingt auf dem Linux-Standard-Router laufen.


    21.5.1. Konfiguration des DHCPv6-Servers (dhcp6s)22.5.1. Konfiguration des DHCPv6-Servers (dhcp6s)

    21.5.1.1. Einfache Konfiguration22.5.1.1. Einfache Konfiguration

    Die Konfigurationsdatei des dhcp6s ist normalerweise /etc/dhcp6s.conf. Ein einfaches Beispiel sieht wie folgt aus:


    21.5.2. Konfiguration des DHCPv6-Client (dhcp6s)22.5.2. Konfiguration des DHCPv6-Client (dhcp6s)

    21.5.2.1. Einfache Konfiguration22.5.2.1. Einfache Konfiguration

    Die Konfigurationsdatei von dhcp6c ist normalerweise /etc/dhcp6c.conf. Ein einfaches Beispiel sieht wie folgt aus:


    21.5.3. Benutzung22.5.3. Benutzung

    21.5.3.1. dhcp6s22.5.3.1. dhcp6s

    Starten des Servers, z.B. durch


    21.5.3.2. dhcp6c22.5.3.2. dhcp6c

    Starten des Clients im Vordergrund, z.B. durch


    21.5.4. Fehlersuche22.5.4. Fehlersuche

    21.5.4.1. dhcp6s22.5.4.1. dhcp6s

    Der Server hat einen Vordergrund und zwei Debug-Schalter (von denen beide benutzt werden sollten), hier ein Beispiel:


    21.5.4.2. dhcp6c22.5.4.2. dhcp6c

    Der Client hat einen Vordergrund und zwei Debug-Schalter, hier ein Beispiel:

    21.6. tcp_wrapper22.6. tcp_wrapper

    Mit der tcp_wrapper Programmbibliothek können Sie Ihre Dienste gegen Missbrauch schützen.


    21.6.1. Filter-Funktionalität22.6.1. Filter-Funktionalität

    Sie können tcp_wrapper für folgende Zwecke einsetzen:


    21.6.2. Welches Programm benützt tcp_wrapper22.6.2. Welches Programm benützt tcp_wrapper

    Folgende Programme sind bekannt:


    21.6.3. Anwendung22.6.3. Anwendung

    Der tcp_wrapper wird durch zwei Dateien konfiguriert und kontrolliert: /etc/hosts.allow sowie /etc/hosts.deny. Weitere Informationen finden Sie mit:


    21.6.3.1. Beispiel für /etc/hosts.allow22.6.3.1. Beispiel für /etc/hosts.allow

    In dieser Datei wird ein Dienst pro Zeile eingetragen, der positiv gefiltert werden soll (d.h. Verbindungen werden erlaubt).


    21.6.3.2. Beispiel für /etc/hosts.deny22.6.3.2. Beispiel für /etc/hosts.deny

    In dieser Datei werden alle Einträge negativ gefiltert. Und normalerweise sollen alle Verbindungen unterbunden werden:


    21.6.4. Protokollierung22.6.4. Protokollierung

    Entsprechend der Syslog Daemon Konfiguration in der Datei /etc/syslog.conf protokolliert der tcp_wrapper normalerweise in die Datei /var/log/secure.


    21.6.4.1. Abgelehnte Verbindung22.6.4.1. Abgelehnte Verbindung

    Das Logging einer abgelehnten IPv4-Verbindung zu einem durch den xinetd überwachten Daytime Dienst sieht wie folgt aus:


    21.6.4.2. Akzeptierte Verbindung22.6.4.2. Akzeptierte Verbindung

    Das Logging einer akzeptierten IPv4-Verbindung zu einem durch den xinetd überwachten Daytime Dienst sieht wie folgt aus:

    21.7. vsftpd22.7. vsftpd

    21.7.1. Auf IPv6-Adressen lauschen22.7.1. Auf IPv6-Adressen lauschen

    Editiere die Konfigurationsdatei, üblicherweise /etc/vsftpd/vsftpd.conf, und setze die Option für das “listen” wie folgt:

    21.8. proftpd22.8. proftpd

    21.8.1. Auf IPv6-Adressen lauschen22.8.1. Auf IPv6-Adressen lauschen

    Editiere die Konfigurationsdatei, üblicherweise /etc/proftpd.conf, allerdings ist hier zu beachten, daß dies in der Konfigurationsart virtueller Host nicht 100% logisch ist

    21.9. Andere Daemons22.9. Andere Daemons

    Seit einiger Zeit ist dies meist einfach, suchen Sie einfach nach einer Kommandozeilen-Option oder einer Konfigurationsvariable, um das Lauschen an IPv6-Adressen zu aktivieren. Schauen Sie dazu in den Manual-Seiten des Daemons oder in den entsprechenden FAQs nach. Es kann allerdings durchaus sein, daß sich der Daemon nur an die IPv6-“any”-Adresse (::) binden läßt und kein dediziertes Binden an eine spezielle IPv6-Adresse möglich ist (das hängt von der Unterstützung des Programmierers ab).

    Kapitel 22. ProgrammierungKapitel 23. Programmierung

    22.1. Programmierung mit Nutzung der C-API23.1. Programmierung mit Nutzung der C-API

    Dieser Abschnitt ist momentan nicht in Deutsch verfügbar, die englische Version ist verfügbar unter:


    22.2. Andere Programmiersprachen23.2. Andere Programmiersprachen

    22.2.1. JAVA23.2.1. JAVA

    In Sun Java Versionen ab 1.4 ist Unterstützung für IPv6 vorhanden, siehe dazu auch die Klasse


    22.2.2. Perl23.2.2. Perl

    Stand Mai 2007 ist nichts bekannt, daß der Kern von Perl IPv6 nativ unterstützt. Dies kann allerdings aktiviert werden durch Benützung des folgenden Moduls:

    Kapitel 23. InteroperabilitätKapitel 24. Interoperabilität

    Das Kapitel 24. Weitere Informationen und URLsKapitel 25. Weitere Informationen und URLs

    24.1. Gedruckte Bücher, Artikel, Onlinerezensionen25.1. Gedruckte Bücher, Artikel, Onlinerezensionen

    24.1.1. Gedruckte Bücher (Englisch)25.1.1. Gedruckte Bücher (Englisch)

    24.1.1.1. Cisco25.1.1.1. Cisco


    24.1.1.2. Allgemein25.1.1.2. Allgemein

    Understanding IPV6 von Davies, Joseph; ISBN 0735612455; Datum der Veröffentlichung: 05/01/2001; 350 Seiten. -Understanding IPV6 von Davies, Joseph; ISBN 0735612455; Datum der Veröffentlichung: 13/11/2002; 544 Seiten.

    von Davies, Joseph; ISBN 0735612455; Datum der Veröffentlichung: 05/01/2001; 350 Seiten.


  • 24.1.2. Artikel, eBooks, Online Rezensionen25.1.2. Artikel, eBooks, Online Rezensionen

  • Aufbruch in die neue Welt - IPv6 in IPv4 Netzen von Dipl.Ing. Ralf Döring, TU Illmenau, 1999

  • Migration and Co-existence of IPv4 and IPv6 in Residential Networks24.1.3. Wissenschaftliche Publikationen (Kurzbeschreibungen, Bibliographien, Online Quellen)25.1.3. Wissenschaftliche Publikationen (Kurzbeschreibungen, Bibliographien, Online Quellen)

    Siehe auch:


    24.1.4. Sonstiges25.1.4. Sonstiges

    Mehr Infos gibt es unter: 24.2. Konferenzen und Meetings25.2. Konferenzen und Meetings

    Fehlt etwas? Vorschläge sind willkommen!


    24.2.1. 200225.2.1. 2004

    Fehlt etwas? Vorschläge sind Willkommen!


    24.2.2. 2003

    Vorschläge sind Willkommen!


    24.2.3. 2004

    • 1st Global IPv6 Summit in Sao Paul, Brazil

      1st Global IPv6 Summit in Sao Paul, Brasil

    24.3. Online-Informationen25.3. Online-Informationen
    24.3.1. Mit dem IPv6 Backbone verbinden25.3.1. Mit dem IPv6 Backbone verbinden

    Mehr Infos in späteren Versionen... Vorschläge sind Willkommen!

    24.3.1.1. Globale Registrierungsstellen25.3.1.1. Globale Registrierungsstellen

    Siehe regionale Registrierungsstellen.

    24.3.1.2. Regionale Haupt-Registrierungsstellen25.3.1.2. Regionale Haupt-Registrierungsstellen

    24.3.1.3. Tunnel-Broker25.3.1.3. Tunnel-Broker

    Anmerkung: Eine Tunnel-Broker Liste ist im Abschnitt 24.3.1.4. 6to425.3.1.4. 6to4

    24.3.1.5. ISATAP25.3.1.5. ISATAP


    24.3.2. Neueste Nachrichten und URLs zu anderen Dokumenten25.3.2. Neueste Nachrichten und URLs zu anderen Dokumenten


    24.3.3. Protokoll-Informationen25.3.3. Protokoll-Informationen

    24.3.3.1. IPv6 bezogene Request For Comments (RFCs)25.3.3.1. IPv6 bezogene Request For Comments (RFCs)

    Das veröffentlichen einer Liste mit IPv6 relevanter RFCs geht über den Rahmen dieses Dokumentes hinaus, unter folgenden Links können Sie jedenfalls diverse Listen finden:


    24.3.3.2. Aktuelle Entwürfe diverser Arbeitsgruppen25.3.3.2. Aktuelle Entwürfe diverser Arbeitsgruppen

    Aktuelle (auch) IPv6-bezogene Drafts finden Sie hier:


    24.3.3.3. Sonstige25.3.3.3. Sonstige


    24.3.4. Weitere Informationen25.3.4. Weitere Informationen


    24.3.4.1. Linux Informationen25.3.4.1. Linux Informationen

    Linux Optimized Link State Routing Protocol (OLSR) IPv6 HOWTO

  • LinShim6


  • 24.3.4.2. Informationen zu Linux-Distributionen25.3.4.2. Informationen zu Linux-Distributionen

    Fedora Core
    Fedora

    Debian Linux, Craig Small's IPv6 information and statusIPv6 with Debian Linux


    24.3.4.3. Allgemeine Informationen25.3.4.3. Allgemeine Informationen

  • UK IPv6 Resource Centre - Großbritannien

  • WIDE project

  • IP Next Generation Overview

  • IPv6: The New Version of the Internet Protocol

  • The Quality of Service Forum site

  • internet || siteinternet2 Working Group - Presentation (HTML + PPT) from IPv6 Workshops: (Stateless Autoconfiguration, IPv6 Addressing, USAGI, Provider Independent IPv6 Addressing and other topics).

  • IPv6 & TCP Resources List

  • Klingon IPv6 tools, Klingon IPv6 tools (native IPv6 only access): IPv6 Firewall Beispiele, Bandbreiten-Tests sowie Portscanner

  • Fehlt etwas? Vorschläge sind Willkommen!

    24.3.4.4. Marktforschung25.3.4.4. Marktforschung

    24.3.4.5. Patente25.3.4.5. Patente


    24.3.5.10. Italien25.3.5.10. Italien


    24.3.5.11. Japan25.3.5.11. Japan

  • Linux IPv6 Users Group JP

  • Yamaha IPv6


    24.3.5.12. Korea25.3.5.12. Korea


    24.3.5.13. Mexiko25.3.5.13. Mexiko


    24.3.5.14. Niederlande25.3.5.14. Niederlande


    24.3.5.15. Österreich25.3.5.15. Österreich


    24.3.5.16. Portugal25.3.5.16. Portugal

    Vorschläge sind willkommen!


  • 24.3.5.17. Russland25.3.5.17. Russland


    24.3.5.18. Schweiz25.3.5.18. Schweiz

    • SWITCH: Das Schweizer Erziehungs- & Wissenschaftsnetzwerk

    Vorschläge sind willkommen!


    24.3.6. Sortiert nach Betriebssystemen25.3.6. Sortiert nach Betriebssystemen

    24.3.6.1. *BSD25.3.6.1. *BSD

    FreeBSD Ports: Ipv6

  • BUGAT - BSD Usergroup Austria - www.bugat.at: FreeBSD IPv6 Tunnel (deutsche Sprache)


  • 24.3.6.2. Cisco IOS25.3.6.2. Cisco IOS


    24.3.6.3. Compaq


    24.3.6.7. Solaris25.3.6.6. Solaris


    24.3.6.8. Sumitoma25.3.6.7. Sumitoma


    24.3.6.9. ZebOS25.3.6.8. ZebOS

    24.3.7. IPv6 Sicherheit25.3.7. IPv6 Sicherheit

    NewOrder.box.sk (search for IPv6) (Artikel, Exploits, Datei-Datenbank etc.)

  • THC IPv6 Attack Toolkit


  • 24.3.8. Programm-Listen25.3.8. Programm-Listen


    24.3.8.1. Analyse-Werkzeuge25.3.8.1. Analyse-Werkzeuge


    24.3.8.2. IPv6 Produkte25.3.8.2. IPv6 Produkte

    Posadis 0.50.6

  • TCP Wrapper (IPv6 aware)

  • 24.3.8.3. SNMP25.3.8.3. SNMP


    24.4. IPv6 Infrastruktur25.4. IPv6 Infrastruktur

    24.4.1. Statistiken25.4.1. Statistiken


    24.4.2. Internet Exchanges25.4.2. Internet Exchanges

    Eine weitere Liste von IPv6 Internet Exchanges gibt es unter: 24.4.2.1. Deutschland25.4.2.1. Deutschland

    24.4.2.2. Estlanda25.4.2.2. Estlanda

    24.4.2.3. Europa25.4.2.3. Europa

    24.4.2.4. Frankreich25.4.2.4. Frankreich

    24.4.2.5. Großbritannien25.4.2.5. Großbritannien

    24.4.2.6. Japan25.4.2.6. Japan

    24.4.2.7. Korea25.4.2.7. Korea

    24.4.2.8. Niederlande25.4.2.8. Niederlande

    24.4.2.9. USA25.4.2.9. USA

  • NY6IX: New York City IPv6 basierter Internet Exchange

  • PAIX24.4.3. Tunnel broker25.4.3. Tunnel broker

    Auch interessant: 24.4.3.1. Belgien25.4.3.1. Belgien

    Fehlt etwas? Vorschläge sind willkommen!

    24.4.3.2. Canada25.4.3.2. Canada

    24.4.3.3. China25.4.3.3. China

    Fehlt etwas? Vorschläge sind willkommen!

    24.4.3.4. Deutschland25.4.3.4. Deutschland

    24.4.3.5. Estlanda25.4.3.5. Estlanda

    24.4.3.6. Großbritannien25.4.3.6. Großbritannien

    NTT, Großbritannien - IPv6 Versuch. IPv4 Tunnel und native IPv6 Standleitungs-Verbindungen. POPs gibt es in: London, Düsseldorf, New Jersey (USA, East Coast) Cupertino (USA, West Coast) Tokio

  • BtexacT IPv6 Tunnel Broker Service

  • IPNG-UK

  • 24.4.3.7. Italien25.4.3.7. Italien

    24.4.3.8. Japan25.4.3.8. Japan

    Fehlt etwas? Vorschläge sind willkommen!

    24.4.3.9. Malaysia25.4.3.9. Malaysia

    Fehlt etwas? Vorschläge sind willkommen!

    24.4.3.10. Niederlande25.4.3.10. Niederlande

    24.4.3.11. Norwegen25.4.3.11. Norwegen

    24.4.3.12. Spanien25.4.3.12. Spanien

    24.4.3.13. Schweiz25.4.3.13. Schweiz

    Fehlt etwas? Vorschläge sind willkommen!

    24.4.3.14. USA25.4.3.14. USA

    24.4.3.15. Singapore25.4.3.15. Singapore

    Fehlt etwas? Vorschläge sind Willkommen!

    24.4.3.16. Weitere Tunnel broker...25.4.3.16. Weitere Tunnel broker...

    24.4.4. Native IPv6 Dienste25.4.4. Native IPv6 Dienste

    Anmerkung: Die folgenden Dienste sind meist nur mit einer gültigen IPv6 Verbbindung erreichbar!

    24.4.4.1. Net News (NNTP)25.4.4.1. Net News (NNTP)

    Fehlt etwas? Vorschläge sind Willkommen!

    24.4.4.2. Spiele Server25.4.4.2. Spiele Server

    24.4.4.3. IRC Server25.4.4.3. IRC Server

    Fehlt etwas? Vorschläge sind Willkommen!


    24.4.4.4. Radiosender, Musik-Streams25.4.4.4. Radiosender, Musik-Streams

    Fehlt etwas? Vorschläge sind Willkommen!

    24.4.4.5. Web Server25.4.4.5. Web Server

    24.5. Mailinglisten25.5. Mailinglisten

    Weitere Listen von Mailinglisten sind verfügbar unter:

    SchwerpunktRequest e-mail AdresseAbonnierene-mail Adresse der MailinglisteSpracheZugang via WWWLinux Kernel Networking inkl. IPv6majordomo (at) vger.kernel.orgnetdevnetdev (at) vger.kernel.orgEnglischMobile IP(v6) für LinuxWeb-based, see URLmiplmipl (at) mobile-ipv6.orgEnglischLinux IPv6 User & USAGIusagi-users-ctl (at) linux-ipv6.orgusagi-users (at) linux-ipv6.orgEnglischIPv6 und Debian LinuxWeb-based, siehe URLdebian-ipv6 (at) lists.debian.orgEnglisch6bonemajordomo (at) isi.edu6bone6bone (at) isi.eduEnglischIPv6 User allgemeinmajordomo (at) ipv6.orgusersusers (at) ipv6.orgEnglischBugtracking Internet Programme (1)bugtraq-subscribe (at) securityfocus.combugtraq (at) securityfocus.com (3)Englisch24.6. Online-Werkzeuge25.6. Online-Werkzeuge

    24.6.1. Test-Werkzeuge25.6.1. Test-Werkzeuge


    24.6.2. Informationsbeschaffung25.6.2. Informationsbeschaffung


    24.6.3. IPv6 Looking Glasses25.6.3. IPv6 Looking Glasses


    24.6.4. Hilfsapplikationen25.6.4. Hilfsapplikationen

    24.7. Trainings, Seminare25.7. Trainings, Seminare

  • IPv6 Training and Workshop, AERAsec, Deutschland (derzeit nur in deutscher Sprache)

  • CIW Internetworking Professional Training CBT CD24.8. 'Die Online Entdeckung' ...25.8. 'Die Online Entdeckung' ...

    IPv6: Addressing The Needs Of the Future von Yankee Group (Autor)


    Kapitel 25. Versions-Überblick / Danksagung / Zum Schluss

    Kapitel 26. Versions-Überblick / Danksagung / Zum Schluss

    25.1. Versions-Überblick26.1. Versions-Überblick

    Die Versionen x.y. werden im Internet veröffentlicht.


    25.1.1. Ausgabe 0.x26.1.1. Ausgabe 0.x

    25.1.1.1. Englische Sprachversion (Peter Bieringer's Original)26.1.1.1. Englische Sprachversion (Peter Bieringer's Original)

    Die Historie der Änderungen der englischen Sprachversion finden Sie dort:


    25.1.1.2. Deutsche Sprachversion26.1.1.2. Deutsche Sprachversion

    0.63.de.1

    2009-02-14/PB: Sync mit Original

    0.62.de.1

    2008-11-09/PB: Sync mit Original

    0.61.1.de.3

    25.2. Danksagung26.2. Danksagung

    Dieser feinen Liste hinzugefügt werden können Sie am schnellsten, indem Sie mir Bug fixes, Korrekturen und/oder Updates schicken ;-)

    25.2.1. Primärer Dank...26.2.1. Primärer Dank...


    25.2.2. Sonstiger Dank...26.2.2. Sonstiger Dank...

    25.2.2.1. Verwaltung des Dokuments26.2.2.1. Verwaltung des Dokuments

    Als Neuling ein LDP HOWTO zu schreiben (in LyX schreiben sowie SGML konformer Export zu DocBook) ist nicht so einfach, wie von so manchem behauptet wird. Es gibt einige sonderbare Fallen... Nichtsdestoweniger Dank an:

    25.2.2.2. Inhalt des Dokuments26.2.2.2. Inhalt des Dokuments

    Mein Dank für Fixes und Hinweise ist hier aufgelistet - und die Liste wird mit der Zeit sicherlich länger werden... @@ -17353,8 +17234,8 @@ CLASS="SECT1" >


    25.3. Zum Schluss26.3. Zum Schluss

    Danke für's Lesen. Hoffentlich ist es von Nutzen!

    Ca;UY%wY**bxy{KtN#Wii)n7Xkv}TS0>Gt zm^X=nf|?jBV(b-TtPuq@c129FMD+JPXXZZl-sk=O13Poi%$zxM=CnC8&;36hck_<1 zS6x(9XiFy2iF8}4t!-ReV%^mjUESrPtIICBy6Z((cl+bj-t~QJvbokoOR|t`O|_)* zZLJB@eL~nwaK=Od4$@sRGZmeMtAw4^iAQSp`emV+nIR7q%v(u zv)C23bOrncEo4p0Z~@O-@Ee8;c-~@OzK<y&>dC?Wt-@}*vM|g*qrQKTG z=n6MJ&KG~Aez|MfNbeV2iXi2qrKhAh^+D-Y3u$w~eH32Qf+OPoV+1T~uDqWwzZt`# z=F$$!im~3|U2_?S%(Aiajne&NVGsFZ*f`iDmvJPxX`Fsfn?2+7d)l1Ts()n7R{KZZ z{NfD;nKWJiv##0i#>*gC9kS6>wRz2E^E|(MWr`h;ETmduRv z$XwOx`R22Mp68{~`PQ^~dXm?q{Ve{}Z!|mFyrDhQZQ0g*ODd6XO`7&W-oWa7ga?wT zjL9dw(dLG<=k<^snr=xY*>4GNVAotu>D*{GQQGi;=k-jnok1v{WFxn>c+EArWTdlf zTiSF_dU-z~y=2X{{$4{FeXt7~&3Q@Y)H1{?H?t4&{O2o%%vtMYlqOd?glj!n3Il2_j~SI`w`G>z#1ESq4gB%P&OlDV|GVIQxdi?T_h z`9azn=_ON%*1XxA7D^Y~ihY>&Mwg{?CNaz#R7NGjp~)PZ@kVuP%K=>bJqx^nM&@3r zP9fn;m*G_B+48^WS>9-dWGx0>bs}4U%;{Vn*_l8lvF`Q2IZQ7VxT*X5<=rz`nNTKc zo*vF}2|(4~AoZTCH_%MVdVWPZ2}RNnFKq_pyyh|>uFrtN$vK%vTN;+Q?J&h5YuH{* z<{_YL(?nM0pGdT3%x-O(H%qgSb5!18X-*yC`Q=%mIil&gNh}Qi3(31A&GNC{kjk7e zUNV~m$$Y`AKY&F6qGMkWXg`C0HV^R1d!-|lu z^!ezr%cZ5S>g9K4<^0xvP9an>;~1x0IJ9csgs!kYgT)->!Nah2AH-( zuwD!Jkh6?1Cn*yegRy_J?g*7lgB0lDv856~B4IM4*%) z>4LCmBA0^lH?%U{lq1OL6B%mfQ!rm%xicxVoz*PZ0P@C5FxhhxWxB$eNmedlI>y`f zZF`wWc9J)&iYb5tVkXTlNID#7zIFl&cReyrk?4_T7hxf=qU#6BWRN+!DE@)6`1Abo ziewuUNfl(nA{xQc>B+?hg5}gfUS&53-X?NU@XMN6J3!%Y@=>U@A>oyGM*yMAF+D6L z0BW2B74|;}JgvM;<&e**LdvvHfW-lr^aj1$1VDwAm+YmS$V3~YnB}%%$yMc z+FXYI+cp`9Bfkg9mt_#rN#)_T4AcW=SuL(NZyv0D@D7G@}7HJ@uU z2UHdWkA8V`IpS^UX=lv1%R9mw(WS@Cc^z{pRxpPaZ-~ga5rC?yX)?QR z^@jA!s#Hq}=UJ)7S4HHeBU!691X{Ozj*VyKSuU?)rq^UxHZ5$FqK^Cx?W4O8eNokJ#yysODaVNl2BIbf{JOX?O^nTImH`D6IukSWkprLT%S#0?}z zRNKtNqfn}W_B)r#a`Yq8 z$;rW~2YcPCqXtAanKUl}W><9fI5sg3MZP7INr<^oua1N&s+>~O3~IuBNaBfPLXjuV z#+L|blc;s_+q7bAc{n^Q@A@W1G;3xfs?Dxx7Nl1hX7Y8d-oSx{M3i2cLZPK?=7b5w zWySJU2@?oOq^%Q@1r*Ejr~Jm+T+Z=CBCATT!W?(Bcl6*2M6T6^)@Gudab>mQXPP&s zq8pz$+8c*Eqh3x!*F+9m<1Bx$xnZr})BIwZH@Yql0TU@Pg%GgfY^6=@0e)Ze(KK&> z8Cm1^F%M3K74xd8>x4G>7UVHT7#lp-QZR!T`2GC6>Sc54F=QI?fwoEfcc{+5{O|GJ7|){G zaw0Un_ISUKeqA@)8*ENL!5enC(x*tdWSj7rQm)`^q=Ms*g5!&Vn~v~cI2~~dYuKru zp5X0gEj7lc7YRL@f zY+p>zf#!%)y-}V{&s;wX5r`({y-q$PQ&NZ^WHOmqUaqksnY0U; zOzJ`g{D{;w+m2zRk1zLnmnBnX+X{rxW3#-`ExOQQhbdtUrF%++(o8e8ofWOz!9RuB z-eF=LIx_xxwl{24N>?Y+UZ!E&D{B=oFgvej6CQn@S8J|6&1Gip* zb*^`I*TX}5wm0|0$g|enq_RoF3UjY>8)O! zd2*RIR--WI4JdCYOXiCUG1~f?XD;`~SZx)qmTDnoY*n@hqMWX0Mbc>>JP<*3rkS=J zDtvrA|7^X*8z$W!_%I_MyaLp8lTVmnUR~}L%&jXR(ufu8r=2U1R~;+7N#=-^w0lVE z&Rt1ekComEJB6lIXzKr6iELW7${T0?yOJ*NUd8GixXN22AigH>wm>?)b%nZT|&iy_L-@|Ig{2dn|x-<-vSSe`!Si?aZ^Z4Dq3)?ngZyT-3Gwligj)8|v`hoOmIKY#C$pIbK6Q6?PRVs}lHM zS7xT!ayDacdWnDFlsfaPbNK6_={QtRpW}_GQ56`@D`D1m^OdI*66GK!{*rT<$QS1@ zkwcfW#g8}_oVu=MB0oLX>pyr#Dq*z~4ws@sKvbE)8E+}m_7!x!aIH7NY|GK~jkVs$ z(TTWPPHCW3SSyvVhzG49gs5F5_3ZOl7L9}`UK`HyhL_GDX=kwPa}eDt;H%GL@YeIe z_TKZ@l)pS5`A~O0OYz+K@YZzsFsu_BY>U(_?WFjX)aiJyb<)AHopjLi0)T(s88G6; z3!q5$0%4|<4Y5?14=(UV6nAGTWp*7;uT$62>+)6<&86!w!voeIunyTY^((Y*Z!v(D ztYZkB(&P*2_|A3cn7uO*0ME+T(HCM^^!Ne)EW0q!<|@q>{eZQ6??T%C@&}+i?gzs4 z*HHK54{?Gzf53;se#nPM<*SOrM}CM^HRgwW=zbA(E9C2>OT3Kv@ogxE>n~!uAIsP6 z@-=ml&M#%Psp);OH@+zJQ)w0YgtISZJl!dOy4V}lJ?-SXIr3um;f+7?CYqmLES4rQ z9PDTOWkLh!E2Mi~!kxX%>lb^C4Kr|%EbnBj00~w!U;$0 z_N_~0;uZ#8b>b^8XP2b)QndFoKW14)-f%!5@|vh0(%*(CFY#uWXD(%ZFTKQT>Mxai zQm_<`Lj}s3OHz9y5%#$5)YEW57v8i!#_wk7s$&$jJbXlqOEo7i_>Z2f(+Gslk##emuJ zo}Hgpoyy~hGC^^I)A*TUd(@((WVIpU!F3z=Uf7>XeRl?m^fUGFiB#`0`5r(wTT zF0j~ASto6Tdwj(*XBz2itzVWR)zOA zS6t=Qbs-YJKfw22<&CPbj$MStwaYMp&^CQdx2wSUr1k94Bd-dy%~$J@9PeG_^&dS0 zZnm4rX=kiRTUPyDbkK-Z!V!ba`9Jkq@LSbUx%a0ig_6ZZcR%jH%wVyZRZ^XJwKuG; z#AAV3OyWGSeBf$!_U*gD@{_9(od5VKatng=wjZ)rE~Ww;)^g?lX>&!aHF*piiAri%(@F%XW;tDafBn= zvR`<^ZEPk28BW=5t8^khb!SJ2Ygs>k-m3Pwb5|_vIDKhE#xRs8Tcyv+Sf8f)7hpVYhF_}--9v1A^b6wT)1P}y)p2f4n;Xw%YO}8Q$`dQ* z&0WyGs&&rNCFAF=n73@%ycOdYFYH*oX55O?=WsfhZe6fy$>LBfg0i^kHAr;pNMOfH z@YQ_wbFV>(A4)_{>4U{^R#DnoMHOjl`OMt#ON7LE4G|}|m!RVO%n&&bLY{Opul&**;prYR%YOw8Ft}@qe$Qz0xd8s`SA-svg-pw}z^GrX{pi*> z>{@nETr8!{x^HM0_)nt^2QpYd*Lh>UA2-_4>K-e{x$~xUQWuS5G^INKTS=5oDxVaY z*mSuc5pex=SRN{WKcn*&Wub7&Dd|c(xBfMUSQ1x}IW{d^c4oG9?!40$ws*94%v%-Z zDDWy(vj%hKA@cnKS<2|c^{f4qMwMBFGsT&arI{$BO zWRZ0KX8Er{O+$lfuRnbwb1n)FbM3Fa;hxgibomW{SIlF@KlwGRfm9e`T7QE@T*B~a z5#NpG{NG?ee)$_Pnte0p3J?Fr8&;!;hZIj+;n3$M#aIs-8V=?#G+2kU70c5BQ| zO~-G&{$=AwnO(nSs;^(|)%GFs#j*Z1-=a^P#0 z-wf&1WQ+)GOs}Hr+jcXfzHH_{IQUuzQfW%r~?6$^IYWRY1Meln-D95N6w+48K{w>Ji~ zY_4!-oJ>HO@qIZSNR;+N5JzGbv$MXW2|y$k9q$ApzbRa9&B3rM8}n&KGp}f0uy9%H zf`toLwVu8(x^(t9qqq1k;A8`p%7aA2VEwvuNr;GJSjgBofbP-@J66qGQ7WFzjiYeA zQmAMg7VQtOLc(a;UwPV^sOE;-EMNAiU%G5whae{cA)($1wwJC`DDU5N^ggRJ;-=S##3 zTZq#m58crW62}6#qZup>NXai4yNM%Z5=n%yZ{1AnbkXhXq{>xTN^;n5ZrbDx ztu2(u&4S3ydh^*P?*LP{1Ne=@37Jg2)f-l8ZQ^jWf`~~4O`7L!MN+k|W^~mr-EQ-S z)>zv)gtrm4AmA|Ath^Jubmu&2*QiT}?Q3E0^a_Xfd5y`^urAQxWx6RViGU6jaOP=ET*AXX5I7-6QJ%^~?6 z-pJaFjnx(DlrcBH1YxG%K}rv?is^yN^|L#?p$BEGsT~5Voh*!BV7Xr*!v%Ml? z<8wv4&7O1oFeWmh3x@SHf1qhQADWvxy`kk9YqFZ{e%wy z_)kRI8Fw>7UGVGw$O>+`+d6u6rrVzopJd>7v1efN4}wMs*D%KKCPOn=AU2RZM0(5op% z-AD#e7iR09yn0+joS0_w<)87T?Kw_JGt*@U)0lQQYBo5_@y(TYvl~jza_CV5P`mDC ztil8AhL5Kax9xwAH;NM!*~Vd~DcR1t5PE=gOhrabSovRPJ<~k@0AV3D>u$LR@(kI^ zgm>M;R2FXa>T73^JtRGb3w6PTV0qNNtit;KOy#HddZT@7gqfor6aje&*5CX0di$WW zx5?4o*!v^~r}AjRgbmvmO{3uEKCd?*8i#xw5OdKsrgO;;SwM|*K6^iZCCcElIrrmy zSbHvOQj%tGo3A5NO}# z4I5lypAlyZme?wZndaU{!Q@wy{R;EUHb~O*F^at&0mP$27+P{V z-D0kPh(*vK+dqKq9)#0O{&DIrc*y&{S@k#_DX-uB7pQj6+3#;!A0t>)V##F0lF5L^ z&PT~dxbiWq-2qS207K83+U8zbO)oK8GHP(>E_3=gEn#k#~G)OGdAj0k#Xuc zW7Y9Yv*~H}$80gonx0`g>xK4no`E~{Ae{(%vsu=PU>yAfANoG))i=z@So5SJW37wg zPIV!&o1Wl|L_=h%Ub{c(4J{3kWeAb&*^kVUQ=eq?ExTd*KRk&dx4J2$yJ@Mx=~g|s z_elf*dY$x$r@T?V)n2A!d!PgLdzV%0ULEz_r~a=}htYKzGf#V?FbGs{o%=M)SEA8@ zQ|&cz3L((lPjki=YV=9Z{9ldEW|uQFMf1>SLFf<9aN38nD|V<#{ykLGmK>kScX5J) zX8W2oFOZkA_zV_atZ37@7oG8kXT9b+a{psOmZoaWT>Bhai2}JsLn`GM9cvP|ijx3) z(3~x?0svKS5L%U+Ber|vq_MipyPxyQea(YO%1Lwo?rJZ<(dLL3S)twAIl}nWi{7y6 z1SwGxWEbl^fw~vR#k~C@G}3uY{wo@OE6#{H{3UN--!!p3g4Ib$mqBG?h9`(dZkbJ+ zt6su+0DQc82S`aw?p`h~MuIyMUH*zn8uPLR7+`w608KA?8K_Awcz!R^=&-^wnu=t$ z4<`fXsh7Q!`Q;1jxW-ptrR)DH30H*dGiK@w;B(q5u=9!+QK!G>b5BV=#r>4C4zueM zl<)3Wy!vTywKI5J+%@A2ql`0*GR`o{IKzmn0a=uatTT*A({*KQNt=GJN6uBVW_bgw zT=SB*ug!CA?nB0Gz9q{&6;k8X9n2yNmcNQ4R}%Niy0{mnFS7Y1M4gxmeZ{XKc|kki zoP+6v9XRFZ4uGTsIY1ipDje1RGLrO_*XU~RzOdTPi^vGaA(k)^`M)oFjWx-*N+&6^ z6H`eWcXyt@PY~7 zhKrwk1J>E_I)4!{ZtjEQoZ|dWCQfo3eUj~E+4;;j>GAO$K)>}SBC}%$xegZ4-oq#Y zj@*gndSZt+UaXb*a*Ss)qAf9X2LyfIxsyJZzQJax+eM!@yg{Nzf`yh%qK7~n!-yY# z(k`~&_P5zeSMBmf_DN`VngvWH)3WIt;4TN4HY4AH%HO?N>@dxCB3kU=&VDP{&(n7j zF30*_>kX+&a3KIH5_`(A^=+C=-?y2~yE`G|gY(&+ZMz6fSU3rpkl60ve)BdxR=tJT zxqKITE+OZaNzJuOkc^5z(IgWXP~3ep_Zl$J#_aR~p&iF$hE9li5`5!%!{t; ziHmX$BxP&HJ27Xx$NrrBu(JVr!JzP3T9SYZX4$J=zXPp19-^XVfEWZ>7lh8bAavFR zp~;D|;>iY~D@^TY-im?NAk5kjT1D2{Y5Z?Z^$qXCdr$A@)z(V5iR37zLuf|QvCIt< z5WJfYB<-2&S-brP$+p&Wy!-!w9RBMNVs7b#Y!}HnMotiROqof$h&fqHB}6?ZE6`|; zc-I?;(IzWUqYIZMI)B}rs08CX9- zva-^v)|x}Hw#U=<;`h8UwAD=9=iY;P?IBE(U50EXxs|Ld-OJp!OO#2g<#rPJS9(s9AtZiax!+LB z^}{%S7!Ev}46PO$?yU{2mfIkbgDd-*wkmxfX$fh};Ax0#&NK(HJUegohE_??kKGGV zAWc@&*y^~r7$1zYP+`X4kh0d4e~L-+%~^hZCGu6GauTr2WX$rfQBzqP!U>6LG`;q= zkG#Xpy`RFs8-L^VuTFDp&H78Y7rAQ1B_k_c!lo|lv-D$5L_QzyH}&PvgaKV+C?!JK zHfG#X8cjQv+4`T*mTX(@uE|v^WQttg`E&*zNH&NNnI3x(eAj(~-+9s=Ooc&Ta2cj8 zWxCA7;<#=PV&}tu(aWKqLWQsPcmsRWhr|wrg_8wgDDunNYZ1B=KM#Pv{1k<{;d3OK z>=K)j!GzNZ3FtZK*FQ&2w!BJg;b*%UDfdt0sU%&%-zXf>O(Go3dH?hdmV}+&=5PNL zV~Yel)*4A7nug3okAa*11`2Y28-rIiDqK zeU^%>J+$Y4*PjcAne}DJirXurBw806(5lk+3|O6UWv zu^14m-1x=LuFKg>v9J@DD#pQO3QLW!VY7Mg3rUaB#$;)T;0PL9Wf5(xj)fdAYeG7c zUiTV|qb85t0OGp|Bi2|26Sg&pQ&}#J0^I&3+OU>fvc4SY!c|%%jur=_D zD{wTu3JA1iwm;Ood7$rim&~q$h)1zv2qMH|$~j4Vb_DA64L1~1>Vo!3YTi=D+Bb+v zP`5pl=WNK#)PBd{9G>)*s7RIB{0*8*4rQ@zEwumX3AIQI%#%fonJem zV{xlw9<;8Wv$(Z=PU~s&#!p_@aqNPHOQI)KTuKV)*b6ieJaSHifxbS^8Anc!e8U)r zKo{NDgZ6p@uxB+!E$(*}7LWL%dIOo;Ug9OzCzylD7Vcxq+P~0~K2Gidf%oa`fHd>H#iLyECWK(aW1v%>gSLAGvp8wS}<9{1f$Z1^t7|J$Ek#lJXIhTfzb7=@U z4O>?L=<*QEcYXY`is{|(?=m*g)fN7+Vonb0r9mS(h%B`5joS&exe{9vqKhp#Q|Ka= zq`Q|O$Gd6T$i0NRT!|scwL&!{yY(W*w{sf&%o`WbNzRY6EnIA{8l=R2#15D1SqD@S zc9RH0cN`5dYO-ecMScT=#BD|f!Qp5$Cs%Q+`SnUT2*Z&phq6)SHW$u3w-QK}EFyn%Hd+s_}^TN6l-oXpOuP11U|$i18u{SW~fh%9OLR6i^?IiYiY3_%RM z8SBTG+Wze5purG~Huzykl_YC3DXccRV67gHc{B!Tvh_i)8q1SRMy8dra$;>gz3yoA z>+R8^wfE(!zoz+uutYlg3;<|x6Ndw<2GEzpeY+D2gri6bxotTc;hq6Z=|4^W7}L<; z4|VcU^s30m#3)2rdxMXGoO6b5&KbHnXXxgfp__AtZq6CHIeX$=k#i}YIhW#@vtjCr zyp1{YzcsM)HX>YMP8s5d_iyBehFAeO8{JLYKwlnlP%A*gipm@bjOgnouz&L<#wKmi z|9WuVZSYxVoz=Q#VaI&ULzHAT(XNqH2cCPu4z09GTZJ+vbB6nJP^*f35E(kE#tEO0vx4{}hpjwsElu-W z3sciX2v(zqY1+q^<69+)JY&*JrGUKlB{;*zHi@?Da3F3QO`ZMq5VSat*jJ&fJ^3Gbw zJ8L2DtcAR@7I-5=z1+OB7I>4wm94dqch*AQSqph*E%2^{g>%M2-d;d)Cwg5g@81K)OX5{Fa-KXO@%7GeM zkoXNIW^KMCy2}#|XD}kIn$1OR{xF)_up`uDFpa&4@y~Wo>UOWSr^4ZaxY%r9Ab94% z1eV$JLs*qTzF(=~POhHFE+k?ld2;!ZFm2w2X)&98b8^z3X}%f-)t+wf>-x~#UjHGt z5?1E?kz`|)0VN?@I#GUVP5INX=6CInuYs$Gh0Ug72XFwz{5dU-$0enim=GNN42(oZ zq#6oxG@v%PdaLBTsxS({ha;Gi)vZyl40Z6_$@TidLEnPS7zN`suRO-UXg$ZE;}Zsk7ahzb4(lS_i}#^HXwjfo*7U|fl5 z3Bt55F(+Iq!3Puk0|a9-1N-ta2RtCh6KGjji+B%lg&PNBjFhAbqJku`K#h^>C;EqB zKBG6uAts8-fh7V5&c&o4u#PdM8?GeDfY;2_KAS$tA4Kb-MNy?D3}@}kozzbaFO(Nt zV&SuCOR_#@_auKb%_KBa#q9;q7STvpK5eF^{r)v^qk_SfALt)R1Ia0<=B|gxV1xts zVH4FJjZqNf6*zy2CYoyT+(9@kKhGjiBvXc%i~8;w$CH@LF(QSP&x?FmFw=epZGu=H z2f`#0_C^K}Q?ae})qrAaWu!=JO)gXgb@(B0Bl(2{UC5{xj8%l=F)79+nT7?u)uX3Q zRpuXuAPxSU7qn~Tj6@w8Zd=GniFj)LYD@0#&{{Jv2xnB89~|oMXJg9hnZUkyYx*7- zK7=xH!G)D~6<84sD`&n(93&BBN~^rlM{3BFW<~n>38j*`az7e8b2t9oBj59fV3a$1 z%dceNCH5q&gTW;s)w)7S2pPeoOw-bhXwR&}u=6h6pDAi)idbHioIZ=)Bw-US>2pR# zA0@^;eQ0p+!^7}xFx`pAa0$|eQfN#1PlMmLM2QCP88Ok<024Yu3`yRb6uZtEl4i-o2y8d=#o>gk-kpfd zkV(jcWvFWn{L z?^00mE(L|Vt7^XS^pX4D28(!v$d#@6=bja+;FTa-?`~riG)Oh%7(O^a7o{pVyR+cz zPV@20ebtu2)M@sG2)ZUW!3|ysk5S{s5~RbZoz;xRmb>*r{k7rL32fU zifYhcAXdu_6*vWN6EhS~Rjv)!6|8X{BI}HE!Ux^WtYiFYT4RU~>uJ3daW~Rt zGx=z=jN4NTsrJ-Aj)761JPZOI&>Y+=v4*pau%u1R(MaBs>*U1C#7JL$EWB{i_i21N zS%DR5{Yu6~%GBK9)iY)ZWt@@z&9T1Zb6dta&Mz+~d`!^VTE684Yo?o7hX?HQljHn> z*tb@VqD@_N`O}*)NS^fQ=!Br zFF2cgi)&^rN_9Gj?IEj>CdjJJLWxmcD5hK#tixJSaQU|dmw#Ju`L_j^e_L?*w}p&7 zlPoxsui#9+f;0IF&g3gNldm8qUr$oa3NA0hJac5=Yfe0YB^*DQBD=7AR}3$4$p)CS zCga(+ok2S3F((o>drTm1I1O^MzU-TfuB@q^LQr?m8s$X1`O=XE#s7XxubPukJ~TK+4{6B3_6IXzw`DK?%*Qi7v?|Ckgsu zQ*rG}{Uqki=@NI?AXKS=4yc+`56#4h=D{_&t1fXxqRz4xu;Ngv*wD|PbDe}?)p%{T^}kq)md<=v*1)` z!K%(6H@RSM&1=ME<8gK`3^o5e4sS3B4)ryK@qD;!4nfyPrS9)iS9t>A z`@~!fgcDAnxNa^R?79=!8}EzId10f9%1WfZhe|TL<6gnX^xtYgXu1{pF7_lQ&)1S zJ;AfZnq#HVJApPoo{r$2{58k?eHQq`>PqgmO9R!x3m0HyHJl9Wl05gNZd>4wskKH# z6cet}G?`l#a@_cefNI{_u?xY&+8Ghhgq@qho-+g3y;`I= zIHr{#^oAt%?L$id_|vJdQC$ZN_1{zJW8f-2%QPWjHfrBxqY+@sST<#=^bJ06w&xuX~rl+*h=N@%QEO zS_raWIUO8+8cTD3KS@7a?vLqR63OK?QWdQY=F8>&D6!5&#!Ot{kFG085=ij;X5dOx znVVL?CX43KwYn0_y4<|8!XM^ay=gYh!K~LsNhilDctC$=q0FJUxtn!C*w=|}zK$-LN)x;(~ zo(HB+uR!r#w3;mvJnG|YOdf=@Q)^re5qGcl`^YPvHaab*aTafbP_ z-9PMbc*-5&GLkjl`NP`f{9&aZe^?8iKdfcWZ~?G2=4P6v`7CDJRB~!7&t^v_&qBB2 zs}pI}m!(a|S#a8K=liV@pqI|_2MC@L`ZB%Oz)86UF@Uveu8SDe!HK;KZDPZugl3H?IzfYet`i&y@z}K!K_Kp!iHeoH(hV0u zzxtIRAV&nfh!{u!LmdRuvc~V<*jADxkZ4omL-o;pi~I>o*z+zr%bEsC$Hix<2{e>T zU8E+^Q0`0@)B+9VPIajX)R{ZiWl-&zx9(P=v){bfKVriwcA7>yHDHq>N=lZ84cM5& zR{1IOn;+rh{9O7`fK%@`DQUYcB$fM8eK)k(9jd=GMzNPWez;Paf~p z^@cdKvjGQUiiF7$X7C!nzT~YDSWknPhg^;uM*I>b`T|Lh*7??Ot3B8}oVh7Wg!_{? zlQVhv<`@VrlX+KAIzH{c|M)}Ztz5NIVqS`YnRKq-ukpx*b5}|$#U=83H8tk>EBsuiwXH_B&+CA) zZKD8HY+Xe`Ds-~8B9WoOhNWCZUMh5{ZACII6^f*-NJ*zQvgj&OQlUIKvb|HrP029! z=-+~*wO7U2R%8+ap_|NAPf=XRV_gj7um zrZ!Teqj2U)g^fnJ3c4wTPiACxHtu5~GO|+keAiZJ ziwL4wLDZh!IshS|RX|j9cEHwxsnqNcL4lDw4H(izBp5oF1Tn##&j zB1OVZW$(Lp+$~;;hs^V6oXp-Pis>j^hmneK@pDNXL=f$?nlC5nf=ut?Y`I_{6(LPUNb#mo z2q3JVjOeJG$bw`_xYB04HB5+`YORHtntlZ)smQrDy+Bq=FcQV}AW*Xc)86vjwWLMlR{k|QA%5ma^mM06C11OgG# zw4fBSnJRYvoHzqfvMJhrerQ0~7qBtKDfDq9_R$GLK7Q|HO zOh$ARhXm3lf~ihFqM{0UVKVDl>&g*nmWq&12{}^{(NP7(EYwjlvrs{GB6(%dP(vYT zWv)dH)j@?Yvi0?3P(-heQN$C`E9?Erb{**kvA>bF5S}YO#c?^;k%|!4lp-H0Da5a! z8Y(Houl5>{l}?5K`N77pQ{e!@OOXn2@3gPXTU>cJ0+3KmA+rVf(3?U+3ud93qCyY} z)f6II5DA?rDr9LwHARIsv8Z+mKlAdWfP}d6)UQ;8xTeKv;WdUL^1PKT6(L!m8Qj4pVnsrZdY z!97$}R20yE?wxttNlrjQUB#;+LdDRZqCz-6)K#btAwa0BsF2Box(f9n{2l5lDug1c ztE~P=u)eLnNI!K#@RLy3^{&7#Y zD*?DsEES;);7YMngk$_hm$or<>Vw5~rjf_$j1 zP;ElA(4(S42p?)IF2V{$LTyEb_7S4WjZuLJQRRM^RD@K`b&65IX?>Bea^hmU*U@!0 zIq@L51QkMv1;j61Mk*8{Br8{*1R`WsGS#Ibq$)YhQjsg#zbG%6jSaf$xFpj^MTjej z5mbae6+dJt^NlF1f*5%GZebC#f*2?KN>`*p*2)GXWfbJUl#7_6WVA&QQ&foH6}nXD z2OXqHROGbwSwxhdSENZg^r(>2jDnC0(4d03@p?&d{i&f7_u{!ChVLvDMWS*mk8$lA z=qjy|?a+|llni?nQ{6s!ZXvK7q#{IBRc$(SsZz<#gy0(bR7ih_>fSC_M7UNf6-A;V z{iWAXT_ODi)lgljtIs9mB4Wrl0SGb0w3P}t)$u?2K}Zy;D=JtB`((JAjPPMPbgELq z?PTbOqll@V4wV%OMQ9o-D-?=$5z;i(hWv96bL(VPIj2Kqg+dXkhmk)NijES}6tOK3 z;qs@1UZJW&oycTERfYDDxms1F@*nk~HAOxpI4=+(qRc`nLXv{CRD>i|bw_}pNDk3< z{D56pR}rExP(x86qzE+>6|$(R zp{)Kvyh%lfsYr15gtg+OJ1g|1_~ipdt4K{5Ak+Fy}?X(eFjIHh&xg_=l>Bzb%}n7>*;?p0txP^}sFlCqX% z{-F}$F-s{I@#Btyl#BQ&FNX>!qgyc4KN%Gj;x9S*lTle3YM+d5$WZxY#AZ#0x`*GF zlX7u|d0$D&MIosHA0B-Q=#v%W%sr|r)8UCUDQAlF&#Dv&{Uo(+xKCT`KzC#4BxQ9* zVH}Tll|~U5FY0k#Hj#3OpfId^wO0_Z;35CzWEZ*DeD%9b(7qF_;#Z9g_nNML7crO# zT_d$D+$+2KT^P-i?%t{KxMJ zOSy<1ztJn@5IymNGpLn-|MQAa=mKe2B@=2DlD%mVYL$XS4Kkrp5if)wYcSn{xESuO zT_G1q{ZcOCM}oeTL;fp>p38*#L<}b`q7?hnXL#IIMgK?%;7f>iUTOYLq(#Y9iDV4eiw<) zudB3#6@pQyMhddyaiPr8oBctZ$QK1XZRy;z?F;jKv#UF2LHjZubsr}`=rV8R%2j7C zo3~P0+O;lzUA=1QoTVM7FPy)61wRb1v_n8Fc>|Es+E*@|qfPBBf_j>n%3J(CUFB`w zy*HCmGw~L`XV(l@o~PX658;o5S#gU$oJqpDeq(D`i(Y~x5md%oUp&zSm_q%iPXxSFBKytU! zH+Ny=L;31O0>wMy6uPfo*)Ang0&ged=hoZ(+Oh<1UES`FlOKxG%8EOUMvC z-zv~~v)>)0NRbD1@*ONd_VS(nK4m0= ze0Qf`FPB&b{1J+fTD|TrznSOFQRDLGz+R`#TReZ^>LpUc!{5}HO@H)zl%=@JK%rvJ zf`uJ2^%VDt<>R-1gyLL2)3)>Htyt3D0pDdw_EzwPtJ)W9nWs7c?-5WtZ7#UWA5^)d zeR2EQD;G+KX;OEk!)N~FmzSj#uYol@kN`_9Zts{2TVY5jNY9R?E6!?{UP;}j%^)-R zF2844S}`2dV_Ew`Sx@dz^KDGmEbsqF$9Db5f|r6@KQbV{X8I>(o%CGNe#X)jMw)u;7=XWci&CrQ)omD;AC8H;GoypU-O!^2v$|SbokpzDrHoEd8@Tplg>K#(8 z7D`ynFQ3Uz(ARPL80&@lw(Wl7L=O8(>M0)MP*HUqMMce-Sm*2SAq}dr)9>jY!mp~+ z>jPBOs#z0*tG`#OWuB4hBtPRuG9jl3rS;QBdJVl@`b@0B_1cdtUab1m2T^)oUEue! zXpjobq$d*0jsvQSc9YXbvZIqz+bGg2d+RjMc}i#B6J^LZ#H22{nCBOq_gHqsaA_B*311*%BX5t#p>S&e1aNS z#cKBsXptglt|&#+lP?1ELX^W?jj&j~X2UgI9I!#&EPX(cD4BZRJkY0Hkc%%kKmT$6 zSf05Y`6Ivb5aA;$M;uz})W*3@_-u8sn$N3*& zvu7NrJo#h4A}bkdf=!fd)Fz8!qhBK(bE6MtWI!?gV)eqL)W>PUW$Npm@*6vC?ob3? zz=DmaZfK`xtPHUhy^8@EE|R&t-leOR=n(xJ?jMkrzeCEVlI}6ti5h z7-bcou-d4_H7sE*m5GtgW59AG6PP-(go1 z)D3`j_2oVOz%s@W)<&%AQFCN~yjlFI-^it__{!Q~k?V!yLUX~ryq9J}K(3b8h0P{v z%P{vplkwlX*RR%;SDA|Gb04VjsreDXUybN+Sn7|U-gE#I?-hk$uDnmiitaplH2z*{ z%Wxi^mxlk=-qYq=?LEk$cAFL;(T9UH!V(!Y+9L|aEWKZP#MEUInm^nx_-1+QjlxT= z(CaZlUIQ(~ek7?^wXnupiq$#V763OhAAk%}+S;w0rz>p9ZWMD@P_nCG)21R_ zBiQw1x>zj(&fH7S6Sn%*wK*Fn3le1gVP9`vjDRoy5<@pizX2mNO45+T}Teg_OC-X{^Q%UOI(5LlPY z;hGUS9NB{814MyknimX0{*K+|*Kk2W7_uk?ac-wF3vu}NXY4?MSMnQt#6K?M1YUU*~7!^#_3Gy54zCk3S|q;%24esvju>s}QG zjN4B<7H+$H10WEOszc7B&9@Kh?D&<$XX&Z%h#RFtN~hbB-EV_zPFN97_X>F+z_?EG zi1IQwW(D6*ifySjjgR`3aDP-gVSnczMV#XJAN`ydU?s~yY(%T$Y98o6P;H)l)URST z(GE#~F`qmtv*C3UG0M$|$NXvz5o4<_E=hFt)#@ouN}6ICL&Xw1hj@eX;;nR9;~ttU zZbkFVV@zErE%M)Ve_R%h7PZe)$^<1V9!ks>pl;Pw(-2hz4>aIsw7!ql!NZnrJW`&_ z>mu3WXpop=dLTt~+|(r4au@T0u;rx2pm8`A8uYo9=76Xm#6q~ntmYHW<# zjmqJh`S1y3d|TUw7lc4@qk-2amCdM+X;-P=_6|Ls|D<%EG+%oN@>`x{R`G=qUVQ3F z=|63%{ze1uDX5sIbbSWDizD~AeB-eSMMJ}4#mR6)Wx4(Gr)0RS!LMpGce}#iHz~a9 z3cDGEZcDJu8g({o;#sWQ!*N2)lBcCxr+|Lp3Oc{XTtSr4BxG0|-I!;pZ=XkbP-AP6 z!SZIW40hBr3`QJC7R{`EhCNQ9Do^1LuCV1Lz+P0aq+MIx5n)$}q^xb7O-GAXo1FvD z4l|zhYisO*vs-3PJI&f>Sq7|~O8K$wyPlPC(`M_-Law+Kz;U1X*w)9ikJJx%1=J3B zPG*obhnKPFXSjl_n=xA89Xr72Hl|ZJG&DQ*7qs=%B}5yAq2|!Q?Qo|(LU3r~gqjK4 zK^u^zS-5%4cHtgM$iyb|zm((?TMdICjw{uF*Xo%3k*3{Wqv^Qk+3>NkL~l)g9;+%= zE4J3z)Rqw`Yhw%5@p}|ej^#-~(~bhEvngwlNhQq(GEmiD{pxCat`STsW5)i~9~iGB z6g8d7GJydm8Xc0oimnE@}+4TRRh_g)gJP&$fFwK{%CVIqEP z465T|gjmCr-H`X`mmn{K4HK8J3Wb`Olg%li8SpX#1ER!@2OD_a(aKbk6k@DIy^7II zFH4V61B{;vFwf9qNi7!t*E$YQSL|YfnOB$~F1q?jHj^!!6ZP9BvxTmFMS71aPqL=W zt*;2aj`==t{p{Jr{QABslg*lex}u6!q|>}QU%coWGiu%QkZvKw+WN_>(tqAsuaCcq ze6q;^4up7&`QTNarXh07IA-W;el35GeOtIlA;U58I(PI&@SOJ=h~Y(IX5f=*A#HZj z!o2JXm7<}#{awJ)W?u@t6cWcX=4xUInQ4CqPv>fy%d{zhcIoHOuAuRccm59d1J?Kt zK~O!x2!hrlWw5xYh-nKlbIh#Q?O?iizj&R+!wFSU_~`3`bY5d0bvCOl(tqBJ!oB7_ z{J6-AIizHQnMpgOe_l>Ggmph>hwXARP0jD5z^RnD>E>^)Q1PC28b{h@;RRa?aWVJ} zI?bgw97dlr-jHt6W<4#@`rCJ10SJtOAF23Jr^&nCWw{a}}W`?<_d&!3|8;1>8$u!pJHN&i5rTX4iq z(KnPnBx-2RvZY{yX%<|hr?j~lvCIfDX&4V*leJ{_AaLn4t*dLs?9w698vEnN$1tJz z7D0-{MYD$OJu@G-@+BD{LO7c*7eOcL5@>pS3^*=D@iJhNCR6zq_IG?7jttD$w-jT? zoTtB~80TfW=-t?Cd2`JiS&fxy^Xek#U=+wAeG)X5i?OERZP%4XrVa~A`*kUAoMMye zqCG^2qWQtm2?ZB;ZG6K${T8q-NNs!DO=04vNXl>C)_KPK3{FNG-w`031>JBE*rVgAc+M*Sv{XH9zXrWOlqGN(Z3CCzLAw;Yt#}GTDC!DflK)t2&#P zSL}h`Xfl`4rZ#>aA>hL8=6)L2Qi@UtqkqRgXcDjH=8dU%muX6u_%%(FOO$l16ODOA z$s9k6a4+gPGRyBJu9vQ=m3DeFbj2{ICyH5=c9z%uK#jo2@*yyw?|sP5S&Q~thR)#ly>3}#ajim|DIk#5tf z|LbguV6k2XAg~9!h$9kLC(W<^Z!OyV32MbtQ(MF)6GnO_-f@)2i1E___t2v2TZH}8 zk7UHCB$MY=&-+ODm+8FuPe^;$M@kKTz?ex)%RUA-n~~)(PO|oYrdAL0378JD`H02-<9%=}T>FWv z5^>O5>S4(vKOv~cb-^gY%yzNt`;uz>qMuW}C|(U#@#)14kT@_Ik#XR75I+tqL6{bV zMc170;6RX_{we!MP}i{Qk3NN9@@@9lvIcR(g!;&oQlc=Tds}l{iZqf=mVe2zR_)d< zt*vbK3rbJPw*^572ZzuhB_5`UN*TR{6&*w)w2?ua4z~%CvHDl#h@XUq+MN(uq*c?EMUThQbw67`;a+ z;I!_Elt3b?jpTUYtUa>NP`WG%l0-8qBmMGv-GAxoji9RzDfRqZI!?5y4VV8Me;~%j zX{@W0J{LA_Q+s_9-O6ObZe!pYnT*mpeipzz4C{D&%s{d;)_wyD1O6$aMwg7+9H#J3 zzlkSZqSd7uD5EKv5meIR@?wU>L@2)(B#cQw@t-33n2;V|e9fp5xF8tTWJdmrPXee1 zk2W-JrYrgQl}(;AqK2Bbz{IW^Pk_>vS)gy{FlX{ zpdo}ywBSOxe{u!!mFhBalY^h-vfhJDG>uF$YrTg9zL9RT*55nB6*OqVPny;8B)r>9 zal1lH1qqDyb~&fTenrA7V-4I(zi1vU9J!ZmkVp7wX^oVm2QB?}uMQ)B*QqlQk%~-L zVZM{jh%9Mg?6(vGw|=@5T!6-0{H+YbWL#%4LQ1Sv+wT;pBA%7sNgLuy`fXn=!Him( zZ%b}Q|MML~AyRGUdUdWiZ7z7&CZ7tB>+PDxa=MnoW9D|v_od)6TCQ2`zNqy`=4o`N zNd(c25tEb>;@6(ODOZszf16QVC=dlAV%KO+=px;sx+Jn&M~-T=+Z+)aX~Gk@F~RQM z-gbL~!~?Uv3mYz8ok1Y&rJCOPExw*e(Og-1&G`7v6LTlZ$Z?G<^v7irykgUmt*pjE72Y00g%*{7R)gD~xf;)up|F(<^I{wau#46tX{F-&J3*w%L+cKJ{y4{A+p7 zt7IgJ4c_OMH&@5TC-3%sD#4tnIDZ@vU#=KzsohIjZ;XI+AtKS7S1x3Rl~DgY14~Jw zQ5W=si(f8h`%sXfjNiSynh>cTmu2JGj_%#DCNrzMEFg@yn}CYBtb2J)O^gpE1^$-q z<#PHbyRF&0M*}GcCWFWTj$;_LJ;_5(^kC{T7J;26v!n+^E5wXsNiV*<2ir5g;BqE- zH`TP&h&NGAoz-89_;zYC|t!D!#!~%?HFajlB~U zSR0a^65Tp_VbZt}GXID|d;FMQbjjKY zCXay=IKmXSCJcWXViiV5d}=})&MW#lGvv6k@1zfO>IW3!=){c#rx#t!Ts z?w-b{Tyka)6D!yCs%Dz*hejQ>ct*pFMPigxbII0Br<#XPqXUtu9UrJ9g%Gxtg=F7F zw_Q9al10q#q-%9t^dN3PO?gdMk}x%LA!iZ?UR>VWY#LBr(U~4^Uk`L4=n7J)bv5|I zhV|tS8H`5`vz8|Ehc2Z25dd3pO^wY8l0S4_@<#w{b2g~4@k9B;KFuY61<;m9q{ema zLIV{ja)*a=v!%v$?R;KptlKGn1i<#rwA2K^_J$fYNvDSV)-M$gPT-xHH~lfY*79PuvY6-KLybCFbo)* zS}%VD!1jnrY69S35p%&J=7L3Zj190XB3CozuK?>{6mSXq|R?zc)ScwtV6*U9i?ZUo-~=wKDGLfxle74yL=k}BXnS^t)P?A1Z} z!>vp3<9*Zwz`-ISN2GZt(7`GOKjBAB03EDi@GE{i2M}}}tRfb$!y{Nk_uG8*94sRC zQ2-MFyG86wxF4(oI#@+4Ee9Q}BBq+F30Bel*cz>Zt(XrM(J4|s1zXXb6-iCdbFhe= zF7nSed$Csj2&NcpMU;Xa9z`Df;nu||^9r8fb6po~`04-A_0HjyHB0+&Y}=mLHYO8i zV%xU8W81cEXJTh!+qN-DemUoP&-Xsp_nv3{wXd~%_pY_Nx~r?Y?z_J3{AUpVQv>Jk zi~7GG@oTY7G4+H*M`!;FImaMuYvW{Wc(~Ocn+hcVUwtv&|nLx8Dx0v zlUL7bElYZqSURBdU@kxv&w4Cln&uo&tw{VEq86Oi0FV{=789u!PmlfFo&}A4cKBGT=uayzC;69kqeMB%ka%x z=;)`dcYseD`}jkxteZlX2}%8Ef}RE0T&F0#uzi|kcFB*Faw=jNa=fW`K3+ z(NIcA_5S1?&Rzsx7Z6$M$OoW;V(_jLDA|IaZg(t8ncxz>xzUv1W5r_cq#V8vj)sT# z(FV&JbZxV*@^**?%NqVjfV~mfY$d1yr}5hIJXgz5Rm2_4r4ST5Q2cBmO+Td1gp)G> z_6qO{%+rWB3FkplH#b*c4qAdxeKHMFY_!!okFNFS zUh#YjZ6;q$l#8nHjv#!sVSy0AISVPbmaxwo5Vln<#ty?wt81e!91l2@! zw=#!Jt|~ykjq|hNn0oPkk89|XC3#sNWzk(a9jqKa=xOe@Yr)I_34xrVU&<*lZLiB` ziDgIh1d-pk)-H5jYH6o~TmXh%_o|nGO0xa}d!{l#Y9Ta@U5Wm$)G0*BkZ36uo{%X2 zP2R8Y{(t0UL;VYt{lDbM>|fu0O-?ev7sTxU%+24LqYik($X$0d+-~s*p!dI?A=2^- zbHC&2@$~hM1I+=gW`bu2B|bm+Ff=5er^Ru?fYeq(h1n8RP&Y8su+UVzZ(*v(@8-~& z-xii8WDG{!(+)E1=yrSc>&CaAUtftRB$`%%-tFH8`N>5TR*Gi&MUagT6%Oj1{i$T1 z)94hx?c^SZ*Gxhy-42W>l$fH1q>S~8D5RN`?8grMHvU@4QaFfKx))y$QPPBEr5Q!u zoVv?iP=^s<-5!_H&jiT`z;_v@Atj>T<4ofJsx)8>a*}9In#CNaY|LBHC$_kqE3KEs zY(q;2>Iz*+sp!lWd6FoPlz5XVPRIq?#T=(({6}1Qs5W0(PsFVs=R7H_l6r5r+?b?d ztT71BfQu~2w={CE{j^e?1TvKe%D5iQls+CKAm}>Tc)7G(15a}o5C~FjmJ5p;mr%Pi z?97W9#}ccVVb7;7L|)aVH_Fm2UXB-C=9}q~v zT3FG@c`0JPH5MpZiIkIG>cm8uh;AsK>%v4WppNo;g)tq3=Drg9gcXyTm9(LHKyP1C z9lCy{8Y>;yWjQoBVC0a6K`B}h6=G8Gm?TW_v)C%PS8t(MzjQE`0{thbC6ihus5Xe^ zG~pOMIwTsTT#qvRK)!hd9Wz;!8haF{!rXTzaDyf&^AtFhh_7*}^YkH@nb#AK&~B<6 z)T=-+7)~3E8*7h@E)@J>0CBHHPJks5L9DRQlN-#I3gWs9=ovZ9SBBuy2BHNY5W!E8 z@Q*GW)KUV26Q&C;7AIK#)1v{`Oc0|S7cQzLCnHBi6u!?%@tue+SR4g-S1zJ=kKAK8H7nBoWcuM^6cDOn}gYMO!aotsY=L2d9ZP9KHZ!#9&WGAoZ`O zWTJ}(n23M1L?|+bAIb+;jz-mlYsUT(PwtmEJQXukCic?dv6~p|O$w zfT7hc5==DkN7<6=VS{(7M&YtY7oZQ=SCcmZAa`I*(47ud_QpaEZ%7eEgj=rpVnl3I)aIyF*J6>w3Fa2qmTkp8{em1svBRPl&5DflM< zV?Bgp$}M9;YVZqHiUyQ@S_LIkga^V+Cv&FXx=^x;eeU3T0pFL(DPX47K?rLVO7k?F z$6+k#Xq7bb|tk2exAj-gBg;4wYQpW5l`SxIka^;a8!WB-0 z@eVoGIKqTFa?4OaXZp?iAMiKmXO9SSlT2X*bpAjD--pv8qx+4=1K90hO^JcPJ5*IVqo=s%njYNIaO0By09M0RrrTtD)|KMAUt}Q47u-XX#y7l6Vxi$q~JhW zu;bS>vx%q0`g-{i1{WhZZ~zPfXc5qgMVTfwWm|MXefR-EFdsGYSPVt7%^5gL#z%rt zU<&fcuf=OJ!1ilKKP_X7hxg!1$sc9inugO%o}|KYRPsV6`o$_MxNjTvsaP7OegD8C zcY<4kQbwT!*#qt|Hw*?R?*ZoWzWanDC2Z*&Z?~O|s8>00h7dNYdR2Zr?wa zKIFM2uS>Tn{fMtuoA0Rgj|@7?jUKhTF`BugT!FUoS=M-QT!tPt!oHKqg$tyryZE^e zSD41r>V#!V#CaU#Gy$;Z0(ECC^0?0Q<4vv7o)Y9s9?|o`lPwF_mb=Hftf+X8zI~B)i=lix^yk?4jnJIrveOWhNB$@Jgfuvw?#d-g?UIn{ZZuB8q?57=KUKm0rTSgJRtV{MJT7z=nux-=JIw# z6M_5wjrRxY0i~Mv3Vp{0kF6Rur@UW}aW`Z$*}DwrfU0s!1J5ul0vQ+2yEqetX(rI>7j}xM-qMM>igU&h0SXQt{#^r?$_4Xq#IQMe^;; z-a>D3*)P=lh{|Zl6g7?H=l3qe1aO;$yBFbwfKyfIVF^la zN&wd`0EDC;2nkGqfU$;-I@3>kIzOWgsZswSH%x^NG?ab^|4+%=A1TyN6uTBJT91y{ zpg}yCh#!p}IRtXWp3&JQL*R0vmmO`A?Ajf-B@QS6k0R4&-0}%9@IwD$ymB*)d2lCar?0aaDBFvqez!MbN4{-}<_(w%s6pIYLtnpFxo8*gl!&DOEpRkta^WLH<_WO7uc-cg2=xSAH%c z0N>z8m$t-uPgm};qbw6+_n=#|LS7=w@*<=cH8*kWZoRB|9Cv0T^xn>oz5GO_5PSLg zfZomw@~d@adLw9FaOG#8lamDoZEZAIa8`;)+&d9rw261Ri#`)q)(!<(JSO|kv)Y+? zj=A#?em!i6WBtcVO#%I6s1mgWku2X7KxJJrPN08s2sE;GvfPr-qq&IY%GO?hRn7}! z2@WC6lhT|Zn$p{cwfvGazSOIJ*e{vGgnneyXyNIB<3gw zH$;2gI|uIkLiZvnX;aAF%8u?t2=DRw#KTw!_{=9S{T|LN?m^W9wJ-372eyr+0OSqt z?bPX<8_gAYkhz%A8AX^EFvML?$eXQ>jt4tWnqII$Z^m6GitecJl@+CEY|E!u)|iTr z5C5mcsp*5lymH2L-Dk>i0#S?d_FF}KLY2>z8i8E0>rqti`Bg=+^~ZzXP8A%eRzDAf z=WV!9X)$}@@Pqqd?r%7Ft0FTYRG?7QVn!vq{o->fY+O@msBw0HtuZ|kSo1-iXuxEZv zmV_Ao8L`s7WkrtJvDUV)i#Z%C^Zm!B?%j*s#UgKq1r7fe( zE8>`C^6q3$wfx}HK!I9-4}c%E=^#*{^JwXGJ1}aO`QCNs;CxrTB}1RQBrGm;zw{}_ zqL`F!)GD=7De)7b;ZT!TaPR#9c%_iaHs;%uVONbn9rUvbrIu=p3lwq=yP1l3xCjXi zH|Bj;l+0(1BCnXvTEmXc>-r||giA!os4C?;0mME=I%>|n{`}llDIoe(5fiOfhv8<| zbyl9o&G#8nSAt!0)$wfxJ259Znx0~}=NNcMmn)w(rC~Z%B!e5RdqOcGfCll`d#SvG zWeG9Cc*Eqo_#i~u?3j8PFh-4e6rY7eScs~ zT4RSvY2BM)$~!>SDU@B0dfg5?pLf{a4!SmI(Wa9QXt#-6CDqN3v!Bi>b$xkDUxGw5 zdagBbf*s_-!o0I;BTcc|CyzQhv12J}4w-52UWXmNs@TO^fVxr0);CxmQ0K}YzL4o= zsFMX6e&`7ixB=u@4eygeq7t$PcYZ>u-lg&5Md2Xc-h?HqJ=1bD_Ar=Gc3zjxFkG+F z`RI2YE;QN7`RvFSye>O1RP(AM5evs(=6-n`257&hcD@@dcE2l-nFw?A zAK}C6gkGycLc8kfc0IogegZ|c1?>H=Uuq0vWAqg(`icpEMYjLRo&EwS{I7fZ7uU$& z-BXso+|z%RZ2I^0x6sjVjWq{U36!tUk<&!Nkx>3siZ=@;1A+?{mS;#PyoeQ4g|%gz z#%8h+#4n$z(RSl;x4Js`i61~EvZ~6P)HF1jpBqy7Sf3Q~Nuui5S@ci4_K_4HF#;cx z6!K{t&yLu}FRjgb$oN-Ot&xCmqf9E9UgJcvhgSK*A-yvXM(a4o(aN5FV>2xvN-eH zsEHozy%l?jG{tO2xyqEmU1UQ(U;`rgH3x~bKDi(Yw%~L&Q@P4M(VwX!F-f`f@se65 z(sV>>n+_7`cJi_o6C!{L`#d!k>&!4=V@EU)&MJSbROLu8*|DC^uzqru9z-WC|DPJ7 zeuZKVYV#otz<3k{_L;3jb}-*lQ@J4&cDaUW__N`+3wMczzu5!Rfs`>74`%l_G9!jq zz%}ccfiJ27ndrlyXdZz0gVPSLC;jka1)bAMlM%!+Yb*AvahL*7g+7ZLSnNuqv-Pt- znXvgfhO6UKxWHxl-`humgO)Kp$P(2Vpa=6}C&5*=l2t@(qkvMzwhq`sE1BgBT11LC ziiR7Y7bD|@lU3LmL`8{vn1mlQ&e1lgVbSP}QbSKk>o}8*=y6EvLR}1Pjz%Sh!#&LFlG3@6? zMVhbE@(&CZ;VWaptcu+QtzcTN&lUHnR7Z1Q@`{=P3lyOncIy$8m0UJdoHHk%1h>od zXYV%6X3@7D&hzpm$W}yh5i6egQZi)u>omghub&rJ0p;r?9LLMdrvuJ}6b3wb^VRMKZxgz* z4=s$X@@qukQEdi#aN=fBxL5HrVW3FV>3g^ADk#{7@|Rf{ee}?a=RypB=TFZZQJehY zg^AFh4{JmJ8c#N3G8z?q3vMGeh=>blXTYC&QL@0UDWfu9qWFUeW71e0VX`(aN)`Q8 zA+0@%MJ!s7)*+rmzi|s`KSfauJ#>gQ#xh8idHtD@?UZTeo{GIzvT?l~!F0bQYFboa z{oDhTXVxItXL1P^Bn}cn@i1S;X$R;_322aD+hD&|vll&aut2}$2GFljq-8j=0bq?) z{>Dj%h^@2+GF6_=X7o#_ycqfx&j@NxlsRH3gq0_PcR}?7v1rC7zINIydpdrI? z_i!R21*1AkQbzY;v5@t9s)g@a*%Tu%VZxu1_AI}r4_m9hjpFUy$%QTB55Pk8=LO1M z&T)5ru^s6$*sS}Eezf#?e6h;SQBM1bgU?us{LcYp^PFz2Dh{tuOYb=LM`B*)Mil7; z)$<=Sw6?DcCeH0By8EGI0_WxX(u}$XUQ8>1kK2`uirLiK&|wK504`3Fa$&A9YSg~g z8^BND0%FXz;^}VCi)Hjy3n1<5z)8hYurIr}Q=j)U2QQe?SOOC-D#7gdIACzMQ@i=D zIte~Vv*B(iW@(g?g&K8?b-vfE*C!$(%kol4YjBY-Zizu8c&L~y?xkFlI3aYiwCHxA zi*E(cl`g@&4Uz`y*wIIUn$@~G@Dkv;^)gk$);MB=T=`&AOECHN2-tI~!@{@eK$O-| z#BYy31E`&=+{i@Mm(C-I+8SUL>drtUdEs{?c4dxV{t$z|z&Jau-pKronbDjQ8L(SP zeQ_3pwJ-WxUV)w3rEK+K*?VcX_Vnk#&NG#^FM+dZMRv$sxg`${Jmw8=2SBnjVNnJ# zF*1M!wCHnM3Q+y}1eiAXwc>Jw)?ABwBvZk6KCbeJ1HFYm_iR_^xcI*ENVsP6h$@kl z4!@fK1T(5h=4ZkIjW;DfcaM1ubtDYF(Tes|tMc)GZxU!_-w&9T8=lmvv+^rciBK@Go)-0F~AedH?XiE!qXTd*ubiBabEY1-$A&V8nEe%}i*cn#~ z9S?QLMcObz$xyqR*FH`M{IZI6%UpQkO^q75wq)Y0`Z09|c_krmv6xcf!}4m)wkG*a zZAa^ElA_YJ2tE6qUKvs7F^ly^cHQ@lt(ruceiDUa2hi`^UHm)6E3jBsg`1+&;%!nV z^ri@pBEQU!;*BAC>)Kdl=;MIF{k*8mllZ3}Y+~f2zreIW=7(9XgJU}>uGA&o%IoZA z#N+FtPvzs$v0lffbjxzR7yQqpa{Dgd(T|x5OcknuXTy1AdYqMC*wl%LsGmYDR-OrG zpC%74`T%*eEOn{xs!t|9%=s9)ztc=|$}(SE#?OW+sDo`8%es@RCZC~>(ix=l_nN!Y zbJ7*CWb9{nRsbE`&A-0mcKXa$x*M`Cp&y7y=x+7Fm`qXAbY{8|uDxhD3EvUj%ktX} z!j&WM#wa#kY#49%Teyc+0JZCp)0KRDVDsfPj{}n0Ms_tcjt~J159DPRI;T6Z(6>_VH*u z%>fWhydze>Hx6dQj=mcBqix`VbX?0TBtP9x3RG6#h5?Q*v-(fSTdG@9s`f25AG^eC z?BwI$wN&c7YU(-Cs8 z`s>&_IJ;<<7SGI>lb@uyh;1^y&mYRNxpZ3mvVYe3IK02zB78e3+VBb5KO43ei3MC% zd|DKCVx>7~+Oo~LJTy})a!ELPlTip z+IX1~l=L={uHVOhCAe)&JW$vh|I{wfTEfT9{!A^GPBgco7~Q%?^#bowZn9A5D4)CT zJ?+e)PdUww7Jd$C8qcb^w#2&xQ3iOhl{Z8VjZcbvwBtNWh@aXD=$ z@2>mczd3zB6uw*hP2tE}F`c+-5%hx}-zQ=qChi^m6qfyuOw6?-Px|AizO_Pk+@2Va zaoq0k$Da#S{^k$EP3zBawL4J;0KoN@r#xT%%*OdSidZsG9-YI>nLo#|8k54)_UQxC z#YismZyw42=a8`evqSPlJ^DZAd+gx#@J*RqBp< zuC>ul#@_dUJeGm&Jj73$No~XrAQ|_Qak<<`0IsrQUI~LdSc(se{(_4d&MK@>AT;Cv z$?+5$a<{if8J#{-3q*Yhgg&$o(}D&QMyC{1-fUYO-7W!J958L?b-&7qga{E0iVg`m zOZcM{PKERBPN3hm)zNt7>Vt$#qC!uU?WWaBw@)RoR|u06s?{kC%CC6Ry97 zHCrYy66L@3mw9`RTcTu_jnzKBrO3)qshf;xbf@wi5gx=Raq=w%pu)h)Qg*UL2374> zCUq@dovqn)t6g+9mG(71^{rVd9}jwOybqwruM}SV_L#d!SMGWQyWJ?)yAtWJ(P+K& z+^~UU$lJvb{WRMP02C=oP?{e0{IDfUDcwx})GuLCG!6D(sga#rJ!oH{zpT+^37eQl z^WTAr;ry1-??^hg|NOwu-{@-R3JYlP7e}4*)ChDdq~_jn)V@l0Ir$!s8_F*#&Mhln zt=3CrKZBQ1I7I$}l+HiK<`jLMJazI4x)QK@y{l%)xA@v$^L2WF8|q?ZgkBHK?sRui zy;kG$Hra&;Qo7BBUFK#tcPE^`E+AAbN_;TBC5Oa6g}cuf!Y5g-$enuk2Z!GtG%hA9 zUesgl1~#y@t-NF5$)nrpVL~}O#hxP$VRHyh03pku^0_jDgU+;wrlgdqE>mYQqc|%> z=0_S;jGPyN001QJrWgtT(1wfsV4-8^McZH^PwplNfR*f9gT&J~-r(Y@$)NJ)@-ilZ z{VFxXp>f<}X{>@@unrLskaqG%?&b$u5=O%k03L}SB>{LhrhV_RB}<2<$oBNoWP?`4 zO1@}D=+(si^n7xx^NQo@@WO&ex9{78+F0Z1+EPIm0C36C2@UU!MLTe?>(jN>ej06$ zy2T(se;=mhE_Db);40>4jVKmD(Ip2FKp3)$tm6Mo5zGKDLhWgor9b1{g{%7}0r|V` zgEQaMuez(7yiCJcuQZEGz6IQXnCix%?GE?M)V+~DQxgG9{N5c|Eg_|P)DjUcdTMqa zET~s;SuGw*oRdRvPYYXI`N5&g>=ga;#Zv9IffkY8q&>yC%WmjwF#l~u{v!MQhm4Ca8tghW7=P5iY8L!GI`qW> ztqA=M2SGvfq3ddLtAp> zq?xuxZIHDhCnXPqeClN9#D&ML`Gx@-{FPG2x$032*QEs>(8UHl{CGWU(?p9|tnKv} zp2Tk5f!`V!67qBH%)-5k(X-^+BR3yZ_M^;r;A)kPb4~p~wzoMKMcWvPX9|10!l_ek z@%^CrQ~58YK+OZ@5NgmG5>B3Hvh#>cqceAAWPbdT@o~BpCUa= zli>G3K<`b|VTbpwQgQ{b720+U-DDkso(LHtROvWg@Fj{;S zyE$GJI~wzIRe>}jRTWE^Dk81OeL(0al%J%AFZhV#xXtbi%T8nI3ca*e18q>ahktdW zY?9&UcmgsiWz%S%{YLJtxF*jotJxG#9bB4_Iq4l`)KifC+USipVT5P6NJHsZC`x*> zGSRKM2cU+uIJJ)|`(0`;L^a0dD(C2_F=ijOK7(EQH4R1` ziqVZvImbN8msCxlXpt8on}en zM!-Zau72-!kbFX@Ga6RJRWJSVBasN@JK5+cY`Xbf3kg&!`4Wwnu{<1L>6ij+HX}cQ zJcd^av4$iXdI)z_5!hjKOD5!g>H5{(jnAv{g$IY9Av4+Y&5Z+Z>QHuWMpc329{Dnu z#gJ3dMI;z$DD=V^c6lVV*WX3#?Xl~V6Ogur#kV(O#F?D{jjqXNX*=1;J7dR-?^Dui z=OPef*-zEQi`f0s%zat&e(%G6F{fMY-pT{Ez%uz&KGKe6gMSLXyxqj?KA6}HHW>9` z*JBiIHnKJz3SSkKf$Alkb-+HHk55_dERx(Hq=s8(PK3WvP};_ewE1R6_SfRN2f#$j zGZRUyUsj)F_+-GxTKYtP+pruOP703jw1x>Fht}SeE9NbE2od!%W-(o)&EiSw{VPhS zP(7R*h{-0OXk+>(ZJ^b(V5!nIgj}J@TC*m+NBV@~6Gxr)IC;w>>G{6K+#hD<8%UbW5mUV_is)gLS|=$1uIlEXe5zoO(eAU8y*= z4o&HH^2Kva0xF=E( zWVE4>1Mxseq&5olrZc${t8Mba715=JVPnA}^L$ebX~XJTaynmfuOA z>ZLaMb(cpVSOIvg+y_-#%Qg6It>E$BKVGe&9^Nlt9O=-~ONk_WoOfsqgA|9nd;nZV zfi&9LH8Bk_JddxPeHrm;tqN;=7ThWB_&zT1t~a0+YtHueOHX=PeMCEd&aWCifi{bQ zZT_2u`RAOzFLsN6@A(DPA=yy>%8&lLnc+&2|MQh2_f^XF|7`w~RJ0v;MUlLYRHd~y zK&#cZzC)d!mY-u$R7Xt7NP97K(wZUR4oJqSY~R($)_{T4;_HqXYij(SoN#$+ymuWY z#S|cT@P;8tui~!0Ffjfsk^T)Ya?^uA75Ucsc%#YuTUPkymQ`6ldBk zT2bsBXl+=+Q7dJrq1x2bMemJWyR@9ry_xby8G4H8UUw}M*_5TLhEJgP1`Yj5{-V2t zR32JYQEr?wjge?hI2APDr{ZXl5>;QkmSSH{nF@56M{};kG-8RHT%D41gx6q@cv^DX ztU+0w>|F48V3KusM_@eXjr>exNqY9#ZCVj|+417OQUf?my3+#Kb&3SJz3y!4%sjX1 zJ)@@802<%V$&oy%n=GlI2#Kd&E1AmC74)U{bUJ1~nJjB-#N1TCYQkmJd^$^D)G0Fq zSab9=+2hs@`^9G^|kS#VIyHrK|c_ ztlYInp`27YGM5=r1#!Ih!~zZT0f1zR|4}QD_Q`1(vE=cTEwcXPjvr(JAf>*{P^zDCH@tVf7?q(hG#^Xm$aM7ilt{uOjsxj)QyFcfvP* zSJ{I<`>h1!vB^IIi_PZ%hyH#ds5dblbVa2Ej3~mEIPMJbMBYJ^!-AOk=XGPE2p3!7 ziDMto_wx=eX-06}A2YS#9Ei27Dr`9ovqM#^6GoV)fYs~{wpdVl7v(NHs3;QI@m?Gj zW%E5j80sKH*7^+vgHM?#=HxSeAu z4=@)h!&SkyO*oo5tc7p9iYSvXExgR^eO5RWt!CFA=mt|kOM;uQoiybfjzFVb)Vi{u zW4%v{fSpfQLSQ!^j$WRhL}F%b0mQKwrz^RikM19^sQV}HX4(D8GDA2DFm{E(IksltS`&{>Aw}=tCMB8YZ6NWC?t{!a-q5oHQeOm-;jM8M1DC zi-nFw(S957LOz#(TL&w4YeoNgL7O9I0Ze7d3ke-}+_@yq8O#&zS+Y9reJpLZ=1yl2 ziK2!rF^5W=?>#vpvEKBh2n0G3%0tlj`wEB5%=^Qc#+|hk*c34CJ0hgG6Og|O>7|IM z5i}Lpq+N9bk=}yRM(|D0Q^FiwHez4rZz65wLmw`OY4=E+L#VOEq>1_*BE}T>1HAC? z@LX~{guNm_CqQJR+%tsyX zH$LH5_89YAB_p(NJ>|@tGl8he0JknulAAU(l8b3QRJXHOc`7wn=g$|JhwzY)^S^N0 zfqjlO(~gQYg5(Po(ufxYzL$_lDJ{}^?;~2ibee)|mnz9o2O$Sfj(4;pmG|w5?snw| zH4>h{3?!vPhPK1-SrM^9p^sh2IhWb{s|%C&!)U*j2Tp=t6P+t!mG1Xr12)60>Ccmw zEHd`dp|e&3c%c?5Z%wTqvzD{!2!TGSQ-|(ZOW%(LcY$SF=OyIHk~$qVh|gI|oclG@ zU^{kfMRF1l{j7Xl4__S}^srSJpQrH6D*M+cG6p^VD1{TX=uu{B)RrHgrDUMWfO!XK z8J9(tM}Sx@Q5Uf?-50OF1Lm0nXchL4NC}E0ZySH65${KZSvH3h^T24Re`7Nm+?hh1 z$O}o|S6MT9gf)5?D_W{AZ?)U4wqwk4o;HimbIRbcZJtgZ8HXFW@tML7I9g4cutW?- z*8C|-?Ti@L?xfF%RC%+SDHkt5ZxYEDloo}tWtm5ygJd3I&j22n3P3?)02Xs>?Y;b7 zPBLmY_uQ`PY7*b&>b6ovfz|7&r?g}DD~*AKCK=F;%g$OT8z>(Jz-Fw zT-d)zb!zw?>4RjA^w=ipagxG5Gm$H&zR4*wTz7EjNO!BH=c=qq8LGR0w;CvQghFl# zHX%mAsjMmFEz%tP1jwu0@23LZE>PAuqv}CGGp{t`H48%eW*-Vt}`nh6Gb=cnk&@$3rI) zff4n{&~&xV(Jio8kRAPwr+Kzf7UtvlaQz^N&z<#7qqFoc9_Xr48=num)>kqxU0ffw z<#cqremoRMaaF=kb)R!{G;OZhRHESWyn)$uOFii|5NI?UjUl{8fCvggKf=`FJ6QDv zTX7+Y{5ow+HDGLmeiYSlUamjcKGEDa=rjgGuN$h7l1vV^ZL`+Xl08XEC)&c>sf{ICLy{DbS@V(Go~j;jUc_ht)P&;wJhgzpK!!m2WKur_}OM*6)8tANH1C z?YE`i#~HLUmm}=#x%UeG%+jwUR4)|Idu33r@U9-R_=X~uvKJN+)>Ob;=4-Y>jqc_) zSNrYtxjTM@(Jtz&;Sq!kO|e@QEosO6Q9qvS@|7z_{kVgu&EXn5c}UF3HajS)XXa=}!=C(s^0RPKM-XMdsC|IsM1qzH9G z`+b?Bf1$z^{%(rC(t!RQ%3(?oGJ!+|Y&m{Kh<%P~mPZwtQF++0K)XtcCDLW)q^j+@ zG7uObU<(Y!mEvJXbpcyr5O6>52|>(7 zfAmSOiy%MOIkM`8=dYe}(cxdl=zSVhi3z@1nE@J-pkaD?dGW&G*g*JC>l|v9M&y!J*532)UBbIe*s|L{w1LeB>r#Fp}FFx@oAB+Z7(V65w+~m9M-T zfJx8ZO1wL(*P4OrF2)4Ir2SsU-*wvvLaHp8RR4W$f9G)2^T}9RRSCOvZei3| z7Q|w+2~DFM4niPMN7@q*K$-Dv_3NpBQg5o~9A zQHw~Eiy)hVAN5CBPrV73qtNL!M1=N1t`#!RB8?1~k+5(5Am+bU9?>c-Pc?s(r}j`S z?(4vqtt{$6$N@OJD(R?d{qVACkK=YO>rQzAc@XV_!;YJZERqHgnbBFsm@6bh?a=}@ zC+$@c2BTyaE%V-;eVQ456S5}nl5wXX5m7L)>X^4RC!!6AIIwx%NzNP>N_R_$FS(B7 zX&TjzQ765Vcm-o-{m3Nw*0SbYc9E|@Gma$2jr|)NCg`}yxdpVAN9&LFbosnSC2h~q zT#6Eau{_cb!hxDah|n@Y(vS*OgjrW(6{<1jHY`Ji(sB`}iw=k|2=4d~ zS&Z{79NWu}d_dUi9N4d&0>;%xruFmwVnV2w9rv@J@z{4@cs8q%DsUkxm8On@dRe6` z>11iZsK6-ut70AeDB`+@7hPO=jNk}%+$MiJbq^zaSIB>jNeI3hq}^*jWC!SJ=> z$5@?eLwc5sc=eso%A>lSv9BYriO8^way7?p;S15ka!IE^TvT( zCGOxcsfkLj!2~l+&_A==!PYH^6!m``E66hVsLr`$cI5liNW#uKqI)-Kbs_7>5WT9j zG48H!-?Y13M2-Z>5&`XEnBBk2}1SXsU96}aU52x?f(cv0DG1%yvR)|Xm z^W^!qPo;YDo+O%@Cl)jza!9LGDer`P`yt@RyK*fadsGR)&o_G8_U533t>o$b%0CaP z>4$j^&ypm=b?;nuUn5Yr7gk%BIGYzArkxtDr`y=-wAe>h9M$n*RipVoUv&YDh2ZWkmLB=cXu_LM2KFX6vnr8q4Y{*Vfw|0b&X#|~IhZrGvRQfj*(q0pHB zD((6=NxsVD{40V5`UUC!%e<~Rtcjv{FR9)ujx~cpam43RC&61wG@nNmq^=i^4VG6C za{=jtfSNEOS$n@{X9G)wCO7;Nw{n)%mDRm}QWppQ2xbkZB$%z|hW*1@w1=4$;M+s_ zAeLB2`oSyyC$_N=t`9hy@Ryf|CkDBpK%PG1b%@fA`nDLp^6Y)3YycpGz?iN@EP#iA z*L$siCVcl8x=pGc7^Vczdb63R0tszkRhld^VXGu1d>R`Pk)Dk zg5ma$x*rLjMdGsepE!&2MI?gytpdyP#@dQ(d1dd(+6rx2JA5$%H$fckwXXr0#kNKm z!kLN;T2cmY7buF2zgm1o`GNeTxGHjqGr_(F9g&3Jajk@n2Uu@8>h+2|g{L~WWhoC4 zFaO4gYmX(rM4O86l$XMJ=VR()HJ2VFdQV^I2E^FUa}!63+Q?Db`Y|T zE|Qk&_N2;Yp&YGEiNRF&ynxX@rjs*}rePss1kw9didBg<`0|o4_|qXDI!K=aCrT~W zT}2!tJkiQn7%+Fxu2u~{cwaKFtS`M%-nnwRI-k)_3q1sF(DA)S&H4KsX1;c{L?XPI z#z>Uh*o1DpTH>7>r&Zx?6;TILtf@WhT!%^x8Q*-mWS&FWNdqmMgt1H0WTF46Y>TZK zE8KDXWn!F$gz(e(P(A%kb^g=$rthF^=8S-oIkYR)dH_j<+Ke!iCa#seI)(Fc*~VCG`YSQ^bOpfL~X4)F}wW5mLOWkgu$lp3m<^kJPC*k{$WDTZw3 zE!N7TZU{7OKhv;yP;!yjPhe-z6mX9lH9BRTEn$En2-b?nMdEaqJ?wm8)j6G%&m*hU zp9<#I9jFnUv$~%H#t+o_a{PcywLqeSRukz0kpWVmjc?jeGf4O_oSW^r_$XvZDGTlO z5B}pZRW1kaG`LFy@ko=a=>CpcAOc8W+(>bsIA(v&Y#tA@Je_qDn}8z)Mk9-o>+2TV zw%)2N-+MenA_#xm?a(s&|LN=@y_O>0-7oFKUbNe5cV=uVVsgMrG z6vr|QIL}nSK%*;2#z!ni?;5q5Q>hVAa+22F)&0!xdk~`Or9=me^O6OddF6xwU4R;l zFFVN|0|EUmmnu`pH}%#HVb*Np4z$+;pI<@LBT#6DmU+r8An*y zKXULgkf#gy#?T6N%-e|-13eG@`R8`QRUluL^{shu8;w`aSf$iI#1_=dGJXBy>2mM4 z)$=+{2{*LDDDCKBhhSY!69KLbXv`K@= z5c5z&$%e}WL~(Fv=sDd7biLw`OIV<$aU@bzJi&cX<)C9-la&VXC@4f~+>5QdmSz}w z&v_aSm9QI{G4=oP_0I8;b?dfpY}>Ytj_stQj+2gUvtpy8j&0lQxMSP4%`e@1fA{Wt z&Uw#YvsTSo6RWCz&z#Q~a||X6oZl<0eeHraIHWYYP*Rm|zQe-JVlRfSqeF5cbn2Vh_ZEo<%jS!4&#HFd25w>25#{tlm5?P`88y_1W=2-g(S8Uc`= zs`wc<<&ir6Hta~ymNFs)NPcw@;S%i{D#&RRp2gZ5C@}5PzhBtPQct_j4(z@6bVUbo z;F`Wxs#Vyu|8>tv(3thB9*N7!y86XoB_71Vi&SA50(Jc?zLsr`Kq1D}ndNry%9r`2 zH$DU4Co==4#-Bf+U6Qu6L}>Z}T8vc~viv_RZ$8zp{xQI_|7U>zm!{Bv2KZ0=>VrQ_ z2EO+r! z;K&f~rzazXKxt-atfp^Aj0wDW_0!l23|89-sk2hq`gKQsvH z7sB6NV>TON4RP-$+q>h@%<=RRerIo%ExkGDw@NqatVQX|Q^}MlMwWF3fZ)q08 zJ1^`|T}S6oW;?Bu=Y{vzv3L2Dv(n*&2VIQTUjSo^>3$kpGp#cl={dIg&gjA#Kn~ov z9=eCdA)KNjaBuU?ZxxL;>u_m-aMt?^NFUW4PKzZAQPIm$y%p&b@u#%_eUMU;ZpH;g zyaVwgtI*)Ph`#9VY;BI+>SnP=dVj!x`YHy{83OZpWggj5!caI27I^EvJbDz%&<-+3 z3Y(<$Mvr11hajHf;$>!6CO*s|AgBZuEp=alzeCkJk1J${#?zZ43punl%#K?-AIOi) z*Vmbb{8FWIyVT0=;CjY-n|`iS*sHmo{2TjRcjnJUWj1HTKGTwj+62&i$ONg^mk_U1 zfIQ{>k!73pUF(y+a4(u~rBF|mdf*1W z3q!@>S2oYKfU`k07b`29h)|zXOts9>tTl2t)f&9mBVYWJR+1U<0tn z56F51pd?UacO+%w(OBhqQ(pPBs_H^|zc}4jmO2FawsBdP%158W0O}g(R|6oU>Ke)~ zh*0|>z9&MpaYMnX>E?OTeZlAv${j~~?yyn$EiEH9R?SAlJX!u#LuMtoGK>E%#j7%6uU6%tTQKhu%C~mD{933d5)%jV(E_GD<%Hc9o|fdY zFVIyAZLQ~51&DD7GVVMNhS4N`qz)?0TpBZt<%5}ZHv-iceeU0hn?By#2WWD5TQQe4 z4ThbS#v1n$$<{#UN)^}m(_UOqlZP-N-85C!TlOG0oyv_=kO29T4jOwDgiRiXsGLf< z%B3N{RLf(4BBnw7XJ^dV)WZfw~D zrI-cY?8EUIA2@g$66Ao#UBdlFExYd8WNfeA#LdBe<2OI(Js0`IfiNT18h=3)MH*f3 zXB0smH69hBMISSbC*ww62_nUju7(((`?C7n+;Vm|Obl37Jr&Wa)peXYsXWa5jHhx9 ze!G6I>aLVqAMwDk52$y$-7idKug+Xy)VxG?K$~3$ww8_so%$e)EBf8c*i!cIWfjx% z3(l6sG6ZxW;!*x&ONL`5DDjV8`~r|KmTeZQi%sM=%N|R`mEImVmF)s(&4WFgv&>)z+hm5>%PruPRcVIcFYwEj zl(wTmFrY68q?m-rE~f_A9%>avDQcUp3&506D4V7}*Lfqx>k^qR$~BTA0-4))G4&eO_xHLm@_qVAHE9r-!n@vB(R7A^2cbB-g(?&|P_m*nZ6~PgpY}P%tE% z0Trj=B?no5wXnZGS<;K%zPJCMg77~R5xM`0n>qX&PW@|c@Si#C&+5NIXDokgg8nO@ z8l`S+yE26Qey+zXW*-C}%C;e@1hFg}eb(n5Q;{Aa*zFhh6GdTHNrK@l-N!p?iCj#& zC0h(=FmEX%$uu(s|0#ww3GdaB`g#b_TqB*^1yA`SPgBH>>K2bDmnizO4Rg`36s&;j zWb+=dHQ0N?x)FAk+{4w^;_qc^5K@sav$OOy*adI#*H@k&Iq>)^xE7Es^|6Ku!OMQy zUpJp6eul8r*O;~iw0-Fs5?KY8TP%9d*f}E~2M4+>^;7>kx_R45fc&Nfsm~N_AIt<| zG6nn#L+gEL2Ng#npkC-rJui<>#qj&EGxjYrAnqnMl;{4cE0!xUNBhS?vxMfvR&i@v z=7jP2MePW)Ahs)*Z+V^*CGih9f1o6NG+&MKhek z(a1qPeS}W!8UICO=8T-uob;|c=>nU89$7=So9u`~Vwm(8Oj9zkxIE!>m>AY@QN-)OSo$F=OC+`O8<$E1j*IIU$;7=?9Ez{$jFXx%H=IJx zQ;-}dcKOuc^kQC8p(eESwYEx`Y^7yfO1A8@w90LZbf>8#9wx{3tTU-v!d$p+oSZ5n zXE)gd9LE4L;M|7f_c2^C8I)oy!))KN)0>i{H@*{R^gL;K8WQ0sF&X`>C zh*R}_fC-p~(#Z^6D&DM@U?xiXGOu1bmcwd^++TnQ)?B7IuB+L%DOt)4;E z`@)Le@$cR9Gk^(2XeAv#!5Wh|RxCou#ZbK!>6zuSn2XnwwutX)8_OYpM)IVxJX};m zFG8A*6Xh$5=7scAWN9`FkzhyJuyZ0Bcv)-qN-0Y@E?%Cuh&hFtulR3HMy?MTgzshy=H1iPR&-*mvc6#n*|MCB!~5Ida~#iIw{k+=Jv)QlV6Rl8Axl=ZJT-+$Y2F0iGFH_ zuLnpZ=oJ`eXufYHtE%#shrI0R@CntDVe6Cw!D?~B&6IMnyHUEPqndmirr71sS`-@4 zyT@thQb^QVY8XW+rzen8m#ga0HzsXXZ|5cKE{4_3@JuYonCa1Q9KrrX;&FhoM?PZ>^bg(75X{zn5KICO7qbf`5H76dEYuVf- z^CS5LQ3#HTkw}0ET9#J`{J53ceHES^g6%~N^x86tjgVUa2s)KLeo1XL&}D4Oi!UV- z-;D`pqUX%@ zao4X>d;xD3tU}hpVzIrV30ToW%gm_dOTeeE%F;709$gfY9J?cyW7yl<9(s#*R&I<=c-+tiGdMum-N=P*v9lWgXLoZ1DE+TPm z%#*ZOw2R#cX>cyK@$xT0{-&I1J(jSQ*3t>~t!oh((!07zQVK2=d{?*83%;wZj4n{= zo=O*qr%|S{nfo5JET}<*tCT({m+05Iv)gi#O^Z(&5+>Iied;+Q<%8kre|DtYaC zV!I7~j5$XPr*9WecR!?;A=RbP=%ZVBd#8a5&?RDB6%~kP5G3KQJzJqeNnlUlyiF7h zuRWiD1jG1NzED@xGoJttN`#&5+)4B_q%2P#Gf8Eg&(|865J>i>;^^I(@!R<@fF4*3 zajx2)zLUwA=x_h#DCm;>CD+}jz@=sHj_LXy!eO7O8;}x0VI!AE7haX>gON5HPbWh! zJ?BRSnI9i^%SmaAok_e=t#arD?$W!-^!wepxC<6hZI8!T$SBsu`EwuG98X>IQMTc0n ziLbMRt3dq#lj}YEtY>v;mg3^Vskjbt`bZ%;oD;sIV9_zx+ChA+(^VKlVoRlOsdAv^ zhFu(xa^A2|Pr%-&#g zoCMU8@0mwLB`3|}rIGQwX3RQX_%9a8eBnRoHdLoKnGDvq6SUblM3+7=DL_5%f*BYnNhH-g-^2-5s#(uB4yv^SB1gHE^*+m|o z6YmMFN$Kj3^3|meM_z|kjXm2k^!*wEL=vO0thSbQ8TQVe3e5BQt_b!BC1q~sP?Lj2 z4UAEpQ_d?odgu1~$I%fbSASKfSZKA8>GX%6@OeE$EjF+hArFYGvlmIkCy;1=%oF}0 zJ;(WJ+V+XR1tg_oK*Ih#DcW>c2@Xf8_MC1G4P%?tlFMa58=3pXHF>ld55%I8guEQvE-J_zQxPH>C|gra}C%9s8$2 zeEKE*g)leAAYoAc4&wjjH#t8m|KvBDh{qu{Apbax{bMWt7YKz${cGX$pMzokD{U4k8M3d2=qCq}Q0RC+0lDu*u(VK!dA-zEVc#QqyU4NfrK#~>q=eG`{ z42{>cz6+@ak(7cBiS|dug>-~WIwtsEeo3Ep zik}el-;F65>R-R+|D5$_?cd}uJ8KgB4@f+KCXqc*1O{U(xnKlWxE5(ep13e7nnzAP zdINfkk&6^9$MY3mos4wCb|Zr(mW$|_F~h-ViavkV(`IyKHLcW~HpcwEUjraoeWWRBJ*V-=!nF!Nab{rvqhmc1!n3ZC0vwV(k0}T1D|#gOcwifsmr=iod)CNInVramA}$7IM51}Pxw)WUKLzM(u?h?-GIpUSRG4(>h(lzh3R}A0?G8U>KEkrS2CS_9C%CJCM zs0*g!hlOfMUtcTQvHv%vA8{lR$|9WcZTuBavk)PXKf+yvs{%ckU+_&xue}=q5eCO# z-dOxuF!VbKK5^2UOk)!Q+Fit5D<@Ora)8#9Q9bRi+Vq_FTMQ&z{XXrvs#cqMCd%a2 zf$1Sz*@ne!ZSQM=s+gx(DIf^_lJdzMGAcAChFCF z4PYb8l5CC4yix)hxu#q%L2B!!7R{0TX^dw>U802V-D({h*{Ojvayk7Dq_d^oQ*HO) zPD!+;Xa)SC%}VCs9uUX?>%%2`F~f%OtN?dPJbf*xz?+n>1Rd-NLt;{{o4~c?c6HfO z?dX#~bjBYRYFh2MLK;+%Xrm5Y6O7k z<1J8&3aXiEc%M<*T3 z*)737ZK+n=W5o;PwGR+_-lN3V9ILQ&5w!~3YE!(Y;<$-D0R2f|F7jz28A%S)-vozj zyci|UG0f#c?mCG8cL<08Y!KI=Dd9s9P5#h%Gde~cU!8@#$(SA>31+uVz3LaORyH%C zq>9L|musxoACmP{#W(H}6BT6>M@y{2z`M6{s>3QjAJmJlyb%Dni%b(&9XHvS+=C6F zY7ZNDMJ>uNe(uC}KH3LJ;NxT+OQC!7Q}`YM_aV{_yY2=6DtJwWnBL4yqR#u~l9Yj+ z??$ZZGH{~e7~|_3nBylZUdRtlCmm%3K<&RTvMVUVC*Izq6Esye!7S;Y-R^=KERs&> zJAl1szYTul}xr zfg3)XQis_A(0JGeq`MFIiDxCZRnGoQGlTPJ*6<(1;y{$K_NyU@+#1YHtKRu}Rje6x z6yllr>rBP?MBOi>vG&FqoSx45t}b)Y+jDsic)>}C`qY3SL@VclC_CEwLmd=cd7y|= zvCA!;aqR2-CegMUY8-M2&j9<%^6pYo0o?2$-SDmA;rx0)~ zq;@4Bq9Jd30WO-$&*p?E?Y`-^{ekC%7a)V}1qi0vn?eXa{jL~;6Cz|%y6XYo!xn3g zv6gI+W8b5%=w2*;`MoihQY#bI#yQ+4!NTvpsR3E*00U##37}kR-JjJ0#u@{FUj&95W>M0RH!x08U6^ zz@3ZB{m4?*kj_O_60+{636BNI{}zrv7j~YI{z*TCpkP5*{&KI#0iRwo|1~Gvp!S&) z7DxG$6Be}h^$$jqQcUQR0U?u{!LrtDQmpFEi14RKn*Qdc=#u2HqX(FvONx_Sk-X^r z1tE5JKFWJ@KYBbP_DRMP))Zxvp{im80kq`Lh*)2eXH)f%>M}gC->c<=C33<1HaiC} zu8uqGO~~^o;yqtUnfNS+9RMTTFJs7jSef!?z2vNMX3fk4%|i2tA%i)EzAf1bwjwo`RLtJk;CU*Ag9 zolmPz%lPmc70@*{HyxtB+uAAs#EcV+CL3J>gO5ML&g`7=3ffn1={v=(!HR_=?bx?- zM5%9R(q?bNC2+qOAI9IKSU;{9j>L!&STL)6iZBzcTy*F5HTI%{6r^tPTAA+i2-a}( ztr*4TO!s8?-MEvPG?b0%vR3tWbl}4F&OhyMKds-egsY`a2aGCXozT6=gXOVjbT~nJ0bl+d{&3& zT=Ltl)6zVWDzi67Un5L=2($|P!!AOl;ThOsE_abPZ#UCoNw%)nMAH-?XGs>Io0|pX z?D2u^TY93nCotOY85SM~_~H!iNQ%RtO3E1wQ_>f0`LeMl{=2rGeO&Ik#yH99&bHud zqY?VsbmPDaxQ=0+psCS)KP3R;q zk;tCkd;KH@z1ss5V^Ps9r+f>xpzBsnfC;=>(7WXezGnnAW4dFG=#+7}4kfz;f&gEj zXAs4p#M+)TW}jPn101|9db!2%?m|=M=PJr|oW{)3i0;x=Jh>(*? zZotlkhPy<9=%o&@p_Hdl&pVUO-YAOF5t7cL!^o2+y_}iS1As*=OfG(^66CXF6w?6T zKgkO!;`L%6(h!K%BfAvCxfP#J&J(;*HxtAhU=teRqyYMCvpU6u-esuPawr7%bc`o` zf?*r26gwKR*6lTlHC1@Yts-PMyu%D+YT%~XVDg+Wl8iNBULY{=1zQwjo09cgq+(Y< zNff^pa^RyJ0tU{R8VPGhjW_yp3tbOcOS$)PrgCDG7DF?__bO*Nez>Bmb*@M7Xbkf_ z9^t%?tbZ4Wt`oz)+O(?-BZ5zwZ&3YFnfsmJWlTO^883Iq9j}s7;r!Oo6s_pQi~#Yc zgpdv$ee;L8IG^$B(J%DDn<9vXc;Kfl`MQ}$4?2|?c>vp^Zk;sumn`diVTb8*3X11O7Cv2k#1Bo9a)fSJGJ8ua>7{# zS9-JPi}0oK@1dNx1Pk=#V0$Ri!b!Ejh^;u#hrrFRBci>JuZG!GenUlG3YjgzYE%ILq>*T zFcavuR$*M<4g9&B0C&tDA2YTmS%UfChjIPwNQ2*i&nqH;^750tvd#*C#RktGx(6qg zLziDnXs_{M`yv+g$R2e@L-LZ7I(773y{`1s@nZA(dLaL5wZloav^g5GT~frs0G$U2N#PX`?md+ zIAngHtMdRs>i5q%G3q@k^hmrm1huZ~N}?Tx&}BBI>f)*mENhmSMmmmq#BVWBE0 zH+7U^(ou!vf#fBVm{*SgDd{bI0Wo``o~`(*OD-FKIpUD4U&4&EImc8>D?ATD@PrM6 zUoi<2ly^f&u*QV#>ZP}S&Bfz;!(BZqUB-#X^>^xTck?$ODtG>+7$>Qq!37z;m|f3OKjR2QOx%VZ4E z-S7#(&N`&fH+aJAxz-2M1bs`@>3s8g={*Inc~9bm;Tz0U@K~VCMBx|q{k71VkJ$8p zZ0%rZrg)68{!y3)aPDkao)lT&J)G86)R@Y;lTPDkLR8=5I}X2R*THS8!u>hcMt(Fs zX>I=P9DMoES@|G>#P$r!j3|BWL@aORo3d%S4aOKx>$zrp6|LNf5~pLIV&hMY)*M&k3km_-6S>YgzvM@ZJ~4VXyQt=tvl7n*Rhu8jyYU0iy&c6@pScuzDktrC0CqWfMpGJNe@^R6GJw|Iefw3|IVDmN%>Ii_t`VTq-?IhI{R%D0+z@JE_7+p9UjM`a0T28J*R{Ni9@ZV z7=buUN%C!EwXP7)g~I8vLe{cKeifTG8k^I*7#RcmhU^)^mdRyE^#j#u+d@Qe3qnB996U zu(Yk2Z>+9>!c`LIg(i2WZc{3;S-AvH6&ZnfG~qAtfWJ**s++1bL*j6$)UYkUXLkk} z0-0du^cskYk*YMZ0TyAm3r;u*wZxxL^SW3FIEL^@idgNH3l`w_(jYtPe63};e_R|M zJpf`k-6GrDRx3YnH|NF(sEQFEM}XVg!ywAL@V1)u2oT3d1`l63Y>%LGS#bzukdX;V zEPI{XNW8hWLu$*1xe1knI}g!0aqX~I9P4_nzAUUd1BB$7`5s?;VnZC74%4m@b}9tq z1Qa@nJWUnf^GQCi_uI;S2(N#?D2oH$9sx&VcY_aE=Y@bg9b=wr6_PAq%EuTHjy*p+?CxfbEER$0i&+ z6M_MQ#m0SE>y|?gqq>|(Rtb<2*s{A!qW)AVCq+X3ksy8m0vi&g>&FKq`?jcy1q5i{ zZ9&S@*ZR>6N^yh0A8bzo7QD)O7Z92I4l1X4bCJFI2d$r`ZR%|~IzLs0& zqA<9LT=(?-(9pbf17ESGqk0GH;>O0*TF3U2Wq)D=4Wd!rQiaU{aSI9rY^eK%RbH2@IWQ7I%}ve9E{m!E?E$PjdM3%rgx!`dB%+CbY3 zXNp`Y29Q}X$r`eOVuM3MJb;U-miA&RCKi?h=~(F_m~(99rmiMzj@sbQI_=g+yHyC5 zodr18!#4GS^6icQTa0{%hIz-x?*}U7go}Nt)#(0RFmtqcGlI*A?apiB#|X$QUV;nQ zf&uWJtqzI|NSkh@ye}D>b7)Pa4Vd2u)HPXJFbNe(VZS!voADME2vke6Zl(2pP^&0w zEpM?1TeppCzwou_W`j1XFF@dj5$w3Mw|NRQlAYmOadJ_5)>P^^FjnY@X}BFm_>jHJ z(GN(w>r)vZHuW!J>K~sYy@@Y2(+<5T=oMylCt-Np`_IX@lOdJdnxn{QvtuR+?DIta z{y9+6{xYwrBe!1eT(bpF17YM_+4AjDMAw6}<8g00D;T~=_TRzxpOeQdpU02TJ|Tq9 zBRtTk|FQ`Ek7V#??H^3w(?s#V1>-YyxtPygWXD7m6<4>gcraU9zNB;rINk~>?(YHl z{55T-oW8=oP>bo;%f6eF2USk$Mz&=l^<6AnEV+_J)vC@`f`gk3BE%2yetvM|GkMp{ zG%~g~vwI}oYfML1A$^n`S7P4Rb;;qYY6*b;Y1^;ta05<$%kPVK!Gr-R?x!tNm*p{a zrldDt)BNACiYRacoZo4rS10k9m?Af1#>g`*l@)II28RG) zvGwzDIq)d_Wm$8YGQk)P(pDAZBDf)ywwCnR#go8}GL|Egxj*kUv`o&>fb(kiP{9cX z`SkZA!vj4LDW?(xvJvG;#-Aip-G4a$bjy|0KBPl##X2u^{27Yp2K*{7trd*H4fVH8 z*+bcL%9Mr(M{P}5S><#RWK6$h0LwUoe}tVCHup6ns{Tm1979iov02_FiLO>K2L|TV zGE04g%xL4NYR2)*+HFcJzkFN9>hw51YKG30{8cA|XjPVjX#0M5BqQ2u zANBO(-g&{spJ^3ex;s~x8IaH@r`lxHs1|N|b-n0s#8}=E)~PE*KH~ z1m8hYpnx(I%7GEt0j(iJ#uipovp!=DEJmrMrYBl;TaQd>TKeEjfff>)jf3m=fJoZ? zDvo)8&)H_N*jC%hR-~LExs4F44FFPv4r6x{A&jdb2e&zgR{ObIM+x)tel~A_LVPtf zQ{7{ULjz_)Yae7<2{5@>z{?gse4LznbTlZ8FBi+ZBh#$E*}J0+=vm^NJv%NJnA>&Q zrE*|$T?59Rq!*_mL3b8aHT;4L!c-$AkD}*S&8)7j6jmPcLM)sj?vVlq%80odZx|5=UFGd5y5#OX^E z#)&Tg`AF$IySJdlBuhWg8q?oBE}=M{`0$~24Kh_uPsb6n{I{I8V+0Q9I8WkS$CvHYl~KEX1EWF3nFkDp>_!G7YEDKu ztBGei=A5;|IzVgXM>zkCN#(MBC@eU>zovuC(+J+j&nI35H>1k34m8Xl{FS5O`ty1% z{Kk|HZ^1lk6CJhVecI}Y^Dr&NM@~&UK?p2R&8R7yGvsaZQ_IK$`L-a(RABqyeaHte zvv(4yZ2{j0SD2a|yOLLZ7)%5Gf=O8*EQ$fdg=ePqY(V9~)jn@vwS;;)A1bQ#qn1_DyQ}G3fzHMk4qhgF zxj~>SJOE)M{dft?>cFYIm60wcK9ojIrFI&hhk!k$reB|I;98T{UA~F`H z%l?yAh?dFI3i3pM1u3Qg&(g+(g0n!=QJkS)iLQ07Wrc>qk}-T#LGsC0ws7S_-{4%No9!A`f&?;?j^gf z{aA>FjR0ee&s0Fx-NfV%)#hN$$T4*LxLUZAIQ6$uj~st&M)iDNBAmwIQ<`=oP0r5X zglw6Kr0;ui$J;{Wv|5b8nrORQn{fRAhX!3A!uWS2{bxX$<&)6y2fY0(KTo}qgM6aC ze>EjmY(8b0KjlH;rh%lwf9%VV_2&vEE?Q5ou4-Bnlwzod$v7BVlsF`PJFU7{A~)x* zPhIqtvo}3(FxekH+(6CZeSJ;_|X_vpdIqsk786yL(jS51tCs}BeMV2#IJ!*TAPS$eJHJHvw&**Y3Um5RtDXLCEb z4780(e<$T?OaG8#XOKj|;X8c{y2Hd}#NO|t3CC-1O^jkd zEti~G$_koi{VH$NYRXBQ)BXGOr*TaE{#m6?kd%s3ZGL*w?eq4RLa}v+f^;#p*)pbR zbc8H=0U>**qD5!}m2MWmGcD&rWRJ|c?vDN4ZTS)l@e$vOLuB^q0qp{wC_J#$3;YjTp@!RDT)Z{m_oj?hMV@{?*@(a89X=CL> zzPeoLG&2shR5Z+M?md5zf_&n|xZg_L6ym0#S4ylYbsP(vJer#!UrO9p%KR`x2Les$ zh@->aUR?1t`&1l$=g;m=>eh4rt}HkapN?3#nArcCu57$1I&^ucppG2XH`A93h((oF z9w(BlT~Z8C zoYWMk;yVR(y=b@7iZvxOt{b8%=tb8zHj3!-D!iEeLK1II7*GfQl(cODhev!>csTA> z2|(9ITNV!Snmml@iaqqK7H88CfN*#Md)7C|Uv~_9Thpo3$THs6xI@iw%w7eO1?1i8 zxV9?N*6j{p(;OO_O!f`7FuRg`Z8nPkxK@VLDcc40ctMo5xNdLIVZ}4Ptn536;-C$;J0OKSTv_jKC zj?wa0feXWOq1BQL4={cd=Y2bQnCHVwM7LJ9i(*_*Nu0yja-LWLSk-NZSGBx1DSnL9 z13|FZuezb&3*!`p5>8-?rFAH#CDCzbLb4rWQt}P6Ows_vzM>Q!HQdIX`V#dKyCQbg z%iXN5EZ)iIV=sI0qFaj=Ks(pn+Eh#TARf?jujPhO9DjR?CO0UsiPMr_<7@Kxn*RZ|_wJM9wb!lO zk`~M>U1Tj4QJ#mxgV*ojNP?gsOfI_NjD{|RmL!juLjQ=d;EVbj08jGIvdDSP;5o`+ zApS=k9@`c==S2O$;NQsD@kC#Z#M4?8UqgLWYulHAImQG|W~6OT2(41l76dvwUpMoQ ztj-?;o|q9u&U0E9(tBlQMzs^Br(-P{yrOLQaXcW^avk{}3SP}X_aUnc>^Sb&n=Hs6 zHc4f9Rj=a$(wU=)0Bn24BH4OuL^?vOO>$qhIpErTOzgQIIqzGJM(eW%3V-#6z*nl= z39Rv5xGxnm(XMqP=V+j$;vcH1>KW*3bcfPcIt^O>7$n-qgGep#W90H*V4$B*_E990 zQCu!D+xD3m5>C*8B@kw*{8jX}awhK^QBAqn0m?BLs~6rt0YIBQ%ZvaXk_)n^9HY=T zvFNWhmJBlNFDO7iU3Bf+xRN6fY`2O!GKDCd-dA&$5EZ92NghVu0o2Fy%MvKa zxU7f9*Zd>h&9e&NB7- zd*Fit+F7#FOCfljw=JMB7oed*#@|RA@^t&K)7d)6ruun8_=yaS^6?m1ecXrE=%Ix$ zxr*OQ+ou|K>o}!l|Iz$#oUfcUEM$)Y@Em+r9X5vs55IWPIX)6@TR9p;6}Cz?pvFgv zN47urbiLaY{{d7>_vHI08leIIGp*_KMCSj|r9fllWd1K)ug~f~F$%!^-;=D~YC5jV ze*#ujav@@W1vx1a$P6VAQ#rjWct(PkBe8W*;__HpgvWep7p^aZjYyQ0mxA#>D|9!MRzc**%a}J zr{z)9ZsKoFl5<1%Emeq9BF!_uTz(2N=-pL{WojvDiOky^IalUa`tvB;L{h;>C+0u2 zNhhZ2g8!zSwrHrJiq}*#O@OJ8T7p6Ri6HU%bEPdLa6UpG&vuR?pHsRgtU~_aBmI^- zG+0tU^ZuujA`Lq_%Ejdv@oJdtwIdC@cfvsJ#ZU#;><{{MJ-x{w1xi6+0}gaRNFLHR zkw)ao;hqc6VO(7I6)TrsTR?SS5rs~vvoxzY!R8bV??}O{Wk`e!DQ!eX@vPFmjVaBj z0atX=Vuz~c?9WEwB9 z7CNchZ~_r~KNV+j8-T|V3;6Q@4$z!&1eU@^L2NP7`z>_EMneQA(F^!Y+P+R-B+R<+ zCOWi@1GOJe6xHgJAjr8km#@jNWHWuEL_C5;8IIz$A=C<2wahy~8U&udnR9)*nK}BV znj{umfbDc^kz~ScVX$os3ww?Dk!n=XUL1!C;LR!!2%T6#8Z^~yHPT!IE^PO2c;sjF zJ2YT+l=`-QGH>qsxyex!lS#*9kLIbMAH_wKaI%;J{rYP1gz~j*I5!dBYE2ki$y}af zUoNW)>6@(eci#Z_aTB(SrJ-RcUe4#M%a>EeyX6jtVlG-ZYrBL?aZNRLDwu}*XqKP) z5F@pQ;J7t*0^MnI@F0Cs}FlA#z!oCqQw2PmSEGYFpT5gIL(_aJY{meda5&)CU2 zx0lt4*+^-Dn1?R*$94$ac^HROWR2l^AZ+xMy(6tOux2!{nLF{q!s~mv4~EUCW&PB~ z(H+rJcOHgZnDw-eZE-{5aP}byz01V3 z73$rO12T01UTzYy0Fnh*24zzEMM=+dF`$y(bZgbK!h-_<{PUX`P2Br!?gpW3-Vs|W z+05>RV|55M6;UWWPh8*rLc_S*s_*w=GwXDLeV46{#ty8r{GBSP-8PC3(wqQ;ggvXi zNp0a08xwsJ_oVdLhe`2VEfwvkVS0m`e9;lUgpIuyKs*%!K*(d)Fe8DM>+Xs`VcUen z-YG5h&QW6pezTfqpc}t^Th}jaMD-Vz=tRS)A>3#qOuBTytxp#stK!htkz+jgG{_rR z`SEXBiAC5H>T%gw&=oMj&t}O1P%>~rw;=ca^TvGF5?uoGhmBuh4o@kNJW@~*r~)tP za>PoF)dI9n0nx7KOECUig4p^AH{|44*J1;5ce{IsS9z%;A9(Vei?=p81Pt^8;VRsk z)dgt}S^F3CZZKg>;YB5WnUb?7_nn5W*NPR~Xi&oYqf#5CEd*H6PCEOzMapEM!(5_Y zUU>{m98)f*yS>Ty9NBv?H$|P5O3(P6fSc8svD^i}0Br0}J)}9MK_#_8(#r(534V;! z@35fPQZ>9`cp3KjxFc3@kBxWwhJx2>8%HQ3ZuW1PV8P+}+H;v)>soXYGQleK>D8Mh&?qPBt+mkjG(lznF0FqldgvzK&T)&RMU1?a|pGIRj z_+EHBY--yZwX9?2S*B#!Qd;O#M#z++gkqwM+1$s^xnMcIrF%Xu7O(F%MYw4j9h)V2 zjYh`<>~j^ zZ-9XA&A*7utpCiPW&O7u=cf`jThcNv6bc9{Yf~&K6gwCQ>pugBtbfIq0zf%GU;Ggo zNLShh{H3{WtjAguqqv->o9_(QY)WBBl=o2Jih zs=$(#oc|Xt4%@$&*&v_g-#$_}p}Igp*#7wmu>EBa2Y`H*fBRtNg{lJsVf*LFv;CE3 z_`Km0Jth52(Q+~Uw-oK%r<(4LD4O>~RkNn95;V{KBdelniK=UkW*0}d-CJvRu&?(A5rj_{&tHw%$r!klk+WOxuwS`Jf-1oIXq2cy;gn|j%i|hhYuzR zy$WHtE8-{d-QzkPX^ro65Q)#VBYC4k)OA&P7Y$U49(7nMuMwetnwj z^fj^t`^`Z{v@a?kN5*6=`;woi&tY~*RHp4jF|{w_C-IRZZn%C zF!!PE%M4y@u#oKR+LT{o4m$lcI!wFwL{*8 z8}*800#WINj1Uu{-`~W$>@%Bt5KYvHP`UXuK&2`%NRx3wy>iK-t&;Ug0Wr!$l|3za zfOwoMnEhwzhe&eTpYuLmThY0X)5yR=oYU(K>Ye>NIf?`BN7W;)s!A7}W?CJ3+O0=| zZJxqQ!#ZbePl@?L2#nb_Q5O{?0&H3G60SQb^qNmlQdA$7jSm*(IWX+F;vX#|-n(m{ z2hY}ScOOE>kEg&L?<*e^alz{w4Bt7aD5rmC`#HAuqh2)e-X&1b9a@Hvm0<@+&S2vU zZ!*XFfsYXadyNJX<1o@U`v?$oPz5t&Dg;%yBHF4BnNL0~ar_ePfT#)lq##?nf7s+y zzbIV<$Bq92Hm{<*7URD;QzNb(EL-hS6WEHHdIFd|EB4}7`R=r)(Q05ydT!l&4NxU?3ybO^zv6kIB_Bt2zlh@Rjb|Z>|t991=lPi=1Y~@Ma0-tnKTppjK}^GMhf( z7($VXfTplLCpTp+e0+_wE^%Z$RtX>m@KycveFiC;6=>uyYB#vIk5|UFRS=F@*_s zm8@@Fafl~Gb)sQ-Fe**}ETq%R>A!*(+rRB7+h05SHvX}3uo8eX2nbHLe;ZP^zlQW} z{B5%uW@P~UkPw{g|ITCB|Ju>F@sC+NQv@(Ty`AxIL;40c_NrTkCY8gIqDuX`FJr1;TQ42j3BlQ<1*Qpix0 z-WTED=ISji#K_+(%YXH1PfpmW`@r`j8eRJhTL0+9dfp!@LHcw_bweGppUw5YDGru^ zzXUM^6$+g*%N}jp0l!J51f$%+Ibir%!qb^Iy%}ieIoE%GN)_?Eklxx^WxDe0wk3pp zDk3Kd<-T2f)SxPVOUZ$FN)`a^q~3@%y7H#dAr<7A1^>%`A%ea_&YvejXM9)7S;%*f zV71P|-v1(IlmpQg1AozadPAOlSk?)L=7fuaTxM%@fTW}w#ER&M5(hl_T1{^Ry-ez+ zLc8(`b(ObZA)fX~pla)c@5YNu=pdD2J0L)3U+1DCd9)#`(arcb1#RIhu?3KXpod#c zm&H1HH@+<(+(f@v&>7K${dRuDMCQ107y>wAB+K7= zh$xuW$vKBzYOd-`IH~88TsD`e-c+fj%tj4dfak`u^Om-{zwO(Gvo%jfl+;=-gf{48 zB}@%}2urb^ZY<}`jKPrCnFrPmsw19gia%G4s;1Pe&3W#{dH8s1>I!P=@_!CXFu@bc z{InG`-o?ieNa~P&0B4tEl6k}sl#_6|B}Bc~E2J6nQhd~OQk>WIV}3GHoApTC2CsS1 z62Lf9pF>tDHr#=MqwF9(H~ayKGvp#Lbjqe$C4%H@i*nCu^k9(0QsvTlJ(mMP==IitpTzfa zYAHWV;J%k=B{QjS`J5kJ#nkC#q0m0~JXl9Jul-~@C{ZC{Ij<_!(8`eBr`fu6{n<9C zSO}nzI5pgBKK+I8GgcWGW)vN*o1Y+jFLRw*;P6pK5nMr+1{Y*z8F3gBBtndg;5L1h zawuyv%hR0N4pSiy(VQoiu)idEFkDmcMKf9SRdr5I&YXssP;GVAYhFYH_cJQ-OwiQX z0-QCs{5)z+!^&aGL!BqoVaOrJk!tQSqj?;tlx#0A4{mc=vM~cVWVBH=HHsTCyvh}hM;ol3Jo7EebPt@D<3t5r;X|3F|QOzC>s>ndgikzjVNTOlD z4yU4~Qu10nd-DCbx}^rz%EK}wj^9wUNfIu!pq*m;Z00a)uB*ZOa}K`e3eEJ@d8WK5 z5sgXj`)E;4ImJyNSHIXZGuTZM)#nZ$-ve4zp0PD+S~X|Ekv?uLKO~WeOUy8x6;B2Y z8i?i&#(XOpv>zJo70@-pARqm7l1ha6;TmAt`;AN~0`U+|au_^~9wj4`E8XTLPSeTG zVCGA%-1D4L22oiGK$b=irDesCV46T9@aa~Wim98%Z_S=Qkm7cG4(zRD~l5aoga zlSkev>N;^d*k!Q@+>A3C!7J`7{Us#Te8q>@MQ+Ot?m?&8xLxk1ZaM<vyvevF#tNE zJ5{73fi4+R0qz3YAa1|tp**poNzB`#9g>*Ze93`!t5~5R*>*7sQ;r?Tr~ zlDXy%7}-q?e6Q{aJ5h`@Pq4PTnDa#7&SLlyjC)`dRi0YVrp>EY-1j~}fPi3Ck5j+H z-RtJjUDMCOVNQXuU^K&#ryH+}3+a)2G`&$XEmx*Zyw&a5(Gi^GC9+|T4zNJ>qfswY zQnJXltp-&t+KhV2$Gw+qY-Tq%@{3o`(d5>&+ar-w>X9sFb(o%OffrkhzPlg%U75k3 z#JP;<=fmUl6<)yG2@pH}i!|8(9ci%tf16ae{};IWHv0#-nqvrngL!lG|BgS{|HL0| zAp1f9EIQNwqCMYc|HK#|3&6)W4DFA9llF3Q{0&Rq#^0wDmfHc|q7sgOMhJQrBo>6B$}U`;@hpIYTiG_$YFi8#^v65sFjVRbK)%s z2GMm9VYz1 z++ENOUwM|hi!^+nLs|l+@_q-WlP&#ve|0!;O(D5V^dQMbJpS|curjHF`}z5qUAc|V zqS~pdUCPir;!sfHyc)(36A@_QS)f5sWPhYRIcvUkmh#K>=RSiuorm{TnK==nhptM< z)U1yywln#Ee~~-+Sgd#MvDY8U+yzR@at8&^1BsMQq9J61@G!Rp8*+l4s z*Ig`8^rk(2@|_^qi|oDH?M@Gr#y?@RM73C~)mZ5FPirplDp1KprXQ`(Uy>LPyO|7W zI_j>MYZ(tdh4*Igz*-QQmiUMil&jU9KK@1Iux7oc<0ch)?)x@U>gi1H=ZUZRW(LGZ$XWQd@F8oo$D;dMq>~0bHHW) z9!ba7Y$}l7n5k08XAEffHekGo@Vr=7*9Z8B1`>aEI5F{gl5XOD=MkP1qV5hY#TQaW z(Q2LWpS#Yv4Py$D4zl<@V$dEL-H|eCA#{wpC~6M+z=`q!;cVFl5;A_uWNc^sshr4) zNa}!=sKu4*)`V8piaQ~({d;S&QWAc6)|kD4{+mSrk*MV`JCy00+#uq{*7D|O{Z zI1$*U+4|v}i*KpJ83cCZa_Mf=(9wsBbtJdlyKO5Wn!z+cWqqo+#|X>lb0C(iU^V(= zPMU}II0u<(rJ4Js3MC9aH@>3A3_Kg-R{5Q^7;ujyo(4Ra7Uf3r^2ItxxFT9ic#j$< zZn88BrJ)nKuj@7!=X_kD;7gBu#KQYj>9~MZ%lMm`ZJaCLX%Gr;csB>%JTb(H^EcP{ zA?RM+X)BGMq6WiruG#u9Y{QDKS6KX0=(H&c-aX4ITr-14 zG_DO7t7>_GDvxzh0DO$o)b&lLvnBEkV6NzKi;|dipH2HcGV}uFP|)7dbNiXQ zh??!rzdl*DHw?PDwOxCR;8i{qM*I}-Dq+gbEA}OuB-fYw!;=?J{Jg0=uB;l3Fk{?R zg%VW!piRd0Vha4zpm%X$pI*b%N1t;SxRMmirPGH^bi!OVmYCp=z>C66TBPScRAh}?U>SxK;b-rGTmRJZ^5sq$t)K$aoD3yJ zg;o5%8*h8wYQve;(GR|j$_re9Aq*Q~+Q}0QombC-3A?9F--R!h|Cz{S;*J7sI1r`f zECm;_SDlp;a=@)8{2lJYE4Dd=R2V<-eGySYs|(528GeW1DFUBIMPR>Juv~@_V-e!A z@nHKVaWh(0!(Q?Bet+vFl;g2V& z8?#jf+JqS_52jz0$zN0j)=K?0ouF8BgWv=!dXPF)aMlz~Q8Gd<4Bu^&xsDJ3zav~V zDkMdLN6;5b;G2giZ5@?Dm~?Q0_2x)7V(FA~Bl3fE#cRs*r~jp!HG#vOu2ZnWddFYS#Skm$?O3OHoLc4YeDvA<%q)0{WdbJ#4z}AhAw9Vjx zfIJ%{SZxXB1&>iO(BOqQY5Zk<$5wXsd2?^}9R(j)!Rd^Q6<5YXg(<|+>pN#1{j1~e z#vX5o@nw7@%`Hsj6#7a5uVn9u)pC+%!>EhV^{xbClkAJ2emj5qlrIQ63MS&@ zSujtf_4(5YLmiK&E|q8Xgl(CTUQd|;Hf|!&*N!e%^ONlv#LdS4`Ff6j`+APQRfV_l zkEa~)17y6_2sr-j)j9ruUY-4a()YL7-|M{LNx1%x0_o^q4fV&j=A3XuQ8rhpn0ORO z$uKgiG)Rk_E9Gm!I9dxU$Kqcij#o#IE+95)O&1&DVBvS8tD9pZsqS`?uTFgfy-`X7 zgYZ;?<2saKMeXr2bUIu3*aC145jvlR^Ru7`d!_gtT7h$2yp+fEY4>AEeTMINwyn*7 zfuBOMA?XB9z7Pu-EWkU2#BlZvwg?*Mp%B6cJP|bf@On0gg?kzZrJ_W_H^F}I&4Wkh z^s9fMq5(0HJK{abZG9(8Ar<)38po$y=mH)l%Y{|kIRnRrsRM-hs+@}MtnNDTEds%V z`6_7s!$lzFEOyUI9Ur~|MdZ4=VnYpMId*LjN*#Xf#GH;@HmHryK+1k3=U~G1pd&$G zl6N9v_87OPieO%QAV+TK<~2#If1lfNf9R;G5oUswY{rX+%P_PNd1C5Uk{HZcvFASA zfzyPpj0tkqtZyh7T!UI|HJ9a-(#Mk(*WE}Vfn}gSU&zQ_`DWI+de$S#$-OZaK`ZDg zoA%Zh$L!-i3MvFLV&xLXm&nJUhMJn;TXd8ZGkDpI58uoax87spW{~e`TxiXaknVoG zS_VZ3#99WlgN@?mR{>Ru0(Cg@G4d6$YuYzQDErE4P@^XNH9cOgpDTNwCvs&TKEzX* z3hM*6cEo4O@ro145|B_P8tNo>gee^8;l*aPj;oeBfpW!)S5jo9p9X2{N zgGcuAcuKg)!$*y5hF?^0at;f=@tUCvVke2%&BzasquAK%t#th;ZmWnqk^a(-nmwp* z6DS>XGQ+UBlF-&`dPV5%=kGo~>6}T`Q8m*ak1XDUV#HM<;N;PtIz5P=HV~29+L?-P}Ct=;t3!l>Wa?H za=K|yEhf2TB`$3U#GuBm!)V8YQjTMA#nPrhKEicqSR3160pUqXOp`l}A&+~$@z;L0oScb?Lb;f!PVL&d#(fd@xg=dM9|6bYp4k=SkX&e+B`wJ}mzn zzEy}0AV9(>r2g`z)uPmN(>WFyS;@wEp-5d)@`)}C4O8Xj_$ZN}TLR&W{wt_t%^425 znrk?bq(SXu#zlit^vIH@olDFgH)9splj7qI7cXDAHa+sLEX6G1Zf?fKe()q$u9+On z5?)$|2~9Y3GiSsnkP)%nQI|E4*grc}XXYWITTA~A0I5xwfnSGNHy7VYj^g~67)R&OGnkeg3KYLa7>b&!_zCu>k-b8;BHsl?d`Fj3ijm1?D z=pcP}%W{7LiSo!8NRv*|k5O4{yYz${6rh$Nb%^?tPj;K9$yHe)y!>9+i`G4&>;rv4fBMVZage8ICeEalP6@Fv1`b$dsfuG;W+0oR{2F?xaOSHaB zHxowh`Xe>c-4q|2ObXqgpce{$SQiF(+p*ZZbI)k4%Ny?Ewm#L#GrEHuICh`zd6@vP z*8-;qp852ZB26>AeX4A~Bb(AsF1sxI$CPZ=1(nqBpf?S+*4Rk$uMJ*B27QKuAp2b) zWUzYdps}_5q{v~pOdo3`wGM1&{780$nYebN(SA@j{WR^jhBM+wkqFt`;^w*Bb3C2- z2*&QV@*rAw5fD#+R)Yhn#3||K0Az$hnNtr%4|{#vvszA3+xDxYv~>#(bww2K)Z|e= zD?D+~oXuE#rzndIsp5)C$SNW7I8TJw<9%tWaSYa1=0n}&s#rPq$PxRL7D=M@!wIw$ ztrG$ocxJq`Qf4|_r3*nr9`G?-dKWiYy0>+?_ zCRlGnChvAG2ix7WhV=eh-~d;W}=92Qs8R2Dw;mom)nEs!pF1RcOS1{4N!zR z{TjIr?+84mUIs>11c7Y7JSXsw_CMxTib{?u@4G?=>q9DyM=7M`w71bH`Y0l7$lt6$;ep7ikjEWD|6Z6WH5$H4vAOp13 z{^C?ktUNg2t}LUhEOhFGMi@Jbp<{YNh}p(>XeeQB^^0J`tV=Qyk5*39lelU&sJ1z= ztJgtHQzb!)-x|6TvGh53}IAW_o|{alU=?Gp%+@k#|~h;sz1LPs1?wr|o2_ql}iL5!wPS zx+N2y!?v2b!LK~D?uI~_hJpiee!AgniOU^`rR!{J-n=utRAsObpSj6kR>s>!m8)ooKK-UCPNP|^ZZucsB z#rA22eb9JW)(a~w_`{z3*;|)EH$WUE-;G(IM`&uTKZxp7MH+uA)<;m26J`?m+qI7} z`nUN8e4^aP$>%hp&I2*F7p}HLKl4UlWHmS%t{D!8!_&L^TXRbKL$rQKoq1UbS#p_* zL((jH^X@z#LmpM?)DyID*8wO{fcvhHED;^;BTI1avT+J}#fAfoB&F>JwIpP)lgsC7 zp}eFSYUr^mstKrNuUwIu>zf&?oo`XrjZdf$@2ifPUD&tP|S}Q_|YY!vTk z=#r#9gj@O^G_?IH_6% zv)|OjJ%q;$+>_2NY%@V8tpC1_koJQGXX;CvH?!OR4>sq)0hf+`X+*ibM>-Ry`Fh1W zXLod6BTqTEdAagn1KO%leJ-Du_o?vKjthOTX@(IOUAT6bjZ}tA8fw<*RVnb^QFZ#b z6?z*n9mp*i0@gnTB0cmy+utpqd3XMOIcZz3xWda&rgQT1ipZI0h~kda)KPv1^s5qGk~J*Ev>qz;P^tC$QXuxx5#sDfkD zzO=Ok#~$}sVExDzHx$HrYrN=Y{Vd6UgI|5&MCCXLZxM5Ajn#kkYl0TR8jd$rY^NV} zO*a!N4~m|7KInFnx#{@6zS|4V2-F)NcP2h^ApU;!S}zJ{hzPO!qng9Lix__MpmzY3 z4PyH)HrIXG9}aw%Ba0*}1S#ob?QWcv8QUlAvdJF+Lh4dO>ir6&DpsdnJv7P))lp=i zjXlhs(Bf59O;VL+n8T#Ex>g(%mdXy4_BB$T!F-vMEQF4C3}6hW>uzAU^u;2R%co+# zCme~Mu=4k&$H-+)1Mvl@ zHmNWGe+kQt?;FRIBb>%IYK4BTQk#sMIVhr!Ssen@K$DK*!i6;1B z(#92mp_uFLqv~R_Rf1#`Rc$-SF6cq;VWJ>PT<{#2rTE7y`fuY>^$VVT3LiO{?t5jBGL6E=xJXdu~U22 zEMuQ(pp(`Tkr`*-fqp5-I5TGcaI29mvyX7NpfXusI_bFLA}%7_p@X6 zOrlr(iY4|@GDDWdTqw0?>-}?dXRBQm?t`K^x16qmg;g2R2Ywu+=w`XSiBbZRU?II0 zAQWS%CJjp)Pv2#x9T#Qg2&cI{-j_to@t(5SCN65k&DTIEd_Fu~uhmh)?-rSfen8jr zCx5KxAe1V(SvZNa1M2;;2Z6=Bo5EKAN0psMj3EAQ(-G@Y0Vy?Le(AD}q`=w=B`24W zGBY3Rms~h#Z+4idFt}_xnT^W%Zxk*zub!@8S z*PR-w9{Oof*p!lpxV7;g>tH_=`@H_X{{Ie||C50H?eYGyb}E$tuz_+>(@ZEo-Wo%` zdxp%r=qxXi<_Okx{4(s!SN=(HIv35=Ddqd?D47kzBLBuGpgBQMouvQr%51my<}sEj ziwlPeDLEiVo+`WX*CXaxFmkjs8j>(=nv++K|Mk1TVyu1$l08cBctT_oRU%}27ZUDm z%Gl2mjsnbs*Q{XQd^Lf_!^*TwKigE`3X)nKQvsJ%wjUSVuz}W{F#Ahl6ryK2@aLVq zW1O8(j;8#?YDo73@s3iEj&eApX|fJJHp`~-s%_`b0RA1Z2vmNb(TX3w_g1W){GOaf zNiS+TB_V__@HtpIG;WgLkqhWV%2CeS8nSD@KkXU;A+Dm5lq-O+!@+)i53d=Jv4XQ0 znV$MB!M(4f&$ND&c~KnB!!=eN`}xPk~Y1~=!d8Ox==t|_b2)TKXVFS>%tIC+BD4*i-~7YWGy*-z}-RKSq+nQJ(HxV3A{%ZGdvE>|tl zXiBnT#A)3xu+vcoJC=?${pWcQ?mfYz35rg{##|h40#QbSTpie{2fVEJ1h}5Cp|4~r z8Im|eEg>NgEH_}B&;=fK<%YQvylh!)Gqbz^k#J~sFEN$Ua`DlduYI~b{ELz|99lpu zGKd-*x=1~O{!{z(%D0|JK3Wu8K;hL=DwVD_U6^>~V2o3-6I(mMmpq~?9)YyZ67xg3 zC?e3Ls()WW#B)lS;U?%KRq0sSedU31fL(;wOq!9 zbd`KW%;m|Kw(-H7y9&=A_)_xO%m?^LvZC?=I=M#n*n)&1_MhT_Z>_|bw4eJJ{USph zP(%-j`>jq*#&n#AP#+GKjnIN5Uivk&7$v=dm~b9f0i5FoYCv+Lt#I>6?_ig(Ak&t- zHPu_@GZWD+SG)bBdz1m=O>z3K%`fWITFA9_IL>iTZpKAu;&veKWa zzlmTCo3zW59`MUeb?$XCLcS9Q{(Y?eo#Ar*;RXNwSaJV}96)a}te7ChY5*HS9}kH2 z^Z4TP$51^#YETuMOGNfKhP7ZzrW|Szi_(U|ry~`u@AvzZGCP ze=ETLE*iXze-eJ@dH^&OV(-)8&yD@(NdbjYy6it|fDV}f|7Mha(|P@GmA^d4z*Ybe z1j1qBnn|ugZe|Y}@5MwFKjSQqn@g#`I*Vs;UwQWxI z1@S>rsTzmq$~WIr&8~c>z6gaRF=htV$!3QjOFJczh*6VA#-G>jP-oly8f6Ol#u_NO z;9!=S=(g4CsdJCLXH7mo{Q9NpTHQnASHt4|4BYDMmhRI#@Nzx>zu(2b4a=LL&;N_v zVq^Xv&3ewa>EBfGU>qRdRscFMLPahr_082>((bC}2fN)f1zpu!aH`F^%$g}FG)23i zt@tc1MXNp@@j$1zk*bxTEJSe!QCG2<)? zCTKB$X9SIir1aBKHt?DZLZ%U*a-X3~z}MmXZ1XM%Vwln0ND`srNq`6$X8U^zG@v4X z5cXBE!npEAI|^NHxQjm~+4@%@CyLoOXbIvAe=jt~)I`LR+{h+o;9U{%B$puZJybu#sr1L0o>I1ALlJwNUiG2 z6=sZ!izJuT-0kk8&QpRJ6r>nS9{!W5yq-Fto~b=~61VUjc8lJR;D9~+ zqDRH+Ok8?ZI7BHGHr(S&ip{k6=o}(*Itz)>g=o))p-NV%Y3tetqD-`Lu3=I6b>awd zQTb~TR4?S0cXOQdi+>-%e;c9Sas(W2ZL|NGpf>?$W{_hSpcuHdcpiBKBy3#yr1G`> zr}D{^=ZoV@em$k0u^qFK$`zA1gi-gmVLlKO?KI;2T*RkclI76r&am1y_1uN5SwCjG zK~r*Ux-0b}Vc)(v%Nk+lvs6=lBaaS{!X^(X@!}N?E1e)En~V3{A@T zgm+l17XGRoPMtu^R@D4m;m(v{vh8SV=QfzY&E<0mA`}jIEJ$H{u$nZH#QFF}1JpT` z?>kz*X2Ze})J}U!;>B_;U}}GmRM`v9sQ{NihSt*O>gmq7##lhonb<%nZFZ zc8cuxmKW8CS**_=WOTbSc~`ZG9D+oHq8dz7tT!o!5q_LMrzFPiSzVZ$1floi)uErk zA9|i|p4Ry@StVn9h~4V2!)ui0!W)9@ zg^w2!TcP7G5QnSL?vcgZpt5Ezy-iHlX{O{_)E);fExW^s4C;?U`$~IwHzetr?sdov z8$>aZ0w`ez=>?`O?b!QSfB6cxp_$Nx=fpW z>qO0{6q-P2wS%A>N5kc0|75#X*Hij$bq^4fA^_#zs9UZ#JqAN@Kmh1L8UXi4j{*FR z&G14IfD4@0K)52qrl{l86YYSC=MeYfib#b!3HR}#0BxzyC=*jtp3i@FkvbF}_SMC( zp!Z>EVs+YeGz)s*%@I5oAvWmnmgFGa3L?g5n1!QuBj4%H?Nb_@? z?FcWaA-=Bx-(FvE?1M+jMtcXdtY}S$~clDSxGoL%<$UmRn10+)2|x2jd{RoN^_E4eyhSmb}*RYYeVlRCPO>5!+=%zdG( zZv7-*pD;3`q4<%OGzl2+*r<3Aqv@0}2$a4VUvTd(Po@=TViF#OawQVSk@LO)?3(#> zx4x(0x4FYvrz8sxrwd}jzDh!^Ney~HIR9g z%CO=)DR{O@op6v=9I}4iA;kXDemx7H4|yE>xA6kcZ=EXxJjF+BYuO5EGdLUah3a3U z%d_n@;NCvW{lvERK+o;z^tFKjl5yXBg+N#v2XaI5$e!XDS?kS2gm+Dv(xfZ%P$-;# z4L+9JYCcGSiQcY|>wA2uuPiLk1-3{T?q$07A0IKzYhqS5gWbJ7jtfZ)*GY^|g}Afp zoHTfBG&AIp%(Fd+NLgzKr}PUh^bF$=5QfpHKn2dj_ITSfXA84+*8Lmv(>vo~FqO`l zgrn_!Hx5FN2$SC8HJ?6aW7w91INPFGRPKJvxc68Z1v>-J6(9QX&4YEvjs3umN#zZ0 z7YqkIumV=Ka_{hL#Lr#B06P3N(=Xx&s~T>eo@d>u$Uu621Jb-|)9UGP9xx%S{5aPO zb@u9x*~2co>Q4F6xiJIJP{Bs97s#%4{)3*qzS;Tk$+KKLwy!D2ATUJ$2G~EVj$ChY zEpI`01jO%yKig_7ZwF^103u+tCWAoYiU?T4_c#){I1+G=$v_ei8f}=W)R5)VTN{g% zG+Q^M?WW!v=rRB2SSqKT%i6;@Z7|LYK3dv}PwX>hO?NZ{(KWRGxgWqfvsG~;+0(5I z)6`7^XuO9x->^CycI4?YapvB<<-USdL)$hyMyp^Soj>{z#ZS3@YXh{+0nmlP+hdEq z_FUsp%raazVajcR^T7UuHI#6|A%Ke5ga$BmC23FMU{9eVaDLlmZU!GS94R;dCNo%w zlQC93Z#STEw$atl&Fz<7;k4mIOEJ@gPO*{p-Q7=DV-%LXA%~g4o2%2_Pl(DM7x2>9 z>fuckvpvBg0)olTG6h=VhEB3*a%GHONVJ!D)#z%}ebG2m)g&B#1LPssupV+~nTsK7 z2NR5$BImousUnxW2+OJMNUinR=p|gal^s-At0WwwL`@yqD~gp`Hp^MfvXvZvXmxVL zLT2moR?0ck>9B(Xiw`!@vSn0!s!905St-jfXMgiH3do=kT92k~2rd-U zy{RV55*s^=A3vN!VXJ^|+YX~KzohP#)h zVoU!C_x8O>#X z;zMT`j9)V+PIBaQD7*mKaD??PZaTic2a4K4*JcG?EHM5G!u0*N@<*282R8DbgD)tO zG>?gMTT&lwXqWm%qX`OH62JC(MX=zvmeBN-eif+kg_Z3w^ZsIbosDwd$aly z-OJ^rbpnLmoFq4Qu9L_-Sepr^otLQA@|S8|EBd0B^+o6u@7Gi~{15?;Q5z8yBgH;z z*sYgMuwNw4ZhQ1{44rN;n#~PxE@j#LbD#d{x$x1M`suxJst9l4&AyJrv%TYp10liD znuLV>1D}SMMkj*-8T*f36W(6^vT=!|aTAxMgK}WujJesdhAm3Rud&?)ycsw9Z->ML zE)hz|{Z!0(TZ#2atH~Kl?D9P4u6@uRM6-8u12~yWC4_+V?}j6sOIXYj`!?l3Aa4n7 zylmAnOX>Eg%!sE33o)M|jPIWD8qm88Q(nfLm&S-?YXoQnKq$4Y^5-`EOd#CNTfR{n zhyW~M3qeDFHG*)$d9_q!+Yd^#hbQHm8dck)v)@yns5?pw&E8Tj)ICYH4SR*|T9eZ~ zFqknYgYARF(>W)KzdEjRYV9vr?sr+Jp}kMYMw*AF+^MG=*ozq@U9p&kVi4$W-``U} z2K(`N_xOu+M^bICI}yG497{gYpiwn1{Fd$l%vJ+Mp4PVYgw!^X=Sa^6-ucY_9pC06 zc!mwld$*M3)nA7VrR`v}qh0WStQ=@a@hx8Zhh7yI)BmRr9-Z}nn)ZLs{!tm?<^WYr z0X_gfg^>?euQs?WS^K*{FMec2_J0R4lw%V~J|rW3G1LBaoSa-+on_xvse@hYVr|%I z?AiXs33C$Xl_aH?P0B(|FQWTCZH&mwzc&dh&R%}dE2uKgf{U2cB0|H#kuWgag;Kuj zz@0LqXR~ZIl;UnF-M8C*nSYvu<|=k zy3VOQ_Hzw9Oma=n=lhH}b6*8y?{9VlY#5XlNsSTj-|=;a-z~rigrT)=BGvBcFBlR5 zKbHg*^ic=HufgDDxZI#BbT^)D=M&sGU=2;Ew!Xt;yt7X+#*V9PX=v|*$2;E4o6PX% zk}|-bDasDG>gn#1w2X=qj}$|NHf}N#aaDP~1+Eh92=Ej%>1NN%DDjv$B*K$^o3T^6WHo zYQrgi-f|j8sZ=^{>PqZj*X|+9+D3KmTm^W%%aKj>O9}D<|EZ%#BHwT>6P96IaT-~| zawspRq@IChNk#?kQw6yLjx(ybWM({DvZ`}5MZc0ZL5a;IbX2Wt8>@v?Q^H4(gzC@6 zLMpmYvpRBmJa-EwK_+f`SMif0of+lM-8eQFew~^xpANAg)7dv9hERUEU9RtRr5Z%U1O3B92+4wa{>X*J5$e4zO+wU``T;G96ivq(A+#3*_gOz_E4 z0U~$_orbg{`BcMxaeJ@__Sw>peqrMDY+7voso*T|!mnH%^oqJpKy@sr(_eSE6-W`& zb50+2e`Ud7V zYfUl;V1GfpEL@9M#!(srsJD+su(1LTq*2QWr-a z%c~$pm4Bd*)i(@Wnx_o|ZJi8d3_B>$9R|@RoT8o{?hNWU4eHK;kL*n$J$+32P+~Sd znnSNplza-C!^M#dDbXy`nY0IcieYABvONTM1ot3fIH~O`S_XsShkRqb?}{?68(K)y z7w-*2_-Q!%9;j>qlWtdp2(m&lqBM~QU#H}S)7J5?12Veu2+3TiVjAH*dCqj`2aH85 zNP)hQ@IduLY$hYD3WiUGN`I;Gb`>{nK&cKOv4`|Q^9Kx)E`XRDaK`2m)j%_WVuOn(_0 zcL5@$bi2dw#kzW5QSo?IH^e2*C0?zj{w(%k}Vmek)Yb-KzD~=`K zPA3)^rVJN`y%bs%xdz0(8)+@QnLFgFt0h=@_LnkZU^8Auv~z=`I;ZwstXSaCH>UNa zHKAX2CVB0&M0U?&%+$Zge5ei3j5|_-oSu+Z*Ru##v*O*fYz2F>Sz5B_0}8L3CuuY4 zyewLK7|bJ#&iiCX#oa}zn7=y^a731#iC&=3%9>Xd5QPQn{n+AHo4jTePXCDX$|l4V zbpbkD0Hi_pZ#!U!Ie@+`0*p9K&-0gR*mk!{DT?7lwD?(z(o*7;WgAMz7N zV(k;R&ghS6(jAM4h$>#Zul3EI^>P1;um4$vzSesaBkt_Y8xwE<%r+@%KsHmovG3sF1s z!7axuSCR_>^4|=@J)MA4;WX^(jiwZa8VmjPQ`>LoNjo3fRV7^O@VGi@9*eZFlh%1UhEd>h$Z0gRC7 zh`M2Ks(3W|#mO63M_Co)uN+|S!fw;hovet*ZsXdGG1sT8qr#j^#!x zrWk7(Vk2nG{L;9eW#Gv<;^9xMmHTh+>Lu>Lssy>m$VgUXiY2Gx=sJ^7mtj`QpAC!U zv>@tGYIG8vLuEkoclsHe@L^~RGjY48&JMru!#DX92If=gQ4~g~`&& zoF}C|Qf6AXh@#Kq+8}8HT7LVlD{C;>nGM3_ioIcTXuU%E>mjOiH8qnjvXnB}gg-f8%OC6SOXLOd^As ziQ47*#M%jF>{#rgg0>gnrZnfuq7P=_Gg?%{rpGy$tEiP|MDO@bi9*RW--^jLUz$oN zbxRui2*>g=Kg$!MNP1HTXNFyHUXcu9Iglw@m*!*&RFYQTttjvr&5dx^B74EyI0gbi z%37Rg+e=P6=6j~^2=kUEbcL^Q0_ln}>&tabP~?__0=d}+8vr^nKq}7_&#FqPlt!&o zr%$>z)@Uu38^^d}M;tU(DcLRx2$piVj;lz9O9QwV$vZE#>N2Z+5K-K0AYTX2gW(I< zxlSNe9m(O0$$?kXrRSm%>>0i5<%9{Hc|rx*ZUAt>yg;EF03&$pu=Vcw6l_I|Eo0El z27rWxIM^=KUjk;@JcL|q$UkIE?j`&1tPR! z2kgK1@t-AWt~b5Uw|w_cm(82R=KpMp{GR=t1cMCuVKG3Tw*V->ndw+-lTNL?gKGZy zMtUY39Fx#`?xW2Z)zzK(v*>E;UZ=1+LA1lzTlX>ISMJNfZeV7tPgl~f!x3W(>0lzq z&_D?x{FDv1HU{sFDt!Gk$f>C1KTZmfTIc(H)oXQ#C z-<_o;DSYk88FR-5p2YW>I0HO)EZO8^^jx_*`n(Zysn#eTI#BMtp(HArOKjBJqQ*XH zr0>NQ1gC#=#L6RtSD0P<@~nDNNJr6UDBsVV6OvD9Nffy?eN@8~gbw8GTMH9s{`w_6 z)^;3vI4qX=5~jYhnuG`t3e&fVJ4fYaj)-0(kJw=#r~EAksGXeE&0e-W5K!k?{-vsd z3Lvq+-T6_cJB;|&VPx^`|7U<3?u`}i{vW>1IXJWB-S@F4wr$(CZA@&NZ*1F{*tYG7 zZF7Q&CQfelKKtBr>vwA3zgDm6s(!m_z5R6egYU;FC_Cr`O5}P4O{}o~Y@MHm1xkRO zk8@ys@+`wU#+hFZf8=Z?TN>YHvgy+H{Y`u+XiI|GJM4_)BMflXXM#yX+XoE(^aiDIEv&L5W zCcdk6O>2y9r%?h!>h!Q&b-S(!m;1IkT5nMcy`-Zr!UxAu;tF^vLk8+v*Wr+LHGAR- zjn9>lx5>gEEmVj@Fp|`L4&}Dzr~UKu1qKEBA+tQ5UKa)jFCsvX0l%kW(*l7)RhGyl zaG`(>8*HKEP8x`z)MAvlx&ZZuy2HhW+BWrBg&KLg4r_bo_^oTpq19~kqaMqPi;v5; z>@;-3yd4zgDq3Dt)s^_4o!l&_oz0 z)S#M?y0QU?D>Mkxk16i5n|HMoxdjo>X8R)Kkgb-7m>&(GR+C=0UD1_jQ?FB*fLAoQb|{b2{iY|8KQUI)aL@f5>uS7Aft zbm;zQu_^{?XzD+XP&w(`GY1&|`Qtc9-?1GnQeeHA?9exBD+fDue6ahWFy zZ_fnaoYr7Zi^U!rv8+&m;VE*PRV_rH^)yZ!v!~XC0@7RYPhz*mTPZ1edclF<5BJr# zJgKr0+I-?r74(q_sQ2CJgQjgguie~{BT_4#xIMLBU}u7LLOZpoN3WYigP?|2)@QFQ zsv0QiEyA_(Wj%2xiQOAH!Noi+(}A38H_h$<^BC{7w;c24JNhIpU&A(GY-hI5s?$~k zgHi&AQR$AL0B zEjlB`-v&ecX#<*12VIN*V$&pVnG}uYF#sndct_T71{~ZOKne!_?`9GTj+kg59zIy+v6##Jj zZx&*V`nCPOIO6-X0h4ks>HMC@$_V?Z3o>-KzKdKIxh{>GWJOMiX`#0NS~ff4<+qy~t+pgKXAD(e zqboV6Cv4zArla}P+lH`od}!lR_Q#TAd(X{z+<>E37Ol20JA^(w{7f8ChhXT*)k*|n z7gPuUc^4TWsR&PMob8EOt;e%vXffXyZ@bEk*Gpj*Br^!#^Wtyw5+FZY;2mX(+7CX? z;9&x2YU%mNx=%O=5#L&@XLiWO%vXL}810x?>ahL3vUK!jA4WU?Z;A<}0CECiI8Z2& z1QOKjhB&ApEP}j`No|bt6lTS2MKc(~9z_U0l@yRM$6igX-B1vX<7Kttqgd6x9|@yo z8z$B*2aCB-CB)53+pb?y8Dl5{X~$f%9X|q)PC%-Rw7Y&xIJ#O;1j9Sdzuhv?q zmdh)pDRHr0%uQzBc5H2$fS9sY_bP2mcftE@X;X=)k12^gk&w2Fv*AbBTxck2naWng z@c?}PIAnH^q`$=Dc9<8jYu3o*w9hVkdigL|yRbHO@Az?iwJ>w1^LT&uftON3#xwwU z|AR#ayYtv9NZ6%1OkR+U0$@%MmTe%Nq2Q93l)5@8tfYKn2gZqA;ipsmqmh6!@hkMv z;hQngzi!Wi5v@Jf#wK9KXHhNdnpw z_!Hac7={&1H(1(?z>aXrKJ^xs)D}G25Y@67Vq8EA%bnaz+Fr-@*AEc@Z2!XG zE6ygek*LN_3ciTnrDm5RaT9;@yJB|z&1p@Gh@|aj2!PBN(9}ly0T~7^2f-rMdQ{_( zGypO(k-|gwL`T3+P?(`j4~yCe`HSlc^Ig?6)Xno#D8`xee?4=`k1(qM5&fZd zy$BNc%Blc0Yxzu&jYgl_11Lb}lL54LjP8b*Qx8EC$R<^9K|H)@&r}3aKW85~-8mO!9f3>2j2+;z|~CC1PXM5Yf!T4g7K_(!5oIk(w;RP0EI$ zjo9yOrOs6AJ$Yk`LG7XqBC~Elyy>WJe0CsWuXbNHuyZ7y39ADH7)E{%1c%_$!ALx7 zJUIkTXm;#+UMnlpD&_jd;t*x+R18a%ZLw&qQ{9wafKcS|`lk1^e@=3Mit;`8DD+bW}e!rm!9c8lEOf&_hayuL(*}juQa@)B4*_y)iwG zI`U(F*y{3eY|IPReY>+qHb?o701a}8sBF1fSvdA%XG>9a2FQA=kCr+ZxR51Xo$*|j z?;5KCDj`e1TonEkMJQ!EObA0R_c5+Iw%74(xaH&H+BUpzGJbde;Z-B2UTcl8*jH}C zcCu;{{58L0{wS`s05(RzYB)vs*UXd=u^z5gGBIhrz)^mf>*RZk85gUS^eLiEHBWd= z`|GJe$U`sv!W}(!@tPls->>|GqX`-m66F0gdp6i7!3S$OIQD&5!|yuz@UQF8YTpqn z+SRpYu+hAjZfu!*YIv-SPcX?zIwSlT*GZ{xk*4 z)QR?!*W0JPO6`-U%Z~cdq;o^hU<|yd=>{7*rv&tZs~wm7EW5?tFpjAoMd-7xO43S; ztO6ZWX$9T~uWx|1Z%0WBVfzWOax*GIaUrN`F&D%JJ?z7o>Tl*^jh$%@U9B?Ov!zWI zJ#)^=s7*E%!=b6+j5JmmCR)S`$Z=v~dFJkUn>VyOX0ys;s;c3WQmd@$d4M|CTUrA_ z$@K^;sz{W#uPkFB9NwapP<6|I(d6aZWOijc1&X9CJ9EI%MKNaSM%pZO<%6h%E2Iz` z^7>9j(5$mo)daP~X=IP?hmbxhIQkaJJB5-=eL^y8Gc$9kwGtXJ&JGzeOqNkOJ_aO+ zto8YgC$Upm9znGjusi9|8N2Ru9Gy|zXW*a>{0Id9oJ|rov}IOvp_Rn%{16o{LaP}A z`4jyyGnubku>#f=Hl;H`?h0{@R)D}}L(OoB^l%cTs;J#cKIl`Qi|vWF3&|l3^-UE` zZpPM2(8zOXxf)Ne85J$^&TbubiB%ZrV>=1_K#9i(js-GBr{hF zer{Q$Pf z(kpVsUZ3}bQiZlrMG2P6i?$2&lfy-b8#Y~3?hV;*CEU5gWPZz_`7{tc!O@*H9M*B< zD|k!-`_7yKCAMmQXi+VBGWYCxPvhHh#D^xx)3&xFFBER&N@LtiAF>A? zT-5;V8`}@Qm$pS5wk{dFtGZ;v4L<#z#Og1`M*_%Q0|BgNBRI|c+j+j(F|E9qL$?&2 zGjaHaZ*NbkE4}^G>LWqU0Gn>65NB5T=N#MIttBI-3_XKrBF%z<>_luJ3preFHth~t zm?n$&WZI=gRr~U_=MmBlXz8Sn%=}lgPC5Y7tfQO*@-<~sEI#oINlCW4bVE_6`f2Xn z<5`E~?sXi#nMx`_tN>yQ2hA;-UBm&p@Zq}C!Yo1_8>a z{;vBCN@LWA{?f(z4+V|CdjHnfnz)Ce1p!cv@pdF@Rl}cC8SKqSYCa(%WLhf z4ap!9acBw|MFd-i&+L_Fmmc^%_vpvhXNBmO#cTZXeT$*#he9KD%bmHQiccZbZ?_U_ zmbEDpC!nf-|1M>WdosPWFZwo6iqzuo+D%>Qsqglpl`p0zf~>ssCs#t_aw}*SoE1Ql zi1RWw@@rT-G7#V0hDRJx?IhW+)=Gs0Q^nSa#4%pQy$hYETXR8u(${W%(R+m^;LcqM zJ4?c3le3%W-Qk%Ae1Wi#X$l61Y-*xGyU(ZCBEn18eK~Vz5AfmfJD1Z>N3Bv>kbHN}p)7g%Ic`SEf^OD4-{vB^gV62<`Nj=GAEgI^P>Q58j;K&#f;`4-whuP&W~ zd&rHmKrW<9;Q^c-(*$5vvT}dqumZZ{Ex%dLFp5|#S$lyRJK3EAf5*6IUukDn&TdRw zKjt?lwW2z1Q6LzSPM&D_6dnV3(SRGpTg!0(Rv?nnul>t{77@rg9!VGQ=j<{Cn!`H! z=)uI1`uE`C8U|Ph3z+u4h!BG9JbJ2SuLILLbI&~EPVhs}Kb~_oR&Q=rE z{$#g~n`$xVF+-1a|FDvJZQe;L7>*GI}!3z#;TJzjQT_K0yQMeHF!h^vMaA<-1!qH3L<3|}=KyRlHWxw6bu0xlX=CcpoNPKwbJ zzFM_whIZAgV%v(GfSfJWbie4am`mu->T7pdCK&j0X_D*{F^jds0>1AOEujQ}EcnyxZ~hpnS(7YhVa=O=_KuJ&t0Ntbd%l3zpm0ZRadJ5Wozn}WZ)|4 zqOK+YIXI|oJ>IUU@^SC{1vf{%aOk_nkexvYii>g_n!aUuie|81BH8|V!$x{6^~@(y ziU_y14c~7)57o*5CblSe1~05fYT;~{Awc^>lfQ9DK3V8suL7uQkmy(5%B3wm777!b-u!w`BTI#2 z7)PSLb-MqOh>0^eiOY{k&YuEAud1?pQx~uMTJm?&6xQ6)Zef`JiKziLn+eo2RklBu zu(=xDkv%}Y?uPy-?^{vM`_|je=Lxt)&~@>r_{Z@5dyt3e?;y`t64h7Z?*fR#H>fFK zKswIKADcEpG^!)~;awLm49!4Br!9^%jQ)aMr2ay9hifRoQRKd%QffA7kGpOD3pkkPm2GN3b7%o{dv zJqW*Bs84dQC+P;EkQ5{O_pOl&4YDpQ6u$eFokvid!LYZrO@ce{QU}!RX_NEHh?-@P zg6uh^Fj^vWfKA@S6EK>P9j(1BwStR*4^C9O5?jK2YDm_gRMF@3*@8!9?`2gC115!y zh7XMV+F%=l$S$W1`Zr9faQpVUD+f$W6B_DVKcb!G7w^R_B&-e#@0>ZHc(~>V^jwyu zp4TR>JQGa^C`DeokR3#xHeo@e(vVkBYp(0dm!a(C$jU&iwT+O$&E{S@*AcbVeW1s& z`SJD2W+Vq(Ae)$(a^#6-enZjU0;H0X;4jE+6^QNEbTE^&7@$a${V3ca>j+spi(SpaBifRJ6u z%DN!4iGqb{sP2`>TI81|%lnuUBzr*aA}Q`bGUPzulY#A&atqRtx@e0mOyi*|u1FX| zy=ig5>(!2Jk1#~-oE)Q^A2#wA%>{Sz5s`G_JFgQJiga%|iqV-QBXuGioj}Zyt!UYav^%F| zyeJ>3I+w-yShQ$eVsB8)g?C$XOl5{r6Ur$&DBO?~Q;crECu<0V5o2uxU{INID``^9 zc%JTV4=$9qoWe6g1yfNx-FSyy9XW?KoZLK8QO73WemlWZsK$SD%5YV7v?~F2^ zbfAq2lMG|QZ1p-SccBb$Hl@?2j;`iX?s=}z_?2?$&?dCec=EAbr-+Q@ey+O)WSSSr zVU}T*Y^ie5W~CJWNNcVbYASK%D)H5hbDHnR8Rsd7(M}UL66Uo?yZlfh)nYIJH@|#p zn=&4f@taZ7mTxc6k)!;Z^xRZ{yG7Yd`km`nANs?nA*zJ{!*8x0JCUXtED^=K4#Q8! z)gDgpvB7ifN(dxsZfXv7y2!7Wta4WTr(wMtSp?xrqSS_d?%sR=8t!_!K1VP;b-2lS zam!r12a-W&E;&-NRq28}ADX7jl^kssV^=&Lvu$#(_$>l9&EGQCgA=>}`6~fS#ICNE zWL}ZsE#FWmjQuy9mhwJv#&Z9(0!b(8T*@R=ml-#%qNr~Om{ICS$PvY8>k)!@pl*i| z1q0CyY*qT=z}qrP4VHnMVW{JtjZ4fSgIMxTr2Tsl)qxlsDkQ}9rL}X%?cM<7CD#hB zN|cBZCeHrkwr|#Q1ZD_;v8_X%=UTEk>xP(FbAkf)9Vm zu_lZ2SOAkujRwqnH=DhP?QM4FPeq3SOJkbx7p6VVw5xe&s- zWY5&Es7?U+u{C7}nymzV`PZdC?WOuvY2;KgXj)LAYlI^n5eqZr2A=EZi2Xu;`B%cU zLc*w6YSmw?mN|V79eCjn7pAE-L%f&X3gFZ5muoy|U*7((RaDr?rqjWTx$yUWR-#kf zENaW`>?RI(a$lhfETT#kpfdAlp z!npHi(fhB3@ueJV=naX3#?JotQJ+D?-p<9;&c&IKiIe$nNBY;o_-g#UA&NpnmjQ#Q z_qATZK$n1ilMurRf$YV918o~@kNsz~e|Lc~|96h^SL5%|G7+HFK>!S|6^1zZLIlSB zTB*n7{^|ERoxvH(V9Yo6MuDFjsUF(DebOqvgi^BEO>;^53R73AYKbVU(OfHPpU!O$Nw%#=|z%JvB+IgMxC1GQoDOFOZ373R4ACR8AD8}j6E z2f?6*oJ&-H8PnjkZUe;Q?>8KU2mxBBHXZfqr<8wOIqahw>|%B^XwU>#8PGw2#f#!_ z){W}ln6;;t8PS{utUxnNmrb3?aTS&$-Z%vjsyl#=hiXh2C#BH*;0LPctQJD?FY<`Q z_>$+CHM9is!htO+q`g-;zqEagFZe1xiOki%X)0G%bsGgOPzOv~S9mnYAW7;C>HzJe ztVt_w`sLkgs-+d^rmppj^iuchQEDc;7~gE_rwnQ0!;%WlMcTidr=LjLRE`VuddWAV zhzYN7S+ILg&OV?kibuKNKXyrQeXy}LGxzBV_;T1bSgT=Kw1P2GE%kLZ zPg3#R`k}{f6fO>ow2-VV7C}ccE2_XfQ+@Zma}Q#Uv&hbgHuxpG-MrEetEz(x9m>N{ zi(lwng(AxQhjof}gIp zMjyAM4S!s`DAyBf=Sr|VL)oY3EW88OE%2i#?)fyZQ!Quhb<64*IxA2qWne=qW$b4? zBVX-=JWAyGk509Dct*|aT+JBa_oq@dgyq^;CQO}^&r7jhzG2TlbfgXn6B`t>0m2)j zr@l8PRs(9wt>EajLV18)@eEv@)T}ntT{&D9S=O;@;huL5mE;~z!$MwJjUt`fNZPXb zvnwi?0shG1%Y>F%)k2?+(C34S1!_gOEH%iFNrR^kZ*q>jTOr#ctBh(_Q7!7#$Rc>d z=|*<@g0%(an6Z?bQ=2!wRV7=iVfx9kZaJzm7GG%jOK26?DU_BxmnD1jKHm)Yr;7&3 zik4NV2J$DmV6-vzo}|?+bX(6{Bu)0`r*2!rR`E_ioZ+81X`=4#XPOSBs02H~pD=jF zMg>d|@AY(xL6UHBv<%2K=EZ1%98+PM2PKC)fc;vG1Jq%?cPDhx=EeyqK0#U( zy@4D5S-Ai15cu*;f5p@OG6R1rfsuVtm|D%yp}&Cu;!!*#J11ltJlY&LK5^*oE_@Mo`!xMw|z_@x2<_bw51j!VZGVdY=}3&d!RovyK=&)u64gPmbXozAJDaSfH& zV2z7(UbUam$;TjUS`=TE&y)&cTq{$=(&UmH7|PmsHi?wpLW#c;JCR`N>1y0#Vt-(z zDNhhtEUxCnQ~p@v&VUV^nkX1+Nhkr#il3^NFS1~Vw=l;*OJg3@l_@ENZStKSqY_I2 zXfpZ(D`;Bx$E{~>ok<&q1W7gcSk#i!@cdi8=XL@JxsxZHu0uc;ANrJ5d|g_;J%l#Pc9|2B^18^ewqY)Pn6&$gZz z7L#gdj>}WD{CEO=68yYVqq3O;fLaTe<3mF2-zaRI2wx@anrxm>J{*Qhl}n=` zu?P&RP9P<{aO$@TiV!ZemmHQ>Y|s~%g5L12G7ZlP+IxMh)AKFv;#dDFDEjQ z`V;sLssjebDDVY1(@df~)gE_-RFy;RzHNqlR~@wBqrPRt5-eZYIrGLpXu^>XAb{_) zMtlgh?HOZ&Bz{l8H0j-Eep!5floi4!Xyq z(j3Ltom;V^GQhh%OJQNy70@X*+netHnaTXYN!`eeoqhEf>|_pPB!9aoE(>dGid6=? z-x^jSrYV43Ri_ferF?3fUJw5^NPF?u5ZU}h|D+F0fc;m;$qiErZ1t(1vjT~X&m7DQH z-{0N5tU>EM$hc*h;QGD!Q6M?LWal3<_3zhr=KsFFe>MI(Uw|@wsg5nHnn&q zoMW|RSC*pJ3%sAYTpPX_!VsjQ4V~WatzI&PI9xM^6 zNims^b{rx$w$W&XHg&0osnF`P=mdAE_{4#SB1NAGsnMJ9I(o0(`)ThQ%AFl304mbh zLCz^T;>P=%L<^kz$?)|AD~f9>-~HkF&vw|y^YiX<*v>=l$7sao>U;nIQ*-2W{_2~= zLD+UpxO11s z+dz#OJOrkCv@xBO9pHHYO@O-MZ-14;va2ATUVxjgt2H6;T-2T%?I-$9I(x%f($k{*Lzc+oMIdP;|`D z)osyBdn3)vh*w;WUuhKB^swO$=AWq}j{OvRlhVZO2FfD=Xt?MAI9nksdO{;qi-9QG z(!D@(q!0y5X5%|%1Wp;0bh(b2l)yqt#AICsvEDwl?|i3<_->JM zNYZWalOBvQmP$;_-;%9l9{}K1k$VV~i0H|P!~+~yA%tsP?aVAs?hj)_e;{XMr+j(` zx(TIXrh+9#cFLXs0J#L}n>UJ(2-^9;&pO7OxuU}vQ|2_}z$s=XyeVXE#<4t0u2QKJ z@|e|VzC!*vQR>wIT(ks4j7&;!<}Pgzy(ttuP7pcSQCp}YR^*G8BF;Z)+0|%o*bj0r z8w&f!f?FANCLa|*Y5+3Hww5rH7VIZrn9N!&$^2zLNA4p)mr~&CAZ~G7rz20u=nD8; zJJLc*4sOFH3DO)$N_HvD;xA!I&dmr(aMFNy_l`iOoRV_5Ei6Ct34J3}`c&yj_iW{M zL~q-D$W;P073D$hL6xPrWys~&*gZ?Vw@mEKS~DT$87dKSE@qy>sxi!%C9g#Zd~w#J z8zxy}T5MkMrXEFflC&R0(CC2b+Mq_3Qb!@K*{)qyaa6el)wZCI=kKms>dqw4@oe$G z%zB-BpctW-`sLTPup1pfF%IVFQZ3PgWhSEHo;bH0v}NTpx8vy?!Hba`*iO=OpS~OS z5l#JuQ#ibCQvJlR%rLIT^Q&XzlsTlTIbG}={w+J@bQ1zJ{0CJhyv$c_D)CmK8IoQC z;RA~NGF)Ch7>9}1M{cfu($Uo?D||gK5RNAaa|fgOGL&eLx!*R0T{E#-#rV=U%I5;kbjHdl7M`@{7pvFCV}Pw1+Ga;C5I-4 zOOPXY8%Y~csEytII|&^HgyrAwV_%@={~7M<<*(t=awwol0qs2SZMP-$bFp|Rc(?|) zgdrqGR6?9qZ`WHql3C;#@(u+{O3dvHZh+VRt8Kq#O2jv%-&maZLo4X@A^x5D+Pk4Z z&KZ|L82mL{?zRNf&{W7MCcSu9NGPQ1gtneK+0`14;7?EVhi}z+|Ldmo~~z zeQ3MwgeYw+p+$#A zD-*(L2I#d}zw=sCt-ny!Q;4WiQx~PyLDyk2+PD5C>wFoJ1t3$yXCUm1e|ku0tEJ@c zSnEcq2SoT1&T=4k0Rnj89z8-1-Y$1k*k3fek0eyGm8pLJAt<(tUXXVjQXam!hU)RG zd`y70l*WYlv5oChDt|zCv$NBxw>bCyKB`u@W3_@7O%6iIHdXhXebjBuRaPU~c0f#> zm4-9V(EG*fg(=$zirmSsz}e&rww`B{#B&ebGC#g6r)mb1g+pzVZj$mAip7}CI-JsT zTga>89OhiC)jnfOuwi@Am=wTpKc{8U-RK7-DU=NQU;p`kr?+x`(ObXNLOlK}e8}`4 zc%Hv{fmNW%TFGdjWr2ZjTb*d3v%uiT!;#W|%71V^L-uuyDgONvX_2M>E;7XV7wq+~ z{O_+AB}^KI3^XFhKh#%HW>)rAa%SjzU;sxwlWi6|FHJfvrv1`%To7MUDJu=PV^L%) zu0xecx0iPT!eoTiVWH%2BYIczptn8qTNfEtKwq4ua3Pq zJY@jttv%ny@x8Gm%abhsC{idFKLL~&+EL;P_#@JY`9v;auHxrPzMD#+`)+p;lQTaz z&xt1PFdJY%Z^euMsVJ$b2O(t0@^OC^&L4Bk!64MT+a~>E89%$BFNI(UZezaAutE|d z?$r@+`Jm!EQx92lHR74u_EXAVif-?~xST5lh%z?f&rqX;dW(SKG*zNc;&gA`$xq_t0^5m68O0a&6u1)!qF2GegHS$(< zu9HZUML+JIcxiUh7x;}Y&s;dUVT{@QFi4YiE#5z#OHU5KId1{bx_ zCw;S{pzQjcbSZ? z)C&*gyAoE$e)E|R)>iLE4OQA%zFK@>I}1O%Y^L-Jx^Lt;MB)l#nl-?kZ9BQXd;Z$+ zh5e>r^|u#sg`@Tr@7j{lH1&mTRR~T2@RqRq!zX& z<_x+w=sz^yU`6j|%uLfj6#pV8|ND9Qi+KE{ETy0JqZ<-4jZ+^QIgP94YsqQ9LE@xA za(?aA{Z8wWh~2L=9X+cZgp(dL zDNcs*W+k1aJHJ-mXEG#w-#l6GEfMFrd46^Jc5%JYAp8B8?RAnsjShXfJWzr1+O2j$ zgWuX+6h;iT^RP1f9a-M8!qB?hb`8mxJGX=e=xj!ynwrs$!-^5V`q4bX^sMi&-pqm7 z1@~ub|6*!N=k~S9Ly&r4FC4vo3TV5^`*E(2m3X*AW=AxCCCh~i6GA(xNfkPUy2R0v zT^Q?`@KG7n!@K?oI1AWQ-*n+dq6VR|``T38Af?`{DBRLu-sKN!{9>pPmA-SI3`2H2 zAU^UBPdReFQT~~@XbBiS4bhs#sS~QNQre3C7L3jvp3Wip4q!9(FI*X-) zdKBCE1rr+9jx=g$YB%RRYRa!~d`A_L&k+dyjrlpW`$r)UqZ#*sFUz0^Ya`VO+%v^- z#cL!S+|+Py4H-KMC$r=zObbtG)k~`mfOXOS9u4JTxcm_g(@7yr@^W4KkFwc8KJ8Py z>wqlUNXfI&F2?CFUit@_ror>=mEQ|%)(K|27gEZmLI|>@f#j0KjSP6NzR~iOX;=OM zat&KECcC;N3G8^`X?!is`#P-Q@;iWZz4`t3=vz$n9{rhA40JPIU6)OD@Wm?mWE$Sh%?66=%+L_Bkfi6C1;{dIE#@9L$HoP?&1h#Fc23;@9UP#)P_D zIrD{lvR2mOj-hZKy_1j=HZWXyv%6r^(O*_2+E0uynp7g$g`o&uZGQ+G)(~cbwOhJ zF3kXPNEV=e2dYz=SHjt@JKoqktAiPXRqSMl=`8xDk*UM&wH&BLAV=`dA5uxYlM0Kd zseCE>vz2LQSlxcW!B;rPHiQMjz`V#^eQGmNVf{LXK_=z$9>cv0y~euJL`o#z6UPRjQyAq_L!JfDKg0vzb{oi zni;9MhPaxU(CkcGyzfQADMENy$UeGcZ6=$zO?60If*3C#)kfk5V-cRC<5u;tth~x- zogw?(_aYL|5yc!w_Q|Y)MS1FGaMk$l5Hx^dt@@FljH|y*4C(aTd#ZzVMDKR8E!7sMlPopappzpy)5+QIV+GTen9L>jS-29U%ZWYJFZ=e=@r|SLO&G7t&RZ<=XTL5n?x3G@ua^T~N|Us-hjtqco>^T)c{@mP&TCS|oraO6sH& zY)L(90<_EwQ3HS%9%){8B)m$D6qQPY{nL!9mXkD5;mw=UN=`@CCZY7CsiIlft)$s9 zoFnF*zaAdGZ7zwm_>`b7hB@jaQp=)-rsafqo90fSer*vbIT^L07kB*anWt?7Jzr`i zKhZOXmDc3;6xGs`U5nly+`k=qDOOo4K%2@JarjDUu@%5dFV>8LFv>kax|QV$s^jxy zk{zW0# zDk)CO?pe)3SK}8A(WLHx#tyj`<6Yze8Nha2c zmTDUA_glaSy!J6p4^~}Q!Flt+^I|&Pe7ZCG2dyAG3rqTW(C0;%6!eMhfXR@pE&F16 z&XAOz9f03M^LTD0H%v)1)^x3OPR_yV;BoP4WxCwi>s+x6e@qjRQ#5m$bizmZaxzmE z=B7P0gcJE8;&FMyuxYtd^?qmjbwR*&Dr0m^Fdu+p(j!u81-|@dzwRO!*v#UbHGRfR z0qM)w;kr#mol{r^B&Rr?+q>86Q}i4xc_ARab_33^v)PSy7)W zVm#{scXZ^e6T)^_i6*69SS!mtT2vZXS?Wk}n6vAU;OiD|J-TpEwZw25qOHJ(KvHhS zdJl+LVcu^qVgNUHEkBt`EnX>#YDmkBbQWNK{{z&D0S4u+4@D1OA&#NE7n(@=n|x8G z0|S~ie#8jY!-Lx$g=3yX9oFcZ&|B!-8mhUS1BvCieVE2ZR{v?iqxPs)1(C83IPvz< zj5jscqDGBSZ@lYxKtDomGOSUdHn^a7pC=T*vz6$GW zZ!7(o>jYY%ovhcRc7xA@x*vA4Td-kxoF%`K!f5U{7v_J|QY!B9#9`wZJhjD0mumq7$!l1rt@4wUcHYx`v9KxzU%(4`xEQGU-DW1mW>Mn`Fj54#RM>Oa{Vt<*_OJN{l*t+{IM33RIr*i zem^nUqlxOAP|2FKTu)OnKs7|jQQ~m9Yd~+^G4SJY`gXQo)A3e&lDH{*jjJc)-Ao{x zvF>!RudzQvBs)*D-fWqm7d_xL1ZmuDT z^Uo$+3$c@>_IsiGER{|Pq<6*p_VTo3k=`|~hso?lCS=$d;=@(K4_NhI%4L47`OdfT zhm76zNVhkdx5wnXzXA31t_A=g1Iox{EYR-TxMrE z>EKl$ia^~Kdkm$H`8ctNDq6RZ4(F^@n$T<48XJfgQr!el{n8ei6d&P_TL$$D6EicY zX7aO75LdjW&N^1|c~8+EHkAiYxUD1Lv||Rbg?q+aH*UMEdq!@>Dr!10Y%f$R&bdS~YiMqODc=l!Zor zf-1JGD6^7TqP%8B_c-`T@epFbP;wraimK}MCDGqd5UQ!t(02TU+>B_tOhwt|;L;to zEV;Q79L4rRfp+tTOqcTz0tc!hTMKGcf@t{3oC(9=xJ3%_26Qb=Es?V**B{eLW`F1( zW85+v1F%bO+oH*qsv+G=A=8{SA^b|RN$;mXjR2wMP2`}fQ5vEe&=O&z@>oWN-c(NH z-jOLVE{Ynqa`JQi^Kx12=-T4Nek*h1U(Lp4l~N~j?p;7h>cMj-Cu8I(4_}i@#HI4W2 zfLO@z(h?2~8DlpTdK(1#X?-2W%GOqnR$^{)h7_<|FGafTtGmh5%Fl+6t7+_qkoY+{ zeSnbKypVw$`&;{Cx+S{y9q>&4vWwx%tRh8gsr#?%{#ThSW-1PsG#yopMu(hN9C?PG4=>?dAXlmzFQ$%1NWB+ zRZK`O>e}SWj}BT3a`ekYE_^R#`QKsB8~}ZSEQ8!A%)V{5EjL%ihBgLQWWX-lBKTaJ z8IZA;kdBN9Z;X+26yds)`Wrr%+7}xnK0q$7u(PGGy#xY3Tjf>?VeP+9AG5|k9mY^* z#(nWrou4lEXO6(x@JDMd;f{ICzOQ}vK;KGzK6F)u7PAqPg}V+%ixAg{J&}%}6C$%j z=KRIrhjSBQ5oaM&y67+KW*B$EyB&@(Jtz!0!1Cz(m^I6Ck(3vhv=p(D!n^NzgC^90=xD^2f|r;4+~w@J0y-#oO~m{x(Q$k5irx^!4gG=#G!xyk0)&b`)fDA|Guc zySb~%qA-3hyJW(28sS}JZ2k*WqmK6>{^=jqnN6WuT5pP<9B~vFtWZ3pfjc*P{+C%Ow_NiZKKF>t)!luWk6G8*t4y z2=MERQ1gTiyy&8EYPJhgp`Ov_D+^=(X3~<8&lxf7uS4RbGdK^xdE0MO%PD%uvHPG5 zFq{IY;tWFwFptA=R80&Yt@{u7N{SC(I7+J-2{3@9k)n%Serk9m^;a?6w?2kNmV#C8 z!X;kOXJR1VAJ|L$a4=-xgV!tr3%GOXAZr3lQdm zC2ax}B#)%f>Gy+)(SvEtxWJjmL-I_L9Sj`Fj*x%SKXZ4tK!D;&pv8AvW zh$j-`$>`&xz^G^1ba9bb4%e2ywYAU>pUC9hDx=28jolF8+EjPwMzmBeA!%t<*NK9A>YWj;GOP}u3Z4aqB|s6{9P(#t?rpA`Grh+OU_8#eu;L-jSN?%ln~<5l_SxALxg8cp{5BB`6XX zC2M6TTvrm_B13;W)eFQ!x%-4Ui^9NSRNW@1Mw~hN#6cU-FOSbv(%TI5yt+Zpz1MA^ z0Kkt0i`egM{j3SmRtuG1F+qOD3JGO1RlXQ}f zlP~9<^Zv&D?j7gue`>8!YgdihdllxK&wL)WvKAdcDLiyfo2}Q1g}FXG#a2@>olL#$ zHI&>BbK3ipu&76Mf$3it=NJ!*)QTjwsleUMuBX`dCV*}HkruM+L^l)e89dz#TnUbd zhJp>P3cYF(0ZKSM(JXk>((9e;6!G36$F8|G70a~dd!N8a%7(|zw}!&n<6I1& zxL&M2n3Lwj;PUKc;woxqs{w%BvzbU~m3OVwHFeTOVHJci*|eWrsTD_lRYx5T?u!J) zQsrX}#RLRgv&W^jlVLqtqNzb{qt#af%}I@i*{ z)XKRq-&FOlW$TOcq4*hts;=aT{_1vme0x}yqz|-s9qsaW1Ga{SXj$A1&F5Z8i2 z0{BSzBT&ueZ_&@vF0bmrqM}L-S($1k9O{226WTHK_2t=csiQlqr*~u zU|PV}1Gj1`8o}}cGQGPL51ELCFk?PTh@n`4oRUiAvr6iGgZJ=zf)nMF55vJv`ZOwHqu+QrUIF)&uUCyHZ2BP+6!6aFpbbs z3bCOn2Tr*N!?~+p*uy|04KNe^23-veL*tvjHSln?Bv6+Y)LVc3LsoTVgQ3Q=0l>>- z1Ub(1XXX#tu>pG$O?TTMwHh>vKWgT7Yct#;W{x<*YvL2==h`~2|G%1e6bXY+<)tiGf;m>xgA72P( z(UMl4@0HA0KK)zdNT^J;>90yVF#v;09Xjnph7{ACrB~&Y!-!D{RcE~4xQ2!G>XomC zYfR0$*N)5V@=&C;92W|8KkRH#3T<7sbF~Tz{wz|d5sA0_XAda$w$9XUuR?z)yHf^; zV!Ld16cwg@aiMZRV!*j9O?)EHMS6x1mpwvR&Yw{8Rgm^Za$`a;?tV@906+(4lrdC9 zYDO`67SJ2RI>_tc$_7cs`d*pd@6TesQ<^Iv-?Ja~C-yu7!bmF_!iq^MqAGkU5nOA$M$50}$YRx~zkuJ_fnG zEcO&VZ^ZmNeKp%8>L6M}bOCeyS%rQe=u>ZyL%tB7!NUsZGs~ibWK5jeb2r+QR-DIE z@aHJ&L&oI6(Wui7Avsjpr7su1S6a=Y<)+r504qDw-`<4( zuD~0UsPLC+$k4SR()PNlO3k`-7TmhXP)Oif8&DER=F(hczm=l&fwQYhK{VqjD0>_`4f#CJ|E0~L`o=J5=$aNlta>DbZ zFlFm}02@S5er<(8OIhlr6BSqFBC`j$Pgth{x@fqlq5)9O76|lyJy7h_Vgp z@7raI+P2HP{PU5x$jm}odeH?bMjvbfR%KQ<{)QVT&2E5MwN)zb`4D0Dot93UdP%?> z6_P7wZo?teLt^UPNLiAgeRf06gfLb+2gJA_U~R)FPMOAs)!cM^yK8?D+vfaFwEeS! zs(Z2;akHoD88CwDwreE`xHSLaaQ<9u8~3CR6AA1VEG&Pj5T}~oIKsGLXx^}oY)fAO+jNU-O^PcgjW+c_?U_!U#kbEncTG$r`R)L&@xAz%d}b6QApJRsflC*yviBTFcC^U?HnE$)z@M@Ro!?O#tMD* zd`&{`U9(hGuzI69)J|81&Fv{fEc+Uy z!sN8|`XsMR#|150b8fGKF_e&SP&D8s3hCFK&Tmp|L_rNjbr_R5(eOpAM|G6_{G$a4@4$bU zgjsz2J=|As0UO$eVhuB@jc@B8x&=;GU>N>f}5zLT&ss%rxT}*=%p)ir}zo=1Zy`2aXgR)S!LoF zptX`chna^C>CfrZk5fWWu>`33O|x&=WXgat<8hh<0XzOgLTqGGIg2aAHUlPLXTr=>;15dD~nT} zDam9+1yeanE(<GJLdm0tJdxS7$MqU?a ziv#kbCe=018V@oo;Q{R>SSP%?wy$|fOQ%l}5^YCCg!aKUB2WY8{?MTMsnnL}{z7XY zLb8Xkvq5@%)#F=A(g%dBWf9HGCQ_91 zhELg_9TjD^Y&9$6ay#bSXRxyd9|I+Lc1?I`F2Rd8SRg+yvCp1!IXnJKH+~CeXGe05 zcHQAp|9E+!G#wf|V~IQCCU|a?x=^zatqSI_0n3AI?nTGaXj9aIK{b{I29+CBIe-jF zN2w6~N=GT6A#%mGEPLkD>*E0B{HQjmx%*zWY$0JsNzB80yQ{0SEi*@dKmAWoni^*J zgR?#AtO_zS)f_BKX18D5!dsDL&L15n+j=_D9CpRp1FjyFCJ)Zn$sYqnBO>pPEkVLi zF-8X4-s^jmCk!Yue}CNN zI^1=vVx5a>*2N%~wg;kR0%`~CI|+;@_=`{%PNR+R-a~(9)}N|&w2E_+*;Uev+%I&o zj0;I~8`cl1u4TkUbQAXrF6Zoir(S=25B3mGeO&8VYap;@JwpzJphFHhqLpN#U9zvJ zo&@a&<;FMpzm{RQlV$gdc&h8i(H{=058c;mq-0)i7#${y_#L|S4vlUjJ!gwsaCh3j zYWg`HhKJ?J1yQm1vS(ubcwP{a@F$u7J`1z`yHkpd<-ae(|71l4m_zXc0j;(6SwO{r zz~A~4Y(>la2|UBMTiaFr)8fCUYOt~Wa{yrD{Qv8%bAHwQMU9@OWeY_F0GE+GP2|8m zXr}2wG)StX(*wm8tY560qg*#Zk(5ipohD;<;c~oH;J% z{@#d`vPV#}WIJuq_uOLbn#E%DiCwuS$Y-V@!iIyDL5_K)xMjxvmD%NrQ*O6wSjx(}Tw)G#``*p6+{3!*?lGobn4p5V$29fc%Vj_*YwyNKKj8 zl^b6viyxiM9aCo+gt{VZJVYA~am(lIiVG5*Zq}|ir?cRWfAx!Z!D+T5o&-mSfO|VF zBAzm&bH=XN#O?M=aSGfDfvXaJ$tJ(HU$%wvJQTTLz;nNk+DH-HducM*$FF#R6-75r zIB4IkzzzhD8yBD$X2q^}84T=FZl*3*bUi7zxVp(ojxtxfWShKf^nR*1p?C!ew9nNd z2&8E0*w8U0cYt4%35Oi>6}ta=hTeY$wY9u(^^ayPG9=kkE$knwN~#t#KsElRT}p}K zlz7W3lJ!z!^w%I*1IoU>h+3VAZS_JgZ7XD-G7ql-Xr`9As$SE8;j_tAEjPQHo@{7Q zYwRaU9+_3N0M}&q=9z;Amz9)rmTe*~{AT=w-j%^OOT)?dWoB3m! z=r;Y5e@jjex5F=cjwprGwNT^Gg{;sABSOO`9WX-f)+uG*N6dpTGm;R^9{B5!dnz$M zyiUysP!D@+jt&JqzLYAh8D8zoh$7a$kT$!|I~r+$7Bv*cAEO^kD~&Wlnkrly#5ujz zEyS1PjV<4*)HN*{oKw`5?}}{?ihIneu<&GjWKOLoni@r4V2U+FR4AD3;`-s?P<2klpd%9HCQeYGctbhrpgH$)V|(d>8);HHc}Rwhg(WN{=x-Q zOzj8mPMkf#34oTrYs{53Cwg1XZMWSmDDKJvrUOkh z0csk17%CrelkgT177NWfHD`c39vo;6SlXnVsNS7&hLzzXTCqg-A0Ht^VtvKHOHstR ziijKXq;$U3@=p}eM9|s#Niiw1jfPP;d{?79QcPAe1VHB zeGV~2yRhCXX;%~VZBBd;=?B9qKt%yXh2Bmtq`|48wIKC&DX^k!^=Ghc5Tz|+#%`niU$ zRk|;>D#*+ieN3iFzjg7ruT$=_NfTK0G=vn#xxo?8?k0t1M>N>IAqt&mpTmctB90Q* z?}B5{5WC1*wy8h7jhYFM;z!)a0h0wQn|RmLi=8F!bJ46?^B!5hJzKp#T;ryMD2vFL z51p|ep|sRT$WKPiiNtuy00d*eQ~n@J4P~GLsqbfZts$nX3(uE#3j-#sy`3GMy;*k> zcSB)2(gz-k0KQVf4KPTnH^%mM-;QnqfsewSN_-}|%NK(b^Ro09n&cX4nGMIC|XUzKzK_~K$Ogm$P@ zVWoKE(}B}I464}z7$6=^^Zru*@X9L9+~4<6mvshXX&}7*<&Pz{GIU$DWHwjav=PQ;yPAfd^CCwYrh#!*O+`!NFeLwg?7vA(otPG%x5)e{{; zIuzxtC#suu;W1VOIQhjY1zo!cv;4!S_2Siq$Y@A)vG~YhG=8~+-ntA|oSA`YiY7z! zPyyb4nt^{OH}5L~dyx|agWzCY{lccPeUG7@G|h(M_a>x$L)#%KkkW4)jf0S0307@L(Mv); zM<08FaCqK!y-aZ`j^4N3l#AekhibU{n*AXVG9BpLH!M-zZ3=P=WXU;@?8ted0KR?x6@VcSI47{qrplwm_ zSv57(2eoOOG4u9C9QmL|sAR#AZ0T4$NKBXa+K38dquw zHAqdS5gs1iboNaY(|B*)C~|Dh8qr09UQT#aW^gckF(Qgudgxy-cPZ`Sl3yTF$d`yz zD8uCY&}QiAUI+yQKmtV^DUXaWjM3B*{xN%W410)MQjUTOqRBOqz!@;4caBr?Pv{3O z$mPXs4wxLmeXbZ9gadvTRiQuR4Xr5Vc~_REQ_2ZMKZ1*=^rU$D6TH9z%Uq)lF_3Tet#NM_%E+rkBJpf<*zzDE^)x%xm#@8dFeDu5i#1oGWpT2Rg>RBO9@c{k zryPQf#n|lIdiC8tJnDS=)=e<|L1GK=FLHKIIRKUy76usuNe4dx;N9cyj78x)tT8%_DHp`4;_eC64vVB(RG-J&*g3J!BijW5PUb5Asg zL<-`G;b5T+SQY*heWW$r(K(&3p%pgUn{o)*Tu`;oJc`)EBEu0j#6rnMdNpIba(Yfs z6VRGU7PM^ZqaNv<4eT1F&(EkI&_R`~H>W2+%OKhUsNk`9dH?VmSRbMD=Q?0%0BMjw zGJ_Y7?g4Y%!o|b8au=E5<($?-u-`tVS*%x(IL3*ii=66?%$%tlo$yIzI1L_OJ147x z=3vl3<*Mam;M5vH{0T)bq#NXiLWML=2{;Juo2s3gV<|d`J!Qaqkx;K79WD_j_~pfX zHW3otPa`)(rh7MDZfXsEKjQ%Rv+ujf>gsQWIcjy_#XZise!YkwaYvo0NiqiqCYxHP zKeMJJFc|u8XH55wDDvRMatoFpI7aqdAr{U^Cx04UI z%^DZ+nD=2iH&N<#VR+FF;^CxS96Fd>sGl5c|LE=o8l%4Z_-8Bl_hc}(|B})DCozVd z^?z;!Tz~WGrTai_0ULO*_@b-O)2{OBmNk|@p1zDJU$~;{2yB@XNCXvw1lpOVFnt&E zwi{7g{%#AEP322tUWL0Xm!54egQ0JN!NevVBrr92%5(L*!O)UPu1c<^l~Jb@8)+FY zM#qFoWS^vU2>?|B1njNf>JtEU3j_xodt&2szc9D6$S~BO)_?aUHu&!dHTM6|f_zJ@}Uqm}|LV8fbT%bngF#vX5x;EjFY zd1s)?k(2l6MHLis7XF;FI*E6p2w-wMdhdJMoj{V~wZ2=xi8>xWU75BtFA;<);DYXr zMnsFky57qFTtAY)*NM3dczB;9LD^Ye>0zFcXrkTXsdH=uq%3&sj2ctCW}H_+1D9L! zZ4Q1Ic{%*17KLP;QY^5*TwrDMbhhl^q*YN;TK^tJ){SU|K4|zpTb})Nn^8R|M|Ta% z$D=;hg}5SIl0gfaqWLGfn7MU3nL5c+g{+x2MLtPO^2Fi=O-UpLFse0 z0Krs6J&Qn+TAQtWg(a_urp^GAWE7(wb>uikI1ILJ2Xv7F7i5_ z+L|+4dUO-!5QfO|kY6UVur%t?eNXLE#CQ>Jp{!wEoSn*L%udCq(a?E?rCA+Hjxs8g zPiZDrmMQ^GpaHB)eA>=T2$d>?x6heV>_;T&%3^sk{dYCB?2*K{qe^w-Zgd3ZB!p42 zGJ9oI09Rz(%|_QxMhNP2CLTz_wRKkYX8uFd5~wd+aTN$;f3Wyv=@DD2Go~VdMaoZqVCIS_z5-&N~({d9T32& zN0F}lHd(qB{$f_czLePTV<=KhUpuS%I{i^9;JPy?BhML-Pv$%wB8axeW^_;YS7WF zFg;rA!5w*pDRLYQlq4_O&B-Ls4YM0lPv_B<>yRI$pam^B$oJjUG=b&Gl7)}rhYk)- zKF7@*TiG-sfC<@2MGyI5zC>WsqfUI5El=e&4J;gr9mp?@Hyp|vXeX^L9Eu6ZzV$pD zst)Ko*^s+9P;1E)PzQP8ih5p|`e|pA?jv~CM$qaIWpS8&BAb8xuDh%kUCLInk_w5h zO6{_S%q?=!ddyb!h9NGuV=#uQ8YA@T#NAoHJp=%VLtLlt?|J|4?kaYczeBfQ<$q4C zG$2S-;Azm&PBRP+kxeJ_h&k3`9qEd zlDj0%78EgxfL@**`Rx@e+9i-9sRov$*oX33rxbI~8o4y97$`FAIMbgglj%C%dG{ZP z6*||qZlN#cD9?ZT$3oI7VxWQnBS{KVt*=@7lvP$vFN&Q%>KC157cRc
    t2;| zKsC%3%AO&`M(vD4G9#d9+GVXBpDe+XGXe{g?=fH2^Bt0}(I4Oo{dyN6mWCt3W9~2;Zzc-R| zQ=9Td+@BJeXDmvn5K}!@!vX6ym{VL>!pCWz3FEMsZSNoV77L~)s615@6J3}%8{veZ z3`ahIjW%RyTFxFxFf(lPN1oD^rNoIw9Wtl-xM$PcTS#H$D`TIDZz=}T6r4^ZI+O0^ zKGq$@O-!^q^*RZD8v%2Z>#^VP5O;9TkUV*k&M%pic611cWnXKJxB;*06APVqry4&P z6jlrVIP5e`>Ev#2)P+t)Tza63b4Ku_^%00qULgQ|@*mj;(AB*={OJBMdj&H18H_tU z+u22b!i$d+@7N8@Vhep67_lOg_W}eb9JDhg)}|~-5&R2|5_9)x951~HZRO-8tGy7+ z#q<5-5F3Qx?tawff=j%>9L_e)3k1g=`*zR1uBpSBhOzMcBhC;Z*sznkCe|KSAry7;d(>v9qjwbdjY ziV6q-eEfx@={Rg)i>t}bi~0P88#=u$;y8SB3YVc^s#=YFb-8bAz#v<_Rx_5emndC( zmRiN8{*sOVF4NXrS)Q#fsOxe(q9lnQNjkuhy^|0cMfpSyVTp6~En$VHB~lkiA>#jY5X@G=MGmem?sNhzZBYL-k&%0*dXGmXQ#;Rr@bKpg24#C z?pi6WR#DfL3paO4rSJJc6(1Psj92K&*^D%KsK)e`na@;IU|3$*V%{$z$NQj1%L)|Mt zl(}`&LAUC;Ly#l4-l~Djj_u{fDUZBb?dRbB>BkQ0F>yHkPr^P)NeNn<`r@i|wjS)- zBZW|xPA#_aZ`IV-&P|ASb^FPsP!BJ5k!K!t6iQ8uKu4w(ZOg0^X@!1$mH;`@F*&-! zefe7>-?GW!nAwMKn)rJ&mNpfrB^mRuH3<-9|%1_xZTI)`?NJEp8 z^f0W|nUX;YmFi!=RC~1Af4Mkri3FQkP;8%>m;1~2+DqxHvZy~haiJ|}v6k+`Xvr3m zCbXbz1Amr5pZta%06w3~);`Sxget6OA zzEo6#;c$#)|Ae2y7s_0#h7KzMC(O?5{pDG|+Y)4H*Y6^S$+2u(&cHRh&5qf(>Alko ziJ0N)PulTW_TwVm;SF_$PcskY5 z*$?5C9d4)l+vAyAIL@@JI{XP@KzPzoiIDlLOpow%rUO%9oUoCOm3&;yogV9is+}TT z-xZ?!V?HKFKWo1NNR~}HoW?tUw1OYcGX_Pxw8!5Q`QMEv_Wy8n{&n$%TLW+~{x7gX ziu(JP0}b(=4=_}q5rA55DwRs7-RDmx8RTbT9p*t(*P&q=mDnzsEHUqheHpjIBi&-U zVqMqdK%3AN=YGA#1jqwBJkS?(lng?mt7O^1iL?AHfZ=^Y4Sfn9W&-4RfXoLv*$j=1 zt-`bbXc9O!e+1voMy;n9><+!AjKl(nbn9kGMyZm#DoArCZcU|{nj_`(@zOo2KZvK)N*UNC_xdP3t zC+uu=(O{H}Gr^NHw@C>v$HK~y`c8%B(nr4=V62k=^YnWl9Ev=dhgFF0WxMksi6A~t zpvxTG&)xfiZ%>MP77DMV&>8TL4A&c~iC()MzM^?-t*3|S0 zV;hom`})S`>MK!KT?_RJWtx zMpB~#>Vo08oo`wQlT55N#zKU_>1U?|z_8&i_S*Kri>PBB6f+iQQuhiRUzZXzzDCs% zlbUc_wZ3Vd?VZSk3X%cF&=vX*2e00exR$3v$f#+=pb#5SC6&KwDxu6V9p8)YDc3i_ zsbKEFsx3N~jM@{oKR^4QcV-#E04VF9po%P~GNCv)m57KV&06I6sxN%w`YVTc`Th8j@4GLF${%hgKC zgZIhOK4f+Wy2F0k!kpRcgl-sm`kUMx|<6WSo3=j1MvX zdHF`p#w!E+o-Mq#-gFhSvsruIaoNurXeOn9`B!T}Gq&<^5ObI9}MaC{G}8`Z-T-xOdUv z>g%e-Svg%)OpMsj%=s-#F$)`{g(^JgNxNgKhpU=!oK0MA1;CtDK}}U@K&x|vultil zu|}ZZXuNmTP|P?l(M>C6BT0L77D%$BE@NX zWzZIpZpUno(dq4tNy_PsbSm00sT|PV?E!W$8)bw&WNgpdugk{Mn_%_c*B5>I@EW)9 z$jiL}qs@ScAkY;NMw`7~+VrT>PO9i!Vz{5TM?K=HNzze%XC?*@IO)7I&lk;SX|;zCGODROSLs zIEd5U{78!>>e(L)8(T_`ZTA+krbz=?#3x9h?9hll{+6bC)$8Qq=O8Dw8Y}0Bo&Ys` zg~~^eOky8TuE`*rtLR5qz-5734xdJn`rl4))7l?>(P!FlR&_Noc9rab5YSz?|nUWZ1+hoV?%3qc)|LtwCOlS)2j2vHGccG6}7&BrsogOwc;#zh+9E#^w7 z1Yuwxr25?*V_`MVj?~)z>7wW&aLLSK9s5l?c><#c0H=ZW?9i6iqW}j0&16DO{QVaF zyJf`jh1V~FluZ-RguqSP)qo^HW#jyx;l!_J{-Oi}=Hy7LFM~t@_CX*%KM4NtBP9BbaoJ+Nn7{FYcG+z)xkD6#1n@nR!gy=kGy2Nk1k!>$FakM zmAq&5-|~wB3;qk5&FyY7HLUIeh)th6$K&6 zapBNbT1iCLS~t-{6<>aUaaA*(HbOABb?rYb3+54IQt#A_3GLv-fv9LGO1NjiU%;@; zqrN*OwYl|iFZ!4*2ZpF;cJXyR&;@t{C@ITo@Xr(>^?7ty;^F5&0J`T#_ zk{`4mY{XoYw5lDLyNzvXm^ThNxdLhT%OtY;$lL2o;ZRoUF#_t`IPSW%pcTz8a%QWU zapGJJ5WW+lxsAAj(|-bx#H5B3IZrK|cierqPl^EIpFjYqjlQqYzO##ysi7^jsa;wP zJQO6*zdI*5{u=?)*KGbLDfRz>1HP)iW;1D;f7jPep&bqh14zd$Bqp8s&6L3!L&4QX zRVGjG!@ChFq)5a()q4$c5@Z}ERJ7D^eZ_xIks$e;pkb~Eu9{U$e3UeEbS6Q}VFXfC zQ)f{S6MvoG|HA}GTO*Z@ldOc1(Q3#Vri8g*XRcVs$SelgYK)$-(T${mth3KXs#f52 zG8a94&4z6)51=c1sovy?0k5Kg`7tiM!FJ8!2V$7Fc{tYE3Da6uAMTc(&?>v*eaiN|n_wo&a_5a3*+M389~-rTdLwOE9vf@*`_NH@iIX~P4`3UY0MxF1rReTJpI7l_^G!oE8Fh5Xu!TKk z7zOPC2ftG!Y^xqKoIydV%&viUI^jy)qzLvCXZlTGV15|7aol5(HohXe(sw2)Z%hEy zszK-L|15%sLI(PG8oS0umGys%&X#D%xMxWtZ@;Q9T4iUG zAQB4x)Oxn1I1pWFaOT)Hu#n>0FR<*3e7`uU5)W@No-vV6Op+9vTY7jpF98s=9q#^+ zF^&@_B6|)n=J9CwRG`Zs6!?7^|2BrX!}q2Vh;Fan-OY;`@@CifMdbi3?A<`ZoJoLb zBEL822A3;ze8`=^$DB?MS6lWl=U%6g1kMqzF_UXOyDLw;!O{+%lXSxAX5b))t;5kY zLcWsU|B$0ToXOgDvrRJwp0h9-WwR5%$vubDA3q(Dd79I9&^{eL^edwWr7jKL?C_MwWC3QcEd}`QX z)Vr4dTpsg)E55>0 z;E{ga%GZ`Lc=({yUY^_CH}f!@!3*JUL#l$*h$G%rK%rHqVa>Gwbu0*%M0t@0b)Qd+ zkH`<@Qy>7qfW*)ZyNhPdj(8!D_}lI5K9G9&udaR-`Xec&X=_OiEfZV~Czh(;Fo(hQ zoFxI~a$eLF!7yX}_Dp4E8gPCc=2)a2#`4p-D@nUz{AF?!^MsmW2=r@ru*kfWmpEOy zpfe|ti+LAPs6r-%hS@@aClC%}ADd%a{WrwI?SRrwFfVn^+*#d9ZS-8yyq;kk%_vw; z>xCU){kf{zD6xv)ZK&%YKUhZ*%l5-S<{RnpF5xsB=7+_0S{j*vGUWlCOU@^I76gYR0_ z{tNJMLbQj#y8u{5!oKe0;|r4fC;eR9D|sv2pLK9s~->yxC_<{mOUZkvtE_7=uT_p z-P$b;dd<@%7uR>o6was4h2yqN`S0pX{tySz^6J2G_7fu#RHxKx(k6Wao*mIkyD@;W z9?C4U`h7x&y1i`W`i+?s*;8vGjx6;!bH}7Pu?UX`29n|J?SZ=!qcOt*oP=@AI{9q` z#Y4Hm(Y&WQ)WjavH5RW7_~05xN`q_*ynH@Tnu%1wbXvX6PKXlm z9NKRsoE4_Tv8U<3V4hXV2O{ZlGN1vKGL`DUvG1BBd-00gQifQ+TM(PUPoZ+loOBnu z=#!c~zB?vZDP$2otMNy?A>{*W{amJDZ2;b>=M}i|vA(Ze!z&gLm4l$M9rsjqq&%pe z_nI>O6HKWyBm+J;k-Fd?nzCGph=6 z@Y_SW(HGx}K#<6T6lqyC+msJ;YLpYx19&m&8`!gG{wfs_!7H=koK#XZc+(;+6~0nI zJMFs@hbCxsM7EttOeK}FbVw~=PrPFF;8=r<#v*$WZv0aUtI9=ibOk%!h=|m$htRfw zr!7?e#Vq#0U)ki5ZvYYdfLVwEE=?(K%WhL6MZ0U1fnZ<8wY+m;k6ld;o>&Z0`xNy- zjr;=EZR1{jz@4Bwp{ep>YR;i;%kHYUA#0evVUIm^$wBpGtuDOgdu0J&lWe$7o;`IF zRtaugy#LdJq|FlWNzJH_Dk9Z_lJoi&^OpWcOm&e9C*B`G)>#X+d zS;$k^L-)Pt>F_tU(lfJwpEloM_kdt%LC`tGWf8hNHBDu1~O~z;tZqpAeK$ zalpC_ToJEfMX)NmfDsI74lMLpX4o6}+sSd1Xc6!94o?xs!TdS|tjqt>dOfz`45Is@ zoA0<#^3o%Os6t8Q%RfZ8YL|%kt{M}#({e#jFg@G&1l7*&e@#=bc~#lXf)7T7K1-NB z|2bS>7*u2kDYHox^C$JK;F!Z{tUG#7y@jmLN+8;=+!kmQnR{#>7{rY49ZlXB^yRk| z^>v)C0PuJ=2T1xF0CDb*p%&*F*cpP{Lf^V7luI#k=rNb}IM{)ViiV_ng|uCC1Eu?% zBgk7ublpo=);Z?Zf&zhBSuNrlUHhZqhbOJfJ(*4gO{yJ6J$2(r;B@BDeg;cxs53uXkZI5Em{-$3})qm8d5GECx+e#-lr5e z8Yyj0551rRkj8*~M0W;*c)88^<%+d{Bq5ZaMP5Z_Mz%bDN!^)9LA~zqm9$&h3yZ;` z3v6F^Xe!)eF#2N%1sp+r*HJq-YeD; z*qaCn55XlgsWdpmT~pJbLNsHcWU!rHdK0Ti7|vcB8rmN)K3{jsRoBJ`ZgCoK>c*!l zMqh3LRy@5;08g)VTAusuYwXY0DW^1_@JK!1F9H>GpSMapaD2bQ-JG@Cr$2X{LA~%F zAZlR5?SI3%IR70D^(8X!rR*ID$^IWw8768d)UuO zo#CJ`Sv{1d4h|7Ph7xIj2MvpIwz1YEelNvn$EZ8GcyFjoOHO!nz`Vb&WNy?mGey6f zNRXiaxU)D{K~ze_Ymbexe<3&u1rlp)M^Wa?+HZ{elo7iSpzrSG%mkf|1{C%=`;3o9 z@orlxN`EPOyGig}ybjyVNPn?aD0sWTmL%4!gYWkA%<0EvolE3prd<|^>q{Ri8%5p#9a)09J zU48;kkT_kK3-M+y3gQdc^mhkf;gG&BlvNC}^El^GAR6Y03yHjJ?@HdZA{NTb2wfkS zZ?D8LC2-J?mIk{u9F2o`!9{@^gqo4rl;LYPa?sG)ksgU5XI|C?fZdRcju9Cik=bzy zA=@AEXHMU#pfv3A#tt=;%%u=yy}ChNTPe#JG_2b+8Smwh8zR0H3;v>@|0sg>wVbe< zC1Re6QJo4sb3gQ?=0jW5gEyI(8#EEw*Dr-KecqSp5ELJGQ%h3_+U5g~)DyA$4o}d| zYcZY`axFKdW3d|oXzBGJw~LA&FcRqhY*Uvx znekd%s#XuLhWo37*iNc7pr9eXTuC*9U(D5ebr`zXD3f^^ztitP8~lxt5l3#1aT7Hy zgMV}RZcVHGe{{W5d?j7i?%lD?j@hwo+qT`Y-7DzW9ox2T+qRRA?PRa}eeUl&c=vuz zst!i2T60#_Z`Q1N{l_)J{Tr1V+&W9!Ei{ekd8V>zXc^%K`<)HR&8Yw_axj=dOO=p3 zhwH$9BZl}9eNV%rIekHQ<4JD*J&>;(H8AsL0q5PTgS(szAB&WQxf0FfeX(uq_8i()u^>y5EoY&5XG^e_W&zJ8q< zqpeO1g=C3+1T=tNn!LiWhTO}AmXTQLy>q<1>Svrh+Y)*@^Oh~!K7(hO^MldLU7QSQ{K?_p=MeG2 z(y?s*>!*E%7E@bRQUT!s&6^wyydk+dzFgI__lt|kS+jFihT3{%lTPoblb7{$5iGG< zDU7I7;#Ev5UBKS_;imOK@J;09gLyT)Br=%rF)r`EM*aTahU1b*NeuD z)M{!w3Cswbb%7AKF)C zdo`n)Fp4LC?4CX!?PiT%oc6;s5}sC!EPKr-=&~y5{T>1B+FP5ghQ3AG>pJxs*QxX+ ztDvId9>geGH!l2?1*V9Ex6iOeq5P=jD30@d5CnM7GYUiX9jH}ul-1P{wk&e|j8Gn3 z78Aq$&_xSx+12LG4H+IkT(!X6%ao76d3x5bR4a8_C}V^EIziZI5I@>A(tAVH6GGB| zLC`A|YTcw9#QH0Ur&5)u@H4&7{R2~Ddp<@i3^Iuy!l*?_)yf7iZ}qBdD%t1Wx!)yl z6A#F7KIcj?vugq9uDW)V6-6|7M5}n$h5Q(Ik>f57X%WP=RA!xEu5$Tl`!2`w7yJa3 zNL8@ADbsD>Hc4x}V0+jeU2q7L)w4~A(Nc%KWuDX1^Qca+Qa}W1G3m+R7{#L0t%6_< z`UP;{-M0_o>MFTD{IoW;p5a#6jexkTbqYX-HOen6ES73hlSK5hKv5AEKZ3_bXc!>gt?n-E6geEzk2&RvBOUX!@7@l}rfxBmESFxAoa z-j>Dk5TJNiE^hH+X$^=g5;IP12aUm>7a7j}RDs1jV}E)^xcd5QxjA`x+2<+tR|6eE zx|_Y4xK9g1Z=WV8U1zSy2R8473K~$vX1A??&>%S}6Ilit1HY9toI+=H6R;jj*o7$4 z8~Z)gm>KtQPd~G)lWQ}7w0}F$dAWGxT`qd8d&%>zeDVG+dH4{k165rQ-gZ+2m@ zQwQH*kSD4=vb+6yMfEupFurl7|0C7ls#=Z|DL)lW&gV_|Zo|)&&w${=;U0qL>XcsP z-wDKj*M~S+{*$xI!SuhGaA4%0b))2nVW1nk)~eI`5UTI8#(jLXE_vSy^dB!1vel(V zQmQ=EV!Kla@DMUtT6j#l&sXoZ+D3G)!f@)Qp#H$D)6>Iy#h0@lV%#q-R>x5|N@*mU z@ga&2f#qyOU4U^bI(U_tiu9%FPft2&OUE2X=`6nbqVNZw^zFwX^=~>1v5DZdl|xj3 zm!|dZaT~^=VE;31ep!6`B~m6=P-|I`CTCBh7VHK|&7fX+^Q3&Opx!AT>pZQX-Gnn8 zmcgI!Zs+`3p6o&K`&vYCPP%SYLgzp`>6sMLe9fR#gq;L)D0sIcqA{>D?)gt!(~*5c zO3d$p8Y)=qoK^h-xC`J;J%*0D67{fvz{DDAogl7QMBzfsAQbB1W6Myij_M&pU&I1q z3`icw?5YV60w@+L>IHH)jGi;ZLK=m^;E2>AlPVbicQ4DbqmgCQt;x`CnyeMG`4jjx zGq99*yx(I+KnB%Qm{EPng~=(ponr;WbsjL_s@MZoOw8ICq}+w0GS zl$3^qHpqobTS%Ec%^`+ViFzTUl>jSe$~Jv8HH+$%=X=!VH7#Zphuc|Lqp_dBS?WN* zj0z<=w+}5s_4Yw1P)SxO;W?V4TW>j z(u!T|o>c5nJ~Oci;^7c+I!fxJ+xeX^@_!f>8}3&WOS(1npI6M2>L-C6dom;-ZDhrr zvCj`V+CHxnHO-~Oj0B3+!jeu>GDy_&g7Ls(I#;ZRXe?n{iKlvxsRK-E6w4@RBVyr{ zj;JU=XTQM^Y6uQb@;(aco5~B}K{~o)jDk3!2&=xp{W__*#4b5aIamx7zhABLg5WK-@*2S;x69RS)v{@a% zz(Z465=pn#!$?(dQ*FnkvdA}d<>>mOoBgODYE!2(7t==rC_U_a-+L~ivsZr# zmSD9WyH5Dk;8h8=l)5I+ay&ZXJyT#o{=)q7`i<nU6!zffDqvDB#3-W0Vn@hX)riGbC>#|PJxs?Bl2b6bh|u}0Zi(^ZWk4c zR4MUp^p`30D}a4hKP>(ct2rr$-|8-}j9hJb{UlT7V5;X&5rh3Y=HCEHd8;nkd|ONn zwKr5cGov;RM>E*6`Z3e{{36$kN?G%p;AidtUkA|hdnSe&j7$Tw^r=QSe@30%{q}Dh zZOqjXBMA}-hffJZ=_C~s;bj?RmAPW?*A`Mh`8;9l7C^|)jV!=51Fbf>9au9P$3LW#R7tjh5;ZdLT`!d+*GzM$sH8?G9*$ee zI9{zGG~B}ge;$WotLR5X#l$y#j2Cw_wFYK2Yzp$qyMQz`DpV2v#gU>DbOMaYgVC-=dnomRk^;5RGs7k6X0#?NJECBtB>X1AfrGo^aoO4<~a`BA%{B<9u z3b{9de}=a|dzexbNe{yuUqDiQmAH*v>X}lBRqUl~GYh|AT*iB*R_r+9W%B*6g@mnU z8y~MkTHh=vgu)#VwChmP$h(6^&~&0x_e`K@z6ygYi-MseJnc?C#;U$=x|n2VcqW!6 z0$jEMk?XaZF5Ta=O`-X8XA%f>&mXVWqrw4Wg0to>X;**IZB5n^Tu6!*4`WuyjtFT_ z>5oMRU@|NFe&S;8mPgOnKBx+^bGby>5lNBgXm~0Gjn+1F`Z%PL&&(;^ahX;aj}_cs zypO+>%!2phjMA6nS**`uQEs2GeA4G#06M82U7O0IwY@!eS?S$fwekdI3JT?M>v9}4 z7Jo<~SBs?-!H{K6zt3S>xI>#$<*Mfj7_)`%7M|aBd!ZRa$Pf3SyVr)+;n~Gim%r68 z=D+;P9^kP`{NXtL*d`)P$+qrx&x@8>C6#!xgR^Yusl#xRT@}GJSwQ6O`6p7958y^V ztI&_~Yn2K8J5t{d37I?6ZEW}!>pLtBd?8k14XS0euxP>Iq)c8nDT$wH#GW`wE*9ZB z4A4u~*kqLIc&YK)4J?1+X?Lj(FndAhD$~Pakb&QmR2~`b#9o1cWG@p z(yA5kMMs?`1Y->)GY&?z;Q&eb?;5UBTxrM>{csen{%!;JYw4818{^iY@Z4wI!#C8g zwE5ZYZ^`*u!Xs@XCSR-kMx9B>I@s>jYkS!Xs2U&YwfCB@#+yn=a(sHph;jC^tz z(ukUVJ#qy*>El(shk1yGLuUvF$xN)}-6Al@EdeYgzjd$e+%v(cz(-AUdBKCivU|lp6{kqH2Ek&ujH%HDkRkiVVV@YKShu})IWu`ceuH7hNR zM0niNd4<-myxefk5+>AX)?PqQjISGHeffKmnbwUGAgSIfjV$ES0s_#|BS~NchuU)v z60dxA@;i3F$DPiG_F}q^9cX3xlA_danR0dag6j56=X~DAeD3;Tpq}WD!1_MUstro!%jBti19J#k0=1 zYDw52&ybKr*&uN}HmNFr6Bp7ifS|K|Hg6(LQ%YWL3|gO3q(xH`YlA6((#Zt*J3;Kl zoP}0fPTWo{sCz+-=sN6COaW|VQdYIP$-rvWX%>^OBKV;gt2|?g*6=w7vVc5JC(UyI5QERQNwBw8({g11pE3 zCtMJ@s?vD?3brHC)@KYFmLcPsId=4N#=gJKJ6`H0HN;SowXk=I4kcboZQKokoZ+#? z{@+Hs3G!H4@PeaNkdMav&ZNp!y-@$8m2)8zNqeuzPG;@@5mUqwLbCIcRyIN0i4B}N zUBtHG6$hbFHv$L2*Q;OB=lCtWg6@C}UegIHOxG3+_#rkkY-8nCg8~}>0(aZa&mD$e zLZIxqLS%$t9vJMf*fm};WEl7CZ~Ox3TR@w9zdX2;JJOPvU;bKR3t6Eo`yk%IDxLqG zbQJp@uTCQknE@~B+fg0?3H!P3v{t6&j}GRMsnN_IsF|=Nc69-d1w(jh1pIu~i@|Za zA?URf0KZ8kMW;CtlIw^GVhWuRiQCWXbb_uE7$CU!lMZRt#;Zw$nU_tJ%Z$LW>DjY?KSt zv1*(}hfH>4zsa`neS>S2@npi}TohrRbcHwqpe#WJjhG2mUx}fDjK^*TAD4v2Qq$(7 zOuSM;{L7qWYf64gH`+?Jp1ccRjFgx5KqgM6{)MWJGL|q6(^IXO=FaO81{At&815HJMk0QxCiuro9c6uie1yF7S=9KHW~sA@+q@n#2g%Cm$4VfUr6W|qyjrsBjxcfL$4;yHrJTsL6OWVmt7it&Cyi~4dUVmHO z#wcFWg4yfY2Ng|t-h$K^oUb7IUCed8%d&~nB5SXrQuG3=0LDFxpmz7bK8n?{=p%%2 zDcN~5v~}uNW~?PZ9_pbywR~z4&joOf*lv;!c+NjiSEG37%IjvifXL-+f#h-qCZKf4 zsUNNT50j_VF+U`yVM>V&f?b-K-I5)P3b}l?Z=c_pedOW3GJc#M!(5E*#iuSa?hB04 zk6s|qwv3%T2YtD}pMF%y*WX8IIe6KG<{O_>tt?9-w9!ShrC{m&-urmCM+7F9wtIa! zK7K+Z`^OiZu|{;sh|LeR+!ulYSQ|Ic^RMudh<#Vrc?mP}@e@zM@H~qs9D+9Vv+GfG zt88a?@{5!kAVqgV4C0+s7_I_2b(4$UK{DyY2yB|(AgD`+%%mKyg|Vwmln5VVKG40t1%=^?CfTNP1_+1ha|-nS~+)wAr+7Z$3U=rJkZ?2Fz` z2W#=ey~Lk2T=JNG-^ai{TCuktADc3>)48RZG1N+XW!Ids2X_bu4My!2*q+EY>=m^XGUieszhlgB{}|00Fw6 z17ca-EqW?KM||&~h(Ol}a-m~1!2%o~`_G$?8o~(%?(fY!TU>j<{6)a`6NXyEMGyAY zeb!dj1dz(uHJ3HKI<$_-zw5TQo@$sWBl3;YnVxY*&T%<6LxGT_{W8^>?kOtJyK1l; zj8b;ta%r4?*H(%A3*gxTsX=5(b@~?yCpq6Imww0`j)TEM9eNt6xK=d+lFxbH# zQ9G`BcfujZ8e|a%9h%tMhPyqYO%R)*+ufgTq3h86xO;xxen#M;@#&+H9N+W@)~ts` zw2N0L2tB!WGFoMmEj^OW{-hS?ZCqQvo3by(MIa@ZyChctR(BvscvGjMh5eQ_Vkc$S zZ9lEVLsRPu)*RTU5RT>syJ+1YZJ$M=m7elk$)tDPup)4EK=C3{qXykEjM`_tpD!`I zpRM7#UPtEacxpI_aKUX1Qp{Pso)rpe&*q8TUdG2x8AcHwS_hL~ERuXyl?68R#!uk# z;{v<0R;rPZvUp5+7|bcUGvAT+f@K>2T_XGMq#O`v1!`>m=$y=q|I0Q382Jxc#mxSH zOKp{!>vkLB|E!rUfc93wTMl&?3?aek;S+0X(M%4d3o@V=vl$PJ7f4Azk`QLAOcHD1 zjn^VnL%?zKo>%=x$;b>PVOu>yhTo=A?yTUglJ`W&&2g3~1SBqxin?LTnf&UM-T)Ey2AiRa`?wfEh{F!} zZ>iI>GkEfk;D0 zBCSP?R#z;GnJGkYvpnmKB~9^oDhzvr2SwnDL0B)zm+vU7Zme~_G5GqaVeS41sk@zu zp&!fyw4-{6J3eRqRE%B=%*To`ROBzxfi`UZ7@(5YYYrlzY+Pf<>JG7<8cB=B48Wr% z+y2H*MP!e=pBa~s()^I?X9xj#CgGE0v_EBujI-;TG|JI)!Xj*mEYu!{hK#dfMjvVrgD>Tax0stA|f<#8csJwDW&sde1GA|$=3KXGGH|i-W1`JK; zD;z5aAUxeTZ?ueSiXI{wc`Z8pAhwg_p=5tLoZe?x8Iw{FMPNIdPSAHK8rMWeMWR*o z7%CBULYY_g7@|~cLG{DJqu{&OCC!f@Ox9cBtVSbY={D2w;L`PNlGK;>02srV2iTAF zfQQ9f@--Rarx!=TP0FbR((Yp3XiFFlOx7YVUh0{XLq>R_$fz6E#6{pBTSJJe;%DWO z(l8BgWK|?$+w@eL>RP7-Sv%h5xja+PfIMmn&LijKdB$Lq%$lBCHdxqcBan?f=x`;)EXFBFktv`+JqV?MoD1} z5j=qSlSm_>c_Pehjw&` zZ|nTMm$ybK7Jo+!v=3)ZjZ8AEcTajx8rbm_D)fpQNSLt?59Zbs!G}BaG+qJi%TE3~ z2V?E6I}1M|SgTfMLJ(T*qPJrWh2DT9q;UF0mX8XTOf_<~r-hwa&s9pjvfwJ0MOCXr z!Wp!cba6f^Zh(@s#i7^d&lgz#pqm`W?>U_al5EBuB1B?CGGMmSbbU`4LGHx(U4{+VMkgFzoe1F18LiA zrh~fTZ3+sgZ%}`_R!U?w0hnVVfQW2M06h{8H@duLm-*|m5jy*`36Q;}TC5wVewt$A zwOFa}QlfcS>neL?Zshhx>Eq|1`Sd<7lW$g2#Fix&E$-_At`ziX& zLl;w>15nm$6Q_@wyIJ>~WtvDcf{p)vhYck7#U z9HZt>`>bO@QIzrq$(*wd%7ME9e=YJQeQyHxQ6r^O)&BIxERo*}8+}Ji7q9CmqQ$Sl zn4=cGMvhroar^TlE=fDF+^d%lGNd9dfx?o(6VSM8THtPL58ZbEM>A#;ZtuuB~XDV~X(+Cleah57~rut;A~L=sdV+)MN%en#n}ZVuGCDv2=(J zSU{@F9}1gWCa#=u>1r9B7kEe|w{FP5YDk{;z~B!?W^& z3KwNEpPpP&3aXGW*xv?hY~-a?-#m3I?*7WVhWQ&y{>8aUCF)zmHyOc&@U7|ER8-lG zz@uSA7=56u)Xtz(xvpgqcFkXJuxi|+_zo!QpTvMC#r66mo`p3|wsnMxDtp7XcJ87C;(*Yi^MP4*x=4DV0esf&;YvIAG%MeVmIz3;8yY8CdI(haK_Y!dU z1Jtr$d#R|oaH|$1nlildyek;m0hf4sTeCgv3HZDT@x!5B1h|D|?1#vo)v~ zb)$n!HJUUD=vUXHY85dB*rSdBjrFOJo`Vh;Hc(%cT~pgQ{75+ zzYM@NKp(*F^0#%`C!twK(u)N6JpFn>{H#{I!E4s~`b*p3Fs^y=m0-hI?kvnd>rJr! zEPdG_s*QET0y36hKlRnx#c1?&ZELi{vq^!l4(l;Kf4J5C^a+lCg$|Pb?;PsC)9IZ5 zsSN!RlPmW0zHc8);dO2W~j|KpFCgeJFm2ipGd?J6;b)|$Hq z72qO<3gZ#-s;9K{F%F?TBkruj;%P`sSnWV}=bwdgwMHY2UkL5fg^JZ|r=uA*k1piT zK%Y;FqQdJHw1|zs^8CipJ8=GGPI|^of_xh%RDKo;*=eM~fgTkK-=W!pZ>ABv6!RU> znmJwtZ+i~9scwxH1|>--_3B5*7~tQ4fr31rv*;>{9R+FQ;vP$ka80`gXSKuB>EsaD z{JmFjKD_3{Ax_6k;|Lue#k~2wX z65uV$F_*&&RM3e!dyVQTiw>;-C4g@?N!rP^QbmXI?YHJPqyGMhx8bqn?aU4+AfB{m zq|67wlwl#nPb-Gfr<`dbL1v}@!@O>)j6c=AC;E-|1v>cWc7(%`q0kHRVuO5Z0jSqE53fQXJwcVz@uPPH}Edyjszp5X8)(Z414G)1UR%fjjETsiow; zqwML8Q_iKoymxvsJPmnJ@70$87`T!Px49wgg$nMv_nHXW(Sj;jS z3S61eiK=zjvu;Ki^Jcl-W3FN>scN@kxvUt>BTqua_8Nu!au(SPr3%A$F$t=ytts-+ z21fV7>ierYxFig3SJQGdNU>A{F=&#YMy zA+*MKD*t23kB`9wH+;?NKgZe&v6Pj0ag!|5)UUCnufq(I2=3q?sT<@9(IMUOyjtW- zH+wk?VvYdOQFBt6F?3(RVgC0u6tZwZ-7#VYfI6@ToE`rd07Hdb#0diE6G7c_&#`11x$Atq68H@nLPfIhEmFdW(Zq zXa0&5ff^5JkRZMZ0(Ff|y&SWR4kh zTXz_3^Dt?B?2SJN_{)jv+{><`^1V;yczUJhxann=Qrjslk@Mvd`!Na&U0g5sY&GmQ36&4!vEcfrBO>pT;oKnln+MVWmQ%A!T#}cN${3!ApIq_!0 zrmlWYq<&VEB`ebbXi8rNAJR&PS2Fj6bx!S-XGJ29nDwYSXPciSVrtIGS^=6D{#Cub z`lyo-ysfIu!nWe~3VJ_$GJg!RUE;r9wU>7FiRp~FKlnCjl@^{^)V}WwO zi=BHNF~qmtPZHJTbbsBOeZnZx6&?z1<3Agpcr3)=|Kj6f;Z(SEfU~0IObtUq9`5(zpU-P}))cXT0V5?_4O?|8SweZ&uF# zjdcJc|5&jDSpOe`uI9S(`hN!9Y~iMwyxB=+&y}EW{v^5q2Iu%U`{k zmWFM!(pZTpR>!B$D!8VLaGytaAm;0~9{U6G?01rNO$I*JWmEEum~iWF{~ce;ocej; z1Vsl>oGCvw+9Kj%Ws{n!{#w?e$XV($Hi+K=zN|Kh--eeC=SZB`cKqN&4>)a>9Uu?< zZ1nSpX>{8U?kk=lqyXHAYZWPP~X+!gzmxA3OYH3w0T8#SDhsatVmx z19|8HI`zWm^8qwtjH<5 z^L{(XHKUEly4`3IAg!+W!Bt3aBDuxGO%EDKi&63%jD=)+Sa z^P_w4pIYd{7vJLuks#J>Gtvd{kYPh1@{~L-3OZEz^=MZG?GV|{1Gh6hT}I2o=Lg!XNAMy*dOdT$1Gfkph`<;C_YO&=d@CEIS8dq5zcE&&v&a^AOX3h1kQTbkhQ z(&-}`UtA)q`lFstf2N4w=ih5?iBS@@I|APv(g)Qt-Z4TmJA1Vt_%hX8&x`-=G4{&Os_zq?()%+g|#niK8ALnoZVO5W(K#aS=bYOpR5{iZ8 zEMr!s>1`$M5mHgEGBWPXd*uh|s0bNXoTro)_#vM3h$uhiARKEb>n8;u!iTL6wJlYV19zYF5@>8}Mf5 zVy9VMd6%1(P);e)Oeh4Xf#JHZV0L<9!Ytx+wGHv&vvkKSByXC|H*NorK!n37Ykxrt z7G%~t(hVTRU?9eJ0sjGmfW<8TLrT}DV4t?{cQ5W@r1JP55CyvacauSa$l+GnnK6}4 z)oIQ0GsrudD*b}#Qm@Fl`@yxe`Zh}Oe%E>R=}gzAzmV($uHl*h!bGpNe1&>T|E8r{ zJ3U*Kp>2&&>)F$X3&O-=?y@FtV>Sa#OHu2lp07gzd-azmjR#t8o(>P&S((N>C(Oim zL>#&?=EezQuA$^VdB>De`NL#~TE#!^FZvf_FCEIa^D%6$fBn!%F!kV~x{l{cR3ZlC z=ZnrsA*#*)OpR#-G)<0)b6z`M3q^1iP;+&qj|KIC<8-gIwqB<_13P~Gq~yXUQV=OZ&~g>t$kYy^r~bQesWySENj($H+@R~r6^5%xyZb}~dO;~13FKzFQ`Y>+9hw_$ zZ&dQzxxS}2(kI_Z(1u_*fb?u)o17f0@4!c!@{X&P6=CPM`p6Rv<8t-NrW)bY*!lL~h&MUK5@B1gu zV`tj%YaqGH#hs%)Zd;9mL{NGtiuK)4k_}4{Y z<_m@lnuX&(E6T}2%KxTq0Cjo}_J4JH`*n5Hf2yqCo8kB5NrjUX0?WnKcC!8DlrLCn zhwE0{i<=C^N-WqT>;BdKU4Lps4HkqdVCD7RacaXN8YpP+I^9g?j}$vfmcI|U>UOZa zKR;i^JD#+l%fDF2&o12X#Lm8p_Ga+9GxLrX3>i93iG~4*NoLm~pb&XJ0a#B~Sflv52dZ7E<;}9ue~Xgpbnt;lQ|u`Y`U8 zpj;A=1cBJpWdv|8WcSd@{G6Z`(Ja>t;>yq^Nm@+l|4x(<4pd?R@^iFM_RI)| zpbD^vTzby^2u&Sy9L)cF1Awus|EAm^%<0A=b^I zfQS~5>Z;QTa`*LR6bR526Ls9TPSR3^M9*sRA{47o+W4dA1ksL!)2+hhiF>Mg5iCDy z#t!Hi)%2nZDFW|N|2NkhApJPDRZlzYi-%tlxI`d;4v--FJq%vM1$*>+FZ<_|u%(EL z;W$wVlV&8PFHj&iQ>9rg9iKg?z11VgOtPJP7((TjB=G`W(S?XZo8@wV6)qfyu!R5; z2B9ESgTXeNPONOZ6mG`d(*yefMAHtC%= zq(&<`oC(2W-yk)N_%@m!G!smtlOwrwG+6|_MQq!VRxrucOSgk2h8q$`2ebMIld+g6 z54ARfcO)YK4})OspPT9;`i}^IiB#jw2>{Y6bC&<~%;T*`cdDL3aH0|U$O(_O*w7mJ z9S?l9hahk;Yi78KdKODh&L6FZ8fBh;pK)r-bN* z@Y(4Z^*7?luTgQtJzDn35kq!5WZqCA`7K4ob)4SNVV>(CIMSla{Y+)f>5-xi_#2ds zMRB|gB3m?=CQunPABq{~qv>o_%k3)}QQ%WL+S;x?v!R+TCuXDqd0)H1<}qnsNFze% zW~DOUUr%+?eHcxT%DYm~mJoueSj+(- zuRF|naf9AI(d{TY2dB<$L0_kMbzC@IOZ3&(wpd2@HJ^gke|ZjSwRj;r;LW0 zR`OY}SMrvAqkh!M(I*RkagrwimXxm|u5nxjwHl=mQ_y6_Yz|zq5g7pH%TnLmG0`pL zA(*(!BOxa3Dts!h+STON>+40MstZ{0art!>DsNtrUr*yGCX*`doJMZ}H=c;A$ZoE# z1ZCwc0x8BG8msnZd&d%7!rgN%!LuV9^rG~dT+hsWQS~%DYd>wyCp{I9y^lML|8IZ- zwQS%xR2QA*uqW&rO(~$Ro0LK&Ug{U&fHt2!ksPeKBmpLj={a^zQIE{d}&ff zH`4v|$40Lsw_7|P^CWpZ6zc2LKn0n*Nh82y8&oSs)`XV^S<&>=$qgM6pIj4Q6WWn4#IH-Q2J<0tzMp8Rr# z^@;%p-u;FYmjQr4gqg0*2rJF88Iz_vI&&Mz zV?7jh$NKV9{$G2oZ}gRAb=-4h{WrUFZqh!vvs8>?9TPLhH*OKB3|5>~xk!XDr|JU7 zKkQ!b)=#pPI;`A&jPLx$njx3gVMqFd@@o5Ho3`)uRHF|#)x2M(57~pNFIaC_!8;x? zu!W;V4xyhxG_YpzVq82*U*&UkdkkK&dX24navW5%m>F~Jb3+m71V2`0y-+)i94&k-e`sqR#yK1#tfrh1Wfx^&=nfqVSZp{Og|m!T_>ra?LQtb{`VA zsOT5-tjrp(%B@xE4n1RD#HNZj5AG}&!(rPgmuXtfnc`V2CPk7a)OD>?b{fD{!7)SP zr+W=A){4afN;qsxULXC{kweT?l*PRN4L;e!v|nAV?PQV|*m*0@4tU#M zOFFcGh}YtNV$QZ2(_Qzq!#-+jJdQ=eRIs}@I4`W?7S-lvqYAaFl5n03Dq0G7JANb{ z(ic1|1f;#o^K!C7y-}74uBr+onisR$lD);?VReM7Q`=TKxd$-y?m@Gcr-csW&!5*| z!yC!28HTjG*62R$Tz_*uRs1-5pMDX1$@z7w6ZB5P?t45HRxTQB3D9nlW`$W{t&XHe zXMX1oiX_2$dOWya_K09Kea2iBlD$UVt}oXCO-sSuX^v@T)(b=?%%b4`EP_y)&aBPU zh=@m`_=2i_P|p8%miFIKO0IuVO0NGer}qE%!~sVBv10=;bN)ZpPBi5Hsa4u}rg2_s zGA&9A^Cu@oXMQCbRl<$LEH98g0bHl#IX567{c-t;PEtydwsA^!h=qWUp~mCw+Ku>Y z6>el$K`<;waW3!VB`c=;9N^n^8Z>t&CGEcr0U?+t!WHFBFRqH%u@D8|#-3%pN9Fjt z6CjH0>5t~hlqc*FhwI9iXLJx`x6m6Z-WM-_ubBB^O39^KLRE356pRU8@BN)$N;aXRvTw@mJG!oXwXBiJjZGZgJz#G3)f;>cV)uQ24d|kx@mYaTk`X2$Rvr>ejk3(>O zWSbylhwZ{w*o!CnB}8oq+$`bT()(D2^@`bpu1VZ=P(7JoO=|$#;4IlqrQaOGBQ+=*DMZ(7V%3vxUqL$ zuP9n$Z}S0`u09S|Ur|l%mP&0?^4ywHQJaerrn9%mO@O2^nDvOKOW;tRjG$hpvKYVY zcMk~L;^RFDnsWMcSEhQeHfe2^m5_@E&;9CklLtnWiD5*6kIpMeL8QM*sRER|yXe%l zUP}I&NNECivvLhx3wsY43TuUC=~5_Z1S!6rtWK1sah2I@Uw$uN&@C$d(zzQ%Dt=-+ z{ZrLcv{v#s(RutRu?B}paCu(2#{OWOXmNO(veWC_KkM?IW{%apKK>fi^)uf|ZMk0N zl@l($M7Kf}hFiuf8RM?f(%e8G6D-_FavR`US{Z#Bs(% zyH0K575%ZOtwF)|`AN>Dcj%q*_!p|~-Q6)vf{;3Y$}J0T6TX{Tu!<6UyAVh;WBG4v+F zer|8Ti;uMqNnbM3``ZkEuh0(5bh*@(%9Q~n952GD2iu4gP=xaSGQd*cXPgtg4C~{~<{UppY!rV`whGSTA3{9IW(ZR`89ko3@W5vi+i zX|&GXfm}1W(Zqtf5xmXRZ0iwJA7ZZmGMw0j2VQB@mO}zw6I9*?H`r@;e7uU@z8AXgW z!x&`*nZwcd6CX!DnikDjYvkm|Y%RUAnXxbLI~2C*03Eb-{+V=6^sB*DTlOb^;V*Ud zwoo#FNJ_EtTSzr6BT4;nj$yi^y$=RqV2kZ<^{|r>)cS( zlcm|}FZN7g>1iBht3`HWsFA@kCN9$ZB!Gp%U!GI)zdxOriwDNa#+6h5CLF0Xa$Y>B zmt#Z#8ub(4*k=C--Roy4jOnY*vsaL(YiO-G*z0svR~zD$ow_7h-U*|!@5=Bg(9A7L zCj#c4Iw&dbT*!Fsi%Ml>Wq~WKgm<*_M=>12t&vlSO0{b-4e2H0!q%z*F!@F7q?IDy~ruhVjfDRbYxXH z<>sixpG6|=pdME)cGQ3^e+BdQyg1Rop;(F z+QcC*CbzdstF+_G%T%A~L6x0og2B>&!fxa{-s!9Zd$#LCGtc0(Mb&)ThDk_i#__aE z%%Hxf_6g!Gh3rM)&h??Sj%*J~&4ZTb_Mh9;E56HNTA!AX2m2TO*O+31XQ*xIA?^Mq z26++&3nZmAv;Kup@Tlr;z9bP9`bM0^Zbz5hddcd#NDQ9u_ICQg8P0F(gEe^#_Ni}iH6dSwn8*jYVrP|E}x5zW=*>-e=r&xSDDTQSnFQ&#`Be~Jz(V5^T?SXH7%9CHIDDfQw zNA)sJemZs~cWUO;*y6&szgu$ZvPM+znKWE4!^Zdh<6ANB>%JM-teEv%pmFN?vJL%g zY70MA{LQE~TU=gR?EAT)`*y$Ig#8bzjK_cOei;?_Kwso()K_Ea)JNTg6-jyphF8`M zJ-_?EZ`He%-(sqp6c@a&q>Y}X@b?&nv17A*L&%XjvR-EjL^uyowOrq#di*$lAKH*B2p*xGK?%dX4vUu3F&|CyNI zYw#G?9@-;c4;v6YZzZP{Q;Xc^KKIi6@Gx)N znj@2n_vp<(H|)`jI!%;Q5m%;gX)R-EuBzK*Jr`B4%s)GtuCMZ0B}z~_oN{-p z>XDPVeINJu`)Z7?%J@lcuY7uIj~o=O!ZrG{ruXkzW5=p16+?#t>)5%Bmfqf3Y3kc{ z9GbdFb5n*#S|{b_aqb^pp1rZPbFUc-GfdPkHy?daaw#t{shiWHdpe%6Tc2Nx$uepD z@+4r<8NHx8^G17S*BxEqtG3>0!Z&uZ$b4*;?emGZe(=)|q#t>0e&fq*FOBr`O#Sah z^_^xfN;BOUY8xtoqybc=AHq|fM zaOZQ=!q;QZ?Z|jFyy3=|!Rt=<8tf8z=kAFOhpJNC`TN3c;w5iK{sXw{9d?hc8T|!Q~fI9d)zuV?P=V#gTro(=-lh^iwfnXe?unP zba6Du@%;YoNPwtvNK&-ClFx_`9KPOV_OjvnOdtljX%ZPh#X z(LSex`g14VS~RPA#P^&RvvwQp?)DErr7-_okY`uN?#lfF6k+*~%lt|+al?&30gEwkv|%^yk%R(nsDq$z%6H*5{|Sf#nO zd4+b%w<~4RpxqbZe`G#u$Nxl8wE7o38gf@m-d(*2#TMm7T zwtvoL!}DeJ3xf}mmmgjURw|82d8hx2dERR5&Url!c+3ol`Z3|j^m8qChI2nTFW%p9 zlDK{6%#WELtXAF+o8DFr zDLlDPuF)lIL=R3M7_$1~RM+RtC*o$NCmlU<;MkBQqd3NiYn!_f*~@$QezzE!;&^I# zubW%u=U!0zWIu4u1szT2=~Evp=k{8X?c>$|!I^AtulYxIF?t8Syit49)XSN5aOjA2 z4>@P9JLg1cUnum*y*x8N;7jnNYL;>Nte|_L;e!P_iTxiqj!r&iQ*-X(F#G$Ttve}> zkJj3=Z{?jizs!ywx%0((^saSf=jwCd_Z!N_-ri}SZFKR_hUK{`OBk9?H-DZKgg=hk znnW(wBiN$PuP+a}yM9DbwBB(A{WHon>j#JTEj^u?@_x+Te#Q}AXV#k?3wrD`<$CbZ z%CfPy)}O0Ny|l^2Ld#xhv8#u$&yW?_hWD8RJU68c;@!G`#{0@jl@-6nZ#cam&$r@W zTzdDYlegU7DfVR$YS@9EKx=(YM#2AYjdlqU~5?QO5Yo<*K4P1l|)`U zbf(wf@1>%2pY?NZr*NGLyfd!HOs{D?z4H0Jlwd7A}* zj3~Oht>3CHgUqT5m)@!$ee0f9%xKT>;^|s?U3&YGHlkQvw-mQ=i>C)z=2Tk?;Y3~G zL<6HDcs8ZachDcoZlL*9dh%^l%S)@-PYI)a|o)7GV2;09sKFV ztN#uZSlC}kEG@qLrF44km(m&AmZas3+c+cDwTv+g=n<)W{_rs|rF3(H*P7=FrsTi8 z4_Fn59)%qcQ*K-~P;TW0S6h9LHG+|cce@ob44mF6dkWVZR=HSsCTIpb6rW|iayq=l zJN@qCH)eW=V&*<<45|53{>`$}(#8vK)pl)IJ+AL3)9ymsE*D-sHLppf6cPjWhVgT$MmZpC0zt zgNWOQHVmA&vJ6&9_s=j;n7B522(`+3oy0G%jna0!7_ZTD$mzY`UVeY}#&5qv+^N0Y4$Mx za~Xxc!Wd1_;#vhiZ|1Cj3A@wumEN?x{1Eu+XvXhK>-UqdXD>WlbAG=_e{1}olO-AJ zgJ-(=81UZYKYo|9=GR%_?{KwsT}zc~EOg$Eo_xaj_mD`#D04jSP<^{|-}u+b?jLU7_p8gfS^q`nW&F_(j;jy#bUkXdpKJ(t^YXIl zM;p&G#}6KGX;ifS8}ZF|w(r#wm#wX~A1uE1U*8GUw~cFiJ@J^HJ@`s(&A!<&8T(@m zuAF+;U@RJ1b-rbX{+g1Z1-l~;W<3nJ`@8Yc)P83VC+@5HKE@{WX;+@2FF9z_xRW1x zG+ccUbZX)6`i7w%oF`83e#`lqt8Es;0(7KJbV6_`=(J=ijRyN`b05=?)Q{w&gV82A1ui&CfS6GYB=*Y@3vF-@#4N?1G1 zmVdt`Q=y?@{p2YAoZWxlo;l3uZWWjN{{8zyPX=5zRSk_l-caPWvF3y>JY({5y4m1Z z;ms?z|CN5V5 zDuee{(^%xD-b=J@G&^f=v0Ck;v+vj3$(<54^>0)Jx)+CjaVWmLFN1GaLy9;nudC^r zHJxmF8>Z7I=VbEbdk?fN2QJ?<|ILG43m0B%iGJ2?NNPc^--{1*p4a5ba?i#p~Idy47l=kPeM>#u7ML4MKYC+f|C1g{ zIt(RO-?7~}Pk(PA>rMwWmfrt-CZcN6p9KdpRvf&xpmgzsdw1=I7-?_hZyBO(`!z6m z?r-AWjA;%1hfm$RbA6nTQfSQaZx^cGs$E%oZq5?pbLYr_6J73Iunf7hK>4@XkdH$z zOzv-cblT=>txQ*~+xn3{LyqUU4R2!1pK@<%1UW4GT+3sJiFz-iT^RbN_tXx4JbCrb zp`+YV!ws7bZ&0!!9~pzRAOB@N)mw>gTlgisWv4K*f63WhD{2leN_3n!>3qwP@qg~^ ziqk#ZwDpgra~IVI<%?4u9J)0rx#h=&sN~2c-=gM>j?g_ZJ104HxJ_Q+?FlMjErW+K zOD8`pUm(&h`TMNUL?JC%BvRrxpIp3cM&`4*Pbc?^-FPyo%HTxtpPs9|!#X(*xpXS5 zIyn67j)4R2R%=ydjQ!U#K&dg|$BH-FD+;%jkJP>5I?uLfO5sC~c-FJ-OHHmsYR4At z`geTsgh|#j^lEF8=gk|6QHnMon;qzrJsl+Fe7_@$6L`)~CNM zU%qu;n?7O9LA8?f`(GWWojdm?L!Io_92frl4r7nNPFtY3py*%o*T2D9!xV|jidXh# zo4(Jv`s(kV(J!ATjTVI+v$=NjW#H3>Zkv`YX6Kc<4!zf3XtXKliMH$X)QycTQ+K~z zy{$*rjS-s_t3G)ixbaVMqF0_>it&>#hboQIb7q;}cz0XaYtX<=wb{jwdT(2AaGG)W zMSS?&agSrJrDxh{UAUC}bYP@+%8S!WI^C={KAN9&l>5k4?|pSqWzv!!&qck5-mhP- z{`Q>;OYvgr{@(oQFG>S7N`LIk-BjD{j%}9timc@eSJwVbSQ=)(U*nkdCx!Sc{kc1m zcB_BO85KEaO+7kyq{*t=Bgl^)CZ z$Z34`a`7o%fv;!yozSkm%E*+BH_d}Z&wcz?JpV6Xt9K~bP18#={*<1MR!_nH+7dsV zM~kMMeZgvqyt>HXThP`+bHfyhb=AM`9$k2NK}iT4adCcCy?1i{57y0oe68}VB^>Sb z$;bD-GuH@O>Gmkbn^?6xy)oxSw^{e6<_y;#@ay}Tyzg7@_PH!LZuNU(iiPDSo4vVO zqJKMX1d@kHrSATfPL+>;macd?@oT|c>s^U~wN;B=etLaj|F4hBEeb3qJip|6gtc?V zzzw_Ro4@kkkg==jmczDJdXY6W#Kj;XTQf+gVTMtS`3ZzbL(GQ5FS#{WQBKbq$*0s?faf%pBu8 zmrN~|skx7xYA1UA;(_wKm2Qgu{Gux#$E{oCx!L)q&HTn)V`f#i3=B&r9_J)~ELY_Y zijOM({ot>+SM9Gjlk0Cv-%kuzN$*;&a-?TqMS%SR&CORYJ&buCP?_88zgOe_#J9I9 z9CKGJZ|wTS&6MRjIO*b(KaD;uW(}?$PAlj8|6zw|ZT|bB;`iTDQJ>4xZvU6pZ**w) z{bLP|S*q{X2~r!=J^zp8gS=;lxPdPA<#~^l=eqQ~T62C>ypm1fslP?%SGwthoYt7M z{LEG5z^wt3GhYu{9vWuSRPxC0(ma*1+f|K{ZV3}La;v=D$9(eMw6HkS)PLvWHHO99 z0Hdj@7K*vYt=9cqbz$D*)hZF9Wt*~YznJpD@Ui{H!MW^hw%^9vX4n`{ansnG-oH81 zHZ!Tb`R2u-E*iTIs1%G`cg1V9R&JO19;bO5uKDtQ#_X7t#4KsL!@r`O6f5E;*Y19p z@KhLicenWzKKt+dod)xFFl z^63VLuc20NOLuQOso0b>-{#Tg=h4am8G(m4o?dEGU^vj?!ck_WebIz{AC_+Ic4%a0 zhfBVG`uiL&?!FpZc1Dx=IBCHd&amGJJo^OsfS^3!feF-|!)S#J|Fnc}rfOeGqQC zW!-S4Gl`$dKkg>{JyLJw)<)JF2O150QLQDkcKyr!d1`iHQh4?*{~b-)1JZi#otSlK z+w8~zP5<)mib9^xxEShUa)eAf+{>p-O+CKpr23nnt;IeHbINwmWjKI^r3h2FT{yP;U`a!JAry7xU^f-`4Bhe>t*<=`~Yy?$@yM7b0?2 z=J~h$j^t`5{AbY1^wAL8G0QG)?cvYSJEQkh)#}r>-y;j|Z`!rpZqn?zzg3PDE?!YJ z(D#y$Wyt~?yPw~li;^xqdfE2tJ!Fz4K`1c(Z;OHuUUH(6&fSI5$DYX2*w$CS`E0Jl zb{onV?_9Uq$eIzs}XQf8F_=H0N)7Uo*k(e38~l zmz)EE1)rOnvbPCinx5En&bI8lvkQOGv8JfYudglKyzuR*&J8Nf@k7h{Y(CM8*z|2! zK#%gizqa*jy1dk0q^iE{zewMd4XSCwX7Ek_BM&_pJDj=G$ZkY!ip_+jCQI`#@fIK6 zukJd*mvut%cxvG-1&5v|-^Hp|U!3eY>iI+aAD)AZU0=KW9p0S(;^kzk!>6DA@Z0rc z*V^|cf4Jr45q5H_ zhs0#fuuc`Z>{1$4Jx1r~z|q&O&uQ6|kH5dK?}Is6{!{urdKFO7C)~jcQ^P3K&{0dHWt5NLFo;&@)p21zR_6*jlJKv3A zw`TgI8B6vW3j65l3tewI{cU(Uc#`PwvF9Z^TGr|RQtudftg_wT@AlDsn`ip=<*p4) z{Ylsjo_*JyInQQJ>h$QWG9Q19w+Du}BuCsz+`f6V)s^K-miJ`}PTy2DJ#e*edDa28 zW7TSJ{mwy6&Xdk<-JBKPsnIL%-G&*{nLQF#Y|`E|WJli9)BF2>zB9P^&xU>60SoTA ze-VwU$>GQ4`f!InIli^_(SQ5=IWI#yZU1x5Y0g=jGes{fZp>U4)#;VB$Nd`D+|x;u zBQ^!Ds~=aX{qmx)6M5V<_vebybB=ixc3$B0Rp+g_j$`cUz;O4RvKhQHON{nTdwTlu zJ#Cln-R9jNyz$n)!&b-FywXT`dDE#hBJuGMB6^c|g{aQZkXe|0ve(nK*Lfd9_l~Iv z?yFt-)M0ewJ0}Oz1CM8(`*LFCtKDTL88Sb6)tAX+(5^>Of2T5l3UEzI)j&yIv~8+i%+_Hl$v=)% zpD>-WM0L7t%f|mEZ4G~a@x=G9k6$-;y`XcjtZ?v1ogYh}PJ#|}xR8Bwbx;C=gns>Kvelm)&S;S0x{d$~{jb97d{UCW{;ZMOw>nHJL25;B) z>dYEG%f9Q)Ztn{Gd%gQ~?ah}2k>Wy?hlh%5^zTKydKfj+z46Q0(lxOUJe9UAp3q|b zXvC|xM;o^Eh$+s~yq@2<%c9ORK-J}4>;sT#B=&Fi$KMef(^$_q1G8w;%MzuyrJ z>s+M&YS?9^%UiVg|Ea34QL-?5dhK!TNA(c<^FO;qj!ku)-Xp_I(_iJ#R5OQXr!3zo z9xmlw^uO?1VXUjNLd*B{2V+;K=&vJ9Ms2)m6uiOHO>Nz%vbw+1lr1vLni{6fdthvy z`S$CVl577Z{fm3>JkWpW=f0bl7fgB_lI2*{B}Zg7_G(x2`T-t{k&nt|k$bu?t~_)! zYn9mny(_wDch?#wO$f0z4eK+(>G_GFH(Yi+H@jhEHd!s=>mG-ywX@-8rQHVK-dO3Z zmgtgZSO1@i%7rR#4`r*bUqS|~Zp>@CqGn(GE3e6|`Jls#Yij%JbKXQ>Q8761Zu=Pr zE0IcK05STq=&G@wI=gP|(UY47Wa;Hk(Ad1<^XioO*J3Q!1x9%_9IrJK9J@0p|N2m` zk*+2~tgmQ(UDC2?>052<=K~EUtL0zi&0e#{_{!tWr>A^*66IoZ_Uty>ZV&eU621Jv zND8RbT=0B(^tMD1=at#%*OiwI$YEU$y7C*$m+8B#(MyP5&budi8+%=EYgt@&b+m8V z&)u)T4d3)`EYaUzfA-xEKJPk>ivG2BKpOK#>aB5s$F8JiRh3yB%f1?YrQ6%(c4Z6B z*T!dt8$Pn_-Y-Y_&WlO=`ZB){T9xE$YJ4R+C326EwZ_%1<&B3oz{_=NV@c1ww-Tdg zI*tqD4|})7Wbf#u$KTI?8zD+6Icd#)Qth_)23hJh>`i4=S$6(~$N5G>8l7Lqv}7Dz zcpA`Lz7R>WjYa69nm!z*WR zUrtp~`De{-ArZ@Fo_2o|^YK!@K?-NDj2(LU^@)U7b*@Lz$hgXV+w(8d_ zPK@~1%8N_2lw&iJH}(0e|69qhD6f+=%Kg7r&V>y4t?u33-AKPdJ#?VPAo&$E1)hLh zdt%{1u%Fpu+7d4DqWHmB;Wz~|Rxutq*(mqV%E&G(KJZi+r(zC-p8adW9 z>Xs*5)tmQh{2=BUK@U+cm1R9%jDN)5kUjIVqUq1(zfB@_$7x@*9(Z+~$D3GW?alr5 z@V$ZekUL9qRexy>Ny)m>CG2!@n`ghY@d)Q82s+! zS|JyyVrKOC^kth}-#@Cp>n3_*{q8_XpTvtFDf73)!ms zBI1FIh2VV4f`5C)^&0f|j{U!{#ohE*86R*I4u3u1oiJHp$Alik4d2b~Y}HhB%_6A4 z`#;rVma&=(bdNTyRkdDlHe|T+;q~!ao6c-qGI72=*Kbmsvy$?gPS4gI5QRI}XI^?z za=Ux^A+za`tbNa(H5RR2rBJf-Y-70U&e6gA&OLACX@*RBUN`q5XDm@&)#6N?ZT1Ua z-Ms1Om@PX~=6me<=rd65_mfW-ssa`Fdj(s$liT{vZro_{V?y7^q6J=oX?3J&p4naQ z<#yJ5_H_5zKPgrqaP-t57@y$OM+-*9WN;p31JN{iM-%&|d$)vV-2W}L;*3s;9Kj&f+T>_&L>%7k43yvj_+pK6%vX`wpuWjw#Rf z8ei+4MNY7e&x^YJP`m$(g@1B}A77&GSzL0!Vbjeke*}#=^MC#_+tcaaC>{I%`ri&r z)@bg0?%^MXw$(nnp1(U^3LE`fzy5sY27P__`M*`WcN&NqJeO{txk_ng$;E@&@0+d9 z_5Z2*eHU9)JtW@eQzxHWv!Bj-VmJJe)>wgV@4z#s@)%9^MgE^+>bUWrKJF{2^$MCN z`1q@?Zbqk>0d}QMO}#6d^L^nj)n+v?uyl>Di$oV+!K(OWp~ zSGc}Y#$>C&i{tNY5RKHy?iId8kgl-Ba?NhTSBWE^FT3-)qM2Lw=eDx{8d zx9B-N_wDh{Z?Ki?o+j04vf0xzwP#^g2G1*lTtZf{r7gQNV<@)=F(Y?`M;cs zWtm6vo@6L|Ui+r|_l&T!`rGRdW>q%FhxD7c&Y@wRr}v%X-XF3*{yeTE`Y`W@qFwLb zV_J+p#PZ`mb+ODjn7!S&gc(?H^M0Uty}!y#fluw>*irqBdLDkWe%hYR6K8IHNA~spb!BrmxL&C5xl1=VS_8v!MVv_v-C!UnaM3T<$tV+(iY^suN_ib7Q>(Zxv8$Zy}lJUCb%CzCpQ<8{F4G(~H|BnM`Bh2ll7 zrm4Oq+lpD7e3rxg-Ny#Sx@!&e2npF^yRygP?frCrHclGg5dL#yv1eK7oX1V>FmT2wvL)_tCSxy$js z(KEBg*l0}3HE51dcH1-NP1zEqRL|lItAh@wns1KkWakndVXpcy-p6a+=RJSacCr@v zPYh4n6IIB*#yzsRc17rmyK6%qnw{`vIV~FAHAv&uu(>O2>$Hkmz#PqH;X(y=RbZ^%sJ>iTdRw2{H)7YipoQtzS(9>+TtSWxg-Fj_l{Rxq~m)6^R!j$n{ zPo9}GCnK~)`<8zoC%J5iN>$Ab(;r4#b|~H)y`AV0!I@iV&};d{O1t~HwLe-^YqVE= zvCp5H^8R9SrgBnIeOAb#PSDReNCM%m~XVt7uTl-L< zpV#TNH+0V|UOHIwzl!I(BAJPm3XI|LdS4f5Rju!@bK~w+;=ASQn;+A!S)}#mkT(=` zpZ2TVaA@@QFAq1Iy7xVgIls*B&BdQ(+E&>_c*}zMt9Nz^Oo*PIE^9p2zWo5jr9-oA70u4>Fuphlw6(W!;QcRz41?CRsl{E@9<7uVB5SKPxl|Xba8)g&&%cw8q?1XDZT1o63MbY zD^TfqGfzuxyJ+pK;xkjz9xN%i<@7vp=e+wD3Lly(WoAtzr;?v_c5T;+INE4=Aw67i zhL&RGnR&abtrq_)`>jsC#8)!uy_N=0U3! zYq#bm#5XTbF-m(h@j|b4*&lc9){ozww6gOo=S4$3jPl0lHV(>B77ZA4zc@iZHi7rz z{qlA5a=7=_<}(Ib{HzQ~y>^)m=HF_H+LU^_35L+{v0t8W~O*IpfIKRH2jm zjQ!iAm)%*CpZ@f|Nrs(P&=m#OZoL&hz0R04QmcmHen0uOsPI*v{VsdMJa`XZdp2~&n z(&O>L$NhKjiP>>t*S*RGX_xrFGnejpkrk()(eUBMNV}Bi`T~Y^(7?ufyX`Xmc7FJL z*JO$R$^8FS7N+>NuRpottdbT)noN4H3H%)*O=FR;gM^J==EynO43%Xcey^&UlIqs| z^2O2u_mWBf?VE6VUzUYs6Khe)bl3h^0 z?E`CeI`oZNe8A?8n%ggidqMiAm~BVv`ZTetaT!$D$~pUtig^tg=j%#w`o-``fTPuwitP_`{fh$dD`Pv95$U%yFPqE|MJT` zn}8Yd!H;)7thhX*F!-rwyxP&T^N$}B87xrBv(MN)=y2ZHgLMIZl`ZSvP5(5bv2Ogm zu0w;flfFjuD@>S^^m6)vT-USPHz%*zV*fWb?DWIQ6}!SN{EMsHaWdGD&?YAknfsB(L$=eGAs(O{XU$&YNXA=C#rG15eGHm6xaI8i@(b68}8ToWKZcYv}%r zi;Oj7@vZE`qhn$XnL?(dE7UOn{)@%nw7zf^K=#m3b`FS!PEl$QhxE25j1_rQ1Y%EU zcVmiwvX3;_)T5u=s4{z^p9)iaG2BW#C438Q@tK4=*&pmQo*tx#t{QY z!;0eJo?hPYZ$6bX@w1XHOaHlPp%_44mQT8mCyW?8zGPj=L_8Mk(9g;_IwYRLkK|9S zrx8E3O8(o^qaW$xPV}Jma%DU*+(mv0F1))cGle)E+PX6q-4zxC(9Sl_A^MUtCJ+uT zJb`#oE6MJ-0-$Q!?j-HKZBx?=rz{G9rY02~h=Gbc0ZT$J$%fkIpz8w`1;BI6b07?? zVGbDzz%M(>ZcXy1R>aX0S}d}DzL=KcgZ_3PF2g~^gQN%L!1HS|2NiFtZIfcowzX}& z0w-iq0JKT*)Mk#vGdQe(WRirYIWQ#J3B^V9Z#krx-zipr#_Cpv6!W_VxndHSD2rY$JhUW(UO6sj(;gIt2O?bDfmkq8m=j?E zTapz#9v9|q=ScdN#0a5n36zc)y>OjI2EA;SM4j|P+mT7OK43t-q#F{Ac=9EOMR;F=Qx1P6R1k(xz$H zbbew>I2%p_^XriRT!`h)3|Sg-xUwQF-IbK0P$mJ4$R4l*&W5S)yAo_?rtGfRa*9E+ zt2VUJl`y*lo^Rc7^b{gxAX9F`lz6pKxOI!<&X=+r-bPb-{uW4RI>(LBQ(#IgL~kj9 zq(>(G8++)IgWZT8W|DVDS}E6V$=G71Y868cmsD^k7}RuS&&8DMfa}=;XbB>EcGi=M zr&N3L0cCBZ<1oktAA0DJvl2m*vjya_sl<2%7K8jd70j4)P3b0Et!JCY5d-MlA|M?- z2$r){D@&GS3T15pM?$jJS;bhEp*DvC;8`ohv&sq`nq`%lTYUp8Wh@IcoJ655}hH{-E4;3JaW35L+5ZY0Pil? zi(rnDo0UbGqBb_<(D%dXfTvrTk|U?bIa0qx#hVzYz~)F4jgt0hp2_58lEH3@UV?kAA&JTDytF_@Tiwa+c{Ls__EvR zfYo81Up@p!0W=!Zm(W&|EHCpB+z+SJcPla^Z=JSE6PGEG&;!22Ac~q|A5MC*R%Fmg zCZ2(Y3@)S9!f_>hBh|B94mr+`7)DJkkyi1a=^r!6Vn4!iAX|btDJm!})rN}Jrg-v> z2_fUZ!uC!4i5&_c%hb+Qq>H!ioI_@sf)ai^A0!-x_MHa!mdc=H5e{G0X=z=gP0T4( zO(%OB9wh?VdQP4MkEPQHO9hU^H|Qf_qgKJ>k;ANr{^X&hpz6dExA6|Ijd!?moXTU7 z!P5x=HDAtjLPv`!6#t!$Jsx>`x_H%%0feRo3=*SJjswJ=GnYq>2q3DR#cIY?Dy%F@ zINHQYx_&GE=={g+fd3@3>X0dc#AyW%hqMhMGzYY9qV4Q-fdX_naT) z#H+ZreJXXS+K9rV02l{wG#&CmFj4L-WnU?UDfwzUA6$E*Tn_2^cyt9U2K=9?6+#I= zMLtI?B08pMQhY{m6U=i`5CHUZq-4{}5 zPZ&s5f@U9irjx42^)m=I%qrH8IV7%8nVjl9l5KL(+d7(T&uLAcn#uJaSS5q1l}& zq(UheU^THrcM}O!^8ExtJ(Mp|VMw#{NWg+$LBY9BIVR!DSAT+ob=Hm(;+JPZ|htA_fxb)N#V)P*qC zmf#DCoq$KKhM-W<49>hano=?_4dqOA0q+``YMeoo|3!i}7(Nf|D?F}SBOYP55kOW` z2(#XDf(jY0SVCV#KBfb=zl$3cR7gTo($Ni!$y|3riF~?_FzNw_VgsAALP+?jBRkSN zj(AUX!iiN4{Qluq4^WMl-G~9?P(Px(0aGZHXk00aNke$4baTlY@r0?0q{l}}ZXW2X zQSLw?@j~R$EJEkR)OmzrXZc|qxCxjtm9Xj0`n9} ziy#?C4)Y{5xRM7mup>-yd^?9ovj$Qu@JR0@!kn6sBBTkRj2cWcpwiv6eR4602vU~| zd$|;D{Yb7CF;tZ{+7cr1H9(iF`GkRr{6~_B$`2_M2E@2wAcaPL`TX7?Fk| zD!(VuD=N|xirJM?lcc{l!6Yl}34+`VxEKuE7aKAw=~nq-V=!x0SjcR#=5C`8Oh}!V zjPe0yA?Cnh#Ui2)c`gfVHY~e~T5;$?u$(V^Ai4r>jPeD8FLpL01|L>ul9Vua7Leye zM6h(95?&;me2G4txul~nVbn#uPsloHk}G|Q-kmv=NgzKgA-a=iMZ^JWZlh7)F7)st z^twy8Eg<(TB8;g&RW5>DFqMJ>+q=OJjI*I1(XD-0|HXv1k>t18r5wzWn00YP3M-3s zDfu0odfJzniwR9VX;xLD>LAJ5#*pwOoBZexyBDXX#fO)1v*FJYH(Q%21ojUH%@RE$ zBs{hay^zFMoJs9mEPtdbxP+Z~(G=5Z*@86qe*9JSu*XT7}lR$RpFiD)7X}S4f4=EargN^jk_y z)06uaY^5v~_+Z6z#9vxhL59D7NrDn@~IXh5#EOM87`LO-axNDs;gL zLZ2Fuy#lOMRxn{=B0EBEHcFXFW|k;b2XewnVhZ(f&Pw>WD1=~Z|KE>E#Z;nLPn^YS zHJB`_?jTiba3mI~JRM{|J(N%zLZM5nh+6k)307)kf*Es>12MMkV9hA0ZaGoQ1XsuPJfM7|CuEa?NU zuO`e?1(G1N)xH7Zd?E-t`cUUJ1XEQY4ay`!M7j1&9SnW42K;^j`1g7lz~Hh~3&01P zOrA*?*;5FYr8LWuXK5H4GMaE2*joP^tY?WQ!0mlQ>DMq06>3bdH`A79B8q zHbgBT8tn(=NM-^*;QTCbZ{J3ONbo7!)K5=bbCA|ZU@loR2xL)MM=)R~;@p=mIbbeC zkFqKjM#QcoOvNL%t)p~ol*H^&+O0dKcBpuR>>Uh$GFcCvz5vRMl0)%HGKyeIO=Lgv zX%u)daMG9S!5tRxrE+Q)P4rgaFiEFqFxN9TfVo~JhA_y8t%Nz5zkxU|9xT@HucILd zT(A|?GnnIrVmP>v+N3G$g_=5jBVnvBkT1tk^4dmpHk%w74d}^@1sm}T7E&~W&w7)D z;Sl-HWQ$uYIHQ=2q{D@cbv5=qWy9{AR*z6wM=+)#s9I zyzB&&&7ygW5^t%WiZs0?)s>JtYcrKR%2ZyW8u6)3lDngTPCJu8Et>ifstO!7*?R$D z&`oUaV8~V?K%F7cw5@2T>^nJrK4EAf2^OWwkq7P`75&G>garhK7&0u|9C9J7WtR;? z2#K*f^9iFVaCX|K;K+{&h@2S{5GEsX&{ipZer{Hz z5vKj5-h$KIkjRliRHniQhVo7nYy-!uCmY%lrdW-!ni6ZsA>ZZ@x?FBMgvYdUHZ!-i zJUuHI*P%@6sX&=XDNMHh)aeV1Gfy}xB>AFH@`?mtV~t8E zi_jt2Oe*AJFd&E3empiy2?RE+?)ad=#A&d07~r4H;R>iI zza1!s38{R7Jd6j~69fbMh+u3g>Z5(jp~4^6z{ zvoMMI>{b$wZ|8nKhceH!3AvcYd>)o&DqDIOq**{YzO*TXR1RJqCV&(zf-(8%+ya&W zAx$9eM4-*brCO0_(k$RnVGL~`k4g;EV0_BYrojZ1n?r*MC5y;v3?aDQGUG6$te_2IRV;=Soc6C zl8V#h#&IFYrK6JzDg6#$RK5lNkr8b!V1<5E(4kahNLz%9lpd%LBsl;>nwrbtQyJs- z`6$umG9XHk1&U!pq>#8^h3Nzb7*YXTCXXs`j8+AJQ`T*%7=6#1$YKh_Y-hPwr#!X2j{g_6fx>zMTGn zKfSEqJ~h-VIVEcg_yU#2oydGW1PdHsyXuec?flA-k%FAU{u^sxZzByOuH$j&FkqQzrS z1;@4x!umi39uu=Tk42>h+6GF-v5{}g<*})H6>S`c$~e$qFcQId*p6{|JgOW*`xq+T z2qvKV9%$plExPhBzBorshe^d!R&nr|SS~>kA@uXv$XDR<*%;N(?twN4)Rg0e2nzks zc!1~*5jS2~fE5fMl3H{uKtUHREMSl$Pm1|nZhdNb0ay$A6ap4i!p_hS4_#M0=gdn(WfEE#g zt(W;2W@baZ5}OSn2L-EKp}3Kswi&KS5}C?MJ^UyOLLr!HL=vF@`)yDwM${Jy0-LGm^5Ax!Rf%P)0qZfNM?B~aamS= zGb|3~1r`_i>kyqGk%hZ4e4&Vr8Wy(KJm5EkYOp+rF~NgF2Z8)6!VJ6Jc#B%IV>~uE zu=LG2}6z)54<&+PJxsdTY!9Su%Sp}^Ee%xn8QR0iN}F!AM}H8 zz|%%BDomsFpRCw%IP#7x#r=>fpzWH1VP+p{pNPk0Q{_L&ZrUcqJ`CJUL57vbg{TI7i(@w)7sqbU z6GqtxG5*^;K1jA;Z3fbW&=2YnZ5q}^bm!ri9juFt`zey-hIv%`9{nW1nMj;~yYRvg z*P?I5cOK-i$`kk3$iqZD9;O`+JSsFHcqJHyxu1u#XV4FYnHs_e>TneP+tJTwBD>Aw zvoIsU3uI`6;PD}~%;#Xm1r4k+ic3s?Hrzf$&NUC31o0vQ8QMun#~0r#lt(Moh)Ktm zfPptC5Ots)ArXhf34A>~AqQ_p0KpPk7-u+m0R5B|6Vx(hq75yB3vA~e$D`FJ9%=Y<_`KjiZ82H`1x zv}tT9`OumvdtzV|HWdO%NG#+3@jFQH0Ss|JD9j#E=L52um$jjk_Pl&JpIX^nx z`Al(x7KN>L{}19jxyS_m2zeCo^+lBAVg-6S1u8zB4m&tgN1YppM~p9e5eJ`br5(GNT~q~V;r_5 z*{3XXLxK*GhAnFeCEAn^nLK$60fHcrhrfl)KOGqmI?IuI6h%T%?g(q(2O<(e){d_3 z!K9GPs}Q6!sFxMw5zlEoqzr+;8$`qaxkR$X0Us94hm)0jj?~qaRnnA6!yk9RrW}3; zo56`H2yBtN3j84FWl%;Ea%&8fQsHy4`2rZGG#6qx`ia3RA;Lhe4`GnYHAC?cq-~IK zhVzn9*MM5ULuf4l<{*#+yeA=w{oxV?iv0nGf(t%Gq~g8HQ46+-SQnbM5vNh%3VqYO z4s<$PDMXv5++dk+CDZ~p6AuJ!Ei+I|Rq*u?w%{HK-gF1p;^6``l=n1H#uajBWak?| z8Bl-p^})SE>=2U-tYKC~IAilWU3*x2X^IGAUlTL58Iz!hP^6kzwC z%3vb&3k0a9z=xC{5>|LO7##%OC6OFN)*e7&81aITjS3u)I>mGsc0hL_E@gqYBCoMX zy9($%>R{72R}U1H{}wbLIQ1x25`bx-%b9=yX&xG%159e0WRL*qV`Q5^^bo%R3}u6W z-B5H07e;R!PD07I^c07}zz?EpDqq(z{63Arl*_|aA5@qv&a zKNT_*$hig>%8NsP4<-pXXmtLC;I&oS+dV$O0TOqCq*Yi>v;{2j8@@Cc)@1_lQW4$3 z8I#`(Wc&my?2|%*AES^3`2#v5fxe`RHZ-wdUVy?N-V7Ap=ovo&WFF9jkjXH&sKih#@Kis&v1Ts}a_8Ax9s z{|{iuU_$yHbv+26oPaP0-jWnsGWr1=HFP>~)DULCQKMUG$f9GZ0_{vUj$nUjijL9` z;DF&pumcA5I^?^9okoE+L^h}(BY>z1@duv+6&X4`sb~Phu;GHR7;PGIXo#HP6(KBu z&(S)rT|a>RMgzh6pv`npFBO0zhiD9We*7(jN%Dsiu?4`Ih@Ju-U6H^zi2LO~1{k<^ z2qta-m)AD}oK+Tp0cO%G0zh@-6hXv>0#blsv)n0bJ=F`2ZY#+~@(96i{FSFjU`zfD9~oyM7>qWgNpS{GfXn$%Vuv4qNJ@dIh>xkvD4m^zOg54MaHr*> z3g9bfX@-Uv8ruO(1GxpzKTh7MqJm_MNoZW78+b^}${k3umJlVfg;3|9vpp~=N)3Y6 zmZU@ED8pi7>_Q_gA~g%^RN#7)s1mXuqe({w3z|A)V9;g+Sc9mGt`XqbHRQek41Q|6 z=pkWhj_L{ELLxDN0x^?RsG+(-5mBIn0i6q)7!cyY%%H774hGMMJ$dMeke*-0mjEE% zdj};=Avoh`gB*Nwfr`sy5h}(fB(~%>P5Ba#pGPq(=pd9fq&jZ#gt&++j{ z5ga8HYfyy&G!X0?UC}{=iBcc{qq*{MI4D3Oz6bwDiiLJx0yHd&C!tFM`GG>{0Y~Tu zbA;#)ii>8rU^DctEbt|u?9ss@;+H#tWbOG2zze23cu!~%XtF>UgsLRM0$g(v(0vJL zt--s7{xZCXxHwDOAP#6Cz(*BjfVFwyZN7vMylaF)C>J0#0ZDdr5`G&!+e&3nBf{i_ zgc41RMZo%8l>Zg-p#&_Wi^QS>IWmM+@RabT!Di9Fg~SBn83^%(bYFt%Sdx=ZN<69H z5lx6YO(4&Y{7NC^*Q0Ntm7o>Y+Fc+74-|ahSAmmK*N90t@A34ekZ0<8~eK?FlRk?<`T z8u~b}JZ-EaK`un<(y9a1pDXPZ0wC1e(8nx#(GkYM``7ibcVG@Q92#B_4C!8&0=l2j zICz2PFVvrj&AFOPHCWK%b4@6zu;DZ4g$obD9^@K$S`n(W^ zpvjS@gD5|a9()4~dA9&VrFjlK`6Uf)+ucO~!Yx-it*QGW2*$>kgr<8$E-sV+(YG`^ zC?+9XKtKWq86f;I1axS^cGKUcE1+wYrkyzuX3GTwVmX3n7tT+yj*Oy#wjlg5haNP* zgtWF=iWhm17DDr(c03r@c1yC&T?C*2s}p$i8DR#RK@eu3g#s-MSt0ywdmE+%TO!ys zA6=pV7;2mc7?+-G1DN>v5qS(k28ibCz&Mn=1sEi6htbgmPlKV8K#>ET1fG3UeFb_R zrA4T$F1SJS|*(qi+ejJn*g5<>@WUIs!gf)(CqNVEaMkZ|L(v4g@I+ z$Q)o;2c{1KUbIheXvBC2nQFJ2;L#wNfhYvAy$~h4z#&8zAOMDqI0V*m2Zr^jr|GaZ z0T|t{qe4%5b`@aILQKOJ1ZVUFDU3t;9e_bPnT{H$Umc zST5mGs#GpzbSePp?l)v4nRNFXV6r}(#D#+b8$A|)aj1L_G82c>$j5m8VNR5S5-jfJhou#sS6_ zwdNGsq#1xnJusoOh^{f2fGoOdgUAhHE36@Y98}JTfgi^aAryiug;WMy z=BB%WkOalN0P={(p#(nkleI~GyKg`>FCr8|mI0xV3qBVetq`yyWeVN#=x}hMLY|Mn zH-P#(^8etbJ#s)mv(STX4&37fVo+FZH%9b)eU|}YtdMMGi5O~PLMDQ^VZh(#G zNe>u@n%Myc4xs#m0D~M6hS3*>aa43l=|5T8QGF`(kD=uQEdnVg45K@qz+0ea@O)5E zZ(T#0N`isVbJz-$CJC5O=4~6;4nsKtxJQhFTDWUT<8*2>sGiOdK_vuRF{l+Fv4g4t zVk8g}#2?^{p@Tp^8HqOR1?Cguzg_pkQ`(4jP>91HqYG@{=VE__y1z!B4=PkLQX;vi z0-74Sm1*b)7&0bc@(~uOw~^>t59&trb|+Xv{5v^v{Km2XPo5?cFc4n6v?of#N%aw+m9Aui=TIt=L|O19B|JJ*-V{te#XE*VKPVo$Hi0rI(u?o{O1oZ^sypz08Eo?HcSs^3 zEd||XDByuIERti&Po!fUTIvzg0t^WObq`y@Ix?69Ai^3D3kAObLv|Y!CX#J{(Hn!| zSsPj<9XOc+A_fH*ioPI5M&1i`A(Soz(3M7S!hkifIfk?%Q-n|mUJ0HMj!csbNJ=0l z0$`XVkeS8vwRHftJBq-^^qv*iHO|FDEYJZ-pn^f)Abz<49CG@-Zg3Rg-VD9Ffr4R@ zfK!4_f?s%mZ_(3K07K2f6pYWLJBn<;7Cs3FlLY#l@Hn`TfUv;DB!T9F)^Tl)BE%|K zOyG`r>%i6wC8!oGB~bswwp~1qiKPTA zG>`5mf+LHR4+NE%B;Wwz4MGHo4uaFKPzh)!Nvop>FPF8^qz%>3ONb}L$u96+FiF5q z#2ZAd#vH1D3~Mf`rwpA0T_A+3jKU5`g0tGt;ekm49Z9f3c}EdCgRtfT8--2+DgbSe zYObMg8m{-^ak9^HNF7DEjoVHWsgZ)p2_^|RKzKsbLJCbJxDo;@V3LSHap4IeCyq{n zUh;uOpr0R&gMM8M!%_luWojIS|29_+3Xe!kp!SJKLe)~~3sYrI`odH_5|5K}l*IH0 zZ-9j~7gdA96Vh6Cz4GB!Tm{pa;!nbWr+U@=y)uD$MZjE?kq=bd*cHr+~lCa>i9y%OkmgHdI|G}el zSWJL{ONgD4G)37dmS0?`~^7?;aA)XQLW%s^B_I|yVlaPKI`C|%$Q zar_RM)(%L5!*|G8Vv<1M)Q%ac{|8<=)?Dy=^6dj9X&yipCJ7gZ?=TLN1g^}X`9#o) zfldsKU1%V@1B1t*CozF?ID7{MjHQGt3EwIFx1%3wD|lfXzXN+qXFMSe-=P8je{G$?jvO@*hVRQuR%DN;vHrMv(F6>x|#)Tz6==v@?D`;)}YS;XBrLqLTZg;(s)> zN+|u-7gtqwt{g(lZfE#T{llh`&i})M_5+RIk3{Y#?W__CT-`3=d-;EN#_!06WwNXi zSmXUb!*?nB;*)H+QLGZG(DXbC#I_IF{Xdqr8&2?h6;Gw! z?MFF~JQd_?=Q3x0}Fs?2+3|;5+r2ivJxcz1W6k3&SC^N?=KKyDj^q zGwJse_)eOCd%@=a!MmCdEUx|5a1BZ!(<%W>NhQd%N{~qeVWX5vkVz%Tq!OqeWw`1xfPJJ_|BuT6cAd1LHhw2NW}*_q zcj_*z67u`@j;}lF2?lZLgn^OeLS~grGViF@vr0(PQpW_zYi`y4-y9H_8D+U9w-B%; zHvHcG*YKToRtfnr-K4JmnMeoYcan~*lFAGT;{zjrRl;Doo#8v@U&im;Qf`&_s)K?8 zRtYEc>KJ~N?u)M<3_IG=j_==x(A2tgV*HNGtAsOJcWn3$RvA=M<4-5X@5s7kvd&f* zKKv!lPbDqHDw&jHRLz~2iOXDhLF0E2mRAYMNqWJ_5k3Xvt4ccm4==#W1mDpQ?C|?$ zE6D$IJHvM%;AprQf7n$x_sCgI5}6-p{7!w0Rl?D@pJ(`v($9+jaV>#WLYBQB=;L>= ztX0ARlRu=v_uc=a5BhR&uq)ZxcUWG{N9^yGFT_=tddg) z-#7mczsJi2)@(m;#P5swJ{i7~1~pNM;roSqc2Xx5FS1HVz}HZd$fy^DSkUbZ--{BF zcFX?1?|_sw`GLmoTn1v5z{TW_4c{64P9>ZF2Vu86Hhu?MSS65ByJN$57=)~n3yzOF zHhw2EH&Ka?-zz&>&zqE8ogi1Nb~XO{@IzCpFCqEZ4{Z3o`>)|U^VceYF0p&wqJQFv zK7OaN&MKj{%P(m74l$EeLLGb8@zrqM!YJ+s8o!fZ?o~oYvL9&pPOx;Mk`=!5{oN26 zzjJq?RYF;ZI%XQ_LvW1UZiMeO{#D&nkiB(K=!B z`+>&qEKaKgjw!#O;rprag!ld*G)(T;_`R-#bh`%m zvr1s5bh`@yfjUGW{jzTJjviwR=+lXMNvNHU1WuLG}% z6>bTBxB0gDfAA8hN)0AQ)nbtns4u2yLN86cSzk;&iALr^s$Y_r94RtUsS`0{O-w3& zRgFSDiAqGt!W;9)F=k~dP}4I0&47?Kr-?*$uihH_q2)wGRwKxMs`>(m9Xd0A_5Ui; znlrPGj{bsoSh7;E7!<uYk%oQ|8=OIbyvs~ z(ONDNjan0AvK0im#Qup4Y`u3}s$u9k|BWIWgt~pQAZ1cPAya6Mn3V1ULMHM7Ow?Mf z&G)zAXO$#PEUqoo$??`)P_Bvjj(ni}5MoVPsY;CyI_{oV3@Ftv{$J9k5C)PTP;6vrXuxZt&_SjmV`MUB$hHvg?*9?W z5lbu7ASx1M7RlGE2tiT-kg&nuW3=j6cTgwe5BWKVklD~wP+U4nAT-+5Nk|SqQ$0yD z35rl;lK({`m*H)A8NzGny%5(R>nQ(Rfdk3lj7r&LWU5?uwH3|(J5kP)+bmshzMT)e zR{o2*ntMo~`q ze+X>@NV3xGhg8Qe!`#aGK~yRI1tLw9SFA6+`G1x9qZte#eHM)qH(-s$7vsWZ85iy3 z8xWNifdKsW9GU2WRZf?kFj_g(w^)_j4{&^Bs__ZaGp;#^N|ya+H^Efgrsu=F6hjR% zjBvalj#(BsVphd@Ty}L|o~!?d5W}1gB<%Pq-ZTkjiT`{YRZ6D*G&vUK_gd@y_ zwCT{=Wsx_a_oU4U+$uFu!I5=_WPFM53E5KDyNrMP5^$zA6Dls!ha)9Qh#8sKSjtc* z&lobcwl*@W|3@W7G7@m*n2H%$ocLz#&kOiuPZTc1A=h;n$W)tpetW?~iWv;FQ)MME zPDe1v#Ky-#fx|)V>I4iJ%MMpm{P^XbrVYS`>b@gn)St%eFPev}-LBNZB($NDQO<}& z>^Y(Wg-L9!VCVbW@Z+K8Y-MlKE#=H}F;*bcEgm3sCP<7b(S^ZC)%Y`IgiMerz5@`` z84=-d(Rm`%ffX|9^5SKvkG|xl!_KR_nE_6qko+@80J(Ay<%R_;(dJZ_sIGHs_y6kt z%F#DtWa?Zo-x?<~SxL?u)~0nt29A!G=JK0yelY&T!j4*E_&w?O1gHLWku4Lk4-zb!3|VhvTCYEABm(Sti!x z_0Aeg)LVCyCbCABoNMGCF!~9Tkcr8>>YZg5>OR<;&q!2qsYVZR-gA zpDbo^(Zv4pEq~VW2+l15f#|p#&zx{vIQiet_g_Jonw(KQLQHYUpy<f30Rhi znvcYnH4mz{;-tRFrjfp^)jaWgnK?>3K&F5^vhk>SvEq;xH@AL`Q_^rHb?vqpuvbQP zxmJx&&QW-$>^|D*K5Jy>i-*vcSJTk`3OUzus8}n>EW!GbONwj@TXa?&+94S~oce?q zU`Uw8@{0*~Yl>m4TD10>?ZY{4R0Ne3uj57ixptcD1e=jt3J1eU5y$g%l!#2AihTaV z+hmTf+kg|XBb%%eTm-!|J?E;&2^sgT`d|`(){on*crgL!i@Cx`Lk-Wn+v$3&vXLHs z&b-DE#EN4#-3c$Kj@f2Xp9O&|^S;F*)=mL%I3(Q{XZlKvKnAFdxxfLfjOiU<-|cib z!v?T>1I>!p=%;n&iWluYz|9Q2@jwOMkcrftT}I^IWHFE%mHOm3RXPT*XPB7(+EHS` zCJ<*m9Fj=}S)Fy3{p&0o7){F#AKXKYI`z_Q8ybGBt>y>*RGWk=imzacY(LX2PwQz% ztT*QZC@m)|9+5|tojNzCOPza5@3lQ;Cm8?s)~hw+hAz(;(jDARfj3@dp#xsVzu}lV zJ<_nUcJi&cd`ONoXYjHggjHnBm@!?uD~dnktq3v#=G-yBO)mr9(MxmoobN8g zr&FK!Nir5hDKknBZlL5Q)I^qmWhe7<@A{>`tS z|9yN_yk>8H`SRtZelcfW{qp9=zn;FlVuIJt?|yrK_jvf@?cEd3+VSb};nT-&o<4$G t9ty|a-F|vJe^86B)#UdNA8!7Bd3b*L=lSvJ2E)Q;ee?SD_doq`^FLLrQ4#wD4n`d#$B{&#=RyMEZnaeJm1b zh)dZ4Zh!{;dPsyh>c@K}1JX?maR!LX`iM7{?g?42od!RrBv&*5L@b%o!M! zP7%w<=lx4+WLVUj<~K2aEGaujc%%BIIW!#B8aX!_ETJM6O#wla10JuB#haw+0B=-Z zcbaPCy==2Vv8D)$lQZjcr4bCsi$=SQbx}E7wf(-?oIaM zsWkZ9M*DtgcTQ{N!?-tPK*D$%9K$B((~&#rvnb(B?GJw9vWa=D%j^_$J&^FG^lggE z*Ao@9i3B8EBjb}mx_6>iQqHD%I+6xw5w>`)>pVBZr=2Np zY-KzSP9u>dkVH}$7X3-knXD=eGZa8IRcO(sU`;9xgQ`UBeLgFzgBkt)f+!3Nj>XfOXJc!-+eWJzfV)y zG}9~VAImgkWb;h-jSZ}kFZ7#^T@IZnwImx-^~reLfdg~2@mJAB7Vhs2@}ikU1E*nu z4iS@@K9KCw`Vkr^k!1@!za)_X`2g0Z(;Ff;9Ojj1!?ClOE4qI`{{s`5h*EG;_nkDIw~|bZ|IYXL%FL zV`-cP>A8=~ z=Gx%vWpkPOM>@ab9wv!n5glRK7;9skvqlEa0SlFr{E|`=zcE&rmiES=3H-Q5cK=7Q zSm%|Lf+Lm>uA8KNt}Y`XPdx<~ug>u%l*g5F^o%#v$Ds$KVH!+702FQ?9t=^=QGiy`QjvxT94{7Z z3oQ^!I>@KnnMk=}mal>0l<~E3TfNbJ5^~fR9NrNJ(n^`D>=@^jltAN(B1O)~ewn6} zJoj4~ofkA3+%E>pZX6G^8EEW|U-Ip}10lZ71c&JI@t!{b=9$Q{JVuDbWbVIdwcsFc z;sE1z(WZp#IY>uf;X7aC+ueLCODf?;;ANbZl+*)Z-$+KrDTreZ=6hTri*TqTFlgC2 z9S)wM!PWm}TP{A>n@}24wJgf+#vL=vAfo0S#&&#su-g;lkI^xIn;i4Yuo!D{!XY3* zc~dE;P-PI3Ncv2I#DK8%#QW2a0BNbhXV1!`3MNd?Ti|g+bKMO5IOa*;LKM< zjNe7mDIE%a*Ic7pM?2#~j~(VsD9fm5j>5*^-c2$WVN{ig=4(=MG^x77y{RU0N>e7M zRd~s>`+7ADhBovTJF)u`)~Fn5u!?HO5mHHko>Wf$U}s6~$SC?_$BNSyN22<_MWvBw z%>KRin!~+)`wT3NBu(L6BGcyQG2eX@VC^s0%m>ePGnHX9WgNq0)o`8WR{@~kk={gk z1kCi0#g&`D()k#Zy$e9>>3l3jNFb;<8ch;8(!M4f1-__V7mo70fzhPmUU{*isxp&E z6zIG%V}Uo#Sa%s)h{BM7E9Mw)Co);pegpO=uxnX*#)&S_$Y5m z{|F~pd2VeL9Si14%j%=NRR5*~Tw?1{%9JAx+Se(_rdnlb%9*3E?Tm6}mJ3f;y=7oZ z5v!<{zb^ES9=N2XeHEqBh*Vwe-)G7a)~!wo?YgRltGKU`f8J<)-i#`$RMtxEL!A^nz}fWiW|8^ zQpw=owEH*Rr2pm?nU-TN1gIO9d1W%}IIlv!T;vUskB;}MWbSbs(u{HWSX$=&*&8`@ z9-PC-FW-uh zX-lN$IH-Ej@m@nf0X1^=ao%$I>Uhpp|Kq_yx*H?&iqpLTviJnAQIf|q@l7XqQ!8zK z;S?F!{)|^IdwrZ6R@9qVc%_l;dlTYB!-e#}=mJ_{$<=ZDvuRKM@odkvNKEWGN zwK$TtT_}yD?Ua|wl9RjE4sQ@l}zGjh<^8mCYLghG9>ZWv2k-jFY|plJdp;@AZ?t5$tZp?Pj#eR$Cfv za!exHWC+f}7j2R~C$R3XkMupcZm~B)t~$jVESD|^$QKqXu8cVH=G}e*Vqp1NZ=h@5 z=Sr|@aGrjuH(@}N%{qIwtY7R+HbR!W7IQ}ab1IO1wU}*C;+8{CrS8fl)P3hvuMy-9 zlrNSr@9$4#Q4^L@KV?aN{Wq3mG5?FDVE)l1UXvThTgpI(F7u|yf~C|!q=(6OmjaTv zoVr(*dL44@a)w*KO!tbjZ6prAvw!8CR8s(v8=tN=Zuc7(_7ouG_H)tBhiMnJ?kbc zoOkHK$fv`OTX5u*yzN3~95XZ)RWXw^?wW|J)|E`kF|WWwFs*cYiL8Kg>{{v%{r_?5 zt+O3zl$2p3!okqb6b9M-J8x)pG-k&+gfu3{9O>7~wob27USHug4U40XsUEML6X?Zg zQ&Fd{64)FevBsXD!dK^ty-Qm4f9akql^e8P%+lQE5KN zA9nBQtGu)NmIvn|=D6X#zhCWL&?nZ~(zCjuqiangsBLRlxwg5hr=_dAv9)t!az;>6 ztheQ(Ix@x^QxRpJNPV(NbxEvEdAl03{;{>*+Nub0R9B*KM3QJ9+;I(H`lkc+Yjhi?78^dbr0FV{HcW-Gq8lxBZFGbSA0ZptAVsXnRM0Ty zL{qlm18v@cvZ4)(t7@G$b_f`XAQsfJj-w@kO(n>MnLkYgsY46_e06!h$b-x9fGqqm>zyAi~_tkUnq zjqF|R8D6*ibtCiMcLsnjJp;hY&&-1M{WAdV_%jvhZ4T)}`rz?A1nF8l=JPxy1l0!JIY-<|jcA*15=d7)X`8{tckL>|6kO=iAt~L(avr`0cqc>6*Vn zThq=1@LSG>dV0=deee8@B@920KY%_)jyR7G!+QB}{dr!4wDwZ>fwtS;3(;NN%h&mv zU^GuI^+(D(y%0{$mmxQ05vgKj`d;DUi zX}TD!4*Dj8Pi{dcJ^Bl;bX;qDS3~p4hOP}rxfxv@8+uf~2<02z&8o}2F+B#u7Rki1 zvge%%L9Vz2H4(Iql81kZ>bdw^7&K;ZqoyKEO!UN3DYfD8t|9-1$;fYmtdlO}kCDNk zOQ8CbzYUR?A*8fW6^TcfMm@JGgyPtlI$2fH))1~PspilE*>MS+eDr@a^SP~lm3(}O z=LaLiuo3e|n3uHG=Z&CPaQF$BiL>-eV@YQtA-Z%Ua@#LWZ77u?npkzI-1TiX=-vN@ z8aT6lr8&^i%1k^rWid7NQoirs>{Sj~99zA*Wxse+(|%}j`|TH5(l|w~ywuxwL>#pe zX^94)KFc)y<9O{e!Qu_T5cHH1qN&(JWZq@o*e#cO11glF;-DMn8Y+S7>8G4xdc$Qp zg(H}ZO@WZdAp({&vNP?C$c1bw)E0Lefv<=CrU?{4Cnn8nI67vM-0+tSm~zT7V>$nF zZ@OIi1v|6+GH=EZC-Q@cVN!X@5_#it&Z;T)yDszg8T)@|lD}GG&ND9e8fO3B8|GMb zV2ne3x`U;$lw;Mh`#VT#bcP`^<_gx??>ijemMgq2xt{-R*$iENOL>KHV`Lzzh1%IO zukfZ-7Ew=HK5d6zS)*4rXN^7MW^Y{KO`2y%EL=lc0Wf3*N(AnH2bwd)OJmLe&Ji1t znr5i&os<2sa_4v1?CUoJ>lfdJgT8&TUx)bJ96?wr(aFs3A}D_FJphLf1<+srU5*>9 zrdFQ+t~b@sIG!@@`|y-gkMxH*3&9%YG&WiPJpebF4*@rEXnTPfB%6*#f_XXH?7GKkz2cj61VDub0B+pmt}Q!(`}=HyI+bXlD4xV}KXmf&(N7 z@7Bc4TG!t3rUDM2t=ri2C%1sx&rZQT=3Gg5=FqGY*iH!<_klN(RT$mn!K1rbCzTyQ z{L~i6@1!f0WVXWo^bnv+D6fjC6Y%`2yitK=9ric%#zExHTHGlq%@NmHoy{R~53U@r}m|NCBn(9^- zxyGATVS5wz?d53z~5=@Ig)?&8Yf1F=1i`s&Pe&mwVdig zY6mX!GlfGM=UIE5H|_AE9W{r8q19=4rSZUjOlpFoH0Ri$-tnHmXMz2NnpiJiUgsrb z{d82LW3TrnO)jGPSXSwcJB>MqMcKL3ubtZ2($U%0(y*#!MQd}r8QABo>|WR0)@G)4 zp1Khi+y^egTZYL@^o5W%0g1Q<<%U(qi`)kQXTF=GZt&*I3mT-l=LT=8XGoIEZ-8YF z-m0ELb8e5G8js~RJ+S-ZF=Ga$xaSoKA=u5T>s`AQ+aQR;jP8p&8%#9Gs2@Rr?{8)6 zt{njd9`PeKx(FSz@Ip{#T-jQ`Z~*&my!OK%d6PV2Nb<;!*yu}_A&zJM7(#14#GfGN z{+Nsj+YdSV$9z6_C!e4BG3;_@xj$a2e&S84DCE@m*hd5Eik~Q`E*LcWfVe4ww%f6Q zpTq-x5;rQtiyu(EOH-j-xa(4NuzIr8HFWfi95!~oRu1_oRBB6=x}O5wsTX>cku~kD z-92tk+nRBftm;_VxS(T2Yg@~V!x!Q=Iqc{Yk2^ZQMs{!VhH2D)&+!2VC?m9lUWw$! zQ$lcVqd%-9?vy}zSSJEYLuJm5G>?u^=Qw&Oo&lU2^g`>1*ONyx?nNA1WFqN4%EBAz zRrW1kZwgm5aO8YGDkEaflDB4+V3Z*-9d8W)4P*f0ATQpRwx z<7Zw;nfbEf=*{@866W)%ju$DD^hB9NpHd_2s9S*d-#=rIOrzAORz(bjPUBJfH%9BN z|HAhcFH$I}Hgl1^IM%opFP_$5{;n{M&^ zGES-n+)%e!vuyuD&#Tk4LJml%qZ_BlgxlzO|1BJ$Z%p?_lt)QS0Z{~lG_omMhxo&K z<4!rt>zZRRiGY-y-BB8Mh6MlG8Rp-Bq++q_YSFOCNRCfs)p&4ErE z54=+GK%tBW3S~S{DC0pyCGH|BOXSmS7{LASQRj*aWW$0p?#Q&?;|*gyoAh3o^3K4q=FN!k_7i5S$q-ej5=Ej=Tjz6QsB>Rzu#TjuzM4EUutVLyUZg{Q!x zEXH0l0WCUxwKSdy*sAl&ERpMfL8u19YabbX7kKJ-A2MnAUBGebMt_K$a-TOntNHXz znCe(3Pd9`wb<2^aCno*4uz zL|Y@B527{Sd@n>kxYDndng_ipRZj5>fr&T;S(_3U%*g3S&b$vu*F2;Oq0<1ax{pJ<^C6h>hx*AD@t=oSMD%{IY0Dk> zW{!WDe&4(w7WU1DkrU6}&mum(AMb?)Bt}2N*Fztm>)h4;06F#%j{0Q}5E8_f<;f$D zu&ZC`*SouQs<)#;&dWe_Arf3EyYxN z>QN4(rR-Gv%9}dCoMKogvgcvyp{^;?@CZn_`&T%zHar4^@2}*~!;kRQwA=-cq2)Tg zA>4_$({gWm%p1qaGv)m~+BG}9BClOmeNP1XWWwo_r3njuE#hBij}a0v{*VY%FoHd< z95)T4G!eIUOJvs$0K4*WRyTSlhW={MZGcp+9#Oc)nBpc zuRqD8=RJW|-=rL7*Aw(Qz-z>Z~Qg0;x7P0Pou5; z=V|2c`c~w=YDO~c8E@jKA{8N#RK}-hl7)|ZbyG?cfox3#vX$76+q6R0Q^L8Po_~h9 z{`DJ{-e(s$o&5wjA%;9eT6gh>c+VKQY8OlS=M&z@s>O-GEt7DPe~C0JUT3xWl~Vbv zcTk^{Tgn;F!VObK8{u}!xOJ$j=5BrZS$NP{Pl3^EKj55bUaX9M&YMu_z*TPhIA|ycH5uh%sH_o>z{_;)=g(}8&#Xh?hYVEau1LbpZCW5PIAlF+S2sDpFYnj zEx7aH^XyBJ%uWO;6$7Hg2AAz7Q1b3GjA!!rj@|6f)Lp0-cfY`Bqh6qR&Mw%JeQnm_ zuXeF}Ye)K{=MR6b8y*SfN+qq}2ukA;&L9J{cqrMtUv zMMuZ!-Hq`yifwauCjdXoj7uu~sv%MG?KC?~({W;`b7aKI!dJ*xNtin*^m4GjY7?$` z(Q5z@GNLC8(gYgJH8f;$K7PyTOgR5bi0?plm;Kg@%LmWl54m=)H=<1av#5=hnjDqg z>%HOhEZSWY=5=!4Z(+>edY+#9m-{2iBk0J?i0wcG7%2AhhgBtt1baf>IRQXBf2UTU zlj}pV`P4&53R;}lAr3{&kWrnJi3{aCJxtG``zUFA$s5jMH-E-rHL6Wu7H4xtZhzSp zYs@RRSe)Dl#5$dLw7mQh+Dem}P-80bOKMt=b|;cc5**z}RTVjr=xvt4%9o)JRRIQ* zdxk!r)&x~xi9pFq1WH~a zQ1TLil9vdSyhM;TLprVFAA$aq2=u3f)1StXZ|aovWT3Gm1C1paXe_e%w@8P7zRa2b z{I_t{?=H9eD510^VlzU;-M z`gL}(`5fKKYJb2W-TF8wk|ZR^wwK}lj50_@yy7(sO5lxW2)yBGsn;xl)vrK!>1O^% zBTv$Apq>nP6%d~p;Ex#Ok_w`l(rHNr)yX2)6kwR&efl(*7(zjj9CRzTrH@Qj?9}h;0!*tTF)%Lf& z=$1b)gk#l2B zaWOb>UDJ2pLC)`Z7vuQGKaezX#2!YDT8euTzY7Fz*&uXv={i^J;fT__T$1l%Z+uDf z3eDSPbZd^YTsCb30S7RM#{GRL+Jw$qZbx7d zD9!7w7aMREeZax${sVAU?jb@kwvz*L*B`vGRdEwUNf-z|5OyIc&tDBjzxV@FhfR-s zmouMrE&C-dw+bg?In@8XciCi3_ZzC76x{645Uw0Tl8i_y@13YVF2|LW9=q-I=XVil zrz(=K`!mbj{si$>u&W1DnH2`L{+|HK1>Uf#q|?B{V}*lUp!1^n{&-HAY7m;CrIAPz1Jz0A4a)CjDL5L$lEXh>r@ka}zZ^aYA%iEF zIoXt&cUF~jLNV;BIl&PjXf;Isq&;t>IG#!UH|P>QxR{N*a?Ep(;oT{?5nV;V7rd z^~wk{gIwo3A=YeUL;ds&(#BsCr8mkc(=F$z7R0>`YiOvRx<OXCufb*fG}C+ZE^$9o56w|zsWw;a^(Iz0UL1je!8x;R`<1=$I7_{`@2{Zpz)#s@ zloh``;Kb@Y&#}#Ke+mg=YJadZaI?ykQfm#$ew=b<~1W7%B57V7fhtNQaf0m86lk?c%gE}4 zgBa24MajQmX1O?KjtWz_$26LWKLZtjXy#B;7~mS(HNjOt7`E$LSrpz($sSE2v+DsB zUvlJHKSyiamBJuaU%hPV>w6_pf*On<^J@IzoWw#4CS~bi78g&;=byv9u3ZXEs69F; zh71L7Nd1W1zT6vGl5*;m%=tH4u2G@9`1e&Qe_~%o!_zmW5(@?%WZlUuLlA5Cs+7~p z!iCGGWms)tZWWoarIPsqAleS`N0yPI3EM_2W*E!FVs*+Xbm0(87~rl{e(@iWzG*qz z{_%hGzM%D2R!Ztgu79EF2f%9j;rOYL6TkLqTyFRH@)*RTfgroVN-zYu%G^b$vyf@s z4=(ga;qB9y=|H_a1jdNZ)xPMB=2Cj0%Z9rt53%4Oef;6{P>)STlsleK94b1@6mzWk zuimgq=Q;})DUpZic0(V3GTlrovy^YwH>MXrbA6%D0#T|rz}x9Ow=a&9$zQ8Yp+57nP!9GA>gE`@qB)T zKf-seMX3YdF1C1ae}AMZwgg$ZW9#yX?d}YbHjPH6H1(6X;=|g5pzP4Rv?{XCYWs3? zmKLZ#FhEUHgA6XT(N zex!b7_Y6&-Z)j_7U)im>h8s@Li}F4XDy9?$cP!P`Pyg65(v$pD@T-1SBuAG_weH_~0OvPo*WS!O15Vc1@am8X=2H zfbQLa{xGL7k1ywfuW~QkRtdESRFRYSN_56je=Lnq_GpCWk90tx#(>~D8qz_|7yvf< z4T1nw^Oepwa52o08{DHbR#3vHn9V^ZKbJ&7~jSJ^3Ja|##!s8-#v!SuG zCt~*)8rHV9uWD(}!-*U-9~DW>09Xf}0i>wxK9g~OF%S^18|)t|pATfIMD3K5BiNC7 zxXCb0WKJnf)|UBAsI2R`4_szJa}DcSfL?i}yr69=$~mAT2k9^tBG;fXOqDwa{h4XW zAcUnlJ*KVi=w98?wPBsPFMC>6u3d%$vtvWo%9d^gKM!oQSGKa8`^2iKsACPMgA1Og zoJ%TX5`m_BQ#o$f!^`|Zvj6qohze3mSaO8iR&)UuG9TtUwO203H6qhn5NojttbiX) z0sZY2z8`cVb6w{PI#oKIH=IxAZKgdvhm7h3{+9Nh=APD$_U`;cAm?w!NLK5I*$oo) zQexNygH}0xI2@EHv0gC4kzXQDSNI$vRO6uz*LpLWa5~q)H9f+)Hd95qamw=b>g0?{ z&hE_>U_o6<@_fYWU#e)ZP`pd3s7@7W$2dZ;6>6lU%8$x-BjDZL;8f>tOs`Vw9i!@$ zbM1v7bJ@5BMBG;8FO-ienGr*3LaW+-^ z1hSPGaEn^chDkPH)5K+0ow6-d2G0g#^pXNHSGdt_nO- z;#J@QdZF3Lf^&w%;QX<+3}G4&S3N{o4adPuJ7j?RQ3K&wbcGMs{6>W5)FJ+%>WiCD zh8o1-XS9~40!t$mSQ@Fo(ntlCMk=s0QbEpSD#)2k1v!%`=NKw%%3>6v$+Q%?~XLIu54JdvSDSjyTdl4#dwaKJItR_X}ccy%gE#54Gr~| zJv+>wG5vpb@9yI0cekz!MhMS+TJ$1fRlsr0O&7zwBbQi5>lqHO*)-DcKdG~&xqXHk zcSgtR)vYUAj5D@$cQ&tV!C?-7t2^ZS8o2#$hdaHYbP###rtGOL6^ZewW&{ja$7}k3 z8n3Z=C5*~Am2`~oCl6Edz`!v{r+y~<(AlAP>d;>g^ULJfp-9w$BmJ>khWXw==dP5)oigD{Gn<rbB(nXqmS{A-Wx6ekvYu48IgIy%Y8Estg<=g~*E@mv$SDCSSq@R>Qwe&Jo)w#Iz zju(Q|xwz<6sAbU$HNHklNBPsTDtsIvj*x)M;&tMp)ysO~oC+`hsa3wAH;7gKj}G0? z4J*3xSO?ptYCU;tCZ=%)!S}YP370O??9)!OH*KPMG|xsj^`7KLJ@yd{P*{cRjQAsp zm3tWU!zQv3^kHPrz!+Vwbu%sY=SFBFhJoFByy-{swC}{ zf7v;fihf@YZ(nO{UjEfR-DnhG4nE&ouZy zkr}v^(Pfy+tReZhE{n?3Cc*6Au0=OfW!_9klx#Do^%((xB})|7X1Yk7hge9Xtoy&~ zkK{dNHGRTzCjM24l)p^(M`iW=igAEKBGfS1GzJUH>G`FcK-F>d(Uh$-{86KviXSpj zQ`n7(el^NZ^_KD^lX6-9b&5EzBL!urV5b8`JngbJP=B4M=w52RC|Ni?o9@}`l%x=R&K5(o*N#f%JeY*@bS8vx?>>=UY&u5SKBQ>gRx3+IM z6E4?qT4z3$a3x4}UP7#T2K0>#nNtHV=r;kS>xo{t=1<4^`=D#KQjDsPo zXWbF5s#P3ZaE|i;l?HiTm3EHx5GS(R=djRopiCU^SEAMHTQNhJj?-=fs51exHLuXH8XIF;?k2~D0X9VM_mNSd>(_LEtue1GhR|7#N=Yj$gw&BwW|yW(8`z3C!PeA@i$dY02J-KR8dcjq|F!CkX- zaMvvDQh}*=zSnf%^Gydn-*n*fO$R>Tbl~$%2R`4l`h15dmvBzstj`uXpxGu1n=w-d zPWN-(S{HE3ssYDL_ooZ#q7|}XlE073H-XWX1m0T6fJ^4tAeT1-G0#O~PloIRSLm6c zW~v#!y#C-kwIrWeqpLh`z=k!=Jq^u0jWVXepIoI+v=A^e(>KOn{2Xffwl%;DND&%! zShl%pMwnoYD?8d%tJ~Pxaz;bv+Rnyxt?jKd+zSP(yINXSbgyz&erqwUXwoSmNR>)% zx;UmU*`-WZoi0j2O+#9fkrVgnf;7K{g`1qf!iAS$cOWO|RV3ttbkruzVeZ-&#rn)9 z4ge`F)k20`$zY>1W+kS@8&S|%Rk|plh0~)6EsQWv(^U2?B z3-1`JGu}rmcQ&t=^T(hl{yD<*WVehgV|!H?Yu*M9W;=gH$u0EH=5h~o7S2B=`{Vjx zaj0mHTZo>tNFBgJ^i}Di6qmH7xYVj8=*tyT{3UcHnQ6=rdK0?Tq)HPt^x2E`Th&(tu3cOV~4#Bhb!1?|($0LXEVOpxb7mH?@Rar9T0&~1KR zRiBAIHECdNcyW#kJ;7Uze80&b5?j@AMtfUF^Q!K~?p5R_b+$G4Ky~XHdpgy8BXfm^ z7%W*SoY*1joa0t=o+rD}W%!y0DOtQi zAMPqgh^WNW`zK(2A{iaX)|4kSd6tdzshj$=w$|bFOVlm529yLyn=}| zL1v*6akSAN)jMbXhFN-jWFNBC+OXbc%{%hQecIR0I_lsP_v!AKwdmjj4?OC)eL81F z_Gw)+tBJp}nws>F{V%Hji|L=Z{z>Scr2a|ipS1qT@F$`@BHAOOJtEp8qCFysUj3_G zBHAUQT_V~gs$HVmC8}Mb+9j%8qB==bdqlNIRC`3VM@)Ofv`0*P#I#3Dd&IOyOnbz% zM@)Ofv`3sCwX@=peY#tFT3T1l+Q6NfmW}yTq>nW!X7T?i5g|d5eJ*}gl5ueyd6qNh zESYr?e*)WKSNv6LFN?Tf7LEsEud;Kml24I+mofXUPRLbE$o(@p*Khn4c4mR67|d9M zw#G?EXNoMmjM;6bHvh4~uS0DPQoqtc>Q_2Q{YnR^U+EzAD;=bMrJeJol-K%HQ7O#? znO~V8^DE;rzo>U=H}|t#yC6fHOHe^s)${QT5IEF%&CY!Y^mrbY)AACTx4%EpxpH5K zB7bkxBK~gj$na#7q@ccpzw95lRpqq({n@g37QTMC4wkNCkXRmwX3_%>0qt97F^uJi zPmd#w2F*q;U4d755NU6EaM5=0s(#L}$INEfKgMw?lJw0he=4nv{J4l{pMsR zKR1DNwA62X6s^p0BBZ^(!eX3A?w-TkqmsB2ECc+8m!;G`NLg0Bm^mbSni81B!QW`wH zuHC;ehwj+NI4besU^1}Lc(bcB&ScB)j$78{uxaq1RC+T0Oie>~L0@hRx#WC$(oD>g1mN{P7r6`m|*^ zgn?mb$vosO8l$h~jX$OL{C=ieA3YNin|6r95)nXBRADC;pTK5leoWWtthfBG_H5G| zGcl)KY^F?|QEW0~#$WRylmrj|$sRov58a3n*2>|bgT*+Uo8AQ+k-w&!WSrTSKanN; zG|jzQiE4a{T>Ir-{v7>`Z$uQ{kwGml^+HOH8pbfO-2uf|Z$KLXo8FF6e7 zt+16FI$PVFJF|1c3cF7$_aEUmR;bnqhM+itknnS*H7T19W3UADE9T)u&|pt_#3czq z*y>9#5|bYeZ1V?t z(g;PCq1I{mT!XkgW~FS|cNUqPcO(seemT@gzhN%-e~f%`fFE?y^aPSVU8hQyvl9}e zyV7_3QP}sZ4&=|(3!o{x(x--68Noe}j@nP!FfWA?KdjCa-SErU4Zk|`B+J(aqF!c> zVvL{f3tcWa$S)~#Pb1pvS40u*B4wuNE&*ex)gd<>PNCj}?b<;V$~M zGlwB~CLPDuNk_2o^N+)vU3j=ZphUH2d==8?R60F<9E$GZOprpK2~y}YK?;2)NTJUJ zDfF2@kIDpkR3^})GJzhI3G}E;phsl_Jt`CEQCvDO{-5nYK`wV%UG!fcV9RA357my&hxfL1R39EmTtnrJ`F?G` z2yeb42*y;~flFF4U<@-?v+6a2PlE5lM*UJuK$SN4bBE4{&sRo0}&N80-P}#*_bQ$?%x<7m<7%BAZDT*v? z`Ol;LS#))8SPaqY1*l;*fCg*GLd^|e7|Wa6?hn*x%5It5eY8Jcl8gOGL9|y7q&gTZ z+AHTR#z;MLp+8jjm74;30PWbC#-nfFnUph)dQ*TRwK7ikiZAZ0Ui!nxddSP z9|OYgTY_rsLKSdTJ)HIf2Thh5Abpn7?uugoZ1vKhU4_1YjlxAwxw9} zt*xguG_O*BdP{qw+NSdLQh%zAju+CR*yg8+@G6D9fw*XyAFBv^X_rR%`7(dXFx3Dt zp{$c;4=5WAI(@y&uUWJh>NVTCl>a#4%72`6Wn0|^N&e&VM)^;+aq!d|HQC0&#Rr+w z;vYIFJo^^Uftl(v7b>`9*CKyBhb9Q#e6n26s`6oTo3p1Dy3q?Pviw+o94(zPAeT4O zl9a!pa_6!BG~IoR$Ec|weUGy-gKVqD6|}UM98NfnsG*C($c^wuKgh0nPFs*&RVn{E zj^Kc$RE?Jdj`t^36=hE`&DK3IE~U)D&E5ES(~cdWUkN5ON1KV z=_k^-imzi1&T0==9`8rcN!7E$6FvTFIQ@p3 zwa>M{;O&&Wrp})Ut18r8a_%KGET&-DDC(^EJ4Rsb;`1^?v@o8)LI`bqN z->Dx`CllQrzLvVTwQlL!pbiz%CcflkhVWb6u>Ob{E4n&PZ|Q32Ccy#YO{0Si-D?`9 zr8Rp#%z%iJ*Mh!ExZy?4$Gxr4JqhjOWa4Q+HQ^M7Y&*^8@;(IMjAZuLMZ5Tqv#0rw zi+AxKXL<9VY~$cb2A(Q)jipbwKRb`yT#!LI;Y=4iFq*poBU@H1_Q(1zVj#OtXJ_Em zaC(jN+_M;Aq&lj62H(lP4faqQjmX9^aX@zFsk|;_!GH;J^{M_u-}(OKigh&m>Q;#9 z!&CjJs(D{P>ob@5Q>%-z?IS$5X=dA&C0Ly90d9F^i9fBnD8JqsYJxpakyOe-OZ|!H zUYchw7sCmBC%C1fBfAJ|_UTfhzNmcq+|iU}3|f>+A8E2jKI^wE@cWCs1N;4D?1yF5 zzeIaN$^|MFq)$Roes=7<K9{ZHf2|t;@WfU0*}j1~ zvcQJw*BQ!J0Bx*%xyql?Ta;20f!%>3^*OOaS?1_$1sG_Meb0ZgoHWS42lLs+L0$|s zSxy>c#!!>xq(N>>q^Tsxj*+J~_@hfpncjw3A~$Sg)#OA%L{rVvsrowGz#pX@59>=e7l2skha@iVxVl}buqV{5M zbkjU3pPz}qF1r$9Fh0EBT7Lo)*g`_Kh6m62mlfb2t@UgAQUe#9AiuZvMIL1y)^j>G zZ%$aG0tbGA9l5;KpE@v-bt22cvsvXEBao?KyK&|T)_c>3pXQGr5-G}a*O6_hyq;ez z%i188H%`N}+MDF4)tv70W_ppkSUYHbd)VRb(?QIR6dnFS2c{@qtfjNp#7fd)N}Ugyv6%QazG@EEyooq|;4_XH$OT5tG2Wh+<^qo<|2 z=xt4qW=Y$4Ur|l;!Zo@Wp;XNXQI&204U8z{otscXKGaN6ZUhaJDee9kZYGe?UN=OO z;PvJOffhXUbS1?Hon;scDkhMq=5R!H8N6&nsNhpn)&X<6!>TI_)=5K3-2o&;7T6u9??+ z)m7?bA|cxif)O3FLG+y4g7XG(&e`rRf4a`CiQlC`c0PFo(s`LTd^kTPfihgg+srLn zH?6s)tGT;nB@f9p>QngLYdbn!o`Pi-=GmeQ?h?lFR-^Y|=IAwUcQQ&MPLYw#w?dmU z^-1yHb^Axi6SuOSw$TLW&4FaOxb9LM36eFHj+e70=7%ZWH_gKmRMw<+hgyqW?w0KslONiDQ2MxyChj_LxB9ODP30EsC9 zjRj6QJ_P~{zeDiJ>8&9};56nrF?-~saU)uxK4~xOHllkt&t2Y%rO&s#`dmx2;qa-X z>1X(plFr4K*TH;!4%pzGE>=`Tk?zg=p~2--LqY;y0HI1UIWOlObZ#v!`&TpJ@D7wsXRI4i@Ew+J^b*d z;?YgwT&8&=>8A6E&9z2;d^Xu`E)QpN zb4xoIj!xl&!R#s`5v{N@8dRjT!YI#GM4Pn2*i}%G)C%LDt|DfG8X*J~32kAtI=Q)5 z=Z$NHA$FZ~a}^1l#i`RlMNBL5AWdYnA`jA}&f=6j*CmC3K1MgepBVo;&WcdBwwp@2C((kf8rv?2>>Z#$AeG31gxT$6~x z?!0@hBC3G6Y>uEp_rdx7f(n}^1Qqe1EkdLs9j2iA7#+ASaR7<-I$xoyNdQRjLoz`H z>*boS(vGW0vfkh)W`YVG#7RO|kpgzyRbiJDSViE36;{qds_Rb!d+@NV8zZBGI<3?y z06{B^Jq8up#i^pMBBHBv($-bzQk?o3lx@s#`=e2XBhni}N`OjhLP&{YYDE^*c9b;h z6CxFNGA*1!>844tQ&A_;g9-)AsgSNBr6_cwo(k4aYKzu{hl-zb(26`*)7Byn)Qlp; zDF-%c%mxi1jWroyA*B2!06mp_$!EpLV zP@&U0?a5WxYMo*dR49_2^GPdup-Y1-4^&&N6L_wVp0cP@F@g%khm(X>!P}r(5kjgQ zgp8&f(V?_zMTpXP#D+-rhE0@}@jIhog(1}mRX2;R-wAkE5mzd6($-bz@|_qD$~vZ# z!a;>D*7;7XqL*hY9#UlZ<$dgjM3ZNC?flBJ?^Mn-70%%1Zps7r+*5pB&*0tnG zsie_fLz4}<%C7$S{tBMbIIkYCkDH;7*5$-0oDUn{JP7YM^189;bq(~IdiV&$}3TQ zkV0)zj5uS>P-Gez&mCkb1|>;H4TTgv6!D>uLP^qTTp~a|J&NV$0(h+$ltz zLkhsNp%o!kc_2(HLJCME63G8}D6CNXKtS;09&S`UzwUQGOd_K8LEyp9c(@k28nB-` z6TIQ66?vd4Ir9oiu7v^`NGjX^r0yL*G#NI~)uJ=!RVWytq#|~2gM>&mrHefeyQr4I z1C4nV)+GcqiP-I>NeF3DodrCz74}iN%iV~uLXSxBix#$g)63$atU~`(*h5)Gg>}gT zRe1zIJ*b1a{pVROt;vH`jgsI8GTbzJBI2Q}g3lL({k?oqu43ZLs7*q0qQKF zs6w~XSwc}2GkOV4D$3Tw0jm5DO-_4+fWo7-A_Uaj2f^GBGtnOWtbom7n-n_z(4BO|5K1>-2&CFhc-C`!$SaUj2nFPr zDObc;XYh*vHUoI*O@so9d|3S+f~cG&5lScIzl|8~IX7vwMY!i&R@I6SNHbu99}%!Q z&Dcofq*HG@(p^Ul#S;~vpS-)=O1Rje6(M=5jvxF$fE!f72&I#P9U4)#oA}VP!yy_K z4^A=}|EGriOoX03q@y*-AyfC8A6d^0p@%RLiX|k4mU93i7qpziB+OUKIitk%94;N^ z_>bv1!9)7GBKVAU$l=kvM8O05_Fa{nL@16-#|a+Zx9@5B&h4~nF2Vc#_F0c54^d?CK}NEcbF`RHg>E$0wuULj`54wy6&355^O{c8K%9-GI9SC(__4d77nB$X*7u#>Xu zPudQLa>vvPUU13{pr;Q7E?3qCgffSxQ?(qzr`!?sF4x?SQfMEU7bk(Z$@2&ViS*lNt(|l(Nl4C}&c(L5P{${Hi3mUjZj*^*@5t~uG>242O@#6#ZQG~fCD{LTMDZ1h7xR?_ zZ;tEwxuvb&bNkCJZ7t{amz(HX&Y@3PeDFlMbypKN5sH<+iMrbKp6a7D^O;*G9kRz{{wU%AQ6K=I4qU6`?@M7y}9A374q! zdv1Tt-I55co{XK}(C9JmOYp|JB7o~Q+CKzPm1KQ;J-h#=t0h8%hpQRdAh*A!x+Ozl z!VQfnJd&0>A0)SHIRsEK9K7Lf04N3Ey3NuzR}ZwDsLxd>Q+Dsp8v&Bdu4R(+#IHlk za=2U3vFa?B0>C#196#6I$&a_sXkN8SfAyf}tj?BhdPbV$`{LKvBm+5;ZMLGhyLF{C zh{|)~PwWRP(f`zxw{q{jYc=l#Y45nyUFnbKV?sajD)yEBXi7;}`fpcC$|*FB?WW#_65>pJyIT8{gnb`zywaS z+?S5duGTecd-O|Go~3iYBpK76{Lrr%icj7^Skud!g)KIAX9tgsHHZs8pUFM09vhytl571@eG>^e@>;*HFIPL)UCSe?TnGK$wSK%W z*$z9egZSRMmOJ74D8h9lua{ltmy#pA<2t{7P|Joc9t#2t9@Ev2gI0I(_M%mg(XXv9 zrM3R>lom=)Ywm1r*Vd%?T<7ysoaClxqk-2mKDU^(P_p54ZNW7?{j&6W-|w4D%g5J~ z$k=;5PnGZ{u@!E+o^?p@fUa_SxMxTH!yFver$@CliDf(jOi8uJ;`|<$f zvp4uP6>FN;@i<=BM#CR(Gis&mxWOOXHDY^zrC3-()iuyj>x_sR}BDbb{x zv~H6A{+fQ1^RyvPKwY|(+!5Z`xOuC;Pv3N0c5n4Z_Dv_`!>!!tBX#6Q{#Z}DlV!nw z2d`*pThqE>oz`&k=|^CMCldI#ZXg@hOf@e7XhV7aM_`d#?^gJ?6}V}{m(tdr<~D^W zLyEn&Jo3l>fWBODJ^#mk-Qeanewm}y1|omv$K)K7cgyhd>mTbSe+R{&_KvPInr#dN zf*-j439I3vlTFaw+1$#WrMPsX<;w0eT6@lJ>Eew|C@96vkMn=RNlWRakDsu6-OQG1 zipeuS@yDE$3i$21=F>X5X5>yTx`t6DRLJ8&Y&RjJY=vf9&EV%dH>_DhqPc!@GL{3g zat0l=CN1-R%2`X1D9nF`)g>FK4fJ=~t?6oBH-o#1Yg|3IAAibqoD|uJxBS!}Jrh;N zCd;<$>4N3z?~%8-_U?>#wQOwd=JCWCYx&Vh;}m#Lr0Pb0)M=?emG9Zm-rl0`{mn@B zbi@q?gS8;bMGtV09kUo9O=JW=_?%L8te~+YVG2uFP5TF?@}}IEcluS8&JfKlBQ9fp!I`JY z=9>Zhq+jUxJcFTVx+o|pnyOvuOWvRv8OdDyfS+Gc>GX~4pq%diFlbRNl5yHyI#oul z*N&_2^2_`2kfP01Wg1LwbgkALF;eYx=kx0+E(#_>laROXViUCardvVQsJlTHk1fj2 zwRA|f^ctlFE*~auC?n@!DD%|i(Ui-T`Cl62sFEFb+q`g(+nDL!Zl;ucIs-iKbB|vM z6kuJy9Y?7zJM-kv!JgY{?zL|j>0ks&WJ}lB zcxF83##3sH+@bTB8J(+7gQ-Uv0PTT${YrlJD*reUX^}VX)zw7E$a|EX8SzWq8A|8g zZbKDr0rj_7z3E2b6q>24y{~hNLS2;eJ!Gq)q5G-sN44zwjgDywS>BilsrZG}7cfj*$+G-G zZfY!i&@ZERLRx7h=RBxbpae^-k)J*2)?m!?cYJE%Qy!+tZ!6%l#Bd7NgN_e}0;U2k zM3`R2+{O5(K4i0{n*Ffu7bQD(tq<$5qm;Ray}XidEGVDSjfLeOa;R-HGxKxf>gp<=*VUQ1pR3pA##E;7 za0G0mdCCshtP4Q|yBi*KjslU=; z`7wq^IV>mrio?Qd>{hBQkj-gol?dEV^5#vIlIs+_w}NpD)Q2w!A&ajTOl9yt5{z!}e`JN=IE;E+=gkJl?DDWh;$*>E=-K%c zgMQ~X;DiFFv_>8X#vJtNxq4&!DKfm|id@S%I?d867j@Fn-fBh?7FQfZqs`-vn*uW^CR< z!9?F}Gg*4WF5t)Vwyj$n6m09hMWMoZXR~w`k(+k;V;c)9EeM}aeC7ZT7l_?HcD7er zWfWUbJymyT|7Ss&^YLbvhpl_+vz)Jj+6Z>_CDf|DznzZNu_8%Jy>2=6>SfEDC?$iG zPmXy`7n+ifXLDWT$mi5qV5)tMoMB%wW=F`6pTi5lmq$3uRoS~Mfe@h@HdZTNKgT(u zz|pCd>CYpKoDVrz02CzipZCXBLn* zr*+gq)KYz(R+~e;V9;BsmWOSel(T0)uyImy?LWcAh~Gi6&Mls$SlCtSce;R#;}zyq z568srRu&@H{|?wF+^2Ajm+1XEJG}hC%6=&971TU1Xok-GK~uApH~a8{S^Z>A(zlfe&|XmwM1&=$yd-W zgXi?JX8}F;Rsdj3lOE$_I7&Uwkt2ReaUUf!^rbfQ;DhxDunlC#h^5~jZ{aSv_ zEdLneJb&UBps`PFtSB!AvQflKsC zst(tkGg~2?m-^?h#HIW#otM&=TAJxfDKS~OmQq!wz@Q^sAm4h+uRXo6+5+wcP!x!( z!p3%?te|lL56cu-bR=p>h3;2THD_Y~|5>d z%i0|@-mE6qpglTQpu(lCfX>8;kroP#1qOwMmGj}ZFn8We_^~4KAc?pT*%mV|fXbxuuHPGe12yK~zgKkd zqNFnWegB{s$R~e`rR76lf%M#<1lyh2;_|j~^#pBYq4M23{-C0TlHy6;poE;xxADou z;Fo6&A^G!?JSdajRYIfhpXqy~McDHvfb6nv%>RKW({KK_#zY$L(4iH0GnC$c*Y+uY ze!?0u@I9TMMy7(t3-t)CcPh9`{0b-ILrtHO8oBm8#WN+PQF;13MFgeK`}6Ie*>CEt zp5wB<@<+&9Tdc_NcPU}H#<~dXuUhH-qe{2}+>%Bi*Zt8J5uB!1{%A18+;)3^qND@V z!*SfRcDZr6<{*t<;!1ScVY&Lk-BX`o@1KGh%t>{hj;Wmus6SCs>$H!tk^=36cSQrl zT5LZzf!3?zTGss;l`nXGG^_K)~t`>C*If9p{iB9!>}%8EF6{ww~kZ?ipw1f zKd^}Z>|wrBKhXKmx_?jMk`HW(eD*}PoZS3@9(&<6Q2_nbe{!m3=VRaE>ap`DzsE^Sq57O zQ(@yGPY1uQS|GD9HVq{+{-W%uKs=IICP)57!OrInWOv9})HW8>g1*9iC{%$+UzY8k z`L%V0K6|S3PkSn|{r~9t%CM@o=V1_}TS6M??iNr%kd|(clI}+0&>$cU2N0yYyQM+8 zLpr5PL|Wf{Kz>*5|GnqKdDfmidsfYgiM0mE8F+x062OLk-ar}>67~FV2H?5JEr4%2 zxa^m`vPG4f$xxV0_KJ-fYSMQI85MPhnot}90LQE2YB-Vn1ued$$)_CZ@~9tFCIWw z0Z7<{;G$zl4+5(gp#BFGgSV7!HELk^A2)eGOsindACPMBL9AwgSblGY<^l8wkfsNR z0XX+n2EcL;F8%?u(LF^1pj-jZ{s87n$d|8yi3E&$0;vHo^u13Y4SKK90qBi@e(P%Y zPqP5T?RbW4X80yz%(_oB8i=0eAqN1f)$#@9WtA1Qh+> zYy@}({RG+p!2XLvfuo+_WB?2l<_}L#|Aa$h{S$QY?pug0?_U1@sx9A*5eK;M9K!s6 z)%Nev&kkrHX&dkSe8Ku>a`*2e^0%kmu3@b|%hESm^`fx2=*R4Nc5<$hMT%45=7cfh|Y z`1b?@%nf80fGOrrc*wgp0(Jzlz~}>L^MDTk+TiyW5MBkI0CO@Cxccr%0(cU-Z(F}l ziTz(zhg;XdzY7Dg%mF&f%bPai0pBPqOmCm~Vq4*fz~IZ9tZ#PVL_#-8k-xtGn-~7Q zAHVf0{2LieMg?>s(G^7N4QQ5t6^9Tkd3BRD->pi=`Q{1GC;`I{P;T6lB!Nh|;3a&> zj^@_M@E^+Tw?+MZ1t}^Q$4$8zuOVy3?F;p5$O}%cn->8$4}5Hp2h4vN*m-$wq4%d? zzS|E`e?eA@oA1Ez)|Lc|#NrdJ?b7yzV)Owy2-U}R``G|2UIH|j!eXn0^%2NX`g@^_Xg2d)G5 z@K}I%;@>5QXxboJ5deN~&H&J>-N2%#J!Cj;I;w|dkD1fpKuI+rXgTFgBxzae=j+} zc?a+&00tx}z^rivS(@+H3jn_dz@+z8_4lPEz{?wK4H@G1!NBn~a1tCmJ_lgo{?{9b zD(dg*-JHGp-xL5Tiy*)aLierY_i5ambG}F8-u%MHc{5o4WdH!QMmOd~Ebf0x`D|c~ z14wt@U(F%-H+&h)2#ahCzXbi;qac6! z>*i*WzpHoSnEy``aosX&!E<0C z+&=Fy+U@a*|1D*}pw$Mm%E05^+HK_iKJn z2IPV~{oUyI%^MIRH@<5Gw(uyR8?J^7%RA-J&7tahU;k?;{f&I1&b)_wPo@R3`it_- z1wr?aImy7p9`FdaL+fu;HprN{hk9>H2j&V0>jCjK?sYRTVV6Dt=03WBKkNhmAnf!n zUq9gMo8cgI-*@2t1ax!##$P1>+-m=w7YW1x0dTDSHyolYc?S5|-iQBPJ>X>Fz3Kse zxc8CyZjA-EZn^(s6JB73`tTeOrs~pwm_U%8yC-wq9Fw|NR z4>u}1z+d<8QUGW8Zq-Kk6}LEcj;r)jI;NJ!Dc>`{UyVn-?#e$nv`R~%* zx7`530+9I~69VG){RaA%uH+svaI*6T84Q|-LwE*UV)J(`?$fi;e z;Ddnfuy56M0OVG;0ZH5;-zpg(kUQjC-U1-EE&`Cm9rDeJ2C2`jNghbt3bv30$IV4i zkklRaZD&CsccgE{F932Yzd#aq$hS6M2;>g=_G}XXx%G#JB<_%JU5g=*Kgf_U>5zj; zNWi6le_HQ0^7#$qPgDQ#Mg?$gPy9d_=i94;{F1VJLJ1g}Khbu9EbclHaFe-Z zuiFT>AV~Iiz4#{%EdaUe#XnJEA&|Q&-u2?2P^-YJ+w_0zSLz#kg=t`h-+%b(Bh zIuZ0|=?AdydhyRX2!Y&T-wnk-ifrK3T`&I8CPN^1$ah2WPdq84dovgW>2@ww0#3BC z$bnll;8AdRZqF#Qh};Hg1#bHUPJ)6Xi4j!5&B*XC!F)^bC}4gHBtj5ibiDlu3E4Z? zz16csa)B;Vl(HUsj`8_YwVy5aupGTxwifduRUs=t-&<*YrQ?xtUK3iwPUhiG!n~hc ztljhcl|sR%;Rhe5PG3Uhq<9JY^y*DeCE3>V5j(5Cmy4p4Gic>?AftLF!Q?J$$Su@E zoLk5%@q)pQ8#)Vw#Q!v&UW`^Aq5c`!Q6D!nZcNf}f(#Nr)iqNae?n}}Y#*IC+Ir&V zH+tXlFvcw-uKE!p7r&iz=D_fpH+`CFp=Mf1$+3&+AIWx>;&78(VoprLNSOLLH7p4# z;Tur=cxQUZ)hxksu4=!kedhV=+Scq4VNP^O8QJQ0aKlD?HhB6{YRnB7H8feqI25B-aS`&UM-T%^p=qn;l^k zER$`EHOK&e3L?-nYxZppka?QlEEcc#_UdzuCoAgiJD7@IQ*fKES*^>Q!pGrEaJAWR z%TSuHov$`d4tI=qm!jWw>L=$JQn^w5cLlavbLbmoBJE3B85CH7Y>PYGHrq=9%uI4i zY2M})`W$xA`LpZ2lj!B zFO$S3#bO8|`+3aOgBLcI8sIc(ghzlj16-y7Px$|3V0Q4b2D~&_79IX2AYKCps}K+< zYHHEp7m=hB7L}y06?fx`rn=r}C5RYX=J{Q}O(FQeAw-h)bVdaMm^FX1nWQcFxeoMQB zJT{_ok6s<#*f`sIY@Vax*J%Z##F2Fzr>nwvkN!1da`qY3)zQxB6;)mzE~q##~5NqL#V+(wSNR2H8n?$e7}Se2N(8G=EFURs1+7un44ByXJr@qBjA zOnL(~dFoQ~Mm^M@y)RW_j|?U_B9-47`CI6JrHu8;4PBiv)1Zum=_mGMR}U7%lL%=Q zcIjicR8nU0W^x4yL#uKQXMOl0F>|=8u^;jUUwq6+>$OURggLXC-B3w1{VQF1GGj9M zI2Yd8wB1ZM?E~<>QcVKR)WA zcBP9K#Z^7Fh*bQ_TG6Si7vEJ5=POFvj;&Yd!pTH=kdOQ@2y~>5N8g=?3}Z~@5GkDc zIv5%iu0RM?gegEE&xAlNq*b4I6KmS%NUk~$HWk+EL9rPbu8c8jpUP<1Ylkw#zFYMs-C6wMGP*y}#KDN+lrwZVThm*`n(4z`KVjKuF z?_$dGIwlA*ja)YlsEk*kn$-1dC+L5ye~hml(u!;GlDyynMT3MY)i>-G z<&OwuCLr9%AVXHQA6cb(kImSMV#c_Nrys^g4#9*;48} z!7X;t-$n;&DPkW;GDx)BmorcplVx^pW!h8()u4jlLRyGQ;RY=4T^>f!z}_6n-7M~ltQx0yKrERte?7E6URmYhE0y! znvw}Fq+X%HwZjR{*WZ}EkD!0p0P_QfCJHVw2O|TPol%IMCZD{RN*nj9`lvBd=Y$7g zF|?qcNlsaj*nw$SqJfA@yeBEE<09T17-s1n-sIku@oY#A-P4EyY8g2STU}VtKKJh=L(>H3r+Io#KH^B?Bv91 zvQ+bJB`0rkAdhGfBQ$wGDGdcw1LK1gC}esgnvyA7++qgRoYf-yrOx9?{Zc-+dEQC= zX%eHdLcg4S95p#9KH$WjqR4vbs253f`dwBpR3<}XuwQJ}u`1C@D< z!1qA6X;^6mP$0pE!{Adf5eggIpFa(J-$NYzR=Uue9YZ#NC-DpZ7bp|VA-yE;rBofu zT7){&tsK_D=T=`6w1=M0mx>Z~U+<9d&b8tf>%p^+$tHgLf*r(W8vTxXOSX^KmecmBgv|%kK%&q6H85dP0w9@pKjyzw%&@(RmkS)Sx+} zIv)l*H-=qA;dyp0B6#lT=0&tNsPjagm(IqsI3K@bIlDW!_V+lII)%f?!G%n>p1885 z3XzNi64z&o#)yO9>_#~{R!Zw8W^I;&j55(kr!n_ui_WAQ&F?#SjbgGcuj?1x`L*n_ z8DjC_M~uGVrU>;v6YY6RQ+rkh+QtLHonW$n=dCjGDJ}|D^ppdkLnN!ZiDi9RLw~WP zj6yxrwccgkKt^QMA#)Xtj>a6WKXZwPipM?4L&*I_1jic;-ONWK?%L%w_L~-Ny9`mM z>C8X74Hd^nbj)X0wukGn4%dmi{5(+`o2$mLKCy>&L z-ZD$sK1T^0@nqs|^VbzuH0Ej8)Ble3>hrIkJfX2PMzk%(U+djgJw_g_*FNdB)kXh^ zW9$yrzgGW|5?G)Oa;5tuyb*K$gYVfFYhPJCJ}}dlE?UFPvF+udAPBwu#?~@dl2g@u-mA~4?D=~jQs@~F}Cv{Z$Rmkl+ zp}jhI{Bw!G;GF!+#@Z1mKRkTrXxWd{3pMJIkRZmXf2!x~o=qf~)$^9i>eD@^qtCOi zbu5@KA~Lr|o~Jq^i3LYc%m1pY<&cPdBt|&;ukorAsD+CIysTWhL>b4?1KwGlzaqs2B7l)I_ z3*tC}_pFZEmUT4ua(jLgvY1+*{@C~xZBP4b3CY=0php~P6^Z;;FXr1i^#Hdgb5Z_3 z<*cy6ipdTid}j8*!$PvBt?zkrIk5b!T+yZ*Tf=m&bITL_GS$uEh0uxsc8h(Ei(1ONN4hQFM zCf9fF>hsz>Ad-I@>5UWKwY!Li+)PHNfv#}h%KI>?X6y8eP1vy490#!(VGARTyt_5# z_RmySZ3rJ&Vn}f!abHkqC%cQOZ`sJyFW02`+G}tP@-!ZaFxACYP%nh}R}fYu6Pa?k zO~+lGD%(mI3A(9#0WsMKsIQ*!&1jCVeorl_*+X436+Dy|ZOnOAdiJHOW6CgXAN1|8 ze%x)Rbwq2y!#u?Q0Jj}=E`*AJWiHRjywM`Mwp9MuZlUM|$-E6c;V@RSpR}i;#OZiF zaJ`}AZMejvOL&|MMJu~c%To3qsdZb^40L`~CzM=1bZp^qHU-gcmeeqh%!*J689w%K z_fqt2ZjkU?usogZRB`V=cBFNCC(wEMHi(?sXHVzzFWhbwE)u_v95v_hZAD2mkYenR z&N3nCsVR(^#>~oZm*|7@LsMVMXF3xTJv%ACY=1pkQ*)vh8T{CcvIx!T66^KKjZS(o z`Pt?AR}l1g=Qq4R(kgIJ>c6B_?tcV9Y~Z?`TS4%xl_8+40aTWNmkLCD1pyZo^8FwE z%YcTt^{fik^`|#4encY|Vrze{TTIF}_2D#~sbwlJBKoUC0K;<18_%WK%znbF2FY@Fji>qv zjiB@|AZ3Mk(`;7J;;8IT1paTSPWzE80vsL5YIDd{-?OcAIy)o9A1`nw$Em4pjE!S< zV88dz+ogBL8s{7)rzpWx<{SoOM*`&^^b%u?hb_rmsFj7;A2g)aabyt1lD{*y`lkzo zzpp0G7C%({wnXET-jq&FDC-utl$|aZp1|%O0HVk>wa^@Di4(@L?Ci(ZkUJLr8r1W0 zB5p|p=e?z3dth%eEZ0Dw%9wDP(`-7nuZly6Fha2sC9V;Uz!M)Qy-&+4^kvRSn0WmC zEd#xo2&rlvO6daT51!P@Mh+&2c&UffIvP>4!wqW~#)*QM{g$#P$|NyArDzw~~9(b3l=(rPV6tManJG;+Az7bE*&eqjV9spz6_5 zwM|0Vb1<}My(6FYuLXEwJeN^ya*zS?$URA`RT&u<5o>>_G&T-%oF|Nfiaq4bt5*~h zounLPE& zwF$krIxjjb|3*LLZpYw`;|MIthh~Y5qs=P-vSoZ2cD_k`Um|}gW$OSG63#Fdwy4jn zfl*f|)(e?vD%afI_N+uWjq+1DkU0)&oKfg_kXa%Mhbo=Y$nyd?F}d9IWih%PyO%}Q z={Bs<64YP($hw1J+jV;=F#*P_B$v|5%l1}Ti3IphF4MEAqBJI*DScKdRKtgn4huQ* zv5^EU7b<7Q27}UwVP2aEPQJZVeA85f*Fld+%+-aT5wfe(zclR8gR??E zfs-54rOUAe=x@J}el%%DKuc7sV$LNKpt$zAwj$e`TY4L_YNdr`^J=onFKC6g-w>aR z=y?N1br>@}z*(#?A3?(B(3Qx`H6xLJLCC~La^cntRMKaVfktR6hdcd~EBSk&ReP-`dHN(}l#pK4^L9~S9LBUqGI*2k1=nNc@ZtBA;-!cr>GmiD(pzsDx=8`HvkBKn}+v{XrrlFk7R zu02lwa>gk{-~61I@c=_iGyzsT(&cf!ZBeOs6ejLmEpwFa%fw=@_cByX7a0PIEclW6 z-!Ss=C_wP&bWsF);do`@3fm79;H62Zle48LzCW!E7uj6kWhh6b%oGbrj>C zF}zxXIHKegE6&%V3M#I4l@YG!%qc`f1J4*|4Lv}K?lt>0md*3-Za-3JUcbSnUDM*S z?W3jx6E}W(<1p*gi2?k|tU+|I11(+=`)_-=Hars*`h$~aWx_g&wtx8G;1xi6)> ze3aZ&-8Awi(wC%GrYE=^Y~-qm{CQ~Lz6z%aCl7{qKG5_uhpQom{s}Pw0w3O%Dl8Qy z>zI>(#zzx4USq9EEtmMe`Ck8~{l!bG@wvIPhH&(SV!WbSSds`X1NgJ!GflQebHRLUZ!_G%>DoW% z7d6*XTi+2Gg=9Got6p!tQyVaCuBO?^6>|OAa48I{WxoM|@pY|ui2 zW-~z57ue3x3nWM-%&`T6H0{qFEDELAI~_ikQiVnytV>%2=bYv4KVI=T@$=A>QJ0{B zqoNDI;BPB)_&t+6a9J@B=wxpvR64f#tc}TXm&5eZ%y~9v;Y4WY#B+CQtm*N)ll|y5 zl}0ssg*U7jMcm!$u@rpnpHh+tV z(R|v%D}_|~wNi=(6^?`Y)YNT?Wz$x`oa-|q@qYD&iCDwfzSI<&6^>YG7grLG#NqE{ zWdjZg6L?o@QZB_Mw_P7==UEnAYYx(3LR+pb_JRJIkd#R~RC~OG;2tid7g_Y$=Z+V{ zppasfZi~bTXU2XN{pqU5stmoZb%!LV$Da0OB-PP8JDsxptw=A&EcPW-6-Hi4ZOdXiK1UBKb_Y4{hDSd!!^ymo1cc_ zVkz_qVpc7kahpi30vGwS1DC6_Xw{=?8r1Icle{?-eS@e*>%iCZ?=AiHun(HL;h%v@ z7N2VBE$J+pPof;v{?1_j!lH3;fvZvaRm^nx?G(tW;lr1JHZL0U`GpKz+_c)pp^h^5F(CowviQ$n|$zb!ZI!=@HIQHK^{PSt!1sN8_CT0t0 zhnBwXmE#;6z>@a1F&MEC4RkQY6fF*_g3>dvSCcWuhA<_z*3FT+piT zGuEgX=A^gF&I&0y?6%qW{V#!0lU;c2W zX`@?Ug2QvKTL@Chs6Y+$ z73e!~u?QE|IqK^bWP1!aKZcjIbRqsCU{QWIt%brkG^&2&wjcOi&AM(WxhDBp8Z}?% zrGZzas`=XY^D{@v1%=;CT@4@1Q_s=}3msSWMyko^ug3c@er|Grw3>gg!-7(rJAGS} zIcna3&gI4UX^HeIZT;OmnxxJ+!zUGTDBN+gF2vnuxqnWR&UBVOJ+G}Y7MAvCD@ZXW z+PA4cLf;P}NV!l|>3Q;wjVPDV>ot+Pk)-D~*d#IVC$f%NfU4M8Xgd98jj?6Nb;{%~ zG%WnIbSvu_LriPfZ1xkX`s|>I6ehlvviV2NNp*{+c{qb1T`bOGj>IR17EM!|m}&bY z7u2U`L}`bKvc>VKO{TM!fj#sGon_3Y+UZkU*Vo}JR_Ag_P!=*M@PsG`-Q?mQuQe(W_Ek7PqbCf|9^EJ;}trBF{4F3(04@6=A6zIyHH z`5muZfd!l@jere!D*v}2#{0J*cI(>kPdHK@z<0Ea1c?%SNPvV5>QtGv8fV4uSS&dt z6eYLna(-sVK=%A$y&U2R)w~RNSO&>0597^Hr~wTcLS}mY!@SX>qtGF(ibdlV$t(1J zBx+R6%8Dqk3;Wgip^t35Jjw5BY5IL~wTftUIL&PDzR*71zN;AEuLYr)qn(Iihmwcy z<8mBg#GG-V3Z)9jOzA7TIoxx7jv%Y7b@~O$avtmli;@A*p#hN;jwZYjO?q2LtoU%O z1Y&4@YjFwQ{cKdNk<;F&R#iM&lr@5n=cv(29&_8_zszYfkPu_cBhki?G(Vm%mSLBYAex6A3hR%kCuIaS9;;`u zhG%R5Wz^MY$g`}>Ueo1OiX#~=z<=4=tG{YQ$(5qQUg?AU8t!=j{!5Xx9vd=yX{*j9 znnwJ&UUqYTs32s)A`18@{=!!oPt<koTAc&PSGZlGfGE)<*s}Q@h(ff=$~_jy1DFNuXq65>vS6Dx#bWunEMC z#h?2Ce9YfsU7dYp z=mldE8j2&3H=A9c&jB^X%-uc@2a|ds2UQy%u#%l7;4!5fab*K*wLDcb|M8xERD z5_y9=1LyVXS_&_9Y#-*;2R^ad@8v8V%HOxsEMleVc)TQ;U3AzzKXe(#ygU=zmFcAJ zu6|IX_sw?I9FMgAgBA4fkGbWMQpwE_4pWN(y%|&xXuu}~dNH7s@G>Y8dpc-UF6yU_ zpofdXDCt2>!FJ=D&glzwX5lNit5id;Z&b{erPbDqt4=5itY-~0q|yVOmDpp0ZKMzA zx@IGfp6Ng_Qk9ij)hm^z<;*DNNEM6bw@6HGB{H}*D=!hXoUAUdfK`_F=^y@D>mY^c z^W~9Ytohxl)6~GdyMDBF6`xGZxKj~mNN&^Z#a&pMl~XXll`NDpv@qlet#eZR>yHKo zIJEH}8W`ZrUfBwwH#XqS^)KZM@CH!6P=X+r|KI%n@_ort)wZAE#r7B~sT~VUc7P)y zdR?O@$0Jt&3Ga5Y6_ z54TQ;DVk%p{7B~fh*!X#c*rdJz_AdGYR$=_k41$|W_#mpE(<97!0Bkqapufox!JIC z^3~R;6XQYChq&uO)TyK8e$(@=D&tv|8a30Yu&J(7OLU`0c2{U&iT+;;;-<}=0S+vP zL#)~z+*;_tavRKAS2>l9n{IIMk~AIjPhiKbnGpQ2Zisj#ko?lIL_>cFgtGzQS^nmX zi+(HoX*s*n6lCM%C5ig`*N@$m?2u5?dblmm29dGYWr9Vu1 zzrt`8|1vb)?;Ud0+##*ZB2lGX&C(3RT)hUD&5l~oegSCuI!eA)g760uKdWbIXbG*C zWsj0;RcNh8qszM!OMTD%Wq1XI7|AVB8v~wb!T?4}O{-B}4J%s1AWdVyf~)Zs>y2P3 z_SaJiY6?nvQ#3~?<5|;{cAl;2alcR*tSLq*y>ztU*s!g&>EFSIUtlF|1e^t}J+Q>3 z;8#>?Ml%TCb$p{1pW*1I5r;gyt89vQI0+*O1gqQCgr;4?dZk9e#-L z@)61vC8YM1_Gg5RYW%eEN`)c<3UQPvUfb~bd4$CFk>D!BmmV7qTz6vs1Wta=(1ctc z3vJ!4+Bz+nF9SU+vBHy$vf^~PQyo={hZoTHvE))97`~++iD3k-)VB4wvnXs?u4w#Q zRff3{@6~eLVn*;3S!U~YF14m+B%|fh2l9qgFtl}asV+icj^atmA5vbzg;1>qb3G^I zh~LuWiBe|X5=%}0?&UPo0o^NB^`uvDEXTf>!PEbj!mb04*Hj9xNG`@A{6XQjYZnP} zi`ZThP-H9js82hx0X1fUiKW12s{DvvU+grLC`vpM%Jlig;FCmiy+$$>+|D3pe_?8b z$sd%aHf!qdTrh2=Z5D?HWbIGBzYx2Q)A{hgKp3&wp)F2hAjSvPPFE2cNut>DHygo#QrK7FP+0I zT+n2wEwQaIQ8KrGNK%gE^-RL3Hg5|rX1v1Y#kgkLQ3kDp`E$^@Tt6zoQPxCipVh!# zjJJpwx^1c9c%}s0^B%`NxD$WLht^&%$~D7QIft5;=(!Wx#W zHXVHIB{0)5ElJgdZTIzoVVA*P@JF~(93n&Z&j>Nh4r0FFoN4p&LdpZiiDwJGP4Nmd zn2_{g`0ifmo)j@Cn2h<8yFf(=l@&i?)IENbMiV_~lv5}d#A-CDK$-oLt5b{%F7q6; z@jxv{v5`N~Wu4DqckMWCk(yZPgpuuX-NCV5`!|xkK9g@mLIRs1z5h1{HnZe>cZUxg zjnden?u5ql?|QfjO{mvYEIVYE&4kBLrF`6%CcHLb27{Pl*g5=hEf^fKt~?L-7!nzI z9z)ZjKPn-4w@Jx5O(&*&BDt(sBR2+5+>IJo?qs#n5|kfBbq%w3SZmRx9KAL?5^}hDj+D$|>lpDXp?6SjXVE!hM~8-!EOMyJx`^+7 zPJL}Y(3~s2T}yy-GXJ@j-1we(0c#1wsUGm?`kx{nxO(GeEdhdl|DUxaRz=%-MGV_x zLshHjr+4mA_jK43lPZPL=Y*CO637Fe580POY|FZf1p_QRJ%%2OcvB9jM3T?Wg>#%H zx$QPT_0hUQ+;&|HJ~j|K98;8P$Ax$xkfE>SmqmU)NYNA5wO34}BM2bF{9_EYR4XD#}!- zl%+&1dYX{=BQHL3oKvb+S}C-Y7Bq!@WSp=3viuW^DN-rNm7HyQe4J~Se`tbA-Kbqw zWR7Y3+m2rD0c~Naq|;o}UJjWd$MgR8*)KIib@NDn@-|L`Q=Sv{yf zwdU|eN)pQ>!x0KeO5O{)S5>1yzp+awS!|%|S9bHBNNx{VW9kh)Y4Md0Uk_oTY7_q! zGETJdwv9#aC&2<%ac%mWgJzk1P+sqtQpJ-2-G!XdKuf!6`l8F&6KWRKrJY){8oe(3 zJs8qnt&L-WBH0z8=awPyW0|AwnYlc`4S6%J$zwbj&1(6z@_Q-MzA+h;lXKjyls_+r ziAEU1r}22j>~fd<5D7~7WL&3;6ddF9utQ$HIOgPja+01fNa?*&N}c#x6|}t3UFKMT z>zW{e8UQ~oP>Vm@J!|s3nJVA&V(X_KvBtpgUeMl;%dzuBKM%~PjrueSztx{T$8fEk zP*1h{M{`q`6XMM5mr!xr2+`@F|i&M25X@xH61E0knG7-u~LAnaVbua;O#L@rZ;!V&m>FFqTJ8Ry>R36lHlJ5d&_U;}sMD^!gLx;-o26M5lSl2M(O;f~ zKl+1D5BkZ^c@nW{AC__xwa%S~6`U$nYNexHMV$SHc-u2=mZ)o9A=;`SOq5jl@vnBJ zU9!qEyb(T<%a1=;Xi6e+ZaqXk9{;hpQaHHG249pQMnzMWWc#SHw}Slbnf9sxRB1)) zM|WjoFHK?*)CHfJnwPw(fda~iNjO%nh8BMFoU%3({W}ww$ap$1t}I8zxeJBf68p;M z@9^c&K5GX4UgUK@yt49kwtAi_rdtPwk=DpJ=D4mII)20PA~}S#=vasn!+|Z;_6aD4 z%y`^-;PnrW%h8j=udA!bum@kdoWAVZ@0^TTb&PRTlua^EZ`XZm&zLQSMtNU6%J~f? z#NdJNXYp*voxNi^4aw%stdD{0w2Y8eulWY25Po8c+A7rNnzNp1fltXcnawV&ax- zbHE)VuX=E3QYM5Zz~bOObd;0hpiNbWEtz?IZEPEY$i}+1HiGi9 zEya<}NKs|9!$W<^0hpKC0VHS`1b&EbqYadZPh?rmH}%!hq~631*Fll^c_6{WzWcIV zH2tlO#I*=iEuj+$xY4h@$Tb2#GY_}XckVhtyXw;=7#mA<8uj*r(Xq*kP8X+l-KfNC z8k0T?ICw|3>;0R7f7BP2yXC3IvJEEI_GCq{na=sgcm`eS9wtamL>fd`ybw$hXtBFMT+Z2 zgq4+OT9`T9K%5*Fk+Cb-d;1ev_q;c2syx4zb)}fKG|4e_EfF0)X5VIG0CxtuAXuWcM9r)dSv&SN{1|3by`;R()H4bV(rc@%mMtXH^-Nl6{lQ@PBtuplCh zXSsT4iPg$gPl>}%FPj>on6|9wyXurq!jDdJF1OC0j_TCegu7_Bkun8~batw>7!PcP zuDEU7Nk7Y65{QYNW~EEXrzbQUWLZM3hwn0DUPUOy;5?&cdXl$2B(^nx7@kl?-HfH4 zhYczYmtvrU6FwQyU&=Old`PDFf;+(JgdU78j?-4>caY^8<)|~wLfVImd^S*{nNwu& zeO|&u)baQ@uziB&$=S?dLF-7N7vZ;vc#-;xv#Aw>*BP7j-kq>)N~lzEMp7E9ucT+0 znB`1N@Xe=x<2ZBf99qo3UdqSH)|I5k>Kx!c+{~ZbixOaah00}t|0)4aE%%oR)Xxwv z;?iw@Ez9X9u8)!h(PH0gvL>H_GLSc&qEoprHT1!#3h;QK;4D5~mnRO;QPRfpn#B`V zEg!BTYP=_shPU+&>?l8jr=S?7sq3Ii!%2{2iM1@>q*rUY`(`}xo~w2=93U>W7nrg< z5!$P2E$-08`Xd{-pHYlAN-N zn;h&s${-Q_PokO!8G5EmBDo`5&;xQMXGnZ|b2$+j;F%WZj=|lis`z?IB?HZ8&Gy&4 z)t*FW3hm#eNM(0L&usWtl{`(syAo4oie|qOX}=20SbyX23PMyOEY2b=DL~p!*Q`b8 zSxK!f_Fh#y{C4$7y|Af^OFFP?2+bmE%7f&*VmR3iT88Fo16lW(eayNoeOyUAc8=z5 z2T3TupeK0Okjl;lH+kKaI=K3Z{FkN)F4r6FC)Q1Bp+e!mpfy^q=Kt({|J##=gZoyG z!hU-S>+ikqjS~wc3=m)t92pIqX^^)cq{62VO^=!b7lSC21s zu+gvmqF9d%=;_den-`0b2u|zG7l_YVTlYOb%;z4wnx7v`bPn{K{wj(Q0}H~mVxYr6 zYjkOKro0OJ@$8 zrlvnUFifqORX?_}v$1p5R=}ntN(@PV==D5s*A|-@<(0U>sGl3(cb3^$ zFES8KHF}|QFQ_e^8kv>g zL6ZcjSlmT(d2Ancx=>b!)5D>)w3ATG`N`<_sEg)wxn{%<5o7W8=`YAZm65Uh0{+}p zgRrrqqu0mHPYKaDGAnf=A|zuR7|JDceiT2zgD0|ouJa|P%VX8pK(Fmp=pv~8lsa7t zFAs-Pu&MZ)s&Z92zNhpM0<;=bnNZVP-YM27;mAn(3=Q=(Q#;W0X455mHgY~{|JKT8 z`73CS14$$%Wwbz2VV3L>5ZRz{-cQY0&yPVhC+j0S}rKd-7o$<7493uB?eydd*1c2+ClN0X9kh zextSqtkJ@(7PJ(Qt(%;dss@>m!@PKM-S}dUzPDM1MnEX7QI`TU6iB0wT0c<h$3 z=(YWva*IvI*olS-2=HN$Jcj>}#Vfpl^c4#< z&KrHr4D+F!Wf~LfP67sJ5G>dC!c+smG$BIF>Olix?j0b(a6^aKjgo7 zF^7GhrW}&{_?q$pT=-0OiBJg1*D`SV9sEa6sPEUu(L55yg;)r+mK+*v#QbWnzooYD zE7NdF*uxM%p!!l3?&MMKyIH(bdG@}i??HdrRv`xW0N(eWGNX6=phta3#L&IhnPiW( z$11X;mP=#l(2rR%i|nM+h8)z)YnnxR-o6a9=FN)hRT==l)fnc}7@?3=8D*f=anmd$g7vFUR0W`iJMM3yh~PeRk$y zu^k*F%*T3L!{B&O6+y)gRo*TmW&~94eKcw(>qdsrf?(cE)yceIXH@D|YC&if>Eq`) z<9zD}Y>E7X)MAu=29OL_(aDfp!Y-JxD(XGolzctpsXE3yXer-373;rQ7yMbH*u>BI zk>6)UW)xl?r$(U#ev0o=PY6pJ)4-(I1<1%Na6Z&?kC!v+=axY`42mZ2wvphzf4fa!D% zALZW#+8$j`zwN|I_PyD0+P(;Rw8S-8JH=ZyIWX){VY68Gp){$ce?~Im*g0;W{lQe< zgDbxDaVb=vZd-ZK7oxfO!viUj`jlGGOF}CS$7a1^9+)7_53hI`U>a4R#zQ&uFyR88 zt#ECEzcC$c;93OsXvEhqQJdpn#`54~3m%g)KI|O9R&&Qi{&o6rsTTi@*^eGF732_` zk5*qEcK2VGMo;6esI--2cEV%;rr(MP{cTIi5?=0W zclU8h84iASeiOaQx3`dWzfdsss*!o)uu3 z0JXjjSWXXt5WGbWNI<~BI>H(SL-;ojZ|>*(FC7jLC-CL~ER!ZYH`dKL;=h(M;N?yJ z*=F$d5Hi5kUH@TL;N-l`KOzkt|Iuw+_rK}fh*cCd&u!rqU?4X<{Wl$MNO4@iscG=h>M{%rQ`)@{4s-vdKU=bqB&8?HCWn;9kO0s5) zB=hL~JG_E)htYgv&!!f~INr4epAOn$6n)w{^{l@>{Td-~MX0c=h%r(wbUa6ywkm={ zW`!?kiYe z1R?5o%xq38v2Ade^Cf4kd?*pXfIxxKM|8MJq2Rw-~iY+w1sg(kCHXO+KyLB_Dw>=9yQb0o6MuC=PI)yFkJ zR2ii(7xwBF)CqsdEeDFQ$UFoJ#axbgQYV;r+>g0Czc;cJMq#-6g$o3yVVO;V?#W7l z;7%Dw96FMClqT;i*#E{Bp62P0rPRltLV9JT28$_3zTR%nd2`Vtnu4%opJ53GVOb3@1DUU5tCgw~sh!bBns-MqWa^)8ce_Wpev6=` zk{Ed(m))mar)7$?`8sV|VJAOYv_bxZ)ufE_$d#yOaBOOR%>1cLhQm`eF3ouq$vov_ zWu7-#!?R*VQtBwwV?%4h8(V%SZfo)B{tMwU)cNO9J~Xh&vkGr5K*k7LrZrmf8da&L zPbTwX2;j#=xzN*daYn1)Ym$3m1v!KBm2ibe@Z`;~qLep;g@>>A2!koY;b`h<6p$Yh zZiRVhaN}f-{}77R&X@Cf&jZ>T#U5pskCvy{O2dv#Es%bXOFir>=dbqv_okM>QB|KvG*Ett=fCdIj=eE zy0(MQyA`x>&_`et1&1&d%pZkMT_`C4I;XPANCQOb@pzjlDx>CFpJH1VDq_xMqB8fC& zx>>Ti4@<`9I$CsCX>Q{NT_-aD$UVeVE5XMR=IJ4RWI4I4{(UyV<#k$BffbG1ioubs z8L?5>0qiMf3XtnJVPb zp3Fc_LGN$s)O-s7!Z=<1(hObRj$bE8q5F>1}301+jSwcRGYOlXVuo0uC3|C zgT<7ExPi2B{6x&wORhaO%1vHOJgi{20xX6HwpqB$=>h%bp%1#}?{B~Tfc%RVL3zLG z!PS7z)WXTS9sM$!OPahGclfy*#=PkS)3G+r>!a{+2ZJ!8Q%U0xaCrDBbls4EV-Qug zb2SS~FSIrEJdm>mARlhOI`Ve^frnCp^6|XAAg4D&o%X&AM5P3w9G6^Yd}X7s3N*Y{ zogl|nf7Gf~G&WK<=BboxR>11=wtnn%)OvDPrf~kp=}otCy1IIN%5Ex?>mJIm7`{w~ zn|cA2u}Cj>b`>EDzztr8xz*BD#3z5@@|uyS$Mox9l`?oT(~&sRW`|~Vyw`PCUtwlBViRO`OC^w{VM;a%01 zs-FSGJ(f(%vp}~#nLVH=GKno2Cf0}BT}ccWL!H&<@LK=ug*^h;4=Mwm5a8eDS)o7+S^=u5pR^Nia;(>OY zYk+^2Mb8HMD9@dk>zYIjq{J)9CE1`NY|)hK zZ^idmG>mLLy9+IkWeehYNLRN!v2=&0SYqXVg|6Symiru7W`-q&W6f^oK_U%ptSA9n z1H&V??p`o>vB(jLP+4SemuuFbw2x6cE3X3YTk}v0RqZDlJ5TPm38kLiz)@GI-$A30Zhz4urNYI#ZthZ)x zIMwp$J?-yQ%kBB~r6je(PRSs1`lhfT;DH14<{3xHk-H8XqgGy(iRF)EHUtnjii!DO zMqlYV4I;j(y_xTmnUM-G1VlKw37X$dNdUGxPaE;OySt%syaXMP`x|k=_n_}siUTg_ zK-iJxac;;96yW&MP^8`|{Gt`O(M$Pm2yJAE&NJQi$x+x&q`b_;$&J9)+t;}IZAWx* z3*VVu&oa#~vfWTULE4^1bnmBrhD4ny+|;HZh*ri_Tgb=u{aR(1w$REKltE) zPUk~5%85|0!DK>(`aQW~e&j}FfGwtpp!`fcNy5dB3N@Ndmz-N4n36tN_rm0zv@$vcgWR4>~oGQ~YV^dOaZ{+$C3!#wn8# zWsxK?fP zGP38iwY({n;wF=^rPdsq=@T0p(n9w}Xox4(&bbL zP}9P2yH}8wpr=oY0XfW@T6|c>(KWx$s{fkMYj;*ck9I=KIo~}!^!78{t`pRU#?OiB zSH4{;7HHI^v|+O_@Mq#DS8*vR1}Z&d-#A|&)cdoRh!WmBS6PWh#0UVLTO!k0iQvZ+ z>fZ96LPc>!1rJsEW0_y%{OZq3gg7nyVD$gS5xwJBN6jzLMOv6frHo=!XTg{wNeyEw1r7u3!65(~x#O`?XXX9qhY^225(Nt^ z9b}b6RRsJ|y5kyy^B66Vx@ICU1`lzLO0=4tvZYmjl%W5+wj{u@3u;VLyDjb5b5czE z9qc`W@p+RKNOkFuE`AIiK22dY$e4$S!=2iwM1TZdmtYGe<)<}vnk|< zPe{(IeV{8tU*R`szKh&ekVcl0cci&BI0rTMLYMoEB?>1iz@XYX* z9-FsY^FDvV5(WauK$>2+mhW%SayS4$4+o7UbL!=! z>wthpvqAwNDat1tnV?dx1$Th-WU`nnEGIMsA}={U!t4sg+j@En16tuocNgW>Sq0p- zJBf_Tl#G;B@#R%%!mN1_C(Qmka<3i80& zqi_!X*0ru2@BUrPU2$F<@?cj0ZP^Io>R!pHgf;>2Y_)>QA0p`&uh^-o(iH--lKZkm z6=hl9U)Ku`#bqhB^vAb4!l$x1X*LgQIm3XiH=WE3Yd^1BIYi5M94x0iPuo_ZRAx;C zbcn8}Jj){GH|nors>q*tQkTcb3_T318$HMnyQ>B5xbYh2@HGA;N7>riqj|}jhD&uR zR~a^ddCA89&CsOTbJur@W4xg4U=X&JU(0|sp%m1)WIkP@(D}_Yx5>VnkU3X4Vcpio zHN4D~ydG4$W_w>)-jH_w<)o6OP67KMGs#;C*e&#uwye&*u6 zFqlqrJF~<6hrTZHwR)Ck@|y9wjS_Ao#~opS%9)!Uu90+!r%z%2eQzmTjw@`qi zKd3$ZC^&sRr#X8&)KlpB#IFTP%V?bli%i-)pydKtOp1X0ITr6htGZZ5n=R{;uvwrZ z3-(UpOpfP^#wfea@Y8{w50eG-HB|4?tUJK@yQKdm$HwX8az8_`+A-dmqW?SG7%h4q zkqsavY$z@=Je&o@?io+dm#zKjeAf<7QjGaO(ZRpNAT0l(^ZG(FaQ>D#30HJ*Qs40S7Irw96=Mlp zZBAGmj$NW3xV4{=#}bj zk4!7UltXMoR=>i%8&5VR@A?9r4xJHp5@cn}Y-Ui;h?pUQwkMSSti;)DVlKQk*kaa# zrjY45=61@eKnS`sf^;QeJ_6JPTSF1tIR$5%)#$XWsMrrcI-~mz7{v$@8tBexi=01Z zC{(YDjy~8KxlzxoB$k(uC?j4rRzuPF>JNR!#=!M{V{;bkN;q1@`|pCYaECAoW{exL75`9xULW@fc*T%_fu$LkmeB;2M;%eP(i+y7cD+va2SXp#iy z2`gABt4LHfBT`Wwh)*KQ7gl!ueC8;K{X;c5SEtG>MWwK0xcb65+TT|YsVRr>k?#AL zKW6gsK4NFJYAhw|YsNxCZE(#?MEw3;+XxB0O3XrD1BqrD)x??KGg zz^*q0Xv{GeE@%8LT!@ZwXa5K>_z2RL_r24Am>S&NRa{*hjfwYc6u6Fe8I*s_1$K(Y zLZQ^aZHeaAdWwt^BGo$Wyo@GvN1~;r2AaihOU}e9RyU368|q-3}x@dS^>Fl=zAD!s0a9iox#Y58`;&AnNmyqly(+Y9f3SHDxMJg)vA|xvm z0no@yn)s5>QDr%d1pJ-lqcUh1;N>ql?PZJ=lrb}1xh`ZVgvFqY78+qX9p6gsj6C*?eC8^~EKQ{2I#i9wmNJX72b5sH3SRJypMV~uQQ<3Tv-B$*0$pKAk!;aUEXS7CtWe3`K!AO(Yxj!U>z7Rgd zQn05)0gYE(p>SX@cgW4biLiW7?tr&FHCfW_TdRx%)KweM>(XfTyoeio+A95f|NIU| zmyCxtSfAls>9mG*PU(Ww^?IG6--q*gS|4kbbC1A&I>zNRvm2XtFH$G z=SfRIl-~=m37gq(!d`aXKLMrMrW{#PwRD9o1seI1zMBo{+SV#6l3%=l?rXt*d=9Zj z6h{+hC^~HSySwoRCU9*k#rA-0ssaw_Be3OrQXgaWYZbVul-2vljo>xJAZ)N=v-jwd zdU&(+ymXRQ-2rbPFPE7)Z5>5@GzZyWacb@w7L(vA%Mj>svH+zyCcuRx8T}cHWj7ec z5v?Jt&;hNkiM>~3U%gUOXkGrF`#IQ1kq!gXra>ws$n}Odr4@+#exbg(n+2}T#Szb- zOroJrC-*^1bK|1KP3@qDiyutNO^etN^o*e#%ipBzFu^R1wJ#QRi#ba>emvlfiWs2wYL4bwjKUm7wWrDKv|$(*v7Sw{->{OkkmMY z_Xez_2CekMWnA`={QDmNmQt~@`)pA!a|Ka{#P*;N?>Sx0Yd&B{Eyo9a$i279JcjlK z_lvNj4_CO9O)zaidJcpof9;-A%S5p1WA+rPX(A!u=_1HY&IYEuDcHAy>3-?cN`>6P zWr;7yHYl4I!B=OS9NBm5djBKk_rX+?&*u9Z^Jgl4aTTK~U>%F=$s#@j5a#B`MlStg z;I!ix_`}!1(CFKoTtzv+X?=34E8`teoRNL`uQ&(wOTy>hK#(uV@BhEr1M+q7S3Hx9 zF#(AN&{3YT%@;@VepG8v)ufCwM27=*q%RguUpHlI-EY_&i`0XdV|5DYWn&_V>;5PM zuJ=++1T#&$C_6d%a6?xJ%MPmpAEc~I*T4*7PyJY~?3gx51m__22ss4zrJXZ%tGYi^l5^MCqOv*cxEXCoX*xcS^MT=n6!s9+$viZVV@r^9psdy z!7L7}+6#qnvEHR-Zelsoo?B*o`gXlR{)sPL_l|>rhRNFCTs`TVJ2{h4S*)ZMUh>qb zoP71Z3q61E8gl97GKsp3OrM-p+nCmwh-O_QfI|9M#qu;g)eL+o%k|n@!Fs^pSyagY zkb-LwCc>utJW#-)0TVQn{AbE&#GI0KCW6O5}5&Wj>{1ZMr7MN$pm&e$kPxexC!rL zpi-B~*I8G2wY)^#%0YRj;Ze{$+Tvpc@Bw-gjOZe+X7qWX)uJFL#an2%on9ymvgeK83~jj=w=bp_#N#OeVi__6?EtQ;nN9N&tlasv(BKy5azkS=?rF-qKiOuL6%?5MguytK|A*L z`!QT?rF!)@u@bCBKLkeA857Jbz&uU{5bX{~^I_mYTSz|xi^MG7Z_%e!77;FhDpv?@ zEN$ni%)!x8h(#qT(;eFy$i*c&NH}7z41aUiNhqcdC-7Cz$F_-57>xwT?onP8$+@PL z$Kf@nbuO%@5jzzOpCa{!&bGjZ+%2#NxE>$#tXt}7NLMwr@gup(o@MHOhK0z?Tk&~?niF=EOMKl9iAoK>#?Fne#3 zzdb>r{3T`c?@uc8UvOn02+Kc>rOh!3kZ$0Ax0n7)A(iFt0;qJdel8@#e=?YVc)ws^1t-Wvi_Y| zxhK^_!a)9qwI_K-6Y6jNR_x}aGRShszjV_6&5$p-)vsmv+Yr>`?GGs0zXn47o67mW z=Jj>f*G@*-EKm=b4)K?s%)buz_p1J74Kxbl|4Smo`k$p9YJ=2-Onx!_-)8kswfXOH z{$a8HZ)^UkJ2yl3LsCNjCE)(A*03i7_d-Q~sqp;0p2W>xJ8>N7Uy5k|cEy)Y@ZWdE z*ZbFmNty#^Ak`s2z6kUG^@6`Qe1B-Bzjfihe#7J*um5lHhn69oA(O+s|Cf2P{k>kQ z$^VlUGyTJD|6kMnI_EE2zV2qmQnPo~qD=_cY&+pB(}m44P&J$z#Wy7mAp<4GcNN zW5+*ZKC&fbC$2e-Z03df(#7VhIScp+7Pqvu=`T{P2JrR-Y(EM@K?VY?GTt~a11ho= z)9@Oy38ROywvw8%2+zf?1}*B`w5EQ>ck5o{LY3Ss4tY z?Gj9qECWKb8P#Bq8hyP~`}7h>=VGCc$cD#e>jDxe?i&%Nb;*DNB#!+YcpbC?LB$Z9 z3!a7nH(iI8wTf+8KO=agGaZ9^@MPQ)WtRkPZuF;Sw> z=Ge`_Up|1ayiGF~kRC)OlRM~5I-gg0lvn9z>+~loZz1%X8FUn}XTL`j;(k!jLpEa~OI&=6E2u|H^4FGOAY^amE68MifcRFU0u?OH# z)-Ud920ls!SE+Q|@;e7IOPcHe^0V-Bc>7f4a(3F_Xax{50Nn&O7+tbcIzEBB0B5!2 z&WsrQShz#+GS{J(Hmy$lvO6{SA>4-vH^w|_Ia(&5W z;Sl&;52)5~TleMAYHq@-OlDQ+-lB`AH>;?{WY1O=xt6Tc!YTTSXP{cP)6Wk0M<_!D z1d2ntG=s8AfHKTya4*<)qIe(;;YtRnSMJ)jdch)3m4Qwon@Xw~Kf_PL9O@|BAiADE z{pR7lH>2RoPE0Vj6ma%v*zh0VZGb|fz;Dj$qfp@8odloR!jS=OdTe*IZ7=b<9R$q$ zvfavs(k32|0y%DB4fFlyfEVGbV<9=!6><877nwKJ&`C zc)c;$08H^|!|$=bp_bs`jMoP!)stlhE4}CS^=)Hi3mK~Nn^{Lvi=`{>vRdmUD?P%7 z{6g1A-J=a|Yv#!?rTWx;tzA%D*NO0S%4^@R#+jyNRhpvE?9I8j^whTdW?lJi!+Dy6 zb#U$BF&g^F4qRJMU(mr$rXRC;jjCqGR>q>y+uR! zf%MTG^N-=#((2U`3Mraqt2E=IXF^;6sDCWZTi^P2U&6opz3g>`ZV8RA#WD)xBFQ=};RkQFgkJwRyS~hr6wwy9hZeanW9bBCG1igV#t~y4kgEXxxb#DWB<%Kd z^SL_g?Z&LiIr;}g{u1;2S7-ZoRPeXAq)FB{fPw{K`#TgM1^M#V0-sPQ02{k?VWf{N zy&uSek|JmIKD=A7Hib#@VSe)FK+pj{r#89h&8n;0Phlsj4^wrvq}GLdAW?tUy18v; zrFxiNzH3N-`!Gx+W1cKApUkso&EFHMzW%0=7UU#prqnTcu#?h|gBBy`$Ov2SOD@s> z+rcbD=K9#AsD3WfIgLMf3-Db|wxRbI!wG)p4$WxHi@~M7JF?7cG-W~2Fno1p^3aNI z&zh(8Fu2>5SqW9k)p2hWi^!j>gA zvwSwE2&FcS+=sgFx{}GyVYU%Y;z7>$uE{ge46e?UNgJH*7v~2&nUB$gSE*B z@stHq)wg+6B0`r11R55ekG<;N2OFd1tBszN4L?=Y%WewgF`Snc8|7sMT}JV>He!lP zi;y*|f;+oWJnJpeivUWF30f;uO?V1OvHn;UFr{!Y&}g&OnbSk@{)%f>mBFgkBZD`r zTTs*`aY+P&SyZi>&@!(hM_u`{8s^6l5iGir2I7K;K5Wcu)@peHw;0MWh2m5%nq?-m zk4{}$XH2X@a#IR`i_n~%*K;$Q{%jvuJW|2h}AT&EJO^UNp7tJ{wd zLXJrw_EWn+ina5|f179>+GD^aXJ>{sdqPy_BZOeeKUA?g%WU|yeo@y!)5vh}hZmFK zDX{)?cigTQjfZ|v7Jc{6eG$MX~8u-h;+-F=hZr zy;*IT#rES``DwNL`$Go)lzHLWP^Q*2iO~6KMiM>^mN7wc;rolOzCfLM69Du2Lqu4m zorT_hU{th2`~ccT6ty#iWQZNOO#q2qDC)=e$R;*b^bmI+eVQU0-JD8zjY&4owTK%K z;Pd20iXg!HwdS2gx44TH?+w;_>1dB-E4V<3LYG!-+FP|kpz$;;1F<$PkGCjh!bHvu z-z2!YKbQFo2Ap}U)WT>Z_@G7Y&gw^_mK8%>xr1%I8*S)*S$DkPW7HFI3Gvf69U~F( zZiZuRDQ_^__eObXNKZt$shBQFv}_@{He&J##~HvJQaw(X>a5(V{UycJ6s&3p_U~Md z4puP)S>l8~D*9f(kOu_Ji=IY))|O|c0g51nd}K$(M41+%*mnrnzr9SJe`-dqRI z!)}uTI8O(GR@%9_N7Pho#iNgDKRb_s@aE zF|-3ZSKC9?FTlLXr!Gm4p1?eA$k-|m)(MRcMmBn-INP|zg%wzABsRFTd!0Cj@PBCOT^E2X?O+{=k<|o$@%yw+Y6Luz95kjAiFMgq58E7A zmK3MJmt^U3eC$pm!pO~^yQ32*d7TXG?-2r2|CAW}-NDDMrm>!Z^Cs3w2Dms)v@tx< zLxi#OLd>(kOcEroodouVRg;Ef=On3I6g1&Z3Diuffke!rHo41RlN2}F3z=LZvf!?A z=J0_p?d@>C4)el~^C7#5>*Wyu9*nRt=;jvC&&^u()o9BwdaZ5}I=`{VK`#;IvwZ@D zYpH)kqDPX*qVG93YE}e!fks|ro`{Le7>1y^`mbO32}`uu`=!12 zBm`CDpVbzwIC`-H_ea7)a4F`+Q*+_0UysH$4fGtPi3alI8_%a!Xn#YGs*Pu^#QA2mY%NAHK#xDw1nxC?B_GvrAbohv}in=d1 z2WO%6-N2ZnatQzNX#bv}vi*$%{9hjJpVS|~_N9aP_v^pNUNY6bh;~KM-!JqWBH!~+ z7o9`s@N^%F%5QA|vqXF+(TqLxqs-Vs&{A7m?7q9DM)ff>Z zAJm%c`w)pq7>YrJxPUZTU3-4fK4N<9tNM7NJW-{Pe&i+eKK$ka0P0E0pU__F~8Yf9(d%L5=EsCK$9SgQ?5Yag;H!=#rMW&TWQ*#y1+D=)>a@L${1rr zt}%Q}HnuB$N|Q9|Kx-)N%bz|#((qyG%ms|l;oB+}u$^+#u>RS+pqEX}SmYjqLPme@ zWZZaH^2WypP5M27r66p3aYQoL* z{6y)~I9Kd%qO-7ec_EtixYw97l#VNNL3M##+8qOP0A=Z+f{29Sqq5E_x(O_n!K*_y0-a&?nr=jk0Ykdv)!I>B$1!CR}PROaC#nM7f)?fU7M0}t3I z+Z7DpDv9>~F`5c}h#scGyg> zpwz1jE5yU05_{!h>@m!)bvVHd^m5tpi60{?nqWlspW#aO1%-2s@D*md0O;$dy-FqM z0LkI#OqL9uJU(5MK~Q5)BuyV;wU)TxSoEqZZmX$zwvU{4h_0A9c2_a$!xk`o{82i= zQ+vG^!);2vKCI!0bPzd|OL|604&ddjmpw7Xs=EQh{RN{)uTd{GmD2RJs?{N9omEYX zRaD_R14rtaAgr2L+8>+}4oF6@dHTAXfFq&}3sl4VFY@wxlq`>DJZ=s#jLO64k5vnX zL|V^v&K$A?1j@VTg^B)M%cdEPfDriD<050Mb@URCq$mD}rcy@m2|4BRHq*Op{#r3@ z5VxFjJNYhR4_|+0(_pR|e-ktzE9MUz6PFPWQGHlijD9Mt(z?R?cL5}Nolfsifb5nD zN^UnJKI;_@O)-oG_Urg*7UL!FkM_?{cNZrh*b~SP6Hs4I z6gX`@?Bf#7sR>S{_4Z(>)^!kX^F6a(3Hf=ZtS5HP*K*&7~1tN3`VF?%$VC z;MlY}7c*QwMWxw!S^&9!2-j(E0H$Y--uLe}w{Nf=Zb^U0zdd_p*mb`6jFR6wNq2X@ zKHZ#bti@(0edhXDa4PCjWFwIu;E!2nnLH^E(dqtBFrZMfuZ;bn@p1^|*22~lyG#yw z>x=1bhR`mDNPf=7tOc3O(B(ywyEMa*zvsRY-J{RzWCXzO2(M1=ahVLe13<*djvQ?3 zo&C7J$LI~qDWG6COX1U2ro8ZDxG&|#-%^70m>ke=IS6U$9XJsX1AK##Cvbk->7Re^ zK53$M@owmxI(De|E-};VX2=J3#wGNod4WvN{zt014v+yia$a!m) zS<-GYAhU`F!J4nec~Wq<7+rA&h9!nc)ULJ1?quk?#zGvip~!JY^@6Ly3WR`(jznGe zPb(Wxw$@_xlJI9XSv~KgaGCI9r!eBX`%FKjA8N{SX2P?(8byS4$YuWma)qIyp#E05{tK2BNc;~h3(S!$pazWs zI9J#D%bEHQXpRIEWxqp!7VYKwMnK;2yFO^+87?}%%(r5BT7;3X%RD4&x z0KnPjj_%6{ULJ_*G)fk%DjDNi&Ki`eZrKU=n@(drFSv;u(k8>8A&AU4eMU zwJ3>u#`9d~w{T2%V0&M~7z_Jvf%;#AZ9|ZsTA#@=I~|I3!(p&yzM^FgYAtra)i>`y^$2o6z9-6ZdXni6@X+xo^bc zUEk($3&anrX>uf~z@4vR*%l^Ne!h>Lny|TOq4q`Ym99+Xd4ct!%6duw*Y4U*@ANCV z)ta+0A6~Y&E?4fifaM_}eZ%`(m6eiqO7L1BNoskfb)oNKEwhvoOJ1 zYjGxkx8r?h&Pez%Jn2M%6|&Xth|*4R_4oM5y!Z7)px^6|Eu_n!4jR#-FEjBNUI(MJ z7+49?q5*Tq&+e@K6Zsa^`GvGIGcy&dC3sF${V z4G-r~@((}M{(jMsyOX#BdQSTA}jsr)_ilkp|&o&@j zi(5Oces6ytv55d%R)I2-B&!Y`g2z5ac5wCVU_BSCMMjv^1F}meFw%l+uZ+-*WzP}o^u%LQVgWcuaA8k8jY-!z~rfW7Tm4H>ljG@WSw18Cw&!;?QOcF_- z(rgN=yJry)*yj5SGIIO3S5z(eGylmMd`oR3yW(WuYa~U zBNbV`lWF0aeK6pYOPQ$MQrqQa7!Iksr(+*Z&!*))? zgOhD{gReS7$oOf&;3@uKDJd(5g5?xn&U9KM%p7Q7Bz5(K4wXJfuRdFrs5vroMBpTr zZW4n)7zUB#Nr))3psy4erHYOU>`K6V_Zg%w;a4s+{3;(srQ{mEB&bs;PV} zwlOdjF|w;u4V-@L`-nrRijjc(H>5sx)7;X>`?7MXn&#;@Fsl@s=#BIr30-*4aRi@Y z*Q748xYTa6)>^ffplx?3S!|SoVm){Uphw2zN>1DXXqj`GCQS&Jsw?g2?a{TCs%{~gCt*hPb%XS7GN#OESy|)!deGl(T}fuei*ucrRDuu7xA3)>VwlJtzCNQLe+59* zGUt^7-b|nl4SBy5k$||BYZ~(^AOA#SOxJewcQqiYXc%=b=VbA+EL2I1)@5VuA^*wr za&(){-0y1_bF#USS*j*YVYkfIU!^!(Qa5oPyNz^ptvTen7;p{9NTl?PBo(t5o_|$j z#k8HA0dnJ)??(O{WvbK*)m;69ErXe1s>U1u=pJ%D_H|3*oY6Urn&>YwTKtjXeup@R zo}j3*Y;$%tAbjB9&w@Hkr@Y4D>9v|^4!tE?cC5#}+P3vOw^=99L^**46n}kzB?-2^ zv#|jAOvzofM5~N7k?j0;7NMm&0$qa>F$*>$ebC+fj*k(D>AluqzfHZk%lE|y-&P@U z09yt^c#;R)`43O~Uv6`ct)7C1XF6>~AN$*{Cl)Hb)pF2L&{2d#J$xMB(wMtEF!jUG zv9Hv4Ogp6YcB{n(e$U^7X{{*L(T5~`fW&|H4n;W|tN2&46&lwkq<8cn!w*z4`1uc1 ztz2Zcf0*>l3`b19CWkz_%Wbn75%2vD094{Qgb?_Ru{XWJsVCCWH)F)r&M1x7Djl|5 z;T9v??Y`O1G!Kaet5H%F0z3)Wh6*;w`~@Re-I1p0#WAzsJLV<$q0@<5DxN0#uYRKb z=mK1MdyDO~JK;wvbJkKYJam0Not_ZC_^u)fn6Y1sb2~k>7eL^_V3log9(8PtVO6e7 z3VIhZMPBLP!#)r%zT3Lo&Q0J;`8!JfFOv85~QM)8#c+dmZnd#-rJGYZ>upcopw z%RjB{hjgE~9^1RskhO>cU@I>pq!J+Qu}uT?bWgm#K@t`CDu4?h?Xe z?fLecgVpba_MgU#4ieMZ?!e*rmpK6Xfpb33F$J7&fa!oDJX*QDnr586%1nfs)q84s z9PLJ39L^bmv$yZ%H=v9xLt>DutTv!KSCvYOL%Aq6MxjGYDz9-P6XOqqk&RFIb#6EkycltE49xO#Bn3(EB7FH5ng z$#MiPn%_T{#1Iqr{@#u-PDGKKBS>MdKemP=ywqnyynX-Y@RpKlGIthWZ#Z%^qh}t> z29hm`-iVV7;}{V@kX8ZW&mJ9E?D9Sh4AM1w#UQe6I4JC2UHA+Cl!eZMd$mYm`taz6 zlc=74ss0c2=5Pj~IrxHvKR5&&;)W+`eTbVH%hCH|gy?YG>ZpT3+35nY!FFIEeAc$! z_>P=Bi}{EG`un-7)Q1hAg&=c#vdsuY!A`>V=ax$6T)6<l-1(z_$ueF!fRaw zmf;#s24eAQ8J*S9Cx5jq$3T5ye(>ourSKC?d6|upKspr69HE1yTwl2cL6@R8b6ZbD z@1^@$3h~+S(;__H*Krw?YKqx_X9KJO4P$@YH1D2)Y^<c{329|i@{qHw+ScK|D>M_TjWW2I-!Q)3E0;)4fyP2xR zZ-4jz-QGp_8-r&6oXPDCLkFLOxL%Ge;cbIN%5koJ3i<%2q|~TA zr<0-5%jiMCX9Lh!HRU*Ko6wZKF%q9Zz>Crq7s>KBcKlN1$zrlYa5E1WJq=%&s!$n4 zO{uPA2m`E_9F^D$T^jS$J_q@hE}{N)4Ucla)^IOw^b8Zg_ce+`*jcIs%8Cn?;MhdM zC-H;P=Mmx3GSoMUFvO7~FhcyIp9|5(kYG{qgYOUqN@uc}DwaB*hO;E8FZYhVe@K2C zpSX8E6C(OtC^Rl)3Q66x zZzX#l(_sP0I+5H#zgt9Z8tj&^W3+>${52RK4!nM=0bpu!@S36?`AyMOohp|gc=)L! zsDppH)1)#q1iU^FJ8(=Um6shS_OmtTCe#PGHcHm6tm5Iz=+*VFLx?vAGN4{fo$+~ClzQbtRk#No9a)KMcj%nE1&4y**Q>c@)Jpv1IL5Jt`s)!$B2lVS?ErCd37Xp{R*vI1NgAi zl^!z2WBl?UEh*sM-`2jcjPNXdjIMSvJ;H?TMG!NTB<4zwllE-*WnpmlC^r8SSmN@U z>pxED-&>v7|EG0_Ik^}S3K`_pf@E2zY;#VzF^^2MNi%s>hxOyv-DNFDU!lc_I=4%NM^79Ivz$ znZFYa^sWV(8DojbS#!+U57hMD;HGK z5v_(Hb=liUvosRcP%I)&^MYToAtO) zpGL(!IK0j`(DN)7e^Kh~TGftYigYSqZ+q(38mUM;5cr+_ZD@7K3hrn7&bV7J-8J3&j`9M5!wQVC9ql zTzZQl+KaSQzJxRMr$LpFAKPjI}^YIQYo??67PN%&d0F&X{f(PN<9R_M(NiyK>31akUTg@ zd*n;y0YI%9sWeLKMVqjCKV(mfsTSr&sSvGRU3iezwgLtZ<-~24a#m#t$!4TiuO3Ti zM2JmpE*3nv-P?Uf+o5CF=_r3JU>Vtamb&?W`1;GJxRx$j7)Am#?(XjH?k>Tdpuyd} zk>HkK4Fm}89^74mLvRo7?vl4p&bedU@3|x2uc|$YT~*z5tu>d_nx{;V$bq=`c@uHV zJfGewIr6=`7mLJNsgE)GIq55NOtAJN-4>!?FFye%rfZFdi>`_v@}eb(IQvMf;NXxC zrUy0ahaxDiFk*f~wbhADQhAKsi!`gnw3FCe^T82!y!rl4O_TD(F)WaoH=zWF_Soh0 zX6=iutiDmyTM)qYaP^;az4&|fmktEA(B^zXmi^oxxKKIaGa003{n5^zjK<@z_f|4( zUk(Jk_A)Ak%Ygk#$GSK+WhjyCDQx=KOqSVxy)?8g`2Dnm!(#g(;;{AnCXjC##vd&n zq;e9vQIgYG=76SY%ktoIs1I!^Y}I6=$AIh50SR%NTHY8A62hr5Y=K<##;fMmz-g<6 z%TzohTR-&-WKlS@Tgo)$xkd?;=~`mYkj?;_>runYfTqeUoKf$1d^`I)Lr?e-iZoAa zL>}I92Ta1~x((ax*%~Wkx^W70FpF~aNk-#V{IIfyzC+#LtA;Nw+ZlfB0O(*ebtml` z3_9%YJI62mf|b~sHw%^1GFhH?e?8lNF+x_5Q12~A|6d~i^Sn7W0_%%QX9Mr zl|!evz~pP8dvyY1I`&L*-KIs+O)qiZz{i*1p6{(0>ubqved)aGgt58i_l z=YS^9t#_aY2pvnqp< zA49#7@LVv5u!V?`XkX^OK8~!70ILb`y#Ld0e^0jI`@;wtgvH7GzuCaxkw3|?8>j&E zcTjwPk8bjT$!dPV`}~`#1Ah4P))*F`8vNGZUAO%I<=}!_@C%epS_A+DXej=_n}hs+ za+pJ*!0kUPfWRwYHK~vQzP^Lv|GWO?|1SX?-2TI;)6`E1=manG_b&uox#CZ5Fu48m zL5%1C-@z;V{p0ih3GRaT^nXPLZ zLu-Y{{5~@)?AdFONG~}AzOu;6H)65ihu@mgZ7z52yz<>=QtnSOk_x@-OG=PMns#(u zt#XB3$IxAd!d;HVktt#NAHz99g-8U;UMAfGo4%xJUC9t$VEmy+xIXXQT7R# zX51}>d*%J?3%BnW*dfAS?fGI<9dHPXl+ObU>4||<#<;~+qjfJYN@LEeJsOQym;PRp z$r%(|!ZgpPH04=0|96YioQ$0MNJ)_e2eporlxQHuNpm^w?j zx`}8oyRs1xC*VM84b^|+@?I~%#QmOig*tnGe1BG~DV+4B1ynuL!prLKFM6;1h_Y2B zly1XUV;;ul6JIm9-37hWeY^@OX|cWF!t$QSgVNSd*+DZ_?t9?ux zi|$UNFZ6>JGA)hkFz1A+^dmkmV|OoI<~5%6>01|6=?2CxYsr#BFtbs%D1r0+OsV1+2*aL>zKto! z1H42(j2e2Q+mECATxTv#eUOhPq7gDn&fR}zhOyR|zLe6JR_SJV7N38>1b+G0Wkji( z-K{=Uf#?&J$E+$QlMTs#&EdRNDIu17hKJW0g_e%umt%;d>HI@^P*GO(1BXxd;XVGs z=PcCYxF{T>4zG!MLU=9mh|!IFA?jUXemqBEJBx-%s`3TGVZz$=Sk>34AH|s12Kxa6 zh}t|*liKZ73n9c7afeGJJU~q@Lv=L^!eB&06|AhYQmojjqbJ7H)dkhvW?{)`SvPNG zJHwM`v!NA7-mJ#ya5-BcHkaui-(sE&mMm4ge$%dKp5C2k#=l_*--edv?-x4cb$+9) z@VFSazt+lBvt{+!Q6*nfog|gM_<6!wkf$4&T&a!ZaCD+3ncp2be_$@^9~*~cUXuty zqI4jAIEqkD6C>(pk>8%T{>nO-2Yh)r{*^!f^GbjGf#sh-<4Ce^`oBwWiyh;E}A;FJ-m9KnkVEHNqh=b$%w>Tq+eEz=>A2c8M z!Uy=O1Qt+zMGh@spYaKu;ft9O(~=J*WSxB?GY_B7RZQ&QT}2@}6vb;LUP~|zFJDjRnDXQW`w`2 zw@EwEQe~)4G!|d4o?$aqEbkD1MLdzXk5J&IVoD^YF=HP>SJD0GB1PrIAq|P5pc9S* z4=@5&Qc8a9mkkHcz$K0r|4~-v7cC~$TaL#^>+OpJBb{(h0m+^$FJkZl05m~;*}X&> zS$!3U&(0_^rN~L}Jg}yb`HR*NUX}g)?jP}_F|6X}Qy%52Znwa%;zYEig6B>4oAz1w z5{yYT-Ei__YB09D54`zG_so0`3+pey`ky{JGhFH0T=8&e0I5yQ8e5hu2>T+k=$mes zUfOmJ<;ybFPs-Pb2#`LLqVZW?F-g2S5Z9k@?3{HIC#=69lA7+G-I#k;8)!|f7AK_W z9glZT=o{gyFPDT@IgwzzCq&&~XTBRO$>TS8flOkba!~f&LPBT0n)Olu-Q*krDeMS7 z9{3vc_0l?cB6C+RH|nzMZuHdS72R?~Z&$9HtT>eg_-fw9XWwxLXmD%Vv@d;)d%yo2 z?pjHpH51|M+fMm4d_uJF83cf|BX4f`}-B6F=}p-8Ji zt@54Cf{ggn8aeqjqePp%b-oTW@bqzf&#_$VL(MA-?Yfmm(|D|-0@1W)!UdFgFXhu% zr-L_ZuO-}Ko1%klMUD0B>PKyrU0WEw z7@O-TlcumUEAW2Gv_i(7V_{6Tu)x}a__H-IvDA59jb~(ZJ5yG^c=8Rl6M7WwZ-$jT5ug1GdV>Bj$h>U)07d*_&`2 z4@&~Ok3m+F$7PLSZ-utY;T+z>6VP+Qd(VRcyo)hNx$r4IqaQZUwr`1DF4c8;9E#2n zXxlOPpb!_!G@uu|ij>tV>q24@84H{!4}D91sCECSx2tFL8l`iHod9;u>F6HOjd#n`3#FLpB84{cLVSE(xEjkAyh38i{Py;>NY+xNmg6ZpNIEs|8{)UDb8cQ>YMLREBm2Wm%W4gwE& zwsvcc2L_Zc&ji;!BGa-Du>d!tawAdVDe|&GvtonnJnE0_xy8Va&SEWLsMA>z;yJT< zQwstH?^Qf{Ox@i5`E2}lj_bUJf?);N&S;N2xOkKI!JY3eLgwlD8?KfU$BBB9oX)0@^=avcYAMqii z2e79$#q2>)K{wk#7B_}PUXShBYK4cz`JA7P5Vvd{k5e3s78Bo%^Ch3vPns*B7X*Vz zmp|q!G_Un?JSaakFmTjl8Y(jx_~~?an`>iP)Ar#e5?dY~NVOnUq;=@$d@XJ@K*X1h z%x>#n_hFlEZ@jvgOBpS;gZ*mgQ1!s%h?P!j{FptxY#N;nBq6r{{`;1sKCf;DbG_aU zcP{@>o0;Myu28GB+pxt9Z~ms>W{?Jy;TJ|f(!q!|z0U?MXkHN~o1j7BmziYLIabJC zL=M0@{8ew_EcZCHP;L6@&f69)cJi6=Bkw`WE@kJlVcu6mz{m(R{tCIzrn@PGBYL)a zT|Yq$|fqw&i~jZhNg(;fmS00n)a zl}?Iw8<*6-Z<c6fs}EddDsTYs4kJosmtZ(0BW7!dt70O{{r z`9D~MovR6qMX10qg#GU@g#C|^2L?Of&Yu;&m;wsGV2AzhFogY&nfKpD|A)7R4?OtK zG|;@@9aCBXXn>G}E-3x{1c>lx50c>YA_s68Ba%k*o1y!07U~!-qe3w}<6aR+V_xTRt+1o^A zAz3us0~+XFu1d0a78=G9-E-%OeZwWZ!h)ptti9Os*g2UzD&mX5H9mbe-Cwd&)R7l( zvRs;!BS>%;dT=yvZ@?k)q`esN*hy=+;P#c|SYV-d>fb%c%MWQbS8DA0F)IX+_~I<~ zsPqeXhMPw++R-OSzr_Ha!}8P-1VCEU*=j^7yKicV_(ob^qVp*l*Q254 z>2P3-qM#y#R=%GfJmJA=hx|DINL@Fez%*ZM*Kzyw32UeylFve1O4!q|TmkE&M_ebc z?2NG$Tbe0Z+4xicJ=JLRnOz3&G&lQz^L=geU8o8Dd4*zNKE{CvA-z(+l?(X~jK^kj z!mUs_huXXn7D06XPru`Ib*^N{vJ%&0jz~-^6q_p%kP#O;Kg=K|IVJ%{HC!>fK)>4d{cgq2AB<$Dc>HSM8x&J?(8P ziy@~GukHnz)&A0;^UW?wA!}iXG|g@JtZ-t0XD|?1X4$pG6 z<;i&SDL55l0j{mRpdU{pdh1gp+t`t9In7RRr_s9OJYyu2_I|bF0OU_M2&yQR2J<%5 z>B25e0&wlV@!QJ8Akt1urLSu%K$O6fx5QC|2QC-_-R{{UiQ!JMp61#hU@oKd`B9y} zObPx&h5|bXTz1Slm^Y;Ah+02xJ`=x8J6}uCo-HnhX20O;Y3Sik;uCcHg*8@^ zP>DRbopz4bf|&fnC6hU}3n0ZVN!iZ@0qBG>p%@0eqlu0n9Q-@>Qi7&>pryLF@br>( z&ByEzS!-K1cY1Alb`l9Qz!p9NJIp;n|a}Iwp}TtxWqJbJC6D0``GYs?XWvyy2$PnVm5A-A{#kNCKx7ahVD- zoo~`Eh)9jlmSnupWm*-dK+A(s-MkpYJBz{iTZz@-Fl)FfWH<8;h%$;5rfcj-#sjwx zRCp9+QU`?)1}!+oCh?Zv6@Q3n)45P!Kr--T&OlABG(sczSFn-vTn`Ccs9J>QQc>Fq z83dEi?M=GtPZSEI5cYoF6~`N3@0wEv?H*jJYinxJ3lCA^i~>%71K}*lMst(CJUK4M zWFNC^BlJNeREUe&i_F=l=Gn<4*q|PUkqVlHLDi@Zh=6^NnzTL}NK*YJpPA#Cz zkBHPyLJad`#$Iq<=B*mHC^E=S=6F1O>Zf{3emE0%3`6qDW#@(9I5B{DZ|W`DBI!*r z7-18W#FSuwqlZ@i9*7qX#gNK3d!dijvd*z61+Dj@mVxclazEuHtaF7e)m+A(<-l zZa9EWp`-Oqk;R{nw1K_<6UCW#^VoKO)bZViCn9L&XH3k+y2d=Hb^C3C?)1mL@U1R@Xl?h z<=+tQtE)$=wN`MHFDOHEz~NTQ&olNuuUn%hp{X2_?xV!ppw7_ef#KjEgF{aF$jSUL zRX033is?ULrf8twWb)lx)%CpBKJ4B~^K_q2t403CGbQZ#EZ&hu{OWVViXGe-{f~;r zgkt}@AA#fl_z}RJKYDV}5s(emlN^6n=p6sm#+kAN;A67?56LkfcoaMjC6EhDfBgS= zN#oR&-M+G6wO=#d9T0sU;5}n@AV??{E?{r5@Xx)dnG2E&s}X#=4Y-n(@I7Lqtaq9| z^NR`egQOCLtV2_aF1s%HZ0KV^0{W2ljzW?FmqIFn4N=-voOym7i?eN5it8h7vm_NI zy3!&&(2^&WBC8H_jOqD9n{%heDmlt7oM&`;oCG=T4~;SVME|tN2-!M0pVQAfPTlF9 z`>xCBm5R}#3j7&-liugCNV%6Hxa%*0!K!)Id|OuTc$A}?RklfW) z*H4~f4U}*%82hf3oLXby&+rbg;>4i8vtkz=11{B+Sb0Umwh~=B#SMt36L6z#fZw7(DUYR++xv>&DUxZgcH!Am`Ri-VR!p_tMQ!TbMBJMa}zOepXJb zPeJLt(r95@*aRJJE307Oh4y|q5&wkdhnb&+AXi6^SK*N8!Bc!aGq(!E5IXXyzM~aq z5^!25nPYu5GR8P9dQrJ$#*s>hH2Hd}c!^-3(yn63eh5D|KdVRK`+FVzIlGx}7v8^N zOf#j^%;hs;%Pv&4SuI$jTvk}{aGymntBgz4Lt8 zw7_)Vf1)O2@$iUH;D)PTPcxV{zn$P+yrFoy$ zJnL(BE2#RE0$=NyM#;&?de5{G%mxx$pKp&BUhmZ)h@alE0dfh&4T(HnP+n)=lG63W zfLvF8Q-ml7`~{*>pED|_&XG{M0D0M@!~*PqjW=+Lg@7<=4`7ep2NU@aNM4$C&@Ci_ z0wsFWb_1z>$iX7*%ket~<%SF}2JgCxNGaed^t+a%Z)tq|*8Xbz3_g6E#%U8(xu)I@ zT?QKL_6j_NF%sn>oM5b-X~$xcZC+5KQlc3Sn@QVG86NCDxaE{B?dk?QgP7u7DoLsR z4Bft@-U&Mw2BiI3w={1CLRVJ4=8t#+1A2PcGV|dmE_-uHW4n*z0hZApB|cXIII^{7 zypfWm^3>^aFbJqKb4zZ*^FlspH(_YJt+f@9S@a;miUsF~wAJOUtyB3F2{!jag=u$s zR4EgE3?3Gf`5JrcFQ`nl0oasY~D+4fI5&7m65y*yPwgOdq8O)ph&M+Gbs2=U0L%z5tjYuR%*+ z0J4y+Ao4^27nY9bu0=gfP+?1D44g&~&I|kMj3vk>5ugZ6t!(9ALMye{5h|soFD1L@ zhesW;MX0LttVY=Qa9cxJ&;5wv%xOwB6qiDi*MYWZE2(d!xb>?!uL7KzAk&x9q4d?! zTx!bM86*;uG;c&Z@H1=71+yL6d&pd=xnH;3SYZ7r+<70RKGil>UVS5jTs>W%NCSs^ zXE(Y`uY(0>^$V-VUPGCA)Xd_@T(SA}moM~y;JbnscM!m%b%tar#Et-0YLKp{l6p>|!Q#w`%D$ z#U8qUiEZH4nhYyTTBV9G*0JRIMEUp&CbQ}zzMqEewc%?{PYoOIEvzsQ4Y`uw?ikX7 zNAzhM_JB5_S7+m2{r7i6Y}-C z=w8j~!t@_%9$3?V(0EH+?Lku*!<2|yc;6@Tv+gSF1(aY&p(zVG)^vn-Z z+X>s{6OrL|Kt@KgT+?t%%pp{h=XlTAJQkPO9*=R0Ud_6lG7+ewPdrLb`x4Q0^y5xs zRGEQ#4@sdwS2KR{TuMwP%LGT2=8&N(vaIIdVls51iKVPd*e_=4#nunX(FCay)SnTn z6#O?OEDaah>1<~PYIB=hY6o#JRJAnRJj%-@`tvLsfF(N)y@;M&$YzLpgf%asCV)NN zD%}raA#zkP*PbpyKb? zW^Jq@W+w7i4zbofEVF$C)UJ0v^@Me7xlFpXIuq-5uIpk3%wh3v{STj36fH_RFyq!4 zG48p)0EHl(0Y<{?Cvtiz)D#?*z5w`H0?Q(rg)x(051VD7uN*M?!xqrh8k`lP$x+&* z%X_x~IhH#A&lkzu(!$#pBQ$~!4izs-JhslU;ef8?|y5r5sMel2nm8v6S zL$j|_#PGL1W6vdTd98@(eh-6b)i+y^ZuunuzP#DrD*n1n^GP<2!$laCPd>MS?8FCrq{HQnPCTKp4+O0i7J{4Rh2fT00XTIncCvK-t?f}PF6}h!UyJ5LYq1yi zSb4>M$Bx6G@Dpvno2VJ|HjQgSFid7kD`#j_(H#%#99m{Y)?vMn+l*KnBW)~A$X{Pr zXI%sYbpQ9O|GV}Dlk|ckE-_%O_g~EA|L}_Qfk*xcCjmM5|6lYru5IA-iw`SsUng_O zQ+l=Eg@x?aRCd(8e95MbOE5)7Zum2__gB83@&{AKqC@gIg|iBN(|On-o0%*7=l-2S zH$u*b+v5E_sHWNXhB!kPFXpLS&g5t$h-A)^d%^qP0Z6?e{zlR3zhhZ}zP-0;L1cSO z;Y9BehP#MAId%MCkCDoozm$XlE<1qK#A?=sj@1h(kv=c)YWp^S2~t z1fThWAgK_K4Dn{a)!T$10!Lo@ukoxx9+6V7Z5lXqt6pYz-XoxI`tXD=pIm$nQAs@Y z1%Px$4$Qb51KOM2Tq$r2Y(6i1ia;kSvW`VL3^IsVQ8?1fxItIuemA-M%Zb{}d#pWp zK&mp&op)xKh>`0;bDvGUwSsL_RZ^jvWvm~yFX~)&F}7NjS?7Bm4^V}|YCdjh`OK|R z@F#&IcCUdxt0t^jE3nI{InN%0py7 z&X}%HG^LV3nsf{Zzo7k&_UVtexe5R}L2x^PGflf4_nvIOYBj2#Vx&@n9ZQw_&y zrc;qTt2!)ri>Qdaua@!JJ{C=!-uV<3VD|B65V)S^)!F-c(k) zji=Ii+Y_IQ>Rqg_7=oysZcVH3^Wo=6T=lNp_>)`YMm+BI#oh<0Uz5Y_2Flz~;(&9v&f#0336S?WPPOO%+zKW z%AY}dGuF*iwyrA{=dWKe~DFn zK>y;>f1|XZ#Vi0W(7*|7oc(jWWuJnM3Gtrzm{;-~k6B6rqOkZkxz@YczS=7SUs2=< zOVzJxKwL94i0|GeZf9$|NYSCAV}gH?ag;1aVnho*gStq8WTS`_;(G{P{37e!u3TaD zsuI_*-CCS_)}g2=(JA zeTEVt@F%V>Z>R?1iyA_{mdn9U!ZQwreCCe5?Wqt_TB}2>sT&ln=n(+CD#`KVIT5WA zklOFZQnmqw{8;YDN$7_GTt>G6HI+UeUPNcQDEKx)7g)yLPeA7HbHMNihoM-W#Z_th zPN&T#kxzuhgoqg&vb7I4kWK99nZo) zJc$1n-1%eSP(pKq3-)K{04RV=O+wlp8jKEWMRWnR7HXW0O(EPysr?fRUfum)7@4@$ zw`BnJY*vmDEiVMl&WFFy5H6r}v7kXMH@g>X<$EwtEV>XJ2!~7uJb+PHgig}B5}nN_ zr8{`4`zM&}%~vS$UxASKy@A0em#;kdvFk%hszQVlZz0j!*gSb1BPhyb0v`? zVK2su1QeA$69zv>?1+peQ&J3W(@^{hiVf&(2#)&T$e_!}h00Bbti^v_P;af;$DEeD+Wb2e5ae{dk5GO4K0r}JCCe9)K6xs=1qRek!c1oOKc`LcQ5d#830 z8|@+FP8fMVL1Dol&A$b4v+u@_BW#JSZ%G<6>l)xG0a~Uf{7_t&cPsWBF3vlWz#GnB zB4y{b)vm}~W-E&~T42pIqFTomd3XHNNrRL&v^sPH`c5M7zn|6LP2GRVG5-@O;D>)a zKp-#|B{rxg2k;KGnh#(j<`D#OT1_s!g84EE6aL)K(pz#(SNv@c-1*trL|*_Hhe9@V z(s7znW?zD9iTnRt?w5s zT#vZ+#l;wCbObc{bZ498yp05K4vCe*Syfj4RMICdiBVq+^UR#`iEhFdF=_SR9b^lG z5}{WKM8Yaa=2P#tR56#*DQ+{pfVa8|uGt-9nb_)&N#J|N)k#xe0sTHU(IC*nN$naR z1la~VW<8*ZLcM&5`S08KyNu!b6GsDw-oPC&mZXN{00}k$N`bxh-b1&dsD_Re^j#aS zrJjevK>pwAE11=_O?b8RzIgeNwWfo+*@|f?hv9a|GE8n?PWzusr1cpINbILJkxgd>Ma6jPdy_<6^ahULAoA*29)z7Q)F%rW$H-E0X7a6G8!dqNf&~}2vgx7kf#!Iv?u0|gt2AbfC$&Z=qNY6xJRcc5UTIr;xiez+ zXMmD;9R_~Uvi(Y(nq@5%A$n+vJaBKMzm2=AVu&5|{)Obl1d8q!&#h4l_FIzS{x~d; z-OCt}32{v=Z2zZQd^{p3_>OM1fh&S1c zZ|G4svuAh@qLh5Ug1oyzLi0<1%cCr&D3TS`OP&bBsX$yt9@BXMmyTkfK}6V@0ztV` zv30-;`V*tO>(j=ev5~SW!nY+)Ka_8+>uS}HYP){08v^i0L{!;qy&{LupeFeIi0H8r}{auLuORWPwH~(}Dz#-=UOtAl} zaMZYtL&8@XG%z(U`xULR$7aCxfSk^VjhjNUqMLH%T})wQ=zx73F5CrmtMRubn3vwi zytXn0J1Vx5F`?_LF(!W!H8O8i0G=~x;&^1UDIh|lp_dTqJASql-ex-dLa2g7c%HYc zaJz%fOE)qQg;Ch z%rhe_YZCXAr`SHm4|V=W^eULc6) zlibxZ-!*M-$xKPxe9-u;h{<=sd-yySeq7_?V@$Z5s* zb+(#7W?nqIa*sMifw2|bzL<9j{bSg<-OLyq_=$98$n7Wk%WQk1GA zmdCQHdiSkdH_xTilK!z>nN&WxJUX4tCz>MIam&MuDi^`ANkW~BJG9S{hS{7tBSq03 zYf((BsYwphoVVD?6F&fZq+22^n!XnE6;^e?#8*zwb!WT1Xmq4lRkz*_RLa<*PVaYa zoZY7DNZ8+a{A15C(evntAZ(;&+Sn*$tvyo2)cS4orT6QC@`~uzmMG zkhTqq7gRbW32)bA!$vP|0VB7JR~^(iX`S+yjjFzV;SKvo$x$IlG^2MR4xu?3l?ltW0S^a@jdo;7o%J(+cRqvA`HfL{fJ5MBZe zSE2UEVQuO;gAh$DT_&?%@u*Qy>;)evM{4g0O)di8M#&dVU5C)juk#!YvEo@Y4wIMJ zeM0U9Eu1hGl&gh;h`by)*6*7Fgt)s}M9a>1^*QW{5Rh+7per=CVTmuoPmCoKNuy?g$f;^CbN$ns7&)G=W%UbK;j z4O_^dMI=7nYCCs9PCN4m*_wzmwdSkHVYoi=7q?Y2j=o<%l8IV2uy@j+Piv0N_1J;} z`r%JV1ex?ELuyv$=>qe|0fEJl-MgHEr%uW10bxx|_ag0&7Yo0jc_bJNXaqZ&G0`m4 z1blFvv?vk95PF>IdQ{5iCrs`!f}NpX-t{_tbN{8WeRMoc`us^ovrREFU{XsQQ54AO{)#{iA=08oI=-$|)JtCEmSwMi7pNfc1N(_s`K3dX<^ zs*l`nw^>Gs7~^cg2F;+}ATgVk>%H->Sxs-((U1e8u!*4;Yqt5Lc`kb`y^JxW0 zhk?5b(~N2s_-haOtL?X^nP_sC;H)s$LaHqcnfE;=V8o`xma2_37%gTJ5+ro*57IFF7_!DXy z=LxUCVl;~*u~*F~iQE-W6{-6*%yR4Sc6&@~d)4OUVz<#8wZOW$klaz9IBu5XCXbE# z%28Q_^W+HsDlg#Pqjpv+Z%dmIg7;S zu)ow+sbaXiL*wUj$<)P`uDcIW!x}!Y_=`cFAe0w#<`qqF+~+fG-iSe=g0*rzs9PNO z4>o*wu0~aeNP<5B&R-|maF%p{cZC=fv2jX+`cl*{A%_t2zb#Ceso2r@#%l^X?44>1 zC2v)H)Wq!2i=|}xk2T>mT?~4;v`QP_7eznkaaws1w%sfTwPt`;1;)gLRa1!lnmvLADIe}P3$4MGOaTs>9=WDO6g=IzA zliPIuLy}-?i_^9VkEHD#kkAOUXjQ~JzV&1LOGVQ#)$-X54{MFbmsQ@KFkIYZP7L)) z#8+I*8~g#k&PH?bV&ZG#;c+bG#^7F_XHmOx_(slMRxfY0<8$q^M~M~5_JX?|!-zg- zvpc@`@wc1#n6$6ijGg7vEZ{0P-Z4p+SOG2~q|^SE-}_XYI16bwf%&U|4cSq_uiGZ7 zvpwvk5oR|8vcdu~VUi3-WPM9n8KrBRHnJ}r4Z%IK$eo<*gT;-uuo6!8e0v7wF?_O{ z4(5SCp(9xOC6gwtWvMn$+P#EYsiD08#;x-@Frb1vJGI+aQ%-BR^u8aBu4-l)CH0e$ zI{^B+KI9swuH**=kRkH{mr%F&K_@?N!0`aW$<#!qwc{ug=4=hY9iVseBtN3nr19+HU8Zbb!$4VZAW_3OYTb|9^t+Pa@%;JU=kG#s6H2p`W6YWFk_09kFD>o-0i>MxQ=;!JQ4ujxTT59-VZ} zrduzlhM_bms73_y-IF%dRnsi|r3%naw#>)Lv2fi=c9&HndSZqIF)Zoc#I%S_e`C@v{%WjxZZ zUnNg=Co0>cYlnG2&n+^y)CZ;wP88gSntZG*{%4$cJT9Qmb4fWobm!%MjFJeoyq`wT@Tr4~r(K zv~hPtQu0vSIU+FJF2nPyA=9VKwY(oOCjAcUy&T!kaflg5ZdyKUh#Ib~vXDXe>QWZZ zEM=0o7JCTkb-Xd%m8HTYNpv0R6BvjNelHN=@s$Ls+t@^Yql%iClR4r=1sW+^6H&8W zJ)OPL69cPm^c@H&ZMAIFGdk(kUX)3bE8~6;1Rf=YtSV$F zmbpr=YG9>GeP2#Yjce!PlVRg$_L4b0HvFmHvzNpLCt~>BgSwOj1#&2{{(K}@@QXtM zoO*`9rt%*3yTq|kK9n!mV(+9rL4wvs08I4ePnyIe3<5kBItFAJ^1^wcY*fs8mYM4x zwJRHM(GGe7vil}@#7E6DK^#B8_{2f$;m!|dDXYW1FtomUn=s>A z$h`Uz=Vh?EXv3THDr0$ig5#jjo3DAXZg=dBA(-Zj9Q=7ox>9g$>rtGSY71};%e4>{ zudvl77NZpS4}v^}7V3+;*M|G^rrWhCpOnmb`KPl^}9VMZTwyw?;DMHLT0+pF?5So9Dm1I|_ z_nCr_7JJc&-$`%-Q3jAT#dGR0eA&5WkIYkIkLn_zH@{|pTle|iwF$Ex>%A6vcu$us z@{9DrYGjuC2wk0qvk+SLNOzWhnhB45qa2*Yx%`7WDs*PT+PJI|(J6xeug)gdm}F9j zc#$wPNVuQjI0_jyo`(r6JtdjZYzm_d`qhS#U3+iZ42W?b`aFSIzaZDUaC`#en9ND5 z0&WSOS^{!|g>za2P>A*>X%HO|jMO@b$WOcv-B#NUyjr#475m$_X+oFdTq9c}?M|l+ zEJrd7R8ppi309;9ko?lmqi_-6TIjTu6jze?ULaFH2ySb{iP{Z+I}4|!T4PR}8^`Ii zP|M|@9BXRy`uy^q@bLV{kO5FlDOw2L1R;_VNq5#H{&(&(VSPSfGRFH+`q=@^5KDcay0bCW4|BE$GwtAZQ+c6-zYMtQ}-|pY#1zR z5xA9*l2*M1+!{;o7-RkG2;=^{Tks#IsXtLx&i`Rh;scNT$p(6y1n)=(ggOP_Hp5R% z&swm`c6n>L80q`=el2JjeS85od*yg~D;I}PtOs=!B@CR`;nZfN9-@BWi`7WkWULs1 zrr;+(bgdV-r&5gBdip()?!shsoxd)e&Zs)@C%d%i5OS;|Zm*2oJm5DLsAvjs3WV|w z;B`LiRG$oSyi$@g+C}uOn#ZcH_fM9H$|Q-&3@0U}%z&5AZ}a-;@oFao6luYsId$~;;@x-U)5}P){q8gsmUm4N()Gjuaoveur`OOM8&6;M)+tr1G za4h7Ri8vH7n5#*JZ{w|(ehs9>$H2R^cT37>9wX7hM{cb|;!U%CRzs%^(ArO7^U`%{ z14^Gci-9(|{o$^;S;|KbBpY`CV+b6&p>(NFe)QNjzKPU$oMz8KZ4IJK4f1w5IA*D% zi7YOMR|H+VKHqcbf|Z3!fBMTSri<#(FIWW&%~JHqQeXw3b6`@rc^*4kH~`rwDD2>c zol=ZPeZCaCPD@0tNL1Q8(>5#_J*xOD2P}Nw5=Elq>E$DydXCgYHStanZ ztpl+xBvUl>EYcg%33Lr0&YXeT2nLt)D@poqO72$9G`tDuviHQ1rWekHj}p=21^6_f{sf>wLK=g}<^Tkc7$Cuans$)(9KZ~bFnXhJB?DI#>(@t6 z-yDE~2T@TMyog&5KT7HdG-9DBN&6lv|I0jg*??OigNO6Bd zx>#<5F4N#J!7jAFyQjgNZ2z6g|IK~)kF5>J&BpovX0B?3OSbc1y=EJ`OhXwUXgcX7 z#xd!(aT(0-+cv?#LPIl8^H>QBCE8}ZJQ1s>R(h+{;>bxDt=|jpUw!)?=2|uY|#y%cpqhh1NnZucEkmOMit)WPxb<}B&Q8|G}%#c3u2Q%mSIDCks7MUxl0LaCAO5`H1Di-vp8AN$LK^Z;6%=mwuC z{iv={4F;0IT-hV_eKd*o(XejXqoX^+ebrI1t0*`=48G+j^i8BlfR#@@Mt?pCcf^q=-Z){jxf#XFoUdd(zFYP1=-8f*7^6kF&tq^?XQ|B%6F33UhA#>cY@;czlPbfIVaV8)LMrdD8iZ z1uhCX3U9%T2GDoTa{^!Rg$^;J#6m7cCLI5a-F-aZ#Z;VOM&qo`jm*ze-XE)*OD9g{ z+-J#|Q{5)oH%-tWM-hMJOx&;?1^()ri)QPXO-1hjL^@DE(W1s?CAk*_sk>^?95Pw zzL>tTaGr!N;mfAmzf}W!&jkfG)+9nLIry0P&^xfR32ZI6|PHb_CccO1&0>yP2j9FLFzz7NlBs&q{AApwhg&f$fO2DdJd6cn*b z%F*C!WboQ0e(Z42;@F>BjjJ} z4qv0wCde|h%4r^)%%6#7aAmGA98!wWd3`$9x6v9E8PU$JKTYp=ErIaBs#qy|$UH*l zkdyPMr$NuKXz*#IYdD@Io)k(`*A$Qi9D(Y-L<{EAkq}P>LpuqVe>IfsG^)~fD}N*Gc<E;)9Ws8Q2DT#dDA=8(SbTMR|VN!G%o>q=ILWV^7P-EZhe z(ia}{rn}_PO#TiH$|%hR0qU2F_movH8y(5zcqf<>f)_-7Dta{XkTi~HoG+pomTMqA zlZU}I_I`!4fEQ2ukEpe2aQ+_w;+!A=7&{r7Goi{J4+^K_GM`wn91}+DHcP}gNQ7q# zn-t^6z&fzA-JBeZ&W3YP&HZSk;)EA>B47Sh^sh%voZp*yqNEXOXpS$hz_;KTdHtF( zw)vCqXwBP>`I1+UNRtY^$^+P?Dsp~BRxmDEAR%t_V)6VurU3v{5Fb+Xe;YMy|J|th z3)T5|T*vyq#e=Uaf5mmcUt$M-x?kGlYPNQ}U+tQy8q6|%KV!p*WAK{rm0IInFZm(#G z2*_D=pe4)4yl?5TE``K8bs8H90$zFk~$+sX&KqJAqVxfq>^CSf?Y_G0!&+CzcCkdY5& zhnlu|Wfn?0TI;q!F%$+EE~exGqWl{|e{XPpugZ+ z-H$M9%|@u+jFEg{on|sq%$(tMLJ3G%92|BofyE#d!W*@uLXEsr}lG1(mV$PO*y%yCjN8>!A- zyz|%p_Qnp+HO^%4XZ&3XV6$%jqP#l~CVoBM33Ed{o5{@$f_Ldjn^g4Vy5K*t*C_)r zz~h4*_sO1yng}E=EHD+*P2o;ty}!Nl)vZ1isy{^IJ)0A+*er?3{SJca>hgJV;qFM| zpW6EE{o>(smd(HMt6;9N6z0#mc_8i2txsUTYbCUdP)E79Q4wgSFC9zXoPAt6ing4X z>ip|<&`K`7*G7d^ebFD3H8`6j7ahS)Kd|`)E|?j`CFkxHT1xwzOkAlztkeAT{}Qsz|+{16KEFHVlnF<6%t9Ty7@;mrm$QXi7xocumj}+ z5Y>F=oDUGaY|!}#yy@@SMMYY(AzC=?C)#t~%G$O5e~^gNyjumWeOMCpXXcvy6eEeN zmI$9IX!gvEitn2j+2OexE!;ib0RePGV$Kh`mx}w#L%Tu90HTMo$&lU1C~>zYIw7k& zhBum%*MdQ^8v#soQmhHmjpU9#RcHuG8ucGq*V_C)@e9(l=wUz`AkMg4BYpBaiginZ zHmN-?U%OFOKimz{%Iv3djFumj4ibNdYWh`z(Kd{$JhWBK390 zFL(5pj>>E`GqCQ=pj}5@m~OY(B)KY;o(bmn2zn9hG+lxHbtg~Oc<^0Ls*+~(*NNGC z=SMESJ^-u@_Fj&xpK!H&#FyOLkj4pr_Zx3*|BRyrvdGiKNE1bJg`$-F8?Wrp8x&wF zidLUwGOccm4T78jn{G}vHz=L<8aV_tPD+18Bd(Nr>p`%Lq(a(cBWdAyFwMnbdC98~+!bs<*b0(ko<4ApJ;A;sgM zQltD^Y7ToIZ+(XX?=I&(G15I-N`7Um?)K<1xBh%MfbQhwW{?0sGaj(-oU#Alwl?G; zH{PyeV-W_q>_N828fB_vpqc3G_U?WLThpK$uH~2(itNA@#sp{EQpT}4hJhIWCtoN0 z4OU=&P;3S~;$CZ>dbCbPl5E)O?$+E5p2zscjSwrCsvNvWK^LQo*Q{2^f@ z-L0yk8Kmx9%8C3wcrRcepQ7-SmYRw^ez#pIYT{Tdu}vZ*rcNZtrCVkESrN$0x_n2J zmRUtWKr;e&BQBAQ2f!uJ6zcUx!#y$CJC1BurmI6lv|+ZP=tAt?YG8zi<}#x%cO*ID zDUQZ1B3aC)c#`W}DyEL`YZAY;dazh#pkZV>#&H==_vkp%Y7dZOsiRh4T8GKz5G>`5 zc63FvBxXh>l|;ObMz-D_XhvzWu0_XOIpp;FWxeiLZ$w?9dvQr>vd+Cf@7Hotdd4!V zANnp2vRbubH&1+8l^bezn9s}^ixpY>ub-WK$}jxGN#WSb6$Ns2NlC%As@5o^ef0jN zQvGZQvXjd9)yjYv)hu*O7x&INM_ttQ^b*lC@_6&IAhS_BgDn%?6swUBLAmT0-fGkM zB~=zYS_^vD6MN-zQzj*<>#9Y4&|>cDB9R3Sc^dF;Q~328X4zoNxuuL8`;^0yMw$pa zqnj%bp7gc6DZ|iZ8bDEy@L@CoVhe!Pc3REE&GdIm(=4EyvIVNWn?AyG+2y_V5BXdO zeELx8bOonAIs>N8uGCibTa~|h>d!sL7lWz`G|_@f{E`yS5RZgFuhii?0BUK$Yv>2s z@(A_~bseGRjB%LTh!Fn5YhvXc=fN;POdCdPk_*QZn=;aih`K2GG0GcllNbMjTawy- zhXjn%1To*^;9ild$K#A1BLVzX)H~wNmim)`OS2PW_scqxnMof2xOe!f>xJ(p8dR(w zb0@*IU`j(TL%^?ZTrIJ%|N7tmo*Dcip#KvAe!<=Tzq%OzhmGEU3P}eH@MDRgFG3IL zq!mx$c`z_3x>ZW=pp2fZSohKh^V=U9qntpTv2}RKKy`NMlGkgMu4i|SjcAIi(6`Y4 zT0*GHBUV4ngcqV}_e=WOQdrT19$v^SM8o?=H9_K|`HEv1aBUe#XP{d%W|f_i<)dby zxEvd(($sY{tLpVg=nOOo2;C3nufOrEOU}<7##@g@5?SOb+NxMvfE-fE_$`6EzkpXW zD95nWxagRZ!TzxMAhrFbn>cicgvB9uB`2WsA=S$|VjbSg^41@=$ny4 zb7p|fgIa7f#hYBvDK{!nyZ3cnnc}@!ciYPZmLEnBtvi$jJ2TmYQu49#Ev_4t_H$t0d-heUJX`&4G;oRSMiG6fg(24q zf8m!>C#E^sm%`{BfXllN%+b-rI>X3`-FMc7`12(1nF!#0QC%2kF!(kBh| zC5eqiH+dVV15oc<^;Gw}fVlc?P6J0mF?TDa3YmpLX9WE6YJ&Tl{wYY1W14rKq<4dAM6p zo-ExK>mg~YzOOJy5Yc6fwkg<~C?VUEpUz7Pe@p{gms!-F-0vS4W|^9<2)0RDfr9T_B}f6*STJzM zF_ASmD(YgIW(yWVJCd121D9AuID<&6SmH_@=?tBUZF_i+rV{HF)U^z}>x87s&}oD? zA6dFK2FwFxH2_`vTd@FSt&N*&hWGk+w)r%M?hQPClP^Ubb4>W%fjg15kmsaOcA2&< z|J=Y!$bimJjU8oc_6##@GM&|Zu5k(gUUsXA?mMa55@+pxOX&svd2Zl#4HVvf0$zde zfHGzyh{S+;-JnrvO|Evx3w0{kEsHM0AJYk)1gNyl-;>TM?u4!bFF^dB>5k=NybmZA z72LD^v1F_qW!>e@{8{h^e3S7;oOa879?UES&aNFiub}!aQl-ag@O*kb*PF(_$9=$B zwfm(0#Yg2BgwLnzvwk3chm6Z#R4*DIb@TM*?2V~0j=AwU1}S6AOuk5^gJII#&2+(~ zoAz~gqI;ID=UlV4LgrNVJ#_N@DZ?^zw~M1!0PRUDzHW!3h2l#71Bg}Gm;7I+_uuUd z_J7x{zwBR0ZcF4X!8)W@0xxQ&GxY* z$1a9L5tmR)o^+9bof-XLoYM%xu&PVZ0t(&7GM1vID86Uo=)&|hLVWZ%U%>(LTN}=V zpHh_DAW>Z(+g&YT)y(+X+qXrP>+z@l4=k}zUny90{RGVSH4||!;5%Ved0t8N+TKB3 zdfz=oC}+53<{eF9=5bOa$drme$%IxSjp&d!Um_Z+>BE|CI!bCxwI5X|lFCoNgdDRB zTuwlL&}i(#ZmG}#^w5!M@Gl zD3K6k<#Y(HjK-l~<~PWVO{=+1C(xpZVXYk{`Qr2)=^;wAC$<*bd&kH&iMd--3*u?a zBPUQYMl5YD2G7**N=qzV-y92hiy;^DB!&G4@Rw)f3r2@uGS+HkGg5nRc!8=^X|W zrR8LcfA(Ae@kV8$qsj&ZPql=a2}ndrcT zxR3?ZLGp_~(hG6=M4x0m_zXO37KZow2!C=*ja&&NNl{=W4KeXqIGlD0lj|#pWs4j2 z?$@j?&W4OGKAaqYb)Jx)x~PAI9_pVVQ4e~DNa0TdC`e8H!17kAa0y@ausvQLyhSccM9EX!`t0FeuxpbW&H%l1=FQu{+pfS%cirR4Ir>=`aj%iy{I zeb;wHe|wWx#oW*v9o;h4_1>Hm0`rv9WZ?7!T(3X2^|eN6{@v|h|L=aumjvhE z`w?IE?_&@145Zc&Chuvc);z>SEJ3pw(^W7Nlttz4rnkE&i*}AC+IK0BC$b%6 zDuiNg)iEk|v7hR!90=!Ex{pMviI5uu@UkTok3YWh=fFG@JB&FS zXb9tNwisz1${0~`>M(VC&}3%@kQg?~F7!(z>7wD%rVRM-$R?yCyzE^4IfO7`i<3&- z+R&Tc3YW8ivBwomLF=z?R7^J)e;>KlkwcM$YK}jq*n+M)bSXjK(9j)@PHPFnH+d9? zLw}oFt7VP>B)rOFgEG|6kxeT&xaAP_1#x}`+fvse$xv?>QO0M6Q;d;{RcsGV zE`&;)pIA3~TyExwxMW#Por>f;z{)X_{pi=44_O5PIJOXlUv647Rjtv#{YEUb1<`_7 zLku(%;PEl}!#3pOx43#vH6jO;oTz@fdiX2B+S^LL+8sh7Mo;p-h*viM93a(LJOnEJ z3C-qAm0lO#FnHZZLG=6*569W2r0lQUO%Eow5pJINC_$9QF9MUjZ5zCItQ(@eC^fHg7)~eZU!kze zH&AMpVDDqo7@D)gy7Awl6UQyXuGdbIr6q;@4|& zfX~IYXW7o5@7SWZ&a|g$YM8K$=821VwCYq@$iNpg7y|Vc3g>JHx4X}jbS%E7W_@Lj z6hhwFScjx{bU{6e2oQk(06Q&a(fIdu_}^7v4#t1Z#h3m2T=0KFmI47MPd6Py6@$P@ zi{b=9{K9_&3A=6cPZ3OqLQR3rfckHtJ&u2-Z-Kw;-*-y{gHi(q*ntHbuZUU93~SgY z7kN+-NsqYsXW*MYmTIKtx{Q4Ym(*qqGj z2^te@EKK6RMVrP3&=-cZ+ISewY}vB7>8RT@pqBDvwhm%&id~H_LKB^-!vF)3&Vs|A z*Qs}ER+E*lKznYx^hK~(Ie98iSx}2~{w54X`~AIsNA+&SRrYR> z#xS$92Db0!5by~l%zL7z*E)Y;sZC%|eu+A-Z8>Vv#*J?&An7ihI{RD+RB8Ddy~oY8 z85y-@i-J#Wv4}Fow7KS{M#>%o8l7xIgSSPUj462-7)qgWH=~>TkPCU;>UO#&TlqpH zZpH;ZeR7l8xeF|DmN;v;>oP2{#z{2DsH;TrNIBg6H#M?@KCx*mKsKuK3;WvYL8pDm zTIMltUy6bah`iCy8^d|m`lFy;@0*E-nJnAxgu%{jW2vtyZ$8N`d)6m|z7u4cj)Ae% zW*VYvFXZ@!^4hAQHh_)&;9FNrZ7rB>s{fRI7Unt9jG$DLwMhnQeP)2Eb4nyS zFU0#TFPsCnNkD*3p-adGfm-UuccQ3*r8d~7;1FL4U?2Ngj8tcVQ+AIA(R9o_1IX%3 z{qxQbi!Vj1ic5bWGleNY=aqHZ}!uuE&q zvQlXRII}Lt4v3tK%*LttQdITXY}L)DC5ez<+U)e%Ot(#SE*JED2Ou^ zr)F@@R2*XklR&$%xcwxku;loYhe4L0OR>lTNT;y!>RS-H3%sDveaHZ_*FVJL@1Tt@ zr(^f8gz|wg1gnp_B6V#M)y_5tO_t^NvD03un!VgIPJJ&>lCZP;2>-EQREUGvAT*qs zY7yxd#>d0ujiFxFLpm(Blroy+j0E#Nvq5HuRJO* zpsK%5?*EUB5y!vFgJ1UR*pdOWaI_e}LcsxlP1&5UMH|msw2w4kq(^WaLzPkA?lowi z*~Q5fhC8t>FNLKSA^F^~Cx&*Ou@oqN?nb{Xw*>4As(v1#WbLPmIkqF72#v^0&kz6D zCMpfT=a%G5BpL0^o=w;;380k3)SJQMl|&phjUUcLa*m{TkCtveAcMaG^Y+(=RVB9{2$OcQT7UM?Df*bIJH>%PDZTZH;+(!AJ=PLrw> zbCiA4MN=+hNBX=)$>@pQUGT&$P<9j6yMLRUR8vH4vZwQjzvqd-#2NZlH@W$g6gY~wMve4^|q7i5&) z$bWp9mawE(NO0MeWe>kq`C^;V=9~CCI}sHv_L7IyW01Ddx8c-n&+U3HA48@)P!-|& zi$!ffg#o8mCA1N)RMLjq;8?yu*arSclHx1yv!Izz%?(t9kHCI#9@z-^Ax9JsXpG0A zEgb`vk}Tu~!MiNx>~jD~hgoCI7COSZZd*zJ8czXpJFB)s66tdur5Pp;DEf^lOG({5 zhlP>-tAOS4NT7)2eg0!|d;io*BxzR%Hfo#Kw-+?bcO_P5cG-eNFcq8`O}l`O>dAdm z$TWo1WvEWr${UbvFPHjx!9BPE2#bwcSwIm)>g4mRhzy16>(Hs771fJ0Saoh=_9y3D z!Il*2qsORZPo-pi30A2DB|9@sOss_)(F#5u_MF8CyUJQ%<^3S-rO7o~#^CSbg5o zqYQc3FLc>b#Qdz0Rr$h4EOTYd*A#tjvJYCb5QAtO4$@X-&07`W>`ZHNpI4rQxaLYO#VcEb+gNd057DBub2ARIs)4e9F4;JM zsXqk3sXJ95$rKr$6%52MUG2ftjSh8G0o;iqZ`Ic*gZsg9ahS z_D2S`jC715t!~!cj%Z~y!UH8m|5(Cgo&>Z6aw6_`qONYDY?Ct&-|`>e+xMBvwv~^) zcbc->PiV4kO#aA_Ybx{@h@X>=p1M5e+ml4c+oq(OHN}up)zv|QRN;!mNV3x`4GS>W z=y2ZbXWlcW*6%l)`d*(Pq4VX`|M;o@&fPiw&E3E3U*QD^(-&8J5(P>IFu}sY(=Z+V zs~L9Y#@g3fXxYzxagJ>|V1q1Y4*^dGg(3N9x5?VFBvv^!k6J5#pqjKeD26BO$YM${ z?4&(iQQ8?Hr$wyU&}Ih~bY;gdHC<1)JU6kvx~;aP+@F^k`Q{S074rC!S36r5Y!R{4 zBB(m7&T~x2gNr(TylJu)02TaPwtxd1=SM=qY&-ee%~6I}-KV2lmQp%VQe*{nL~B$g zoj+QlFviv;LqQCqBUcOTzL_Rh`F)G=JE0;kM!Rd*Y0^WBKg+L0tW$gF4_MgA)AVfv z=H@*=f>HXJUW9dlX^ja>_^yiSuN|uU>1l`-{ z42ILl%lE6^NQTkagL|q_VOkm>DqNk-% z#R6E3*0H529#~tQJr1viC^yU$D>NuPz^=b~4ITnhE!v1S+7{3pjh~vrwXgDo;s%79 z&*%Be>7}FnjRSA%z?D8;VZXm4Jcv8?17L9zN6@waKT})hEe{MO2EoU@#xV^@3EP4slu)Pv5Y=( z!eZ*QiK5815=405Ira*s=J${*?6E?{E=sw>O}p32S}d9rXGy4PT>AOdse%Rg`qk!v zA|Z8;Qi6^iPG+U`{u&o2j}~w@16UotVqJnsS=o^DGJgb5ep*MW#2pDp%9zBVzlDUI zM3R#M=o8us5pk2lPArnQ{RBT`#<^sh+o*Pm2;Yn@+b;_apn9gRw@&fI4l?;<7EB22h*4*IDJ2_3?-Q|3#G zcrT~USUk^~RL#?WMY}4E6%%iO*EaQ3BVt;o1l3*%QY z_+y1;?1a-8V*)M3GJ?s)fqy5e9&`+R4)4IU zxYsn+6i0$my`Uzbf~CYkkZY!Mn^g=|c0REq;Q2YXowmY>1S*y-_Uy3JsT-0JlC4*6 zO%uDp9t2}=maf?nJy3cqBIb#6!(K~9E`2GMuFhWxQe%=Un1Y`Z6JRgF!rPDX%tN>M zDXMk2VjV(Y13QK65nkbZx?$vAY}WQ97Yt62gw<%c2qx-h?zK%K7o6CyCF+=Tq?;V#M@u~&Y;(zPXn2&yK%iQiJd&kL(z zS)LQ%pnZ$q{zv2$oO{pu9%3(RbqxU1xPI@BwvL~Wv45OSCGkcpP_#ODu4+yo;;~5| zbHoxD zQ&8z!84JtiI~ZzYRhW+~N_#pu8jXICRJn88fyy>gss&y4Kv|I#s7i$-eg#mM_0p?J zr$)~z&!9qTnh2LLtH{S7;qLY{54V>8{r2_Fa|c=t8mNgG@D{z9oy5-!?Uz0W@#{|7 z?uXeoY#pY-J+k}Eu4fuJ%_eYhkP3=v`QouK$?*&#Nuv$_y12X0_70ViQ0`Os=EAYf z_@P-nWIe#p0?ZI3b~GnXhZNFS93{?IYB>G zumLeT1-1ClLd&GGjpHzWuNpU2SJ;@0k&`eVO0gzcw;_0BiL66W^&92%e&3-Ewc4e_ ze7`Hs>$%B(+vzba>n4`KH}U(#Z~s&Y{u^=4`9-$=BIx|PY{vD!6UYB>uSr{QiJ)YG zfbLtYh@mn-;U)VZWy~l5nQtJ`J0oKM{>6VcBmV-J{xy!q#`wRY^?zOY5)w$M`}rkd z%0vmZ0|an0HC|)4bys85WZW#zB7pEBm$y`N-jzVJQ~X1f-#>-m?@z!ayg24L{qnmv z7AF9d3^>c#`1b(N54V1rmxNK{Q3bzj9?vJfMPIDgw2k zI=EJyC6s{L_uOZcbO^@XkuU?LEmFc$S+Ma9@NK4N@bkPFLiMbJJ&3qM$5NP34DK;W0ff8&-3I8 zrEUNPdX5zMqTa|1qMpGkI2%L-vb|&Rv@e|=qB178)&*gtzf8O7k=u!)&Q)b~jlsU_ zu|Hq_2@;Ci<7W60FYJ;$pC`;~>59jngI<|x)UOtYj=FaSSwAaz$u>sN*@(L1bx2G2 zmY~%)Jgnpd4WxjJauH@8Q)vUp&18{!6mJF`nZjRKd{F7ZkhPZ!si&t*>rPQ~7Z!~{ zv)oFOrjNWFnW~6e%uhX<$NL(^Y1{YbYe{Z`hTDS8cqO#Zc+i)dk*=|HW z-#6Ld3;j5QGZSUJD~xq7rl<|^Suqyc3n$FudXw(wRy44zFrmBjc>S@bzaHb8(}3S` zP<`FL>uxd#?}K!gu{8(YP6@^FcJ8|T4R}A|hQ_izLj9$}ZT+h~2>{~7oVNP+F#UI+ z{KZ84TgoRk4+8V+ME&o8=fB9rln*+nFBxB_H3`J7S9Ry-zzSM0D9!DzIL!4#4ozeU zSDHc5+`3dzY!5b)goEX)vpCTD$QC84l&Cnfm$NRPjn7Pvh2a=+;T&+Hs)mN{_2Gp6 z9O4}Y)ED*3Q2$xP&(|k9P`+EmcIc2F_NStVfj`_&2e;vrZEN%|D;>5F40sDFXaKI( zzY19eti2~KSREm%+;9`Fz)Ezz0(#F3wiu>1H}n#=N(M=!kl@7|Lv6vXO*XtjvkQ@^ zJeKLbQG)dB<_-)nE$HTy$W+Qxhl*AqP4^4FsI1#3gS&Psup@WW8PNic-WnI)3@k6@ zk!&QQGOzK)4M)C(?5NT=$sj%tV*n_qGK*gc)JW9m=|4nGq_*pkA=o>d4dhiir0rMGP%gBS>Tw+csyMs>@Szo{@QR z)<%i-^fUlEk_@E{`0l0b^A-AjMw94K3$o@+A;$&dpXT&#(;iP6tGu4 zNi>!~?3^zmi(zV^W7l()5Q0bJ49}sT47zCHy|NzWkuiSC3)`Au(&LvL$&^+h7N=K& zislT-d|57()XBN@un&F#%2<(?fkA}LGz(U1vSpzx#I9+KZ53w(`0PnYOoO!6&s0VH z{;}nZ)!V+lNIPGkZ)YV!+W_9*H0>Bj*&tadA{;4=<0wG+NP2FWa^`X_QK)a}>TVSy zDP0y|pEbL}RGTJl#A+4{oVG}?fq%|!yCL4#%4oBO6595j3yO2?YOQ?){-l%Cc$FhM zjEdActu#^X zd+!u7HQ1fzJ=HMeAl|usF7Z!NAz@Wz;V2olQmr(r(+^vJAe=gkDrU@UFbFx5QtBb{nsv-DzgPCU#>PIZgSV?Pqj(^*8{MQ zIw5xh|3#XS+-V{Au_>oQlXS8B4wZwLq4F#6%a}0@ujGaMUuZaq2=DX15B6A_=*Di7 z?c)}~2lGj_kjOzAt~OX3`W|Cxl=m&6 zF@sk3maK9LOTY_V(G@VrS~vqNTf&q|e@REyFADJ}BWj?aYgFDvpREgpK6eNV=Ny-f ze4<+`)5uog$$rQJV;V8KqsAZyT!vl%CCnOfKKC3@D6Fb!y#9C+D2;3xTAGFDNOS5< z>EcV=j~HhI6L&EIn!Z|!*jXoGHOWjpZ*V0)Oe;VD;oQ777ioGrj1z+(L3kIvY?w;SR0&X35$NqK6|D7v*0cZb-ZhIg z!wQ8B3?MvQXq*I+W2NttO)g{N!FBCl!ElMr^wjBiluSk&lR7y)f9ccsB9zvZv1%CN zanR-S(zN!4UpDyfB9D=aOEyn90M_`HnxSw(nS@rFGzX!0{uS0p z1NM|ucy8<~3uNZHG&yPqL*$3rLW|!Br-%Dn~QLB=f3kQFW0zypjy)Qg4MfWw5y|FhyOW1wnFMKXCxl2mm zgHHV-!Tf{^Ph|2ZC>FabM+*^itTjVP6m#6|y70uTyQD=wFS-QYm6tO;B4JV60fL7- z&gE(blb^-15TqJBEG;LQ^iGa55Cz&C-Y-+S?@K1>+uqD@WI3es2|cwgcW~=$S<#?W zPvIxNX`PS}QigK1u#rXBXI!k{QNs#){4J^)!rfYNCTuTbg-$Y_)UBS_ZbF+-@EEJ+ z5N)o!d{bKQ{(7Yk3wMn1*~=vNFy`l6gA>doMv> z`=g-k-CQeYBD5crlE8LCU4>q8J;0W<&AuTeP8<#-d`3-#ONaw@m|3z8hu|FX#UHNj zOuwbiLb631+G07W=#U{D$CyEOk1Vze9qZ31tt!zz&E<=SNx3I`8`^NrupdL zUc!OFy6;M7ZyqEU^!j0W_AeD6hth3$rK5A65su+wD{jlY0iI`(q9^Be|`A^lBRqCNl^eB zYU@ANzXsbM)nSoy)$m();}hL2l@|o_mn4)rYGZ-RpaXWRN2(<0`*qhG{6D%(Dv-RtPcrL5w)7Q{9dhD(+gyo*;R~ORA&lxKuf(fYF%->w4)}VRubq?7>&l zs2-i0rpHtV?~Vg^!YJtik80(-4#lB>Mb9d3psK_FOoqAC%BQNn_3->9cuT-6z;xM? zE(1E#IQ=u)7jqL&>adtso(K@d_ABCwj;`usYZfV}X;mT=tD;S*!*M=T3@NC!^HXW5 z$v-YC(i^`E;Rz2t&8KPT%`1Y{-&1|HGBn|=W`Q~m3|*wG{|i@~Kw@D$GCYIdZyPe1 z(t5#&w{s5|f|IG94}wU;UFe&xb@b2YP zfS_v}5yjmP?3*4R8H`H{ML&6b{)x_N~;$uCR2vNmbO$?Oqc-zo*&B>DHph$5DPqn~ zZwI7ahKkYouQsh>8e~&qTi?OiuD`x4b5(@}_XY}5kTuiJiUkz~*>XqVD<}R#!-Rdb zyjrn1(=-_xo1qY^-#2Y61PdHXqYeR|sk^DDOG)8htm+M?--l)9N3s#z;hO+MF!LecJZ)K0#{W#-R3UwQat+ zEHbqH^~FL1w%;T{@0iF6sYVHuLxiC7Ao@r<5$#EU}H$5snX5Qnl63hy}@)@fA$Xb@dN?64-okDFoP7N zhc9%_e@o|b{acpG&4YkU*`t6$2LAfx@6Hg%mkyk`AQUG+)M|9cYWWwxxr9_>qnZ*Z zZtz@iJoE|tUcu1{<=1U|i=Diy zCvA(CKJw$2PoIxJr2BFbnL*cj~%-5zfTfwL2$VnP#G=%6fzyBN$$)3UnBbL#|lSJ&Nks_b5^#EaN< zlr9}A%zP`GG`~Drf4QHROC<&1C3LTvd?PI>lfKZ>zwMFkB)tCpjP;u6)IBn2^brg% z^4UTQz=8EJT>U0%mxcotc|&+#WlF5#m-1X-iqR69W-ZKwW5nd-9YR9>?Z%4??Y*+0 z=%m~q{j^N43YJQ@4EjoF^%ugUouyCnZ1}wuOchcRY7}Xiqpsy*>N8HrM>$+px(!{& z;!9$-h-zGEZQ<(f9+7gcimKU0sZANR<)HaEKniCbTQxbnaDz-#nnN}ZJ?V#+vDWcB z=G0O)Drm8}%N|Z!xtkewo zhKKPp4BUaW;{!O)yT=U(bDLj7cCTQKt;(v5J}#x1+m`c>(oY<$efI)>3y)Eo-G-ZI zVma+L4k{0&rUsihBsx+Aj5LB+1%Js)07c;~DGY{#5E6_KdP62~+J2urvs7zMYy53! zuR0Z-I&nso$@gP=tZ88MZN{j=NDL%X$r0p~VN&2Ea~=BVP^?>Z%=@8lQnC{S?|fK=8| znXN}D;`bQyFyn8z!LUG>!E4+h3i!kQBS?}(7LO_gQih8bYjT%zlw#m*zo?v#l(vmG zb{iB6k_yroAl!C`OvTSpO*PFyqBr*$*0r2W)M@s2x7btZtKu>4+T@z*r;cpVTjJ)!W zhX?!Oilq7H8r+wvp(zxCq!>_SLQ-jiSkK+i#0+sWzMEt#OiZ6OvEA-*K*9&_v(Ps> zAHNid&Xb@|uoegDQjhTMb|k0CW_!Pi%W3w<7abX^O$rt5`SUKTX)g=Ofbj*vUW^vm zE9{H&@q!9_o%$z-|5swe%P^_3WEA>rMC%^0Zt?+veZLQm4C6Uwmbpmkujv zY4q|Uyg(%Tk|VQeoT3w;Mr+rUql;*v7-;SJ1=X8cL9aTitEFn!A_UbjD7kq*<7-LN*B-*6Oc z37mhd&iuZ6H&xyBwCC>)0M-4o)1kd?@rTFl8W((LEk9*0h5+op4N2xx{ocuU53g8u7m9VFoaDD5V#rWw z7|-?c?noOmJr{5c@B*jz$PVb4Ch(`YE0NZ?U25uSqaPtZ@a28DpV2_CBE$cA{rz{# zgzIk!z`xRnfADi4Y^+=@M3PVfARsBO4K2npP=&zkU)8kc8C?(`vO698$N&kb;{|(|Ie%^*Z*M?e|`C@ z`}svBW=)}2_-b4hNOOilFr0}T>@3=+xpT%sphz)ceXVlcva#YiEmu7Al$KyM0$)uUQc=|RAkq}PT8 z^#n%eAekW+i}b?G3O=eXwE+eBTKS7-L=MO&&nB3sq~ZhqAHLo>N|L4B9-j8JZ5z|J zZB5&@ZB^TtW=-3+ZBN^_JIxYH(E&V^@t?A+6;aB}R23H}L(Yl4Zss;< zO`#zB(sLT4SV<~@rG5SiH0CMTlHjT;lF$_D)C=o+mECkyqHtruBd7)rh~K;l_IiJ> zuJTr)fSB4|_RFXp%O0um0Os&J(n0Dsb7kXu?TbKsh%!uRM;XcFO9#H5_j)h6Fg#_L zXJkFH{1j77!5$E{Pcd{}C^od_P0N|XCpwn_$ERXpY=ov_2Kd3aL_*0O#bx5+`<(2F zX8GVzv-qX8ZLSeVH2iV9JEI=Jt~7{zwbqx0v{kL}sAwI~N@+S#1KbHiS@+hFEMc4R zkI6S;Uusm)8e`6W$9B#Q+30d8pG>D{@ZJ)#C`VV1bfQQ=V-buKXC9WGtd-y7%ORzW zXgue7dqJ`AaApho;0N0iHgSgik;L4{UX%k%hf0GgS&&bo4lOxaSt~o0lhGWes)n9+ zvKJN|Y7;(JnU zuWXQ)-8;h=oc}XBlqps^1x0APXoc(JZF;?(0+$t>anX8P<)AFP^hyV!TYX~ZYj%dc z4txgL{?{$JIl&!XpAOhbalkGfA2=r~1X^-XyRYtw1S3>?2taqCH@(ak407VtVZj&b zgHvA?V`@=!fP98id*-)xi56#yAJhf(#V!-7usDo)OW!1#yz-mt)0sA(_y{Y7$PN-l zaB;Ch7^A@ETV_w#l>TD2VLk2o^g8k!lN5EBq~f~O;7y`sIYNDaXK;50qMNq85xKAf zThVP&c)CdQAn~9=@X6X!7trzHrzY4Xc^N&1y^l?K^~D8@l#C1N+~xLau-8 z9Dzf0e}%OFkP85;?2P~0%qk{9E-sxBDfH?!Qk{!DjME2aR=eG*OjX;mUdX$oMFET5 zuBTv#?DYK^fp}$FJLD0on_!BC;dbqM`{sc70a+3)W)B9azDYQxpCJf?skj>j4o@;# z%~VqBOko%_fI1_Z9$Ya<^3&=MpeEp`)rb$dn5kT6E4wW5rz&>W9K7IMOTbmw$M)t+ zn@{ReuCiz@8VWIK+wUj#;9pNk+~pHET~Q52VI~Hl%uPWv^rS#2=u zcS(8E3*-6DiRLCdpFM#`n$aSYS_`XJ@$jW&h|$e@nOfX~$LK<~DQ$uwL96WH7*@WI zv;FT$?X4)E;!f-{2zYhJC@&H)=f3vgy zM=PQ6zaS;qM1D@8fpAR4q#Gq3H>Lc5^hGOJG_TxIm33fmc9~S5pnwyHTT!$WIJzhpfGJ0SpCqM&;Pk{LYNOFXNag=+|)Kn}WU!#LHl&YDasBZvEWS zNGig^AYX>!Vy)Nj;TN|kLL}S7cYC@3T-1=QOsUqt^#s>;lB-V1BXRi=KDxNw-An{` z5Kmwb*>J{Mq-Zr6ka7LBaXrBmV1AeXqnQ?MuBa&L4+nAOFC%b_%}`%KJQ`cv#f(*3vsax1mWgJ-N41#X$CQ-q+Ub0BgbfpfdDox9_9VW*Y_>hx?Dwme<#=g_K6!Ce3(3Huy~EWh)KT zrX+zP#0)2v#nJ7b($mG=b|J#++RJ%LW*!OF@mvZirLoMeP?b&Sy6WV?>OcBCrtVc~ z6=(6tEW<6D^lyihraWZD0YXunQ|L}aC;M9DGSm%4iDW{m$F9__s)u(7hBV;^`}aH+ z5UWt#BS?CFOW-U4Xf|tD9=44Y&o~gmh9<5d{KS|f<=^&Ko#^O^sD4IX)e@&XH;D>W zzygyyl z(hX8klY1`L2!9t#ho8dl|6~swHw<`RF2U8s5e5wFsF(u2# zB5BG<_2Yv0KGVQj0kFo|cdE30{#Nd>;r8q4HSTCjAUErZTXRij%7q*MNw@5){#1IL zJEnU5tqk6r-|tzJ{AR#q45*j1Fa>#c<8)Me&}}CbYqRtV zFaPBo>J0;m^cN8B3SzDX7KPSDO-rS?0+C8Y)3;pEW;TFJz?I1c8Ght4`z{0ZHeQTF zGA^_VE6Y(CN_4DW6zTY#$=!pNZ}LXzh()^Tvmv)DE}skEOV@9QuP$wE8flAQh{qj$ z*F+(Kx41*(;&R-R4`@C)99}J%ufWaaOzo`-k)n<*((Z)*sw>|y3hJ4??rHM;hv|#R zkn~2L2f5-)yPqG2n>f*6<~I8#aH0?V4*WdN2gigqY~wUQ5Ga`c19{?N{2O`t@AL5I zp-(Ko*;Ld^ z{;TD$Sstiv3{3(MPx&!TZqGSnt?omdBUjesfo$<*u&t&Ii$TA;SfUw(r_|(vM%I~i zZlkz;3hw=AoCv=gl1qfyR*T%c?XYdWdmk5z8$QgVRtKtjNWqyJvtcNo8^fKUUSJAt zY96mnBFju!SfqbeJO+L4Rkkr8EsI@6aS+m~zS@hjRjn3)%8VRWno|ak_Ra^v7E0>3 zTE_;fi2WFqSvbg3&aSYuTjHfsi=2FkU#V(4X)*HTX04jeV)Ox1wk)V?rXhrmi;WG5 zb)mRm#=f4Psft@-%#5q6;@i9bDPz!N*)O7N7%Ph5VUgy+QzwxFP8=(%($!=lg@#+Q zX9NbJY9kMr5)S{o)>q^P9GJ3IL0kOym&US*6Ko<~A#@&M8TZ)5GIoW2k@g2`Rovqd zP{+T1*Y=jvY)UvWMivwAdXiMUa8Rd|U7>;7?eedF#c-ApsM_SjPRhDbora?1_IvL3 z&=~!I^i~}Y=JhKWMnlz&6As$7%e4Z-U%^uV#L=)ToCky6l^89_isv94@FZVxX%5+3EAIPtG@=>3P$+)E0UZ#1eKRdx1P@WeFk5+*LW95M$Z7XbFIE$d!2(Xg5 ztXS57<+I67E-|{D9IvZWtL-ICl2BK$fK0{k=9z(kgp-u>mUST^0r9=VXt|l9x94Ss zyIJB4vRNV)NIHs;e?RrHu=r^cb6Lc|t}8Hk@}rQ`HBST0g*?v)GeX1XcegQW`I-r% zN&J2PtyGdYu8{i)_gG?1bPfC9E`W6)+mno{L`}PFR%yR8sFkWbvn?3oNJvk-T!WV1 zg4Gk*QZs^+q89ChJA5y2T7c!6{%qw4x`AJjqJQU<4H=4yafJ^e=Mu_7v~XOIctGtO7dOvJ`0)wD~jh+eDm;I zZayHI@X2L!-=AYjn@c7Fv04)rFcmwWCiizzSW(Ohu(#Hw9=A z`;*P*)Bf*3tVx0mmQ1Vu51`Q#VK!#eAIzsl0=>*dS=pdPt{x6=f-T3#^#r5EVVX$_ z<%*?_0cq#aFmTuB#oCQ8_j(~a@n!TP|6_Q!KV4_I{^W7PB&^DKVKmFcDdV|A27f~U zp@g_UAXOikF;&^Pm)r|9V6IESiLwb668M z9VVECS!7#Wfj|pu58&MM6pX{D>sju?KTYbYLHi;Xw1AODHoJutC_lF;DZdd&sUn29 zbx?Xa-4rtXQ7mG*?|KUDi{Q3RNg-oqjoNTl(4mye%W4wX%kYbriddVa)~roEkRY%D z#z=O=402!H7{;ArKp0v6URhnh`!rY?RPe6z}>u0l){3#&j@i#a!1Vx-16s z2P02}?c{!$vT+Y+_UyRXDP!Wz{aSD&{(2ATq7U^0zf@DQ7}bYtA%;&1yXDKPZZNiJ z_MDgmj28&C#BBdjFT^4RdJ$IVh?aZbxz2w0J188Rkq>XKP+K&(%y0h4J=hWpG#H&( zF2k9U>-bIgVL+&Qc2#C9TXAUaObdaB+P=~>E218$=4Ik-19AR017H3E7g9tuf-jT4 zY35@Zf`sfd2~coHgpiHs$)to%@(RaISo-xoQ!MGgK?9viV}cP-uZfN8OW98CRl*6$ za`MV%>}>b)BmFUwI+$zKdlxMulNl1#GY~Pr({Nf28h&s(Q zrE2^nC&v%uyr-CSd_I<*1n6ED(8xRDW=|UtE~Fk#(m#S9zB=|ExZyP*BI4oqA!jvH zf~o}B<+~u7K@j#a*B;TX>@WwG`sYB9^j5}j)Z)oF+q|Mia5(6`TkK~0a=jovv#%rn zy&eO{aQ?51>u;FL1Nhe-)91SUKgh{kjQ^A(QL=LVZ>72ob=|+zmVKwHTO|MdAYsb4 z9|bO3LsI~12gY6;FS&r{&3x&!ul3X}Bk&e&%k>&)GtcGY*9P%>+hb9}K5O)_rTa;} z^LagnZp{YTHZ6LN{r(UaN~|WAUW0!`u-G?s0M6t!VdM7deP0FIIVBS`FVxeO7^7D+ zglX-HOfrtucYbiiL{Vt$`FRhbU86M}{UU6$^?UV*s^EF2vR)c|3#9WCTB*S&*%hHsJ(fXe{*wjrY_s3Iw zQII)RZmz#Ip;MK$Xi3xcc&xL|_H>0RK0*{f3; zOZaZCQ`Av_D8}D&RwnDD6gY(>Ex0wv3-!Y_Q5NwnV6VQ!@ll3klzc6Mk7FpEx0F*# zFzFp~(PQU|N$v;~*;_IWe`^gQ5A1st(A05gfpop>nSd zpeNtRD^qb8BzHXkjm8K-^Mw5cjubD^Ks#)AY+5r=L`p;9qTi!puQxqaM8KVljT9v1 z^k)Q^yiM-ENB-bm*oGzGuY-QeH9k%A>o$63`JNZvCvj#0E{*f;39OUBgyN=6mPS!> zQH9lp3Ne%$qyfr2CwM~mkdd3gHA_Rw=sVA=>NOxg%Tll!<)1%{kN`$)S9J}?fA_lD0j=X9m__xEqu9j8JKubk{m;QEGe-<(YQ?A40YcB(7B zXr_p%%0_WzDzNExnW*j^LPXW|pdUdaWA??qNN6EeX z&2gG4wmh{JoIqdnLUl4$hrPk!dJw=zLddammxHZrrljNd%KiM6sknm+7BcgRs3H2| z#e|xMpK_h>SZM^Ed?_rydH9VQtG@)kSRWC;l2wcLTUG%cj^MKw_vY{p)!Cf z7O%T=ys7EA|93qt;}JYP+hfS1Yc+ViUV;Zt}@p*Iw}T@%0w z=L*;J+(baxS5@c>TV+`Kvc4>$yk5xHfFf)fGSWjAReDu^~K7}|% z^hoMiYAu}>9jsy`226BMqL7Zq7>jIBIjy3NG;YK6NRbv|fQ8<}A#rUL{_0h0(!ZVs zf&&d{zxqh#6QYw0V-bXsi)Uo6)!j&S$T&gSc>rgfQkg*&yQLl2;7)mQ{2 zc?_)yxy06^V59C5DXZ9Vpdof<_`wid5dT7J8JR}ExfP=Qh8UyhE}Q*J8h52&n!H^u zVj^@xcWPdboHdsg=RuT@hq+Lc{dEN6Hx5^ODuiMI+Rc}#9kfoG1Rdpkr8WgkO-BM5 z{*-dPn0qbW5m|mBU`Cge;y!?izwgsVv>&geWcZxO-^BWlFB@zhW8&72QeAF~yc-jG z_K98iHGaZ@$sfqj2kB3WvK6)*5Qh%hTQW?T>&@^^NicHSpSxm!lMaRBtM&q_@!-2U z9v<4IjGThUI6uVK+`Sk#E>EC=m8XLJuSiOC>@8gJ2GFBf9n1D4?JmF-f|=jsTR_S< z7bd7`@QY?05)K``ShXfQDXH37bjUf;eS;H=3k4LA8&w=rX8VS$GB`An*4vI!>S zGY%L! z4O>Up>`$G2E>ghBBDXwg;_eAmlQCQ>3#2SJ^8M}r=LxMp$57MuwO3yN0>35o7vw(* z$;o1q+r<-i868fxHva295=$A}A|1wL`$ZjOr-d?rpVtO4IoABe4?qY%Xm*e;Ag>>^ zH%KKbV5V#RkY>s3 zysYL-{HRn1O-T-Ab?9uL(_<<05o}Jmi16SLE${8o1U73UucO8yo$ejOHj-7ERiW#@ z4_)U=j=r>v9VI_D8J;b-zhaP6-r%mpKS|-OMdT&+Y-QS0URk?RFMu6L)v+YT-j`H4 zC7XLz$^or{pviIce+7R_WomukKY1foYTewsfV-cfxVZ>QtOb?^K?egED6`Y-|8R6G zs4eW@<+|w`mmaB*F^>vRf+qXOX~qX7!)IIkP|<;~2)z(*GUn%9v&TNI!{@R~5QX;U z@AB-*t;jlpm?N1m$BKPqAZO;<+QrCX;$wc#pg>2{W4ZCn6}%m1nsO^lbg+<^Ndd?6 zP8N(zwaE3Y?j4|tBlu)kq@E<0SGdrg7Uf5%%u4nu>kb{CCej+uX|+)oXI-Uhiup1L z(P!N-gLr+16LFR0{;vFc4V9xxUO7hfIeS;(+)Y{SIJ#Rl2{@1{lWr^ zl`zvVd{Fw$l3ki6WxOrfW_XFP)mbS!M8mHfsRQ(c$b&w#>Yk#Ij9j81Rel*o0#KQt zyTJ5W^o?++Dh*9m_E97MFXw^Tn)EcA;l96=FsTxhK=8}P6)fL#bE#weQ)gDBcg4+& z{cNVfqRUZSTxC&MucU)U^C0}|yiPsAp8I;pP^nvtxJ_7lEpWnbf>W&J%Z)#gVoSk( z^r*>PBymZj+EpeD;AY4tPr!s%rxY)iAFmERU*{`9Qut7ZY`g}%UKicka@Ddsc|4hU zQGS$?3AQhl*elkO=5+u;kscD2NE}a6{TId@4y0<;4l}my!uHT+=@GQRNbGbFR}jA- zzt@{DI8cyn*BQqBc#PoD<*20NG84i2^Yb_|!w44ORpe!-=S$9^k~K4@_OA{?v?xsCcc&^oQ*%U2M8at5_*l8dZ|r7d;kcwi5mb;r6k2;T@S$ zt`9#;?5hxwi+t6YG6B992PYc{E)`2a%5#NJ`O+0L`tMh^8X||HZoIIh83UOz+lZux z4`Kd*?3?BujAg%;rA_tY2asKWFoOB9t{%|2tAmwj&kMqA6>S#+wHnBO4~7#A*`4Uv zq9jP^LI)7+{lcJr*@IWv!oRdNj!u^obtXW$g!TBdSi($uN*tQc+M<0PciCeu91(yD zVF#cV;yn=-PId5`bKbZNJ;lgN_(>sl6v%=XIus$$Ge)^7^II5&5JC6$cxklv3hD!N z-s=VK?`h`W#f7*&Ss|ZWmVeDL|6!>xaWFMEhC@$-fN(a4MnVsO!q4-0b@D!6923r< z(ntJry??E31lKDYV+!T#OU%s z5XllMVL#$SQ*M-OVUB4J=51&+VJBAw2UKyAYu2f3ojtlc*6*uS6+7qvJ4UG?Mep&ef&hvqYRnSG(6pwNtEJfYK1~wS zj-&&SIaCc2A@`YBp=1XByb&~_`oVg8eBpUGNmFMNwTg=TLoZPn_XaHJ-nAm-Qf(!s zCwnlABMczr+jJIE_gS6nT+91q4OTpQ(pJl3c2TU8gqPif1GnK^LMp|<26wQ3o5URY;?GABBc_lGG9-w&Ft^c4IJxd%#r1*%9e}xDZJ|sN(m>TSJ3r)S7+1viFrhMWA>sX0BZl+n7@hMx0&eo04O+ArTpTF| zIB_Lfc7(mko`Nv>3YPH7;Z1-ap!yHSQBj^6ELSmEQE83Z>hBJp@#~oIrIf428JEb>R;HZ9`TW z-dmcBqFf#;dz{YYZ`;EPOf&Dt>9*>Si^feBv#?05mI&vDCwGg7ue0N3s+_cJUv}nS zU8kZTn(<|wVT-K$T59b?d`ANwntHz+ZoX8B`Hxh9k)qXu;pTBtYAv_(}0-X^;qyU|hZxc0FoO z`2l*3DQ)}DIR5wiiRo`e&cCvbe=;Qi8wb<>GJ8l?|1ZNb#R@@~`8u+(6gq<*lma2b zl~v+Rm7tTK!-l^SFpf}eHIh+N(;TQ+0 zS24p4AJbd}J}@FaqI*BPgE9>-!A(u}`%-=z14mzTA8 zI9cF)Y;4pJCW$1c>;+bTgrde4H3r(Z{|Ggl=Z6G36=Mu5;+bM`t9!?V@zVq(R(kCHLMi}!uCBvziaku&+J6y2?> z8n9VQtzhUv(;Et1jKbU4$N#X-b%RV4hcDE23~A`#Wr)=fj;HC=aqtt8|Hp~S>p)QZ9OkNltl~C%Y)hxrM+pSAx*ARzq5Z&?VDaF@+VlV1p#_Fq5EL@xE?R zt0nbj^o%(!#^c=S06r-7$8<%8hanK#?~{FsvSHNi_qrHEv|LrXvXp_jAAl=@ z5UDAiuI7cakYj0715P_e_eNX~7e!)!7u|!fT+l#U*D8N|s2s>C$lt>;DlX&|qSXH1 zlS_Rn@r9$=^)z%b5$b}UXX&5ERyFn_@=7>NPGb@_mZ-MWXqtpqE{-~YunJ|1&0u}{Eek?il{{9zEG$xFsG=s6$up3knNb#S7I0d`u9F} z16BVdjme@*;;AHlDn8Xjf|^Km7D{x>@IiekNv(+8wsM!z4ZmNX)Z^s*zy;tG83?~* zf3bq3d+EZQwsEj-6AFQh^x`q)3|d~I$qz6_Sj zq{onn%0LmOj7R*XffQj)2Mn2)iPx;j(Lt|ELT6~b(+4HINOd zs03XGmPlj*vJz7T?DF!rd&waqnAi9uWH_aZhof^M56=WHeA!GpRT7xwNwZR3h{VcJ{}XBJbm8+$Wbg z@~;nem4w8`;S2nA8sxeQ%@(PxYMSEYP^ml=nHm}VPh&t16ZBO(FZTVJEXd;PGsBWjRk;EVcNox!U>P&5R;cNl&^zWNFuXm6u3 zf2%E>7T-70oU4bmHf^m-I%z97lJTM+S-ivRpPL1uRi2HpaP)AFsNLKlYEqX{mH-%B z2(KTQaCnP~!ag}$lG!f0YuS-r#4vX4YeKEKVrwZpTo$eIpLP*ji|!L6f_h=HC&ve> zrW4Ynu+j7!J@(x=ZUAx2mB4!-g_gCkm$7wx|*2u>&XLUV1P(wjjl@m z$u$pWv`$6iYu79(V*i0rR#1S9OP0KdKs?jgi!@eS=`G$~-;6@ya%R=n7&;@bMv;J( z2_3rbPISkhbP>Q2XeGvKn-z`+4{+H%EKYos{5TA*wOMPuWE>R~5XFS6bWDl-E)lFo zx^|}Vz4B5bJJ10shM&^K_Zl*D+rdjA_s~af9dhQz76XBFc#1HQtpEG$I2K35^U_+B zIwL|SRgog^!w~Aa>f9}^Y9%4oPvlO&569;$33G45GYFx*0FG-%v2b4CIRly;&4rQ9HZsm_F{V5)u)7P0_S9drV9(*h9;>HF=~9!%@@ z951wTL4EWTs$XWWokKUlI{i_&a)tZ43HM&mr4@j*qPbrRZ&HL-5_j^wLRK}AuoB=T z7s+{P9Vj)#*3V&#izU;YL!>hXggzL zmN=g=5X&aZYikHM>w}3VPKd|arRqzs^fv^pKz5gq2UW%LUxE!zRc5w?MR(vYI9OJ% zGuXWc7#j3?zQv3KLBm4GLdk`Wt4ce$+LY4-S@&_NE?HzN=oQU2ah%in0a{QP1BVZJ zc4(bjIt9dpn;QqDHa1~;hf-9)cvyfCZA)*n9eCK5tGSlUM??TCo}rgI+B*lL zYL;xV70GZ zL#^U9E%eb0xMNZ%3-)z=;lp=Iw7BxCv*hhmA2QWma;}j)&t`2ufzX&z5bmE#LNoZ(Sou7 z_E18Tfqr@w)Uv_g{QZUjF(;tV0lq4qwZfceK7Z8l?nZ^IrRR11oY^-Pr5HBFZ39B| zv7#K8C6i>N>@5KxyG{`MEJC$FZ;f1Sduz7Jm{t^W?Z3Q==${v+W5fgplgP zNwR8!rD1k|TocnAyD`Vc%ju-V)?tapW0e(sNgCn6Jw-TCBZ2nHwHP7)A4unWDkzBB$ z+y3)$Z+_6wO1=)VV((|30N~2N6A$@R;W+_h#BOk1$1OybO%aDtF^;C7uJ|`)+ZZYt za=G$m%$4e@L@3{*@uQxk1LdR};GjxbXjj7o3l23f^gWGEZOl(pFawdaV;P}EsZM-! zw`!BuVu7{bH1tr!ss?+))aaw4-wuE@wWR~A{TCAN@SLw;Lu zAFH&hpy=Gr5{(Hzs4%DKA~1xtPV8V5ml9I6*k?$lVk*usPb-Qu zLJ&3^?;-NDQ7*p>%3ip!L7u+a;1~SL5@$X4kk&W3RY{fjW*BzVu6rM*cHn{hO=L-( zWAeWF&(VG{ej`S|BWq>x+m0{%fPj?+9RO+TSv76f2Px$o9ze6%C&T570ki17C*M4& z$+j^nk?RWfEu!&iI8)cYVCILsJB#%VPw> z6`xCpGlZF5pS_1y+O>W9Si(NxBjgvy#krc9OWE@QBj#9N-xt@;yG5_(ar#u^nsg?a+HBdA^V2by+!GIs#;h;%_ zinDX_s62`&%5gb5~V+5Z`?{|-tp|2M&<&qU_G`6+RIHh*rckOEk^{*&Sm{XZn_ z7^N|%3`V4mTXbI+1U00D5YC|k&doYR+%V-|m<09hH-SXLExX-QHD^%6Xd%*-Mdoc# zZ&GAReq=Xrzj96zRSJA=YI)x!O^9KzY(vBlZG(Nl@cqcYE%(>i3{q2v1SqO^JSfnh zKEng(ezBP?Qspk5!?0Mx##gSOo5?VL96R4M^o^UTN4+IRg}g<(t%kgzV1#zpO|u{Q z4%ri(C!8@qd1({LC|-IW0r~(fwS`~VTr@2UT|Y(CoNvfJdJz7 zQ%^mQjXOowb+(jJByC-?FNf}=riC-{mg)emNVLrSrj!@{>=(~CUZ;TSQOQp9D#~Q> zR#8Jr+_QGd$9o0dwm5fP>NtzCUDd2~{Va5ilqsErw>Jkw+x=c>XB+PtEF$Eg-_Flx zeCh0g|KsK0_a5a9la)?b7M=#$%9&X~S9mR{`VtvtC}7}SLa{rhJm;uE8|7^Bg1v%I z)&CL7@-bE8QYB_b8wUrC9feEFDOje^dZS7Y7plkDO`ycGDC}{9p1(^5s$^!1Z4HHS~}=f#&rb^rm?mN4S2cf z1VOr^X;zK09Y^b|HGu|M&u(+)vaz;8!dKZ7VtsxC?F1Wz%#1%0PqCM@6LjIjnhh+8 zKp4QEs^!CIH-C2P33Suh!msPYU&>+8;V`0lSU*%64*lXmX~ba_$iOD~AV2c;DwSel z^SW{bu^b?Cgvr zjk}2d7!q$_+@zTeEt}PnJyh4uAvZ{-ilYy^#5&HvO5|EI5pv0xh`Xw55xedAcp3^0 zzLydn1;`DelyCgm#TFk62i#ijk;XL#B~)4fhMlz(##q(GPYU>|DM6gi&Z`$!^|Dzw zk#VpZcE%g(HcoRfhOXEoG#%5z zS)VpWd(dIH>&1_C34hW92U-R)EWm^WATZK1BU=V);$h{729G0C4rCR_UG#q&V3GqI z8%t*5M;MR5ZEd@fd2lkbdf<;PIVPW)xRLd^adtoORz~6qwntA0AK$ny7UVMv!^3gQ zOYG3hqsD%05C?%Hij5&z{HW*(OFEl$CA-Z7OT~xY9O3z~62C2$@sT+mYf|5ue(nhg zoh5EOmA*~@&ri%?+oqd$71EEqLD2@-*csjJU-BUR7N3`)eW$$r?Rj0bi&h0gy>3KI z-Zg7_V?zI6cnx4J6}u&QdUooZ?$e_Bgm}aej1l5!L7F}14P~@4S%r=)mdfl7t4S5rAK4Tm|7o#zn zFe#QA!Hs@!Ns>mRm}1VbWhz?WxqZQYN0%({6rg4 zRsjhH1tA(VO{hg0EWf<%dKD`2>41r z{c7gD{1~K{v#`FgXD{7|9~ek)Tqqjp(ITlFMroelF??u|{F*)HMnkW{@)=R${qOV~@R2U}r ztuiGkp()XV{qj;S+(!(^bxG)B-nXTv!OubE{k|_ER$r#U8{QguD@tk$IoiCdXyOcx zo=0w@KwM4u=(cqawshrPowgBrm##P$n#_KXN4t{jsAbh@#_Su6Nxz2vwejh8am2ivhdtRY;L(tL4>*SZ6<^l4J73-0C8U1X$>8fM)%${qRw0}>x{tUqMA z3Xy+;jSKeO-wPQWLk>JL6UAvWIUs@J-e@B~*-VN_BIK~{Zf#?pav*KwSWB%WjU-p} z7{@Lt(swFopKt_yh=Hx4{-%elegdqU)n_ZQUY36z#?XSUe3d~bwj+sfD} zgL>WC8!-x1m(;QlnrdmG&S+$yJlDS$;Ed=R!IcdbF>nCDRD$xK-T5`}5>B zIrezx8x_mj>`~7{>`~})CG<^I`5c*c+ytBW8gv0Bi1{yZ79c`Ppp$!LlMM?3!EJx~ z99qGLN_8q$b}CkdOu)g`usM;7Ce$1K0B!^iZG^dE^vd^quQao+265stVL+r3&X~=$~1~`mEn>bf?I?v7SNH8ouhH4Az}R zYamoz)k2h-S0S>C9Ix5Ne25THIE7d+5R_=lEH*fgS)%}a?`5g5vnT}Nlk+{^uelzpgez%6K#_(h$K0=AC zlT4ptN_$(zt?7O85luIAw&J!{4nfH=WJmHHXnL+E~gdQMZ>Thh7*lg~sHs2sBTsZ*)9YDMH7 zb@8oNtIuwo;?U2pc;4Gy=UOkW?p;@_SHpl~;QEVpz6?llB{VKPUpS@gom76f!Z)t! z-y-N6Gy!ep+q~m;cjS|28dGAw2ini$R!6-!o_F%s#5{gm1BrSYAw8FAMV86*Y(&Dm zrAhbeOISV3#j^4R@?*|Gcq?G^Uw+peQeP%|DCq=V{LltJI&5dPXRr}}UvzH%i6sMw z5I0E?8M+cLV6yh-)at3vo3~Evqe`8oZ1IlD4aMgJ+S{T?FRkicT4q!x&aO37*+mvXB#>pqM2nN0eLWEc?3 z?3oah?=7*Exjv@1t{eGN`^Fyl$@Qd}H|xxUc4HKvhss_U^9~nJNrnAfEXoq=-&#bU zvgdGYD{v;T_lP>5xxm*gq;`q6wspL#(%87FwoSRVSD+I8*h0kO_j5-C!xRYqZDw}{ z>h9=$_h$wGvcD?J|DTBP-w`Di#=q-zz}T6&fK1%~WaxN*rR$$DAR0hvP4X`_ue+}J zGL6Lzb_VSpNMUlFKsk>cv6SHlaNUkJ!M>%dlX&vRfO(2!>A}K1mW?^zwql9Ht$@!M zkc-vr)3aC}s>yUO{c`WnW;-NBZYNkkIn94HAlM8HL^(~qLcsyFXdfKannW_9H`dmg zRx_Yi-ghjqqKCRQ7GNz0@r_AC^h!p}pyu7fUOz(l=KRfs9P$iGjfnS8T57S;1dS4w z*W(?fu}|BhK9v?cXk25BuMbK4^o}cJZ2`if@DTo4+mOt#boAp!&h0=GN)Wv67;+Z5 zncH~VeHH{Hk1J<;ESnrsG$j&CVQrWftG_!sk{l9AUKT1+Dd3qP+8-|fcSmQZ7x!J*+U8SO)0oC?TgLXM`$f(Bx^9W78bkqx5 z2=ODLD|YeC=6Dd>@m224pAf7iq;Dq;OC=zg;&fp*5cAHU!UBl4o6ev&p+0_IN=7yO z?xhA0;#qFtEdZ}Yu^^A*2QxK~sx{)o$Q}g{>z$Pfw$GdM)D*ONp&60NHtP1-C$Y=f z#pAO$U7Ij=ScPUtENJhqsVzs|@`7Itq0Z+$3`HV(xnGJ<>IV>DXVzfgFow~D?<#r> zir4%2#`byu)+L-4*x<*qHDAm?rp6&t9X{{NAq8p$phrg)s&cs=g@xxZE!}sye!yTN z<4O~?iqA0W4cj7e*Hdq637%1GM{(K-VRFYMOqK%FIg8fEo`y+7G9qf?+{gw3GD_L< z^YNMNIvo9J>R1$G(vx!*dF+^pLQCDYM4cq^rBzF+K7M_k;Q%KPp2glMQDRV4JE6*z zQRO=r6p@On=~6>PM4reS=8f3wP6yyFvj(rzv-5DKW=6}~GYE`tHd> zj^DSHb$J=k)X=0EPHigd{-0P4yC%@1FB@^gl)v!BHZaJj!RD;it*^OspbltBaqJHX+r(EWV33(>+G*r8$`Mv$ z-yZY ziEZ1q&AI#F-upc7dC!;qrFvHvy1Q1b|F70680|cMw-hguKyl@fBDh2I{JRJ^S)H<+ z3fO*Hmm&H#6#lF{`*(n|8sz2a*;_g(vp&Cp?DtL=i~r@XJ{67#2e@{g-XsOFX&!U0 zj~I39Fs(YVEaab#DR6Cm;ZCmbolC`4b;ImkLZeKn89UJhFZ#VvG4p?Xhb&xu*YCQ4 zhg6F;9E@j5&1!4-pm)gnM_&g4?Xs>q>&XQ0BfZ3bBzS^UfA2Tt&Xo7CYwkh#)eL(t z%Gzl^99hum#hD^kcX3*~?l*cv+uigVSahJhnP~bfX?%9h9_%k}e!#fCDzUfR*6Q%! zt%rKL-%zhv3a3fc68$dklgh?fJ^}Juj;}jgo!2!iIMJtZJv_l|-ISOD5`1?&1 zj5z;a3mNNwS2I}usb=_rad0!I2=e}4S2Hve3_74lecfSw1lfC8?LpZv;4AGC&gF@0t-PfLxA(r?IGa%|z zx+qm2>G=FrqE)c!@1eC0)q}X>L#&X*0vKwQO@oYtclm=*pXnNK0)i+OhU^%^5dbDK ztz<|)xB@jX$?{KzLyPNTY>9E|*D;_gm{vlK(JPqL$!eDe>QnjIqTHhGurw6DDZ^Zu zAN4W~x5bg?l*1!3r{_N!!t7%U+<&WptCIhSH632q&&eFYx}PNB7SjhuBj^WrPhR~t zh^Y{oSi23vcgssw*>?kXxF|So#Rdq1*tJ?xVOJ{_Cpi;`a>WW#5(JTn`hM=RAn;RX^|N5)eM@)SnJ8u&0>w~5 zvJCG(=7Qj6{PN3H39sG_9KV4AuT_G0M)Ran8>WV`32s-*4B)csJ70>!2@qdtEFIF@ zy$~Cx0j}``W~!-@(2U*y*Xki{13qxH3Z@vSuqz}eIVq&OZ2ojQ4v*COOi4PZR8k?O zJtC{Y#Kpp)3(9Lj%5rAUKF`@YoCeB!ut}VN!9z%A7OWy>7y@0(3V-U9EN>jTH3rps zJP5+Uz&o!zrq|-$OKPwc&@y6z5`N6#A7T4wVsK1+dA}QLbBFW*hX!TpLA_J%0z9g7 zebh&dLi@k&@Ds2Oh`5-45TH#77bXl=p&X$#4nc++8G23(d4L%xB4lEAD+n-o%C*`w zq!A?R7=esajeOb9j|cQ|hr$)q^9|otpA&IamRx;HRz_MKykxL*fbs8#T*}-aaVvEq z1+^f>m1*-k$?+$OGiS(vt#=FCQc2NVk9E1J8RmE z&Ku-C^7qJ3=FN0jRSYSc6VW*V4$>iKW#eLt2w5FYifP%~rz_gVpw{FDow zbWg=&E~DJ^HZ|4qhm={n=|nW~km0AytEql%?e5`b^Cq-_1k<3hDow_#hv*&1Zbji+ z{(R|>5*Y6I3?hQok531Cxt7&}yz_{N`Q7>P;pb^TbkxS6ZoPs0DH(g0gpZM>RRrPI zwl06_yYZ}F%f?zoL+ziiA>Kc663`cdGS>{m2~ovzvxq?P%N%gW@d z_9OThmB%*#iSEe)fBl6coKrkMhED$`6vq+9baJO4YsSrMB)mqqi>|UKHl8N$ROHFO zjLnSwYAm}7plV0-*D!>6D-fr1K%){^HZ~p%2RCqU6Q##gTKcOpRIPUsIhi%1Adk{! z6e`Exd<6&3roQGZ$5h4lTp#m{4?3s=2tYfD#fRfBk#;!|Dt1H^P--q2 z6wR`Us5Ea6IT1#i=S*OS64I*O7u3`=9UMb5$gvi~?R_>5Du_Kan9o?E{-Hpvv$(D# z#*B8zxn`OH!`_r%TxeoxmgfD}Rd(Do&}+Nx@82eqcGjj$uD4|N_1Th2v+nu$%@_2h zs6gH#0CEcCW-3id2spetJJ;k;5`zPqk?45i7(s@krdsjVmF!$3ESQ^e(r?+d-0XC+ zaZAkGMCGyCV$u>a3fwPpBa@u=KGfZ^;QcPveRAU#k zRW3$FN#T#Ub%Iys_aaB^C^iEgvIO(Z>j76n2+qM3SiyOD8LJltH{k)Fd?^XS<&47NN1nxAie zTM&4ri-zOg$NH%u@h{fmF+|4aT4V6=G5e80Qju0R;UD%d_xG|RVgE6qS&WD3jV8~= z$#KiAvkx^BJJFXmGJgF<#&Eilag{kMKmv_>671(6zKzQa6im4G{vYvm&H*4f2gh?y zcZ0|Nwuq$f{6p%b;|B7-s|9qUE@YVaNLRsC9_V=ALPt5@eE*I+y-)s%v97a}<8^o6 z(NVo#Yad!HlF(f1B&Yr9B1`K^tV!|Ce@*c8T13i_gEXNjQY8Wyo2O#+RfM#E6OEzEbrHs}JMlIftgs>s)oII5seB=~P6 zxeF*guA~HN27F**P#)z`zQ{f6`6Q|jLCQW;s^ROK8E9X&Ra-cL^E6)#8|FOdOLa+G zc(By(EL%eD=+*~~dx4d<u8P_?M(`8>~+RQiBj*Ah}D{!BM+&RZJ`{ zg7TUz*G$CcmP&wb)Fw@RlY`pqLFNEg_RE)gze`;`YMeKVo=SV}(magdrOm;@6PH`= z^M#Jq?s%u^tb3(mL`(gM5n{{^SiN43fOlTWKh=sP71L8D`p57CmUBv4d1^_HvkI@8~cCIlvNr! zj_VRAUduJ9W1`X3sc7FoiR^8ojkVenti^v#si=8@jFJb%e#82fNdNckJPo22OeeEd zPK`#|io>O=+0;ex>vMtPU)v3_LS? zK(U_O{VCb6On+{2fn+VxKXSd9A3ZtX;f)9Z-WBi2#+ZiZ&E)~_gw+aHZ zX2`Iyn&tGFeCIXz(v;|YvuHwP;-&JrAoSS~zQeMcq-^=3rzrLv21yg{suMBb4~R@> zh=ng;Ra!-9l{2q!FDur;9Had>#kUmg1CTm0ct;AxeWUISz?-uYvVh}&QiN4vFg-0Ptdm zghjXL#wmF2U+t;SK)EYhyWPk&8#5%zbi9XnQNvza!$u*2T|ys2i-jO@{;sGzEh&p% zX5XR}p0s&>@up1p1++MpL`K$FhH<8h2bolf#k9@*LUT}v>K&Md;e-19%0AAt5y3=^AAIGRF2^Ku9&Q_u&)b(+VxRmq~q*p*Ncm(U0)IU~t2*Bgpk zz`2Zlo+Vqrsd{MD0V}v&P^#?9lw-O@=MB2+!*Eo)4en^dVdW)MU%~?Lhfw>AJf2!i zTriPFwf#=m)dbowq7Us2RuPe`@rXTbm1sTUsz^mQrkPgq78BwopERoa3@o%7bua~y z4pZDq!GR5dh(9XKLF%vbU!qZEd8dS1;a+6Yo(hNXkT_Ef&>>-^NEdyqeHY@i&)It# z@Eur^yqNLD!a!4%kxT$}WeT41Z>5a>W@`1RM0?qbSnPd2<}BGEaqs<#mT0Wr%kN1+ z3Z{ABFfRR!JiD9UMpD1SUF3#>lHq@ki=HkCCS`|=IET)BkOuyRTw8P)XcLMW)vD@~ zMfkE;FspB@5jAZAp96c_emdZefl7SDG}Ta?)B%_YhZs*!2~aDNcgXz|0-G6KrE*Q7UH#CD31F5GWhk>uf-g*{r zEO}#Q3!|Ibf}c<_Z?fhvd)jD1W0_Rg%rQmC?(TXek!S~KQgYy-#x;Du==wxJtbPfL z?Td#NAESX|N{$p9uW&GcwKBukFbi&HWp&F^se0bgeEgw1 z*ElI1xv)Hx*>Y0mHPo%)t?R!lFBa#kEshzv@7f|bNd_oqi5NvDWe`l_Y_COt1 z^w8X9{5`WcDaxmtR&zLo7R*rYv<^&<5*|fu7KhzFE%WHw9PDa{)f?SEu?YVOtJ_eY zn+ixSxOhQg{H>lMP);Q<9E;tpxqoYnG;M|z7i&o9ehWr8krKQ`>`P<4a-x%j;Y>l8 zQed#mj%Oc<4FHqQ)H)yz-nz`i#%t|9f z!}NRM$F&B5Tf)hH9lbn!0iwOTm#)-SN(BH;vrm;lvdwEMdK%^~%bbdyfSR`1IB7jf zM(wZ+IjXbJTIJ}MNEKq*t9EzcQ5TJThiAL@dwVgVIq6*gGP&{Vt)7E2n?a$;q1!?P zga_?Yh%)?c15C>Xbcc%OB{5(v7ZpRceQP-}yLq6qE;umHktjq6tq5QZxLf;cpX4n)+HSxMWl|i{)D}~%rb=p!RB109;|cL9-{-* zQ+IXeA^7pVo6y%KoL$Iv>Iw?}nbhhVO3~Tmf~PZurpngxC}!RZi@@f-F%E3L~5TQTef(t+EL2zZyK6$L;Pzmk0B zIzPU$j!niiHBGjv!nJ5c=3n#1pI?GusumCPWyRevmmOsDm+yAbh|PJH6i@C6R}+Mo z1Q|WYYWL`!8B4#aYZ1v? zr%-VH*^(8Q(VuI7dOjNN=3msx9^73Xr@`hLj4VS z#_ErfId~uYC8$SdydoxZ4!`zIG9R6b0IJ_pMlABcDTaeOnb8V1x+w#om3Yo#o$X=U zeWVpz7OkQ>F2wEaE@jsCDNrQ-ra&;)y|{!;F-vfk;LghQcgbpuX3#n}{%bB9-5B){ z3o?Rnf=1f7{ml7EtK)#YvwF@-GJ=mEuU!w)loaus`RL#JFOcDbUArzW`YpamUBzvv zOa3A0B>qBqwXrr1a@K%=qk+RDlrJMwstAm#%9cObwF&nvn_1Jt zj~ur*gxEf2)1d6$;!`stLycOS{CwH&Ui zbeX(u$Nc`Z@xC8k2(C&IHTe^L}=C?+t4dhOR2etuEC^!iNaeAzJs zM8x)zV;NWZfLHJ70)(%}(qo|StA6dgk@uze_5A2l7paLCOoy+r z=|YG{fURKUyYFwq3%dN6%IeDvvfHqZ071DE&SyLG1WwJY{vym3rG;C5-A~vDz0N-{ z;G2SGCmtYhUA9}PWBSb$s$^OKUXK@~PH)(-1Ri*OcZZ?HhRgR#LbOn#cnArQ@5plB zGn_Jg|B%sM1N9<N0PrHY}-xfzDN~(dbxKjC;oTv^U{iW{AW%OOS_k(Oeg~o8s}zJE?G(B9aJL z7~b`{t7emryy~;|pd^`cglF7J23tQ7anXUw$@k2(=q8XykC!=c@F~DIOuD;-c`_qE z5wKKLqzpW}T6jt#j0b+I9bh9R__uxVC)!XQK5S+JcQ~mVN9!K^=#0nT-1V(4pkAl1_yKdY%FU zNR>TMBkRW2LIfqOESy3GFz`$u+^r<@tay|}$rq_cW^m+3cBE4}!$5&3B*qRO*d(9E z{&YLA`EA)=F(Z(W2>&u-mW&SneQ+^B1Xr%8UvXgQOLRAJzv-qED{@F&y9N~Cu*n|sE}7`eTxPJ{du~9`8)T75{8DJ8)$rS0 z?XM+LuMmu1+i=e$^aGJ?SBHx7ep<6znp&4bF%buwXybSVEG zNX0HvY^VePg<9$n({GH_L>>4-l#)LuY&t5141pSyS)?~drA8uRds`YE)0^GTCA|8L zbGZ@Q#2mwKLifQprgEcMS3Qt=`NVeQj{H^JH0fC80ON|hUQ30FJ+)2O**Eohn(VX@y zQ#b7cP4yg!+H3CtCl{1r`UOah3%#I!#3x|)gxCVpL*E@SgAK9K4*s@+C_D8{F~(&Q ze)Z06tsiU_4)#yq*ZucBsuPK%K?%xmIThVJC(Q?4%z2`dNhi%g_w1#P7cIptgy|{s zs)+4hO1+POJ?B5@hqi6F+X$2;DI7P7>F5`ZnRJ9IZ;$9oSom_VS+uf)_&PQwKh*$E zdD(1TX0vH)zl`fA_PoB<#2H{ZHG0Wef(TSpiEn-;J>-pyi>Ohzc9_q=rf42IR`O5K z29=gC70nqJ)ytfU`Xh=pjA9x`Y}pCnTg2~?O&(43bju|e2Tjx1wyZM_>6p&BDo_5= zCs~xx_-LFNq{wL*m)(*JNAGMh?HL8g6}a`9vnv0{krhW2m*WhIyI~pRxD#z>xSDU3 zO`(2j{9%f&Kiyr{CiNS+lM4S0hMq#YDST2y^5MKVQjIogdyw3qryAk(Xs@x5)2VpB zqnxjB*CHzq@*bull``9$b@Q)=Iq9_l#$!(_t6d%IcoZC#s14YDL;v? zwkwkr^His)5Ej2?!7%UId?3l$meb)Y4S1Y>KpMdfAt+>jlok5s1+#0(KHa+ z5hdk0GwK9?{_{SHVToqy)G-<`#mVo+yzf)nP_*JwFxW&7vSeV;^?qWt`q)nZ9mZroriOHBV z6jL@RsmR#X(QsY)A+RLxv{sB*PB*Kd+x_Gy-mQUYik*p3p++^a=CcME(9q*Zl}nK|H;G zdHKAFh5aOMQtQ*MdUXMeR2(DDKl!6nppOX2s?^CP+%58-X{u~E)izoA)a~L4_DK!! zXzcND(V{p}b~Qzpvi&aS&huO&DtUkDM4R5QZ55`~EafeY6j(HH*Ca8J`FJ_(zjpe# zeuyQ!Qp{xKw20f=TQF1Dm-T17!%BV5h*0zCJ8_b7O%8{98 zo`7Z%TBl)P2ODKzQCUScamhJ`Za3Q>MEMKU4x|4fj?`pHTC+xp632Qzqgm3j^Icc_QQjkd?MIsdTG#B;R8WcXgTEYS%a zhpcq*b5ywf*TtDqN(9H+*edm$rI&*&CH@DhGv(*KYwhy{^p4VtrJCI5&{Q|ivjUgm zrdqZ9oY(yzN8NZ#OG1pgLG^{o(%st&ezRa34dVZfv9taYWA{h>k64Dl0-!-m z2H;|1`%ioL|Ea)E*(7RVOpva2Idr32wM&+?B+FA^zlrR`41!?6eCKSs1WIsQki}_# zE+$tP;o-^1Kc9|AK3ubkb9_<5;5&f*j9^`_zcu-=f4@(IA)(DBvZKp@QL3|jI>sM8{4}+GlMx9N#tbPI*Qju#|=4h`*s&>Ve=MYfh|NQe>ceXRZOkbyr;> zRqXG%S*_c3e6D)2(yR4>OM+kO(IdtDiBsvv4bU}x@CR01S(07F&b-nSavf}pFc`C< z=LfUr241TJhJi*~%4H837;5to$;K>=CputW1~duIqX z3NtA|f`1Q~8j#Wxcn?y&iUv^eNh3%EiYqk(@f1k#5KFim(oYsJf7sS{iDu`%L#?K^Xi#v#rADy2$MTVwE-(-Px$@s zc$QTo+4lL*6x^>b25Q2ihnVsi%*F+&tSd8bpENcN(Q&Y@PM~|`833)zXhQ%t2IKBs za}STI)Q1u#>Sa+ZTfuyuB=t6d5uI) zGQ5%R7d%U{T9j^gf4uclqjT}OXd5}7l17t!`-YKL<%~wdv{N*yO_a2ScVe1samR%c zw~34Qm-;T5in7mS^IM3zWBFAaF(`v1xgc7zb%lLh`r~K?P6JuOuIb7`(L~{W% z3nJ@>gnwNk*_Y*K>Al6Y&JRxK#}2vmBcmQH@(f4Pwcdp4l=dWjz4?CoQ z_Y&b_GH$*?@wWbcM9Aqn&>G%DhnT~4OoBX&4)gb_a%KxhhQKO{#Pi@TQ}-|5=()pf z-9&N0g|}FK^_tm-8gV-BMm{w0B_-9n=f9(OoTL1u&wMQgw#tvV-J>(-D0#HiE~)TY zW%~2o5`f&Ed`oXL4Sl%mV_q5YTj!ebaas>SgyQF%Xt|8PjHh|xIZS#47Fk6dgw`Gv z(wP;Hcu`b{It@SX`5RNuSM5apBC0|5${CqUw2a$way<)F`VMOW1~2BxvFqGk?mh$x zOl_QwFw~hYU6=(GFb&>Ph)<< zTwm}=;OW1V*nR#`;6{7ddp)k?`Szg}SG z&_`#Nd#x?_GU%+YYXg-+`*!)%5a|;0cj$<>mD+&XhtM#AP|fr&-#eoH)SKI%N z2($eY5%ve=WKZ!C{+Bw33t;8=PmfcP+WJ3%;bU5l-_5x&@=h%WC9+Ut2+;a<&`I>& zQ0|fF(yUWINc?KHudqjPcwOkr=xK6Yw&ilVMqYgm`~w6T;P`JyN5)7)xL-z(Qap%2 z@@EVQz;BUq_&-Xx=v-uNxA0$)S9zc#0J#IPRx23K0ZbVl7$*f09xi* z5+(~coL3uXOf8+mrnR9sc<^U#sV|=3PJFwnp?T%@^#f(iee`f52HNz%=km-K!gcOF zip+J7&C{1HWq(c!m)q$Yz*IoMNOO5F^ZU+=TIOSyFoBT9CXl=Qdip79eS8|sP~6m* z9N8sRi@uU9eZ!Z&y_HhyA^c;$77(I5eJkS!ViSi9Ww{WMipU9XXeO<+#$rL5GV`D* zEkW->1njU((uHkh=ubNt`0ReRC35ErZ{p`w%7YbTE-&n$A3 z?;vl_KeZ(25v0w`*^_&?Yq6vviR>c{we>$`evCk{emQ(@$;9aDkj3^m0sJu8!f*Af z5lg`4FIHevr$v&Pup->221g%o(@7PUR}lX|UB-0(P%$1iIQrfT7D9vR*g76zKt3KH zAs9JN@%>G&>|_zr6+cq9WRP+9HooPyCh23Sfd{AeO^<()|&fME3YviD_s!r_~l4j&fLLQ~<}$%H2>pDRvo% zn~Shz>2to8?|c}rNvcg2s?G&Mh`r?$!Idyyzwf;vb6%#s$Ps7r;^L$zKzJ9~A-}*G z2w*nJUV!P06DQ>K^fcFqy&0vu&vLhz%t5O(O*e}%5#Jm z*ch@Np3WXiz&fvwP60QK?+@fdYfZkrDpSbve%6N}<=Gos+EBVNx!z31ol*^pooH3d z0Hp5j*@V;chH>Q?K&-rhs|$-it44K3dPQ%c&5`zmB?IKh8GjUky=ye4F*RYEuXS`W zpB9Y9NJz;%K0_5rTA9Q5Yl5?8VpmrKFM5JhDv29;^vH50@0-J^xYHiME@vgaqu|b9s+k0o?agaa$EeD6JhvmplaT$$fg(#G>)_|+tG1XuV8if=GF$T^Ox$VpP*5k^sU_*zukqNMjo#M<)kk zeQOvXQvv@S=KDXQ+}3G+$3^F4=K6;+z$j{K<78~(CIcXu&5-#W(kD%zJs6I=z~2nfJGq1cuo?R@_rYns@R(;9(Fr1tL8J5Ow=Xcw%xgmf<0C zD}LxvF=*NefMXB2{1KOeYs2C6_&8KWU|3R`5nQlg<-#F7(%DtpMXU=ufNjMBKDPjE zR2K3es90H0CEH%X1F-xv57o>iQRo+&!SBk^7>OH+2=!XRhDvegvtzvDyVj*ML6ye4#A$I89UnfsYJ9s(?coh(z)UMi@ zJ(mDrCGu_Z;T(l}UJ6>iH;ynO4;vcbGUn8Otkir?zUKwy=lKHjLNPY;#(#{*QwO}dCHRESomLG|z&0{4dGu|8&QOkgNF7)BWp z-cHDfs}^p!JwZ1DS!Hc7O_S+GZ7=o`6_H6ziNPx`fD%!82L~Go^C9D;|)3-gvK4 z!3n^(uTZV*`vJ9JR0`yR$3{$^Eha_>`om0KU!-{7$wd#OVad|y0%>O`Txio4QnTj+P&*UxZM73-pWvah6V)6J!?E=Vc*(4!Qz#oGEWam*W66zzWtC1~K3RjtQjL=r%+8q?Gxd9cU;o^cH*1QE31=x{`t7|Mi#-vUG* z1hPkNcTpkGvL<&u=W|AH@sbjhE@s+^&L(5&cTVkvsLCm6ZB^wV1Y1?=I*licY(?9y`N-&X)J5OB$&o1ScAcGgAIM9I14yh-QtRfiQ^p za17r8a0TVeekaF*ZCDC0a&fYY{V6@UxD%krwN~6Re)Si?1GopTAQmylN~hR~KL$^6 zJm0bwW_f+O@#TTk4b&u2V;av|owSzitfJ-EwrCwUYZNvmEZLfsXvwje-)&Uxl%<)U zS+ujUZ6!iQxaTiRklEwt{kfCC3+&W;Md%y{l$#5iV(xo0u7^ItYGURbIll^}oc8hc z6FW4zD{5Z;Xm{_FmA+5kDrp)WDS0O;*@53^6w+xGfQNKSW}HXYen|MVU8PHT19w+D zxVM^3%tXD8Fb{yMp63a;xE+#daObGnnlsPds&)&4>Y_}I+%4evYf)CeIi1oPDqVz(mS}--gKVQ_VXd-s-;1v zt^oP4m9@>@d*o+>IIl2yTKH51AYD#%@Bv}7&Jyl~&zYHC^??^A+BMfR@f5EU0Ta3y z5pJydoc|V*8!wX3Ig9gLt26*oo87HlV%#SivTFvB>v?Qq7LYQtze@!O$d|`lW^3yy zidSRzRB7=Ja8lA06TaFz%gm9pvjraXXQ{BG&$uJ7em){^f8Ew!%+8hrxM^b&-(G@? ze<*UWKNO9g!Qd|)JY47J?PFJ#uI4scf7^5x9|5)DOMz!-r=~1yZy`&)N1N08`Wvz3 z7hRV_(s6F3GwHBUK%cT1x0My|R#TzkbjgPl`u_p0NWr){SyO66|IMy~ zvoHgbC;T&tijMO72#WWyn$zWYJPq9gz2|S6IwYG?X{g?j7|3{poWS)0xdav8;$GDb_`Jvl+&VI_l?q=EPjUbL zr!!)VN6^Ly_Qci{OAQ9+RGG#K%qr8yTxNh9uP7zKyl)c}6vL4~U1rctus^sz5Vm{Zl|B*1BVV);5xI%*MsD&VLx5E2v%-KglMtXK zCdh+U20SGAoOld7KdUOsm(CQ9J2^4+@P?q7j*xQy5cF599yB1z?HpRmuNQC@Wuk!^KK+jCfGT!inR}=S)n>?Nzzq^bG{B8j z-$M{Es8624&cIJFf+gj}_Ks644Wd{99RlpRf#T*6u$>V0)^rs*9zU2d>B43+Ac5tp zvBUA?lQ+?@&2;)6dAf&p*jMN#iBu*Xxla88sMS+nw zHQgAMwQ-1Vh7aCN14RGCA_vSIj+9l~po_o_r#8>m47>|TV`?R+Kk$Y)3}pS(0;lwy z9}O>jRy6e1U0w@#fLR3Uj+t)!eXf7zi1hTGn&~uJ9qL{REZN}7iy!metv)lzj$@ZL z>yYjM=kAr+4%EM2g$50f8MH&hfdu?zDlr(hx7z1lZWc6^EJ>M>X^`AV-)9z}do*4x zTHV7s?MHAKLXd3{Us4r+GkJoB9H||~Xw{4Pz@iw&|2?~|O~1yYHKV+yplaoyQd+Mf z-QNC*r>t_8^m9=uc1QCo6+`1o#<|H_Wixe<{~=k|I}qbwoez) z;hzhj`z>>gEIn04#rNC_hEOsdo^cKdaj;YT{9lp=?s? zZ|T#O-Am0aS>2Obl&7(LE@OdI8&RAzPb(j6o?0_a7vQX-Nf*4}JkA_>3;g13uRIIN zk7$%VHZQml(*!VPpX{zY;~|Q>=;TNQw)5HFnOAr5T&xx$A9YW^IWeoA*=sSVyxy4D zR(>{+JbQ0C>jy7vYs;F3HY&olS5?TD3Kq`Du91wJ%c&X9o6y6^ERxEuH)K7MN2Npc$RKoKa3o&8G&k4dr9Y z-mISvEgyx#bv25$Dp?qVCp@AZNrE;rutgm6vh51YSuWO_#h1-_>rO?nq0bsRYL69r z2gOb_AAp2aZUtkWX=d)ZNs4KV_S%rB(9chMjf$f(1@rY9+cS5O)Ar4BK1n3qADAn2 zTn;*fhf&`1Gv`mW=C#{3Tb3(z>!8usi<#984&LfSf*H#oE8o=c5ryl0JSoXsD_$Bm~AG++R$(-e% z?E&+$I!%l1WA}=b5Wi1?^M^x-pe=!^)4Gs`;A&_fXS`JzDmK699&q1M0*)DU7|Q*x zrudifH-8%*>HOk_l1X`>4-(+yQBJ56rjQWKfeh?DAz-8T(M9dfc)e-aK=8iz=HJ6d z`3C4+Mij>5Tz3fK-ZX~$M9DrY-X#tD{xxjjA#&Z~9-%YS_@X}9fM+@|%5*IEx2u!8 zQ!L8WJo{W9;PDzUI%CPw@Mrq9$m16mHm7+6Yek;V(kz2zj@heu7aeY?zJT`zLyA6H2dk?Olki<| zSoAv3vtkd;o~n>7K2s|ds0rV@mbs+zNUB~hmrB8scAMPgxutyohS)vr8iEeE@?cud zPqYPmComEugao;o*G9$>tUZ*OlUL z?#r821Lm$uNyzhDc30|t?Wzwm@9mGxkoVQ^Vr>`sxbFKsX*W8|_ODxjj~u4}lH-@{ zUg5!8WLuZPDj3r6mgnED%N{l%FVB!Q{*w@!j>DCAmlr4dvwuNa4x+;U<)vr)?~o|l zKOs>+aAqc8X5Tz9pe2&71%(G-{$GS}RawWiA4r||v~P{ZYS>k5@e=X2qi+!_y<0+K zc&$)adKlhrl6|9BHQSu5pn-ls%*5`HoxmKKi`%W%_A4 zWj%TtKZQ#gPmViiBMg_cK)A&CDA6r?`>qKvk;%vCuS`H>Zx{y)Lmi;h3M?V%>lKKBCWhy3!19i&fy8++qyq zA5Zw4pyw^=f$uqGP{l+ICTR6ijx-lLq2S62K**ZI!ih$J>2b4Tqhjjw%LH{=!dcH1 zLUp;Ih#GI?vl9Vh$(4=G0T0o}b@M50`_30lWObh1UG5C5RQX6$m37emUx=kITo)fc z3BE2kQ*{|`k%+7f@!B|Y(^z6V3fHGe$~CDKjpd6TDm9C*H;lN)tE~(X03_2GPXze0 z#$*+GwftI2unRJ86w8`%wreh{`f>-IaRXszo>6dmXH@ z%cBDGhwRGiItPt4{dr!$0=PvaH%$RJMKi6-RgCQ8k9Ce=S3``cPr+Z_ea6 z(?DBSU2)1H9kD7Pw9YzT_hn`$wcj8p)8JEJS|&zOZs8@DGwg$g2AD6R`erKOYA&Er zF~|$emfQSsNeULQtWu>|RH6s(N$QJJtU(cBFy2DOTpy^+U^zae_j#vO?&0+X>-+kx zxQriK+SA?EY1WAdf{j9=mw)=M3k)t@?S3oe4kpkGxW`3aq>)R(E!% zWOwuu&B*A^cgH6hGumUc-u>$T&b!M<9AenR|9wUXJWGhYh#WrVvV@N`1~!=6VB`_nEx7jx#|`qMt)TxfDbev>8#i+e%i69mTt5 z=Zb$^=Xd{e!z5oxE>*ZMv5`l&Kicq4gf!gKBIbKrWl7e{VBa&m#OJqMdc%W)R`aQM zd*MbSV}<>3GsRPcVZ9dr&jPz_lbzC3?l!OHS9tf>#qWOVOlfDge*RT1>4wC6Mt4ScR1!Ggk1|1x!kZzElA32kZ0Lo4|C^Slt?Kp* z2yx5BVwKnRWt{i)t1h%X=;8c)s4l{*iTkD=Y^iUQ%lYLHr(8IVa`|m{sHdQ$yKvD z1hn`(AA(6atVQMr7q^?loTff?)Vl1IN|kMwwl zzog`7#LlwmadA3Xr;Vwf+VXt!N5$_S*_zkr*mz(*%|$zU>if>=me=$?AN}}k!uM3? z-IUy_Gr`#$va4Et4Ahi6t_aYoihZ!!(Il+<6rtTh%Ax%}amY&R)cx`IAH}Xxr7ZFH z+Q|Y!Ij9vSF1lZ~tctFOBuh8rb;e;^54C`+lrh-=^MQx#Ugcm-{6fq%Ph*+ubqQ z^4{vt@4;o^TKaHy_n+fWL~eb;`~dH$dH&qz&j<2WW9IP?QxF({d{-(-BF ziZ@+L0B_=X7yIqrt?HoCBPM6BKPnn-{)3OpeOkFK=11U*tVh$Qq%?j>jE|B%Ax9V4U`=s_Zsl>=AUn~mf|90y0|cPsdfXuY42AF5RB1{rmB!%@L13*imIX1XHXnxfQnAufWK5j$HOBwJ?>V{m}|B5;=S(8l`9J*!gAE{FR`ld z5#lzZX^w42e()CD{g_Ma@wC5c3@L;TRd$RcJS299 zqx55ledyhX1<@Og8VK@sm4WN45||CpB7{tsQ7 zUyBLcvZF?MPrt1it$u6Ru}|sb$wckI?Bw>BFH+0f$DZ!3?bdI5;G(WaYBxM=ES^)g z<*?dxv65KN+0xg}Pef+K8gSazo7bLpwM~y(W-x4V)t=j0Q1GNrGlz8}&!h3qY<2?$ zjXC~nLp5%<)ytX_$`Z63oCn+Q2t5w&dlaU8_?=s+BUR<2${W2y>y9P{4)x3#?oHq~ z=UogR5h?oBka9}KD0K&wKO*_mHmT3ymkp!KmyE0xaX5Tcc)tgyw2JK-?ysrIdLGYJ zUajiC@O{=UB?0Ro^|EY6)kFQ@QG#f_q11b+;B}AB%JbN&V3u1QyDT(4kzdn?Z$36L zS2ZDJ*Y&t*f@(RvtB|X{aD#I)+t%JrgRK>YYgX#+yO`f`KCg4+mte`L-nDz(f_*pt zSVH+q?m6-b4n}d-uO6&%4iuqyUEdM!a`tRj^)tft%-%I8zfrb7jLydvN(-!?^*=E% zI5dD?-(vr|zvtKCc3;thL&|ZfgP~V=qdU_*uhga6oN~T*m|DIpUQNK`L_uO<;0>EA zt8^>dlG(>=-x!+jbrwpDI4e1HGg)WKD0C!;xC3)8GZPI-2^KG}DN zvq&Qq`*nIx$9sb{s?<@PZKG`|X>E(+J9om32c~|1{dUM9;(B7=#pY%)Oq{Gq2M)LI zcX~@}w-m2z`-u-b%G}=v5qyFVlztNQlW>4HYzceiVd7+cRq%joz$pi#`}WEcmh0Yb z=q>)ye$y??v~)=%5KwBU&*Cfog$?B>DS~p=^vkH&@WFjck!xz`}1r^+t=QX zE%A!#-!?pK+rMo3#e=Uya0*O4a%T2gVrRAQ_lUP`CABq@6q~ZK)#9b#mcQ}2yp6Bc z^cr*ZRmWp@|2n2>x-Luo&} zD>R#Ls_XZC(p?uL)Q6e`O85=x^`h6C z8MqHQSRA?SQj&Z}+w_O?`V`D@OSNnswu;(NNn0L@PL;dvIW-Ye|I+H1x}23VJYVzW zBfgt79=4ejUHKxo?DR8{hS2V1zN^>lPyKFiAaZQX^_9HPOLZg8Wm9`hs6Li19-{Jf z%KAP*5eIl4QySidZPOSHFAOQ>N_(Jl?9sZHNd(0{%o+|?mC~o0HlKZ0%WhuvLDt;& z^Py0}*~j4i_fc&N!uI-(LfP#*Ci(J}x;re~<$u^x3Z$QyZLp0NiK7JPD>^-l@ys36 zY}0>fud5K0?E0>0?L|Pur|eW*;I>wsWsfy)`D$&rmt=S^V&(0VoVV4~4N{)FMene8 zT&vIl@1o6J@Yy#-H3y(!wD0ozdpF9DAICpl zz1LiNy_a%xu~wb$nal^llEF38nrgQ1V_YuXZSg4Es(VTIw2SC!IU}dbsl(Rxd2dBm zD&?5_2CK8w|u_XUO2#Qp99@iqsB&?XKR(o`tjdfRk$Z9 z^=sX`E<11kcCG#O82YKJnwjAP$T$yF?(XnVgK*W=H zo_9d+g8SV9mF^>E51wgPX%qk&c1;{AJE-4ENmoolQq z6TV~NUKOvg?bjbZtrd?->@pg2Jbt@uKlS0rGyJTp-{I?*sBeFc4V@ZG{&8Nrn0hh7 zX82Ed)X&~OmU9WK=05#NI_#S*5ppSgc8BGOndYjf@wc^srmsK7tOyf-r(q$h2yQi7 zI~%HLGB`kHYhK#wccn@^Li@(p*%NPk$2K<;UdMcQtl3ssdxj&m{=(qLc+U35(5p53 zo)NzuH2NA+Y$3JYhuZkNZ|Q9CK!CEw+j{#$tJn2V?*{0N2lQ;|t6%@zeTnlXv5_Xt z7R}apQ_-!Kxvzdq+w^Ld@tUr`Ft*kCz*sW-p}_8w7k!d`y5+X+7ZPbVTveSqXPZQF z4ifLJPcsQOb$p?n@_~B$g1RJ+bjLn+>$~zFULUuxD5+-qWliDkqTNq z3E$gRmvAX*dfM=0!;zDx{-_5jE^jqAz}TgLymFlRLA23DwMQ4?E|+ zJIx98V=V$Fy)*+#MzL<`jh6@QAKg>6+qr!paV@4kX=5H?xv$K zVT_GQB9CRi9LufIxN{-o*ZDol+o+rzntbNr9GLdZr}o9X5?xWQ+%92XYV7*@T;&!m zN;`T+m23S`V&EtJ#OvAZO0h~GHScbHvd^ks&rRrtjb)sIl*>_%>njGT*;gE7SEyaX zAs(F2b0=`{C?&W~^X#(-i;ZP($3}gzQo$|{BPXPa@|NE@QlccLJ>wQ1{0r*c=`|*y zVSTc^Ai`m(XISNr(aDGmcZ1=}I{Z6_@0@ek^S({R<5t|VU-C*Hm6I!1NIgAk;-77x zu-u!MB$QR7(8r_EJ@hD2v7&8E6>E|ur24<(=kBk%ydvQ2czL9vi{$f)%AIpI)^okbB39Lm_aunO@8R+r z-K699_)Vqu+|SVl?aM7c8cybkcLa1@R1G=VVJWQ6{lbK*w|>b}1&4!Es_svAI@asD zoS&MS8d)MmIwzoPzKUnybW7>l+M(HwfNf>vW|PYkO)AJ=mmfLfr21~x z`26Ist3S8QW^d`|`D2)zQ}H2A-{L~Q4PGpSqjmolhcqp_{y+6eh5<46)sH=k-@SYK z^DXM)@vDE->4`Dne_v@vpkHamfx&=B5{C`vpPHcj*Og|r4i?}|I|*;VHS6zW9E$EE z_pI~nUq$4IyCD~I)YrJE{X$L!*rsVUPMAy3`lQEo;m%{q3AMmkli}+htba$m+@DNU z*#}CHMqRQUkso*c3HdqEnd`r|HN$?=W}zEg{~emW+|(EcFWip%&Xz zvHbE@_@!xw+GP#D2Cb$O(xI-;lAfPzS-tz-+OTXkFE$b5J-H1&Tt$=WG6#R-@wKt% z2+z#5KHS9JjlC-v8c*Fa+wkB~^yC)LbWKd(SlXFY=SBB^93%;b@fzZX-)8q3CGd?# zs)>zhY&|V}N%NEDQr>GJB9^=vVV4D$z3p8aGb+dv?zQ6bR@qZIys|t4+AC_MT6-if zZ%vjs_Z#_>l`>QFws$1wKIy#EfyJ-ZyKf9+zA}&Cfn}@BM@O zlOguJQDW@p9=?&2UF+H@DVDkR3YYdwlR&|{n(Jw9wJlkDeMh_W#n(St**%%RsJu(fwa6HV%K}jjfFF6+gY@^UH6ePr(k|KHEOIF5lDE zsd<-Hnm=?>8Q=aW_gKAWUDw+NCC)i-zaJakzDnN6bHUp4k+<1M=3L-!>d*WwMItgD zp9S5t(&zZ!=&4*>)1lD1v~Yt^go>}0<{z^&(6-G%FJ4d0SoLkYutD;dbSDR)(PYBG zSt!SeN{E$du&R0vl_HLGDNYv z$0P;ucYE zuua>>r^80>SNe#@0+&RVy%E1{E4|{jk?fOV&zDhV>E^|nxtiS+k&Vx?Uqn)Uel-@~ z_V$EY6J_h+# zO=4Sd)eh5Dhf502O~pkC-ILDzkS|01ag*@f_rQ>+mC$;>@*2;A$z7aRukoL*;a+w= zGimvz0N(xIGkc?qO8C^d9w?T-J^4U-*j`TYG*qayPo7%3+n}B!^PBtMvZ50z+Lxz;=aww$UK?hmwc}9c zRW2Ze9ChL(W~xt3Ed4kMHqXa#?^qf7o79 z^5jf{&=d8*<$JEI>nX8ptrKZ}N*&v(I&y`5+;rtt36rt|UC;xa4}zo0)go!vt40D0 z;#3By;mb6HvNVh8Z|C>OzA`P?d3arQ(X-lToGxBAdS@CP4~GW?`3d;^2`f}_caR}v zt&6`hpim^_yiv*D`ojUGcO{<2BZc=XB{DW~PaZk-WTWnp3>EE$i%xb*xi&@aVNdH8 zkLmOBPQ7-aW~z=hom%{`a)jlE78jp4Asr7PL;c-zDlf-Vh!VA7%8Xq4BCG`$)jj zFMHiHUM=%B)vG?A;SxMx_0fZKqqvpeGmg8h{PpZxvK37IE|$40Kg@mo`F1%|YSXx! znMI%Xq$kzuu&a9_fnU*8MQZ4peYM8-KLY-HcO2IXa_`YdQO>gAyslj2^{rg7z#^O{ zso$p8X!7mM%Uu`ypJtp1)99%y$tsY$Q=_M1I^uZYw^z25%S+xmrw1c4^pbLVMS%Zgo}53kl%Oh}W}c zT;+mvi*b@$$}$^#Zd!lz6Lua*Xpk(WT0D+ihPytTTBzhGZ0vIU7Dw~-YgkE+l|#Z?c+Xll zylv8c{@pcU=J^BaqAo+egA9-Vzt3L~=;tp$#e;xjdEy57NfMHy5^?m+N9I>2R#-U& z9WfA$|9ZATvF4F3bTN*H9An#mzSnkQUH?IR)k_gJ_alVmLyPzOQs+t+Cx`reSe4=S z>Rb05`DAO`l!v4dW1ix z_Z1ngsv|ch1$MNT@m~sDySvjfa=*iU;|~qzbA@vU79DG@SQ;g_S5zs=>}w}+zt*tc zoxFh)0h=s7ajhJ;RSz)b!Pw#hR`f5vd%J%2YR-A;mgSEx_D6T}sM!u{x;{^9?0ec8 zg@3YW@Z+LmYkS*6b9YIMFX;(wJiYYkqSfR?+uG{XF9VC#oF2?RyMA_q)*a6;m#ZJ8 zxI5&{_2ir!9nU?2sn;D9w@F;8ooWc)f!q4c^icJ)P3Vz&CZ8po4kkXrea-Y z;=Wp#H{FWjxwi88nKjgIr44^h+)I5pX-}!WveL5B_WAC^9#_`fOZ`<-(@W{p#F*X~ zZ&MPQk-lgN9lo<6Nx`r2`=;#k#0w6q*1R9u0^<$&D=w#`rizYS<1;km^{ZMG__nJ3 zv&}H9nm@p;BV}baU>vtMcyg2V_JZtUzHJIdJ75H@RoY3i#Q>D5JYlMRA9ADa8 zvfV!A z`{O(k&6LMcb1Ki=ImAX~bW~%-<*(#TZhp0QsdQg(*XQ1o=J%exT0B-dsNJD-r*F8Y z?ZNQzKa2Iagk5R&0X}W~f7L{3ClZ|Dyz-@@Y#0p8Wdf~&n9mMBl3Wd!ALjxb-x-zg;Q($@b0Hn=krpF>&KN%~$j_@^vw8?EIf_ zQSyvCU*kw>o{~n+`}^G=*5I@f6IYDC{VLnkGy`*ee&cXG{#|rw(3O#;KRWj>I<&g) z_^S4j*TBg{p1b@5@4QFqOTc4WYCw(;;nO=EcdL%i*Y1CqJjEV=f4Ry1lcW4=c1k_3 zIpkjZc*dmv)rsCK;)#V}9YrvpPG<3jRXL0VA_Ozu36b3)9b^YmS-8r0QKsdsOy|aBddAqjEyf_5lA2$CjSgCpjw&Tz^g9*+F;<>l`1MX{m-*yKpC{O7+wk)$C1=3O};5?ydC)56F)ujse1G>(ZFTRrdICQ^O zJpTSD>zBW<@mQnbPnFcUuK0pTqhETbFGQzV2IpEeEmeE!`F!}f(UFbmN~8=K_g%$G z>4&H)1_w*`18Ud8OUQ8#p!G$zPUoPf=mI zR(@?JF?{QlzMKynk1C%%IQ`nQSkgAuWXM6}_~gX*jA^!llKN_~}7fpO;?rwCVh$l`~8d^Xkpv@|lZ-|2l~+tTIdE@3 ziJaE0$m}^Req-iLg3tz~-{!+R!W?%jJsW%X;>k>|=nii3S~(kX_b0BKrrV@PrQHtJs=x8syF^g+LxKs)3Kki-V11Tjk4-MMeGQ)K`s#6s=ln%o-o| zKh!q;vUAgkW~mHp>(gn23|gwLb|{}wxQPAF@|fbEV+F{L7NAMUm~ zOsH9(zVAUpc6XW941C2IXTOpww)@zJLVag$FSlK0ZD2cGlBA)M8+cCt3w2U|&-CqW zh02AGs*1HclYfnx9sX`B=c;|%L?mz~F2LHZ;<5O|g(vwN8XA7beie-hFqv^WCy}r( z<)>Sb)rD1MO?z_o5ZQK|kfgXgea_~5c>U=OKIiP4Wq)1$c4cHPQ7bik^mhm8LR7ig zLuU^2EACu#hga5D$FF{w-Wrv--jM1laX@eAg_PW*R7)XFlM{Pop3839Q|ARVmIQ*32zyurT!PvIjfI4uZRRx6T^y-#lBEQB!+T$Zn*hk}A4e z_tbTvT(^Uqt)xl5jdBBH{(FVO3)<`tiReZTe6S7QIQt^tMcIVrkS;tp(K9zsIU0Me3GYkyqRd2h?_hs7_ z$)~MbsdYh5Jbx^DoJDvlnfN5O?zu0U4YlBbu$Zg%5szIB=f7T1BVQ`=bq~Nl8lN5) zj4m2noT-Eh%DQ3dv+lypOu}WSrCBY`<*_z%@A*4^tP$OjQ|);16d^t>;FoCI?EAAb z!kol{=MS%H8S$&1Gagh^yx&xGK`<9 z5-Tb?r1oKH$jy*kUA1<%-S4sQtkE(;nnaFyYxjlVaw zv=i!%zWg@c)?+yGbE+p>siBbXxTTxBh$^(p3U#O~T$E$YaZ$y*6`KA)d`xFlkC zsRnsS^porLJ5jZrpPSwtbefKMPl!yuzq&rk!SCIdEtj7R&2F*%to1u!(_R_*g{wLz7S2e5vsr?|Gc0MBIKl z_#AUv8rIok@{U8r^4L*Zh#Jc$;WIeuCr-6|f3GsMPwPVT_*ng;^GD5v8b-F9a9gd+ zIcR95{UGnqnq^Htr#psJk1ka;5^6hK`CJK`{&hoH?x(nzU0!Kh@mld$zXy}FWWSlG zD=D5KiHymR+vUlLEfcXW8$(BvC%7o)#sU=;M&Db#Zsg(1rq$~fdmE)tEjyo<>^dN9 z{=Umnt~YR_!LnzNZiV;l5e4np^j&(2oA(P{y&>^-)xn!?9#Pijy{AkR@=aTddjo3g zY=tX?-^#D!NXQR+S@tBvlB-Rm>pTCFgpf+FS=R%}E8bM^D0GcHVBT}req()omjLsOxfb}v3H#|1#qlN zUhGE~MZW3_4IyWQFq}A^kq)fk@>?sf4i>hTY6eNJv0QTB$2%wwzddq;`M}A8&pSMC zZ7y(ImAM-3#*Ng!6V(&GvLx_c#cpMr-atNYQTLBdmlIA}Rc$YLRP8P69-B^m6sHr^ zV*NWC+Hi^Eu6*WI>A2rrear6FbZxFY+5zQAlaFfc^p^4ZxcZg*qLC}6JJ**bHhSbF ztXw7=b=rEf>SF#OH@=Uq{n@!9sdsKz+2o%;mz$`X$GgW8uX_FZaLU%Sb*+MT>$cxA zF|<5z?39Ur>a^V(r)K_1E|HtT-!3RoLjxR}^!W@qRHUA196c1DDvm$<9N&xj4>6+7=Z-yI3fWOg`;S(3A*xH|IE1{`hu_7pun8qqj#yWacO zDn7UuyvV$~DU~8exbDkM&0zZ}-?e;y$9LH!H+`4b;HoOE3nmn%bPktE9g54sUx~Zcw^&+C!D%L ziV@3o)DCpnwM+v$psnZ2*#0EXaw?yG@D#(#Rn#+ef^8b}OU-#1x3^6H=^Lv$(#cJBNd!)NAj%$8V*bD1TM_=D_FQnPmPy!SBquG9okii@p{7x$`79 z-+;qdx_6JE3EyUH!l2KpV^Ob+vsRxQ6d4ig8oKE5fx5E^ht=s1eCV)FG~tW@&-+t0 zZvwl@9z>QUea@2E9yN3>X6F&v^0PNpE}mU2*_rR!aO7uc_c1Gt&5fKdgAcFJK6^(B zdzNj3PO*_Nmh{u!Z*TG%d5ydY1F_bj$Ly|WB(Om{NEb1gN@8SHjb)lcS`NM)BR4D+ zYqmV}RS)l4O?~p}*hcrQS?e`Ohb#T?B1$VBRNHmFs1b|fsWdX6q-gBEYncC~?8CN= z&rdr)^8ZD3Qtv#w`lI8yHHK!vI~(_E$zS~4KG$pb;=}ar@9Dn1W)T7=(;EY>8fPAz zv)ovnijV90rvEsmIZILILYn{B+2EVP<@Pqb)zbyBlnj&CCIUm13Bi)>F_N3L4?KX! zRbNGxrPJ~SHCp%*@qmLc_wreLO@W?S>u`SMUw1MyB1@1It@L zQfx#5Y>0v6*hyFn9E^d)*oY)})B=)QOn~#vAQ4{r)jqV2U>Gud)C&@X-(nyE(1QY- znL*+L^s%>lL?bhiXmSI)TSDt#3oNvf4`e3Dpb zr2H45NdnXk5TcQgfe>D8!Fp(usLmrqgei7R>k%PAFTiW8Fz_!DU?jLO?;Gt`z)5RX zPLjy58yS)Zt-%@q6Bm=C_|;k++8{>4Gqalbk23ILN5C0NXGj1M zO(258dAq_mn|L!TE33_#Usp5|l%Z0-Wo0|#d!uX+8T z38nE7n7NE65MYO0kk}G3O)ub47f2ekzNrP_WIzcXSqWX#a0^5Y`66u&%eVn)XN>Kt z4ejBhCnfX3fF;0LZjjnMY2aQrfP>XWXdN4ori^0n!JQBf%?+IzawK|X%8@ObGrhS8+&?Z=a zGqfI&F(5r+Y~Zc8-n*dH@GitU@OeQi;7;(fB14AgV_^{t{)#_^&LIZhD0rCD8jz20d-S1oGGt~AArffTfkqId6HOd+{2?jW)(=_^&*(!N*vJ%EdMiS1 z3TzVq$#4LROw$oTe$azXP=<*IPvNF*h13zoAPj=H20*-=bb*Wy1g06NI4{zPNwvT? z0!%cZcLGAO3jP@gbQ}wxFo0A9D9lEdhyz18!L~s_Sh296A#{|D0@M-s3l3yV*f0Q? zlBYq?O5`gR<}iZPR#TW|A5Z#c3PBS*>>bR!oRt7Zr_KCwU{^Abtg}Xt3LAwcbF`T- z@Y5)0bx{Z;A;VDhd6x$UVDenR^5S3%V~C7&-e(N>c{2pK9TI%qm_Fc?F(d--3IwAO`v8)3bT%55!=QPs=qTaIEPV#--JPOO#MT)K}~EF60E!( zOwt|=t>mQ95;lu~q!$01=q|!mgoa!IT{`>EML^2)Ev}hDU3}mH!hZ$?58hmOHWJdF zZ$U$LdI#jhP6jf`;08G5{5p!6wt(vx`dS#Y#Sq}jW{?`_L}wu)7ECT3G$+B^qahhK ztQtJJ7ZT;e(0`rpPK2G!A$3}J*Ck8E;aAa+AmBR~w#OXWDh-BZ!kIubrrO%zHbD@o zK%f~sZ2<|=qYXri8FvZJ4^D=IEFgU_I8F5srepB1Mm#VzMzR06K5yW`uM1QUi-nae zfu}~gOK;;8hb4E@qKyi0I@$-bIMNN0CAtiP)fX}mr1fPqCR2OJ5 zb^&XExu^9!Xb0gz&%Y`L{wt#b71K_D1mx*gEHYxgzrGHuhF!oW5Ug#nN7w}VCITnF zmeGJ7Fz#>-1vfW>(2y~|rBArOhdfx}IRi)-?z4wPXdS1(KY#^T63k5n;TZT2UhE1; zpyvP;f(8V5&;b$wOk_;W&|_woFw_D|4_wbD(gRl-ZQ`Aw^`OmPqkzT3yOSUc!$k_htx3>YHlY4oE|4T> zN9PZ$xCi2c2U8$^c-tOG1{krRJs?EF(Zego>Tz(D3nDzA4=~)~a7r??ffHPC0Ny1U z;s?Ha;enUcb%k!zn((;+LfEB1cw{msH%O8VPl4kB5D*OX7*3g&g?uvz5p=|a&PO%K zH+Uoz!qSGv!@nb-EwGb2^nn)T0FwYqW&lH^wHH`&|5RX<2{4}lBq#;?EijV|vNG_; z!*_Q<>jV}AGejgJc7g{}K~O?OqF`ZI)D@DrZ07;7FGgl__5`z;q(SloI)3wGsbE#4 zEg~%Rq)mJRBcc^lbv?qu9WdmDp$~`_&Za>dc@}nsrMw`q)r1AwhH&z)0R@K?x9(*j z51#IC7+c<9!Lu?zz2 zxw}koM|@T`|lq z0^EA)l*zn8AQV7kcV+7^?LzjRoKF9>RPm39LV!Eq^+7iv}!S)#U$ewcvA2z z`(H^V!7TyME+(w$7K#LBV@g!8Y6Mzr!esSnL$V@6q6sy!WI7KRyeDAjavJOh@xmPe z&~Y|U#qbZLAu6*Q65wUv$6y8tt`3CckTwqjAu&9GCKF6k(*Uef(^vR+1j!&sOk+W? zj;FZ?dRqAxK?YBdz)jkmc?uX42MjX{UMe^hX={(rDB$`c0=@of5XiS{z;x@;h$2K= zfGBgg$I$9|8sTXAAxZ{H>f`S15$f&X6aIG!kh~$nj|E8#riG>KtG9Fgz^Q_l15 zuTn9BTmYwYcpd?|-(paZ4BrTb*06zj5#bYMG-e$bN8>ASoys9l0MfWP1QO$?TNGxb z;L%Kw4FcPQm@Clya|o2G460E7d@})2lE3DJj@g0{&g=foClTArutoE@lm1CG1)e4V z19&bR%3%Yk9zwP?e`&xV8K~b3+PZ5fsl%(CkqyeCW;^ zCiClHRShBnU`62XSlsZB5Riz7MM1}q0k1_tV$uwgH$Nb&A`oecV96l&{35_z;?g>S z0Un`#Ko2|u)&I)rf*6~C=-*$S(okd8F}P(1Bq+kjj_D&Cy9WD&d-#JW22PI#UIK*N z^ZcWm#(6YpcASZ9L{J+3Cm-vvYQzPy&G^PL2?i#|K&taGI~8=IiN$k|u@z zYS8&21!BqmF^+B+=1ETzXXZI*s>8d0#2`ZM*$v6NQWgg2h&lZ?>_U#x?3rCY3DJ>%(=4!;^in4CG%%uXD_O8tA;7zRK!&n79$Ljt0nwmzJS0XX z(r}z7HoY*(G!zZ+|G}83A|37?yfZ4)H8|KKbY5*JjC77szF3f1Gm5W(`oc(bkNmd4 zQ;}#2N@ZODNkuv`%riWA*S|TKX@p0d&tDob*I2<6tj3WB_`erMRRMl0I5g;g&xk|T z_-{tK?PtgoT|JmdiRjD!J);T*F+saLLOrB)T|MC81ZX)sg^`&F{?{Vl7A6a^8MIiC zr!l^tV!vf4Ng;hO3Egn&15yxn}TOs3UmI6;vhJ|HplaD)jPGEK918LMS52~?j`AUS8sf_)A=Q(Y7cL`Rb$ z5cE1W^RTF(kcEaI{ap!?JC-@Hh#~l^KaALEehyZ5NUNWsmXBDDc^?GUkqWYD@H`of zH@X1r1>n{igI=lz6LHTM z87XvSWEmXJ&4fgdtQTRLBV%dvW3ak0+J43V2U(Ed*+&FOTey4sM}&p_6*G{EA{I;t z5RBFTf~vV;7POjw{uL_QT?0J8`%^Gr12H-aS|`j11WkiI0(IQOeS!iVFeD7+@}(@W zV<(LTJG~aFx~dl8(s;7!4tWJ_Z6fX;i~v8&hE@?s{~$yhy%kA~2}WeVFibEKthf&n zr;?dqBoe(HnP~q{okVHBo0$c#BKYD_3o7${@Zm`0>9M#QM$H8tVZeGoq{ zhG}r{bPLRz14*z^@RyZxpsA$_KtYg?bf7eZ{Kerx0U3xH@?nBufu!mdL8e+j69 zaE%22jKurDuLD`4>_{7AR~nXmR_`q1uG2Mp;) zo6$891d8*5NdOwkDqP^gLYZTb02NpaR&Ej0h{$;-midWDrp*E)p$sPhpozwljB-5$ zH43sx0GtPt=z!ff^nl>vEYyJXGl2_{!OSn5Y26qcvVF|b4#!Mfn(*QX7(BR-g0&&q zViPbdz6ZD-0$>7)S{R^_sPV{1d4L5OFSNZOAiJ8Z4Y6R!Xc(IPSS-ri5U^OX8az@4 zt)n8T*FpraXa`FG&H>$yh@2r}=}SU_NER3wrThdea@hycj44te;M8y^k;MH6t3mXD zni%&Vi^Tnhh~x0c9{fK9kw}4n1LDmLq{GlyH9BIAmH&7bVCBebTDZUo`~#z zvP?`w%Li~lCjmWj##F)11X)bPrPG$Qz@#&5KZ%GO^g%xV942^(5seH9 z?SV;TWP_NcF9ogBz$v2Ik*TyQ$HLBJ+M{1AFf4Kygaw8}%Qh_2 ze=8;v(fkAs3njB;GAckOkSS=^0Z~AS9Yt+{El22&BTz7Cw+P@0%S3$@CsNKq_DdHK_UqC7O)f0AM~UhGiPZ?WJ&Rmc4%1u zNgB$Q1K7gs9GL^SbylhZ7#Zabi5LvZa1t?CRQL}}B+4rhG3cb5h#{ct2N44pK&Onu zU%nGDBveoUV9bFcLLsmc%73(@pxa^LmXpB10`tWxCPXawuyO`OXy|qz*g&wMXTpR(Fu>!}3GF3zzm4r%Ji8ypNNyIT_lk;T7(H>M; zh#+1KG;0l0b8B&lfKnWKJTfiPTWAnKN{6B`i2l&)p`Z-{ zsEMH_Az@G+8aNVWr^qk}z@efD`5$2&5x5+5JD>}!)FOdM9|Z$83k9RnHhvaL5D6R> zMl}RSC0Jn~ghNpa$Pa1~GT328^~KVqWPw2-|Az?#850T_aG)4HF(?wCCILPg1zT95 zp&JA;xWfF+tSj{u=mpCe`!65;;Lumm>s!*%LBTu0tIQ$DXNFc65 zX#pO;Ao&IDaiByoul7uu0XBzFE5;Mi1_!)c2#p{a6^(+&TT!VcfU(4Sh-QF22GmMG zxeP@a5bU8y2x@YyE|^3BnFK3kKnWFvGy#u6ZQ=o!jy6JszvTKGRs$NKsRe3x=!yS> zS_JR}6a&G(n|LIUI-xt$o+V$%V-O9ZWC0|mC`ktiA4(QLj>V$d7B~_}O;BV783Ic~ z&4@Z=T}wn^Ppjj-UnvDv5@njV}-rbUPxm@*(phE1^CAzK}p5@PT_%L}_G6?Hf zQ3vN#P&^=m^SG>}0NeMdzz4uk`36~y#Tf!70Bq3S5Rqb527;R20tV7nf?-rNn1qQ8 z_9@VPfy-qP95Mz^rm`}I4C+K^7!k#Ma5w>##*slviJk-<@F0m8V~&5`73|iaic!D} zpe!mGl;l_~FLEjZ#ba>Pid8K@Ldmk_0=z45%*fNR$mg#<0vPH@3rN&a)h#k8529oS zgmWkak#o|lbKpQlmi34X8HYg&95~;B5;z<>;6c(>)QZ6gAXbAx29e-AGJm}*8I({_ zyhBnV6xQg?7BVQ)p#%;G&VsY{1?RcuCuTUAB{=ZpE_fa~DHwrmOsI(|sBH;Q!9pcE zVDBBRreLR&K?NpT0FK|Ggpr6x)g!=L8Bp~IGKjcPtOM0J*3c1%EW-!Pt36^1fTu#O z4wwRzT7lvNidsm@&Po|1OGd%4XsUwjk$|!VAPYfv2J}Y_IA2zsUkO+U2&>S@pmPv1 zh%)A>_0JZ7(gSK@#C5Sw44eRpTEG^g5Cl8Y^OMX6mt^#ws3H!C7FuY4g+&htFKz{o zynv(UH$WgwCZUo)uv3Dn-2xC=3P9Oxff6GA7^G#Wr2?CdA_+Jsg(x)=Nd5C16mXD% zl}^CFqv!-w1|?MhKQs);Bx*cRhx-RZ<_9~Mz{9XM1Y5lTHRR`i2m%<2k-)H_@^K0{ zn#L+YfLN$)Gm07&7&6o(=#xrdgAQeiz|(v4k-%RHf^hafCZ;{-$FdL#o$WHrtHXfp zP*!BX^&uTVOfXm!TR}A$Rh$Aal!g0$g`K^QbVm_}^F=}?hQNs}Apzc*otfQ{kO2vh zh!9Q@f$i`6LM#~vM9fVf?G11T+yg%n0U|It68FJVede6*exDeWU{!gjX z1I23{Pn6W@)w_};kenur-k$X7m|RJ{7H1AlIm27)MN_wt*9j4|IxIRNk5f9%{g~hm z(8S~`Y1K!bz$7H1A(H#riCba=dAV4t`7Dud>JxlgZO}ob;L7SvyPl5H_JB!K#}JeS zMP`SbJs4@TngP#Y?GkgIgaGN|DdI?5*ONiYhFk!^d_PXs0Ip=beyHPeraU9be}4Ve zUr62E@k(9KuZO>Lbx~M7QmcuZMFM^(Z3}xw2cArMygZVD z*4m@ukOX3H-aiVlQ_b5CEll_%NfwkK}HV~7d0>(Z`b))6_5~$ z$ofp~NHQ09y{JVxz83RLsfd1iTIOK?U8>;?74HZkdy+Zi-gbfor#I~x--{-m9@xhJ zrz@TW?QTaay6$L2=u?&)m|WU1PoG%wa;C^CS4ccehigaYx$fvZR}$OBI$k|d6^GF> z?*h>I^5CB>IpGC&J&UfC3|~{rbm$;b%(ED*rpD*$+%_3NXDX z1v7VfsNA|z;2oYX?l8ugYjYl+Yv&b zX(wk%Vt%V?se)N#;1;?`W{|x(t*{nIBu)#w@CfIbuu{Zt@p=i5T)hQ0NK-PhL~2|> zA~h}`9d7bUv=Pp`7L5Wl->nzkV`_v&Urc220mD+{ zz)~AFSM#$wTsWGTIzjP)oKqbNOdkK1=uq;3Bt8H3hDIKU_-b?-tL`p;3{2FbYF^Yr zjOdPIm@bl@{cq$iylEf^=FmzPz8IMPR(15fq zqJQa`01xFMsX$q*@XPa*MP3!f9k+*%A(HwhymCl;SM>UX>~ z*nn3|K?GpRMgjJu2aCi`y|*+~NT(maC3$>aAc+U4JNZZ)5dGTSkc@PXUhrGh^#j|Y z+Fi2Fg@lV_ts9?+CL>9?9YCJU(}u6QR?=0&v#j7K?z#=E53 z<#ZruCS8xNI9cJ!fXccnm~6PJztTnskw^wqq=E$&{X6-uY6n1pxGFM$*)qqyXdy)w zlFkAO*Fc%Ze+JATF#N<>CmC>Ejkj^peh+xwr8`zP`jj)r$J;UeZTLE$^bm16q}^7B z-n{Q5&q!UXZllQ(`gbj^I`+SjA9s(`rqW6BDjrLFjKf9ygK!pML-f4zK1Wmw7X3j~ z-VQJlJT%Ev9$dl-yscbtn1pf({T4e&u$RyE^d32J+VRq+z9#IG)RuEVeyoX)uZREO zEI~ulehB-dxFM-|dmPti2AIr#veot2q8Mhb6G_rbJ@9nVaBs?JCAo;*)fR_6;$ae} zd4E$Z5loc&Nzifh=q?wH)I*tqq}UGvaglQnOOlBp*%tbko63;;uD=(qQN2Ct9*efZ{0ev2bYnAb%%tj5{7n|O_Mv6)WCoP3}K zHdq_PaOEMzIFO*GlZWr2doNHHMeTkrnh$JEM+zo@s0?1tgx$5kqza)9$}~oKmafKW z%sfoyc)Dg00YJMjj?^bktFA>81r|$4x6$ReC}E7>Zlzn@+92CWx)3H;W<2oPTRj41 z%Ag);(N(@Mu>@-a5n?jPl6?@2Os~D^eysEEw%AQYk_#FVk0+#`e??vYBC)} zYUa>&BEBZsMEu_qD`$gwt1ztz;ZA<6YU$L-L>X+rWFq0|lM@J-geShWzLC}104NUu zt|9rmD}f?+TrQ-f3{Dmq5#@|YJghz5!yte8Iua2pU!(@6M-F>gY7a0;LSQBO8~ry8 z0#i}atV~KT&@PNJ*oLBZDR`=mEZ7c9NZ{}auev4_$C)Llf|{5@M2&}fXuNwQnf-V2 zlMK3pXqMm*G@hLSC}d_ybzbb`Z~TYBO8qL>a7`8+l-3WvCFJLh12*zIJ)ZHNeM_F6 zq5rU&<;O~WDWA?aWGABbiN32>fR9k!U5vJWlLA#5rHSC(}B zuiCp!q$w&?56K*ms`?!~-x3l`jFU&eU6i(0fQ?L~Ue4oe)s=L{xGZgnty zOmf!vr z2hd+r-7M&)q~_TL+hK{aPr*|u2dDSZEFo}N3oQC~@>d~ct{U@QJHa<^Jo4i8Tk^I9 zn|jDJ{1 zjQtPfrye*FsY=m+_!o@l+$dgIvjkVuI9}18m)9;8V8b=JpK3QWQPEELImV>VgFq1oU`2<~!lJ1#i^<++K&>?bz?Qa=bvB@8~YNCBSBu zK>t#5CY}^a@Y+an0TW9oCD1JarndxDLo5MyQMSRkGMj?@z{C<@x+Q34VhJ#@gs!>k zE$RASwbJ#(w%$29qJr0)-rAN#(}q zx0vtg|05AVk_!#rEOFx@7HIPwCD<%MEUX*Z^uOv_>=oL6C$g%?1ejSu{<6oD`F>;7 zw%>u7B?MPJpv`v@Ld_DQRqKvd`9V+#mbCY$i(ujcz9t0JG%*#*9?<4H1%SRKcyqV$ zR{akfWaCL+q3!oGDcGLa<~!YE%@TqI+r)P#7bS|e-_Q8s6A_qMf~(tjHs7m$$#~6t zZ}i_@z^d^U;*;%nA~j|St=L5woa7#FG~e&~AEsUB$(=O7%o5CZ4`}n9tZCnpC!6nQ zGRDOdQk5;a=sD+!or6b;k6FSCZOSa>d(pp>pF~h2+I~M%;%Pja?<66aB_t*d8)^K< zVs@%JR_!!UTJ4^8`p*C>baM2%f*?tFR$;G3uiFs$o0o!<-Y2(>^Khtm3*93{= z0d2pdC7LB1Bu|V+pHDBlTkr<`k4F2xCfr01IN0y2tZ?TDJUKSsfz2#|{^hNkc(Rbt z_B(hxEV22HyT~j-d}t$8av;*srpSo4->bpD@oc_Vk*V=E^L^0&h(;UH_WK#3XFQwl zRMh#FT+)0m{f|ht2ekbTi$}=?m+H4R-+6d_OLme3&q!+d{{UKYQCp)0(l1l2qhic> zHs5gxZY=5g-?Qy^5X};-DNk(kowg}{OUO=)1)~3vq2mEd!v7U0kO6{pzU{(jD1T;OfY3^z9U2j zmaO_8&0aJy84Mbb#FZU9vxGT}w`0EFt~>TSU+wk8JNCQV(V=SWnD5p7AlY;-|@e zFCL;8*nH=^DrO09Sd2&f5wlz?q}nAA!L$7i%(sN{e2-`Io$xO#Y46V384@TNB}|O;h#6&V!jvsJNfY%8`1VV z-x*YTE=IJRnTlH};zPP`<3EJf_iZbWKzY2pVOk(vkFv8|1<*wq+EA-`3h$r3 zgh~WmUqvH(nDvDGrU*_M@Caa47?bfIN$2QqJS8o`nf-6%M`=W^oGXoyo*d5ISR5OdMGFLCuZ+9{t@oT8L4AP2?uKFKur};@K+1MGRonX2qrfB76t0hK7baV(S!8XoJH87Of1M>eP>KaGwRI!{qf#sm2aREKV%p=xj?ajSu9V#M zKY+wieWs#F0zmahcQvf{4KV1yowb*7!Ky5{}C(T2R)0CbECDxj{7g|?0V6#~fK85~RAqWm#E8Iqrs zK&eS~$d4yJRWrQv#NU(rc-X}|zPBJYaS?T9=-r*2XmEb3lOV9WJD2@$Y zAH;vPLcVR4r=Kjm)ZHt_DM3T`1+j!Lq-23LuHd!dN7w%V%6)=6S0$C@;>`t?=Qia$ zURq@OOnyAFQELkQ%T1fcBA!-6T>iK|ca<0luW(u*Jt zA>FR%tI*%$#r6lLUIMrYNr{Mwsmjksr@n5Sh4sJ`Md9-fG}Q_H51_)U(174uPK>P* z(h)D5Tywx=Me}&}PXMg?ANPSCW-$pGYKmoES%qf#yc4Ey{+6Pqa75s7lU(5QvXsFj zSus|!(F-0ob&bYprr01bdZxr;DC^Bfto&YhMcVtbiC{vKY7+@e5zX=|X?KKCvXB{F zgA(do%=o=$`Mn_kSh#Hs{0c-SMUps)PfU!GBlb#K__Ru9F@%T`iVJP&8hli%KWYPc1 zp_2VkO4XBSMdi|C!lNy|qo${A=Ysc8FseYHoO~Qxv znb`ydyv0FT^xw!|U!T;(7;T0rxuE)mN;=YQVbt}?eguyqlfJpee|&;CX*zI0#MDXN zaaOa#0l!t7qw+E8q*KkKtN46&19zGsspA+hS;zI29KHFJ0(laSmNvqnX+nzqck=UK zg?3BN7i4Bqh6uU`#6>AQS|KEiZ>o*gxad#dK0dhAV2DEfSRLm1E%`RWlhc9cRG;bu zcA)+#e@u~yCdNr_JT=5&K!((K*VG-Ums=fLgZ@`lQb}r3b%tO;Q@^X&E_;Ju?%}PD ziDAeN3{7mrgZ}*3+6zXA1P#-s1#^LO>AD3bw>vOgAmhX}FO6buN!I$9o2WqP{Iu%& zF=2sZ6Zu76H1?zMHbu7Uf7RPf6Z3G3tS5bZlk33OW^;Eqcnsq{O?c>k*k@8e__R_w z4#49@n0{Qpl{?98?*h&0_4?hMFSl3YR4rhcY86-*8iarRYk5JQY zNWHFrkrGR`fpTBwg^6t%N$9HcZ-#nh)zPvqt{Qoh2^YO4e+> diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml index a55a2cfe..15f355ab 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml @@ -7,13 +7,14 @@ ]> - Linux IPv6 HOWTO (de) PeterBieringer
    pb at bieringer dot de
    + 0.63.de.1 2009-02-14 PB 0.62.de.1 2008-11-09 PB 0.61.1.de.2 2008-05-17 PB 0.61.1.de.1 2007-11-11 PB @@ -26,24 +27,21 @@ <!-- anchor id="general-copright" -->Copyright, Lizenz und anderes Copyright -Verfasst von und urheberrechtlich geschützt durch Peter Bieringer © 2001-2006. +Verfasst von und urheberrechtlich geschützt durch Peter Bieringer © 2001-2009. Deutsche Übersetzung: -Verfasst von und urheberrechtlich geschützt durch Georg Käfer © 2002-2003. +Verfasst von und urheberrechtlich geschützt durch Georg Käfer © 2002-2003, weitergeführt von Peter Bieringer © 2004-2009. Lizenz Dieses Linux IPv6 HOWTO wird unter der GNU GPL Version 2 herausgegeben: - - - Dieses Linux IPv6 HOWTO ist ein Handbuch zur Anwendung und Konfiguration von IPv6 auf Linux-Systemen. -Copyright © 2001-2007 Peter Bieringer -Deutsche Übersetzung Copyright © 2002-2003 Georg Käfer +Copyright © 2001-2009 Peter Bieringer +Deutsche Übersetzung Copyright © 2002-2003 Georg Käfer, weitergeführt von Peter Bieringer © 2004-2009. Diese Dokumentation ist freie Software; Sie können diese unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation publiziert, entweder unter Version 2 oder optional jede höhere Version redistribuieren und/oder modifizieren. Dieses Programm wird in der Hoffnung verteilt, dass es für Sie nutzvoll ist, jedoch OHNE JEDWEDER GEWÄHRLEISTUNG; sogar ohne der implizierten Gewährleistung der MARKTFÄHIGKEIT oder der FÄHIGKEIT ZU EINEM BESONDEREN ZWECK bzw. VORSATZ. Weitere Details finden Sie in der GNU General Public License. -Zusammen mit diesem Dokument sollten Sie eine Kopie der GNU General Public License erhalten haben; Wenn dem nicht so ist, können Sie sich an folgende Adresse wenden: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +Zusammen mit diesem Dokument sollten Sie eine Kopie der GNU General Public License erhalten haben; Wenn dem nicht so ist, können Sie sich an folgende Adresse wenden: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. Über den Autor Internet/IPv6 Background des Autors @@ -97,7 +95,7 @@ Deutsche Technisches <!-- anchor id="general-original-source" -->Originalquelle dieses HOWTOs -Die originale englische Version dieses HOWTOs wurde mit LyX Version 1.5.6 auf einem Fedora 9 System mit SGML-Template (DocBook book) erstellt. Alle Dateien sind unter TLDP-CVS / users / Peter-Bieringer verfügbar. +Die originale englische Version dieses HOWTOs wurde mit LyX Version 1.6.1 auf einem Fedora 10 Linux System mit SGML-Template (DocBook book) erstellt. Alle Dateien sind unter TLDP-CVS / users / Peter-Bieringer verfügbar. Auch die deutsche Version wurde mit LyX erstellt und befindet sich ebenfalls im angegebenen CVS-Verzeichnis. Zeilenumbruch in Code-Beispielen Der Zeilenumbruch wird mit Hilfe eines selbst geschriebenen Tools “lyxcodelinewrapper.pl” erstellt; Sie finden das Skript am CVS unter: TLDP-CVS / users / Peter-Bieringer. @@ -559,7 +557,8 @@ tcpdump: listening on ppp0 Die Ausgabe des Tests sollte etwa wie folgt sein: IPv6 kompatible Telnet Client-Programme IPv6 kompatible Clients sind verfügbar. Ein einfacher Test sieht wie folgt aus: @@ -595,7 +594,7 @@ Connection closed by foreign host. IPv6 kompatible Web-Browser Einen aktuellen Statusüberblick zum Thema IPv6 kompatible Web-Browser ist unter IPv6+Linux-status-apps.html#HTTP verfügbar. Die meisten Browser haben zurzeit noch ungelöste Probleme -Ist ein IPv4 Proxy in den Einstellungen eingetragen, dann werden IPv6 Anfragen zum Proxy gesendet. Der Proxy kann keine IPv6 Anfragen verstehen und somit scheitert die Anfrage. Lösung: Proxy Software aktualisieren (siehe weiter unten).Automatik-Einstellungen des Proxy (*.pac) können aufgrund ihrer Beschaffenheit nicht derart erweitert werden, dass sie IPv6 Anfragen anders handhaben (z.B. kein Proxy verwenden) können (Sie sind in Javaskript geschrieben und ziemlich hard coded in den Quellen verankert; z.B. Maxilla Quellcode).Ältere Browser-Versionen verstehen ebenfalls keine URL mit IPv6 Adressen wie z.B. http://[2001:a60:9002:1::190:1]/ (die angegebene URL funktioniert nur mit einem IPv6 kompatiblen Browser!). +Ist ein IPv4 Proxy in den Einstellungen eingetragen, dann werden IPv6 Anfragen zum Proxy gesendet. Der Proxy kann keine IPv6 Anfragen verstehen und somit scheitert die Anfrage. Lösung: Proxy Software aktualisieren (siehe weiter unten).Automatik-Einstellungen des Proxy (*.pac) können aufgrund ihrer Beschaffenheit nicht derart erweitert werden, dass sie IPv6 Anfragen anders handhaben (z.B. kein Proxy verwenden) können (Sie sind in Javaskript geschrieben und ziemlich hard coded in den Quellen verankert; z.B. Maxilla Quellcode).Ältere Browser-Versionen verstehen ebenfalls keine URL mit IPv6 Adressen wie z.B. http://[2001:a60:9002:1::186:6]/ (die angegebene URL funktioniert nur mit einem IPv6 kompatiblen Browser!). Ein kleiner Test ist diese URL mit einem gegebenen Browser und ohne Proxy zu verwenden. URLs zum testen Ein guter Ausgangspunkt zum Betrachten von Webseiten mit IPv6 ist http://www.kame.net/. Ist die Schildkröte animiert, dann ist Verbindung mittels IPv6 Verbindung zustande gekommen, andererseits bleibt die Schildkröte statisch. @@ -777,7 +776,8 @@ ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast ]]> Verwendung von "route" Anwendung: -/ gw [dev ] +/ gw [dev +¬ ] ]]>Beispiel zum entfernen der im obigen Beispiel hinzugefügten Route: @@ -858,7 +858,7 @@ Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ] ]]>Es sieht aus, als seien manche Optionen ausschließlich für IPv4 gedacht... Es wird um Ihre Mithilfe gebeten, wenn Sie Informationen zu Optionen und der erweiterten Anwendung beisteuern können. <!-- anchor id="chapter-configuring-ipv6-in-ipv4-tunnels" -->Konfiguration eines IPv6-in-IPv4 Tunnels -Beim verlassen Ihres Links steht Ihnen kein IPv6 fähiges Netzwerk zur Verfügung. Aus diesem Grund benötigen Sie zum erreichen des weltweiten IPv6 Internet einen IPv6-in-IPv4 Tunnel. +Wenn zum Verlassen des lokalen Netzwerks keine native IPv6-Anbindung vorhanden ist, wird zum Erreichen des weltweiten IPv6 Internet ein IPv6-in-IPv4 Tunnel benötigt. Es gibt unterschiedliche Tunnel-Mechanismen sowie einige Möglichkeiten zum Einrichten eines Tunnels. Tunnelarten Es steht Ihnen mehr als eine Möglichkeit zur Verfügung, IPv6 Pakete über ausschließliche IPv4 Links zu tunneln. @@ -1026,7 +1026,8 @@ ff00::/8 :: UA 256 0 0 sit0 Verwendung von "ip" und einem dedizierten Tunnel-Device Die empfohlene Vorgehensweise (der Wert TTL muss angegeben werden, da der Standardwert 0 ist): Erstellen eines neues Tunnel-Device: - remote any local + remote any local +¬ ]]>Interface aktivieren: Eine lokale 6to4 Adresse am Interface hinzufügen (Hinweis: Präfix-Länge 16 ist wichtig!) @@ -1064,8 +1065,48 @@ ff00::/8 :: UA 256 0 0 sit0 <!-- anchor id="chapter-configuring-ipv4-in-ipv6-tunnels" -->IPv4-in-IPv6 Tunnel konfigurieren -Diese Tunnel-Art wird derzeit vorwiegend in Test-Umgebungen verwendet. Das Kapitel ist aus diesem Grund noch leer. Allerdings scheint die Unterstützung for Linux momentan noch zu fehlen (03/2004). -In der Zwischenzeit finden Sie hier mehr Informationen: RFC 2473 / Generic Packet Tunneling in IPv6 Specification +RFC 2473 / Generic Packet Tunneling in IPv6 Specification spezifiziert den Mechanismus, um unterschiedliche Pakettypen (einschließlich IPv4) über IPv6 zu tunneln. +ANMERKUNG: Unterstützung für IPv4-in-IPv6 Tunnel ist erst seit Kernel Version 2.6.22 verfügbar. +Anzeigen von existierenden Tunnels +Anwendung: +] +]]>Beispiel: +ANMERKUNG: wenn "mode any" nicht angegeben wird, werde nur IPv6-in-IPv6 Tunnels angezeigt. +Konfiguration eines Punkt-zu-Punkt Tunnels +Anwendung für die Erzeugung einer 4over6 Tunnel-Schnittstelle (welche danach aber noch nicht aktiv ist) + mode ip4ip6 remote local +]]>Anwendung (allgemeines Beispiel für drei Tunnels): + local +# /sbin/ip link set dev ip6tnl1 up +# /sbin/ip -6 route add dev ip6tnl1 metric 1 + +# /sbin/ip -6 tunnel add ip6tnl2 mode ip4ip6 remote local +# /sbin/ip link set dev ip6tnl2 up +# /sbin/ip -6 route add dev ip6tnl2 metric 1 + +# /sbin/ip -6 tunnel add ip6tnl3 mode ip4ip6 remote local +# /sbin/ip link set dev ip6tnl3 up +# /sbin/ip -6 route add dev ip6tnl3 metric 1 +]]> +Löschen von Punkt-zu-Punkt-Tunnels +Anwendung für das Löschen einer Tunnel-Schnittstelle: + +]]>Anwendung (allgemeines Beispiel für drei Tunnels): + dev ip6tnl1 +# /sbin/ip link set ip6tnl1 down +# /sbin/ip -6 tunnel del ip6tnl1 + +# /sbin/ip -6 route del dev ip6tnl2 +# /sbin/ip link set ip6tnl2 down +# /sbin/ip -6 tunnel del ip6tnl2 + +# /sbin/ip -6 route del dev ip6tnl3 +# /sbin/ip link set ip6tnl3 down +# /sbin/ip -6 tunnel del ip6tnl3 +]]> <!-- anchor id="chapter-kernel-settings" -->Kernel-Einstellungen im /proc-Dateisystem Anmerkung: Dieses Kapitel basiert großteils auf der Datei “ip-sysctl.txt”, welche in den aktuellen Kernel-Quellen im Verzeichnis “Documentation/networking” zu finden ist. Danke an dieser Stelle an Pekka Savola, der den IPv6 relevanten Inhalt dieser Datei wartet und betreut. Ebenso sei erwähnt, dass einige Textstellen hieraus mehr oder weniger mit Copy & Paste in dieses Dokument übernommen wurden. Zugriff auf das /proc-Dateisystem @@ -1178,7 +1219,8 @@ net.ipv6.conf.all.forwarding = 1 Typ: INTEGERStandardwert: 1024Parameter zum Einstellen der Größe der Neighbour-Tabelle. Wenn Sie viele Interfaces und Probleme mit inkorrekt oder nicht funktionierenden Routen haben, dann sollten Sie diesen Wert erhöhen. Ebenfalls erhöhen sollten Sie den Wert, wenn von einem aktiven Zebra (routing daemon) Folgendes angezeigt wird: - gc_interval @@ -1315,7 +1357,13 @@ FRAG6: inuse 0 memory 0 ip6_tables_names Verfügbare netfilter6 Tabellen <!-- anchor id="netlink" -->Netlink-Interface zum Kernel -Mehr Infos hierzu in späteren Versionen... der Autor hat hiermit keine Erfahrung... +Mehr Infos hierzu in späteren Versionen... der Autor hat hiermit keine Erfahrung... +<!-- anchor id="resolver" -->Adress-Auflösung +Die Auflösung von Namen zu einer IPv4- bzw. IPv6-Adresse wird üblicherweise durch die Benutzung einer libc resolver Bibliothek durchgeführt. Es sind einige Seltsamkeiten bekannt bei der Nutzung der Funktion getaddrinfo. +Mehr Information kann dazu aktuell gefunden werden unter Linux & IPv6: getaddrinfo and search domains - Research and RFC 3484 on Linux. + + +Mehr Infos hierzu in späteren Versionen... <!-- anchor id="network-debugging" -->Netzwerk-Fehlersuche Server Socket-Anbindung @@ -1544,7 +1592,7 @@ In Version 8.x wurde das Konfigurations-Setup bei SuSE komplett abge Folgendes HOWTO Dokument beschreibt Setup und Konfiguration: http://www.nautilus6.org/doc/nepl-howto/. Links -Mobile IPv6 for Linux (MIPL) project: http://www.mobile-ipv6.org/Nautilus6 working group: http://nautilus6.org/Fast Handovers for Mobile IPv6 for Linux project: http://www.fmipv6.org/RFC 3775 / Mobility Support in IPv6RFC 3776 / Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and Home AgentsRFC 3963 / Network Mobility (NEMO)RFC 4068 / Fast Handovers for Mobile IPv6RFC 4423 / Host Identity Protocol (HIP) ArchitectureRFC 5201 / Host Identity ProtocolHIP Implementierungen: http://infrahip.hiit.fi/, http://hip4inter.net/, http://www.openhip.org/ +Mobile IPv6 for Linux (MIPL) project: http://www.mobile-ipv6.org/Nautilus6 working group: http://nautilus6.org/Fast Handovers for Mobile IPv6 for Linux project: http://www.fmipv6.org/USAGI-patched Mobile IPv6 for Linux (UMIP):http://umip.linux-ipv6.org/Deploying IPsec/IKE-protected MIPv6 under Linux:http://natisbad.org/MIPv6/RFC 3775 / Mobility Support in IPv6RFC 3776 / Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and Home AgentsRFC 3963 / Network Mobility (NEMO)RFC 4068 / Fast Handovers for Mobile IPv6RFC 4423 / Host Identity Protocol (HIP) ArchitectureRFC 5201 / Host Identity ProtocolHIP Implementierungen: http://infrahip.hiit.fi/, http://hip4inter.net/, http://www.openhip.org/ <!-- anchor id="chapter-firewalling-security" -->Firewall-Funktionalität Die IPv6 Firewall-Funktionalität ist wichtig; vor allem dann, wenn Sie auf Ihren internen Netzen IPv6 mit globalen IPv6 Adressen einsetzen. In IPv6 werden - im Unterschied zu IPv4, wo interne Hosts automatisch durch private IPv6 Adressen geschützt werden (RFC 1918 / Address Allocation for Private Internets bzw. Google search for Microsoft + APIPA) - globale Adressen verwendet und jeder mit IPv6-Anbindung kann alle internen Knoten, bei denen IPv6 aktiv ist, erreichen. <!-- anchor id="firewalling-netfilter6." -->Firewall-Funktionalität mit netfilter6 @@ -2551,8 +2599,7 @@ Anmerkung: Dieser Titel wird am 11. April 2003 publiziert.IPv6 in Practice: A Unixer's Guide to the Next Generation Internet von Benedikt Stockebrand, November 2006; ISBN 3-540-24524-3IPv6 Essentials von Silvia Hagen, zweite Auflage, Mai 2006; ISBN 0-5961-0058-2 ToC, Index, Sample Chapter etc.; O'Reilly PressreleaseIPv6: The New Internet Protocol. Von Christian Huitema; Publiziert von Prentice-Hall; ISBN 0138505055. Beschreibung: Dieses Buch, geschrieben von Christian Huitema - einem Mitglied des Internet Architecture Board, bietet eine exzellente Beschreibung von IPv6, die Unterschiede zu IPv4 sowie die 'wies' und 'warums' der IPv6 Entwicklung. -Quelle: http://www.cs.uu.nl/wais/html/na-dir/internet/tcp-ip/resource-list.htmlIPv6 Networks von Niles, Kitty; (ISBN 0070248079); 550 Seiten; Datum der Veröffentlichung: 05/01/1998.Implementing IPV6. Supporting the Next Generation Internet Protocols von P. E. Miller, Mark A. Miller; Hrsg.: John Wiley & Sons; ISBN 0764545892; 2. Edition (15.März 2000); 402 Seiten.Big Book of Ipv6 Addressing Rfcs von Peter H. Salus (Compiler), Morgan Kaufmann (Hrsg.), April 2000, 450 Seiten ISBN 0126167702. Understanding IPV6 von Davies, Joseph; ISBN 0735612455; Datum der Veröffentlichung: 05/01/2001; 350 Seiten. -Understanding IPV6 von Davies, Joseph; ISBN 0735612455; Datum der Veröffentlichung: 13/11/2002; 544 Seiten. Migrating to IPv6 - IPv6 in Practice von Marc Blanchet; John Wiley & Sons (Hrsg.); ISBN 0471498920; 1. Edition (November 2002); 368 Seiten.Ipv6 Network Programming von Jun-ichiro Hagino; ISBN 1555583180Wireless boosting IPv6 von Carolyn Duffy Marsan, 10/23/2000.O'reilly Network search for keyword IPv6 ergibt 29 Treffer (28. Januar 2002) +Quelle: http://www.cs.uu.nl/wais/html/na-dir/internet/tcp-ip/resource-list.htmlIPv6 Networks von Niles, Kitty; (ISBN 0070248079); 550 Seiten; Datum der Veröffentlichung: 05/01/1998.Implementing IPV6. Supporting the Next Generation Internet Protocols von P. E. Miller, Mark A. Miller; Hrsg.: John Wiley & Sons; ISBN 0764545892; 2. Edition (15.März 2000); 402 Seiten.Big Book of Ipv6 Addressing Rfcs von Peter H. Salus (Compiler), Morgan Kaufmann (Hrsg.), April 2000, 450 Seiten ISBN 0126167702. Understanding IPV6 von Davies, Joseph; ISBN 0735612455; Datum der Veröffentlichung: 05/01/2001; 350 Seiten.Migrating to IPv6 - IPv6 in Practice von Marc Blanchet; John Wiley & Sons (Hrsg.); ISBN 0471498920; 1. Edition (November 2002); 368 Seiten.Ipv6 Network Programming von Jun-ichiro Hagino; ISBN 1555583180Wireless boosting IPv6 von Carolyn Duffy Marsan, 10/23/2000.O'reilly Network search for keyword IPv6 ergibt 29 Treffer (28. Januar 2002) Artikel, eBooks, Online Rezensionen Getting Connected with 6to4 von Huber Feyrer, 06/01/2001Transient Addressing for Related Processes: Improved Firewalling by Using IPv6 and Multiple Addresses per Host; geschrieben von Peter M. Gleiz, Steven M. Bellovin (PC-PDF-Version; Palm-PDF-Version; PDB-Version)Internetworking IPv6 with Cisco Routers von Silvano Gai, McGrawHill Italia, 1997. Die 13 Kapitel und der Anhang A-D sind als PDF-Dokument 'downladbar'.Migration and Co-existence of IPv4 and IPv6 in Residential Networks von Pekka Savola, CSC/FUNET, 2002 @@ -2604,13 +2651,13 @@ SourceForge: Project Info - DeepSpace6 / Weitere interessante Links Linux Informationen -DeepSpace6 / (Not only) Linux IPv6 Portal - Italien (Spiegel)IPv6-HowTo for Linux by Peter Bieringer - Deutschland, und sein Bieringer / IPv6 - software archiveLinux+IPv6 status by Peter Bieringer - DeutschlandDeepSpace6 / IPv6 Status Page - Italien (Spiegel) (ersetzt das oben genannte in Zukunft)USAGI project - Japan, und deren USAGI project - software archiveLinux Optimized Link State Routing Protocol (OLSR) IPv6 HOWTO +DeepSpace6 / (Not only) Linux IPv6 Portal - Italien (Spiegel)IPv6-HowTo for Linux by Peter Bieringer - Deutschland, und sein Bieringer / IPv6 - software archiveLinux+IPv6 status by Peter Bieringer - DeutschlandDeepSpace6 / IPv6 Status Page - Italien (Spiegel) (ersetzt das oben genannte in Zukunft)USAGI project - Japan, und deren USAGI project - software archiveLinux Optimized Link State Routing Protocol (OLSR) IPv6 HOWTOLinShim6 Informationen zu Linux-Distributionen PLDPLD Linux Distribution (“Marktführer” bei inkludierten IPv6 fähigen Paketen))Red HatRed Hat Enterprise Linux, Pekka Savola's IPv6 packagesFedoraFedora Core LinuxDebianDebian Linux, IPv6 with Debian LinuxNovell/SuSENovell/SuSE LinuxMandrivaMandrivaWeitere Details siehe unter IPv6+Linux Status Distributions. Allgemeine Informationen -IPv6.org6boneUK IPv6 Resource Centre - GroßbritannienWIDE project - JapanSWITCH IPv6 Pilot - SchweizIPv6 Corner of Hubert Feyrer - DeutschlandIPv6 Forum - ein weltweites Konsortium führender Internet-Hersteller, Forschungs- & Bildungseinrichtungen... Playground.sun.com / IPv6 Info Page - betreut von Robert Hinden, Nokia. Hier gibt es jede Information zum Thema IPv6: Zusammenfassungen, RFCs & Drafts, Implementierungen (Verfügbarkeit der Stacks auf verschiedenen Plattformen & Quellcode diverser IPv6 Stacks). 6INIT - IPv6 Internet Initiative - ein Fifth Framework Projekt der EU im Rahmen des IST Programmes.IPv6 Task Force (European Union)6init - IPv6 INternet IniTiative IP Next Generation OverviewIPv6: The New Version of the Internet Protocol, von Steve Deering.IPv6: The Next Generation Internet Protocol, von Gary C. Kessler. IPv6: Next Generation Internet Protocol - 3ComThe Quality of Service Forum siteinternet || site und internet2 Working GroupNetworkWorldFusion: Search / Doc Finder: searched for IPv6 (102 Dokumente gefunden - 22.12.2002) The Register (Suche nach IPv6 ergab 30 Dokumente, 22.12.2002) ZDNet Search for IPv6TechTarget Search for IPv6IPv6 & TCP Resources ListFehlt etwas? Vorschläge sind Willkommen! +IPv6.org6boneWIDE project - JapanSWITCH IPv6 Pilot - SchweizIPv6 Corner of Hubert Feyrer - DeutschlandIPv6 Forum - ein weltweites Konsortium führender Internet-Hersteller, Forschungs- & Bildungseinrichtungen... Playground.sun.com / IPv6 Info Page - betreut von Robert Hinden, Nokia. Hier gibt es jede Information zum Thema IPv6: Zusammenfassungen, RFCs & Drafts, Implementierungen (Verfügbarkeit der Stacks auf verschiedenen Plattformen & Quellcode diverser IPv6 Stacks). 6INIT - IPv6 Internet Initiative - ein Fifth Framework Projekt der EU im Rahmen des IST Programmes.IPv6 Task Force (European Union)6init - IPv6 INternet IniTiative IPv6: The New Version of the Internet Protocol, von Steve Deering.IPv6: The Next Generation Internet Protocol, von Gary C. Kessler. IPv6: Next Generation Internet Protocol - 3Cominternet || site und internet2 Working GroupNetworkWorldFusion: Search / Doc Finder: searched for IPv6 (102 Dokumente gefunden - 22.12.2002) The Register (Suche nach IPv6 ergab 30 Dokumente, 22.12.2002) ZDNet Search for IPv6TechTarget Search for IPv6IPv6 & TCP Resources ListFehlt etwas? Vorschläge sind Willkommen! <!-- anchor id="information-marketresearch" -->Marktforschung A Tale of Two Wireless Technology Trends: Processor Development Outsourcing and IPv6Yankee Group - 4/1/2002 - 12 Seiten - ID: YANL768881The World Atlas of the Internet: Americas; IDATE - 2/1/2002 - 242 Seiten - ID: IDT803907. Folgende Länder werden behandelt: Zentralamerika, Nordamerika,Südamerika; Listenpreis: $ 3,500.00; Exzerpt: Panorama of Internet access markets across the globe. Market assessment and forecasts up to 2006 for 34 countries: market structure: main ISPs and market shares; number of subscribers, of ISPs.Early Interest Rising for IPv6 von IDC (Autor); Listenpreis: $1,500.00; Edition: e-book (Acrobat Reader); Hrsg.: IDC; ISBN B000065T8E; (1. March 2002) @@ -2636,13 +2683,13 @@ SourceForge: Project Info - Vorschläge sind Willkommen! Deutschland -OpenBC / IPv6 +OpenBC / IPv6 Frankreich Renater: Renater IPv6 Projekt SeiteIPv6 - RSVP - ATM at INRIANetBSD IPv6 Dokumentation Großbritannien -UK IPv6 Resource CenterBritish Telecom IPv6 Home: BT's ISP IPv6 Versuch, Englands erster IPv6 Internet Exchange etc. +British Telecom IPv6 Home: BT's ISP IPv6 Versuch, Englands erster IPv6 Internet Exchange etc. Indien Vorschläge sind willkommen! Italien @@ -2824,68 +2871,68 @@ Presseaussendung: Hurrican
  • -Schwerpunkt -Request e-mail Adresse -Abonnieren -e-mail Adresse der Mailingliste -Sprache -Zugang via WWW +Schwerpunkt +Request e-mail Adresse +Abonnieren +e-mail Adresse der Mailingliste +Sprache +Zugang via WWW -Linux Kernel Networking inkl. IPv6 -majordomo (at) vger.kernel.org -netdev -netdev (at) vger.kernel.org -Englisch -Info, Archive +Linux Kernel Networking inkl. IPv6 +majordomo (at) vger.kernel.org +netdev +netdev (at) vger.kernel.org +Englisch +Info, Archive -Mobile IP(v6) für Linux -Web-based, see URL -mipl -mipl (at) mobile-ipv6.org -Englisch -Info, Archive +Mobile IP(v6) für Linux +Web-based, see URL +mipl +mipl (at) mobile-ipv6.org +Englisch +Info, Archive -Linux IPv6 User & USAGI -usagi-users-ctl (at) linux-ipv6.org +Linux IPv6 User & USAGI +usagi-users-ctl (at) linux-ipv6.org -usagi-users (at) linux-ipv6.org -Englisch -Info / Search, Archive +usagi-users (at) linux-ipv6.org +Englisch +Info / Search, Archive -IPv6 und Debian Linux -Web-based, siehe URL +IPv6 und Debian Linux +Web-based, siehe URL -debian-ipv6 (at) lists.debian.org -Englisch -Info/Subscription/Archive +debian-ipv6 (at) lists.debian.org +Englisch +Info/Subscription/Archive -6bone -majordomo (at) isi.edu -6bone -6bone (at) isi.edu -Englisch -Info, Archive +6bone +majordomo (at) isi.edu +6bone +6bone (at) isi.edu +Englisch +Info, Archive -IPv6 User allgemein -majordomo (at) ipv6.org -users -users (at) ipv6.org -Englisch -Info, Archive +IPv6 User allgemein +majordomo (at) ipv6.org +users +users (at) ipv6.org +Englisch +Info, Archive -Bugtracking Internet Programme (1) -bugtraq-subscribe (at) securityfocus.com +Bugtracking Internet Programme (1) +bugtraq-subscribe (at) securityfocus.com -bugtraq (at) securityfocus.com (3) -Englisch -Info, Archive +bugtraq (at) securityfocus.com (3) +Englisch +Info, Archive @@ -2941,7 +2988,7 @@ Quelle: C Die Historie der Änderungen der englischen Sprachversion finden Sie dort: TLDP / Linux+IPv6-HOWTO / Revision History. Deutsche Sprachversion -0.62.de.12008-11-09/PB: Sync mit Original0.61.1.de.32007-08-25/PB: Fix Typo0.61.1.de.22007-08-17/PB: Fix Typo0.61.1.de.12007-11-11/PB: Sync mit Original0.61.de.12007-10-06/PB: Sync mit Original, kleine Korrekturen0.60.de.12007-05-31/PB: Sync mit Original (bis auf C-API), kleine Korrekturen0.51.de.12006-11-08/PB: Sync mit Original0.50.2.de.12006-10-25/PB: Sync mit Original0.50.1.de.12006-09-23/PB: Sync mit Original0.50.de.12006-08-24/PB: Sync mit Original0.49.5.de.12006-08-23/PB: Sync mit Original0.49.4.de.12006-08-21/PB: Sync mit Original, Korrektur bei Adresstypen (Übersetzungsfehler)0.49.3.de.12006-08-20/PB: Sync mit Original0.49.2.de.12006-08-20/PB: Sync mit Original0.49.1.de.12006-06-13/PB: Sync mit Original0.49.de.12005-10-03/PB: Sync mit Original0.48.de.12005-01-11/PB: Sync mit Original0.47.de.12004-08-30/PB: Sync mit Original0.46.5.de.12004-07-22/PB: Sync mit Original0.46.4.de.12004-07-19/PB: Sync mit Original und kleine Korrekturen der Übersetzung0.46.2.de.12004-05-22/PB: Sync mit Original0.46.1.de.12004-04-18/PB: Sync mit Original0.46.de.12004-04-04/PB: Sync mit Original (Italienische Übersetzung verfügbar, Informationen über DHCPv6, kleinere Updates)0.45.1.de.12004-01-12/PB: Sync mit Original (kleine Erweiterung)0.45.de.12004-01-11/PB: Sync mit Original (kleine Korrekturen, URL-Korrekturen und Erweiterungen)0.44.2.de.12003-10-30/PB: Sync mit Original (kleine Korrektur)0.44.de.12003-08-15/PB: Sync mit Original (URL-Korrekturen, Tipp bei tcp_wrappers und Apache2)0.43.2.de.22003-07-26/PB: Sync mit Original (URL-Korrekturen)0.43.2.de.12003-06-11/PB: Sync mit Original (URL-Korrekturen)0.43.1.de.22003-06-11/PB: Typo gefixt0.43.1.de.12003-06-07/PB: Sync mit Original (Links, IPsec)0.43.de.12003-06-05/PB: Sync mit Original (SuSe-Linux-Tipps)0.41.4.de.12003-05-02/PB: Sync mit Original (URL-Korrekturen)0.41.3.de.12003-04-23/PB: Sync mit Original (URL-Korrektur)0.41.1.de.12003-03-31/PB: Sync mit Original (URL-Korrektur)0.41.de.12003-03-22/PB: Angabe der URL dieser Übersetzung0.40.2.de.12003-02-27/PB: Sync mit Original (URL-Korrektur)0.40.1.de.12003-02-12/PB: Sync mit Original (Debian-Linux-Konfiguration), Ersetzen der Info über verfügbare Übersetzungen durch einen Link zum Original.0.40.de.12003-02-10/PB: Kleine sprachliche Änderungen und paar kleine Verbesserungen.0.39.2.de.12003-02-10/GK: Erste öffentliche Version in deutscher Sprache. Diese Version entspricht inhaltlich der englischen Version 0.39.2. Der Zusatz de.1 bezeichnet die Revision der deutschen Sprachversion. Diese Version wurde unter Mandrake Linux 9.0 mit LyX Version 1.2.1 und der Klasse DocBook book (SGML) erstellt. +0.63.de.12009-02-14/PB: Sync mit Original0.62.de.12008-11-09/PB: Sync mit Original0.61.1.de.32007-08-25/PB: Fix Typo0.61.1.de.22007-08-17/PB: Fix Typo0.61.1.de.12007-11-11/PB: Sync mit Original0.61.de.12007-10-06/PB: Sync mit Original, kleine Korrekturen0.60.de.12007-05-31/PB: Sync mit Original (bis auf C-API), kleine Korrekturen0.51.de.12006-11-08/PB: Sync mit Original0.50.2.de.12006-10-25/PB: Sync mit Original0.50.1.de.12006-09-23/PB: Sync mit Original0.50.de.12006-08-24/PB: Sync mit Original0.49.5.de.12006-08-23/PB: Sync mit Original0.49.4.de.12006-08-21/PB: Sync mit Original, Korrektur bei Adresstypen (Übersetzungsfehler)0.49.3.de.12006-08-20/PB: Sync mit Original0.49.2.de.12006-08-20/PB: Sync mit Original0.49.1.de.12006-06-13/PB: Sync mit Original0.49.de.12005-10-03/PB: Sync mit Original0.48.de.12005-01-11/PB: Sync mit Original0.47.de.12004-08-30/PB: Sync mit Original0.46.5.de.12004-07-22/PB: Sync mit Original0.46.4.de.12004-07-19/PB: Sync mit Original und kleine Korrekturen der Übersetzung0.46.2.de.12004-05-22/PB: Sync mit Original0.46.1.de.12004-04-18/PB: Sync mit Original0.46.de.12004-04-04/PB: Sync mit Original (Italienische Übersetzung verfügbar, Informationen über DHCPv6, kleinere Updates)0.45.1.de.12004-01-12/PB: Sync mit Original (kleine Erweiterung)0.45.de.12004-01-11/PB: Sync mit Original (kleine Korrekturen, URL-Korrekturen und Erweiterungen)0.44.2.de.12003-10-30/PB: Sync mit Original (kleine Korrektur)0.44.de.12003-08-15/PB: Sync mit Original (URL-Korrekturen, Tipp bei tcp_wrappers und Apache2)0.43.2.de.22003-07-26/PB: Sync mit Original (URL-Korrekturen)0.43.2.de.12003-06-11/PB: Sync mit Original (URL-Korrekturen)0.43.1.de.22003-06-11/PB: Typo gefixt0.43.1.de.12003-06-07/PB: Sync mit Original (Links, IPsec)0.43.de.12003-06-05/PB: Sync mit Original (SuSe-Linux-Tipps)0.41.4.de.12003-05-02/PB: Sync mit Original (URL-Korrekturen)0.41.3.de.12003-04-23/PB: Sync mit Original (URL-Korrektur)0.41.1.de.12003-03-31/PB: Sync mit Original (URL-Korrektur)0.41.de.12003-03-22/PB: Angabe der URL dieser Übersetzung0.40.2.de.12003-02-27/PB: Sync mit Original (URL-Korrektur)0.40.1.de.12003-02-12/PB: Sync mit Original (Debian-Linux-Konfiguration), Ersetzen der Info über verfügbare Übersetzungen durch einen Link zum Original.0.40.de.12003-02-10/PB: Kleine sprachliche Änderungen und paar kleine Verbesserungen.0.39.2.de.12003-02-10/GK: Erste öffentliche Version in deutscher Sprache. Diese Version entspricht inhaltlich der englischen Version 0.39.2. Der Zusatz de.1 bezeichnet die Revision der deutschen Sprachversion. Diese Version wurde unter Mandrake Linux 9.0 mit LyX Version 1.2.1 und der Klasse DocBook book (SGML) erstellt. <!-- anchor id="credits" -->Danksagung Dieser feinen Liste hinzugefügt werden können Sie am schnellsten, indem Sie mir Bug fixes, Korrekturen und/oder Updates schicken ;-) Wenn Sie eine größere Überarbeitung vornehmen wollen, können Sie dazu die LyX Datei (siehe original source) verwenden und mir entsprechende diffs dann zusenden, diffs der SGML-Version sind hingegen nicht sehr nützlich. diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html index edd09e38..9caf900e 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html @@ -58,10 +58,10 @@ COLSPAN="3" >Revision 0.632009-02-14Revision 0.622008-11-09
    2.3. What do IPv6 addresses look like?
    2.4. FAQ (Basics)
    3.1. Addresses without a special prefix
    3.2. Network part, also known as prefix
    3.3. Address types (host part)
    3.4. Prefix lengths for routing
    4.2. IPv6-ready network configuration tools
    4.3. IPv6-ready test/debug programs
    4.4. IPv6-ready programs
    4.5. IPv6-ready client programs (selection)
    4.6. IPv6-ready server programs
    5.1. Different network devices
    5.2. Bringing interfaces up/down
    6.1. Displaying existing IPv6 addresses
    6.2. Add an IPv6 address
    6.3. Removing an IPv6 address
    7.1. Displaying existing IPv6 routes
    7.2. Add an IPv6 route through a gateway
    7.3. Removing an IPv6 route through a gateway
    7.4. Add an IPv6 route through an interface
    7.5. Removing an IPv6 route through an interface
    7.6. FAQ for IPv6 routes
    8.1. Displaying neighbors using “ip”
    8.2. Manipulating neighbors table using “ip”
    9.1. Types of tunnels
    9.2. Displaying existing tunnels
    Configuring IPv4-in-IPv6 tunnels
    10.1. Displaying existing tunnels
    10.2. Setup of point-to-point tunnel
    10.3. Removing point-to-point tunnels
    11.
    11.1. How to access the /proc-filesystem
    13. Address Resolver
    14. Network debugging
    13.1. 14.1. Server socket binding
    13.2. 14.2. Examples for tcpdump packet dumps
    14. 15. Support for persistent IPv6 configuration in Linux distributions
    14.1. 15.1. Red Hat Linux and “clones”
    14.2. 15.2. SuSE Linux
    14.3. 15.3. Debian Linux
    15. 16. Auto-configuration
    15.1. 16.1. Stateless auto-configuration
    15.2. 16.2. Stateful auto-configuration using Router Advertisement Daemon (radvd)
    15.3. 16.3. Dynamic Host Configuration Protocol v6 (DHCPv6)
    16. 17. Mobility
    16.1. 17.1. Common information
    17. 18. Firewalling
    17.1. 18.1. Firewalling using netfilter6
    17.2. 18.2. Preparation
    17.3. 18.3. Usage
    18. 19. Security
    18.1. 19.1. Node security
    18.2. 19.2. Access limitations
    18.3. 19.3. IPv6 security auditing
    19. 20. Encryption and Authentication
    19.1. 20.1. Modes of using encryption and authentication
    19.2. 20.2. Support in kernel (ESP and AH)
    19.3. 20.3. Automatic key exchange (IKE)
    19.4. 20.4. Additional informations:
    20. 21. Quality of Service (QoS)
    21. 22. Hints for IPv6-enabled daemons
    21.1. 22.1. Berkeley Internet Name Domain (BIND) daemon “named”
    21.2. 22.2. Internet super daemon (xinetd)
    21.3. 22.3. Webserver Apache2 (httpd2)
    21.4. 22.4. Router Advertisement Daemon (radvd)
    21.5. 22.5. Dynamic Host Configuration v6 Server (dhcp6s)
    21.6. 22.6. tcp_wrapper
    21.7. 22.7. vsftpd
    21.8. 22.8. proftpd
    21.9. 22.9. Other daemons
    22. 23. Programming
    22.1. 23.1. Programming using C-API
    22.2. 23.2. Other programming languages
    23. 24. Interoperability
    24. 25. Further information and URLs
    24.1. 25.1. Paper printed books, articles, online reviews (mixed)
    24.2. 25.2. Conferences, Meetings, Summits
    24.3. 25.3. Online information
    24.4. 25.4. IPv6 Infrastructure
    24.5. 25.5. Maillists
    24.6. 25.6. Online tools
    24.7. 25.7. Trainings, Seminars
    24.8. 25.8. 'The Online Discovery' ...
    25. 26. Revision history / Credits / The End
    25.1. 26.1. Revision history
    25.2. 26.2. Credits
    25.3. 26.3. The End
    1.1.1. Copyright

    Written and Copyright (C) 2001-2007 by Peter Bieringer

    Written and Copyright (C) 2001-2009 by Peter Bieringer

    1.1.2. License

    This Linux IPv6 HOWTO is published under GNU GPL version 2: - -

    This Linux IPv6 HOWTO is published under GNU GPL version 2:

    The Linux IPv6 HOWTO, a guide how to configure and use IPv6 on Linux systems.

    Copyright © 2001-2007 Peter Bieringer

    Copyright © 2001-2009 Peter Bieringer

    This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

    You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA.

    2003-05-09: French translation is available

    2003-08-15: Spanish translation is in progress

    2003-10-16: Italian translation is in progress

    2004-03-12: Italian translation is available

    2004-06-18: Greek translation is in progress

    2004-08-29: Spanish translation is still NOT in progress

    2005-07-25: Turkish translation is availble

    2007-03-28: Portuguese-Brazil is in progress

    2008-07-30: Spanish translation is available (but still in progress)


    1.3.2.2. Full history


    1.3.3. To-Do


    1.4.1. To language


    1.4.1.1. Chinese


    1.4.1.2. Polish


    1.4.1.3. German


    1.4.1.4. French


    1.4.1.5. Spanish

    The first try of a Spanish translations ran into ressource problem, currently I got two other ones, status will be updated when more information is available.

    A member of the MontevideoLibre, a project in Uruguay (South America) starts the translation into Spanish in wiki format: http://www.montevideolibre.org./manuales:libros:ipv6

    1.4.1.9. Turkish

    On 2005-07-18 Necdet Yucel <nyucel at comu dot edu dot tr> send me a note that a Turkish translation is available. It's a snapshot translation and can be found at On 2005-07-18 Necdet Yucel <nyucel at comu dot edu dot tr> send me a note that a Turkish translation is available. It's a snapshot translation (currently of 0.61) and can be found at http://www.belgeler.org/howto/ipv6-howto.htmlhttp://docs.comu.edu.tr/howto/ipv6-howto.html.

    1.5.1. Original source of this HOWTO

    This HOWTO is currently written with LyX version 1.5.1 on a Fedora Core 7 system with template SGML/XML (DocBook book). It's available on This HOWTO is currently written with LyX version 1.6.1 on a Fedora 10 Linux system with template SGML/XML (DocBook book). It's available on TLDP-CVS / users / Peter-Bieringer2.1. What is IPv6?

    IPv6 is a new layer 3 protocol (see linuxports/howto/intro_to_networking/ISO - OSI Model) which will supersede IPv4 (also known as IP). IPv4 was designed long time ago (IPv6 is a new layer 3 protocol which will supersede IPv4 (also known as IP). IPv4 was designed long time ago (RFC 760 / Internet Protocol


    2.2.1. Beginning


    2.2.2. In between

    USAGI tried to insert all of their current extensions into this.

    Some, but not all of them were backpported to series 2.4.x and therefore missing some (many) extensions and also does not confirm to all current drafts and RFCs (see IP Version 6 Working Group (ipv6) Charter). This can cause some interoperability problems with other operating systems.

    Schwerpunkt

    Request e-mail Adresse

    Abonnieren

    e-mail Adresse der Mailingliste

    Sprache

    Zugang via WWW

    Linux Kernel Networking inkl. IPv6

    majordomo (at) vger.kernel.org

    netdev

    netdev (at) vger.kernel.org

    Englisch

    Archive

    Mobile IP(v6) für Linux

    Web-based, see URL

    mipl

    mipl (at) mobile-ipv6.org

    Englisch

    Archive

    Linux IPv6 User & USAGI

    usagi-users-ctl (at) linux-ipv6.org

    usagi-users (at) linux-ipv6.org

    Englisch

    Archive

    IPv6 und Debian Linux

    Web-based, siehe URL

    debian-ipv6 (at) lists.debian.org

    Englisch

    Info/Subscription/Archive

    6bone

    majordomo (at) isi.edu

    6bone

    6bone (at) isi.edu

    Englisch

    Archive

    IPv6 User allgemein

    majordomo (at) ipv6.org

    users

    users (at) ipv6.org

    Englisch

    Archive

    Bugtracking Internet Programme (1)

    bugtraq-subscribe (at) securityfocus.com

    bugtraq (at) securityfocus.com (3)

    Englisch

    Archive

    Revision 0.61.12007-11-11Revised by: PB
    Revision 0.612007-10-06Revised by: PB

    2.4. FAQ (Basics)

    2.4.1. Why is the name IPv6 and not IPv5 as successor for IPv4?


    2.4.2. IPv6 addresses: why such a high number of bits?


    2.4.3. IPv6 addresses: why so small a number of bits on a new design?


    3.1. Addresses without a special prefix

    3.1.1. Localhost address


    3.1.2. Unspecified address


    3.1.3. IPv6 address with embedded IPv4 address


    3.1.3.1. IPv4-mapped IPv6 address


    3.1.3.2. IPv4-compatible IPv6 address


    3.2. Network part, also known as prefix


    3.2.1. Link local address type


    3.2.2. Site local address type


    3.2.3. Unique Local IPv6 Unicast Addresses


    3.2.4. Global address type "(Aggregatable) global unicast"


    3.2.4.1. 6bone test addresses


    3.2.4.2. 6to4 addresses


    3.2.4.3. Assigned by provider for hierarchical routing


    3.2.4.4. Addresses reserved for examples and documentation


    3.2.5. Multicast addresses


    3.2.5.1. Multicast scopes


    3.2.5.2. Multicast types


    3.2.5.3. Solicited node link-local multicast address


    3.2.6. Anycast addresses


    3.2.6.1. Subnet-router anycast address


    3.3. Address types (host part)


    3.3.1. Automatically computed (also known as stateless)


    3.3.1.1. Privacy problem with automatically computed addresses and a solution


    3.3.2. Manually set


    3.4. Prefix lengths for routing


    3.4.1. Prefix lengths (also known as "netmasks")


    3.4.2. Matching a route


    4.1.1. Check for IPv6 support in the current running kernel


    4.1.2. Try to load IPv6 module


    4.1.2.1. Automatically loading of module


    4.1.3. Compile kernel with IPv6 capabilities


    4.1.3.1. Compiling a vanilla kernel


    4.1.3.2. Compiling a kernel with USAGI extensions


    4.1.4. IPv6-ready network devices


    4.1.4.1. Currently known never “IPv6 capable links”


    4.1.4.2. Currently known “not supported IPv6 capable links”


    4.2. IPv6-ready network configuration tools


    4.2.1. net-tools package


    4.2.2. iproute package

  • You can download the tar-ball and recompile it: Original FTP source and mirror (missing)

  • You're able to look for a proper RPM package at


    4.3. IPv6-ready test/debug programs


    4.3.1.1. Specifying interface for IPv6 ping


    4.3.1.2. Ping6 to multicast addresses


    4.3.4.1. IPv6 ping to 2001:0db8:100:f101::1 native over a local link


    4.3.4.2. IPv6 ping to 2001:0db8:100::1 routed through an IPv6-in-IPv4-tunnel


    4.4. IPv6-ready programs


    4.5. IPv6-ready client programs (selection)


    4.5.1. Checking DNS for resolving IPv6 addresses

    www.join.uni-muenster.de. is an alias for tolot.join.uni-muenster.de. 
    -tolot.join.uni-muenster.de. has AAAA address 2001:638:500:101:2e0:81ff:fe24:37c6

    4.5.2. IPv6-ready telnet clients


    4.5.3. IPv6-ready ssh clients

    4.5.3.1. openssh


    4.5.3.2. ssh.com


    4.5.4. IPv6-ready web browsers

    Also older versions don't understand an URL with IPv6 encoded addresses like http://[3ffe:400:100::1]/http://[2001:a60:9002:1::186:6]/ (this given URL only works with an IPv6-enabled browser!).

    A short test is to try shown URL with a given browser and using no proxy.


    4.5.4.1. URLs for testing


    4.6. IPv6-ready server programs

    4.7.1. Using tools

    4.7.1.1. Q: Cannot ping6 to link-local addresses


    4.7.1.2. Q: Cannot ping6 or traceroute6 as normal user

    5.1. Different network devices


    5.1.1. Physically bounded


    5.1.2. Virtually bounded


    5.1.2.1. IPv6-in-IPv4 tunnel interfaces


    5.1.2.2. PPP interfaces


    5.1.2.3. ISDN HDLC interfaces


    5.1.2.4. ISDN PPP interfaces


    5.1.2.5. SLIP + PLIP


    5.1.2.6. Ether-tap device


    5.1.2.7. tun devices


    5.1.2.8. ATM


    5.1.2.9. Others


    5.2. Bringing interfaces up/down


    5.2.1. Using "ip"


    5.2.2. Using "ifconfig"


    6.1. Displaying existing IPv6 addresses


    6.1.1. Using "ip"


    6.1.2. Using "ifconfig"


    6.2. Add an IPv6 address


    6.2.1. Using "ip"


    6.2.2. Using "ifconfig"


    6.3. Removing an IPv6 address


    6.3.1. Using "ip"


    6.3.2. Using "ifconfig"


    7.1. Displaying existing IPv6 routes


    7.1.1. Using "ip"


    7.1.2. Using "route"


    7.2. Add an IPv6 route through a gateway


    7.2.1. Using "ip"


    7.2.2. Using "route"


    7.3. Removing an IPv6 route through a gateway


    7.3.1. Using "ip"


    7.3.2. Using "route"

    # /sbin/route -A inet6 del <network>/<prefixlength> gw <ipv6address> [dev <device>]
    # /sbin/route -A inet6 del <network>/<prefixlength> gw <ipv6address> [dev +¬ <device>]

    7.4. Add an IPv6 route through an interface


    7.4.1. Using "ip"


    7.4.2. Using "route"


    7.5. Removing an IPv6 route through an interface


    7.5.1. Using "ip"


    7.5.2. Using "route"


    7.6. FAQ for IPv6 routes

    7.6.1. Support of an IPv6 default route


    7.6.1.1. Clients (not routing any packet!)


    7.6.1.2. Routers in case of packet forwarding


    8.1. Displaying neighbors using “ip”


    8.2. Manipulating neighbors table using “ip”

    8.2.1. Manually add an entry


    8.2.2. Manually delete an entry


    8.2.3. More advanced settings

    Chapter 9. Configuring IPv6-in-IPv4 tunnels

    If you want to leave your link you have no IPv6 capable network around you, you need IPv6-in-IPv4 tunneling to reach the world wide IPv6-Internet.

    If you want to leave your link and you have no IPv6 capable network around you, you need IPv6-in-IPv4 tunneling to reach the world wide IPv6-Internet.

    There are some kind of tunnel mechanism and also some possibilities to setup tunnels.


    9.1. Types of tunnels


    9.1.1. Static point-to-point tunneling: 6bone


    9.1.2. Automatically tunneling


    9.1.3.1. Generation of 6to4 prefix


    9.1.3.2. 6to4 upstream tunneling


    9.1.3.3. 6to4 downstream tunneling


    9.1.3.4. Possible 6to4 traffic


    9.2. Displaying existing tunnels

    9.2.1. Using "ip"


    9.2.2. Using "route"


    9.3.1. Add point-to-point tunnels

    9.3.1.1. Using "ip"


    9.3.1.2. Using "ifconfig" and "route" (deprecated)


    9.3.1.3. Using "route" only


    9.3.2. Removing point-to-point tunnels


    9.3.2.1. Using "ip"


    9.3.2.2. Using "ifconfig" and "route" (deprecated because not very funny)


    9.3.2.3. Using "route"


    9.3.3. Numbered point-to-point tunnels


    9.4.1. Add a 6to4 tunnel


    9.4.1.1. Using "ip" and a dedicated tunnel device

    # /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local <localipv4address> 
    # /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local +¬ <localipv4address>

    9.4.1.2. Using "ifconfig" and "route" and generic tunnel device “sit0” (deprecated)


    9.4.2. Remove a 6to4 tunnel

    9.4.2.1. Using "ip" and a dedicated tunnel device


    9.4.2.2. Using “ifconfig” and “route” and generic tunnel device “sit0” (deprecated)

    Chapter 10. Configuring IPv4-in-IPv6 tunnels

    This will be filled in the future. At the moment, such tunnels are more used in test environments but it looks like that support is missing currently for Linux (03/2004).

    More information in the meantime: RFC 2473 / Generic Packet Tunneling in IPv6 Specification

    specifies mechanisms to tunnel several different packet types over IPv6 including IPv4.

    NOTE: Support for IPv4-in-IPv6 tunnel is available only since kernel version 2.6.22.

    # /sbin/ip -6 tunnel show [<device>]

    Example:

    # /sbin/ip -6 tunnel show mode any
    +ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00
    +¬ flowlabel 0x00000 (flowinfo 0x00000000)
    +ip6tnl1: ip/ipv6 remote fd00:0:0:2::a local fd00:0:0:2::1 dev eth1 encaplimit 4
    +¬ hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)

    NOTE: If you don't include "mode any", only IPv6-in-IPv6 tunnels are displayed.


  • 10.2. Setup of point-to-point tunnel

    Usage for creating a 4over6 tunnel device (but it's not up afterward)

    # /sbin/ip tunnel add <device> mode ip4ip6 remote <ipv6addressofforeigntunnel>
    +¬ local <ipv6addresslocal>

    Usage (generic example for three tunnels):

    # /sbin/ip -6 tunnel add ip6tnl1 mode ip4ip6 remote
    +¬ <ipv6addressofforeigntunnel1> local <ipv6addresslocal>
    +# /sbin/ip link set dev ip6tnl1 up 
    +# /sbin/ip -6 route add <prefixtoroute1> dev ip6tnl1 metric 1
    +
    +# /sbin/ip -6 tunnel add ip6tnl2 mode ip4ip6 remote
    +¬ <ipv6addressofforeigntunnel2> local <ipv6addresslocal>
    +# /sbin/ip link set dev ip6tnl2 up
    +# /sbin/ip -6 route add <prefixtoroute2> dev ip6tnl2 metric 1
    +
    +# /sbin/ip -6 tunnel add ip6tnl3 mode ip4ip6 remote
    +¬ <ipv6addressofforeigntunnel3> local <ipv6addresslocal>
    +# /sbin/ip link set dev ip6tnl3 up
    +# /sbin/ip -6 route add <prefixtoroute3> dev ip6tnl3 metric 1

    10.3. Removing point-to-point tunnels

    Usage for removing a tunnel device:

    # /sbin/ip -6 tunnel del <device>

    Usage (generic example for three tunnels):

    # /sbin/ip -6 route del <prefixtoroute1> dev ip6tnl1
    +# /sbin/ip link set ip6tnl1 down
    +# /sbin/ip -6 tunnel del ip6tnl1
    +
    +# /sbin/ip -6 route del <prefixtoroute2> dev ip6tnl2
    +# /sbin/ip link set ip6tnl2 down
    +# /sbin/ip -6 tunnel del ip6tnl2
    +
    +# /sbin/ip -6 route del <prefixtoroute3> dev ip6tnl3
    +# /sbin/ip link set ip6tnl3 down
    +# /sbin/ip -6 tunnel del ip6tnl3 

    11.1. How to access the /proc-filesystem

    11.1.1. Using “cat” and “echo”


    11.1.1.1. Retrieving a value


    11.1.1.2. Setting a value


    11.1.2. Using “sysctl”


    11.1.2.1. Retrieving a value


    11.1.2.2. Setting a value


    11.1.2.3. Additionals


    11.1.3. Values found in /proc-filesystems

    11.2.1. conf/default/*


    11.2.2. conf/all/*


    11.2.2.1. conf/all/forwarding


    11.2.3. conf/interface/*


    11.2.3.1. accept_ra


    11.2.3.2. accept_redirects


    11.2.3.3. autoconf


    11.2.3.4. dad_transmits


    11.2.3.5. forwarding


    11.2.3.6. hop_limit


    11.2.3.7. mtu


    11.2.3.8. router_solicitation_delay


    11.2.3.9. router_solicitation_interval


    11.2.3.10. router_solicitations


    11.2.4. neigh/default/*


    11.2.4.1. gc_thresh1


    11.2.4.2. gc_thresh2


    11.2.4.3. gc_thresh3

    ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), seq=426, pid=0
    ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), +¬ seq=426, pid=0

    11.2.4.4. gc_interval


    11.2.5. neigh/interface/*


    11.2.5.1. anycast_delay


    11.2.5.2. gc_stale_time


    11.2.5.3. proxy_qlen


    11.2.5.4. unres_qlen


    11.2.5.5. app_solicit


    11.2.5.6. locktime


    11.2.5.7. retrans_time


    11.2.5.8. base_reachable_time


    11.2.5.9. mcast_solicit


    11.2.5.10. ucast_solicit


    11.2.5.11. delay_first_probe_time


    11.2.5.12. proxy_delay


    11.2.6. route/*


    11.2.6.1. flush


    11.2.6.2. gc_interval


    11.2.6.3. gc_thresh


    11.2.6.4. mtu_expires


    11.2.6.5. gc_elasticity


    11.2.6.6. gc_min_interval


    11.2.6.7. gc_timeout


    11.2.6.8. min_adv_mss


    11.2.6.9. max_size


    11.3.1. ip_*

    11.3.1.1. ip_local_port_range


    11.3.2. tcp_*


    11.3.3. icmp_*


    11.3.4. others


    11.4.1. if_inet6


    11.4.2. ipv6_route


    11.4.3. sockstat6


    11.4.4. tcp6


    11.4.5. udp6


    11.4.6. igmp6


    11.4.7. raw6


    11.4.8. ip6_flowlabel


    11.4.9. rt6_stats


    11.4.10. snmp6


    11.4.11. ip6_tables_names


    Chapter 13. Address Resolver

    Name to IPv4 or IPv6 address resolving is usually done using a libc resolver library. There are some issues known using the function getaddrinfo.

    More info can be found at Linux & IPv6: getaddrinfo and search domains - Research and RFC 3484 on Linux.

    More to be filled later...


    Chapter 13. Network debugging

    Chapter 14. Network debugging

    13.1. Server socket binding14.1. Server socket binding

    13.1.1. Using “netstat” for server socket binding check14.1.1. Using “netstat” for server socket binding check

    It's always interesting which server sockets are currently active on a node. Using “netstat” is a short way to get such information:

    13.2. Examples for tcpdump packet dumps14.2. Examples for tcpdump packet dumps

    Here some examples of captured packets are shown, perhaps useful for your own debugging...


    13.2.1. Router discovery14.2.1. Router discovery

    13.2.1.1. Router advertisement14.2.1.1. Router advertisement


    13.2.1.2. Router solicitation14.2.1.2. Router solicitation


    13.2.2. Neighbor discovery14.2.2. Neighbor discovery

    13.2.2.1. Neighbor discovery solicitation for duplicate address detection14.2.2.1. Neighbor discovery solicitation for duplicate address detection

    Following packets are sent by a node with layer 2 MAC address “0:12:34:12:34:56” during autoconfiguration to check whether a potential address is already used by another node on the link sending this to the solicited-node link-local multicast address.


    13.2.2.2. Neighbor discovery solicitation for looking for host or gateway14.2.2.2. Neighbor discovery solicitation for looking for host or gateway

    Chapter 14. Support for persistent IPv6 configuration in Linux distributionsChapter 15. Support for persistent IPv6 configuration in Linux distributions

    Some Linux distribution contain already support of a persistent IPv6 configuration using existing or new configuration and script files and some hook in the IPv4 script files.


    14.1. Red Hat Linux and “clones”15.1. Red Hat Linux and “clones”

    Since starting writing the


    14.1.1. Test for IPv6 support of network configuration scripts15.1.1. Test for IPv6 support of network configuration scripts

    You can test, whether your Linux distribution contain support for persistent IPv6 configuration using my set. Following script library should exist:


    14.1.2. Short hint for enabling IPv6 on current RHL 7.1, 7.2, 7.3, ...15.1.2. Short hint for enabling IPv6 on current RHL 7.1, 7.2, 7.3, ...


    14.2. SuSE Linux15.2. SuSE Linux

    In newer 7.x versions there is a really rudimentary support available, see /etc/rc.config for details.


    14.2.1. SuSE Linux 7.315.2.1. SuSE Linux 7.3


    14.2.2. SuSE Linux 8.015.2.2. SuSE Linux 8.0

    14.2.2.1. IPv6 address configuration15.2.2.1. IPv6 address configuration

    Edit file /etc/sysconfig/network/ifcfg-<Interface-Name> and setup following value


    14.2.2.2. Additional information15.2.2.2. Additional information

    See file /usr/share/doc/packages/sysconfig/README


    14.2.3. SuSE Linux 8.115.2.3. SuSE Linux 8.1

    14.2.3.1. IPv6 address configuration15.2.3.1. IPv6 address configuration

    Edit file /etc/sysconfig/network/ifcfg-<Interface-Name> and setup following value


    14.2.3.2. Additional information15.2.3.2. Additional information

    See file /usr/share/doc/packages/sysconfig/Network

    14.3. Debian Linux15.3. Debian Linux

    Following information was contributed by Stephane Bortzmeyer <bortzmeyer at nic dot fr>


    14.3.1. Further information15.3.1. Further information

  • IPv6 on Debian Linux by Craig Small

    IPv6 with Debian Linux

  • Chapter 15. Auto-configurationChapter 16. Auto-configuration

    15.1. Stateless auto-configuration16.1. Stateless auto-configuration

    Is supported and seen on the assigned link-local address after an IPv6-enabled interface is up.


    15.2. Stateful auto-configuration using Router Advertisement Daemon (radvd)16.2. Stateful auto-configuration using Router Advertisement Daemon (radvd)

    to be filled. See


    15.3. Dynamic Host Configuration Protocol v6 (DHCPv6)16.3. Dynamic Host Configuration Protocol v6 (DHCPv6)

    After a long time discussing issues, finally Chapter 16. MobilityChapter 17. Mobility

    16.1. Common information17.1. Common information


    16.1.2. Network Mobility17.1.2. Network Mobility

    There also exists an implementation of network mobility for Linux, it is called NEPL and is based on MIPL. It can also be downloaded from:


    16.1.3. Links17.1.3. Links

  • USAGI-patched Mobile IPv6 for Linux (UMIP):http://umip.linux-ipv6.org/

  • Deploying IPsec/IKE-protected MIPv6 under Linux:http://natisbad.org/MIPv6/

  • RFC 4068 / Fast Handovers for Mobile IPv6

  • RFC 4423 / Host Identity Protocol (HIP) Architecture

  • RFC 5201 / Host Identity Protocol

  • HIP implementations: http://infrahip.hiit.fi/, http://hip4inter.net/, http://www.openhip.org/

  • Chapter 17. FirewallingChapter 18. Firewalling

    IPv6 firewalling is important, especially if using IPv6 on internal networks with global IPv6 addresses. Because unlike at IPv4 networks where in common internal hosts are protected automatically using private IPv4 addresses like 17.1. Firewalling using netfilter618.1. Firewalling using netfilter6

    Native IPv6 firewalling is only supported in kernel versions 2.4+. In older 2.2- you can only filter IPv6-in-IPv4 by protocol 41.

    Audit your ruleset after installation, see Section 18.3Section 19.3 for more.

    Since kernel version 2.6.20 IPv6 connection tracking is fully working (and does not break IPv4 NAT anymore like versions before)


    17.1.1. More information18.1.1. More information


    17.2. Preparation18.2. Preparation

    This step is only needed if distributed kernel and netfilter doesn't fit your requirements and new features are available but still not built-in.


    17.2.1. Get sources18.2.1. Get sources

    Get the latest kernel source:


    17.2.2. Extract sources18.2.2. Extract sources

    Change to source directory:


    17.2.3. Apply latest iptables/IPv6-related patches to kernel source18.2.3. Apply latest iptables/IPv6-related patches to kernel source

    Change to iptables directory


    17.2.4. Configure, build and install new kernel18.2.4. Configure, build and install new kernel

    Change to kernel sources


    17.2.5. Rebuild and install binaries of iptables18.2.5. Rebuild and install binaries of iptables

    Make sure, that upper kernel source tree is also available at /usr/src/linux/


    17.3. Usage18.3. Usage

    17.3.1. Check for support18.3.1. Check for support

    Load module, if so compiled


    17.3.2. Learn how to use ip6tables18.3.2. Learn how to use ip6tables

    17.3.2.1. List all IPv6 netfilter entries18.3.2.1. List all IPv6 netfilter entries


    17.3.2.2. List specified filter18.3.2.2. List specified filter


    17.3.2.3. Insert a log rule at the input filter with options18.3.2.3. Insert a log rule at the input filter with options


    17.3.2.4. Insert a drop rule at the input filter18.3.2.4. Insert a drop rule at the input filter


    17.3.2.5. Delete a rule by number18.3.2.5. Delete a rule by number


    17.3.2.6. Enable connection tracking18.3.2.6. Enable connection tracking

    Since kernel version 2.6.20 IPv6 connection tracking is well supported and should be used instead of using stateless filter rules.


    17.3.2.7. Allow ICMPv618.3.2.7. Allow ICMPv6

    Using older kernels (unpatched kernel 2.4.5 and iptables-1.2.2) no type can be specified


    17.3.2.8. Rate-limiting18.3.2.8. Rate-limiting

    Because it can happen (author already saw it to times) that an ICMPv6 storm will raise up, you should use available rate limiting for at least ICMPv6 ruleset. In addition logging rules should also get rate limiting to prevent DoS attacks against syslog and storage of log file partition. An example for a rate limited ICMPv6 looks like:


    17.3.2.9. Allow incoming SSH18.3.2.9. Allow incoming SSH

    Here an example is shown for a ruleset which allows incoming SSH connection from a specified IPv6 address


    17.3.2.10. Enable tunneled IPv6-in-IPv418.3.2.10. Enable tunneled IPv6-in-IPv4

    To accept tunneled IPv6-in-IPv4 packets, you have to insert rules in your IPv4 firewall setup relating to such packets, for example


    17.3.2.11. Protection against incoming TCP connection requests18.3.2.11. Protection against incoming TCP connection requests

    VERY RECOMMENDED! For security issues you should really insert a rule which blocks incoming TCP connection requests. Adapt "-i" option, if other interface names are in use!


    17.3.2.12. Protection against incoming UDP connection requests18.3.2.12. Protection against incoming UDP connection requests

    ALSO RECOMMENDED! Like mentioned on my firewall information it's possible to control the ports on outgoing UDP/TCP sessions. So if all of your local IPv6 systems are using local ports e.g. from 32768 to 60999 you are able to filter UDP connections also (until connection tracking works) like:


    17.3.3. Examples18.3.3. Examples

    17.3.3.1. Simple example for Fedora Core18.3.3.1. Simple example for Fedora

    Following lines show a simple firewall configuration for Fedora Core 6 (since kernel version 2.6.20). It was modfied from the default one (generated by system-config-firewall) for supporting connection tracking and return the proper ICMPv6 code for rejects. Incoming SSH (port 22) connections are allowed.

    Following lines show a simple firewall configuration for Fedora 6 (since kernel version 2.6.20). It was modfied from the default one (generated by system-config-firewall) for supporting connection tracking and return the proper ICMPv6 code for rejects. Incoming SSH (port 22) connections are allowed.


    17.3.3.2. Sophisticated example18.3.3.2. Sophisticated example

    Following lines show a more sophisticated but still stateless filter setup as an example. Happy netfilter6 ruleset creation....

    Chapter 18. SecurityChapter 19. Security

    18.1. Node security19.1. Node security

    It's very recommended to apply all available patches and disable all not necessary services. Also bind services to the needed IPv4/IPv6 addresses only and install local firewalling.


    18.2. Access limitations19.2. Access limitations

    Many services uses the tcp_wrapper library for access control. Below is described the 18.3. IPv6 security auditing19.3. IPv6 security auditing

    Currently there are no comfortable tools out which are able to check a system over network for IPv6 security issues. Neither


    18.3.1. Legal issues19.3.1. Legal issues

    ATTENTION: always take care that you only scan your own systems or after receiving a written order, otherwise legal issues are able to come up to you. @@ -10960,8 +11201,8 @@ CLASS="SECT2" >


    18.3.2. Security auditing using IPv6-enabled netcat19.3.2. Security auditing using IPv6-enabled netcat

    With the IPv6-enabled netcat (see


    18.3.3. Security auditing using IPv6-enabled nmap19.3.3. Security auditing using IPv6-enabled nmap


    18.3.4. Security auditing using IPv6-enabled strobe19.3.4. Security auditing using IPv6-enabled strobe

    Strobe is a (compared to NMap) more a low budget portscanner, but there is an IPv6-enabling patch available (see


    18.3.5. Audit results19.3.5. Audit results

    If the result of an audit mismatch your IPv6 security policy, use IPv6 firewalling to close the holes, e.g. using netfilter6 (see Chapter 19. Encryption and AuthenticationChapter 20. Encryption and Authentication

    Unlike in IPv4, encryption and authentication is a mandatory feature of IPv6. Those features are normally implemented using IPsec (which can be also used by IPv4).


    19.1. Modes of using encryption and authentication20.1. Modes of using encryption and authentication

    Two modes of encryption and authentication of a connection are possible:


    19.1.1. Transport mode20.1.1. Transport mode

    Transport mode is a real end-to-end connection mode. Here, only the payload (usually ICMP, TCP or UDP) is encrypted with their particular header, while the IP header is not encrypted (but usually included in authentication).


    19.1.2. Tunnel mode20.1.2. Tunnel mode

    Tunnel mode can be used either for end-to-end or for gateway-to-gateway connection modes. Here, the complete IP packet is being encrypted and gets a new IP header prepended, all together constituing a new IP packet (this mechanism is also known as "encapsulation")


    19.2. Support in kernel (ESP and AH)20.2. Support in kernel (ESP and AH)

    19.2.1. Support in vanilla Linux kernel 2.4.x20.2.1. Support in vanilla Linux kernel 2.4.x

    At the time of writing missing in vanilla up to 2.4.28. There was an issue about keeping the Linux kernel source free of export/import-control-laws regarding encryption code. This is also one case why


    19.2.2. Support in vanilla Linux kernel 2.6.x20.2.2. Support in vanilla Linux kernel 2.6.x

    Current versions (as time of writing 2.6.9 and upper) support native IPsec for IPv4 and IPv6.


    19.3. Automatic key exchange (IKE)20.3. Automatic key exchange (IKE)

    IPsec requires a key exchange of a secret. This is mostly done automatically by so called IKE daemons. They also handle the authentication of the peers, either by a common known secret (so called “pre-shared secret”) or by RSA keys (which can also be used from X.509 certificates).


    19.3.1. IKE daemon “racoon”20.3.1. IKE daemon “racoon”

    The IKE daemon “racoon” is taken from the KAME project and ported to Linux. Modern Linux distributions contain this daemon in the package “ipsec-tools”. Two executables are required for a proper IPsec setup. Take a look on


    19.3.1.1. Manipulation of the IPsec SA/SP database with the tool “setkey”20.3.1.1. Manipulation of the IPsec SA/SP database with the tool “setkey”

    “setkey” is important to define the security policy (SP) for the kernel.


    19.3.1.2. Configuration of the IKE daemon “racoon”20.3.1.2. Configuration of the IKE daemon “racoon”

    “racoon” requires a configuration file for proper execution. It includes the related settings to the security policy, which should be set up previously using “setkey”.


    19.3.1.3. Running IPsec with IKE daemon “racoon”20.3.1.3. Running IPsec with IKE daemon “racoon”

    At least the daemon needs to be started. For the first time, use debug and foreground mode. The following example shows a successful IKE phase 1 (ISAKMP-SA) and 2 (IPsec-SA) negotiation:

    # racoon -F -v -f /etc/racoon/racoon.conf Foreground mode. -2005-01-01 20:30:15: INFO: @(#)ipsec-tools 0.3.3 (http://ipsec-tools.sourceforge.net) +2005-01-01 20:30:15: INFO: @(#)ipsec-tools 0.3.3 +¬ (http://ipsec-tools.sourceforge.net) 2005-01-01 20:30:15: INFO: @(#)This product linked ¬ OpenSSL 0.9.7a Feb 19 2003 (http://www.openssl.org/) 2005-01-01 20:30:15: INFO: 2001:db8:1:1::1[500] used as isakmp port (fd=7) @@ -11479,8 +11721,8 @@ CLASS="SECT2" >

    19.3.2. IKE daemon “pluto”20.3.2. IKE daemon “pluto”

    The IKE daemon “pluto” is included in distributions of the *S/WAN projects. *S/WAN project starts at the beginning as


    19.3.2.1. Configuration of the IKE daemon “pluto”20.3.2.1. Configuration of the IKE daemon “pluto”

    The configuration is very similar to the IPv4 one, only one important option is necessary.


    19.3.2.2. Running IPsec with IKE daemon “pluto”20.3.2.2. Running IPsec with IKE daemon “pluto”

    If installation of Openswan was successfully, an initscript should exist for starting IPsec, simply run (on each peer):


    19.4. Additional informations:20.4. Additional informations:

    On Linux Kernel 2.6.x you can get the policy and status of IPsec also using “ip”:

    Chapter 20. Quality of Service (QoS)Chapter 21. Quality of Service (QoS)

    IPv6 supports QoS with use of Flow Labels and Traffic Classes. This can be controlled using “tc” (contained in package “iproute”).

    Chapter 21. Hints for IPv6-enabled daemonsChapter 22. Hints for IPv6-enabled daemons

    Here some hints are shown for IPv6-enabled daemons.

    21.1. Berkeley Internet Name Domain (BIND) daemon “named”22.1. Berkeley Internet Name Domain (BIND) daemon “named”

    IPv6 is supported since version 9. Always use newest available version. At least version 9.1.3 must be used, older versions can contain remote exploitable security holes.


    21.1.1. Listening on IPv6 addresses22.1.1. Listening on IPv6 addresses

    Note: unlike in IPv4 current versions doesn't allow to bind a server socket to dedicated IPv6 addresses, so only


    21.1.1.1. Enable BIND named for listening on IPv6 address22.1.1.1. Enable BIND named for listening on IPv6 address

    To enable IPv6 for listening, following options are requested to change


    21.1.1.2. Disable BIND named for listening on IPv6 address22.1.1.2. Disable BIND named for listening on IPv6 address

    To disable IPv6 for listening, following options are requested to change


    21.1.2. IPv6 enabled Access Control Lists (ACL)22.1.2. IPv6 enabled Access Control Lists (ACL)

    IPv6 enabled ACLs are possible and should be used whenever it's possible. An example looks like following:


    21.1.3. Sending queries with dedicated IPv6 address22.1.3. Sending queries with dedicated IPv6 address

    This option is not required, but perhaps needed:


    21.1.4. Per zone defined dedicated IPv6 addresses22.1.4. Per zone defined dedicated IPv6 addresses

    It's also possible to define per zone some IPv6 addresses.


    21.1.4.1. Transfer source address22.1.4.1. Transfer source address

    Transfer source address is used for outgoing zone transfers:


    21.1.4.2. Notify source address22.1.4.2. Notify source address

    Notify source address is used for outgoing notify messages:


    21.1.5. IPv6 DNS zone files examples22.1.5. IPv6 DNS zone files examples

    Some information can be also found at


    21.1.6. Serving IPv6 related DNS data22.1.6. Serving IPv6 related DNS data

    For IPv6 new types and root zones for reverse lookups are defined:


    21.1.6.1. Current best practice22.1.6.1. Current best practice

    Because there are some troubles around using the new formats, current best practice is:


    21.1.7. Checking IPv6-enabled connect22.1.7. Checking IPv6-enabled connect

    To check, whether BIND named is listening on an IPv6 socket and serving data see following examples.


    21.1.7.1. IPv6 connect, but denied by ACL22.1.7.1. IPv6 connect, but denied by ACL

    Specifying a dedicated server for the query, an IPv6 connect can be forced:


    21.1.7.2. Successful IPv6 connect22.1.7.2. Successful IPv6 connect

    A successful IPv6 connect looks like following:

    21.2. Internet super daemon (xinetd)22.2. Internet super daemon (xinetd)

    IPv6 is supported since 21.3. Webserver Apache2 (httpd2)22.3. Webserver Apache2 (httpd2)

    Apache web server supports IPv6 native by maintainers since 2.0.14. Available patches for the older 1.3.x series are not current and shouldn't be used in public environment, but available at


    21.3.1. Listening on IPv6 addresses22.3.1. Listening on IPv6 addresses

    Note: virtual hosts on IPv6 addresses are broken in versions until 2.0.28 (a patch is available for 2.0.28). But always try latest available version first because earlier versions had some security issues.


    21.3.1.1. Virtual host listen on an IPv6 address only22.3.1.1. Virtual host listen on an IPv6 address only


    21.3.1.2. Virtual host listen on an IPv6 and on an IPv4 address22.3.1.2. Virtual host listen on an IPv6 and on an IPv4 address


    21.3.1.3. Additional notes22.3.1.3. Additional notes

    21.4. Router Advertisement Daemon (radvd)22.4. Router Advertisement Daemon (radvd)

    The router advertisement daemon is very useful on a LAN, if clients should be auto-configured. The daemon itself should run on the Linux default IPv6 gateway router (it's not required that this is also the default IPv4 gateway, so pay attention who on your LAN is sending router advertisements).


    21.4.1. Configuring radvd22.4.1. Configuring radvd

    21.4.1.1. Simple configuration22.4.1.1. Simple configuration

    Radvd's config file is normally /etc/radvd.conf. An simple example looks like following:


    21.4.1.2. Special 6to4 configuration22.4.1.2. Special 6to4 configuration

    Version since 0.6.2pl3 support the automatic (re)-generation of the prefix depending on an IPv4 address of a specified interface. This can be used to distribute advertisements in a LAN after the 6to4 tunneling has changed. Mostly used behind a dynamic dial-on-demand Linux router. Because of the sure shorter lifetime of such prefix (after each dial-up, another prefix is valid), the lifetime configured to minimal values:


    21.4.2. Debugging22.4.2. Debugging

    A program called “radvdump” can help you looking into sent or received advertisements. Simple to use:

    21.5. Dynamic Host Configuration v6 Server (dhcp6s)22.5. Dynamic Host Configuration v6 Server (dhcp6s)

    DHCPv6 can be used for stateful configurations. The daemon itself need not necessary run on the Linux default IPv6 gateway router.


    21.5.1. Configuration of the DHCPv6 server (dhcp6s)22.5.1. Configuration of the DHCPv6 server (dhcp6s)

    21.5.1.1. Simple configuration22.5.1.1. Simple configuration

    dhcp6s's config file is normally /etc/dhcp6s.conf. An simple example looks like following:


    21.5.2. Configuration of the DHCPv6 client (dhcp6c)22.5.2. Configuration of the DHCPv6 client (dhcp6c)

    21.5.2.1. Simple configuration22.5.2.1. Simple configuration

    dhcp6c's config file is normally /etc/dhcp6c.conf. An simple example looks like following:


    21.5.3. Usage22.5.3. Usage

    21.5.3.1. dhcpv6_server22.5.3.1. dhcpv6_server

    Start server, e.g.


    21.5.3.2. dhcpv6_client22.5.3.2. dhcpv6_client

    Start client in foreground, e.g.


    21.5.4. Debugging22.5.4. Debugging

    21.5.4.1. dhcpv6_server22.5.4.1. dhcpv6_server

    The server has one foreground and two debug toggles (both should be used for debugging), here is an example:


    21.5.4.2. dhcpv6_client22.5.4.2. dhcpv6_client

    The client has one foreground and two debug toggles, here is an example:

    21.6. tcp_wrapper22.6. tcp_wrapper

    tcp_wrapper is a library which can help you to protect service against misuse.


    21.6.1. Filtering capabilities22.6.1. Filtering capabilities

    You can use tcp_wrapper for


    21.6.2. Which program uses tcp_wrapper22.6.2. Which program uses tcp_wrapper

    Following are known:


    21.6.3. Usage22.6.3. Usage

    tcp_wrapper is controlled by two files name /etc/hosts.allow and /etc/hosts.deny. For more information see


    21.6.3.1. Example for /etc/hosts.allow22.6.3.1. Example for /etc/hosts.allow

    In this file, each service which should be positive filtered (means connects are accepted) need a line.


    21.6.3.2. Example for /etc/hosts.deny22.6.3.2. Example for /etc/hosts.deny

    This file contains all negative filter entries and should normally deny the rest using


    21.6.4. Logging22.6.4. Logging

    Depending on the entry in the syslog daemon configuration file /etc/syslog.conf the tcp_wrapper logs normally into /var/log/secure.


    21.6.4.1. Refused connection22.6.4.1. Refused connection

    A refused connection via IPv4 to an xinetd covered daytime service produces a line like following example


    21.6.4.2. Permitted connection22.6.4.2. Permitted connection

    A permitted connection via IPv4 to an xinetd covered daytime service produces a line like following example

    21.7. vsftpd22.7. vsftpd

    21.7.1. Listening on IPv6 addresses22.7.1. Listening on IPv6 addresses

    Edit the configuration file, ususally /etc/vsftpd/vsftpd.conf, and adjust the listen option like

    21.8. proftpd22.8. proftpd

    21.8.1. Listening on IPv6 addresses22.8.1. Listening on IPv6 addresses

    Edit the configuration file, ususally /etc/proftpd.conf, but take care, not 100% logical in virtual host setup

    21.9. Other daemons22.9. Other daemons

    Nowadays it's mostly simple, look for either a command line option or a configuration value to enable IPv6 listening. See manual page of the daemon or check related FAQs. It can happen that you can bind a daemon only to the IPv6-“any”-address (::) and not to bind to a dedicated IPv6 address, because the lack of support (depends on that what the programmer has implemented so far...).

    Chapter 22. ProgrammingChapter 23. Programming

    22.1. Programming using C-API23.1. Programming using C-API

    Related RFCs:

    This section describes how to write IPv6 client-server applications under the Linux operating system. First thing's first, and credit must be given where it is due. The information contained in this section is derived from Chapters 2 through 4 of IPv6 Network Programming by Jun-ichiro itojun Hagino (ISBN 1-55558-318-0). The reader is encouraged to consult that book for more detailed information. It describes how to convert IPv4 applications to be IPv6 compatible in a protocol-independent way, and describes some of the common problems encountered during the conversion along with suggested solutions. At the time of this writing, this is the only book of which the author is aware that specifically addresses how to program IPv6 applications [since writing this section, the author has also become aware of the Porting applications to IPv6 HowTo by Eva M. Castro at Since writing this HowTo, the author has also become aware of the Porting applications to IPv6 HowTo by Eva M. Castro at http://jungla.dit.upm.es/~ecastro/IPv6-web/ipv6.htmlhttp://jungla.dit.upm.es/~ecastro/IPv6-web/ipv6.html]. Unfortunately, of the almost 360 pages in the book, maybe 60 are actually useful (the chapters mentioned). Nevertheless, without the guidance of that book, the author would have been unable to perform his job duties or compose this HowTo. While most (but certainly not all) of the information in the Hagino book is available via the Linux 'man' pages, application programmers will save a significant amount of time and frustration by reading the indicated chapters of the book rather than searching through the 'man' pages and online documentation.

    Other than the Hagino book, any other information presented in this HowTo was obtained through trial and error. Some items or explanations may not be entirely “correct” in the grand IPv6 scheme, but seem to work in practical application.


    22.1.1. Address Structures23.1.1. Address Structures

    This section provides a brief overview of the structures provided in the socket API to represent network addresses (or more specifically transport endpoints) when using the Internet protocols in a client-server application.


    22.1.1.1. IPv4 sockaddr_in23.1.1.1. IPv4 sockaddr_in

    In IPv4, network addresses are 32 bits long and define a network node. Addresses are written in dotted decimal notation, such as 192.0.2.1, where each number represents eight bits of the address. Such an IPv4 address is represented by the struct sockaddr_in data type, which is defined in <netinet/in.h>.


    22.1.1.2. IPv6 sockaddr_in623.1.1.2. IPv6 sockaddr_in6

    The biggest feature of IPv6 is its increased address space. Instead of 32-bit network addresses, IPv6 allots 128 bits to an address. Addresses are written in colon-hex notation of the form fe80::2c0:8cff:fe01:2345, where each hex number separated by colons represents 16 bits of the address. Two consecutive colons indicate a string of consecutive zeros for brevity, and at most only one double-colon may appear in the address. IPv6 addresses are represented by the struct sockaddr_in6 data type, also defined in <netinet/in.h>.


    22.1.1.3. Generic Addresses23.1.1.3. Generic Addresses

    As any programmer familiar with the traditional TCP/IP socket API knows, several socket functions deal with "generic" pointers. For example, a pointer to a generic struct sockaddr data type is passed as a parameter to some socket functions (such as connect(2) or bind(2)) rather than a pointer to a specific address type. Be careful... the sockaddr_in6 structure is larger than the generic sockaddr structure! Thus, if your program receives a generic address whose actual type is unknown (e.g. it could be an IPv4 address structure or an IPv6 address structure), you must supply sufficient storage to hold the entire address. The struct sockaddr_storage data type is defined in <bits/socket.h> for this purpose [do not #include this file directly within an application; use <sys/socket.h> as usual, and <bits/socket.h> will be implicitly included].


    22.1.2. Lookup Functions23.1.2. Lookup Functions

    Traditionally, hostname and service name resolution were performed by functions such as gethostbyname(3) and getservbyname(3). These traditional lookup functions are still available, but they are not forward compatible to IPv6. Instead, the IPv6 socket API provides new lookup functions that consolidate the functionality of several traditional functions. These new lookup functions are also backward compatible with IPv4, so a programmer can use the same translation algorithm in an application for both the IPv4 and IPv6 protocols. This is an important feature, because obviously a global IPv6 infrastructure isn't going to be put in place overnight. Thus, during the transition period from IPv4 to IPv6, client-server applications should be designed with the flexibility to handle both protocols simultaneously. The example programs at the end of this chapter do just that.


    22.1.3. Quirks Encountered23.1.3. Quirks Encountered

    Before jumping into the programming examples, there are several quirks in IPv6 of which the reader should be aware. The more significant ones (in addition to the non-uniqueness of IPv6 network addresses already discussed) are described in the paragraphs below.


    22.1.3.1. IPv4 Mapped Addresses23.1.3.1. IPv4 Mapped Addresses

    For security reasons that this author won't pretend to understand, "IPv4 mapped addresses" should not be allowed in IPv6-capable server applications. To put it in terms that everyone can understand, this simply means that a server should not accept IPv4 traffic on an IPv6 socket (an otherwise legal operation). An IPv4 mapped address is a mixed-format address of the form:


    22.1.3.2. Cannot Specify the Scope Identifier in /etc/hosts23.1.3.2. Cannot Specify the Scope Identifier in /etc/hosts

    It is possible to assign a hostname to an IPv6 network address in /etc/hosts. For example, the following is an excerpt from the /etc/hosts file on the author's development system.


    22.1.3.3. Client & Server Residing on the Same Machine23.1.3.3. Client & Server Residing on the Same Machine

    Suppose a machine has the IPv4 address 192.0.2.1. A client application running on that machine can connect to a server application on the same machine by using either the local loopback address (127.0.0.1) or the network address (192.0.2.1) as the target server. Much to this author's surprise (and dismay), it turns out that an IPv6 client application cannot connect to a server application on the same machine if it uses the network address of that machine as the target; it must use the local loopback address (::1).


    22.1.4. Putting It All Together (A Client-Server Programming Example)23.1.4. Putting It All Together (A Client-Server Programming Example)

    Now it's time to put everything discussed thus far together into a sample client-server application. The remainder of this section is devoted to a remote time-of-day application (the 'daytime' Internet service) [I noticed that Ms. Castro used a 'daytime' example in her Porting applications to IPv6 HowTo. For the record, the source code presented here is original, developed from scratch, and any similarity between it and any other publicly available 'daytime' example is purely coincidental.]. The source code presented in this section was developed and tested on a RedHat Linux release using the 2.6 kernel (2.6.9 to be specific). Readers may use the source code freely, so long as proper credit is attributed; but of course the standard disclaimer must be given first:


    22.1.4.1. 'Daytime' Server Code23.1.4.1. 'Daytime' Server Code

    The server code is found in file tod6d.c (time-of-day IPv6 daemon). Once built, the server may be started using the following command syntax (assuming tod6d is the executable file):


    22.1.4.2. 'Daytime' TCP Client Code23.1.4.2. 'Daytime' TCP Client Code

    The TCP client code is found in file tod6tc.c (time-of-day IPv6 TCP client). Once built, the TCP client may be started using the following command syntax (assuming tod6tc is the executable file):


    22.1.4.3. 'Daytime' UDP Client Code23.1.4.3. 'Daytime' UDP Client Code

    The UDP client code is found in file tod6uc.c (time-of-day IPv6 UDP client). It is almost an exact duplicate of the TCP client (and in fact was derived from it), but is included in this HowTo for completeness. Once built, the UDP client may be started using the following command syntax (assuming tod6uc is the executable file):


    22.2. Other programming languages23.2. Other programming languages

    22.2.1. JAVA23.2.1. JAVA

    Sun Java versions since 1.4 are IPv6 enabled, see e.g.


    22.2.2. Perl23.2.2. Perl

    As of May 2007 it's not known that the Perl core itself already supports IPv6. It can be added by using following modules:

    Chapter 23. InteroperabilityChapter 24. Interoperability

    The Chapter 24. Further information and URLsChapter 25. Further information and URLs

    24.1. Paper printed books, articles, online reviews (mixed)25.1. Paper printed books, articles, online reviews (mixed)

    24.1.1. Printed Books (English)25.1.1. Printed Books (English)

    24.1.1.1. Cisco25.1.1.1. Cisco


    24.1.1.2. General25.1.1.2. General

    Understanding IPV6 by Davies, Joseph; ISBN 0735612455; Date Published 05/01/2001; Number of Pages: 350. -Understanding IPV6 by Davies, Joseph; ISBN 0735612455; Date Published 13/11/2002; Number of Pages 544.

    by Davies, Joseph; ISBN 0735612455; Date Published 05/01/2001; Number of Pages: 350.


  • 24.1.2. Articles, eBooks, Online Reviews (mixed)25.1.2. Articles, eBooks, Online Reviews (mixed)

  • Aufbruch in die neue Welt - IPv6 in IPv4 Netzen by Dipl.Ing. Ralf Döring, TU Illmenau, 1999

  • Migration and Co-existence of IPv4 and IPv6 in Residential Networks24.1.3. Science Publications (abstracts, bibliographies, online resources)25.1.3. Science Publications (abstracts, bibliographies, online resources)

    See also:


    24.1.4. Others25.1.4. Others

    See following URL for more: 24.2. Conferences, Meetings, Summits25.2. Conferences, Meetings, Summits

    24.2.1. 2002

    Something missing? Suggestions are welcome!


    24.2.2. 2003

    Suggestions are welcome!


    24.2.3. 200425.2.1. 2004

    24.3. Online information25.3. Online information
    24.3.1. Join the IPv6 backbone25.3.1. Join the IPv6 backbone

    More to be filled later...suggestions are welcome!

    24.3.1.1. Global registries25.3.1.1. Global registries

    See regional registries.

    24.3.1.2. Major regional registries25.3.1.2. Major regional registries

    24.3.1.3. Tunnel brokers25.3.1.3. Tunnel brokers

    Note: A list of available Tunnel broker can be found in the section 24.3.1.4. 6to425.3.1.4. 6to4

    24.3.1.5. ISATAP25.3.1.5. ISATAP


    24.3.2. Latest news and URLs to other documents25.3.2. Latest news and URLs to other documents


    24.3.3. Protocol references25.3.3. Protocol references

    24.3.3.1. IPv6-related Request For Comments (RFCs)25.3.3.1. IPv6-related Request For Comments (RFCs)

    Publishing the list of IPv6-related RFCs is beyond the scope of this document, but given URLs will lead you to such lists:


    24.3.3.2. Current drafts of working groups25.3.3.2. Current drafts of working groups

    Current (also) IPv6-related drafts can be found here:


    24.3.3.3. Others25.3.3.3. Others


    24.3.4. More information25.3.4. More information


    24.3.4.1. Linux related25.3.4.1. Linux related

    Linux Optimized Link State Routing Protocol (OLSR) IPv6 HOWTO

  • LinShim6


  • 24.3.4.2. Linux related per distribution25.3.4.2. Linux related per distribution

    Fedora Core
    Fedora

    Debian Linux, Craig Small's IPv6 information and statusIPv6 with Debian Linux


    24.3.4.3. General25.3.4.3. General

  • UK IPv6 Resource Centre - UK

  • WIDE project

  • IP Next Generation Overview

  • IPv6: The New Version of the Internet Protocolinternet2 Working Group - Presentation (HTML + PPT) from IPv6 Workshops: (Stateless Autoconfiguration, IPv6 Addressing, USAGI, Provider Independent IPv6 Addressing and other topics).

  • IPv6 & TCP Resources List

  • Klingon IPv6 tools, Klingon IPv6 tools (native IPv6 only access): IPv6 firewall examples, bandwith testing and portscanner

  • Something missing? Suggestions are welcome!

    24.3.4.4. Market Research25.3.4.4. Market Research

    24.3.4.5. Patents25.3.4.5. Patents


    24.3.5.7. Czech

    Suggestions are welcome!


    24.3.5.8. Germany25.3.5.6. China

    Suggestions are welcome!


    25.3.5.7. Czech

    Suggestions are welcome!

    24.3.5.16. Russia25.3.5.16. Russia

    24.3.5.17. Switzerland25.3.5.17. Switzerland

    • SWITCH: The Swiss Education & Research Network

    Suggestions are welcome!


    24.3.5.18. United Kingdom25.3.5.18. United Kingdom

  • UK IPv6 Resource Center

  • British Telecom IPv6 Home


    24.3.6. By operating systems25.3.6. By operating systems

    24.3.6.1. *BSD25.3.6.1. *BSD

    FreeBSD Ports: Ipv6

  • BUGAT - BSD Usergroup Austria - www.bugat.at: FreeBSD IPv6 Tunnel (German language)


  • 24.3.6.2. Cisco IOS25.3.6.2. Cisco IOS


    24.3.6.3. Compaq


    24.3.6.7. Solaris25.3.6.6. Solaris


    24.3.6.8. Sumitoma25.3.6.7. Sumitoma


    24.3.6.9. ZebOS25.3.6.8. ZebOS

    24.3.7. IPv6 Security25.3.7. IPv6 Security

    NewOrder.box.sk (search for IPv6) (Articles, exploits, files database etc.)

  • THC IPv6 Attack Toolkit


  • 24.3.8. Application lists25.3.8. Application lists


    24.3.8.1. Analyzer tools25.3.8.1. Analyzer tools


    24.3.8.2. IPv6 Products25.3.8.2. IPv6 Products

    Posadis 0.50.6

  • TCP Wrapper (IPv6 aware)

  • 24.3.8.3. SNMP25.3.8.3. SNMP


    24.4. IPv6 Infrastructure25.4. IPv6 Infrastructure

    24.4.1. Statistics25.4.1. Statistics


    24.4.2. Internet Exchanges25.4.2. Internet Exchanges

    Another list of IPv6 Internet Exchanges can be found here: 24.4.2.1. Estonia25.4.2.1. Estonia

    24.4.2.2. Europe25.4.2.2. Europe

    24.4.2.3. France25.4.2.3. France

    24.4.2.4. Germany25.4.2.4. Germany

    24.4.2.5. Japan25.4.2.5. Japan

    24.4.2.6. Korea25.4.2.6. Korea

    24.4.2.7. Netherlands25.4.2.7. Netherlands

    24.4.2.8. UK25.4.2.8. UK

    24.4.2.9. USA25.4.2.9. USA

  • NY6IX: New York City IPv6 based Internet Exchange

  • PAIX24.4.3. Tunnel broker25.4.3. Tunnel broker

    See also: 24.4.3.1. Belgium25.4.3.1. Belgium

    Something missing? Suggestions are welcome!

    24.4.3.2. Canada25.4.3.2. Canada

    24.4.3.3. China25.4.3.3. China

    Something missing? Suggestions are welcome!

    24.4.3.4. Estonia25.4.3.4. Estonia

    24.4.3.5. Germany25.4.3.5. Germany

    24.4.3.6. Italy25.4.3.6. Italy

    24.4.3.7. Japan25.4.3.7. Japan

    Something missing? Suggestions are welcome!

  • 24.4.3.8. Malaysia25.4.3.8. Malaysia

    Something missing? Suggestions are welcome!

    24.4.3.9. Netherlands25.4.3.9. Netherlands

    24.4.3.10. Norway25.4.3.10. Norway

    24.4.3.11. Spain25.4.3.11. Spain

    24.4.3.12. Switzerland25.4.3.12. Switzerland

    Something missing? Suggestions are welcome!

    24.4.3.13. UK25.4.3.13. UK

    NTT, United Kingdom - IPv6 Trial. IPv4 Tunnel and native IPv6 leased Line connections. POPs are located in London, UK Dusseldorf, Germany New Jersey, USA (East Coast) Cupertino, USA (West Coast) Tokyo, Japan

  • BtexacT IPv6 Tunnel Broker Service

  • IPNG-UK

  • 24.4.3.14. USA25.4.3.14. USA

    24.4.3.15. Singapore25.4.3.15. Singapore

    Something missing? Suggestions are welcome!

    24.4.3.16. More Tunnel brokers...25.4.3.16. More Tunnel brokers...

    24.4.4. Native IPv6 Services25.4.4. Native IPv6 Services

    Note: These services are mostly only available with a valid IPv6 connection!

    24.4.4.1. Net News (NNTP)25.4.4.1. Net News (NNTP)

    Something missing? Suggestions are welcome!

    24.4.4.2. Game Server25.4.4.2. Game Server

    24.4.4.3. IRC Server25.4.4.3. IRC Server

    Something missing? Suggestions are welcome!


    24.4.4.4. Radio Stations, Music Streams25.4.4.4. Radio Stations, Music Streams

    Something missing? Suggestions are welcome!

    24.4.4.5. Webserver25.4.4.5. Webserver

    24.5. Maillists25.5. Maillists

    Lists of maillists are available at:

    FocusRequest e-mail addressWhat to subscribeMaillist e-mail addressLanguageAccess through WWWLinux kernel networking including IPv6majordomo (at) vger.kernel.orgnetdevnetdev (at) vger.kernel.orgEnglishMobile IP(v6) for LinuxWeb-based, see URLmiplmipl (at) mobile-ipv6.orgEnglishLinux IPv6 users using USAGI extensionusagi-users-ctl (at) linux-ipv6.orgusagi-users (at) linux-ipv6.orgEnglishIPv6 on Debian Linuxdebian-ipv6 (at) lists.debian.orgEnglish6bonemajordomo (at) isi.edu6bone6bone (at) isi.eduEnglishIPv6 users in generalmajordomo (at) ipv6.orgusersusers (at) ipv6.orgEnglishBugtracking of Internet applications (1)bugtraq-subscribe (at) securityfocus.combugtraq (at) securityfocus.com (2)English24.6. Online tools25.6. Online tools

    24.6.1. Testing tools25.6.1. Testing tools


    24.6.2. Information retrievement25.6.2. Information retrievement


    24.6.3. IPv6 Looking Glasses25.6.3. IPv6 Looking Glasses


    24.6.4. Helper applications25.6.4. Helper applications

    24.7. Trainings, Seminars25.7. Trainings, Seminars

  • IPv6 Training and Workshop, AERAsec, Germany (German language only at this time)

  • CIW Internetworking Professional Training CBT CD24.8. 'The Online Discovery' ...25.8. 'The Online Discovery' ...

    IPv6: Addressing The Needs Of the Future by Yankee Group (Author) @@ -19393,16 +19265,16 @@ Publisher: MarketResearch.com; ISBN B00006334Y; (November 1, 2001)


    Chapter 25. Revision history / Credits / The End

    Chapter 26. Revision history / Credits / The End

    25.1. Revision history26.1. Revision history

    Versions x.y are published on the Internet.


    25.1.1. Releases 0.x26.1.1. Releases 0.x

    0.63

    2009-02-14/PB: Fix FSF address, major update on 4in6 tunnels, add new section for address resolving, add some URLs, remove broken URLs

    0.62

    2008-11-09/PB: Adjust URL to Turkish howto, add some HIP related URLs, remove broken URLs

    0.61.1

    25.2. Credits26.2. Credits

    The quickest way to be added to this nice list is to send bug fixes, corrections, and/or updates to me ;-).

    25.2.1. Major credits26.2.1. Major credits

    John Wenker <jjw at pt dot com>: major contribution to Programming using C-API

  • Srivats P. <Srivats dot P at conexant dot com>: major contribution for 4in6 tunnels


  • 25.2.2. Other credits26.2.2. Other credits

    25.2.2.1. Document technique related26.2.2.1. Document technique related

    Writing a LDP HOWTO as a newbie (in LyX and exporting this to DocBook to conform to SGML) isn't as easy as some people say. There are some strange pitfalls... Nevertheless, thanks to:

    25.2.2.2. Content related credits26.2.2.2. Content related credits

    Credits for fixes and hints are listed here, will grow sure in the future


    25.3. The End26.3. The End

    Thanks for reading. Hope it helps!

    ]> - Linux IPv6 HOWTO (en) PeterBieringer
    pb at bieringer dot de
    + 0.63 2009-02-14 PB 0.62 2008-11-09 PB - 0.61.1 2007-11-11 PB 0.60 2007-05-31 PB 0.51 2006-11-08 PB @@ -25,20 +25,17 @@ <!-- anchor id="general-copright" -->Copyright, license and others Copyright -Written and Copyright (C) 2001-2008 by Peter Bieringer +Written and Copyright (C) 2001-2009 by Peter Bieringer License This Linux IPv6 HOWTO is published under GNU GPL version 2: - - - The Linux IPv6 HOWTO, a guide how to configure and use IPv6 on Linux systems. -Copyright © 2001-2008 Peter Bieringer +Copyright © 2001-2009 Peter Bieringer This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. About the author Internet/IPv6 history of the author @@ -106,7 +103,7 @@ Technical <!-- anchor id="general-original-source" -->Original source of this HOWTO -This HOWTO is currently written with LyX version 1.5.6 on a Fedora 9 system with template SGML/XML (DocBook book). It's available on TLDP-CVS / users / Peter-Bieringer for contribution. +This HOWTO is currently written with LyX version 1.6.1 on a Fedora 10 Linux system with template SGML/XML (DocBook book). It's available on TLDP-CVS / users / Peter-Bieringer for contribution. Code line wrapping Code line wrapping is done using selfmade utility “lyxcodelinewrapper.pl”, you can get it from CVS for your own usage: TLDP-CVS / users / Peter-Bieringer SGML generation @@ -565,7 +562,8 @@ tcpdump: listening on ppp0 and should show something like following: IPv6-ready telnet clients IPv6-ready telnet clients are available. A simple test can be done with @@ -601,7 +599,7 @@ Connection closed by foreign host. IPv6-ready web browsers A current status of IPv6 enabled web browsers is available at IPv6+Linux-status-apps.html#HTTP. Most of them have unresolved problems at the moment -If using an IPv4 only proxy in the settings, IPv6 requests will be sent to the proxy, but the proxy will fail to understand the request and the request fails. Solution: update proxy software (see later).Automatic proxy settings (*.pac) cannot be extended to handle IPv6 requests differently (e.g. don't use proxy) because of their nature (written in Java-script and well hard coded in source like to be seen in Maxilla source code).Also older versions don't understand an URL with IPv6 encoded addresses like http://[2001:a60:9002:1::190:1]/ (this given URL only works with an IPv6-enabled browser!). +If using an IPv4 only proxy in the settings, IPv6 requests will be sent to the proxy, but the proxy will fail to understand the request and the request fails. Solution: update proxy software (see later).Automatic proxy settings (*.pac) cannot be extended to handle IPv6 requests differently (e.g. don't use proxy) because of their nature (written in Java-script and well hard coded in source like to be seen in Maxilla source code).Also older versions don't understand an URL with IPv6 encoded addresses like http://[2001:a60:9002:1::186:6]/ (this given URL only works with an IPv6-enabled browser!). A short test is to try shown URL with a given browser and using no proxy. URLs for testing A good starting point for browsing using IPv6 is http://www.kame.net/. If the turtle on this page is animated, the connection is via IPv6, otherwise the turtle is static. @@ -782,7 +780,8 @@ ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast ]]> Using "route" Usage: -/ gw [dev ] +/ gw [dev +¬ ] ]]>Example for removing upper added route again: @@ -861,7 +860,7 @@ Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ] ]]>Looks like some options are only for IPv4...if you can contribute information about flags and advanced usage, pls. send. <!-- anchor id="chapter-configuring-ipv6-in-ipv4-tunnels" -->Configuring IPv6-in-IPv4 tunnels -If you want to leave your link you have no IPv6 capable network around you, you need IPv6-in-IPv4 tunneling to reach the world wide IPv6-Internet. +If you want to leave your link and you have no IPv6 capable network around you, you need IPv6-in-IPv4 tunneling to reach the world wide IPv6-Internet. There are some kind of tunnel mechanism and also some possibilities to setup tunnels. Types of tunnels There are more than one possibility to tunnel IPv6 packets over IPv4-only links. @@ -1029,7 +1028,8 @@ ff00::/8 :: UA 256 0 0 sit0 Using "ip" and a dedicated tunnel device This is now the recommended way (a TTL must be specified because the default value is 0). Create a new tunnel device - remote any local + remote any local +¬ ]]>Bring interface up Add local 6to4 address to interface (note: prefix length 16 is important!) @@ -1067,8 +1067,54 @@ ff00::/8 :: UA 256 0 0 sit0 <!-- anchor id="chapter-configuring-ipv4-in-ipv6-tunnels" -->Configuring IPv4-in-IPv6 tunnels -This will be filled in the future. At the moment, such tunnels are more used in test environments but it looks like that support is missing currently for Linux (03/2004). -More information in the meantime: RFC 2473 / Generic Packet Tunneling in IPv6 Specification +RFC 2473 / Generic Packet Tunneling in IPv6 Specification specifies mechanisms to tunnel several different packet types over IPv6 including IPv4. +NOTE: Support for IPv4-in-IPv6 tunnel is available only since kernel version 2.6.22. +Displaying existing tunnels +Usage: +] +]]>Example: +NOTE: If you don't include "mode any", only IPv6-in-IPv6 tunnels are displayed. +Setup of point-to-point tunnel +Usage for creating a 4over6 tunnel device (but it's not up afterward) + mode ip4ip6 remote +¬ local +]]>Usage (generic example for three tunnels): + local +# /sbin/ip link set dev ip6tnl1 up +# /sbin/ip -6 route add dev ip6tnl1 metric 1 + +# /sbin/ip -6 tunnel add ip6tnl2 mode ip4ip6 remote +¬ local +# /sbin/ip link set dev ip6tnl2 up +# /sbin/ip -6 route add dev ip6tnl2 metric 1 + +# /sbin/ip -6 tunnel add ip6tnl3 mode ip4ip6 remote +¬ local +# /sbin/ip link set dev ip6tnl3 up +# /sbin/ip -6 route add dev ip6tnl3 metric 1 +]]> +Removing point-to-point tunnels +Usage for removing a tunnel device: + +]]>Usage (generic example for three tunnels): + dev ip6tnl1 +# /sbin/ip link set ip6tnl1 down +# /sbin/ip -6 tunnel del ip6tnl1 + +# /sbin/ip -6 route del dev ip6tnl2 +# /sbin/ip link set ip6tnl2 down +# /sbin/ip -6 tunnel del ip6tnl2 + +# /sbin/ip -6 route del dev ip6tnl3 +# /sbin/ip link set ip6tnl3 down +# /sbin/ip -6 tunnel del ip6tnl3 +]]> <!-- anchor id="chapter-kernel-settings" -->Kernel settings in /proc-filesystem Note: the source of this section is mostly the file “ip-sysctl.txt” which is included in current kernel sources in directory “Documentation/networking”. Credits to Pekka Savola for maintaining the IPv6-related part in this file. Also some text is more or less copied & pasted into this document. How to access the /proc-filesystem @@ -1181,7 +1227,8 @@ net.ipv6.conf.all.forwarding = 1 Type: INTEGERDefault: 1024Tuning parameter for neighbour table size. Increase this value if you have a lot of interfaces and problem with routes start to act mysteriously and fail. Or if a running Zebra (routing daemon) reports: - gc_interval @@ -1318,7 +1365,12 @@ FRAG6: inuse 0 memory 0 ip6_tables_names Available netfilter6 tables <!-- anchor id="netlink" -->Netlink-Interface to kernel -To be filled...I have no experience with that... +To be filled...I have no experience with that... +<!-- anchor id="resolver" -->Address Resolver +Name to IPv4 or IPv6 address resolving is usually done using a libc resolver library. There are some issues known using the function getaddrinfo. +More info can be found at Linux & IPv6: getaddrinfo and search domains - Research and RFC 3484 on Linux. + +More to be filled later... <!-- anchor id="network-debugging" -->Network debugging Server socket binding @@ -1547,7 +1599,7 @@ In versions 8.x they completly change their configuration setup. The HOWTO document describing setup and configuration is available at: http://www.nautilus6.org/doc/nepl-howto/. Links -Mobile IPv6 for Linux (MIPL) project: http://www.mobile-ipv6.org/Nautilus6 working group: http://nautilus6.org/Fast Handovers for Mobile IPv6 for Linux project: http://www.fmipv6.org/RFC 3775 / Mobility Support in IPv6RFC 3776 / Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and Home AgentsRFC 3963 / Network Mobility (NEMO)RFC 4068 / Fast Handovers for Mobile IPv6RFC 4423 / Host Identity Protocol (HIP) ArchitectureRFC 5201 / Host Identity ProtocolHIP implementations: http://infrahip.hiit.fi/, http://hip4inter.net/, http://www.openhip.org/ +Mobile IPv6 for Linux (MIPL) project: http://www.mobile-ipv6.org/Nautilus6 working group: http://nautilus6.org/Fast Handovers for Mobile IPv6 for Linux project: http://www.fmipv6.org/USAGI-patched Mobile IPv6 for Linux (UMIP):http://umip.linux-ipv6.org/Deploying IPsec/IKE-protected MIPv6 under Linux:http://natisbad.org/MIPv6/RFC 3775 / Mobility Support in IPv6RFC 3776 / Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and Home AgentsRFC 3963 / Network Mobility (NEMO)RFC 4068 / Fast Handovers for Mobile IPv6RFC 4423 / Host Identity Protocol (HIP) ArchitectureRFC 5201 / Host Identity ProtocolHIP implementations: http://infrahip.hiit.fi/, http://hip4inter.net/, http://www.openhip.org/ <!-- anchor id="chapter-firewalling-security" -->Firewalling IPv6 firewalling is important, especially if using IPv6 on internal networks with global IPv6 addresses. Because unlike at IPv4 networks where in common internal hosts are protected automatically using private IPv4 addresses like RFC 1918 / Address Allocation for Private Internets or Automatic Private IP Addressing (APIPA)Google search for Microsoft + APIPA, in IPv6 normally global addresses are used and someone with IPv6 connectivity can reach all internal IPv6 enabled nodes. <!-- anchor id="firewalling-netfilter6." -->Firewalling using netfilter6 @@ -2029,7 +2081,8 @@ sainfo address 2001:db8:2:2::2 any address 2001:db8:1:1::1 any At least the daemon needs to be started. For the first time, use debug and foreground mode. The following example shows a successful IKE phase 1 (ISAKMP-SA) and 2 (IPsec-SA) negotiation: Note that the netlink error messages have no impact. <!-- anchor id="hints-daemons-tcpwrapper" -->tcp_wrapper @@ -2866,8 +2920,10 @@ static int openSckt( const char *service, struct addrinfo *ai; int aiErr; struct addrinfo *aiHead; - struct addrinfo hints = { .ai_flags = AI_PASSIVE, /* Server mode. */ - .ai_family = PF_UNSPEC }; /* IPv4 or IPv6. */ + struct addrinfo hints = { .ai_flags = AI_PASSIVE, /* Server mode. +¬ */ + .ai_family = PF_UNSPEC }; /* IPv4 or IPv6. +¬ */ size_t maxDescs = *descSize; /* ** Initialize output parameters. When the loop completes, *descSize is 0. @@ -4401,8 +4457,7 @@ Note: This item will be published on April 11, 2003. IPv6 in Practice: A Unixer's Guide to the Next Generation Internet von Benedikt Stockebrand, November 2006; ISBN 3-540-24524-3IPv6 Essentials by Silvia Hagen, 2nd Edition, May 2006; ISBN 0-5961-0058-2 ToC, Index, Sample Chapter etc.; O'Reilly PressreleaseIPv6: The New Internet Protocol. By Christian Huitema; Published by Prentice-Hall; ISBN 0138505055. Description: This book, written by Christian Huitema - a member of the InternetArchitecture Board, gives an excellent description of IPv6, how it differs from IPv4, and the hows and whys of it's development. -Source: http://www.cs.uu.nl/wais/html/na-dir/internet/tcp-ip/resource-list.htmlIPv6 Networks by Niles, Kitty; (ISBN 0070248079); 550 pages; Date Published 05/01/1998.Implementing IPV6. Supporting the Next Generation Internet Protocols by P. E. Miller, Mark A. Miller; Publisher: John Wiley & Sons; ISBN 0764545892; 2nd edition (March 15, 2000); 402 pages.Big Book of Ipv6 Addressing Rfcs by Peter H. Salus (Compiler), Morgan Kaufmann Publishers, April 2000, 450 pages ISBN 0126167702. Understanding IPV6 by Davies, Joseph; ISBN 0735612455; Date Published 05/01/2001; Number of Pages: 350. -Understanding IPV6 by Davies, Joseph; ISBN 0735612455; Date Published 13/11/2002; Number of Pages 544. Migrating to IPv6 - IPv6 in Practice by Marc Blanchet Publisher: John Wiley & Sons; ISBN 0471498920; 1st edition (November 2002); 368 pages.Ipv6 Network Programming by Jun-ichiro Hagino; ISBN 1555583180Wireless boosting IPv6 by Carolyn Duffy Marsan, 10/23/2000.O'reilly Network search for keyword IPv6 results in 29 hits (28. January 2002) +Source: http://www.cs.uu.nl/wais/html/na-dir/internet/tcp-ip/resource-list.htmlIPv6 Networks by Niles, Kitty; (ISBN 0070248079); 550 pages; Date Published 05/01/1998.Implementing IPV6. Supporting the Next Generation Internet Protocols by P. E. Miller, Mark A. Miller; Publisher: John Wiley & Sons; ISBN 0764545892; 2nd edition (March 15, 2000); 402 pages.Big Book of Ipv6 Addressing Rfcs by Peter H. Salus (Compiler), Morgan Kaufmann Publishers, April 2000, 450 pages ISBN 0126167702. Understanding IPV6 by Davies, Joseph; ISBN 0735612455; Date Published 05/01/2001; Number of Pages: 350.Migrating to IPv6 - IPv6 in Practice by Marc Blanchet Publisher: John Wiley & Sons; ISBN 0471498920; 1st edition (November 2002); 368 pages.Ipv6 Network Programming by Jun-ichiro Hagino; ISBN 1555583180Wireless boosting IPv6 by Carolyn Duffy Marsan, 10/23/2000.O'reilly Network search for keyword IPv6 results in 29 hits (28. January 2002) Articles, eBooks, Online Reviews (mixed) Getting Connected with 6to4 by Huber Feyrer, 06/01/2001Transient Addressing for Related Processes: Improved Firewalling by Using IPv6 and Multiple Addresses per Host; written by Peter M. Gleiz, Steven M. Bellovin (PC-PDF-Version; Palm-PDF-Version; PDB-Version)Internetworking IPv6 with Cisco Routers by Silvano Gai, McGrawHill Italia, 1997. The 13 chapters and appendix A-D are downloadable as PDF-documents.Migration and Co-existence of IPv4 and IPv6 in Residential Networks by Pekka Savola, CSC/FUNET, 2002 @@ -4454,13 +4509,13 @@ SourceForge: Project Info - DeepSpace6 / more interesting links Linux related -DeepSpace6 / (Not only) Linux IPv6 Portal - Italy (Mirror)IPv6-HowTo for Linux by Peter Bieringer - Germany, and his Bieringer / IPv6 - software archiveLinux+IPv6 status by Peter Bieringer - Germany (going obsolete)DeepSpace6 / IPv6 Status Page - Italy (Mirror) (will superseed upper one)USAGI project - Japan, and their USAGI project - software archiveLinux Optimized Link State Routing Protocol (OLSR) IPv6 HOWTO +DeepSpace6 / (Not only) Linux IPv6 Portal - Italy (Mirror)IPv6-HowTo for Linux by Peter Bieringer - Germany, and his Bieringer / IPv6 - software archiveLinux+IPv6 status by Peter Bieringer - Germany (going obsolete)DeepSpace6 / IPv6 Status Page - Italy (Mirror) (will superseed upper one)USAGI project - Japan, and their USAGI project - software archiveLinux Optimized Link State Routing Protocol (OLSR) IPv6 HOWTOLinShim6 Linux related per distribution PLDPLD Linux Distribution (“market leader” in containing IPv6 enabled packages)Red HatRed Hat Enterprise Linux, Pekka Savola's IPv6 packagesFedoraFedora Core LinuxDebianDebian Linux, IPv6 with Debian LinuxNovell/SuSENovell/SuSE LinuxMandrivaMandrivaFor more see the IPv6+Linux Status Distributions page. General -IPv6.org6boneUK IPv6 Resource Centre - UKWIDE project - JapanSWITCH IPv6 Pilot - SwitzerlandIPv6 Corner of Hubert Feyrer - GermanyIPv6 Forum - a world-wide consortium of leading Internet vendors, Research & Education Networks...Playground.sun.com / IPv6 Info Page - maintained by Robert Hinden, Nokia. Get any information about IPv6, from overviews, through RFCs & drafts, to implementations (including availability of stacks on various platforms & source code for IPv6 stacks).6INIT - IPv6 Internet Initiative - an EU Fifth Framework Project under the IST Programme.IPv6 Task Force (European Union)6init - IPv6 INternet IniTiative IP Next Generation OverviewIPv6: The New Version of the Internet Protocol, by Steve Deering.IPv6: The Next Generation Internet Protocol, by Gary C. Kessler. IPv6: Next Generation Internet Protocol - 3Cominternet || site and internet2 Working GroupNetworkWorldFusion: Search / Doc Finder: searched for IPv6 (102 documents found 22.12.2002)The Register (Search for IPv6 will result in 30 documents, 22.12.2002)ZDNet Search for IPv6TechTarget Search for IPv6IPv6 & TCP Resources ListSomething missing? Suggestions are welcome! +IPv6.org6boneWIDE project - JapanSWITCH IPv6 Pilot - SwitzerlandIPv6 Corner of Hubert Feyrer - GermanyIPv6 Forum - a world-wide consortium of leading Internet vendors, Research & Education Networks...Playground.sun.com / IPv6 Info Page - maintained by Robert Hinden, Nokia. Get any information about IPv6, from overviews, through RFCs & drafts, to implementations (including availability of stacks on various platforms & source code for IPv6 stacks).6INIT - IPv6 Internet Initiative - an EU Fifth Framework Project under the IST Programme.IPv6 Task Force (European Union)6init - IPv6 INternet IniTiative IPv6: The New Version of the Internet Protocol, by Steve Deering.IPv6: The Next Generation Internet Protocol, by Gary C. Kessler. IPv6: Next Generation Internet Protocol - 3Cominternet || site and internet2 Working GroupNetworkWorldFusion: Search / Doc Finder: searched for IPv6 (102 documents found 22.12.2002)The Register (Search for IPv6 will result in 30 documents, 22.12.2002)ZDNet Search for IPv6TechTarget Search for IPv6IPv6 & TCP Resources ListSomething missing? Suggestions are welcome! <!-- anchor id="information-marketresearch" -->Market Research A Tale of Two Wireless Technology Trends: Processor Development Outsourcing and IPv6Yankee Group - 4/1/2002 - 12 Pages - ID: YANL768881The World Atlas of the Internet: Americas; IDATE - 2/1/2002 - 242 PAges - ID: IDT803907. Countries covered: Central America, North America, South America; List: Price: $ 3,500.00; excerpt: Panorama of Internet access markets across the globe. Market assessment and forecasts up to 2006 for 34 countries: market structure: main ISPs and market shares; number of subscribers, of ISPs.Early Interest Rising for IPv6 by IDC (Author); List Price: $1,500.00; Edition: e-book (Acrobat Reader); Publisher: IDC; ISBN B000065T8E; (March 1, 2002) @@ -4491,7 +4546,7 @@ SourceForge: Project Info - Suggestions are welcome! Germany -OpenBC / IPv6 +Xing / IPv6 France Renater: Renater IPv6 Project PageIPv6 - RSVP - ATM at INRIANetBSD IPv6 Documentation @@ -4519,7 +4574,7 @@ SourceForge: Project Info - Suggestions are welcome! United Kingdom -UK IPv6 Resource CenterBritish Telecom IPv6 Home: BT's ISP IPv6 Trial, UK's first IPv6 Internet Exchange etc. +British Telecom IPv6 Home: BT's ISP IPv6 Trial, UK's first IPv6 Internet Exchange etc. By operating systems *BSD @@ -4673,68 +4728,68 @@ Press Release: Hurricane E
    -Focus -Request e-mail address -What to subscribe -Maillist e-mail address -Language -Access through WWW +Focus +Request e-mail address +What to subscribe +Maillist e-mail address +Language +Access through WWW -Linux kernel networking including IPv6 -majordomo (at) vger.kernel.org -netdev -netdev (at) vger.kernel.org -English -Info, Archive +Linux kernel networking including IPv6 +majordomo (at) vger.kernel.org +netdev +netdev (at) vger.kernel.org +English +Info, Archive -Mobile IP(v6) for Linux -Web-based, see URL -mipl -mipl (at) mobile-ipv6.org -English -Info, Archive +Mobile IP(v6) for Linux +Web-based, see URL +mipl +mipl (at) mobile-ipv6.org +English +Info, Archive -Linux IPv6 users using USAGI extension -usagi-users-ctl (at) linux-ipv6.org +Linux IPv6 users using USAGI extension +usagi-users-ctl (at) linux-ipv6.org -usagi-users (at) linux-ipv6.org -English -Info / Search, Archive +usagi-users (at) linux-ipv6.org +English +Info / Search, Archive -IPv6 on Debian Linux +IPv6 on Debian Linux -debian-ipv6 (at) lists.debian.org -English -Info/Subscription/Archive +debian-ipv6 (at) lists.debian.org +English +Info/Subscription/Archive -6bone -majordomo (at) isi.edu -6bone -6bone (at) isi.edu -English -Info, Archive +6bone +majordomo (at) isi.edu +6bone +6bone (at) isi.edu +English +Info, Archive -IPv6 users in general -majordomo (at) ipv6.org -users -users (at) ipv6.org -English -Info, Archive +IPv6 users in general +majordomo (at) ipv6.org +users +users (at) ipv6.org +English +Info, Archive -Bugtracking of Internet applications (1) -bugtraq-subscribe (at) securityfocus.com +Bugtracking of Internet applications (1) +bugtraq-subscribe (at) securityfocus.com -bugtraq (at) securityfocus.com (2) -English -Info, Archive +bugtraq (at) securityfocus.com (2) +English +Info, Archive @@ -4785,13 +4840,13 @@ Publisher: MarketResearch.com; ISBN B00006334Y; (November 1, 2001) Versions x.y.z are work-in-progress and published as LyX and SGML file on CVS. Because Deep Space 6 mirrors these SGML files and generate independend from TLDP public versions, this versions will show up there and also on its mirrors. Releases 0.x -0.622008-11-09/PB: Adjust URL to Turkish howto, add some HIP related URLs, remove broken URLs0.61.12007-11-11/PB: fix broken description of shortcut BIND0.612007-10-06/PB: fix broken URLs to TLDP-CVS, minor URL update.0.60.22007-10-03/PB: fix description of sysctl/autoconf (credits to Francois-Xavier Le Bail)0.60.12007-06-16/PB: speling fixes (credits to Larry W. Burton)0.602007-05-29/PB: import major contribution to Programming using C-API written by John Wenker, minor fixes0.522007-05-23/PB: update firewalling chapter, improve document for proper SGML validation, minor bugfixes0.512006-11-08/PB: remove broken URLs, add a new book (credits to Bryan Vukich)0.50.22006-10-25/PB: fix typo in dhcp6 section (credits to Michele Ferritto)0.50.12006-09-23/PB: add some URLs0.502006-08-24/PB: check RFC URLs, fix URL to Chinese translation, finalize for publishing0.49.52006-08-23/PB: fix/remove broken URLs0.49.42006-08-21/PB: some review, update and enhancement of the content, replace old 6bone example addresses with the current defined ones.0.49.32006-08-20/PB: fix bug in maillist entries, 'mobility' is now a separate chapter0.49.22006-08-20/PB: update and cleanup of maillist entries0.49.12006-06-13/PB: major update of mobility section (contributed by Benjamin Thery)0.492005-10-03/PB: add configuration hints for DHCPv6, major broken URL cleanup (credits to Necdet Yucel)0.48.12005-01-15/PB: minor fixes0.482005-01-11/PB: grammar check and minor review of IPv6 IPsec section0.47.12005-01-01/PB: add information and examples about IPv6 IPsec, add some URLs0.472004-08-30/PB: add some notes about proftpd, vsftpd and other daemons, add some URLs, minor fixes, update status of Spanish translation0.46.42004-07-19/PB: minor fixes0.46.32004-06-23/PB: add note about started Greek translation, replace Taiwanese with Chinese for related translation0.46.22004-05-22/PB: minor fixes0.46.12004-04-18/PB: minor fixes0.462004-03-04/PB: announce Italian translation, add information about DHCPv6, minor updates0.45.12004-01-12/PB: add note about the official example address space0.452004-01-11/PB: minor fixes, add/fix some URLs, some extensions0.44.22003-10-30/PB: fix some copy&paste text bugs0.44.12003-10-19/PB: add note about start of Italian translation0.442003-08-15/PB: fix URLs, add hint on tcp_wrappers (about broken notation in some versions) and Apache20.43.42003-07-26/PB: fix URL, add archive URL for maillist users at ipv6.org, add some ds6 URLs0.43.32003-06-19/PB: fix typos0.43.22003-06-11/PB: fix URL0.43.12003-06-07/PB: fix some URLs, fix credits, add some notes at IPsec0.432003-06-05/PB: add some notes about configuration in SuSE Linux, add URL of French translation0.422003-05-09/PB: minor fixes, announce French translation0.41.42003-05-02/PB: Remove a broken URL, update some others.0.41.32003-04-23/PB: Minor fixes, remove a broken URL, fix URL to Taiwanese translation0.41.22003-04-13/PB: Fix some typos, add a note about a French translation is in progress0.41.12003-03-31/PB: Remove a broken URL, fix another0.412003-03-22/PB: Add URL of German translation0.40.22003-02-27/PB: Fix a misaddressed URL0.40.12003-02-12/PB: Add Debian-Linux-Configuration, add a minor note on translations0.402003-02-10/PB: Announcing available German version0.39.22003-02-10/GK: Minor syntax and spelling fixes0.39.12003-01-09/PB: fix an URL (draft adopted to an RFC)0.392003-01-13/PB: fix a bug (forgotten 'link” on “ip link set” (credits to Yaniv Kaul)0.38.12003-01-09/PB: a minor fix0.382003-01-06/PB: minor fixes0.37.12003-01-05/PB: minor updates0.372002-12-31/GK: 270 new links added (searched in 1232 SearchEngines) in existing and 53 new (sub)sections0.36.12002-12-20/PB: Minor fixes0.362002-12-16/PB: Check of and fix broken links (credits to Georg Käfer), some spelling fixes0.352002-12-11/PB: Some fixes and extensions0.34.12002-11-25/PB: Some fixes (e.g. broken linuxdoc URLs)0.342002-11-19/PB: Add information about German translation (work in progress), some fixes, create a small shortcut explanation list, extend “used terms” and add two German books0.332002-11-18/PB: Fix broken RFC-URLs, add parameter ttl on 6to4 tunnel setup example0.322002-11-03/PB: Add information about Taiwanese translation0.31.12002-10-06/PB: Add another maillist0.312002-09-29/PB: Extend information in proc-filesystem entries0.302002-09-27/PB: Add some maillists0.292002-09-18/PB: Update statement about nmap (triggered by Fyodor)0.28.12002-09-16/PB: Add note about ping6 to multicast addresses, add some labels0.282002-08-17/PB: Fix broken LDP/CVS links, add info about Polish translation, add URL of the IPv6 Address Oracle0.272002-08-10/PB: Some minor updates0.26.22002-07-15/PB: Add information neighbor discovery, split of firewalling (got some updates) and security into extra chapters0.26.12002-07-13/PB: Update nmap/IPv6 information0.262002-07-13/PB: Fill /proc-filesystem chapter, update DNS information about depricated A6/DNAME, change P-t-P tunnel setup to use of “ip” only0.25.22002-07-11/PB: Minor spelling fixes0.25.12002-06-23/PB: Minor spelling and other fixes0.252002-05-16/PB: Cosmetic fix for 2^128, thanks to José Abílio Oliveira Matos for help with LyX0.242002-05-02/PB: Add entries in URL list, minor spelling fixes0.232002-03-27/PB: Add entries in URL list and at maillists, add a label and minor information about IPv6 on RHL0.222002-03-04/PB: Add info about 6to4 support in kernel series 2.2.x and add an entry in URL list and at maillists0.212002-02-26/PB: Migrate next grammar checks submitted by John Ronan 0.20.42002-02-21/PB: Migrate more grammar checks submitted by John Ronan, add some additional hints at DNS section 0.20.32002-02-12/PB: Migrate a minor grammar check patch submitted by John Ronan0.20.22002-02-05/PB: Add mipl to maillist table0.20.12002-01-31/PB: Add a hint how to generate 6to4 addresses0.202002-01-30/PB: Add a hint about default route problem, some minor updates0.19.22002-01-29/PB: Add many new URLs0.19.12002-01-27/PB: Add some forgotten URLs0.192002-01-25/PB: Add two German books, fix quote entinities in exported SGML code0.18.22002-01-23/PB: Add a FAQ on the program chapter0.18.12002-01-23/PB: Move “the end” to the end, add USAGI to maillists0.182002-01-22/PB: Fix bugs in explanation of multicast address types0.17.22002-01-22/PB: Cosmetic fix double existing text in history (at 0.16), move all credits to the end of the document0.17.12002-01-20/PB: Add a reference, fix URL text in online-test-tools0.172002-01-19/PB: Add some forgotten information and URLs about global IPv6 addresses0.162002-01-19/PB: Minor fixes, remove “bold” and “emphasize” formats on code lines, fix “too long unwrapped code lines” using selfmade utility, extend list of URLs.0.152002-01-15/PB: Fix bug in addresstype/anycast, move content related credits to end of document0.142002-01-14/PB: Minor review at all, new chapter “debugging”, review “addresses”, spell checking, grammar checking (from beginning to 3.4.1) by Martin Krafft, add tcpdump examples, copy firewalling/netfilter6 from IPv6+Linux-HowTo, minor enhancements0.132002-01-05/PB: Add example BIND9/host, move revision history to end of document, minor extensions0.122002-01-03/PB: Merge review of David Ranch0.112002-01-02/PB: Spell checking and merge review of Pekka Savola0.102002-01-02/PB: First public release of chapter 1 +0.632009-02-14/PB: Fix FSF address, major update on 4in6 tunnels, add new section for address resolving, add some URLs, remove broken URLs0.622008-11-09/PB: Adjust URL to Turkish howto, add some HIP related URLs, remove broken URLs0.61.12007-11-11/PB: fix broken description of shortcut BIND0.612007-10-06/PB: fix broken URLs to TLDP-CVS, minor URL update.0.60.22007-10-03/PB: fix description of sysctl/autoconf (credits to Francois-Xavier Le Bail)0.60.12007-06-16/PB: speling fixes (credits to Larry W. Burton)0.602007-05-29/PB: import major contribution to Programming using C-API written by John Wenker, minor fixes0.522007-05-23/PB: update firewalling chapter, improve document for proper SGML validation, minor bugfixes0.512006-11-08/PB: remove broken URLs, add a new book (credits to Bryan Vukich)0.50.22006-10-25/PB: fix typo in dhcp6 section (credits to Michele Ferritto)0.50.12006-09-23/PB: add some URLs0.502006-08-24/PB: check RFC URLs, fix URL to Chinese translation, finalize for publishing0.49.52006-08-23/PB: fix/remove broken URLs0.49.42006-08-21/PB: some review, update and enhancement of the content, replace old 6bone example addresses with the current defined ones.0.49.32006-08-20/PB: fix bug in maillist entries, 'mobility' is now a separate chapter0.49.22006-08-20/PB: update and cleanup of maillist entries0.49.12006-06-13/PB: major update of mobility section (contributed by Benjamin Thery)0.492005-10-03/PB: add configuration hints for DHCPv6, major broken URL cleanup (credits to Necdet Yucel)0.48.12005-01-15/PB: minor fixes0.482005-01-11/PB: grammar check and minor review of IPv6 IPsec section0.47.12005-01-01/PB: add information and examples about IPv6 IPsec, add some URLs0.472004-08-30/PB: add some notes about proftpd, vsftpd and other daemons, add some URLs, minor fixes, update status of Spanish translation0.46.42004-07-19/PB: minor fixes0.46.32004-06-23/PB: add note about started Greek translation, replace Taiwanese with Chinese for related translation0.46.22004-05-22/PB: minor fixes0.46.12004-04-18/PB: minor fixes0.462004-03-04/PB: announce Italian translation, add information about DHCPv6, minor updates0.45.12004-01-12/PB: add note about the official example address space0.452004-01-11/PB: minor fixes, add/fix some URLs, some extensions0.44.22003-10-30/PB: fix some copy&paste text bugs0.44.12003-10-19/PB: add note about start of Italian translation0.442003-08-15/PB: fix URLs, add hint on tcp_wrappers (about broken notation in some versions) and Apache20.43.42003-07-26/PB: fix URL, add archive URL for maillist users at ipv6.org, add some ds6 URLs0.43.32003-06-19/PB: fix typos0.43.22003-06-11/PB: fix URL0.43.12003-06-07/PB: fix some URLs, fix credits, add some notes at IPsec0.432003-06-05/PB: add some notes about configuration in SuSE Linux, add URL of French translation0.422003-05-09/PB: minor fixes, announce French translation0.41.42003-05-02/PB: Remove a broken URL, update some others.0.41.32003-04-23/PB: Minor fixes, remove a broken URL, fix URL to Taiwanese translation0.41.22003-04-13/PB: Fix some typos, add a note about a French translation is in progress0.41.12003-03-31/PB: Remove a broken URL, fix another0.412003-03-22/PB: Add URL of German translation0.40.22003-02-27/PB: Fix a misaddressed URL0.40.12003-02-12/PB: Add Debian-Linux-Configuration, add a minor note on translations0.402003-02-10/PB: Announcing available German version0.39.22003-02-10/GK: Minor syntax and spelling fixes0.39.12003-01-09/PB: fix an URL (draft adopted to an RFC)0.392003-01-13/PB: fix a bug (forgotten 'link” on “ip link set” (credits to Yaniv Kaul)0.38.12003-01-09/PB: a minor fix0.382003-01-06/PB: minor fixes0.37.12003-01-05/PB: minor updates0.372002-12-31/GK: 270 new links added (searched in 1232 SearchEngines) in existing and 53 new (sub)sections0.36.12002-12-20/PB: Minor fixes0.362002-12-16/PB: Check of and fix broken links (credits to Georg Käfer), some spelling fixes0.352002-12-11/PB: Some fixes and extensions0.34.12002-11-25/PB: Some fixes (e.g. broken linuxdoc URLs)0.342002-11-19/PB: Add information about German translation (work in progress), some fixes, create a small shortcut explanation list, extend “used terms” and add two German books0.332002-11-18/PB: Fix broken RFC-URLs, add parameter ttl on 6to4 tunnel setup example0.322002-11-03/PB: Add information about Taiwanese translation0.31.12002-10-06/PB: Add another maillist0.312002-09-29/PB: Extend information in proc-filesystem entries0.302002-09-27/PB: Add some maillists0.292002-09-18/PB: Update statement about nmap (triggered by Fyodor)0.28.12002-09-16/PB: Add note about ping6 to multicast addresses, add some labels0.282002-08-17/PB: Fix broken LDP/CVS links, add info about Polish translation, add URL of the IPv6 Address Oracle0.272002-08-10/PB: Some minor updates0.26.22002-07-15/PB: Add information neighbor discovery, split of firewalling (got some updates) and security into extra chapters0.26.12002-07-13/PB: Update nmap/IPv6 information0.262002-07-13/PB: Fill /proc-filesystem chapter, update DNS information about depricated A6/DNAME, change P-t-P tunnel setup to use of “ip” only0.25.22002-07-11/PB: Minor spelling fixes0.25.12002-06-23/PB: Minor spelling and other fixes0.252002-05-16/PB: Cosmetic fix for 2^128, thanks to José Abílio Oliveira Matos for help with LyX0.242002-05-02/PB: Add entries in URL list, minor spelling fixes0.232002-03-27/PB: Add entries in URL list and at maillists, add a label and minor information about IPv6 on RHL0.222002-03-04/PB: Add info about 6to4 support in kernel series 2.2.x and add an entry in URL list and at maillists0.212002-02-26/PB: Migrate next grammar checks submitted by John Ronan 0.20.42002-02-21/PB: Migrate more grammar checks submitted by John Ronan, add some additional hints at DNS section 0.20.32002-02-12/PB: Migrate a minor grammar check patch submitted by John Ronan0.20.22002-02-05/PB: Add mipl to maillist table0.20.12002-01-31/PB: Add a hint how to generate 6to4 addresses0.202002-01-30/PB: Add a hint about default route problem, some minor updates0.19.22002-01-29/PB: Add many new URLs0.19.12002-01-27/PB: Add some forgotten URLs0.192002-01-25/PB: Add two German books, fix quote entinities in exported SGML code0.18.22002-01-23/PB: Add a FAQ on the program chapter0.18.12002-01-23/PB: Move “the end” to the end, add USAGI to maillists0.182002-01-22/PB: Fix bugs in explanation of multicast address types0.17.22002-01-22/PB: Cosmetic fix double existing text in history (at 0.16), move all credits to the end of the document0.17.12002-01-20/PB: Add a reference, fix URL text in online-test-tools0.172002-01-19/PB: Add some forgotten information and URLs about global IPv6 addresses0.162002-01-19/PB: Minor fixes, remove “bold” and “emphasize” formats on code lines, fix “too long unwrapped code lines” using selfmade utility, extend list of URLs.0.152002-01-15/PB: Fix bug in addresstype/anycast, move content related credits to end of document0.142002-01-14/PB: Minor review at all, new chapter “debugging”, review “addresses”, spell checking, grammar checking (from beginning to 3.4.1) by Martin Krafft, add tcpdump examples, copy firewalling/netfilter6 from IPv6+Linux-HowTo, minor enhancements0.132002-01-05/PB: Add example BIND9/host, move revision history to end of document, minor extensions0.122002-01-03/PB: Merge review of David Ranch0.112002-01-02/PB: Spell checking and merge review of Pekka Savola0.102002-01-02/PB: First public release of chapter 1 <!-- anchor id="credits" -->Credits The quickest way to be added to this nice list is to send bug fixes, corrections, and/or updates to me ;-). If you want to do a major review, you can use the native LyX file (see original source) and send diffs against it, because diffs against SGML don't help too much. <!-- anchor id="major-credits" -->Major credits -David Ranch <dranch at trinnet dot net>: For encouraging me to write this HOWTO, his editorial comments on the first few revisions, and his contributions to various IPv6 testing results on my IPv6 web site. Also for his major reviews and suggestions.Pekka Savola <pekkas at netcore dot fi>: For major reviews, input and suggestions.Martin F. Krafft <madduck at madduck dot net>: For grammar checks and general reviewing of the document.John Ronan <j0n at tssg dot wit dot ie>: For grammar checks.Georg Käfer <gkaefer at gmx dot at>: For detection of no proper PDF creation (fixed now by LDP maintainer Greg Ferguson), input for German books, big list of URLs, checking all URLs, many more suggestions, corrections and contributions, and the German translationMichel Boucey <mboucey at free dot fr>: Finding typos and some broken URLs, contribute some suggestions and URLs, and the French translationMichele Ferritto <m dot ferritto at virgilio dot it>: Finding bugs and the Italian translationDaniel Roesen <dr at cluenet dot de>: For grammar checksBenjamin Thery <benjamin dot thery at bull dot net>: For contribution of updated mobility sectionJohn Wenker <jjw at pt dot com>: major contribution to Programming using C-API +David Ranch <dranch at trinnet dot net>: For encouraging me to write this HOWTO, his editorial comments on the first few revisions, and his contributions to various IPv6 testing results on my IPv6 web site. Also for his major reviews and suggestions.Pekka Savola <pekkas at netcore dot fi>: For major reviews, input and suggestions.Martin F. Krafft <madduck at madduck dot net>: For grammar checks and general reviewing of the document.John Ronan <j0n at tssg dot wit dot ie>: For grammar checks.Georg Käfer <gkaefer at gmx dot at>: For detection of no proper PDF creation (fixed now by LDP maintainer Greg Ferguson), input for German books, big list of URLs, checking all URLs, many more suggestions, corrections and contributions, and the German translationMichel Boucey <mboucey at free dot fr>: Finding typos and some broken URLs, contribute some suggestions and URLs, and the French translationMichele Ferritto <m dot ferritto at virgilio dot it>: Finding bugs and the Italian translationDaniel Roesen <dr at cluenet dot de>: For grammar checksBenjamin Thery <benjamin dot thery at bull dot net>: For contribution of updated mobility sectionJohn Wenker <jjw at pt dot com>: major contribution to Programming using C-APISrivats P. <Srivats dot P at conexant dot com>: major contribution for 4in6 tunnels Other credits Document technique related

    Focus

    Request e-mail address

    What to subscribe

    Maillist e-mail address

    Language

    Access through WWW

    Linux kernel networking including IPv6

    majordomo (at) vger.kernel.org

    netdev

    netdev (at) vger.kernel.org

    English

    Archive

    Mobile IP(v6) for Linux

    Web-based, see URL

    mipl

    mipl (at) mobile-ipv6.org

    English

    Archive

    Linux IPv6 users using USAGI extension

    usagi-users-ctl (at) linux-ipv6.org

    usagi-users (at) linux-ipv6.org

    English

    Archive

    IPv6 on Debian Linux

    debian-ipv6 (at) lists.debian.org

    English

    Info/Subscription/Archive

    6bone

    majordomo (at) isi.edu

    6bone

    6bone (at) isi.edu

    English

    Archive

    IPv6 users in general

    majordomo (at) ipv6.org

    users

    users (at) ipv6.org

    English

    Archive

    Bugtracking of Internet applications (1)

    bugtraq-subscribe (at) securityfocus.com

    bugtraq (at) securityfocus.com (2)

    English

    Archive