From 9baab5be9d5ba6db65ae9dffa561173be8a37359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Z=C3=A1le=C5=A1=C3=A1k?= Date: Tue, 26 Nov 2024 09:37:56 +0100 Subject: [PATCH] =?UTF-8?q?pridani=20sekc=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- ansibleTree.txt | 28 +++++ bibliografie.bib | 122 +++++++++++++++++- chapters/implementace.tex | 233 +++++++++++++++++++++++++++++++++-- chapters/pozadavky.tex | 9 +- chapters/site.tex | 164 +++++++++++++++++++----- chapters/sprava.tex | 43 ++++++- chapters/zhodnoceni.tex | 17 ++- default.txt | 44 +++++++ images/8021q.png | Bin 0 -> 14946 bytes images/osi-tcpip.jpg | Bin 0 -> 90352 bytes images/tcpip_komunikace.png | Bin 0 -> 102934 bytes images/tcpip_zapouzdreni.png | Bin 0 -> 145227 bytes linelog.txt | 39 ++++++ nfdump | 3 + pdfa.xmpi | 8 +- prace.bbl | 108 +++++++++++++++- prace.tex | 10 +- 18 files changed, 760 insertions(+), 70 deletions(-) create mode 100644 ansibleTree.txt create mode 100644 default.txt create mode 100644 images/8021q.png create mode 100644 images/osi-tcpip.jpg create mode 100644 images/tcpip_komunikace.png create mode 100644 images/tcpip_zapouzdreni.png create mode 100644 linelog.txt create mode 100644 nfdump diff --git a/Makefile b/Makefile index 2155a1d..e4bb9a0 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ PRACE=prace.tex all: vlna pdf pdf: - latexmk -pdflua $(PRACE) + latexmk -pdflua -halt-on-error $(PRACE) #latexmk -pdf $(PRACE) clean: diff --git a/ansibleTree.txt b/ansibleTree.txt new file mode 100644 index 0000000..25e2599 --- /dev/null +++ b/ansibleTree.txt @@ -0,0 +1,28 @@ +$ tree -L 2 --dirsfirst apEduroam +. ++-- group_vars +|   +-- accessPoints.yml +|   +-- dsa.yml +|   +-- openwrt.yml +|   \-- swconfig.yml ++-- host_vars +|   +-- ap_0c806307e88a.yml +|   +-- ap_107c61992bd8.yml +|   +-- ap_b04e26bbc7e3.yml +|   +-- ap_c47154391634.yml +|   \-- ap_c47154393f26.yml ++-- include +|   \-- createHostVars.yml ++-- roles +|   +-- gekmihesg.openwrt +|   +-- network +|   +-- system +|   \-- wireless ++-- templates +|   \-- host_vars.j2 ++-- addNewAPs.yml ++-- ansible.cfg ++-- debug.yml ++-- inventory.yml ++-- reboot.yml +\-- setupAPs.yml \ No newline at end of file diff --git a/bibliografie.bib b/bibliografie.bib index b191e65..f656653 100644 --- a/bibliografie.bib +++ b/bibliografie.bib @@ -8,11 +8,27 @@ @book{Peterson_Davie_2022, place={Cambridge, MA}, title={Computer Networks: A Systems Approach}, - publisher={Morgan Kaufmann Publishers, an imprint of Elsevier}, + publisher={Morgan Kaufmann Publishers, an imprint of Elsevier, ISBN: 978-0-1238-5059-1}, author={Peterson, Larry L. and Davie, Bruce S.}, year={2022} } +@book{Nemeth_Evi_2008, + place={Brno}, + title={Linux : kompletní příručka administrátora }, + publisher={Computer Press, ISBN: 978-80-251-2410-9}, + author={Nemeth Evi, Snyder Garth, Hein Trent R.}, + year={2008} +} + +@book{Nemeth_Evi_2018, + place={Boston}, + title={Unix and Linux system administration handbook}, + publisher={Addison-Wesley, ISBN: 978-01-342-7755-4 }, + author={Nemeth Evi, Snyder Garth, Hein Trent R.}, + year={2018} +} + @online{mozttfb, author = "Hoffman, Billy", date = "2013-09-26", @@ -33,9 +49,113 @@ url = {https://openwrt.org/docs/guide-user/installation/before.installation#what_is_the_difference_between_the_different_image_formats}, urldate = {2024-07-03} } +@online{OpenWrtDoc8021X, + author = {Project OpenWrt}, + title = {Introduction to 802.1X}, + year = 2024, + url = {https://openwrt.org/docs/guide-user/network/wifi/wireless.security.8021x}, + urldate = {2024-11-10} +} @online{LinuxDSA, author = {kernel.org}, title = {Distributed Switch Architecture (DSA)}, url = {https://docs.kernel.org/networking/dsa/dsa.html}, urldate = {2024-10-09} } +@online{leanDeliveryIaC, + author = {Aliaksei Maiseyeu}, + title = {Dawn of the Infrastructure as Code}, + url = {https://lean-delivery.com/2019/12/infrastructure_as_code.html}, + urldate = {2024-10-15} +} +@online{JetPatch, + author = {Ali Raza}, + title = {Puppet vs Chef vs Ansible vs SaltStack}, + url = {https://jetpatch.com/blog/agent-management/puppet-vs-chef-vs-ansible-vs-saltstack/}, + urldate = {2024-10-19} +} +@book{HeapAnsible, + place={Berkley, CA}, + title={Ansible: From beginner to pro}, + publisher={Apress, ISBN: 978-1-4842-1659-0}, + author={Michael Heap}, + year={2016} +} +@online{ZenofAnsible, + author = {Timothy Appnel}, + title = {The Zen of Ansible}, + url = {https://www.ansible.com/blog/the-zen-of-ansible/}, + urldate = {2024-10-01} +} +@online{RamsTech, + author = {Ram}, + title = {Monitoring and Visualization Options for OpenWRT}, + url = {https://nramkumar.org/tech/blog/2024/06/21/monitoring-and-visualization-options-for-openwrt/}, + urldate = {2024-10-15} +} +@report{Hofstede2014, + author = {R. Hofstede and P. Čeleda and B. Trammell and I. Drago and R. Sadre and A. Sperotto and A. Pras}, + title = {Flow monitoring explained: from packet capture to data analysis with NetFlow and IPFIX, doi: 10.1109/COMST.2014.2321898}, + institution = {IEEE communications surveys & tutorials}, + year = {2014}, + doi = {10.1109/COMST.2014.2321898} +} +@misc{openwrtAPK, + title = {Major Change Notice: New Package Manager}, + date = {2024-11-15}, + author = {psherman}, + url = {https://forum.openwrt.org/t/major-change-notice-new-package-manager/215682} +} +@online{peterka_tcpip, + author = {Jiří Peterka}, + title = {Síťový model TCP/IP}, + url = {https://www.earchiv.cz/a92/a231c110.php3}, + urldate = {2024-9-9} +} +@online{wiki_tcpip, + author = {Wikipedie}, + title = {TCP/IP}, + url = {https://cs.wikipedia.org/wiki/TCP/IP}, + urldate = {2024-9-13} +} +@online{samuraj_csma, + author = {Petr Bouška}, + title = {Ethernet - CSMA/CD, kolizní doména, duplex}, + url = {https://www.samuraj-cz.com/clanek/ethernet-csma-cd-kolizni-domena-duplex/}, + urldate = {2024-9-23} +} +@online{samuraj_ethernet, + author = {Petr Bouška}, + title = {TCP/IP a ethernet - cesta v síti, aktivní síťové prvky}, + url = {https://www.samuraj-cz.com/clanek/tcp-ip-a-ethernet-cesta-v-siti-aktivni-sitove-prvky/}, + urldate = {2024-9-23} +} +@online{samuraj_vlan, + author = {Petr Bouška}, + title = {VLAN - Virtual Local Area Network}, + url = {https://www.samuraj-cz.com/clanek/vlan-virtual-local-area-network/}, + urldate = {2024-9-24} +} +@online{freeccna_vlan, + author = {FreeCCNAStudyGuide}, + title = {7-4 VLAN Trunking: ISL and 802.1Q}, + url = {https://www.freeccnastudyguide.com/study-guides/ccna/ch7/7-4-vlan-trunking-isl-802-1q/}, + urldate = {2024-9-21} +} +@online{ieee_8023, + author = {IEEE}, + title = {802.3-2018 - IEEE Standard for Ethernet}, + url = {https://ieeexplore.ieee.org/document/8457469}, + urldate = {2024-9-29} +} +@online{ijs2_ethernet, + title = {Ethernet}, + url = {http://ijs2.8u.cz/index.php?option=com_content&view=article&id=20&Itemid=125}, + urldate = {2024-9-21} +} +@online{fair_vlan, + author = {Gorry Fairhurst}, + title = {Advanced VLANs}, + url = {https://erg.abdn.ac.uk/users/gorry/course/lan-pages/vlan-advanced.html}, + urldate = {2024-9-20} +} \ No newline at end of file diff --git a/chapters/implementace.tex b/chapters/implementace.tex index b74eb02..9e061b9 100644 --- a/chapters/implementace.tex +++ b/chapters/implementace.tex @@ -1,21 +1,26 @@ \chapter{Implementace modelové přístupové Wi-Fi sítě} +\label{ch:implemetace} Sekce popisuje konfiguraci síťových zařízení a dalších softwarových komponent nutných pro fungování modelové implementace dle definovaných požadavků. Zejména se zaměřuje na konfiguraci přístupových bodů (access pointů) sítě a konfiguraci centrální autentifikace a autorizace s~integrací do sítě eduroam. Popisuje také nastavení routerů, jedná se ale pouze o~základní konfiguraci pro fungování modelové implementace. V~reálné implementaci by konfigurace obsahovala daleko větším množstvím síťových rozhraní a komplexnější nastavení firewallu. +% ================================================================================================================== \section{Síťové prostředí} +\label{sec:sitoveProstredi} - - +% ================================================================================================================== \section{Výběr softwaru pro síťové prvky a mangement síťových prvků} ... +% ================================================================================================================== \section{Příprava zařízení} Přístupový bod od výroby obsahuje proprietární operační systém výrobce zřízení. Tento operační systém je nutné nahradit vybraným operačním systémem OpenWrt. Náhrada probíhá přepsáním původního obsahu paměti zařízení systémem OpenWrt. -\subsubsection{Kompilace a sestavenení OpenWrt} +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Kompilace a sestavenení OpenWrt} +\label{subsec:kompilace} Vývojáři systému openwrt nabízejí dvě možností jak získat obraz systému, který se nahraje do paměti zařízení. První možností je stáhnout již předkompilovaný a sestavený obraz systému openwrt pro dané zařízení. Tento předkompilovaný a sestavený systém obsahuje software pro provoz síťového zařízení v~režimu routeru/Wi-Fi routeru (obsahuje firewall a dhcp servery). Tato možnost je pro uživatele jednoduchou cestou jak získat openwrt pro své zařízení, neumožňuje však úpravy samotného systému a změny nastavení, které by se aplikovali před prvním spuštěním. @@ -41,34 +46,238 @@ Seznam balíků, které nejsou potřeba pro provoz zařízení v~režimu příst \item \verb|firewall4| - překladač uci pravidel firewallu na nftables pravidla, \item \verb|kmod-nft-offload| - kernel modul pro podporu harwarové akcelerace routování a NATu, \item \verb|luci| - webové rozhraní pro konfiguraci zařízení, - \item \verb|nftables| - framework pro filtrování packetů a další práci se síťovým provozem, + \item \verb|nftables| - framework pro filtrování paketů a další práci se síťovým provozem, \item \verb|odhcpd-ipv6only| - démon pro správu IPv6 v~síti, \item \verb|ppp| - podpora Point-to-Point protokolu, \item \verb|ppp-mod-pppoe| - rozšíření o~podporu PPPoE funkcionality. \end{itemize} -Balíky lze odebrat připsáním názvů balíků s~prefixem \verb|-|. Tedy: \texttt{-dnsmasq -firewall4 -kmod-nft-offload -luci -nftables -odhcpd-ipv6only -ppp -ppp-mod-pppoe} +Protože budeme dle definovaných požadavků v~kapitole \ref{ch:pozadavky} používat k~autentifikaci a autorizaci WPA enterprise nahradíme balík \verb|wpad-basic-mbedtls| za jeho plnohodnotnou alternativu \verb|wpad-mbedtls|, který mimo jiné implementuje WPA-enterprise metody pro autorizaci a autentizací clientů. + +Balíky lze odebrat připsáním názvů balíků s~prefixem \verb|-|. Tedy: \texttt{-dnsmasq -firewall4 -kmod-nft-offload -luci -nftables -odhcpd-ipv6only -ppp -ppp-mod-pppoe -wpad-basic-mbedtls wpad-mbedtls} Do vstupu \verb|Script to run on first boot (uci-defaults)| zadáme ash unix shell script, který provede konfiguraci systému při prvním spuštění. -\lstinputlisting[caption={Script spouštěný při prvním bootu (uci-defaults.sh)}, language=bash,]{ucidefaults.sh} +% \lstinputlisting[caption={Script spouštěný při prvním bootu (uci-defaults.sh)}, language=bash,]{ucidefaults.sh} Tento script odstraní výchozí nastavení systému OpenWrt. Ze souboru \verb|/etc/board.json| (popis výchozí konfigurace pro dané zařízení) zjistí původní WAN port zařízení a nad ním vytvoří nové síťové rozhraní s~vlan tagem \verb|99| pro příchozí i odchozí provoz. DHCP client na tomto novém rozhraní požádá o~přidělení IP adresy. Toto síťové rozhraní bude jediné síťové rozhraní kterému bude přidělena IP adresa. Bude sloužit pro management přístupového bodu. -Script detekuje, zda dané zařízení obsahuje switch a rozpozná jestli je spravován pomocí DSA nebo nástrojem \verb|swconfig|. DSA nebo-li Distributed Switch Architecture je subsystém Linuxového jádra pro unifikovanou správu specifických embedded switchů. Vytváří virtuální síťová rozhraní pro každý port switche, což umožňuje jejich správu standardními Linuxovými nástroji.\citep{LinuxDSA} U~DSA switche si s~nastavením VLAN tagování provozu poradí OpenWrt při vytváření síťového rozhraní pro management, zatímco switch spravovaný nástrojem \verb|swconfig| je nutné ještě nakonfigurovat tak, aby na původním WAN portu switche přijímal a odesílal rámce s VLAN tagem 99 a tyto rámce přeposílal z~portu a na port switche připojený na ethernetové rozhraní CPU přístupového bodu také s VLAN tagem 99. +Script detekuje, zda dané zařízení obsahuje switch a rozpozná jestli je spravován pomocí DSA nebo nástrojem \verb|swconfig|. DSA nebo-li Distributed Switch Architecture je subsystém Linuxového jádra pro unifikovanou správu specifických embedded switchů. Vytváří virtuální síťová rozhraní pro každý port switche, což umožňuje jejich správu standardními Linuxovými nástroji.\citep{LinuxDSA} U~DSA switche si s~nastavením VLAN tagování provozu poradí OpenWrt při vytváření síťového rozhraní pro management, zatímco switch spravovaný nástrojem \verb|swconfig| je nutné ještě nakonfigurovat tak, aby na původním WAN portu switche přijímal a odesílal rámce s~VLAN tagem 99 a tyto rámce přeposílal z~portu a na port switche připojený na ethernetové rozhraní CPU přístupového bodu také s~VLAN tagem 99. Script dále provede změnu root hesla, které je definováno na začátku scriptu v~proměnné \verb|root_password| a bezpečnostní nastavení SSH démona s~přidáním SSH klíče z~proměnné \verb|ssh_key_rsa|. SSH démon není pro některé architektůry kompilován s~podporou novějších typů klíčů, proto doporučuji preferovat klíč typu RSA. -\subsubsection{Nahrání systému do paměti zařízení} +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Nahrání systému do paměti zařízení} -Proces nahrání obrazu systému OpenWrt je u různých výrobců zařízení různý. Na většinu zařízení lze nahrát factory obraz systému OpenWrt bez potíží pomocí nástroje pro upgrade firmwaru přes webové rozhraní továrního systému. Některé zařízení mohou vyžadovat složitější postup. Je doporučeno seznámit se s~posupem instalace OpenWrt v~dokumentaci k~danému zařízení na stránkách projektu OpenWrt. +Proces nahrání obrazu systému OpenWrt je u~různých výrobců zařízení různý. Na většinu zařízení lze nahrát factory obraz systému OpenWrt bez potíží pomocí nástroje pro upgrade firmwaru přes webové rozhraní továrního systému. Některé zařízení mohou vyžadovat složitější postup. Je doporučeno seznámit se s~posupem instalace OpenWrt v~dokumentaci k~danému zařízení na stránkách projektu OpenWrt. Tímto jsme získali přístupový bod s~opensource systémem OpenWrt se síťovým přístupem připravený pro následnou konfiguraci dalšími nástroji. -\section{Nastavení management sítě a zřízení přístupu} +% ================================================================================================================== +\section{Konfigurace a správa přístupových bodů} + +Tabulka \ref{tab:DevOpsTools} poskytuje přehled vybraných nástrojů pro správu konfigurace a jejich vlastností. +Výběr nástroje pro správu konfigurace přístupových bodů sekce se musí řídit jejich možnostmi. +Přístupové body jsou limitovýny svými hardwarovými prostředky, proto je vhodné preferovat nástroje, které nevyžadují instalaci agenta, aby nedocházelo k~využívání omezeného interního uložiště a operační paměti. +Dalším zohledněným kritériem pro výběr nástroje je jazyk zápisu konfigurace. Zde preferuji zápis konfigurace v~jazyce YAML pro jeho jednoduchost oproti specifické syntaxi nástroje Puppet. Jazykem YAMl se zapisují strukturované data podobně jako v~JSONu. Jazyk YAML je obecně známý pro svou dobrou čitelnot a intuitivní zápis, což zjednodušuje čtení i úpravy konfigurací. + +Zbylé nástroje Ansible a SaltStack využívají pro zápis konfigurace jazyk YAML a konfigurují zařízení pomocí SSH. Přesto, že fungují bez potřeby agenta většina jejich modulů vyžaduje instalaci pythonu\footnote{\url{https://docs.saltproject.io/en/latest/topics/ssh/index.html}}\footnote{\url{https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html\#managed-node-requirements}} na spravovaných zařízeních, což může být opět problematické pro přístupové body vzhledem k~jejichi omezené interní paměti (instalace Python se svými závislostmi může na systému Openwrt vyžadovat přes 9 MiB interní paměti). Z~tohoto důvodu musím vybrat nástroj \textbf{Ansible} pro jeho širokou komunitní podporu a zejména existenci projektu \verb|ansible-openwrt|\footnote{\url{https://github.com/gekmihesg/ansible-openwrt}}, jenž přepisuje příkazy některých modulů Ansiblu vyžadující python interpreter za jejich alternativy interpretované v~unixovém příkazovém procesoru a obsahuje modul uci pro konfiguraci OpenWrt. + +\textbf{Ansible} je nástroj pro automatizaci konfigurace, správy a nasazení aplikací. Pro zápis požadované konfigurace lze kombinovat imperativní i deklarativní způsob. Možnosti deklarativní konfigurace jsou omezeny schopnostmi ansiblu. Je doporučeno upřednosťnovat deklarativní způsob zápisu konfigurace a k~imperativnímu přistoupit až v~momentu kdy jsme omezeni schopnostmi ansiblu.\citep{ZenofAnsible} + +\textbf{Ansible} se skládá z~těchto komponent: +\begin{itemize} + \item \textbf{Playbook}: Soubor, který obsahuje definice úkolů, které mají být vykonány na cílových zařízeních, nebo skupinách cílových zařízení. Mohou obsahovat podmínky, či volání jiných playbooků. Playbook je napsán v~YAML formátu. + \item \textbf{Inventory}: Seznam spravovaných zařízení Ansiblem. Inventory může být statický nebo dynamický(generovaný) a umožňuje seskupovat jednotlivé zařízení do skupin podle jejich vlastnostní nebo umístění. + \item \textbf{Moduly}: Předpřipravené funkce, které Ansible používá k~provádění úkolů. Příkladem může být modul \verb|apt| pro instalaci balíčků, nebo \verb|filesystem| pro správu filesystémů. Kromě široké sady vestavěných modulů v~Ansible lze vytvořit i vlastní moduly. + \item \textbf{Role} jsou strukturované jednotky obsahující playbooky, proměnné, šablony a soubory tak, aby byly znovupoužitelné na různých systémech či v~jiných kontextech. + \item \textbf{Proměnné} se v~Ansiblu používají k~ukládání hodnot využitelných v~playboocích, šablonách nebo modulech. V~Ansiblu lze definovat specifické hodnoty proměnných pro konkrétní zařízení, pro skupiny zařízení nebo pro danný playbook. + \item \textbf{Templates (šablony)} slouží pro generování konfiguračních souborů na základě proměnných a logiky. Zapisují se v~jazyce Jinja2. + \item \textbf{Handlers} jsou speciální úkoly, které jsou spuštěny pouze tehdy, dojde-li ke změně na konfigurovaném zařízení. Používají se například pro restart služby při změně konfigurace. + \item \textbf{Facts (fakta)} jsou shromážděné informace o~konfigurovaném zařízení, které lze dále použít v~playboocích ke konfiguraci cílových zařízení. +\end{itemize} + +Ke správě konfigurace přístupových bodů jsem vytvořil adresář, který dodržuje standartní adresářovou strukturu Ansible. +% \lstinputlisting[caption={Adresářová struktura Ansible}, language=bash,]{ansibleTree.txt} + +V~adresáři \verb|roles/gekmihesg.openwrt| je naklonován repozitář \verb|ansible-openwrt|\footnote{\url{https://github.com/gekmihesg/ansible-openwrt}}, který přidává roli pro konfiguraci zářízení OpenWrt. Pro použití modulů této role je potřeba umístit spravovaná zařízení do skupiny \verb|openwrt| v~inventory Ansiblu a použít roli \verb|gekmihesg.openwrt| v~direktivě \verb|roles:| v~playbooku. + +\pagebreak + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Nasazení nových přístupových bodů} + +Pro nasazení nových přístupových bodů slouží playbook \verb|addNewAPs.yml|. + +% \lstinputlisting[caption={Obsah playbooku addNewAPs.yml},]{../apLukov/addNewAPs.yml} + +V~úvodu prvního úkolu playbooku jsou v~proměnné \verb|subnets| definovávy podsítě, které budou proskanovány programem \verb|ping|. Proskenován je adresní rozsah DHCP serveru, kde jsou hledány dynamicky přidělené nové IP adresy nově připojených přístupových bodů a taky adresní rozsah mimo DHCP server, aby byly zjištěny volné IP adresy, ze kterých bude novým přístupovým bodům přidělena statická IP adresa. Nalezená nová zařízení jsou přidána do dynamického inventáře se kterým se pracuje v~dalším úkolu. Volné IP adresy jsou uloženy do proměnné. + +Další úkol playbooku získá fakta o~nalezeném zařízení a vyextrahuje z~něj MAC adresu, která bude sloužit jako unikátní identifikátor zařízení. Je vytvořen seznam nalezených zařízení indexovaný jejich hostnamem, který je vytvořený z~MAC adresy a prefixu \verb|ap_|. + +Ve třetím úkolu playbooku je vytvořen prostřednictvím playbooku \\ \verb|include/createHostVars.yml| soubor pro definici specifických proměnných pro dané zařízení v~adresáři \verb|host_vars| podle šablony \verb|templates/host_vars.j2|. Název souboru a hostname zařízení používaný vrámci Ansible je získán v~předchozím kroku. Při vytváření souboru je pro dané zařízení přiřazena do proměnné \verb|device_ip_address| IP adresa z~rozsahu volných IP adres. Nalezené zařízení je s~přiřazenou IP adresou přidáno do \verb|invetory.yml|. + +V~posledním úkolu playbooku je prostřednictvím role \verb|network| na nalezených nových zařízeních nastavena statická adresa zapsána v~předchozím kroku do proměnné \verb|device_ip_address| a provedeno další síťové nastavení. + +Playbook se spouští příkazem \verb|$ansible-playbook addNewAPs.yml| + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Konfigurace přístupových bodů} + +Výchozí situace před finálním nakonfigurováním je taková, že všechny přístupové body jsou přidány do souboru \verb|inventory.yml| a mají nastavenou statickou IP adresu. Zařízení jsou v~\verb|inventory.yml| rozdělena do skupin podle toho zda používají DSA\footnote{Distributed switch Architecture} nebo nástroj \verb|swconfig| pro konfiguraci switche, protože switch je nutno pro oba případy konfigurovat odlišně. Princip DSA je popsán v~závěru sekce \ref{subsec:kompilace}. Skupiny \verb|dsa| a \verb|swcofig| jsou v~metaskupině \verb|accessPoints|, která je v~další metaskupine \verb|openwrt| pro správnou funkci role \verb|gekmihesg.openwrt|. + +% \lstinputlisting[caption={Příklad inventory.yml},]{../apLukov/inventory.yml} + +\pagebreak + +% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +\subsubsection{Zápis globální systémové konfigurace} + +Konfigurace je zapsána především deklarativním způsobem v~souborech\\\verb|group_vars/openwrt.yml| a \verb|group_vars/accessPoints.yml|. Tato konfigurace se aplikuje na všechny přístupové body, je zde tedy zapsána konfigurace, která bude na všech přístupových bodech stejná. Jedná se o~nastavení systému, softwarových bridgů, síťových rozhraní a Wi-Fi rozhraní. + +% \lstinputlisting[caption={Ukázka group\_vars/openwrt.yml},]{../apLukov/group_vars/openwrt.yml} + +Sekce \verb|System| YAML souboru slouží pro konfiguraci systému openwrt (především časového pásma) a systémových nástrojů (nastavení logování). Sekce ovlivňuje konfiguraci v~\verb|/etc/config/system|\footnote{\url{https://openwrt.org/docs/guide-user/base-system/system_configuration}} na systému OpenWrt. Konfigurace systému je provedena Ansible rolí \verb|system|. + +% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +\subsubsection{Role k~provedení sytémové konfigurace} + +% \lstinputlisting[caption={Ukázka roles/system/tasks/main.yml},]{../apLukov/roles/system/tasks/main.yml} + +Role \verb|system| pomocí modulu \verb|uci| nastaví sekci system systému OpenWrt udělá commit\footnote{uložení změn} a pokud proběhnou změny restartuje modulem \verb|ansible.builtin.service| systémovou službu pomocí handeru v~\verb|roles/system/handlers/main.yml|. + +% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +\subsubsection{Zápis globální síťové konfigurace} + +% \lstinputlisting[caption={Ukázka group\_vars/accessPoints.yml},]{../apLukov/group_vars/accessPoints.yml} + +Konfigurací v~\verb|group_vars/accessPoints.yml| jsou ovlivněny konfigurační soubory \verb|/etc/config/network|\footnote{\url{https://openwrt.org/docs/guide-user/network/network_configuration}} a \verb|/etc/config/wireless|\footnote{\url{https://openwrt.org/docs/guide-user/network/wifi/basic}} systému OpenWrt. + +V~úvodu se z~Ansible faktů zjistní logické identifikátory 5Ghz a 2,4GHz Wi-Fi rádií a uloží se do proměnných \verb|device_2g_radio| a \verb|device_5g_radio|. Tyto proměnné slouží k~individuální konfiguraci přístupového bodu, kdy pomocí těchto proměnných lze omezit vybrané Wi-Fi síťě pouze na danné rádia. + +Sekce \verb|network_devices| definuje jaká síťová zařízení budou vytvořena. V~tomto případě budou podle kapitoly \ref{sec:sitoveProstredi} vytvořena čtyři síťová zařízení typu bridge. Bridge v~OpenWrt je logické síťové zařízení, které spojuje více fyzických nebo virtuálních rozhraní do jednoho síťového segmentu. V~tomto případě budou vytvořeny síťové bridge pro propojení ethernetového portu s~VLAN a adekvátní Wi-Fi síťě. + +Sekce \verb|network_interfaces| definuje čtyři nová síťová rozhraní, která budou vytvořena nad vytvořenými síťovými bridgy. + +Sekcí \verb|wireless_device_default| jsou nastaveny výchozí hodnoty pro všechna Wi-Fi rádia zařízení. V~tomto případě je nastaveno, že rádio bude ve výchozím stavu zapnuto a bude nastaven country code CZ. Toto nastavení zajišťuje dodržování právních předpisů týkajících se používání elektromagnetického spektra definovaných ve všeobecného oprávnění ČTÚ\footnote{Český telekomunikační úřad}. Zejména se jedná o~omezení počtu kanálů a maximálního vysílacího výkonu. + +V~poslední sekci \verb|wireless_interfaces| jsou definovány dvě Wi-Fi sítě podle požadavků v~kapitole \ref{ch:pozadavky}. První síť má SSID \verb|eduroam| a k~zabezpečení využívá WPA2 Enterprise. Adresa autentizačního a autorizačního serveru je definovaná v~proměnné \verb|auth_server|, heslo je uloženo v~proměnné \verb|auth_secret|. Je zde umožněn roaming dle 802.1r. Jedním z~požadavků na modelovou implementaci je dynamické přidělování uživatelů do příslušných VLAN, tohoto je docíleno pomocí parametrů v~proměných \verb|dynamic_vlan|, \verb|vlan_tagged_interface|, \verb|vlan_bridge| a \verb|vlan_naming|, které ovlivňují chování démona \verb|hostapd|. + +\verb|Hostapd| je nástroj určený ke správě a vytváření Wi-Fi sítí. Kromě toho zajišťuje autorizaci zařízení a funguje jako 802.1X autentifikátor, tedy zprostředkovává autentizaci mezi klientským zařízením a autorizačním serverem. V~OpenWrt je součástí balíčku \verb|wpad-mbedtls|, který jsme nainstalovali ve své plnohodnotné verzi při kompilaci. +Parametr \verb|dynamic_vlan| \verb|hostapd| definuje zda je clientské zařízení dynamicky přidělováno do vlan. Jsou definovány tři stavy. 0 - neprobíhá dynamické přiřazování vlan, 1 - VLAN není požadováno, použije se výchozí síťové rozhraní, 2 - VLAN je od RADIUS serveru požadována jinak clientské zařízení nepřipojí. +Pokud je dynamické přidělování zapnuto \verb|hostapd| Wi-Fi clienty přiřazuje do adekvátních bridgů. K~tomu potřebuje znát prefix bridge, který je definovaný v~\verb|hostapd| parametru \verb|vlan_bridge|. \verb|vlan_naming| s~hodnotou 1 říká, že do bridge bude přirazeno ethernetové rozhraní ve formátu \verb|.|, v~případě hodnoty 0 je přiřazeno rozhraní s~názvem \verb|vlan|. V~parametru \verb|vlan_tagged_interface| je tedy uvedeno ethernetové rozhraní propojující přístupový bod a router sítě.\citep{OpenWrtDoc8021X} + +Druhou definovanou Wi-Fi síťí je \verb|free wifi| která nevyžaduje žádnou autentizaci a je přiřazena k~síťovému rozhraní \verb|free_wifi|. + +Obě dvě Wi-Fi sítě jsou ve výchozím nastavení spuštěny na všech Wi-Fi rádiích zařízení. V~promněnné \verb|isolated| je nastaveno blokování komunikace clientů vrámci Wi-Fi sítě. + +% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +\subsubsection{Zápis unikátní konfigurace pro jednotlivé zařízení} + +Specifická konfigurace zařízení je zapsána v~\verb|host_vars/ap_.yml|. Tato konfigurace slouží k~nastavování IP adresy zařízení, hostname zařízení a nastavení switche. Zde je nutné nastavit jednotlivé VLANy a jejich porty. Na jednotlivých přístupových bodech je pomocí této konfigurace také možné nastavovat kanál Wi-Fi rádií, vysílací výkon nebo které Wi-Fi sítě se mají vysílat na kterých rádiích. + +% \lstinputlisting[caption={Ukázka specifické konfigurace přístupového bodu s~DSA switchem},]{../apLukov/host_vars/ap_107c61992bd8.yml} + +U~přístupových bodů implementující DSA se nejdíve definuje v~sekci \verb|network_devices_append| nový bridge k~vytvoření, který obsahuje fyzické ethernetové porty zařízení. V~sekci \verb|network_bridge_vlan_filtering| se definují čísla VLAN a ethernetové porty, na kterých budou tyto VLAN aktivní. Dále se určí, které porty budou označeny tagem a které nikoli. + +Sekce \verb|wireless_devices| slouží k~nastavení kanálů a vysílacích výkonů jednotlivých rádií. Výkon se zapisuje v~dBm a je nutné se podívat do dokumentace k~danému zařízení jaké výkony umožňuje nastavit. Stejně tomu je i u~kanálu. Některá zařízení mají omezené možnosti nastavení kanálu, zejména v~pásmu 5GHz. + +Sekcí \verb|wireless_interfaces_override| lze omezit danou Wi-Fi síť pouze na určité rádio. + +% \lstinputlisting[caption={Ukázka specifické konfigurace přístupového bodu s~swconfig switchem},]{../apLukov/host_vars/ap_b04e26bbc7e3.yml} + +U~zařízení, kde se switch spravuje nástrojem \verb|swconfig| se tato konfigurace provádí sekcí \verb|network_swconfig|. Je zde opět uvedeno číslo VLAN a ethernetový port. V~případě \verb|swconfig| switche je potřeba nahlédnou do dokumentace k~zařízení, protože jednotlivé porty jsou na každém zařízení číslovány jinak. + +% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +\subsubsection{Role k~provedení síťové konfigurace} + +% \lstinputlisting[caption={Role network},]{../apLukov/roles/network/tasks/main.yml} + +Role \verb|network| nejdříve iteruje sekcí \verb|network_swconfig| a konfiguruje prostřednictvím playbooku \verb|swconfig.yml| switch u~zařízení kde je tato sekce definována. Dále jsou playbookem \verb|device.yml| nastaveny síťové bridge opět iterací přes sekci \verb|network_devices| doplněnou o~VLAN filtrující bridge z~proměnné \verb|network_devices_append| u~zařízení implemntujících DSA. Ve třetím kroku jsou nakonfigurovány VLANy v~případě DSA zařízení pomocí playbooku \verb|vlan_filtering.vlan|. V~posledním kroku jsou vytvořeny síťové rozhraní playbookem \verb|interface.yml|, provedené změny jsou aplikovány a je restarováno síťování na přístupovém bodu. Pro případ změny IP adresy zařízení jsou na konci úkoly měnící IP zařízení v~inventory běžícího playbooku. + +% \lstinputlisting[caption={Ukázka swconfig.yml},label={lst:swconfig.yml}]{../apLukov/roles/network/tasks/swconfig.yml} +% \lstinputlisting[caption={Ukázka device.yml},label={lst:device.yml}]{../apLukov/roles/network/tasks/device.yml} +% \lstinputlisting[caption={Ukázka vlan\_filtering.yml},label={lst:vlan_filtering.yml}]{../apLukov/roles/network/tasks/vlan_filtering.yml} +% \lstinputlisting[caption={Ukázka interface.yml},label={lst:interface.yml}]{../apLukov/roles/network/tasks/interface.yml} + +Ukázky \ref{lst:device.yml}, \ref{lst:vlan_filtering.yml} a \ref{lst:interface.yml} jsou zkráceny o~začátek souboru, který je téměř totožný se začátkem v~\ref{lst:swconfig.yml}. Ve všech případek je použit pro konfigurace přístupových bodů modul \verb|uci| z~role \verb|gekmihesg.openwrt|. + +Role \verb|wireless| provádí konfigurací Wi-Fi rádií a jejich síťí. Role iteruje všemi dostupnými rádiemi zařízení a nastavuje jejich výchozí hodnoty z~proměnné \verb|wireless_devices_default| a kanály s~vysílacími výkony, tak jak jsou definovány u~konkrétních zařízení. Toto je provedeno v~playbooku role \verb|device.yml| + +Následně vytváří wifi sítě tak jak jsou definovány v~\verb|group_vars/accessPoints.yml| pomocí playbooku role \verb|interface.yml|. Při vytváření se zohleďnují individuální nastavení pro jednotlivé přístupové body v~sekci YAML konfigurace \verb|wireless_interfaces_override|. + +% \lstinputlisting[caption={Role wireless},]{../apLukov/roles/wireless/tasks/main.yml} + +% \lstinputlisting[caption={Ukázka devices.yml},]{../apLukov/roles/wireless/tasks/device.yml} +% \lstinputlisting[caption={Ukázka interface.yml},]{../apLukov/roles/wireless/tasks/interface.yml} + +Samotná konfigurace opět probíhá module \verb|uci|. + +% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +\subsubsection{Playbook k~provedení finální konfigurace} + +% \lstinputlisting[caption={Ukázka setupAPs.yml},]{../apLukov/setupAPs.yml} + +Playbook využívá role \verb|system|, \verb|network| a \verb|wireless|, které provedou konfiguraci podle nastavení v~proměnných v~adresářích \verb|group_vars| a \verb|host_vars|. Po nastavení zařízení jsou spuštěny další úkoly v~sekci \verb|post_tasts|. Pomocí modulu \verb|opkg| jsou na všechny přístupové body nainstalován balíčky \verb|prometheus-node-exporter-lua| a \verb|prometheus-node-exporter-lua-hostapd_station|. Tyto balíčky jsou modulem \verb|uci| nakonfigurovány a všechna zařízení jsou restartována. + +Playbook se spouští příkazem \verb|$ ansible-playbook -i inventory.yml setupAPs.yml|. Timto je dokončena finální konfigurace všech přístupových bodů infrastruktury. + +% ================================================================================================================== +\section{Nastavení antentizačního serveru} ... -\section{Monitoring a centrální logování} +% ================================================================================================================== +\section{Monitoring a logování} -... \ No newline at end of file +Pro získání komplexního přehledu o~přístupových bodech a síťi je potřeba shromáždit infromace ze samotných přístupových bodů, z~RADIUS serveru a z~gatewaye (routeru). + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Systémový log} +Systémové logy hrají zásadní roli při monitorování stavu zařízení. Poskytují důležité informace o~bezpečnostních incidentech, hardwarových a softwarových problémech nebo jiných událostech, které vyžadují pozornost. Aby byla tato data užitečná doporučuje se logy uchovávat alespoň jeden měsíc. Důvodem je skutečnost, že odhalení bezpečnostního incidentu může také zabrat určtitý čas.\citep{Nemeth_Evi_2008} + +Systém OpenWrt používá nástroj \verb|logd| z~projektu ubox\footnote{\url{https://git.openwrt.org/?p=project/ubox.git}} k~řízení systémového logování. Tento nástroj sbírá logovací zprávy od všech programů běžících na systému OpenWrt a ukládá je do centrálního systémového logu. Ve výchozí konfiguraci je tento log uložen do cyklické vyrovnávací paměti umístěné v~operační paměti (RAM). Tento přístup minimalizuje zápisy do trvalé paměti zařízení, což je důležité zejména u~zařízení s~NAND pamětí, která by mohla nadměrnými zápisy degradovat. +Kvůli omezené kapacitě cyklické vyrovnávací paměti v~RAM je vhodné logy z~přístupových bodů přesměrovat na centrální logovací server přes síť. +Nástroj \verb|logd| tuto funkci podporuje a modelová implementace výše tuto konfiguraci zahrnuje. +Na centrálním serveru mohou být logy dále zpracovávány a analyzovány pomocí dalších nástrojů. + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Log RADIUS serveru} +Pro získání detailnějších informací o~lokálních autentizovaných klientech, zejména prostřednictvím sítě eduroam je potřeba provést úpravy serveru. +Logování na FreeRADIUS serveru zajišťuje modul linelog, který umožňuje zapisovat záznamy do systémového logu. +\lstinputlisting[caption={Soubor mods-available/linelog},]{linelog.txt} +Konfigurace\footnote{\url{https://wiki.freeradius.org/guide/eduroam}} dostupná na webu freeradius.com ukazuje příklad s~několika instancemi modulu \verb|linelog|, které slouží k~logování příchozích RADIUS požadavků nebo odpovědi. Tyto instance jsou následně volány v~hlavním konfiguračním souboru FreeRADIUS \verb|sites-available/default| na příslušných místech v~rámci zpracování RADIUS požadavků. Zalogovány jsou lokální požadavky na autorizaci, odpovědi na autentizační požadavky, odpovědi na požadavky přijaté od jiných institucí a odeslané proxy požadavky směrem k~jiným institucím. +\lstinputlisting[caption={Nastavení logování v~sites-available/default},]{default.txt} +Výsledkem této konfigurace je detailnější log, včetně například atributů NAS-IP-Address, Operator-Name, Calling-Station-Id, tedy IP adresy autentifikátoru, název instituce, ze které přišel nebo kam se odesílá požadavek/odpověď a MAC adresa zařízení. Tyto záznamy je nutné dle Technických požadavků a doporučení +pro členy federace eduroam.cz\footnote{\url{https://www.eduroam.cz/_media/cs/technicke_pozadavky_eduroam.pdf}} archivovat alespoň 6 měsíců. + +Ze systémového logu RADIUS serveru lze tyto záznamy opět přeposlat na centrální logovací server. + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Monitoring systému a hardwarových prostředků} +Kromě systémového logu mohou historické záznamy o~stavu systému a hardwarových prostředcích sloužit ke zpětné analýze příčin vzniklých problémů, což usnadňuje jejich diagnostiku a řešení. Monitoring také umožňuje včas identifikovat potenciální problémy, jako je vyčerpání operační paměti nebo nedostatek výpočetní kapacity CPU, a tím zabránit výpadkům. + +V~modelové implementaci jsou shromážděné informace předávány na centrální server, kde jsou uloženy a mohou být vizualizovány. +Systém OpenWrt ve svých repozitářích nabízí tyto open-source nástroje pro shromaždování informací o~systému a jejich předání dále: \verb|zabbix-agentd|, \verb|collectd|, \verb|prometheus-node-exporter-lua| \verb|snmpd| a \verb|telegraf|.\citep{RamsTech} + +Z~těchto nástrojů jsem zvolil nástroj \verb|prometheus-node-exporter-lua| pro jeho jednoduchý princip předávání dat a existenci jeho rozšíření \verb|prometheus-node-exporter-lua-hostapd_stations|, díky kterému lze získat podrobné informace o~připojených klientech k~jednotlivých Wi-Fi sítím z~démona hostapd. + +\verb|prometheus-node-exporter| shromážděné data o~systému publikuje v~textovém formátu na vlastním http serveru. Prometheus server tato data pravidelně dotazuje, ukládá je do své databáze časových řad a umožňuje jejich další zpracování. Pro vizualizaci dat lze využít nástroj Grafana, který umožňuje vytvářet přehledné grady a dashboardy z~dat uložených v~Prometheu. + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{Síťové toky} +Z~důvodu použití překladu IP adres NAT na gatewayi je třeba zaznamenávat provozní údaje veřejných komunikačních sítí, aby byly splněny zákonné požadavky i pravidla federace eduroam.cz. Podobně jako u~logů RADIUS serveru musí být tyto údaje uchovávány alespoň 6 měsíců +Provozní údaje jsou zákonem definovány jako \textit{údaje vedoucí k~dohledání a identifikaci zdroje a adresáta, dále údaje vedoucí ke zjištění data, času, způsobu a doby trvání komunikace.}\citep{Zak_El_Kom} V~kontextu TCP/IP síťí to jsou IP adresy a použité porty zdroje a cíle, MAC adresa zdroje, druh provozu (UDP, TCP, ICMP), čas zahájení komunikace a doba trvání komunikace. + +NetFlow je protokol pro předávání informací o~síťových tocích, které vznikají agregací síťových paketů na základě údajů z~jejich hlaviček. +Na routeru předávajícím síťové pakety z~rozhraní na rozhraní je naistalován software, který provádí agregaci těchto paketů do flow dat. Pakety mohou být pro snížení náročnosti dalšího zpracování samplovány\footnote{je vybrán každý n-tý paket}, aniž by byla výrazně narušena kvalita zaznamenaných síťových toků. +Tyto flow data jsou následně poslána na server k~jejich uložení a případně dalšímu zpracování/analýze. +Tvorba dat o~síťových tocích snižuje náročnost na výpočetní výkon a šetří šířku pásma pro přenost dat, protože místo přenosu jednotlivých paketů se odesílají pouze informace o~toku. Agregací síťových toků se zvyšuje soukromí uživatelů, protože místo podrobných záznamů o~každém paketu jsou uchovávány pouze sumarizované informace o~jejich toku.\citep{Hofstede2014} Pro získání MAC adres zařízení je nutné použít netflow ve verzi V9 nebo IPFIX. + +Většina systémů enterprise routerů nabízí možnost nastavení zaznamenávání síťových toků a jejich následné zaslání na server k~uložení/dalšímu zpracování. V~open-source systému OPNsense má tvorba\footnote{\url{https://docs.opnsense.org/manual/netflow.html}} netflow dat podporu přímo v~jádru operačního systému FreeBSD. Díky tomu je zatížení systému při tvorbě netflow minimální v~porovnání se softwarovou implementací \verb|softflowd| dostupnou například na systému OpenWrt. + +Pro jednoduché ukládání a zobrazení netflow dat bez náročných analytických možností lze zvolit nástroj \verb|nfcapd|, který přijaké data uloží v~binárním formátu. Tyto data lze poté prohlížet \verb|nfdump|. + +V~případě požadavku na sdělení provozních a lokalizačních údajů nejčastěji ze strany orgánů veřejné moci lze pomocí toho příkazu listovat a filtrovat netflow data na základě cílové IP adresy a zdrojového portu: + +\lstinputlisting[]{nfdump} diff --git a/chapters/pozadavky.tex b/chapters/pozadavky.tex index 91a4808..1be7ad7 100644 --- a/chapters/pozadavky.tex +++ b/chapters/pozadavky.tex @@ -1,4 +1,5 @@ \chapter{Deklarace požadavků na modelovou Wi-Fi síť} +\label{ch:pozadavky} Implementace rozsáhlé Wi-Fi síťě bude vycházet z~potřeb modelového školského zařízení. Školská zařízení jsou většinou rozsáhlejší objekty. Modelová implementace bude tedy obsahovat množství přístupových bodů Wi-Fi včetně přístupových bodů na dvou detašovaných pracovištích. @@ -16,10 +17,4 @@ V~přístupových síťích budou zajištěny základní síťové služby. DHCP Klíčovým požadavkem je spravovat přístupové body Wi-Fi centrálně. -V~neposlední řadě je nutné zajistit monitoring přístupových bodů a provozních údajů jednak z~důvodu zvýšení spolehlivosti sítě tak i z~důvodu legislativních požadavků vyplývajících se zákona o~elektronických komunikacích, který říká, že právnická osoba zajišťující veřejnou komunikační síť je povinna uchovávat po dobu 6 měsíců provozní a lokalizační údaje, které jsou vytvářeny nebo zpracovávány při zajišťování jejích veřejných komunikačních sítí.\citep{Zak_El_Kom} Obdobný požadavek klade i český koordinátor sítě eduroam ve svých technických požadavcích a doporučeních pro členy federace eduroam.cz. - -\section{eduroam} - -eduroam je mezinárodní projekt s~cílem umožnit studentům a pracovníkům vzdělávacích a výzkumných institucí jednoduchý, bezpečný a spolehlivý přístup k~veřejné síti Internet v~parcipiující institucích kdekoli na světě. Přístup k~internetu je zařízením umožněň pomocí Wi-Fi nebo ethernetovéh rozhraní. eduroam využívá specifikace 802.1X pro udělení či zamítnutí přístupu. Parcipiující instituce využívají jednotný identifikátor Wi-Fi sítě \verb|eduroam| nebo \verb|eduroam-| dopněný názvem instutuce. - -Tímto se snaží napodobit roaming (přepnutí ze síťě jednoho operátora do sítě jiného operátora) v~celulárních síťích. \ No newline at end of file +V~neposlední řadě je nutné zajistit monitoring přístupových bodů a provozních údajů jednak z~důvodu zvýšení spolehlivosti sítě tak i z~důvodu legislativních požadavků vyplývajících ze zákona o~elektronických komunikacích, který říká, že právnická osoba zajišťující veřejnou komunikační síť je povinna uchovávat po dobu 6 měsíců provozní a lokalizační údaje, které jsou vytvářeny nebo zpracovávány při zajišťování jejích veřejných komunikačních sítí.\citep{Zak_El_Kom} Obdobný požadavek klade i český koordinátor sítě eduroam ve svých technických požadavcích a doporučeních pro členy federace eduroam.cz. diff --git a/chapters/site.tex b/chapters/site.tex index 363ed89..fa64d34 100644 --- a/chapters/site.tex +++ b/chapters/site.tex @@ -11,64 +11,162 @@ Jedním z~požadavků na počítačové sítě je možnost dynamického navázá Princip \textbf{přepojování paketů} vymysleli nezávisle na sobě vědci Paul Baran a Donald Davies. Přenášená data se rozdělí na bloky o~určité délce. Každý blok se doplní o~informace o~zdroji, cíli, případně o~další informace potřebné pro přenos. Takový blok se nazývá paket a je odesílán po síti. Síťové prvky každý jeden paket na základě cílové adresy směrují k~dalšímu síťovému prvku nebo koncovému zařízení. Takto může každý každý paket cestovat po síti jinou cestou k~cíli v~závislosti na aktuálním stavu sítě. Na cílovém zařízení dojde k~příjmu a seřazení paketů do původního pořadí, následně jsou z~jednotlivých paketů sestavena původní data. Koncové zařízení je zařízení vybavené komunikačním rozhraním (síťovým adaptérem), které využívá síťové služby a obvykle neposkytuje síťové služby jiným zařízením. Mezi typické koncové zařízaní patří počítač, síťové tiskárny, mobilní zařízení, herní konzole, IoT zařízení. + +% ================================================================================================================== \section{Síťová architektura} -V~době vývoje počítačových sítí (v~70. letech 20. století) byly vyvynuty různé síťové technologie, které však nebyly vzájemně kompatibliní. Toto stěžovalo komunikaci mezi koncovými zařízeními různých výrobců. Snaha o~propojení různých sítí a požadavek na kompatibilitu koncových zařízení různých výrobců vyvolávala potřebu standardizace. -\textbf{Note:} z~duvodu vývoje různých počítačových sítí bylo potřeba standardizovat.... +V~době vývoje počítačových sítí (v~70. letech 20. století) byly vyvinuty různé síťové technologie, které však nebyly vzájemně kompatibliní. Toto stěžovalo komunikaci mezi koncovými zařízeními různých výrobců. Snaha o~propojení různých sítí a požadavek na kompatibilitu koncových zařízení různých výrobců vyvolávala potřebu standardizace. -\section{Taxonomie počítačových sítí} +\begin{figure} + \centering + \includegraphics[width=0.7\textwidth]{images/osi-tcpip.jpg} + \caption{Porovnání modelu ISO OSI a TCP/IP.\citep{peterka_tcpip}} + \label{fig:rozdilmodelu} +\end{figure} -Protože, je pojem počítačové sítě zcela obecný (síť lze realizovat libovolnou technologií), lze počítačové sítě děli na základě celé řady aspektů. +V~reakci na tuto situaci organizace ISO\footnote{International Organization for Standardization - Mezinárodní organizace pro normalizaci} vyvinula teoretický model koncepce počítačových síťí, známý jako model OSI (Open System Interconnection). Tento obecný model fungování počítačových sítí rozděluje jednotlivé funkce sítě do sedmi vrstev. Každá vrstva má svůj specifický úkol. Existence modelu usnadnila vývoj síťových prvků a zvýšila interoperabilitu mezi různými technologiemi a výrobci. -\subsection{Podle způsobu přepojování} +V~praxi se pro komunikaci počítačů ujala sada protokolů TCP/IP, která vznikla v~70. letech 20. století pro projekt ARPANET, který byl předchůdcem dnešního internetu a definovala jak mezi sebou mají komunikovat jednotlivé zařízení. Jedná se tedy o~praktickou implementaci síťové komunikace, zatímco OSI zůstává referenčním modelem. V~souvislosti s~modelováním síťové komunikace se lze setkat s~modelem TCP/IP, který fungování těchto protokolů organizuje do vrstev. Oproti ISO OSI modelu má model TCP/IP vrstevy pouze čtyři, protože jsou některé vrstvy zkombinovány. Porovnání obou modelů je znázorněno na obrázku \ref{fig:rozdilmodelu}. + +Vrstvy modelu TCP/IP: \begin{itemize} - \item Přepojování okruhů - \item Přepojování packetů + \item \textbf{Vrstva síťového rozhraní}: Jedná se o~nejnižší vrstu modelu TCP/IP. Zajišťuje rámcování dat (rozdělení dat na menší bloky), které jsou přenášeny přes přenosové médium a řídí přístup k~tomuto médiu. Má na starosti příjímat a odesílat jednotlivé bity prostřednictvím přenosového média a zároveň detekovat a opravovat případné chyby, ke kterým mohlo dojít při přenosu dat. Vrstva síťového rozhraní může používat libovolnou přenosovou technologií (Ethernet, Wi-Fi, DSL, optická vlákna), pro kterou musí přizpůsobit přenášená data. + \item \textbf{Síťová vrstva}: Hlavním úkolem síťové vrstvy je zajistit přenost dat mezi odesílatelem a příjemcem v~různých síťích, kteří nejsou přímo spojeni. K~tomu využívá adresaci, směrování a fragmentaci (rozdělení dat na menší bloky pro přenos přes různé typy síťí). Síťová vrstva pracuje s~protokoly IP (Internet Protokol) pro adresaci a směrování a ICMP (Internet Control Message Protocol) pro diagnostiku. + \item \textbf{Transportní vrstva}: Tato vrstva také rozděluje data z~aplikační vrstvy na menší bloky (segmenty) a na straně příjemce je znovu skládá do původní podoby. Slouží k~zajištění přenosu dat mezi aplikacemi běžícími na různých zařízeních v~síťi. \textit{Podle jejich nároků a požadavků může transportní vrstva regulovat tok dat oběma směry, zajišťovat spolehlivost přenosu, měnit nespojovaný charakter přenosu (v~síťové vrstvě) na spojovaný}\citep{peterka_tcpip}, kontrolovat chyby v~přijatých datech a řídit pořadí doručených dat. Nejznámější protokoly pracující na transportní vrstvě jsou TCP pro spojovaný (vytváří iluzi nepřerušovaného spojení), spolehlivý přenost dat a UDP pro nespolehlivý přenos dat bez spojení. + \item \textbf{Aplikační vrstva}: Nejvyžší vrstva TCP/IP modelu slouží jako rozhraní mezi aplikacemi a síťovou infrastrukturou. \end{itemize} -\subsection{Podle rozsahu sítě} +\begin{figure} + \centering + \includegraphics[width=1\textwidth]{images/tcpip_zapouzdreni.png} + \caption{Schéma zapouzdření aplikačních dat na vrstvách TCP/IP.\citep{wiki_tcpip}} + \label{fig:zapouzdreni} +\end{figure} + +Oprázek \ref{fig:zapouzdreni} ilustruje spolupráci jednotlivých vrstev síťového modelu TCP/IP. Vrsvy sítě plní své specifické úkoly a využívají služeb bezprostředně nižší vrstvy. + +Data jsou předány od aplikací transportní vrsvě, která data rozdělí na menší bloky~-~segmenty\footnote{u UDP též datagramy} a opatří každý segment hlavičkou podle druhu spojení. Obsah Transportní vrstvy je předán vrsvě síťové, která ho zabalí do IP paketů. Každý IP paket obsahuje hlavičku s~IP adresami odesílatele a příjemce, což umožňuje směrování dat přes různé sítě. Síťová vrstva předá IP pakety vrstvě síťového rozhraní, která pakety zabalí do rámců. Rámce jsou opatřeny potřebnými infromacemi pro přenos dat na fyzické vrstvě. + +Při příjmu dat probíhá tento proces opačně, hlavičky jsou odebírány. Rámce jsou rozbaleny na IP pakety a IP pakety na segmenty, které jsou složeny do původních dat, která jsou předána aplikaci. Každá vrstva zpracovává svou vlastní hlavičku. + +\begin{figure} + \centering + \includegraphics[width=0.8\textwidth]{images/tcpip_komunikace.png} + \caption{Schéma komunikace napříč sítěmi v~TCP/IP.\citep{wiki_tcpip}} + \label{fig:prenos} +\end{figure} + +Obrázek \ref{fig:prenos} znázorňuje, jak probíhá přenos dat prostřednictvím tří propojených sítí, kde jsou data směrována routery. Odesílací a přijímací zařízení se nachází v~různých síťích, a proto nejsou přímo propojena. Přenos dat je zajištěn prostřednictvím síťové vrstvy, která směruje pakety přes jednotlivé sítě. Přenos je na vrstvě síťového rozhraní realizován různými technologiemi. + +% ================================================================================================================== +\section{Ethernet} + +Ethernet je řada drátových síťových technologií, která je standardizována v~IEEE\footnote{Institute of Electrical and Electronics Engineers}~802.3. Ethernet umožňuje komunikaci zařízení v~lokální síťi pomocí MAC adres. Díky své jednoduchosti a nízké ceně se jedná o~nejrozšířenější technologii používanou v~lokálních síťích (LAN).\citep{ijs2_ethernet} +V~kontextu síťového modelu ISO/OSI pracuje na linkové vrstvě a fyzické vrstvě. + +Na linkové vrstvě specifikuje formát rámců, detekci chyb a způsob adresování. Dříve ethernet využíval sdílené přenosové média, ke kterým linková vrstva řídila přístup (předcházela a detekovala kolize). Dnešní ethernet je přepínaný (používají se přepínače) a v~přístupových síťích se používá topologie sítě strom. \citep{samuraj_ethernet} Vymizelo sdílení přenosového média, to má za výhodu odstranění kolizí a zvýšení rychlosti.\citep{samuraj_csma} + +Na fyzické vrstvě IEEE 802.3 specifikuje typy přenosových médií (koaxiální kabel, kroudená dvojlinka, optické vlákno), použité konektory, přenosové rychlosti a signálové kódování. + +\begin{figure} + \centering + \includegraphics[width=1\textwidth]{images/8021q.png} + \caption{Standartní ethernetový rámec a rozšířený rámec o~802.1Q.\citep{freeccna_vlan}} + \label{fig:ethernetframe} +\end{figure} + +\pagebreak + +V~horní části na obrázku \ref{fig:ethernetframe} je zobrazen znázorněn standardní ethernetový rámec. Je složen z: \begin{itemize} - \item PAN - Personal area network -jedná se o~osobní síť malého rozsahu (až v~řádech nízkých desítek metrů), slouží pro potřeby uživatele. Jaké PAN se označují sítě především tvořené nositelnou elektronikou. Bluetooth - přenost zvuku, dat - - \item LAN - Local area network -Jedná se o~lokální sítě - - \item MAN - metropolitan area network - - - \item WAN - wide area network + \item \textbf{Preambule}: Prvních 48 bitů slouží k~rozpoznání příchozího rámce na straně přijímacího zařízení. Obsahuje tuto sekvenci:\\\verb|10101010 10101010 10101010 10101010|\\\verb|10101010 10101010 10101010 10101011|.\citep{ieee_8023} + \item \textbf{SFD}: 8 bitů označuje konec preambule nebo také začátek samotného rámce.\\Obsahuje: \verb|10101011|.\citep{ieee_8023} + \item \textbf{Cílová adresa}: MAC adresa cílového zařízení. + \item \textbf{Zdrojová adresa}: MAC adresa odesílajícího zařízení. + \item \textbf{Délka/Typ}: Pokud je hodnota v~decimální soustavě měnší než 1500 označuje délku přenášených dat, pokud je větší neš 1500 označuje jaký protokol je přenášen na vyšší vrstvě. Seznam hodnot a protokolů spravuje IEEE. + \item \textbf{Data}: Obsahuje data z~vyšší síťové vrstvy. + \item \textbf{FCS}: Kontrolní CRC součet k~ověření správnosti přenosu rámce. Poškozené rámce jsou zahozeny. \end{itemize} +\subsection{IEEE 802.1Q VLAN} +VLAN, neboli Virtual LAN slouží k~logickému rozdělení fyzické sítě. To je u~Ethernetu umožněno prostřednictvím standardu IEEE 802.1Q, který rozšiřuje standardní Ethernetový rámec o~další hodnoty. V~dolní části obrázku \ref{fig:ethernetframe} je znázorněn ethernetový rámec dle IEEE 802.1Q rozšířený v~hlavičce o~32 bitů. Za zdrojovou adresu jsou vloženy následující hodnoty: +\begin{itemize} + \item \textbf{TPID}: Identifikátor použítého VLAN protokolu - v~případě IEEE~802.1Q obsahuje \verb|0x8100|. Je na stejné pozici jako Délka/Typ u~standartního rámce. + \item \textbf{PCP}: Označuje prioritu rámce podle IEEE 802.1P. + \item \textbf{CFI}: Říká jakým způsobem je přenášen rámec. Bud od bitu s~nejnižší hodnotou k~bitu s~nejvyšší nebo naopak. Pro ethernet \verb|0|. + \item \textbf{VID}: Identifikátor (tag) konkrétní VLAN.\citep{fair_vlan} +\end{itemize} + +VLAN zjednodušuje správu sítě. Díky možnosti vytvářet směrovací politiky pro různé skupiny zařízení a možnosti oddělení speciálního provozu (management sítě) zvyšuje bezpečnost sítě.\citep{samuraj_vlan} + +Aby bylo možné jednotlivé zařízení přiřazovat do různých logických sítí je nutné, aby IEEE~802.1Q podporoval přepínač, do kterého jsou zařízení připojeny. Na přepínačích s~podporou IEEE~802.1Q lze nakonfigurovat do které logické sítě konkrétní port spadá a zda na daném portu má být použít tag či nikoli. Přepínače bez podbory IEEE~802.1Q přistupují k~tagovanému provozu stejně jako k~běžným rámcům. + +\textbf{Trunk port} je port, prostřednictvím kterého je přenášeno více logických síťí. Takto bývají propojeny směrovače s~přepínačema, přepínače mezi sebou nebo přístupové body nabízejí-li více Wi-Fi síťí. + +\textbf{Access port}\footnote{přístupová port} je port sloužící k~připojení jednotlivých zařízení. Provoz je bez IEEE~802.1Q tagu, tag bývá přiřazen na přepínači. + +\iffalse + \section{Taxonomie počítačových sítí} + + Protože, je pojem počítačové sítě zcela obecný (síť lze realizovat libovolnou technologií), lze počítačové sítě děli na základě celé řady aspektů. + + \subsection{Podle způsobu přepojování} + \begin{itemize} + \item Přepojování okruhů + \item Přepojování packetů + \end{itemize} + + \subsection{Podle rozsahu sítě} + \begin{itemize} + \item PAN - Personal area network + jedná se o~osobní síť malého rozsahu (až v~řádech nízkých desítek metrů), slouží pro potřeby uživatele. Jaké PAN se označují sítě především tvořené nositelnou elektronikou. Bluetooth - přenost zvuku, dat + + \item LAN - Local area network + Jedná se o~lokální sítě + + \item MAN - metropolitan area network + + + \item WAN - wide area network + \end{itemize} +\fi + +% ================================================================================================================== \section{Základní síťové prvky} -Počítačové sítě jsou tvořeny technickými prostředky (síťovými prvky). Existují síťové prvky pasivní a aktivní. Pasivní síťové prvky nemanipulují s~přenášenými daty a nezasahují do přenášených dat. Nevyžadují externí napájení. Aktivní síťové prvky vyžadují externí napájení a manipulují s~přenášenými daty a mohou do nich i zasahovat. Aktivní síťové prvky nabízejí různou funkcionalitu podle které se dále rozlišují. +Počítačové sítě jsou tvořeny technickými prostředky (síťovými prvky). \textbf{Pasivní síťové prvky} nemanipulují s~přenášenými daty a nezasahují do přenášených dat. Nevyžadují externí napájení. Aktivní síťové prvky vyžadují externí napájení a manipulují s~přenášenými daty a mohou do nich i zasahovat. \textbf{Aktivní síťové prvky} nabízejí různou funkcionalitu podle které se dále rozlišují. \textbf{Aktivní síťové prvky:} \begin{itemize} - \item síťový adaptér - \item switch - - \item access point - - \item router + \item síťový adaptér, + \item přepínač (switch), + \item přístupový bod (access point), + \item směrovač (router). \end{itemize} Mezi dnes již málo používané aktivní síťové prvky lze zařadit: \begin{itemize} - \item opakovače - \item most (bridge) + \item opakovač (repeater), + \item most (bridge). \end{itemize} \textbf{Pasivní síťové prvky:} \begin{itemize} - \item Kabeláž - \item Spojky - \item Pasivní rozdělovače - \item Konektory - \item Filtry + \item kabeláž, + \item spojky, + \item pasivní rozdělovače, + \item konektory, + \item filtry. \end{itemize} +% ================================================================================================================== \section{802.1X} -802.1X je standard vydaný IEEE\footnote{Institute of Electrical and Electronics Engineers} který v~obecné rovině zavádí a popisuje možnosti řízení přístupu k~přenosovému médiu. Nedefinuje žádné komunikační protokoly a celou problematiku popisuje pouze v~obecné rovině. \ No newline at end of file +802.1X je standard vydaný IEEE\footnote{Institute of Electrical and Electronics Engineers} který v~obecné rovině zavádí a popisuje možnosti řízení přístupu k~přenosovému médiu. Nedefinuje žádné komunikační protokoly a celou problematiku popisuje pouze v~obecné rovině. + +% ------------------------------------------------------------------------------------------------------------------ +\subsection{eduroam} + +eduroam je mezinárodní projekt s~cílem umožnit studentům a pracovníkům vzdělávacích a výzkumných institucí jednoduchý, bezpečný a spolehlivý přístup k~veřejné síti Internet v~parcipiující institucích kdekoli na světě. Přístup k~internetu je zařízením umožněň pomocí Wi-Fi nebo ethernetovéh rozhraní. eduroam využívá specifikace 802.1X pro udělení či zamítnutí přístupu. Parcipiující instituce využívají jednotný identifikátor Wi-Fi sítě \verb|eduroam| nebo \verb|eduroam-| dopněný názvem instutuce. + +Tímto se snaží napodobit roaming (přepnutí ze síťě jednoho operátora do sítě jiného operátora) v~celulárních síťích. \ No newline at end of file diff --git a/chapters/sprava.tex b/chapters/sprava.tex index 0c146af..073eace 100644 --- a/chapters/sprava.tex +++ b/chapters/sprava.tex @@ -1,7 +1,42 @@ -\chapter{Hromadná správa zařízení} +\chapter{Automatizace konfigurace} -... +Konfigurační management, jakožto obor systémového inženýrství, byl vyvinut již v~50. letech 20. století ministerstvem obrany Spojených států. Sloužil jako metoda pro sledování změn v~komplexních systémech jako jsou zbraňové systémy nebo vojenská vozidla. Každá změna v~systému musela být zaznamenána včetně dokumentace, která uváděla, kdo změnu provedl a z~jakého důvodu. Cílem bylo zajistit, že stav systému bude v~kterémkoli okamžiku známý a zpětně dohledatelný. Stejná praxe byla aplikována i na počítačové systémy. Původně se dokumentovaly změny provedené v~čase. Nové softwarové nástroje umožnily přejít od dokumentace provedených změn k~definování požadovaného stavu systému.\citep{HeapAnsible} -\subsection{Přístupy} +S~narůstajícím využíváním virtualizace, kontejnerizace a komplexností počítačových systémů, tedy s~narůstajícím počtem zařízení vyžadující určitou konfiguraci implementovaly tyto nástroje i automatizaci konfigurace spravované infrastruktury. Tento přístup se nazývá \textbf{Infrastructure as Code} (IaC), tedy infrastruktura jako kód. V~tomto modelu je požadovaná konfigurace infrastruktury zapsána ve strojově čitelném formátu v~souboru, podle kterého následně softwarové nástroje automaticky konfigurují jednotlivé prvky infrastruktury. +Díky zápisu požadované konfigurace se eliminuje lidská chyba při konfiguraci více zařízení a zvýší se homogennost konfigurace napříč infrastrukturou. S~použitím verzovacího systému lze umožnit verzování infrastruktury, týmovou spolupráci nad konfigurací s~důrazem na auditovatelnost konfigurace a dohledatelnost historických změn. Toto zvyšuje bezpečnost. +Automatizace konfigurace rozsáhlé infrastruktury zvýší efektivitu, ušetří čas a umožní snadnou škálovatelnost.\citep{leanDeliveryIaC} -... \ No newline at end of file +\pagebreak + +Existuje několik známých open-source nástrojů pro správu infrastruktury jako kódu, každý se svými specifiky a způsob správy. Mezi nejpoužívanější opensource nástroje patří \textbf{Ansible\footnote{\url{https://www.ansible.com/}}}, \textbf{Chef\footnote{\url{https://www.chef.io/}}}, \textbf{Puppet\footnote{\url{https://www.puppet.com/}}} a \textbf{SaltStack\footnote{\url{https://saltproject.io/}}}\citep[p.~841]{Nemeth_Evi_2018}. + +\begin{longtable}[c]{|p{3.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|} +\caption{Nástroje pro automatizaci správy infrastruktury} + +\label{tab:DevOpsTools}\\ +\hline +\multicolumn{1}{|c|}{} & +\multicolumn{1}{c|}{\textbf{Ansible}} & +\multicolumn{1}{c|}{\textbf{Chef}} & +\multicolumn{1}{c|}{\textbf{Puppet}} & +\multicolumn{1}{c|}{\textbf{SaltStack}} \\ \hline +\endfirsthead +% +\endhead +% +Programovací jazyk nástroje & Python & Ruby & C++, Clojure & Python \\ \hline +Jazyk pro konfiguraci & YAML, JSON & Ruby & Vlastní jazyk & YAML \\ \hline +Způsob zápisu konfigurace & Procedurální/Deklarativní & Procedurální & Deklarativní & Deklarativní \\ \hline +Architektura & Agentless\footnote{nevyžaduje speciální software na spravovaném zařízení} & Server/client & Server/client, Agentless\footnote{\url{https://www.puppet.com/community/open-source/bolt}} & Server/client, Agentless\footnote{\url{https://docs.saltproject.io/salt/user-guide/en/latest/topics/salt-ssh.html}} \\ \hline +Model získání konfigurace & Push\footnote{konfigurace je na zařízení zaslána} & Pull\footnote{zařízení stahuje konfiguraci ze serveru} & Pull / Push & Push \\ \hline +Způsob přenosu konfigurace & SSH & HTTP(S) & MCollective, HTTPS & ZeroMQ \\ \hline + +\end{longtable} + +\section{Přístupy k~zápisu konfigurace} + +Existují dvě základní paradigmata zápisu konfigurace. + +\textbf{Imperativní (procedurální)} zápis definuje jednotlivé kroky, které mají být provedeny v~přesném pořadí, pro dosažení požadovaného stavu infrastruktury. + +\textbf{Deklarativní} zápis popisuje požadovaný stav infrastruktury, tedy jaký má být cílený stav. Jedná se deklarativní abstrakci kdy dosažení cílové konfigurace je implementovány imperativně. Nástroj pro automatizaci konfigurace vyhodnotí aktuální stav a provede pouze nezbytné kroky k~dosažení cílového stavu. \ No newline at end of file diff --git a/chapters/zhodnoceni.tex b/chapters/zhodnoceni.tex index 964d5f2..f26df77 100644 --- a/chapters/zhodnoceni.tex +++ b/chapters/zhodnoceni.tex @@ -1,11 +1,18 @@ \chapter{Zhodnocení modelové implementace} -... +V~této kapitole je zhodnocena modelová implementace sítě z~kapitoly \ref{ch:implemetace}. +Správa infrastruktury přístupových bodů pomocí nástroje Asible se při modelové implementaci na testovacích síťových prvcích ukázala jako plnohodnoťně funkční. Síťoví administrátoři ocení úsporu času při konfiguraci (zejména při pridávání nových přístupvých bodů) a konzistentní konfiguraci napříč infrastrukturou. Ansible je flexibilní nástroj pro konfiguraci, což může být nevýhodnou pro administrátory, kteří tento nástroj neznají, protože zápis konfigurace není tak uživatelsky přívětivý jako konfigurace pomocí GUI. -\subsection{Funkce sítě} +Logování nevyužívá žádné pokročilé analytické nástroje, ale všechny podstatné inforamce o~infrastruktuře jsou uloženy a jsou dohledatelné. -... +Učitou výhodou může být i to, že obě klíčové komponenty eduroam sítě (přístupové body a RADIUS server) je možné konfigurovat pomocí Ansible. -\subsection{Komparace s~dostupnými proprietárními řešeními} +% \section{Komparace s~dostupnými proprietárními řešeními} -... \ No newline at end of file +\section{Návrhy na vylepšení systému} + +Jedním z~klíčových navrhovaných vylepšení je automatizace procesu aktualizace firmwaru přístupových bodů. Tento proces se musí v~modelové implementaci provádět manuálně, což může představovat bezpečnostní riziko. Toto lze vyřešit přidáním role do Ansible, která provede lokální kompilaci systému OpenWrt pro jednotlivé modely přístupových bodů v~síti. Sestavený systém lze potom pomocí Ansible nahrát do paměti zařízení. + +Dalším nutným vylepšením pro následující provoz infrastruktury je přidání modulu pro instalaci balíčků pomocí správce balíků \verb|apk|\footnote{\url{https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html}} z~projektu Alpine linux. Na správce balíků \verb|apk| bude systém OpenWrt v~příštím vydání přecházet. \verb|opkg| byl označek za zastaralý.\citep{openwrtAPK} Buď na tuto změnu zareaguje správce projektu ansible-openwrt\footnote{\url{https://github.com/flyoverhead/ansible-openwrt}} nebo bude nutné tento projekt + +Tyto Vylepšení zajistí dlouhodobou urdžitelnost a bezpečnost sítě. \ No newline at end of file diff --git a/default.txt b/default.txt new file mode 100644 index 0000000..1f20fdc --- /dev/null +++ b/default.txt @@ -0,0 +1,44 @@ +... + +authorize { + # Zalogování požadavku, před jakoukoli změnou + linelog_recv_request + +... + +post-auth { + + ... + + # Zalogování úspěšné autentizace + linelog_send_accept + + Post-Auth-Type REJECT { + + ... + + # Zalogování neúspěšné autentizace + linelog_send_reject + } + + ... +} + +... + +pre-proxy { + + ... + + # Zalogování požadavku do jiné instituce + linelog_send_proxy_request +} + +post-proxy { + + ... + + # Zalogování požadavku přijatého z jiné instituce + linelog_recv_proxy_response +} +} diff --git a/images/8021q.png b/images/8021q.png new file mode 100644 index 0000000000000000000000000000000000000000..90c9441d53cce936fa6d6f39e1a61750e429845e GIT binary patch literal 14946 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

D~r5|c!9Y(#dzxE>iU zi9~?x8(rb5mGX0$Q9dC-jl6@MT2C!os_aJ=N$(|sUP)(Eg!1sUK-|Wb2P%<0f1a-X zJJyE|@~-9Ae0AxRwp`+fc>xVhljOv{Ia)a7Ka)@Xo*}{Yel+R*Ym})m^K8eMM|`iS zIF2OriP5V@c?C5cR+or{C%OzG_iH<`Jl?!3s<+rDZLV$9e#Pn(NpmhJ^2B9iQOw`T zqXyGrlT78{`K#Lf{MK-UjdOddkx}vd6_`*xrigzvs{EZziwxOuasU6368&bhzUNg_ z##s0)Z-9f_Q&>#&A8)AM9{zs#deRC$k>!WL{(BIR-yu}d07ys(C7kd%70Lul?OHtS0UZ2e7yO%Uv7fOsK5b`2;NgBm5Ff_7emjO|T@kH89BfTw z){^Qf%PTha+UW)my8)1Fcu_B|qIt7h=Pu&+FIXACr;wv#PD7tUChx=wcYZkMxv07D z;5(Xgm?0_;S`;$fKn;S{_K5E2L{j$h*w1enA)Bf0wKWV2J${#~bac3rVqIlND^_ij zJe951Ry+xlkE)=}$a9vKuGN=5SerZ`ac3K48g!Q&E(urrijPvOuISAw=Llc8|MqMfG*?7JZ164Wcyf-%+NBhkS_dGE}uC1257m@OW~FE$r+}Bs(>-l zR~9vY%6D^r%y_EPO|80lj(>Eo-K)R?#xGxjq5o+@Xy$V~Bi8`L^YDP;wb7aCD+ial zb^&AccT@gKTW9493rmFsNfS2!{838JOq2`_be!$Nl^n-Hf86E`@ZPy!C#`-;CSo$Q zB1rXw@cafC8}>{L&T%5He9r01^bv`nFkA^kYpg$i+##1;u^=qhS3I_FIT;3OQUXf# zC@ihA|B~V3=i+PbEN^8Cf}(2}@P)!)JNO=Z{JSA8xy_{@(o5kDhPRq@{p7GrGZ>88 zR~%4Uq1S6A&(Wh4B0UAXy&9;!;kNDzqhb%5WkduxKHZM_*ni@3;Z(n_WW79b%$p@0 zL8$Q3&e#emoO&6R{fONG);LvR{IQ~79V-4s3A0zB)rmb#Xgjw=39y^$3JT+4Ir3bc zb}X%)bZm1DWygD;GV5U&BVBZ_w@)s>XLKy%I7h{JCfWKlNyVm1b{|0V$nM^>WuFa3 zuNdlo@DgW?ca?8w1Avq`fy#F?l?&!M@e174eK+%_fAzzc$!RaN$*Ng(=iQoCSuzcD zo?#vrV~>v>F8yIuS~;^g?CzoU_ABWOKCj_-#=SSQ*R9LPcgQ-nG#*4P2=0BT9yvdJ zdnP1PpA^-3WJKe)ww!!%zI5n$U4DT-_ui>|Vy@!IMUi$1JEz_0+WXYn$!wVp(|S^8 zw~~A5nznHELNew#^RY=`c&@`yDr@Zq%S-Oillf|^enXOQ-A&zHxw=Nf~$~dwnlKyE`RSo^uy8`yWa;Z-5oJ z&GxD%d}C%xjSi{%oK~K=l)Ih-H$c62ziz_-|6$W5->K3K(0v0W)~?&qYCM1B3d&W_ zxdD8LPGQH6+O9xjqE{$H)Aui9CRufD4&<0b<=xkbo?dD2yW3STKcZWzp;={mzoHf5 zf`&R$l!hNT(D72mNdGyi#TUzT&%P#aOQ;Lk1-s8r{bOXsUh+4B#eR0J$x%yPtD;k4 z4^Rc=B)i1Wv1}2E9dYRj%brYS-vF7rQ1$^W2+C&{0mVzGL#JV*EZ0#@J&)JqVmS{5>-IZtB9B`)?; z1fgSG=GUzs3FPc>OJctEW(3X7ilM)@F%XR<>}I3LruAJirfWK@9B6tRa0=VF%0F`h ztX3a2^gC8));?rCqzcq)%A29#}YfDYn$~v1+W!XIiwvy8%SF#;r{Fk?$LWN=oU(Mv}d!@pOmoof194JL2$uYH2u9B_ulI*jcCZ z8Tnpo6|W0T)BdM$M{k%N?|g0#-2FZ8{IPH%-Pr=OoEmz6oaN-GtBcKY8GPeK2?dUW zkyu7=UhiWt4N0+)t0Fm-2+I>4j+w@!r$37t-VrnR=;@v@yqdpSuV!H-_D2dE?*o=M zy-y$4YwvP}v==5XGHvLp<92{f?(KT^9Gx46$&}UGzQnCu`3SeRgL-zg-8U%I%(-M1 zUmSL)y}FLX$Ye^!&X!7*5NcDEU#FIThHaFZ9MAT78cvS(9uG%lvgx5Y$+jn=%Q#^; zXS*Ds>K;#8|B>f%*dz5NK@|}kz@7D!^LqCN;BCqT3z2O@?7ZIutrtHc%emJVOHjeIy`W2HN3ZOu z>+VqZnknqgq$=W)4@+Uc>NJ+;oYM58;s?h*;>#{5$6t7xym!K{mag5dc7kqzlpA28 z7}W6im<@cpml8zMLBojzT`Iet2(_za%2 zOZcUa8IWg$<@yObn zd~gQ5oolmZ&;v3>g_cs!Rbqm!KVP<3Avw?V3L>6B%J0H;hM0pToKOthVUpZ)Y|`}&kAUl5VY zxlwU^C%j+ za{~;7)hb7FOOS4pm^gEieR3%N713m~V(&HB`Y8>{iXT)PPF$ZB@9tdKtY_%>*X;_{ zrv;Aer)sgnK?GEccxqzUkgG>07I{2r%1a;h^6kr>u~Drn>>e+2n0T{rcLP7w&cwrI zGdHC*|DI*FixNNegg9X7S%theu;VVO?E)(gx0AN!#8AO^PrpP?WU}+B_=)&JK-%%x zZha&d=sqG#=?AE(qI?>O=-HDi-`w3V54`hhQNw4~lf+llrUl5%SaTlF=37;x{XM%s9Xs#%1ptkmcOe%(RnF`w5tMPL+<95c(1((f= z%Mvc@yHz4N9(P%|Vkx#svs1L{SnR9ntE`t(8lH(u}Jldie2)L<*)6=BJq4LCNzZTxN2YVi# zP4NWQ`mucd4h*L84vVw6{l0}_Bd0?{Z0?>jJPq}No9E@ltuy>LfWO=gaR11ronJKD zbbPEv7h!4QhX(J*6Wb?ohtBBG)vKVZRIE?`wkvHY+_ zJQ$D7LufgCmdh2(WU4%g|J@Fm4~yIQ3;n30v-KYIh2_JpEgi8FjebfZ*+fcan(89z z`)t?857w8XvMVAv%eifg$h`x zaTnQ=sKOg+1_E-vr7bX&1X*^GoO`Q$_ic~)F5dVzoE(=LR90Jtj2jYig^GazpWaV{ zGKR)LL>a1E;p12~1U<=FyAphTju4M(Io;&2zKy!$Q^#ptPHJM{CYj3!7HU`F-z8rlp)=N7>A0 z5V?D7@`4Xawz(UXmcm4NoF>DQgMI^CG2^fA&RaeGC;>80HVX6L?0=bbCD)ikZ0p%zrCw+~xx|J83QJc215U$c zf0z)2e%?~Cb1oOgiL*au!No6c#3z&mHF^4Q`b_o)cy>{9ydf|{m zUHc&tDqkTL@7>%dK@fbfASBFW=Y)3g)t2Nl^QPg;jpx{>Q=@IKMrVpx^g~=WSP8&@ zA1pkOqtV3axMg>v&z2&>37pf@k6|A#)9CRQ+h6s+*gf^mPt$2Yc@n#6%>cjaY`ZBK z?q>pOCte+P$O>=JgL0MS>@VIJrVnCbk7FtU;jV`5j-6Ms7)U?<+-l{}?y}Ty>}5^o zxrwILW!KK@ty3JtA?E_2urShHas*#5ZK@WM|K_3W}{3#bWhJ;Hix;`-Z4^OJ(77iyTi5XS&z@+1w z8=K!Z)>D=av8EZ;41twN&mYBt97uH{>FNqbr>9oYY_&(^^$6;vfazvKv@1?XmGk)0 zR1u*lXGi_8T%kfTrxdLe*0?~7j7F;?c@_hWMX#94ES4=n9hR{+NwSi)HY&<&D>lKW z!Z4JskW{(=At)j=Q!`k>r?bMzt@({6OJ9bDhJpckCQZJ2n4oEK1ZT#F8k3JUtcNU} zyJ>MJku(xJ@s6A%wv2Nn3*c_6)YHW*}{s|l@Ucjv=#CF4AI0CJ8>ep% zX~vnKlS%HtDsXQZ+mEE_xOWjGM))>ol3ZCmP~DGtlr$2Hep%KQ{tj-5TFN6SJm~@` zoF_7wnu#+KofXbf(jPRL+GABCvQ%M&JK6^eMRGnEO>#Bp%hThoD$*6?lwu6Vs1%4j zC?D%c9@Nt=*Q>sNp0Iq{-+d{8MRtl2dC7_=oEMCah-Lytwoqn$Q11dU6dS@}R*<22 zjE^B=ZbiP5RxT%7Sf_bBqA15;*WjbB4><`qlPWotIN%GGY6Ubf={y@EF)`RAnu>W~ z3}L&S-%XT8jJ3jE(q-XEJwNw0C&@@%RMa)862yv7GkmWiWvt*XUY9aEPh<67doMrg z+)6jgn!gpC)Kg=dG_GeM4jtp@;2{tzp8$<-r}rwhE>ZF|f$yYfje0*$Iz_1#iSZ){ zp>?!k(vmaMHa_&#yE{e{_$T;nG;!rUJh&bdk>G93XzUdopn2CS)QTHhivK#-mc+qD zT%h-P{rWrgNn<^n<_$0(j&8`xq?c)$Kn{dGDys-(E}@|iWs9+(7loo27}-SdHS6b! zFg6wmjE&AKG~k3uZ4~|-1-X(0^M0(SpR&BFd#NS>Q)aE zSFVoWtS5V5@=?cefXlKRa8sypZDvMI7s-~_dcJt{A?OE$NzAfOgU;=Qfh118Y7QRm`*Uk z61@{4_JET8#S5fy+P*~c&@5Gm5QeP5LK&Nk841dksN3L*#r&Fte|=I+S=+xG-(D8Dz5&*F>}~YJgu|Fc(`@Sv|;HGH;ahwZ`VMtT`itMu}Fa^^=A4s(!n;)m4Kojk+Ev zbw3}*7NXd;3zMNQ!rtEcLm8_1p?y0Wv#>ZgzQ<8F0J4=^&lB3gsv)7W-s{(QODipS zxMyw8%#Lgd2iXZYxn9t(UFDlrOXER>ld6quTyIrPWq(}TtCrYCn6Bn6A#CblweFw( z;;EI{CZTE0j!@yQhcKUJx@kC-dm0I{?i*|f9zV5O!&BO5)lQ{kRJM0)Qi}h-D^3hN{ zO|nBA&TBQo-}KCIKP3sZ_(&F-bQNd34Y+t}Zs5tx$=RedOki%4YzwC&F*hs}HjWh> z1y$jN7R?PAgb!VcACN(4=C_Nv-vGt=yHX`-?+U0VdLMBIJw<6UWAE~5 zPVkg@=Aa>x?O1iqI(FG^zA1Hb@)+haafYv50{S7H{rKegP7(KPk;|@Kwx9W@tZ6I5 zIX9%Fj}Idn6{sNQ-Mx>7r*Pc(Glc34)+>+VN0%x-B#tjlJaL@KT7B!xxJ$^7hO*`V{}QdH+tY<&RaCQzb$V z&X$P<*TSnwggVoQ$q13x@4vvUlzJtAe=!i9XpWg6b#u=MPb`dbYFClFMo|uqqq;4X zFAdq|#8VO0&#s#K{-gqVRHY&h5072=)&^nvFqah*yW~{&+B)pKcVYkW8TGBu3gy3cGiRl?1G zWwwN8DY2N7l3%qtMJ)4ZBvvQCLUsaWfxaR|4GMQ5fM0{K&{3UjhJP>ntqjV}lR2x` zCt(R)!)Ky}pSniyLG@xXMg;1-LE86U86*D0LQu9$#fkvye9{whI$D+4`p4d3(9W!o1 zyqzA4=`F1{fOB>tUs|;ccwhBNvSpO&J?N_lVR_tFBgd-&UoN<36RI`h9EOszPZ}d8 z2k}IbKNeo^%Mp|DaHW%(!>Ydc(=-&W= zmWHET-qWqza$*djrC&&0$+{ve3D@wiy&HaYJ~Jo4K5Vs#+lqp_g!|RbJdMSK)n1|R z|C7PVe-+7JQzV;K0pOswnhhQt^upAoe;_1^rCi|rQuT0%Ep3tX`o+_oXYRfAv`J!B zk@=JX@p`K`!|t}?(>CjAFK2j{Z5%qkL={{IudIBdt4Q}C3D3mPcPb)*{(&s?2Asr-v%;VEUi&7&xc=|wysYM`wm)sH zwj7M@3eF)nFT@7iVMMO?rdLrji{CkU!?i?v9YMsixxXuaCDU|Jd3KuPl{I&+`Ne&h zU&;1Mp%?E4QEv6MY7^lx>M%GirqvC13)rx}0b;%%WRES)zP(8DUa|a786&UUDdi}S zEiy9XwSHYd80qLbh6T6P$(gK|vo^0<{RdV-Tqq=m|K?`?59Vh6Q$?#Vzy6W)#18Y9 zFIyT??5;kRXis5r3=hVeq$j-t!w*t_xr9|O3#xux?nm9N+ra;{81bc6NX-Y<{XfZp zY&ul9Vi`@LOuFUyzwGUaKdacK>0x-Xrxp4;jiJ%Z7zUYtKX0y#lO|{eMh)3TJoE`T zziYENspVYKp`Um!)Q=N!eq%aGEV`mFSd?SPT1w_oY8d&^i$3zuGGsC+P9s5b1BKa; z!=?10)4R@i!Bt|0%E-ZWMP5jTHEbFwb*(Nbznk<=)RZ+l(x`RKj59{-L@N2?Mb!BC z7UFHKUL4k8_cw}(q~tf`ad+zwZUh1E*4j?`=o_toCcg5F~cMKa4HEs;4!22)tnymSk$bh1EAUv88Kc*yvEDqxacbw%MOD4ZSA1Ip z*{svlWp;FdxqA#g6CI`QgZ98{v+`iYUC9eXt>DWQfc0_4cz%nE~tOZPO_a1`LKxJc(EnMI~m# z_%DBUY_jRj&^<6|oySv*ClZ5#P|gSppuXsKFD>00?Q~8`$;+4$p6*+rSAN6TY%(M|I3)C9K^JjxW^8K|N==~LEYF3#U zzID>&EG*7?xfyTX({~$cow+3^c{b@+9r=+l%EaB{1>apb@&IBDylIza_537|K!}S z>hZ*>^HdUaPHWurnSps!)b6``$=6!<)|2G+(XV#WN<7>9Z9fr=*MzWVlwdG{c<0#9 zk1gL8*h#=G+?(NB1JOb~d`9N7ha%2#OkmRl-Cuj;d2&HZl~jIYb_0}Cc6NTKb1O}8 z(urxDs-6a4l$^GPT{ua5K^mP-TilFv0EZuSb&a!rWjLUf<=8K-UWL#ubXg-8)90YF zRJXm)W0$?@koxB`kkUG5U*NBvcgMdt=TV&La`UEM<)tno(YH|x=rEY+od`U zT(~(_tu;pB`#lZtV287Z#3=aS>I#?2BU^i_y2-r_l9_Sbc@vS|Dy#2f@Zw=$qeGf4 z=~$|NOeEU|!Tae7do&|>wB{=)e0;Ysu)Im@^_I$}*Gy)R_d7Fir(gD;Zti58mWP*4 ziLF&i-3@sQK36-fO&u~U?Qy?OeGcvH+|y7C8FARTXXUW4wWL)klh0z!b|{BeQJ6YZ zPOwX~^>CoLX117c$qD;}V<}OBTRK66Crtn!g-?!1ww7Hv!DzbRPzwKv31<*qf_AMh znKWHC?y}pJsjkz*#`Qs|lJ(i(i8jno!OuQW^o!B1vAg9Xi#RYJr8X?hqf$3V?Il~NF9Zx~M7CHnh*?jwZo`GU(&L(k zCo;{9iOg8)UX*pgyqgOH8WG2mnf}(UC7O^H1NTZ(iPBN3Ujwq2Xy-xOE zq*FhwAuMzv7^L&|e|D%_Zk~z0pp(DB%=kEDFGsj(q@BW6bQ}b`GCotH+DB%Z^(&w=!Ch$+0S;()Q&zoWZ92Gjpq&17Y6R`G`%so>Hf9L)Cde||108& zQ{n|6rrBQFbEB0h#>=6wUt-3F_{armft_ahLyaPC+zUl`4PQESREVv0Zt;8B+eF#D z_@#c6>=`ju81B{09X%ejL0??@YDKS6#p0e-3YJG|Y@)s01M;FpF<@Wi;4FOcbc@r+ zL@(O0s0psNTj;T}uQKSWps+YiADzmtcy;OO%oofpR%>8%t`Qh`Fd@6Q_53uZhOi-P ztECii$Y`1yWt>WA%!3Q{o;I~!9MM5D`}e? zU%G&P0S3#C!XEL#=~n%lWf0>wB0JqvJEewLm?K>FKGb*Z>a8(Wkm-=35c_E~s=9h( z5>qFy3-I7^>vX32mb-HCj4)-NMC3a6difQl)lPAfv@_KPl(*Ksw=+`fr}&6uTBXO_ zNI0%msWDWcLDw@rL*vs1^^jr>eIEneY-+5ySxK&R@{VB+DMF%sbaGqCC2IH z2hRDJ-yQ!Jz7{c38Q;NDoKV&oWLSOn9wCY09uLj(H*K~dlX}26WlcdBOUl6szJDWg z#%;ZJRrPSrq>m;1?ooiAz)S1^M#JeLk_=3kUyc zy)5V1h)L(-)jo%iC6HFmi56=ZZwDeX3rhh0{w(FBQ|67BQ-GGz*S*RBI9sTvA#CsT|&V%^q9p}34#x*k^Cwt4i24QP3d5F})efEd> zUx1f3{yF7D+Z1WUdFMF0UruWbkowYdZWDI9A! zD>Pp780dKFz!5@U@h44WPC4D-CBgFgMBjDTaqQ)gUOBftW(WINdEajv+Qrgj-*J4& zGyNojt6Yn-pOSaCnCsUgo_Adz!`iWG*>DQ8%NUr?Ka{|4hPPV$rF#t_plqv&P{W=9 zP&=wU^Z2_3KOrGFTgw02uA=-mZ}+>r-DvNn%?wJP2S2^n5y9Rx1FqRqKVS;<`w+2K zI5BLBxAAUTN*t=nE+ewMs6Y$;#{b}*q5l%A&jdc2%j~@PxxK6)61b4TZe^rL!-$VQP+dBU1*6}}IUcCc+ z@}hT(FeXZz(OyLTV zF@}SmT#F$R3=E6war@Tv2+D^X01KqSGvcy$2bh_k^OjRsv}?9hqu~b+${#cxV&;F& zRv!}=r=)VB`duL7t#!2v?S12!U9e+2Sx-S~UnF`|TfZkl5Ae5&J5D*<@o!s_hBC|? z9`IKiSHefAs%kQ@?cJu}u$zGf#cgDVEk(AY)I+6&g+WR~EV3TbMSF&;taL$sz1SWv z>IEj8@2DQJKSn*NSBfqU9)Il5;U%s7qUB-`sawXUcuXOj8lMc3si;n>HMv98+)OeeZasloYWqbyNT zR76+uDmd*mTl+ju&0O8oSrv)??%e4GNP@rF?~YY1iWSMgH?GEEcr}Ay?+Wz$5~C?B z7uuD)R(;*b{kwE|2Fn1YtCCRz$t1^0=84|>aDf8z zP~xK_j|6Sao8W@15jlE&P1lIWIDKT^VzhPy>h_}_ft~|OlseP>Ef2Qaq~4rENuN4! zC+~+zWvp`!TFW0$!+SK8y=N|;rx7U7?bf`x2V&eU1rlpx5cefCjR_mTO6>!I5!OeP z3k-H73z6zVyK4_35N&_L=GQ#!Q7&94C()HXl;Z5)nTPxMotx5;DV)cN2tfRy#@7B zLMpK-q;E;)mFgL8B8ZPX!A)g?{+S#;aPuUhQcI>qIJXW?!|G+IL%K^;e2V7s)yyil zbx54?j@Vx?!olDXc;JBy6x6bwa8Co|J3|E{NcBl zHp&Ek^p6deFZo-|p2V?i!}SAC4RYB*yD|6z?-f0yb6>a+o7EP0#5=8gVi2?SrBy~R zNH}{{jwF_Jrp+JC@*vt|U|}QEE>Yzq=?nxMv*JQuSL(Ch=5XapxrVMYSdzv zWVwE%g350poo|f;qH`ekxS7UZFs|bN zO#Rql5*x7Mv+ovX?L>n0wks>!XYj2Jzf`|>{ddl^Qa z$G5)e!S3I=;)Z)Ux}9P@FE9EFDOw}VzE@%#`k2Owx4V3>tyFthL@Z8@ICJ|F*dTcR z;>|Z`MOat~EUqY%M?W(Dfnev+#`P87!@X5gs`ufB!Eo}U)1w$=5ik6~H6xhOYVQFLwMR&0tbJV=d!u~mu zrg`^9$eZk+yLE@We-Ej<8aD^qw)hs#JXz=>_CTNb?1nrHYVz9{@jNOoX~-^7FnHJc ztY56agf`SaIH9FZ`#x&bVUI7PUaH7VDQ>^5&|VExz&cvsN*03y(UGmb|1A-J{yDM? zoqT4p0Uyyt?GMNFpZfS!H#Ov@jK$5Q{U)3GW`&;Q58?4(o!Bl;#W3p34?+X06$PaF z9FdK~#Mbh)pWHi2$Ryk|<%}NqE~Cg8U=0|vXgzZYT!UdQ*jQ74-Lub|Xmv5jJixmh zpQax>{i(ygPQQM~)-D7l2ZMwN4&~4_Hr70UZaiNeCVU4_NEBR2q8J&hKxk5`s|MMK zU5AH7#PelR)m$sOX+uxHYmM6aCvAdI3Qc?1tz zLDG5T^HJI5?PKU(eq6OAi#%uo7cv4?48Q$04V#X6=qq4(ALgTh=7CdT4A+vN;W|tp z{T;!8ms_qGn!HDr5rJFuj%0%?EE>UO$RoG%=D%`i+B%dPY)oaUU>)rl3IPp)cyUdh z+#BlIB3Rs~fpJ)CGenlqP$%N2GmS71v0rfXC%MCJ$`=JtJ_&)Fhp9TLL<64uG=2~- z&B5q(?@dRnG#K8h1kw?cAhCpVla3 zDTX>pEYgL(Pgj6ig$`tMcW?u&z?lxlVE>v3x`mYRzzByYYg!E1WQUQ%Z?eu%(uo_u zPVF4fT5Bc?EaG#gqgdQ$U#Ar1eWhhp+IMWBd-pgmJhvJ~L7ciCbOe^dT|5Cg^@AsRqX%+H@n_=O*+s5c;YC5%LLNy+~e#B!UhtqP@6}BkXaZ99u1^zFckH~15V;% zJas4v3DR){E9%l)O^52hvt4!|Zi3eWyPQ*TMwh zuz^_x4B}o)t4&p**dA^we!)}QeX9Xqe&j7wA!j`trahcw&zb1^HX=W|#^@?8mDn_k z?MXJY_G2~1LigEJ$O%~;$&d|QhpKsbgkY~}C-})IjW{W$4f0pZ$e=OA%C?)U?kr^7 zA+$vYwmt)N}bxP{G`^t;(fu%liU2c`mOqa z8wO+nzO)e5#=#3I&(}|guQNd$v1fk*QzJ2)~JKE2Hchc=C-8TB1^?l99;0TJ8^h8PaOp7j6?P!}T z5mRmtGUZaytbZ+5>vFRHaop~R#{^S8h~)%Mp1mEzs-L~0kW`e|CeUC-!owh9W`{ra z#Wx6I=$xr)%ld_}0C*I!MN<{2BLfO&u+|b)WmYu1 z^7YG&nO)dla$hB_~_PS=4oc!o^i!h(fp94FsgE!N3yObvC@=0J+F}A>{b85 z?Ob)TJ|GV&cYIL6Fy|pWjj7em~K(bHYVY4ph^5*Wv(rN_RSu7zNf@d3gqg9PjZdD5orsnRjq~w?nNLpHP zEZr9w@v5Rb`6nk^z;Ry&A(R!Y3wx~9`%hlI{r(+W)HBm9`^)-GPuVwjv1W=4k{7RU zwyr`v-*7LOk0MpXrh4*&-5NsS_5rUAHhA6MB#x5>pvQg}0BMdiLlIsDO9>MBkcGn* zmj%Owr+XOnB#o00TITj;t%M+c&=QppZE4sQnnGK8oJ;*Ya5+^XC}KOP=5sw=BmRpY zi3|@(T0V~k`C-8J&57e#!N&6v5f1_m%u}~tTTq;!lD3MdG%7e9R#I#71H@*u2A{A{ zKmK^o51L<)yD#D?!dg>mlh7Z_k_us>9T+W77=YILi<0ZYa4@MlszbHX>GA7q`VOW7bN1|%6=33R@BF`Dnud?R@ zj`rBV-mBEG3h-BwY^=~fT=rKN5kmcF!zx2T>${r4QnaBo>B0}Yj)>NrUPNHb13KcF0>xBPaxHzsu5XAi%t3nj!eP$t9!e0mMp^x8n zuhLMGOOAfH+Tf~(FYU%fisB!&5d)N}K@lNIk8L!m4=jg%-nduLQ7(b>bB^ykf64Al zEOuRV`btM|08)A*eEsSUaQ^xFb*y-Poql(}T}BGs4yoJ=Fu7f28V?!w8hVOQ*XnYX zs&FP=(X{1@QAwD>K&8VD=%vk5sv;J-$HhK$YqGj1+u9@%O+nRp_PYaOQjaaab&N z=?$_0m{B=YrTw7*|&{6TYM}K(cx7-n;*F9)f6GHTA za0dW2qNmsEiLw~|O>m#zlJx&T9@*a`0EN-)UbO&60$-Xab=hwoqK2(ST)goALu1r` zBvmz93Sw?!8g_?4?upd~HfwKfLI+iu7;E9PWy8q8_N>4$w5{VL?r-@l(QS!?)?|dy zml;6I;iy>0n=F}l)|8l^7*om<3`e*`7bb1Ol2CytF&3>ZG){K?mXTt2 z(0~W`lRLn!UeZkk>C&@A@0O@nP9H5|AAO^hutcvPQVlfjF6x^RSL(JRX)^GfSx2h> zsw!z2eDY)Py_0%MzrmncZA_Fb7GJ&T)};5d;urii>oO2QzcJbYLdE`{m~w^Ic%Bg$ z*IWjf)Vtumtd!#A;4~uk#r0_su~m`xxOadvw!z!k7zb(vG5x;M#wi{-lp`Ffnh-s6 z#xBkk&2KwYPgW31YK5q+3jpR&lvC5~?Xx=E_;Co%VOITGwl5!*6vlP3)kdwwNcQTO z7M>wtnP7(T#PlcRn+_IX;))mX?keBL6sH}flri4fAKPSReWw_X@V_ENSZ3Px zH^kFtm4BOgV?&Z3ciZ)c?P+9QhMKfg3Qw3Ro zWsG#8lOMLV$$FTTEyTml%-#4I%9@%`W!2SRKkO^)AWxvsKjSmdxPc8_eRXe8cj_m) z-UzJ&4vl{(%VYsXl4s3C-J8bZ{__8Mdykbh+lb8)SP3YR_c)4Fw62 z#GEc-{tjfk-(H^oA}>$A8b27K(>xm+(P@tABY+Y5nw+|m|LA9k%yrQpWQ++62=tso z@WzID&opQl`6W&~Cq&pKHHKfdgDCB+PrC~vgbNbIivTn78@T)u#nXW{U8R@XfJ?&5 zK-qCcMcS-5tW;5CoYK`jn_9{P*c4Z@tJBK5&88-~yYZmhaRc@@sfm?v_uCk(;@#uO zz}(f>?~sK&r{oCe#ICOH5 zu6%l+MuZUl2!0&<_os)>xAe#Xv)~+KqkYLW9%(35r~u>8pZnDRV>_nzrKDD=`lZv-TWe-5`wn9FXa7CZ^<3R|}FBB|FhZcEVA&K!JXb znqf7MKMxghj{?@%=ep1*cxba_BQ0c|vXUmESkNyV3e9YoBh9t1t8a1JHye5LxMy>$ z)tTRZ(IiXi`~~q)b94RI2|OUCdM^vRnT`@c0!iho1gX^cSardf8N)02lN5~RWB(e_ z&}HM<8bO(It)^L>nEY3t8qx-FKYp|`kC7}sZxITK5+|vuXtGw5t2+@$)mo^P9Db`@ z_qycOTW4pLXOB*^n-=#6wHU*Ez`6<3-toC7w*E5FG7Z8qz+ve<%^LGlNi z(C8Gk5}f1=$=;GJCj;QeJH_ukLb4B@2WxSj(YAgt-}=4= zm_8I%YlSdyq^Crg?X_E~Q5^E&D$lG&ww&ncHVboUGG^tHe?LsFMOWd+{W&SHnJj?2 z3kFZ&O7U2_@dZ)a8UMylraHi#D-7+A$03nbs$p?eB4U7aw*#N4Ul zgxrS-wULDy^hylmdl9IlvoBlp6p6R}`MCcED@WM07PK_>RCDAcP0y=e)YD&(S z##qJ~v)1jI(0i225s!r-43q5U*@Nco8${mo_gHTQ)oL^z5eys&4Zz7SVko0KTv`U- z8^`+g2`mPlx0*HtRYcwhI#{?>fs0V|-&qhoaUj50giJ@<{+mg45rWG<-||tkB@zZp zO~+{f9$0hO(k`I#_AN#0ftgLz`$cKD$X>$gztF3d@Ax(zbaz$eH@9U5VB-|(LS4$% zC*)^=qDS#17`)L#rZgl$TGbkZ?{zVrx7s=oZtM1s2zx=1Yf}nNqU0!spa}GR328=( zT{iiyudr_`$UbVm)YO6W+y~WW^_-5{-Nk6`J7kj#Ey=NkNv$#k(}B@}#Mo+#rXU&t zXH8B9@l`!DRjG%$ke%Tf^*R|QZdRs*_q1$7iybr|p(({(9*o>NU*d?$t9X6X=`+R=S@3DOO_ZHEN6my8B zGtOe=!V@!c5Ehhrey<>zq8uf9M-yG8j0^k|9t@Au?0AYAa`0+6kLsQ5co1&wQI)ge#P}X zmL$$Klv<5EH>%0v;Kn=1zYf;ZVRg37RlT@~fkNrBzLx)p(7eJ+f^%kDW#*D%X~K&k z#RA4gbPTMS{c$x3$X-tKRem~rbey?6UzWC+9Td!6u z-bEspj+2-x20a&cJvIF*1i!yoJ@%xo=6n$~2_~dCTe=$59b^5&Q&xQ`ntymYEiiPe3A9Z^)lu=+YwG-430N z4z61BePdf`P%`yo%r_w~^qA?zrYqB^DQ0SN>~}0tK6*%*LxDoT%S7?de4UKdenb7^ zAx2fvugEfvKkPO4Z!*lKX5;L2TXba(e89^ZRntxFvgau@>=D^);CbvI{~41D{_TLa zvdteP5^_b+xn#MvHRvwhhv80s6KhnS<7vXr zbAb+F;38aHTt8n}`Vy|2JlY~L4i)v$U)4fb_Zl-X)~F8>y|I9R)$fqyfK6We$TgsWQ9NjqUx0)pP4pf#j^c%Hbl&wZMr*}3)!9*?Gqr@Q>S-=DDA@kID43XkuA&r zqL=)R4M7^$-0+keq5wkRK58gP@Z`qn0{f38z$Y!-%)9QpV{eK%tU3JK79ObRv1Jid z{!vQbHh*^+Do1PoMh=O`w94qT=%MLrD4h4RDfxxvMiCv-Lx2Z)}G0GK*})s=2O-JMg^-2 zkrjrbkMW2b<+f##W1{dghKQDlrIH0ZGbp-3_)Cv`d$(!Lj|GnGlU}r8k<7G3PSJJt z-{SksG5g}Ok^jiA>raz$+#0nH-fCOP@X znM(9~GK-=uO=fZErdTr_F{b7yBuEzS_vQ{~b)rvI&OUpBH(+#yTLpP2hL}F|DfC!p z_-IO=8+wHACWTWcZR=y%KNpQbMO~nQYo-Km;t$VV0(M5ZVJQnLP4=VIX6rn3`Z~1< zNJ0a$dh$Nw9zL#*?HkB~WG+;d6IK&M7iW*jKDN`Up#?`d6>W-St{>V{Z`&W+`_lB3 z(zQ>{(x|&Y<8>QYdtDIj?mP#X(XJwoimc2aKKg6iEY+orT{h)pE#K>S*@*>|7c-N^ z69QfzJ?0p?=RD4bU)6l;`wQ2j-m)|{2bP-FD{$C4*04|z&>9^Uy@p=Q7;V}kwv<9t zpbYj}U1;BuUDXh}H-7`h4M(CiPE-Z;yyY9G=T@j+QkkL+#~R-TjbsyIPB}YvXF_H9 zYUf?w>$Kn_gu?HUZ zOTNvE@s$?CMvc-@&S~Dg`E57{zm8@1mpuAzu$!pPJAO#(m1lu}@E@~*q-)Y^WOk^) zg0qHDm5wD9=qcLSr^ZCP;bH*tqrKCeic^A}MFsE&H$0R@(l;AeK^!;s58*u!Sb3W1 zt1Q)SE-m-H2(*$Pstp=9<3+kl4h<91iu(-QQo%z+G`e14=bjfa_6Q?r3J2dN*hrQB z@}faa|4Mg!*%&G%)$QQc4MFqRON9=!1L}94E%{${r&YsBHdoxa zJ|g1@trq$8c5Z=yhFBjjae@uww#5{Y2xL@dt_-d>cYq%KV9?F%i+D0tn9iqB?6_K& zl@r^1V4Ti2Oy-*WDq>L}_`Q5)()PyjQNZ?S^NX**S?>a-sjrUanqnz{H!G+my#c#$ z=qL9(z)6r(W0=zvEly|#!)o961bT;5Pk0>TS@^78M01BW&t7y(Xq3A$D15etFY=j7 z3SGAG%%u5+e<}O1+a&FRJ4T~m1b1tZ2Xcbp@QY@D8T*=PT!(JZz>_8R&GQ*P&6Vv- zA;AOBjR^OS5Wh{2N}&6Z%$#eA{RBfrbj&gko=vG5;x*^sVgBOVv#z0NOH3V!!~bZR z|7&CiPSp#s!~0+Iy&@Ql`o4F&#b{kQv3al5C}?ZEl_^;2*j${9W=^LYdd4gF{^18NsiNY{pY^ob$P zqj^zIC_c>E*{l-t)Un=q6Q>U~ot6#$3uzu8O~Pt&7c{fh<-COl#H@{X!Tr;a6fp2nX@aO+C643D_Rnw%4qY-W>`dt&*O zX!GzsEYwTHY^hL0+a~tJo+t?#Y(#5FEKh%2wqi}Hup|riYDs)wFUb)XrFczVVoOfg zId!7~lJ^eXdMfEfBIjuqu;EzE?63Z`M~`hmm0<#ynGdU$4=|~JDeK9F$!|iV1^f16 zs)gX|DJqZ0s{H|wJDC}oiTt(bhpe`XfPPgG1`1UlO*;zyBpKTEP`>*#MgE*ofT(rs zr7_{f_k~Fo)qb2OinN0oXl&m#@0aG(5HaubCiF+uIWvFEZS3*%ffxT5j8MzKXNw30 z_=Vr=n@y3G#y8wwR#1={;{L-T>jYKJ@6$B@F-Koa`?nGzVqSPOJk$QujBxizldG2i zvfE){?ps1g80Z#RlUK~N6l-P;^1*TVbKotdgMn`j!kym!!}OCdui+B<<+ai>e-3a9 zyew~IM!3hD5v65L>qGQ$=Rom3LqXN(16#bq#F3wwLNUTJy+g1f)Ji`=A!uIV9 zOEiMZ-gPz5ea1y98Rjj)ceo2oYHMw+8^=2czxWuqgJ#XbSaVuy64tZ9YY4ejt%kjT zrrL9c#kNH{N}P%+zZm<=Z-ZQm`=+~@X!yu2E08m}3QY$+mv-3YGp&WLhOC5r031s~ zfHX_2;Hn5V;0*TqP%S+usA?Ja^$(cS0)>xzHLw+-A5h0rgJZz-eKSn1(LcS>`)^4( z|EB!?S8*b)FFzcISvGz?KCUunU0g>hmFy%oj{D_~(XfkeeDLLgCZx?9;v?724p zvyi_omijG={x?}h|2-tye~YE@FDNo>24cYYB*LK33Yu3?@?D>m}F_wLWK==Vfq^ z6M03)K|dDFoP7U11|+$ro`)E&+G4(-!rcg~Mc>(Cb0!MJzItAoBNLD|22yuzTfhZc zByn?%E>)51F9k~B-Dl0s+88MU*7rrXWX42;UM6;HO0cTBe}nfXYh-I1ZBq!N2|SLx z); zt&bNnOUkmiMW&tQ7{o^vpQCzuUTifu%D2QcK4KDae9N?4qZMaKQul-+*JABrRwdIE zY<=@IJ5*@d@FB1Pr*NJsU_qAF4c4xh=Q*vIcvLB4`ue=K zO~MvK0YJ1%Au@Rnn>`z*RA^2EB<}v7$Ntn0fDkzW7o!y7#6!JiQKXe0CVqJTUsL=V z#Bvb^EH=o;HSj)tX`)1mv$g>q3fPreG6RI9a{0%gGsn3t8BTWfV=jjCEwz&$xaY9BH@ ziS9t^p>(0tm>@TI*`DcCq1+;SbUXB{SA@J27zkm~>6PvmP2~A_2Fh&=ICJMgTVdJ! z0rIJ&d*FxlrY;VQthZ?y=8N&L8>s291yEdgXB+trgYE&L*|Uo6DQTDLbOI=8X>_a$ zQ|dDm^mDIapp5&4`bw;@>`1fhcOB^I!;P=1cYB9|6Kp7k9@7J>8s?a|rRkY6;5=}Vbf#o4RJTyVB`?;mI7_UY5_bT%_MNZJEkca)Uv_2tWs7WP zwYgC(1PLJbz3c98eIct&^6~ZxY0zR}C(KVdUA?v0b~9{BKr!}{EX?%7Z?Tsl({)P&q-m}}v-+Ea_nR2z5cSf`+D!}b2W zImvNtv)z?+V6Wb^dBhv!ZOYOto&gea+e6cv&jSK`*g$fHR@wWOBo_Vno;RM9ZFcv? zP#wKf_pS5D6wGnrf{w{>?f{d$0ySxusjxzY$@L_$62)(@H}d!%uRt@`3pQR~_g}Th z5A?FM%d$4wQlge1$LZHiYMOu1@!~(X_rQAOnVR(A{YiF@$xazW|VTj#f$$eE}s9aILAL9FK)WlZrw0W(#+eN zEWP)o!FvK+=(=qB;x8R%%6kWRB&rUFV}t2Evy0RUVNO&z#D*os-EB~kDe1kg!+QT( z-)4E8JU^Vx_>~r#7Ww{_3$g3#gd4+GBpW>%;_%!{yNP`>7NQTmnZf$=nAa64H}l|q zOaDo+2lrV`m%KIj3ijA@K8~W^0b*3z7fv>(^FvHtBqtU1DA=Dg{Gg*^WYp6ih2_=O zG$vB4FC3_`22n$(H-ZKY4KWbe-E`Fn_|hQnsC%1^ONWgl&YETo`O#QOFM{L)b9)q* zGg2?}mcxd=QS07oQSjJ+9!c9 z!>Y)kZnA7#PPucJ7`I1v0L^;XM5Mc~ME#!Z!c$0G7zh&MK)=vE4m=yr%<3yIstX@F zuz*zbK!4OtP58Z|JX0uisoQSJywZ3W$DEnA5$kKf2rVmzeYEpM0amjjfz+RLe7{AY`Vf1zOYcQBj$$L;vt>d=RYcP(s$S0d-pTP!&;&=YSPuTlSR z7S{r%+z@KU)x1H18dTQ38$CK1ufJ}WC5lRXmVIy?_xrt~gHjD`ImCYWbSUpE@%(DB z^W}6kbVcviRh<7GTi$<5&FjCIfMf=WjRF)bfBjm;VGSqVn1+t=(k^u0Yet=XQ6_Wr8T64-D-_LTY_ z{+aLBr-u+aabd&L{>z-y5B#T9Ml%)W(Q}sK!Y0CqKYXlo{V0~Wl4SQdItdbnP~Dk( z_g^6RB(^GTrk&I;-E|F!W5r(Y#_4WjhK&+G0~xG|AOPWC_wN9D;$`xXvQw5u7XN_i zKmd)Z<>L1^OlKbWhdaO_EkPh*eRrfnO=T@SSvc?1lMLk{O z9?9yII)s_s>#v2)h~9f3XCAT=4xj#QRKNOOk&ShW3`TQiHcQ>ahci|e2T>yT%>A*< zjzvH4t&CvTAp+XzX0W8ZG~2yFIN~EJX0YHZx|P2B@-0(8YMjId^rM^u9r5+B)HNgV zMqEX-&2QM$|1NB*D6ld82?M{uXj{KrBOUc+=h4|ejaB@w)-(RHHq!=JyXf#yl!qo} zrV=x#>keRk2e=Np>jkhrMnVE01CZ_`A>T(vLVN*`Z~!!1lIq3*M^2Ba)t)6(9dhP& zjjtHJy_*L-{OR`+GZ&DmB>&sDbG{4;M;P>cU*bIa{o4)Bu`XB_O1;Ph z7Cklt&;}EHC%z=GtO>BC35GQ&0#4N&^ybMRSH#4*YpaqgmFf4h1|&C;m^$W`P}aWy z9ubB0N16+=ao5s+0oPMOw&X%+kAmb2bwBiBL>sA>{j^5hzbF1Whfam-)cvgO5{c5UH=kpa0zGzzn1;u?JlHNxv+SR#vcS1ps z>U^7Krn?daAQvwN zmNUhO=iC68?f{KKpboY%C;GiDkMb9>wASw^d7rVU*$k85^%{}LNOWH|;0Hc721vg> zn7ae?maFgtU`Sgm-VQqV+~$95IrSLZ*XiibYSFUWBo*;fo!w|s3If&_P_-(6uyaTT z_gXrXKNTu_j;ojTH2DWEl@oS9V^xx<>Q1y<^j#LC#0$#o^a~q!0Z`9fQ*757$};h6 ztf#@h?U8u4`*+!mH$XT+19o~uVd1fx4=f)K8~cx`-=|0!KPQf)SBUgA(Up* z=f|^~i&<*S3UW>ZSg+YL8}#yCv^IU^JfP(_hG9!{6!kKH^GZX>(7nOtlEHk23OKq0 z@MfLbj35L~Q+ge*%1!T~fJ^W@-Wtn2ziyyn8rPu)ZMss zncb)y!B{y+v7P8IM~ZKMu+=scR;a5wqX&>|?#FgjqhKXtV_#G|hM0Ejp@fZ}zrQ)0 zqYUTT_u0PC1xDv3FCgC27SJqgEoMEQxu_R`-S zjKcB8HO^4xhV){(@a=nl)K53m{JH@zp_{4oBp=U-@=Fg7p~o(F0KQgd8?VJ%vXQVa z4|dO|zm`jUds)roU6K8jhW2Uk;X^yu!($7CcTUpNRnBJxZqGyMF#U${QImFmU^Je$Q&(AKA z0>8izcdxtukq93A>E0IT8M0(p7EY!wY$_x75oIUsQa)^osQvWDnK#H$9QLiRPd( zEi7W(jOumyro>CAbJfu$Eh1~}uCF!QPU@ZtWJ1{wfo-o5&ppZ;1>Sz$pcAY^SIl?_ zoJtvDQ1uK`hI+u9JIV?vdoWs_p?)4!Gw%9OO3Gg`wzXR$v1i%}^C#Lv^24 z4mDNnX@YpiMk?MdC4XmeQ(5Iw*VJsXg_p?T|;y^nIdrm zXxXPoZB7cSgPBzIUQ=d{#zXWp@PkUrs0``So<`#Q8TVT`}BQnu7}I7IhLxiB|gddQBDx~sQNi46}=j` zg@uLuwADAds0+(863;`%*tESNaz!^sk6uag_zep_nOV4zxO}dFySBE_j^`DLY9RR$ zKEr-wH^kS0pu6f>y?koWdZYGJ{=vtcJ_%CxyQQTrGe=e5?~mJucDzHuk+R<`W%Zaj zLL3UiEW%3MHpC>zE&&sD5OI*9A&8g*l_}GqbQW#!;<&EvLD@INp$G?Yzxd3e_n|;( ziLn!(sw}3Y#Ck7@_iHYPiDBP=#xq59$yQ?6t2?K{M2ZhB>Ia<<(EvGgvVWv}UIxGf zOH7yr24v7$s;jHU^dNIXK94uTa|K+r2}O215d(iv{k)cnue(aJUOp6g6)|LUbJMJb zxT@p}nz8@pvlT_0MP6mqSG~T!_QJ1897J}e)9ii7?wS(~Ho8wn`4VYOb?(QI-LP&m z$4XdQUg}f4Jg+;zd&A7rigc5>x?AO6c?tjPC-q;R4QJfh_l3S8ZX`iS?BxkES(dX9AM+2iW1`B-ep=O^8m-ZP~l}yIOC^1H#r^cjRw@j))e{t z)rD8<0sOt{8b}k$%r?z$q5^H1e%Ni)RKP~mPaZ}@H&kC|$bsTLrn)miFiUh+YG3R?SIr`d}q4N43u_Lh4^^Xm#4U>-Z2wC^C{goa$usM^hff zxytPA#r3OBk(j0{TV9ewDLSI!c&Rg&mzlANJ)J{9y^Se6ln?K}Sd1?~U%dfXhpDoM zJrk}E&(3T1q(y4q%dH z#5>}5yMzI0>w|kCisCeuzk83zwWt)t3>gsqFi&`x+eNdL{v!eF?CIN5W&xFfcSwBU z6tkFJkCFfLh($w(Dv4fwEDBxK5m)2?blMf?`16bja;Bu0sOdxpXg>UFHwf#vGo0TB zim^hg|G&M@fByGR4gq%2(@6xcR&VPe9s5kk%hVOUV@jXWFyE=52Pl#U3Bbg9ydhzN)X3i^+F zy6f%k?cUwq@9w{R0wnJ|Gw(C=&dk%k^JMC7&KJ!|_uzhwgc?a1x8$N=BWFMbOLnoC z-`)2pGBU|{D@#f}hPcbgge+zDQm~|MHG?Z04$MQM#iS4qyeCk4pGh?qhwUMKxRvfR z9oO%a6_IJ6xB#Fy0sv)HZ zz5B-DEhl511kmfED&LD`_?%thTz;$YQ`pCI)z}U9vQP5CKc1l_sxlM?ASlAbI^Djg z`Hv4>akPU@_{Qd96_+TA3!X4}l&N$k?VDzLD*aM=^E>5P2jZ8T>~;d0j!LxJpxNS= z!M>E-L#k!hP{ZI)K*g=JN<2{>4@Lj$FKmE}=V1VZ;*>$45o({L%Mw>HF3MdvM z=8bA@2h3%A;*=H@$9MR>mP3!DkNC$J2Vjx}715f&TKX zkMBM{`=Q)LB-V)-b{SlL8;|(5tq4zz{H6j=ZW#q05#E!sfqtB>In=h+io~}ZF(dzfdVjRZTBefhlI=OTCcEKGS zln|4P=3J~j=Bf%ckF*Hvb_%Ba5*J8b)(*LZ@^aDLC`)e|5)BcA#HqWGz)HC9P zE=9`~Ocq?SU%K9IezT=-J3{`+gUSspZbxN??90BxerD|L3wT;}IWO;Gd{>EqUn)2uC+%ubbTp8(lu_oX5kJ1&fmk^$5yTi)#|asoGcNA>9>lh9I9 z`e=sXXtcD<$Lv-d!a~&D^vCZneFAv4u3h-b49kwURD5WIR=MNs8?{6G8@Rz-V#C@a z4lGzEZ$6|wp@<9$$9tg?>E^Br1=6oF!}>#8mD~>iu>tOh$e3M>@$l97`LY4L2$9_> z_0J7|!1~+z?tfL9{=!^1)cLSj%@OY7aA9|x;&9IF@D}F>i{*~rSKI%$y73FcQRY&m z?=-n@6(;MynH-n^C4zT9uyypCmHamo`s=^u00nM3%=cT+ES!3sF_^);QixHR{-+Ja z-_bHiF|$+I@lj;Ou0NmES85d?4cNnbJ<|lIz?eA8zl3BEmjkAAJHy&xub1;P_b^d=go` z_*ygatXpoIlO*@8tAkJLVk?)OxRSm}dyqLtRk|Ra6G0V`dE~pZlM{BhrVTPm5o^imDHqf2RI!$xo{?RFhrJNrS3E;Y6z)?hT<76K$?J!Bb_A)hBzmklA* za7H|IbfkMzw#56cHEgN&X7YXh<1E5{6)P344b56Gpf<3SV9$u>3S(#N2rX)ex2YE; zJREaN^_lD3nbhh#cf)TWbfuuWAo(qasrWl#%V&KII?T+27ir&j-ihsB1j~1j)`yg< z_C6`u@XysH6xsWbhRw#xLrYsOG{R66{H63>j|xNa1sf)*NL7G-wC?J5Y$b|fYV-8AuX}_0Kvw~%wu9! z7actnTl^jy7}3#bLhH*5)#R0%nLRUr)1eREAd7+jnTFM{l1KyEip_EG zSn;(G*kB`JkvCHpwFQ~4j4OJ7#P^QjN&{`S?)seq26eaV)&%Er`5jEgvs}Up$LTrW zvOt_w9%+B*VxiCsne} z+w-OU7e!_AhAt?3f7is{HpmrYjxfkHEygxu@OPku@0cEL>NrwpXo8= z&&$}YzwCK62PchoJao8D(yMTeVF9iFGM6-7%~2QU)#Rz%$Z$9~8Xu?)-}K4Mb)fJo z^1d=bRb;f1owAb=SrQhkf?l|VR6og^nu_JQnKP)Q2n8uqirQ#4TpkD{rc-=fdl`p2 zTY+9ls8bKn; z5%aN4a%wp1LO}4nHN9dwx@0lc%=7a=5K9|@0>smlB}tVUgZ~? zVjg%Ah>Ls1yFFk!IVQiU+DTCI_9*LvVVpUe{EAv8b_WmKyP@vsIWB{R!FxMClty-Rtxx5S>OJpZ5=+uh|2PX{}`*!#QBTTbJvyLt5()}1Z1 zj=rKneT|y?22(d2sG|8;BQ5n|_RZ|a+HdB4y0lhdIHAqcExSswQAd)2Pk;?~M{{*) z0eQzk-E)0gtH9~5)(oe9&FZM>r z)05vi6K1#!gO_V@g0OLC7u#{Qc;)1FLOA2aIF(p67|Ni?_w%Iv_iQsG6{1+!p|1Mr zE(`|oZ1R;Nxe#)ut5FaJk?MmFJ>>bwi9GTcUe6L{te0pF{uhbvTtvL#$;|EQc8yoG zkqLNp!)Unf_2;~BkKxXx*VOtESk}S%A~jRF!Nj*gyv?`NdJ83LS#-m&xl$L#B*BW@ zBkBMO_0FprHKIWr*J7p4Mi@z=I{eTv@Q-yNY3jU!#=I}cA?Ss69$x3H2$2Jsl;hLJs-G3h39YCO%Ob7P} ze0DkdAmc;($fY+7mTk8<)gj@{x(?;T8GY~~S!ereSEUpfoK^LSYU{51+=oShsUtYW z5HGNAuhHy?z6-iFw<`6&g`n_Co`no5TwG{Xa(bVQfhPRmUitj#v@55bf+g;~PR!DG z&NQl_pj-YP|NS3#B>je3znk-}+foa@Km2s1g6GYH`Zt<-`>l_H$!X7?-USm#34KE} zynLYPRT2`k(swG^XDoPSVgttX>v2b`%Upaba5KDmu5TC#y3QJydwprLRhgGV_Q$D! zWBY#pD>31V@G7*h`y-Q}^JK=R_5BohY`9_ z=tS;S;#=m(A|6k9LSj3AxKsN-@g>GiDz2fuYnDY)!pW|V}d9R4r^rZ+zz+VE6i|AyN*0vMNczb z$3YqB{Nf;}idO$8{~5@VAypU|9oUbv9x>x)_zIh&(BC?9hUp}~%$$Rrx07Y?0BO zDz|erM}}H-x#}&J;gI9(L#-^LPFXLIF;p9pQuXlCG?qua9 z!Nk;kAhbu&VWJ+^YSJt&W~v^RRz>mR@;6U_l3>k%T0)1JvjXZiJb6&Z6P^JwoiXHpHDLU=zR!i}yE!vv3CRKHpAYLh1A% zA(Dbu_G*J{N| zRd*_Z_7TY=jyjpaMiNrjkZPp+hG3_1e|Upddi%yX&0bd%R}l6DNjXBovABKmWXW^- zW9s;ovi$5h2J@3wyoR**L{#n&n%>_Q$D@%J;r8g2J$<>8+?7tr6(K=Ev<-UD0J5KS zqkMEnLRRBZIuSk*fM^Db+Ts!#9!RslrR&V8w^%*1%6~j|msaK9cZ_^7oTBw^3aKas zc^A5W+k1ZDqM$cMD78820&~*Le{u+U5EGx2MfvAX)ninL--?d>0Wi@2mN57sIFckz zBGqv@&{f0a&+>zS0Jb%^-a2Az2}oj`m4g1Xs^C;c=+Q=FzwGOUgUwqjCpB6xD7X(z z==EJo;zgrLFE=im;Ra@c)l{nUN}UU-Uuh}$T`{-Iez$$(Y2bdNXzos4ll>;=imX~H z5($%>ap%Ko*9Nf_Oz4g_3=??X%4?OnE%emqz)za1Nn`l+w7|9VRf*Tkh3=<0R)5Dx`zg-UHnB{-OXg8K?|3SY-t47pP_F-* zJxEkRnJ3mLaL517O+5u0oHQIL|C`B4?W%mr6IHLi2d1neO>(s(*4~x>(l4jY`&Lbh zJ&kjnrm~gF+d%aJYD6|d^MeOvm7-uuCvQ>H)HH5sC#P{2N-Hmwtn4YphDVtYs$&R? zGlfc-^H%8n08MMmdOY;NO+a^J5!+n=A6Zzw@KWA@$rATjQ?zn z*K|@~7yHa3al#Kq7pon~lphl+rHz9K9th5iBx;f;wh4|od()8zj^8;$kWqae?CyZS zeN}NHqeX%}8@G_7If_|TKu{)v^6gVRii~osvgR#D2(RUEAOYy{`pT$p@CwhLL3szuN}j;^tVcHV7S zX3-f_JXAo$vg+O2Ub+=yCiKUVE59^NP*dQU!6qz7Hg(9}`Ar-9Ui?NiovXK@P$`(` zdE#K}Asu|*hl-W8z3$dd8FM-a;Dd}3j}Kq8ud*xdaD~Iku6@?sDzT&4*(U5`^c4NXElXNnzM&=2dZD*9 zMQldas|hcxl&tTIK+!wFH4Ho>7msQG>Tc*{X@Xa6mUKoy84O7A(W zO6jy=eAEjvCC{>s)}mH&XDb$}`klx%x1e3kMn+J`ag(C$#pYw|F$VL;X@SA9h|#^i z;iIg0wD$b#`H)@#dpxn$cl0RMKn_I7Ysjo~BP)xEssRjQSWso^6TtEN z7R)~dH2O{ec{|$_@`{=~+8#6LRnYzT^ftUSB8sl#|g8p5Ayaj;M z`@~exC|lECe-aADm3AM*XN>o5I=!Tk**_IIZjWQ$#hy`|v+4+*!8 z*!&DSMc-sZ&{m(gMPc|hyDYWz6OeYGZ`XGIqlQk>J#g<+?8*)G^%5nEF`gy4x1EKn z3kY!M;mzgzJ(@GP=`Kc4P{qXrdh`4pb)SM5!$b)_zB7AEb%W{^^>uklTy#j0Qi9*$ z<2O%H{3K5LCr%%x9!9lZaqda@>{9(_4qL4C8emtcniO|(lXQu#g`iM6R|v7L3(@wI zj3Gcz)>gZ~xzSpxC-?Ms!i5yh?YRx-dp`qIm8dRuGg470bkf}F)f{`m+1ai$3Tx<* zpXls!jBjsPr7oqYY>A|PXfnf@cp_7t|7nHS78WcL4>IG5$o~qy{G)S3p&d@}7W-qA z(aj4K7nPI`e-s&i;4sM_^kyvmDER+V;AG$8;~f(+McKML z2l!0KpMaF&mAuWTXD)}VTcYKZZ`5D6JUKzZD;UC8JYWlR zDe*SwrFn3B^2JiiM21mIA2e-8)?y?2Cda#{x6Vy(i=-QRzSiiw09OjkP8XrVoz#N6 zP!TY#5%P50_L5S~)^~MPKJ3_r?JhqJrZOJ=jUVIgv>VF zcX-Qo9QhaA>*p_iK4pq`abyX^t>P*J5X--BI#qC52Z9uzB|G3N_x|5n(oTOvoBz=> zX*n3!?(ByGm%6aseTtsbkK3FJR`04HERG_iN$_ALmJ`C0=Ce7(F+>a+8`Ut|iZaxZ z1|Ijlrmj+=5Ex^{9OJx*E|Vf?JtXzGF1Q?(NA0~6uQ%z$)GL&S6IfdrfzMp>DmR&G z>$F$*HO|t|Qaa2rPFrlfK};%!-lT#TacpOyolm0!WBW}$qEetD6e$-~O$k+;A-S#Y z%{@FrN}35lq>a5FWW!Fwf~5$9EKEGzCVi2rCi2GB^$s*N^$a?Dc%WO^IhTRLU^^QH zt1GIGYRixFP8ntW)t17fyGGD7ytlIRAc+ySKx2aK-owEHuR6BZ~&61iin3|UO+sQ4O5r&X9QprBoPG! zs$y;m#KS%p{ZI;p1gb&MUrSM#B1q!T>te2h*b-r%8IJ$*_vfVm>T^*%h6aTxMf^Ph z5(0+-ftXq-1St%|*bglSq7dGWog6(VRm%13T&ja#}@=IqiPXdYfUiz&FLxUM81R8{)|MiyR zVPD(%jkkzs(I}h!mrkas{y1awm=LU--hMuQ}{g9VF=740D#Xe|Ev@e4LgG;X9L9zQfbX~adEIXpe_|E=<5~bd|9tQGZ_FIb?O<$}rhc_$ z00dwb1!ft3yBCHM^Av!15CpSw(MZf1WW!9PpVy7Y^aX{PR|wM29fAC;;?F<+#uNNp z1@pp;$>&Ln*EdXhiup^K+)Q-t9Rr5W`6#NsgOYU1Fg8fES5W6ks(UI@j+i}gj z9-{vJ`?HFn6leifNiq&w37*T=)TT36Z$*8)dBm{bVkO8LMNx)>Za>OvfWUfMMKeD> zlg4^9j5bJd1KsLf1!>~V2j9a}L>!UFIL=dlr_ab7IFS9nrHnU`WTyR2DXuJ&}KlnUKzWLZAZtS*pPOgI$d0@*k zve12UR1IKU3X>w^%?VyV!av}JMx?$y04n$bbsu}?B7~Ff$7T<{jU|GP8h!#6Hq8B= z_v!+`zChva6e!ic<1kyaW6C)&0AY1uhANFh5QyzCpDSiBbm{YEiPatY!FKkEDq~Yk zS4P@scaf;zekFxaoTffo#0+0%N%v489IXIW$Fj#$E28(i;Z_z@euaVn|Kum2#14~L z=VAY5r;wCsUrtdMO?bwj}nw z+nZfa#MTdisOPf6gH_L8hS5p%qlC1y;2O8uyZF6>h$3v4N+HKxgy~f<;_CxNO6VLRyfDw2FZyL?l$yI zXG7PRYNnlwmoG0ONf2NP#ZW`-!3pJe8iP_20N|IEeadOT331x`P*JYcPoYYBK*tM< zL}%Rfg9U8b4%faLf4jDsLO#oD+tA0m>9Y`2kyDIq*n4%$Zg%mmL)9gp|f zQ5^`q$9j9d(d6^;WO^fcFj;MLQiA2?JX`?b_>{Kj_L=<}d$7xDt|q%WGm+u`G30Zb zTu9y8Vz0C1$TkPEF!uRlr%1tGK@XnnZO@f;0bYt{k169nVMEXdS9vAM$ z6ZcvKLXYH>LF)9(z-c78IU6+X3Jv*mJt=%4<=BN*%<=}(HOv`Hh$;G-NxEv^MkFSK z*J@l4iJiMLvTi=Ib=$?^!Td@~PGP0Ow&5;{i{RXajmf2~6ev^o{IzHe;o&kxSssAf z*u82o^Az1Ft0+w7i5J@*4{r<&(?OrFU&GabD8Yq_I(L&_xPk#YmOYXhk91wDJx=NL zz5=XXBot-y;ZXt`^)8eZuT`gZ)kV^Ey^YVYczoS>=(1*-Y&??Van zfwO`b1m{$Yo3Z``e0cAhC9tyR8EZn<8>U#$k{f;B;dVs{cZ!k4_`HknwG?$`ig3TO ztw$O$dw<8g0^p7ZojtNJRLi@~@QyxUAa@j58|bb<0UTmFFT;hjB;6&R59gjV z#*#+{@rJ?7F5n>EKBNn9DvXXxH4znDb^Gk zv-XZ{lB&#FB-wHrTr*M)3*jUHpF?$3JT}2@Y2m6&Bf@>e$zq`xs0)8e;s(wO0koL+ zHl!>gD7o(?+NQ3FA-ZWq8i>lr`Q#oJCk2#+fvrGYl)YKWM(Qa(w5pMYJUn`f-=~2% zH3d44_(Fmib@8+6{Q&tA>}shwx6*4NLi$TmUH)o}B$8-2XuF2#>Wi?Z5;B;6xI&6- ztD;}UGkg|k9*K(Vf^Y_zx&@cQzFgLIWVl%_wijq93^PW&NH_~3=N$VIMUY5Q*Lol$ zN)&j6bAle%yVanL%CYB>H^$=k6=Gw$`>`uWQx0f07Mg6IK45vkVgT6VuW2?Xzr4~g=7Q;)*#EFm*)kyM_Bm1ZE4f*s&CeO}{!h%Z` znftQmiaTG%F>L`V`pd_xi?Gt@Q;-Bkni5!32wcy)gZ{eYm{w**S^@Ih20Rj z6@+A(k8yu>Rlfv~h$4mHdUc0z4k`Kb@bz_L>z9?^oCsP*=itI=L)2%C0Pb1GI2Hrj zz;d#6$dxEXdROkL;1eY<=1JM86CGdzcDasE0Bj12e~@NA*_$r5Dx?$A2+39Du8~8l znAD*jf-6hpub~qek|t_>5r__h&6C?%xk9f%*)Wxa#*G7W0S&Y|A9X zzUvs8^uA~f)rZ!(de{TxEWP>^;l^lC#UsFqNk#$g+e%{>Y_clvEk+m^1LC;jYv9hTkx@^3DZt0 zuStz{cN8VBDMtY;61Obp{=z4K_v@w4B?<3q&3OSM1h_fqQqsA(r(0a)^2F+(dD#Fn z8hFqk+KbrQ_;wKb;v2TR64oPLRg(w%qV!l7(%GB(DJ9`S!x#cf<4{G!9)b~TBBeZc zo=)Zw-vD*pbDn)a*%%dIa#hX6y*m~|kc%Op$V-6ALUGai?2hXaI8TK%E{F1oPiR+M z3T!E7m@oNS*`%g7m@yfv%?Dg3#EhE zeoo%{o#<1mlUSgUKs{4Bxb4?|byD8!_IvuU=0Cv=Z7k@{MDgJiV^6`CF_*M{h#}C$5a11BMkN?CDx~!uzsIP!`|aMy zUBQH0w*!S*jN}puc;yN%@eB5Cc}q+}Vo5@Uk=#wDa5!gp&YO$tDleU(fh;Zae|%8? zkGk=1J^f~q_tRju@Hhzzv}Z3wsDnE+A6Q;G+Ua!0UKvoOm)l(~UfdxU9JGG$oFp~S zkyCiVxH%--M;wzmGQac4yxmT%pp=Wz{Uw%tRDIzs6jpPc+8luq%H853MGht*Wm~&H zUygFaW}TV7r6z>mdqYTujmtG))!fm!i#O5U0apHkHt(io{)*jz3W-mk83nUKVng_% zOhY>k1+EYdo`YHY6gPYqt5%oT%$zlOnfzY$V;1^UYyCWoPVkhl+AhCnDXvsM{r-^{ z%gNF^rKfEby{T14)4Jq|!t5T=m#MT6rM1|4VQFIY>+In*S^mFXzLCc{aW;Bi z7hR1FW_@#F);G4j?e8(VPEC|a8u@4NYNSoKw98>Rm)$9U($pzG7DOVvKD#KlZmA_n3*L6Hf2jmhLAbT`1IfbxeD zcAJQIcuzNxbRp6!#8P_99Yc3Y0#rHM$bFQbrFD1L=v@I;cS7bdB834QO z-%Q$mkh>|LTdl4_Zv&qEC%2{l;T7cSyzMl7aNNy$fa^aifipq_SR+9(ldB zXtMq8qpC}5@5m#6Z|D6V?&5EWh~0sGWShr)vaxa(&A%#e{^z<)I8$EB(h_ZJPw#I= zQP7K|7|L_y=KKWc5>N|Rwg=(-_^)3%IkF&t(z>ndFE1BvT>Z6ewJX6pNZ|TT5Z0G% zwX2#*hL@h5rgy8G!=8z?F_c;;ay8W5DonJQdlh+ONxjH9>PKziSuZL7o<8eYPTD)~C#m%L)}bs+F-XfVWaGUI2A0;6}V(4rn>fa@8eM8+YT`EvCri zq$zWw_x??fDZPqDMib(gimfTI1N9}As41U*+3%I29WG&gkdQ#^DaIhYDwfLvgjbPd zEqlFns3B=G*cID5CQo2fi6z4Q<$=EZOcte!q!GP@I&PCtPBO8=O-DdPHg(V`!Va06 z$)f9Wa&`o4c&c0#zo$fJ|0IVHs$HxMXclob$u)y~6C;gR$u4+&NaGA>xPU{EkNa{% zi9UtEHqu5}Duv)ghiWCcbPmi;qhuC1kr+AP^d#Jnka>*Q4vtsJOQ>N!uPFJBF;9kZ z>`sz^qt=QLNT4DAo8C1;=S#c)@syh?=6fk#6<5Bi>YyWydT6ov&>}+j;(2WoE%nAR z`Z`dcw>g{_ac0iNsiLraDE8woc za{M`C*=1Tr_)P7T`DI!K35gsMSdwa^NE_hnQ0R{&pzcns2VWAA^0`Ea>Mdz~((^Z! zR4(&bP5C}3Eb+O(WJx&=w&ERu#`spZCOUUbBzt`CTX#c^<`<+aPldXO7`XLHu{v)h zjxvDcMF(xbNJ5?m+EctFwy0ixi^#$1UCwC(U8E8YfuPI5^m7!wp3&TfE2vdV3axbstw>!;L3vdopU~ za*MvvBB4QVgO;P8(o8wtz|f|MXuIFW-RSkJ^5{ponMwl zK&v1;l_e60<**OXJGvnOOSdU948JOtMyP$@+BL0L-dkme*HmdUA&EJ<_v+#x5~KO% zJ|Zf$Cfa2VRw)pYP)-7u2&F1-I?>+(NCzpu7$HI+>_AL1e>0$rA_@m;+q8As@y zu2}41<-8kJ{+|FXm_*l@7JsZOCm`5jPs2|*9QsVbc=7&;^LvM%fI1q=Cg7?tIItf0 zNG1H{1Abd=OL=PyH;rpb=Y!5fS=!~x!?^^|0mb(g1Rq~XDWH8><}mC$uzkVfJ2iiB zaHBrB7S{mMv#B@w?8Y)~ESoEzlqkW2k0h!2_MCSX@Ega5bI+P|vqeb-Crnoip)c~kceN*pyk9|-nq7z}6O8Nm5> z?45thQ21gd{@GHyhN-feMK%0Q$gyJt{W{p1UJ`*9_Ld!EhyTqS|LI>3n~mkol3mL( zbn{fUR~4j38) zliU>u#@oA0lg*=X5j5mgk1HhBX<1w_Sw6$s-|envbqJ zsUghpbQ}mbok95mJ+`q`G6k2TjgwO}^dgM*?YPooHf=O9ic+pQ;Z8Csci1fD>!jyz zFzKyd#xL^m>!?Ue!v(8LRf{$6^dvsTH<%>d644rKr6rn;!`r?h&rJoVhY%F?EV7`l z@I3{Ok>N>zB)M70AKt^HVP(Y`hQ%m{g(MRuAdDc_Jv~_8HUy(c&bj{CZpD9FQ2kr} z&)M)}=KxYgmCTd<&6A@T3rr@O%~8|(_mubF^=JO0&FD|`ApY)#^4-cfynH|T)pG4c zzqAm$2|E=AK$^WnH>Oi}jfVEph=-G*oZQK`QFR3C{n2 zhy(V^8}=-YxCO+M&A43E+lf`gjm)CZP*YMYDy+G;?qnEn_^x=lo+}7sjj~?w>EI*J zV6!JKh$#On)4viS2x&@MksB0$pZRO91j5u9E(#SeZ+Ae%U)*U#g_;f1XTjy_8ugr2 ziLT5{>WtnIzNT%mbXME0td2xRn2z;=jO7LD!wlBYxMiScNmwwg!A5jO`KU|YB$5++ zGfar}y_cN^(P<;JvjnxRBAD}TGGy`61(;c09`kPCuo3heg>6*KY62U(I`s0SgoAVV zUNnf8>r7(M=0Fh^okrW`Yo>TiIn)qxeasg{*qpm57|Jz}J1xM?alM!Id|@W@hhxiB z^2$f3{R{d5$*ZxwcUfPRR(E3)ci@$9;B{jTo8^(-s-om{h%&uG=FiS+*<=}WozD#0 z<{6g6!^cDPBK`>6?|S>k#@BuO89khhU|hII@^n#g`d&*fKdCS86~a zX}RWZ<`TEzz5fZ=k59@Oxs%6KS;qp6d=pTr^e&y$mGd&#c*4;UMQ{X#daPX23#1S| z@KnX>IT6_&H37On=YvxrB5$4VTOf&&3Q)bVk?`16jDA>B&#Y*2#&D{q^tO1YrE8Qe zn|`lOhpYcynO8Y%gikAquv@ajMk!9x^)`udVWW-dVktcny_r>Q8m{7|Ci__86Pw^# zJby<+*3<+~4%GcChK6`1i;k5#U}jH;-W|hO;#fX`Nlhm3EEWp`R}B7b{ku6VQ{nQd zY+Xp=YqM6AMExQ*Pd=*FtEkM4rf$GOZD>P{!n0wb1TnIn7)b_EBVlxH1-9bQ{Rw+Q zc|7w;40I)@rOZX(luQX52Ha~Q%Sh|fU4x64#T?%^vWAC_k31z>G?E2m;$M|~_T z8A^4CQcHpWj>J$ddoEgL?4+CX=WX4T+pUn7%&+L3&O@8$-HT8|Z))t`lLU#4-#*Xk zNt(BZJKZ5PsHKGC%RQ^+NQBO#T^9_BzcC;GA}Sl!BzFlbW3>zBSz5GDC+9)YvK2mZ zm)b^$9wezazp0d)`Dj!XB{`~1*2g7Wp?iwbbCb{IHa@_PPxiUXUROqnZyPa`^14tY!G)TJKW}D zI9=po^Pir-l7D*i4E7zDo^zTi`#dd3J?j@V(OCxf+$(7A218aq&-C)!1ctkB%FYpR z3%>>VQv|-Q_r$6 z`JvMfkBe3`v{CPUPH~gV^W)k|@xUDiT)R%!S~(MyZP3vfOftW;j;J7=Pl21;n^!7^ zTVw0HbYL&=3s+yRduAA+XW5sF!-^Fg$}!is>gVs^tv?d)aa5uQZDfdFuMot1&D2|x z4-hHf?aR5nGaqu!%(VvFm1N-Y9_Z%yL;Lka$W6ENa{9u@sTEk*z zy`zekg(qkww&#w<*qD>I2Bxo$Ock z{Rh(&m)XaD+76-wIPdZ-X5{#zPf}G+ft3vNt)0_3eoPi^BjMLa(nosr$! zdcTEJv={OJ2g1N4#2%o19FIftrb`gFf4e)1v=YFlsRg&md0ewZ%KC)bwW&_OTnYSGVs?3V(&x{;$J`={CCZR--1Upr+6x!PKb`ditEqX z{2qa^O(eviNaUgO-?0G0GYO`vxYqX_OQMBX&gNY-waoqvz(tj3*E8;D0>JV+h{KhI zJn8}p7ns^p zOzJJamE}c;W}|3v9Au&8CN;6?&Z=s7kYJtGwBpXY;HQ?$tf%S~rD~dozJ;Sha-XZ_ zo~FQwxxUW5*r%E0DKUzrUeeW4@Xv`^M3-}H8>a&SzprIf2W&k1X$wyajeqE*d_V0=w_Ds8`<#~x*9 zual?sN(0QFnwys^hH+^lhV#!{V?9?)7+%!PTN4>Fw!B9ai-yNE1tU)DC+D6V zs=*6v=c0Fu#qGUd$c)FM z3?_J3hUlo156u-XH(ZRsE?C8h58=XJS|s|=YaT^+YV(>C8k1V}mZ5FLbH16{Amq5v zWCO@SBSz&`nK?)+Ku@CSH*E%(TGmk!4S`H(VxhfLa&&)yMy zQhX}>=Op%pL#)W_^jhZmLmGj`&})+S%0|rr`QCWyM#fJ-d3?_6Pe8)`zkG#cX#u0A z^M?AWLGRJOgk2C&iFPT9vdq9gzd9K&A52{=u`Z1M?k$LS?e z`8{zifl%XC4VmPIQS7M2qP0Fg zNvT=Od4L0H@k_=a)Oi5BLg4gI*vzU6ICC8LTXSagIllp7#b@b*$oU+a__?!ur3iG? zSS(YcqswUXqq@OlY!%LU<9tzV#exGNqF5(_tzTwwJl`1>x2`aFGuKy@sVE5xdkhb= z5);i)w;TxP(oDfJ{2o1iU4S@pa>mc5Auu%dNn;zvr=m$Hy=A0f2>65d_wrTYTL|mpO1FZJvYz36o zh59CJA@B6+vABMO21lb&mdQjCJt21vs64JOqFmryVeKvAYKab^P6G&>SOa<5R?t}! z5*HeH9;DgE3)U5`9Mb)oej$S$Os(? zCYeXz0*Lb)2x2Ol5F?nm#5u$UX+G^dE>79=&NHqa8868-@QVY}k#;1V@k=M!bdtSi zV15r@y*{Lj03%hSn`Jgx*x6!C!}!7cFdC#bSmh#wwGBxGpnffK6#l5l|Jr>{_{&X0 zz;PmL`PmY@Fww&xPApmxC4~jF-*>N}T48;$9(&oeBPt9 zhjxQPF;ufmFG*XYwbwGRpl>+DVI@%(Pr2^FyrG)zk=2G+83f1sw_t|NoSq(wZs$>% zGh()Lca;~d(>W~?dODzy$d7h6=riWe;xea1hS+bT&|@abf`!XET&%y8Wxr+me?J+q zMfiZw$DgUO5TgOS?if z4~=DA8pBDc5FuO6nh?I~B(nUbHq_~eoR(C zt^oM}6Aeuz6>p8$VqVq3DD~&jni_xHPw)jPZ41VSc7Y@dzLYMT~p!&f}VTAh?1Ere~iZL5(Y`fk)D7hB8oG1*xm_ey!`GrXfL-W zr_Be#4HrT{9HG+Ysl&)oNvuuqfCP*S5){s0vQbF$2M->7bct*tECtGAi-_;6Vcbet`gR51#Vd0{~}M0N6JG0KOCez_a_+s4M_Bz!`mz zmH=K}e==M0>shO#2@s8f+ zr5tS*JVKyI!M8Eb6BDfgDCEP5WLR9yfy#tjmh#Iubc7Zd1d3{E7zD)Mc)cwH`x8T6 zzLAU{&gYW0X!=J_h|?r0Ies=czFl@bZaIMs{r|};nChFPh{O{kdi&q{UR}V)Y#aj< zGxqhIVF>h`&~ZgH*|hU{j}7cy049vWu~Wk&}XPZ?*O zx~3#|i%Upw*tx*2L1#)W<3h3KmzTWTsLg@m@dGb=&iqt+Q?41R;?g!^wja%iOG%mi zEfL->6EvW>bgj4c_2@l+ zH802bb|b!DkmUQ~rNB~+16Q+(-(NWV^6D$S5+Q<^n5cN~0Rd=(2!&0tlRS}wEH~Wt zZlLFCy@e%eu@=6a)O&8lh3~-=O3^-}1w$jxvV&n2MFijP_W-bVQ19?a_~dIJ5*kW- zbcnJR0uvCmV$%l2!_|KiO*TRGuKfEXCjaB+ZGBq?Zk@gmfR?^5#LH6pkqGk9w1O2d z1mY^2HU{ia{fuytF)>Y=EFmxtbhmr;PgG$yvqTe)CQxNXQJ%w!_P#G>ORKA!e~#mi zAoZJ2jXxN1;mA=$R9tAQBbde^Pt>@`<7-BQdf6SW(0+?=%=a{)&4akUH31@8w=-m< z;)iONArOHv^u=Y~E{V)1R5iXl`^6CTPOAzf7;4rLPO1Yc!=)>$$BrlYCmK$(afb% zn$x-P+gwwx=GT#8?2{$h?}l}mgx#B3P3?XqjtB@14UTx{>>qve{tzGE4|Hwi47(1J z?2f9`5#zEdO)v<}c?|1>#@Fbk-K~}}4y6hFNH$1yAemg>c7JX@+rZlyK%F$8wFgsQ zv*ERi0y{toly#^UTXh5T)tHA-Yhcojt6E%d8&xCo#tl`qTI_>`uT$FC3qkct_DUp7 zIhkJ?V1;a*5(=%2%gF6#YF;$u3(aKMAqIToC|pGYq#<)}+BwX-`iR$8e~8@TTL4!6 zNl^Fvz$%pa2fK&KuB&WuR$cgw!PDP%yb5R;X1?{UR=_E4^^n!klhzw9^lOe=>w@>75ZXz;NZd7sXIf|y%$H|!BY0AnKfN?|6)HD zK#XytN#(a~AN?I6qir6j{l@iWip=NO10V|=HM9=zZFF=?CBX)eZzm-rB<2}C&Ru)0 zGbrYwlz|IbOXmE4!XfpJOV-g{r3}zQL?a!miO%r{9&l zqXGnA$rJvv`Tklv+y6J}EFuNCar9qYf8tS+O)97=x!GX;^2pFJ+Jf9(G8U&teE^+y zFD)UFFkQR4d>xv%PpLpoNEuTLnebOUtOThD|&Kh-3C! zjyptAL~M>s$(De01Yc&F;88V*-yeV(DYey%;=M+Sy`B|YW72W#w)8lh>Fp+~GLD&f5O23{mcg}$w z3tpT)UT)XRzr(H$L>O{Cb4NTE*^QRJc2x4V&5s65&-G0so@J=q*YOp|er8?Y@4rCD z+)~JE++g`>b#=rpgg6i_%da)zXhZq0jNDAvKqUvf@p@^6ArBF6o894bk{`&#vrC_p zPvd9m;3IlzRMNd8Nf5cSo|+%g_@4#3#`GXnDTgfR2EWhzd^K_nYzd`#p8<2+9kV)_ zpE;+I4TxKsuMN{?)6zQGuyYQk=b84r<*g#1qS6tIgPsa5#M1|UME#BMzZ=T)T% zv;McH^DbjEqB15ECcuIRlvyy*=?`K*-OMVoHmU~M29isa1DZ;qJ|w4>pM1>yH#0=) z?@eO%C(!VJ4q03{k1Q&|kjvGJW)x4xJ}RXzI_X_VhWBPCvoXa6V*i05hibfTyd8HI zjFrI2vb-+4Q9%*WlU;u@+qc@4g(C-Htz{6ETP#lNgz|ZY*v2jOJqO_a$xOIZ-d-nY zIbnMa8!9<9-fi_L_HlviiOGj~a5LaEon;@UCs!Q9@3;00@7{uCUgmCfv&Tus{;$+O z%euOI*7%zAkiHSVGWVwFUCQUGMgR2ORVO^Z!{km+oiXRVbxLsLACg}%F;EfTRofrL zXQ9r{Cv(%>UuQNQ>=HINrQszmqloIAbgGKh!A!)>T6wQIR z2i=#D8{wpZ{kRo#Vd?DwIoU%qw*Id8Y|*tC`geEaMrP8z6LE2$M1@nEzwOl7V>-Vt zN`!124VRw0sD;pJ8XsF_*IQb~cB=li31hMW6xlG=aCYML<2)n_ICpnrGYK+Ns^(wW zT}LuENnx3CZK^%Y->7`L`s^>N;I;XbQ{PKNUXeJBIu?BXmpe-DsEaM7^ZVLGru>*M z4RM0^M3;4ff&t&yW$+R)sgUoi@fsHGU!8@JS>|zfD-Z6`WrELmD-Sr@oq^BAWu7P^ z1jAGAR_J*hW?*Fx85v+=eKh+(8_F!}h8F^#V~JZ-=R_zSHb>C@ z7KoBuRo{h!+qF1#FxPmA4)<(^X(w4Qklr|CZmQT_PE~tuq z+`3yCpquwtoCvwO=~*6KS46-B!)KpNZGDk{{lR3cv|b-IQ*8In7+CUOsS?hGZYjF_ z?!9E{?SJydR;ZdncO13gO{PiR{y!vFUzD~=ah=R_s7w9mO9RfHk$@!oq9(+fPhE9U z*bQx>snt(t)#<59!Z1g}-frH;SXYuP1(x{P_dgk1+SkrS??2xBo$hs1lpu%{FArsx zCaGSD?H{9oxX#it4*D67TaNKQ)DPEU6G{32EWLtB$ZIKjggVmuFp(K=E85)0f_*xmLqDHEe#@aA=E+a*s7}=)W(8I`R-4jkA+B^-gkJ+e-SeUsaXdRRTACaoFm>kEQmm|SNx8t*%c4w@MUYtq|{kg|;@pg;` zN80S17g!MZRR|LhzZ*9aPsM`>J3oaRGz-6_fsC!!nRX z*9@0c(mz(g96(1LNQ_WoX5;E~B+n{Jq{4%^P+lm3I2Qadcj1)jW4T_QrMJAQu`aNI zkgUbfCKhI1V26OKZ2I605K0APN$pk~fon^G<&|;lR7WGz+^QhNEp`A2tEKE->mr@4 z|Husi^u=^UY|+gHKYED6Gc?j2tXR#4cu#s-tHDjrwtCIfu4}yeFW6f-PB+}&8?w#tVr8=T;pnjUfUm!44g;Qm>q7mXH ztiSZs`i1RYeYe8+(^3*iJ8@cX{O7NCT4}x6o&soNbQg6oOABNsPi`YoePbS;@gv4> zKFy6N)3vr?exCLDM+ewJ-@ZL&vkVt~lbJgdrGKe(Oabg8w+vbJQk=n{N=Se?m$nni zKsc?J8)eP2ws)E3UstUV=##&&iKOzO%Ks&FEl}4@R?x^)??q}nRa}RV>L8Wb2M#j4 zu^vZUP(d^`3nIGc=hMwUW)>Z_^z_QUm}{UTeYxYidL+8EwvJ4Pdb;Info`M`B?pBo zqZ8!b)u%^4%cLQ!?PzxJKw-jt_^T`o>RDM$Uj2*vx*v^?Cn$2#2-A*q<2QT+i>pfB zWSIy$^a{4Z_M?9z%&B@(y#Ff9e@(YckR`7fy>hZr`s}+peAb$<KLs!uH`hZqHZh8(1~{|=>j<)%G)qm14*B8L@zJR(#T1cG#1R;hwD%{wzGd{92?+RN% zdoggCMbPp4yW@QI7U=)>oTv(`O+W8Gwj&`x>dN07Vof?fd=}Wb$cK@p@l}4^;SRYv z;g3hz1GaaD!NV@;K*Q#>Gg)mL@}(#1Pl#@G>6=Pv5u(mIl+PhdPwWy9nahS3t|cBJ zl=~J4?AQ#%Juj87ne|)aLyLlzH|EV8|9YconCHp+PLo`hi8?T zQYMXqxmGu7ZG^bPE*~#70I0p2XQ!oBC_7N4M((YUf4UXxU<7=T;GfRK-~G2RCYrzm zSshF497bF#9JwH8yGP^l)F9Uj%+uM`Syy3#Uit;ez1inT2dCA+guP$iRs@y?uRo7@ z5Hv48w%{%_2j+?s`#Etl7Sa(@*Iu13?Vs9T(g*=xVOY_$`OI35xWtIg=O#VN{C(6b z(-B%YwsJ=GZAab7`rnf8Spso;t*#s+%ZNhB5CqVRe|m6zld`U?1N#*Y(^!{9mnrh`0A?&WOc07`+1eL|+>fhypXqXC5_1(_k<;5&G3sPpP=7!F1|tjg zogdXJfJ%EmX{Vpm`;PPZul%=&&Q-Ipg^O3rjy--*}ynR~IWK`Ot%KWC0|%kWTZOfz)uG?DgRWjlIC@jO`-*S=V08$U1aZObpe0M*APvg;(3iA2 zp$vgLX`${B$lh1q(Rn0^4f;&!BLTlq4P5G#bzqM6>yfPS zC*^<)XgApQy!u&Ed>?Ok+j=%3e3Y?D*CRx0wR72ZKHb2PEhHiHu5xvVCK}WBX)oQc zs*_E^Mfp9xB^wR%_>!A|+VB>Vg|Sv`;2?82$Ad{X@98U2b;CP&=oF07vg^|d?!eLc z-F2xO^mTxL8rZ6>@6F4xMaJI=Yzw#!;Ue&+uI5zXn=!Eug5Fx~sw2x{vZ-h8ukAUr zkDeCs1; z{Yu-x5?$bJ;voM7=9|}S3T6WzytcV@5A#0`VWIz1WolbM{)|_kJ77fdO7C(}47R^U*#E292oU@4^8aoA-^*WhD){=}=2u4Xf9d^yoBzLh|38Dj()j;d@BgRy zfA2lP1f{D5&`zE9QcOKGP$LIef2^|<#t_1YDrph^lU1XD@h5R z$`?shu+c=Vshkps0|)@>91N_teQ~lV1k{`f#)*${qNo)dUkif73Mtk?==MH+FNC7Q zRz(3j$ShD&6;)MJ0|3!LN+^1Xf;eRa0u(Ws1ep0RV(nirp|TNza(|SrY88&DQYFJY zvQ}{*0LAVqo<3P)1HhM*^G4MVN5N}6KG?KBX_4d%8>af=@b5*sc9k8QZMyew3V9)9 zj6P*?Ien}y-Y(hJEDbsH@S=W3925rCGI}4P_BpjBGlrS#QKi0pL%ibW{Vk`LY;onG z7O|S638kkgCYpjRnRsvf5C@^i(YpNMu=ZXD#x_dwRQt$Z8pEBZXkWKcBRO{IUU%-oJsrdq!Ee6_5JjVN z$soG!dne~-REtC!A@8*40GmHdQBM$a${jS3k2(MZk|RJB;}RhorJUcj#F+emW$VM% z!dXnStN$r}N1FVTAtdfW0ZS4wn^rVV0>K|a6oVW|n@SNjlNJdE5+lz3MKU6XUE%mM4+$qc8>*1-&!D#VF>l{>gId!l)1uD4GL4+SRSojdwO0ja zorw9Hx8J&I;eJrd_Oa<`Vss_+9vokBheG;TQAFhA=)p6ppFeXpSEj>@awv;H- zIn*(@hc7v@giwdG5)QNe9AYJqXC?d|LrsMO2Mt4U$1o61NrjIjiUx~`0EdBckBI<- zfdY5gO0afAuil0?v%}ZW`31MRA;`#4^iS3gM;U}M555J$L@2WemA#9C7QJqE{7BZ+ zA=aNCSqVR~f`1c!$LLn&dr%D&%Q}@W8vW)+){&`y;~!306jvla>{>&2=bV}~=OCG% zBVskegq`LO)P}=->rd&b?P0BTALM)8zX&xiC$eC=l2g`+*CjqQl=1H{5K)N2;Wb4b z+9AgOp69cSuAE@NCF|FZV(IirL2d2kVeP_m{lb0y=ArRX3Ffgdw?eAas_>K495J{U z6?1!ic#G~XA!Le8M%JatAC{~wS_@q=lqal4L=~dc9%g^V8)c4@K;Qx}!MDhv+LaP* z!L(Tho?ZrgmJ%zMlQKo)LV}k@YMj1)kbz#-l&TU9C!svT`61RTXbhP9L|fRDYRLU! zl8Y@YFmnCQQPhnV(Tx=U)jaqEvVQ@r5U)D9BC<@g9=d=YcQYy8mt4o{@WKMI-o!8Q zTBo=PVOMwED#&G&X8aJ)SM)vv=lfS zfm^?7ShsIlLw7R{w&|z9Pd(T^Pl9V0N`F^_ofL6}yLd{Hs_>r%5{GRrY{=54bFJxz zEnIL0n#auphm(+-hA~_HQ%&XNMFXcTLcq7SCQ`;IbaE33X*5Hg8TFb5lXL1en>?q3 zq+x@qjuIo6W47(}S8LVt)Pt>XKgHqkho)(xfZ=rHqVA-LvG#AK9E64(J5;l==vrtU zNA?}l#}edoyd@wGR@V hEp_O;c1SsuEh@hhn@MP0q6eh(y&9-##j_0F7qP#0KF? zB|-BnotccGfD!crCl0=|`|KJP)~#&CX{UH?sj&n9_(TXaHYm_BkWx%<;e|03qy8vs zk+kPf9ZZB|EST(+QxmL}?{=*B1yP%fjQ*h}h&dSZj}>VTxpsM{Yh(7&;OMKy1=kbq zP}MF{NiG%YG!60_*8jPm_k~DVSyFV?CGmqBle^*m2u)Pz4N+eBC_kQRsKT)v952@G zwz>`+yZ%{y8=ZBJ<-t}Ot|1aP);S1@n}}6OoTl*5t;GUajG)RwgP2gdLK}VMnV3?Hz{{(SjhC2b5?m{4 zO^uI2OGg*7oEnk0bKmDdS&1S(+%x9pnmVT{G^5nrK=B`If|H;vAS|5eH}{Zv$x;ulu zi47YY&Ja$Cge(Wnv(hgcG+AT;{`Z+$8lJQgHqn|hi+^*Bw#1Mzul`{H|+|=%rT~6E()igv5l3UwLa%Ey85aDs+5{&2%T$zCMVoslMn6NVoihGhm8ypQpt~Idt1+D4LEs zKaXXL_+DFAAgOk+&Gu{ae+p$3oT=i8!&eUOW~UTc&Ba)_dUVI!{^XhU1;l8cdRuIg zxF~9t0dMBtOk{L~7%e?|8mP2K%OuBl8;QHm_Ze2m>=>}6IqqQwIQetzZ>Iis?wt@) zkZM=bbXHggKnY13Ha%hg5_%ufVIU!SCj%z_0&)quf)xz>?uq{p>UU9vI&&C_%iFAG zE9#FldNE`&L9pEwqB2UH)>;hFW-i53bd~frT1<+e$9Lt6#I$s#r))9Q{eGb5uoCin ziv1e4u=lP}>G_}Tuya}@hph{f82AIwF}F<;*)-mNH3*2=yLtyD)Lm)fZ0DbS>dB{7 zh-7%ss5G>{qh3VP-E9Spu7E-5ti|xVfrcYHSI@AJ?LU1&2y%^*6%69p*qS`5TZ7Tw zHF{=xa8HeQv}ZS{#Nu`!6{kakYY9Ch;jV zaJggiw8>6O+=TMPE}Rk{Y2M3yV4yN7D=bv1V&j<^rA7vkO%q0xY`Srchc~d# z@2Im=r8I&yfg+SV^Y<5tp|QFhkKCo{yg4mC!Ha5!nMQhE_VsxK*39N&_8ocw)KX$c zh58%W9NL&d?mpuNssDCC2=n#}6Ob~9VuMS%VncMLNs&!MWwS#k;xI8_*|2D5tWdtA z!m2@kkj`KfFI>SO%%?BJN8Ac$FxsIQ8!Oj7>Ki@LWm`T`E3QcuOJpQ?m0BD_uL(dW zfLON9l501!JTnkBo+eU?DmPGFrPa_ z#KgbpNA#HdUG`;0%&KgA&Y-ksbV?MKCHu}ugF4(X2A_7JDJ z6qkNB*;UkO9O$ngXDM?O3LPz3NIftqMHhS3yOoLABE`$Zgv<8&an#t@4lB})@9{tO zjUHI#+<6z)G^jI^9&c}0sh@uy8F7bcXt-ldo##zB1{1p>yUX=Hr%fWmc1%07=Bw$$ zc-I51?WdIA*lmO@<{k+Z7KZ0U{q%c1CKXqmH8aZcEOI$KvTc+N>8SOXMi9`XeTIJT z=V|9s;_rRT5IFSzs)YlRp@9+dVT?DwmG8k>Np`1oZDGTzEGMlYB%%D%YI~mTv%MYW z&WNpjXt0=`=<`|ed4LtLZ&|~ECrRaciXyTVU~+hAdwGI`6E|wRU{Lo8X*zkP0@{r# z*2CVl4((SiG&(~=LG%~&otGM&1p#vII=i`<0|TIE2acEh+q^|ZhsE{;){jZ^NvNLv zpTp}?sq~yysEN_|W^?SsgE_AdlHRMTsyUFQLGagVK(v&KY~)%U04WXg081ia30KE^ z-GQ~L(Uo@afCccmZRl;9j(ic@u1o6DJ5z0i;D9;9kQTe68gvtDURbE-K3g}F?Rt(C zMg1?rz0s>lWDaoT{TFuvnl%<*w^|De5!+^tT%`0YtF}$2>@z%%SLW*Nae%d&SszJz zd&xGdoANHHj$Owt1J;er=mX7;V3{XecZo|v#Gs&V#sm~&_8;rzyIITAaDch3a=4d? zd0#~*_pbp_G{oQ}56;TQw70!*$ateeJa>0Nb`6VJwCn)nN=GcwxQ?xqfVp>dNtf&^ z3w7$Z@~kYr^M%L9p*!XqH{BF|4I)@wZ9c5B=5xn3E7zy{M4p#NZvdFg8*XoVzG4f@+R9nFi_8=7e`IHC8ut>h&PnVFUW3cRYfK5<^OcWq6d7N zXL+wIDvG&8iia&3TqtI~L|BN=+h1;|2|KA1U_#Qt(Qd%^DJ(nC|51#ClN%VL`CV5> zk0#wZH!{($Zt*+KP@eTJ45ZN}+it+#b!S0#U+j^GK(P>bD+evl_j0&mG#qn<+em6^ zut(DR5hmX(ymY_rn5yX?C3i$WY z1SEgM^WjRg2!MI9x)jfO_o^2Al;Pv;(dqT#fhNZMwN4Ku`GAd3-Oo*nL@G?_(j0PA zHr4?FG-)B~KNrMY(|y}r+jB%kiR@~UUuX?|d?*+s;NHMM?v%f}Kk0SvTPZtgu}jQ< z7bO2Gri^VhSB@nwUxNVi2y(gZ+p|TAcfCI^Yqhlr%MH8a>U9-B&H%QE`}nYhN4)pU zJ&;fJk^c0FY3bNyYa7StaLzjT>i4+>=WKs20t*4ff0{&#mOuepa%&qmvmqA~ShLYM ze-m+4r`cry%Ex?@l1NQJ*x4O2592?2J&Coe(VhJiI{_W(;qYukW z$pcPF2`YvpqNL<@3aepL0<)Z&hOLO&w1-;@GY|1y-zbZevNG>EI}cGBV@SErlU#N6 zl=Onpn|H@RJY7g)2t>x^tF`rC5EY`(g}o4&m{8e#-={LoS(b_0opsk4Zu}+jSc)nv zbUSI;J)8J|Zg91q;gs=7Q!`lbng>Ig%v;E1*}1K6Q<_W=v#>C`wUz#Su3>j%?8(sg za$J$pm<_^&YTHX3GpqN&dG6-@q^@h%(F#<{K9P_ef^d}CWNX`8A?J!8G&vu+o8AOZ z=5=Z`^z6)$=epuf!`ytDl(Lznkdw!ui<34AzhKMcsGF>R;TY zijx+U?01*Y$)h`*X8HyPLCXsQ?I1w}OI;Onuq+?)e8B}oiWc@k#%1zgIZs{Ex|Za* zU5mHtfaT69FE5@2c6?u&@Gf=)$G5o~y7tE7%X>-T*AqTH2ae~wg8=GfdQq08yl90B zylvH4S=x2-Yj#_kL3n&`ASL=Q45iKIGC+G2|43**?)9|B$;OIjnFuR>s6eez_f6ws z8ml4ylJ5(D<3qFi1);#z)au!^#>F`4$j}VvM&aH!f>?O^UOHQDp%59VhpX8W`)-_& zoSK@7Mf7_-{pO$`-LRlWz&jX41-xRe2shLbk7xgZQT!Ny=AAn!ejxpwRtvCIz1D) z`fJ${t?jUQOOePd&73)&Zg9Ul)bnwr%~}VX%R7>oB$NZYVk2s~tT%G2BXB#s(V8m!qO}Ajg_!M_ z>9c+4{KaWRzU%A{x1humnC~!nK%d$cWEa>nLyxlQL?!5mnG-f zw;+GvIV>-YIBmX~iH}|DvZ`Gx?^5V3){@SuuExTRAhEWVpQ}IPe!Sh(xZN+h`>gje z+h)=5H^b}P*4(@R4$$?vTP|O0^3n8c;=}Tm+`c~`g9ny8PqsnC0E5%_ZZPK_XBAnUe`C&otA9ElP>^b=_h+oLv6Z zi%bxgXwRnPqI}uK5zZ+8a!t^LAWUdBUE@8Tc0n=fJ&F!l zGBEURf|HgeU+ZeQ(ZfXKU~ai2`@GWoh5enE*P=}me`(vZJqL$Xcf8^XoXEj9-lt1p zSNBrA#*JBhUye!_BH&|&4}iwIg&heRCGJc6&ama_2><9>2pMks$<0RNfkJz{BJp+D4Q3ShD4B)yT&aI6di4+h zx2x$8N=RQ;NP6(Z#6ZH}kVTDj?L(RGXA(4#zkSAn$%gzk_3H^Tr}i6R$s7AcWT6CD zT+aKYDVzti#9pVe_4oTZm`Jc^C%*b2^HtFYlRjo@E!MFl<3;KGhwh9Cj8w94nvAu5 zH&Io}O!UmsE^y@Xa>`E7x%pG82|tLVK+NZa9)sGimCDU5*R>!<>m@}BqWt>h&G^~F z+@@L2d?f#IJu8;i&<{sKn}+Q+Ho*}7qiXahzWpVc(csmSZjhUW;pu4-zSo`Iv|rzh z)`w)4*k5-de`tD~i6Uu2bpat(foB~HWCd*h?2wT^*dJElb#8u*h9Mt63RL}0%nPBC zR%l0FI{ix-}kmsQI;Pi5`jtb*+{W~{l_uJ&94msq^ng++p(s6U60Hz2cYZ8b| zdzoe>+gn>!Ag4E1f}Luf;G>zfh;@zj`dK{$upYKhHslSK1S&nQ9EQ@D+ho;NJP!W# zVeEi;U_CE2eTJkqC0Qd71RwcdcAYK=FkYH19=xr0JK~4nEyV6lO<75hXKvT0a9Nk> zv0QHN;F5E5w@kJOUks7N8uPt8rZ&QmjWgG;nKJ6PBCPtp&~e#3qU!rT37L-k8br4y zWA!3}BJ;kKQ?+x%l8X8@cH}5e^L|9=p|S4?%+G%ocRgB;i#7e;HA=sWbtie3=A^a7 z8-d$0iUcPTt2TacXjNWuL*=REV8tempEfKv!*o6|Lp-3N#*~;!jsOa2fitZEn}ebD zgB$u8KMl?*Rh7wcV+fF+@w`hK!lkAj)%%M#|LxR_xkce*THO!XUn8bo*Yl}Bb$ZJC z(dN9~U1WcZ_kSM_%I0VG7_R-O4XzJ2v5qY)ZA!Z;O^`jkMp)Xs-rRxVMLK@KWj4%* z)b0-W6&5<1+muH9h+uO+kJ4=Q!W7FQFKxXy*L56jV>9f$CeWH8p$mi@6%M&9%AZ_u z1_k976ca~-m%XA4$Wwp!#F*w><8qccmcSe#Csig-8-=|8)sWjFKgpdCww zSkK6X=H0jB$LHmPBZ&w<<=|tVo5j2s&Cgv2Oy-lNoL4#k%_#R!K=#>#!&OH87 z)iG{+it1Uk6-E_F4I!|eDhLBBVV%1dAkW#p?GBd`4I&B_vs`9#gNbLaHWwFBz&|S*aJx*MUzgdM0K=?ETS+&p7+nPPEWf5>52p29;kzwsx5qP` z#wSnt;XD~=ewMO=!6juu5KZy#e4Vf0Xv2xM$o_sA=m6;lgr(Vz3@}(}eh0GbQG;F* zGlOVBv`#es!=N;mg?Glx&m}r_l;Q;2ZpRHx@hicLN5nIb&_c1(`l&vA93oHQ%JlhP(6a0jgv6y>Z@G1#Vy@MB>!@xq zU?54vM2c=n5ojV%Lep3%v{E^;D3xF0ZkMWEpOa`BSq+?$Xw}rlS5^ow7KESA6sqg$ zHb7SLt*|g=8zYHH2cO`|u!fJ-xF;)x|Az6fYIObUXCVbM$E}yPr&<*7VEpF-#|HG5 z_hezccVQpTf*Bu;i0b739d!%X|o-LQQ-2t~)ZeFcrW$s!70R$8{ z@kHdgh?Db69GTBE_Q1`O}yXulyyX570uMi6XWvl% zapkts3<8-I6ieIVCvD~poX@zg`6DOVr&BJTT4QRIIov)5OkfVp^G^Jo_NhL zQCh>p*}$OHZ>yZ$^%OW_V~Fo9gDLDa9qa~E=-IBYaH#u*`sR#I#`nnWrE)_YT$X26 zrop^Q2d}LcBCg_n7Za8J^s>)Ux^s{}IJa=i*7)^L>#kk7PVm zGGZm-Q8+QNl?j)qw0Zi1$>gv+#@tTfc7Wp1n# zcSZ!?pTG2yHu0Jk(_Bp$I1bcCU10(3R+Z&S!I+M!Im5f^>}~LWzxT1F4B=i@Qe&84 z#`hCf!6nS*Rz4J=TYpd1f7VFmB^d{mIjiq;RqO*iiIb7s2^|8|z@YSvot`5lo}9K$ zs>f2k>H@)ni>IwwLgM$%G9rb62iy>dkU^d@V0Dshdw9IK zF{oP(B(;4wPL1e7BMKU1=EqhPIIByk9-r?yx#EvTZ|9vwqiFuiw7t3iC8^dC=`U;32hqxIW@mLzuecjaxa4bC$;aGhpvwU1KBBX zJielB{u%e%IJ$+EUCU#-FxPD>_P{v<4+YL{kjX4t@YjGRm=9kSm2rBNQMW6oPV~wk zUH4ZERMxo439LSkF3Yuu*pkO}uutLP15^xUvr|@oLArQ(|1*O5Ugt~7LbJQ#8dw38 zE<c0CJNl?(@n-k(!01 z+h5x|V%95mep&IpAv-&&BQu;Tkd0+Q26#3jg{5~2z#`822)}-hN%HWw?7rKr_}OyM z9z5%T!bUgCW;w-H)F^ONpkKX`*jF`mdsxL?{&n)C{_MztXP z%Re;nlBZ@H6|_iyl`wph5Fu zOq|T9tOc!qZDvLiXBgs}+7QOU z+wEjqkVw0}QlQw(br27OsJpq)i;B3{?hh12wdQGw?b^@gtm~dAkD#^CvRZu@TA%N| zn{PLsV)@+qDBgi371cWVu`{39&#nU3izoPz#Jr?jIySde=>eY<8Yus{Oba~>bw8ZE zpcfWyG+$hI9M1Pvd-Bb~#Q20ip#Q1Y2)6n224M zB;O)sXcNVL5XWZX+PhCGX=r!OhBpZ~bxO zo3#t~a+_r&UEe3VWuccPN85I~{Kr3wZB4q?|5dhDJV$TtgPcYMZTCuHD?vJDbbV-C z0rpu?7~UNre8{fl4X%g+AHaLw=XeHwdNWzSH3+Pz8FVx=kMeFO2zPu59|FIh0Fir+IO;LQ5DmaUxHb0prK;Bb^0XR12PPX* z_pQwoL!ks4R4(I>_bSmkHD4@%4MzsvaY3GzX|tU1-~6)6+YVAHanK@;j)KqU$#3kR zuA(SFldZpA2yuP^Ev~U1uc+6RC*KB&s7+8XhTVDE*ceVg5P;XE zxV>JC9$(UhuUjN|{~HCUoi|NR0e@-}0og?d13wvwBLU~XyhS~*E!+Z-c(|95K#ckOpPa~DI|WAWnK z1$)@_(k8uL(9O`ROi6-3nNG=FmpSTw0}3Ki-$&%fZI)=Go=9r0MhyQ<|`06$=mr41g$d6T-YUL;Xok0-vuYl^;&c%W|ao0y1Y zbL3IsH2SOAd_FMx3Mv(Y%n#Z1^^{q950eT_NGxs5#37^}7STtvAyi}!N3I;tXVDtq zhpIFy?jJ2V|N1PKuPdox921A%xNykn#}(ConMY=>9fw+x58T%*Bdt^K{HhY*Z3ur8mSnF+JmBj26E_Q@&W*T>h4 zwrD%3^r;GwS%ZjLR!meBu_y9}Kj_0!!QuH97fH^s?i^G-_*`4K5hdaiw;Iz2bwu1Y zGT_(irUN-Z(c!dfLha0sD)sSKy|{YR2W%J$%jl9enC3#dR-w!3(x&5(05m>KFrQ)p z)&;9zii`k-OFxw2CzUC8bl9NCmVFEq+E{PyYw^#xFc1y>Cl;^!e+RKc9;-eNYz!X> z-@HB_DMe^SQDz|q2S@(zH<%M1jy)wZ78yR}AOB3;Hs<(Q-i7Ab!y#Lc+rJiw5w)rO5E` zivM;J_OkLpZ_S=P0;`1-GsSm^0PEKYj-eE`{Mp%JtqVu$Gf@y{k}ICU9W2}1C%t0b zJMpcG;Z%*yhTY?t<(20LvH;NaTpxU{u5@0-%Q~poduB?A#ugS3;`<|CSEl*mBeB!i z|3lteKV|v7QKJvtA>Aq6h;)~vf)dglN_V$_k`fZqCEeX6B}jLdJcN{VpZ$Ek=Z7=r zKX~VL9L5=`d*3_Owbr`URz&+VW7PZ)1yGa03Njlfytnu#0EYvu=R{Vd+EZwjvkR3Ry|TyKtvXc@)#zXKnX z7w;SGkpQx!L8U`SSE@Q}Xf@dxp|4u=e|06S4+wG5r+cxuI~QnXXm0L5!?h<+7|8$; z2x1H{g4vRtN9?^F;I!z5lyYAf`TZNRiTlzq!A?Z}TJ&@h(BDJxW7UouzA#=0NKGf+ z27|vjeio_YS3@&V%#N08=~B^scpX;ptsUmHHZpn4umSKv*3_&vAA(-5hY+8F2?txJ za&b;0Jj9#v%J#>L3OppZsE9pKDV~C*!Bg3NUYLvfmjZRio&9PdwSS7oLwTbXadP4( zS906#(bI{C8DoTTi$~R0CH+URBZT_t8i9!2vvznbeU!*{wGDaA?+OjIdtrNk2C9!KFe}B?TbcMoc!%W+J20nndK*r z6WlEs+xreoO}}M;>)fD`03n#Hv=F8MT|yFN~^37QI-xd2 zm{nFg8{;)IGjsRPFCxb0yF)x!P_S{31J%vrE!)v(+LhqrMxhdFMS z*&#^pC4Mxmd<-~+v zkIrl*FI=d?@ByE*#X0~+c#z&up7r8jI36|o3?NeHGMoJT>;zk6DUw5fKK2@T7~l<+ zC4N?8{yfZ?hL7(n%cWFUa=Qi>|6G3N%QRty&_GnVKvGp z=6B*{@_GC2&H2zw&)m)EWJA`6gYrguan~b#D`;%3@%Y`uQEZrE-BC>uOGGemBoLAd zJQ8`?j;2pJPRIrH4#wfrjp@{w!yUC>p_dtT;z3|#BT!O((*18|LbQ^y{C<=trtLp> z)zowXMbQSR9U?{fJ&tr>m4R8$r$hQ!p$rbst>{;$+X;<8KrjYN-0`5?YO5P%?bt2X z((cf5*<eE9jo8H-;5QHh`fr<|03eO&SG>eedjqAVNTL|?S4v#Fjn&F3OJ5lH z?G^q!D{#HDw}<0w z{c8_c3|(`BpqR6}>30D@iV2@P=r?+FrZe>V1I@?#eBLL8l0l+VFFd2TnqIOl7cUSRFm zBO8!v%t7f4pIy$Qu37*3%54J9jk)A?K7Q>&nPA52-n%m>vESwC0FqUvhvA`IveD|e z!70i zi2U3>Y|M&j_V(UMom)Q+2%yFDb>)jGd?SH7CR$4Z%JfLl$K5=EY@j`xjdtJPJoN$9 zl#tT~4gftq`}T{4l=Zy43Gbt30hsC#g@_zU9Pk;C8V46*bt>+L`p!d?O?O9g)mt$> zugJ`ZBC%?%s7qV<<$WQ!@-vaH+fJEb^9?mgG1F5AOZ;D|s$K zy$18JZ2Nn#yn&Qw-M((#`!Pk| zJpg9kNe{-b&}QH6{vkAKX3ZB zdIs%9imZ|(yuQ;g(z8KFhBx)?wOcvv)Eg7J*&cdvwbpsjgW-S=(d*=!*RS9Qi~+{= zSb%+$IVOA{phidSnHD?#{pzHD0{jNq=hoP%f&rIy*}+HkKKDM ztttQ{>IEwirc!E;M;2CZf4G<;_eVoBbZ#q-$oE{mdovW{jI-lD;`@q+X!+Uu+xJ;> z<$6I@nawX4Q#d)we=0KVRg%{MX8rzhsb=s&nX{P^aM<&QmsfxVqzJh0^E|A71%Vj( zo)Ufh$e)vIs6z{jqXq{89)%pxg{mGRfPw63abu&qdL!|$Z^(rG1{`3PBZ7RBTKFyJ7i81{>Zfo8NDVlnfP7-8eI*WbhlJ5$>Zf}-Bj2N<;)-9NUE6{r zB{319TVv_a(tCjT--1$`U4QZqSxzpJZB$r z{a{e?2@1+JFv0&`Jd6o$k+nVE<^erAg3hcvSilKXk_CRLuij{_`5gChd;NRe-oXe& zm~aYb^i|(89!M8BE+%atZww`Mk@y zN@Wu*-WPA$AFq!AYY#}KP9RoX9bI~L0-L~yjpe8c``Eqz9VI22B#>nyXJ_TNp~Qu5 z57(yyqb8QX9E1BJF`o%+EwE08xdVA1YlETp9x338z;j>ob4T|f@i}@GOG?fSP1$y3 z?QL1qO#l=1d_Qf*GQsMoF<_~fX+?LQr%X{HTO1JRj>5^8*XeC-bQCTlNP=f0Hr^xh zL@p^;*2S;G=+jPJ0) zu?9K+j#Ua)*NAV3`KV4^c$RO+FH_>Fk_q?GA*MIi0JxjAP?zziiJDF`KV@94wth$} zUP991!Xa|^P$_n9%{cL1snVrHn}cSC8TJ9~CO3g6zjSBEdwR|xdU>tNM6>5YsAZtG zxw&Hw8cQkivi_K+;B5KLiaXQI3KE7^;X6|M_noV*ixaQjI0CH2@@8#E@)P4*Fg=K5&UcI1qKK5MUaoGe$9K%Koi*V5zPYb<8dVaUbdyIMl3JGo|6OY zHv}#_>0uHNA2{LRBo=|CXRb5z6Ey3I3Z_T8=MoRSNOQpx|8Z^C$JLM=vutnGY5U6I zS$7JTRR%#T+RORP(RStnt2|W#xf#=X*1`-w_d{yV&bDrAUb)M6xJa59`G_moN}X*g z2HvX?k!)2f?o&JfZ8crY)}B1xaX}!U9>E7Xg2brc)|f%V)|HRhj>O)~)zN{A)ynbi zo|4r>(5&RF#o;~4t$r2~tysvOF*oyjJN{;8FyAO)^KI#{@#>T~5*T>ZwMclJ^Pe0% zR_eXx_NLtQ_Tr@yMJnnTCTVtmpYNdn+X+?o+LOOH#BQ(;P!%{Z7ECxu#a<(?|C_8? zN4v7*H1(~`U`*!jmtnBEDgDBSChW27E1RkDp?>hVnfcf_d`InRJgn-mTwULk|2&^M z8?`3a`apcpd2KNxmw7Wu?=g}?Z&rTC;~pv@uo;LD16nnI?xat+KaBFt?-P>~zsBdx41oG9;~+*2tw7OEa9>O@ln3_`jDL z{eUA{^>C6GYk$DfUh%v*E-anyYAm#eK30_2q5VQ5e*$Yk%R!J&h< z>Th@WBjxVqMou`Iyn3nM?J6kRrE649N=kA23D}^3E}y04CKtm>FNLe2sML8%?ICv3 zWf|T(VaD(+N?PI620YvYu9|W@9Pnn~j*9!>Fh>MScEyHM-D1Eq0o>MMf`>(bY_l#mbV9rWQaeF&S2Z%gz zIYrfBw*Gb`YTd3twVEI+hlUk*fsqU!t?ftPW1*^DeHFgDjrzshbAP-#Q~sWx4k|-n zQavA!p7`MJ&?DvN`bL)SLP(-h@CS-D;HM`mDr9lO6MmkTjtN=T{#p+K({G~6;&Y2I z^Kgzoc|-NXrH^rzA9n0=mc-LS3R`<%Qv3^V>Ei+F&hO(55|7v42A>)iEQwc6FDGQa z;SI4rAEpJ2hKXr(coF-%FDm&+fk3ok{uclcJ+P(een+CoDUxp^8JWJNpbQ+$d2BuL zd%O{l+nEEj9aHADUNTfAji3JC6Se>Qz@(%w#NfT-Dz}5%!H1)oX5faGd+apnEir7o z10)6w?g^8t?L=0VY{&)pA>2DIY4$GK=FPR}pqB@4d~N=v4!d%en~2LNj$?$?0m z3x~4H)k3`T;vdjEu6#LVq`+=&heoY;t~U7N$KoeL7a;S=i7&yN2f!dP`2!n_oSMeT zhlmpVM1O42s^>pcb3D>svf(ggHcFyBv>L@u$ z%M{e9Zdt9MG8s_WZNFM&YY}Sz^g8v^?OYbVc*Pg|Lhzn|&ctKmd%hhT(1uSLxjh3k zhd;?zfSPi>=IH9*5yH7$;eVn`rf)CsMC?wy$Z8>$p z4ZJ!6TuGiMG~>yANx>h8fiP`fmP%yflX8oJjXAIY%RWAVGTv0nAhwdNamC#}dA$h0 zB)3`Um_%0cxZLM2_#U5c{>xF6Y5Og<-!hZh5I*f5MUqHWX;ETv(b`1mX`6^x(NWYMJL z!qjcL5aSZ20+u=f3l4m=$6=L9$fuxCUGFE)in{k}T)7-@8Zd|wSiOFe@8tH2MP#$A zwxSm>rYL|J2j1Az1uKX3K4NM~nrw>_0z_Dms4_BtZEabL1oL7VdTxkAx;Fc$H}B7^ zHmBcJ{se3ZM6LS6)JNa@Q?|JN3Ra-ZMhIeQ0l*n!HN6Cmf8kic(j$?Ml!g`1!0NBdWOsKZXT8benyak9pu0lXPQ-Br*G53`Yj$J@ClpSAnJg22==$Sbr8G0a zCvaFDR7ymE;dLDx?JQyCX_v9Y;B^;+SAGrcC@qOF=7uB;EjuhpK+_L+05=65C(iII z3RMdAjStXjfNY4b@4k=&)El_$-#QVQjRX$&*LJ5s`Ry{_7ys9&OWCv$HsJL8<$#p> z_Tc7c??}iFlz0pHU;8;4(^JQJC_UHFQUs3C*mXeo8jQ{7IeS~T#d?4j_@12~ppvW& zp!&ujz5~Qr7;tiYR5+029w!YXQOPwT$O+`_5rWb6?pTVZ#0jxV2TQ@+7ASF^`M4=H1Zrpkbl6;EoXa;MVPCEw} zr850*V>q#Hfpq{0XtriNrP2qf{B~TxJg+Tyf3ixh4dxh7%NQ(2Ql<`F{{4$^gl2GU z-Jdxq?We%pHL((pNHBu{=xcggDR%l(`Skuw!uaVSR&jUV7YtjB#3K#@(e}U_tC(W7?URY}fIQG(u+A#=JqD$mgA{mxo{AbD?B9Y3s3vGcTl>SQCF3l0JZ z3)*zg%>u#4>*Bc5;W3FPnGv;58`%{VWQJL@4C&f*Gulx}4VIfuu(rASG#NADgY)Z@ zSTCSi>>r4Lc&=^Agpc`<{|vxy$H*}IQ=Fg^!QBvlun__)yfmoDLgx;o{r%BcS^JHF z6#LG;u1vR{V9oao^n%RN;-2Kxxju)v+kt>f*et!exJZIl^LvLPiaP6h^W*Q|7eM6z zr4n5%uo~ygt>-s4V*@)^%vyj^Oi~gua7ute5Jp(1@FeiK?c1jaI)zgqeB0R(o}ST^ z^UoiMSz#=$0gR~JyV|5`MP3@g53i;oR37#1^+{9yp7kI@fKQ%)s2>~0pwV9L`R=dZ z917l87|EqrU`^c}E`@3Jug}Nc$n~WdW>GuXT>KdHP*qRO z`C*>_KJ5$GU~BakW@(b)0~rRwYHFV8+=zIu2QkEbqQDWqHf$85p%lN}wODrSEsh&I z4o3Q|vo<^5W?^7{efOCs46C`%^x!Msqvpl!VSn_UBlB>uOjQ_Zaw&&%0n8V;9#U_@ z9!}|wOyzfu3|TZk-yjM!|NV_2Z9T?b77@O>R|{Brd=680qxp|>J>>JyU`jNw(C^Nf zr3<@ht7Np;#EuP(alLM-p314JB9LTZWlQigAjKBH-X64Kt-s<_ZgMJK%D(W3Y5G-- znyFGbW|_8o=|xBmxqdKsm2h$Kt92!F&c+}D`*n=yzh!^1j&uq(aHL=ZMrdy9EPfB^ zizRO={(jsSrU*Kim*d@!zsrSN2g5fLVTDM!`_emeRuOmYHLjyKyPO{oEV!_{$t-~p zrf=|DmEWb1=%m6_7>R;GrVQzo2^?fS!{aeh23sgJG%2Xez55SH zzJPr4snN*qcI6^7&MYDO!wA@d zR9DL`ETUAz{?{8XfPY0=u8)LBKg?-c*$x&1l>Hmw^u`x>q^pc;I=W{`9p2kn6C;}U zc{12kth@4;FvQ7!km7mco|N!M%^Vyk^DYcb$_%xj7lyE1+zRX{PV**KFq=mtJEl@E zO1Lo=evTS0==zf0?l9bc7ugr~a4CXJi8Tj6U<^`n(1=#ILzHe{1$`^A1sBJ76uRWU zpJgAa0mZMU7-|K)iSD_|;>acp?`K|6ZIo*4a~*NkAASNl;4+F~=( zTfIv}8pkiWG(ZLW5dDt$-&+MQ<<#CS``BAf{H11y$&S!o{;+FJb}`sFditYFPXHdx zt+2-crf|Q;2`Uf{)gw1x;2_&9>Rv#z8KJNUiY& zWXQCJBA9DG!qYxzzUS?b=nG4V#VuhPz+BsR+^DeYUt7Nf`!j3s3Cc}iw@#>#3bKT_()bs!5GCPlaGI-T7 z{@rfCdMuf4fB^WGc2LxkkfzkvG=m|1>dXz*8a1&inc=`jEL6j(sW~IucC%x~PJ&F6 zsJb&2z#pIaPMv_leV+MmL)!S^ArSOq+Acvqt}J*@7(56Sgoigowb#Z$WS|Lt*r zv$hH5e&w;lqk|X_qw09GTtW%aKP(5m73?YOn`b`HQ04J5X(b}bZISxkzSGNli*DUJ zx}51gZ`WLgsPmI_rq+U+Zk_q-A{_Gf1u9qfuNDN$IBKo3Yiygj$6!!h83$RW+?y6x&r;UdL~BwrM%zFjqY@oY> zjtFsV%q<>z&HEgWewzfOy%&)+@-H?5-8`l|kqi~)1P&mjkC1VBF}#&&U>Bdy2*xY! z0H7^U!txOR*NO4sLU2r=3@%bZw*K}>DSM;sLh|+F-5dHVkF^H~5juEB$XR}u$jcjO zen?0Rz&X{GZ%9p9)poUdrVn99K+DbEN&bvQc_n5@3}{6RMhwvUlxIfvi5cD5L=l>v zRfbg*na>Xbm*jqB*QXNFVhlz^xobo98D9mBn{%VmCaJiWRIWupvpP`%Zl{(9^*L)7 zf)n0!q=&xv?@1%6{N2W-n7WO*882?Z;Q$hG#21(JfSD~8R!#$W(ii-jJCwonopQN; z1@l)8O+CMc{QO{~gl_QQDlL<3rq$}asJ+IJ`iOhH>YNTGDkN(cV_$I`XXmmq0@AYb zdeV{-hE_aTDUJ&6=~@lmCA-Fq!n&xmfd%F6IH1g4QYKY~7uDIn`2C#I8i-;VGyEDgyEyCh$0!l8xhePT-m*0q zuX@NDkB+dZp#BRXT}Y@jZC$G{QSssHxhi$)pITbDfJD++D0O!I3WBBz9P(le)oy zUth;BUv7p_Z~jSR;O&qKOoiKOF$t#WvLAZ|%4J5Cd8*c9adMHrRZJK$aHtjuFhcSb zm6v^1W9`)IyY+x4y&m}Aj=9g7K_-r!Ougt^n>sI26-ye;ncxBJc(|M%=Nyx!Z!#bq zY*L>q5y|%>HU#h|Js+!Oa1piQF*k93B2RhAnTAZTS6$J|hykx2JEBsXK@S}b85R2Q z&;DJsw%;7lY6P6T>59wtOz=U2EVAmM8e-|*62hqP)00ZYC0qW?1k!rsO!-#dcYYKZ z>q-}y=jS99{4c1Xc!ClAS|72w8Y7Tr75afC0F~nY2#XqqYXn&%gA*uR{W2`M|Th6oDHd$b&}O) z*M&5wA3?MInIp~*m`d+K}3(seE>T6yma z=^O|dS*jXK#$ZiU|BuB%3QF})qNZ(5c{J!0-g2;@jWCQ5b<}UMN&K{;=enANeEc&f zzns21wk~ZryH$|c)<=#`KBFW4a3HUqI&D36pi;Gd(K0dHe?zk;B`0HsW#0T^NOR%+ z7Gs6y>;JwT?W>@9Lk-K%m_ewB@Sq(SNs!uA;pX0ukKe7IEFP}=8Gb%!hR%#8VY1`> z<67Z1wK$6^5Ke^M-2dZt-ix}=)Xy+zyg!~6mW|n~F{DsDyR&PH>FH?`-7s2m-uW8lU!C^FI`e1@z3M|Mj-q4@>As*ex3b`ljl09$SsGd#WPO7anUf4%UywwRa)Sg(H#M35s% zrRim>ZddNmh01j8*~;l@=$eN-3yMp~zffsbhDB9Y8^5P+S1?hwp-(?7XHO5p7B?paYJ^$EB$P1nBHcB!rRQyN zakfT8q7hh^b}L$lA+}H0e6a(BhU$D=A5yXcU4L8eCLfDor!Kz+VfEJzpU5f z5u?^>-7TYVnE$C_{*Y%{S2v?hBO6xD5)rky$a?K-i*waD+pyz!*)WQT{wMFJYBN%B zLV*lyV2fT|igv&Jm|G{$OT$YG0z$%CivFrh3xJxWzFyC4$9LYPZ#E9U04qIzsgrep zT!1(+BJLX+p{A69-%AiOLG)VUgZ&3t8yl!AgH)g{zwTm+HoFrY>3Thi*w>#af9<1NoPUQq=52&`LpUuQH(r-mL*QAF{+>Ic!ejwJ3D)Cf`$I^W5Z8# zLVU!cg1r3S7J0(jd4)lmYIOXuBuwRzuj|0NRX3nc%~4y@#}yJPsMLGJhLPP2bYHIh6+|oDg?JbmrZI0wMaq6R+kLwZ)NEF z$!DE1V!NRrkrI4<8Gq`=0Vb|YQE|C6*a`)I7yE!g%Bkj0w`{Dkt}HlPBC5k!(+r$uw1)Bsb-qFD6tvuaTM`f@c3HYqW#@t|3-BIIn~WlQ zhrupCJ+~M`)Qz|KWkC@n;9hciwI7|MUZGXbz1${mWAozPpE?3v*@T-!M@=0d5wf&> zGa^?4#3DKRpXGgj!jO}2|9ky#aeC|xJM)OgAc3mdKkMV6wY31>Y|o+nE5L(cBKy}j ztsGk0+XqsBoKjrG`fQaVmU6yXr;dSfd+Eo zqU9iKXbAVu8G{zJw{m0W>JG#ZqIOESleC#jR+*O7O=L2)koe{&_wW`E?SEaKArIby z7k`NYA&`>-vuSZ@Nev{mrBfVKu@V2*x)}zVVh5FMo%!vmRX#+T;|ls@!4B7nb%6Eh z`^ie2F{Wo*I6#(R=f@-Ky1EAby!MqZ!S{6YhuE0mY=dAsMaxqAxVNBSsb5 zbrIUDtFbxW(o@8U3Q{0_{Wq%La^9#u zM(=^wgxZZSS-dXv{=_+}y_AE07K=d@ivhF}uV$nwT{|6I&mu>k#SPa68r^LE(tl+D~}&b(zg zKf3e_$XjHt zD0zJFEc3S53b~2u1E6bd{K&cI(7FG)^6tH804Rz?|4PZOQqm+JA^D>KysA zKOVh0rr51E5{zsG-!!3Cc22P_r=4A*axOxgF?Zn34l)dcnpSsP*7urLOQ}p5ivKT9 z_0ayu6Bo=<51y(C^G`=Ip^4sM~9*E6#kOv&Eq&i?10&cXLenq{o3 zK8vb&Nf*qqt<-*e2;8oZI!43Zp2seA=X_^n(DCE{?e zZm-fP@gP9m@NETt5TNEhvtZV%Sa0}4#*g?AUtD0w^3f(KavRrF*8)_0yp_@faw#f8 zgF{0>3+6#X=E2XgM&`bil%R&eqh3D%x#Q%<&w%&oXFEJm>+T3!{P%wmKl!DM+3cE- z=tBRzH8W|>nOMl(Zr~r1Gc1gsi}R($i~7V=E`Y#If(hc0jd}Hq`BP1JQ&HHvk_bt= z1F69&DBg+V-`ThXA%i?eqxA`z*H>eI`DY%HdW`$OiB@LHhY>WX{#F%+o@Ppf7r)CO zQ5AkKWd2MlTFHzKc1K_FHyXWfg28XwZTt!RoiP5ytn~FcEF~IO4pq{8Hxgv*X%MPu zf}Xk#7Sym{)KF=_>H)O{d^D)h-s6FyQo(o-JzHy@)Mx7p6i3sJI9c7KAQG}czBwBt z5zOs~^&u1IsG(M6i$3JYUj!qmk(=Jpg|nF+Rn&kv@+@h z=Czt9+wV6Tgk+OvXqy%k^2|w9QHj1OM$1{e%`1_16d_C-E0|yAoS`}?ncYSEi$G35 zYg~=S3BtbhTo|-t2q_Hv)(A|=6X6tutLEhzpVRWamq1NKlOPEGI7XPk{w2o@By@ux z0!{w>8bHFP>B&D;c63 zL?Z;Q#+*Pp7xmJ5{Oi*ZiK_Ity78`aj!c}UdJ+-~ff{BB4QfdldPFV~L%jM|I7z&0 z1^G|U5zINAQ)%H8GS|sOW~x}%kM+mn!vrD?PRKAxW?7cPAHD^INTCY-3w8IW_{@9t zV);gH6eB8ep}T=uis$=JngbVi9z8?}F8gP4erwgJ|0VOowt@fCg8gCT*nfZif4@5@ zGycDq5-_)tg!!V3>@egQpEzft!)^}9g|qibQ|YWG_}|z6U-yw&50xE0H_9Bz(Pi0e z7_Na6Q1|NR5)@wr5Uk;<;JO+ii|_SidlSIj z#2+kq0_|L>B&fSY!EG8?^v7`XHmGY)T9BvL>t3Od*GP^Of$eZ4_@2@5#teaPAos*w zT#A3^5FrxJPkoI9=RY8fL)HgQ4muInDFU5+FuT5}UrAslzv06OEEld^$w?d7dO+z? zRQ&tSMuW5r>k13FH{Ei-a`btW_XZA$GMx3=y&~|LL-XI)9;}5)!zt#ONA^ zP(i9nvVN(+JNhm^`sJL7=A@b7;`>tD#9QD#EbBl<(Vm_P9l6i=0&yjrW%($?C>}Q^ zT0ySoYcJ#bEg7BA~YWk$zjh6P+8g zI1vkExgVS`ex`$%$ml#?A1VADab1N7|JlS>JjgOiIq1*}ha$n%k1BY(Wm{i?Qxzh@z;n{zZ>-qe`w|qvaub&O z)8R?}i%{V3UhFooCo`= zoH4o+pn!V2bcEeby}$)M^AuOtXpq0`yx=aG1dMew*FzIjNpfetPU_WOEIX5_+H6&H zYHM1Em1LU2njTHuN60_-?^$zw<25OLFW^#oKfZz4VbCC>F+L+0c0IZ9>!D4Z3%yc< zYL1@*KHteu)rp>jltXl{?i{U5Y0|#MtEw)p9Gglt#eCgi-8FjFiQX0L?_UXpqYzdY z`16V1m3>vv+9vvW9-cw1M|%bw^zzv*7pfOcsTkJt*V2VK{1{!=O#`da&`q^5geLK$ zW2m%VQwdklPZp=x@?ieIY{J~a;PNotJ4gz_49zKA6Zsd_{kpK&Q%T6347nb-b11aM z+`1ILGB7D<8{az8{9;b_u07k}&k~m}CS}%*yEW-Y@lX67+l>T`0eq%RFTCOIxq_fa ztEvVH=5V!7(!*5=MW)sXoX}6?s21aldhY4N$kvhZexS_mS9{Yzfxo)uNe<^r@%Xg2 z(Sl@s5cpF>GzdA7dQtG7=er&#-QvK;)fLj_60*znJGtu6CYC-)&`$&vir~$Dm2@)YWUZ;{ zj8OKN{XKYoZjH2J%eGK=O#QR{F%^;XHP+1YbI+@N+enPm$-qrqb~2^rac>gbxvE=P zCWSAI#_NoESvciP=E;Vcb5l4gLF3*8kHMpCheIid>pS8Uy&dCPgyPS;q2$@o?T@&N zga@{cWOat+wQpas?hT0z?!WjY%9V(i53PcHh7#%Hk< z7$|pCtc4z5tVECRU|&o}Zpe>mhcZd(N!kraEke(7u%050SG>p;pBoW(a)O+^iq+Ru zPR#k&RHKe7yB|`FOq$@tMTUo$o^@nDI~K|~-c$KD*X!Y$i!JweSs16qP+_=^*ZR*K z7S{7oxSSl<*8&o@r{8m;AH>D?tCb)qc~2ER(U<}qBJdb5+YTEc_waU2VMrNUXDcg+ z+;3d*)9(qy8*s8YTnRtlV!p;k!48)upZ&VOy(?|KwJKsr9mr3;WoNB@4#pH&1ykVT zQ~p`6i?k>8DrMlApU(8%VR!|L*l}nBm5PJ+udipXb_*TsQBE|P;+{B!-@PHrj((CL z)!iT3U5$SWagaQ~vZ2l%3xwF+d-*bwy}Z9(Yw=o9RL9E1&oP*Yb+@}tzj~fxvPPVA zf)ueENwoH9Y{Fx_f0;ZR%VYuN%Y`uq*4&qZ@tq$UwC<0Z40T=_g)-#yT>TIJ9k|$U z$!i4Hrw*j_6Xga33(^J>gbGh1ar}cvbQ3izG07HWX>)DsIL-%}J)o!=(9XxIjBwV2mcUX7@N0b;=D};k^7= zaiNl1*p-QXd}SIOhY6tCm(wiQ${&PKwplamSayAWRCnx;3DE=`Sn6%z`?mA=#<4FP z*SMx4m|_Gl@_L!*(dB-6cn8Hejxg-lKG@7Wmif5V8E+kZ{XU4shVm0Lc?W#&jc&5Vl%$$jm|f%(?0*D4ikz${np87UnxlGJ z2m>iW;C(^b!+LHfU$!91r?B8>i(kX6r662aC*Nu6Hi#!i#u>@4h)H#SEt)gky_TCJ z2n*!TXPV)QQi`Z_2_wJyGD><)X)v{eK2Cj=F$#9eMAk)|amG2Ogvln(Wk~E(=KVW~ zBO8Xgx@43-F+&8qnwwYm5xWzA#>3=(lyH&e@WWr1zLs?HOiH>Kv=^se=puMjooN01 zZ3OXOo-5}s^Iu=v{Bk5lrf}>y>4EC?i`8YkK6yjtyyLOwOgQ!es`*{JCwkW0px{i$ z8>7ocMy(;1{^tBk<*sOhOV|ucdtF~ZnEOj!9cn4^9-_nN`QpVwi&#!2X8H6Es7Gg&vdLPv?XKj3O~`~*BC8iU!?nE zJ_w1&O108R^BD`GWrX!KqahQY`hVhAch#LX6A2|Bewc9d5$>DYGkCb4!~JH*I#7jZ z5YA;jNvGlNO4)EOQfC;Z(H=8T_07~;%z*8#>h}ZOh|Jvdh>;Ze=JZHqn4wq#^4&TH ziu8*-swH~mVUbtR>RG+gtq;Ncwr=corH`!_RndBJo?O?j$MF*Kl_9(@^^v`u zbFi?MNOjToj&}O&;2cppKZ1JBB8?Xk-X}I2T){@+0R_j-xff?0rm~-%Mt=N)1#iob ze4;%fpicI4|_!&CQ zMOIlqhWvkC&Bpu!Bc|*|rL^_nS07s$fH}lK_?g=t>~j!Z=*(iSU^_o%TjV4 zNRG*0S8Er^%>cf8w2ntPh)3Vd%DWt_#?vd4PJgM79~7@xy%DPC}(i=?~fRD%vgzrmaIO?2AC)$}qH>iU< zMw;ipZyvC^QIVH8-TRUD;IEByTc~AB4$r%pY8aay=Fp~&c$n2hiYP%I5je`7`H&Xd za!_vEz9#PbW6xSjrir+coQIP!^b%FP$YE!5X*VZYsFQBMUz95kC>TGX!m>lvs%v~v zg_$IIaO1^^ali%I^x(6j6IS_;s%OTD!j${Zc7>x3(#4T!ieHya+azMoz`tHK(XBim z?OulS%rdWZP6i-a+`2u`;opJrxOkp-cMtt|#U=VfohmIwos}Mfy^RFoX2=IWoB*3w zP{%3i90rOTvM*McQ63ul55-b*+k_$Igeyj$(LdGz2K2mJjkI1C-713u z$2a@?uV`qCgug{lZko33$x`_|qdv44{f79<*)}}KuloYEl9YJh!796JMH5ewA&)qF zStpC#j%DTBoOWDmd*&jr);RgY7PfV*Xnov;G~j87^8 z;dDJZR%7w84uw)av<=AqG_<3_^ww4y_G$?ig^(sQ-t8be zA_iVHRH2pnj(ag2MPZf5X}bh>QT8u=mqm}CT? z|AQ4p-~;kr`zYzQ*;4k|yuIk35G9Azv4#(I0piwTfe!n=PvUs?h=us=%|uBAjhcz_ z1B6*kxzD=ZvDn*ea^L#yS-39}FXnpm#-VlPpd~(gb`dC3WzC%)U9n(EBu(zJLTqWh zho6VAhY!)mw%gn_zE*-(18}{uW4?8C0p)Jyg3~9yny1Lu{=NjM6G9l1)=R7kfvk5p zB0R+Pw=mK2#11GxP^=o*AO*dab zQ~6f-f|Z+C9ozlDPceV-KqfeL^1v$$Te|>IGTzPOU_by>Ac@byNsqznh32EGN~tTmM+F?_!#sY z(jVR@L8{OVd^9hWOhoYEDB|V2joR)B8q9)|njM;&6$>%3Ack^Jh4h@rCvU$eg#=dY zc?jJ{fK9i6wq1zSL2?*(ntFA5VHVT6c^_rCbHWXNQw5Uz@7$vlT%_HBY13=~t&WTn z*Iv&n9uKQrEq6d%7l`g_+~ z%0lp(uuE(OF_k(rBIYryR=6T_2+XiDsR!5MzJ%bHb@y!Ty|+=}>5G(v z37Z^=?Sm{xjIvYOjgFzfZ1%x;4no}RcdE58a_NaEh+#+)Zynd=ey`WxAtT80r0V*) zD_-4E4{dK9Rpr{fjV`)7r9%;slm-bwLIee*OF}|I zL<9-xmQ(~$8l)DI(kY;Tf`rnIfFO;4G@SYP?)`mZyl4Ezcg8v6tUva^{jBxG{oMDw z=e(|K&gs2-q4Y@ffpH<#(@AlclERxmWaPd}hMrwB?w6&R%P3M{ZPs9|xUu~CZ7`p| z*pvGf9*kt?H{UF{Y#67`c%Pgb>wC9<;(H;&-?6f1WkYdUKljP^(KJG*rKEzeVVba@ zt(ZkTx2mmP?7bGMy*h!z{c|Vpdzw7@M5SpTV~#qsrZ2<{f0i0A&;7i&uAb`S@GH;h z6^6mE#-wIn?aye*04IXknbWe(PvJ{W049umo?LB{C-Xj$Tt9iR(pCkXT@?2gA7X5kOT_7;{W?xFrn?eTxZ7i)DVK&JD7_B)YwL(H?2M-5M-r5WR3+lz`<|GY zaE=ns@S}zml1tu`e;~A@Qkk4}jUzM1^iRzs5g)6573%I+C;s#**(cGATZ9`&pO<_( ze+c){&PKV@_+M^a_=fLPtX|=6cY|q%mtc5sUy|t+rUbo_Sc!9+wH=xG8&cv|emjes zLn8LnG8jd8oKm8tI3Ma~dw*{CdEI!^x@&Q7-=J4{_5AU4E5`J5df(;N^yu4tq9i3K zr@%j2v%Q0KeO`+Ut-HOfP2|E1AKX!YuGv^qF_M{w)pR7;1&4EgRS!BHOl8JfI!PPy zED?v^^zu9YkCSLfLkDE1#=Jb!9hWekw_+HVTYopc-G1%lF=>`F)+pAuS(A@u)*CfG z{!_!VrJ1h3J+i8&%H^YfSxKHUAL^sS(0Fe-^Y0u!RF9qw-MdMj1~U3bZ7mH_sA_k+ zMqQb6&sgFv&rLbpWSx$cVH0`hLW)m9-8dCX)5lse#ky0T%M@^$%=9{6Ak*~P-7h?S zm(PvSY?B>&)~BOJaE!dVPvacT6VSG(lz`&VP|}d0!tZxx7D5vb59)m<(lz?L(OuR&4<(%4uPb)Tdh9`Pk*+dsB9xrxajf})jIRE#aGuJP^ueI~@qZkLN(q}UQS)w#emmOeD97j}FNNPXwB{kz zz@S8wgD4N>_Rw!GX7JLVclyA2+@aFZuY8U1ADvz<0`O zjvDZmmr}1$v6>H{lzRJ-Zm-#Lx%TEQPguJIk5-yQxJlCSgiJ1uw_5KR@7FZT z|0WuAiX6$*zGfG%cSlIJxMe((=QCR`rEcO@1o;aYeQB&D#s@R*16E`epIH2Y6Js7< zo2dOvFkEEkw&e4|rQ=9x?_2dn3i^wOM^EJU-`A?t+@cPh&J!}BqgAN?Hksi{kzLBV zydYm1*6f<~c^2iFkr2Al!7|HcL0mCw^yi`JeL}z6MImBgOXJkN1!j$yxW$VH-4BDB z6^-`|uzVWqs^0g^HJ`7UEDKNV4c@dZWB5x}yzKwUUX?d%O$*)d;6s8fTp=mYkJ0&= zm-cV7V+MTJxxiRdxnHJ17DmV4UenhP5ubw8X`SWoPyWCD$C}F`AF6=nYRqAwrIP>c zBK;cMqGevlYKUw>mOiwO9P`~(aSl%Z`%^TqCEnR9Ke1UIWlh{%k({AeYET{!f3A(r;a_)~W;5Vlrj-?jb z&#;q?wRf$&6f*PeEqib;9DzY^ zQ|G4s2nT1kDpXiN1mE#SRBo^9Pf!a=ugK_GG^3xDg)k~}9r8;4Nh9>^oK*h6qv>kwWFWp5u_W&VbY`ZaQ2x z#SesjAJCQ@AF0pcxt;bQl%&v-#qaEdZWDUgv|p`yv_OfR6lx9P-Mb6bcagGm6CQK- zK`IL^Vd(B&Wkk~8n;p+G!;0HRZ8svI2Ef%VV)-l6)ziLF!aXA-wkc)C&3emF{AI#( zQ3-0ojV5(K>Y5PpFC>SnV+aZiNpCdZLwkl6f96HV)P^RMWYCyMXv%Z3dH+Xb^}{xj z+dGox`Dmjs=*2;fl>Xc9ZH}OM79P&sb9VYfphv<={1{T><+bL0$Jaq?9*dl?E79lN z_C6G)4C-KsJkc<#*bIFRd+17-?Ci^6 znS2PF8Nf7l(ZbY+z!QNArelLW`&CUMx*V>vvWwhuN_X z(;)Q`dd9l-#a2QtAAj>P3sOoi6HS=rWly2b<(gh)2vshj(F!RP@K7>vg#>i^mMJh}e)h)Hgh8XgoaR zfdV-p5=$9WN7meQ6ck!j2S1Zzky9DZTd@Q$5|+{MBMH z)O(AL9)w;UxFF7gHcQz}O@yC5(IiQ3<3lmp^E+wKA_5e7Q01_Tm!7yCTh?O`O7&g< z%|G%Rl>C2M=Zrwk2nfqS`eOk_hT30VlHRK+f;q#YtGfbqFt=Lp1d!$qA0cy^)2{@k z3e3b2n`Bdq_mYrE9)>g)O8QC*MZ4%|Xsj%&#G%Y9QZO0netG#g12sLn1hqXeP>|(o ziX{SE$<$W!p&2N{EnZmynOa?-XDMg>7!W^2LBMWl-p2A9@{? zjXyYoV$LGJQxJ0i7p-3tV>Bzd{4I@#hX-ko1nrt*M}Ll#jel6&&Zu&yQjVhUApC?n zzx_4+>@GYM6Ovne)$?M*;j$u9R$v*I4XNFN6mx_Lf4OF(Ne;?OiT$pIeAo%sUd9pY zSB8yEi}ANlNuVl3TVA>tn_P2E$6~QbEjCma#HLni$0F;-%dmb4wYQ!6hlU0g4v=cM zP+-RzBuPTC`jA#ZBA)W>?rC~sJ!$L@qc+rOF+{io6qwlf3?@O;PwWC{pV9D94`YUy zE8Q$paCuUVV#g*UpCEWa{^Yh;)uS`~(el;Y9GnOEo_@Wq>Bcr(@88?@q)ASfd3u=6 zIV(pS1vmLz#6;an8F@y+_!DMs>PVGS+1T6tX+PF5Nmus_rO0)(lceM*y==n;1`)d; zn#;F@6k#`OydWvb@=74xKTL(MrdC%WjPwNFKX;03BcqI0RG)-zPfCF5t(cDetu8^^ z9{I`yp2-Owi-j+DN-NzCJ9^_GtUae+OwTkV3jN{rK zy%Lp@!dqz-qCf#zggl`n$we+{#??J-&ugD1$P~E0|a(n~UkE zNm9GU=P!IJh^Z_sZFwWQsF|y7UFmPVznMrc^_UiyEUiU-H{v1X;o0Z5uwe?OV{DCN z_kicm3(yZG{7wbGeZNC^Qh(Qv`I(rL*X%?sHa7M>t3Ru2onO9u+}|=CNUS~4)Gto? z*q5ncVP_Ymk&LNX`^Xe^(8x-{Sk<;X=qusM#V}m5XnA&e(QdRHkKaTh&~0U4vGi@u z1*?(LpB_6)xX80Seab;j&)v2)R|0v!>80i6!~3gBk;++*e?1$iTw!_YV>JtY2W9|R zU{XC}vskcZgin?SZp|+&WceI5q5Ox6nuB6uusdR%`FEV(etXPoAjlNYRn$6IsGTC0 z9tE{fLuY0>k|fH;RZ>4T-Tz*aB>7&ze$YM?3hA|ujbWfNba?u+JMbOH-KiFPFLJW6 z5iyFHD2EWHfk7bUH@k{H&{i=e8_R}B2iP5H;nD? z1sNgtRcArb%HZo+k?w0v9UlU|$EBqO%6RKNed!?m*p9h9b|di70^0I>E=oc&L3iza zd3nd`=(uKHkA7)IMUcU}pl>;sEn%KMbSv`DRuM-xMq2HyTZcdMiuOI>vfAJDEG=^h z*5nRsY$U34V|?bmCeopkcv+uj`{!CPNUs{KT2so9GpFN{-_|X!C8oZ1Z4ugF`+W48U?Vk_uYTZ^&MJLcs;~VVM&mOKC zKmwC#J?YShUMWvor30(jubTxrmb=UMp+{Bb=I`ZjQHLHHDfOFNU5fYa39e5yMtzW% zn`rXE5EF}m#jEn@_ua|YI7QSl-Z4)%R=Dj7JdLlB5f4vuac~^k-cFln?RrJlUuq#; zY3tb{{Aa`KTHWLRcMeZa+^(63M|<$t8f^`W0u+pDJr5;SLbD;jOed+cB;hf z3tZ{%KX|fn)Hl@mWiNt;nY88bBL`=Y%VLjGQc{uw?=J5AUZCoEug$GdjMu!kt^Cy0 zYuc+|4S?ykPwhK#9w2iZ~3>Jb1tY zh7%sRmdC>@IXaqCTbnZO_3QRzaI<&(G)pt0i;CihW;JjGF!`4*c#3=6xN)OzgoT+I zjm~=-zR}DY>oS-4W46r!_O+09^czFN*Ah?G*{)u-Z+z`KhRM&rVDaDq2`4Aj$4^QP zcbp&T43^~YTatBNbYC5@;Z9H^W|ClT^p5@R6;=JjFGZq^M!)1R<3@as{ZUVW?N4mvUEh}>=YX^3uN57a6CLoZcvPOnIcge-OpeRA$x0a%6aOM~GN1Z`l< zD$)cve$c=Vvt1Vhx=|3WoQ2ilqIeBTZ;O`9noiawbW}Rn#>J5r_51(Y@Y9?tng%Zj|HO!j>F;%~x#2Zz?V{_!t~N3O0JdA9juHn8T( ztqW%c3spi$@8SLnfi zgp4blC4(=1g+`U32Je3|VPj(W9+%;)Pu6FR>BD9VZ?I+fNr}C&wl=Tt!Gd>@jM%iF z9E+D1E)>=YY(IYx7nfJ#cg7=(3pQ7Ul4h5o`oTdqtXnjWNyV^eQ;-RNP;9UJ?z0Td z@ZA+#P7x8+N67I2tw%~n`vwO)1`4L3PElc&^R(1bUkeTRPIiOnymrr&)XA-t z5^uKn1&jGkv890m5nST@*gtEj{c!3B6B1of*I@2GMH68ZOK z-#>oD{QAaCu{TY3vyF_Tul@;16n#ITLMHeK>&L^}QfIg7-F=|iGs|^lT&qoUfkEuO z{%ktV%a^ely*#u0&b*fTvndb%6b03}8QZ6(kCj`K5i^Q0mfV$7+*@b)dvLcfGLg?o z@UfjRF54&h=e?)QvNr050rH!=T2I}pbPCd+qXqGPU*vfG#^~w5wu(wv>({SX%+jR$ z!Ir934ZAD&Mq>j+$1Q@+M{|;N14`64Q$&q9If&t#X(D`bNXT!C1}h9hm4hBEPVS zh#0|-%2WtpK#nGhO+$YN1+Ms(?ruuh;@amw7n$d0W}%^u@&sv%h}j2wl=R|E)neKpy4eqd0&b zB)0zYbb^1lyZfHJzlO%&F+|MK$QOxV4c)Rn5xE2 zJ-!JmM=tdtVe)%)T2(uD8=rbYWeg?RlQS(2Htd9*mpw0!)0|I=Qrr61y0bS zc6Nzj0&R|(7{jat4RP!t zVdnn<2mis>4u3y9H`S}t7V4zyeDxyWafc&ykI(J22#5kZ`5Wi{)Uktz^QkCRAUM{t z5v^0Vm3InU@M-^lK=^cmKdJ{dchV4YDG=lYzle~(em(uzu&oXkkU|=;xSN~$>iEbF zo`(tY&VfAhEm;dC;mE2612(3680^>Smp)2yW5wP6&_{pHl6n5OzPz&xH+8#BAayP_ z1%(eW@>c+g=?M# zvoKdoPRb+kbqRXCtnFa_M{bX?uh7QA%od`5gD>2r)9;z|3YP1wu%&$bt@%qqDef#+ z&v8&bQ*)HUN2%__@lg_~J=Qe(vFIQE5i_KT;_U@Vk}Kch6Cwz-LVAd>ALxbJYETJ3_3dfMun*RL;Oq6&0)4tHPORTHxQ2Q&3~JTB%~s&-55 z+ok<#6Mj0A#;2pJvyI+|>dgOutgIUL_Gr5`v~G-cfsWHqt%&d)5vL#5^>fMpGh4D^ zZDvy>NevAR8Qe5rb6Cpfo}5#ONfJu<_Y$T00%l8xsZ!RjUnLh-7GL_>P0g1gGcGAD zZTw;2AE|iWlFwS$G55Mf;q1shfUufpz z`)B8VSJckq=kbv@!547*HZ5zGsiVMcu7dy1O`U!C_C@WdjGynv@$m;!H5MFoa`Cj2+-{qN8J#kKzj z*c(K-!USq*a{9#;H*VgbpgBJJ^xhU175C-^hna|NOe2pJO@!c52kTsS_tyn=(SLyT zvm0uU$~}gwoZKJ1R^R;dXQx7BYbctLnef!KOgkrv;7*>h@F!$!maJyU-%;9izrE4V z#l=8b7&usXNxpealgpv!C zkXJ`6zZB#KupPC^#XQFV`HXWJODmUs(}Xx*6d;F@;&q}|2z=uWR&MN$Ii~~0tz-T z?!7eejY`d~QeNaRFa1}RyI!?SZ#6|2TSTC9;JZ#L)c{QyY zw*p$)RJhV)eOn(51zw=IBB}P+2tQK?UkUSqA014=GVXb`0L(zj$t8#T)~T;jQ~5+h zh4o+V)P)+HkHfl9kJg&Ea$*SyuAs%o-hTGuz4fCU?wx{nPani+H@~HeG5kin#7Lj8 z9~P`i{Q8bzzpIa;7A@;*IB`qwuzIcU{>|EYlXm61UoQ63+^f~0##_MSIP+7>d1SQk zEvJ{-n&IV=oyi-th~?(<*cKJpTH+rA*9`$rG4L}k_ggEx)Kmxv|6i6@`E#)YPi?oxsdK;$u*QGiATpAF69xb7 z0RPO^|7ofG50e>|N&+tg5gvy-VjLW1LPBuHrRt0j0L5E}R5)u$dZNLUs^M3w>nQ~e$X2M;aRt<_NYR`cH0)RgheuhAre zJu;T7HK8>%_#*ZLh$GIrkP=B3dtE_+Sj?H!ADk2dx~@C zq8b`ZqJ8S>4%I969{&2~qW&711hAMKaW8rw{AN$&Jr^xxm6&1pzF6HHt}8}N93{F; zRZtKS9z`4q(Q(=B^OoMfk49=;FXgKL3K$sp82d<;HGNIO$BQnJR}!1<)o=9~zW~WU zcbC80Vjk|i&Zu%~3zgj8?mY*Q3~|$$?^UW_!f}8o8NRQ|0uWN27%rn{^K}ee27Qg) z@$n@>UJHw7+7IHYzwPzc|$a}373b1G`T+>Y===W zFks)gb5rF0w;L~VT5 zTYOh82wv{X%laf5ZyxhhxLuHyB?R>Fy1F_&F^Ps|b|@W>esQ6TiO2rU>nhEmVJc2b zORC672M1pb0hg|(){~8Q703TLjp)uDqCv8Hy&@Zwe@849dxA}d``S-cwP&A@8)Rg} zz{Ar=92#}??m^iS$59@SgWnjIR&8=)ar^*c^nN`#($Cc7hS@+5p-v4%fxt<#Q>gc2-&3iVv zEq#5#ub*RdE?TS%g#h9ZaIn2+x%EQ}9W@PMfXIUh41h}71)6sP6xhQwxr61|f*}Tl z`BZB09zw0}13lGGHh5OYs|mLkH=s7{9da6)tg-4x3-=%@Co?lk)fuOx%o6f??2U~x ziGxx-Uk5HZ25O*Wn&Gm3njW*XyQ2y~Gb-P6O-tR^)Zrb+y?RBIqfGz+fI(R+o{f#3 z{qTF|X;ui3F=1Q>d)5{P2_UM|A$l0YH0obuOxHT@O*B-J9^Kh#j*@TmDq*Dt3XLLaljQu8mJJIvu$N*)POU4L>_;@$?dG=xZHW^;B|lP3Y~N)*Devm#E=7S?+wdH>{S zW9}h9y1d5jn0NAg^Xl9oUSgI`M4!sQGYw7;6nw`7cq7Dwzio4t4~c^ydY3#s-ll^P zVbCRkXApt@2bRUcNQ*wjFgII_SINWDx3M{pzq|9EVerM-*Hso+n z870o)vu%qIsIZwdz6tU7=XIQVN@Crm*RnkLor2z@xNlqZ{x<@Z*rwK;oA&{GzywcG z(iOMBw-Z%r-GvFS{!_kI_>Sk^_kAmI9ToOv=c0-C9Iz!Nkt;p z?6CtlMnr^=L51CUVFn6{1l3EIA`I#t^FkR-W?5MZ2_Gp!pf7x=!X+Rejo#cM&>s|~ z6_CY_xK8&y*C)>{p|d%ydV6+-5eqrlFJTPiWDOoK$I1Za4A6NK^C^;S_Hfq($db98 zU)+FWQ_=8v*ry!r{4xbt>(f*t83lP<2-QUet-M=A`}>X^(2*0(e6*M@{BWsH3JJD5 zVnW#1*cgxYP`8hKRzzM?UIUZ z(!Yqj^q!t|z!T-qQzAR6LCr%s)Xc|-BBS2njBAWQEE31WJOI0{47^rfu7<$*iyfTY zOKHnBu(`GXpx|?KD>xtkdcVNmZYx#SV_7&wdXf_oBDAt;v#te+L1+%>z^7n>F0C?4 z4Q%X`cJKpqJBm$LNZ9;R><7`i7${m=u_PI9MliWEEA@B)hKtH(KRsARrWY__@bi%5 zWIWhdb)dZHE{SgZa#Zx!fm6NAII9o-1xx*N7Y&TY0RAB4RNmSN z@VI~_5qiAD`*izjEW(E*BsALZyKGF&^%Z<4Lo72S_D5VN14!x9NZC!;QD!D;u^1NP zyR7$T!|pHjTVaDgHGS2Yu63|7aBN$zKTq$DksTj`S(HCO?5ksy#DJ_LvlVcC3{=id{g167cx<#Q&{wP$J(XDP z_Uj5h7Va@IUf4H;6w1zKglEji=EOkJpL>m7W^mrKL;1rT3nAKT>nfy*ic+7Q(PWsK zN@k~BnQ4!H-wjzH&tidNI#KLW!c4nb8v(veYp=6hVBosK-Dyn+92S&O_314u<4?~j zQKTdC860W%pJc7_fWas5|@eK6*4Z;}$$5s8bFMO&X; z=MbuM|GII)O|Q4>{Ow12#r^ElNgPZJ0A~omh>eWkBjaspsu(#k@^GTrkLL6gZ+5Yo z6U6q z46M}Fz6%?&*>yox3Wcsj8Ihl<5)w5qt*Q`4^}X#A5!r03j?*(qW@hF|k;L`t($bLB zRN<^FGvREX^C?)r{mh*=vfRA2wV8hQFh^b1zm*>?{8XB7Sb6;Ia^O^8RFuwO)wLks zmQ-oFGRINucP5fJU^bOc4xOOr=d|7N{fHgeUh+k+|V;AR1wL`gI?q0 zJ+wm<>zQ<}#!3hQRUNzZro5pBYduhQ+=rb5hjc+uwn8%IfM#M$Gf3{QT?A zF@8l15n3O5dJg3BtSyL!=^2v?e%6v>#aU*SJ_$ga(kJUCANQtXRSNZ{0ktyQwM^kR z{UTqWV}Bx@skvj8zOrnD0hXm@^!*Vz`9nhZdTS8gaH;Q!V^RFXwCUvRGyx-4FQ4)owlv>jjM6gHTW{Kvm?X9UoDMS z_uvf*qY&_4!ejGXPs(WY%5d)wuvy@vMgt#c)sw;uT-&~xTXf*(MI4fHoU^mrZdA1< zr&GVSWUq5j2oIcLI6PK5&(BW@cXvGq*9l>O5O5B74RGq%sR^GaCLU|acJ%dO14r1J zrGy9eIC8M?#QgsKNV&6=OndA7l{Xv}e?C(0+#4B@!0colKXAVs@^kB;(ACgb`ZRJz z;e$E?FH=m`xX^z7ytOp!d<7b3icC!Kw0!%v{xy;$UUqD8WK1g4dHRMy<00?yNxYy{ zJJ1Th8!GyKllbFH0#%6F?UqP)Sbv#-_~R4SMFJbZ&~dcyh=&63 zbEmPSD8sm#%@hfp+EjB6dUc%IUiGGop4^bV!_lvlcMD4sY$+@vJK~GYerITV(i;Jw z5in`+pr(vSTQ;>EEEES`DYW_QT6DzE`}c3uJX*ls0n6!Xex_lX4JXD>jfig!OrQXY zJ9M}ty`TyY_i#2=F88Exy|?w9fzY|Vjk~(zi7%-m!4Lq0IV&_>*j+;8sIr63Z#bv9h|95A`mU~+Aq&MDldK7_qs|L z2Orc4)`wSahLJc7?Z|AsESR!Bqyn08@ca9~0OIG$x5TdIQ&xF7=Pel3izeIK{( z32SEAv%#YQQAE@6@gqHe=EC%sI8v~*bqEB8T9*1Fp%eJSr$W|^7S;<^@K{vR;JSA0q6YK{RRKqk1_ot>)JfY^jh z$YQF&)V}R4LbqpRcuPFCLZTa&IZ}Et$D!uBDcD9V&Q1qM>fG3?9(+A}7f44z35F&Q zCNpeF*Pd&l{gdyXwxjPxTzprXwI67BY(sZrJ=&QMnO_9(R z`bPY%(n`J@2D*bPMELM%9#ePt0_vUFS{Ue9<~~K@g~!GQH#Jeb5nBuVvv!2mOZG^X zXZtWwE8U;3Qt1hOLwrdx%>o(%8| zm2-?Dc34zY+Y0*FRD?6gT!z~`KF8NlLo zXMp8ibz2re!FvfvO+9q2aGs7Zx@bv3TB{NCnrAx@3mbd$ilBIdaG_#7`* zm4GxE6%J9+vbaSjTQD32Y1I(SjWnImu20m4_w}(MTp-X^K+Y(`(gjXF(}ffWRmU-E ze@>O5x&Ca%hmUw78ARV?0NIJ&dwlHn?h*tlD7j{=8sAAez!LIx3d9)1*Zte0rR}lB zC+kR*vX$3}G>9%=_GXfz4z7P9z{$^#3DyifCjwwtZsXhLUAZ8}De}M(fg?uB=G-HWPs_@* zI=}R6I0?O{{4`b{zOPLIfs%QD=5Osw1dohSeZ#`RMMa7c>R|vX%+zn7GgV?Kl0@$7 zMyLmsZt9~y`L3FNY_ZX6ozJQv&C!-Ddi3j??XxRJXqBbMlnY*DtLS0vIIA8N=Gr(`V(A3NnpdC^S@8? zFY@}|isJtUZvVl;|Cb>7zkpjFZA-2eMm2e^E-R^*1LGw+f)rqaMu$M1hBlhqX7A<=NnZ(-&HI8jPBg5)#qHL-DU$leKe)5K+CO@Cg%W~vg%bV{hY z8$?bx&qbSc?>}?}@>ixNo2?p3`@R$vhJOsUq;hT`Wh(szFZ@IU?Aqk8p1BE=oVVxm z+FD12SC3DgYB1kS_%d3t@?nM2lzWMA`?|tI1t{g?LyfD9d4JSiitP6zYN-p7%&m%w zZn?2%E!Jmc-%CD9NnNPhy~{x{PpEXkTUj+C9gBmS;HB3gz@J1f-Xul^?@KVt_{h|z zHO0vwQf=1fs`w%K!E$#OyOUO_X()>8@1O8|*P83-xT61Z^H4nguT)t!!N2QObefE> z7`L$o8##b2zqv9WoEV!M3#ril09{ z4i#Lwgk~YDRp-Jd#usd4rnmbrVDTTh_)h=Z+_&LkMTT>132I8t&b{5;)F)Rw%L@Z9 zQw#q`cz$T`vnNT5NBW|QgQ+mTnBF714KvqV%6~3E_GjlaRU?tF?@!O#TBDUWhS~*o zzXEY?y?*`rUF4O2&LG&Vp0f0psIY#U7wLDmrZ25P7YH*E1a3aGdl4V66rC(`!)fB} z4f~cV8R;iuxj<-iB?zRCt`?SP6IQJ-(r+#_|MSeJ(yp$q2TM2NEvKe_y8Z~ZHnK;L z6giH*d$OnXxsBZbnc4q0o%?^W4gWnW|2_OK0{cIx=>I+Z-)zIbKmTXW|9kkqm&Ct6 z|M%?wwIu#Myi*eX8v8<|Lczy6-9pDl<>fjpwwqnA4pDK5Z+Og_?4D1KckD5Xa8FIN zD)hVr&Cp-WzJve=^JB-SU#ruVU3&blh^D4qAz!cds*;KCnPAS8I>w>Y2rhlrUN+#ZDfMR z8}Zx4CPhZH|NBcTQ-%63qKll0t9-n?yncTcwpG58@Yh^m;QNTU(h2xFnVV+}5oMK> z2(ZE~T~V2k5OwMAD?(_Dt#^iZjOwoi>696~;~lYawB%qFbTqhnC+t54r%y%Pb*kZ^ zsi`Rrik^YtOWxNsW^{IT_PsBElN+$e50{`mxOL;J#N)?b3aBm?*>oGy$EW7>@qNCZna$Zr6@l~Yhu6s!$?N4N zIMW-7^9 zi<`1D^~+Cy{%(F+u?Bg=8I(E{fz2`1@4_I->KVyd{ujl%F-b;Fw7Rp(D)a2XBo0&+`-+trjn8?cbf14Qd zUrQPchFTzCJQVaxfGaXZ`>YIog=WH2O70+3HbemD_>0vZ*-Na}Ho5Ge@99mS9v;~{ zKJY=}Tnvo7XRC*;t!9V-5umIF!=2c`pmgM4;BhbFC0x#9KqpBVaYHZa&mR zsF(TqeZQ;jL+>z>1T!zcR10ZuLQq1$ufY*l`YrQgE?dw}lk@msQ60kJt@cEDwH!(p zm*?Rzq)P5pJI=8rWPTACSj$!&G1KPv?xD;4P7Vzb;svmk$oYB%%T^2%Q#2SMf)d|T z6O`QI;*8Iqw*bZ;ps=;Kune&B*7w^*U|fjm8bbfA zAD^&L^6^}$k@H8O87Bf2BoZPZjFoszu%w&)#VRM`U{HpljSQ4Hgn(O!4ka14nECLF zfhG$u9+1#xbKjlX*64F#;&_e^2&STDpD8^(eddEn+OxflEX__KA1`NmhBxN$%{bK^ zkD!}z07<y?uWzO_b{y6{aH$T;)^xGZ{He-IE~@-rU7dJf8?k(^_E*xk+Ymq zGK!l8R90d+3xZ7*hnZ^r!T(TIL*qIqqL8r#WQ^nLF%II}!#vNl?qWfs-exGwFD->i zx>hN2cW+Gm-X4#2Td}eD^z4qu)(_cW1@?vpDcY7j&lu1shqC&m1Ob4zh5Je{S?mOn zEVq1sd~#{BUOAfroe}~luxdaQiBNte8(wW`ibDq&JIAb_<*lv znl%o=Xxwe~6*Fsk8vZpI3*w$nj3$9VJJ3s%vMVU0A&kua&*WJ_;r9xTjuP;rAFUzT z`I?!zMo2erYzPr7yAoFbXT?Qb^?HnTCwJ$=ZMm;u_1?Q2g{823XBX4Gv+jTArx*I6 zKQ%-7^IMJ;tO-VVpf}%u3C!=0(6Z`S08 ze^Ph!&dHI%g(bTwpozX-{XjADUX7}ajT8_hhUZ(zXo@N-&cC}W zM-&>$1)&fZz-5Df78e$N0CQzO4gySw;Z?MneODBE>#aJRmX=S?g2+M?Vi3jq$>B|g z>5!(Ucx1&&s-1U0j7vg9$I`b{79JUS-OH=o$gEhajcD3OoIy-1ry}h=&~gC%f0Ghf zxpNa>!ElP^)~-U%FtY@CuogiI>>a-sE{c9J2Brc6CCH;ugU9+9arxB!{HGMjaSUn= zvnzsvU^nSBEA6qSOd#gCd)12?AGI{_3$N&Ca^mX1sgs2T7NDcI)2EaHl|rG!oe$>* z3p-H$-h2FtJQ{dFcX=@ce1O^Sa`Zx>$oaLNM0b|WR86?}`!DOP*j-Tn;!%Zvv z5DtXm1oNXs)Xm9ZHVd-QhfhlM?8seCk1fKlTUJi1f%U@1O;a>6!Cs#x^DlC`Rtt~hK$t=3)S%SfErGX0?phgi8QCQdZ`9Bf3KPTy?t))X2|Z8=L+4 zGt)jH@$+wl^t$TjO9pla0mooYWZwVY!=!DX0P!~mC{_VEyYIA0fsdW9)ppY<8FbfX zjb6b3xd7dX!{+x^sYQVa9$gEE7xeq~0rH^i=D#Z&0}^2*1*5o_rth7hex=#`z`*s1 zhF@gf-gG)>9hDWg={h$S0Icns6JS>Z+yUH9{myRnHsBsLn|&R0-WkM;zrnyiVGIpD znB0L)v-G{IZ%OlOVOw$lLUl1Z--v$Snz?qW_~3hPbKMXh-`dPVf}Er}k46XRZYcnD z1#1f2fa>krEx@1(dTbICGwej7*~aRh(13P0%Bn-5!t8sBB-R$}();_@^9f&6Io$;6 zo)HwTz#stBgoDy4GGgsYObrHG?EHr={gsA}r(uCklm2Cgmd%%2bFW%PJw>vz?^=C% z$$~y{KHH09pQ68VkIVnK>@&zKRMgZk0W1O@9N-HakX!PadJ%(;5;b3~b{k;iXvQZW zKo&l{e+(d=#gC5<5Ya9VYP89R0FXTh)j=MiU2y%u12HiD;X+ol+4?1A4Wk$2TgcIG z-;V5^CPV%d;zeL!jK--xcG=(bV!FD2(f_#CCGYlzHuDM)XhcLH-Xr8Syuxs_cZPui z>9?Y?GJ{@8T8#VJ;moVMV)7~~m?%Ik&;MC946yFHm7$gW$4KsMsXrRjqYd_mC=yK* z_`5e19BBez{ok2*GJsUw^L_Kf!^2QWDS@}92rfV)m*YjQc5@gBWHCeT1%+CUcG1;8 zf7VM5H-3Jt2gdOjb^hw{h4!dl{s7g$GA567V@t@jI`|!da8j^cV4y%wj=-DXW6Un~ zn@5L!0rhFrx$hY6?mg&(i^IjK04A;h1`6O<0OaL>+Top<3<>NbA0cCCw0`fLCDo2C z`mb!^{&%lg5b&Sf7mWZNe15wfzex@2>FEtHV681dPznTgP;79``l_6qQ)Cz;fhH|; zp60BnshR7Qv;ELv8@4+a?Fo3q!YP6g{sjiOc%UJh0q2GPAF6mUaw|XFNi5n{!Zhx7Sm0-h)IlLAqfR`_vzDC*ftyx`V=T> zokb{cl5W)GW9(i+6Au^! zApLaF1Bx~_49d~=k-!Y0mDL&qK=%w(_~6Em{jFhi!|Gb&u13&pvG$m?@Y2#ndQp3J zeiPM}Pmu*6SXk5u(!Pz2C#NO4USU5-)!(04{uM+@}TT=(lq`l};E8p&@g`!d=g*%t#cSI%lPD4zjeg;2h;M~B)UT^f` z(;YXiJfsCcGXNoGjT3lwXCUJbMCy6B*5<$RV~ka;MZKVSo0B^1jYS*Ub2n^1J|H zZ}2@KMlu$ro8o~;RA3{|0QwSP5kMZ(p2$ZubvZ-U_bE}Z0>xP6O7<8e-zy@lJSl08 zt_;_$Th?U{XMMpe88K=^z|I3LYuwjxc+H;TuZ{1804;{(6D{=_MKKJL%AE`xHcn-4 zK6x;)83ZP}Bj!XmLROd5$FMNp*Z^LT_ebF}w zeH|VA2a{4{h!_s?9a-d>2m<8&fsOjD{0arr7$$Z*h@6pFt|weYC-}YR?$&vYS%3A1Q6JUfIM$daUJ#$2^Y&k`$vXgbkB3OXXuv**#|^{ zvy0Z1v+7MtfY~*4c8DFl@T}wa?b(tXolf z`s>dPCNGeDmBwCfSfvnOSb}`fV|SSXNnpjoOS4ZUKb5t#+GeyNG@i&{lY@L2bXBF( zIOAnK_4WuV35~1Smxi41{g2rP zVcEAJQYP3GfKm$aJvlv!`!zDsy23yi!Q$wYiir4XYbDWB&k+&}5T+}{wVQi2 zuN?jc&swKIo2>b`9AmOR7KJjYdAJkQ1LA!mQ$r0flWgR6S5pXC?%`Zhv9u({#Jq(_ za3G&IgH}Bj{0j&-+5s*o^*f_N(wU8`U)K1_yrN>dDM3X=RAIl%C+1j#34B;^ShG%% z{64$2tHpugdCL1Q)4@B3MM1(M+fZ!3CFA*sk(w|>Ib`k7?Jlyh07->p-b%RfQ0kYc zxvV5oLeeyE4Iw~VXb4mxr?;3#z@%Y+)_Qw-VX?XDEMal1dIJkAJ{lTz5vE+NB>}^4 z_w8-`*mQ5IH2z{Qt8y%hoJB{>xWp5FjDUbgFbGfIFEegmfykZvKh!$u6+;$~Tb^xu z64nV?St?Yn$A)|45I&va=Z2F$2%)zQn3IJy!}QDk(1qOBnWP`3xZQqX|P!q8~u52zGQE4%5PU$<^I$) zX4ubItT{QI==a*^_=D}8TWJ%xSXfq|Fx{25-j+pu5NLJ`exgGqBV#7ZcJO zcXN-44`#|Go1=!`IdtCh1eYV|_3MPO-@R2;w-9|ELJH>R57&5ZGl4X9c5oA(yv@s_t`lHqXSi{r42DGKaxV3$e0RD* zu~Yt?7Br2lth9(xsG?%f=H{&E$f#u7=Yn@*P4J*F#}GLe`o^mby%7|fv@{V&nHdC> zqksbjIjm>=&2aEn;YLH&$q4K6^nM*m=jPIekdj>L?1cc}`^b~kk)Prn`OVJPVN-V+ zp8`dyqWp(TNOm5a3DWx)r9BPNhsRG+uYM+o;Z5FNSXe;oZTE{QpG-EG7(f<^77;`) z5C*DnX7C#fs__nKd5=q>K!uF~N*@W&N7CSe25)Y@vg^;1hR9?vrt9}3>&+K5oQNi=kADK>1a6J! z>D2UD26~kXBKfpX;`@OGcbePQ#_4nvQ$e1vKHdDxWlri^re=oc_5*uo#o=5w575KL zfcp;;fx<)%zB{>Bz>AE9t;k}u95_{DaAIcHQk&-=oSohgFsyPQ=?NbnIH=;`4=b)MQ-(Ic5&02UBLXz7R@1EDbp7OBCF zSrA8LAz%;NL2H^=;x9UxlY^3AxQvGGzs4f|0vvw$F2Jj2f71$a62K<;7A|4fd89TTYtk?S#4j}?x6EA%^`q08PH(Y|?lB!N`c z;Lm`g7g*yD_s3!o*hArCjMoVXAM*cnfu{m7%RmtYr9*xiVnbOOnq-2mGrUZ0ISgf= z@AN?b?jxzu#6JO_;X%g4iBa8TV0a}&2ftV^24*X@PXj|BUz5Ypv21$7hos?LboJry zKL>R`%u$GS5i+IlT7@Z66W}sLu3)Hjtmtr1;%*L?VXFwf$D&myIAzn7>Jk7x+*fqt zp*xGj1qmuXsqjA)<2eJs7BK}fb^aQnF}{~$*39Bv+G)AJlmV}34I8mv$p#(hyn{-) z`1qlt<*D#(2w%9Si#qAP1MdLjG_NM|&NtY1_4mW!a;`!9>B7&hD-zWb&TG2C5Z*%! zhOjHbLISS9Kr6wliUdSYVuq6;NN^wbuMeQN1a~1d(CPV!>+|tylH+4}a9YTNP}Wy$ zKz~)DI!2@#6IdT^JLu(>I(65=p|h+Pbco#5sNYl9=V?n{z|g%pWkTibZhR0yC38-d-mXF620?nA&vUAo zv*QFKBXKgr#j@Z@)!kj5&l^p@V3N^;D&?}VG2aw8`fNsT0bqd?)DI-d3dPJ7vHeP! z9}DLrl^euhiq;gStSj(1n1(x>7JepNpNrE;h!F8#y`}_y&5TmpaqfvFGVq(qGWE3< z8#F-uHwi9ADR3zccCwM+!hsKWcWG+?ZVlM@k!QJSbF8^HGkZ!!N(VL($Xwix?8_QM z04RteVPN3(?OULuYvX%(2jAs=0w&s8hd^Q94-rvfibL?B#pb$`DY-ZB#h z2W6dm6x>);RUe=(|DL+`-{L;%WaJBdnSvq=KDGg6>d8IJ3$VL>+gqs*4Rs9y7ZLc@ z!BglzTHYYDw;Xjt*8skGY$zsq^zsk*Ar}G4svI0_A%&lrW8n*=0PQtx_BkX{4?is8 z1sxepkSQ}C2d(i;rsN?gLjXuXLxE$af#9pV&3^oG&k2ZKblZ;pj25*m)C8*hXl zN8kHak^JJZ_vEy+L4~UiP`=6W>_ZcB* zgLH=QKaivVyc;+dfnXR6^2{^BHw5A^a0vEN_{XI`Zcj4f+r?aXr?=;4!Cw;$Vw^72 zbf75NgY*NYsQifqy*My^-o0C|byo8wWG*KCjzhS*VRyH`?e|#y!6?4@rTkJ2S2a$Z zLa4KAT3z)8v1T6Wh4$qIr5p|FieXTHudY1Mr;yzT)a z#talMurpJ?P3xp^(`CzHVGtJf$>#N9Hcqj2+lrXcx~UNILn)i(yA7I@Q4dK)1yM#< zIR`mDd|kAawgyrlnLF?eP@%?`yD(?v7it@3d z7_k}Tf*k*g$M+utmHyr9|F;$3KXQxze)!)`f`32!A6?0RKm4CYgJatNFxPmhO)4;I z^GhbG3MNNRhSleOURClK`t+RlUsfB#?;I4Np`KlV@Azcg83x1L=g!F#bB09O*DRf7T(=@10r+;vF4Y z_u>?@-+lPl^7gO#YEPPkjnpk&x?eF%pENflT~DX#CqkRf6fqiS=B;I{hYR@5Smsmjy(3Y=Y<2!r zrF46X>v8cTh3nehpMyWUO%SYI+9f16WmAbV?LMu|pck!f7LOrmb&v_I&txcgF5D6D z=XuZvmPLv?lKB3Xeu53gxlbi!ZsTAo!Y6m|Bct_U;1W|$PEWY5sG>r#{FmVORh`JN zK-JJY(-OPsqD`#4*X2Ju50dTR4SbXnYQ0bji{(;OQ3CrCdX?b$!ubLkE9qRAq}uOO zQI@+73*XcnVSNzE^@)_td-Rt2=VCh>Gr82`{(+Dl;ypI$u#1PEbQs1kw!q=$K~Dmx~AmHy_`y1^`0A}_UoS?J*@16W~plXYqw zvL7~mVnnI3ll#}WtS4a_)|h|)m1&|)opNV9`<);r3XDSUA4^`W=1(<;-u3iG64IRR z9ry3Qw@JPE+sw=?Y+@okIfgMsz)g_LMx*e#PFb5MkFaJTYes~N?ZopAa;BM`0JuHW zNO#gj2RR@h{lUgaM#jH8-DXV3GRs7rdi1kx+F4CJBMR07vLeI!S`913@K6r9Z;Lo^ zJH2Pxp6g?-vrgno?bzP_!YdcY8XvC3YoN<1#2jFT=e3WxpA_{rx3s(|dDBID{Qlb? z?i_AqPttLfJd}5@4voKg{71rT_g>GzFAk;T2U<(j^=@u%&88tlj~m>#WD+^#;RU@! zJ&AEiE#o0?yu7_Pyk%!M_Q^a-7UIRqt%~u2qb}=jbv_wrt3+eC{VhvKNVrZT;^v?O zfiqc|-TjRT8v<0_@qUyuyQbn^+u_^?7NVB_`uKepsd>rCo{f<5h370Y4Y7ged{tIp zy8+UwCQq%c{k625 zDWVk-B|ois6wgV0`J-}_c{u5rOLuYcZ84ln_C5y(*eLHD6}^0X(^8$IE|*DGfmY2EHgTs%L{gVw-=zNn0U1N^9N1j%H zF4|r6Ao=RYD{yNf8SscKt{8T<2Wd3sFfzT|T3@FlPZ!z6GEW^Xofh-5e%Q1B&iSX&GsHhO3f`fw{HjZ{4Q!^dk<90>^A8vHO!AqL-{QEL}&3e1!Yjr}`;NW0DTAF&8 zkN46tqaF)o+)|K2cx}nkexj{); zV=U0|0zV>Yv$j8@sVC)5V#wP}hL$3KmfS-uMs!TcPM(a|yc;tHA3PODZvPET8pDkk z?-Ugppa`Dkn_maNT9z^{ieX5)*cxj~{aTo+7E8nR|DM68mo*P=421wbHocv99DX*x z#A8dXt0fY`k8L}q0wxmR$$xaJk=F?F@+mMHZ%S`qXCImAZ^fn;-Z0&iwu_yYev{0| z-e;!YaW2gsS6BqO6u%kW2n*-y4;|#TQYrMWmL%)6dAaqFn_Sx+AQi%?4f_@-^EIBM zE08_&{rmTfU2)z5lkMNWT>=fHwv<(1>h(M$=W%Ds*!q)=OEEejB9)lnQ@E?E`-5u7 z3mTA5Y;1aH^%xlq!tZu(c(EY#Ow31B#35N9#f8VdUgQ>`1`Y(Y`_9 zS#>En`7g*!Po8WZ?Y-j)GBRwhP-W+?IJyncIftsN^70=^>i4dZ<72^L6bUhbEr#p! zN+(oT5Hp7kH;GTMbovy*%B9Ovo2|cu`v-O~WKB(lqQre5unQ6b*!4@83JJ1hug6*z z5%gK877O9kb3>q9{xY8)WOHd1vyZB(RV(xzQ0>>Q1!+IBtr)FDwI3JX+ zceZ>o?&>W{6$5ofc)vvdHZ_D~^*+SEL99JmMbEdE`kW^CkM)r1N!#f0Kj|H}n@lsT zNDd#Gl<*C)vbMf=Tok+_@Sb&h+rh16sqW}_9YpzskxIMxwt6V<5y=E}o=V&m8REXr z**wsq>rCBC1^}7`H^2rBYP65`Jr+2R=+@RAP(BcYU#%;}h4=HujoCy$q)rcx^0pdQHu?zNuIZ7| zE-)>jL8Ju^|1AJK9LyKKyR$GpwV?Gk4P}a-F4+)WZruY?A2%3kKs>^emA#yl{Fsq_ zi7sEu21P(H#&mQCn(ocO(nBE%9s`HI=`{a!1SJTCz71)>WBc{udQaI}ZRp$6j6 ztyskatIFUO2(d}xRbu(tc7XsM02Pq|@+)9gM?!<}{HVsx0`(YAda&$d_?%M$sY$2) z^uuVmdIuR5RTu&s(0tNEU471n!MXMy6e1oBOP|C`<~mWlAiLyQS9XDtXObZMki z(#{@_jF$FQQ$Q*M+-e|YBVLtj*YKc$Hw~%RJ9oy^GGz$A)@b9PKt^!&I0*6cBZd6& z2O6v6c6#*}(6U+my@P@V7KkN?A3|1i|UOjJwK2-0A`xctMDbOLy@L3Q05x-)x{Hr{F=RxWa0TQ^AlA=tPs3D-G zRe;PL@0$&9Ua5Y6DhLLV2c}nGo>8U`(3ZJtJ-2YzMh}`-f7AZ*z6+7S%{>W}wRK3P zF8_NZhBsKC0w@XTmD_bGUqTeJQ|#?uo;CPnKp>liwcYe6yd_t+h|X@4Y8}KnxX&n7 z*AO6p+pSxt<&B723n_lLTCgZ8Kz2wHbHM>m%^k@ONc=(8T`mY;IATsr!rSw*Y>4|m z&J!>lZqLU8jKH5xLjK9>NVb*Z@FVrhFBX2<0v#c@A}FN67X;4-Z@)e=_4M?suGBNkaRQ+)UdT7>FjbFW##$aqA`+kaT*9~LDpEr%n?&x|A#De z@4@3mV`c@OBqX!E`kVu<2DSRy99=h#*m;CN0%~*+Z<{LrpH9fM&QiaLi3#V_TxRCr zKde(0`_Wm(_r*YyaZK@Ri`yG#)wV#X-QDz@VcPzU_+7;@~RKEEsAB zxeVBz({maL|1yConw<;U$n>2=8$eTS+5Y9rR=R>M{$vyLHDr8Wi6$Wp$Z>5V6R2*V^FB;`ERXw{|*u zASWPmYwfkfdoTMMF33UGRUgE!^f+)p z6l(&i^>%F|udJ;juyZ&2W3?dp+wzbtFm0BackzMyOw&f_=FOIo(gtX0(7To?J#gc8 z-6)-d-kzunZvbfNPxh8i+dlYV(B^F~<*NAg zEnZt!3A~;L_h@*(IDr16&#*6QD1(*-1BiS%Dhhf3BtpRubp=|snqn{;pc-(!<1|rN zyJlQEL|ULABeu6_IS4TBE~!x?FkH!tT5LDBs--_wkybtj>ppwA<kzcca4A!OcHq~`|fUGqZM@Ru9pW?2?JKR|o^7IqmT@-5AVjUY4A ziQ}q@)k8osN!YqTmzdRyZUplznbWAA2K8j9FcW%;M;YA^zqI;db7JFd&u=U+R3aI% zx6)&B?tjfr^Z29bT887)x*^5Na7Js`W$C29bwq#v<^gh50^G}a_)?-y>o{;HTlCQV zIxNi1RsC~GJQ`XQ`N6KxO*0wky?JZCjMm6U=t^p(e&cit@zzcc7YRT^1F*e8l-7Z3 z;dPCN_xX6KDIVg%2$DH3>FI+$%7gS%9Av9z)+)JEaGVjLur^%R@L=MFV!+sP1zdn3~*!&sR zc=IPqz2=B7(0z|4B8s-;2^ih3+;%`ijzVzZ$Z$Sf?BbOMKZ~)=nlFF|xb<$L!Aa)g z_$pu>;X6RQr0A#wKFPcvW0I%*niNZjwGDisvfv!~Y`NIzfor(sKe@X7E5HI1KV>FyZuxgb-?7U(f@#r4{b9k&3nJ2)C)&aIfj> zi?pNls2&m^%c{3{zx7KM;hXv~ul~%Z>MHa@S_aA(mj~_8_)7Kx=X2cd2-Z%jSJ~To zUtr<#t9D8)Sc{H`Xin%-0!Mk+9&LAiaN*al)h*vfF3q+dH1d79x z(2Lb2t(WV6Hqw5KIYXcR<$AwS`C8+-69hGAfVWQ8_DU~z)UZO|3?jP5u*{6qdr`MV zCil>u2U!jk(n1dk0a8Et7ODmHgj~55p&G!MAa{CbINN>gs=j7yA1th2ibcx-`U6X9 z(rw2wD~IZ`GBJ3!Vclt+Pav5AE_Zrk@LYlD4y4U$B>E2q|8irkrY4n5z&U`uCcmQn zTcGjUXtKRyK_DS5uQXF11_~TF@2m!omqrJ#f%zkHp{rqm@S>TJ{ti`^LS+a*mZ5_e z1lKQOeucgOf@qkqrc;0(jD~Cx>{K}ds~oou1(1dl;s@24&iY{oj!=kFH9-UPllvaP z;XkQRsBTQuU1d{#KIj^KPx|%Qz6lj@oMW%Oc%SeN9sJNf5hcQ0#FN%0XG4G&?>1sLkVOH^&G6os2%O{LW7zr&J9Y$ z#Q^T6Xd2;Ke!B@g9cLhKu0am9 z?Ra%)?)Tw*(|ASJSJ%ezWo4n?bfj(evz@JBrCi0R>wXQ7o)-rEvwodJipUAU2lzUH zDa7xztP7r>V2u<%_za&M=E-6G#mkZ}m-Y1gh2td;T`X`jqqF6Fe%622%S;69DlY+W z0t+)-580y=K!^oE3&dTNtb>YVLmD`rFLqz^eUK1hSAV27>t|(U6?XlhD8$;a;B@TP z(qIqmv1UN-Bdx)au^ME501$E$0EROk(&7MJ<-u&7(!~(mmk7|m?gTgLbf{`a3JA17 zTZqjsJ%Hx)d+_|_Q%J9sMaamh8Fv0bP#3&jPTLpnM6aUgcIGY$R~T zK+m#9w@1#?lN_NW4CWI~t*#O=_^eL=ISkHxADx1}`7@l3mJ8MX&Y<4+^=yL$i{H4J z>_O5e%)UNjSNjXmZlhbl>UV0k+UbR2;(35gLvX%x)FNYqLj8D_90DK=weC86CMJJU znqzdRRor$MRzqlqd!`S!)~<-IQlT2blt)Ur4_z}N)l|>(?RnCBAYeS#~7Aft=7FxiA9E+`1qbDSIDfCWZ!)oUlqgUl%3jLAEHsvJqB z&JXAOaZDg-fI8x8y(Q}K_%B}?co?rg)D5~HtHlUtZLlc^0JZ|GK$uVh1KLV`4kOtI>$F0DMA+$1BDtU!+;c%8CY5qDNhX9bH}0 z5blC7l<~sP(*)CGZsJFlZF&vbq%$)*bcx_$r$ZP+@J)c#V;X*81PG7Zv|tzk&*F)6 zX9l?XTz77#xQ&6E2>Pe6(`TlHFvToo0v!CsR3puw>iLr8vpY^!IOOF^CifhNl4vK5H+ji^Ln}3mdvkq`Zxn0(x-r^17-X5Wf(uR}~7e6LVN?+-^{rO@^ zg~06XZ1L=FI5_S|4HpMMPV78iJ_VR~KD}-`+YT2M#YhhoK=?KqAr-eh5Y#!+%CA_> zjH#S7e4)(Lr#^2DUJitm1I5ui;rY)`I3KQ9{a&U;qF{hB!ow4Q&H6-TQNTken&qav zN2k=wmse1Y&D$kr02U?e%hzR-9Pb=Ed`xC>+6ya_$p zsVtx%()j%N@$W1svXN;Rh7I2P8I$aWpYEC(^XLf(*lll!bxHyMo*o?MFJ``JMbc^; zXc~JQ%=<4a9Qh2xeN||m020%?r zd^{c)`L^n#T=FIikF^RO`&nu3B)+VD`S(LxePG}fplM>5naf~ueT+%@@Zof@XTtmSGxbk@9Ghr%>>QnVh{2$Oq}U+# zLvupVc1=6)k&%rD9H9_1_CSscBUEp2s0)B8ByoHjdCvM^kwKxfOVVcuvt$5zAeE^q zrLEo2OI2nW*Ios)KAXsDK&j~+IRJ7!;->~=8O??~ds5{~`1apo?;cK~P`;@9ccnG% z)Lj;QoG#DL11ls%83#|~LMOmm8L4~w)Z1*Yp>qt<8uGTbuSUrReCF4@k#2m(BwCS# zht#{w+Cfpvc zFFimiZpZ>f(@$zRm0xJ)k!6C>9$u~)s;ghs8$bz)f@m&svO?^%XKD9XZ(Fi*x2+HjsIx@mS zY1Wxe)4sPNLXB9u&39WPsEBXuOS+Okbgp>QJn>WTyQYA;DVX74nzsuTI=6x7{zJNz z!|27&Wt}C~Qx&00~ND5NKC-h zUMZ4(_?ob_dsBBe-oZK+us^PpTM0K!F%I15<^U^Gp1RTLR{MiLbsiK>D_&Tj1w_rl zXbqF0!aXP@+3PRr(IC-_WwH4AUe7%_oe`zLdhb{C*veXUtFP;?f(8%g&D+i!hD30b zV%N;Sgy_6<=jb4skc53p5;PMA3eEYxI7s}6c@q5bApIAD2!{hsdR8T(EI9LA5qHH# z4r5@mcRk#sful0Qdxdv|$TOg?g~+1}Hl<+J4Ib1hNPGztGV80%WMKdtGLF3Z8yf-1 zLEvF}-SC=BCN6+e!3>UAt#9b2{_Wg>_%Z@qilB_Tiwr#g0~&}iwUBXyI3n2g+kvWg zu_X>(_m3n4vk@BIp;UdmQT&2c&a`t-+Azra zxxuCUq&aXNB7SXOEUl;4Bv6w+Mwfwc=nEb+pxQ=&Sh%|^EN{wT$>1{`0`nwtwLUFR zcm)n^*IExVf(2dxZmzJBhGJisUepM5UGU-|Lw^nr*^vYO3X3bJ===BezSE{{aTK_i za)LWxBKy^IPcsSPh&()!86svCHU~VwD7qwJ;05)1=qr3VW!syaaV1a}`+QryO>1nL zW$32#AXGYAQCO`&>+;}Dkn&!x{=y-8Rs6}t-ml1jBaYVqZEty=4S;15qvab|Rr=s` zU4(-S9!QS>8>LhCHZ)xNL)iW(8%~-*AlNSbHoc-4-(Qcf8iYUCm+$0)I&xHOZZVW* zCwUi{igUbsEueU#@U5mse}8{WVq!yW_P+*0Bx!*WjUx7xgQ$Mm_Jo7qMA#n zjaq)(SgO-v*F^2>A`xH>lR$$(yJTChO1FGD>~~pZUV@cpA{f7**n!VVYUDL&Fsq9X zeGo*Vg0PZbTpT8N`0hgB6z-N@*ch+ec!mv6ELq?Qp}p4$>D$9D<&>>qP7Hj?ZjY}A z++sB>PFaP&+@G*xydVd6Isw=td;9w2AT9PjOO`RQ6XCCUo~%84kXo^yCc?u7>nqHg zpv@)Z5r8ZsEV#yY8;GP#-xUlPF*;U_Z%o-cCZrYH9g7Hsy4po<+AOPzjR;doU%R&CqfCUqL?4#%nufqn(oU-hE zV+m0*=~v0|{CQvFyQuRNW1r{s;1#f^}1*+$_^fkQ$B#z#P!o+m>c%sH}F|DS;7CmuOQT!P^2BX*xvJv3*Yy-EKY~ zp-fJ;gyAy&fck=NMf>*{0+_m#BvaA{3nvTNxJW~}n(ky3Gpv4}jP+dI-N8bILrU6& zh{_PE%Gb2^rH8p}Kr_CWCF!^b`2~h&^gC_l%}*sTq@76(!Y`KRJB=vJbaBIv&BgyW zvLpyRjmT6Dj0xzw6qf9Fu1WCRa9qlyC;)oD#!){2Fi+q;W~xj4)Z9~T-H?@r!J zTF^B-egD-fWJ%R6FAlSc2eq_94fDqQL@EOD34F3?x~(^uh;EjVU8ibwV*eMAk%;1qyf;z;Fz z%CEw|t+bE*d31L#AMfTNnHCeLaR}CZdoL#mtV1Gb;?~9l0uX)ouQ~xRQ>hA8wAkm8 zZWd8N(jgdlWSjDDf+2*Tsgj`!=V0~HYFnf!$L13NMZYStx_-aF5Qu&E6lff-pkovk zu7(dfZ9rQMveyu%xx=pB79jE&2G)4^fe9YOTJltDB0zFr5d=f)Mquf;Ba0mq8bGui zH+TQqz>biuV{lOIREFq8L&Xxru$@ob>xXGp!SLsxkXOUQpv*wr>dBs!Bp@v|yUuL&}YP;`Yr+e=V-DFV@V z4o~P!o^+uC*)z%_tFAFfrjr9ewV~ki>^|>k9u9Cg*j1KTrW+ccCn+9nLZ@I&~w0WK2s8b1Lca@onh+ z!d4%&aS|C^ncuY?ATU~eANyx%@E1p*ofu_Kv?P)*%<32o_w228fbZ6AE6(wNz#RfXD)gl2Q zA#y}PXn_DwysTI8v%Stk8y0s2^$u}jp!=`sp@m+7$e$dnf7eyc1E?2;Sdg>&`wZ3U zFE}t32gusqFdER}^_w@oauG!DAPx=U8^pc%JUyKmK$?Jn8S*hE>e`!ORFhLNP!$29 za%Lx40;EtloJEdSKzHr=gg8A&<+9K(gX_k$_npy=S6qihFcc3Tl7cTz4=JJD2N`Ye zZEyWo!J0vwV`ja!~0i7BV$FO5S*1TO%n0OtoJe+}px zqaERaI1+KV9ME|`2t@@$ujh)$mXVuH}fM^KeWn;CZ8KoD|}b0$0i(q4P{QWivl zUL^3;Lyj8xVo3+xbtHm}M2VpN4F^6vs4{k!1kiz;F~KpGF$>4~XM@XnaHfw;4gnMM z%J=Cm`u~vwmD>05 zLROB@_Y}`hg>Di;k(rr25Yu_p7B!lW#Q?GPrQu-$0fFgUoj#}?>69}jkT|&UM*SGT zH3~#;@^6YOr;p%)^yJ}OB46bYZ)`K``{mbDRO91Gj3l8&1u!>YWxxFcv4BX>EKEDz z;B88Hpi)JQd;tqAItfbLizgSNhzhm%iUI}%&|JM{umycyK~|t^L0qYx4`-ZLsRG^iM~bATD+M5fd}Y)nIg9Jg)T=Z zFA2b2gUp(QXagMY{BelU?O~E5gl}g;=s)JaQh|30qA56DdQcy(z`R&!$F977do>yu z2huRO0eaQ1p}A~mNCZnizr#~KL=pwV3bK;HnqV?kA%_&?Lxs0P1kJW-S%n1q@w<>$&6@}+}b*y^TM`7h*jRO4LK{H{r|AREW4-qW)J zXc}i~S#3rIu>e;>AW5q1bB8-BKCbQylcunEFe_9vK_U+s)$tOLuqb}Ze$J?!j~`eN z1{GjU`ijO>qt2jl*wUTmqFVh@4%GZ&WzxN*PNa7|$!rEZ8@1X7v zkRMB}2C2b=C9`H%Y#C3-5tI!sM(4fva>Tk&@7-#^J;5%V^Xmp6d2K@@CzG!oN`E>5EUu`u}6tGnf1gZUZAJN*LbZQ=gbtL<&ng~hfgW8fL5FWNsPg_LkiSmWUCxn}kLCyJK z>46yt{NAU6sK$D)0(=Pz@XR40dw>)r37EzX&66m+($B?*VDfk!4UO=!FLV-NdA7Q` zv2JLD zL!uS*KA1UrF;)xQD?XYg92D~P^T6AHofJ^io&)^Zb>egYDx-kUS>|{fp{M}28#on$ zj^vJTsD@l*knU#8a3`O4~=u+Mk1AFeP4Lw}ah%yc$%X^FpRu}D2)leP{H9~~KEAK46g8-qb&`h~?Vm-Z2KWSl&x2VjWw0Cl%NiTQ&DC!#?C zm>sHuGGr9T+EGrm`8mgxA+pPtv0-PATJb!X){z1a7c@N)aMsta_XZ=-VJ;8^s1ZOk zfUka?e}u#z&7#N2PTnC099rdD*+9VMGyD?*bAshpI8n$@VZ<&7eVOuo_aLBJz{qzP zmm50YsnY!Or{Zi9jC{2^B|^qaKYgnE%<#B|kqOL^U+t%H-@lhZX7ajQypm#I-}M~K zr#SZrhpC{T3?@s5mqO)bwQEub0zUMhA<0%XM2Z7>-WCKJIMpOvbhHLWqa=xw5E+b> zi$}`%K}=EDJbRM^j`~$I0Wiggh2@(Rd=f6Mvfdp$OmvN+Q7O|J;9)>ln+~G6_AfYk zE;XY*%#~I+_l{f#{}?kfVRyG#xmMEZ>Nc0wKkW#(`vtahl;MZ?);~%7?oqa`uB7&u z>?a1?`#wTA^9DC>66sbN)i_hmwmB<+WOVhafw7GlF*Lz7%>>!lYI>)X#uhP-WU+G( z7p6g3LLsQMA|F$50fMXw_v$lDd}KZ_?6n9b91hFby*+~oAx=&^^uD8pkDi&C89mz+ zcX&#Rq%ENYN9M6GGYge_CZ!f6hdg}9L(tXGy2cu&;cBR?q!cWZ$$kTzGn4+eFZ3O$YcK6hd~26=n+be|~r=Q#BCE(;}bPhg~EwZ#PVY~^&Ux266~}A!Yt54J}uzsNO0A`p0$E`uST*IXp(>;!p6qT9QY1HlbHgYB?Z| zlq>@|C467nXH3tAP)`8Y=?a!s;F810Hd1r|zX+M35GyH${L~iR44~U1Y(*=+TR)-Olb9%AC%97~KLI15dyhpPSym4@ z9D8A`L_byzfuL_VMJ!%bcTD=P~d z+p|@lEkPgez!k9_UP_*;AyEBiDMTAD4f~v4% z6B9J>QrwjbVi42IFTEHnINcs;Z8a#`GTUFJN3eOw{97Ocoi*rN0|pevenF!;oyJa^ z7|#t*X&tnRoXW~aS=<16ebz+_4oc71%1&#-!Wj!BS+ZWDhSeFHb`qhQ^ zZ6<1yL_P;{CY?YbsR&MwaxWa>bEGDN?6KA!6Hv37KHN8g5h>)Ii5bALYrR<0g~>jQ zvGbN1ymk}2?FhG4Na+^fxL|@f;){oI1%vw?VBGfKV1`E`J46t^MwjJmj|FosKaP77p$>hmSf#(|>I&anqdA z6ln-iZ?@dMDp`Mx_9izJZ4o89FJ-l~u2WmQz@VQ5_|z0U(={5+@#Zn8>W5kKl8Xj}TCE*l zB1CW}&&yr^k;LV|F7qaJm5D!7=ajtq!CRM^Qs-;xH)l+K*74C1P~8a+A{Zyo!omre zU8_u-ZNe#;i}-zCV&^9nKaIrJY_!qT!KC)D`iUYvdTyOfvouRm>yKS$$16eLPYK%F zcj{mro=Uc;f1a@6HX9YqBe_mqsx9O2d zg?iDQ6o;Pa7AgY9bePMLNL6s|reGj}CiRBpuEK#;%Ob*r`vU7izR<*wsOmvN~NDC0yS+800oELae>|9*I zzxBg9(kb}hllCUyHxvL7_~F$aBJccuJtb!vZ7RVlA`K7F8sR8r8PA8E?wb& zKM_0f=T8gUYKHBNbC0!%h@B^udN9@^YeH)C#}7db&3Hz3_F8AvPlHzSmX>Iqu+tQ6 z*ca~Z8r*W2L+!d_U=xZ`ou4=5=Cb>BXaH%!XD5H$R_?_My4t$4m4{{z@51+Sscu5Y zVko(}`RZ4FBA62MtkiSL;dV@#!*UeVdv$o;;~_R~72 zpmfDqTvPLt%ZB9l?mM{frD9-5<_^=3n+OQsvhLlA=Sb^DC3c4S`*XXxx(@4siDG;E z&-`MkP-`0d1^vmj{q^z4H*Y)xgPohEnii$sJe^yh3zp9+aO~mW;RzhHl5usdbZ=0K z%|oZ4V8zA7Eiw@LG5skkmmSB@u%56Rb6Ee!j|erjX+zSnC00%6jja22c4m$fYOMLS zI(S&9tftGEnWSCb4{`?lnwy`yx*xygUvj#&I#PGSM^3rWI52=?k>+Guw`Tog_;Ox{ zg7Ex@XcZKEFRxCn<$dpT9G11x)&8>=%}t^fVD0-0zQU&SGd(p!!${ll<9BwGWtsW- z+dD!lf7s3o{_ya*49mXa8M9ue@b;E=(sHyTN`8!!nV&D#Rc%RhgmvGnD26R;snk!x z{q!f=JvIUjFvOy zS+TPH>uif86}FFIC2-v?bT9bk`1|LTVQK502BD1Foao$s+Mr|~?81E<#+JYIEb(93 zH`eJ{!ULz?rJQwkYR4@THup``S57coHLQOhSMub<;c)Yg=T@uI;Y>v0lbhPYPOOG| z#AI@7WzQ27S*Vq}8E;J&hNOi}u>VZI^FCiFM>@wAEk;;o?YEIfWA;1slK$P1vje#z z!y{8EjbYn;Gs%lLqg5IAUUTC0@haWRKvgw&8ck&8cO5+O(~#M&G&*TF5-zy38p**c zH?ro8hN4TSdq^vuj~S))WsGRoz}=d-=4~8a-jS}Iv+bDqufI;e>>8zL7u$p?SA4tZ zr9@Cmqc|Qd%uWxr{wA>GJ`%IJ-|K;^xBFzxR+A#_IJ2bn>6-<~WBa*IySjnD+HQm2 zRYkpM>|;8poBqCRoVLG56k@O$E%Rl?jt}qkugKxef>tBU`orA;gOE$KR?A~0^xC7{ zy~9SHq=z#DDlRy_gfQpm(j|PWYSOvS&kp_$yhV#s3}mCLZYVG;(M~MVb@FvIjg6Bm zm;S;nJ$=$qYRQ~Z{@j+>&}XY^Q@FqzUuS0^{BwtTj+TA#(p&?cGJ4xc2Y+f;e+}>v zVEcd-#J(jk4@(QJIdz=6dD0GpM+KiE<75p{KT4LU5_ zqnfXnM!ADkY&1u^JpN{cocBhQ$RP)%wM)}(_(nZ}vj)xp{LNT)_N3?KH>qh|$lHSk zB3Y04xvNOoZ+(l;^aX>Qk~`lntG$)E>dW7z6L8aZWXfrEpkP!nwd=aq*?i(Dc|yaozn;4j9!>ES6nodj;Y)iy{-wjB^W#Ihw~GHf(>2~i zCGn$P+3{!}cg=tdlhXaUo=Kkr(NA_6iTUh%)kOLEoE3Is3uQ+o4dS=6uZTICWoK_& z(0i)p)XbLtydJv{7DBgNygkZ*Jl#ksjmLjIjSOqEID-z9h zH&WQoBEwTKzjP`~URv7k&e2K<#;tN#Q6dFUQqXxg?Ks&`Ac=u-k{aR?5)}8};G%BO z5DwNZ*x&j)K9pYPq36E8Zqv8?k`v{6a`@HCFd{PivyFbkL`cAScL){J(@5d(laofj zYb|z>HChUeKs5sKkck24r3Q8{TZdkIy0 z@!P_(rRR2gbKWk^8#n8vD#?``$hPtwn$nLTM^&-H!NQJD zqrdjI>M@ZiMYcv>dz!pC__HSpV~*27RGc!nbVoh9k?*IHKL{i8W@IQadHnjiySMWbP zHjCWM|2*6O`FH=rV=s`~3wi1Px5xgu(vYYBAO0>SJ~-C5G@;b<$PYJ!Df)G2FsU&L z)05#H8Ux0?5YGM}l2qr7^>XiX&rFAKfi|5^1|}Gh*@Tv_D2t+bfG&W(>FbNl^2OKv zo|NdlyB->YM~*VhsLMGtrf_czUC;ioO01#z5FNAFxq3+)jSN%jy9@;lo(wY@r*vsm zn-uV4{VcKP>k?c88@T-uvj8*^|P#xTnbVH~L^I^Y!U# z#jgbZk#FQ5No08jGJeCY%b@$5qf9oFM4KsNpK|pRh0c>7`S^|+Ba37=Dp|5WNK!9l zob7*wY0_`=3we%r2U@U=jOJy6;?&6Q`k)_UgkrzLAYWR;XRscGmpnp$i79iHAyjkj zjTRfrZvGVc^Wk)qeY?QL&8s^XVrcAx7bU2#q>Vi`(@H%VD*cUq)LR{$f^;|^q#2}U zGg+f?RhG^Odykeg_lD4AemSdar*Z0=v#qjfB{@F8)(dmOW-y00b;jwp9v!t-7F&h^ zcprN*eiXg-ga*QpE7L_3PJ(72W9@yr@mRy^Cnnr=YS~ zjuk_L>sKyJYdleE?U*b@*Eu-6Xjt5_0`JIB&JB)hyE^R!PfXe?o~RY_#;tMrag>qW zRSjzN+A0;Wdyz18f+KeO4|=m`?YFycSUG078GEs$K5>$;NKvS&N#6}3$}%1sRIiCo z`}^Y2qy6@{gbpK_-g{{!>8IG3&CEY{zW95}ej+8EtqI@8$j-f`Dyr4b-oRtz{cL;p zuLQwic!l*A%Kh5T#&rAXg#?Pb{nUfvk4nrK%$WI-&hqUVYWxz&@b}~i#hb;ST-x#- zQXnqM(Ymq!EJDM-?kBc&J@t@yM4Osr#$8o5R@NLFhIqP++hsi)Z{ih<$-fF%Ix_{rYPD9w;R>oiTmNmb#34BAo zL?h^LlD=xQ-A^e%{lzD{p@m9k8%_6ZK|hqEFzKi_sPmB=l%7&je^i1IcEEan$?F6Y zx1s*r_gPAY_F$7k+&U){iL<7bmBP5aEU_NfbsotkQ6X*gLv*Q!=Wn9(zTW=xxU@q5 z6{hN+o8BsUF>fNNP%ng0_xn5M#>W-lSM(cFa2Y)*r_fV-@s4~*CgQ~6o~xc_8gWIh zE2%A-CCzv~hS{Y2L=R3cmT#xT0+SayUNs#{8~V~Q{mFHd0_NubqUkH+qU^qCXUG8s zhLV&};K1e6qz4(Uz_MMAn8X&AcUp84NO9YxefC~^ zt#$VK%KCS7w5yog<=xerq=;hvOoEE$ zyrim0hW+pT_SlU!cTdXQO1M5=^TKUFJV#uFP|c#irPNJlNfchlylXukazD;t_glGZ zd+@ss$;y(B%rE@qgIEd3LEdHGkKb!S4$u*D>guyv@dzTAFGOs!jNTwXeCzHs{*=7m zi%bGVGX;A>&M_^+QFD5kx&G7GIuV2>gqeQiVaDxxO1W;r%S!%QNc^-VFBzYY;mz^h z>VnV(RkCU&Cnk>v+}X~@=hSrQiO+*EWk97eJb>ZZ0S>(CTm!2A{b;S8j;ONgb3_cf31fMF|ky29(f|9svY55haN)D324yX%*~B=p%3ZRm@EC5Jxgp}@k>*yc>tGy9t^Iy zaGnGi36xp4WypF7vCN$t?v1qg*5Sec9yB;e*=ociBQjp1Q0Pr8NH?sFnj~0Xgt_X5 zN%|a8l9KA+C?4KYp0u7)Z$63O+efUb#-E(1CF{%Y92opXeQQ+)ZwpN4C+kpaXnr$6 zE0_46y?*Ig-CWiM3M58N@|q@h*++EU!@20Ig>=r202hCLi@& zor041-2a3N5%nA)Z)^L9ohkX@qts~C=?(hI2Z-KbW*dS6j;1?@vO7tjTEj^Fuap(? zCYSZ^r>{Rmg)wQAY{&wvCax$TisItUXAuZz58u%N%Op`nFj-PmRsLnQ z1{{$qS02W3SeO6}@j zV7nxLmiEJ-8KNJ3l(QLD{|3Bam>7La^A$?RbY9-6Rr(838`9yRp4rx2VCRAvZ$t#O-tK zPPD-3Rc?8VN*I>qq=P?G80dj#1in19>}TZf@&CZaqqo4ZQ;?VQXRwz(n0<^W5>soN%y!=9dFHg zpBnQk{q71QFh(I+iuE7#GNtCdsh}dNy^z4 zHJ)xJLatF)KuT<7q00DJDHXqZ&GnqqUqlWSgOZX_?l(G`lL%UG03s`wiwpPQhtK`? z3DwPo!^*Q$E)T+hDVrd;3OhAJ{(+36lvFk4pLB!J#HX+G1c;!4D(8EVnFeDqhs}ro zHSrO<)k3blq(9KU_naoHrQ<=j$s|Mf-#~d^SN?n+y=40gwUR90?5o2C(Qb5DTf!&r zh<~=?B`kR8KYi%VU?G=(;O0_WTm4V0((D!ge)a(g8j@(Xy5^mqb>KH|hBFoh9eq!* z(@5h)HE&aVOA^%KMQrLPVS9SblPKEo=t)V>3z|{`?}xh=dN6%k*wOpXz))ZwjB$^O znxD8IYG9tmlNew*f>5oI1~E#NV0b`L9%%(p7J$epGU!G`bHsK{ZuC`A+1p=luNru}_OzIF5`sOQa()$02!|8qLa4z825&gHAH z!FOTLZ8$h-+hzdPLPQ^jiHtBu-uE+l=il{$Zh#oY)BNgKGUsJatvF<%)%%jpSXS0X z=v8?i=>e8xC8q7`&p#AWzN>uU=kjv<^iXF(mY~+^xP}v_^we{*kWXAa1RI+~3{5OB zpc2x>D5fQq^de+Bzj(Cx^3u?sTWi-0vzofYAt9l)&gNAUlMsFD*Vda%qX)4!&V%c( z_^CqRiFqk3p603V2f@;`d}~>N!p8X^1)6Wl_0!6E=O&IMh*MC>Qt+in#UNM!ZJ5J2 z#CA)}leQ>^q<8%71C>@tS%m>FM{b`ueXtEY0n(>jOBlpVot# zOSMJ+YZTh<7l_y;8L{o74UIorqg6L3M#P+lKV)ZX3tH0AcyE|!xiQbJndXK+c#!8` zq%eGuMA5;bA%(d5c^yZeJ_&=jEd}75fcMruK3U1PC;WHIS6MGa zlV08*6SM0UbdLJozzN7^_WHE;u#YD#5(idMicG5*{-U5rU!R^!cIbB6vBuc;96(#q zZuz)gzS~JVI7HSw9QQsnI{hv6j7`}@*Ut=jUXRjbt7zmZ@QW2fY3O?LvBz?^W`o;E1XreDi;oc3kX!bd#qMMmmFWa3NLy& zOHNH9ylPGbw|a%iPN!bMWXuX-hm3ex{i5$uAPtHcK_^vV$#(gY&b*i|bMD+svpkvR z#Ccc`hQdFB{V$e%Wkw_jVTJKHgLCAx=1|FaHNF?hmpCxn4HpcdF5&!QdSXj6a#}e_E#1*fr8!~>&x|Bm~ zV__c)K75NRN9Z-3K8;QjseKJ1Hva6tps>)7w@cNu4A%*e7|waZ`{1BCeR8s(Xwbv0 z6jrLpDJ#cCMnw&YBo9}-tyk92pSQ@1PmU5dCD=R1N9%_NNaqGlDqv=0E#7Ue`F(p% z#vNblcAbUQA*@v2I*#EIi#4h5LJenRV$5%Ewp2N6erqM&RJW5Im-X0Rg*^ z`i0xUJKL@VOhq&dP_u>t4ofW@LA6DLy63Ga60WGscmAx6mc3&)6wCN4SY{0*t|Coi zeyXKsqjctqN&RnKG~H(O+1U-#@7*-Yo)04-wZN+#ljx5jJ96EcEH zs_K>}!5q2!98x=0@)E4&_=fs{Hu?e`Ogx@(qPc_@iMKWj91_`I?pkwD z{UXH_ErQZOVPcyl;hf`yy>Ps(yEFKgPyS!_4!#tIS|;&Q zCcCTEuw;QQNe}}^egKL<+1xT?T|%2MpsW8={qc(&iQdhMYU`42Ha@^V&}Cc5Odm#X zem=faK!cK+)pJM=r*(fx37$~%Rr)A7%R?HE9#)$#Y97djBGU9dD3{SL%m4uX;L2lG zFK1v=EiHd1`dPJD?yr&p_Le43g+WgA ze9mc9VoZ5x0BZbLSss=rVSvIrgGX^3!=EdrWj=IUxYMn-AT)|2>Mt*%5fU>8rtux) zy(saZ*|4};enZDCF1vliN(-au7f6d(Cy%+QR2~Ccl2~l|Fl-FLE{AKrgHrwnfJvp1G3Q zRnm+XO`G|xQJ{xHQrM=eGXan`fY!1h5O$#%Euq|SKl~@6{?<#P^sM-xu6*@dUeY)| z%{FU*xmkRI&ox>H>CWHMCGF7(?KiFbc$rjM9nbn(Q9NxB5vM^zMtCvdbxH-FdNm%+ zNIvRW6=LU1ST`eirYJ8!`Xa=ckao=rB~%=eC`}g!WA~K$&<(dG8k{g?p)kLczKI$Y z?!l0A{@LByBn+m4oI}W`2W*uDxV^k{&nC4<#!Tl&*J~VKyDh??DmlqoONMQTgKefS ztjr=NhGqO=G%qX20OiOX8iJPdTuJ$^Tif=l6t-NM@QIv40?vO7F;c|}8Q26IVIMjw z;zUmad!NV!__MhcC%CLwVK_-)VxbJN%Ip%|OJD5q?+0>@KtA(sLh(Nv0m&JIl}Fzs<>~5I8dD ztrADorB7H@XGd{N7?P1$Y`t5a=qa!`)Z%W(B+xhHLauw&?@IW9oEp>HM}H6zh@DrP zWoMIEy6i~&<9Z+VMEJbjfK7^Ovtum(7UzAx_Iu*3z9OeCisZQRe|`7gpT7+!Se9|b zn>^cDK^p6Y|1~DyS`_U+k`u4JuM$`{|;d|y_J=no!o9deASpW zOK2jx**``|G9}8+!f)4HHttn7uo~1G9JMALY&ZNR&AEp!CmFf7TAFXb26mV@e2qPU zMpHNB7vpzHJC&=>cLs4h8@IP$Xci%f^zqk{{!oA`CLtpuW}nZUYdx_0dq-Pa+`I9W z3G&Gj6BBXM8AD#B1suV**yE{`-QOF7k?Ug+u)7*c(Vvv%b}jBCCw?B)11>`lE;M4b zb7+_}mg<3_mv7)125t?M_ozX9;^dFST534Z$W|5>NC3e3R_0pksyVwbrDkko*+eyv zLLK4Qm?sxNDiaj;NP?ufd)+|e_!(n?cp)=Qhs6-Lm5-oWqfg5uE^t^HT9?F%jxXqc zLGGHH;STyUXM)jSNQMj~L|XmK&r6QSdcGuHr{Z?!l^{y`hP!$?E35hdToC*rTWj>M_f`U; z!d<=6wT*`x%r2NT@aaXea!FJ9ohyQm-We~Q_{IJc8zHUDI~sw-sG;U0WH)Jw(ee!r zsahrn%Q7Y%vcK*xbR6n0`9 z;11cjElRxc*Gh>zZe;}E{x{Zi?3V4PhbGNNgv z`!Qnp#L-@+KVwQy#*LS^GsVdt0u)<#^>13Vcp)&zilhLBOu!gy4pzci>bznRvWHZl zvn6Ht#WXV^yOy)!clx3uNedmq5ONu-v6d>YCx4Aju%$-#1ttbsX~Qs)4oFNmMwOv^ z{k)b8Rir|wse7lDbBEeS0DlR=VyjP%!wMFJ1E2FRobm05#AG{0;+0#! z%QQc)$Y52JVZ}nZvHY`D9jg&i%SgZkwP8ztd1V0q79@ENbmTu=fSsMlfEyFJhU+ z-@Ruu%WNaX$g~rDMhevijefW=b384lfhO&`X8wB0=>RzN#BZxEP;4A>{Fi)}@549F zI-Lt&YKi5igu;IUA(g-$YGNlLFW+mPJU-CceB(SIL-86rXVo|qJCNSn<8{T}-gZL6 zb2kRfBMLF;c4#0X2J8LN4;kff)HuTrjFT_khILeO+#ark|IIZLO)V)#Y^sQwfW22koM;i%@zI*-ca3ti4|m+E^1VmA#f=Rwp5WR3tDt1eb+MC z#scfo+I~27Z zvrCK=#efa6Q6_fzYyDzSK^&f;qGBnb&v>fqM)GvK8(W*tnU+tDF_h|NIe7NM&*%rr z>&C`ZPH!IddWSv$vzXafCCuZfQoZiZ+=7w~{O>|V{jRYfmHxZhd6d;zzpCGLb`Lxf ze7Ho#yg2CjdFgqHhBjVSBbf1~-G|@({)$PFm>34b5`S3fb^^EOad>&%Z#LS`RYGNO zDaGnjNgp>Ox@M=wJodYql8DwV-$OcoXbXZ}6dv&jx_8%trY$WXEdPu=Ewvp?Ih zaY4*xec^x5L(&b_Mb!U}n_$V8Bv?A8m@t5HwjK{p-;e*lv9Xnv4fKb2c+&c2_q!i7 z2a|7)`n?Y`5JH6DFIOzO;0*~}=(n`_Gz!vaYqfBCylne0umHiQ#1AY!c4h$L?=>EE zY$%&fmndJuud(?r4&`a+_Bu{Z8{cBT^vM~+U>spyjw@5R$@}h@zi2p93KlKwh(%|O z?E>ZrA+Iv^lp}fit(?Cd8}nlY4*vMTx#V_!s!BVIW_$`jot{f)T895U7UY3{!&cRk z&+GgUuVf~=CPQ$y_2Il5Z*3xps1&@u3O~Q+-OXW6gT5ypEi^el9}>_AR<2&VDg18! zcwA#zLi2_M81i!az_oUL2A`PdZ$@bU_^#pH>Zu29VB(qP&O{I2-&4>tDZXzZPzs@{DyUOROytt zW~~~dAhtL*eo@0$OLb^=WFRCP&wk-a^JC;anFC@gZpOiN~`2A_RFnsU!P>#uoNO$3&6=~}n=HGJ{ za-Yz;Tus(-JezOyy#MNu&DAg^Q}mpzdy~C2r2Ow+&-0QBIDE&jMJ`+t+qj9L@F%p6c>g!#2^aUr z)jd{<9QA5Azvm`b66-;_1don5zw*6?$P(dXPmt)i2+Xg^+carr$SUO$-W}e)eYF8GjHx2NM)^l=(?WMO9lS_WV zgQlI+120Q(aD?H&0bA;1=VSQ|kl41t95Th?`W_`Q3^ASaTHnlkv+WoHE zx1u$S?XazR@#cd}EClkT{hSejEXwv+4VO7N~7ook5y{b6NReocS^ z#lRD)T@N28d8f3iF+Vf*Iv^4PO<6$CXghmn7eyvSD#&C1^S;n zE!=lf_l)gp@$8n(>f^o!7_FETjlh+$-Epbzo4Y|?WUz2pk20K+^HmPrSf6<`Uly0_ z{E2XD3EWI~`A6&&s#?Q>SFAyd=49lfe_A&b->0Re%k+z&H1xCf*NvErQAzxyLyx#A zI@&OxxQRA-I$h6A=@T0KD(e0pN2_N5Bu%l)K|@os`#h?!DFf_H9sBpR;FM`}>;FNIgetr?$SVa&#BuwHbE`GK+%c?PKav=V3Yb*bMDLQ2`_#q= zDu$G$5}}q>JLbFrmEKq*iBYs)ci75EoA2dbehT^gcLq`FN7O!Wh+{W>+^dGc-|X$B z7qgMWqL={!)tXo67$^|MWTpqzvs(prbjb6E%QX#w`s%*eo`<{RN1CrY?FgTZlMQp4 z-g=S>3;*C@ME@Qc`A)&8r@X_e=->$}ht%YIJSL_Bkt*96lXhi%OG$&(s-_VB@PT!A z{E&VWq+a6YFGQP8WG4hM2(DMYr{wRKuoq#F#0yQ79Pi; zBBi*+iZX;97N1uQ8#Myj1bf@V{byxf6-x<;B~8eU-D_=UT|I|LUs|*$&kY|hb%?cG zT&{WEPrh|}e`r`3iK3uI>?f!A6K69s>h_N!!@Lt_uV#HJ<>8HrXwQyAduVYn4PEK| z`CA5dy^xN|N`c_MT(7erhJj0f#VW6+j1tl^W78$Wvm3}&g26~-`YKBmpPTc!OGKKb zH7Z8rXa9BeO3|8101LxKV7wHcxKKsm5IyLERFHm^{r)Tc zCp&ZSF7*VxUPfncY$*mP=u;w^8kzyY3!#k?LAy;%Pyd{n+Q1v|zone!{P&0KKoje* zQ4!bV*FPqEyR+VZV{>>ws*=Bkv`TffbkHohv9OTQX1sU-dn3#G@fek{>{__#Vm~U5 z*Iw!YpFaNh{zjIR4^Gcb9({JyNw1?Hm>7gIf4^7lS?Pt}876c&`PTDz)`pXo15Sv7 zdbE|S)3v<)Q77@!%Epbu(>W#@2(Rcp-*FsO&psg&9nUk2G4C^h6)`tF2ZxqcYhvVA zU1WJ-69xrwh;YC+y*-y>!J?hSi7I>gaY}|Q2cPY(Y_A13vp1so-|ZPrF8kw&M$f2- ze5`pYh-g>Kb!;nO>b<@+E{(%GXt^}CHLU&@-B&RVcv5^lchOe{D}E9CW^PA`nR|6jO6E{_ zKb=+vIrWl6HxSxnEqV=9o(vfG$HM93{L=(4-aOeq6K zM{K*CE=V35=CZbGx@aF-@dFRs2AKtE_*j7rdf3{J5Hv_);wT}_*4slvKalnQ=zNc< zUQbo6$rlU#rj1`jxVCm>=7(*J{=K{)zY2u`V z7h&7)8O0!IB02`g!dO_XtOBDSo-yVdpa(K$sx88($a+cIo&xig8gTeG{!xZ@l{h*5 z#j8cERsny4-fcu$Ez8l--;WSKo~Nu#3Ylqyc`+vurxMdw35oHH4zi;aV2_{*4m1u& z@1Nk%w7DhCsMZyva!Fb?f7r1=%Xk_Y@u*pBHy0H)H9&6R0b-2*>9)|?npxYkWp5XE zVpgu-S6%gH0!G4gy>9r|5LEHy!1eX$dVVb=MAOnB-ha>}K!5$PUZPCMt~@=tjfw*! zBV@sn^CTRn1}-E__ska7L8xQlf4P(ZcUXoEy(v23r7_jl0Ze8v%pfG>4C%tzmEDw$ zJi!plOWA)(XCop?YCV-Kk`X;}LLW-o4}&#hhsjEy` z_^|Ya8*zSu3duX14Xx^ucudCi-H>dt=r%3tL65Pu zxP{W@^Go3sqrq31+~w5#1oir!CIw1s$g~TRu|)5|f>MXnrcG^s4NCz)5PQC^*xf}B8C&oQG5&HF@))$%Dd(aW#z z*QW1OBCDxZ!7A&eaJX&Hq{gDm&iOuHr5y#p*W`DC?wo~qSsyTv(egVgQozCwTu}Ga zzI}_XR7uY2*w?1j4Y5l>6EU)2o&WZ7Y5*8ZOP|3$?w=4r+2^9lfc{95cY6`?w7V~+ z`^h(qhtCIdeII9|%`+YYD+&P=u#D=M9^YNE$S6Lc1nz2)6ruaCt54*d^OKDx@-Bra zSM=E|`C?{tcBEaq2EnO?gJeRmP+tA_GbPK7YS zcDYmf!RPjlpRg7VvQ)g=f8r5>{M>I8MjZ(%pNvzBK?6P+w!Yv@Fc-Jdg?Cx7RayVm zP*_=d_|wN%5{aT=k?(zGsrA}IS9jkVBlkyVq|R$OtaG~=6m_jrYEBe@Dw*aVz#&1k z)C?SUBcsQp`~=b}!(MZ`#l_jo*nnFRlR~Z^c2(7g<(6uQ+kPbIiQm`gd3t{6eD}k6 z_`6bNs$zu5?(-0jUH2{*p&AeND!ivb+69u}2DcqwBaPSSl?qsc5rr=-?kyD*kx2?Kk9FfEhyQN&_HG7#GEwTRJsqPJ1$+b2%wzwT>q``>%t)L{_ z=BIBb%OthE1Q>Ls!5eTO(ys|qiQie~=4C?`Zq7p&jXOYbbbP-g;<~*+kqdA^`1wKT zz=p)1C(u7ga|rMdjn9TbpEv`Tou z?$6G?K#{~}cNFoY-#D!`AH+L>%fLF3J+aM(q+I02763l@8Y+tQ($|yIvDCZuPi}P& z>y4X;zd`7=#O@iL0gV;yv6pl9CH04H1D{tWybr|1wI|z?@l{mjum5m0cpc0O%q{Xb z(TxJ4$kP8IrmwsSJN)7h6Ec6*^$1B(Ma?-Q4^muJxhu<~yxi!)kdm z$3+b9&Vup9-3eZ1hA@Sd;6vGsLRB>Qy6*WYqY8t|{n?f71g+M9xw5ssDf>C^5gMQB z-P0+e@hdVKbMf_WIT@UvhSSMf1sECEgv1Oq+$x2}Eu3jQ&H28VnG9M``$Z&OEcK-q zWc6O980sC~MK3fTo#OBspE9N_Pg-VLxr%P|^t`#9wYfYg$cj(P#QoZX5*&^h7Do|2 z_vE=)Rt}Q~i`|n)h7J2Xl(Wqwyh6t?z+QHm{%0~2N@BW|%Gq$7>5aJdy;vF6Dp{_a z837b2^1U03uTQ;hehYdL9SYy`A!!2;Ivk#!#^ZT%4R)OcGUW!XVB^;TW(uw%|Bcq(J#)NQOCn_L62uBGN`A3hA<`Wq`*TJzFT|K>M@g!}kS_+KUTT9PVvbUP zF;pc10L_l5j~_kV&uzC(y@XDO1Zxk^C^@o+>exuw!+OlSd_iCuqGGO&EVg=H{FOO6 zHt;Y(Z2blKrF7QLA9PS=Am9KYfjHgF%AM*6Wd1eWC-dmZa?H(PxO7PmvB!dz8pJ#oBk~v7A{m$GYE=zwvAhZt2AxM0w(HUM4Dsf<`Vp4yFOu23@dR{u zN;f z@%nYD_l(7Ky~QJ{`}T+K%LYEk!DI*E<|JT&6H9(kU|}3L7CdrGE8(KPXT(&|QQdtM zyhx3q_U5;UC!9ByDh3pK#inEVQ?mcikXRhqfc`V`@A(EI0rXq5K8CHp9;>yRLjI{0L zy?2Y>l5c~}vAIvPH!rxG#|f!66?-_`E}6xxe7QM9W;Cs4Y88jW?12Gfu~RA zeYhr{F->96@I;}rFZv1I1_dFujr=GPq;r8Fx9A5HWG@4Dt^oWAu zEZ2#`#?FnW!jbjb?O{%J*>4=XGWPtV1bbK#Sv?og;t7rDHe7DFsjI(9vP$ zf9M0E_oP$8mo!biKbKorG!QqD#FyS@*3lr{+)>C?b2W@)SbuK)`SW=$!;E2|d_5`y z(&qj1vb!Y8qq;0{5u`;VTJSH|3mpwY0d3x7+orR?59?n9$d>Pv^Fu-B9q22y8XM0t z3zgfqpUs1cBBECbVSo0F=lZHN`tiK51vVfhj;@b4NPYi|?U?zeAhWT(|3TyI?}b9S zPl)MKU9bT&1fcy29`k|VYyNm&82o9uJD;5zZa-E3lOggHnGf4$YD@keaNB(p>4#}( z6U#=J>;osivU2;AAdwJwQ$S89;=u169t%-QiE_!w57V&6o!@G0pb+0M+)$4*&v>xE zXc<_GJBKxsl9nGPOFR3q2(76(gzL?*zMpLcF6opOf<<&cY=s1bir&9rDr^Iam?{9q z>#w7b49jCdd*?(Xzw9j8MZZ+adtQFavNs$TK z>DeLF%+`N?gs57^#Ea^bNdWj)?z@<3X3XlKp7s&G?+Vs zU)EFmn-6D3eB~-Qa5$D%3khU0_gw|nG*We1BRZEfPeAa$?SaxhR45CoG>J-~K*Z(5<0Rx4(a zJ7Vii;=x1BD8;5p!e>P8en|`z$_@brK+Uts%H|FYvyb40O3!eDBiD)+%|Id(N{?4P z1m(e`7il4hKo2EdVp28CIyWFdug>0CcTbLWqU{Wt5?(dlU ze+PlPWq4>R-3$RygJw6CBzW5Bw`i+6p#U7pb zic0B3Og3?Yu&yve88QlA3V=`wy!+QpkBJL`;2tc@8M8Gmyekgt78#{R?@i%N#qV33N4?nu!yTqI^u ze#yX~&U?7xQCp=Pj5wkHxs5?Rn3JQcNbW`OuEcP<>_?FTz4y5k2sK!2bm>Wxc7^DQ zYeCH5H|JZAN^NSRx&CtzC=@9pd7U~e);@c||NYCuUE>-ibx|DlGJj4oi|3p7)zK%H z>>~H~q=I(jlg|wz0d)xHGKT@31=06Ac}vviQVwT&5p<#lji>5`kwIXk;-K_0U2{v+ z60qCE)QI`+aEixbJolIMd)jP3ugm1Pgp6$cv96Lv)l##5uq$>{F`^`WGP!&%zOquA z+;rZdyPeq}QJC~M^Vr=~{<<+}i$ad+V|dWv!hl$^g$vJ(iICMjwbTk!wuOt+(h@N>QUxrYJ{KUO|D z^>^fLmd^fApp*eyeg`>rBHoVlKJb;adF4eeITZ8$JTPXkr=m&ATtZ(zgX!;!{O?-d z9}p|4Mt7&p`3VZIH*&CvCCq;gZM7EV-Wx~AGUS`L(1~3PVBmyiP_xvCl%+Tn+#UKO zB{6NEd;Wj8WJrd)W82YqN3PDV<*EafhR&zaLZP*s#h;pYZsf;-?*{ShEf96quQs8y zjyKiAnMaM|ny0^`q9}aYzfV-KV6O1kh-KPf0I96tZ2#G%tk4#lq%Ml?`>vrlB0UF# z@XLisw2J%A&W7Ed&soGXqI{%ajbE$jZCv6M38-WB{3D<_%7F)UAUiU2yRv&5dnjbw z3-#iem?qID9Dx*td_feD=G)Sru4&A;b!XZp9aAOINiStg?{WYK>K@=X!srR zL(R_g8=7uzXHrQ8vH**CAHB}opAP(yVt|nq@IZC(JVXqb4UW0EOzQP^TP~2@vcZkA zW|5cOm2>o0&hA#juKoI{ftv!lZ{8k{$+@w&o84DH1t>XLZ1cbG?4|aX0wskM+zGS4 z3w%GGH!I;sR|@R484}90Nqfw65Qc1#CBtJ6XXn{`H2r=2e^`Lf8T`Z})emy@-*&ST z6RET5s9F{lRsC|V`;7V1%QYmU&<3<$5`CTI6#AnKk1y+fBdK4rd6N2v@K0GW`ihEN=3FZv_#=_G+TioA%?{I+$JwRz7>08bBS|M{wDmH zKGDU05ke>!=s87`SJNQ#gk>#b?JeQT*cqKGfcXb=lNB;u0Z`b-=#Y2@Ahj=g*|?>b zZh{a5w-v7d|BW>0jJCYbXE?k*&>n87<=HRcHcxns1_!D1EdZ(gPt7Z&WPfS4A%99C zLK&Eo!`we4eO+$A{DN6*b+NT}tk#gjS76b1kF$l_feP9C2n0hHu1`DPvgu@wIst#( zH>D3!tc_wjc28^1=ou~iqp^=_;SwRS*d$dy_K9*dz+?%dwrf@q&uc3PU%rpKngj~+ zzwuDYj2^HY4l8D!26H;6Yu@1ic$;2HjOI9ec>;Rl%%*!UP}0$wCnA}^rC&8V)_#bx zdXAf*M~KS_owZ^>g=FPOCZv51>#1nPpp{F#IB0geUeNiRyaEDJ0zk6{zr_|FC*j}c z$sJbCFvwv~&)HqB@cJQeG-GYEW9h0ckHo+G+O4ETq$t{Hs}nU@-h*&jgFsUBU2u?3 zcnA>g;)iv72oAfHXH|L2jr}?R?u@|7k%o#vQ>?>|78;%l>~Vlz?%sA>9&5iZ<{Gru zAm=whq4GNvZUJyO6*LQ7%^or!+K`5!#RPgF`g*$l{Wg1YIMXgFt@I_NU8kbAVMlzw zBaL0^O@j8nOe*qAPCw~CDf%yvg)epw9>4X|MO=WcA_f*@$u4_c7VbDP$42v$zZ4A-LY5oND5)^hgrf8Z{FLWU{34NJdFAi#Cf@n zQ{&pzrU_>n0@;7hh2cQv4bm44TFH%Cj*GP1$;$- zzwS{0PLvN|vIi|1AY)BVkF60mp4XQh8>NEcnxJt;+&8&-o&nxy`w=^si&gFKFVt*~ zHS|@eap;`8`boxKJ{$fa31X zQ%e4$em+Qz#2^Go@!Zte2Id!IBPq&ht1(BwUXnU1?ourqRH3kv?lizo#g~q^kEO0@#8s(a~uc zs#aVdfX0pJyuG@#zB%{8L)ZJlI2H0u=}Ib_RoqlxA9ym(35=Nv%=6^+{t8+<9ap0Q27p zUlt1J2aaaEmXhLuo+UOkw9U;9)PfP&!g%rDTAQweg5zR~=xR&9Z_s}w;uLvF`z06; z=wG|~!0P=NlX8_QM0M?cF!@Y)KGkL`{?d~1bl8-0exMTBoC?66%1sMDqnjrr%b00AFeu(vOl zx(wTq?7F4D)Og1z@9`vIM-yH4HjlYM1YDa@*qR~Z?5sx(!#9TUIENiD_tZ)h%CfzF zZB3RS|B_(!<0Vhf&k1G%C;n^%zPDG7CR5Ni$A9{DU6OuZ zq@YM)qWvsP`|+3E3DF6-)Qs8Dd>IM!g!V<9;g5fNi*V8NnJd&>%O(F~EToW?cQF0ewvWTpi>}IYcvdUjM##B`*mL!Z&8*!l z%lXby_m^Dr7d4P=67q~zYPvc4njwAxl8}ov0UhzvUZ~zl(G4!WFnaC3&tEd=*1~0>V zB_TV{eQ%z@`{BRO)I!rvC{6{DK=1+T{ihvuU`_y+k^UTxxT=yA(t0*Q0*`N0v@b}B zQ*Gg={->{@BzyG&hW95rYUtlMC{-NVN}ogVpz+*3)iwjJZC>yMh-zU|`q(NVMyh~` z;r?sLsbATco{qL=$WsblI#Dh{DnmmUHeO%0%WzqJWg4)k4T(NTE&k0dWMz{CEooRB zwUNX1ET}kBFK1KIK5NfO|Q9rTH_}ds= zP*clEjDBie%xm1tews3T`}WEo@JiN3c)PR2Y_U{jcNZiTEkStyhAUib8Y{K4VF4$C~40QWkmq9QW(^Dtuo?BD@rzh#qhdyU?qYZA^sOVj)lQcqWkDSAQ zJc;$lA+_GPr01H%s_sLewdwlaZ5m@}h1fZ-SuA~#o6ZDjF1-()2i@0<5h8<3Kh ze&kdUfZ?|*xl8_i$sS8MG3QIQvXt(E@BU=Q0FThm;SV1!Ya2)%%Je@1$?XWJHYRh| zXSH)8CmSiL=j{*RjPHj-VbCT%YMZY@cPM|O#&qeqn-e~Au~&Wc_psf}&WZ&vutFke=YDt=Hb7FXfZ|!QKXaUS-%uQSwWpeaobE%ApvwV{hr{IU5 zW`f{&1;_E^J8RgeB*gweaZ?#hFr+!oO<@*T#3Nu+!l!VgTmb3lo}&mfF{ynh=M>?2 zvSwzs+u{z&a>UNWqaVK4%gu2jT{9&55Xjcw3hJP)ZYTs$a!8-PKo%PtYuAm6a43?K z+}zAEK_DQI%gdX!{CowciFn%o?~w)m@XXUIz>EV{_%V6e6TOV`MW;E|VP^KibK|7F z=g0J;K4r6bVJ7NKraSFQO<&m!bru zmjI&l4hl$<-cgi}bP-Si#k1o3-h3C|KXAsmU=SE18OhGtd$0M-=lRWnbWw-92h?7NHqNBk(jdujtgQ*q*s5I7>Bu5Y6gbSw|jGJ#bog$d{;i;cmZp`}yr2 z>X8ZTE$P5p*s8C#W|z*+Js3C_T317R$D)S8IXWe|9ay4(tZx11`|__pk*p;3Mn#A4 zSlFe}*dj(h*1scEui>Dj(wK`w6g&k>~tgD%}jFg3|xm*b-Q zrZq0^wq&TQgubbHNB${iqz-=&1)4AaSfg9|cS5xt0LsMMs&l-n8u0o|O--hSCA)xoGuH?slvch^-0FvCIhyrYvFr2CFmELWCQOrXPqFjJk=6UKm<=8UW?IN;II(6E{-ech_p(0Cr^ zK<=4SwM-MmmvvS|Z9<`s{K*px7ltaolF*3ok3$LYel!ms8s-Xjmk+r?CP>|O^Q{8)*(4lm5XgHWGENq%JB}L^kKEcwbWrS zcvAB_nS{p(-JZUgmFDC(#yP}htFX59-lu>s#0}>uv{aGg-PGHp;j*V4I=%#ji@Uv6 zb&%Ydno8S&b|b6Xp7uWdZhU-2_yOf&3+R5IRspu7CKe)*t;xLB|6{pT3wS&cFgw~s z39W1I&_e87I;DU3#1#AT3gdK}*TO&c_Zwir($<6+Is4XfrEbcwf>|Y+iO;UHF(Usa z=^~5suV+j+8c@rGi4zKDN}YEgP~F`KX@VE76+UX3449|)$4BL zMyiW2Qd+A=JlEENzQW{k!6z%x?5X>bUsAFT+y`UX`Vk!3Rk&CfQx{krx9l$$ES_VytEP;zZ|w^D98xMf~_pT zyYLP4YPqUg1+9XRq`&4x2gm$^K*4sNl`izSV0=sX>+6rgGAM}oa;@BAkEDIm498{R z^1-y>9V(s?KSW;g7Qg&}plb2DwFG0yMg%OfZ0r&E(indyJotd5ES}pL5K}4APMK_} zu6%y5IA(p9-uJCdnbS-a6)nBCrp`be?v3PXs*B($lAXS+Fa@MI(2kgR4LufK0%sv{ z#-fX&{~Dx%_GFo5u+0eIKZT=e9q`!}wO3-*!l$^u$s=O>elSLYUEViVIx5BZ-Df`( z5!bO>uaRaX2bJ5McH}(CLK+e$dj{BUNL~^kJ9dL6El|R~P86Pf71Y+unTP2kISZO( zd<7Pc588ov2%HuYB0f9s_b<72Sjqmym*<3>mN*dgjo&fYSB9m4n~f zo?bBhF&}AKZA;y7uto+f5Tq&^*nEHi#5~h~y=ugLWvlk~UU}<64QO{+N%^1^fLn*R zPe-P$(!8vQ4_m^lR!`6|N=bf;$KiJ1;DP)E;d9v_-Pe}Syd95YkFAS*Rcve~^vr5x z7KEgBc&5#k3@a+BD&#rKB8{``LmL#_%m@HUf+AY-lPkc~61*yy#IQv|AifM%XSMS9 zAHy%l06zE9|4>qpUMcmu_CTeDy#t26iF{5E&5Ia&fY^*|<9yPg!mx0Lu7CN0`OUAA zJ=;eSq3gpJ24!!l?34j}a=TFx>x^b;(w?}j;$r>-)ila|7{#3?FF+NFFs8us0+>{1 zL7ScTJF~UW+;@PMl>wA70G%pv-8Us=3l(y5NRD5(e+l|}@!SKTJ!c6?U9#~1`5qMFw?>dAbCt|irM0fWN*q`nBz1Ch=&-~p9R>W! z_mBUWtM2ap>;g^3H}l6kBxPiYMdnnQP9&-QL2|>2dOKzO(asd3eV{tIl`vMO%ZitE zy>i4_xgY_N&J@hnm$;0O-(gL;s<$dlohHTfaY%3{L=#QQ{Y8Vs?13o)2vIjqU6!gD z*Z?Qt{E^=t-E{7~opV6o1n*BiQK$R^AUOc^NmT!ItK#ZGgn%)m3+M)O$W%?df`XR8 z-CpYw?KNKNUnPh}j5UV>6HFEH}B}e`nlSP2I*(_|y{(?53-okM>*Y|0SRs@>sH$0|QD+_q_<9 zOew$zd8eObRvb5|CnwLVK)Ar=SlSA5KaGpQHPh>p+5QI1NH;g9fAD}_I8&YnZxu`D zLaY?x2|MB9y-5r4sZ(=>>#a!(UQW_zMm3huG2yjdEa^uAJtF}ty0PlK;fYI~j2~+! zTrA~ZkU}{R!XA@DYHLmIRP{HvKOv(VYoD-TpA(J;vWAlJS0I#opT+U1j@i**san^a zcF+E6c%k&}PP7`CUx6JNU8NM1a2Q5Uy2cl9s2NeBGWP6EDw^q@%U)qqRqiVt+A8vZ zLW#_Qic+FPB&4=X(d1+Hyy`l&+`#X{a6#*Ktvok&wV091%H5WJk4wq#s0l)e{)77d54{M7$bvn`rdd7)w|L|CS=2> zVbX#v)}7*KAdeDV=ijAT)7th$v+ti;$r3v>T6kk55iFuq4V7OCotWSpyV<#8j~4h3 zv+QH#wZ{1$CU(I7rMe5spBbHfW%wauPo+>2Nfk!Zh{MyOM>KpH6Tr-8^N&6GIlQ@e z^4C~U4ss6oIdG!oxuMuPEuCPcz(gmew+KCAgVB=f2ebpOZ$N-Jg@4UtO4W7}aY0z> z7xA|$WU~TX>_&}n^qc{%D+84Wh??9V4L`Ybc^b{!>Jfvr^p)&#Q8?iygE*d3T zApyUA-Chvj;WbcOl_Nb^C@$%*Ocy?l{AY z3fa`-w~MwVJ6>?Eo{&K`Hnd!w>Og#Q4*nJZv$n^-T$R7ybmXfh_MknTj9#y)nJzCL zHFSGCTDL+4gYkMpV_n(Yp)#gnDlIY!{dogiH{ageKLzfym&&tn(#A<6%))S(p@Um;SaY?Lk<`3cCAB-knRrgU@H%);0$Mot^1B-+QQC7~DV6v~Dj@$=hLLSra1VsR$ z?DyD=`ojT2lX7&GIgIkc$ZIxDb0_{IG3cK8Hp9c^N_p?w$AnM{VbcDw$5G1{`m_nRhOxO59(}!^2~y@7}wm+qoWI zHlzTZ>FD|?;kFq7@*S*w3R>jZOif<_g7Y(}Rv8ihycoN`!aoGhHXa|n_#GvXJAU*ynFSfeNVZ8JwMHv@~ zg>sgo`mP5J5aw^_WlQjCW$nm?){|o$PrEmD(EO~e$@PWjRn<3~8q!W%or~YX*o%}i%DU zf9uLTj^}~pMr18RHv{8yIl2&6JQ>d`@F=GsWd|!ip&MB| zSB?h?X8TQRu)^VhYPU?Okx(lT{e9A*-SS>7t+gc{|KXISa_xl;?x=k@+Qcuwhb2-C9s!)y;~mgI3+nac=4lvz^lK*i3`2L@cp87y-f~t+W4Q& zoO}|TbBsw7`u2+3uG2uoCPT#%D?Dzwxa>$1ZtDtj(^Wk-Vn7~irXO4fcVDpoGVt~t zcICI<@Pkjy3%oRUNU8r$X7@Vv<3q?YE;?Fb-|FKaVft7X=YEPYi_$2)B+tcHxFYz5 z5(pY({g&hTV20a@x(-#*m?eVNiPP|&bM?jRatAPTZ znmUP{%LfS@6Qj6LA`ABs*Gm9Xf?3C4@=CxL&n%#={!-v^3+)wpia~+T{2s9a(Inll zc*!8zMbe_Rq|ird?XmMoU?K$}Sy-EH7K7lVm;cgcpN~4ijR}y{v(%A6b@!936VoO=J zgety2uGBV49TBe-K6dy;F)B=dwlTWG7YS`5cGW&T{p?DEzT@bzo(o^7fBi-uKz7Xc zo5~LD8BdZmm8Mp2F}4fTV~(B`IFgDQ3Rl-jJ_fIRNC1&lX5xO%jsCSU9e-3z%wcRJ zg$N0U#PQ_I7AuD5`x(V7{fO8njM~Hdmfm@AJE>?KP9F)o(GuXhUjmvzNGJusmgl|H zC1gN&Rp@%%A@->cIeF`9eC|j#&Ex2W1^;rX*`T1^P95C`wYNg^9$PB3U82iZC;}xz z=jJO3*$IWiYr?s;n36`0jM6y5ly)~o{d4TY(8D_%y+4?eY)lZ;o9BrBxWK?K7V12X zgW=yy!6+#Jg1ISuH|lRsBu@zq{1>l)z{(55v)g9~l6aiAN zC^Q5UwgI|WKPH<1_fj}E>(#*}I;vI~7{5=;4~9$M#aD{*if|}DrNF@QeNimy4}bZR zH7i5obJWqi#i}lxAAK@oVn|!bO9{`OonR2sTL60$<`793*3JXh-swJb0O5KRA;Bht2762`{R!?UId>+tj5lb?&HqdHuwtg9Re`)=eLVh(pv80zyc z`>8ovplo{a)%5~tr8Z4KS#4(@DKQ)9vGd89i^GpQ`cQ?gbaefg$E8W70dE6`#BFK0 z+~$U3)Yr`+&e>M*YEe}NX%$4L%8VWC0uPoZ1?A4SH(v}QYSFw+bWj=3_L%zQIgtdlB-^cJ_X+M~ zcrQeKkhfAdKI3?!Dwq^c)|L*?8z0sH8lQnWnjtG4w2);Mv7dzb57A<38_yKfm#UGJXDtlj1%Tokj;^yi9%%fa!+38X zGWP=o^pPB&`o8mEaPiadN%P+mrn}a!ccM`Zx+7{!=e7h7_xB&>xi+jzbuI6pd6 zBcGnV{SEAu)D2kG(}o@PLN0qA0{qgM)Mo{|L;gy!J8T$>QD0Xt5=PP(3V4G=uy87C zX{$Z{++{)#1`SxQWC9_$oW>s@)BzA261*G$bo)<&$!!E)e;? z!q;O;J0u5$GWes2$A*`qv#0Pvt7+Cf#PELUN+h(2krzzF+OLI_*}qIn3=UJ;PoGeY zBrOu#i-rb0&7a?&7yvXV6kj@CB(C-Hb8VETa#zJwj=Mxu6D3MREqwokBKu%iezBO` zD16;uzM{@ru-c&irY58XU%13}^wp^EEf`ebiFn-&w1#d!dhKhSRqICjenl(*PFU@UXMlx=Xk2JR7kzL=JW1grDW3-zX><>iTqk4+)AfFe9msOhQcRXS`kSa#yH57lL zTL_D%zr__u^nKUXzM#|@CXyzCEqTBenA1S`iNTx_+8y6y`NV&Jg#b(TD$P$1qEd6*Zm&UwOcR|FryZf7cvnJS# za!;EfezG|gu`%ocEccg1!jO9ziL80^qIW$_gECx&Zq7GQOGA!`_?=I46oY^DOq7QV zIC-1Vp#k19k~9~uaC!wFjh<{rS;*s5Bmmkd3G~JREPq7XL4=3u-?WObG7{i*x|kK! zbJ2jmqSP21Xz^N}AKFT6er89Ss2eCpyYCx|f_~mV-}YQR#OfeZ@aOoZaX_=24WoSW zGD7bqsk%CARX@NZArbV9#$N?G7sp>{mrJ3*fJ&t?C@Scjn}P?G@P0d8ztl0Bp&=pc zUY?3^4uJ{vo?j2kqQ4cN{`#1v7@_%!8b^t>#=83kAimWT@35+?eN7lNX&qfY;8r$Z zhs=hKsgC};ckL7f2Zjk6@{Au5VK5e0~;U*V?!auvN4l73>rM53@=$8Ihad1W0vvVWMx zicoj$=v4mOU)=NQZClutM3om5IhD{p8Nk|Hgq9&jDi%%#a}MkD9JTaxr#~s>#w-Vu zQk$CcX`s_b0=bjGnm_6o*?^NWQfx8;?C0~Qh>ep}zd6-zyz|QxJ9Y)0P9Za#75f|< z8agkQclIhxS?w9`f>uu73tL5AZDz};)J`6vIWmLJloA)%1c0cR%nH(pd)`?Qsgh_X zu_Y2-cX7LLvgNdKH-v*C5wFR!c0SmDq{*DjsIG3}Q(rr)I42CLsACgU^HKxkWkbkp zZ!d~o0Nw%6tsCH_1nnkJQRGb}zc`M$5FyB+?w@LM-hrR>abD~*wGVKi3lVAW*X0%3 zlq0;THt8aeiFp=1q6NaFTH@|!5)Gf_ei3uRjAEiS)D4HCFv)L=zode)y|=hyrU9_9 zxf#4_L+hSD{_Sj;TFs!Y5)&VLp-2b8ZOqJbX8G5vTO63zFXT!#nbsOdFS~Y{8Xh@y z>W4J<&(OxVKSXT^zg5-I*SC95kZ8{!X#8i4OKEZ)AdOU1J~r`awIxH?ysnStzhi3tJ7VTPqhtQ>fB&85^S|prZ1w&ndmGgAhibPx z2!bFEFJ)6N+go0ClD9qVz%NKdNaQNNkT}24bt9qck|Ls#B3H3OLXtv4*VxX9|36Q- d>uT$0@Avx=*Z literal 0 HcmV?d00001 diff --git a/images/tcpip_zapouzdreni.png b/images/tcpip_zapouzdreni.png new file mode 100644 index 0000000000000000000000000000000000000000..d529d1c5496f59a6fb92e7c8cf3aaef006607a66 GIT binary patch literal 145227 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