From 83d38d2105ee0ddb8ea1bae08995b9cbf45fb076 Mon Sep 17 00:00:00 2001 From: waldek Date: Mon, 23 May 2022 15:20:56 +0200 Subject: [PATCH] completes some more bash scripting --- .gitignore | 1 + advanced/learning_bash_scripting.md | 240 ++++++++++++++++++++++++++-- assets/simple_sort_01.tar.gz | Bin 0 -> 51773 bytes 3 files changed, 226 insertions(+), 15 deletions(-) create mode 100644 assets/simple_sort_01.tar.gz diff --git a/.gitignore b/.gitignore index 1377554..23c0921 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.swp +tmp.* diff --git a/advanced/learning_bash_scripting.md b/advanced/learning_bash_scripting.md index b91b64c..822454d 100644 --- a/advanced/learning_bash_scripting.md +++ b/advanced/learning_bash_scripting.md @@ -351,7 +351,6 @@ waldek@metal:~$ # Coding challenge - Output system stats - Write a program that prints information about your computer such as: * the hostname @@ -410,6 +409,9 @@ hmmm, I don't know how to compare helloworld to supersecret waldek@metal:~$ ``` +We haven't learned how to *evaluate* values but if you're eager and quick you can try to figure it out yourself. +If not, no worries, we'll get to *conditional logic* soon enough. +
Spoiler warning! @@ -425,11 +427,32 @@ echo "hmmm, I don't know how to compare $pass to $my_pass"
- - ### `read` multiple variables -TODO +`read` can be used to unpack multiple values right on the spot! +By *unpacking* I mean that each value is separated by **white space**. +A demonstration can be seen below, plus the actual code right after. + +``` +waldek@debian:~$ bash test.sh +first and last name please: wouter gordts +hello mr gordts... +or may I call you wouter? +waldek@debian:~$ +``` + +``` +#!/bin/bash + +read -p "first and last name please: " first last +echo "hello mr $last..." +echo "or may I call you $first?" +``` + +#### Exercise - unpack values + +It is worth discovering what happens when you supply too many or to little values. +Please try this out! ## With command line arguments @@ -457,14 +480,6 @@ This variable represents the *first* argument on the command line. Knowing this, what would `$4` mean? Indeed, the *fourth* argument... -## From a file - -TODO - -## From a pipe - -TODO - # Coding Challenge - output the exact output below ``` @@ -900,14 +915,208 @@ fi +# Coding challenge - pipe or argument? + +Can you code me a script that depending on how it is called, with argument or via pipe, prints a different message? +Along these lines... + +``` +waldek@debian:~$ bash test.sh +No input was found on stdin, skipping! +No input given! +waldek@debian:~$ bash test.sh shopping.list +No input was found on stdin, skipping! +Filename specified: shopping.list +Doing things now.. +waldek@debian:~$ cat shopping.list | bash test.sh +Data was piped to this script! +waldek@debian:~$ +``` + +
+Spoiler warning! + +**It might take you some time but we've seen all the necessary building blocks!** + +
+Spoiler warning! + +```bash +#!/bin/bash + +if [ -p /dev/stdin ]; then + echo "Data was piped to this script!" +else + echo "No input was found on stdin, skipping!" + if [ -f "$1" ]; then + echo "Filename specified: ${1}" + echo "Doing things now.." + else + echo "No input given!" + fi +fi +``` + +
+ +
# Loops - A variety of ways to perform repetitive tasks. -[Ryan's tutorials](https://ryanstutorials.net/bash-scripting-tutorial/bash-loops.php) +Up until now all our scripts run from top to bottom, executing each line as they are read. +Most, if not all, programming languages offer some form of looping to **repeat** lines of code either based on a **condition** or for a predefined number of *items*. -Write a script that sets all you cpu's to a desired governor. +## `while` loop -Rename all files in a folder with an prefix or postfix. +```bash +#!/bin/bash + +counter=0 + +while [[ counter -lt 10 ]]; do + echo $counter + (( counter++ )) +done +``` + +### Read from a file with a `while` loop + +Below you can see I have two files, one is my *shopping list*, the other my script. +The script loops over each item I have to buy and prints me a verbose message. + +``` +waldek@debian:~$ cat shopping.list +6 eggs +1 bread +2 milk +4 pasta +waldek@debian:~$ bash test.sh shopping.list +you need to buy: 6 eggs +you need to buy: 1 bread +you need to buy: 2 milk +you need to buy: 4 pasta +waldek@debian:~$ +``` + +One way to do this is with a `while` loop. +The syntax is a follows. + +```bash +#!/bin/bash + +while read line; do + echo "you need to buy: $line" +done < $1 +``` + +The syntax is not what I would call *pretty* but it is quite effective. +The **file** `$1` is redirected **into** the `while` loop which performs a `read`. +**When** there are no more lines in the file, the condition **fails** and the loop exits. + +### Read from a pipe with a `while` loop + +We can use a *very* similar construct to read data from a pipe. +The utilisation is as follows. + +``` +waldek@debian:~$ cat shopping.list | ./test.sh +you need to buy: 6 eggs +you need to buy: 1 bread +you need to buy: 2 milk +you need to buy: 4 pasta +waldek@debian:~$ +``` + +And the code that does this as such. + +```bash +#!/bin/bash + +while IFS= read line; do + echo "you need to buy: $line" +done +``` + +What on earth is this `IFS=`? +I'm glad you [asked](https://unix.stackexchange.com/questions/184863/what-is-the-meaning-of-ifs-n-in-bash-scripting)! + +## `for` loop + +Ah, my favorite loop! +While the `while` loop runs as long as a condition is `true`, the `for` loop **iterates** over *items*. +The simplest way to visualize it would be as follows. +For each *friend* in my list of friends I'll say hello. + +``` +waldek@debian:~$ ./test.sh +these are my friends: adam camille alice bob steve +hello adam! +hello camille! +hello alice! +hello bob! +hello steve! +waldek@debian:~$ +``` + +The syntax to achieve this goes as follows. + +```bash +#!/bin/bash + +friends="adam camille alice bob steve" +echo "these are my friends: $friends" +for f in $friends; do + echo "hello $f!" +done +``` + +### Counter loops with `for` + +We can do a counter loop as well via a `for` loop. +An easy way to do this is by using the `seq` program. +Remember to read the `man seq` for more information. + +```bash +#!/bin/bash + +for number in $(seq 0 10); do + echo "number is $number" +done +``` + +### Finicky behaviour + +`bash` is not the prettiest language and the difference between single and double quotes can be a bit confusing. + +```bash +#!/bin/bash + +for animal in dog cat horse 'racing horse' whale; do + echo "$animal says: I'm an animal..." +done +``` + +Which gives the following output. + +``` +waldek@debian:~$ ./test.sh +dog says: I'm an animal... +cat says: I'm an animal... +horse says: I'm an animal... +racing horse says: I'm an animal... +whale says: I'm an animal... +waldek@debian:~$ +``` + +# Coding challenge - pipe or argument plus action! + +Can you expand the previous coding challenge, where you perform a conditional logic on the input of the script and actually *use* the incoming data? + +# Coding challenge - Rename files + +Rename all files from [this](../assets/simple_sort_01.tar.gz) file with an prefix or postfix. +Can you give the files that start with an **uppercase** letter a different pre or postfix? +Can you move the files with lowercase into a different folder? # Functions - Reuse code to make life easier. @@ -923,6 +1132,7 @@ Rename all files in a folder with an prefix or postfix. # User Interface - Make your scripts user friendly. +* `case` for command line arguments * [dialog tutorial](https://www.linuxjournal.com/article/2807) * [better dialog tutorial](https://linuxcommand.org/lc3_adv_dialog.php) * [Ryan's tutorials](https://ryanstutorials.net/bash-scripting-tutorial/bash-user-interfaces.php) diff --git a/assets/simple_sort_01.tar.gz b/assets/simple_sort_01.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b40951ab78492e1cbee4b12b39b1e5649eb7bd4f GIT binary patch literal 51773 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 z zPu+^f4Qhv}jXETY=Tbb~PQDG!&DKEZnH;_2Mgwc@#qU7}4y(~jKNkR0oJDWdN|i|x z6wplQogx*G)Tv*bb&|2pm}=r#zj2%5r`OlV5G zCHJHhQM@Ipf0SqcJ#t0?q`h9GZ~$%)Nse)C5syWfe?6*&Tzzg7wSIs|Z4@XoZMo?* z3?d8~NBxlpkd8Z%us-H)y#TMnZE`_|Nn=r6M@ZnM3v?s-w#YsfaT%@$Q7CrM8Z;9i zSXMzHJ9GR;8d5|%@dq%yWmwKQplOvdH&QI<_Qg~)d@ebe3Ndq1+i<>|(72yIZBc^B zL14C1OpvRZT{j9T2G!KFkG|Mp0jwF=6FD#TFuj8Ow8YY5pUjs1xX)7!*6d*{K?yAw za$N){^OuIoj5^IfuRAx4-IK??G`%XuYB0)E$Yx#f3%}qr%p{MciMOg6$S~w8SM8ZygI?aLi)4 z2=pQv56~~_HiP-T8T*NePL0a-7*INg$vb=^uwqKgamhi5Js3!h9jW5=<`OiMxB%1#R4@ zy0d3N4sb!o-k#qG#w`x;mKMW@&)K@!t0_ejd~2{d)O=~x9EDONnx zqa=6JStPhSboq@|wP}{wcQ zIJPPEGOAbE2BzzF<}AY#@vQz{@bcU4C!62R=*0|`-=jYFQxM8(y6wP!4X@1;(lt@mYo1YoLy<8hMev=_sn{6V2VmL*Od-te&{?G-?<>m95Kg@##Ht70=YCEdupQ2n~;^Ck0_PV zI#Me>>9`?|MSNSaN+7EQ0O>36G+d)$U(ln(J$#zE<*rl=4Q02^N2!g9PyNeucqN9n zkVnR2Yv2ZP=;G-%=>qyX1HEW69UOR$*x)pg-@5vKtNm*&r7sJaE_0+xTMHC+=^K8C z)>@jSSv~Ng7-bdUg6dJFLRSyqkiKwEIMC0u8QQoJQt4IiXX!<~y$sx*--%}(R4@KY z>+$*^;MLs}%gmzo!gr#9n}CE67zL4x_d}2xF%}P*nRjmo=ot^lrNZkp0e#g`sw(Y6 zJ&T=8QwD(00s$8k-^BGPsBF7%0{k=#YX3VZ=iN#~eY%1?kVg@H1I_%K3eH5E^p^KI zA+KZUFF2!32c36Ib{o~?MW3c+gd&RMQMuXRa@19Q&rxD52jhqRT{=mBJRkPqEFUDs z77OP>j>72x^&fU1OI1+lffoAL4KoX+C~cPUQ#bVR(YRZ{1)rjnrpn4ecn369`{{Ki z!?aL#U6|2^>E7~)d1V#^f{1GWHC^8W$_4sKS)WT+*DjP#jFv}Ulc4HtP~iI^#%2g4 zm-9Q6s2!q%(I2>&meE4^fY|+z-OXathbmC4r`FIXATeT)U+n7$ zP97M9Qo9^EI|xb=fMQCQD3i^|TsteH!=hK2KgQI$s#b?RyJbG*W0O7H6Sng2Wz|V{ z9x^G4+AlZLkunag7bg?*zF}=NE8u|d2X}(sVe?T=hUpk<+7J#Gwglu8oPf0n|7)lS zkEDcNz{)=5B&{(j(e8aw9sdo*m_X9YN!v6LJPf1eN&DplOYlt9Vms76G5@@&!K>B7 zZR;y(aP74MG(r%|n*Ju)G=V43P3JfCq0FHbrY)4zX6)vrZmu2(#1rDsdU@4#hDC5c zew+l22szdi_pSg*)C^e(-<^oV3Ep`U_#mS)Y6s2efuHLPc($dfK^wmJ9jTVVnWg3H zYFr+D&E*8$zh?2#nrOTSs&ZI;L4x#Cm!|pz4##wg+10AFfhOzL(6U4LYoK=6NIvOv znI7mKi?C`aOVAfK8Cow>&}b+lsa>{E9(O+tlr$QKP4tX#wfK~X0;`(}2TQ15>KF#a zahSCpiDPKWGUi>NgF3EQE*!vQY3o&1;8$4&@I%=sSV)V~iMxb0qXv$n-E@4N4sS%a zE$H|uY5c@F+#;qGS>Uw?(7J*j23E4(2fBa2bg%+%_#Q)UM^s| zXLJdS5w{m^rL;OEhk62|EmTi3vme3nePZNyf>kw;{IGxAv`m^2+H@Ux&y9M8UPgP5 zT?Q`1u-hlb@1evzSeUv68{Y1@D4s&`3%fIq$$}@?g*Tn-`ldR1t3glO+aQpMDhD5#CFz&aza}~0a1pufCk_N zQ(JvW>}5|(sb?7a63NM2{{lEeZcS)M4S{*?`U2AoRm#bT@ z5?a3s**MbN2S^m6m!bH!sYtbrfp@1s4Rv=hEL*gCn_8Kw)`?mh zo6lwJA>bE?XojvDQk9{?OO*qP>Z~OkY8|;7$p*jz-`X@I2R;HuGqd0+qD~P4tcUM8 z#;52sb#NH2F{Kr29&y|C`>xa17E`9;3XC3LnBQ~MG@$lWj4BCrsmLqXipCgYo&co zwJo!K@$u&^r0 zGRIuEze?2!lqPEc|BuEsfLmDdd^3SIs6`PW#QaUXP!MecQ#+tiZqf6Ww_wq1m}xAz zBro+Odg?{^E%+QlAJ9&j4a5%jEW5ao+0W5P_V0Dz419_5<$6LwW1mdJf)L<9_0lc_ z2NTq&(vb$Pp+{v3-%#PxMz#a40*=DZ0k!%ZbcApXD_8(+7K(%f7028S@)I-_tN@$}h{#R7YBTf>zY64X1x*iv4<;6u z)t!#zOc{fe`AS+nI$T8ApHWs2$#{uTXK0&+x8HEE1aBa-gOQQ0!JiP)E z{IE6z%%2I58Vr$hY9lTa9)D^F*JU#ad2Klz=k(g6Ot2bCv>iBIcxKTy2R6Zb1T4TSc-lRn+$gu=b-4An_4V&Yf`2)SqURu-&q*1Inm}8p0A1e&SiQ>=D2NoPH ze8$^H=`;zLsiXz|kc04wErJpQ53#O}I!eIf1M;vJ-HPNIoEJTrAaXs_OQo<&wP}CD zi=kHU?gfj(t=zuK)Nal*9k3Bg9^-&p8;J<41fP~_+5ms6DRJBA480a;)t?wrTX+br>c#8mtdKO!a_8G=lQ)87*m*{n_qLwZuEwx=e0+o}uM{8SF z7jfxKIn8LIub!k=ARUh+0jK3enbsrzTV8>=p?cI==n5DjfM8KeN zL}9P`IlL5?#Fj_Mo7Ycg?seq1s=w!R;@jOppzguRp@lE-BdOEp+7Jwuc#*f*dkAW& zhECyVE!9@B$+Ik?Y}y(+6FPQ3emHzJWOoP#JYdPAKeY;Azh8Y0MA*GX+9Gd z5C{tp>(l0t7LnXX>P7}! zSwYG|67BaZZvz#M&kBl}P1M8;lNuMM@u1s6pbwOd785_F%>a*rO|5159X=gu&rUbM z6QFYA={V(EQwiI{oT$~-fGAU=0X>^Qs}^8!zN-coc@skbUh(B>X}eA@y<-BcE4uRW zVhL-%T|!-aix~6NFwE&;FKn{ z_{-{5h_;5nOFHWfZh$6|_J*!B)moxy=8#$?%+}apb4g2JV>}@DNq}G2@~~E;_Y+zW zHt}6vWhmG??8%UelxjVF_?cS)Fx4P_#RV^DF$m`9#DP_NfY3YV7;z6Rw~v$JyZVg^{k_@2l=} zp^hO@0qk4qfgNC4<+#UKDC1IYXf-=w$zZKQ*G(J6Q7c`w;)X zTrMrw&2$LAI%9-0A4_53Xx}bf+_n7S@3RDR5WBn;P-Yt)0{60Mx8fJ0kZN?aZi{f- zYsG@tJ85j(J$G=9g8hzpz8ytz&gkzfM7P} zwyJljXM8EG4%z(d$n!)VnAkrE&`UT>UC5~Eq#Hsl2nUL# zHR5M`KCIrPA8{C_o+4M6QPBF-pab}}O?oQOlz|Aa&q3ZLq#ybQfDA^BT|t@(ADQ&5 z>xCKJ5Vkv_SAFxL9+egJZaM*&UoXnsP2EFc)NO!(EPvf!Frks%F$joj~S zYoYP*&X)PXa(OU1bBM<7gHO)^v>AJmzJy^{8jkYgVoR=v2#K%t)rYisPh93ATW763q~w=aLaPC)I6oV>K+s6ZV-&} z2gsfrRxsQ)o!kdo32HwQ2HfM0ZVO>vZG7B>%mjoGDyk!KR^S7G(58-%Fp9nME}=Xk z-C*9uz1;ADq_-?z&gX9dd|=K(NtFa)8v6z6L;7}8G4uwQON$7`5-aJ&vEx7-sKgk? zpniv^R>)6*J=WHqM#A?dgF-g72AVn8bVU1+(K65Db0f+R=)G<$X$T!T4CG>3M$iGq z{T&mptrVaL@K2EAs+r-^5Xogwqs0}n5Z=@Q)S@+STh2-fr znMVz}S)=ZO+ngCvSKiN8P$j~4g{(~K7FVo>#nT(N7oTKD7&?v)xJXt`Tj*E?&i#1) zb(-_O1P2V(tlfle1(xA9SXximQ32gvx<*r!mGP8ay(nZ}Py#bxjyHv6dAWrnXM+yK zqh5nbXz3KdqT_}Wxfm=wtovd0lRlh1gU}^kf%gH9g_$Sm(Vz`@4vJh)zYi8Isvjb= zWJ0bgzD>N1Cq#MqTM;SX3f~D4p2sc=e4K$VR(o6M2l^{q#_?hL9d#j1m!_k^y#{>o zf*ZJ~Kw1%E*YRmzb4dHZ(4&>O0$JetkXrOL(BIKzmq}#P*baIt?FU+ZR{V}$S$J36 z$KFGZCLc!FoYoI&lWs&<6vvZjgBnp57_Ka%4}F zzLT^|U9*$6hqQi5tvJK9jrH4ba#CInD;8Xx_jv#S4mn~Bo7PxNcY{UE-A$P7f=3@? z1-6*ObYn{yK<#n(<-egJ9ZCVkT60E^2IO9WdKD17k;qH3KaK{>;(+&*w3lRAjgJA!!JAmRo z2+jLpid#Yt_j6yjTF5eQ+cxRqveod#Wm7Cp#yR>hV5pVWn3*Yd1z7NLRXMZl~G{Znior|G=)XDH^NnD>Rh(hyZvQ(DxrnL$bK6nv&bP}CMzf%Ecnh|9= zzZapH)X+r?YQoC!64a^&7H-$T(-aiP(NjGX(FM5X!9f*k^_U480;hhS42ETv(6Y4AlYqGA zs}KxGV5s;o*FEYdq|rTeB*U-8!rpS2Zo|Be0YWD9+<{4$M7AF6D|@ov#`ad-gElP- ziVhapP`ind^rM@>F8GqcjkfZ#gCqnxwc0TH?P;olQi9j6w+0UK$#Kl2jijAK5QW%` z-3;xynaXhI0kGGHG$tAC9h?aW#)~|4067B4Yc_e_gYeWvE~xrUAvb11RtqPLeOAV| znV_zi^T)n@iw}coszZhFh`+%Yi0Qy|x#i)@FUKgJ8-UdVCJC>C@&ui2N{51~43o$U z?JoKV`}wCgdQ{6cVoT|QGPfR%v?(vrW~>c#Em%-^z=?}}YEZD(F#aM{pjL%_<%VyX zMcutrL_T(w+!1Sgs0`fBCDu=TAF+KJ8pUjgPV9`*QYD}$I%&rp$P-9&`71$;LmFZB z#NMYoV>#?qEfd%l-7`GrI$43RmDBtgSTPQjN>9IE(pwQ0kQU%V3&`Vi84XXKIw~NZ zZV>ZepgSa$sG}&Ykj))iO8Zu+(wrym0(`(WltVsTBm5#1k+r z9wKqCE+-HZszm`XtBh3=KKdyU_JW+)th3Qrxe*b4a5G@8OuY;d5i&N$7~#G!9Pft| zlmy82u{>UoIR@-2E}dYS>RFRk;4+Hcbk^Xj9{eN00YHU>c?t;+>;ez$3kw?@e-QAdi=qK zvY!L}Vk>c2h27A$qpZPmo4KWqt*+_3oOA*7Pyc{M&P=#@j1=Mz1&sQP&ac*$kwN+s zrxdBhp+taC4g&4mRNzYsnCifbG|URGr{Y`iJ@BKcbB-B6W|-GQt5nPFk_(%>43#O% z>fI{yu&PVpm_Z7LR#;9mZLY*)j|J2JtgH*N|;Lx-JGZ@T_>{#HPN=VMkO6D_*d z17qA2*g_E>KQyieJs1W2H!lPCF1S%t>^hsc!|u(N+c+*LUXwV|Ip__2jN?4aPl7UB zYygrS<`yghG8r)L1|B8fpd3i*gZ(!2bqjn7q5`zm`xr)|QHKbVjJZ!xHbCu0zU#$0 zDNB`oMy_TgSpVl$z6T}-a7YC}5V+L?*K~MZ3ZS+dg5@hS0em3OV#0CP3iJJ2P<}x@ z+lcKE59dW6rg-Zc1&B1uH6N4Vr?FTV9;7q(W}xwt39uI%pl^+Nv&nm+KVh$fdk@{A zuUvZiyH0NeGC@wKz_b{i_R%8BviPK2P$d>sHL?rk3W~Ox>bK$GJ`{*qLER>TH6eSJ zbk@){55A8H|;u(CR*48z$Eo6#j0%R5#IQSdZ$Vq` zfB^;;d#DgNcplU{HjR^`E)qlYAPaLhF%-*zk%-wQLB7Op6&A5F4os1>m)LQF`#myz z?EVDigsT8kqip@~+n{2$S@$MD8sZ5^%;YuEF^qXM(dHHctB~JHpTO`EWoGFD@#uRl z{F5BNy$~(gmDRQ4&tP>6*vyFvWd}iJ&4al{LZcB#54faYl}s^M0x=yhZxx{D$)}or zm(VU^JJsG&NaE}*kXeKFV?r`m7EyQK6o`MIJjQmdDla>@?pDR(484GxU-JC!LKz>A zn7Xq1d%|hd3~)Tbc64s_%2^;QLkdm;l7`Q<6u}6E zR);l29C8?6Yyx(GDPmVeSlb|-fSubW(vzsJb$!nJCUftE>^(L^dd`Ym>-4Zi+bdej zU@38e$cAZPJwRAJ)l^thqLV4Mh0>@Pgu}UK;BTqsPRFqV?#;`VFzK9Y6fm2xZ2D;e zzXJ+v5Sj@H?0b@+1Wn!!e`H&`RznTbNTE4<< z3thNn1q&aO5fL(?>{kDMDsd6`rvwYqhS9+`E5o#6wn6a4F9lSW30 zk3g1TnrvD0I+|zo=v6wbWv3B2A@%R6(gDt6IeFm#6K(W8oyzaU^Ro9HYm;M^yoL+A zm{nbD6tj`)6p{nZ?OBvIzHb4Z`1NMxOUo%Y?JH)V#^8=2o;sUfr#tG6VQ7${S;K8F z&i2FMY~#!Azu)4KXG?R22M7F)P-H3EjMsqis8N3fO3x<4WNSXPdOIcmCg`k6>?b#K<;D}#A+x5kxJb3ThvXMju%>q%) zc?UI7;Kl`n5K7MHKzdf!HVmQKK~uda2;O#U%zFc7pYrM1X(qDrE7l4BQ$znmvoY-=Yn-j(LuQt{;uRse<}5uuCijB;YQ-SN#-sE7giFcpD5c z1I{pTr+FuMveR_*uGV9ucVm_PwOj|te-Z=~-z%2yGNA9^2Jb}SQJR$x& z!dxv{Mi?wix+@;d?G{9La*#w3Fh;Smm%&;7D$5 zL#xLH0fQhetjQ+cZg$7*Bk?cBf)>f)W=^~kd(t!uG*B14f0|oJG)l|( z+@m`~W^zI`e-f8mAddjr0Z+6Ne0Dqqg9dOiLhMxpP@e$c2Ndg`P7oh9xTdgQG_UY3_>d)<8!=<@75SG?z?`O{59& zXX%lM14Cj+NbmJ9_`tivjNOQ`&d%GgVk!7OD!o9bFpNGN_o{(Ld~#>dT^`{s503fI zd!ZU2FM2?bbC+n?Va(+V$i#avak00_**nQ=Rykl;0F6Ee2{-6KQHr3VWdQ}iq0c7S zbZG0HG>G|4@B-k%?(+3Iq7Et8mG>*`FDjKO;KP5YRb6(S0%H3^28%uo>=_UNbW_WA zgX?3t--CNt@OLTP+ky$AUtXl6R{Jg*L#2JfvCrz9+Z$I$+_UYClif(nx zXsWWxCb5qm?4TvaAE*GY%m3~f^P*@~*`jf82^c)Szi$*@UDd;VKTJV9=9--sy#iLd zJAC-hQ6(pI0gxsz9WlO7L8sa&p4y4Kydq+_sRCILRLt|tD;Q##PFrzLSI`X~cH$f~ z6{an_PKNqz^NZ$!U`@dnq#YfQhXjTF@?f?(R0p<_EhaOPqyu*}EGHjaj=00AhH8K$ zzby5u2Q53f{Uu7U%*ICsw!>6e&;|HB5h|y-z7u02)9E z;l7Ul60sdr)PQr!J;D)hsW7-6RQ5txP~kf6;tMW>tyOs#0TVFdyTp;#_>FP^2vTA1h7^*stJ1aeexy@zlW&o9R zZHNJ0#sQ21rVuT#r3`8vxNx#h!NnUQnSH}E1_!l!Oe7o#A~Txsaiaoe@kDywasjTn z{zf%3Fl_2idzaej;4Yt9Zfe-~(bknZyD`DxRgnSnc<~}yE8y9exXOxYG8hy2u0z~n zRvK2#X(l%Wzkd}&H{60*ixCUdS<1w^=ODGeL2H+Tkn{yW`gC>^M;np2C zAG}fTyc$GJ#PJvR-@-*72ctl)Ci%6qVjH6TcKl}Y!I0#N%A=HU|L~`>u7`H8)6np2 znM+=SPs4k-od>rKtOWC~X0?J(3Syev0c{5+VrWZG@&&Ef$7I}0NLwL%wWp;se++`{ z;K1)N$;JD`6D;gg!u6G?>X>oU;!lZrxIz}LeoKdg&jT0Hnb-*-x5zf4T_{ z7l_2S2p5ll0;WOV{@!pGz&sBNo*T7r24<^3X1#-J9KsNMkT!w4kTTGv7WTp|f%e&K#1}L zhu;xvu{oJ@spbW^Z-QdM8@=fDpWG=ONT)2MusfnxJ#S4=Tq^Y`7Dh4P`?llHW9~g^A^{N-}KDdPw zfoWAkHtb`J4*lzzk(d}kEa>Wj*qe}P?AE;gpI7xD{X!BTl-CW`kmBDjnRdx(2z`L{ zg5q5`-O;T?SYjLsY8KZBW?%{i<>DfhjHjHl!pbKCTm;{f8q~G~B#VQ72j)a^+vExY z0RlsIvWXEh1A!KM+^|nWy_$z2U72_9X}TZvDy&&_70lcUG!R^1gTxEg9T%JC z4O&Naur4Zb=fs~l8NuH<+XNs%ii!&>zhmT#YmTL6sRuE;4aeUg`0aaT(o=3a*h|_Yl1$}*Rey!6i4H--xQJr2n_XGmVk6nFoY&w7-+TcE1Mo+~Ho;(4 zYnd!rKMlh2fhIFlj#*4E1RhK21xp#w+5ot_wGw7?0o58PxAr`nvoasTFf}8K{_Cc2 zvnsCAdTAo%Sd*JzRrtAJ+5xd*jbIe=deL+^mU0k?Q7`k5q?KO%Q0&jF)(K)lI}n%O z0W-7jU9yHqd>J~!VrHK)DM837^K|&O3c@k?42KD)y3_hwO)n|}ch9p62-8%@Zo&|}1j^i5B5~z_VI6Tn>f}3ycwA?^6 z{36Y?=;0Z&F*s3)_4DXx!E)aOF~hy(IKGq)w|DIYFxk6u=3VjD?}^7<4P1fJi2ewf zpf(y>iu%$as=Cz&ReZ@V_*_4dFh(HGhW!D#3?4j@)&pU(5JB#)hEsVQ(%z^20XJOXULMt+%sdyyvU$eAgOM(aQ_`M7 zzp`8|^T5X{Vw>nQvc5AA!&(Ly98mzv@Ll4Zw z0KV7ayA)iog_qq^!B^=ZYrAo046|+0ifUc4%EJmU|I6l?#nyCN?pz6P6Ml5o3KTW= zZl*E%V>}oVXlS6hZ=k{+f?Q}Zmd?E0 z4vY<3!(H!S+(Z+ili9~3&dM>qje=_eF$+L6k}K5r1aq!14e<=dj;$UraW8d z^1nc=9+JZXxZ%pQfu-OM7an|MmtBB!G$E)Ag3A^wy$!4PEls##QXPt>3OBbK_fgu7 z8u)uV=(AhjP#bPMV(G&y0E5%SCcc^le02%TJ!*UW7vkC;^f7R`X`qW?A4C*=P=qJR zk3N8VdWkOw2}Jm=lF#V!=}+m&(WDOHtGO!6Bb>5$A{ckia6$SbYT~5D;JuiuSs(ey zHhzmsAkRwpaYI7HCB@hd`V`7DnAcsfl}P6S9tOaL>mO2xZ=eLPf`e{&PFN{remXqH z?kHHKm?2$+dqD@}(Zg2699TKCf*#=-jQau570j_zz#ovaxojb3_c&rZ1SogEipFr* zT-Z*(MYbIIsvHD^ObJ1L^zlVoFfZ|8;d`b%6{ZJ9%R1l$%t|xEZnNKu{%!CJxV@dH zjQIj}=o|}S1Gq**ZqYew!tbfmlyBW#U%c|Z{j`+hC8X?wY*-nEaFH%xT^+R~Xw$in zXer-WWP(IeJ!%aG=C1^ZgG!M9Aqx6l@Qvtb%S`2jz!bzHMhlQ%*m#5|<~wV63}5{b z^mEYOM5m1^tPYbO@JQD6;WL-8HMoKX1PLT4Vpt80X#=&y?^pQ@VAF62d#8Z&?zeBV6c#5c|c-OH{E zSnu$`?QHM|f03-AUj)rmbbr|XIp;9YOSQm|g1pcg<_|s)jN;^B$ z5cs(48nqvaC&B3f@nNvEMe|_PfyIXHBD;$w(v?j;D$ed9_UUZ5Y-i3qFjfC0aI&_s zBfc2P{CSK#@FF^&w{G$TG?|CJ`jvGOzo<;c&A@skve)j9!!VZNZLRAqTX?1tzw_Kh zOJgiyK(yK_#YezHqDLHqTSHIdz&c?fJK0XoDd1pAFw3rk56`WOU=!D4-U;{Ra8_Ys z+T{44fH4j3WL*Ak@m`H4OA6A3;>TWB9$q^kCYTNs)vzM1%EA1o zZ{fq2P|Y!%tsqAAbKNo^5Cia+%rdGRRspcjB_B5Qosh=nNAR*S*k%RQ;se~tDQ%!t z#)27zS`e$N*bmDR8T#Bh|6pon=^JuEBl0Cp=myr~r7wzE6<`Xp(J$j}j~=DKx`Vch zlzpcElb>iSCAZlO^~1b0M?UC&zEY4q?H=3>-UT06n}7&NuOJG3_iK!^+fj&W@=kA~ z>+yiNraOKQ-8loJAy(?ciS#V|R2r(au&TAdG5yr~Pf&C{GoT%J-ZSr(ER_H^kB&BY zKKqnys9hLB23yV-1B2Y_6_~lT`YG#Nhp!J|Z#gb|c67mb?7_G%Uz7oMC0R@6c9C|Fh;@nenU_^3`Plxa&U!{iCP;Sps_@iu-S*Tp6~a(8~^(Hmsf#g@3r3dIo!{E-%p2jr_Lf}ZN;ch%SUTEyNdD5`?;aobbIPtzH4u)*P9=D@`|-Jy~k{Y}ZPL*IQdim1P-1RU;UJ z5lUx-Ia^hkv5+*E(;B*fp)AvGV!XMCX1R_{uky`58FCn4T; z+&k@GC;IU5LFgIKI{MRFaX9*1PARRpld>{vF1Ll+ElTe-+)ggGJad`a6YSo*Sjd1o}bkC*QB7dsDhMT^cQ> zmvumX2kc=b+{jS|pVd*P&xkFQpV*osaL@~*|J6Y&|1ZUg4n{nDH@?wK;=soEEms(Y z-CJ`+N3Nl}7HG(*^W(c}^2t*lf-2xELnVtl^5tt~Bv=QML?d3rPcu3v+)E^mF0AeELK6jfrg?2O@jt287W2JOR9yxPj zqx72@PJ>4c_7EHONqTUgbE$cweka+?^7sY;p`GqbCA4;b3neb))~=Lp zKVtDqxSyVon7`&A%F8GhYF5@JT0S*g%EuuMC|ebV-7-gEb(@;x@Xxl&BR2HOtg+(2 zSbZ+6zW~>f0;}eHVxkf#h$`Ex2Af)7ahLN~OX90v(jFjvThL{`8j{2mL;FpLr)WT6 zaI4?QY&CPFJ&C(ERK{z^*qu>@=Nwov0EShW`Tcv!$LHTOiKy-Uso~95ue8>gO#P!c zm0a5Hf^t4Dwo#Q+)TIZD&L7C~AiL2(Qz~pg)FpkMOPhv-dtM@(bP(`?T2eAwe@zeH z%3!+Iv%DZmoYf(fpnS;q>cAe^L+qf^Ukmdgn|ntljEzy317`!ZEFWenp&Sy80_8d5 zLTFd=lSYZa}?JEYm8IJj-v0i{8>4W9Jic0p%3gziYUec4RIYpmmrA<2QWm! z8#;_IfCE72>emv2r{3S-v;@{=eyCJmP%OC}hC!f{uN0jr9*gF;C$OweA}PtbJ>G>3@W!c9jvuWjteAFeW3~p17pb&+sm)bmfTXGM|^oHZIK+q)vtIOW&mn-&n3=8KeU z?#^$H#E$?h-p~pX4|h=wHLjSzyc_on^9ZN_W^Pm_Kr4Bq!<8^Dzo+g4K{gXa@xo0| zCN{|=`s0oe6K#h}&<`M>P5uPHrHqL~X{V7~bCzJk)i`0gV02MipFyn^lUZYkDC!;E+L2S&J%)e zN*FL(-=X-L3eNCX7jZ%?z^aO*^y=&o38w$aD?$T!IILdHl8P=5x(A2!QSYM7z$}QIJi1~Nx2c@tUIY%Ifo8M{R=7z_I^$lB;Ud70iyw`~)33^;zp!0d0G9pZ`XifTjET>I1 z(-hwK(jclBTI%&RX1}7!=hPYD*ZTNFoR14FYuy~6HvNITA|0>K<|YhY)$Z!>xQ7g) zg;iL_>MANF`ifj1Gn89DKdcIN>X??wz(40;e&Wo)^(snsE52-~=vkPotrWYwY*c}G zVuiO%7fVH@yLfJFAVgnyK!~n&bbI@RiE1@#bjlffP;tK}wyZ9BX4D%p?5GlcH2(Bv z{Dvb4Gp!@Gn@J0s-E@EmF11;H4V(aNG{yhNje9PE!)g6AHAbWN>7x+GVFiU!2BUq7 z;=_#qOUsErWhdkvxo8dC!ghLR9gcPNYfX9MsXIEoe(*zxS2!F3T%I$_8^Wq`U2@l_ zBlP+_Es?XvR;)#fm4cPs6OnNsge#~@#dp2I-QN8o3>Nz2T-jo!fRARy(XH5OuA(xG zGUZ@6%wjx{$MI}*8%Tv)k#$lu-(#eG&)A?O?XpSlrjJFn;Z*gJ#c6{L9WQ;wMuMJu zAp-b!88EfvHG6~lhS5s7hZ66UnmAY$A$0%``!8DTri-{tx12Hx{{S#Osq=)@)cIlk z`_@e=+JzqwEO}(Qy|WI3hegd_o_ARIj5T~tXPbs;4hCZ z);X*-7`)pGi#!F!`{QgBC)Pxc$SwAlMEDz_i-w1|@NygS@~tJcvOhnoyyl>xaKA{Z zF!8Y(zX`HbBO;YP5M+4S>Q52m=hLVeAcYc+t%)N`^+fW z0O!m`S!7H3<$a~d4h0KGX)~Zj%nkpLBd4X89i$y-DNjbJFM!E*Vp2p0PPGtOt;^l; z%y5Tok=ao@zRm3de_om>>|YW>_%Nh8rFt3SY$2p~-v0@tT31R$zf&W0#cIrJ!7vM( z!Kv{xrwHfVh3*a5{F|p5!csl&H=;(yo;Qb$3Jk_N(wzCn^?sn&iCD~Zz_CC_DOOtV zEyUWxdlJT^f-J|Uo|ZeG=Q`cHGpK4>k@aXVBQb>RlukbH*dRSujM?B0334ZtnX(l?( zdy-#|83l8ZA^JCAkpk%#P&rge{bKdRozielbqv=5{GfS>F+tG7(>16y&;iCu*{>{v zC>Rb1d8TxmcJU?x!dz|JxkO206`Gnm%IsvP-9#FwL0ynsUkM&c-lRJ zoNfLNqvDlp25^OZye%-PALK9eL|7bF5jp3C?Q6T3rN9H>b?jZi1{7No$X7V7r56Iy zX!m(Subb(yQPie@gNDL*HN{x1GNWp>a7CsRTaol@b)wVmaZFo2q8`6ztW;E{ku7o? z{@&+P^R&Fr@TPNEOB(Vw72j|BX?)~a+|d|Lf~(#dHVvr=>(Xx4FgU!Se4@i*b3+Ts z!IB4WCUacL;t$kjYjt@Con$9|Q!H&@=ZFTn=b3p=;;&i&_H(OA${QaRx^`)l?5oOZ zNADl8`2W+3Wwy#PFv#f$k9Ki&G5Au$rhC_VsVwR(>8yi-)m{D2*P-a<-NfKJLjwfKLCz_yms@ISx(pY@7txpLRiQ^ z_4eH=g?K!EA&5qJUHg}obAD6~fswP1Zv?-T?2J;0F1@VF3?y7K316*#MNi>zFdi$w z2nW7>F#8#h zu)6*_xi8|#H3jUQs=+MJ(c4KgVB6==C$GF_!|tCR*9}**hI^8q5G~^g*X41?y7=G4 z^;Fl5kSEA+p3~DY=pV%Q?EY=?pXx7|a5IaC?rux~NYgCi)1@K5-I>QY3}Qu6Zab-q z5s9t`u`6=}_}#J}eTAr_feztj&kqlS;xf`XEB7#2FK=0Er|NLkRcdPNAk*}(Xi*ZeUKvV5kn@mk*qxDf zfL3&^9ex4Yy8|mUd(gNR(wiKR^^8uhRnjmqVJhR12yH-hMd!)ot%Wf1L&=Bg5%ghLPaHT2g#=({*=j^Yd9=Ykf zLGj*-@^ec4h1GNvAQGo33ay0G9k3$l1Hk{?mSih$x$p>00W}w?WveCEf2LL1P&6HM zlj*pwqzODb@{V;P^ZiC1en2-rI95?8`{LY>l%nQtUQ!`M7)0-$t}kOfxFAwEKJ7s=R51!@i(>W4!HB3F5Ar5}OVbN>bn~W;Zip%m&|PWXRr3D2 z%7mv@pTk5&@IRpy(P)ow{svp{Rdozw&y98spgBG))T-iDQvbM8IBMBSB-rq$T$l*Hpo0sRDeC2yMsnQ`mdM2lIpUfvQZl{vPozeRR0-rAvA!`GwP}=8=FmTvrgwuDNF^}F%oa`x7 z;%NCf;Jx+m>L4hny`WP*u(Q+0p=Mk3`gk!I!*>{y#N{Bz>x@B$W3JKFjPH>=XXc&p z)z=JqO-KD7&-fOyQmF~e5?|$tjZy(ImN?q`n5U*0aA1Pm%wxT6yBPqlww(ejP2Kqb zk6`cGv?^itNo0dOOQqf@*MmdE!T6jLS)K0nbWy5%@4ik(hDuTT!vyh1+T1;}k-aPi z_)6v8{~R1+r(C;-GlkDZo5AAg0VKjImbE;}Eq?*s->niIn|7#6`H@4KI)urp<5TlKD_2s4L#*PaW>g0qUPNuS0!y{1a1dW;6UyW%0M*Py|~; zn@cp5eFc%3x}x-AB@Z_0;B%WFJ0G^ZYX`|z769PoM8*4w_LNS}X3-UsBc&1zjhg(!3yaC;B37eOs4=9_jnUFL2&fAH>hwG~wwGRwhq^pU+fEz@n8elxs4Dw=)r z)cAzd+GsOWGlF`3;NpR$+dy3Q_$dkhhQ9ot^%Qt7z01-s24N_8ld+was?uVpy-+EG z(7GK!=kbvW)km%RFd$NEAGl%zuH3m0VTN3|-4yV?E=}fqD!N@L$Z%L9Aec-CYx}G; z>?&@QW^9#<&t!7vmRo>(5%eRN9;I+lE+xU>)FA7&#u;5377+8P%-6C*%f!pkEOnXt zXz>td{qWSy;BE3>)|(?$N!nH7T>;ClT8ZS|uZMK9E>_nFz-Wv)~A`0@ULGB~P6T0X091`WHcOVJS-(sbpu_++T)4Ds`()4jq`Kzv+k0-5SGAp&RQJQO`9^dA zDG>TJa4~;v;{}@uZypbO*i2{#Y(d#1H_Z%dlxu=t>hLtf;a&uiuvBLzk>4}dZ%8xM z;OSSbPWxXAx)alKoW2T_8SP}T0Ak1sDRXPbh4ccN=;bCo!=wXQ*4ofCq| zRN{)-SDN^_G_XWXfSwtl^G;ZoQnA{YMxeMVKH{(Qak6&EjxVX&ZU6kYSUus`b8$mI zM#(DT+HhU)rX`90tTUV@Ylr~fXj&x!Jf2?=<@0o^dZ{$eE(QMvLN?sb zi1ltq0?(xq7V9no`VSq(6?I|h0z!`I&wrFBbD4KO7mp%^(WM%4flB(PG01BTqa1)8 zlB27Jl*_!a9-0@1x>tSgEjTCI+-u=^#SxN``eH6uXHI1-7AphbHCwRf9!uL1gzhGz z(7+!fYnRcLb1`O`iEqc_M|Q5b<`|}mZ>|h? zKS2USW~QEX16GB(Q^rWaG)m8-X7bnoIuWBU^eu24wMP7wjjy_6qmY%Is%1RJ_dnzJ z>|jrbipA6m(nedaVd)BuzznBa#-$9%GKsGV@0`d&G|^EW^fvYLxKC|B!==5X5L=Lu z5?|Bh+-1FU)Ij@D*ey@W5%u-p+qJulN?q2u(K0{7sUrt$yjHH{CtXR)ZVhCW1y$KJ}WegnQL*A)lYFuT7k9QIeD?($FoN79ju62pH9 z=kcJa?gP1@pKkbAhq;?>d-=_{q*JE+OocSKKW-42*eHfe^NqAJ&xLSZn2Dk}Gv$&{ zvFP2paHxqMf|@D*tc8b0Dx2$MUbA2ncB}4cGhoB|Hqnmdvlhy|3qQ2mPRcUC&au*h zgHfGYoqUKC<+0Cllc#&7ZJRx4Ka3O*!%KOT4%PeK&q6(8cP;o89UunQw*qX5~T;eGEd zPYQXHf~|?mopu>I#VeBqAlWyzM(Cac^_m}4f$Td%es$+D)`+yY)^Tm+VepBibmM;a zqt45E^XOL}Q3XOS&u&dEwLu@vBSFDX`Bd9JWi7xu)3i40Vs&w0DU{&UnL*Ma)Niq? zNlQ_h(n`=JLC&yM%igsKU3t*~mG(2ytQEunUW)krtP2-!NNdWW9Ml`uvLf!+0t8^= zMi!%Do1@lLTSl^@cCV~C3be&^4(ZaBOtnB?PMR6Ylt_EM)!dv*Qy53Bhpohmr&Rg+ znKkEqz@l>aA0o z4`4ht>71GceGVT7eB4)Kvnr?xrR1Q2vd)}fSOx1pJkHbmxGyr5SrSS|8ARb@q!7w1 z_q3W#0sC5l%WU=-P5oM)rk5{+%BPXxn<_G{H6Evahvqv=0g+q7T;$hw^gkH^B^P)* z*8NGb_E#RF5mk02JZfqF=%kW2?_?$Q0ZLC**7LBl!Sg)pqaMlU8EMM!ra<=yq7+4? zNwN^6R+7QcU&%r^L9j#i5Lk5>zL#6I`8~u%+VC`0V)w@Ls_*xXSl_pKugJFA@p_F7 zn|=y=i*i>s6y*ItFM4$YMAgFVq1duL4`2|r!^g6u_uHhW7JV=}pv+P%tUhRcUpmsb zr+VRR*nm2`uXQJcHOG~K$nRcf*SK*B)u?Raf@Cfj+A=T)2AGrsF+@+?6$aC5(vdgd zZ=E<_9$7h-ySmFXaPL@XLk|XpZB7XCtQ1(EN?`u0$1T;0@MMruf%p7jMj#^T<8tDFl|7)tA`HF z(Qgmxcb&c%y(732N2muP$Uyi1%-t2nevA8&Re+w09SR2bprcRLtJ3l-#O<8w_iAnZ z#j)`7lNRUlbTEHK2G{rY>;CC4)X4%;BzaL$lXE(WI3$0*J@C3#q;nCpF-ku2mAO%- z4-fpmW`)^X(m0=U*Y4PrZhB^wuKAQl^N}9v|Mz%f`pPq2x0Uin_oRdDhZi+a<}FS` zT(PzWENZ@Q`DOYi;7VDjh*aMMjt`1@8*#I==Q*b|{Zo z{w}s#8Xk_bCQaFSG!G#j(<56bxFggjF3yR#R5v$lD>=wscghMS3g%XZYRH2KZI~*j6AYEmFHsftpm%LR`r*8@sybY2ydtKQF;crr(D-q^#v@3fP<(g z{Wog^pu77k1xTLJ0^_5*&H-fokj}MRpk@JNS`ypKnv4NjO~r~ZJMG`qs>{-p zNOH+!Dcz(ox>8bfU%3Ph_VNNu>VnY(mMYy4>B2YVFxzhR{b#UgYodhZ_toBAwWjzhVCSyd6Mx){o{Vgq#I&9ST<51fTEz+AiLpOhI7|ZOvYY20a zX7r`02rg^~^`phtoE1w%DFun_V6Au%wFUzmRL*D(DB>gzKTr^M+`$MMW{%Vz)!me1f@*d8^`)A@aGlC$ zxU}(J{CqPSA`yH5ds}pnjt|89azVnI&8Gs=2V7*|3^vOZNc zhAwgYMT6*N5uAVete8FE6qpP%v>y(sDvmpkAwH%n))AGg*VB=!L8 zmd+bh$y8*|i+fp@V9+d)HGlVz)O}@N#dW`;Z{W987jKc~V=*KWjDOWs~=@ZiRwsxnqo9ZgB zI#D%5EmAQPQ+8peQBgj&{(BUm&<$L6g?OVp#)Jp~-zIsC6K&P(EUSQ#@9-t(6=VK^ zkPdU>eexNDnYX0!oN7@{%CLUHY#+5I0~%T9GkRDPj)FydRF(pfBzwnR1mV!SMX7JUZ)x>=a%v}oGquTp7Ui}tKONRd6P&t-fs`5es|)eDSWoyqD(eQa zJw*zLFpNZh&O%j-A+75D!#YCjXAwo~-j_A1y{fmhU}64T=v!3B^_awsFv>0t9KzJ+ z_Axc`IaP>6Y5HLdj={nZ$dGQF?Oo^#H))X{M8&cE>>JfVu-4Sfku_#;7Tw?TYMQT}?uP)mU?ka(N2;b=E0%O!E}2+;lf= z>fv}JbDODyMJDDwmk@C)xDT{+_kfaf=nfPOt_hT^jOpV#)kwzvvh&{t|RQ`=mjY7{2uWB_gT8{Q+h2nHj@~MD+y} zsA7dR%o_}j3=gnY^sM<`(UsuysGMR>_Pa*2r80cRMR~Xxau<%akxoq{Ipb7ZK$4zB zz_*Jb{Np^BdaIkBo_cG5?0iB`yZ`oeQb?uLDDh>p!^{MegaJPT zcgNu@JDpsdt8KC>q-(z#mI1`Ewe?cmZpf4f4|~FE(4jaqk+Gq{5v-K3 zvestB$&KN{jDys~DAGPXQh^7T3r_gzgkPS>J?r(EBSkoQK5JJk1(oUSGs@FCP?^Yu zxiuqgm~sqFd&&$1yvL@%Ti(!a$luuJ_QNw?i>b%Lt7($8j@T?P&?sisLNs=N0Y+H@ zETq`p{S$O>#@lIGuXganmimq%Intz&FNt?~;9T9Vt#}1Fl^8g`%k+jA%K-^|rp^9W zau1yGMf>Dqhy=X&a zz$u>uayqo~bIitr$j4&S<4N-{9MIM@Ot3gU#dE^xS$1y8S-<&R!Ltd_+kIQtl(P6c z2)Qoi>8Y8SVI-m3{yb6?URCN5xI5`)4LzmnG+#zO(0PIlcCztF-;-dFqI6g_H~+P{`Ins=HxF zK9#S`vW7%GVgbh*FG60DSs!a4&FP1J)TQYD>0#9f6MEjR&*Q{uk>YgWfXJY4;v818 zY5hyd$v61@uM|tBBr9$V3#oYl3_Ab^qSW0yqLYwCb(;^=P%h9^iz;B(T*^5cs3h8_ zfHarMWy|E@n*l&qg;!o~H%B(8MTq+XqowU?=W)FZdN%#=%?UB};CSrR z0;wL=#ure-yQXsHM^RqOQlc{(ofJ~o41~21{gk%h>uQfGhk=(>6s7xA!`2Y;eYl2G zgjS(F@U@an20({jldzarKwl$qFsf3tF&kb)&Drx~Z1dY$nPG)@-|RNIjA4@XJ#Z#j zgEV$|9`UidvIN%@4`P7j@We=QDSvdOs9X4Y*^lo3O1R3FGu4uOtAnqo>67*2%K9d= zaZGU0R)YR5Evk@z5H3XTe&X@Q?`b$k2cST5i>6Ldy{=Lc9E5(Hi}*15Cx#WBy3x@| zIuz7#1;#ha)q$&O{ax+y>)=YOH^c#TJ7`I>{`)Skfifa4eROFlV>^{!e+ZJTvh(<} zR-8jc>){H-%cA?MgEhLtti(^Cp55?OwBGi}c~nNDNI*>Or-uCxf%h#WE5B6ROYbGg zF9nCtOSL(mqLpEOdlZ8QBHin(m9fqjzk5$!;y}WQ*Lmi9V{%=A#Buwsy_Rfj|0>rc`MX?LRWo!f#g@$h-Gsa%pCEeXk3^ z{Vd}z2DGfS22aLU_OSeq<)_VBEQ7-;PE$OoV7uU1z*oNaahPDt2!BSgo z&_?gOac@965%1g+<>%_(2`3@`Xt$7AR8OEi&sTQwn2U3)uJ=gBOBIb9( z^#GUw>_G8Ajsmem`ok;bnXf0)%=VQ(&kx%YEGv_5cJc~L4h0UEN?Q1is^X`H4l?uY zy-fG?%mg-qsozr#XNhKOwBCAHC-N8DdDj$YEt3@} zvu5B15Gu~IfjXegTn*UVK?lq0u%pdc-bEIe;|0#Pv|>p7=#LjDKt55E*&qmZ41(B3 zVcw)zPN>=44u#ft*Iu;JZpcL~nRF;^_kz@F**LdBsW_#J!d$N7urFk4CO^TeUP^@c z+(0}k4Rh%q4Qped!Sr^`*wx?-@tuV%3azCD{wId>n6aqF6fPn+De0L zK3Q~io1>3Ahz`N=7|RFU23Vu(iq3hxw;R4j-#}VNy%KUkn8@TMn8KA(xvZgRvfe&s zT*}ktE7awH@a8EdEE>a-hA)`5yIBY1wGF6WNuKOI^$kQze%TKTw*Atx2H7BmmUp0K zMVMPF3}PHq)`}A(T!uz=uI)asS!{M5(}4w#hLCOG-u3)Xu1_z*O#tXM7x)R8B1s269BkYyMToX zlMdN%3v|>Mq~x`!!WuW%3KxzSUz`kS1$Z`*5eZY!VfZh+3D&lka){wx(yMFG{Y|%H z-dVnQ%3Yi`Z_pH3Q08t6#VgGgqe-1sy4u-dWCWeN-9hqPhxy@NV@G|8(N85$oTi=% zslQd`NF?3ZZI2zy4VB0r>N`<9O(x?Llgb3ks+WEgOhvw{BM6@vh*Win$a2Bk{Ez*8jY^ns8tLHeyiM_6_R zc0*_~ni!~;sh1|TTkdT~fC-e!*s4;w%yzW^UP4MT+<+F*g1X@sAy7(zK@YE|33 z!4&~DxvI@!=z0gV1~9j<>Pmhci0gdJDyEFXdnfR4g#zY!{)gezri(hk2UVQNPw>~WnC$g%dk4JGY))`_Q92ar#PyCqtt(syx;p6ae;q#a7shqp^Wbvc+a2Z z!s`6v5x-;y8JE!2UW|-rCuk{;Rd)&(Q0G=c_*MlYM`T!ES>MdST$e4#uWj3w!hU*4 zm&XOZD(w=q-{knQkuY%d0aJ(#m2(cP6=_Aj+4P3pK(e<&n<<}GcK}t(cx#<@72Jt* z1rO%Vv*tDfY{6mx`C4|^@%Xq2L17<8K`C3Az;l}`jEp8Dv%l)7(<2@Eg)Rf6WGYDV zGe=l`SFE;IBPZp<@r;9z2}IRMFZ69M$idwQbPUdk82_wuwLP}=`DYwkz|{6p-<}&< zaR-&70QPD*&~lj+k_PCzsx-T7l8qOBX0(@Q_R4w+i|_DL-&%Z1`LEBV3wNZ8_FFA! zS)*P(-a~=90s1_#fvCYhGeG+@f-3N>Hp9uSV*bVkd!{Y?#EkxXe4|orh?jnr+CQcv z0GCzq-qXVpX2^3ebj~wf4o=sxCF-=sN1^PYSl4C7a!(K4YYx^z2HWHJvPoAs5D*YB1C%5AeVzxBFbBjwFcoA_(C@T|j{NHPw@(^Jcu zr9r_23?g>LU6KtRu4y5D@$ptFwQln=P0ZSd(4r{b`5&?*l27PAtg0nvil7cab@7zA0F*^ zEv!eIF8?Q)vz@xWuI?43_%cz!3?)BwRff%w-U6t6x}U#B9Bm>T^-4I_h|)#Pv5YG#CtQ@Vfet&ydwh<7Shu;5chgBbKW2{^N#H#BjH3`n`0;b@mi z`xBw!ek7)(b;!~Uy+)^9K2gHecIsSizM&9l4XcO1$|K^fl#ghQy56)%3* znI<)JVX(n{FFh*{GPLhBLxDM>fvUb$EH)dZ$~tkzg;lmpgX=Ycku zT?L^>Vv&3fQ63V`PV z)Hw!j&??A%io)_lijhuq`g&|$wTx-R@*;B-+;DM-L_|@$=+Xwbh^c>GGs

{X;nc1H*r1VdyYr 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 literal 0 HcmV?d00001