From 94f03f169f49aded160bf9ccfd09885883b92737 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 5 Sep 2021 21:19:46 -0400 Subject: [PATCH] add section about neighbor list construction --- doc/src/Developer_parallel.rst | 217 ++++++++++++++++++++++++++++----- doc/src/img/neigh-stencil.png | Bin 0 -> 53823 bytes 2 files changed, 185 insertions(+), 32 deletions(-) create mode 100644 doc/src/img/neigh-stencil.png diff --git a/doc/src/Developer_parallel.rst b/doc/src/Developer_parallel.rst index ee749cf160..19b1ec7e4c 100644 --- a/doc/src/Developer_parallel.rst +++ b/doc/src/Developer_parallel.rst @@ -7,7 +7,8 @@ parallelization has to be efficient to enable good strong scaling (= good speedup for the same system) and good weak scaling (= the computational cost of enlarging the system is linear with the system size). Additional parallelization using GPUs or OpenMP can then be -applied within the sub-domain assigned to an MPI process. +applied within the sub-domain assigned to an MPI process. For clarity, +most of the following illustrations show the 2d simulation case. Partitioning ^^^^^^^^^^^^ @@ -86,39 +87,42 @@ the load imbalance: |decomp1| |decomp2| |decomp3| |decomp4| The pictures above demonstrate different decompositions for a 2d system -with 12 MPI ranks. The atom colors indicate the load imbalance with -green being optimal and red the least optimal. Due to the vacuum in the system, the default -decomposition is unbalanced with several MPI ranks without atoms -(left). By forcing a 1x12x1 processor grid, every MPI rank does -computations now, but number of atoms per sub-domain is still uneven and -the thin slice shape increases the amount of communication between sub-domains -(center left). With a 2x6x1 processor grid and shifting the -sub-domain divisions, the load imbalance is further reduced and the amount -of communication required between sub-domains is less (center right). -And using the recursive bisectioning leads to further improved -decomposition (right). +with 12 MPI ranks. The atom colors indicate the load imbalance of each +sub-domain with green being optimal and red the least optimal. + +Due to the vacuum in the system, the default decomposition is unbalanced +with several MPI ranks without atoms (left). By forcing a 1x12x1 +processor grid, every MPI rank does computations now, but number of +atoms per sub-domain is still uneven and the thin slice shape increases +the amount of communication between sub-domains (center left). With a +2x6x1 processor grid and shifting the sub-domain divisions, the load +imbalance is further reduced and the amount of communication required +between sub-domains is less (center right). And using the recursive +bisectioning leads to further improved decomposition (right). Communication ^^^^^^^^^^^^^ -Following the partitioning scheme the data of the system is distributed -and each MPI process stores information (positions, velocities, etc.) -for the subset of atoms within its sub-domain, called "owned" atoms. It -also stores copies of some of that information for "ghost" atoms within -the communication cutoff distance of its sub-domain, which are owned by -nearby MPI processes. This enables calculating all short-range -interactions which involve atoms the MPI process "owns" in parallel. -The dashed-line boxes in the :ref:`domain-decomposition` figure -illustrate the extended ghost-atom sub-domain for one processor. +Following the partitioning scheme in use all per-atom data is +distributed across the MPI processes, which allows LAMMPS to handle very +large systems provided it uses a correspondingly large number of MPI +processes. Since The per-atom data (atom IDs, positions, velocities, +types, etc.) To be able to compute the short-range interactions MPI +processes need not only access to data of atoms they "own" but also +information about atoms from neighboring sub-domains, in LAMMPS referred +to as "ghost" atoms. These are copies of atoms storing required +per-atom data for up to the communication cutoff distance. The green +dashed-line boxes in the :ref:`domain-decomposition` figure illustrate +the extended ghost-atom sub-domain for one processor. -This approach is also used to implement periodic boundary conditions: -atoms that lie within the cutoff distance across a periodic boundary are -also stored as ghost atoms and taken from the periodic replication of -the sub-domain, which may be the same sub-domain, e.g. if running in -serial. As a consequence of this, force computation in LAMMPS is not -subject to minimum image conventions and thus cutoffs may be larger than -half the simulation domain. +This approach is also used to implement periodic boundary +conditions: atoms that lie within the cutoff distance across a periodic +boundary are also stored as ghost atoms and taken from the periodic +replication of the sub-domain, which may be the same sub-domain, e.g. if +running in serial. As a consequence of this, force computation in +LAMMPS is not subject to minimum image conventions and thus cutoffs may +be larger than half the simulation domain. .. _ghost-atom-comm: .. figure:: img/ghost-comm.png @@ -134,10 +138,12 @@ half the simulation domain. includes its ghost atoms. The red- and blue-shaded boxes are the regions of communicated ghost atoms. -The diagrams of the `ghost-atom-comm` figure illustrate how ghost atom -communication is performed in two stages for a 2d simulation (three in -3d) for both a regular and irregular partitioning of the simulation box. -For the regular case (left) atoms are exchanged first in the +Efficient communication patterns are needed to update the "ghost" atom +data, since that needs to be done at every MD time step or minimization +step. The diagrams of the `ghost-atom-comm` figure illustrate how ghost +atom communication is performed in two stages for a 2d simulation (three +in 3d) for both a regular and irregular partitioning of the simulation +box. For the regular case (left) atoms are exchanged first in the *x*-direction, then in *y*, with four neighbors in the grid of processor sub-domains. @@ -219,5 +225,152 @@ performed in LAMMPS: Neighbor lists ^^^^^^^^^^^^^^ +To compute forces efficiently, each processor creates a Verlet-style +neighbor list which enumerates all pairs of atoms *i,j* (*i* = owned, +*j* = owned or ghost) with separation less than the applicable +neighbor list cutoff distance. In LAMMPS the neighbor lists are stored +in a multiple-page data structure; each page is a contiguous chunk of +memory which stores vectors of neighbor atoms *j* for many *i* atoms. +This allows pages to be incrementally allocated or deallocated in blocks +as needed. Neighbor lists typically consume the most memory of any data +structure in LAMMPS. The neighbor list is rebuilt (from scratch) once +every few timesteps, then used repeatedly each step for force or other +computations. The neighbor cutoff distance is :math:`R_n = R_f + +\Delta_s`, where :math:`R_f` is the (largest) force cutoff defined by +the interatomic potential for computing short-range pairwise or manybody +forces and :math:`\Delta_s` is a "skin" distance that allows the list to +be used for multiple steps assuming that atoms do not move very far +between consecutive time steps. Typically the code triggers +reneighboring when any atom has moved half the skin distance since the +last reneighboring; this and other options of the neighbor list rebuild +can be adjusted with the :doc:`neigh_modify ` command. + +On steps when reneighboring is performed, atoms which have moved outside +their owning processor's sub-domain are first migrated to new processors +via communication. Periodic boundary conditions are also (only) +enforced on these steps to ensure each atom is re-assigned to the +correct processor. After migration, the atoms owned by each processor +are stored in a contiguous vector. Periodically each processor +spatially sorts owned atoms within its vector to reorder it for improved +cache efficiency in force computations and neighbor list building. For +that atoms are spatially binned and then reordered so that atoms in the +same bin are adjacent in the vector. Atom sorting can be disabled or +its settings modified with the :doc:`atom_modify ` command. + +.. _neighbor-stencil: +.. figure:: img/neigh-stencil.png + :align: center + + neighbor list stencils + + A 2d simulation sub-domain (thick black line) and the corresponding + ghost atom cutoff region (dashed blue line) for both orthogonal + (left) and triclinic (right) domains. A regular grid of neighbor + bins (thin lines) overlays the entire simulation domain and need not + align with sub-domain boundaries; only the portion overlapping the + augmented sub-domain is shown. In the triclinic case it overlaps the + bounding box of the tilted rectangle. The blue- and red-shaded bins + represent a stencil of bins searched to find neighbors of a particular + atom (black dot). + +To build a local neighbor list in linear time, the simulation domain is +overlaid (conceptually) with a regular 3d (or 2d) grid of neighbor bins, +as shown in the :ref:`neighbor-stencil` figure for 2d models and a +single MPI processor's sub-domain. Each processor stores a set of +neighbor bins which overlap its sub-domain extended by the neighbor +cutoff distance :math:`R_n`. As illustrated, the bins need not align +with processor boundaries; an integer number in each dimension is fit to +the size of the entire simulation box. + +Most often LAMMPS builds what it calls a "half" neighbor list where +each *i,j* neighbor pair is stored only once, with either atom *i* or +*j* as the central atom. The build can be done efficiently by using a +pre-computed "stencil" of bins around a central origin bin which +contains the atom whose neighbors are being searched for. A stencil +is simply a list of integer offsets in *x,y,z* of nearby bins +surrounding the origin bin which are close enough to contain any +neighbor atom *j* within a distance :math:`R_n` from any atom *i* in the +origin bin. Note that for a half neighbor list, the stencil can be +asymmetric since each atom only need store half its nearby neighbors. + +These stencils are illustrated in the figure for a half list and a bin +size of :math:`\frac{1}{2} R_n`. There are 13 red+blue stencil bins in +2d (for the orthogonal case, 15 for triclinic). In 3d there would be +63, 13 in the plane of bins that contain the origin bin and 25 in each +of the two planes above it in the *z* direction (75 for triclinic). The +reason the triclinic stencil has extra bins is because the bins tile the +bounding box of the entire triclinic domain and thus are not periodic +with respect to the simulation box itself. The stencil and logic for +determining which *i,j* pairs to include in the neighbor list are +altered slightly to account for this. + +To build a neighbor list, a processor first loops over its "owned" plus +"ghost" atoms and assigns each to a neighbor bin. This uses an integer +vector to create a linked list of atom indices within each bin. It then +performs a triply-nested loop over its owned atoms *i*, the stencil of +bins surrounding atom *i*'s bin, and the *j* atoms in each stencil bin +(including ghost atoms). If the distance :math:`r_{ij} < R_n`, then +atom *j* is added to the vector of atom *i*'s neighbors. + +Here are additional details about neighbor list build options LAMMPS +supports: + +- The choice of bin size is an option; a size half of :math:`R_n` has + been found to be optimal for many typical cases. Smaller bins incur + additional overhead to loop over; larger bins require more distance + calculations. Note that for smaller bin sizes, the 2d stencil in the + figure would be more semi-circular in shape (hemispherical in 3d), + with bins near the corners of the square eliminated due to their + distance from the origin bin. + +- Depending on the interatomic potential(s) and other commands used in + an input script, multiple neighbor lists and stencils with different + attributes may be needed. This includes lists with different cutoff + distances, e.g. for force computation versus occasional diagnostic + computations such as a radial distribution function, or for the + r-RESPA time integrator which can partition pairwise forces by + distance into subsets computed at different time intervals. It + includes "full" lists (as opposed to half lists) where each *i,j* pair + appears twice, stored once with *i* and *j*, and which use a larger + symmetric stencil. It also includes lists with partial enumeration of + ghost atom neighbors. The full and ghost-atom lists are used by + various manybody interatomic potentials. Lists may also use different + criteria for inclusion of a pair interaction. Typically this simply + depends only on the distance between two atoms and the cutoff + distance. But for finite-size coarse-grained particles with + individual diameters (e.g. polydisperse granular particles), it can + also depend on the diameters of the two particles. + +- When using :doc:`pair style hybrid ` multiple sub-lists + of the master neighbor list for the full system need to be generated, + one for each sub-style, which contains only the *i,j* pairs needed to + compute interactions between subsets of atoms for the corresponding + potential. This means not all *i* or *j* atoms owned by a processor + are included in a particular sub-list. + +- Some models use different cutoff lengths for pairwise interactions + between different kinds of particles which are stored in a single + neighbor list. One example is a solvated colloidal system with large + colloidal particles where colloid/colloid, colloid/solvent, and + solvent/solvent interaction cutoffs can be dramatically different. + Another is a model of polydisperse finite-size granular particles; + pairs of particles interact only when they are in contact with each + other. Mixtures with particle size ratios as high as 10-100x may be + used to model realistic systems. Efficient neighbor list building + algorithms for these kinds of systems are available in LAMMPS. They + include a method which uses different stencils for different cutoff + lengths and trims the stencil to only include bins that straddle the + cutoff sphere surface. More recently a method which uses both + multiple stencils and multiple bin sizes was developed; it builds + neighbor lists efficiently for systems with particles of any size + ratio, though other considerations (timestep size, force computations) + may limit the ability to model systems with huge polydispersity. + +- For small and sparse systems and as a fallback method, LAMMPS also + supports neighbor list construction without binning by using a full + :math:`O(N^2)` loop over all *i,j* atom pairs in a sub-domain when + using the :doc:`neighbor nsq ` command. + + Long-range interactions ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/src/img/neigh-stencil.png b/doc/src/img/neigh-stencil.png new file mode 100644 index 0000000000000000000000000000000000000000..7d06f6ae14aba1c2beb455f8e8c46a543cfbc797 GIT binary patch literal 53823 zcmd43bySu6*DbznMG#TCr9ncGkVd*ex=}hsxESyC@3c`C`kI=+S1U(+yH@~33dzS5o_cpY}QdIrNer~_4TEGh77ilFkvZ* zaK=MZFJ&SrMhgZO6ES&B!dpY1JV|_&?%)_{5oz9f_3uVgSC@E?u*8{;yfMaHgB9Q8 zgv)sCjnC>nCdy;DKUT`3B$}F~?1fQllkO8CbeBV;3_2y`AJxsR5nrpDY<7&etmG37 zj4sA~_|V7b``gi`wI+p_vIeJwm%rHb!;fMe`%~^e;N`16Ct&Ta?le0PDbU9YC7r)-i=xEP!c0Hje_#iCyF!9GHGKqrB zd@@^k`V?cn%{da=^GB7K)>sX#&jXoRTJuQG(A^!(7N~#Mro1OK_OOZ#d`nt#zdt)* z*KPgf{$tW3RLvD>kILIp9wFKmrak0890)2Z-kG)&zpuQ3%8geM)But;I{W$k5wP0E9y%$rn zK_D2(k^fwCOy#qOH}BYrOAFswxOW@z9A_ybK^%b~MTiT%Qgj?$pKx%*960&8?cmTS zm~rjq_0KXHpEACFy({+k7S=;1)oUws=VU+ju%Fl}whKp-*5bS(wIzFaH(2}8U5Y24 zgW}Ck&x22QQPy>b!zMyq`DBSnMjSe#9J*tpoE#SYew(x1hub3%{JhDOx2}F7B}t+} zZXX0&^kz}jg#jch> zl6-~q0Ojn??r-QMyqa~cPEt}*3+>@pt54W1CpBT@!DPbUuo>W414;Pm3_7skS#fZ1 zlty!g)`s%52nY!^vy~aV4tn+U^gJ$(mr_zFbaZsQoLgaHJdPJ4nGM=8=~d;z*AO7Jl`TC8+?uMN zs`t38cG$`qSig_MC>8ti`Sa(ma}BpfOV{fD=F!8f2M-ze$epnFsyEKQ&Yyk`r1(b;o6XFZh!>~e!0ci z!CHQOR%v8>Y%I6^`Y?=*W~lJ=a4R7w=!bG~cLE=u?Xq00cD`H;ObAo`SrKfxPTO_! zr`Asum2WN&|IjO*Mi3Doa8D46kFQu1iI>64&T8gn|*PTlasMb?KL&WYh4Zn1O>Yc zi|H)tY?cDr^sDUFA}okB()*5&k2%(RC#oHo=;+#YmlwNYoNFf+ZIfVODG7-xhpl+Hd3*R%s?Zhq>^FOJIDwuG4$6uYFPmw5w-I@>`jgN z8Ik0ki3zR5EH#mqL1UK9%}tcj5o4CLw6xLjLIO7PqcO{R6Bhgy%_=kkHrutqE?uVf z*-v8*{>twjL;97T?I zf|-&{2ePu2bBo@-hN0blKscPIRb6H=Mz^=2UF&Su^cADg8yy+hAmkPsbwk|bH0e!w zL@5Cgd!*Qii;L@UbwD!FU&z(=@w3bLB}ee32;M;Di;wy0$g8X$gmN3%*M&P74q5D%qN%2t-n zW#y!&H$VC}Bk27gS0z7Qpo`aLu`@+Hbg?rk`R{kjXSnVVX0uiD14#I^;gb~=6_)kq zW$xVK=xq%b>cMs3GlzS7im4;8Y!??7UiWb} zhw>Ae8)b8qPwPKLb8x|?Qpr`f`xDDyn0oWpEuU6Ma|5OavV7@mcY? z9ShWXC@3hJ1_taPT|q8@f0HE*e$O9Tt3O%IR?&8%c~Qu>9YFg}8XILV8m(rGn+`I(?~`FIz`_|9Bk( z#Q8clUhPMZ<~OyD=g>3N6viitN53}-RXRQ=VAf3hg!wdLfc-f>{eF6>ZL`AW1qd+YF#eRSUg`5;ElX|lDL?ufS*o%@PidU zQ%O=&3$E*p4k*RE_5DJ-e8qd^sirqU)6?e0Qrolgb*^kRvSMFTQhCNC>6AjqgonRg zbHqpDytCb&9bYEH#?$pN>aJ*med#^tm45L&o$l3BKRog&w@9@6tR8ipab_HQtJzU* zp}+kNrs_Je<>F_DpRbH_WZ%)sRu8}$;lD`vSsEyk zOvporPCR_HlKGNrtfJK$y`#|^TL9lbmP3K-xz)I3 zy^~tC)2s87**U#AGEt${l|DAcB5!XN3)8v%lG~nyy!6}KY;31qI4M$iaK+QISY8Vb zOp>jLFqW0hD141_^*`btulJ_-`1|GzbtDRgd^grBCSVEbO|@{{$kni3^z+Z(-wC0T zHm}*y$&dW`vt>(mTczc}y-X4ucH6^ufdXFie2K4a&?>e6HuUx$b__Q->#>Qyv zTy^vI=*!GR5pt$Fnr@yJd%8QRscjo$@|lmK5FcvjpUDm81iPOXSrAhqoP4gcVtBrC zKNiNOFW6oX4II^eTxlmc>D2Ojh|QAGAAdykanG8;v9(&wu=*KRu!{3R$;r-Ki$%WA zXYaAPR*SLr?EFz}Qq>}%2&VGwWZC$VTB=9bR2yR&_pu+Y@WO^mu;ds|^kgyBpCe08 z?+D~; HUjIQlW=6(t$!idN*>HzMELnsN`)+Tq{-)+gNt^naUGNa!#qer}Y+O+- zRYs1KsMTqHd2sIi*^EWLssxiJXdv)UM0`$<*!C>M6Sewn zi`(q%ndvCPVZ9d*Mb4vE)`LV^Y3q&qQ0>K`Gf<_WTPwf?~DJadB~JR+XIP?fJ;r z^;ipbAkDnlhkLA1MY&_cH3B>lGv+fZ$K4w~{^8$o?*~p*Q`;u+|Ldh8ioe* zb(ZJ%96bh%n`TQBy0dhJIb2^7Os1#-&O{Y*P)u#jW_6V|qXN~~pU6VhFYhzn&B;Y#N6<%QVwgyWqK5V)uUy{dI0SW>a69<+f6Fic>+=hNZle|~eXc`%$muhl_e9rkM(K#TXcbc{;HQ#qFN@N- zmLc=8fj>K3y>xxIr}>*fH>wgFz4gYZa(p zdR1(w++8Un5i(Lt$s12`?O`H_I1;{rK;npxC1s5cD$=*NgY)Z(oC!uNZ781wQC$15 zGd`Z;;gQ`ZmaFxY%f6uUCaHk*O+--s_pY7Q?A~PW0cxpOn!>{Qdx$WV?1%-mPG&zs zS_}+|dk7%Y{JeAP^fzvcJ?RKNZvS|r$eo9e`1*&F77q2}W%BG7gIe{Bk`eDC*%9`+ zKHs}^S$Hp6-q9dP)0MI)6w*}vWn!p?@`5Q4a@v{lI~(Q7$u>*vD}5CATDR8K9&@;< zYdec;yKV>b#cW01L+~52yQ{AZzn*k#wBB1)QmawjbKbd$XgBK z007LV2Uba(LHW-U?jlGNOb4ZSPg+fF+c7u$@502^Iy1Xg3@i^9T5l1HU*BN@c<{ls zeL(3p+9M{Wj-HJ%gEeJ$?wg1O4i53d&DkZRCyJ@xTrVmsDuO6TFOgbWYrScI&~rU{ z?@q(*!^nT{VX@nvs>swGFK*wtgBHS|kz%PstN9)E+A+@6#7?4^E;OPqEJQMhcE^Vs zbTqvol|}rhIoL=Qyn}(^FQQ%=a^sGEFGZ%d77M=hjrpzGR{&#LyCuRyW*UXliwVyU zG%DYJM6Pg6jsCwknHnnCj9~-W3;RR4GBqfqI>^1zx}{zgCKE@`t(_a4qe;8a9{dE+ zdLO3Uem!V&qEhwt&r3Pjdh-tP@yzY?o7PS|JK%oA+GCvnc`Ap7vKO}-7ck%}g z;4Y_oNL5Bis68Tle=YM1yfaU($#nzq;pG|j2LytOG`UVp?*eF*vN}TRrcfW3E0~>P`ss^&KlVlAZbGh1GtrF;>3sd=CG)Qg;FZ0@!d- z(`6GFK?*`+aWE*)gq8dd%Rs~s!)qYF;&&?4R2oBud9MsA#kH-r7vArA4p>v znvnfl7JL|@HCztp->NOAQZx~0q42`TuL5ZlR8N>1A&O_uo`KG^=`SwP`zIzHBe=m+ znscJh`lyA(<7?}mIIh~78b$F^?R<1}bXf_B(INw10hblf%J5uPU?%*u!rV>|w5n{| z%7_-nF9SdT78Coboj+A-7MY%&PL~N()c;DS8mn`w7D;y6xu>36rdDhS!q25vYrXkM zkuU;Luvt2!-SN`VMhb-BIWE{@KNZ3lwN4s5@8G!vM%NDwfB=9?Kw#F$1+q?=N#9~0 zaCM}zLD%o~`E!Zol>70{LVn#z7M%r1K%lim^SB&x%(5$5d~WjeWU2<4ppR%z+nFC17bE2hjof#ru@~icEzw;o}cUk{RZj{${qZh$9XS9C4UlbVsqICO4Pn{EgDk| z=mXv)?k~*->Ama?g+S>bhsmC(_weXR5>_%PZg}&Z*X;zvxy#*z%ay%c``;^d6{hI68T zmpPZ`a}JJ?fq{Xsu`!iQjg`rI4;>*8DhxEzOK>bLEsczpiVQk9ciy&z*3{H!YH2-H z%=jTE-PF<1F)~u=xIGK9^}m1bvAFCDb(`VW9pO*Y{|dh)lmEg05yqX(x@S_V4l9%- zbg$G|j0%fZK1D2;3|kOnC6Ez89BZB2>M)P^dY8jaVze|gb~viWYVOO|u%{}2T3STI zEgOtkuz~3}H#ZLr4Gjz^g&Vf~{tZP6EJjV$TqSZn|2(B4afhR9wCj-{0R4g^Xp}Do(pq8pX$zASnC#`ob=}((ILlvOs$SuJPx=yw4XE-Fe&C#dr{IT-`hvtwY3Kf9#gO_mUz z%-rE{3_`u;go2Ft@lg$=EdgyfI%4TE)|;_H!fiE9Az?zgke2gnsd$`KiO$kxabl3jx9XWJ>r6QCv8njZNN?Y8y1vtNA_HlmwFU(X(rR|kNHN1y z7BHoV+2)0{{N}DMYuimt4tqa}Yfjg$#@SW9B~fi3AviMwq#`9P1c`Tw4R?A(BLp)u zncb?IT0$xKon%rF2uuT(_CIkUv1hHGx9&^$V$U`$$A_X|K|(heW9#TS-d&h*NEN;h zsK?aCCN#e;fgQ zZ3c3!0H|dEugQ)q% z54dIL4=h&x&TR9g(OyT;z&%rBNwRxr6)F_S5%ag~R$Gs@m6JoMCG{!9uZQU`nHg1R zP$2kC-o5Kh4-8{4Z6T4|7>!8AVQlrdAV+Q+#6qbh zQ?3Tz#gEWX*MA=gxv2Kn*2FP>5F)ppzS8zAvsKa+z+6N{u8@;cTgK}^?%s^xvmIZ0 zH8M1OV8>CI*V>U-h+o-+rMITi^{jA!x-+&d4*wb{ljFAV@nOBN5I2v(iLF|-GN(Nz zI{Kp<8Q(Z$t|3})!>qmeus%+ExT*H_;vnYpmv%{}U}}V1OmVU87UR8pz18JM$38Nm z5{Oc(co@S-vb)>L*wC*zx0BY3^WGoVkXY}BJY^J*hUq{O>GkjUCV2Q7Z=g`iPzV z5x}(RuUE5cp4=lA!^Z4XRC5@wm`R3@Mhl;MuX%MBnOpZS4kM5->-~EqG(^7sM_qb$ z6c6+`5%P^ONnh+h?&Xax{Ui7b{xl?ZH4uGIeKnBIwR`ZUzUdVvtfKKiUW9G#rWx|T zi2qR$4Ccv?+x{0s%+qAzm;*d zlS7Yr)Kx)m{Vx3H_-zjnH2F40P8+NpiIS1}ZI9A|udfFpM`mB3=WV-A^YJ6L0I-cz zN&UMJVRF9v;Ty1W+GX9m6-@E-&(%ZU>5A!yu~dIRN!^j777`(XJigM=V)@$2$qH#= zuH53+*L|)oD3=k0O2Wt)x3IjkuyeYF3|UKyROct+E4>lPW91!b(iHa!sNpF7C}?M+(y&=#b)r512Ws!{QQOGc%CAw4`zl^7Hq97#!Ma|#(5D(ExfPxux zao#*OW^FscIZ_u#an1fscQouuk-0gK*c~)PtEIMw768T3$KRE1B6dEU>@RdM^$}XJOEk$2ETlS@6&=e{x1ZSM8<2io6Nl6ZHtW|iOThddL_R9;?}uPB1QJFprUyhRN9=~ zN}T?6?s%&c3SYh@?Q+g~F=)I{=UY$gFwCo*^cj_aYOD5e*nk=D^4aA-&q^&WlVQ13 z224G7M)N^wDuv%3K#BxLF0w~N>?GXq@W31a7tIE`Wm-IvV~qYfdjwDVyd@y+`N(QK z&*+ik{T_|-&bMzDCBoPL7GjNVwI>KBh$Oe2yA{-L@zRzv^VW`dQ0@jti^<9T-KxKQ zCzu39XDHzxu8)LEF z#=&>?PY^IWl>XnpF9;3o13$>tw5Wndv9vnX)=Efx=;?et!N=;3zq`U;+zM$Y4#`fW1_qpuQ+J4yvnW(Vv%Kiy} zP~a32iM0d3WPL%Z{s4?m;LZy`|J6`R45L-R%<`e2qM8KK04&s$h||zKF@j#L$a0F; zE86W~T@54Zx!#xR>Qg=<9+TKOEru@=;l254dYz?SK$(GRo0yn{Qp+kEGo1tbhG_)< z09b751b8Us{@FBqx&>y4@|gwBxIZH!9EZO5z0pZz#KofkMDy93w*<$>BUxc#@InWMml0k)ZoahqIKuw znqy*`)%IOOL*;Ub0w_eD!dEXCco)!tL_?%CB)JE)$JdEH%K1Y&74K&%m*StkPWmj6 z2~%BfH7C;i4Qqgo5$qo9R8(os`>U0FgGSBZoC3Py=H|AsvtnrTQ8H3FEj9e|)H6Q* zIo8v<#DUeES~>=X4JgtYw1;h%+4KEO&yq|01&>TXF~73DdJdRVL&NEUYPLgeWy8_sE`o1Dl6#rwxVh(O@Zc55jB^yjMP=oJ~;uuC!tBFQ$d<f2egap=if!f8dTVRz^71l1 zt0~PMmv@gbaN=*p#l@wKvP?|*7Gq@w=A0y%KKilBMvbCrDJlK=I+0%&08_b0J+ycxR&768>q3IJ%y%rb*v-zHs*g`hyt%Yg4mX4yIQqAc72lsc zzgc!9NUP4Z5)2n`f%9okbV4V8Hhch&$BQxb#KTNGX|2*2BpBQK;XnDU{s|IfJaFtapxRls7a@#IIssaYa6+bES??jf(>g2wu^fCyWGENrrq&8Fje3I$peDg z@CKL7e7G%?`fzJ1UyhcVle5ZccTua_p6I#mXHX0}qh2u89nA)li{i7HXUG-9xtRb3 z2^OI1mujjZ{MO|O@)Sra@no!!2x8@toS<`u%<&a zxl+iZH8yxNS2?CI@=S`W9Xla=U{QPjX)=<~C+_Q9T>hfQiizuKfDp56%SpglHbFaD zIG{yxxjJ_6awm-X{uI7HH;=DJsybM9jxC!;e;Ju)5!R%UlR+}v3(ip^H|oA9pTR@- zT^34tD=04Us6|JTxhS`91yeowa`lO+zW`pYfkOCG!Mv4x;w0r3Y;Pu`r6}ov;?2}@ zOC|#Lb^^<Yy8@BB^kEMq!L<(x949WG4=bGTQ%fcb*J?n?uT*fBjj;hk`15cp|DLlhD6Oj zXB?d`4i&-KC?w>(_mG6-wb2e2z*E+%Ut$d8Gf~R`vk|01BHAlDPZ(TWT(cKKV<&3? z?=>U;4*5C`eoTvi+J$Xkg6Pk%$M6n66%rF7Vfnqg|3|?Vo|*;uaki`E4?p}*fF5T? zcKe3Tf39C}!{raPeCoHGw|Fkz9PhZo&EQ4a0vJU;n4bz zJ4lue6@5X)u$wnq3*G{bWd2}2Erb%p#e(0ZbD7%3LV)=BJ%3jF8rO@0tnG7*L0h+F=9k=7)0j#zb|wfW`tSQlOB*?^u@G zxF|RZz_*JL#c5}nDW6JcnqWTt^CQG|gYcU{_2?!cR8rsnO*eS1J2%2-AhmUaF=_6% zKgz-rdU`3LFQ|C4o11wOG163hke!l~l1>gbvIppFvh1v_tsNbYAPF;DUtn6+?hk?y zr%Ph>yPwFt2N5I11|voFoGC}AlAgEab8uI#6@88tn>1pJ*&46hoeSjS6wu4luFcZC z4u(F^tKTj}*8*hsHkAc|_+)RT@#OCO^;+$uc)<+xiHJh39W=Zx^{%0&(;sW=NN5YY*3D4#pClUtb@G$DmWn3PO1q4RH=c z+n_t5yBDWW*@_T6+-y5LP8tfO_-T(k5ONyMRbb%&8kL^Vo~dx@_WsQA9vUV4gDm+} z32?#68_S@~KL#=W+O=!o2u%5v2nB&DHzQU~k2*pgi4eqC;q%)F{Jpb zzjpzdxP{!xm0Aaxlj-`I^_wV0Z_pznoxkoxWB*WPV{D1GS z4FOir1GgJzoD7JfEiK*OpU*+Sf7h4RrI+~c-#@^pYOVu-Qoxd^R&8%FsL+y#WL!no zsj4;E)~esZJv8P1G}iSt_wM3%%y}d5GPpwauud1lz{H$iT^-HW;qyuh^Y!tG;;=D< zRP3_1ocMRh84e^^A{{_aew{2*dAS03IGHNMmutDmB8GyJXXj0#KyMaSwa~Go7Yego zmMTF8#0SH!6jP<0`L9q7cws(V0O=eL^$T_KZO=sejZsK#?(JN$d>-zgc|+;O66k`! zeQ@kA3l75&sS7c6~%J~JfeiEc#4}#M^B|qs)dHha1i&k?k@@cA8OhsMVheeY*zOcr7jr5RB6&ciMj0+WX>$$2g-w1eGu3n-t4S?&sQ$q z)kgXf&jwUe_f{I$9DBbB?{~kDW2p_wG^La|9a~94~E9^BfCQ zPhTCLZZ)?z;}!5ZI2|Fm4+n4b=nJK4JOrHfG08?~S2%)t@QxM3U zU{exR$qAZr*DF$*1}hl2HJFS?6?u=FOl?;ceSFEqAGCLOGm(=1RJZ;0`5qLk^zU&r zfLbq`z)P7s{%0QcgxO%u^Ye4YsrLvd&>(#ddcW^Fpk0r@sy^;q$HBpSDTjhnMmSL_ z$!59OA}BgR&}YhbH0=ql*FIeqHa2?*gKceX6et`GLqiTb^KFAkQ?9#Rzy{hv1bbHI z`(&F(Z&o~c0>oaf^?Ll>A@F^X94``N_i)(E zud9XJ)OW@$nKJ^@*y$GE1rA0-B=CHT7Pj70-!y*)8B0|3!s5b^Z%#9>eeYqU6~wE)Cz@Pfa4 zuFo8mCLLqHHOW&nF9(9d#~W9|_>90veFDX`s9&zguuThl4yN0DtcoH_E<7$@KOHIhP>MduszhN1Svd}7gLFLF>ig($heZkck z%dra^8qVI6xeL+3yvb3B3DA%b1?h&xoCbfu4F?1#$1=r7U-xB^hTs>`qM&-E(U>8!;d#=&}7GH|+|9l_&=PnJb(DJ z4+$qpyPaol;qh?J;c9@od46gD#)#LRT1K~^GzEUNNT4mHxKQp~hO8E4j>Tc^_+tQa zVIjPaoea4LVtwD*J_QOtG2R|hu67CsmHr@##f0oWPWxynI5;b+La+?_vy{wQL(@;r z>Z4v5#dFwvp?^XRUUiU6{!UCx=-NWE{`m2u{yqLlq)_^yrgKPTFh3H?Dqpjbw?cb0Yb)Um2N|%l~m~OaHbdwYvson8U^5$VbEv6K> z2Ec)U)ikVh8JIX6T#QY(dw-^eO|w32DqhAX)|>nx<>MDuw`F zQo;g%EeEk2nIe6`zP~sM@af)%Riw3a4K>zm&B<+^?8r{=Ixz_Dk?+JC15d9 zv;Z7iRs`+#4O)Q*K#hU>O%}Xu1ge|h2W0&e>h-ZKCLzVeFDkG9U_?rpo0D04tHSsn zYVx6uOfKSgv|iku!}C#1I7m<;jOMxV-yh_n0V(O}e0Xt?W8s8qdz{-ny2Y<`_8pYp z>E%g}%X6r5tNH>QJxuee(^Z4;&CTJLej0yczkFIlH zK_7(Z(!v5O01 z5B%|gcrVhRGa)`cUjMcu3KCZ$P%?DtFDk6&a)d?w@$L3km5_73w8Rc7m08dBTnpe4 zPx=wx5p(bx@OWID0srlVEe}@w`t9EYf?rU#_xF*bgzPAe@z3@kR<@~85XvPj?d`Q5F81jBs<&FfD>*DhFy-MV#)LABuL?07jO4rr&yDKBTQyw2=tW(1cG>j7{X&*P$wnwpv_9mmPa z$r+7YKX4*|#(-SEnbWQMr3=x@#;z^~=;44PfPJ4#$8CQAfFR9RM3gA9zQB(M?KC>> z#|A)<=&yo45P;A&p`@V4-m}mH;b3Q1iaSx`v%ndc@!sIVZFY8koTHtrbqg5)5j3TTX#@5vy$j$TDaK{RMeR$ImXwengXsgk z5B4db=px)&P+K63`H7JGv~xhH1?gdPxNr`vEs_!R$3t_lLd0;IBO_I)rdr+v-M9nB zs8kn+iH)&Tar&Ko<#1%xDFamc)9S6dV(fD`<}j=VCDhh?sS@G%EXF~l8l6%Jyyx?6 zq58DcxTs&Ir>6nW)<91T$alz&99Rn$e1GL^B9OkmVvqx8d$G$4Rh~++%Zu`w{Rs03 zx+hOS0xqMhZSB4qT1Gnb$avmHE5c=t=>iS3&Tb7GQm`?cqtZ5IFo>L=pFe)|s8#*| z1sy#B_UnD7n)lnY&2Y*X)k~J)8Qu2>RDieg!IT2FtE#RxT66;^^tP_asA8IINo(x`yT1MNH@LqgQ?5hw#a8JAiAtFqbg zOI;wsV51_J9H9h*5}*$dFgE?*+)BqFDFuWLOd2_UAy7H%LBxXdFbdo3g=MK_g6#$! zkPwGWZfq-mzq4U|U3H9k1sRV^Z|!_pNy*|FEqQr)KM_53b#;095CLjaDr#yY7GCJ2 z3}-WAiH7(Y+6M4Ctj#c{%h1c((ku2#c4wiwWxa#`EH1Z+s!Rt1r5dK{ubg$d@*aA)V{ zaSzl-*ZBtM6aOkQ4If~hiaZh@?KaClgb8~5z30BnT|-Z3u=9tvQ*E-`V*V6^)E zH4fUe7@#`J=KcAz6vPs6e!&KSv>*uGv!&`AQ#P|RGrdy2=?2M)YVPu>iTm|PK#8s8lb*m%NZw7U47g0RsIm)!apc| zyqM!x-90@21xjK70sEgXPkO!}%QyI_zNv@h~bK%6%^{)e+f_g*oE6>|e zQ~njuLYRe$y6H_;~n6z1)92t+nju6 z?~5(Ii3%%nX6B-|jbBg(8o<>DU;_mjBq4u~U+#f44Fb~GL12P=+$TNk=P*Oy+p4av zh607&8B0tTnB4H~-t`At{mAQE$(axwGUSZgTxqdWTXDJV`GkQ1st5yZZQ`&!Yl%+t zr=kETgZq$~?o`c5(8#FV8{O=C*PydyQTkE>nd#n!9|?zblHO8=U%V9={^U>0_=}M=l7V5%vI^#B+ zg@iuKq<54Cc3{J11Zfv`ELZ_ytzjENF{IGegsYPbx`oYispKoI7a)G{8C(hJQ2zk< zjAC#Kc^TNTVzzfvOUs>Gx5B}ZcT#+D!bC>qg@R>0Upm~_*f{!f7xn-&L`E=ZDCgos zhAD@JT%BC?(#|RApM&R;(AZ+X?s%pf_4O{Tj`r%H+m{$t!&n?_0s@U>5j3xZ1bGDo zpy=xx8y1nQRWMgTY07eYsAXau+cRYWT>u2MFCjThN=o_z@=32G6Rj<`9&^+M>@nC@ zFnhF$?c$P>T;RM34dQhhX3{gw6vr{DW$B|20D8|Szm*e z>J%}I(t`%%wU9lVizJRxR0_7Xd*IfCO65v#Ds0Nw+FMqh4Z!WKeS9Lg-Zy+IH5>Gk zOL9n0Ng?EMF41lNR^}gjumiL3=df&WxlU}>VajMP@ zTz7KDZtMM-q51jw_4V}vf;!+~O-Pu6fPqxFMh+eX)L`=&2--tZ`Rz~89rYp|id86X zI*`mPfqSZ|ss_Xtr1i8mc!IQc$;C6jh0hX1#0C4avo5B`I2M}tAs#_`Pyc(NU~X=H zdawa_+<3zp(P9e&fT{@Z;kXTC;sRw0j`!0alEbeIcaNOg#opvB{ zqiAtG#=;ta&(kTI)6C4Ldm#<7@S8W&zy+XzoCVecPU*?XiQ!g2RSyl{1tIem?uMA^!KbE&D;J{2^`fSMYtuC7g^ z)Mwk?IocL>B%`wzq2J6(lCr-jXR}600Zd!~%{zdQV`u(xQgX7#(Tq3Xehx)9iDtI~ zKP@VI!;3#19cIw)J7`JuWFw}}IaIJUSv`?lSh6Du!u<2F*fd+2B+HV5gxlFZt z@-ktQCF)?29Lx>%yu%WO{kbu==V8uv2zGRYd}atLu{kUL zLsA^35Q-M1TIc;If?rgtXY`zC#uCdg<40TeQFt}sL#sHjUv1Z~8|#`2ylC&O7*^SgcL4wFV% zr!h+ijqjsJk08Dc!5IME@Y;>r$Zwti7{$Tk685#koK~w!^+9SHNcKDZJ~1D;*#m;X zlo!@O3KDrwav=9`qGxB^Q;Du$4@6&A6hKqR>493npIBNV&epa3Q0hAio15^h5Pt#C zLFJb^8Q2SS3J<`2Fsnkz6kq3QR>CZ~?)8XbQ)>W3h40A7)pnfmGC$4%Y#d+Wj_(Oy zz+q$KGUJ7_I+(jQZBw_re*z&1!Usg-EU?Z4AV4;H+id*0>EHl*hjLBN?+yw~J-&-fQR3kl;`#N$1*`=j16Ol|M(b{v(C z=-NVb0WK~AI7S?^XacO%eQ*FFO>pB$NJ_@Qw`hO?JdB~->j64C2}m)03CRPdFwZZI z|B}X7UW6nwZz|UT%s_T%=V~~>HUq|F=it!2VA!8UsgTxMe`#S?V%aa&9+qfEt}_k3 zHN-!iygV@9saEHXfK$kwN8Eb4mNT~uq7Q?5Ndd0EzyJBg=@y_zcp@z*#=!YAVWcs4)y0Hn|=(r<&ERA<AzaWJ!G>^&+iD#_tR0 zbr>~wKc5xtQ-CNr&E)RBvp=Mqd~t#F!dh#BxYhUtt@yz648B?g;*&^3(Bsvi{L78< zDRp0&7`6=vawDfcKx0NuFWpZ!%E4F;{qgj3tIyyoS0Ev=h(_O_Wo5O4xJ%-G^cGwt zAi~uEU4&HN;^Hz^D9+0ZQt$v*fb@6Lr9VCS!A!%&RJv@wJx50*>8>{rZ$$C^ZP%y< z^UmuXUq{em)W&mj%Wj0_slR=*MR2WV(SFWubHdPDryYP z>yk*TuDCd}S;Tu?yqy~^gF-TKAt(E(+O?t=0VGS3P#cY}sWmur%S)Ie9?9);TJa2=XI$WFs|kMP((cNiW6RC1AGV@|$`w z85tR{S6D1Y_h1qE;5%I)PvEn^TYvdD&e6HOHJD8ISac=9BVx)UU59+D*hsobKZNfR zz6V6~g7D4ybp&a>*{EWbLpgpNuhyf-;vsWL!v^T|xxy{}1cxBb1X0d^c9?WZhn;{e z2wztK#VZcZWd9L!_)?9|BM%*&DX^@MJ;wsl0Tn2<-6#&1u?5`p<3FSP^W1#c! z%@9IPW}zx$9u?29nCe6*nsr&8$tmYAiki(^{f9et^D&*DYWT~<(UrdohQOO4mk8Y$ z?W3pxfVowx?Q^5l#)EDESAMfW%mTp#DlsFhU80a7N6))13mvB3zK+$v{n@?FsP*mc zU3o?Rn;7?hGqN>(`jlau^L#L)uxaw^w_DY^{yfpc7&)rs_%2L^KS=MQeCroZDdsvv zf9GfLn+EUA?Ww8aLtg#v*#}#lG8|mH((vULpawz;l@x-Lv<48>WDf_IY-e{Dxa?Pd zf3$n|KoOFJJb{VgRbe#B<26gBW3j3E&A-_i%>d6CDLwtHw2{4WTh1SUe1OZr_|%?` zhF@lO0HinA+}lbZxMN~qd<^4%kB^TJ-?)>bR!n8I4^o`~TA4Gz4ZW?G9v7}}%MCWi zE1^yU)eFWMK5j7gKyQoC9s)*9=si@*6sW(D7%O|-5s{MW<%QqQyoXeG zJ`gkpdEeRJ?9%G`UtC>fKvmne-U>=1B2r3935XyK64D_lAp(MQN_UG0s347Ww}6Cn zNT`H#cc(Pc^~T0?|2+PAj~Dk|YtA{w_-eK!-)3Uqzr!0CU0Hbqnv|nlKxDxzB`Kqb zorn7qdS*C@;s;=UhatxBV#(nb9Puo5bAY3Ou8cYrdZ!>_wpmz@ehq6++*leJ<$;EQ;0w02eO`veh%ur2eWM+u_qV;|E zvEQNTh?iE)#p?S^+uEnkUIHcWMGZcdNqn{mY*w0-b$p7$GOio?h30y{lgM;w{ zu#PMzs&4z{i`bY9f1QD6$t%m;4oxA0(sFf8Y;3IBVYTncw$M2&QP4Wj($GNu7vN!O zTdgo|fBg9Ip+_2YDS%xezZ6h-@YJ!eus}PI1OmK%AsJlUQX?ErGci4iTZF=j%SasV zdsfQ=hcl~c{&5$3(4D@{guj0ZRSL;XO(>~~>}+gEbe!SPg}g7Y-l5(1ndac+geA8& zJ^ft+Id{WL@BiT#Jp|!cHxjpZc1WQf0KyKM!l^P#O>S;(YGmw{Ovdr4S6OoMG#p&W z54XL|#?Fpxx?#h?if63+U|8`9+b}&ph?c01@88F&|5}v7YZnkefcc^{0FDyL8@+v^ zti9h^pF%-|)zzU9^y!mMk)F7b5#5`sz*3ID>j*4dU0Na{Cuf-+D`Gw=Yu(vC%voGq zwA#E1!cYBIuapj%lDuqxA?H%aDg(7A(B04rLATBU>1#fAj0hTB0VM2yIOJ=#Ivi^B zJ2{TqbnSU@sTd9ZGk`aM`MF#`5C9X*WRgq_>3;BAASCIBh6j)zfIeKSISLg?>F)1m zK0TUa(wh{B^nFFVC@awpfCDi9lJM7~V1@uJ9v~vv!Kyks6eYyT*us|!`8*-?W=E{} zH?tW&yBxFL^i}|L4|AbbgCgRM(I^SYkqsv! zqZt6?@SB?b5R?^ka4INp!Y;shYKFTB0Ad#l#i zfal@{!g+XXOaTrD*zoZKfKnjy=HOgF$9$WSlXKK`LkJ>^U~F~QI)mW?wj~tzecq;s zDj4%CD%@wUxeu+l=Kyd7eeCt?*Nu#g;aeBLkVjFji%7Qkjx_(P+$Sj2yQW>SHL2f5 zaD1X?hVZ@tvqZxv!Ofu+C2lbDGy3WUJw1y+c4i`|&2zkoTE z*y8qk(8){yc-^T1(OJmgC_tBrWxyU6CNP1U+V2vHH7=p|pjf_3jVoVn|3 zYpnL@!Xxj0FBg#aeyBd0OG=F)}Q_2 z+p3Vi@FNX4-{DU)^Yehs6WzT#4u>wBqcEX8W@i2ZLq|my%lDzQ2si3$*FHo0j6l$~ zffBK+>r)|;Zvu$#9xa~MjBXxuJBwcuAGk9!PW=)Gl&K zf)l;H_;#4ndCIW@H_^~wkZqFOTm5_~V*8N?g$lm@BJ;xHBJwC@W4j6G*j+L*db!wU zZV`WAYg@IdeiS2dMJTx|8yn;|Z`uG900>i6RaF}+HPQE>EDoW42?>?*4gVXrZv94* z3f{9BX=&`Pe@)f}xQuEMW$4}umLh|8bqNB{$ta|k|qXLIxXt?1X5;}zSm zB7WHCMURh;61>r8NMkrxKj7}zt}VI>ja;U!Rw-@ZkCH5F<&0&^vx!UgcGnA;P9+=K21=7Nf@0&9$W zC?RWuc*s)`;hq4YjYggEt?JO9F2PLj{O%v`?$U4H{6UayX!t`z0N9l`*RW9CtC5QB z>(_z00Ackj;C29Ngf$P$z~`H96mym*1x8EIEN_M|UN#Vq2a)=4+|6yIc^RPv2&5YPgxnVIZsfI zkBnVUiCw&DQZAi9TYJ6T-OvQTt*sR>-h(+E4jNcQ!itnzPXe9}LL~qk+FI@6WJH=V zaury1Xrd0bw{u_}0~!zNVL01WX&y#!TbXRW+}X=$4ZlzCpZGW>=+1p^q6TkNb;$ta zgL$v&DfkGF6XM>G6{0!>z|ITchLKy;$Y?)Mwmg6VkSFvD=JsNED_H30CeS~?vjn~o za56YovrzkO zwb_-kbN+!sg@%T7Wsm2W=*fTWX;ATfk(MHg`LtCiUy56Oas~(}6f8#-g%O4ZiZ96@XiA9lVUf!O|99Fs zKnDl1ba<3YYio}$J2?0-5CVE(>6Zrc7ZB&l(3b7)>;#kX6A}|I&(Ajx&G}xm^n@P1 z`(>zsiJiV|@)lM3&E=Ovr{j+9Ov(zUzt0~BIMLD(yD8w zn>7=Jk{+?&#Fs+3Y-%Y#?<|hWgzr zEk9qtte*j1Tc??|wKY)faJYka9$MafaPPzJhXPp*pcHh|ddneUS$VQT=Te!O;{#3p zE7MQjqV{^j`}0=GQ6aed6gcI{xo#>L=C~ANV>wb@)>g=BXp~xzWMoj$DB0QCVq#;@ z=XJ)gF9B8p3r8J5F({b3s&Kv^0U{3{>-g}HS*wB-5>z2^5x4~aa{~%W`wQgee%e5{ z^P=qI>?|I>6ymbNXQ=fZ@AcPTxP3Z1>AB^joT&&CWzB&8ujTJo8s)UbYn>Rv_aN>O zV5;~5=tSUzg42+S0nfbwdT)v;-8_JRx53Z@2RDFjP)La~|9yd@?kDyk2y5f>MHdH8%*qoo*p*Yw)d(go&pCO8kXH(s33ISqOF``vZCy|he_q*9BHI5 z{{w5aXRZlN%?2K*p>G*i5UF@o)%bwN$?`B8b{V4?b`x0c_m+EnH?M)TLQX+JQjwC` zPoyVP?oQ0d6P^WFHP8Y#Ra-OaHz(D zm|UH2CAjGmBAm|p@ARGW!P#38eS9#Oo~2;AYvk_2;P{VCAkc9D3gsrxpifw2Y%KDu zfX0pzb6b~qwLh??rXsJhvefMM!Xh<2-o4AJnoO*kEA}jNOKs>&ie@=pSa$2e4!m{< zo3K&4ckdqT{3PEyvfka8n3zVtKc}RnHEAHrI>=V6gTu0kNqUBhn(eTxs+@27(s)b# ztEWHm^d)ESgi*7F4t`1b{S>|`At50wprt$(ow`#%!QkZ#!5+SU`T!nAR-OA1{{6uB zad&V?|IUO*MU@(0B=9^bE0aQRM!y`i7+zLYaoA8>IgD{Zt?|u&Puj!^G^4Me;Na01 zjEB%*;t`GjjD}hHTqAx4)7sfJqfq<(dxq6~ z4kn9FXN6KTo5kQGLK_EQco}SgFF<73K(&Ckfog1Nd3M=6L#qOPk7YUyV_BJsvl`4E zFup?>`eqi2jg~;E_xv&J$K>Jr1RS~uUVb}uxu@v#BmqhPbk~PSV8m%-{D}-D54f6O z7uiNZgZ~X$>Ze*B^tny4Bo6B`n&rI>zVkCr9-}lO0!)b(CN2~iBf%jjeyCmyvlPS- z0F|GXCUn8{=FpieD*ta!_i)2n-HbhSph0Nl7{86?PL17{`{DAj^V~fWW=8 z@GEm1WZG&dGe*K+z;258ZU9Q`7tfxtL#`=Zf`kn;T)@_Y>YV7oaK;7_%DA|I@)_pk zROcs`p$zdDD}Vm%KA-|JxU#YmdXw8^nV{FH@B9=P z*w=g9T*dt|Ukwajgq9egtp?Dd6Yl;}%Td|M-^Ieje1Ga69o3k(kR;$1m6Y@_(iHv+ zKv+;qVJ01L_0m}D^@I6j^M@_(-tv<)iO@vy$c=a<#z+|9WipCYqVS>&Ka`QWoS#;{ z$OjXkVXH+hfRD*(Y2gV89hI*&fRzSh1UeBxyJxo{896kRD)L%2jPce~fx*FQ3W7m|zHpY@jh{{Q_PUBaMI+y1SNvVhmu_ zymxO7zCS!n+e)ou0WVv-v{DYn-p~bOX(_3euC9yTCWTPuVF>&ff)T&bfF1kURkYU> zR*7NZ;R9w478cA?i8bhk|9%V%9(x=|Y;N_9jviky+3k}-!*qW{Izcp@PH)O~%uvhID8j_W{i#P~L_s0-2zyiRGCJwKZ$g4Lyvmu$Ikyu!7*bCT zh%#uwBq<2l)@8T@V}k{|M`s1g>Z(_9J$W)m39OpT2%BW-0;<^*)Dw9GbG1+SRC8qv z7um4M>OJ@mM+a84tJJtSPvUi61q!&I9XDul3$c95-WV=4lzk@y49^Rv*@};$IQCZe zqB~uvANKX09;~00Da{SCe50}V`@5di12t`HcNc_SFI(%~TwRaB7JIS13qUIH0busP z?80xn3*-*GD(Fw)Jj8#I#Pa-WG7#f1w=hR;GN>@d)Ytdax@~$DXf6j67wJ3;KPZR& z{tl)@$Y(;r2QzY@sgXVBf8V7Js(?Bi4Mut%1a;S z>wk9y?7ZLl0GnX<;9zqi-PFU)jWK2+_7#f&=8Y=H$Z9E$%vxi^XMGA6cWxvKP1$o< zI3AE6kB0FU)d}a1x*z}TOK)}&aFaDLmWYX2p(rj4O_(T`iwm{iH%g?Xe<(zF?CW+% zQntOZwUdeAaG|;AbH7UG5P)Z=1>#INKJs=9#k-%#-)Ys?!Bc|sU7B|F^z;;#qp`6u z=qe>djP0^AGdp8B+W~)tu^oTZ>f`(OnCR%A`JD><{KR|q8)Q6t^fb6QIR3)xn1Z~g zMEkntmey8{uewiwlLxh2N97zN5KP~`VR?BL(knwd0@d~Q%mX-pV6YoWubM*~a3u*@ zpYG8|5|Qg+PI|dyxh~3)O~}&abjNYSYMLx?ObFhq3;j(W_^Ow^1b4Dxvhs=OP;OaL zUXShkhrbvAhF^sn@Fe$*Nv` zJ)RHz2cXu?PbF;Dp};DKNf~r4gi{YCBqagR&IicQ$jFEWWRh#y;39$vTGkk?)_brp z>xL_}YTl}g+sSEd*b?5IJ9&x>z_D%4&50TY1LBvKcF*`eHMNMkdO4_=GC1qs|NQ>l zI{>=jF7C1n9ye-OX~@)|^78UQ$swDCg-~A1d`dVm$OM0JEqi826C6WnEaPl~w3}%+RYI-~xBa?L_Q8UC# z@buNrpT9k1{L&`Ibb_=$gbZ{ha?6AqcA~mFf9Ee}FZ>emxWoDSS#{@FYZ-&idG)uv zN=+fFN$37t?O%gs_7@VCazP<~hCl{ke!7vME>@?zwD=N&#RLRApdQ+;Fb_iy4J8q5 z85%kEMIY9n354wi4K4H-(QO?(eBTK^ z)-m{*kyR+@$-zV~Nf7>^C|kpVMEqN1Ge`8}aVPLhA`o>StDD{^*}%jJMR=Pc zL4JMJZF&De=ffMKueA=U9KU(BtLc$@qNiuqC7d89@CcJlrm&kYDcHo9-RA>ax^MpA%(Ok<*|YrH(VWVPH}l3kMiggWRR`gcju6yo_wqp5`tHv{iB zjf}ezo{Wu@+^XSEBSAwX-OvH4IY8<}&syev$0xKc8ST{O`ub2rKh57Jpk%;P8+d;^ z%W;9M)5vf+v_A0%H7(-M{U2f@tn{2zeQS5UQ+KSOeGy3AFCw%1dW%5c`a#{{=m3|g%Y8|7R^9t8}rNhqMB?&jjh*w+2 zcq&b1xVQLS9thfgE;-&UNZ4Cnlf%ZwBS4(y^{xf>m&!i}->iREF)=;{d}ZNB@%dk} z9M`#A#|q;Ir1{IsZEbS2D>2_(y<*BpASy6=UAu}PJa)%s&&cBUzMWU_$}om+{?+gG zjO&R4?e55&89;^C<=PBtV=FoH7QbtBsOLo87Gy)lXA1*R0tNov==hHj!p|jKU7uAu&gB*GI_$VR^C*W!aa)C4iQxE$ zP)*nODl)t)-_*4-YtyLRV|KI~rnqLt`R3{?&YTUNOb@iW)wN`S`y?b%()bZFqZMFW zqt-G-qs6{#a}jvnwUw1gRyRnxvZHoytkn~e0NngM7W2oJ<2q9`_u`kA0Uw7QW*)cC zwmnd4@5uPdy0e`^;hFqh7~1bp;Xsi~dI0gZC*xI9u*0ft)Q(E7_q0dbm#68djkzyd zZDpbh+y}nj^KYD+3kl;XV)pazi?~0(A@6lA%`D4!8`@b@)0XQpxc^4DAnm2MsLhm) z*ZHbEC#rT681Y>X99trp4tvQ_4=nqP9*`yQ$SSqA-jPpeYwePh(F^}9#iSmVMStyj zU41Hg1_~Pb9}EVze{jQat*dx@^s~a35uXECn>z;v9ic3`4`{eKNz&Db$xwdTS!g>t za$L$Q;PL#sGbbq}ZSlqzSe5sIGYlQ^t!IygZT_(z%}h)ma49lbv`tQ(`P`!R*Ql`j z?%QHk)_AoK23f50c%myumLT!XvP(UItdtwaiQ^`Tj!v#lQuW_c zUdv%&o=P;C>;Jy1gc;{VjWnPMlauyGI~PguLP_L85?p%5sws_PNi3Ko2cC;vSb6z$G!J}KYK42KiTK|Y$=mt?HND)qni9GvvW_Mz=x^Dt=rUwuyO z7=OWQbEAwj=5xhNf9v?0tEjZ(qoW+QG%>NZ>IWMc`oCC*8436;vXNWTetg_yT6l7` z(JvzQeMob`yU2l^&10|GYY$n8o|w=bA3v+IpUY$6Cv~O03X}PV4_I=aziaLtWI4x= zqx`sBw>f$mZ7s>5gLbQN@wHM(X727z?n!g0fBe|ty@<%y><^v~!$bGXRu^A3#T+2^ zwo=w=9;04sw6)7+OASKPaoC>}K(0`l)Z2a^kM}e994hi=W=ajQa#UI{-rG@$flC2j zRZ+Os?OBG*rohjSRCo1+M|6!P&(CWH#6K|bkx~UF1o|}4B(YRs;&iU=e^|OPRS^tt zi7z&`Y0T*>2kZQoL=3NrgIRHy-Xa-$fD1uRyJO`y@d+-6U>aub=tt~RZrKBeJ9pdK z1mAyj_h|K9`ZL)gHCh_T`pEn6TkguEh$UIKD3gZskfr;raD*;c7z*_GJAEB6^uHlq z=N<^JOq+kT&%Zk2vs9k?Gc`hyH+o}J!tm)4l=7LGAizw|_@S*`^SR)qxRhQNRrIHw zH51Eb5C8tLEWY@<~eUsT{ZnMHUr8X4`n9?aw&`>$1#?4jQG`T7(G+jD=t zL0#Mau=^W*sFbvdmbU3Q&*bVylE16B;WH`$9TH`zVm5+yBg&8!nYo%AQpR=m_twg? zwfd*KDNX)2!)|PDU&=UIdQ!)Q!1y`%at! zPFa=SwTb#qA;QiXBe#@Fo*v5nI3wC|qA(+j-i7b*U1;8Rb>KrR*FwQ$wd7dY4079j zjcsD+l6M~vM-!oDU86sAD*qMObhrPaNsXDZjv;dUs>`+rsY?x`?J=?)rn5U%2 zBPPW|zC=etLXOvWTb&&>jk+@Vo$$hjTMdh;$jO5j3F8L>nw$6N73Sxc?lIu~C5~Ge zN>$a4Yl|O1d#Gc9gVm&)m#SxSn4=`_dF0obBq>G7dRZ`puL6z*nVYiLu9ceH+~{Yx zLbwn_^mpZ#y0$0tUy(ym_Atd>a0Q^@a1{IUE{s21kIB|ZE=}YJu8L2ta`70#(NJRRyl{Bp0)nQ#_$RG zS5r+D8M3{+Y;9%=URH`!JBGdpif`_Ocd#7%^0F*#G(Q%HN&r)6@Je%Se-U%_X?Mft zbg^_Aa%|Cw>SuXs7Z(cZ>Z4^rj%&$ua#Erw+uq;*{pwaw0!W8D=Y`WLIrE6%U-aP4 zS?D*Z2Pr7%xNvZ=a}z!B`6@ec@IZ5@Xz}INMzg?_D;+aMv_U{%5u03sj2Ho)@X5im zsk-#SPb$gJlP_r@<=J()#KgN@cSw4^Xz*mcpcZto`8{aol~`eSN4?wo>+kmHqyb;2 zuc{Xz(_=k7u(ig=86L;e$deihDKD@x{mE~6eZHo76`c%BZeM%C%2iJBafHdymk!%=Rb>p zFo)oOAG&^mi(JTTnAdQ~pK_XY?<@dLJ~^45<*$Z*QDOhdi9MZv*df0dsK?38$%f15l>0T@l_AbeaT#yXBKjo ziirtK78bURSvyh7H&-j3|1#-$Zt-V?H9i@2OZA@|hsK$wLoq|9;AYkVRQb@<5FAa%P5%$+J}KizJ) zxy3VHMd0h3YBh9~Lm``65o+9+5QPNwAwqv5#SaAtG=z7)o^x%VYQk6Uzr@SVqzA& zy=IVN1(KQ*2KS{SJF{=3Pkg+YgMv_84;J#|Cu;w|-BMB*$-kK<649S|%iV!jjlkp8 z)Kpj>4Jzbw`L%!2W#f(chWtJ2$1L;Oe@FR9imwK2<>W8VB4*wApVw4XFJG12obc#q z<3X`QQts2{_rhCUIqk;WR%ZQL0zT!rFb>T6q79z0YAMKKY4|9@yZdSXm(SrKI4tj= zXm{ra+(F`CIgI|~O2k6G!u`7P(3kT0ZG~p)^3DfJPlRs$`>jj{(2tk=Do6I?Eadeb zAD|!4{)vlwZ`5fT`P5n)&K~wEhvEy9yxT^K&Je=Pu|wA6V-4XY&BYeNTXhu?2I;6G zZza(;pUn;?C7ml#@aU32ItAye3w%KOTL1 zamVok+%7IYlDJFrOH>RwEp4gv3V0~)|NB2{RdHGL7s+dPDksWt!Wi$WMyP!C3d!nf z@XE4ba!#wp*;!-dEvF4AGtY9Cf8xN|OUm{}nGF})o&3LlUklsb;p|WWT+>U?YPU0g zm{EHoC6}vCF&XUkRrPi|i{MwGCpls=sXvOLhwX?FT_5e)UkA37j7Rvn^!KHIJu*V< z*TCT56mn4xPEIJ`N_=ANQLfPD z$QgrRfra5y>?SFX6Xyj?9Ae>GS0(2|x2|8mfJIXwWx`k!lm0k6aS;G_BnAhw^ltb8 zvA=s>Vk~Jj8PZMRwJwc%Q`-ywet7?5&#hC9EA20x|FS-b+2<`Z)`+s&JLA|M=+Wes z)xBvPkVsG8PCQbi$$i_lQYFOa z0KSAP?MyDJAV>>R|27oMrGwsKE9lh5sK(XyE}_(SgVs27+sz0ZcKc! z0RRda>grNPX2WAi6!J=piE#m%uF{?miJyP@@}>U#_z$QH{ckXdh!Dg-)GT_lwzl)- zOS7$G7i6jhE`w2)dGty7Q#z)|i4*YnfomM7Rr$?6a|<@e_>h*7QO;2T&UNPWdz(Qq zFn8vrre_!4NBJPKKxSCggDNb0z)bB61RSw_@-`pxw@yU%V+6V2puB{;@9l0l83Ipo zNtF2S{{+1facy^Atq3@xfg*58M4lbgz_-&tKB{)p4NB)sU@Sply}RI4Px zjyPGE1m-3uUd3^N_$>o$;naNavUDI0KW}n5icL#&I2mYl7J7U3pgJ}m2AqC zy%i8#n;05$T8?sHBsf9b*XG7X9bDW7*Q`>LX}0A;An#~B3nypfra{K?vI$&Y>gDAH zoCC%KeaN#1RjFV|h_H_jgys7WwSUo)PE5S` zD-$8J0Aw~uv_LbY#@MG(Iv@q%kkQdYy>(MZkSm%ZH;{CL0{g{9`#|L`)AFB-lNU^! z8GCoV>TK@5D|4jS9ME84+GpF@!Nin!J!;L)x7v0pPTG6KcNVEUVxOsFJmlJ5M?slF zJAYpCJSpRY7YRqY<@#vGqmjH%6gcyvE_A86w;3(Sct?9b>pL0#IubJ8z^Vc~^{u>X zM|*o5M5Rbb{Dkd6W1lD`BJu`;_`yI0Qi}Fs3$43-#k89r&Q76gRKrf#25pKXXl;Ql z0J(uUe>!8NWgqgkLAbdOBmyg5KS?!dii?XSJ`%q&Gpn+m5g{46{^k|2xw*NY$P)@J z{%626f-071=E2_H9&kfXv9T?fVr5MvcTH!RsEZkNCOfrc!Y%c5DfNl-FzJ$bN6ez~ zle;|56GICUwZ(VC4(-`K)&&R4sA%NmIzTFUe(|Nh*KPr`BT(%MFNr7?AxwCMG6jroOHsH)dqV z^Gwp}B(kJxb0>ph%qd&7QpQHX?zN{UFPSAy<#?H%xSXE|qmsF~8D1!S-O?yLLnEV^ zm#(IA`z^SM{GDep5izYcsG(uD++1ZbX??%YUSwW>C#I4ia~s2>0sJ#*g@s+kUlI}$ z-nvr576rZsuz5f8HAYpFR{U62pOYU{R2=pU8k*7P2H=In3;p)(8~kmRR3nYS=H~P* zCbp)o=lUPSjEpkD#R=SLet!PiRP18KCN}K+2#tmIX9hG*D{C5 zSQz46YAI9)^7;<9YX)d#ms@YWrMW_P{d%~2)$&e!LeW{{(LL@$kQ?q02flJA@>B!_DPBYH4xHqm~^{+YVz;7 zb;bGO`_Iot9kcl?T2ezc?|cYMT5hKa@V~fY^U2-mkH*?!pV$1{yfdB(mhqBL{sgZq zW0bbLwHH86Qqqs@9ZXkMCRc;WpurHiiVOX(cWI7FE~tx%cNriX3u+>SyMnF>jJP*J z0h!}sN6PiFyvmwtra}Tg_p@sJQ1uO+0U_t9j%)T_NA?Z52T4AS#EG;pxIh~1CE zNPY1GrSo6RZ+2;FfAz-4$HR9=a{eJTUSxDOzOC<4 zVWj%h!ophY3M145uX=xfG~YRL@4_2RiuInQ`e+lCO-g5f9%5oQCy-{O zg!(o~bp@X{obcp*z+H2)%biio!GCi#MWuTP3a-bwk~5e3rv7?Pc*5$yLALgtCxMbn zo&6~&e(!7}l$A~P%w80|aV`jWQ>bK`NWVkfk-a4I>jwElWjQu=M6wC!`LJOHot@3Im#tq}xe}+cD0Cb~in_68W72wY%r@ zQfhwq!KR;9?VAQQ@r5`m6S!0=Oa`j6(xcatI9{R(R}pO$pc99?up5(*_7f~)M4gc< z1RZ{YNp=&9RXB@=Rm{?Sh~yGEIX&2r|Jm_YSP_?y(9Ugpa^J+UJ2Crh^jmH0p6>p1 zAC%VCz-re;>}%I}EIjxU!QbUf{{{Fs%3_^!j zU7b`gzT9;Iv(`N@ghp6h*4+M=e3Vzx^+O-5(3@kOiLY#$QLd76wi?t0#X0i~&42lM zKQiwVS$jv5xF$6~EJA0^{LYTT2yw}KG?YmEr!5THuy$~|txUn~HG^O?1?$Isg7-)< zAUIT^u)qY$L?7Lk{A7OmyLPQdoa5Se-Mn7K_RJkrD~dX^=}=K8eLWZxTKd0FXUV@D zwcUtQ`6A$;*Ol=B4g%tL?jAXYvcX|-ck;Dm2M5tH0s!9denbcEjU_U_@;LB7LmGzT zH2?Lh-i04CXgd-+G!xj-0F!LHa-*+Yyj?ALoc`A@p!RrNX)fUyZzLKuRCCQZM>xL@ ze-HI$;Cp~#lFldDU0p$r+wzLC#FM^1amU)E9L-Y7lmriOf&dCB zOXQF9?`w6LrgZzC7Jw#IgPl|WehJNk2c#SU5<%2xXkjzW2xl}xG*}E^jxPbt*gdZk zuqA+_gTtUDq!IqdXK-9UJKP0QJC+0TTcpFGRfgcfEMT!g5=O$R>kTPN@FrD;d#*72 z!NxY3mwNPQw&3-MNV(NLn!vkTJbXdBYc1*t#b@P2rlzn1RBDwoet6WMG-LICZGp4_ zLL4#~?W*q3d!_EYynLxtS1B6tAqp0)i4`;}`?&1vCD7R4R)eHv9ZwF&Sr9lvILF59 zY-(Ylf*433pk?)h7`H}LhFwzbObX9w=QFJQ8a;p+t2AJ2*woqbXY7YzwUzVB^eKYgZHojj}{`K=< zM|5G;vB~m43px}P07yAHt4pqT9bJb`0eWN+8EU@S$j~}LJ;XUJD%_km5)~bNu)j3^ z>H1h4M6H1D3Hm?CL;|m@)}ev2GQKU!A*o8iQ@8>3CYZ#0uZM=;Qq664dx8@{C^|n@ z5$H7G3YyLMcwlGlv$NkMKyOKNOqi65vxx!|9nr&=UsM=F@x5t~*qEUQ=RxNX55)}v zJ@8%Z8*6J%G*Uc|5`T@*`E~5W=ad)Zr#O{p_Miq7r4)>GYUqhYKMyPO*=;DG6z(2e;z747~A6F7o*5y67;!npO+Md@F^0LZ0#Ea@(uX|5|Go1 zU$6A^df~umB>JLN`H1SuNi$-L9Ggs;i(!7}$%f_X=&-fg9NapRBDur5LyIoS629kX zXRfCcR05aFSGw#PVV7Z2`gEWH({8#M+Ohzy_OtC@6oFE7;k9mRQdF|C?O>nI8(3|; za6ix^$q8=-o7VA39pB#r3MpIOC@jPwsm3L(-D5d|-?{p(&&&SHfgGsw;5q*o&pt)n z>=d{fefzXFZo2@^Q>W$b6mWl_V+#Mi{5Ea}osY(=nHLugcWy+tn{Mg;_Ck1j*=PUZ z%QnpGFz#~KYE#W2+_+)$?Hea2E4UjX_8qj{I4o)atNJ7hiZf6~fQOBZl~q^~k?MCD zt_6#e+ujvzJAgW z=8INrYX{Fr9NviKWNKgnco#rp4{{~X6GLo7fShSCeQH+Zfv?*rn!>7?;j03Kuub34 z(8ZzjgUg@or}LnA1P#=}4DtsA#+-NV+=0rAGyaeOF+KH}nE3Zw~LC{ z@&cV4{J;r(FBJlU!N-^ex<@#XIoa9SIXTY`e>Q@8(Bzzg=Fz~w0Bn$8qb2;cWlEvtdH2?>60p}bCV_HS3zU9S5V`SeeD-1_=(DfIf%n09a^J-V2JY`bq3y@(jd zZs4nFf*|ZBf%owA%Nm3tJ`^bA1nV>b$1U{eon6T5>La>~1e#bu<@hLO4Wb)=^xSG~ zZ=Yj=V0h$E3Vt@Q$Q8jIOi-_(e*oJ+%aFrW#3ANLoaW(?BSq;s5$6!2>$y)znZqiF zV|Fk+n55T5Fy|G*b^vQA>XL z+=}5I@^nzL^nCty>x!(bEHo-aMA67VNDYmV;o+7A+qF6rgnOoInPZ8E+v(j>{}Mj) zt^%WA`2l8TP!nf>9tze4=q%4GA|fNd0mcB28ise=CxIF=nCla=5XRzjrLqFAE5A17 z{=T#{s6ezY7;Sb{QLbLS6u=K>57=J_ z0=Mhp+B;GL-XUu$?fPKn|D4^RtdbEw*ywq4Eh6p%YkG>WdF{)fIHUm}fui^!n*h)h zis1Njn(_c;y=CVrGPmI3%&GH=WHQ0}@RN;=QcnTNdbi2PZ7sqghJ=@L1%%G@4=fli zNV#ady!h;{yGZ#KWG>Pq6}TUq9PVzXO%QeF^_!ty6Uou4+(G(S2`hQ+7C}u%bUzSN z0qa8mT%R{uPk|Asamj%p+@roQV`8Sho`7k)tuu363rrZw%6K0+`o9*xm@E{!ocYkY zl3-L1f$Q|Lvgo_oXv|@Q!8(IJ)@%@ZtqNIY+4d+U3uY0MNp$>0r&`-Y4-tS-Wm8k?+2RR ze&TW5%{^tUzB!pO<#`YLmll_?08~Zz^`(7TIi4P)CI0&U&Z{b}#{?MCzBxV(Vo3#6 znAeQ=4zQL!jRVCbEDSs0L`>5FB>dpO6qA`%Dx%)*Vu@w*wQhJ8^Y&7={=Gh1Cn=VD zi6tYmcXc2l=~GC0ibF@N=(qq9Lufo}=z10gP7U!CMeMsgUtz(=BX4in94-% zPe9Q&P?Yvf$)$6(V|e&Mmcr89J4(uUz@i|LCDiKc04#K<@;3lsNhA*ah>1V@+1+SPe<=VXd3Cy4UvI|W*=r(<&n~~f*Hd@pyeYS@ z%$>KcFc7|Y0Rx?ZL9@1iwKp!s&nyM%>U!)s?fN>av+Dp95Z#Rk)>pv`2FsfLIeP~( zSmn}8dNZHe0D91o5gYYFtrYEQbo%hf9Nu80-wh$?AAYOjbAx6ASCI8X^&Hmzfs>r@ z@}e?aW6r;w>(flp&qY39p+19&0~`&uQQ(CJizEK6TcKgj&tLS8SJn(jhci6BOBG4> z-$I^z9sbevV6pbu-0o7T%{?IhNrLX)m2d&tut*Gs_)qRWciwpG!t4zSbja8Ltx*eB zOt7y#k2j?w#THFW?9ae*Qq9kV3FX9bh~Mfl1+D5?`qA35Jigg{386^IfdtX#604cG;S~0_p%1 z6jJ`Ezk8K=n&tQ`&W!9bCG@uJqg9=Uo!@@B)Spz~E0JCP8)A9d{FD5gnd#lJoDrcu zA?Xc`!_H5VV0Rcwiar!rkN0-)RPjpsubiZl?eqL|B^)vu-FqxdPHN z2w=!zX6Q%^h|Q41C`Nk-dK?X{PUH=A;Gz|s`x*M~x|73+BWyO`e3^OT$ZX4XK9tz< zX}5+i0@dL<^%9Dd1o!TxK{4D$TAl9_626OQ7G=qL)zs4Xrka#c0(^{W_vl+iQIOQ& zbbEiUIJ@zVnsGL ze7{Z2$>DY0ng-z4My)G>zZ^zYPBn_u2G;pGQ8GSj^;`HR>n|EBM3w*fvAz?P6jPsX zx|$9!R=E*TNiTf%Ul~gkmzAUkrKjt0TlYPnZJ>DQSy>6$%!<{m0?~51+;b1a5t{pa^lBv@$c zX%1|*)0YEHClv zV8RQshRpS2xGUHOx#PgW3Jwd{aXdWTYa?P}EG%#aSx!C;x)ZJytlM_=NA*QRu|?1I zL6*B{0friT(WiV%9|oB7j0VJLdn}pa5qm`Pjyd}E*2M#6oKqHtfvQEcHV69e45wJA z@MSdfS>i3i2Jurp;~Y)bsyt@p;BV6W{N$Ei!J4sOS@j~&5w!FIY+FVjOt7Tkngvmpl5qbD_;+ zadZ4r5RQWL(e`d+5EI8V$=-{t);i*IZ^MzF!Sc2-2A%S4zgq>)hscOznb2gJ!a7x( zfxe7R5(CfW=-62FX|=JTVZK&nm|aF+z1IcAW$lm|=|JlYtv7U{Lw$YW-4fIc3@|Qb zgLpl|mLXNmd~KYUnx*q}f<7TWf{dR1k9N$JRvG-A5x-J*a~!wOc+ukjaTD7 z(o0K&8;D~8Q%P<(Ep^m$m|GQVQ>P`{TOWkbrLKi#XQu<^QqpG=5CK%FPZB@7L zJWGQsc-~2bY3$t;P>_EwBeS!=KL{Bezwgb1&*tZkAKRAJW2L5PiUga+Vj0TXmA14( zLiGTF;;#l87#b$<*dQZq8X8hi%U`D}_jtun0SgQKt0~MKJ!LD9YCSg=&7uZ>IsxMw zm_g2Bu*!%b+6Ecp3EWkC`vkcRtn^Ccd$D@^Lw*mOOm?GOCfI`aThGvE`+_tp5 zvT{~fdlLL9^#z5{`EMicxDYuXn!mve_c?Ni6mz{9#3NF{GB!L-9grMAsq^(&dLU)0 z7HUBNgSbx~HToNSJXBGIY^wC334^5r$x|1c4ck{G1_uU0o9Zv?tdkxLW~)R5Wq0!HYti*e}Iz%~cA7ACk4 zZQ?bgKvc9EKG%R(1N3UF6pNif{gz6M$6Uv%mPA3ah|*_?ww2J`-G zHZbXb!q%|ha#>D+Ta}4Mgm8#;li2PtQGQ>^Lq=FZ)+zW;AW^uotUv0GpmaWj)+}h` ztNEt@RtopSn8LoiA@DauMD#bL213C)17JZlS4Anif)ygxA#v&qLQpZ!G9duD7p(0d zwopjm8}N(X9Hj-H%LhWZ1el2^rrKS42ySuuMNJa4q4trdiQ@Dho(IP*}#zJJ7f~t?k*NKc1;ck?_Cv5<|`>FS7^g?8ei4^ z(8Ew&weR!xMs(<+qhqq@W7HOTT5!jZW%bWn;g-IQ`mQe9*KD$Lz)dRJ9-)*?r-y;v zEygrwh3nwy=u3q82rWPg8aZ(4w|Z5TX#O&d1-q$z0^K!KRATJwAAZb+8dd)`cyx4f z;+89+Tf)oZ(`WDq6%9=%iw>WFAl)=J%e5unh$}9E>@A!vaAOaA603rhQ|*}%RWlDx z0CavEl{Dz0c1~(*i!NAP_5t+va&%MUMmyPdwQ7vq94HfRkP3=WBv@S4nK71?aksw~~ zUOBzI(P4nGp~n>m_jZ{YtFK$a)&j}y@U%wb!Y$cHfSJcmUeRm{7yw5kE`zbnF z=0wc+bs=B#)KLO+xBj~&L>dE6Ft;|o4(@Z%5`{5eDM!~guArVWlB;&*rP|QdYiu1~ z!}i-~y&6F$k@h?B!C2YtBe#XyN@gtbh%E`j(~f%^)rG0yw|;!u9I2U$GpwS2Eo<7* zAzv4PcX8q~FN-laZZW8`l5F|{h8l1HF0i^ndJuTO;Zl11YvW-zIq!e(kO|8h(a%55-*7Q-o-3Q^@OeUm#xOz^0ZL+0#B@|ZzS`LW8u{r`n8IBN^*SMzT$d9w zhdU9^-PW!h{n~$hc0RScfAKYU>;GE&%CIQgZtYPY3lttnky2Vxkxr#SN*ZB6N$KuX zBoygxkd_jVZV)9LP(Zr7L279B8lLyvdw<8?$M@qqzWL+G%-r|Pbzk>&t#z(*oo5(7 z|L)Syg(X+Hkvlg$^VxojOGwDaK4=;;$b$xQaA=eSyiJ;5(lL?#O#*&})kyv`+!M{e zZ-wew&u1g>Io0aIa7wQ$rR|rB9gy2ZL2%FU0}*1 z0JfY92zMr(JMI8Wt>mxD7jQ>#e?9MWK!XTV>hqH8abuc3mgr!u5ueEe}hzD@=JDWCK>7r*(PsxNdvW*xye^_QTh2LeNnznlYRKP~#4P!H5mD0!2r*Xhi-QF;x%WGFc#w{R1jGUf=Qg|B5Qmr0ETnbbU05nQ1se*SaU{5_we9 zGVA?hvP&54-H895;Nari7}(45@>YIo&%gwQ+iI~y5SeZAgrq?%$)N3^KM;n z0pG+&bV$CESzAWPu+Zk$;yNuneEH}iHTqAQ{(QR$S0k^}9b|$CBOxfq_2sFv`GaHH z0IaIp!OOo9Uxw#qk zqEzFTs;ecCnB`=4Pp-WPK2?fQW2}M1ou6NdpF&qW-9_iJ5vv&PaqBxCGdICri{^g1thL6#Yid-q zElzrarB=gH4I7U*#kvwya|RN-$9W-;2Ucqs?Z&gr_p*tL9DHWcWPD=b=Lbi4htDj~ zpB%Q2Iq?U7Yi<81-fUHemD`(YxFDJAgx5E~=DDCGP(ko!1k_RsKtc;g6htACfZ9b= z>g0M;F5+lCLdb&*LgjFmZ5sa(*w4;wp=dveTqfa^`5^KA7x#Fmpqo@UpO1-;Zq3z{ z_xYawEsIh66Wm_KVAxFk%o;nemECq$3Zg{+UodAt^&$*zKuPP*Aec@UF#{}vt(g#- zc5JSh445gYZynZ|qp((N#bXv_QQWpMle$k^n;+3W`{A! zJEk?-*r7wkw=e#ZPcN#Yla{7wZxPVMmzD}OguQ{^;e8a`g)&u*jVnRn>P6934YbnB zKffFnRDW4Mt?VV_JKO!B66`if0rJS;tXVPPS<|uz@_0mSIzJ5Z##;=+=~E(?f0Ik1 zSHlcDW9{282d{E|cI8Ip-o~`J8i;%_oGcH-a3>{e-L-09S?G?SG2Fizxg;=|5*@&Z zlTMF&{KW&6O@?kneo`+I`gO3H1S}3AjE&tEMVTqms^oXvqq)Ur;j_{d^^V_$qQ1Z| zWG1Af+#q9c8eih6b}C{1Hoz!fE-sToEu+aT-~7f z2JVm>X(k}1Zoj_D<9hf7JS<&g`DS@B2D6As64ktp*oPlYg42s?sr+#xXnb+pzHp(1 zpQF1RanhI6yDXk_b;c*ieVil$6L?^}fGWJ*?UVhPkcP8UH#)6dikB~^-SKY6@hUs6 z-j${}Ux^y^*Bf+QcdW@uM!-3{eg5uq^61Y26bg0A%!k|YtqrF?1fNWD0U??ctg=cm z>i?iNBpY2TnWwgOye*%uoFxVK?A8raDhACiPwefkZ|}48O0l&Ha(^2kHiyz*1%4o1 zuovDQGTu5t(@4`+a9j48G-7vsJWJ+f-F<(RuDh3j{09TKJ@e4R*k7;Qmvgfr3MZ2Q zf`0>87SxP&RrEZKMfEgzy$L|Q{G!IfI7!jsP9el1wEh#9X(8r^-_dby`rc?BHkZZD zwsIDp(?eR$?7L^*sr?;p-7@t2&1*gXAs`=w&cL9X_G}4AIPRs0$t(^FMi@oqY`$x- zPV6l8)K;nFJWlR=vBmAQdi0|nrAx1CZT+Y<<85UTv23BITRI-8x6>N{vvP;Z)1b=5u7iW)H_PM-@h((BYc*2Xd#$PcGkWkN+wZJc=&lX z;mgVXpSABHOfl_430ygY7chAZEekIQ2ZIF$#-eVePfl^#=+$$5Brai?Oq9X2n9Jh5 z>$vnR$zR7I)NgDt{army$T9Oh@XhzqdRepnrL-$fPV~1nD}gDGai9}$#zpErGVL>z ziy+nsWzm|=&1ML2ra1TR>vo&Gu+-OXvp8f-%M*Jem*yv4k4GERkG0EI4{WA^Dk!!! zDR_vk0Mr2PIfoT2((6_j!$Cyjc60M=l=}M*A)Ip6_F)zy23rQX+Hp7TXQ|2d9;LVj z2{g`t-u8Bp*GV8Lg$r(=csv(j#5-AM?DK_9C(Xf(gm){%i`$eY#gj3`i?u-Ok-eH- z=$f(lQRB}Jhq!UPWHi_jfJbz!03w)s0JCT{lE%uio5!jYGJ}PMt_N+15crB2h`*d; zR9WLRzv$xq9rT{Td!3D&J4OZJb#C$2sMS}%G*Z#YR3sI2hbA4U!PRDY$qJ!Yoku|} zw8DHygu=UFMyIy^F*bJ5;QVWP!4W@QCv!$))S_ZT{S%m|G2u}MbID^YroV#=o{9EV zUD>vup4;%`?}5vA_=)K?db;uR&9Ew|MfRco@{4sV)6gU{v4*~4J`6V_e7xw`-E;aRT zeQcxdGyMA}9CBtOZc-!Tq5{L$;?A~Gb3T-A`wQxGF!rtlLoMac7Zhq#LD5Z9I0cX052?45Z3+LzM!gz|K~bIit%&& zTffBZkptpMnne!3&UggHa^tG8Njq1k>l?cj{BGR4iD;Bs<)bVh#%Ycu`w`G}`$l8I zH;f%C=1LM{yfiV7`T%gwz&tj^lM@wa7^IS2zBT!r{{>MI59!;(hwNrVdH?*u88OiH z&okX~4{Lb7Pjx<_{@WoN^E3-=_n1wrh5z*mqLBY zO||e&qoBXGR)BaMOw_XBQUSx_(Ie#n2UQ{=e*T)x23Wtqd#Lvdyl2d^8`ag;E{pFl zoMct{e0#gs)>hWj^V1i;NA&8%g5Tp~l9LMZwhOwtI$4g@7zc{i9NnN}0F2#5P~}7B z;A~SMr>mwGUAV%E{#&k>nJ9386{(|>3}Ra4la4jWUr1GG6%d(N1m)*uD|-nEztZ1R zK_kaMe!O{e5vXTjDl66N&nrOKhIw==+i30^lG#aej)s#GFBnCj8A;G{?rI3ur#>O%7lcM2m;8z=E3}h|&?>5r#H3P~_EQjs`cXyehjQMm$#AP{F&1 zNGu2O4xT`9ap`wK*ua5}gyuMW{B*_NKP)RKg*`_N*nbxyN2c(hziXgCOI_nCgHkil z&DZ)160oU}2`G#iH2f&QZ<+c!S)ood{q-IEhrct@3BKq6v{MbjM&a#^@QwFa{CQ8V z7t&`=heFTJ&dw1q$N=%`Jk`7`#ZS8zrSxW%3?)R-i7uxzrMG^27VIRce#9S+8 z=2fuQeU^g)mKG)wf$b0@71i7c#>;gFTH2ri?zT}k@Ddw*EnK1O0eaT0-@Y+^sRyqB z4-f-~avM0LF>w4n1j2C`Q%3uxk3T~)0ip*XSQy>iHts{nj{xuGKKk_LBClJ&*Ty)b zm(I<#jfrCE2wjv>LX0v0{ri}T27vlXd4o=%iwnB>&|<;J5nKGc094JukwrbvJ>|R) z?-&1irD&R5N&pbv04XSk49=)jGm49tfM9jBs@JG=%mY1UnsoUyh#|umf*S=Ayyzk$ zzW`qY^jjy|6t=2aB}3HsY`@xQ(%gGO;h`ck8RLN*0QQpypc=ptzHh&8QU+py$}B`r zp(sRdSsWxWlR}#e3qYm&xDg0ILx2ol3uA=FWWUt|944S3)MiD8`PpZR3)MXUS!zHrnjKs_jp~_|6FY(=bkL z@W4VM!;+H5fDjMmQMgflY8G#Fe-E-GSuzy|<2&V8Y+uulGTd6d9Dt?!#;+|bWShj> z=CYbwyzGox8SLOZD${5!JG*8N8MFFP;A5A8HHj=VS)gLid3rTq|(T_n;W89~MK2Cq-BogK#H*kzTV zKLWb(smGzcE%eJ5DlZa}k1MlR80J2v8_r5)|1#;F1!ExSfXI8Us^k15F)4m;y~Z{) zt}HMJw$&U)Vco;MDCp1iqLv7F%B^}e6;CeW!lkc6eS808$0&(pIPF-?)9&P8(e`$B zw{ixDbPEjRgdmtVA7(*h>WIBP&vqR?t&Tknhc^=iejs1rsCF(kAD0b(?~B>Jy>u z?TF{3xsHf5W^bQtQfjE5fp*!>tvOlx1wMs-F?;0JcF~Fcv^Jc8l;Do5(A^g)rHeHi z9aVOi52@!x1D3#3qkP<#YrA?|+BOV=1vj)zx`tt{~A{j}!LTM0+$wSNvLifwe_=7En zY4X%;rds9x87MAf%sgstDLYAG!c&V?mren`0{^!*MK+1R_r-QgJt=Xv2{7jV^@ zjex57%wktkiQZ)=^d-ccN&L;n&I9s)lA&#wC zDglORkOo|m+$*HAg8|8uOyJu3ijPClu)=z9Y-iH*_Qr+BCV!JMk#Ykxrj&J~oq^~) zhRgJCr=gaRl9CFO9QV>yD~!~s`)W=nicn+>p1p~8N9N9Gn6wfcP%*x*kY%Hmno5tW z^HDd(Lh*Qe6cfu`{ea0IQaK*po^85n*i8W`l*xq7@rm?x1S0r66lJiWqB7Vszkcm5 zv|VfCVh|%2YRkxg0IHA&D?HvJ1aJlSCt6J4G@mS+g4mr3H44NjcF@K+P^Lgkev{~f zGZ18&DCH5Ez#kCWUwQj6|Ni$-w+&P1I5wmF<$!@R;88gzz?&jf=W4sNSSB9&p74Ci z!qK9)4diHO#6(0iE}y@z@zVKpgXjM<-2JZzT4-ujbLh)Ej^mhr#kY#ph6Ziwy6rnl zdZq30oJuuZ_is%JoNK}%WF98SIj)A*dl+uM;I)1nOcvG}*lI-mkm`J@0@zXjPQU{? z5o!enEmw+1&YZ0~2! z_`UPX_P4Zr^kwV}4>y-3+JhzftqU;S#;U_3XL)vZ2TCl-Nib_0VsgaR&ajsbklSR> z=Upi=quKy`C@D$ZKrj@6haP8#O`B!RQZMbjrUB*isJ~HishUiPnOah2pm3`N_sqk6 zjPKxZf>m(n4KLe+-N3xTpQa?!wx-(m#70(PvcL z))rP`lb(^u8{oMYx3f%J=X&tU7I0hdPpgiaC1R)BDO9*P6wIInfq%g|ozF3nJ~<1S(DXz9n+*J^yEi>f}wj5)G+QO693Pyfikbg~f>gmr#sV7R%%Y|bT zOX0zYyE?=P9Jp#7Rr2V{VxMCKDf0{TkZEHuGH{A@KYoawyNp?3{=G0HGM5?${$92- z`7`SdgIeOSQigjvL#dRFGlnTe&O*A**1+s>$P?U^K#v}0l1sp>ky;wD08GOAF*Jnp zF_1{QJGmz_&}!~$1ZUXOnAzg*g>@nzczr&NXxGNw=BE4&4{X2dmsi;tc9C7jqQZ;> zmxaOLgSdw+PufhQ!0XpU`8qB-?XC0vFp046Aq|Yi!sW~DZDD#`{K1}E?~XSwMHF20 z-jbzrnJ39rY_hTMr8`(=niw8_gt3`Jh>5|D1?J~>V9m$uSg_#oITUgaEdyGet1J|G z^Pf3=>tUS1&%3~^Aseeuh-RKrft8{G>qY2z-CVL8K)BkWxI&@F?kVk8$YF9Ld`<-e=20y-P`VW@hGmaA~;D7fwF= z&?X;p0U^D&`I^*Dqf<;S|9UId&8Ua^i4wy5kHMlG4k=KoDe>X&nX?AMf-LEg@)DQQ z+U;O5@poAVG8E@^fz*I`RFOJS9EWsxgfv{`jbQ%SF(+{`h$2qiVGK+Lx|S|;W=8!f zIs=hgcuY6ffW8IBC<&yb`%toqZl~_4h3bbRKI#fdGE8y4!cOan0g#PMMJjDCLm=B~ zRNDIeI|SZ2n3xxMlVIQugcHLD49f4G%F9C<%RN#oxDHi-4hM6&UN{BNnLw;QAucXg zu^f^Q2(dx@y1-4Zzv?Gpz-s3b#b%E|d#S@3Ha z3Zu0!X4wEFB%le7R^IF3Fd2J3kLoQcArq^xis3Zdsaa>V{4QiSFAK>iqaY2C$UaAa z+e61Ij!!+S&0`RDtB;L{${0m@o*uiD#d`qBzBzc!Tw&HXU(F0UZH$cOftvu@`zj`T z0LPniY3b>Gd{54Q?_QGudllDX)~>NGz^x&VWQz^ou7DF0rbqF=W-3W>%g?J zI#!hoi6(t0vbslw+m)yZyoZgabhp5R$8Ei80poB9MN5V+r~M%20sSD5FF-i|EX@ex zF+>-Ev3|lzq7RRcKLj8fmxO&5&^vX8-&b+SZiCkkB+gKAEK)25n(p@Q%0PD_Z>jlE z2^Oat1EU>k7a4)W3Sh| zRyl*>iFIELgAu$jf64y-KKRaiLXtqvXRnwO0#q-nAF&UCNCsU5wTu?!BWqAX1E=#D zaOx)HQ=kzP#F&NvInHHo$oT1LZ-H8#S+-X)bY7&K9WOu|2C!{Xf0l_-%X5J28EA>%QLVTr5C#psx2Pp< z+>Mnl0AQl3loS#1 z2!LCF>gslSo_2NNU%zqVSl{|+;4zd2ko?qq(B}m{QINoMbN>9I@%2SzIbF{elO*uH zjg-y8s!+ptcs`$*0ftrdedR1npPFf(V$Kklus%#coewY_WY7e+Z-eD;fg0}p(G<{f z`2z35;yePW6=7g^Af3iCf4)u$aNlgY3hmfCD!9c%H0)c$SMyZvgUzkKHzK=;5AM{I z6kXuRJtsf9g7HC+C;!eL26koM-UxBxTJQ-0#6UH(47z9msThU!TcEz6mbD`j6BD(; z02S9W9SQ8Qm+8L-0n-3rW%NC|LSr`BjfP82$4#!yjOxsdEeFg!nEUJmd) zj8+-+y%#2-*KdJ`p(ogSLlL8o&wdm%1_HiVj#Wbj4qyl%SYm))D8YGDhZCWF7UoM< zX66_)|6u(V1Ly!2y1vvWm&*7YAukUAJ2v?=y_CWga9v3Nvn+5=5ET_wHE{&-5@@{x zw?C`d&0cg@__Gv|m>(AqqzaFh*2l7fz#bQhs!>cwKLxKf64mg)O!(tFfb(;1veSp* ze7CV?zWexaH~r2<1Vh<*q;TWP(ttv>6M(r@wjaB4ix32lpZtYTe2KD*Z)AA2+IEjD0Q(Fx)mr6SkLfPpEnwqH0j?lC*O0UE(6%LF%R5x*I;-u8F;>l zz_b5}x=zjyu4TTw|F1WAlSU;lk#e;~-VaYHIxe}bnS?nIV$!Q*WNttg_L?|h-8XMC z^d(`nU86mZ{@~?P|EDofLW<*(!^0OBD=9IUmo*twWG3<@et+JNI_asYISaMLOFmE7 z9~thNR-tuB`1eBINTspWhg#L&LaMtgX*9ustkZwUYL>}dxfwod5PkvCfsGYjWtZt> z#cSR8#J>5jD(fdxndjLR0{wZ!a6#T>OBxaZ_=H-K+R=AWgm-{}QHS>hJp37+JH+&q zUiq7Xum0ITEA5ffGltV*OFiOh`TH|X_mv^n|vQjOV^v&hEB-+w6xg>5vb+g6=V1bbvpFD*+!o36wa z^^HpmCKkhO=^=cW>imcmF|W&Ch}0Z9IfI>7*}tyizaI^kAjDAXV21Q$hrIPAJRlX) z-r8!r>5WJD_uX{Kz%1V2LL}45fN~*(b|gXU_Bnl@=6GB;Q<;&U#trf?pMB{i{LR`? z_9CJ}MJ2NKsIV764Zw%aQ}Og~yL23_PvL6+eMMUAiHerTnFp_}Sn)rX*n4_wJ3^8o zjEIFy5)d5Prx~f<7=XZaFY;)^iR^ty%w=pEZuQL8^PCgGoueZC?ZYjfh+lIMdA+`b zIRh~smHsy#L2j2WvY~Rh%+@~!a$hZDYHQ8T_AkJEfBXzt({TxxhkRcyflgBs^9gi_ z7sT80=@Il#ZA;iY^>!wWH%90~1Rd8}HzC~2Q`>n6Bfk6B<@QRO64$aB-aUwzlLbM= zR$BTx9*OPTd)>$0Z{JoyY3L}V9d<07?n)nIYU087Y6kOW);1U zD~}{}>+alT-&s~YizK+O)qgWcTKZOAS*4ZU11aaqUghJ$-t80@iTZsJJUobGEF!vv zV_vrO#V&M3aNdF{2xSb08O=`53lV2EguCzXVNzd(WbX6?`)o)eL(V+k{V-QxFP2nj z=N-Ml+VFIJd+HNl2k9~IEjs_vbD8pmZ)lJ~CdfE7)#{P5zrPtlZ(MhfReNAmJibsd zLBrT_Q*xM)X?)TyU7TptDP?AG`F9Vr+mfcQz|=DzQW`}cEC?G8b8tuAgUJt*^N8-* zvl4y(w|+!uk8-P+uB5Te)(?RZ)eeD2bm~QXt6YTQ^FicH`rpSFkKE7d>=!5fE)5nU z;cknWNPXSb%w;iKHefLQHGx(17@X9BokEC~dtMfPlaz*MKTFqn#Dd+kR^a5z%*Mcv zxSlkhQO}x-H7xU(`jhv_{sH_xJW@AN1;+t}012n#AI8?bm4htUhQ*Z&9-~n&iw=ti zkUKlt>thWYudU$2G?;yi7t zR1Uhs?wCJvQ$ejeu|xUsK?sp~);O|j$hUu|~Xyh)6&TCQl;4UZ5vEn3{<^E}R42m>Ebo=4Zq z1YOvfshXqI!B0@g_(NgmR7>Fx`vQ~jP({s*_np}82PN9ov(sjsk@vdrmR&N&5~ z{jJW0`s1Ef`gGs$V=2`eb9t4w_iE+v7)Nb|j^7Fg$P%l&aE zv?t2cgGpu%_sddKH*o?B>#7y(cS2a%HY+ANA{46khizuwKO*&745w9K)100T455q} zv9$YBw$k7JsQWYVmB~6;IubsW`eP;e#JeO2MN^ab8{~|HOs6i!#Z)*Hk+5$6nHhVO z_ov{+&H?A*VVzeXuU%~Rp_omUHtU`}s#;<9?_1oX;dQeK$RA~7w-;^YzUre`_n5t_ z1F|O3w-A<9BbE`x`rs01rjS)SWS=01d(C=8eDsRXO7>WlmDA?Ln%y7Lnf})w$GR0B zB_Jm(2nZ@m)kmdlx3(SfRMF^x58t#ZE9{DWN&og3ByEL1{*CjE+I-;-%JC_U`-JfGMAy^nA&US^sptA5KR9XsgqD+~Lyxvri3hHX z8PYM!))JlHy`zjxO+7ikCPIwa#pb_$lLvJ?!4y2gIq^X4x@wi8b(Wy}%HNEN^K-R% zXE)56E?uRNFd5zVOU_-Clr3UZ*Zo zF19?KlXATE!Famem6}uA1Qsm=d6ho9GP9a&!PeMY-6xDHp;&~GqY5??B(PFoVlV-1 ze4B$>YO7RYE882ymVD_#sDa_ts9T=FHoXlxEJ3z%+XyWrEOTnp_`Qr*6iDsg?mFLOs zJk-nVr=nVUgN9y&4wWJW=)jlesNN$RdAdj^r@b-Q%8z0z)vB<%db4_~({lAk5!2Dm)gCT$gypgp&G}PoseDhKD4uETFEESV z%sxDjP7z|Q-#b1)9_=ML9Hf(S;^89iClQmMh)&d_qmQpnxMYvI(7R#6g4EmJ=QAEx zVe|1kOkT&t(+CEk^LYIKfOG$gx$rN{)SK2MiGWV$&!wi7HY+S5oBg%VH(9>zI+Mk5nvdmWuJbFLW4IH>;XHlDAv$+u4*>` zi_3%o)-j;!fPDbX01vz3=Q9$wK=ld*DqvZPrQkh$j|$UgWag$3@_EP{Oo5;< zo#MXrP9%K?pf2do#n}F!jC@_&0JssK1;#;+c2$X){^!ZbNj%Ha!WA%x{?XZ~1qx@1 zilKncpippXJxj~N(iR1|UXW8d{vNA%76`d8%;&B$FgvxZSQ&?oXVrXam_pi;V2urY z0W8Uo_`(&hE6`p6Ft@hzcgScV^SlX;Z$DF?V9`#4pa*32hXW0#zpEY0eB%qYfp!7~b*NaILM9AYT)BZ8`8a2K%18-=^fCW&^@n z!0RI9yRZyYO&G>I5B0u6L7HIs9$Y>QA_43wPzE6(hJ*ZSuDOK4Tmc^4(P*`#$ zK-X$vzxYd{Kw5D923QlTZ0N;<+c*3`6esVusHGxIb^wZ2%mJ}E6fCub zpL_s=fIg`%@ZEy?IlvOo{0$;EEzQk+%lBYv14;_a6`+Wy3rq