ࡱ> :789zFM.Kb|JFIFddDucky!Adobed0M   #%'%#//33//@@@@@@@@@@@@@@@&&0##0+.'''.+550055@@?@@@@@@@@@@@@"!1" 2A0P@`Bp#!1AQaq "02@P`BRb ]<@ L L L L @ @ @@0C110C111101h)1 &4C4`X B P&mP5Djcd!a@&PH&*mP`P&`Li0L*V! Rm`@ R0#d)AՒ0@ eC(Ę&H!(&Į@`b*D b(kQ= @8hCa4Bv@d)l%04&1*BT)`*BJ@P$ 0 0C@m4($`0t֡7"$66M6L܉M΂]!*bW4KCB&m Ar%l̤!ЧD" &h&)Uȝ` \'rTԀW:v413UMԌMT L%h)rM&4CVhhM56Jj@C)$s)"DPB!bI5M%Ы;T 5'LJ!#BD , )dڵJ 3*Ն{gdM*cD[ t*P9lv(RCW7;D)Km\4!;B%N&SijQi Gu6-sIuPJѐKe"+455)qM\h7$Աԣl9lTERb)#L;Sj7\j@b^*d&H)sR"$4qBֳr+!M⦚t4b؆! i,őYɋ:NTCF2RK-ES&5Ahȶ!V!CWpk EA2YuKFEѝX)D<MSL0n*i)g"gCYZMUHf)5,WΤLVYUQ)H$ܦFѪLQ-t 2 IH ŠԄ!n:R̩X芫U()&i2hpCDZ!M9CHLcBZk*)8.H, CT;Lk-QkNtC"Dᗖ UJTR (*E@IE)T8n;D]2ɍr5͢"vRR:J(BШ:άj8)= t"I$&-F쑃N:{N$r*`K#MmidTy5-y [tT &^ L $hIHґr15rRPHLGSB D5cYBi (bmɝ͔ I+p!M(T H].I(cyҒԖ-R%jjR, R43f:TR ֔Lji̹Ji2t#+:bi:I/;h9rf:+sV$VtW;! j ℨbB*CYZ)LТ`ZI.t%g TU@LT8M^T8,ILE%W%EMAJySIh:$bo!zhpgA4rȡ*!ŚgHGM YY t*D h*RB\i*M!!%T(-<ǦTY()K$hJ!Mt)b!҂BY$RWU8)46p+TFD%X&ZB ZZMaQ(B(qIRr4!qPE6Efm4YTHZ$ڦuB03F`Ӆ*hڌ i RUC@FU&PEPjei KΒVfX4HDH$b*,&\cj"ª ""*P:F "QF1 HAjGQCΓR-E0mYN(s,kJUz,-HV ӚL\`E;j=3@, \ZrJnΔʧ Rh-Rgm IJ)(Ph!֒HES;@#d"(K\VZf`S0*5JjƯ;cj@A1jPA"ZH%TPMf-& R7H4gT(%-ҳpQK96#U t"4iٛmf)zeE^VLQ*mHyI[B42j%˜Wg>.\xsυ/2Ĺ~>g?sW?m~|*%isDRyy_sQ?GfyuG'^|TK_c?om~3'q#̦J'!:%N!rT \J*ua8,W(+L31YNN%qA>Z* Lsu"JOnd/Njl'2JTcp#*S\C )1'+l*\ RJ\9~)`$FWPH `ms?*V|*%FTuQT娟sSCTvbZK\LJ*אn|:SGu_=Zf7#fuz2St 4>3AeJJ^\RyԼzQgU`r]8(b<˱_}M Ϋ x\E`ΪXҷQB6@jZ@WS+2;Z@\_:aΫ2sͺ~,3P9~@%bKY\F*c-2RfRa'\93댧ZߗsF3p53#A'~0^ Ԣ<tY>%q3&8qST.V%f̙ͦƉՅF8nYJψ ֝M|\PK$KA̋A4 Wg/]8xtus®TLNVݼT:rVRμhƁBΦLS^SK ZWeKY|vtu9.gֺ u gý:sS9j%zG%2h:Os+:s̪;>+!h3ƙԈǯZ־q} 稢[-gfiYh9L eW|gj=N.ZW3|fgը|m$s54LeZYEX \{z.kh&u]L~ʣ\Lj+4&3g2phhih:c /^P{uXI8 sܷ.㾲Bkئys +ռN>spr0r Ij [i٪m. zĩH}면S48f1q^+=g]LB1?Fj&EWePďZ,xJ{К=f3η3,&r&lZӠ f!QygW]KC8rfi(Z3膝j?bkZ~ѓ+4)=s!ӧY3tc,Uֱֳ'f ޻KkkٜaeYgi sZI99ήvr:֜ۏV֬zs>EVU]3>PukZRS\^Gp tt[}Y2h3zդp̡3F yMTrN&CFIRR!fv\glE=k &Fu02J52g>C r #Lg ;^Ck0r3DW_9WNPT;0zG9dkݪQlbkZS׉*Ԇۭfjy\ǯK|䅩{K2ag/\KA)5si2+w ϯZY׻Y&l3u]f#2L3Z26GZӦL뙑dΖk-_۬c&}yusf:uc= Y`WJMoks4\..u[dkM @k[@/E{TӠZ[LʇRkNoA&7ˬuɕ9E!T}3:F :u~7٫\nz }73f&~!v&i5+C=o_XL4\8,Q;t=E2N-smҫy]iofܖ>p }ۂ&8p]/3J:׊+j}AQ˧3)ۼ`HLgZ+0ˤpjۂ\h"֗|| t3EIi=khVӟ̌vc>#ޥqtr|gZYs:6͹ Y]R/%:Rs;\nS} kڱLk&=iXsp%[Y3s_ 4崪qmQnWU0C'mS`%g GZd\ ѫu dz'gn]&4Oa3Td3bWD3zgejd<!?TuWKLZ;๜gJYx#6@Y'q7h͝}yˬƒi}?!ZUjYukgzLoZ@dkG\qY9Y֡zkt0&Bj~EM =L̜kjtz\g{>fd9fw; J&?LtdQm޸[gXL_jQ֋&NzMmRoE3zz.z#u,u 1NiMkc}rL=SLќ8Z8Yz^&Z&4taUtEsxijy jAL 82'X V{WPaPs5aheHz^X۝}=ymtiɽvqƺ&W[L:0¨ ɝ+32>i7sLk][U HR.bG-huYփGLjz[YiE]y=e'p?X,Wح$S6)w`\wXָ3kFsMk&~sbܜDUh2L]\榶ndXOY\OSg:IPLgmu{Y kZBYY7cז&f4[=z=ecttEΐOgM3 g($|UfhYD iLg&W5rkZרɐ57=z_^讳Q8ɜx[muvf[w32{3f:jvj^ W׎ hӲ*f >d5ՎΧ+*Zl pT70߱ ׳A7:Fpw NçHӭ:ukv ւvcJ2+zSH.DJ2t:20h1C]Mju\:z{k^ n PlPM}{K5Z\Q-[tGPwM\܋Hp~V}}OWK9 ` p:S1kZ3Ȼ -.oٝls?&yVg-ރLtAߵrU%C[ӤzΤbjcguLiEU^1nU ћV ?]S4*zItg}Wι\W9'5m0S@Jjh*h&yR'l.z{oO9oPRaP=Gc*ՙ,KE,-*S}5ut' ٸ"Egf;]b~jf9,2`!ɕ9 p]n bQ{tNՓY`֖tSZ3! 3t6tRbgV]$p2F_^lk3GaDN3fspͨVrCSԳ&X2ٜkMT׳]jdvNC^ͺskַI1r^ӌE֞]u%u.3;9̴2bm}]_c e֮dkӭ%?4<W 9 -ֵN4G49 EhT@!A9aUtr$҆yFj=`ZsTӘ23us82,CT\ ?Wn-r:=}M[mr1jV3M=ӧQthƙ ˒sz֬X%-]gU|odZ9˿c2-s5gfD\2kSy/KFRq[7öuvoפJ=~1Ss?Q7ˑPH )fɕEۧ9=sWfTifɱYɜQ9!o fg,άond~t̄!,Ĭ*FCy v|)ueIAm٧YxԳWĖt&!C&d@ofUϮ\\붷t}:cZzjSNRtI&WAհ9Lg0ݲNֵyװ,=giPu iΗ`Mf}uޝ`yp{]=(c7K%Z3`umJf193zkyxk|s91F; v9]1J&d]]ۨt+1׬4Fg7=}M_ѝӭQW)LQC [cgf Kk+3cY5ԃ{?5ۜ^Z3e8ζh'[/ ڂQ_RfulpXaR7Y>5~3Uu-bNˢtX煶hhgדZӦdY]6N;jg$:g?/56ڹ;';A+,zKg YZ24`&Fz9E.:ւkLtֻ8ˤPem1֟f9÷gWBR-^ڜ(ٜn̦f*N{@YYQ4n J4@3y0K:;\x3ev3]9|`퐷RYvO-&F;gkjv3/Zz(u3&G~VvkQOS&uPʺgla29ʱҹj gZgʠ F\f{d@Cvd&}zZeZ֟bޔE+ KI7vO#isl3H+35;֊jd=4{49LwåhS:Mp8*-AoSN*g<&>nA m^g3Qδ\d͙U9RM.5̔vtd 'S.6N@H te\vV3#fvjC-roq]Lu>~>sMN)ӓ$WZui1Lpμ-34k)Fknu֮uDX2^3g zW:ڦz2^ەnmhuRd d:nnp8q=σ9f@>ަyuYΪlL(-\.&_~us3}MCfuh-0g2+gx=9g!9=: oP3Pѓ׭1iZ18MN\l-e6sS󬼺7ty֪ Zjioј fwkJss8~֚sWY678}9Ү3zd4teSmƲ/Zæ7c|\g6fhX 3gétֵ j8>'ΉVo+֕1< .@Z2ёMYᅝ!I=hC_֑Uq[_Yzޓ}cKX]o&GJP S흐/SFQJEo9W띌 :GUε7ZB![55i)3v+P֕dє]mg]F:iMɌX0j13{{wnڿ_g ~׫ޔ+H붳IOg8Yg7ւ=m_:I'n7zw=@e+mOcdmsײgRe,4 *uSzN`ʍ̖zdM t&@ڀڳ\vQ4esΕ:[GP3_mVz##uikkFC+9oƴ˃ \vӯ^S.I%#3]reKW3Y׌5UP"AXGk[\d7uk(5{h*9Ajgmi]fhDk[PfB:QZS5iuf9sUh/AZbdq}/Յκ.sS) 0PuNdɭOYj|ƃNګ+3Wm=FiN@"ȩ.3%;d@M+3dəR v*g_ml5d /&]fz5dg[@&2vӕtk_>kzk kFQ\%芭Abz.E]/RgMN9)C:U3am2s[⺉,Wx.z:3z5gy 8&1Ψ5 tYwZtʏ&M!9Ӥ 粘5٥ Qu0ڌjuc9ˤ5پawf ^IdPJϪ2aDlk}ugBhV;It-P{fjM+ 2̔W*ՆJfsd4?̦ic] vjsu d}9Ur|%;/|z[ +Q֣˚OdOol&{ہKIˠ/ZwYE9 2UE_KYQg;G2ڳy>83 }WM!jLd@NibWEku?!.h7qLy}jJRȰSvX*C 9+Ygrj9Kc :ӧ[.ig%{=vW)bGtzM'Q|> `)sQSPY_fR3Pscۭ?&N{hȻј3P Ӑͯ V S{u uu]A;?6Nt0a`}g yY{-q:X4vm)u:XV&n.OBB:MwwΧ3u3χ>4GZt%S/KKs|̴W Ӡ?[Zt[w "b:VᴎOjEVH{.Py\jK b8sDF-M73WUHk9 4|`V|&AYDl.ߕZxekHx*ȷ3\8ounRƧ*\9vbs4itLD&P˖KOQV\x%Mme;{2sρ?gUy3;Em0Yrw?μ2~'i\[K.f7>`*Oy/*W x'5iep:Xp\, -JKeiqcaK.XBY/,-KX>gυ ϋU֝?GN =B:_ͱ]p<|Apj[.៝kWpj-˗ -Qbߋ ϛ|οo7[O_c?ޙrXoڤAr,˩dXrb_Fܹ|A,] ܾ{rf.eh-T *Q*T(J(~u+J /#ZX<~^VX/ })~}1}^JZƱ6/Q1}S^FY௢>'n " ~ִ/H%^Z 蝉xD/Q财/m%au^N(R,Y_(͞e*ǯ2 +l"$2B<'9֛H=Iz۶1 w.4 (󤔨y#Y[v1>Hf촲/lI1 HX,-<"YegYEU!6'b",Ouܲ[,b#(&%pR6z",̶@ƊIt( 7?*R<>Y"4Mg$x87vLi G''B,셄7#,z # ^FpGܻ!*<|U4Ydl>=W/mlD$Hu^M^œx+؄.HWr$?sXۤ]'81G y$|"OR[#Y"~G^Im.Gӧ?&l(^#28{U"헅Y)GUD< U{ݎ?RVY%r$Qt!.}vD%A#dm3OQy-/<b'%܍4܈Ȃ̞ p*'+ԽϔQ;rJn:q@^r4/ Djv|Uuݍ&u^rEOcFK'b'<7ek;w,r&hOɩd>%*%XK!C?/s.ǩ䗤uT1z.R!Po뫇dR> a TY de^k _rs$y=>]} ^i3/ m K)d^cܓ>7Y2F0ps w>*xX$Z%-F|Z ^IL?r-% -i,eID~B!<'O$`]R1,FB fbEScKG-^M-r?o='粖G W$uSu\lKV^엃0>3i}oZUU2z A1 Tߦ)&2F^zc&YHj)i$d|DK'`!T^G̓2yYUeuC>}U4ݶ?, f F L}(ne +KaW+!}Dnɑ$MdɊ!)DĒJV)8^ 1֓"^ p5 زVv"::^Ic܏>='Otz"Ϗ_r.ߑ!Agl=OG/YJc+{ pF`Dg9!T)݋b1b1l͍% ampz[ N4%lKT^gGe Qx~‡5OKW'|S,>p<<[dNt='',m-%^I$=Kg>=p"XđKj/_"Gė WW2Q/G4|zgI^ļ uge#?r/ݐ@I#@Ң&OGv8^zp|J1u%`5nW>K"X>8FEz-o[%DrK<kKVؘ^v= T=4mPr~N=kK(q/Vyx%]pO <ɛ Ƹ+rbH ~;ݐقVH{\K-bIc!`RBPK,)Y/,HDlnB? ?")~o2>%ɉkCK/F~ڸɚ/',|BSLoE剡)Z%'Bx)$=_:Dr%=7&kOb1,ull@B#KE zL6F{24Y=-$py&,ɛ9") b%d2J )^p&g>;#/-lD% D<]q6ϊB\  %9>S|GS3$DuvCgw9JK11DdU)G]d䅒ƕ!{K,|'=pR>H5/cI߱[mDvB"`A%m&4Hn/Qd ,]QBs|b,n^Ii-%H|V7eř|mTV/,Ci$4l] U/$K<4sI+'ɼ0%q"%KDU]/HHވƊ9L UM񶞂HuN+rJ\ !ܡ1:ppLKj[?!uرq+#u|3ؘ0DR[dnG0K%f)99&) 2z-pHp!-/,7%M>+ܡ9eFKtX-VɊ'n,F[%BX'%%A$Lz cyvOgleIHV^KbV ~Dc^4$xG!:&e('^9{8I I}nm[nN[""u:R"F$Kؽ*+,#mS.3m Ƶ^>)%g0Xt]UKeBҥ~670(1GirrK?:.X )!a7%id!*X8Dr# Qc O'XJVBPUlN|؄_bt!{Hd,E[ݑd|)pxe[!+/) $22nF!\KfD_Y(L$ X)DbIcs.2~Tgq)'d ƖNǁ=82':{2Q϶:>J%.7)ANz^ Kvxܯv"VĞXK>}<.Zxbo?bd=zX[igNK$u%ĐdutCt~Jȧ#HD!-du=DQKLݒǨ#_BK!HP[܅YPBx<OjE[$ 얆߰TğQ-=! 0su*D4EI JD|Xۢ6-A =Q=)x䥍ė)$!"u:rd_Tʢ[hIzHH\\rd+|Bnbl)nV CnngQ,e=^⶗-wnFUB'}" {"2VD`Ky>=.ܐJع& ҒJ>)D T u@#d'/HYnζGU%K#cX)y.>]{׹Diz6Og1 #FɃ2V x'aP (^g/bom[-0f{1dnpILOkdrJ'ɒdnN`L8=-K,GZ>*KoO-u>+ܕD䬓="p[!/ $H$}uE G&i:!8!)6KKqZP;VGd#t"4yGSO'>]+C?q%@o}t?g9!nI IgstZ$l``F?|>O'ѷɋ9zB]3BtIz#t9# %$߁,$َu'_y:rx.1[[BҶ'Β/B":u//؅ȥ4)r_n$AC{! ،dq=6{a'ۅ*.ZrBҶK<#<*qMu\iVF#q>n?#Jz^7#m% C>tKΒelY(n(d!aoLQ*,s 6Uΐ41N%!|V!c{L!g}>]^䯹nX4ް^ &䄨%J-؞E^HP䎾Yw,/$ox<I$x2^4pz <DF|z{9 ,//JP~GȏېrmAI7S-%)?' ,N,)$\Kܼ"{Vy'7>[IjY/ܡ<^OQB i .9܅x$"/|-lN BDrU-yjO$NF$b Me< [ik؎9"HE{g Q`>ļQ%))Ye[zL(d"<*-ؖGT>ݯU,Wө e~4luoqN^9.׭u4%s /bȖUٞ Vy/%i.x!nI' ,m۷]" z[^'$".o'& (Q}<:Fd6Y/; r?(ΰFM$9%pY.7*ˡ.KrlbXJϗlLFcs&Y Oٵ bHTOpB-EđY)zɒbtVγ2ynJhY-/Ư=(d%//bYCycOb!K)/-Eg,bY RzK$} n3SQ cmcbLd-+$,/Y(xҰf bXoIu%x%VBy'd4%;'8H1&J#a;Ę"`BJ,^^璈TK%kk^#G)pY &OmH$*2%躱xc\P9rz]Bd'\唰>ݷ'>NbuR7N|bK& RDI"{R Y"~p>k}{9gb^ \;~J#/:K#9XM𱤒1oqU2Y%Гs sGK6~%2Iv1//rd/("hXųԷIX-ޓ;QB!;O{!u蟗ૂ۳6ȋ3 b^u[w*cmHYgedVmqY?'C< iFli\*9b[&rP^߱J]DFD>K~!amO:yx,ܷdp9r.O{֘_'PlϏU<YjķODh3d =#s0+92{ ,g5'Ǫydƒܻ̕lL^C% /}rVH_qy,[,^,m,]zlm,v)rBB,dux(D/=Ks#J pLI.ddǡ,vEh=M#m<ˡs#_џbй&HW$!Y'/ Ix!k%R "OK!-!{K|^N|fX3$bEi ܫD$%c$$6%/Q!Ξ~ڷf4dZI>KYkB]A?KoRx(n/^^I&~ >CԂ +=~ޱ} ~Tk o/^OV_G/QsdU'J[*k~?_ Hkk*,WԗWgE?ӯ;je<ܩ77777777777777777777777777777777Ŝ٠F2W^%{HJFIFHHAdobe_Photoshop2.5:HHAdobed     k"   k!1AQ"aq 2B# Rb3$rC4%DSc&s5T'dt6EFVU(eufv7GWgw8HXhx)9IYiy*:JZjz  c!1AQaq"2BR#br3CS$ 4% cDs5&6T'EdtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?n7qn7h!p#xmM@c2c%v8wܰ[.|3U1XTWY%mi3:5;cs^Lb#ةNJ~+m1pnw)*stY( +>#d~\/w- T6}lU$ }Tvg6gS"rssT\꫸Bk=VP)=:LX@1F&|Q>ļ3tmMEwwQ;[}D.(KZR.66-ws[8K8~^px~8)vzcEDDqxYdoWPhs|STpQUcUkeU5<%y렧\?t\Ow9Y,g>&:I(<n |9Ӌ&uUg[_Z~" }Ix*"l*##l$)ݹtd\ZK XCns+nW=ƶ)CtVEܽigwԨux^p WG;Y )YfJc|FJ/sG^fAW!"efȏ!S9#qw'?̋[*hYB I ʜGLEnnse3Lûg 4W&\:[%[}[MZomt}$햚fcv,X];e]_sM lCIY^)uMX 01̱jƶ|uЬNbIZln0I%ܨrcl`Mmn T;Lcg"5нqe8?qGe6LP2;OUDg&:Zˡ]`9|]MG+Cx{8xt/YltB>AYXHab p⨹S4t{4T86(*eRwPI ƸMz~NNIrR]폼p):b!6brM[0|wr \*m;l7 ![GCU4|-33:9a|c\pW0K.uK0Sz:"S5z9fft$grH惋9T\sg8ö+շ7VRKIErLbݾRXgGyYul}[k]SNp3,%ш#sL}҃xïJeIFk6i| \ӽ Vkc/se;g mtOct2F1#v1k 4̱۸|Z,w ]Nm5lz*W4լiZbİ,N ;1Upq5τ]MÄu%=E®jjd?9#glОe<lqG0[et}$5V)傖 dFm@|HWP18ͻ{mqhxOO,FQDکbf<59=-P \_˞kon0%)nRpuu:YYZ9vwZw8՗G4_ݯ} K/}Yx~9YN}45گI]-$s f $6xÞԨ?.wUV[SAIOUmHKlJ`lF# [PMze]vMauME4p^C*D-k89=mW;ͲSu֚ClsOf2(k]]Kz`?d>&_ޏ| ₫j|Ox:on;<1qel%ԐʊZyڊ6 pd.W ]$swoʞ*һWqTndT]%k\\溢a 75^_ۡ~5z:+#,?%?y[EQE03ԙ)Es#]G>np5׉; EΖvHi(V{$̂I{j)11L22E j?Z%|QSUh Zz֡:iȤk妚PǼolO0O\8>8q=iE5 USe8`BH#.J7Hj1T!QKEs\n#,抪e \s TؠpP|:GεTV>?vTY1]&t{1P>R͊W2q+97z\jzv|7Mdl}oqqЎvxeTult}Mf]/WSEjɸeKYFE$u o~ 엻-vsT=OOhj-kb*/VYU-$IqU҈*sck'nMWp5ixQ5]-4)aGDu`˃AkfcF8_mg_Oy_Q .r4"627ej.gAEAfZgT#´uC-dY#Us4ݖKoJPܩj9kkkhΕO;)?sgn:}4כTR]g㢗᧥hcl{$^xqq^-qlSv/wwSnx٤3\ |\IZ۝픕-W,&UV6C X ;ɝLeFPǕ h^.1 #g,WseEJ֘201/h- | Ŝc;a lrv[) iXL.u+?qd6Z[YzjX2\&LL GvL'~YiuU7Cz*9$]#i2:I^_LPT dɶ)\F5YWVq][EVKUpfls&URy6#Øcqn:㫫n7q#U8l:] K h{wF 3X'n\5e/O`~;;n܈B1onHo\ M{!=%;g.)g9bRӱύKCH9ò//=~.mU>%+]xG9ҺgB oWuu:ےr3?7!/?;CSpΜ pSኒJ(.1n*]v5 Idc. ;( X)}aTXet"CWS!/?;CSqےr3?7~lrc|yɊzN^mLfkjb+9H kjn嵡x t8tUWzZYd#H%!ָuu8ےr3?7!/?;CSpqgNZo7h۪߸+iR@ρlWtS8\/U\CIO]Jhc6gh3C~YCWS!/?;CSqےr3?7v>Aq({^>WY!Uih"ڤto4mNZX@[!p9LrzN\ul$nu^#أ ) h?d'WR{rC._v$?ghn7DC- cO$?pgV:{rC._v$?ghn7DC- a֢[Ő6Iosb[Lѓ`ѭhh@WR{rC._v$?ghn7DC- a~Lrz9OW-9lnm4Fk0cF#@Avuu.?$?ghn7{rC._v͎Lrz91OI-8mmLBt2@#G4IQvoh>Lrzv/xJgo QΊkr1G5ťA#]K|qܐ˗C'j& 5覾G+ l`|os4s\ZT1Lrz>\ l$YmE,VY d $(phWR{rC._v$?ghna򟕔ܪWO3 EJ#XWA.D-}/xI5<%ijJ5Yb71HP>^\ MonHo[N JhHPԬuuo\ MonHo[N J?qSEp-XډT{inc#4hF|qܐ˗OrבӸ4\T[촗jVK*(bwWi]eŭ)o1e28-/-8Wm=竩ܐ˗|qkoc`p]dFr5ꞦwSY#)mט1m5ov"dvPZw* .,qjnY6I-KTW}QOYWK 6L;csZQ]K|qܐ˗C'j& 5覾G+ l`|os4s\ZT1Lrz>\ l$YmE,VY d $(phWR{rC._v$?ghn9cܵۄCg&^кC-cedEkadR`"{}/xI5<%ijJ5Yb71HP>^\ MonH'HpW+8ˌWW~k 5 >]mݵ7m(Lo):r q?em+祗⪢NHC߽sqU!qԠܐ˗Xp*[ ʭuvMX0kZPA#O$?pgV+a>YXn:n7|qG8oVoWKLRI_Vi1ٲ.s1>Sq,ϩkdOWZ穖zqp:#Q9qI_H(xs4v%XWe}]e]gwr :FEʘJR4XH;<vv+raOKN"u֬xu-K~uS\J[K+g ԑO.=FN^ݝ|j_{Swv[vc[l|ov^zọ6lT^4KǵrDC- aZp?$iŗ~!~*ڮIuR=W 53%@tJ_C,a|9Χ.]]\k]K|G:b?Ҳ4k >W=H?N.kۡR@Du OO+H|38sFU<}8wpU[/K eH XrHp(pvvع/2w׾pq 2[CL Ϻy|ptGf֞Jw㫩a'q.fnqJkU3a#lWmZcY75 TL qIõ>< _GSG[Do"2STl*ǖmr(Q.SB9Wa~ |iwMCjt WX.Fd{dZKZg|4?-C4e=4M١c$f9㫩OΫ71yW#|1dnd򾲆oi\xvIW;]eGUKMM 汮eWKq$g=Q ,.g6;.}e:[UkXdncU$W 9!}gk^'>˕%?cbOica 9BB=[$ >jx)]f1E,@(È C ԨϾ6q $u7)mzV2Lm;hX״vdEpwp:Wۢ 9@p*<iX'7&]i8sbdq9ѹi񸇫Lk\r#;Ql{허87 n%[,Wtbe͐1Lo<y!Ӄ?CRɎO\xQp U-$j7C}&0hִ4 cq!/?;CSp7N0MS m oKUM#_?,c4(AQ'm83T?+~Sc՜yzz^qm4qfsi6+\5I s$㫩qOΫ7KG| '(!ژ+#F,WI$4sDj'j& 5覾G+ l`|os4s\ZT1԰E_CG|3OWS WAG5_h,p7k\83Ʉ?h>Lrzv/xJgo QΊkr1G5ťA#'%{L.%zV٨Reй@BuA gsbjd߆wSUln.Whq{Sph9~VSr]?5?>;U+_o7pcI^Gp^Eb#rp lpg)-o{j d1lliflp$㫩|5ߑܬwެ|WlKS+Mu/);ʊf>I)`1#=vP Vq|UԢ'ҾJxʈ oq9 ĝyGupn kinQTctWh+0# #qhpO+9C4QmQwxYS'٩&v@Z uut?^|3·$=s!a|\i(I Md7U2c6$2hpFr4# *휒-9< \׋cm|YgGjۅe#m4B;9; ~f!s\x^hocAO$rP$,2@GCC p0 q-{f[Cs\6UV dkڇy0R_ۉ!etet٩&hS"KOG<1{Ș0d?hxj-GD vS_o8BP801\\glg I_4 ڢR#_"G=,|BKc=]Ny۸[UO=2u_5E=D%KIi t5->_rφÔT!|GAk[<6G2 RK8j$ɾ߫+ig> ۽HXأl1: u Ć ή|ÒWlJ۳]qeDrjӳ|S3D}K-P_zm|UT0 P5,dy/7)}/xI5<%ijJ5Yb71HP>^9w3ɎPW/\?ڍwqE][F(-?ElfdѰ܅5,.*q? S%*FwnI2GI#4-7/˟q m[[{L(ilm?DGZnYkz'xvvMU_S%̺X%i.Gtt/;dc *8^S_ůs"~,ݲhq 85ınc-{ZԸ'L^DgUOΫn;xo8ljzi$? MW{<(`1;`i2IC:;&GsxC~gqG}q!VhHc t \9kVXWQ6yyS] 9ԓ]&gmS TRi#eK{ed,?;&EAڟw}p~ij#w[>w"..mG;OʮLb? $k&wuYmG=Xh[9Q%VWhᩘeJ]%eVs@mcZ\Z{˺*G7~㤎h Ms>ri~ygڨ7MS r6f\Z 66NSkIjoYcK.WRx-τo S$UQ% k spkHUBQfW #g&^+o:uwy41}YsN@GgHp|ܙ-w-COYm6n'|P^`0cXҮ%o7=hZo9 C*V\PU[99KGӒ|sYƜاy;)fJ#c6F\#}]O9?b':G.g$4d9>9NS}MQOx\e/[D6o1M$vڊ;?fGI4q19[sh~_|Rm]OioV 3 oS+&~N̻T#xjZ*Zjv>]lp\$Iwi.sKw8e|Y;6N%6=L&Xő㫩Q gsbjd߆wSUln.Whq{Sp`9男^[=m¿ExTOq451n|2GnhP^ vv\p ;'n5!a}xv_ݖWS֖(l:SleLYIh䅲-hd1H{ھ@6?[EV>sR:hwJ)*"l/sO}H#[go+l:]uwxwdeXsw5ť`D}xv^8=(3夕ytV[9icL%F3P]N8cͱGA_tU搈Vi1힎 +rq`jUwp}>hmoѹ5tG_ozH`$l1eM-<♦\uzkn5۪Yq1V>Ax 8˚Ϝz=,8v}:ււWsWS1y/#֌ /=,?q?M7lo^f1T idF7=-i%)y;g18c5\5xI8/T9xmʚe8UlXq0FK45w_9=eZ!3Wht5sDG4-ڙF]c>89_%]U l0^e-)oq9`2 \; w ݾoijɝ.S+dj`` 7O ZfFZWR }wʸzM~k [r2-pAL\\0t09SV SKɸŷ^%\gLk;5|-2?5v]E!jp0Y[ AAz}T4ap1~zI`{浏(Ƀ~MuK 8-ۜ*2|Adjh3$Ss"9cƽ;Up՗;>[Xr" WWOhp? ?Ŝ:ڮ\ljZwH+ik T_hHPԬ1'.w"purJi-7AIH m$jbp }\ioqqD4w(gumsZ|U9,/VF Gq/^/< b]YhL㪁ٲhZ칬G* .%I~.Q .Vj+-d~؏ᒱ:l/g~Ls//\ee7} <&NHgmKY%ۃʇ5i[r)ϒj |[[ڀA+iedV=nxݐ߸Z-jJyh⏈&\(xkbqt!$v%(nakeΚ-6)^=9i  hΜw2yCp[o:VX;kf9pcڗ/|Ɯsʞ *Ϲ8YM+ՁUIcL~ _;]ydr26#>YvZC\jM=TN Ԯl|n[+KA.<\ɖi<0᷺XiME׻KY,^n&#Ap&/\kĜ=2Zgkc656Jyb2C5nÏ`'%V9{O. WYQK-e=90ƃBuu*!Q|\mj*+j(SmRxӷ vBYP\SEj*a9jk'9cHs\ F'm83T?+ݟyqV[9mL!֚Xek^Y,lk9=iͤ:7]]3?Hk\rY/ݚ&Ut+'gxY1eҞQHȦ=hvw5_Ctq:UO-=(sw6F LHɿΗF9slivik {}X%kpkCXA_%67gS oXf8Ws"~uI ޮ1yW#|oioV 3 2.9N{8}}6 5\̒Jxo<87rڻ:X*n:CK SIGSS;b8daj㫩-CA?j~^d!V|f\nYh?M)vI_t?x6_=U+pw jei@7wŽ"Ԗ6ls7$my!m¿X7᭵TUe!1{\A9+jjD[Mtr:}I^ z`O;! F!h}# 2y[fK,Uv3B6YI +ԀrIplveO_Np}40Y%sL} 5-}=_Yz cE4O|OQ$su_޼yoڻ dm߻n{SqTﲽzT[x׃,9aseSP qרsBu?Sb5Ė+ŲgCpA6to G#⛯c*_ QO-= ๘|5̫&Bd51;cvz]j-|' rh!̹VeH=e%xn8˛͂ё'px`Ϝǀ^\,Of{7`.ckCB:_ qGWpF(klWzIite;#LnùBMtZ0WUe$jMiV-%ƽCA7g_ sv>_ 8HbF8\5TEZik;f>&.v:.g$4O+ rEn&᪫mu ePw7 SUd@#xI$};et[s9Ay\}ps>z^iZ)ik"|r9YRY3_Pp5qMY|(0Yz E &Xks6>T 8XCǽSnW;\6~r ky5pL9Bv3HyaK8C8/l|U׫4v[l Fl5QDUN4޹p_\QSX]AHY51FIb ;hY8nEgRPd0Cv[.(3$ṈXOY8ExUpgw74lXѼkd@:0vt[d9g:_ܡ l;f$nFsg)qbpRא\EN]pp5ׇ|%-|Ur#k6=їs-_ ʻ=YAenr]mv.5Zt3bs]+ȇv@!y!Ӄ?CR'm83T?+]N,uJ/O$?pgV+a>YXn:e?|VC k{DZ 5:A#r{&n?Qu1ݫTrʹ5$+XCC_arn TqnTT1o}]sk`kɢvNck},mb wt~.b[@cr1n: gn?%.L?Xm{vv֦Ov[yF70EiG-xO&r+OK}{]ndRΈ.iwS&oYc93{˫?qGY%i>*;q] x"3akTJܫha~JԻ&|0ҙ<҆LW,8>e~J%}Mu3DuJsdtrx>-_\;n4N0vz[t&خHxs# pퟕq5='͆nqmyldpGef5X^u4򻫩㻭m]ձZq1ϋw#\,n vc ҼpN8Fo6(e#/2Q56{w$dAKƜKZw.3Jgk+5\42 +x8RuRso3jWqmYeDmSxtf[4Rl-[ԯ7s)\?[WN&Z[pcJcXxn$P &Z,9?=wq\_C÷qw١-)3Hlo p&Z\R'Mp'5e[N UҚE+ OSMݲ how`u.8 9}8- ͪi栺Nύu/ 'G8FŁ\p*h_hko4|%Ulk!WQ09jy.+H Jn[v>3kh}=늮r۪+eDV{K$w{}w{C psx%.J+wF6-i.-]K 9-<9Lʾbp% C W nF 4Lo|-;_-Tw;eL55=-U4|S1{IkA MT >!%,r~u_8r8woPUq;;C#\ =xvz0iuwό!arǖoj8KM|(\kxɶ[n;"sR%Kd]zc^'qL4ARܨfp<+ {e.3K$l|7ɋo a<]|+wq]wxUS2ٹsUKgf6 4~MNml[_d.-3$Hݶ0u=ɋȟ {K亴ga]óӔ惚?N&7 -_ko7VS}KI!kvpUϚN 炛,wzGT=tp0؏h#-CA?j~^d_ܹZs4AM5mÉh`kot ])gɶ1.3n>?)7UeO-Vڄ=̬\H)5#x\s7$my!myguS59ɮ>urhRU2:*$FICZ]ʎgi.L3;/P,hl{ZDsK[lع e O'e &dJ۪_AQ1 "w~&?x~3>+oyܓzUe%=h&#oZg9 ${ J9W|*|#U.3ψ,uJuu?n7]_nژq;) d6j)!k=E.!lIENǻL ,THG"! nYS5;<5&V߻\bDDDŰږgޏ*e޺T,{QKT{XdDd t)J)8n{ۭT6KxAIE¢hvfFoyX\Y: 'Ŕ)Gk&p oDek([e$`!%r~~wpmxMY_aQ^2 lS:6qD'sܽܯ#9w ;E[Qp#)[ԓG򉦊3%.lkI ~|>Ӛ&^;pͽsxIq3kMn#.58yȋ'4o-E3W1ShRʁ 6AV&&HHõhixf{>OO Wwvi䭴AS>h qj(--ra~*ׅxƗ(m}8~)l K4/8TJ5G}L Ȋ>Yp]K[FÌ u}j9#u;I,L!czӹG*?y8r&{K5wܙ#l]5;tKNճDa~%{g>,;7[5׋jf7z Zp-pGp-x9;UAyΪ-:z`dd-K`G3Ato{H~xv>5I44 /lNh x9Wœ^~%ŗxlG';}DUְ78n.kZdqwWR97Rkhj)#mHa1n^d -?v;9ܰ0V$6H=k5.j 7?R?,˰`O{ޮWou7J$KUK<w+ ٱ乻HGFxx0iuwό!q=xqp/4xZbe=t j*Jte:9K\G+/Pxnt!':X (k셲]]o1y/#֌7HIj;1%4m(sAsQWU;n9^HkipOx̞f[cDM_ŴbͲܚEe:~ oWSOΫ7KG| G & \-S/_^X,n}i1s/akKN91f<9iqm-X.}ut:Ddt\ f m0sKCWS[%գ> Ć3Ɇ#>H\xQ-*km~-[MֆIʨӈ2RMcj,S/=8C7pn3Z]5 **bj1M F!ōq #֧WMLrrc*9U"}kk*/T6*u-I1\lұ2d{DFzlw2|g WIkUqUkgwϖ);5<Ύ2n}]KB ~EQ=pww,I3c>?>~7/3Gnݟ>VRSxi8)es@Jǰca[قGSAY4A135#۴f8sgʅ]]pqo^kxMԵWdp I&˂Iov٘A/qXYOCN |Fkjccmeta9UHe Fǵİ?e)wQO:q<#5–^oŏesߺE{=]N}o2o<#SAC.J&4]k ,2T>~uDbӾ0'x~WqG;/|7s[*;&m KFmsKJ#Q7?R?,˰peH4yYv ]hi>L]R^|  kZWS[%գ> Ć hmYזٹCU^ixba{||EsF|-*y$w59Uv{mׂ+ꢟvWA_yko bqkPAkH7ʎ;TWk-8H/l(Cdp q,x{ ^ָuus;?u;AEW7;08Ru\n`cGqEa*綯 pg 8Co](eWľ#h)bXOq_&^G[,u7qou$r r'&_w&CO׺b'@ئm-kBЅ5X_'WSq'?{R 7?R?,˰\ TWSqnԗʻO*mi5PDۋ- .4DD/3*;YvKbv:>ϔ1i\ bYHV[c҃sԕC?O[bOX26S5:W9́7їr|ؤWg(m#|PN{%j*{0~qa=uu,1n: gn?%.L?Xm{vv֦Ov[yF7rG$-|;v< 2hg1qh"Rbwroq2k|K h$u3.n~vM>VU<Ďsxz*de%>m+EWGo#_QPck.9n EYRhvyNQT/gͨZ*KEfwc` #GX`wz^u=sn=1 y-ŴLEP;>FF~dG 󧗗.Ok׸m?q[ &@2cW|[s-8iW-Tw;ekhkazZn6حG/p9E!+-ܽlqTqo!x޷.nugު_sU_[ ==}ު3d ZcGWSڢ-CZܵw*NK<$2M'TM2KED`fa?zJh|+#z}б#^⇴aGWQpW%OH"k\ 8r+Cμݫ8w\ᩪ!"&Qk\Y1tn3T?> 0T|mYe8zCd9ZH) eW۫x:~k08^WMm]lb&G k;"_ٚɞ Xޡ:&xIrZw9/roHNȮ.qs^i?Q,7#pdX3Q<ʊyۼ֢9sk7 q?'~).U3g!bZoFx9Uw8oYa~TpWs khb1qesM"V#<845kZ:!PU_[mie+8υ>RۅT撢MR9{a8ۆﭗ(W1ϋpG&9Xܬk檌(1 7q YX_ig?]XOV:n7nU+wrŷ˴vႏ+.ҺKo5Hmgϸ@ WL]MG _ڊᄒ}U翯o~{nO&?p-zRKQpqyUHh**Z><ó~(_6&MPl\hJIMgO 0xd~uWS~<7pECMM=DvA  |s呍%N0? AzN!ʂu4%s>͟5̊no$QIrn Os]k*ͽZn5nSS!t¦2X'gx"DvxsW%[+3quMDUS/U%1 PEOZ}E;DmX۳_\Yz>kroJ؇nͿhݒuut2L1c?aٓxo**ŴVi#8KcZPAq*qq̊oN"xxT M[>ۤ{LL{vC&>;m* G|3'.ńbIe =#͛qr'?4uvV ͑QJ 1% A9t, kx2p2;]`;yikh$䣥c$+љa΍ 8#>>{th1EhK}euSHb))@<1u1i^WGM<[q}-GGuBƘ/96/֋%mUGkIM jw1{wF{dlr4?hzí:lmsuB:&wq R""WnlpUuֻ;p,,9fFs|o{ß3?h(ҼMv+COu:Vpծ9Q=2&;dIsY]e_q͚– xMSLbs$9\뫩k53)op 42dY%k$k@׷hs!G=mϏxׄ)29o\VS#bDZ)2I1U!&m/5gZp:x&4Mu k\*"u>;dkda(惖??cQ\Y¼cj7e)UZ⨉Ņ85$*_OK|g ~EƷ]>3ו-ʝeovں[lSE~\Ii9G\sͩ`${%lkj$ͣc|4uuu>^򟕜AzU߸n 8]j㽲Z,;sĒT-Uc[{*xVULiy{,4rY;FO/h8<޷{6HYč#o{[pqkǷcdM4yǨ>>~*dGVqsW:_|Qm4ς'I slPMn|-?4WR:y;g p25)w<۾w? soͅg<=xuu8gk!>H_oWdgƧ;{&wG(k# ^;\ ܿnIlKCQ4 Vm|\Kpe8ijzFr/kp?֞jM<25L=ĻasdIV <퍑~rE;$|S@17HI 7s. zN˲I|)ƶ[K%%GON*2и>yM#c?h>^K?3xE=55}wvѹ.hk{A/RYŵwb)AsLl0`'is@{\=]JkG"8KN j v*I$9Ĺq.ssq$99{IZx̹p- ȯ2JI5 j9zvssC.6q5×q5ij](zo25%,oo>IED5Zפ [^ņN&"eGPCUg`(l6'5Aa#`akwuuo3N"W\[֛B@[c2J:D7{ZD5ta`9UƗN_vOisM^nGw 6=<|/Jf66YX_k.˱q'?{R]O7WWn7 h,,2}Ct*4grc fd|lHDv_}[Eݗkntwk7Vp}<$:'3!ű͊&Ce4GU44}#hR7J^Gm|uo?i=˰9fo|O7PjY}ծHAֽcakCrwWR㫫pvxsW`8gjjoTyowdm߻n{Sq^;YcX,oq|CeCdG {6Q_ŬHn,\8C"cT45&~0S{?x~ l|%h} mE3!)5=DLle`C *7?R?,˰ʎmE¢Y5_ YY}&q8EkXƩɌhkFM1?V>.n\I[evJȨ+^Y;Pb1W h$g*[eMz-p,249{݆|5C ::PP?.NNUqjWKu[}]jw+L)&WHB~rpŒ$XËx`uWoVۭ Va|: sDsFeH~1|/+UTV&5S{o]U]R F}C a\ecb^_8fN`eDMstrwHזjj򒗉[[׾948%W *5y#l0 vZмKre3긚+/\毡ksػSF$-jjWQ?6xnwnH_5їkD̢nZָEV%S#ZLSSJ(-5;<P]-߄mUrmqkj"KFVx3TQ]-#WUK`d-JC$\fӲzBb^|N@!]*8wxjY[7*g:0FZq=]N0ca}%u5;WȊ@CekCfw& D<< =g\!V覚F bGwPW2:)-?JHww .SO˪qEq3L$ߥKcD2PP:1<<@3Z{8?啃Izp2p6Wko0CJN'Oٺ>3N"/Zq_7Y1O]rojkw>Mt36bI#5$Ű.sf"»n9ols\~Y;vm*iښ]$ۦ!lhֈu,;YZy-sqmNR>{1KRT:*QF脱K$WgGRșNs c~&?x~3>+oy-ȮXh+ʈw\8FOS Ch!lmW)%u~/yG\_;6!۳o;d]O?.$5n-}\Cs /cUx[M΍>jj]0ږC^?isN*^&(`Oŗ~oEC^ʸ)j;7>IpmQv}ˋ\1SOqRCd19ke \ w=A asJ6)gs"jN-GvRV6pqZ$鋛8:&ᭌmnUpGs^祪n |S1{ks\ FG q9Z.-#_X4حr,eh2;sysCXƵ<{rQ򯉣ZjF+<.gz0FF̾#[̇pM|%DRW|t^m񹕕L|1GK ox/Av׹[p?_enoQZX71p-'9]Oz5-%/pqSejlaskio[+-)h)`Pr⍍kZ:Gڦi  | 8JQGkCj/rAr]U 2R|$ GyF#&7ʾ)pg8^7/Op%m&kŢ|W8AtHid|k۷O܁{'Rpqm,4ݢ;ձ d:{bhNֆv0|?gooUaG\gv+a>YXn:nlj./ /\(qs]NbRdl=ɲog+_=ePv_Jة1:(eYŴR Y}hڏO!!2r=yQpMWVim7_a}N!GZ1rcѓ@ uu?o',ro0ō|#U.3ψ~̜{fT\*+UiMŗbkGdQֵjƆd]KrOu_]dsQPwp4SAT#Fl߾G"s˕N ʎLA[S ^,h]$Xcv^0sLy33rn&R\8j.S{x*otPE5cUp][ZɾUO[z\  ,7hkWJ"E,"zvʇ#h|1O͈]N< T[S)SUU[hخv;HJgx4^\ST8y!M/2yg—lמ-_)*hO}/cgISdFcni}^ݸ"\1q-u=U? q^-߻ M,s\gtsL\Ȫuu(8޾Ȟٷ;eL55KUM#_?c4(AQׂ;Iq_+mp5ED^枎i4aFLa,CB}.|uiru]xT:NHʴwIQ$ [8dp .tqUh[ p.$ kZOVV ZFY6u<-_ixnN&xo^8yȉ^;s,,w+If낹Mol۫Z[nG }5TNd8&c{IQܵkݵWoߥZ=dSG(pC˻{ps|3Y[ NsMUw'dQPc* oWS[kmpOMP\eѼ5M|͔5`1d]or#8B|GC·M|V>'![\5G,d(Y*v.qq s߹#5ZyU9Z׵s\ >r PxyV(gs]o tȣ!Buu>ɋȟ {K亴gaufTBz85e6,+:ߦ Ö 5χI÷jf⦚qlMbƍhWR{@7ZY 8i1Hn/\VM,N7sN$8B2f|RP}~?t{*OY+OxQ ePfkfv|Uȭ*GWSKOwkvD]t}lWqEujA?AQ-d,аx:0+a>YX_ig?]XOV:n7wZ9)mkU{9e U%Ou7>S"6vrXc\S_l׉deU;$Ӹvkۿv]]?w&  X7?R?,˰ʎmE¢Y5_ YY}&q8EkXƩɌhkFM1aɿ,_7MT >!!2r=yQpMWVim7_a}N!GZ1rcѓ@ uu.9?=wuhσ?!z^<Wk[ŵ0e֋Eϭ&7n`-qis 4h>Tpڧ^o DY}eF%kpkc#ZëqOΫj)$mb(|&/ ;Wj[e{b>b{9刵O͎Tp/rbͭژe2ekE"֓0swz^<Wk[ŵ0e֋Eϭ&7n`-qis 4u 9Ƴp/[p0'׈n p𽱑j敵ncDK׺7c#KO{MkX8KfhNkm3*ບ~lE 0}Xml3zR>f<# ?p/+߃m<@< *Oq?gTpgXqoBY}b[kAqkA{+\9ǫkٯUSphKesL4ǐ:Ia-{ o&/=3zт)^&UY8q5Uq]h& 7>kp?]-hiÜK_J$sA'kX1&/"3z-CA#9/#|;||-eE犯؛UV2i2ߚʉ {Ts jxv8)[ŜW{jt]$մ,浱>E,{z~.g$4#֧WML2x.QU7 ӈ);_5&?G+|x~MoM3o\qꊞ {)"Sf_9+Gwna #֧WMLrreϚƸp5BR_%j^\חŴH]G#~U?>~7/3GnݟoYa?Cٛz"꧝ȝ5Nl92q;aC_ٻ,zp5Q7h{mS;娶(vE&5ۡ۹O>ep]񕃙L\{`1avݮ!##|z**۝/%6nT}]d%m;=U.hª\WIP%飦qd9 |ݟ(">LӅ9E>8'8lh߈=kۣ5.jG q9Z.-#_X4حr,eh2;sysCXƵvyy]'p`pMoj{ 3`rJHGmżky27q(hi c -+&Oۦ{~|zO+v}6JǁGkym<9{e物i)x]MÌ/n^,3V3c $@{\48uu/K亴gawϗr\3vM;c6˨[+id{;J^咒F8n|%?G17 Sv={(_mvDŕƦX| sgbi^R>v  (i_u[eՙ|Q)CWQ3N"-悆Km:hkhkxxYdk8湤B rr/ܶŗ#nEp-G__5_ꆲW2 c{wT>&DÈ)ĜkEŜ=oZە8q tյ٣c娖I\5$kc{ q'!~/ 8jx~|2> ڎWON)袊>y[nz?s v3xykn*ڪ{xh6 T1mq{ Q{ǫ?EQWޥa<UJZlI, c8{1 ux΃iY6۝]mk)嶾ԥs煕[ZH%tr7Bg4[*Jy涵Mc㒺6:9fl||X4l;<vv+r`? pZ:fZn[tM=-gmsVbJSi6(,%n7?R?,˰yk.\uM5eq+ 44都kdZ"1%@}7KUeM m l2AUKS_=cC!(pr?J~]\yk5Q3t4Sq cY@cRS]kSk6Opy1Mv]mAs\ VLCqFi$_0cgŵӶs-M+8m IΡ|*{(gWSs=fKƜ5M .}k#cuDDM;TƵhxsƺDgcߛ\޴qݮ[ VV>Bٚ `toxkUpGs^祪n |S1{ks\ F;qYxΊ~xΔS\8+8H곾Q=G`vƵ'L^DgU[%գ> Ć 25jOܽnqA~$/;$MYbd67H#c࿞~m_ünky BKyDɑrLuu=]Z?3Hh1GO8d9Σ.r3n3O '樠/G _,P<75k ?y\??2vVp;5U{}]16@Ŧ0xuu.9w3Ɏ`A|-Q?3j?u;ourڰ.E%Vsa."=cetR:kħaqkXHV|Ѽ֒8Kdv^ b8Hj wJ|AJcJwwЉ{g"?|[_ cOs)wNYBƴw; {{$^YIO} H㬦閙iF +撠=j3HQof MgK׺*on* ׵͜*uut>?.$5n+yu9SAkBf18g7*ݦ7 }uDֵ8|{W cjU+:p8VRv^*L>$5 ?tۭ 寕GO$oS54^DM斈o,+{`uMQ Sft1ԇPE SE(vQ|Gv:~|zO+v}6JǁGkym<9{e物i)x]MÌ/n^,3V3c $@{\48uu-VWKIsECEż!=UULdPD sֵI@"8g-;hp1&N JnYws#>5Nlo{V!LQ>4SW:i}/p_Cw*otUwWUH0#t2텬39-Gw۟ #))ŷ}VjftZӈ#wWQ;8\#/|Ke_6"xN}Ox{h*@=8W{Ip τo \%ŐIUj&J+,N,/i!U=F98_|i8!! >W|*quurX)SgY ]YoK#)t MU)2#r@{. [5Nke6mClUR;d27Gl, EVpUYkkT5S\SOA$oRfw "YˠQ+ߒ<շ_,emxT ڈ捑HM,{Kbz n7[ _K9<hݝSwwEoݾs}~Mz deMboYaٓ/qʋEjM#i Msq :ֱS֌c;YcX,oq|CeCdG {6Q_ŬHn,\8C"cT45&\s&/"3z-CA?69QyɈ"6jaŗ׹+ZLn Zi|zO+v}6JǁGkWR㜟1yW#|o9?b':GCc/Kǜ*-skxLY}{bH-.a;*8^91UZmL2x5tcsIۘ{ \Z\v9=]Ps7$my!m?g u 0iôT&/N&mj G~UyAՉXօ.\uou`.o_DV^En49ŭ%Š|#U.3ψG\gv: 0.*eNżjE4Ҏ! l^罭u9#htbMT >!!>rFyO{F9{^Sq' k[QேdoߴisX { rwq)hx-3OŲ٨8p'XHh&v:&᭕F93rU[(KSx 8TV:6c+L5ć4玮?KG| 7ygu E](8y6^o Zn|9ĵlwy [pkLvcʎgi.L3;/P,hl{ZDsK[3N"/Zq_7Y0s;OʮLb? $k&wuYmG=Xh[Q%i~Yqee kHc\\ c z;_/px^]t6*Dr5妱񹑷Ibc^%Tv{*!A7ޫE>$?|Қ:i_'yJ%t,kGs׸q|Ce@fsQ^1䕊ܝ'[(ʮ3&mI\\"aE.7z[ψ8yn/kic`r$R=-g7^-w-m<8X=O8myzjKg q,Ëie[eحhE5=9.v+BaqG\gvG q9Z.-#_X4حr,eh2;sysCXƵ{Ay6|%#xLq-d2@ֽKZK^@c9Dzp _yİܩ E3 s>J7|I ̙x|zO+v}6JǁGk|ə8w-֮ 矊xҋ|y.leakK<4jmܥT6gIż!4IsY!F=A a?.[/qq4uPwM;4[jiwTi3Gf<15nN^m Ć~lp/Aǜ^fmKx8Jb?e<9^k)x,ֻxN1 ֹ&6AwF=f枮9?b':GrOu_]DyɈoԺjcYiAԮ+[ ZXCÛ!͎8K-uOX\,WG47kCwszoI_BۅSaoEʮ?\M;-x|LSك.ip.BI[8K-dp HXٚlnYns`oWS8./+8./+]N?.$5yv8yx{XC|^(;s7h-PSX\_kXyly#^ƵZ:7ɋo c?a~E-u7G,SXlVo80kKwsɋȟ {K亴ga͎8K-uOX\,WG47kCwswE/ڥ[Zqo ">D;cv4aڳX)8?[ySm}T>A\5Гa|aQ3Ʉ?h>^K?3xE=55}wvѹ.hko %oixKdec]-ee:6l \\cv;!͞ݲ]yOiOXp $vƲ0#A>fIp %ψn|K3K$me:6KMew`RSӳh K \Bsx.Uvio`sNkGt^FMrP\ Hfk旄FV:VYãhͯ/.V7k ú$sDklNhX12%~Aise2K֝Â9KuN.քDpZ4R]G$T`$w k.˱k.˱WRU[!i`E,c_#Y!cK8k,Gfnkܮo2-W'qMEd%\:M#6J]#F_k.˱EWe[DoFbZ2ZH{cv85Ԡ_t|Gʫς!;r]skl A#gGꤦ9G7;PQpgӞ&j_W]h{jCq.ol\ֱ8./+ ņ;nmE'qO G W[hK;sm{$k%(va`;r(l\[(a^6K}C{8T|{%2S{1sXGdž8ln4[UT[°Q͎WZ! YbXآ d= s"\A'>4gÔQ_vjI$M9Y6#-.M>0X-O/, y,Uv@3T^`2M$thĶX^+Xc(qo)m;Tгx:(ꤦ( s爺'g#֧WML!A/RYŵwb)AsLl0`'is@{\;^(oi.w3xK\K#+Mbak+,Ѵ `fח+]Ps7$my!mygu 07Wk.&>& )4j ~[onD{Eh!$- %oixKdec]-ee:6l \\cv;ל]c症ל]c症 XOVqⰀ\ TWSqn7q0?;\t0fKscAǼ;|PݔpM6mkI8sLuu>o',ro0ņc[PܹϚaUCMtVvOS;{n1C&'L/;v!Q4vڊ{fQm3܊J$D1:.󫫯NX/aXo*?{%PTvg8yECE pRq+Y1cpִA1yW#|oioV 3 7k*h** 栘G$J:S/ukr=;\H%PiOp8*dV$Ondkukq&/"3z'L^DgU odʚ py&3/Φ&Za!91k*h** 栘G$J:S/ukr=;\HWPfo?D-_?0 Onwf~{s#;^-7Sq 3+նXV^G64O*^8-/q7: |f|dᱹQ{ݝ]],p#[w[Ͳje׊]/ԺV0}/DZ3C{K*?c3W9iuwό!V?5s T6g H_4Ӻ88kGI+m8#\$uut>MtZ0\£`=d:Np IF"\l`%Nֵ1&/"3z-CAⷲU eME_8y<䗉ZSJc|eNqGk ۟d3)\,J׵#d:̑{sC:~.g$4#֧WML7>T7fS9 Y439keFu9#Z ld8]M AT%i(s#P׺(ˀ(KO #'{m nGO8d.]lU4Z۵eTCL+ 4uN;#OyD;KB

?Sxz*p+x;$-9S2S90:VoWWoq|q[kh {EN~A EM<Ϊe墪iOp##+GxWSOK|g ~T׌vJS>pRBĭc],:I^Ci8$㫫o&/=3zфj7%PRsM_0HuL6F!c*vKG| 7KG| 9ËersƏO9qe̎':# .#gw )rgz۟3q[V}#};饢{EC2OHI/c#did>KG| 7ygu]'wضqh YTryT*iwdu 4˱V5Ͷ>0Pqm'7y\n&TGQVS,d qPs7$my!mygu[Ȯ sG>bs6v ͺ~ {*`XmTU41f֐ٻ0LW..s;tWekmO:OY^C %(Fl.a1n8^SĔ WBʞ3wЗp,55Ѻ-s!k ʋMnj>aZ-x!?փPGXYm{Euuu,uJoj7!9qc')\Ẋګe;cw}<;s4 #FIu,1n:n7qn7N8-=Ae!]= :H*-gzcLJN\qźTW-ExPvOr@h^6(rk*w Ah2WVquun7WVquu!@Xx"nkeMtAdHۭdwVk=606 sJqW0{\IYlb.dնiibGD"Pכ{ [޻w7]H~\XxqS[-keY-dLZDy)Zh;{q㫫qn:㫫qn:㫩~UGhnJkcz{mdJjIAN94Li&f޸kWJ]?,ܗTڬp:X(t/Bh\ڰ8^;t>7]LO%.UYM~Z\n}(w5pn7][qոn7]M2qŷ> - ެ?g|#cw['w;SQ-lPop^[-{孲Vۣ*ZQĝ"wvF7]\o1h\D8~Y/lXu}K[ıTQFj_й%aqww=u-sUZ:(%X5Әą/ X~qr3q=OU-3;+lt;n=Ss+oqu|OH@e0G(ieE'pLF7]\p1ko\J8~)l_ m}KQSFi9e1h=W.~9ŷ(EQ+keIJak"lFO!rͷ=ӱWVquun7WWn7qn7qn7qn7qn7_&]?yu<,{]u$t԰PQvy^؀R&kCtC d'K/ /V˷;uu+vym Z&4R?Mw_oVE,pO?,-g?Ov{.0v|w}q}w]o;uu:/+_d bsTKBkd{@)Ŭck "eCDNtvڎf*} ͎ [;_P׺*f?;Alts^ :C:?e)# Y䉲ῶm? /o'ؿ?2×IO&*G5#j#|sX%eFY̐8w39,z_O<89Qb[ qqnL呵QKQo^Ɲwڿ4_Wֿ?O7 ֟foKGϻWS^tXuqx*jXXiӘȦ}4Ǝcie>{eO|LoBIXM 0(jUQO-Lu41QDK{ȣ~ڙE;H9Bw(LЙz#տ.i?.?L//ä/]O7WVquun7WVquun7WVquun7WVquun7WW`!$)WJUߍ Z rAHԊZ- A-W5kvݙݝǑCNi$VgqYi5%^NN 6wk9i3=+i8NmSujkN~gVSvbOmSӒ!WGbLz?"KM=ji %SgLd]!/hʩsr\{gY?;xlN\ Q%qO[-sީ,6 -6j[I٬Iry)[.,m\L,&lL2-7յTזk?ħ˥ ՃÕyMK\=~{4O;F@9I[D%"&ʮ\r!ɞrMȯ"Q,UZV DlbPaT@P] #&_AL5jkɛ(IrT>]D=T|1Z)D @WzXoNzlօR@̂19 ɱ !O̓Z j T U ]7@>5\ XGf=t1c '8ZҼ^$,{sқ |`iљAf4zY \}M~̤g^LT}c" )S'_7.(|)ӾKi O:n9e[#Zߐ˩c']Nr۾i뤎&EE CKV~n1%[gg.Jx T[}S)m/}ØcMuU) 4'&>l'gs_8k嬓LSdD!e ]̺t vTֽYf=B VeJ'\ćI_2THHeu k XKYSIױnaEHwg*Yf"}:@%_fu%yڪ?;k8B8gfa-'=ĪiˬXI~`#3BҹQ!`G fqV|*8lg8[Imzc!}j%51\lSX!YѤKXSHײI7YI֑cH5)L%:"gՏtNJFK*$g#Mg-$1d!=ɪ!Fz@Գw= MPFlzF.2'dM'MbMZLiKX;HIZH{ iy,ϞJEqڟF~ plot sin(x),""rJ/ 0%ReadingsEverybody read the readings?&%TSound Pressure Levels: "Mine Goes to 11! ++(Human hearing is more sensitive to some frequencies than others This sensitivity changes based on Loudness of sound Age of listener Fletcher-Munson equal loudness curves<c"&c"&<&TSound Pressure Levels: "Mine Goes to 11! ++(='TSound Pressure Levels: "Mine Goes to 11! ++(Fletcher-Munson equal loudness curves Most sensitive 2000-5000Hz Sensitivity falls off for low frequency sounds especially at low sound levels Sensitivity also falls off for high frequencies >&&>(TSound Pressure Levels: "Mine Goes to 11! ++(0C-Weighted dB SPL Models uneven human perception of frequency by discounting high and low frequency s contribution Measured with an inexpensive device Ha$a&?)TSound Pressure Levels: "Mine Goes to 11! ++(Common dB SPL values 0 Hearing threshold 18 Whisper at 5 30 Library, very quiet country home 51 My BMW at idle (from inside) 55 Average Office XX? This Classroom 77 BMW at 80 MPH 94 Blender at 3 110 Rock Concert (OSHA limits workers to 30 minutes) 120 Loud thunder, Jackhammer at 3 (discomfort) 140 Jet on takeoff at 100 JP0PP0'Understanding the decibel:We will review the highlights Questions from the reading? ;;@*Understanding the decibelDecibel is a ratio: Hence is dimensionless! Is logarithmic Recall: y = log10(x) is equivalent to 10y=x dB=10log10(I2/I1) Plugging in I2=2, I1=1 we get 10log10(2/1) or roughly 3 &',0'       A+Understanding the decibelStandard reference pressure for dB SPL 20 microPascals Threshold of hearing of a 1000 Hz tone dB SPL = 20log10(p/20) For a pressure p in microPascalsx'N!'EB,Understanding the decibelPDynamic range of an n-bit system is the ratio of the largest representable value and the quantization error n-bit system can represent 2n values discrete levels are always within one unit of the correct value Dynamic Range(dB)=20log10(2n/1) H" 6n Hence the 96dB dynamic range of 16 bit (CD) audio l2VF  2  ,= H( Digital AudiovWhat do we mean by: Digital? (vs Analog) To Digitize? Why do we do it? What advantages does it have? What weaknesses? 6bbWF/Analog vs. Digital G0 Digital AudioWe really only care about Analog Audio Digital audio exists to: Capture an Analog Signal Manipulate an Analog Signal Reconstruct (synthesize) an Analog Signal 6@_@_H1 Digital AudioUltimately we do digital audio because Our computers are digital (anybody remember analog computers?) We are better at building fast DSPs than precise analog circuits that don t drift with age/temperature '%B&'%B&  GI2 Digital AudioMany ways to represent an analog signal as digital For now, we only care about PCM Pulse code modulation Representing signal by a series of pulses Developed in 1937 2SRSSJ3 Digital AudioAn analog signal may be represented by Sampling the amplitude of analog signal at a regular interval (sampling rate) Quantizing each sample into a fixed range of values&''KB Digital AudioConverting A/D  Sampling Requires low pass filtering analog signal Converting D/A  Reconstruction Requires low pass (reconstruction) filter Creating a Digital signal not sampled from analog - Synthesis t* *>* *>  L4 Digital AudioCD Audio: 44100 frames per second (each frame contains 2 samples) Count in Frames (not samples or bytes) Can represent a 22050 Hz signal 16 bit (signed) samples 96 dB dynamic range (6*16bit)  g g   M5 Digital AudioProfessional Digital Audio 48000 Frames/Second Multiple of film s 24 frames per second (film is actually double shuttered 48 times/s) Phillips/Sony s 1980 Red-book CD spec. 44100 Frames/Second Physical tradeoff made to fit Beethoven's 9th onto the 120mm CD Solid state laser frequency in the near infra-red 780nm Purposefully incompatible to make sample rate conversion more difficult ZZWZ'ZZZZW'  + N6 Digital AudioRTime/Amplitude Quantization n bits represent 2n values Recall: Sound is a periodic displacement Hence encode values of nominal 0 +/- 1/2n Range set by practical analog constraints Values above/below range clip Usually additional bits add precision not range Precision adds dynamic range over the digital noise floor (quantization error)  X *  O7 Digital AudioTime/Amplitude Quantization 16 bit 2 s compliment used in CD Audio and is most common 8 bits used in voice CODECs and places where quality isn t required Noisy environments Signals guaranteed to be normalized (use all bits) Gotcha: PC s use unsigned 8 bit 24 bits catching on as new quality standard Typically will process 16 bit samples in 24 bit pipeline to provide headroom xZ~ZfZzZZ~fz  k P8 Digital Audio@Popular Sampling rates: 44100 used in CD audio and most high end PC applications 48000 used in professional audio and some high end PC applications 22050 CD rate used in games and applications where the ultimate in quality not deemed necessary 8000 typically used for voice where frequencies above 4000Hz not critical *))Q? Digital AudioSampling Theory A signal may be perfectly represented provided it is sampled at a rate twice the highest frequency component of the signal This rate is known as the nyquist rate A signal thus sampled may be perfectly reconstructed &<R@ Digital AudioSampling Theory Practically this means: Analog signal must be band limited to the sample rate before digitization Must be performed in the analog space before digitization This must be performed in the analog space Sharper the filter the more expensive it gets Energy from frequency components exceeding the Nyquist rate will be aliased Perfect reconstruction not possible due to quantization error Viif  T g z o h   p o d   |   <|    m    J ܶ    T ܶ   |   l      dUSA Digital Audio)Quantizing an Analog Signal Equivalent to converting from a real to n-bit integer value Real value must be rounded or truncated It is infinitely unlikely that the real value will ever be precisely a whole number (representable by an integer) Resulting difference is called the quantization error VZdZsZ7Zds7 H[D$Sampling/Quantizing an Analog Signal%%( T9 Assignment 12SineSynth.c A silent prelude to Audio Hello World Warm-up to get us in the spirit of digital audio Microsoft interview problem To be written in C Provide handwritten (2-line?) Makefile to build the program Due Tuesday 1/20 before class Deposit in csx245\submit folder Email me, keng@sworks.com, if problemsF ZZ'Z '"   0%U< Assignment 1Synthesize a sinewave of specified frequency, frame-rate, and quantization Output to be printed to standard out, one line per sample, left justified, no padding printf( %d\n , value); (correctness will be automatically verified) >D.,  9V= Assignment 1void SineSynth(double frequency, int frameRate, int bitsPerSample) main should use getopt to get parameters from command line in order argv[1] frequency argv[2] frameRate argv[3] bits quantization main should call SineSynth() which should not return PZ8Z>Z6ZZG -             H   W> Assignment 1 Questions? (  X. Readings:X#4 Simple Interfaces: Small (Hello) World #5 Introduction to the Ring Buffer FIFO Queue Y- Next class:5Real-time audio Audio Interfaces More sampling theory   0` fy`ff3` Mj*333FV*` ffNNt^X` ffNL|>rL` +T3f3f` MMMff3f` Lx[he2` {$$>?" dd@,?nAd@    @ `  n?" dd@   @@``PR    @ ` ` p>> @(    6. " `P . T Click to edit Master title style! !$  0 " ` . RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  6@ #" `^ `  @*  6 #" `^   QCopyright 2004 Ken Greenebaum  6 #" `^ `  B*z  NA޽h ?texture_mid#" @@ +T3f3f80___PPT10. ` Textured  0 LDP(    <4 $ #" `  . T Click to edit Master title style! !  0$ " `   $ W#Click to edit Master subtitle style$ $  6x$ #" `^ ` $ @*  6$ #" `^  $ QCopyright 2004 Ken Greenebaum  6$ #" `^ ` $ B*z  NA޽h ?texture_mid#" @@ +T3f3f80___PPT10. ` 0  *(  x  c $$  . r  S $ `   $ H  0޽h ? 33___PPT10i.UT&+D=' = @B +  0 t0(  tx t c $B `P   x t c $hG `  H t 0޽h ? +T3f3f___PPT10i.Vp f+D=' = @B +  0 x0(  xx x c $] `P   x x c $܈ `  H x 0޽h ? +T3f3f___PPT10i.Vp f+D=' = @B +  0 p0(  x  c $_8 `P  8 x  c $D ` 8 H  0޽h ? +T3f3f___PPT10i.Vp f+D=' = @B +  0 |0(  |x | c $ `P  . x | c $ `  H | 0޽h ? +T3f3f___PPT10i.Vp f+D=' = @B +  0L0 0(  x  c $  `P   x  c $ `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0  (  x  c $  `P   x  c $ `  J  C "Afmc H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 00(  x  c $" `P   x  c $# `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 @0(  x  c $, `P   x  c $- `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 P0(  x  c $4 `P   x  c $5 `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 @0(  x  c $ D `P   x  c $D `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 `0(  x  c $N `P   x  c $XO `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 p0(  x  c $T `P   x  c $U `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 0(  x  c $] `P   x  c $^ `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0  0(  x  c $@e `P   x  c $f `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +3  0L0 2*0<(  <x < c $d. `P  .   m` 0< #"."ssrrsqsm` 8 (< <.? S` NDiscrete   @` &< <.?S  ]Continuous in amplitude @` < <\.?  ` > @` < <P.?  > @` < <Z.? `  JBits @` < <g.?   i Phenomina    @` < <.? 7 `  NComputer   @`  < <Ԛ.?7  P Real-World   @`  < <xj.? `7  R Reproducible   @`  < <#.? 7  KNoisy @`  < <.? `S NDiscrete   @`  < <,.? S XContinuous in time @` < <.? m` ODigital @` < <28?m  NAnalog @``B < 0o ?m`mZB < s *1 ?`ZB < s *1 ?S`SZB < s *1 ?7 `7 ZB < s *1 ? ` ZB < s *1 ? ` `B < 0o ?``B < 0o ?mZB < s *1 ? m `B < 0o ?`m`ZB '< s *1 ?`H < 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 0L0(  Lx L c $B `P   x L c $t! `  H L 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 @P0(  Px P c $, `P   x P c $  `  H P 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 PT0(  Tx T c $ `P   x T c $ `  H T 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 `X0(  Xx X c $$ `P   x X c $ `  H X 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 `0(  x  c $t$ `P   x  c $8 `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 p\0(  \x \ c $d `P   x \ c $T `  H \ 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 `0(  `x ` c $ `P   x ` c $ `  H ` 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 d0(  dx d c $n `P  8 x d c $L `  H d 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 h0(  hx h c $ `P   x h c $` `  H h 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 l0(  lx l c $ `P   x l c $ `  H l 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0  0(  x  c $xi `P   x  c $ `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 00(  x  c $z `P   x  c $Xx `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 @0(  x  c $ `P   x  c $X `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +b  0L0 aY(  x  c $\8 `P  8 |  T " A?P@  0\p W U!Illustration thanks to Bob Stuart" 2"H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 p0(  px p c $ `P   x p c $ `  H p 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 |0(  |x | c $h `P   x | c $(C `  H | 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 0(  x  c $  `P   x  c $ `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 0(  x  c $ `P   x  c $4 `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 80(  8x 8 c $!8 `P  8 x 8 c $&8 ` 8 H 8 0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 40(  4x 4 c $( `P  8 x 4 c $do `  H 4 0޽h ? +T3f3f___PPT10i._+D=' = @B +r@M9W][g&0iw/<plo9rt4z|D_9b؄e` [Vd _d=[wD(Oh+'0T hp   , 8DL4CS245 Introduction to Interactive Sound SynthesisKen Greenebaum TexturedKen Greenebaum19Microsoft Office PowerPoint@ ;+@bEnU@$1GSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www``4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwwlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllew0TTܖ 0ܖ1 A .  @n?" dd@  @@`` D<Xj""$123456784," 2MNO1STUVWXYZ[\_`abcdfh?R$.Kb|MR$W^%{H:M2$$)WJUߍ! 0AA@8 xʚ;Bv3ʚ;g4,d,d 0ppp@ <4dddd k 0Tȵ <4dddd l 0T<4!d!d l 0T80___PPT10 ?  %;IIntroduction to Interactive Sound Synthesis Lecture 3: Fundamentals cont..J+Ken Greenebaum&%TSound Pressure Levels: "Mine Goes to 11! ++(Human hearing is more sensitive to some frequencies than others This sensitivity changes based on Loudness of sound Age of listener Fletcher-Munson equal loudness curves<c"&c"&<&TSound Pressure Levels: "Mine Goes to 11! ++( ='TSound Pressure Levels: "Mine Goes to 11! ++(Fletcher-Munson equal loudness curves Most sensitive 2000-5000Hz Sensitivity falls off for low frequency sounds especially at low sound levels Sensitivity also falls off for high frequencies >&&>(TSound Pressure Levels: "Mine Goes to 11! ++(.C-Weighted dB SPL Models uneven human perception of frequency by discounting high and low frequency s contribution Measured with an inexpensive device <a%a%?)TSound Pressure Levels: "Mine Goes to 11! ++(Common dB SPL values 0 Hearing threshold 18 Whisper at 5 30 Library, very quiet country home 51 My BMW at idle (from inside) 55 Average Office XX? This Classroom 77 BMW at 80 MPH 94 Blender at 3 110 Rock Concert (OSHA limits workers to 30 minutes) 120 Loud thunder, Jackhammer at 3 (discomfort) 140 Jet on takeoff at 100 .P0P0'Understanding the decibel9We will review the highlights Questions from the reading?::@*Understanding the decibelDecibel is a ratio: Hence is dimensionless! Is logarithmic Recall: y = log10(x) is equivalent to 10y=x dB=10log10(I2/I1) Plugging in I2=2, I1=1 we get 10log10(2/1) or roughly 3',0'       A+Understanding the decibelStandard reference pressure for dB SPL 20 microPascals Threshold of hearing of a 1000 Hz tone dB SPL = 20log10(p/20) For a pressure p in microPascalsx'N!'EB,Understanding the decibelNDynamic range of an n-bit system is the ratio of the largest representable value and the quantization error n-bit system can represent 2n values discrete levels are always within one unit of the correct value Dynamic Range(dB)=20log10(2n/1) H" 6n Hence the 96dB dynamic range of 16 bit (CD) audiol2VF  1  ,= G( Digital AudiouWhat do we mean by: Digital? (vs Analog) To Digitize? Why do we do it? What advantages does it have? What weaknesses?&bbVF/Analog vs. Digital G0 Digital AudioWe really only care about Analog Audio Digital audio exists to: Capture an Analog Signal Manipulate an Analog Signal Reconstruct (synthesize) an Analog Signal&@_@_H1 Digital AudioUltimately we do digital audio because Our computers are digital (anybody remember analog computers?) We are better at building fast DSPs than precise analog circuits that don t drift with age/temperatureb'%B&'%B&  EI2 Digital AudioMany ways to  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<      !"#$%&()*+,-./0123456;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy{|}~Root EntrydO)`L1Pictures,(Current UserJSummaryInformation(,UPowerPoint Document(2DocumentSummaryInformation88 / 00DArialr New0TT3ܖ 0ܖDTahoma New0TT3ܖ 0ܖ" DWingdingsw0TT3ܖ 0ܖ0DCourier New0TT3ܖ 0ܖ1 A .  @n?" dd@  @@`` <4Pi""$123456784," 2MNO1STUVWXYZ[\_`abcdfh?R$.Kb|MR$W^%{H:M2$$)WJUߍ! 0AA@8 xʚ;Bv3ʚ;g4,d,d&&>(TSound Pressure Levels: "Mine Goes to 11! ++(.C-Weighted dB SPL Models uneven human perception of frequency by discounting high and low frequency s contribution Measured with an inexpensive device <a%a%?)TSound Pressure Levels: "Mine Goes to 11! ++(Common dB SPL values 0 Hearing threshold 18 Whisper at 5 30 Library, very quiet country home 51 My BMW at idle (from inside) 55 Average Office XX? This Classroom 77 BMW at 80 MPH 94 Blender at 3 110 Rock Concert (OSHA limits workers to 30 minutes) 120 Loud thunder, Jackhammer at 3 (discomfort) 140 Jet on takeoff at 100 .P0P0'Understanding the decibel9We will review the highlights Questions from the reading?::@*Understanding the decibelDecibel is a ratio: Hence is dimensionless! Is logarithmic Recall: y = log10(x) is equivalent to 10y=x dB=10log10(I2/I1) Plugging in I2=2, I1=1 we get 10log10(2/1) or roughly 3',0'       A+Understanding the decibelStandard reference pressure for dB SPL 20 microPascals Threshold of hearing of a 1000 Hz tone dB SPL = 20log10(p/20) For a pressure p in microPascalsx'N!'EB,Understanding the decibelNDynamic range of an n-bit system is the ratio of the largest representable value and the quantization error n-bit system can represent 2n values discrete levels are always within one unit of the correct value Dynamic Range(dB)=20log10(2n/1) H" 6n Hence the 96dB dynamic range of 16 bit (CD) audiol2VF  1  ,= G( Digital AudiouWhat do we mean by: Digital? (vs Analog) To Digitize? Why do we do it? What advantages does it have? What weaknesses?&bbVF/Analog vs. Digital G0 Digital AudioWe really only care about Analog Audio Digital audio exists to: Capture an Analog Signal Manipulate an Analog Signal Reconstruct (synthesize) an Analog Signal&@_@_H1 Digital AudioUltimately we do digital audio because Our computers are digital (anybody remember analog computers?) We are better at building fast DSPs than precise analog circuits that don t drift with age/temperatureb'%B&'%B&  EI2 Digital AudioMany ways to represent an analog signal as digital For now, we only care about PCM Pulse code modulation Representing signal by a series of pulses Developed in 1937&SRSRJ3 Digital AudioAn analog signal may be represented by Sampling the amplitude of analog signal at a regular interval (sampling rate) Quantizing each sample into a fixed range of values&''KB Digital AudioConverting A/D  Sampling Requires low pass filtering analog signal Converting D/A  Reconstruction Requires low pass (reconstruction) filter Creating a Digital signal not sampled from analog - Synthesis`* *>* *>L4 Digital AudioCD Audio: 44100 frames per second (each frame contains 2 samples) Count in Frames (not samples or bytes) Can represent a 22050 Hz signal 16 bit (signed) samples 96 dB dynamic range (6*16bit)n g g   M5 Digital AudioProfessional Digital Audio 48000 Frames/Second Multiple of film s 24 frames per second (film is actually double shuttered 48 times/s) Phillips/Sony s 1980 Red-book CD spec. 44100 Frames/Second Physical tradeoff made to fit Beethoven's 9th onto the 120mm CD Solid state laser frequency in the near infra-red 780nm Purposefully incompatible to make sample rate conversion more difficultZZWZ'ZZZW'  + N6 Digital AudioQTime/Amplitude Quantization n bits represent 2n values Recall: Sound is a periodic displacement Hence encode values of nominal 0 +/- 1/2n Range set by practical analog constraints Values above/below range clip Usually additional bits add precision not range Precision adds dynamic range over the digital noise floor (quantization error) X *O7 Digital AudioTime/Amplitude Quantization 16 bit 2 s compliment used in CD Audio and is most common 8 bits used in voice CODECs and places where quality isn t required Noisy environments Signals guaranteed to be normalized (use all bits) Gotcha: PC s use unsigned 8 bit 24 bits catching on as new quality standard Typically will process 16 bit samples in 24 bit pipeline to provide headroom^Z~ZfZyZ~fykP8 Digital Audio?Popular Sampling rates: 44100 used in CD audio and most high end PC applications 48000 used in professional audio and some high end PC applications 22050 CD rate used in games and applications where the ultimate in quality not deemed necessary 8000 typically used for voice where frequencies above 4000Hz not critical*((Q? Digital AudioSampling Theory A signal may be perfectly represented provided it is sampled at a rate twice the highest frequency component of the signal This rate is known as the nyquist rate A signal thus sampled may be perfectly reconstructed&;R@ Digital AudioSampling Theory Practically this means: Analog signal must be band limited to the sample rate before digitization Must be performed in the analog space before digitization This must be performed in the analog space Sharper the filter the more expensive it gets Energy from frequency components exceeding the Nyquist rate will be aliased Perfect reconstruction not possible due to quantization error@iif  T g z o h   p o d   |   <|    m    J ܶ    T ܶ   |   l      dTSA Digital Audio(Quantizing an Analog Signal Equivalent to converting from a real to n-bit integer value Real value must be rounded or truncated It is infinitely unlikely that the real value will ever be precisely a whole number (representable by an integer) Resulting difference is called the quantization errorVZdZsZ6Zds6 G[D$Sampling/Quantizing an Analog Signal%%( T9 Assignment 1SineSynth.c A silent prelude to Audio Hello World Warm-up to get us in the spirit of digital audio Microsoft interview problem To be written in C Provide handwritten (2-line?) Makefile to build the program. ZZ  U< Assignment 1Synthesize a sinewave of specified frequency, frame-rate, and quantization Output to be printed to standard out, one line per sample, left justified, no padding printf( %d\n , value); (correctness will be automatically verified) >D.,  9V= Assignment 1void SineSynth(double frequency, int frameRate, int bitsPerSample) main should use getopt to get parameters from command line in order argv[1] frequency argv[2] frameRate argv[3] bits quantization main should call SineSynth() which should not return PZ8Z>Z6ZZG -             H , W> Assignment 1 Questions? (  X. Readings:W#4 Simple Interfaces: Small (Hello) World #5 Introduction to the Ring Buffer FIFO QueueY- Next class:5Real-time audio Audio Interfaces More sampling theory 0  *(  x  c $X}  } r  S } `   } H  0޽h ? 33___PPT10i.UT&+D=' b= @B +  0L0 @0(  x  c $tEc `P  c x  c $LFc ` c H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 P0(  x  c $Uc `P  c x  c $Vc ` c H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 @0(  x  c $mc `P  c x  c $nc ` c H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 `0(  x  c ${c `P  c x  c $|c ` c H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 0(  x  c $,c `P  c x  c $c ` c H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0  0(  x  c $c `P  c x  c $c ` c H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +3  0L0 2*0<(  <x < c $ؽc `P  c   m` 0< #"."ssrrsqsm` c (< <hc? S` NDiscrete   @` &< <c?S  ]Continuous in amplitude @` < <c?  ` > @` < <c?  > @` < <c? `  JBits @` < <c?   i Phenomena    @` < <c? 7 `  NComputer   @`  < <?7  P Real-World   @`  < <` ? `7  R Reproducible   @`  < <? 7  KNoisy @`  < <\ ? `S NDiscrete   @`  < <|? S XContinuous in time @` < <2? m` ODigital @` < <;?m  NAnalog @``B < 0o ?m`mZB < s *1 ?`ZB < s *1 ?S`SZB < s *1 ?7 `7 ZB < s *1 ? ` ZB < s *1 ? ` `B < 0o ?``B < 0o ?mZB < s *1 ? m `B < 0o ?`m`ZB '< s *1 ?`H < 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 0L0(  Lx L c $c `P   x L c $c ` c H L 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 @P0(  Px P c $[ `P   x P c $\ `  H P 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 PT0(  Tx T c $k `P   x T c $Xl `  H T 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 `0(  x  c $8 `P   x  c $ `  H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 p\0(  \x \ c $ܜ `P   x \ c $ `  H \ 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 `0(  `x ` c $ `P   x ` c $d `  H ` 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 d0(  dx d c $| `P   x d c $h `  H d 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 h0(  hx' h c $ `P   x h c $ `  H h 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 l0(  lx l c $ `P   x l c $` `  H l 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0  0(  x  c $8 `P   x  c $ `  H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 00(  x  c $h  `P   x  c $@! `  H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 @0(  x  c $8R `P   x  c $S `  H  0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 p0(  px p c $s `P   x p c $s `  H p 0޽h ? +T3f3f___PPT10i._+D=' b= @B +  0L0 80(  8x 8 c $ī `P   x 8 c $ `  H 8 0޽h ? +T3f3f___PPT10i._+D=' b= @B +r|' !>09B4F@$6j9<K>eADF`I LN[QTVXVY-[[1^D( / 00DArialr New0TTܖ 0ܖDTahoma New0TTܖ 0ܖ DWingdingsw0TTܖ 0ܖ0DCourier N ՜.+,0    On-screen ShowSWORKS2  %ArialTahoma Wingdings Courier New TexturedJIntroduction to Interactive Sound Synthesis Lecture 3: Fundamentals cont.+Sound Pressure Levels: "Mine Goes to 11!+Sound Pressure Levels: "Mine Goes to 11!+Sound Pressure Levels: "Mine Goes to 11!+Sound Pressure Levels: "Mine Goes to 11!+Sound Pressure Levels: "Mine Goes to 11!Understanding the decibelUnderstanding the decibelUnderstanding the decibelUnderstanding the decibelDigital AudioAnalog vs. DigitalDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital AudioDigital Audio%Sampling/Quantizing an Analog Signal Assignment 1 Assignment 1 Assignment 1 Assignment 1 Readings: Next class:  Fonts UsedDesign Template Slide Titles &_Ken GreenebaumKen Greenebaum represent an analog signal as digital For now, we only care about PCM Pulse code modulation Representing signal by a series of pulses Developed in 1937&SRSRJ3 Digital AudioAn analog signal may be represented by Sampling the amplitude of analog signal at a regular interval (sampling rate) Quantizing each sample into a fixed range of values&''KB Digital AudioConverting A/D  Sampling Requires low pass filtering analog signal Converting D/A  Reconstruction Requires low pass (reconstruction) filter Creating a Digital signal not sampled from analog - Synthesis`* *>* *>L4 Digital AudioCD Audio: 44100 frames per second (each frame contains 2 samples) Count in Frames (not samples or bytes) Can represent a 22050 Hz signal 16 bit (signed) samples 96 dB dynamic range (6*16bit)n g g   M5 Digital AudioProfessional Digital Audio 48000 Frames/Second Multiple of film s 24 frames per second (film is actually double shuttered 48 times/s) Phillips/Sony s 1980 Red-book CD spec. 44100 Frames/Second Physical tradeoff made to fit Beethoven's 9th onto the 120mm CD Solid state laser frequency in the near infra-red 780nm Purposefully incompatible to make sample rate conversion more difficultZZWZ'ZZZW'  + N6 Digital AudioQTime/Amplitude Quantization n bits represent 2n values Recall: Sound is a periodic displacement Hence encode values of nominal 0 +/- 1/2n Range set by practical analog constraints Values above/below range clip Usually additional bits add precision not range Precision adds dynamic range over the digital noise floor (quantization error) X *O7 Digital AudioTime/Amplitude Quantization 16 bit 2 s compliment used in CD Audio and is most common 8 bits used in voice CODECs and places where quality isn t required Noisy environments Signals guaranteed to be normalized (use all bits) Gotcha: PC s use unsigned 8 bit 24 bits catching on as new quality standard Typically will process 16 bit samples in 24 bit pipeline to provide headroom^Z~ZfZyZ~fykP8 Digital Audio?Popular Sampling rates: 44100 used in CD audio and most high end PC applications 48000 used in professional audio and some high end PC applications 22050 CD rate used in games and applications where the ultimate in quality not deemed necessary 8000 typically used for voice where frequencies above 4000Hz not critical*((Q? Digital AudioSampling Theory A signal may be perfectly represented provided it is sampled at a rate twice the highest frequency component of the signal This rate is known as the nyquist rate A signal thus sampled may be perfectly reconstructed&;R@ Digital AudioSampling Theory Practically this means: Analog signal must be band limited to the sample rate before digitization Must be performed in the analog space before digitization This must be performed in the analog space Sharper the filter the more expensive it gets Energy from frequency components exceeding the Nyquist rate will be aliased Perfect reconstruction not possible due to quantization error@iif  T g z o h   p o d   |   <|    m    J ܶ    T ܶ   |   l      dTSA Digital Audio(Quantizing an Analog Signal Equivalent to converting from a real to n-bit integer value Real value must be rounded or truncated It is infinitely unlikely that the real value will ever be precisely a whole number (representable by an integer) Resulting difference is called the quantization errorVZdZsZ6Zds6 G[D$Sampling/Quantizing an Analog Signal%%( T9 Assignment 1SineSynth.c A silent prelude to Audio Hello World Warm-up to get us in the spirit of digital audio Microsoft interview problem To be written in C Provide handwritten (2-line?) Makefile to build the program. ZZ  U< Assignment 1Synthesize a sinewave of specified frequency, frame-rate, and quantization Output to be printed to standard out, one line per sample, left justified, no padding printf( %d\n , value); (correctness will be automatically verified) >D.,  9V= Assignment 1void SineSynth(double frequency, int frameRate, int bitsPerSample) main should use getopt to get parameters from command line in order argv[1] frequency argv[2] frameRate argv[3] bits quantization main should call SineSynth() which should not return PZ8Z>Z6ZZG -             H , W> Assignment 1 Questions?  X. Readings:bAudio Anecdotes: Simple Interfaces: Small (Hello) World Introduction to the Ring Buffer FIFO Queue&RRY- Next class:5Real-time audio Audio Interfaces More sampling theory 0  *(  x  c $P   r  S Ț `    H  0޽h ? 33___PPT10i.UT&+D=' = @B +  0L0 0(  x  c $ `P   x  c $\ `  H  0޽h ? +T3f3f___PPT10i._+D=' = @B +  0L0 80(  8x 8 c $( `P   x 8 c $ `  H 8 0޽h ? +T3f3f___PPT10i._+D=' = @B +r\ W A-\[1