From 0600fb6877544ce4e50cf301daf9676ab0fbaf37 Mon Sep 17 00:00:00 2001 From: m4ushold Date: Sun, 15 Sep 2024 20:48:00 +0900 Subject: [PATCH] init: 2024-autumn-exercise --- .github/workflows/marp-to-pages.yml | 49 ++++++ img/2024-autumn-schedule.png | Bin 0 -> 62696 bytes slides/2024-autumn-exercise/ot.md | 36 +++++ slides/2024-autumn-exercise/recursion.md | 180 +++++++++++++++++++++++ 4 files changed, 265 insertions(+) create mode 100644 .github/workflows/marp-to-pages.yml create mode 100644 img/2024-autumn-schedule.png create mode 100644 slides/2024-autumn-exercise/ot.md create mode 100644 slides/2024-autumn-exercise/recursion.md diff --git a/.github/workflows/marp-to-pages.yml b/.github/workflows/marp-to-pages.yml new file mode 100644 index 0000000..b30b501 --- /dev/null +++ b/.github/workflows/marp-to-pages.yml @@ -0,0 +1,49 @@ +name: md-to-pages +concurrency: md-to-pages + +on: + push: + branches: [ main ] +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Ensure build dir exists + run: mkdir -p build + + - name: Copy images directory (if exists) + run: if [[ -d img ]]; then cp -R img build/img; fi + + - name: Marp Build (README) + uses: docker://marpteam/marp-cli:v3.0.2 + with: + args: README.md -o build/index.html + env: + MARP_USER: root:root + + - name: Check if slides folder exists + id: slides-folder-exists + run: bash -c "[[ -d slides ]] ; echo \"has_slides=\$?\" >> \"$GITHUB_OUTPUT\"" + + - name: Marp Build (slides folder, if exists) + if: steps.slides-folder-exists.outputs.has_slides == '0' + uses: docker://marpteam/marp-cli:v3.0.2 + with: + args: -I slides/ -o build/slides/ + env: + MARP_USER: root:root + + - name: Deploy production + if: ${{ github.event_name == 'push' }} + uses: JamesIves/github-pages-deploy-action@v4 + with: + branch: gh-pages + folder: ./build/ + clean-exclude: pr-preview/ \ No newline at end of file diff --git a/img/2024-autumn-schedule.png b/img/2024-autumn-schedule.png new file mode 100644 index 0000000000000000000000000000000000000000..01dcbca1ecc423e598e73a27452cc10372122183 GIT binary patch literal 62696 zcmce-1yCGOwD$=?6Lf;R2Lc3lm%#}Vf;)q2kijKLa2N>gL4q>`4-P?w;2H=r1b3Ig zS(3Nk`?lWhw_m-gt?jC*sp-Bweednlx6e7h|B2F2Q^0va{sIXJ2}em0_znr_+0N6) z9uxg(PwF3dz|$A9`#S|0BsD?{UF0! zN-dF)&I6Qy((k=Z_V4kGlC3%>E0a-E?m^fmQ*9ZabtlsN5ba;TuA_4wxXt9r9AMzsqZqHCd zJ?Njd0;C?=oWDC*y0{dX|L%Fgg*_SdugNf&q{tAj$YOgu|FXWXh=cL(;g(2Brz+UwasC}{#@d|f8v{}mSL*5$0QiyIzL}r(s6}C)&vWvNC%d=YvtkM2^V!=a? zLION`e&&SqOpp9@aMxU{f`fP{4g*2U%uh@}Acub_{_bB73fTVeE4r|ogsdBz+;)rV z@15c2HJgSV0RL_t{66SA%Ho5wLMZ2o>@1c2QCe?o?EpK&uPHf{6k??VZvG6-EibsP z0I(<*CW~sBcHPs%?h2t}4TP$pX9s@=7I}j*MtiTtFgO#TmmGDjls~>VeTPI9QbKl8#lJ)XNTeq4dKaW5+P{?8&klW;$MA0sxWRsF+mOQNaSGEBG7}5h zlrpk^`*xpclMv`7^r`}{Mi`?4m+!~s{$fYvmxe&B$y((ZH1t^PmfCI>Wv0Kg6FA7LI18g)`J~7X>dozQCFPf)a^`VF?PuQ1|0VpxYEW4E_Qn0ngZQV;+MD<5?=kHLagRV%E zsAJQ$t%NSsBqrAi0X|JFdhC#F9;}Q{GeYlckrI8ut}YFN`RCUeiVItq9XJq6&`Kye zs^oWarifE+K?B~fSFfmcT(g%y{hM=0=N|qvOtNiAfbU-6^{LL*7v=k4#vX=i7C$g~ z2!_xp?u*KcuPk%FBmL@TEesM`^uAFm9%QdD-RBUqfB(E9@V8q)UpRx%YMq1xVikLM(Q-A5^ z9U)y~r-Eb9m&||HY>~bj08O@Q>}tZvzF>eRPc7clhz4uf7zOoiPe*}DIrJC!#S35K zp<&$bc>Tv29Y(jb_XQ0OkweKImLr%j}yVwmaibznyxfyk>=llE#i%>Uxs5a;EyZ}FvR6dx^6hWyks0V%< zE5ofms{Oq!g2f*(Cy}XsB)xFG^5%~=HU6ltRq$joH_18K%;MzFUpr{(xnjeVh3@J9 zc5~@F^i=GhodG?*J}YAWw*p0Glm5FB0F4y=KaL@XON;z%uKCeC;ooHl&HjIHlK#(Z zuQsz>rWO8<6nGA5y}w*Ictl`My0q-P;#VLfeYkAutTB4m30wOZx!upa=WCNNy2A0V z^?z#!&8xKcKy#rVJtS-GoHJ;irYr4VEv_dKy@l}W-9HvJ?H?Q;Il;&i+EWO(9hR*H zSD6ul3ufbuN7Tlc8{xJDg=c^Xyo1b(BGC|6#Gl-4N*?PA|m9%Gx~2dol9!r`3}p zT~|G^z#G$b0^lq}wAisW4Wu9vtII5$Dp`N{&HDP4*qs*4t?Z0H=o`&*?@PS+3%!S^ zNNAh{+D`nJ{>1%mZ0a8skB3H^1}6k)+2vc@CIT$CT>GE4eccN_h~-xM5;M_X1wJ;P z?2|Fmx2PG_t#G8)9mNDKM{Kk)sGk>V`VCMBip7df%UzvP4)4keJ8mwLopiEdvB#qU zXY(HC55Ld*$fqJoxOYu+8xfy7FT-rV+z1yh3ZwSB_9aI~2CC|k7UgwugTJdBg*fqJ zz8v0~OHw}b8nam1{r z&vPSxY__Z2KSwA2GqT>EE3)2?&0azvbYmv3KPxz+=DN9dQ^}g~TMg1NgJkIgJh!9L zHq|$`r4rCL&0_^X=b@p!sAu8ikzRu5-`ww-74#*7y>jaWb%R4dm03?SoZo@5W7-k1 zJTzzow?!OPuhNk%euse1MJl_lTS|^Sc4NH3lMdc%w6{z>?8)4Y%-TT*WcR3Bp6f0 z>kqjnB9qguO=an~!ix98-O1lQCe7qiWJGb+-0{oPMc~F}p4NNA5qsIp7zGvG!eey`Ze$T` zgBzVf?oedEk|45A+`F;`6jLl>Zy-3gL~6|Xvo0?$g!inTW^X0hnUblc#uml%@9W(m zLRw_$+y0rfAJyd#)4r!Ax1j6Niz?)XblLw5$N7J;klZY|bS^!li~oPJ971S#|Gvqd z`qFa^lBbrw=?X@fq0}_9b#bw2E((OekO32M>c1}T`ZWJFL+blqdWP8l!+CT^LEm}d zC?FT03Is|<4;36b>CzAYCWvl>Lp*quKdbb1LRAeTKnu_L*GLE&ah6{_fZc1za7rre z`$y6uzMb~T9-mZ(T724Re@RF}RJfl&_G@U@P4vKT-b@(I{=n1{-j?dc#!Bo*t$s>s zc%JKSoNBsjQT0=9l3Jh5FO{m#I&_3VSX9(9=Q}2mX}P|sgbzyLvPX4Q!1RiN0Ks7N zu9;>X5V$^$puJzDTYnYTcicy0^2`ElIq<6LYSt8vf_vmxx={a)4+;A+`)lzWwWC+@ zXL7yKUtfT&szohh2Nf~*P^p{g6d_M7%pdaM=EqG|dgoz6QQim0ld@hCG(*ZhH{VV4 za5w0!%30ESB0&4o9?99~L?S|@*f^Ml?g6Tu?yBJ>M{GDdyH%q%>~X4NI()G<2L+#TbR>1viU(Fu-< zyh)U}OHZT^iL>(d6y!RY6(BUddlT=N$tr_MW($$?{o0cGYhCPCB(*^Sv(@16k}SbWMo&yM{|tTpkioI?TqExgp>86FFm^c{OOER^4WosqFruO zQ;?)~GCvlpNp^6PjHlV`lzD=j^fea=p0$zG{HS&$O@4$M6!((~uX$DwzCJ`-qYve|ODe5@wZW*BJ~$>LdF_+pJaO2F9|3@#@M3Ln!;G zk<1{Kh8|52G8eZwX;d_<(p?anqIW&1%&ua}cv^81K_GDAuiFJRYLt;2=Qo&$a=II_ z8i)z!c(ztTQgFk9frHwz$@{8z^ld%H_UAyLnDr~l{uTAbAM-KbfiXMT{^$(jje(p4 z(m{bRvzZrwFGC|cAza`-)-Xqw9&SI)Zw1gc(luS-XC6v|mXwpd0u_&X2a{{g{8{GS zm&W@BfQS#^j2yL8W2f4cV;a0CGd_t&GXC)9$TtiqM`v-YYtb%4NK8y01mZ4#tfn@% z@EM@JRfg&X-cscl2L;>PJ5n&+>~O}Vh8zQH`jgs=IX*g#ue;>_}gYDx9`E@A>5W>xK9i(VfhW{^>XLA-QcRKwlY);ptFGK55?rIOs<$%67<5q%H@l zn3&(e52`s>4TRx$laHl7G|8T91&7Ba4sw+0L3)@yyP*Sq9ArP;c@q%*sw|v3k)L<@ zh{o1k`Zv))`#JoLV|yBn98_Ax)xZEnVu4OB-0)yPx+(kMDap0BhsBH97~K4f2@$}B zyX0_OVV+=57>ZE-^Z1-W6W3VX;i?JL^*q5ZH?5d@knHUal0IMDxDtAN5#UJ0d1%OS z)mO3+k{LACg_4r-y9VSN!)de-=XL-6dHg7>paD5$`xmEdAD18K@CcST*X&8d!%#}t zB_hZ)%xc@3$SVwa@Mp=+2c?8)hS=@&CVQ;Fd)K^OlDjM91~GS%A{0r!i>^(`+Td4j zk1M*~KM9Kdlv>TW%e< z$wZs$0|>jVgx$xom1KvUo3tvuWT8dFlf@5*GXzdTJ+e~Yy zqYyZs{BF}COFOTTLp%Vb?~~~)c2uVynnxM7<4sq#H%8O{?0?l9|K>&UBefF7+cK-^ z-2cF}vM<=n^Adw5O>VUJ+y70(GCxz0*F@nHYq zk(reI22%@9Je&(`+}av~f4icK?FMBSjB?VueDTd+)@^pVb}8%!n3z4tB%b@Id!rM% zY0;9#?=S~f^Gpyl84+_lFllr<;?t~>q#;C$9<@u}zVbVU!<+3WoI72jp7b{bs|IsO zS-5PUUh~e&RP_Va8bI0J0ZeaI5sW+fx5gRjH>To9`GU(>HSg2!VVD)VV6Z?_X zDw+fNYGDYMGhDTvV+^Pt0~yqBW-Rxvf|}48>#@Jnb!^0dkFJw{bTG9Gy}pMMBss7G zFMGZC((HG98BorXw?@r2;bN)>`>w=sFhTbTE`G8#XK-qiip4dPKN~fhGlFr>FHh17 z&#}+pfri#Ua=t4$ZTs;X-d+#^ZjLioKj&gFRcBJZl2EvZyH$S@8B;aC*(PtMiO0{v zHWlAkzZF`O2SKV>(a#_LRIpgK7v5(BiQl)mlDcXU03IC~2XoK({Zbfrmzv$uqZ#_* zUaIsn)1R!kMn*@=Ok>Il;%LuwaWOi3Q@9*`rs7(C6y@Opm!4?@ymt#rTAaxnsAcnS zRe55p%?6XnphK4PZm~Ej^t-cA`vm8zA%#J#s&vp%8DV$t*&bKrxl)m%pbuF;{j-e% z!r?h_>^+lregYAya-$9_rMYj8E)i~V+Fo@+<^x^IR=kDtWJWG};S+Vbh2MGSMq#xR zLkY_nlEuv#>X1l_(yA0%-1fT;D5}_A|L%Ol8_5`^20AmQ$BEdOyqk`7*ZpBK~16|=VEBGOD+LWTD zpUQJmmWG?46`l^k9C=&X0{A)S`XRzQF3q8`X_+qM+B#dbWb*4iSq3CO=#B1qVN z>8L;t<&{*MQrSsAb&bA1t@ImIxUY5r?})$aX#6224m|UHp}57GAl!=G^UF#86ch0v zsY#quha;?IOl>ivAG!YCW3cQ6;gQ`3)cPCl$Q(b?>Q2qAs~R?8f6F>I$D`!r~y0gBP&iM$cQnh@8qioqTV<1`*yETum%b z+CxWy{_rTLusFHP-$MI(e=xh4de*h)xElatah`2s)th(EL-UsC$T3g#(NZ7%QJRCe zzzZ=>uQ`DyrA(1co&9kNK6tXVjoHqFGMV$3ae1UxM?Vqa8%>fEbe8WGZOEAD3-)wr z0*6bF)|oVqB(2wDwjgA`ajSZh)mM+ZC!uCP)gG?;DWrGt*py5HG0U_BCEJRkm;T&I zlk!Ff)xGq#$|LumfQ&5DxL$V;&^RXQ2KviOxRFLX8k*dX57_u1q^Ut1lGeSaem&nO z*QBl|v8TMG3%E{2~J=#`ntM!Z0RXB(9TQyVRgw18vGgN za4Yk$y4Kh|*G(|M?>-WG?(kFB2O;VFYb(I2o zthIXnpTX@k!+#^`*AIFj|1Xwp5%7OlEj@c)Al2=r)ccfvE0rAobwPP3^EdhS-_I6$ zY;drBYp8%c^)&jvOWK#=av09=0Jd5bBQ#XC@8^_vBx{koQvrUT3-hhh9%1zY;>S2fo;-hiv)C@?4Xxvps7Mv&-stl}v|<@ixL zyX0Uex$B$-_$q2YQEnX-Igmdl?dzb8`2INxH}TF))M8Ig%4q}y+J^v!6OVFlnTmR4f*#VE2Yk{*Gi~r_ip)$*SCiCW3>?c-i%_a8J~}M3+< z!uA&8i9N(#HJV<365kvDUI!|_psa5I*GIiS z+vOD5d_0N0cU|x*@LZDYTqCLeIeA!-JHtg>x~E+Gkh81_eG{RUMtL-IdGRTJO!9Uy zk)w2I-ctIg?670n)xQTs1&IQ=o&=^U)6+W{FPG$=7pupmXY){Sd+qM~1n51p9xIg_ zfz@*MezZe-;$Dem*gLD8Jh!047scSqM}V=@QkqI!Ov8ZTRQNE7HG`t@dbbW_5}ZE} zXigrovFXvBekmg$Gn-NXhqv3x9dyvE4vfmnq?>Sj?8{P4}8EBz!iXB;Napf`f( zwXcHx364MNIXtvgeGJ4aAGXhR77}Tv_RVl6&MqvD!Dsakl@r&hZ0>7?!UbM2j5Xqa^5fy&KiJR%e<_2({hnxI zfx5J>_q*ph>XYFM0(zZDAsE6TSXC;vp{t0Q3zhGT_S;FsCRau9vuY#O(&dg9PAXH} zI~?Fd!I8K*-W}vHoOfrFU%14$?C{95sPy%rp%|?xKC)c&4ippn0J|{Iufv&ikCMz3 z4gPnr)PbRx)ZO< zw>+F(jN!w~Ws6=@V&>lycTj9Bkm#r|?C zZCi_aHQ@cCcC%~!g%ojZCNFnDWid=mWC4|7(ENPTLARx!+nIX{<*ig;BX!EM+>aX? z`OD&QqB9+i6b2u~x*`T~=&jW3O&{4GTybZuGu$TWpols^S;UGn3adk0rXL3(DdIq$ zh~tWTNRI8Y`lrkk))c^LxgE>)o`tfh8R3oFhO>fUNF{!zgQb?q0NCAsknE%>yF5AV zm?SMabO4UNzy9v9A8Rs$$oaNq{8lUGT{mPE2o`*T!k`85Q5Q(y(fdE80t+cz6=^ z2;qgZ1aZ91S%Isqe=Ffv`@x~ezVg~aDGzSzWro2ZMZO znX$kGPrVqd8k$c(^-g~~CbyS6v7<70D~lT}Dfl)t<-10Et4Zi^{M3NImzNK&;Id!-iZW&CQ&;Q|Vpdoqp;35*?O_t!kB z)UdEO&D6*(4FY&S*$lYH;Gi;v;pjNh%S%;85?_jb3)!`J%id05Y>J?2^f%H|39VL) zta*ySQNSf4@zFnRNPgOd@5grm>O%QAx1ygznrMLW7?>PQMTPLE$gaX&mSK{aHjjze zLhU4c$EV=ti>oQ%GVd3Im^HaI(_2}ONa{hDf@a3cojQ`5odaxkZnZ8Q{a+ZRF$dU~ zQP>Jq6BoK@AF5jQQB|Emv3)06o#Fsdyc=$`!oj1gXFE4j@UY1(8wE*;=*^yS`rZtH06C-9gL=q)dymrO3NCo^>~Ka~eN%cqzW3H0QMo9lZi4 zu;ccW#6oBS32@=E%g*Wfpms7dVQ`qvI=Y=5t5#99c9nPOneCDH>F^ed3MT2PTC*X6 zwzfqxHe&nJu5BMr2n`hE2_F1PVw&tVJeyph61PDmx-3?%rtV#~w#~Mi9JL%% z$J39>0<2wK@bjL$jpeEa+AIuIP- zVr6{e=mOJnQ-)3L62_J+6(_WL)UR0y6PZ+GHthw9hzlR&4iUzNWT&1yR58y`8gt%> z;&OnqxpQ~e-3=a8yIJ@1WrKjRmP#SQP81BrD&yyXrvgL+MeCNcut&(3C z7x-}@-!M|!34{z>p^mx6qF_h1!EP1*{JFKj-*t-S@~KO_NhoDrN*l^G7P=?dUo^d#!XCRiX9K(828Q#h%c$Vq#|(W=!HJ77$Wb!!`oWJXvVf3_ILNg89d zbz+ejHIxU7$TM7W!tp9z_etPfcD#{#v|~zlTAzIRf4}($^E=$mbggK zG*A*q=Ek>dWyhgiv$cZ~JjZiS>?eysEU{V`xO4V3_V00CW$VR}Hh!#T)Aglf*`hGN z;~<@&i*6sTAAKS@P9qn#?MyFMc3p6U25!8VLmmO0d&nj_u`ohcJ0mijPOT$^Ar?pO8e4k?j{O0qvN%uMQxirNX0RR z-u0>zXf(2XZm*insPLg2$k6@}^9cSH5YVn?I$~<9+nK2HH#GWnp=*_UZbC8Fiezl@ zQH^oCfZMM*WUyS~j&x$<)q5Qb26tSP^9QvDRy&tnv)h~9wF-3@QcmPRjKfrt+B6n> z8c+=PNh1{Mu$=TybO4n24=Kt2MH%&<{OkWNo}$*`dihtgFwwA*9Wue7NF($OPZFef zj$;2`FkAM2s2*6P{yYEvSDLjQ&GH1?p5hzbAw23LLkG7+Ly)$6`BQ{w>x#CR>N#`+ zr)T%A7ObXi(fmEWXcm4^o7qrTU~%%nQ8eFLySS={9~Os`x;ChVOT`xaxBY3&DWe%F?PYZ-Y2W4hkj%P| zCu5`j+`AIGrsGO@OV|GFYzNjfJLt57eQZjkY=i5vF>++?zdDzu`*<`OW;Z%M7gG+J zNxl|VN;=hi-1A*;Wmh@f&pz2$1xD-{5XYk!pTk zdpGK&o3|_LevySv_{wVS_)+`pu-CQK?YvM?i6FR>SDYJ-ZF!3=4o)e79%~OLB9LS<9D`8Ez!*zCn_rV}} zD0HvDJi8Oyin_ZT+XE}nPXN>09-j2)ZjYQ;yrhE}Q+ZpCvA3Pt*MY0v{ zy&%dvD4>r|!jP7*y>O6nOXGAoYbvijmRK8;w9kJfQ-DYv2;h?EP#{5 z&_$(3TJzO%EdT0nCmgt_#$vCtkOe2qWQrHCYfymwcAyKoYCM;c_Njik&-@N$O;l?i zR5mb3Fc!7N`-*g0_xz8|T7sD1Z$IVikF;QZFP#ds#-nL<&zj~sn}xeipu`-BXD6dh zeNiB5J@%I~{&y_xE$_U}F{7eolEvkuX6ZYISWt$yz>(WV)bzh5qZPvM0;lUG_@5R3 zuriKI3)r;>0>!tr5}dWpBk%8D_Cm&GnMtste}L*3G~CL6KZwbX991qt93#PHcUus* zN*Rv^{yc6vPiOl6`)L!_d>Q~G<9USZ6+x3p<$v-q2^6Hc_#&LV3jsPgiqw_xG5CHp30e5kau%SUSS=e&TR zD=xL~IHC#S8@~_82GS3#j?|{}ub69|oRndqXOWTJrcVG3OH)rT@-D8g^r6#Y;U6nw zGunA_%6#d{A(#0iiBJ?B$_jLA31V|R%1~-zt9@g@cahvS-_c~+*Hx$^;Viw(yA7ji?a%3!o-#iUfVHmps^xwI`m2EbEA2pnEM5XmQXMA zP2~5PIvbg5llLD+;kc44%MHk|H-WlsKsEC^PdbN!OAqHBUDHUZ4Ns@${{qQeUqa&g zF`d4M+M*VKRLq=REr~QMLvfs~;P_#YJ=T%#O<7!w#5U%u>NAxdCv1RsXe;pxGi}rG zk1`V<6%EBE98iAv7rY2}HP77Y4TP3TU!Bn-%{5@T92rCOhLqQ-Pl>|z@Lv+geD1s< z&6S@O*7VW|2PxVJW66xSj|go!Vg_!JG6d`dP5YY$Al_uU;K}xKhJKmd6V)1zWC>fc z3$8j~P2t#h>A1?iVe9Et)7AvADg9h}8r{7@)a2 z3-~(?2GUh;Qa^ooEu8J{#U?Yg+z%yM!)GL)1E|M<-iQ;Dz@J17y+za%OsPFgIX&aJ z$M!sc>#{M>ER>4nvkf)06*WoRV`aWPEL+Fn+&T#1; zAyR9?`k5Es*PKzxch{dUD_Orm zYbQ}kU9?GT%aGd;>%<Rw`*w=`;@z}F5twL~t)O0@(EKU^ zntMJZkiKjj#q5PA+n+?w5_DswDj*(LM8sr!?8;Diph~7AaZMavrPw0jCK^8B;$)s>Wqd}{s(wFx4#KSefoGHTt6HxVc)PpN_8mZ6Mmi0@%) zv^5i+9;BnoK)>6)4946A`Jaslk_vtJl6e+NiQ#=i*&(9;N%H=8^ofH2gHLj?TWUK# zrvd(hdc*gflcq#5nL06yfqA}}3!cp_D@A>VRL&an-;LdRoVi}%45$6Yj+W+UJ%RD= zMHKRWett)TU%xyl28uq}aJjpf=yokQ%RCVDVJ_AFu2D_xaV2KV%f&-<@ae<*GYL*k z+%+>z#3*)6$m1mABvx4>Ec_O74Z`kad!GvpBULn$kMw}>>+=DL;8pSZ_Dv2TSEn{A zU*1UXLbYd#>xQ?4^*(N&b;IHUV#Tr6TI^eP3W%Lu-7X?7D!_mj#RbP7otNf2ieP|) z{Lf-})%nA#MYmT`tF1Hl;N4Aktv{znLR^Jcf*AOXg0fC``WmT5vEA4Dq$f0^B7_B$ zRwx<9R@0sZ*j7tRVb@8Ry^_16GKG;yGyIm4!K)MUz`$he*@;+@?TaOhy-o2`bS?hE zcLo&4GwKCg>%`z-R?i)d-lh%E#Ds<=dwMkfh_1Q#1kwU$;r@_ihUDc(-`M(O^NC$+ zRfCl9GTEG43)!=Lo^QXBKFU(YIfZ<#f9&Por+zn`QfHp?flx>iTz7 z_79d3-|3)|fSe~}1-okI)Zlk_zW5Szi$uVMq4NR^^Nd2_Zj;6zcPrfKqtEC%sUu27 z)oA_d$y_B+%xY*Bw2qC=TuwIGEEYx)?}r}WvU$=5mVy!++?a~>0%IVX@tUDjfDd2A zBCB&x#JUaDsbqe(eEO!g7*Vg#L%9Y=L*Eg^4T7Ld{ff}I=RBg5HIa7n^xuz+fY#w& zU{BsN!`!wC3`W45#AJO@ON-eDIgiqnn30CVT&5q;`$R~?Bj^;FPw81ag>x62z6DfE zcp{cpn}aZA5*7yd@uKzA8DoCGFjmCGE*Ks6y4~9DdjJ5+phAjGx%M9~m;sntF5`8r z-k5BKtN?dLJOc0ti=Pz$_wLSW-&^DdoWKr%3`=s^PN?CK6$={RSA4v~ugx=zYy9oP zQ0-0{f(CY2-zPtryRa8KKjKw9s`e!)VtZpX;NL>NQvDZzy}b^@42c-)lIP!Y{%O+m zrAvo7bi5u(?K(FY2t>qdHS;cjt8K{f5c$p?{mEE?f+*I<*4XOGarHa zY}i^un`M}tp65k^BNB1-ej9F1)j32nY$aW%3y=g#i{R#&@XjUT z5JQK4U-X??>3fQaFV+cx#wWKz2~%F9{#b&rPu-qfVaMRwHQ5D_Ka+GzsEtcYR_D>{ zj~64=wD;LU#Ch;Y6|LOv^8wKhNk*4V)n*ds%*g?g1fnLc?Ik^ikbn}bk@1qlvjAs1 z5}YKGTGv0FJ@{akg!U=L%YMUn!LB7 zC2O(m3cQio+^8Q#S~SRrSAdg-kBIi|$xUbjLA;3OS-|;ckZoE+J}O2>tkmi`mxAm? zyT|a{n_pfgn!CaGLhfXT^oSi@mg^0SIWc2uLu*3jt<`U9N`HRg0~gmY>Ce3)=vaVl zE*rKGT4MpmKyB(MhEqN5G|fMIZ$U%?SgO`o9(0+j<8p?`uDM$jQPf9=f zRI3$NKoy54==L1xMNsYrj}yq{il8W~2_pA95-)*&^j^q|l3@lB5LWqI92_Tl?%~Yc zd5!4?-mBU3Iz$*nfm-|l*4gTPi6zF>Bt|3m3C}Ykt=6gB<@h8QTq$=t*e3Todrwx7kGxm7Yo%w&l%W`*yqTqZ;PwS+xn9*(kmigazTglEs;0e6;MU?!44X z-sjSnK5aS3H#1)qdJA_K*G%56dN;M0a+@2TD!7xlI{r6Xj&$=hm^ z3)%<#b-nk1^s5dGHC)j|<};dn>DLj9z5Mitp?o8iTpd2~N@;?`P*juOvtR~6V-o1O zP=aLPax8w>{j_Iak8#VIE86xM52Lt)Y=2(TJ$c^Ya=M4`kcz}<422nm;|IR%&bl8r zNi2+`Z)FQ0YBVms5>4JdoUX%$oZEm4Z`Mg`Vdqlt#s+^H5erHW{_N1dySR`Pc;QTW z@T4W?7e`n2C~SF3C`dhtY*x%EsSDwxa|Av;i%27`46s5Midd?4TUsr%@0qaRc6Yhz zqc&C#?Vl|-ZnNnghHnLmv!iWe1KuO)V%eegBoreUj`8!mEXbRVvNWxXMmNZ`6>>U6pgw8(?** zkaHcjMNI!fW44qzXCP=_iTN)Oou)yRQvX-;0J#3~zn9@NK-feqNiy_L5 zmw`t<&Gh5?UeOrEl0-Gs+ODY*<6Yt>N5cN=+ZQdGA9jV`P-N~Jx-Q(WaAD*Bj(J=9 zxU2)yG9kmKrh3utZ7J%|ix$8rgCU%ozc-XZjbRMt{uX3Td@Ms(yi_LPBNsczQ%^nd z1`EH8V<%4M#cM+DmPpCuAKw zEYd@o>%8EMn%Y*AQXB^7_0OC>tCR12-H51^J6nun1MZTIdzYJy7en1 zjB0bJ8k9b@)TfTH7+&YwzwRxTSc68mIm|}SH~b{!Y~=UY_GYZEB2qDG_)oYx7=RNu zR8{(NA%=>fNf5mz2JvO0*{^oRK8R-QsYnjWFefq4bE*#1qebz!eTGFYX?LE;TEknT zjLL)Sn}g=F^OZU;*qN_j5vtTns_EI!NoX~!|LCbjG9)!)_5**^2A+H{c^ zC6ync5695U#IxYMhVNggzq+LPsxQroIDk2 zGPXNhX@DDvMThiimkO6`F6C6q^p^@Ta;nOe^D?Od<@v{KfzueZ%u73~eKETXj}7g4 zGu($0Fp=Vif-h^|TPl0>#-DiX-46#=uIQ~!mZS8}FKuffASd0^29w;@Z$W{uyL%H; zX+fc&p^dLkQ1>v%BS2w-v<|wEfbYyc`iB-MvtM6-kk|E9B_aHkT*p{1n zn#2){sc#SrWT+l(L&M*;a=;;#=Al{<=*!d{8S|C z=p8P5Lf5c9DuiT1)0+Fmbz`Hz?77@q*btuhubSKX0JIfL*l0w15Op;N)q(f#jkBl# z?~RA}3x%A#k5J|ZYK&T_|9-<7RV`s)#}g6$t_ztTa@3{r%`f!tzKcKQT%X4cC^zkt zm~w4%bAgQ>h>A`f-YbZX`d3K=@ejCvf`HD~_q0TFuL{?;6K~zlw>ACd+hxSZzTesg zz&K4@{YeZSf-Y5_$hBYPS`BmVwzrIbrwN3f^OmhC=#lXxQ$PM(FBbCTjlQf0-=|y@ znO4fdGX*R=xSpgW^sSL-wsv+kC7`TV=1+;%93PX_LK@|%5_wg%j5yMZ(S4g^DpG3!0a)oO@E4HS@6^*`QybUc(OJ6xoS0@n#A-9L0 zGxsu1jVX>b**Je{RexemF}q+q*jYs1BcazITgNP*x?^jyC1yTR!lP9c4fN9>rB1KM zh#QHoq#qsa4sBQ<#_o=+bP5ylYJCo?T&mz!5=GZTozRIy>Rli`x%A!F$0&N_XyF}j z=F_(Lp!(hWQ(k2imwZ@DWi=L6loAuY?HP0Jm%W5iQM`Dd##2T?{&@S9-ad}B^mMg= zAq9uA&RM`k4$j-q9{^#oxv%DAl*Dnztp*dnJX2nzyFG72?i#WGRdyjot;_%%7j2>R zaS@azBaGhOw)K1Qlu$6d1li1ZtdEJsXH&^*VhyZK0Qj~zx2+l5DZ>TmsL5O!>Cc;a zlH2e@%_h3yRo_VecF+HQTtdmHrnq0DX;HQmS3o6q`5sEvArG9+c>-XAiDE_ilZn)` z#sgov+*)2-D5&Owh9z00GTWJDQN?%Zn>%XYkpo}INvr>56RI$36K1lbc0jE+pYPe4 z=sWILu|GsmHfm23G^eL_DGhCWjthf~0o2}=VCSETQ z)CbO+*nnXdV&oB)WLX~9sgpd)@#9a(45s9MrL4G(S51bp=KRvzbjc{7OdAL@j{e#E*@UIYoWl4u zIKkOsJi}34tu6oIXTkJxvXn^!ygl^-fJaP=6#sSeOUC*Qx{FB6@w}Yy@!(y8keT<8 z#+8XnD~`GnzBGFNisz51Iq^@>HlQZItemjFyDkAge{XYfGJ2lMSkT0alQ8L>MQ_dU zZ{x`ALEF8Xr}D6PBnE}Fs8zE3c)2aMMDAuHNQ|<`4Y9b#Wd^fBjby;{(K{&W4hn+y zK@Kg$56H#Hrt?(ECjRFqfI0r9--cBXL}iC1kYhg3!YlzEbRnRahU|Mf$?NS8c_oEt zT`XT`mwhUr{H{R(jN!=-z2^#>!Bh z__~@_SX3gK;Dfsjl`oSP*I><}aOr#ZrL5TDr8<1*=G{gRKHIa^O?f_(e?j_#FlDz$ zB8ha((8;26=z-rwP3xsVJr1_~w|_zUT=-=8FL^eP{CraOUF`Pa{6A$RPmX(0%MV)P z(I^Ut82=W>J(Xs2IA6ZU2rtWHp8;Ws$g{X#p-;~Sn2JZx(&968kY7>K@RPPm-T0*? z*{Ns*U44P)#Y;;)0*%jU9~a8WiV(W(&nHth-&qb<^$xuGluq%BX!Sm{ zsqR3Tyv(cE34fAaWmn70A9=2A+O60wxbzO-{6|Q>aaQDaS=@SkoBK>}`R>K!n^nE+ ztOyl6&R&;8UZHq?IllA?M8Wy(Z}0mVB@W%vwu?EhmT}bkkQd8ash$&D`ZX^$4pt(m zsVb>$==B~;spC*eKo@KUbgK{ge$7wLr5Xpg9eXn8h6k-M=eAy}Dut?*ZKkY-Z(fb& zNa!rb`_B_0_hJ^cmpB!0%JCkVjgNxf@X3)b;ootjRc-wBk}3Wb$|`(NjW)uftuNhMF)(^C9K4>l^V@bF_| z>4~u)WY%h`Mc9~{Qlm&@FG@6kb}y6c)l?40p2TRKd!9zu>9x}<-U`9D=io~_G7_)% zry4DX=jDOUw{2@z6NOaF{6RKHT3n6bY|Rpmec>DrRT@?k_d9jtDUOzs3zZVjyH$Rd zq*pgvR}SLpn%-`E_f-1)@OXEa>uLb``y*eGrnwSd|Gn7EC)cd?O!RPh*Qd?oUogF~ z`?h;qWt?$1bN#pamq)9jA)y~?C_Mo8JcL8sjdbpPA`niB_-fuc^90)Ezr&@1XFqfa5f!s*xBtisl)#s4c=C(^$x{BxmL z^!RH537JZ!hdF<@{_8FEa4w%=af%-kS5W`~gucDwTiZLnm)%|$e4c$lzU|13SUO{f7RS&&3%O&d zG52Z6laY9=?fxIMy>(O^i@NO_f(9qJyL)hg1c%`69wfM1<8DC$!QI^*8iHGJcc*cJ zG%mNZ*4q2*^Txenyz}J$?ix*XRa4(L=lso;Z~2-d3*YkBHdC%&j-?orJBMmZDA+E1 z&@wu-<+6VHZNe22*>T)c6)hCHk0DTowF~T9qsJ!3d>C^`9@yq(8q^_@K0B2*ZkvZp z&Ib?pJ}cO0?uRkYMaL8Sxn}V?N8?EpjsYmC*v|hoJCj^S9vKr>pwixtTXk)@%+DOA z?B&l4re{qs8?4I`UCkqTiND&BPbU!Z%(h)#ri~&d25hCQ|2;bEE*Peh0a-=lV*}o= zl~j4gk+5OSR!2$5H+ZQURS#brz~bp$_rh3Q_qIVMW+GJ=_V|G+)`Z>qpW%0J|RDin~w;a`c^wCqSq#5bp>r%cJS=NG(W6m1v7 zZCS$Re+}1IIsXIvKnf|ZG*3QNtN7FLNP{bHQ>GG!@6o7rc$GajCr^qou)_SbqD1S& zlWAzjbPAxsMQd>1`VNwpLIyKNj=`lb6!2=?)xC|v(G35-3(?^v#l(WF`M-v=H5v6Z zZLRcm0bR7GZ1SU|^zAruPxKS$P7Q`Yf5lx%mfP<$0w=CQ7kPBsAGG+j0}BLWIOcw2 zTXTYdm@91F)`}Y$*~g6A^{w8y+Z>j-EzkOb+De*ga0v^n%Lxlkv-g>h z*qSxgw74jLx1gHiJ9b!B^6@>Y&~DTBfwp98*nPpn6pAD?QXw4Gq{xKwn=j{*eCmNN zr!N^!!UQ%ZfT-Vb9_xZ^HFLYBdon-SK4s}eDcdMgm+&Fsy`KES%|CMn!xDI{@$Fh9 z-lN(bz?t>eGDp?W$roV>@INRQERsew>}l~pWemLX`4?mkPI~9bF`L30sbycr(p6Ve zZRH-)OQ+qT<3wyWuQ>no%kJIk1$9(YX6w=tlv&MZ9*#{(>!?Q8O@EN*pLcG3-9?G^ zRdwF=du1l*JRM8@T*E`w79*BAqA>I@FzBgR+jBCH_rZ^T;qqMItB)VGMrZXsO{YNc zkNl0_T^9vfN?m7c<38p4?Pd^bMM8}Z447r(v^L8cEB4t2;*5|dmJ#m+GfOx7hHyxW zcgM&6o|4i(+zUg#lmRGaQ#xb^eB18AzZs-(T^XTm`|uxzfQRd^M0&U=J5OeGSMU3l ztq}h)1W2^wQ%8~ZBw&9UVx2Q%ur{MnVF)EZ{`ob7n^aum0IHzFWeCuULp$}$6COff z2#R_3G{!^yHQGmRp*Y>jze^(+sTT!BIV++6i*DtMhXU0hu;SMEFJpyG&DY!OqaqZxkMxzk!Hg((oTvK_NVL! zC5f$yXGjxpW3_RdPG6#g7VDZyihUws}PVM_OgF_1nisDY#!`HRYYDpO5a1k`1 zL4wPr40Ms*d#GrH&kEVTgtC2p_A8Lf=&MyV10ZkRQpi;FWK}%+u@p!qDojDbfr+~F zo7Rr}x}Sd+)Ie_9FLzFRg@egdyK=E!^hLZ4=BGK);(Xw4@;;?i+z{#{+;Zs3}YUDi`-z@A{> z>@Hr@b^$lKUZ;IJof`^Urk&eY1l}6}eiMl%E_%G-15Sb8Gd6)QA70ype9WjDEt3%A z<{xvnA1E*%+xLM8uv)s%V}2?+FK){*8Cu=xzY?J&BBso}Je_2;t$#$}PKgS zcWH(sS3E%3Q@HXG8ROL|w6q`Crz25eKX8Yz(D_gke!-TmbF#O><|y?29PIm@JG&&% zSTCgr!&q`Sk|0=^RbimrZR_;kv0E`xeM?@GS1mMW))?V7Wi6!(Nv>_~g6@tBl$2%S z!LVwh@q8YgM8Cb)6k{QJ)%sWPMKWm8!=6{P0e&J*2_kiz`67%g5hS*t5Z4xePa_Gd z5-+H7M>$!m!h;C5Oka#LoVQvLJ6=c=YQ8LT+juM1gQY&4R70E=V}|jvck@CqkKfbW zEduTrJ;X!#x=OO<-5u^LZo2ZXTn!8!3*TYqRmrCEL+f_M^i~Cm2csbO^l7e3N=_Ox zr3=6w9*<0JI!AlJWO=IluyUEnIoz8Qqri;aR%YBmuTL{~|9Z`gub zZErz^-$guaqW@(;z-Ff--8W68Mv)~syRWN+FNZC{@QU5kFGdpsYu_sMAdX(J9l)1q z7YBF+tLu0n2>i=kAfzMl+gX-V5=Hq6eFYyQw3k_5*XgG2M}`{ilM6zRgoFLoH=XBE zGbGeX?a*f5tbo3-op`R-w@%q3l1uM4a^1ixARkPt>aSKTW%e=ZK{veOWyj!%7mb5{ z-A5b77Z(bHbs*yKQ4K~ir#rTr&$U`J@UUqglVzs^4agYyD9r6)ua)sJ_@vO@c=3BN zn_o9SGNXKV9tEb2;0?oV5`N=lSzlMXV)|xIM#-mPMN_t-D+VptrsZ?O5~Zsbl?|yP zXmAyHRz!r+Uc(o&*D20b%zzS;N#tZVYsz;OD)a_+-#8 zvK#Gvp1B{76Z{!i|IMAYYScq~oHmk!^7!kxJeT<9Pp zfE357S%0?CBiLgqPPy8bO2MIY0ZSq*CwE)-ZhUFxEU8m9hxGm1=iBwqAy4VW6i04c z*6xgfzQj>22-SWvMCH)mU*p0`>nM%GEj^yek!mRepDI`*hSL8Hk79Gk0W4%^@6IaQ z!)%4~pXtHL$WV0o&hR#LT+@w6bwvm?-l`}#xvRPYYg6|4<{ANZ-y{Uh7l_+x1L` z|HqC1a?DHO5s8&hKf$o^)k?JD>tAZ2p~_ZpK3w7eaufBFAMs}rRokZd5PV&h?HIgb z_jb1gIc}3#$fiM^xF*>nji`|HX-;?~xgVE`(P=lM&qqAQ-B{uwTQzqI2t}UXbfP5{ zd#tV^cmaqO>AAIZe$|xR${fLkk)PNRC!W6n?$A*Dz;>->>OHoYtw4eW2}O6e&0Mvg zPPx_OD$L%3F*n3QpAnOGS{OT=1>FRW3SW{{=^_WJlOXPg%lOb_TIf0q!VM#{y z&=RqJb-qK^S#2*4eQp6aVH|L_n;1=@ws4H4rN|B4+jhiEaY^-;wWJ~L5vySI^Die^ zn4Vd}YbuEI@~Mn-mBc%Tg>=-Q(PaN7nOzx9<}~m9XCKr7_<7^!84OD|q?SFiIC z4DA|OCe`L8J4r_`#Imr+k>^&r*afB6sq{_puk>R3Gjj-jwjAH3EGJ-MK6&J)IX4$@ ze42Mcn(mLNzT;sG(7cJT{W$NyB-_1Vz`uRrb(J1#w08>;uUD&PvRe-@3Z9ser1TVe z&P3V({?(aiOOZ!ERE_RWrKC}7f38~fZrCApS8|yGVGf-(NH87;cJ?JF+sX75u-lMF z*B2<=ypZ!=WNx_qkVgIH^B=?*2f7+aB3K5c+&M)G+6r_*M{z(-!uiLnPvNI*WnI}3 z#MN>qCwt%nht|dDP-idkXcri7CxUgGFRefJ?1p~29m9TEtv;15wOhx9 z+gCM0u^&J2npe0Ejd|!3nd$eKS4s`QoQt$oq}OG$1fAW3htf*c7SfQMf#TP8}qIc@)XA!KMx_)HW^Qxt&z^j+2iVu5FiOKpH~TCX|5( z+ao62yt)y?l!*D_8*=+P)FSutTmT)3@$#`=awS`)ins*PuC`1zN3O!V-j>`mS`<%h zg>}C3LX%?O-t$dygKwTs%*Zp`H*Kcp_|0V6f>U(G3`&;^AJIQDenz2N4RUd`Vvz5S z?iw&zK)OJfTA9>qBak_l+Bqe@*yhsUJmK@NK9lWJ!++yr5SmDP1UcmleP}biZbiuD z*=3T~q;6#ELe^0UfViq~%*|@0%Tcr%&$d-e44Wv-4deSn7i$EHGeUGoH(`v z1}Ol9h6(ND2c{J#84enKZg9~*QjfC}48HcPOu4ccb6_n_dQVk3wY6uWZJzl>+Yd&! z>)lke{`^r<^IZBUB2#vn(Od|*Ny)K4d~BN@Tv1wiO%tXW#ZZ)lH^?EK#07KlX0O9> z4@5vJ(rg)>(uF3HGFa>JBk-C8GPvBn=wJKl#(YRZ`SL-U_9%v1`g|tEZYwvx(I+sffj=-niTM3KM>gh7<`8MorHh)D{NmkR^{nT^ z+%72ARQqr1M1zZSv8s|NjuRa5r)kU9(KXvE?WOl!jbtMX92?a#o>&rSQ_=LVBH9Qoz-81M%xovj5ra5D zW8bWiLY%HI@CU+dT|(tuaGpq$5#iqLJrFqLhmI08AS%}N>GHMRB)CjdFkBdC3{S(4 zjvKaZoro3}&Dczja$87RERmEoVK5A!*yhuMVldE2`+W9V@MeBx=hIidU>>*5m}MMd zmm`#4Be0CuJJ})wfu#tJOKOUOhvT_Ka9W=eYDxt2C-z42S(1f^ySf+NyrV~UcH&Z{ zYfAu5#6A)X?OW5O+b=&KuUItZwss?msUcho-bBk@;)dw5sl6bm#vZ#1XB0f1m)Q#* za&VX8qh0bSEhZ?qG=2q4SFeA|2Ts`qoyz6l-io8CKx&3WBG6q@#16+(SKWDQsOej|T^NDZ*!1jc5;OYr_(GQte9v$$m zUN|o_aL3Uzi_F(NXGnx#(~=>V%StT1erbSDNzUUXLEdo^s&WLr5-M?Ee>Pu6|3$9g z?ebCC)RP(g|z_JKWkpcnn*@#Xk)J7Tu$CsydQ^{Nfog%6*ST_AQG zuf65#0!*;zE5uXb)c+Tf(ft(g&z^|(f3PR||0`t<*(E{k!=p_Tx>K7>&{_=)H^7SV z5Y9#W{qa+H{VdxLf57cG3BITpOAP`ic+D<6DtrTB50)iYT5>iCl>}XJ=5@ zj*>N=JD%$ZoS*q-`P2vC*GUQrjGdhj{DihQ^nRE4;vNrFfQ4OPFI5E0K*-^Sl z80WCj>-A_Z$%)FYS}LIwOX6dsIK!YLnEo}~$U&ZBKsY11@7+#3L*Ry;tYJGWS0m2( z@epX9`(f37=QuyE#f$dy2Fo1PIfw$66xVq6IF0fZKzO82xtX;@h<^Ea__>hAb2Vb~ zK78!ziY~7kvMO@oEb^&1AJEARh_)KzaqL9I&yRev7of)>($|HKG8Ad!?TY;@KJNxu zS*ZBLZd8DLo0{_))A_%Ldmrn@RdJe(t`ao}HDH8|H{=vLQIgy-p-k9tFEbJ>9Ww{L zPu=Eu>lw>Of<`=|!TIcv_#n`CK52ZD?g}v&bmyX=ZQiYNCT6K?PS*G+`DaW7VpQ$x zH$>%lYEySMt`U|*dEd`)E)pydA*3E-T#m|jV=>2; zDEuRUp?c8YV0Omn^@yg6t<#N6(1> zq_sE5;hwoL)a_;?eVlTl4+>nbqR}4n33hS3s6D;y)98ab5AA(BfG>#sMvw1bIdNFK z&-_NjUCrK&totFo-du19^1O#=)5|B~RBgrAfh0kbIVnqagP)KC=Rn@doz|+P`cO;$ zY=;;elu+*|LYnq+2BuX@*81m_Cg)Pl>Q#2{?)4iABT&yJ!BHsI=;CGC6)CTPBA%a z+BeJ0YyL8%{VfCA4#u~Kmz85Fw~w&lNl;gB1oLn!2Rde8>3BZQPg)6R`S0_U*OD#Q zV)$IYt;m{*4h(|qh;+X7mn+>*S``eIAn|J}19Grt@+l=+PD#rfNrK?5<~u(U%yex8 zF|a;L^RU%pG|~+!=TlN8h@k;to$Ej|g**>4D{=Uk!Rd1#fK&(QM*5d5vU}nJRCfxu z1rO-VL0pY25Xu~vlP9Vb7gG8!uz%@ruacjNhz;-vQ*DetZSso(K|=Hr6e~dNB)>!j#i~eMGda@r7!} z%nf`vEuU=SBu+R}!EJ4~NV4<~^@8gMr8}+?1r4!r+2h6x!4o=mXag?4S5VB`i^~;Q z8~Xg6@vjm*w~&p$U5EKXQyTCsN#5phlS$w=W0#nVmN1gkZ~f&7qUgyfTyfJ7DfQQ> z$meQJlZPS~&MMZx+BHY-JH&kfuY8I7u4}&xv68ftOjch$`|jZ>N{lk*Dv{jq3cHg| zh1Zjf+7;V_aKY1icdc1?r>R zyCmAAhx`ucPPw+i{}5yqcca8KJ)e}f4w^faX8NVNAuFGX*5+Lw0~fges38Za(M^t7 zD!x?ua>RfB@#Z5bl2kcT_z)|Ek}9!DX(ivU7TmY7m#Y#JAQ%@^y7OImmwmknTb?Fo zb$7}6;H1&PHiVJlfQLdwjZE_9VG7$yFfOEGUv4VrBoZ(2U+e+UXcGyL7t~Dtl+%Q<963D)K<_kRp;%k^G0vU$fe8=J;uo_$s%qGG zPes$XwrUJM)xDjni<@rYSn+2Ip@HY=Z+j2|iU#CIB-_G7L+`DIurm~2y+-cr?t0vb zO5>vEM)0yVKP$XCkD^A<&0&kCezoEk)_M=?Y_s!mnW1Mf?)}nUNxkWrB|1Lx7!+4^ zdmDMlWXE-NGl~}03-*_Fl@RqPchkkXR;}MBlE?r6s){?F@o}wYYcqi|W%Xz8&AnAx zx}xVrXAsOFHedTQUED2-&3g6zb75z!+@6#^A!kq^#s@E)%Z+kL-_M-Lmu1bFB)N`x zB9|{v1&T-#agg{T;W%D<=fcAS!z134Ao$NdD1oAYMKEYE+rS@o>1wi#0-p~)%>f$@ z2Lr6@)9L6ED-%0+j!mJewtdJ)O$QK(&16l=lkqY5j;(wsn5V9<8?zjBBud-3&{Mdu zW5ef`_4(((hN9%&{PWsv2fC{myKVP(uAd|F&g}!4&4kJ|P1uadipP$>$}~5kc%Nx0 zHkInvFv%m-D*#bx;9OTj)SK0M0;Kb+DOHw@D^O7T0L%s-O30B?UDiw>gj|TusRBc% z;kaB#xV$HcHI^Qf_Pdczdl!!a`)SiEvE$*5%@}S6+{p4)#2`Z^u*jO7r$>8QjJ@>B z_qzo&XfWQ1FZHzzW^{tMnCh5Sqc0iY*R2am<3-xdB4Cb~$E*!8QzbA&xk{?QSDKTi zU&6~%7Jl`OVCy#_dM>XhBQDJ(P zdfea;hU>ilr_tg|0sh(LlfmME!l%HiqrnP4SNzUmI)0e2@U)$e7K-h<4+`D3BDpQ6 z0Q*AGmoeP!fN{y-0;%7NGASg7VAhBS9V3IULPf)w2x-BMh2`vgOnA+F8f1AwckQSm z|B=hSl2FL!g!4;vK@M?D3sNtY8V_H?^Hd{tXJN==u6LvGP$f4}s1{xA23%-l5fBaI z>&1xYOJs=iFD*G)%6xbnpOz-fLBPYXe-YGCd{)Tcay z3d6jrb1jKDRW^dD>sQTsg9AT|2nSc2&P;)Q12nf4RDH$2_d*TaJUw}C7LdIV37*=z^BigTiO=oe0ZUqKhC zG^nt!t{M!<7N?x0{sb1Chqv~(0jGS=wgyd@2~I{biydPycd_0&>jN-98)gLMv)hw* zU0G#ij86_e0JrLdopc6?)XEh3hPv{xLu*CsG@)su;Ch%yd8Pm_K15gz`Y>=Cw!ew; zKne=ObmQAznH9}x{)VBwlRHu253CS|PZ*iLhNNkn1)bP1vbwbg2&z?#&B$Gse3bw_gQ&_4eP8Ewn zS|Q4hXJ&D}#K-z^5JZHF4A?g1dI&~a6%>kXLjO)xixP$juiLt-nf$)cQb~;?mSZ#ZRwO-%d3;~!0 zqpt20i%a-Ld-ImRXGgp8$zC;JaXaQX{x%PJ*^KJ$ZSAmzrX4+)kdgd=z#9FTMo;28+D>OuVxmWNBeiXi?D?*kD0R=T64b9iUcOrTX#9{?ROU$%?&G$P2Tq}DubYJQXgY@Jm-(=qT3Vo zJ%zNCSZ;pij?s;iN}hwDt5+vz2}sWO!a6$!<}PC1S^)FbnyV*VGOoQ4uWCCro!0J& z_Y5IY!Bj_VwznTHa3d){8tl3e@qh-o51QE_g%)Ifqtdeif+LRg%i$g;#EIYPKzXNv zWQOjkz53j856}( zh!BeV)OTTGpAxia09jEG?j=V;WnW%)6{Ek&x>!B z`ZOmEY%)zVhUclvtnsa^8-@>ynazasC}^Do{ZZg*g7#rl?nc7wx@Qa!j3p z&8YG~oj)$`YDmdPh^r?u=vwH|%-?ju^C}{(*q4$l=$dq9NrkE!P6M}G@CNv$Tqoua zxPwOFNx-|xP}7Bo4iPK!Uz;M@ybI+&o1%F;%*W}`m`qaDzxPEe&iaPq-+&I(nXsBc zKvhN7PF*fV@vH_{pKJ&@h64IQ>D_%>efEK*`>jhstYG9bSjZyn=F|z3p*$#_FAU17 z%T4{QODT3G$bxeD&${TV(Hr;!mH&QlW@r}~2>GK#vr1l(UzxQ=@BJUc&k>7MTMdUPB>h zO(_2RmcQ`pg#?gL?Tv-;GC$EE3GcW2{F9~fv&iOGGgzFxH`?h%J!DrtPXZ%+n7@+y zZ!bB3ZM#xA;XdlKgPjN0O76gfMjG6HX~_YYM_MVYqM~+BxJj9FZIoN&_SWTD zIgRjsrcm=PHTOAq2F3rP)7A;Cwwr@Fz?G*n;Dn26q>CSDqCm z<#b}JDOH;*8k&L4XR=}gy%e8F$#9Sn#hxO^q&p6EYn!si)0Cag<)}v9=bYfp#ymwa&A9dZo0SLb@lQ6rqYgi0xe0APxHkJ>tTlJTjN)3Yqxt%ftkB~z zVq*Bja)@gh36Tfhz>81%*5VhzapjQW1>CjnJe|kC3=`w|H4U3-MeeCmBD-%)&B^*| z2keQ%HbHO|OJg$^`?9L+7pY@+r}t-sY9qHM&0SZZSd8Gf#|qvj8GHC6bjYcXX9c27 zV>70)BbL%T;=L;JbekkWnQMM{CWUp6j+QX7!kRQWJ*vd6E(b8bqnFC7)rW~Z3$Wa^ z{~j;ELxMqK%J$|eiz+cgjUy1Om;W&I<5Zk^{F{o>+9p1mhK*x1DXYLyd$taH#4{;& z@N$$47GZzdY?}kx^uw+30-^=<&qk3Sz`>LGa+bG`ise%f zgvSKQ{f@2#wA?zb5=ELAs))N(&Q=A&&78oW%S}HOVxY$Xpw-IqKhW-0J!2BACi^h} zzNR}`>hl)~G`$CtYkNHY@Cd$kT5P|xh3=gDRg~v#A$GEMW?YMJCh;=^gTB}iafCp&PH>iI4A` z5P$Qi?*Ztqr1LG6;|wIS8H}n`f$57fV36#8Clw@hUx$h^o=bg7qjtgzLv1CHcaA1@ z9W-Nf$41)kYDFngOMbAG9MA4dB>E!as3$W?wMQz-#zKyQ9}Cxtit%uX{&}3K`@4w! zmj5GL5+J+V>q791K_S?Aw%u5|$Hw_dLi2Nc5c?5Yet;qQ@B+n2&KA ze0;epMVUj29;_V8+TD3cJmkUKcV*r$RFh>dIh45^w*WUYZ=?3AOF@GgA?mbmJA@rj z*;>3L!%x2r9#!IIz;+Zy65Eb+=xF35MZujbZhW}(WYJe4ZHdezi9+Wi(Z{}?w8wDI zgDO5jL1t7)fv05Ggt_R#he)jw9v*iN0vR)i&ucex#w=r!bHL-8o!f0^DGB4%-mBXC zG0sIC+l zkF=ZhuE@3*^IfG#Y;3X5LCXg1rw6>o%R|vZha&TM#N5B^Gh$E>=DfnEvKy^dlp=5( zU~pP7>~~#quM7JSoZEjEPXU6~Bc07T0!3H%=}14oY_a7YW-JEYk?hVv+v;Q!1cc9m zNk&gK@odKEbmIesL%xuK4Ql5whP7VR7_$HjgkeIr&l1Zl21=0N>R*5SAU&RK3E(TI z)u3N6Q!^pWo-;}{b?!r!e$~YA;qy8|4~F3ko?Bf`RSAK-l|mgvl4g2M44{ks$RGxx zNf0>{;XfE>0hgT+!W8<_))c!-e(KQ%t~p|40k?5&mEaC@uef3JH?pPTX0Q|*$WC2! z7G~p2v_~+(;XbC=+hGyz8serq{rFneTCr$Z#{{bD#K(XrHaB+!H=F|F3?EvX8+^U* z>-eF>?I6luqmsMUb@3r%Xn>_-=P)G`l7PO5D#M1;=y&tv7zp?Ck7|iYDpS1eDFKv< zfb^UAKhG6Uj@U&;vs*MkC=HB0ua=6nPNpN%~3%udpmBO7DG7e;N7Nxu~fBMoQ*yP%FGy*o=MhKa?-G{8SgPVLwTG_aUT%9owb{o|B zYKKhgC#yqnEOqPEe8T$Zgei*`%)RhZG;ypKTz#ZGr<)xHN}v#r&C`Ztv*4lN#f{+N zQJi2K4m+utamGRt>YuOtUJR1^hIBJ|30gLbOzF#@Gg(MNT|Y1$XeRgS&WFFb)p`9; zY!Zaxb$y!e;fr>etd=m|_xQ?K`scse?%dpc|J3pDPsZcIBr%gJx=+czIAIO&N6J&1 zk8r<8Lo6$jjMefy(%QbfdTZ zzr|X|XPVTDDF5kWY6J(t9nPaU#a#uckCl#}OC9w*JLoPm9|x!vkQ|ILhTAbk_9N_Q zr>Ci=HW`&X)>6e*=juX+$rc-l{L&u*n!+;=A{bT^W%xXotttt++I97L3>?tvpt*{& z#|O;-d6*l61f7EpV5g%d#f^8K`RWizV4M)rh^Ykmp#`9`VTl0?m}y*zi*Ga{Jz4M$KCjI zoEIv%TU1JQi(&+iUaJvF$}74F;FNBLpQq{7&gEb1K$KYk&CcP&dL~bJxSbN@Vd6X^ zcomb@K{P!E$J9=m>bf}`WR_E@@!J$fGuNt?(&)0hhqmqQXCIPn_XD=aG5&^zhRw-P zcn5Dgg3rKfx@94{PvaKd2%1+c%MwZ*4g%&RZ$!h&N7d$o@TJ#?|AH55%E&a3#*4NLAu6##emE8wqmD@5sQLG+#?EnP0j2NR4O2xh?wC{OI9QMQD#fm$NqEO>!-cM@jvD}0{BusNfNN1d;I<2c~ z))=Ci3gg z0vD|E`(N-VN1q{OqPRYIXL&&e)$TI3Qf~QA-7Zv5Dgwl{KMh((U2JBksn7Ny$GD>^Zbz5&WL$+W`RCAkby&AG~$PDdk$tdjq8) zi{`}plD5Ev>2T(E!;3Q&QoEE17)93azs-uDOeNy(q?exncM8`Mb0tlgYtHGSZ*WR1 z56Zp;HZZSOtHXvxd>}kc?KxM`giN5IDsMS2fZ$C9^t2!DDF&I|14)gKyUZ9^?!F4; zuH=WH?=0<>47HY^%nHCF2#kb*j65y5jCj;sExI!8B6o?6yvl);>X@4ab$)M7#4||t zL2hg%gz~amlF0sMI@#{rEaP}t*S`JDs1`I4fc}Nlv^#Y?7rtkShKMJ)hl~*F`#(BY zc@?l$eUD5^=96&*LfbmM*it>*N#^SB5#!YQ_EibixNuo$whv7&cA@zHk$tBM8jff)Q~RP?xXJpHBCKu zZs}6LtJ;}~)U)p~-ZT@|?)7Je%cU{(nA79ETS`@G8lbrE7r?5N7dx4jeA-7t!Z`I# zsQ*@ij1(#|Gj3^HD)L2~mme24WXE8SiYXIbhu&%TqOqvyY7yzhlj=ygzNFXYKoXY^ z1ap}!`>6+cA~DPFZEJ1Xz=_~g3c!)|(hZ^)#2{5Oh|c2>zcBYqY%wG;ROod4JBYls zz$dMzkC>nAR-Ry^=sNY-kWPl>{6UP6cdt1+wSrraR6H{CJ|48Q)T%wR>(OQZ8F7C1 zx_zB}&>pyB@U{O1S5+BPmF_J%2uHm4`V&-HqNN<(>(Lcw`Yu2{touM{S}V6F22& zv)FsxLP&x;y+QV-?Bl35ulWxwN}mQD7WhH3W&zTf*;=EvoOdbcyUM*EQ=;Mon&Gyp zlOU82Jz6~W^3OHgBcVlC25G_bI#SRo>C;F?CnqgaRPvMwkfMQy|E{ncYnwU>B>5#r z)Jeo#)ai?V`rZj+;j0;V9RNUo%?tb`h=fkhYCN)JEdD!DpRJO^zvh;0d<4oM4qNa) zq!kkMVfv1`xNkkYH&xeCK<4BRpA-$e;9}1Y5jjtwYMC_Kbc33WTuY(+*L%K-=W7A&5`v+8i`93*~ z_*$6{scyee;vsVqs?VxRI!;!35+yyP>+ali)?-};qs_SM%N0)SEtMF1# zpX-m9L4#o0y~nxsN=Tu@tfewx5I-IyQ=ALkFBGA2?!jpP2#PX)g*>>ugDh)rv#z5W z>DKIic5Jl49yHM;3JJpl#5ihy3th-9>e*z>L{dZ4)T4^zk$W3#jj_-DskA(0g6#a_ zEX&~`r=BS-HCXZ;LW;l~NW|Op&{1yjd-=P`!v7;I+Z8m9zDlTZ%uQ5|F@T1Qhri3{ zUz_W@_Wq>9jEma}+NJwpNrv;qJ7wi=#Rvuk*LY65k@XoeVvK$QWfGqr5zV%s#_7ekukoZNzhO-3r#Xg=V)D zK5ZNUvffV#QK~R~Ur5TE@@$pNKpNpGpb!G;ah#T{c5&kY!DrSgW{^Vl*zgk4BWFdg zotVFqnU3jw<0>J7-;7hZhFw1eoT^f?z(`Qc?$0N%Fx=`mvzeUDgtDSGMIl}Xxtz$H zgCL4P(z7(ch9}h4*}&^OK)1TyWIa}p6rYWrUWXWU2lBp#&dlh$SepDV>TgBC+?>G7 zkiH{$C5;R+15=6TDkm+eiJk_w`7+ z-pD?S7Acz@8~XRO4HWvPz-Em~Q5~5CAANdWo42BV6eI_5l-J4R2(QKFUn0P3fN9+g z1@WhTIU-pw{~?t={8M!{@m`Z_jI(5=#_XA;r1a-#3w)RFy-L&WUS0QhqL|l63~iNu zmGCohHmM*_A@sD*?`y4o>LmU;@VY(oUApe+M&4cPdB_TXC}upD!R=P+K8}}utxU%B zourC=qd)zs0%2&KEt2A$aY5in{tCOS|K9S4kGI~Reyy+0W^{7hx;CtFwx&*N$8RAP zFy(TB|3T@PxOziJMS>T-YJ;DH^qDcHGc{<9v=q1rDz9m^p@ z^Qy^httCnDJLC}0C)8mxX+xSU9OZ5}B6V-|tmja7<4GJ95vIdyni;DSo~71r>Y26@ z`<=5g3yaDhYw%p$JhZ1$}I$}Ul%M?$@GpxV5dB2=6O^yGs6_4 zW7lsNLm$gbX(?3!`Cag^^6Ho7vjm)Ld8%Qb7-|eADa}P_rh)QbkD!kM6h{*f=1eSU z!HPZ6(VmBx1d5T@#rrnLKb}rge%;93xt~^#acNl|B!*38d(uyw-J>Y$E`qIDG0=tj z0d_{DvV?yQGWZ8v^O~Yu4c?0JA!f8W8a&I2xvrI}?OM-nFIkJJ9+fYtK$YAlf;+h0 zIdt}CsqLhtsB4FV%tOH5e--nz4E(F=hxq@C@#z0pU&~JUXT_8Ef2Y3oFMieuRys=L zLrQpfRVAr_G|#z==&%gej*AIls6AIH{%cAT>R=P5Rp1 zp>z1^`Z&i~HEcr^T2_(Dx2XTJd2PlAb1cy5rp2GZ+6@yACG=UDO`+|{Ev4y-OQEDEu z?m5g8Nc)N%T>OMa4-HUBZmtrL;)#mCq1Q}y;@53Kygm<{LcZ2CF70OLVU%Qb@XJ=z z!lsxt7mgN%T?p8AKu&SZsOh*^d!V$^gbm|>1Vv#<{ceG~GMbqiRr2iYaZONZ#}TqOJY@B)Oev*(Gx@4*FMCKB5f z^}AW#UiH^HEk9wPo-zL%oiHP}2d(ffk|jm#T}hRe`+yFJHCf6%X?uCUV4e4{q-JF! z_7xe2rA?$5DQQA3!p=X`Xpr=@ScmJILtlQ>h`*`RSv&$AO9tJe*Ec3c!v=#p zGsQfnM~bKA==!c>7INX4>EVvTb4ynb7#At24tQb0j>l8&T47Ha++QkEBFJ3hk(4`` z{|TM0m$4*xGcVK;i!FtsSLm=~i#YMPh@`ZcV2g4mZlwTGR*)0S-Zv%NOI}(wHg_ao zyF%h&gqY+#wtiX{b761?uOefgg`-4QZ>dX!3inGlA`NrlChX{UFkE42`=f0Y3vvqf zG{og%`@_@Il)ooY9XW$NyBj{Ptba6^mv8-$jtaep!nUNFpC?kzjhKY()un+gK!K>N zoJD`a;tC7745}b;wHHz`BVHec8QtQXC7YhRkHG5;Z?py<(CeQ2-bak#aNEaDrO&(i zixv8ivKCT-KCuyPvc)Tst1gCc&XvhVPXQ%W`?7UI^quR3BO^CXE}VGL=YcL z`ngKMVJwXWh=yduNR^=L?iSNv();ci=Nd-hQ528e*CzT9i^h!!{a5CvMr@55mR;m3<@RMK|(M}H< zHf8&78aaYJki!q>usGl~GqP@cc!r4sVBP1~#{%6B(VL*lY zgPh{%IOW>em2Th*Qt(^7J*aE1d4QX(cc9bqdB2O8<8Ou*!`bZEY) z0XypWk=A_;%*qQN$}#Bp_XEiiq1Y_Xe>9f1T)AN)E@;<0-IuP1wd$cHzrw9LC1m%i zuX?k-y=sSdCqY{_HWe(gX!Bx35$lma+GD(HGfT2Ff)sy$iM=NsQPNnJU#0}iW%6)_ zkvlG+7OWM=Y<-9x96jGPK0=q$;Q1mjfOesrxA!cgxIl68LmyIoU4N<5qLJ~&OCkjW$Iz?+H{Q&+UzU6Y5lC(3xnaaT z4X(+Uob^VlPv}W?1>Z?=%e%ttquk@Y3{F;cP!$_-a=BwV9Amu4fD7Ud{r>n{GVT~M zUV#2JUMS{xG+@N%WwdK#L-c2>ZaxTK0%h*cbTOuLu6f>MQV+Skl}F1_L${0(@ab-3 z4CL#&el$N{Nz_BQInTir$M#*%ZjU=c*9E#pzN83UD~+rwxLA=nsyN=%))v;pm#Uh1 z;8J8jTtRkRfGfFQPeSR6(dCEeez!V2`q-`z<721U90mkcLobvqE*WW^g`XrMm+8|g zp}#=Uc&};oOnj-1HVN;FTshdht}Ug~+TPF6^$A?ueN&vBtD2o;qtaN|No>k66bN}Z z(t-iIh^>zCK)+J<;(fD^$z?0Wn}c-5l+@{W5fJ-6u&%P-Y{j>_Y6JPZv{86 z`^cBsVSrHJ4#a0Cz`3;gH`3!j^CrX#Uql5&ckh-)HD)75c(0y_P5`bHE`t)(j}Q&|BJe}jEZAXmxe0&QXPPu`TU~{IxCw~}^x`Nf#Ro`sd4{Fv@*&6L%VOJUA$=R^l1RyM z<%iVi_v5X9X%E?kiPfqv2FlLKiesuj9;SoZ3viIL`4wE;hGU4r5--{@K9CobbVC8xp+x4HBt&T^B_TfCw4i0C|}A{c1U}h!qHg zq^~K*D5?H0JgL_+bXX2GlCloWYracCU$~K!*BA`S#Akzu!Tgyqbw-zqcu^+}PK$M4 zIYn-dEXcuJ>60hhX~1U_@u)Vax}M+ovC2J=H^ADvgXz~r!?x=dCT<7!5=7?y_SFLi zw4s*VW=rq!k7-pr7Ioy7@ir3GE{9VdvMpuw5XXdz-@%6k=V<0+>}t~IRK0)2Tiom`)@5bHFxH$yr=ElMo9Fc(&Oq`Vo_EJWgNVx zkM*^}7ADHH9H>kU7Z~JgS{N+i>_Sh|x`Qq>O|hum*FsK3MX&O?m2}mj_HcjhDHS4*rNQN(`Xsl)NfXU?(YlZPNNoJ_~twXZ^{UxhgABf$1p%Vb>+ zsx12DP+iEA#ev9^<)n97MAIZ?QWC*E?1q-Q_LA56hNc3LET8HsAxOD=EEFFg!PO2D z)Z?9Ra9xCX|MmZ$D_Mb%KwIvPG%t!~Wck6DE9?0mk_l3>(a792$=fDTv zbNggnP3}n3RR5~+WOM$aJ!hdy+w8sAt-<~h5B1dd3_Kw_>iQ#oc%+VTOo{x){-XV7 z^JxXxr+>cFj4_OSZAtW?yTC_o|d4) zSRmGtDsOCmP{79acv|1V1>m|B(hykGb^4rMM3{Lpc|fPJ4G`wXu5gcFJ5W&|Lh1N% zO*KH_v`KezPoL=y0tG^<6x*HO!(HH8{Q4Ru4%rqG)tjo1FRU+`UN^D) zv)c3FzpeH#lmD01oFpOn(!Ocq#@O)-}4HETU^%iUK! z7LtD{33GOyZD7`s z3CEBD%5NaIt@>Yel##lDP8;@Wn{RDTA;G!o9G^cqs}^P~cyhx0AZ+xSd?Q`lv z=VSky64hMV5=PB>Sj{#o`vnM0ra+u;Hr~CoiZyyK95PmL=p9wPvVJ4mvK}=D`OUj% zF8^RW61F^-kI_zgfi$4$Z|foU5kuIrp*CLUl$}96m{}cBI>U zw=|X$@k7GnoyjzS-l2~wH@2r@{ZpqqF9x+DXo$L@&O2;@pA+)RlbSExWWs|qlNMty z-i=5fxCXOsE*WD{k4E~v56Uw6At9pHxcA=t)gH=R5V}%(MtqWSextq->y{}a_Ghiu z2vIko?7Wlh`|BL!$)vQL-V={Y)~W_>?ZAs`qFKevaJ()Qu1vYKflEl~!ybr_#sj+nc?+lvgWp!b-scin7CpBKQWck#(1W=++SL`aLPzpX_j& zOJ_AvnBQAYQ^QBr8gw9-nU7LN^Ql)+=0sH)A%~Pa1E77F*yHhJWfNyFX-+ephii$ zHd07LdUvioGXA-7bC4Ss>_&ZY86}Z@#ZC_#`2m2M?6jJ?ky)n-3j4WhrpZ6Jq(c*Q zHj9xgh`Bu-HS-NU1c4rve8Viuk;Pa&Wpnbplp@&z^)lQ{m@S89uoeXp3A(3m39J*z zb}C~h{yzM^s8CKoADw)(&PzDbeeTvjJ!KmF%zu-oFFEjFDW_20`=dZx)9n1ojNUrR zy@1M$i;A~~%}+gI=bc2E2kd2mvQBLs(M$=5Kg=J64LrR86UE+_8nYf+F5Og`%`ybn zudWk$iAG?AUDvI!@Am~?0_HF#F66~g+=u4ZH`tsegr?AM((5E4DK5q!%s2?g2j@p{ zW}KcFvt>nHXPRvCas^O48~jN*2xM^)Pzyf($+{Jh9 zjh{Cw4jL{m@oAe9llj>{mq;%)B;r7YX39nFc@~#&iGQhDVMNdJ=VNA{lx%Bz-CkTY zy5mT7=A7l8Jo%1tjuFrNl6pvZA^E^W8ZbnVTwpieUq^vIhS>Ess#hTB4g6G6bzH+D zeNN$ppgtwKkx7{BjqG_KImaA~Sxn-UWb^B*&u8$>HjlDtV?Y$itAo!iG|tD*zhYiH z(jHe1-D;>#tty#}Y(g&ql^O?5?-t;kKK@evx~%Ceo`?QHMFSb7f4cF#mISNvQ*aSR zhol<4F;q4EWya5%tcwr$2AG}=_#5MgX?%K@o;Rbz8-C_LzCMLQDO2D1-?Xo}{K#S_ zIuNqx-WR%Ulj0Q7%43#1*(0Z+jW&_>Chd(^0L|VmJkHCj&uDwUZec|p4Hw*3Qi1xtiMDQ>aKsms1U+14V0g5o! zKV&nIv>$TZKQ1B@yubhAi!AL`x|nt{^h9h+ z+AQ#700&u^57t5-SsBMwzQv0tHbyX*w=ntL?EdeK{QYrDD-JP1KKKkMXpFXQruS^*hxzEP_ktfd57Xb1LibaX`^k4{ZjJbM!f1{9YsV%%GsY(` z*p7!I*8av~fLdbdb{02-Kp3Ce{w)cL?!VRAbz^eX5ruKdjp=CeqDn z#x%&{4Q6&9*xa&-s@+ZI^j{3{9AA7>88CE1&Pw`mLtCBvh_$@#4SVFr^tNrXAK-`E ziwsB0eFm|?g;7NJ@$kraj~{5Fqn*KAf}=QceJ&qGz7~$MeJek#{Vu`Gz9so4U;^`OG{X1 zJSOriU1-kA$$-ADU|YH>yvz!B))MFX-F&7YHQug>fM+}V8oflXeD0d_eUYh#Viazr z_UQhNC9a&rdTAvG2-KYiN8a_0&xE7-Yz;g+70W&IU5dWef6?}^i*cpCQVMV(y6!V&&LB(AmyAMRg!l;;R~{>WU=l|&jyuhHdDmrxxU7sI|! z+%b>7gdnpVYL>(~nl&DM-VOBxyR;yU5Hm>cMCn3KC0xef%*6&+nt98Bn}G_syoE1P zT53F!$m)A$!BS)bUyvWvk1HPx-sS<^+6vhtLvXrKw@D8cJ)R>7EP+9*2B20Wwj=b* z_~&Ih7#NBC6PFGg-=kqQcrR}%v1XF6>LkQ`FESC`febARFxXdwIrhxB&%+=hsdM>I zxv67rG7n*&*uH^a%K7c$ZLYW3`VT2D=@0UvqdM2_fve!59$EOd$xoPR$r2zvmNSDu z?5ZX3vz=6Bsu1H>pa~U@!WGwxd)#54)=z_31vJ~p`v9nnA38RTbPUid{yy+g#`We~Zo zf(F}ucZ`j8BC#L6DhKAp8*OFDgFqhI%wev8PwxRD{!>=`g`utmh}aak#(SH7Wge(& zie@Gn-}7s{!HsR=xloS6&!7TrRGqjCi6AL>wEP>E{a3^m4->osUwschTJUij6Sa1 z9^s~U(jF^#5MHL(V8G--Xt=FEc5tcuHu&(1H72J}VVAz$4R$Yiu_|(_daqnZ4+EzR5nd`1-+S z-;lw7{uK@eErpr?d)bB%+MXAG-NhgtC?wR#d792vhd3x>Va%|r<^ASzfEE?eh&T%u zm%EDgQc^nK#iSu`|eJ&XyFn!+K)y`x!I&st4m9{<8gPlo{Q>H0JJyO8Lju;{fm& zTq#m`>JiqC-{Qd_dUWJDv%5c(+;ikhl1IKQqE!5v9my-e2p$tR(is82&lMS2%zA2g@kR`1?;Ho02k52dm6H!*zc%Wk9p;(V2qeSr=H_W4rrNDlxh;-YwOsr3= z6R?|WJ!*M_?kTi2s#I@he>-Zz`6_PKh7VJ`8fpndw;Du zUKZ~@Z-;3pe|N1jlb|nvC7ToX(<=#lKwY3A&IcPt?&8Csy{^<Ko8kK-3mJ3LJ@{M=nB`fXm@ zwPRtVrK)U6D@0rNNS)mFjB6lAC&Ec|%K|Q@f7GRJk&9c-syLZhj@!7c1cy0V{f7B~ z_9Wiic;R?HO3RDb%QSVFIfi?#s$$ocA}A>AlKkt7Wj}JUy$+*0Nz{VDNhn&Au#Ho&?fq3~;kVHH;tDw?XP($ zY2ti_g51X369|3+=_gG!aFn;^06 zb}JqMbK&~au=wB0hZq7)X7J5+V59#4#PHwir)SO$u&(TRW3X&_ss=@3n#Np3&~Sz) zHzVxkvjNjVT3W~l5DX^#v3o92VFy+R{hz+A?v=#9d&B<$Y2E(@X)HyUfBDq${zudp zJ;w7lvU9aq9QxpaaM+9s_I-E!Pu%&}7u|_7rvHZg{`Z59+o2xH)5tSnzw%An6NSn1 znGMMbE`^Qk>sd<%uNRFkTGm-gEIT2*7rJ9AVm0^}SrOH5 z`gqBdvj*=d@@wHGNJdYF2@GG9wLapoEvQiQkFsLPebjf^Z^wtdW~W)y3uEg@WLMVJ z#Q-SRK(50fZ2lMNVx2+ONkAb4N6Aedhm#$PJJrV$mNO(-p=((3-)oS`KGpQy7%AaV zx8P%3NA58*A-@gZcM*ht4IH)QM=97ZC3mf5JMQJw z4V;bPzg(!!2xOORZdFYSQXQ=YF2B@IAkT1rdNq6;V91Avdb(b;NK8Cc3rN+?As95a zHHKU-sJWgfKPt)Tpr5Y;4W=SQL+_DOMoOm63WPJ?Q`UErtqqHInNhS766)|)mb=L9 zH^0M7fnyVtY}$ZUNAfDU{q1QxydvJ)Ccna0lZ14Sdh{`mIZbVzV>;&qA5XqS3jSEY zu~QQC3NU6v8gM4hG>n^&qNR%#Chk(hW>e@7lfStM-$Ea#w~9>(EYLY_4t4#Y5xvU( zO?pJSPk>>#-cN5eky{=3*c3JLV8Zi6T|&OpioWENfj?U=>kO~pcgT<^Oe3P}GuGHD zy_yge*17~%`xmJB&c>+MQtejJw!tmhzE@%oM^Ro0??T!G?urQI5#oW8=-3C&7FXaW zv>>zi5`oFrVSm{Z<6?~4jlPF`%o|rQrsdu4rTqp!Ev4efaRLpr;-qfILDmWLc2T+a zrmQNt>oHREyR@Q1q)raDLnFZv(zK&m1=b3r!NOVrUlV|Pl0;xy{KXcv$SPnRCp9{lGYiP?>wBM{s zm`Of;Xc5-dDr6SVgqOVr3VLSqVX|92U?C+h0%6u{UOc)!mta)QsB1V zzC-Vy7tg~IisEJrnB}=;16WtAyb-KY}vL>?kEbc@y@Wk_4se z@2V6%ZqbUKu*u;kMgzH7mTGJl@#KYQ?b#2#U}Q&s7)4aZOZa#5%snqZ;Ey>=# z%%L$l#D*KCZnGLLCV}r{d3jPd-5ozXAY2{s#1AiQY5WR_>_ zQR0TuGep=!V77dcS^~^IH@IzGFJA>u}I0{+n7xdZC6nkNDIg~0%R|DGMH1Q5g zw?D2~YmeLe0x0K2^)QQM*|fEC+hZRmaybx4&|Q`Bu&bE5YRmS+x$v1aQG0QUbG3yB z3JV-)zU%HYSbJDkU_s_SA>$z^+pz2X-!-Cl5ZC!1tO00(3_E}GPyZKZ^gkm9-JuVE z{Zj#dKbJzgtTZXlWYjqYb$iTzr>guv|8pIU(^{Ra9vccHtRymsZwtSZj8Nb5YaM-XR14w9Q<_ z`~RDhS_FoU`+h-|&HWtmmw$4{b%&URu4XamSAVH6IH1eoFHY*JQ8AmHWJKIMx-6~W zB_`^d*b=Q`-P~V{lou-IrB87*VeI|msZHztF4vhsT5uE(RaWFSpZTnVCLNPL=V&L) zcAEErVjFV|>0bVU%gT9a*pV0%PD%&=dRagMp{Ppy^aoo0;z~OHy1`=o(Ls~#@NyC_ z`*rs7_{Z%)Fxa~U4)O))b`_!$)IfOR6VWQUYkwQHX9>7`22;twnQ(p0lUndpOGH;a9MN@qc@l`%>C;Lh~p6xtO zJ|yd1(l1?X^j~H5a(jQ^RZV7hzt;PLUn3TGCk?Un)`^VqNTu|(FRw!s)*)=nK^`OL zstFl;-2<{`zEQxAqA~=t z^n7Poe}=1MTng25r}PQZ)1!hsh4aDj>ufvRLAkb<}{dk4cfQfmZ5s}cL zD}rY^$-6d<_~%i%JK89s#v{Y%<;Z736@Yikzpn9h0o#|m4^5oYx@^vUu)PAOU7S)$ z5z(bb(LTM~Cd52%jj&9N#orrX9aldi8&FzbW1_Ho){&e7nNdow$%^2}FH-PeTJPPh zzlYeKc>k!go3>>Go(L_#`=e-(xfKp7w$lYcUSzgT)Nw(H?nXL zC^>Ly22#dD)1UI{N0vrFriw_P^q!h78&^vj7J6P$W8zQ)k8HA=gzpgwRbQP1U7HA^ z1ICZRvFF{0K^xFFJ(-A5qRKRnx*Jv1rn3{@CPaAzjve2A7pAF!02pEySyG}D$iy_7 zO`guVMC<9h_Llf&bHK`MU13n??17tL>dpg!9GAdxE3qD2hBWj{Ut7RQSl4q3fitD= zG)>0``mEN&HrI{#HegQlV(#BHP3H1N-x_2GmecCw+1MCB$(M?w^Qe7(ZAQGZTkBm- zbxLp1i0h=@J&g6g&dBfmYDK|p{tX&o`lH$O-YQg)tqn+usfW<$u!H5E+$oQ537pR_}dt(z6b3guS|MBtA;GwpV)-4ba4 zqQeNV39!nO9N76hnQPkwYkioJ$+wnGju+8s6jI0cMjV#5LGN(hiM-dggB>!{aaY}n zKNL%1bv8nO$!bc!3YiHmzJ4biF!xC-HB}CvqOTt;HJU5_pq?!o)ed>zK^PivZ4Z?O zf{s7f>)8&5R7P|(L$YN>>6NNUoy?*RXM3Z04xdmk)^1X?#T-^Lj>L|URaQ9)IF2)O zo~5SVAu(Q69jM*zE%6yc%|n!u36BWkoAW`G`O<|Squ~kcqS6j=a?_IhcJJ?W9f0&BWfo?*uzg{%7p!|hNZOPqe$Z>()Y(?wgV50a+JeLVolb-q z>LZn3M)>e;*w#ocwaY+}&``zp*Gh4Twns@c+}kj+ms@frgEYf#YY(V<7bknSJJw6Q z*I|~DE}az3jlTeq;lBaVy{@oj{I$CUgq_PoO)-2%05Irh9Nficni08rja!s{Vj|3| zgK=#M3u{Fb+q@5-RdvfiL!B}_jHkMa&E%I_<{aD{y{>wn zn^^Ll*I8_*X&Vqvhm1xREh_HK@q`?3UNOAHgW4pbV6#Q#){GY@@qVLN-qqt;@4Gqq z9t`+!a)_*K-T7Z${Pc|;DMFIBZ2$SBV_j#pNOe&IXJ?-N{Vej-kEkUrAgognb+_o- znZwH91O?E!aG!ilGkA4?6>pCyKE`dakqpr!45h!8Rash34=(sJF_;S)*>1E^V<$=X zFX{+nk7w(YlZwhpaN9YURWu2$P)vaQ@QVz+Tt zONHGV3Z-Vja6luMt*A#E%Pz$P_`V~0o#ZlzZg&}lJ)Lbm&h#}sbMk3a7T)(2)wtD$ zp_=$EwfVruK`+}e@jO^qNQFfm{dIf+QCYLPt8EDD;&X$kHf&^1e4G_~hPx@*(JsMl zF0=c1Zba_0)-4ly#`=WFkbq4@t^oc8e)GNa1)*2I8#6`=7Z@qhc{hD6YI{@`1X_nE zM*jzkM9Va1bUzc?dNYeUn`Hk=8_BF{;A^S$9+d6mxM42Y7#(T|tF z-fM>DxskK5oB>NVYD}q_|JyU`qz+T#&sKY;`2aHi`HF-|ny3y%vHlKxB}Urbqh!mF za48Df78rVtF(vP!E5v})FZhx(5@tX6ducB>B$+B$nK{s{+M2y?1DNLwotO}ChD)lD zn_fze;OvHN$-*>K(E(mH5NQ!#yFb8i_ysur5~Heu?$saQglaDJAkHZ=UhxFrX2;jI zi)wmDX*;o_=d>EZO%H1_ku#ZQM<@hKl@&!LWJKZ2XGT~#$J@BcW(MiQ9_&52CGoqALmVvUn zw>2AFp{8=M&na&t&R&d;bBqt`Re~?|Vvl{quU*Xg#NN&6jTTA4a?EmVZ@s{BGydEi zkyik1WxD0)+%X?IHI_ilBp*aJeCwI>P z0Jj1-azVTgHACc%d2BZ4`O-y$;gOzGy}#yYEjg^6_}pAirJRg=yyZV%1-;)y1i?Q@ zex`N?w)j_pn;j}JFGOZ>UwdyjRmA$|cUv!2a0*D(aCm(f5P0hXncU{L|1f~KbGR?! zS&3akr1@_0wPtBldYoY(*!~SZdXD_xy8(tfiEPO!DfwH$Z{=7SMD1fr;fuu#9XVu# zZB&AAuVsg1OeF^jYcGJ~8$^R8M1&2lORa=WJ9Gv-w(W}&JAsK0f=sou| z)oVVu$N_rbZ(5u=!4*lW=S-q|v4yR7&su6Vk-c|mRVy+Z;9G}8=vN7jT&x)bJpfXs zQWjCv?m403Lf3+$s~_@KRA+e&UC0E(*FkRfIxB7-$-MP?JF+O25p4-D+BB6KElBP&HjVO#OYtOn2%*Q?flM+&M z=9LH9elEWPdRm@3bYAvApfwj85+Y6;S6W8TSjFU6LsW;{?_*GRJwnvWg z<+#z^2n6#f&b?4FRyNgwU5+Jk66+y;&Hr;W&-GXxyp_Y51_cidUbr^D_og+snYQ+g zjH32Fr#}T$S72b?23w*1FkL!scT@qTv*vi;QD5EH;n6W?ahV5K0Vv@orVpJ=++TDp zzi!ZN)pjevOf2#gJ$rFph8Z~72A+pZF+)kTY0c+;R1YdjHCtRG6D3ak)L66;k^38_ zWGvsUpls!VZ|BRPcbgSB3Y+|XLP8qP@Upu5VKCqDTn4mG-Rr225$HvEW2g8@wN$p^ z*qq~3CpMIywD&<+0_Z6TRqsD8_0%a}#=rlavU0KeJv35}%+PA-7K_7-^b;d3cIJ`5 zhFPuK1`)f&%M*r~JCpTUMnQ=Cy#vIdBiKS!RPn_4{43|~R>|^5a=~x#OrapIb?u`p zAQ|?2NWZIo-2AryR_pI)cEj@PFKcw5`HSefuUB$Jf1g-x?pDs12 zZ=gb+7RJ703Vg6$yp2~pgNG;(F+d3F!zck;Ta({NmwQ@6hNA$!QuMA3oieotZW%2k zx!gvRV8zKa6Db5eoK&w!Ax|CUcRSumL3WzUMwwpvXuu3{8vo! zT^g+G%KSl?LvJ$R3?}-K>-KOGZ9=}gM_dr#Ib0+;_t!6;qyAp$>9e5{Jx)uu4004y z2{CWewBf?l>>)PeNOk<)10U#&*b|AvW?cqA;G$U(iwW^)X3p26={ESL)$5NGzDD?T z`pDtALoQ<-DXo*=BBWmCmKM_-1U1Tnrj;%?1XCJ4o3oq&{SXV!)(~6FWS!Q7U zysyr==J_176DYo6*Xy+|$}+uPE^=9;Xmnl=0tv8@;CFbhn;lgfd@*{M>YopWlzPy? znG_e&=%PmfOm;r4&D}95FhxA;t|4C!97?CNqR~TQOMZY#QR&eJjY3=TTHMBx$En69 zW8^i|l%8o~ZxzHFc+Q+{l-Y!J1 zi?P>=i;UHczspA#iG!Y%Yrl*V>jE!zQz3%JXby2-ak8yV99n#I#OR<0pSBv(iC6ZAAFtMaeuNaAo9v zPFQn?`7*MvdabfBkv6BeNQutmMq#7OZ(e#}IK-dx*|dgDZtlLW-QxBV%0GXG&li={ zZM+t3Vd?dh{QMhq8aHxBRLN8^SO-}?zw@VyOkq;fYjd8v5U{|%^qD#;mX+5 zTMz{jwy`#ep7gXvfv1M}uqFL^Vun&%6&4D~OdX^JCwqW??5$9PLPs&Pq^(@{4DomJ?63_~f)mE0vV}cn**ZTzmXh#}n!vr_ zF~*ImP0#2xilYX$r3&Q5j&=gYr?$704kLbhyWN`w3|cXf)27l5gRCo7{Bbm!qY~f%d;W#D<@3en%giI37y<(gt zX~2dGm-nq;z&|woij>a9awv{(eIfeX_Z;q7IlYL)R#i=&(RM|O93M1soK$cWg4sLe z%-sYn>mQ5SCqW738yFg`Z?$Abq`^2ww!zw%NAWme?7pFEI@W+Cx?ZROA=?KcpmzC!vPwd)0#F`y-d{i-8&#z zy%J&1m}upi$&7*3MJ9ObR!R!o>f_b4J>LuY>Gh~IKGwo-Pdv&o7mYuXr{D6na@B#!IuVH65ju ztC!&Pxu;pO$hZp`}o2j@1h+vm~cU2t&>ia z(t}(XN7P#63~U`OSl35T#7~}kB{6tYeF0kM{;=ywltnMKrOWR8<%HzMeON7gl>xeh zKUDwT(-Lq0cQ&Ej_cC98(hgyE(QDaV3q1}|ZviN+s2TM2x$q%MMwta{;~M=ZJ^ykB z)#eE=N|b!m4GprEqT#$>Dr6iaXJRm=Sgkj?kWdGcfa)HIwZeiAfraGSl<rI9zuh8)xDz zPlV>&AMdf|>J2fvfy?}l*K@(rwUFfLj43_u@p7|4`ad28+;a4sWa#pek}hGVQrP8< zatP=NU^izr7b#sgdD#O7QHQOj@|m?7ia6iNyTSv8`x#Ltq46do4sI^%AVa=JWg18T z6_RQLO=|zQrUCpP%@_YKmfeF>4{6Lb5<5G)%6|&tj~;hi1c(1V_NDUw&LjNWDSW0Y z%{@nPUge#htVItY{Kuu{T1G3myQ})1-hEU!7oWvVpPDWUKWt}PSOyObDaceTwHGY@ z@a&X$lHG}Tf0Tq8Lmh2=gww&)>#03E(a@ztQ4?jd71GpwynNh|Vt?gm%bP#Gn9w~Z z{#teAP~M-qsWZ?+()ihktAoDz)@fD$1)phnn>J}}qd6*93bZ3RA^va=JtB)AzDWXI z5A!^ak0-P$e(>S|c+cdzU&NTZ(~keMe1r8L5d{)ep(}?os^Im-go?;hOMl`DuJlQt zc00`E#ebOK%&M)c`lkPHUB=YQ@9rN}#+8MX?(4MbC-YAbD{n}QDv696g31@2N_sJr zxzM)^bRK?+N4Yz1R+J6Cmj(C%OJ2&~NH~y&Rn5ERu9j^H;dx9J?ko*otR73yeBp6& ziJ{$Mw>bQLPs4j3oPH1W;IU_NL=QLlk&!!q$^T}5twUrofQ9smy~=E8wmhA6gUf*2 zpMv=**H3!MUrtv^Ew88*lM{acVB`vI{H$1Q}2^IHJuy4BTdO@!1!I$iwXRUpoh zL*-^ejGT(MZ%ID>vBG*x@A~`d1xmOy!h1c7j~yFy@?(D4!l$upbU2+UG!6z_C=>e} zaFb(~Tb;>nnGTyM|0Bt4GDa|H=e^p%r`oQC>QP3V#RaZk+R?jGv(@eiUNq=Oe3H~! z^}`@|WkdUt)?)N=+B76oUUG|YrB<%tty!+S{*%0HcfW(^?XNQ;O?^w4}4VFI6a6@yEO)VJd% zurDKK!YD=s`ZypTgi2*`bOqp~B$cwgV&)t2Dmb&|tq@n!1_IACAoD!M7AyNE3u>4YwxS&<~5q~qPr(_9KZ8sK4yTKQfa`-MCEvl==)ejnvM*r4}hU1Q2;0J^WgMd|f zgliGr$*Y8+wFb0TdMpN9K+C-AeXV~fI_@>^5+2~c!T9-M)7^0QSsJ{92#IydXwc)9 zLRK4;;z5V5f?s6l9e;+@t>_i+RBL`DRnLEM9j-G!d|P0H^IvCo=Qr5Je`fdM)sOWm zqHbwyhY5g~0EfWCBuU8Zjy)nPFB&P^BFmqqP?+BgXv)=DIhGH+^fW#T!;^nU;wUl(ZsybF$^L^MW{Cv>=>9uPVa05gzJ-3XX6T<9Odsn z{rYQUm;Tqt&X{Stp>HK3nw1Bjl3o?GahMu2srq(+R zHy7h_7u;VYvEaf7xEl;}Jz#Q9f?(Quz>fWhmqhx* zB~(pE3CFV;El$@AIBJ8t(EM68{dc6B&LQE&i}$_r*ASdG*?C^TG^L=7NHq48jYhMt-ZOw41lylwbp=9N1 zCFY|sGs%+kaqBRSKSF!Y*_)TFxV(bvGQJw3j#Qj$+qx!-9!R-`N9#bF*n_Z)2gle( z7P!pE`?YtfhQ9WaS#-posc43U!f!5QSrKhJM3&Trn5&1OMXf0BB)MKX-Zf@2=2AQx zo*1@^3}bg_XsnbH~q`}3{w_6X}2IhF79QWjbP>?8Fd)D z&&44g95^Ex7VJM5{otX#9WH!2Ff<66#0S0vvE*rc-D?1hwIG`TyBi^(i-&XZyq6n1 zI^pQv3>2WJLX_x{PDT9V0roJ?odVwTR^3I6-0{S66Usz$wTM5f(bb{%PWhm>LlMwC1O8hZAwc*i|M}6uB;HOyEu_{S*n1a1xyo&XFGLp^zM_z} z@O|>!AVQ*pv^S#-0578%HBO4eV$zE<8*uvFtYXoB-V43NC3)C2tF@p`9yiF!v7H8e5lko1g2yj z_FNP5Ygj!C?}FH;KWl`K^x1-t)l(4?M*!lmD`#&O-7t^qZ9(JDqvmK2uoWva=RZ-BEyVG2`1CU4M??RkUj+cZLgk&i zyt*!%3^$(RcS)WAa`wG6BKhn^_f9_Y*$5>@AZ0I@=jAbClfEo@S1ZLx4>n&SuRfbq ztf&WkZ;Uw|{+U3h^LqVJn%L}-0v5uRd^=;N0fPk&=Hi()v~{a;Lhq#Bo3(x+b(Cl5 zp;BDQUW$Iy*k1dDEbuBOP#~lg!AQ+#vlO4V(g}}U$cFw%-&P^dvhG*@CMGR8Eh1~A zm*>B@%AEz5KZg&ctASSS2o=7o@LvR{rzRVr`XoI**HXl(U#xa`n)Y*zO3n-uOK+@F>okwJ6iEpc%2`l0lA0kf4y!j4M(ps+hH~?)SN~Y&bq6DU*cvJ;jJZ zl8(VZcz?SV3xh)Ms5STYwLbUO*G$^<*EzXLzo}*ILIO@WoBecUbbeCoD#2&G{B9ZR zDv=+?j6*%y$5_$VJk6qTYZ>@5Ygm-#5L^CyycbivI6JfTPhTY`pZxse`t?; z^|gId3GH|ZZ}oL-ceE_W3EUG0aGZqeH)4mA<6&J53hWYS}fa`EtTz_FYjYG+HM^$f)e_xw>yXvb>ma zhIo&i@}gD*kBp4qkyK@*^WZ05;PFZVwX58{(`OT0+mW><#=kzfnejZe`BriixZ9AZ zMEnhyI(FLbBz7uC`$G@FvwpEeAp0)ifVyxe)`Lf6+PUFxA^Y;w2z0Ly3 zZjvIAKWq-{ky_;;Jy}}`QDoFaZA{y+svL2|=7GWZ! z6PAb~3Py1;I35pI*Y4KouQT6(o@3-qA*^$dXB6954z{Zq^V>@?F}t8U@v@*Q;@wI= zZOoP;TB!NV+Tco2pJa?~)FurUkyGKiT(f76BNRqeRn5|w+Ew`!wy}QtfG-7_jaUzG zY-ERiV&S!7d&*LLIeHV)in2-vBN5W-aEe#ChY&|}aATf7TGanwLE__J* z2?6PDkOt|P5$Oi$E)kIK?vf7al+K|U8rF^P^E~ff``G)~d#!bUgAW7K*Z=xm=Xufa zG%wzD=}!V@VyQ8Km%E1tnS?8p`lhwdl9bBYe12AVwN z;P=ePi&v=mai!vdPJf+%ClovydY#ZV3UHMj2yjhszDca{>xLW-$7%RDzM`%`t$@!t zO901TuxgFg_3qPeH@%^IEpDzqXSbqSTa;_v#pYPYdsgf};=GSO77&)1u_<_rMTBoC({7Ydjn@IOrDc>~i!)lp$O# zMbjwo3h6~VZUu;pYhJ#nWHS7*nfa0?r#M?cWAgMDQvl zq!Tmm-U$er?pc<+P#tp0L3i-_9(@WCFh5&Q{pK#-nI*N#LsFy)`%`Tz*7pA&qMN2^IiiXrE`>Y*#vljRLVv|lC{ z;g>5uPfQSbeZcIDKP7!mJe1O31)*2^`#+KSc=d#p({gSznT3vFrYuFvdUFT9a#?FP zdD@J+e6rVfQbt&nRU94i2#k)c)96Fn=ply~CgF`S>C_OG^_G(&y56(?ORcP3-@XQ_^?4%8A$!MW7jsCek)Vv)Y zv4G@CX@<_g=v0+G;CEKIQ1v_JO$=Ju6wo4uq_it@sS|y7>Q`$+yn44#%_$f1(CR z=!%0y`d21s-EK4`r{d6^F0{HFLornrsa}#U-+w^-wY)&f$SAfv>nZa{4JBm#@xDv9 zpeN6_R1R~cjeMvAKX&M$ogz#7ZASe|=5t7~aGr?(skcvTY<=$}@j)?o(RpqHOF3r(FD$+?ra8P&omQrs{$O=!k3a4Pi*j2$U;;x2BC@!LX)6(1s(5s|lg zS$H%Zp1UqzKa15t5Rei6G@!*;Bzm1|H24rN@aHL#FMWfB4NrJdXBleswSn9LbDN<5 zW=5f`Z#ove0_((QuJok?3SzwDEHy_i(PkqB%?HHsC1u0jQ`wle!TJuayr%p(5$n!g{g`^HR2Ngk zGHL`2c%f#>ge0?NOFK}qpx+&XD_aVls^&1m(tc;{%MPd`ViKn3(-OUpc$@v!LdNHAk9Od&~A#j}4tuEbW47@RN1w!eBBgV7~FXFMWg?L}=bC&?%iH_FA+#Vagjf!r;ssb}a#-{nb00$^0 zJL3@9@>av8>)*u)#`&$)H|2f08@ccbKYP1f5LH?w{-0?PRtE(&>IE7`PdxQ{P*L`h zTQa_10j7FAwS4E)Tn7w-%HdJ0|IUp_mF0P+u{4f_V8Z9`DTd>8D8Z-MXpkh(BoR7h zyAh(|ji~_r?%GQgpOvX&d)P#6_&FIr7V>dfw4qj(_mUmX17<5wjS^=NF zI#+l>A@n#-Xn?6eXeb+3)emqW}#;J{_T5zWK5w>+v{H-k??4>XXyedlEIldK;hltL8XnVHs7~z#b z&{nW1JHv^C0zKs9`PX|c0%;b6{-we_b2P^u^`N~eX3E`& z>nx{2>MrAvJ?v8Gi?bv%@ro&xl6AuiC~)X9O^oAn>aR!JKNo%dDR>&oL{q`96J+2@ zm!w&E^0m=YemsgnA(FLuQXVFz z98Rpmro4I*Nnnx=pFo9XV*CoAtB4QJD&5N4w9yh1yH!4@{?;!Ft>Q|x5T7;I1K_s1 zJuvG)UzsodStn^BmM0dQnXSVd!046}=D$DarrJG@iCm4S<$PZ1Y<>Ra=T_ z{U>Cbi^i%Pm;hDeoU+W+A&XGVmeA;r0q1$6jv3Zppqo_buDA(`F+sS9Yw5Xl%#-wa zsF>|ymA}=?+?*ImD%nz~X|6|nMiIXu-ov{0CMfcn-A&@-D*yqclB|*-2xUDSe>)sR zXsN)AvU$cqhDifw9)IbfTy||hfYRqAm+0J~WHwhh9YYvmB1vs7AsNz|{&^b@(VHbW zD(WS3I2nE3)1;n4ta8nFTT}`K6d$3r6H4U29KE~&4MxwIjm*_K=1-_I5&baTQOA7f zam@*cDZCQElhPYd@4+wB`6ni?az)G~fFL~7w_8q6^6a+)^?eS;C(%9mDMX*B>f1-} zbTMjnOJt~jy6B`a5fC_uOQAd51!8s0!`NF$+K32VmfY9QumsaOpk z_kCA)UtF|noqPS*oQ8%9mhJg`lCF2Xo(PlVQxrvt@7Bv*$}k#I4m~I8KxjQ%(vl$higS-otpciTxv<2jUo9`@|bX_w%8%}!)MZ>BV!uW z;o{n%x-I?;%>8aHF@aZrR??20786((_1kthtTY@dV1fUGf>}t~zY0C{Y6&;;Fu}5N z(if@WfNGB*_~#>+BT@2M#YAeQe`uT7D>DXN2-;*9Te|-Bh6UFW#?IJZAzt5zz0Q75 ztDW&Jm}m@6xO*%qVbGhnJ*^fw0wKM?qCgKTUdiu&QhciReX7} z7?XK`iLz8q_)xTu?+o!SQ2FZ1+&huVDkmOxA*!L|eU?p|xQ*o~h5II8+nb9R7|~Jk zG~qZ;sbWwrPnDe3n#IYK564g<_2ihJzgC}ya!2&vGsVR0Qi%=R$1pc;X_s9p;k)`B zs%7)kgWGtGpL!k(tV6T7@4PB_`xrgE$NI0>uQao195&^BEk}I_C>vsiFCT$lMLlq~s81)4Ot9KidNd zorfNbYZOtjh#)&EcZtmR1 zB|e!WBN-^=BOj+;(cDinhFa%|i6)n4upO5fQPejVcE7sgmNF80Wj5plOr3gu{WIX& z<}Tg&Fx@J6_&=L&tp*Y5hyZr=h1<8FEUki~qOh~CKoy3FEZeiP?1IamV_YM zulxh7Y$6EgeaB7BA*7afCO(8&+M+Kg7n5qxiqcY6c{b(x>!< za(G@qZ&xseJde}{l+}LctHszcp;)hr>d(tm<$3iI8?KeF`>taKy31NHwuTzMFx}@0 zWHTH3y~?pXG6Xb@N@8E^C1AY(9i&ivi2-I&-D8*%d^dl5{w(=t7B$tejzUjOfArT2 zh2a~9X6zEEVlxKl)vu`L4<&^!*;ZTkaed_?J~L&ns^Lh<$vEkK&H8P}{zC-&q>>yw zAz=c@m;gq9d?Ne}3aC#;=Ru~T112-EK1LO)K@3s)5J}mWMY&m9BHYOkJ~tg-MYMQl z4A|0({*$5xcGR|WDqz*jhtjW$>LUT(P+2j)0el$Hy`;0a+dOU<1%l+HILKll3Vz9* z&3GU*Zp38f6!=a?tn=1k9dZ1h*2V4?7|v;;kSNkb<=JLf))FDo#r;bcYm_Pzj##dol^PjqNh^UG1cCOgEvy=rOYXt2+E>`eo{5L&$v(8MV6 z*{}T1AQMpI|DDf#n)8Rqa2*6}cpv2z@o(6*eVo5%rWXsl&vjU!r=SqVTAEs%5QjV( zndBI-c5~;Kg{Fo*h-yk2DQ?ot#X`K_FP|}3OW1>WD7IDF)Zy9~D@#A0ET(y1cA@aq z_(Fe;Ml2}p6ey@_`%C1|=Oaou&Enb$==e2`JFh)DSuKN~(T>~X8(Q)>Ndxgy$Ra{qp$sff@*gm2zoBj( zVISUcaNZwTq8YXcj4Wl;A|aRL8jVItVpHT4zEszo;~*=7fmmkG3HBQS@?}mQP}ztB zj`@AW+o01fgA`Xnn8U|scx;I?L9(Z zw9H9~Gt;rumE{!nV9%jj(@$x>U^H!xk4VVu6S=e*7~*5^{zkcCGgowBX?V$T^YVKR z;LdRel8(qr(8e%@(Pqf9;k&TkW~v5LS~v`0X_+vG2EztHMBo=^8vhuS{-1G1pY zBf5em$!wkbh42-2q-;MTL2YH4{Paj4haNwz9_&yQ1rW++P3mso${eCP&lTBu2lKO2 zpY&w2NGs*zd<`2}X}6~gg0Xf>E#g6~6cN))$d6vhu-?z`kzNng7sozLikd{xU;jH zep*LuBi$?pom~dDi|pb2I^Gg_puu9^I=Aq~ev^!yhn_dSS=xpKuC6UY4VSVe^2&># z(g9yT#*3J2q7_R*6K)Lv9QX~S}wF!R28h9?i5 zwLhZaj|rQ`IaUyJq5ADo76@f-x6hMjF{d%6@(|f{`l$?jBJ~t^byxPHk}RWCX<`nR zV#~^F`l(b5swhw5Bi>ynC9hlgfwJz3TpAiMFhn=@6C<7ZOuQ19%-MDM z@j@adyR|xcMtY@E_GSeYZ>0j~Mh#h6QE}eaLO)CKC!nR0ZvQ)K@XT|laM9~GyefYJ z*0LO(T@avJs?IVs!?B3XTm=f4iJ#o+4W6irPzeq4hUZMtHNh{(6{l{=F#|Tl`Um-; z1~z_ozi5$e-zDZkTCs5C3G9xdi;8}MI@l@smXc1sZ)ED{-77{&Y@&PsQ^|X}6Dvm0 zZ+cabSM?$0z}8ENK=;2wJBIrE$ta3}lHK;-B|GVKuh-yyWDC9fXX1q`*$aR&{p4*z zV))y7F8#*ZjiGE{-++6^5FI|l%bqqTdtgoQ z;0Yt3vA~Cen$9I%>gay#L+$biNAhitljDL)yXo1T-(E$%GP6{KrH5@2jr7iZCQmT~ zh}7znKVxdQRp8X0rJ=f9Qwb0xSlq%|L-*B z|0dN2iqN(R=%Zej;L?~(&W{0m=QqbNDvs-&S06|;wwhMCmX==!K5y9uOgAa%SlsX2 zzAB=_xaVwP4b<^VgLRHK#bikeN!s*xPHQ(ctm(h9F2BAJefZyO&S?K2Z?CyWa~^a) zc4Ig8l-1CA-|x}YN@1`d4s%sq7ZZ_%XMJA_tmppCzBMt&;~unB#w7Y4-y7#qVO zQQYE?B?Ce>FkW&vVT_vb6ZSni$-1JwKJo56F~&KI8msp{>ivmGCpZ-sHJ>bEaV|C1 zZL0rdCduS}j)S#swDgSS3=FKd@fP!J>KbifuOR9Em5y48;jd!W-#%%YuU|xp2Csj_ zzO*3fbM~M`@5ySjw%mu|q^wj5%HXjY{}8;1omzN36=Ucz?I@;sC-Id-=+!MIA-=iW z0@+EM$QoolLf>T3vYQ9z&M3-~@XJe+s4zzdJf)>Kzg>2pWmHwYK$#5dnkgg@kF2@n zzr~rkTau0m@{Z#rr^=mSl8I1;sNvCXVpjOx8g#7uu^lDicm49~K^&EWuv4sKy6m?+ zY{`x)+0}3%h$XhD(oswt(Z)j+6kIGc(lSjKK&m>XP3B%XgU(0hwd93Ay`)V_y| znP)(b>&_mxTfio43mcmMO>GsMOCiw-^uJ1p>V@(62|nI$Y+%s^-R32Pqh+hG)|eOF zGo8}piQsnLxy++PGIM0xOyN@B*>n0gD*9J$ajg}d_ACn081@$Pu*uSp59$Ju7yQ!NOD7 zd^)ilMUA~ZcQy-EGfE5hx8YBUg}T!5cs}B&1$uGv^C5}G%*a=LRIHu-oFk*{(-JnW z6g2NfdC{B_a$IkkP!i%7pQMm`;`w+i^Lft%gMwB96*FadX?-Dr%*0&Tjn}SG4-WKYL|Ag0IDa0aQ++1;ibpVXYTLsnpOQ;Oju|3H7YX7*G)a# z*~}{|MOgD0S}{dg1%5$U6=6H z>pAVh6r*#29^2=4S5ur2Sf(SK(_#1uLN*t4xy0wO+Efyw;b%gj%kQ`v{N_Lkf_3Dg zypf{AR|)T~7@gt#f!X(^z|c#PGi}Lp{ur`<56`u+N}r5g0@4`(5icKJ5sbc9Jmz86 zYYr9mc|!LoO=@JH-v2cpntg=3xnx|+&8D1w&MhiMy&Pfn5v4=>yvqt|sJ!T!=yA+r zr#aFd1y1&jc2;&2Bb~RHVvg?AhbCxk@xX>PUfPP8Y+Ri+?i4P&F(c<c4uyLTY^I}wFNVKoSh*n}bg?j|7Kk~w(_{3ONDgtioQtlVn+w&>rQ7;f zXA%F%LqeLnKPpbnn9vj5GP(oq`-2v$G2m7Bi-B93FoCRqW2szJa2zi=G_lY0n zbjVj$t$W6qY4S630}3PpnQFRNHc`ia<^x&0Mo79k$)OA0h>3&HLDJK#=^r)@UfvTS(-K2aDc0(1DB7n_ahd$O$l(IL{{B^+vCU#n1_qyEfB5b=(|~K- zO!_*OApW)3^|3N_h^za^$+=r90 T*!z&?5pYS1%Zn9@=zsYS1XhVx literal 0 HcmV?d00001 diff --git a/slides/2024-autumn-exercise/ot.md b/slides/2024-autumn-exercise/ot.md new file mode 100644 index 0000000..f693f08 --- /dev/null +++ b/slides/2024-autumn-exercise/ot.md @@ -0,0 +1,36 @@ +--- +marp: true +--- + +# 2024-2 기초 연습 +진민성 + +--- + +# 진행방식 +- 1주에 문제가 10~20문제 정도 제공됩니다. +- 화 (개념강의 & 문제풀이), 목 (문제 풀이) +- 개념 강의 + - 기초 강의와 같이 [jhnah917님의 자료](https://github.com/justiceHui/SSU-SCCC-Study)를 바탕으로 개념을 가르칩니다. +- 문제 풀이 + - 스터디 전 문제를 미리 풀어옵니다. + - 문제마다 풀어온 사람중 랜덤하게 자신의 풀이를 발표합니다. + - 마지막으로 제가 문제의 접근 방식과 풀이를 설명합니다. + +--- + +# 문제 +https://www.acmicpc.net/group/21908 +백준 그룹 연습에서 문제를 확인하실 수 있습니다. + +--- + +# 일정 +![w:600](../../img/2024-autumn-schedule.png) +https://sccc.kr/study/2024/2 + + +--- + +# 한국정보올림피아드위원회 공식 유튜브 채널 +[IOI KOREA](https://youtu.be/8cSjBQtqEXY) diff --git a/slides/2024-autumn-exercise/recursion.md b/slides/2024-autumn-exercise/recursion.md new file mode 100644 index 0000000..47975b6 --- /dev/null +++ b/slides/2024-autumn-exercise/recursion.md @@ -0,0 +1,180 @@ +--- +marp: true +--- + +# Recursion +소프트웨어학부 진민성 + +--- + +# 쿼드트리 + +### 문제요약 +- $2^n \times 2^n$ 흑백 영상이 주어짐 +- 주어진 영상이 모두 같으면 "0" 혹은 "1"로 압축이 가능 +- 만약 0과 1이 섞여 있으면 4개의 구역으로 나누어 압축 +- 압축 결과를 출력하는 문제 + +--- + +### 풀이 +- 4개의 구역으로 나누어 재귀적으로 처리한뒤 모두 합친 결과를 반환 +- 결과가 "0000" 혹은 "1111"형태라면 "0"혹은 "1"로 압축한뒤 반환 + +--- + +# Z + +### 문제요약 +- 크기가 $2^N × 2^N$인 2차원 배열을 Z모양으로 탐색 +- $2\times2$배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양 +- 정수 $N, r, c$ $(1 ≤ N ≤ 15, 0 ≤ r, c < 2^N)$가 주어졌을 때, $r$행 $c$열을 몇 번째로 방문하는지 출력하는 문제 + +--- + +### 풀이 +- 크기 $2^n$의 이차원 배열을 4개의 구역으로 나누었을때 r, c가 각 사분면에 속하는 경우 + - 방문순서가 최소 $ka$이상이라는 것을 알 수 있다. $(k \in \set{0,1,2,3}, a=2^{n-1}\times2^{n-1})$ + - 1사분면 a=$1\times a$ + - 2사분면 a=$0\times a$ + - 3사분면 a=$2\times a$ + - 4사분면 a=$3\times a$ +- 재귀적으로 $r,c$가 어느 사분면에 있는 지 확인하고 각 $ka$들을 답에 더해가면 답을 구할 수 있다. + +--- + +# 레밸 햄버거 +### 문제요약 +- 패티를 $P$, 번을 $B$, 레밸-$L$버거를 $A_L$이라 하자 +- $A_0 = P$ +- $A_L = BA_{L-1}PA_{L-1}B$ +- 정수 $N, X$가 주어짐 ($1 ≤ N ≤ 50, 1 ≤ X ≤ A_N 버거에 있는 레이어의 수$) +- $N$-레밸 버거의 아래 $X$장을 먹었을때 먹은 패티의 개수를 구하는 문제 + +--- + +### 풀이 +- $A_L$의 패티 개수를 $P(L)$, 길이를 $len(L)$라고 하고 +- $f(N,X)$를 $N$레벨버거의 아래 $X$장의 패티의 개수라고 하자. +- $f(0,X) = 1$ +- $f(N,X)$를 구하기 위해 5가지 경우로 나눌 수 있다. ($A_L = BA_{L-1}PA_{L-1}B$) + - $X == 1$ -> $0$ + - 첫번째 버거 안에 속하는 경우 -> $f(N-1, X-1)$ + - X가 정확히 중간 패티까지인 경우 -> $P(L-1) + 1$ + - 두번째 버거 안에 속하는 경우 -> $P(L-1) + 1 + f(N-1, X-1-len(N-1))$ + - 마지막 번을 가르키는 경우 -> $2 \times P(L-1)+1$ + +--- + +# 랭퍼든 수열쟁이야! +### 문제요약 +- 랭퍼드 수열은 두 개의 n 사이에는 정확히 n개의 수가 있는 길이 2n의 수열 +- n이 주어졌을 때, x번째 수와 y번째 수가 같은 길이 2n의 랭퍼드 수열의 개수를 구하는 문제 +- 세 자연수 $n, x, y$가 주어진다. $(2 ≤ n ≤ 12, 1 ≤ x < y ≤ 2n, 1 ≤ y-x-1 ≤ n)$ + +--- + +### 풀이 +- x, y번째 수가 같다는 것은 x, y번째 수가 모두 y-x+1 + +- 현재 탐색중인 인덱스를 i라고 하자. +- 만약 i가 2n이라면 수열을 모두 채운 것이기 때문에 정답을 1 증가시킨다. +- 만약 i번 인덱스가 아직 채워지지 않았다면, 사용하지 않은 수 중 i번째 인덱스에 삽입가능한 수를 채우고 다음인덱스부터 재귀적으로 탐색 +- i번 인덱스가 채워져 있다면 바로 다음 인덱스에서 탐색을 다시 시작 + +--- + +# 무한 수열 +### 문제요약 + +무한 수열 A가 다음과 같이 정의 된다. +- $A_0 = 1$ +- $A_i = A_{⌊i/P⌋} + A_{⌊i/Q⌋} (i ≥ 1)$ +- $N, P$와 $Q$가 주어질 때, $A_N$을 구하는 문제 +- $0 ≤ N ≤ 10^{12}, 2 ≤ P, Q ≤ 10^9$ + +--- + +### 풀이 +- $A_{j \in \set{⌊i/P⌋, ⌊i/Q⌋}}$를 모를 경우 재귀적으로 구할 수 있다. +- $N$의 크기가 int 범위를 벗어나기 때문에 long long을 사용해야 한다. +- map을 이용하면 $10^9$크기의 배열을 선언하지 않고 구할 수 있다. + +--- + +# 별찍기 - 11 +### 문제요약 +- $N = 3\times 2^k$가 주어질 때 대충 이런 모양의 별을 찍으면 된다. +- $0 ≤ k ≤ 10, k \in \mathbb{Z}$ +``` + * + * * + ***** + * * + * * * * +***** ***** +``` + +--- +### 풀이 +- $N$의 크기가 $3\times 2^{10}$보다 작으므로 $N\times 2N$짜리 이차원배열을 만들어서 배열을 채우고 출력하면 된다. +- 삼각형을 그릴 시작 좌표와 크기를 기준으로 재귀를 돌면 된다. +- n이 3일때 배열에 삼각형에 해당하는 위치에 *을 넣어주고 출력하면 된다. + +--- + +# 사분면 +- Todo + +--- + +# Messi Gimossi +- Todo + +--- + +# 프랙탈 평면 + +- Todo + +--- + +# Palindrome Type + +- Todo + +--- + +# 나무늘보 + +- Todo + +--- + +# 피이보나치 트리 + +- Todo + +--- + +# IQ test + +- Todo + +--- + +# (재미있고 웃기고 센스있고 깔끔한 제목) + +- Todo + +--- + +# 잘생긴 GCD + +- Todo + +--- + +# Subseqeuence Sum Queries + +- Todo \ No newline at end of file