From c04c3fa8293e57784cd09c5aede019cfecdf6b15 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Fri, 16 Feb 2024 15:20:28 +0100 Subject: [PATCH] Start of kernel implementation --- src/acronyms.tex | 28 +++++++++ src/chapters/implementation/kernel.tex | 74 ++++++++++++++++++++---- src/chapters/implementation/library.tex | 1 + src/chapters/pim.tex | 2 +- src/doc.bib | 1 + src/images/isa.pdf | Bin 32577 -> 8264 bytes src/images/pagetable_granule.pdf | Bin 0 -> 12027 bytes 7 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 src/images/pagetable_granule.pdf diff --git a/src/acronyms.tex b/src/acronyms.tex index d194ff4..68512cd 100644 --- a/src/acronyms.tex +++ b/src/acronyms.tex @@ -300,3 +300,31 @@ short = MMU, long = memory management unit, } +\DeclareAcronym{eflash}{ + short = eFlash, + long = embedded flash, +} +\DeclareAcronym{elf}{ + short = ELF, + long = Executable and Linkable Format, +} +\DeclareAcronym{uart}{ + short = UART, + long = Universal Asynchronous Receiver-Transmitter, +} +\DeclareAcronym{stdout}{ + short = stdout, + long = standard output, +} +\DeclareAcronym{tcr}{ + short = TCR, + long = Translation Control Register, +} +\DeclareAcronym{ttbr}{ + short = TTBR, + long = Translation Table Base Register, +} +\DeclareAcronym{tcp}{ + short = TCP, + long = Transmission Control Protocol, +} diff --git a/src/chapters/implementation/kernel.tex b/src/chapters/implementation/kernel.tex index 7d4a616..3593ea9 100644 --- a/src/chapters/implementation/kernel.tex +++ b/src/chapters/implementation/kernel.tex @@ -1,7 +1,7 @@ \subsection{Application Kernel} \label{sec:kernel} -With both the \aca{fimdram} model in DRAMSys and the software support library, it is now possible to write an application that runs on gem5 and leverages \ac{pim} to accelerate workloads. +With both the \aca{fimdram} model implemented in DRAMSys and the software support library, it is now possible to write an application that runs on gem5 and leverages \ac{pim} to accelerate workloads. When it comes to gem5, there are three different approaches to model a system: \begin{itemize} \item @@ -10,8 +10,8 @@ In this mode, the application is simulated in isolation, while forwarding system This mode has the lowest level of accuracy because many components of the memory system are implemented using a very simplified model, such as page table walking and the \ac{tlb}. \item Simulate the entire system in \textbf{full system} mode, booting a full Linux kernel and running the application to be benchmarked as a user space program. -This mode is the most accurate, as it closely resembles a real deployment of an application. -It also provides a complete enough environment to develop device drivers, without the need for a real system. +This mode is the most accurate, as it closely resembles the real deployment of an application. +It also provides a complete enough environment to develop device drivers, without the need for the real system. \item Finally, run gem5 in full system mode, but boot a custom kernel in a \textbf{bare-metal} environment. This approach is the most flexible, as the user has full control over the hardware configuration as well as the operating system. @@ -19,23 +19,77 @@ The user application does not have to run in user space, but can run in a privil \end{itemize} While the system call emulation mode is the simplest option, it has been discarded due to its lack of accuracy and inability to execute privileged instructions. -The full system mode, which boots a Linux kernel, on the one hand provides the necessary capability to implement the application, but due to the complexity overhead and the need to write a Linux device driver to execute privileged instructions and control the non-cacheable memory regions, it was decided to favor of the bare-metal option. +The full system mode, which boots a Linux kernel, on the one hand provides the necessary capability to implement the application. +However, due to the complexity of booting the entire kernel, which renders rapid prototyping unfeasible, and the need to write a Linux device driver to execute privileged instructions and control the non-cacheable memory regions, it was decided to favor the bare-metal option. Here, the self-written kernel has full control over the complete system which is an advantage when implementing a minimal example utilizing \aca{fimdram}. On the other hand, some setup is required, such as initializing the page tables so that the \ac{mmu} of the processor can be enabled and programmed to mark memory regions as cacheable and non-cacheable. -% python config +Running a gem5 simulation requires writing a Python script, that sets up all system components and connects them. +Recently, gem5 deprecated a commonly used prebuilt script called \texttt{fs.py} in favor of its new standard library, which provides useful abstractions over common system components, making it easier to build complex systems in a flexible way without having to dive into great detail. +This standard library greatly simplifies the process of building a system with, for example, an accurate timing or out-of-order processor, a multi-level cache hierarchy, a memory crossbar, and a \ac{dram} model. +However, as of writing this thesis, gem5 does not provide a board abstraction suitable for bare-metal workloads. +Therefore, it was necessary to modify the provided ARM board for full system Linux simulations and simplify it in such a way, so that no disk image is required, i.e. the board only boots the provided operating system kernel. \subsubsection{Boot Code} -% linker script -% start assembly script +At startup on an ARM processor, the reset handler cannot directly dispatch the \texttt{main} function to the application. +Instead, certain initialization steps are required, such as setting the stack pointer and, equally important, enabling the on-chip caches by setting up the page tables and enabling the \ac{mmu}. +Fortunately, ARM provides a comprehensive document \cite{gao2017} that explains all the necessary bare-metal setup steps for an ARMv8 processor in the AArch64 execution mode and provides useful examples of the boot code that require only minimal modification. +While executing the boot code however, the processor cannot correctly access the \ac{dram} yet, as the \ac{mmu} is not set up. +To solve this problem, the ARM board of gem5 provides a small boot memory component, often implemented as \ac{eflash} in real systems, where the boot code instructions can be fetched from and that supports the native access width of the processor. +During the initialization phase, gem5 ensures that the boot code \texttt{.init} section is copied into the boot memory, as instructed by the header of the \ac{elf} file, generated by the linker script. + +The linker script also maps the \texttt{.text}, the \texttt{.data}, the \texttt{.rodata} and the \texttt{.bss} sections into the \ac{dram} region. +Furthermore, it reserves space for the stack on the \ac{dram} and maps two special \aca{fimdram} regions: +First, the config region, where the processor writes the \ac{json} messages that switch the execution mode of the \ac{pim} units or transfer the microkernel. +Second, a large \ac{pim} region where all allocated arrays, vectors, and matrices are placed for the processing units to operate on. +This segmentation of the \ac{dram} region is important because otherwise no memory access would be possible during \ac{ab} or \ac{abp} mode to fetch instruction data or store stack variables. +Consequently, the default memory region and the \ac{pim} memory region are located on different \acp{pch} to guarantee this independence from each other. \subsubsection{Cache Management} -% ARM page tables -% cache management +In order to enable the on-chip caches and therefore be able to use the \ac{dram}, the page tables have to be set up, which are then will be used by the \ac{mmu} to map addresses between the virtual memory space and the physical memory space. +To simplify the virtual-physical translation, the \ac{dram} address space should only be mapped as a block at a certain offset in the virtual address space. +In the attributes of the page table, each mapped block of address space can be assigned a special cache policy, such as cacheable and non-cacheable. +While most of the \ac{dram} area are should be a normal, cacheable memory region, the \ac{pim} region should be marked as a non-cacheable memory for reasons explained in \cref{sec:microkernel_execution}. +Furthermore, special memory-mapped devices such as the \ac{uart}, which is used to print logging messages to the \ac{stdout}, must be marked as a non-cacheable device region, as otherwise the log messages may get held in the cache and not be written until the cache line is eventually flushed. + +In the AArch64 execution mode, the operating system can choose from three different granule sized for the translation tables: $\qty{4}{\kilo\byte}$, $\qty{16}{\kilo\byte}$ and $\qty{64}{\kilo\byte}$. +Each granule size has a different maximum amount of page table nesting, with up to a 4-level look-up for the $\qty{4}{\kilo\byte}$ configuration, as shown in \cref{img:pagetable_granule}. + +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/pagetable_granule} + \caption[The distinct page table levels for the $\qty{4}{\kilo\byte}$ granule]{The distinct page table levels for the $\qty{4}{\kilo\byte}$ granule \cite{arm2015}.} + \label{img:pagetable_granule} +\end{figure} + +As it can be seen, when using the complete 4-level page lookup process, nine bits of the virtual address are used per level to index into the corresponding page table. +In cases where the input address is restricted to a maximum of 42 bits, the level 0 table can be omitted and translation can start with the level 1 table. +In each table, an entry either points to the physical address of the next level page table, or alternatively can directly point to the base address of a memory block, completing the address translation prematurely. +While regular operating systems may use the complete $\qty{4}{\kilo\byte}$ lookup process for maximum flexibility, in the controlled bare-metal case, where there is only one application, this may not be necessary. +For this reason, the developed kernel makes use of the first level page table and maps the complete \ac{dram} memory region using the $\qty{1}{\giga\byte}$ memory blocks. +In addition to the base pointer, each entry in the page table also holds certain attributes on how the memory region should be treated. +To enable the mapping of the boot memory and \ac{io} devices such as \ac{uart}, the first memory blocks are marked with a non-cacheable attribute, followed by the normal \ac{dram} region, which is cacheable, and finally the \aca{fimdram} region, which is set to non-cacheable again. + +After setting up the page tables, setting the \ac{tcr} to enable the $\qty{4}{\kilo\byte}$, and initializing the \ac{ttbr}, which holds the base pointer to the first level page table, the \ac{mmu} can be enabled, and the boot code can finally dispatch to the \texttt{main} function of the application. \subsubsection{Bare-Metal Utilities} % Heap Allocator (linked list allocator?...) -% uart + +When running an application in a bare-metal environment, the standard library of the programming language supports only very limited features and does not provide the \ac{io} and memory management routines that one expects when running an application on top of an operating system. +For example, it is not possible to use \ac{io} functions such as \texttt{printf} to print log messages to \ac{stdout}. +Instead, the kernel itself must define what it interprets as \ac{stdout} and redirect the formatted strings to the custom implementation. +In the ARM board of gem5, a \ac{uart} device is mapped by default into the memory map, where the kernel can write messages to. +The \ac{uart} device model in gem5 then redirects the written messages either to an output file on the host machine or to a \ac{tcp} port, where a client can then redirect the written content to the \ac{stdout} of the host. + +Further, the bare-metal environment does not support any heap allocation without the kernel explicitly implementing it. +During development of the custom kernel, it was found that the stack is not suitable for storing the large \ac{pim} arrays for two reasons: +First, as the \ac{pim} arrays become very large with high matrix dimension numbers and may not fit in the preallocated stack region. +Secondly, and most importantly, because the stack resides in the normal, cacheable \ac{dram} region, it cannot be used to store the \ac{pim}-enabled data structures. +As an alternative, it would be possible to preallocate also the \ac{pim} data structures in the \ac{pim} \ac{dram} region by instructing the linker to place these structures in a special section of the \ac{elf} file, and mapping that section to the \ac{pim}-enabled \acp{pch}. +However, this approach is very unflexible, as the exact dimensions of the matrices would have to be known at compile time. +To solve this problem, a custom, commonly available memory allocator, based on \ac{llff}, has been used to be able to allocate dynamically sized \ac{pim} arrays during at runtime. +In order to incorporate this memory allocator, it has been initialized by providing a preallocated memory arena, which is mapped to the \ac{pim} region of the \ac{dram}. +The allocator can then dynamically use sections of this arena to allocate the \ac{pim} data structures. \subsubsection{Memory Configuration} % address mapping diff --git a/src/chapters/implementation/library.tex b/src/chapters/implementation/library.tex index 274320d..162129e 100644 --- a/src/chapters/implementation/library.tex +++ b/src/chapters/implementation/library.tex @@ -111,6 +111,7 @@ With the introduced data structures used for addition, scalar multiplication and The implementation of the \aca{fimdram} execution model is explained in the following section. \subsubsection{Microkernel Execution} +\label{sec:microkernel_execution} The host processor executes the \ac{pim} microkernel by first switching to the \ac{abp} mode and then issuing the required \ac{rd} and \ac{wr} memory requests by executing \ac{ld} and \ac{st} instructions. When executing control instructions or data movement instructions that operate only on the register files, the \ac{rd} and \ac{wr} requests must be located in a dummy region of memory where no actual data is stored, but which must be allocated beforehand. diff --git a/src/chapters/pim.tex b/src/chapters/pim.tex index c23819c..7b1141d 100644 --- a/src/chapters/pim.tex +++ b/src/chapters/pim.tex @@ -200,7 +200,7 @@ The data layout of these three instruction groups is shown in \cref{tab:isa}. \begin{table} \centering - \includegraphics[width=0.9\linewidth]{images/isa} + \includegraphics[width=\linewidth]{images/isa} \caption[The instruction format of the processing units]{The instruction format of the processing units \cite{lee2021}.} \label{tab:isa} \end{table} diff --git a/src/doc.bib b/src/doc.bib index d302793..13677fd 100644 --- a/src/doc.bib +++ b/src/doc.bib @@ -23,6 +23,7 @@ title = {{{ARM Cortex-A Series Programmer}}’s {{Guide}} for {{ARMv8-A}}}, author = {{ARM}}, date = {2015-03-24}, + url = {https://developer.arm.com/documentation/den0024/latest/}, langid = {english}, file = {/home/derek/Nextcloud/Verschiedenes/Zotero/storage/KGNI52X5/2015 - ARM Cortex-A Series Programmer’s Guide for ARMv8-A.pdf} } diff --git a/src/images/isa.pdf b/src/images/isa.pdf index e0bb2a7c12cadcfa2951555a8e7d3376a5ab1c38..05bd0928ac391381f8116fd08df62d59e1145f2a 100644 GIT binary patch literal 8264 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 literal 32577 zcmV)6K*+x(P((&8F)lR4?5av(28Y+-a|L}g=dWMv9IJ_>Vma%Ev{3V589y-AMdOwuN{=PBX>ouW@9{R9mN z&_dEu&_W17{X>Xv(b7WK7oWk*Ju;)Zv#L;)@i```am-v4XY$LBxC ze?3k%{V)Id(*OAW@BcpjxBva){B?f(pGP@A{-=-s z`hxlX=egFyPCV=V`}|d&=i{G`e!n-IcQkx`{I4JX^YO25{8eW8_)pKTd0y|$hUm!r z@7>zYU*r8%-WzzoSzq}7{Fje5ezj3Q+OMahlP|pIZTNzDH-ItUvH4Zd_G`9}PoS&Z zAN|)kJHV{7NnQhfl+ozug>-V{;FK z&yNEgzDiuYevP*i?`=aPP*(r$U-i21$#nwsYrLS$VStgk-rs-5#r~_Eyx26ty#SQ@ z{`2d8myAa7dLQ;{biVqj_+jt!h%s&NGyL+iTp#t<95;LN-d}%R_q6~z_ZhJKy70Q| z*InE3qFOlD@5tzH4)@hZTzbdkeSA?@--&3rGG^C6J_Yx^OX%R}Ph6by;uyE`zFR|y zYw!J)J^$hyzU_tU!INFo=XdUI_6vyPfZqG!y9nQLtM9gY7QiDv7re)_hUjb>uy$f- zYxU5cw?`B2OrN+uoNSSkUid&@XP(+W1{}(chm7VF7%7yhDP8`3J;D5;kp;hQDjaJ_8vs zcxU&)*BKW6|JR=*{eLZz{4dE~e`o7yi|hsdk?f84`Qu8m_rmK8D)@r?zD@RCfTd}& zH_EU65;Kv#7u@v@vL}>eFCoa@3ox;wba;GAs`nxi9}>NxzKZC*;N--KsPy@+%x0qZ zg1dDSwijTj2i1FFZ^ydUYB$w0Fxg84x`$`5AK0H5oS=aRyLew$Tq|6bB76AAGO~-K za$Sk;jcOtYx+k#co-c~-y`UuB8zus#dw2s`5a`|uuGWI?c~FDyz3{0fdqX5aWG{ip zo}tLzd(*%aYMs3ws{Jgw_d<|_yaswKx`(;wN%k;ykmLlP$W2HE}O{;H+zeVu^;h{M;FTwjbUR1zeOz`lTkB5;f|E?x@ zxhsO;js8w>$!$0~DW^xIajR=YUT{qSjKn7(*2mjTOj{M5s^pP1WQx-Z0T7J3@Gd;~ z*Lbaa+prO zs6CKpuxSiL4L$=_Zj|>SHz$KV-G=9g0mFvJRFJN`@2^IBeZ?2}Z&8>}qw&s1;T^3W zvBBco06qavl5bwqkoz`)M%w%t(7O(|kpr|w{w4f{%UE3fC3ao#2CpJ*l?c?hn6HqB z1{S6ewid|fds8Qm#$;ZDWHfgFCCcS%onrC3*59TV42nSSuwm9;T%TeF{{k@d%A2oF z`KXdu^M{4A@~(g{pguvd&Q~zf$Dvz%n#@JKLUflt7fkRR*fEM8XVNW~8esTvP(V5S%tJcNgr3lBdFNDc=7^LY0Z zZfsbA7q&+t^ap^_CwA%!C{(kL`GWU-l^;%#{9Rp`8!-=o&zJ&Vd$=I^HvcU)@VVgo z9S0B?XrVOl0iQ)Z5f~!hhKYD-0{=$u`8Nk^&Uy&?!`>x4*GFnXe;O*)+;bx{?~Ny^evp-?=uG=d zcRtlr<*~FuqCyZf<-yX7#rr<3mnBg=nqR?tn%-b}-x9`>ro8x!GsFFmM~bAp;OR+G z@H5Ibq$szxq9}^KD=5kn@`WhM3vbHXyjD!I*y8}AD2Apej|3!9l!sEH2@1MZpCl*= zMM55vu0>IvceC+0+cyIJEau;#%YKmDVVMPLzi4AdQP-3w=q)OutXWK6uIA zeMhgc#TzAsfACw0FA(N2f|wvkmhrdFPD1ar_KUr`O_ngsBM8>hd3w=>cQhU@`#b)Y zRQI_cqzHWf{jP^bQ4&Mio}_GmJS(Edzk~G^KYZ5T(7@-V`g0Sl0{=(@=grv-8aOZB z6g2RKR}0bV1y~{?b1x{fEE+gFkIF#<=ip&5XyE(nS0oh;#519gBM~$(6%-0GI3;{& z1HKQ$Ke0Jy=g#uAZW#<~Wp*BYlMK#AwT0;5Z0w)t;0vIX3POkRea=zRC+<195{J4-yAwP|U42XkOtYl!Ga&*Xi5hM#O*HTV?fE9)K z+PSUnFa7{DJC-wU2Z7>x=98P(vjNsKA0(*tjHf)I69s_4919w+yh>o8TFlwsb$31% z-!Goifpu2Kq6QiyJUnf@NIC*7YyP&}T-VU2@may)<3qK0fpjv}%0?ftbbPg(-aM3> z7u4zwES&&HtOcLvgP|hQ`eqlYH+&a(^hpg`)SRBVxc$3;id1osB{;irfTGUtMIy@l zNf9d}iAKLF7ed8)J_suh&K%zoTBNGMN=%yZA}QX%cK9Hf5Za^3eTn;X`P>53XDAVX z=Cu_6=pu+lTouiD*B2fYFjQNC-{r-X(xv}?36c;*dm(iKLrZ)RUR;@4jm_Ga-s8vZ zx-AUhQIaz$=U{|&O1f`pBJlI4#qAn(oSb5cyHtYfFKb!?53idJJ4}cIoUDGQEWkeT zD5$HIL~`&95vX$+eg+0t#o%%RBwCNIj|Gpt+8xjBkPxr{u_jVO|Lwbe{?xxBP~|;P zog1UghMx&ky`-WF3RN$z;iOO%LvRI!s?c%=33@qNn59giYFi|WH{&sj;R4eJL<)r` zOFG7)FiIL_Y$8<$IkM?c?UcfkO1&7e=(;MRP9jzDvS$&g7mpxO@88&)CQ&tXdnQp; z5-wTq@ueq~5j4u5YARGaRR~F=-v08de06Z1gGMDZjWYH!z?iisXcQhilLxbpR1gM@ z$_CRYOwgP=jjE3=4mbs4f+rQD!e7KUbuv69*BOcj9Pfa5M1D68XQiFo=Y@~_B0kBG z!FcpAOmLB!2e(t-!6RS|I?f|IKIXAdB$1%h+ZqHYq=l=92&{Df3SA<5*-+1>N7Zi4 zFcB5Q(h~#If|*w*#o$Us)!QqKsP_LSyA7ho<30cdNDe}PCx1vgEDyggI7b0_DH!bc zp`C;mNT1%QS&6F{Pnk#9pKBRif!}p^1mSw&Xd^e|O_h?6eq65YB6Pw!!~{A9rMk~- zFsGaYw7^F3*Lo|AZbPj%$_V|Bu1d`n8zrGPim^A!=+*^uqrm8R zw%jP_qqu@MN;Y^|4w>q=jWTW?^}^|(jK>l%Fc6+Eqact}NAx=YR98+|D$1DblROUs zh3mn>wClaM;v^!610Y((1r3)rTUPxhuZ9Z}Py4J1iAa)c{`9 z3TTB1<)JMx91?&AjZ+lTUi6+|j`T_3n`Ss;0i9uV%h3+61YE_rK&njksrAF235MyK z5Lmtmc$B=Nw4I(`DcNf(o_id5^|l_1du-hHl9Gc0M^&2Aso|HUhk`kV9}`$}j4w)R z;ikZ8P6;8FMDYhaRxHU;0r)*eAKT?e_M!9HP&Wk#OgD%eIGUKbL3 zGvu|f_Eoqo{JzuvidtXquj?+=M8nV28Wzho7rDMqYI%}e!}fXgAlEM%BgGn<{gzk* ztL7%vT<>aJHYogDW?kQVjW9z6N^)&%a($nkcdn6ZhLe?+5NwDoRa)pmTVl=ii0TEo zzFsmxCQfn<+v=HO&5LkUN^*^>nplx*Jgd$i*ZNk|s-Hm%06QEX3Iee3MJrnl2Fu%@@m!Nk+sAfon zM$Yg3cA1)ynBZ;?DBsZ(o?RYhf2e>ieB8QFyktM z8T1M>4A5D(Mf6DPnTrUfr;SL!fOmNb;jtt2h(@`DjJr0XDk$x|i&?AjpT-6yf zme6Ca7E9=n^~_7?Me@Mq8hQ~FmAQs+wQnLFp4C#M^S64HJo>6wLbR%_i*n70C6v%h z$ktSE4F`zd4xv3D9|1XgI3gjFN4AmI19(8s52PX>u;K1P^yl}h-kD`mP z9@VeqB^>>bmoWR->?X{wd3e+q-eF}@T_VTUK;bSF zSgx(O6*7dkP`MXLRyQwelXZF6agE0wqwsHC7;-%Bgh)Uq)`L&3ZTYwYUlg8!f#wwo zLG%d%Rk*nVOC!&D;G;-D;7E#5yVBQ{#anAD7RPk;l--#USRi?{9-mtSMzzVj z7X5Jmp`BWJwH14{;zqfGT=0es7>=zAW1ZmE&QL!J9j!W=%pyr^J{i3DAbd)Aw=N_z zZ(zB%0*x#DTfdF3Y?f#m{JDHwal?6qlWV+LPI-aC&2{0IlplQhL*9k?1d@(G-Ypz0 zTAFmVkXXx1ywJNo5C2%|39tqrxGK}#70=Zigug4_)Y35&zow8fhoAh|;WdFgUJd2) z%I<|LJ|}?YLJ_N`HRo%ZeL7VI2*=lj8Et?YvBEW^?B}z5Ux^tG36k^!if=l8_{zVc zg6-YdV;85Q;b$t?v4@^T1$&hSKd7K_P(i>a#i?F3n4*F&G65A8?A2k5REGH`X zqNi`tRBsL{6cq%dOB<=6QBpzUq=Jd{qGtQ5s36`nH)+cKFd0N2FH*mw-=l zXQNz~#<+mYpz`Wgsp>Jm@{gkBvDe)~b9*GI@2C zRVY@a(OQ*m*jDA$Y}62=xT*|BqUSFXRiv-PRXmU+(e*lYB9`MRU@PHx8Ymo37v@O4 zNUnjf_y9=-Y{yf)2xI1>1zy|ZD330kWyP`r&yffF_iGf&Psh`MVZ#h8$5Wt_Zm5td z_^nU+o#L%e54TewCg+ff=|#){V7F6X`S&rl=&DvYQJZ_UIKPD3DIfjB?H=%Vp$tY%?HF_f-9%$Og8O4wY*rQO``-a5I(1d^qSI#D%AsAPWhoNT}}bvLQ9uZ z4oRKa>;0P;;P?Ay{uK$ilFy4| z!uWKLGz>u_sp}mqkp$$fVH*$uNfVL?2%zFIKtPO=fEXtMNgOZ2qk@3kVz)^^+z%5F z^zpGs&kvPio|__JFgDoRuBBOCSR@2?qu_G@h#fEqFvJ!cP z5_h|S{tF=@80+njs8+vd0mWioa!csdIrRf5$+7 z>Uwe0S;HR`&m4-f)j{FK%03ZSrT?LR<-QyYCI1g}kB$wdC@;k6!V3CZrkwBx1+JxR zSIe1_z7PZYB!v62DflgOnrSq8QI|s~up~5HWzL;&2<4~G$j+gmkPiV#+5I>H2ne`A zID{I9Ln!a0#Sadl9@20K>;10?8)9)c&xyc4leOou zaBQ;nT(O}<){KL!!Gw0EYy>oy%x)V~k~Y}TWDdcnKDXmzNZMelx;EJemaV#EBS1Q; zle8HnX){jJmN;J2>ynLNBimIM?uSVm`uJEL;>X@e*#d=Z^nA~?v#blPW2I-FDKb}~a0Y(y>AGm!KFOt)f`Iiid+NmOFJ zhfnfy2C`;diK5&KCyF|Y52%o(@Tqr?^}L`tbvqk9g<=UT%modYj2o}DVlG(keXI3YmXQp>$J8ye>GW6dl^Vub)%zS#wGNIjh zS%V35;J3p=rOU$}qO=d3%5axS<4&?+C$&3+A90HTN=4wrc4v2_FB99Hk@k+M%Zwtq zT|%1h@FXUekm3eIHr9EAACQT4I4s?~3ZGpv$K9cEkOiEA@{4XJ^kSMjqfB#`n0fBb z+d;$=ranN$P&?Hf26))JlCMp_KaX~%x;vFihI%tUh{+L{94?X5-5ERI-HTQ#20S+t z8y%hu`K9UdaK1Gry*ncXp0nOzawu-o(F9W?4fy2dQBJ%}e0MTkVJ5yi$Hr}ANjSUR zd0El%qQkQzC(pR7<2zFpBy#$@#LRyeMN!Kg233+&ScfEvfTS8FNi|NAnpiKookB-66=o;KESRRcAEv43ngw()tdclLl^SM=Dw4_VDRnx7j^3t)> zODod{E;+pbJ0%-7LYa0^BT0J^9X0Ir!mIaka^%C7}rg&=&gkLdx+?zi-D zT~JOhfxS0z=d5;m!E+T9K&Kb>(A4_)O6X-#t4}H6^78xS{?$INvZbzl91TD3W9a|q zwf1q-Q8)LoaqQz}*Cg%Z7g_JgecXyq=HAE6k2g6?HUDt}E7PWs9dSV*gC63=4atFiy6(SPA z7%3AOMG{TpW8cBeaTPfOWIt;H%#A$$N){92KZ4q6{D(tYWBkXjx`ux&ZxSM%9AfxK zq@B|Ej}Un|0YYmAgx3@Vju$DNhRA3ep&w{*vs_U$3ByiP96IskoQ8lwMw?{(H4TA1 z4OcjaHUg#q^E6!H{B1(&hJQT`f3?>THu>y4Ga7#0YyGz6%QM}F{kuKY#xd9Zas~^| z^^2?`=0vwC{f}Z#EnO9_QSQtG@aEaf$Dk4U*C0pJf$c_!M?LB4@O{ia zJ&Fpomm6Ml)?MM~Nc9H^g&SdDyAkr%mS>p!V7U>tar!XCtDX`05e90?1ofE>&Om}& zd&xfSJ^tw%{%Xe~0Ceu$H5z{2@vu5^smg(^!LX#@ICKdXjFR&X`wx=x+Jmj7wT0^B zcNIJRDV>&#!ss7ZY5?4NWol-;Ci9_km|*WpIs~NL1q{?N3JSS_?9LBv5JgU;_dX z3KzC`kzLpTA?3?UjbkH677-#(P+UEo#r?Vx=(u)#ZVk-OaGh3m@Pv=&C=DKc*cuI4 zpfba6m0pu{1j~T*xVPx<>D*}Xq4Z%}UmZSdzYWV@t>6o`>TLlV|Ga*0c`b+M6tMgm zVU=x&iK1Hytj-I`cPg;Y#<+E))Zgy9MMdGq>q?<>mK>)7MJhmJCn^TgRI59fi6(oN7FJVmQsYAC;yK{0D?v~pG zrdLsK4UFTgQ5 zRI=gcJ^1WaL{v0rj;)eau`w(wy>@W%8P&Qyhh|<)f zx?T9?wgWsiubtJi@Y?ykuYWZh6ZZejIuWCaOp47rhGxo{1Wc8zvAjiatMfX77vM`rPj?YuDA?>T0=Pnw*ukfyzXI932r2v~n*;f%1rQHwIEln;LqJk*C~5hP@zq_csp4x3%cFO9-w z#5gRg&B-w3GXkWfuvd#|cU=~}RT&)Ab$!?o1M}y%{#8{ASb6sNl5F^K1$XGRBWo3Y z{Dd-;-U`4<5C%-t!=r>qno+qcpn=(j?5_ZaUs<~i+^@M^RiZ;WEpWJKBa+hsFa#~i zJottd@d+Dx{8Ql}`j0yw`mcaB11T%I7&UN_#=ut@+Qq05^oR-ZZCF7AL|md93<*<(0w75tlVuJ_~VKWQ33DVfO)2rV`hwIBz@5=<2PE-#R7nv#BYQm1(ku7kumIn^&IPh*Q?*%0FIkp=vRqC*D`z89{tmT2Tu#R7l z*79h`8)}r)32S*gV)gm9pL}%T`ORAX`yGEZkjNu=Z&{AA;a?2oLLQ0=Z4tO52@m&6k~9&ASubt*gWh zaFa?HE4)r}LYrv;aahPoJXIN7oV>d#hmULV7)3FjgjA96N#Qlroe?niCq5v9LHTX7 z#P)2(t01UJD`s{~SPZo_gQ=OZ%P3@mg)s-+T6CLf0p;v3GcB;v5Q5GFl`vCyxWi1# zU-FzuGc9|>su(=&Cz6>qu*|gG(JR_UTpbaWdw4cxx=41%^|(e4W{R#8uF``cX6_Di>X#<^NxtbtQTzp`73H?mqG4n)A1+&kL!ZxvWT#yi#2^Qb zc3L1=TFuF@9m+PwPC|5D+pfw|WxwsSzuL;E0{3kzN5jusxwl_)g~S6s_e$Cfe4XKA z2h=m?DUgDYZ5`~$3OH6weDBo-24x<^4RtzcGXU+?c!WV12MwiR#8XoJ3b1O5>6Ldn z>9YfOCT#|kQD3IP-p`0oz~Fb)PmpO4h;DZ_4f5)}()#gPw=IM5p|bt~$-l>S(0bhx zq_X?1hiz~{*#-l9LEzRINt^Lt5zD8#OV_z2L|qMLFBrD5CvE<1cK>Sq^!x4i&Qqh| z=k+t1_ldOS9V+Fv9GnB&WC7U1It5^xKP(o6x>eG{sM~21=#C&op?mo_1J9m5&ghk` zU|4EKVX_DuCX0pRMN;k1WC8fp<>MUvkj(<S3ilqcl%N!!ld^J`sOcZ4c=wzm?l_!_RYlb-QqQuCEq>l-PU>UFbo%uNK8n zsLkzHbw)CpMgUds5F>67rjfuhjqpw?-WV_VK391leYQq}!&D#?U(!FCt)i;ark4Z0 zo}O2S12uTO=`7eZ(l`QqhYhn|SJdEu6krs#k-)Z%;LbHp-$#vP{fas#vMT^fGt88m z?nm_p359JWux%r}b%Zr!eXndI7!6ef)Yayst({-goHp3Dk!W!Kb=;~bYW8XG@lW6I zSIdo+r8aA5HvCmd-1qNEdcKw6Rm0zv;Vr7Qkac(^4g6k_NJnjY3H?)2vHUl7<@ZrgzQ|fpn_o z;Ub}w`-bf@w-VY5J`&vqWvEBhC^~=eiGjWflHNw`A$f=^?~{@><3=jRK=$?b=Z9VX zhSOG(4fAk+d?-EY)@gb^bdhc8K$?yn0?OI(888wY4>;(vmcqxS3}2`8%eRadM9!yp zk^tUH*nZkf_b4M&k*-|9BchRy=mOUoGajA{2`*Ge{_`npwtT=O(jdRQtlm{gzG^HarDfNtM(C3-L^y1fjuQ!1 z24Slk&=L&HvJD?!iM4g`BqruWUys z+E9esfYyUnq?+*|PNwq$UhVNqj3L}WTti$+DiVY(c~yGck{^YR8xwEEG|m zZYVr<;no^l7;m|rBstYewzx*wN1N(cAKjmQP?F?KS3NSxp=TOy2A|G#aI)lfuBgbq z=4_%CVQNYM$lByWDGJIn3Lz%2q?n_6%WH>KhY7|0Lp>TvguE)AZ!sp2#F!(ozP3^i z?GEjIb?3S0EyYwRy9BHAh)aqI6jDrJOEFbSGcU;+>98%uzyZHsc~$vIy~nEqzSwCc zE8>2Z9D`B0W(YD16{o=xmMBx@b;RBy5!3c*{8n#9NmR&gp_EX<$k`yDuTx>HuKjn) zeSRpWok&R=QvTIt>H$t=NKE9wTjLD(GvRJEum& zj|bK6T%S4t;w;T=D%f3n+8T%vJ5P$`zzC^_E`La>_E~Reuf@5kD^x|Ny$|PQ@rkaR zKMgU__s7$j?0I>dF~kf@G?L=(bHl71eoB>JROhj~uC7QNA50da5$=x`i9hz+NKiSE zEnRwsCk_m8_cdZ}Uc>`Po|mUG*1{CReuT7!%F{-Yvpy3y+H>*o*cKuRJ((Vl@BA^t zn!9Z4t|zEkT3rQxN*ZzefnECFM_qzJ_TcAAPT`^b4t98QK3Jj3w>d1TbCNid-DmFi zM@P5sixZF-Rq}$*#G=Dk1d>XnNRsoYPPo*;>8x`yCxEgp#$bP&3YMzZgcqeY`R4;# zQe&(caZ#WfU?g}~Op`g5@PNKktO$!^I|z<#Dj`zJ&1q`@!)xK zoyBE+)7OSUQ}HMr=$P=)FA8oWd@L$CL4c*qz3^heynv0C)3YZFLGAh(7d?uE_>2cRK9F(&HVK%E&UU}KaaR$n{ ze>H7vDA!Sz#t(Hu`lj+5Gv;aGmP)_D^w*ly_Y)qS-9qa(T%27PNswmh{gCG9-V}c< ziZZSFdmnYHK9%)*%HO?|e;2JsarFx3%m)ui7iX9XhIzMb={-e`~{aJv#x|5!z^BE!9byu32eonJocsjLmx`$ z0zbJBPAO|U=e>(c(1iaeJ8@_SQ6J_B^&rP(hI)`yXQY3!g79*7yWsgqg|s-|l`ItV z9Vk|MU^D$ol8c!>y!OR!G%#>ZmzD)n3m5n&C-ZW4p=A270%gMo3=+xn4T9w-L{DCD z2g3)Tkt`X$?KtKeSNl~{@&0`jzK@Ie{iP~S+s)@4{NCoGr096ja|ge_T)SHQK2Y%c zz~c8;D$FsX(c$FxmrBo@-@}}8U%~G$7Um3Y@2?ZrzG~{Q}|>1sAsuEN&m638EMgiV!OntAVNAN#if4sq#>Nn+Q(L6%3?< zKP<>RutP$Smzfq&a;}A~y}NE!k`2anJ-cS$n#l!`d2ven7z_G7t!Lrn+~T_03yDH~ zu`r0kErGwtapszIt|>*t=MxR39^=nKM0IrC57;hLA*q;|z%k zTl@IT2IcaMTTKQYW-68n>=Tfh6%l3h$U-aJNTS19A)ovl5frYND>fDL>L=2J|KmUk zs7}50q&#vD*I^|7`naXe4a1V6DE#cZ#c^fIpXF}B9(;3+Ma7?2NeVi+-!;{G)Z;Qg zTeq6;Anasuw{A6(ZaJ_9^9wJgq@K9TDbvP_A+YZlz?9Wm2LJb zf9(JYHrOr!#m*h2cv<=a@4Z7m$nmgA1HD5qi8QQKbFDr@RN23&Q@I>iba%(tf*w6; z8#r1%-;L@Q(<&>>J~uH3;1{tTg%D@d_r4S82suW6y zR+2ydSq+>dB3T4fxo;DGKR!2Ho9rWZn9EfiW?>C2%ioPKsIrEkDe3G1kLb+j`hhAH zeC-WPqzxzrOg?Z2cjQs!P#MA+Tb~v2YMPEwFmLqDu#5)l_;q~*;dpvi(MfUJsDn3x z;Bk`1nyjnru*a`eYh5Pvuhk+t&Bsap@2c);6K4!{Hh5@Rg8uluVIOOSg~kKB9G&BB zhOv;3Y-tSI{aQci5?_ZZ90!NKB(R6HEJ%80zcH$)nF~`tw37KV)3$ALc(jsWOx6>T0#8WA=O8D)?h$FF*tS^ zrQS1CC74AF-wgAXv>021GLcTtH=hC6=&Z6vbjHcg1Nc}p{h`4_`kboeH6p9unfBST zA&sbE4ydtJ;PI%FF}eAw9MIL^0h~HZC(cD4^L73DHUZ=JzhmHs(znLI4=G(^ngx#> z`usu9l%(09{H8Jk)S>zS&V#c1SSX1vP<+k)MO6VJY$6j4e zjdKWB*CX%wBbJx(T3ykQt7|oIbv+h~W7L@o@!P07JK`E-OLsps#Hg#Bf!5bSe2dj{ zeJvQdI%}TNriba$nL6G;Az)LABFUufy`fw|DojS!r~zP9d zAYwtGNkG|)N7;kHueGG?v0*0RK+v!@(W!XjXL-$i?hU4&j1+DgiQO8s$ryNC zTRzgRo6aO4xHSKHJt$i?h;Hy{A$#Pzg08t?F~98apIBsyAKa2m<#0gyF!&~Y^i$EG z$t|)WxW(4M7=crT%{4`MMa@twHewr-HW@F5xI)Zqa6vI1l?HgXW(&reP}MW=z9mLhB=ET{tHq z8-iPG4NRNxzF@N<@O|(`-&XPyM~fKbQyPjN8e$<&R}>ew0PYss&$>hBpo#`_3k*~1 z`wLhT=o_=>ByD9|UeS=tYc+6rz3^;fEibJzyu3!XVqYV(} z+|qD(B#vd34LzgSvq3TO4Bg1V9@1yqVfJ%xi8;PDg8986_VT68BpH|C>Q9Qef@@6$ z&L#E8ace#P35l5v2iH^!1+YCjN=*+;#!fBlL;$c&rN3q;LlaSDh*YUzev}A-25Su% zJqbIyjLwW{fgh19n+kkohr;;nA8?*!p-os~1xJHqh_7rota8cc#g=G!YUuHR^UBj3 zyL)N9BP~>6DW@awXSD1)q<=SUZw+22r6<>eixBW>V!)e@w<2GX z{b$S0{{LH{FNze3xR>($cW+UUOTBpZ%b*uHoHBRIcV{9-U#e`zKZ!Wa^462mQQ=+) z4QG;#Kn08OvTUA^WzdLJ^`c6hqoA283p1i4m`qSb@8z|2wGUR3q!jjvMkUUAC=Axq z!6bAOnT{1y{SKM(ofKMz`eR5?ok8t&l9<7d0z&=##W-|2JT~Q{=OdM`jKz#?llYHA zMc(NtiNQ_C&~Tc7rc=Ps`(-+AN{Mm|FPr2h_lpY~Os)@p(ADUJ`cC&lZ9Fo?zHJ7D zX7A5{2$g&#J>Mpar|NpYK+dmn8mRK5aEa9B^s!9F*KE5OG7;y+rbj;K2J}dVL?9-; zDjbm^5rgk=P{n!0twlP1BgQG%JMw{BQ&A%PD&NM1@V?K)N)!CGVY+BCx)d&?q<^m5 zQo{9Hb@@(J(NY@1sx);)ry?T;n6NVUsW9-VN+N}3pagVCNd)JBsgW&VT4TTla$^lsWyemW1YZkx>CTu=vV{9bQ=MPh74_rB_p+*dBA-hGG46cfuq#r3afTxa zOS_&?rCX=1xT>0nbUyAIviGp1qpE~xU;JJ;MOWILPSvAgkv>&Wuhk4jCR%vmzF#v{ zXbYh&^;igV^|>H;?Nm)DH z2P!z6@Q{c1BvF&Uw^#n-WP33*H0S^Gv7nXf$lR*qK27V~esVr73NBYczN08i9Z>w6 z#iWHkC8s^xRnt=+kBqSYkI$_^>3;&(&;qf3Uya}m_E%XZ`9boVuL}42N5Lp1@K<0E zt?T}V*|mjkMLf~XTw!gDbm0z|s=}x`s#XEpe|p+yxac5LPbC(EU@*B$WsNkYyr-uO z9zU^mT_R`sI|#w;;P~7dhJ9tY?89k=f0Iwq%lZlYmAJ`OZ*TAyuu`HHmEweRQMo8; zx7Phr$T`Sl0wI^xrU52k|bg0YIG+qPDxohDbZ$ypBnpl5b zPCNsP96Umg>?HImtCt-oEb zJ81o_RDve<65@l{Uvi93Vn1T?N$jaDdV<<7B#M~uni+@?6n*>}i`>J&%bfCgkwxF* zJ^>T^fc&r_>S$U|w9|Tdp9QT?R26$0NVGmNY5k>4B(WndK4H;%r*qD$Tr(wtsEkbO ziFaB*B-)AAD?N>9J!J5CFJe!Ly9Kp}yj>+?K;5XBft&0~J;h;)y>v-W>Wdds z#0Ft!vGFAOitmbRuKS?dZjxpZd9ER9J>wd@1%l@1CPNYPe_`7aSaF2hk0V7 z`HEK)(Pvm38MMjz71YE;f2a<$ZPyY$O!E^3&CdqYd}GsmWzh?o@BVHy|N961JAn&% z*2qYPpAQ>%2*oFJ#yWCA(6I^iTO31G{@aXP&?zA!7jSxDP7odw@@V161)p6Uxqw+! z90R&4v_&rXvSSlGrh!7_4lFj}$c1`3`GftSCfCi1T$pt94aa_e?6;BFBNz1R6}hnP zzI3+eD{^7RVO5a}^|ZE8!3pA$0SdDNX5>OuRY^xKRGp{YW1q>6j9k!?aNvUXssk6Q z+zK;r!5hSZ3$-~x({1Jk6?TR$7&~?$?!1y)Riy+GKQ+5`bb?El1VS$5j|^Qf&v)oT zr2}9@F8GvnWaI)*ZV|cQ!TvTCo3ndW3fhcZs48XY$OWJ~Ll=xPc0ril?liO%<@?h~ zs}_48I(VTf}hRUF&m#7-sB3%I6WhAbPTb7k1n0_Wot7Ab`efvS z;73L-7&~&o>KaEbtPfD+LTyrMJ2nAK9ULj;zw7kZKB5q{W#EF8ToJh-bbMy$f-gIE zVX8!wV;4e4<=6!<9K<;=c7ZjM`r+V(Sem<&ez5%rUJ$;Li*BI|xzq!j?>l(GeBZ$f zIW`Vn@Z>sp!PDvBg~j(BybzbWV|`fxP$0Ozp_smc7sT^d@IvtXhy@VquzSD1^V=wV z9~ZIw2wqq>pLekQ2ws>ga)8PZvwX)Vh~)uy%3j6uz22DLK+sscld%BeugiY;X7O*7=A$g3ORu0pk~zB3=lg zFhgYa>V&|!K3RdorhvCQy=g%!Ra zoZ$RQ(4U+$Vi$mr z+h%pRF}Kb7phmrB#43pF?zpeW57_Vfid`W5Sg{M!Nl+tpK{#R;Yy(p4LOrdCaOgsf z*aSx|#4e1Ofj_Zibj6K*18}6>wst(>1e5f{oJ?$6)3M#LZBOiEV%wb9wr$(Co&5RE zJ?GY~x>bMOuCA@M_Ug5JJ@wXGTMsR66%`4-K&b)InYjK;a|MzRwc>3zYVWu;yk3Kj zZP*a^_o^3rr4O!bgd)X3)j)!H_&yA&SY>M@L_`tLe8RG~FIu_s7r7k+_g{qwF>MQ1 zRhJ}fa12q&-{(MNCPz6-ovW-yfAd9uF)m4CI&k4=5FMgJGws1x)T4{bQ%et96%V$D zqakFoN4uh2Jl3m{4Xo$HcTY9RQ-)PBfp6%@UfLB805e=hc2Xw`aR>FW_;&c z7{}0SHQ~f=*IXM*LzpI}>WPBC$U6-UBw|n}V`3E*SFF`lK-_k~N5*A~cNQyTs(n0Y z*K$wLXD!1PwkB<*aX_EyvOyb)U~Jng!rB}aqz7dkggl3`d3)o@gN$tSWT6R(%T^2J{ktg?v$E=K8J<7 z9YS!c8(olz9$9)Bx5TIY2XN1oIu}Cz+c)A25ltH)_N ztK^^Qxe;A?oI3C8SqA$TRKEv`j~O zi_*T)-h3a}(4)g=i<=huE1Q(A8(x+T^VMbUafY1GXd*y04q^C+AoTX6kf*+GR_93H z0FTJ>yZCTR8BqSmh7}8Xp#(PFK-d(J947*e7pO3Ff;lvnZ$cd8Da``-5E}n{KsAH5MB{=DT-B$+uO5 zJ&=+w#A%^t*+wIK+P~rtr8&KZUuEJVsLNl0qN6rbU=PP@=V_xnD{q9miv{)Ph+u67~0hPM_^4 z{Tbsd0fUJj9%6zlpbB{a%pEH{nE~_l3 zZU=kgnA`YLJ{sSlAagoaVqb)r@%9weLCkF%jD5)kIJ7D4*l}}*w#|$&x3q1WIfs?e zgYu#wyz(tVRNE9Rs`9tdUr8A~yDmIY9lFCa$dnuR5mTdx$1Lt)?II%DYdlH`xYzOW z_TLg-(`Q>ZI(97#^&%!{J)+P3Af5Se7_^bZRiA^kla-wf{Sfualj+@p3BrEty-gj_ ziE>yn$i!S*rKeKdA&B4%2oG05t!dIy#DkFK@#)2$%>H6OAhdG`47Xrlhz(bDpC{+7 zQc;UO`R42n)I;sXm#_H6Ju-Z%oqp}P2V|{hdwc*`sHj(F5q#_dKaI!{d zF4OKg{e2pTTRh#8TB+w(;%iqLpZ%<43*#*f3RHNpLWE8uOx#){2~IF$O}zPqa@M0j z4jJ0NxYmTe7i#dAy_*;wZ23x0$kPMD-aFpNi3Oc+{U;vfJ!%!TQqr?CI^~cE{9Epq z>;nqDT6(bFal81%AFEcdXn_El_@o@{duGb$@3R!d*f9+F>IjLx_}{~(DkRz)D<3ya zPS9Q5tx@!Gx9^`?3%+T!QfHf{VE<}RYb7dmQcAc(eK$TAEXT}r-zic}Aj5-Fh72+( zat_tGR4Wub-;=56;vA~3?QNo+d?8wW&M+&4K+V79kEX2WjFm(T zPAGJT4EYu60NXM>ZCoI7X8yKrBc481`Faxf&d|8(7`Qj8fr4asx=_J{^vfH4wfov3 zD}Rt)?BbOo$l9JGMc;{*J#LqkmQNQs_LOV)NzSM`Bb6_T7OUoE(J}CM4pI*U22zlv zY~zY_DLm6$va=~%V3SDc02y_9&bY#G5wKnN{x6M}P5PD(@Y%j<(o`*non`vamc}m6 z%96}X?5Z|lpRD!#x=Uo&{qI+0EwAp9Uby{Co&1#rjlQ20-7Au9chEgQ_X2x{%LFB6 zh=B^p>Bi@MSnvp19pi+g+=x2ShrVy{+%p`lUp=^iGeMmc<^4xi$mIskU-IG^oRwaj;Q#yO(!@%zmS~h-??qnLT zUQlkrM76L4-a5&i;^Q8M!IF8gUS@e+L8UOap~~%ZHcye@+1%Q@_K}#&Yg*~6j0iAr zx5VU#n0r(Yv7s#50fxS{K2ELagdH=Hi*+D-O~6DZhIMBlZ&B+0gVvd^fUn(oG0AEj z32XT(o{ynt@1~rEb?uZSkjo~_((%W!HO-4jgX)K?o`PPli>9E%!Q*H`@${Z{N%j-< zX8=mr-t>R}$j0Ltm9;KOQCIRlz}%y|Qyvi82dG5oOQH&3j(VI>#i#+FBO7U~DhA;z4rKs5Gu?M zWNkR$xducukfIL_!bog?QFob#lS|80Yfvf2(3j)JkI8wQ?__WlR5mbSn$@5xkPQ9Y z9Ej4_G%2o!ypn_fi-`4S~b`k%CJaPB#M{m>&m`s~g z=^@XE1j;umV(tnZAPzc}T~B|=Hd)nX3Zv%1p+S^nm<#J z#g~hB!uh76f?EVX*oI+jN%+ZuV;1!Oy34XwMzz7;UcU4M0b;JcuQ_rl*z^UkX;O=f zo>gUU{_3Dx@S>s_SpJs$cjtfy{BFCcZ`cayhh}ygv##HCaUzgBd}eetuq_LXDNnsJ z96$zM&GLA0{`DM*?D;+~87t|RoYB6&uF*J5a`NvM=Cjpq$QYT8&pVq2Ur|TE$Lm@8 z@Eq2_HTEUm8!f@h0Tm6R&lh+5T~yUf*7T>NW1NF%PWxrxsqpPRD%w2M+4^i#`0y6& z^)i+0Fu<>ytFK*meKKZn;Ah$oHvDjGT=wt$h54;*Pxsg&dP~VGlNa6NqvwCh%&y|d z<%yA~`7YY;PZGu^*N_VGo32zdu)l_V&XX6QGg@+-6i3P&%FqLm3Lg)asK+c&F+S&E zoew2p>55DZ6Zrk!)TQ6lNF57Q4l&NvISF!fe?vmX4-}rV3dg0{&SR1@S7ZqP0l*E_ zX+ajq>6z;UtT70_z?VR+lRBCukxniZoBTwv^ISG8fdbQi?56C}mD@!$;1XQawn(7Y za{5!|<9{8%-JEi*n*VPT~&ycg(j=V3>X9D8Y6YYo#j702ttzMY1T(2W5Q#;#K)jSRI;qViijtYK$J^o0$Q zH)H4)nmvWuW5urXXEZo-Vyh)>M&_^*;Lc@#*YyQjEEuJ1W)v*{PX39_tV&asb;0V~ z6SJuT89^Lwwn%EDUHD2C%b+>_0dR*+iFW$%C++NUoJRl%8*y*ovtDruT>#nQ=&5$V zQ3bYO05uX4v^Iy2vN(@+Im|1`K1IBh$&H${!MN4qToz2C+4%&4BBfk`G66XCFNeTs zmK|AOi*rlqn0nxTparhqD*zi~v^%WFHJbmKmAzd^X~_nmjm^`XotRqbA?z7Xz3}Yf zQoWreExOM;=l+gd&zy$@8PRqGkM_7^tJuB+dMjk&N@Qf-nVn^0!!}V8C$oat(2Tvk zAq?$77PXqqqTSzJ1ZU&&El$5~?7oxb05E=yx{qY_YaA5258G72}={v-cK4WSjGn*>EV83Xp9MKNX!@2%tGLnSu zVg|SW+msH`c~czEkl-ppNv|L!B4mZW8uKoLCCg^geK6o9u0JoWFK%b^jO1J5X54)k zY!%Uh3gy6A-2LrfS=LFGC<%I?_t)kt3Z$W*1DyFhl+S>|T4)b(g&t4w8yUfF_q^Eg zE?d_-mdzy;!RuT>$Q5s6A;iXDYhHzT`0H>MeQbB}8{~Nk8fY}0(mt$<}0chOtB(TAC_q<>AMhw-nGjzz2+xCkA& zN6X5q$sBs@a#Hw-xO9r6_DfCC7V@y#fQPz|&MJA_e2PCdf4XlXOhdy$YQKW!J!~;) zN#SL_3x}VGtLW&uXz50N&X31MB+_$>^vc>SO@uu$LTVwQ2NnjfA@tDYEq3_p{;*Np z1rOL7+C2sY7LFrIU<&ut_-_p{4WI=Eu<5$6*ziarENE%pe0^9&35?#VqUI5BSns|Z zrG^3oZos&OsbTgHbmTU|^(YMc@-YCnelz$J{?Kfdp^d$s-m)Nk>%E68e90o`##<)H zxeU#$|D`+XKJf=8p#B+!yFswvJ__^u60z7pyr~tIXNKb2~11=z#$x5I# zgcXr94mxNguojVA^S}seGcDZM&5#yz#O*3dvCtX`Hy7?xQWD zmV{K8AvTw~k?wVlr9&IWU2Ti2TiqS#o5r_#ebd2vM98qaMG7-1=d1|uxJ$!%f?&}? z6Pgot_UNTODEtq?ZJ5f8@lKveE-tfpnB-drfkEG5pDoMR$m~LNiLPyF4AomBdKrFc zGN)OVo~SflP6EFyx;wlip~~&}tBn1<^54qY3ACBgg_*6NCLtE?KjyIR<6?w8eEyc_ z&%r6Z&$Z$1z|QH^e)z1qBni^HO|$hyBEZ|vrg2+Ox*l6V{B3Go=-L{LOHN3DS5Ss0 z56#pAt5-V;^W+$~l^2VIk5_PKzLf{Lc+RbScqKUp%!n*c=YclikHw`!|DH5*0^3bK zoN=U4s2QTqaYX;U_?AMJm)`Ms^s>M|8Vtyu?$BHkdcg02Gl;1^U_R9lfLFaDsJ_N= zXSrdg?0()xYP>n7jOh8{VtfIF4YQ*>dd3<_VbY#{w4zJ5h)$Gt7F;=8S-1BHWfm@q zKZ2DzoZu{V#sWIX4osw{@2K|_Jo1ll>_5PKD;uPG@z-)=k=2t*m!xxMCmay6+N0Kb zSf$LaV`D$kSheFwIci8~duZt1Q0XBpnRimwcWPoyqI- zY0LPiSJyt`fyY;~r)|(=riA^(zANk(08eNuraT>Z*QkLL>DVJbdaLX?Cl%08X}{3U zjwa&$UXLc=o!8-;ddKY#%tml&f|Mw&))%RsMO{Vq9);Isg2M++L4RXi^FJ=q7vE z7L@N-{d4tZyq&_(^&_DNYf=q8LO!xJXL<-MNTkuzowGV6t!iO1L>dPKx#2LGWJW5)v(xb-0xFwYG`7T2kDVJt5;AFb+#%WS0Du*hokQBC6yby;KG7UO4QduUbMgT*^6nZu}!C8_dAm6RGO z>sF*xn;SHqmXkjAT+{>z{**n`2b8OISOTSN-~RAO;Pgbyj%wpjjTZJHso~Vn2$%?O z-?NW9=l4rFB5pK57&IBB@j^diN;mgBRvfp_w7lMu-)oDLqq|iNRcIb#GH=q~OA#8@J`xT~||BoZx@=R_ol(PL+md#?e-j@FZt7(Zq1i|uSm?L>N$ zBphO4c;wz^?u7UJ2^#zU&;-W-pJ5?O}sxMr#N*W^C=j>DyK;8g>KO z$It>U6T`QYN85F_EmIAn68^jfv9#eC;8H+7=Xd-Yu3dbMbpdbVwWT%Dx193CwS_O0 z>1uEL48b{y)s~k+!tBQBzWzmSe_%?qY?x}Cem&3Ud=nI>&-FKrkU*XC#z7K3kkDj) z<{#NtAB?66oh4kBZ&#Ub*D*s6+H_p%sdUMdq+RjNkM{wkzc@O(4g2*pgC=_<)rT0EN#vOPuN%**1 zs2x+iytNc+<#9FeyOV=xbF){S;Tok}y5NeE_olXrUCU~g-jm11EPI#CM>PNZiPOl# zA1})@cYn0in0ES&nQ?K(+~OEsW!$HqpmI2aN8j%yB3kc z)-r+L-3{uM>C2z5s_ReKTO}o1&jkpL;s(ZWV*_SYDcdoAhYc`B2f@iLxbWX9o6ruM zvqQ&A1Mg3k3h)^$CLRMt?l&i4-S8DIx(M6dX52IYGxLRF5g+rLoo%yjukUeQC3aJs zTZS~bZ~hM(l$y8e@I>}h+PeuIRJyZ@AFL9XbEyZJ8`24}x}s9?f*(&V>=k8<_|IF- zUtGT2>dG6YMZ|NG!~3Pw7VITL2zfceP(Oz@rn*c8a(tUi!Q>VyIlSb6ogJrVb3$ z9p@;skwz69|3q`X48bFu={fMd9N^fc545UrmBTuDLE3TSVFQ=rg`+r35f6I183$)U z9>(>1*U9jRm%9y5Ypsf!;G@hP_oUyiy?P9X;{iE9Nfyop<65Ef;)K>!I=~jRD5<#i zQzQH$#p$U)RvEmJky$;Cat}w)rUiOT)1AJ z9(pV&)Q`Rizhqu7FszK&?UzF4AO?S%;#YpX{kLcNKau9)o!!_FCNY^Q`h?C-Wc+sKPBWb;6umJ=2&EXC0uC?0Iis`EsL_ zBL!Vsx9yWqwB!5&1~h3lU$Lr*qS9zTkwjBD8XLw(JmNvL&H4-OVlTePT+j!&xrUs3 zV7)7!H1Kj;^G|EN|J2O>FmtbxCZ(N-HD!pO{C68-wCzs8B^(tjJCr!|Y)fQ&lT!Nb21A<2PsQl}%G1^bbQw!kDeWU?fpgpRek*Cq_ro#q@*BDB5 zq}A@w^Sv*x%WlPw*d{BPtfoZg<$yR z?gVN)p)Vap-a-nlGs?AfZYdnDp1~oFnbn@3$3l%1{(Z)U@V!#E#w%az(0C>pH z4u8YY-q~#B%1|;*OK=f1LE1o^0WJRI~YCTSm2-9rn_ zj+`N<&F_B_t)QtBE(>EYyf))tlzO@mM(mw>TaL%4A98*mL#I;fZINzK0)B3n>*>ZR zQD4_+eojL3`k;43DN!$r!4ywDcsgJptCqAkL)S=;8c|IuH^2(D zZZxIc(9CB9q%2bFM@vo`Qio~w=TO3>j;PLl?lr^13VP`5TXCd*Ra>YM)jQw>*eW?v zZ+8{zX9u(_R86u*$YaEE!sI$Vn-DZkQlAI{woyTY#L4~$pd_)zD4-2EMzv`92}+R; zHm$){Y#;(iHDp{6u-^Lx=~sm^MR4WJgp#Qu%xl0BlzOq%706*}h;UuD9$#tv3i z_3i}r5U()1{4an9XH*1xukTfZ(YB}vGNqxaE|i+RdbXb}!6S+SsZTgi7oQqc zp5LpYzNw*CiH;Mn5cTqD9CT$qS)$zQ!u1n0Cpq3EAE1A)60ODuQjb37N(W$e$T7Zm z8obi#>GofIrR%>S1{l45#-M+K5@7W5%z9(BP)Yw3jtv;P*X$vtP2>hdkeR9eSaC)| zsCp~aC91zj!5F&F4GdWHoUKG@vq25jsFLgLW?omK)+_B8>s9XS<|ZjoRSo|PZq=mX zB9V-*&rqo{UZ{Z9#mT5D+Wk_PrX+ z{(SMITwk|fpA)eEQm!8@FQB*wTco4Q7+I>X+l_k1i$C{8>_-vdiK=2#j}cyIQX>E)nzsNs&-GQK5EH+NLc_rZQd8-elOgajH+W*Ok+HRns1*fHJSs0CMEh?BcK6d z&vH(HRG+$Lc-KapBXwT)@MqO5D!G;~NTSR4?$-9`!O^g1pg01fA)E1EXOK~EMN2;83e9V-uX$2kwER>(o@ z%I&6qqAn;tfI6%uDxeAh3I9Ui*=*2Po1VJO=QYVdiWK#+;UcOYnw(9&vKg zggpImoRBg`Ko&^ws*XbFwe&|$0-=O!B8s)J``FM_r@olvgU<6cNwmMuT>(EfMbK+u z(K7a^1?P6{09uH&#?j2&63)~CTV_>(lY7+iQpfUyIXgIrf*C*@-xzD8S)Jw#;QeLD z9);d#|AA+pV~`8iFP_jJhoC4ybe<8V;5=iVQ1q4UFT}^T4MnbTHKNxzd(@Ipnq%9l zB?loabkpT_fR(xOpc;cdUxAg}6yR{D+!!&kiQHIDvun}aKt^V%QPoi=sb={}p9m+E zZ(~XTL47gkFs*(V^mr#XPMkkOZXCU!04WooH>>A$s%P7n1wCY7`FTT{ig`{l24c0( z`YJ7~uIs5CKrt@vs;U@N%f!W(X@Da)-d$b?8uyhaiT&270epOhDXrpAhO{?tNdq1# zD~;=YGtNx|zIV1QScq^SAS{-o1>i&|O+Xk&X4^p(Yh5Yy96b|}o(Y#5*VF4H()#AJbn1F&o!vgRd5*@4u?RTkuw z#~P}p=e38-17Qgtag0?#}lX+G&uvAd}BQwN|VHf5lY+J#@Rj4Gysr_Kqzod zbCURPGlCk_T!b$mw74a!@7|9%<8R6ZrAgJ`KkcB%5P(2^uAp;_qe|`I2`#-&^?3{c z2c#ku`r|~dTF`(;Hs)@Qzq-5|MPRN)@HzHxOBN92E;O$6a_F$k4; zja;pT2(D0O&44|z2fe;f5a@_1Hl8CH5M(wBA z4iK91i2;QhRjq=3UoIBylgL?aD>fEqj!@vI72=|%6A;vY)pFAU{{B|1p=WVs2?dUR z{sP&4xzuF0(9dB|ub?eQC_8v#8nA>`@5~N>F0T33yGLER5oQOVGa$B2tT7RHsr?L5 za8H;W#^OBzj#)Wx3{qjH734%)2uSfu{P95nE&7w@DDgPTC#t@p%5f79-3RmEa{p?4 z_9vqkS6Ix~7g*_8Ln*ylR3}$CvF*Zsd+)=_CBn)sQNi`9rJg_Z1w2V&SPXvuS*y&g zE^XHN88fHlASQSU%Q*obOK)G3!W0uUa+JcQ$oUN__=BWKeg>9C8~ph z@#K<>c}4QIJfGns-B@V!W=(Xzh*)JmXP!TQf5)>V>9a$&k~ z4zy;dC%r%#LA?+?*z8MtB?MT9N-Kjo_`R;L!4-511I1=rUAA%vqw1k40CWWnn;{_0 z=xc5Gs&6OK{-Qe=1F7;jk!nOuhq}CpSIZ{8Zt#TVjm>`9$#5!V zuqi~%VBtRFD8E0-X zzUdVta?|w6ZROLm14GMd=r6fQMm*|m4o@OSUorW@8n=PF6mgMfdd}?STr=`a3*BX` zOj@J2xoaEUDC5xHkdF#V!OfaJ3vuU+pwK0ufV|)c{PCLM%%yy+@g8Vl_$w;gMldUx z3|ff&D?OIK*r~J6L>SWW(l1YX^>N=0YFsZM`%AfR%0AQElO<;1$7kgRNa#Q-Ek0KA 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 d|9hPF4!U*@E_RR{0>RzgA31Vw&bs&i-+Lo_ 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 OV`GIOB^8ksh50|l^sK%B literal 0 HcmV?d00001