From 1d38a7c98b348bc3245e356fac0974907e4d4afb Mon Sep 17 00:00:00 2001 From: "YingLiang Ma (ac7020)" Date: Thu, 16 Sep 2021 15:00:31 +0100 Subject: [PATCH] Add tree tutorials --- Session 8/README.md | 15 +++++---------- Session 8/Readme Pictures/Tree.JPG | Bin 0 -> 25289 bytes 2 files changed, 5 insertions(+), 10 deletions(-) create mode 100644 Session 8/Readme Pictures/Tree.JPG diff --git a/Session 8/README.md b/Session 8/README.md index 5aec5d0..571807b 100644 --- a/Session 8/README.md +++ b/Session 8/README.md @@ -4,7 +4,7 @@ 1. [Camera and Skybox](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%208#Camera-and-Skybox) 2. [Animated Water](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%208#Animated-Water) 3. [Terran Texture](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%208#Terran-Texture) -4. [Multiple textures](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%208#Multiple-textures) +4. [2D Fractal Tree](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%208#2D-Fractal-Tree) ## Camera and Skybox @@ -67,21 +67,16 @@ int i = 0; } ``` -## Terran Texture +## 2D Fractal Tree -The instruction for lab task can be found in _"Workshop 7 Instructions.pdf"_. +The instruction for lab task can be found in _"Workshop 8A Instructions.pdf"_. You need to add texture import codes in the C++ program. The texture tutorials can be found in https://github.coventry.ac.uk/ac7020/212CR_TeachingMaterial/tree/master/Session%204 -You need to change fragment shader codes to include texture. For example -```C++ - fieldTexColor = texture(grassTex, texCoordsExport); - //final color is combination of diffuse color and texture color - colorsExport = fAndBDif*fieldTexColor; -``` +Final result look like this: -![TerrainTex picture](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%207/Readme%20Pictures/TerrainTexture.JPG) +![Tree picture](https://github.coventry.ac.uk/ac7020/322COM_TeachingMaterial/blob/master/Session%208/Readme%20Pictures/Tree.JPG) diff --git a/Session 8/Readme Pictures/Tree.JPG b/Session 8/Readme Pictures/Tree.JPG new file mode 100644 index 0000000000000000000000000000000000000000..32be7983bc5c0016360e80f808a4f646951a6ba7 GIT binary patch literal 25289 zcmeFYcUY6px-J|Aq=O($s!Asm=^aF+i}YS1(g`8-8i<1Q-W3Ftju0XpsnVs1^xg%e zCkP?*FRr!rTKk-D|FPHio$FlJxz2BrNuGD!d1vOi=b4#%%6mP1y$ramp`xw=xN+kK z;4AI}xL&z^rR?Wq4*+Os0r&s_01<%T1~mW=C*8n(05@a-H*qpK?uJo>69E5j;Q%7r z_t}5$0vG{++w2>gY>UkLn#z+VXbg~0!f2$(v# zIy`f-c6GR?WsTFHAQA6xe1ZnY8>$lV|0(w*C;d&v6Bh*ll9T@>|BG7?75%~QFK+RF zqZR$7^Ir)3g}`43{Dr_@2>c5Hk%uC}G7qI?geC3?i^+&f%ZP~p{;Mzmz!cyFa0NI3 zp5gwj|0dl7XyK$k>mQ_Sj$U4FGD1SGo`Tl4(3f_CHc*I=pS7Eiu;4=>fSjVAo3#zt z&g2+@9DuI;jPC*y#s6H?Ro++eq7TD=Lta$oa|m zLEIpAUe@>gATF++GJf(8{+7B7PW}@t^guz*!`5C#@2Sc^V&JaiAN->%zP`SKzM_Iq z4+kM(X=!Pphay5EA_BM=0-pY^UeQZtzSaDz2qNw zdpp_6*jw9+zqGX#7kFtcYAYZtY-=rGZ7V7)U@IzWD=984C1Nl9^1(l{x3&3a?rz>5 zE`Q70)<($A#SUWU>g9<;Ls;m6(BBLFzba20ME}h6zl0yBBQB226AwFUFT1BWukfdW z1s+NZ2um3JN2Lpji%7@`{ZH}ag#Li>p9=cFw&edUv=roQZDefzlpX5v_w4oU-2ea8 zwu_U(f2P!b*Af@_cLA3?&i06jiRFa;bI$*7DE=0LGd!@l4}gk> zyg%+1K0Y1+;VnYKKc0w~l$eN!gou!kgq(zglnmzxi76<_$teEFe-iog_@Ae6Uos*> zqCYYIJ$L;TKt%-D2AtvDcmTLbbpwy;#&s8f4Yx;0fZNXev!nSBcjG1=KEW+qkw{2! z5o&MaijRkP6IWOQeBA!!jUe2806rA~^?hNbTX%G=2_LxAh`dhvNW}iQvYl3M1jQlx z(j$bJgpQu!E+Z!wHxDnLn7D+bl(fu~r^+g-YU&#L28Kq)CZ=XKws!Uoj!w>=Ufw>w ze*OWWZ^FVOBBP>{Q&Q8?Gv2<-%*!t*EGjN3{Zv(5Q(ITx@TIY%v#YzO_gi28=-Bwg z2(uV2l#}4^ty4= z7w7S)@Coh<-=bF1CA4cvJvIz~x0=G!Ni^^sxgGy{$YqHJlRhqSbAAM_WBm$UVbP z!J}}NxlUFBa_g0#o6wpa)_X);=eCY>Pj8nAj#JkGJTz%3`fttGCuKVLS>SK!mM_UW zd35kv=>@qoa@3|kIO+pg>D;?a`0EPE6zHGkpl;5*D(m~lxps!DMdHgC~`tLZ;` z{hXIOqyO2l^jFr}!=Bo6_u;jrD6;|?q6AG8TZpFis=WUXZSj8gDh{8r><`aY3>khV zcDGtKxcsiT*KX&WJGt(lI}0qUYRAb*tJAZ}# zhjHuD>LoqAb;F1r@%dgfdIG4Y;Ioi0PViC_pIk$1%6%bsuR#tZR2z1lYSaIgeE>$nz$}jWm z*$Rh`5mkZPhLHgte#sJ-#H6^?HGnIO#3X8{WI`_$N{1vm&@FagFgI9t5TMbAa1ZNu z^M~Xx#`6`b=%`ceJgP{UPbkVJBM@bilmme3^MU#8i`AQyFs3D-Ul9<<{*8m5_2tDvwjmQGf zf)i0&&QGWL&P14ml-cdmpth8u9OH>~j=L{hxChGz! zO64hbi$#jxzSvqT>CvF2PW4aA&MB>JY^<)H02yTe(A7$|41Z6d?2{9zt4ssQE|Lb~dvw}YwqK$}bc>%0>Ot*jD&~$-G(aY1C@-d_ZA5()&bsH{GrQu5Gh{SGVK1uWqy4 zlt#)Ku14bHD{~E3&JA*CorkL>CO#BCQFnW;$4a*OP|<*29b?GRRqXQQ-A?0X#GPP^uktge&Y+H}wF zg%8odaSF?e@#fnq3}1N3yXF%KeBlhWnhCeJGbLYpotKqqw$XANlq{G@na4?LMFBGH z_zR!NAqg5b{m!4LeTaOEOvtc3ZQkyE_}!hNV8y4Tb0I<&3%%&)ot2x@_zksVW8+=1 zxGHout%FBnszXvINP^cn+)u`Kj}|1BxOiTG zGLqF@-lua*_i<$QV!?%7~4M z|I_VmcLI|ED#Jt7G{^V3O&U4xhg{|YYu14rh?&qX{tQwwIE~Sp$~1@FwLZ2@aC#iA zokUs+WQW^dtE6yXJa{RW={O-GnBvEUP;K!&cRPHhb?NIB3yLddZAft29$iuF_S=LhuCC7aVJGK0BLDHLP$pIK!HT;f z8S&ylT`Gj`sIl(ZxNE>3w9J{lp4vHwW=g;g)fVB9{c;F_NgTp#T7F{k9-pF5lH!Xl ze)3JQo(lh%Eg^@f6+PSmF&kDfF}JFvayFA0JbwUrJZbQyhMG0_iJWfuH$_1|1fScW z@VkQFF1BCBZTd(cf(A7n&|n8ec^XSZkhbcbuSde~4lu1?PCdTd>SC?JK8F79uEvud zP?g-qyz-Pb(T>Xxa*72@P6}kG#gE1NsMfLyrQ(G-^FheU)7#pdjUx93dR!m8Cb^kU zp6pY4E2nJPl5&kZ?m&*sKX2|D&;eYg`J4$*{RtRkiAKn zt_=3uI8nh~om!cDKH$`+%s5I8B$eHEP$l+H;|xLl~1J z#-^?!y|UL>^3HqqF>}Trk7^H}kvn^4I}4{I>!gkPsxJx$t=66dvp^xH;O;B7(O@3G zy;kP=ts+GVEL^jC0x7U(doFi}KiNVF;`r;6{4POm zj2PtBk}3)rzGQ;><>zD8PUZm_Cyww`0=HlBI{g9X$U>Qj zyEGjs6>s;*o1)dUb()El10{J0ef7esfHL`KiXms$fP^+MJo+{^2K0GcP7$@H!3G{Z zIugJS7)T$~mUzB3&b#>NrpV(L9-0C4q0O|#7s2T6lUO+=8;X4J%AWn2HmXX^q!&tC z887W>C70@ya|jGcCQIOiV2u}n71*sc;BW*R;c>RM#<|Q6FZIk8P{cI~S?pb3Yow!O zC)#(LuT7X)P#ti14Y=LP>j%QHV(;Y5SqNNCZ_+0hI=VhY}*{ za@7D>rl~7E@ay*?sQGM3o0DFlrr8cyAk_xy!-uJ={kadTVB-F2>o0Dh5(Jv#6mrr- zn46)iwKEJEIz|kZkzgl(=W}RO8?_iRv=wh0ri^(0!>Q4Xn1e4XyYIdsjj#Pn8VYH4 z4zf)2FnRE_Z)1JO0oBE`@uM$C&|6!}X1@XgUqNf%#oX9vx>KuDX<+!+?de?13Q)H5 z_BLB>anzBlP&A`lreI7^F&nj`8Hc36`Zk9qhls$yE9Tl}Z6_X!9=5&BbtvzIJYG8^ zc}C=w=(Z8Y$L9yuc;&ssnbA8Z=9g0UCO9I8tYI~RdLrW75)mfBr$h3$D*`9iugk!PmJ0}@eUuGH|uk>Kqx%cY0#x37p}x|b-A zK(qDTW$;`Op6pZ;Zbao)oe-G=@eDF2&a^h*XsULwng{yCMUk}mWu z)_AUP;-2TVwzJV@C5Ux}Bn?c!_EEIU*#(H!+VLgoi)U;$?6K>^y2@zvetq8>8>X4M z;{av#Tn$}i+5@)dG`h-we|oxZ3Dv_N^@V=8;R1rT>1w4z?dN{L-XccIxvvsW${I#< zX6@3gWDI^uGNCoNYcP-10dZs(uqlcSmM%Z6?w-&pLF6HMfv5FUY*p6)2%>)W<2&6bDRXd;s*_8Y z?DHoOq}*ka0=ZvcN3gW{0h5-$J37xUdDXpqK0JHv`>@OpSD=`+#Qk@^v_FG)ADUqf zW=Y%W;ZzFL+eVBo?tNu*eb7%%&bzc)d)ZySJ~P~}&#~<5Rrw9pi7>g0b4@0VBA|G5 ztnFABXW1L0x{}3XrUfA%33bbb93ir?@4}yofRXnZ-AcxaRr(s;7G#oV4VkK)tRAjw z2sG7Cz4g3%h+?V>uy1wzjI~*Tl5Xd)L!-?MG8J0Z)Ep`^x+Uwk0*fsW-y8?&em6VT zl}GDRORprjIgT)TaF8Aebq+I`Txg(J<5mU43m~#qRS`P1A}Tg1{b_W{WW{MO7;aMD z`^h-gTAiR%olKk`?`W@=tomTzlqUAJ(sGDY`;OJV(2XawJO*X7+=PA$Rzqc$AO~>4 zJ~F^cZ1Y*t>4PEzIP!*Ouq_8WG%UNCuY{Kh(4!aUSDSR#H^|pRZp5N zYTYr(?7j-r(inY$KQ{O7Npjxm9WepEx}U<;yz@q%6>SvnZnLqhO}0L8{$bkg>vbR1 z5u?*Vn4#tLa-8*HZ$OVYcWW5l&(vCVJlaI#J8J?!lgs$v2iQzDz`RLkJ~mV{!uUt? zeOQy%K%Aki=3NNlr@?QC(G#wWDyfU<)TrSMR#a~wMr2|)n9gt52y4E+lWEyq_YR8e zw5c#JZ29^7+YoEM9E6EMkWMo}aNDTP-;jHp<2Q?$VVq~2_F|7XZRW^nYi`+oph)p~ zsRrZXkiTGKz>LrQi8kw#vf&lk;~#cap=J{M`~}TqkWmX*VaLxkg;$r98mEe#jT_nL z_puxMKoHsXWDXEbAHGo&F7Vv6!e&Z*+TOS}PMj|G>486{$e!X z5SEAS;@PqGYZ;av+fkS@TBT<|zgBVk;J&4-Uc*!9iG9djgIHR>q}K#WC4-;6-si`< zKQ9oAamH*o$@)O;ClQXr65-}=x@_)SwTSb!Yo==((@d-n1R?Ew$`{HP;5Est5_n~Hn9h>@ZG&m3>gpF-WT;t%)-nQ!sjI7YDRM3{|PH`Uv4 zwsi21Nb41*y|R=+X_7KX<@V6L_jeK@C zLIF(XvB6qrVe|U2)*mHxEM}y5Y#aptK|r}pRW zNw4<4N=a`@F=VZY|BS&!V!+b7GM$L{Y4=c9?J-yNeGJ>Y`)jYq&GWmPaL>BqK);3} z*J%CKGanV!BV)fWuu&+kSCU^PG9rB%FHZ95qX9+d2P7X>GH>p}6tx-Kto}*0ajf@* zp3ePI#Uo2WN|Di}jpYqnQ$eEpR-)eP@84E=!JR=-`Y>^wcbyQ)bZkA>XM4dVa3Y-93uQ7V^bom^>il zYFGj{&|R3?t%4#aC1eUOV}%HEqEo~tQ;KR?;hbcQmkI`2J-D z>-1Y|WCqqvVXJX*`Yl`8C$JDssH?rOC?GbdJEtu>-2DGh1(R z&8!xE+|{W+;)2jxSS%}=>#{PDtNmtTmyNiWX&N#YS;3*2&Xp{I6h?(-t+pkcD3D?U zS6e(V-={iHk`t&M(TzcMhf~i?2FXh-@7bG|l@^Z)!b(VB6C z2EIFW*8rgZj69`AHZ7m<=7`n7h0NaXwzR#{ttApUu;eQ_ydtbnXPwWL7`iBj0sCfa zD!S42T}l6e{M!6N6>7+xBjSa+ph;u3YA8p{sGlSzaC8?IyeKs#FlB(Q{po1em<*C& z5!;=$u4TH-?@Y?qB=mORB;K@o$b)fLCZe_e4; zd4r}If6qD0wBzKJY|d4&yXPHrcfD0+Wbf+Xg;PQYW9)4ZF56iRFk@ltR%%mY&N37YY_b|MM{_B zwmUPkSf3!RWVP}f$dD6rm=SK}c3G@kjf22K?Da#9eW(z6=_`b=Tju8yO)IymJ4b*( zNFU_GFrR!y5{-X~ONfY(|4b{2?3-yFrSM~M&)n*zP9z)51N&Lw9_(3d!Iln3Iirq%u%DPftpVG^l{u0lfKN5(2IHYo%0oyJ6mC8jE|FVuG@n zvW3pyX7frpy2I&og{+Q-u$qr-)da2q*r=J3iqz8XMPsK5a6`~z3T2v!QyWkr$$1n8 z*{t}CMVUtDhE@_rzl^(QR=zhs#MlLq0ky1hYS z(i$jIX~KPZcs4?_`CW4poW(IhWq#wRS!N^KiB4{yDN9;!L&}(ge3YU2v-v%G{E%C~O%E8WL>lkpATUs)DnmTE z=0)RU(m+n{!6~r=-@;@R)&V&9xw2GW3c2SznG)diJoEfvQB7llX-%)JJ1&^@ z7o1uQuV`o1G9F>mGU%|xW=V*-kSyMwwe0fEbS;IjtQU5{J^XBSeyvTH z;s-fj2H_RuHrE7A9U}+NXeBa$bJcPnj3M@2-gdxdtQ=dRv&2d6v`nZosz*}Q9SSbd zlIs9Qa*zr%qvtutAoGc4fM| z&;Ei@IuBL`1Za~f7~!v}xC+f^2j_sV2tm!0~}W^=;)Dca$y zY4YOtl?nwO6Vs~s4o;n9lWjmErHUTy_%(pECstb5a(IsgMWGmTeh#N*we7gyBu+m_dE21SR1b6|k+Rnj)?(WCR) zG^tN%&K-eHr|izjZp9jIOQ6Bu@R_l->I;jSDX%yi?HDC=Z%DUX80l1*9d;-cXumQ{Hh*y{$LT zIgwpZk_IaOF(yBlYO(8rLW<`-GJFr)8V?c0Bp!+nb|?NqdxYp*RqQGBT+}Z{nLe?T zyN98Ce^2NEmE~53&zXHK`B1?&=?#8S_MSP@)KpH>)NrYn+ft)mpP+@g-h*wlQwQ6S zH${bphD9~ijk~9y<+Gp#!64Ux2IJV^F*ZW)!ttq9zW4SX!7HLl*toO{R=+A@jYXJR` zVtg)24^D`U>HKY>ZpYmb=P~K%`T`t?P}mRvYpNq$@4K<`uDX=oHeEii)h%TJi`#CdnlemU}8K5a_Z)m7v`Y!De$1B(YCUxAk%^?BH zN1NNFP3mVP;IRP>tItpntgeZR|MG0$8G#I$GhjiIh6!IEHUc92wT5a5-b2y z8r>J$bEa#oN5LcZQ-v-bWV%%7Xg{!B(`}5>EwUNpSzUO%_pa#VnZ6B!(owN-i%N1a zlTgm zl%>v<^@=<4DYJgY#~cUIXBp33W+~t;!K4_cqMA(uAqd?3DD@iPGzne7@3bT0ha3&) zeSKJ6Yi#!{Ohi^wl&|?aFd2K}Q?@<^efa@rL{i4;p`At}HMb)dA(Q(3qZ+DbeH5sy zVc7>!0V=gefYny-%dB`s=+dnD&IHCpT#cIo8NjEOnkG7NKMx|~&q@yvIVb`pCkPrV7 zet@!E+FCf}vQZ%xf(T@+o(m0OtRNtNp=Kxat82hVfvL`G07bG|Lt|Yu1gaC8o0cCJ zqiRod_wr1gml`ngbz9jx2Y@yHa3NZgDbJ=Iz6kDM#q5@V5gJOli}M=6{

zoJ}c5gVjo>qG!dDVZ+9kK|OjUdv9dWKUpvZG7+sG zW_sK*je)rE^y9sHZt=pXcX!Esbx(U`&@3bV?#roTC-Su!ejv3|k_5gR4>PK);efwA z`?cH)&6R{uI>hR^BE4VqnASMViM*ut+^$ir4&%O`_$EY}1@l79FgHB-IgLd7!pr9O zf|P9h9e#sapat`En#lq1cc{O53pMs-T@wVE*0KI2YiN6|(l24YaNv1rFm3JjbED__ zJ~cL|4q3~(j%esxNl3AAbI^T|(Rkj-(N;wTM>J`mmxv~RTmM`6#B0rnhqu7}M) zVIbVv4b>*aX=Z1mJA)?2=59gM@qs&XL~#HIdHaoO!Tq_`X1|GlA}7BT^Wk;f8}2u)j@VIdEs#- z-J)&6{iAMg_Gov@i31H1vzGH*t-Celb#kg04Qwb&?QpaL+qRLh8AZzqi;8)P*uZMY zhNTF4XsCIs@*PLGWV*SwI7f=-OtrMCeUyA-a~mcJd&eLBoQ2Q|HFVq>f$InGEn7dX zT&g$@n18d9hzB#ZG$fT*(7b-Yi!bKZFM{fgqnznnYeDYaK>a>9F`0J^=*jgK%&7QP zuLoRk%s?}1Lb-&e%Oksl-qBR5(GcFO%;zTDbvO)~Iz?g?vL>T5F+WaE6%XMk`5-{- zROkf^WraWiS6NPakhiv`WV#ZaLY8{0n5y2?Tya)KY-pC*X&+~%HQu6%Am3DdD|(k_ z>j1EkxwgJ#W>oM=Wx-dw`rr~;nZ_4S-8g68RIxPKI|#2cjuUH(oK&o~Z~3@Q*I1EI z4$~V!@*@QbsGoR}PA^r-Jp6VqMEX{14hwJ@KG)VM0jkpOg}<5o4VIWS?o_0`&>yQU zyHs%GG>1|;g9&D}Jn`}vY{GYje{-qwJniH7+V)OjxMdtA?`|Q*7;m`U1E;RN+Ph@a z#uEBSWX6%`C3K7OlsjxZL2UL=*bt`VT`H8Rc-9zANH%^$a= zlk}NvjM=w~=gt4E@ZDDS*?=6+?&32(g)OA)Wx2ww&U1~c@2nCij=@UYl81J|umc&g z$>mO(09gc-ga0GL>v1w)L^Z!$ne{pYOw;5HVSK76Kz2C))Nz%aFPGFO18bFln(*KD z4R~G#MQr`BGP6+fcJgK%!bdeEODDbJ+wKh4Bf1w)ByQiTbPWi(e*ta8R-Y673J|Pd zRHTAQHs*E&q*B(}M(pmrrA_s+d!7GSn}4M80Hh7m#fBAKaAN%{{PInb@<%UZttIk( z3{xdDsOeucMOtl6O(DG#|Q4Q)-{1s{-xBeNBkah#>PIk(z)mko8U)LfrDWjrp1MmQ&FP`;y`SmbtG z;6k&_A_|P#4KgB2${;xtp~E)t##DC!!wFyckCVI1zzmAA+vA? ze+H(H4(2*BnGKn0E8#a*qBxRONRmp%I5?x^0Jqe+3xilq1YlIlaB{QYDICWZN(g2Q zH4A}9oGE<#puL(U_2OM`q(e=0GUaaR+u}sX)45o5x_w5UN!_WvzKXSOkC(qU?EApg zeBx)Z)2+$YC}qoQz#K}xbH%bCw=TC!fN(XukSzTgKnW9acjpfAD*drP=`jEDYN0{p zR3Z_H5qOnER#v|8oXdAbT_hd{#c}RxTYLaKYzUDsU8|+pO+OhENEp6LEnTb6M2#myPu0na(i!59B7&!W zBexksIiIgyUZ#IU(@m*2)Q=TO(y_AEI|=gdz5n?5L_~pZ{~2@Xp^ZtW$g54k`7dD> z&psc<-&~wPdiP(HwpPr|1zRr8I!{r6nZaL&*5^N!r+rutHdw+1Im^yH2YW17?XY3Y zupZ7$tO`c~N+ZS--RLpOa4f3DFJHjc}3B&6xcJG`Fj-H!xX? zGkC#Q0-#jVo3JyHX|UkunfkOnBoqKu<&|GZj{-R&sH=Y2B-w_%Q;C1SO8XLYUz$k%}zI(1HDZbpg5!7H@a+zaP6P(+t|NpeIN3x+h-SOrg#T# zZ>|^(q7`eSv+#@PVuWB~>@b=PyWQ2Qj)UKA-#z{D4L|;_!F#Vb_gLm(!riRp77e2m ztGY?pi=lMKW_85k4qcAZ&%yKz>XsTkkFR37T;0CPv#|!J?(O!5qSCA2ajPC6j#ox4 zPQ72KSlm*XF9nz9yl-%+ewgFVA1rjonJPg*M#s|f%O``Bb&vGzhsLqSE#i=qguv=Igo6TNP1O0mM6#zf$!gn2^bzaT8@_iLv+&;5Lky5WCV;BsGj#r zMk0w_<$;i$9ZM4p!>Rfs3MuA5Lxg9C87OKsUS3XRu@7F-|wI&6)qNPW{z|@AgwM17{ zvNs{+(u5yz#};!FK*Zidl)ba?Zpw(d9mSZM$kqYGugd+KA)vQqEC}P$0zWVv3Hu3vS4*#&a z^p_7!tFs{Iw-)_OXD)!~rnUO;pIIj!{;ljWmI?jaR1e0Nzo>n74_Bsq9nxiMBpzJJ zIUvP7Qwk2oI0<#1{&Lc?UOga*^VN$_-}9QgkQbK^TwdzlBVB9jWTEd~WNHKt-La~t zmq?a_(7f$4GFG{fHW3Qsy-QYLtP3K;4lnoaiJ#xyKCADd1ngMRVEb5WVHu0uD9ic? z)d-`L8_jb&PcWsgnv>i(rbX{Rg$g2vQZm@en)qVwlza&999w`7B+S}uAgMZaA}<)?3< zkiis{pXAHNKcErv{K0cWryg??=soJDHaJ+t2pj7nlZ#=4TrxfQ##NpMQX8gUIPl+QWPKY$VH1P z2NK2x!!LxMoHOFMjN1kHL;V?BSeqk)PQboP{RE_6N3kEGvbZ}p^m}iC@rKVQnm6(F zipz~{RN@fLWy-K%3O_4bRzB>^D$tUV=x}fVOjF7cZzN)OcroT$CDQxg6!IXERL~Yj z9yeeQC+;j8hXxDzxqdg#y#u2{bGAj^_e&M!EKOFFy&v@`&jex1Z;O~;v&)8A$NVcwEX3Y!*uS~n1 zuKtK=Q^Vl?L7OleYVG^;uS|PN;9M+E##fPY@DVU zwn^!6T(LAMS0LKx>=-Q^lIeYHyZJayOn#Yrr687TJp$d&`nt&V#iou3u`VL!q4t~x zqF%wAtPXS~Vr!xWUl9}JYn?xa1!0fR)wYdB8LsYuZJweQI(ux$i_Bii_nnXe`Hhlt zMQFVx-dEZuQYOUL^_^>919*`^u)5b6krBDgX2rv@6SiSh(F4bxJCoUu81h=bVaJBs zoO9!i6mc}~U`>%_sSnB=Oh4+-8f9mzE4SiK_DJ-DeX>5Yb5?4TOo{Y^Rv51EtT4(3 ztm!$W)767XI)9iZ`iX7>+O^Q#y?N+iE-A6VgYqyl4pW7f%Qd4?FIgLqSOJwXp526(wnBxxMGKnY^o2_|D>9-h!XFi%{r}M~>FkUz_%7Wx=rDN(Ud!Z08 z^%EM$o8^ul_)73z0RS(I6SPlGV~aEC&jpR zCgPq}n@J&E+o~VC45DJxnam21G8khLyKhL=^&!l#(cesz+@?t70$pN8exDf`Y*y?ZQ*5i^#5 zK41=yTHt6ggMJ*27;uo{JI)MKINVvMwf}i}M-!3Yh2>nqwf9-YRn}Z|U^iWr=`Xh# z+>EJn>V;UQg&r_sl3T~8aBp1Xje%_D;yi>bLB7j--#8Od5pk2LDJ#&xei|Vb@^EMh z@ZPh1wV47s?b~G~stVV^P+!H2gX{V>YqneEU^Bc-Ky`E&tNy_w*(KRn> zC+d!&BfLUsN9F|3GWGKb)=W-@1&1(?>>eYE4ujke$8ZigWG(t{dH!Qw!x!%&hkmAMfH)- z>qJ?KalZuI-Pos!bBqcZWkI>_F?)5T?(42Sdrj>W!#3f0njejA01dipxX zx*q1zVBdjeqv*4mh0N2~gNUlZNd)oBHQvXuscUpoz)Y+i&tZitsG9E7b$`rRA|G|W z(i(y4R8L+~u8yA(;yO1R++){rFL`EYFf2DJsxDV(NYlqIdi#^;D`39SJa7mJw@mYUKX-)?|qCy>WJt)|{loysOJLR(8b)u_EBZR4V7a+TuK7 z_@*u(bEc2E`F4Sr&##>j&rZ+RnI|tcnUuR>xu*qz9y$S~;EnnV(5g?3uCf({D zg8%S-ihH3rqOgO7oI5&&Xj3~uim-Xp+|zQ}1!;AY{3MMHbAn?n!4?p=ueTsgCi|>t zrMt9oFnO6DUfbR33bAvPk!6pa3-3zxd8=;DUASH5w=KV=(uAUcni*@w?Uro&e)Vdn z&00lfuh)A7^OMFk`XAFda9`SpS}?mLMBsXkP~2K8DK^d@rHCoR>LO>cS=w0h)smV7 zYJcHIEvU5*p2!f*2L_K;7p2(1ddqyg^TtaV#}l^Ii=9>YT-Fs)<+9=|U$4m&?B)P! zs@FJOz;&pIvU*EqlHuFu#de0C$;A62_vT61X;WSzU>Ljf)wPH;IsPw`alDEF0%BAA zjWdM>jou0|0)wADyLxbzonXJ(GQ))sbUcDcmV33Lw}U?BZ%dqg&w~1c#eC`N-T8m? zM*tr@?Ej3p7iv_t49Bu>?tLAb?mZXB{?=+hT?4v?!z7S-9aWmlpSOJ`U2LYq#SD!@ zgam{$e%mOg%BBak!SIr-CPDGVF(1nGPb-E$1v~xn^AEpOMA7t7zi2q$lJU^-5HvTZ z&&a*2hz>t4->oI6K^awwnk}-+w|q0d8x{Ykyj-{O_TA^iKaKm@P>}f;?p?#xb(8y1 z%jltTC|`BP7sZ*`z+13n5j=t$H)HQf@tbCCL$N#w7jLff+b-{Awi;anLLu;< zgL1gTJvPU~S6O1S=t>XxTq^wu_i6rYN8x1{j!2Gu3x0MluhJuxaz%Emh-PZgfXvKPR&`e%{2L6od*ogPFE z->Iv;1{9Z_otCs=t-x2=@V#GW{>t#OK3vfbEl64p8sm|4LscTDxdiTyIJNXXA01&_8$O(MkDA{KAl#`V9AaqV2P#rXVr z)Ne(lh5fTgWC>axQLuA0ks{}`*Lp8#R1SkAF%Z-)D-qV6W6wsh3refBt|hFZ0G^&( zk79D8Nww$1)X&VACP!S{*}NjMTS30DVnQuNDhN6BC~%G0`0v3a-FX^*G|TdTAS9*g z9~K;8-B4^=VoW2`ypb-7nt8!j7Y?l{R~9d%Qcgs0^nG3MI5c1pv zOP!tgy$8X%&LamaC=&`$eNNpT0!BW#eZS{%-bUw}n3J*1~52P5MuTN;YhT2BMyP~(--U)432Il|zEMB_i$lpf2$9W;GkZ@{#Wjt1W z=rF~G(#5+5Fc72bue!8w?M#genRX3Wo&%kVQsVZ5rY}9O0YyU+E$lsQb-r(K?_yD6 zIfi>E>HO>u6>EiFdB61z5}pn!R%^T(&hpaZ;Rd`d@zgt(6*NM^pXA|(A9J)ACk4Q0f6el}zp8Wu7pYAKxMeoWO>4zfOU=!O56&29L? zd1nQA=`-1ObPP98TyDAs9L5ea!KYQ#a7`_()&q`u#x^U|0k3Mipo;iM;+|t?*yLUvSl9p9OLZ9%s9i zfr-4#ZiXxyeF2NEE->zB#{U!*n)#W|Wstb{Gt8p^dH>bD5MshZ%`2iO=PKKv>bAX@ zau_F?KLaBX{4g*E&rU3y!Ryj_%*VG|a5Uk;6Ate6-=yV42FKcAh_K>}O#`lq((w&- zuh^U|AFY|WCWpn5ZiB%pnWM#8-ov`HexUt%O$Bm>9a9udr~%wh2vLy5)!jiX&Rj)d zkZXW73;Q+TxzPkl^5PB%bj+e;OD&Y-?hBl6zRz(Z zQN`{MU8~NcuG2NuG2Zz^c$k|I?(m#fvnG2#@1p6<vbLAp?DN0W5M1kdLc)SKv6AWHLQ7r@|gSN|eaq{ve*#kk;VFj~iwNx*+em zNUXe7IZs|R;NS78>p?)&*cHhZs?+cicj9EZaI%d`P8^EC9iQ_IVYm512XQTf?k+`Opu{(Yll@c%Q(n~FPQ zZ`@fmvoE=gyF*%G?v9`9v=8q3!RaS2YVBFG{f}O)IcM_X_A|*`^I5$Q0!Pko*O~o{ z`3*AksILCw{6p{ge(ZOheCAS(_j1P-xBk3%vr>zl>nOM0)01Hg6C^#(=4aiSyRUcI zow(RL>3N(!MsIE&42y1E-ZGA6mgM$)ADihw?w(w||$Z{aE>1>y;eC6}3oH{kHOb zK0KFACY?+yx#Y|D_Dq4`k&7C!tCagpnV+isivJ_F_}h%h-wOV={&AR9b4a%QIFF5S z!lSS*50_W>YE}eJ-M)ld?-D;>z=Ts=^X}N?a;B~}n09A--O8+efB9tG{DUMXpI*G* zTA*C)4wyt^!o&7$od@iW+`627ecE-wzY7yCuIZ`_@Ubi9R$3yk z&F}1WR>z;y_E#>7;Xk(DaQ}ll@;7Ie__yyf__4K;(R*#t^M8V8RrYZHXOJrpnN+D< zlXvU$L`jBL-OLlJA^n$6eXj84)=0Rgw*GkNPW#JW>y0lz<_S^njfje86v)I?{M5< zP7&hcU>Du%>a%Fc&bY%pv&y6Aw*u?V`i`jiZ`gqak=Nt{R!@)Q=C64b{DVEHlG|<4 znaeA->=0aR^uBVEYQWKLYcKa6R$aXY*lKLF&(L*#Z2z`!L5=>UWO2bCe0P4@NAbB_&3rS7*783xj30#jo8^J+xVC?4nYyOCe!RMxK5_esPg|w= zwQOIu-9O`YXZ{q1Q+|&kS|9I!FvXs4t3I%G&s7cVhHvj$D$c+7ZcN4FaDS+CE^ zxgq-D7NW&w5L*?CG}c%Kld(HsvO8DtgU*I6Zqik z8Wvi9UOX`l`11aTrSw0a?Farde6zpxpW)@^;Pr;Ubd*~E`1j-X-}~hMGu)Y5S0Db* zYejwge}##Q_Euf(p_^} g_{qiP&-Tx%jy}E9EMrmEFV>BpAL41nu>Zda0R4HS;{X5v literal 0 HcmV?d00001